1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 #ifndef PMIX_PSQUASH_H
24 #define PMIX_PSQUASH_H
25
26 #include <src/include/pmix_config.h>
27
28 #include "src/mca/mca.h"
29 #include "src/mca/base/pmix_mca_base_var.h"
30 #include "src/mca/base/pmix_mca_base_framework.h"
31
32 BEGIN_C_DECLS
33
34
35
36
37
38
39 typedef pmix_status_t (*pmix_psquash_base_module_init_fn_t)(void);
40
41
42
43
44 typedef void (*pmix_psquash_base_module_finalize_fn_t)(void);
45
46
47
48
49
50
51
52 typedef pmix_status_t (*pmix_psquash_get_max_size_fn_t) (pmix_data_type_t type,
53 size_t *size);
54
55
56
57
58
59
60
61
62
63
64 typedef pmix_status_t (*pmix_psquash_encode_int_fn_t) (pmix_data_type_t type,
65 void *src, void *dest,
66 size_t *dst_len);
67
68
69
70
71
72
73
74
75
76
77 typedef pmix_status_t (*pmix_psquash_decode_int_fn_t) (pmix_data_type_t type,
78 void *src, size_t src_len,
79 void *dest, size_t *dst_len);
80
81
82
83
84 typedef struct {
85 const char *name;
86
87 bool int_type_is_encoded;
88
89
90 pmix_psquash_base_module_init_fn_t init;
91 pmix_psquash_base_module_finalize_fn_t finalize;
92
93 pmix_psquash_get_max_size_fn_t get_max_size;
94
95
96 pmix_psquash_encode_int_fn_t encode_int;
97 pmix_psquash_decode_int_fn_t decode_int;
98 } pmix_psquash_base_module_t;
99
100
101
102
103 struct pmix_psquash_base_component_t {
104 pmix_mca_base_component_t base;
105 pmix_mca_base_component_data_t data;
106 int priority;
107 };
108 typedef struct pmix_psquash_base_component_t pmix_psquash_base_component_t;
109
110 PMIX_EXPORT extern pmix_psquash_base_module_t pmix_psquash;
111
112
113
114
115 #define PMIX_PSQUASH_BASE_VERSION_1_0_0 \
116 PMIX_MCA_BASE_VERSION_1_0_0("psquash", 1, 0, 0)
117
118 END_C_DECLS
119
120 #endif