OpenMPI 0.1.1

- Main Page
- Related Pages
- Modules
- Data Structures
- Files

- File List
- Globals

base.h
1 /*
2 * Copyright (c) 2004-2009 The Trustees of Indiana University and Indiana
3 * University Research and Technology
4 * Corporation. All rights reserved.
5 * Copyright (c) 2004-2005 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 #ifndef ORTE_FILEM_BASE_H
19 #define ORTE_FILEM_BASE_H
20
21 #include "orte_config.h"
22
23 #if !ORTE_DISABLE_FULL_SUPPORT
24 #include "orte/mca/rml/rml.h"
25 #endif
26
27 #include "orte/mca/filem/filem.h"
28
29 /*
30 * Global functions for MCA overall FILEM
31 */
32
33 BEGIN_C_DECLS
34
35 /**
36 * Initialize the FILEM MCA framework
37 *
38 * @retval ORTE_SUCCESS Upon success
39 * @retval ORTE_ERROR Upon failures
40 *
41 * This function is invoked during orte_init();
42 */
43 ORTE_DECLSPEC int orte_filem_base_open(void);
44
45 #if !ORTE_DISABLE_FULL_SUPPORT
46 /*
47 * cmds for base receive
48 */
49 typedef uint8_t orte_filem_cmd_flag_t;
50 #define ORTE_FILEM_CMD OPAL_UINT8
51 #define ORTE_FILEM_GET_PROC_NODE_NAME_CMD 1
52 #define ORTE_FILEM_GET_REMOTE_PATH_CMD 2
53
54 /**
55 * FileM request object maintenance functions
56 */
57 ORTE_DECLSPEC void orte_filem_base_process_set_construct(orte_filem_base_process_set_t *obj);
58 ORTE_DECLSPEC void orte_filem_base_process_set_destruct( orte_filem_base_process_set_t *obj);
59
60 ORTE_DECLSPEC void orte_filem_base_file_set_construct(orte_filem_base_file_set_t *obj);
61 ORTE_DECLSPEC void orte_filem_base_file_set_destruct( orte_filem_base_file_set_t *obj);
62
63 ORTE_DECLSPEC void orte_filem_base_construct(orte_filem_base_request_t *obj);
64 ORTE_DECLSPEC void orte_filem_base_destruct( orte_filem_base_request_t *obj);
65
66
67 /**
68 * Select an available component.
69 *
70 * @retval ORTE_SUCCESS Upon Success
71 * @retval ORTE_NOT_FOUND If no component can be selected
72 * @retval ORTE_ERROR Upon other failure
73 *
74 */
75 ORTE_DECLSPEC int orte_filem_base_select(void);
76
77 /**
78 * Finalize the FILEM MCA framework
79 *
80 * @retval ORTE_SUCCESS Upon success
81 * @retval ORTE_ERROR Upon failures
82 *
83 * This function is invoked during orte_finalize();
84 */
85 ORTE_DECLSPEC int orte_filem_base_close(void);
86
87 /**
88 * Globals
89 */
90 ORTE_DECLSPEC extern int orte_filem_base_output;
91 ORTE_DECLSPEC extern opal_list_t orte_filem_base_components_available;
92 ORTE_DECLSPEC extern orte_filem_base_component_t orte_filem_base_selected_component;
93 ORTE_DECLSPEC extern orte_filem_base_module_t orte_filem;
94 ORTE_DECLSPEC extern bool orte_filem_base_is_active;
95
96 /**
97 * 'None' component functions
98 * These are to be used when no component is selected.
99 * They just return success, and empty strings as necessary.
100 */
101 ORTE_DECLSPEC int orte_filem_base_none_open(void);
102 ORTE_DECLSPEC int orte_filem_base_none_close(void);
103 ORTE_DECLSPEC int orte_filem_base_none_query(mca_base_module_t **module, int *priority);
104
105 int orte_filem_base_module_init(void);
106 int orte_filem_base_module_finalize(void);
107
108 int orte_filem_base_none_put(orte_filem_base_request_t *request);
109 int orte_filem_base_none_put_nb(orte_filem_base_request_t *request);
110 int orte_filem_base_none_get(orte_filem_base_request_t *request);
111 int orte_filem_base_none_get_nb(orte_filem_base_request_t *request);
112 int orte_filem_base_none_rm( orte_filem_base_request_t *request);
113 int orte_filem_base_none_rm_nb( orte_filem_base_request_t *request);
114 int orte_filem_base_none_wait( orte_filem_base_request_t *request);
115 int orte_filem_base_none_wait_all( opal_list_t *request_list);
116
117 /**
118 * Some utility functions
119 */
120 /* base comm functions */
121 ORTE_DECLSPEC int orte_filem_base_comm_start(void);
122 ORTE_DECLSPEC int orte_filem_base_comm_stop(void);
123 ORTE_DECLSPEC void orte_filem_base_recv(int status, orte_process_name_t* sender,
124 opal_buffer_t* buffer, orte_rml_tag_t tag,
125 void* cbdata);
126
127
128 /**
129 * Get Node Name for an ORTE process
130 */
131 ORTE_DECLSPEC int orte_filem_base_get_proc_node_name(orte_process_name_t *proc, char **machine_name);
132 ORTE_DECLSPEC int orte_filem_base_get_remote_path(char **remote_ref, orte_process_name_t *peer, int *flag);
133
134 /**
135 * Setup request structure
136 */
137 ORTE_DECLSPEC int orte_filem_base_prepare_request(orte_filem_base_request_t *request, int move_type);
138
139 #endif /* ORTE_DISABLE_FULL_SUPPORT */
140
141 END_C_DECLS
142
143 #endif /* ORTE_FILEM_BASE_H */
mca_base_module_2_0_0_t
Common type for all MCA modules.
Definition: mca.h:100
orte_filem_base_request_1_0_0_t
Definition of a file movement request This will allow:
Definition: filem.h:127
orte_process_name_t
Definition: types.h:146
orte_filem_base_process_set_1_0_0_t
Define a Process Set.
Definition: filem.h:68
orte_filem_base_module_1_0_0_t
Structure for FILEM modules.
Definition: filem.h:336
orte_filem_base_component_2_0_0_t
Structure for FILEM components.
Definition: filem.h:317
orte_filem_base_file_set_1_0_0_t
Define a File Pair.
Definition: filem.h:93
rml.h
Runtime Messaging Layer (RML) Communication Interface.
orte_rml_tag_t
uint32_t orte_rml_tag_t
Message matching tag.
Definition: rml_types.h:220
opal_list_t
Definition: opal_list.h:147
request
Definition: evdns.c:158
opal_buffer_t
Structure for holding a buffer to be used with the RML or OOB subsystems.
Definition: dss_types.h:159
orte_filem_base_comm_start
int orte_filem_base_comm_start(void)
Some utility functions.
Definition: filem_base_receive.c:69
filem.h
Remote File Management (FileM) Interface.