OpenMPI  0.1.1
orte_dt_support.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
3  * University Research and Technology
4  * Corporation. All rights reserved.
5  * Copyright (c) 2004-2011 The University of Tennessee and The University
6  * of Tennessee Research Foundation. All rights
7  * reserved.
8  * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
9  * University of Stuttgart. All rights reserved.
10  * Copyright (c) 2004-2005 The Regents of the University of California.
11  * All rights reserved.
12  * $COPYRIGHT$
13  *
14  * Additional copyrights may follow
15  *
16  * $HEADER$
17  */
18 /** @file:
19  */
20 
21 #ifndef ORTE_DT_SUPPORT_H
22 #define ORTE_DT_SUPPORT_H
23 
24 /*
25  * includes
26  */
27 #include "orte_config.h"
28 #include "orte/constants.h"
29 #include "orte/types.h"
30 
31 #include "opal/dss/dss_types.h"
34 #include "orte/mca/plm/plm_types.h"
36 #include "orte/mca/rml/rml_types.h"
37 #include "orte/mca/iof/iof_types.h"
38 
40 
41 
42 BEGIN_C_DECLS
43 
44 /** Data type compare functions */
45 int orte_dt_compare_std_cntr(orte_std_cntr_t *value1, orte_std_cntr_t *value2, opal_data_type_t type);
47  orte_process_name_t *value2,
48  opal_data_type_t type);
50  orte_jobid_t *value2,
51  opal_data_type_t type);
52 int orte_dt_compare_vpid(orte_vpid_t *value1,
53  orte_vpid_t *value2,
54  opal_data_type_t type);
55 #if ORTE_ENABLE_EPOCH
56 int orte_dt_compare_epoch(orte_epoch_t *value1,
57  orte_epoch_t *value2,
58  opal_data_type_t type);
59 #define ORTE_EPOCH_CMP(n,m) ( (m) - (n) )
60 #else
61 #define ORTE_EPOCH_CMP(n,m) ( 0 )
62 #endif
63 #if !ORTE_DISABLE_FULL_SUPPORT
64 int orte_dt_compare_job(orte_job_t *value1, orte_job_t *value2, opal_data_type_t type);
65 int orte_dt_compare_node(orte_node_t *value1, orte_node_t *value2, opal_data_type_t type);
66 int orte_dt_compare_proc(orte_proc_t *value1, orte_proc_t *value2, opal_data_type_t type);
67 int orte_dt_compare_app_context(orte_app_context_t *value1, orte_app_context_t *value2, opal_data_type_t type);
68 int orte_dt_compare_exit_code(orte_exit_code_t *value1,
69  orte_exit_code_t *value2,
70  opal_data_type_t type);
71 int orte_dt_compare_node_state(orte_node_state_t *value1,
72  orte_node_state_t *value2,
73  orte_node_state_t type);
74 int orte_dt_compare_proc_state(orte_proc_state_t *value1,
75  orte_proc_state_t *value2,
76  orte_proc_state_t type);
77 int orte_dt_compare_job_state(orte_job_state_t *value1,
78  orte_job_state_t *value2,
79  orte_job_state_t type);
80 int orte_dt_compare_map(orte_job_map_t *value1, orte_job_map_t *value2, opal_data_type_t type);
81 int orte_dt_compare_tags(orte_rml_tag_t *value1,
82  orte_rml_tag_t *value2,
83  opal_data_type_t type);
84 int orte_dt_compare_daemon_cmd(orte_daemon_cmd_flag_t *value1, orte_daemon_cmd_flag_t *value2, opal_data_type_t type);
85 int orte_dt_compare_grpcomm_mode(orte_grpcomm_mode_t *value1, orte_grpcomm_mode_t *value2, opal_data_type_t type);
86 int orte_dt_compare_iof_tag(orte_iof_tag_t *value1, orte_iof_tag_t *value2, opal_data_type_t type);
87 #endif
88 
89 /** Data type copy functions */
90 int orte_dt_copy_std_cntr(orte_std_cntr_t **dest, orte_std_cntr_t *src, opal_data_type_t type);
91 int orte_dt_copy_name(orte_process_name_t **dest, orte_process_name_t *src, opal_data_type_t type);
92 int orte_dt_copy_jobid(orte_jobid_t **dest, orte_jobid_t *src, opal_data_type_t type);
93 int orte_dt_copy_vpid(orte_vpid_t **dest, orte_vpid_t *src, opal_data_type_t type);
94 #if ORTE_ENABLE_EPOCH
95 int orte_dt_copy_epoch(orte_epoch_t **dest, orte_epoch_t *src, opal_data_type_t type);
96 #endif
97 #if !ORTE_DISABLE_FULL_SUPPORT
98 int orte_dt_copy_job(orte_job_t **dest, orte_job_t *src, opal_data_type_t type);
99 int orte_dt_copy_node(orte_node_t **dest, orte_node_t *src, opal_data_type_t type);
100 int orte_dt_copy_proc(orte_proc_t **dest, orte_proc_t *src, opal_data_type_t type);
101 int orte_dt_copy_app_context(orte_app_context_t **dest, orte_app_context_t *src, opal_data_type_t type);
102 int orte_dt_copy_proc_state(orte_proc_state_t **dest, orte_proc_state_t *src, opal_data_type_t type);
103 int orte_dt_copy_job_state(orte_job_state_t **dest, orte_job_state_t *src, opal_data_type_t type);
104 int orte_dt_copy_node_state(orte_node_state_t **dest, orte_node_state_t *src, opal_data_type_t type);
105 int orte_dt_copy_exit_code(orte_exit_code_t **dest, orte_exit_code_t *src, opal_data_type_t type);
106 int orte_dt_copy_map(orte_job_map_t **dest, orte_job_map_t *src, opal_data_type_t type);
107 int orte_dt_copy_tag(orte_rml_tag_t **dest,
108  orte_rml_tag_t *src,
109  opal_data_type_t type);
110 int orte_dt_copy_daemon_cmd(orte_daemon_cmd_flag_t **dest, orte_daemon_cmd_flag_t *src, opal_data_type_t type);
111 int orte_dt_copy_grpcomm_mode(orte_grpcomm_mode_t **dest, orte_grpcomm_mode_t *src, opal_data_type_t type);
112 int orte_dt_copy_iof_tag(orte_iof_tag_t **dest, orte_iof_tag_t *src, opal_data_type_t type);
113 #endif
114 
115 /** Data type pack functions */
116 int orte_dt_pack_std_cntr(opal_buffer_t *buffer, const void *src,
117  int32_t num_vals, opal_data_type_t type);
118 int orte_dt_pack_jobid(opal_buffer_t *buffer, const void *src,
119  int32_t num_vals, opal_data_type_t type);
120 int orte_dt_pack_name(opal_buffer_t *buffer, const void *src,
121  int32_t num_vals, opal_data_type_t type);
122 int orte_dt_pack_jobid(opal_buffer_t *buffer, const void *src,
123  int32_t num_vals, opal_data_type_t type);
124 int orte_dt_pack_vpid(opal_buffer_t *buffer, const void *src,
125  int32_t num_vals, opal_data_type_t type);
126 #if ORTE_ENABLE_EPOCH
127 int orte_dt_pack_epoch(opal_buffer_t *buffer, const void *src,
128  int32_t num_vals, opal_data_type_t type);
129 #endif
130 #if !ORTE_DISABLE_FULL_SUPPORT
131 int orte_dt_pack_job(opal_buffer_t *buffer, const void *src,
132  int32_t num_vals, opal_data_type_t type);
133 int orte_dt_pack_node(opal_buffer_t *buffer, const void *src,
134  int32_t num_vals, opal_data_type_t type);
135 int orte_dt_pack_proc(opal_buffer_t *buffer, const void *src,
136  int32_t num_vals, opal_data_type_t type);
137 int orte_dt_pack_app_context(opal_buffer_t *buffer, const void *src,
138  int32_t num_vals, opal_data_type_t type);
139 int orte_dt_pack_exit_code(opal_buffer_t *buffer, const void *src,
140  int32_t num_vals, opal_data_type_t type);
141 int orte_dt_pack_node_state(opal_buffer_t *buffer, const void *src,
142  int32_t num_vals, opal_data_type_t type);
143 int orte_dt_pack_proc_state(opal_buffer_t *buffer, const void *src,
144  int32_t num_vals, opal_data_type_t type);
145 int orte_dt_pack_job_state(opal_buffer_t *buffer, const void *src,
146  int32_t num_vals, opal_data_type_t type);
147 int orte_dt_pack_map(opal_buffer_t *buffer, const void *src,
148  int32_t num_vals, opal_data_type_t type);
149 int orte_dt_pack_tag(opal_buffer_t *buffer,
150  const void *src,
151  int32_t num_vals,
152  opal_data_type_t type);
153 int orte_dt_pack_daemon_cmd(opal_buffer_t *buffer, const void *src,
154  int32_t num_vals, opal_data_type_t type);
155 int orte_dt_pack_grpcomm_mode(opal_buffer_t *buffer, const void *src,
156  int32_t num_vals, opal_data_type_t type);
157 int orte_dt_pack_iof_tag(opal_buffer_t *buffer, const void *src, int32_t num_vals,
158  opal_data_type_t type);
159 #endif
160 
161 /** Data type print functions */
162 int orte_dt_std_print(char **output, char *prefix, void *src, opal_data_type_t type);
163 int orte_dt_print_name(char **output, char *prefix, orte_process_name_t *name, opal_data_type_t type);
164 int orte_dt_print_job(char **output, char *prefix, orte_job_t *src, opal_data_type_t type);
165 #if !ORTE_DISABLE_FULL_SUPPORT
166 int orte_dt_print_node(char **output, char *prefix, orte_node_t *src, opal_data_type_t type);
167 int orte_dt_print_proc(char **output, char *prefix, orte_proc_t *src, opal_data_type_t type);
168 int orte_dt_print_app_context(char **output, char *prefix, orte_app_context_t *src, opal_data_type_t type);
169 int orte_dt_print_map(char **output, char *prefix, orte_job_map_t *src, opal_data_type_t type);
170 #endif
171 
172 /** Data type release functions */
174 void orte_dt_std_release(opal_dss_value_t *value);
175 
176 /** Data type size functions */
177 int orte_dt_std_size(size_t *size, void *src, opal_data_type_t type);
178 #if !ORTE_DISABLE_FULL_SUPPORT
179 int orte_dt_size_job(size_t *size, orte_job_t *src, opal_data_type_t type);
180 int orte_dt_size_node(size_t *size, orte_node_t *src, opal_data_type_t type);
181 int orte_dt_size_proc(size_t *size, orte_proc_t *src, opal_data_type_t type);
182 int orte_dt_size_app_context(size_t *size, orte_app_context_t *src, opal_data_type_t type);
183 int orte_dt_size_map(size_t *size, orte_job_map_t *src, opal_data_type_t type);
184 #endif
185 
186 /** Data type unpack functions */
187 int orte_dt_unpack_std_cntr(opal_buffer_t *buffer, void *dest,
188  int32_t *num_vals, opal_data_type_t type);
189 int orte_dt_unpack_name(opal_buffer_t *buffer, void *dest,
190  int32_t *num_vals, opal_data_type_t type);
191 int orte_dt_unpack_jobid(opal_buffer_t *buffer, void *dest,
192  int32_t *num_vals, opal_data_type_t type);
193 int orte_dt_unpack_vpid(opal_buffer_t *buffer, void *dest,
194  int32_t *num_vals, opal_data_type_t type);
195 #if ORTE_ENABLE_EPOCH
196 int orte_dt_unpack_epoch(opal_buffer_t *buffer, void *dest,
197  int32_t *num_vals, opal_data_type_t type);
198 #endif
199 #if !ORTE_DISABLE_FULL_SUPPORT
200 int orte_dt_unpack_job(opal_buffer_t *buffer, void *dest,
201  int32_t *num_vals, opal_data_type_t type);
202 int orte_dt_unpack_node(opal_buffer_t *buffer, void *dest,
203  int32_t *num_vals, opal_data_type_t type);
204 int orte_dt_unpack_proc(opal_buffer_t *buffer, void *dest,
205  int32_t *num_vals, opal_data_type_t type);
206 int orte_dt_unpack_app_context(opal_buffer_t *buffer, void *dest,
207  int32_t *num_vals, opal_data_type_t type);
208 int orte_dt_unpack_exit_code(opal_buffer_t *buffer, void *dest,
209  int32_t *num_vals, opal_data_type_t type);
210 int orte_dt_unpack_node_state(opal_buffer_t *buffer, void *dest,
211  int32_t *num_vals, opal_data_type_t type);
212 int orte_dt_unpack_proc_state(opal_buffer_t *buffer, void *dest,
213  int32_t *num_vals, opal_data_type_t type);
214 int orte_dt_unpack_job_state(opal_buffer_t *buffer, void *dest,
215  int32_t *num_vals, opal_data_type_t type);
216 int orte_dt_unpack_map(opal_buffer_t *buffer, void *dest,
217  int32_t *num_vals, opal_data_type_t type);
218 int orte_dt_unpack_tag(opal_buffer_t *buffer,
219  void *dest,
220  int32_t *num_vals,
221  opal_data_type_t type);
222 int orte_dt_unpack_daemon_cmd(opal_buffer_t *buffer, void *dest,
223  int32_t *num_vals, opal_data_type_t type);
224 int orte_dt_unpack_grpcomm_mode(opal_buffer_t *buffer, void *dest,
225  int32_t *num_vals, opal_data_type_t type);
226 int orte_dt_unpack_iof_tag(opal_buffer_t *buffer, void *dest, int32_t *num_vals,
227  opal_data_type_t type);
228 #endif
229 
230 END_C_DECLS
231 
232 #endif
Information about a specific application to be launched in the RTE.
Definition: orte_globals.h:196
int orte_dt_std_print(char **output, char *prefix, void *src, opal_data_type_t type)
Data type print functions.
Definition: orte_dt_print_fns.c:118
int orte_dt_compare_job(orte_job_t *value1, orte_job_t *value2, opal_data_type_t type)
JOB.
Definition: orte_dt_compare_fns.c:148
uint32_t orte_jobid_t
Set the allowed range for ids in each space.
Definition: types.h:76
Definition: types.h:146
int32_t orte_std_cntr_t
Supported datatypes for messaging and storage operations.
Definition: types.h:34
int orte_dt_compare_vpid(orte_vpid_t *value1, orte_vpid_t *value2, opal_data_type_t type)
Definition: orte_dt_compare_fns.c:97
int orte_dt_pack_std_cntr(opal_buffer_t *buffer, const void *src, int32_t num_vals, opal_data_type_t type)
Data type pack functions.
Definition: orte_dt_packing_fns.c:39
BEGIN_C_DECLS int orte_dt_compare_std_cntr(orte_std_cntr_t *value1, orte_std_cntr_t *value2, opal_data_type_t type)
Data type compare functions.
Definition: orte_dt_compare_fns.c:27
int orte_dt_copy_job(orte_job_t **dest, orte_job_t *src, opal_data_type_t type)
JOB.
Definition: orte_dt_copy_fns.c:134
int orte_dt_unpack_std_cntr(opal_buffer_t *buffer, void *dest, int32_t *num_vals, opal_data_type_t type)
Data type unpack functions.
Definition: orte_dt_unpacking_fns.c:35
Definition: orte_globals.h:386
int orte_dt_compare_node(orte_node_t *value1, orte_node_t *value2, opal_data_type_t type)
NODE.
Definition: orte_dt_compare_fns.c:160
Definition: dss_types.h:89
int orte_dt_copy_std_cntr(orte_std_cntr_t **dest, orte_std_cntr_t *src, opal_data_type_t type)
Data type copy functions.
Definition: orte_dt_copy_fns.c:35
int orte_dt_copy_node(orte_node_t **dest, orte_node_t *src, opal_data_type_t type)
NODE.
Definition: orte_dt_copy_fns.c:145
int orte_dt_std_size(size_t *size, void *src, opal_data_type_t type)
Data type size functions.
Definition: orte_dt_size_fns.c:41
Buffer management types.
int orte_dt_compare_proc(orte_proc_t *value1, orte_proc_t *value2, opal_data_type_t type)
PROC.
Definition: orte_dt_compare_fns.c:175
int orte_dt_copy_proc(orte_proc_t **dest, orte_proc_t *src, opal_data_type_t type)
PROC.
Definition: orte_dt_copy_fns.c:155
uint32_t orte_rml_tag_t
Message matching tag.
Definition: rml_types.h:220
Definition: orte_globals.h:316
Definition: rmaps_types.h:47
Global params for OpenRTE.
The OpenRTE Group Communications.
Structure for holding a buffer to be used with the RML or OOB subsystems.
Definition: dss_types.h:159
int orte_dt_compare_name(orte_process_name_t *value1, orte_process_name_t *value2, opal_data_type_t type)
Definition: orte_dt_compare_fns.c:36
Definition: orte_globals.h:254
void orte_dt_std_obj_release(opal_dss_value_t *value)
Data type release functions.
Definition: orte_dt_release_fns.c:24
Contains the typedefs for the use of the rml.
int orte_dt_compare_jobid(orte_jobid_t *value1, orte_jobid_t *value2, opal_data_type_t type)
Definition: orte_dt_compare_fns.c:112