OpenMPI  0.1.1
base.h
1 /*
2  * Copyright (c) 2004-2007 The Trustees of the University of Tennessee.
3  * All rights reserved.
4  * Copyright (c) 2010 Cisco Systems, Inc. All rights reserved.
5  * $COPYRIGHT$
6  *
7  * Additional copyrights may follow
8  *
9  * $HEADER$
10  */
11 
12 #ifndef __INCLUDE_VPROTOCOL_BASE_H_
13 #define __INCLUDE_VPROTOCOL_BASE_H_
14 
15 #include "ompi_config.h"
16 #include "ompi/constants.h"
17 #include "opal/mca/mca.h"
18 #include "ompi/mca/vprotocol/vprotocol.h"
19 
20 BEGIN_C_DECLS
21 
22 struct mca_pml_v_t {
23  int output;
24  size_t host_pml_req_recv_size;
25  size_t host_pml_req_send_size;
26  mca_pml_base_component_t host_pml_component;
27  mca_pml_base_module_t host_pml;
28  ompi_request_fns_t host_request_fns;
29 };
30 typedef struct mca_pml_v_t mca_pml_v_t;
31 
32 OMPI_DECLSPEC extern mca_pml_v_t mca_pml_v;
33 
34 OMPI_DECLSPEC int mca_vprotocol_base_open(char *vprotocol_include_list);
35 OMPI_DECLSPEC int mca_vprotocol_base_select(bool enable_progress_threads,
36  bool enable_mpi_threads);
37 OMPI_DECLSPEC int mca_vprotocol_base_parasite(void);
38 OMPI_DECLSPEC int mca_vprotocol_base_close(void);
39 
40 OMPI_DECLSPEC extern char *mca_vprotocol_base_include_list;
41 OMPI_DECLSPEC extern opal_list_t mca_vprotocol_base_components_available;
42 OMPI_DECLSPEC extern mca_vprotocol_base_component_t mca_vprotocol_component;
43 OMPI_DECLSPEC extern mca_vprotocol_base_module_t mca_vprotocol;
44 
45 
46 /* Macro for use in components that are of type vprotocol
47  */
48 #define MCA_VPROTOCOL_BASE_VERSION_2_0_0 \
49  MCA_BASE_VERSION_2_0_0, \
50  "vprotocol", 2, 0, 0
51 
52 /* Macro to mark an invalid component version (0.0.0). Any component showing
53  * that version number will be ignored.
54  */
55 #define MCA_VPROTOCOL_BASE_VERSION_0_0_0 \
56  /* vprotocol v0.0 is chained to MCA v2.0 */ \
57  MCA_BASE_VERSION_2_0_0, \
58  /* vprotocol v0.0 */ \
59  "vprotocol", 0, 0, 0
60 
61 #define mca_vprotocol_base_selected() ( \
62  0 != mca_vprotocol_component.pmlm_version.mca_type_major_version \
63 )
64 
65 END_C_DECLS
66 
67 #endif /* __INCLUDE_VPROTOCOL_BASE_H_ */
Definition: vprotocol.h:47
Definition: base.h:22
PML component version and interface functions.
Definition: pml.h:131
Top-level interface for all MCA components.
Definition: vprotocol.h:57
PML instance.
Definition: pml.h:512
Definition: opal_list.h:147
Replaceable request functions.
Definition: request.h:313