OpenMPI 0.1.1

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

- File List
- Globals

btl_mx_proc.h
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-2008 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
19 #ifndef MCA_BTL_MX_PROC_H
20 #define MCA_BTL_MX_PROC_H
21
22 #include "opal/class/opal_object.h"
23 #include "ompi/proc/proc.h"
24 #include "btl_mx.h"
25 #include "btl_mx_endpoint.h"
26
27 BEGIN_C_DECLS
28
29 /**
30 * Represents the state of a remote process and the set of addresses
31 * that it exports. Also cache an instance of mca_btl_base_endpoint_t for
32 * each BTL instance that attempts to open a connection to the process.
33 */
34 struct mca_btl_mx_proc_t {
35 opal_list_item_t super;
36 /**< allow proc to be placed on a list */
37
38 ompi_proc_t *proc_ompi;
39 /**< pointer to corresponding ompi_proc_t */
40
41 mca_btl_mx_addr_t *mx_peers; /**< peers addresses */
42 int mx_peers_count;
43 int* mx_routing; /**< peer routing information */
44
45 opal_mutex_t proc_lock;
46 /**< lock to protect against concurrent access to proc state */
47 };
48 typedef struct mca_btl_mx_proc_t mca_btl_mx_proc_t;
49
50 OBJ_CLASS_DECLARATION(mca_btl_mx_proc_t);
51
52 mca_btl_mx_proc_t* mca_btl_mx_proc_create(ompi_proc_t* ompi_proc);
53 int mca_btl_mx_proc_insert(mca_btl_mx_proc_t*, mca_btl_base_endpoint_t*);
54 int mca_btl_mx_proc_connect( mca_btl_mx_endpoint_t* module_endpoint );
55
56 END_C_DECLS
57
58 #endif /* MCA_BTL_MX_PROC_H */
btl_mx.h
mca_btl_mx_proc_t::mx_peers
mca_btl_mx_addr_t * mx_peers
peers addresses
Definition: btl_mx_proc.h:41
mca_btl_mx_proc_t::super
opal_list_item_t super
allow proc to be placed on a list
Definition: btl_mx_proc.h:35
mca_btl_mx_proc_t::mx_routing
int * mx_routing
peer routing information
Definition: btl_mx_proc.h:43
opal_mutex_t
Definition: mutex_unix.h:53
proc.h
Process identification structure interface.
ompi_proc_t
Remote Open MPI process structure.
Definition: proc.h:56
mca_btl_mx_addr_t
Structure used to publish MX information to peers.
Definition: btl_mx_endpoint.h:39
opal_list_item_t
Definition: opal_list.h:98
mca_btl_base_endpoint_t
State of ELAN endpoint connection.
Definition: btl_elan_endpoint.h:33
mca_btl_mx_proc_t::proc_ompi
ompi_proc_t * proc_ompi
pointer to corresponding ompi_proc_t
Definition: btl_mx_proc.h:38
mca_btl_mx_proc_t::proc_lock
opal_mutex_t proc_lock
lock to protect against concurrent access to proc state
Definition: btl_mx_proc.h:45
opal_object.h
A simple C-language object-oriented system with single inheritance and ownership-based memory managem...
OBJ_CLASS_DECLARATION
#define OBJ_CLASS_DECLARATION(NAME)
Declaration for class descriptor.
Definition: opal_object.h:236
mca_btl_mx_proc_t
Represents the state of a remote process and the set of addresses that it exports.
Definition: btl_mx_proc.h:34