OpenMPI  0.1.1
btl_udapl_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-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 (c) 2008 Sun Microsystems, Inc. All rights reserved.
13  * $COPYRIGHT$
14  *
15  * Additional copyrights may follow
16  *
17  * $HEADER$
18  */
19 
20 #ifndef MCA_BTL_UDAPL_PROC_H
21 #define MCA_BTL_UDAPL_PROC_H
22 
23 #include "opal/class/opal_object.h"
24 #include "ompi/proc/proc.h"
25 #include "btl_udapl.h"
26 #include "btl_udapl_endpoint.h"
27 
28 BEGIN_C_DECLS
29 
30 /**
31  * Represents the state of a remote process and the set of addresses
32  * that it exports. Also cache an instance of mca_btl_base_endpoint_t for
33  * each
34  * BTL instance that attempts to open a connection to the process.
35  */
38  /**< allow proc to be placed on a list */
39 
41  /**< pointer to corresponding ompi_proc_t */
42 
44  /**< array of addresses exported by peer */
45 
46  size_t proc_addr_count;
47  /**< number of addresses published by peer */
48 
50  /**< array of endpoints that have been created to access this proc */
51 
53  /**< number of endpoints */
54 
56  /**< lock to protect against concurrent access to proc state */
57 };
60 
61 #define MCA_BTL_UDAPL_INVALID_PEER_ADDR_IDX -1
62 
63 mca_btl_udapl_proc_t* mca_btl_udapl_proc_create(ompi_proc_t* ompi_proc);
64 int mca_btl_udapl_proc_insert(mca_btl_udapl_proc_t*, mca_btl_base_endpoint_t*);
65 
66 END_C_DECLS
67 #endif
opal_list_item_t super
allow proc to be placed on a list
Definition: btl_udapl_proc.h:37
size_t proc_addr_count
number of addresses published by peer
Definition: btl_udapl_proc.h:46
Definition: mutex_unix.h:53
Structure used to publish uDAPL id information to peers.
Definition: btl_udapl_endpoint.h:50
Process identification structure interface.
Remote Open MPI process structure.
Definition: proc.h:56
Definition: opal_list.h:98
opal_mutex_t proc_lock
lock to protect against concurrent access to proc state
Definition: btl_udapl_proc.h:55
struct mca_btl_base_endpoint_t ** proc_endpoints
array of endpoints that have been created to access this proc
Definition: btl_udapl_proc.h:49
Represents the state of a remote process and the set of addresses that it exports.
Definition: btl_udapl_proc.h:36
State of ELAN endpoint connection.
Definition: btl_elan_endpoint.h:33
size_t proc_endpoint_count
number of endpoints
Definition: btl_udapl_proc.h:52
struct mca_btl_udapl_addr_t * proc_addrs
array of addresses exported by peer
Definition: btl_udapl_proc.h:43
A simple C-language object-oriented system with single inheritance and ownership-based memory managem...
#define OBJ_CLASS_DECLARATION(NAME)
Declaration for class descriptor.
Definition: opal_object.h:236
ompi_proc_t * proc_ompi
pointer to corresponding ompi_proc_t
Definition: btl_udapl_proc.h:40