ssg-internal.h 1.4 KB
Newer Older
1
2
3
4
5
/*
 * Copyright (c) 2016 UChicago Argonne, LLC
 *
 * See COPYRIGHT in top-level directory.
 */
Shane Snyder's avatar
Shane Snyder committed
6

Jonathan Jenkins's avatar
Jonathan Jenkins committed
7
#pragma once
Shane Snyder's avatar
Shane Snyder committed
8

Shane Snyder's avatar
Shane Snyder committed
9
10
11
12
#ifdef __cplusplus
extern "C" {
#endif

Shane Snyder's avatar
Shane Snyder committed
13
14
#include <stdint.h>
#include <inttypes.h>
Shane Snyder's avatar
Shane Snyder committed
15
16
#include <mercury.h>
#include <abt.h>
Jonathan Jenkins's avatar
Jonathan Jenkins committed
17
#include <margo.h>
18
#include <ssg.h>
19
20
#if USE_SWIM_FD
#include "swim-fd/swim-fd.h"
21
#endif
Jonathan Jenkins's avatar
Jonathan Jenkins committed
22

23
24
25
26
// define an identifier for an unknown group rank value
// TODO: move to SWIM? only used by the swim module so far
#define SSG_MEMBER_RANK_UNKNOWN (-1)

Shane Snyder's avatar
Shane Snyder committed
27
28
29
30
31
32
33
34
35
36
37
38
39
// debug printing macro for SSG
#ifdef DEBUG
#define SSG_DEBUG(__s, __fmt, ...) do { \
    double __now = ABT_get_wtime(); \
    fprintf(__s->dbg_strm, "%.6lf <%d>: " __fmt, \
        __now, __s->view.self_rank, ## __VA_ARGS__); \
    fflush(__s->dbg_strm); \
} while(0)
#else
#define SSG_DEBUG(__s, __fmt, ...) do { \
} while(0)
#endif

40
typedef struct ssg_member_state ssg_member_state_t;
41
42
43
44
45
46
47
typedef struct ssg_view ssg_view_t;

struct ssg_member_state
{
    hg_addr_t addr;
    int is_member;
};
48
49
50
51
52
53
54
55

struct ssg_view
{
    int self_rank;
    int group_size;
    ssg_member_state_t *member_states;
};

Jonathan Jenkins's avatar
Jonathan Jenkins committed
56
57
struct ssg
{
58
    margo_instance_id mid;
Shane Snyder's avatar
Shane Snyder committed
59
    ssg_view_t view;
60
61
62
#if USE_SWIM_FD
    swim_context_t *swim_ctx;
#endif
Shane Snyder's avatar
Shane Snyder committed
63
64
65
#ifdef DEBUG
    FILE *dbg_strm;
#endif
66
#if 0
Jonathan Jenkins's avatar
Jonathan Jenkins committed
67
68
69
70
71
72
    hg_id_t barrier_rpc_id;
    int barrier_id;
    int barrier_count;
    ABT_mutex barrier_mutex;
    ABT_cond  barrier_cond;
    ABT_eventual barrier_eventual;
73
#endif
Jonathan Jenkins's avatar
Jonathan Jenkins committed
74
};
Shane Snyder's avatar
Shane Snyder committed
75
76
77
78

#ifdef __cplusplus
}
#endif