1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 #ifndef ORTE_SNAPC_BASE_H
23 #define ORTE_SNAPC_BASE_H
24
25 #include "orte_config.h"
26 #include "orte/types.h"
27
28 #include "opal/util/printf.h"
29
30 #include "orte/mca/snapc/snapc.h"
31
32
33
34
35
36 BEGIN_C_DECLS
37
38
39
40
41 ORTE_DECLSPEC extern mca_base_framework_t orte_snapc_base_framework;
42
43 ORTE_DECLSPEC int orte_snapc_base_select(bool seed, bool app);
44
45
46
47
48 typedef uint8_t orte_snapc_cmd_flag_t;
49 #define ORTE_SNAPC_CMD OPAL_UINT8
50 #define ORTE_SNAPC_GLOBAL_INIT_CMD 1
51 #define ORTE_SNAPC_GLOBAL_TERM_CMD 2
52 #define ORTE_SNAPC_GLOBAL_UPDATE_CMD 3
53 #define ORTE_SNAPC_LOCAL_UPDATE_CMD 4
54 #define ORTE_SNAPC_LOCAL_FINISH_CMD 5
55
56
57
58
59
60
61 typedef uint32_t orte_snapc_coord_type_t;
62 #define ORTE_SNAPC_UNASSIGN_TYPE 0
63 #define ORTE_SNAPC_GLOBAL_COORD_TYPE 1
64 #define ORTE_SNAPC_LOCAL_COORD_TYPE 2
65 #define ORTE_SNAPC_APP_COORD_TYPE 4
66 ORTE_DECLSPEC extern orte_snapc_coord_type_t orte_snapc_coord_type;
67
68 #define ORTE_SNAPC_COORD_NAME_PRINT(ct) ( (ct == (ORTE_SNAPC_GLOBAL_COORD_TYPE | ORTE_SNAPC_LOCAL_COORD_TYPE) ) ? "Global-Local" : \
69 (ct == ORTE_SNAPC_GLOBAL_COORD_TYPE) ? "Global" : \
70 (ct == ORTE_SNAPC_LOCAL_COORD_TYPE) ? "Local" : \
71 (ct == ORTE_SNAPC_APP_COORD_TYPE) ? "App" : \
72 "Unknown")
73
74
75
76
77 void orte_snapc_base_local_snapshot_construct(orte_snapc_base_local_snapshot_t *obj);
78 void orte_snapc_base_local_snapshot_destruct( orte_snapc_base_local_snapshot_t *obj);
79
80 void orte_snapc_base_global_snapshot_construct(orte_snapc_base_global_snapshot_t *obj);
81 void orte_snapc_base_global_snapshot_destruct( orte_snapc_base_global_snapshot_t *obj);
82
83 void orte_snapc_base_quiesce_construct(orte_snapc_base_quiesce_t *obj);
84 void orte_snapc_base_quiesce_destruct( orte_snapc_base_quiesce_t *obj);
85
86 void orte_snapc_base_request_op_construct(orte_snapc_base_request_op_t *op);
87 void orte_snapc_base_request_op_destruct(orte_snapc_base_request_op_t *op);
88
89
90
91
92
93
94 ORTE_DECLSPEC int orte_snapc_base_none_open(void);
95 ORTE_DECLSPEC int orte_snapc_base_none_close(void);
96 ORTE_DECLSPEC int orte_snapc_base_none_query(mca_base_module_t **module, int *priority);
97
98 ORTE_DECLSPEC int orte_snapc_base_module_init(bool seed, bool app);
99 ORTE_DECLSPEC int orte_snapc_base_module_finalize(void);
100 ORTE_DECLSPEC int orte_snapc_base_none_setup_job(orte_jobid_t jobid);
101 ORTE_DECLSPEC int orte_snapc_base_none_release_job(orte_jobid_t jobid);
102 ORTE_DECLSPEC int orte_snapc_base_none_ft_event(int state);
103 ORTE_DECLSPEC int orte_snapc_base_none_start_ckpt(orte_snapc_base_quiesce_t *datum);
104 ORTE_DECLSPEC int orte_snapc_base_none_end_ckpt(orte_snapc_base_quiesce_t *datum);
105
106 ORTE_DECLSPEC extern orte_snapc_base_module_t orte_snapc;
107
108
109
110
111 ORTE_DECLSPEC extern bool orte_snapc_base_store_only_one_seq;
112 ORTE_DECLSPEC extern size_t orte_snapc_base_snapshot_seq_number;
113 ORTE_DECLSPEC extern bool orte_snapc_base_has_recovered;
114
115
116
117
118 ORTE_DECLSPEC void orte_snapc_ckpt_state_notify(int state);
119 ORTE_DECLSPEC int orte_snapc_ckpt_state_str(char ** state_str, int state);
120
121
122
123
124
125 ORTE_DECLSPEC int orte_snapc_base_global_coord_ckpt_init_cmd(orte_process_name_t* peer,
126 opal_buffer_t* buffer,
127 opal_crs_base_ckpt_options_t *options,
128 orte_jobid_t *jobid);
129 ORTE_DECLSPEC int orte_snapc_base_global_coord_ckpt_update_cmd(orte_process_name_t* peer,
130 orte_sstore_base_handle_t handle,
131 int ckpt_status);
132
133 ORTE_DECLSPEC int orte_snapc_base_unpack_options(opal_buffer_t* buffer,
134 opal_crs_base_ckpt_options_t *options);
135 ORTE_DECLSPEC int orte_snapc_base_pack_options(opal_buffer_t* buffer,
136 opal_crs_base_ckpt_options_t *options);
137
138 END_C_DECLS
139
140 #endif