OpenMPI 0.1.1

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

- File List
- Globals

btl_elan_frag.h
1 /*
2 * Copyright (c) 2004-2008 The University of Tennessee and The University
3 * of Tennessee Research Foundation. All rights
4 * reserved.
5 * $COPYRIGHT$
6 *
7 * Additional copyrights may follow
8 *
9 * $HEADER$
10 */
11
12 #ifndef MCA_BTL_ELAN_FRAG_H
13 #define MCA_BTL_ELAN_FRAG_H
14
15 #include "ompi_config.h"
16 #include "btl_elan.h"
17
18 BEGIN_C_DECLS
19
20 #define MCA_BTL_ELAN_HDR_TYPE_SEND 1
21 #define MCA_BTL_ELAN_HDR_TYPE_PUT 2
22 #define MCA_BTL_ELAN_HDR_TYPE_GET 3
23 #define MCA_BTL_ELAN_HDR_TYPE_RECV 4
24
25
26 /**
27 * Elan send fragment derived type.
28 */
29 struct mca_btl_elan_frag_t {
30 mca_btl_base_descriptor_t base;
31 mca_btl_base_segment_t segment;
32 struct mca_btl_base_endpoint_t *endpoint;
33 struct mca_btl_elan_module_t* btl;
34 int type;
35 ompi_free_list_t* my_list;
36 mca_btl_base_tag_t tag;
37 struct ELAN_EVENT* elan_event;
38 size_t size;
39 };
40 typedef struct mca_btl_elan_frag_t mca_btl_elan_frag_t;
41 OBJ_CLASS_DECLARATION(mca_btl_elan_frag_t);
42
43 typedef struct mca_btl_elan_frag_t mca_btl_elan_frag_eager_t;
44
45 OBJ_CLASS_DECLARATION(mca_btl_elan_frag_eager_t);
46
47 typedef struct mca_btl_elan_frag_t mca_btl_elan_frag_max_t;
48
49 OBJ_CLASS_DECLARATION(mca_btl_elan_frag_max_t);
50
51 typedef struct mca_btl_elan_frag_t mca_btl_elan_frag_user_t;
52
53 OBJ_CLASS_DECLARATION(mca_btl_elan_frag_user_t);
54
55
56 /*
57 * Macros to allocate/return descriptors from module specific
58 * free list(s).
59 */
60 #define MCA_BTL_ELAN_FRAG_ALLOC_LIST( list, frag, rc ) \
61 { \
62 ompi_free_list_item_t *item; \
63 OMPI_FREE_LIST_GET(&(list), item, rc); \
64 frag = (mca_btl_elan_frag_t*) item; \
65 }
66
67 #define MCA_BTL_ELAN_FRAG_ALLOC_EAGER(frag, rc) \
68 MCA_BTL_ELAN_FRAG_ALLOC_LIST(mca_btl_elan_component.elan_frag_eager, frag, rc)
69
70 #define MCA_BTL_ELAN_FRAG_ALLOC_MAX(frag, rc) \
71 MCA_BTL_ELAN_FRAG_ALLOC_LIST(mca_btl_elan_component.elan_frag_max, frag, rc)
72
73 #define MCA_BTL_ELAN_FRAG_ALLOC_USER(frag, rc) \
74 MCA_BTL_ELAN_FRAG_ALLOC_LIST(mca_btl_elan_component.elan_frag_user, frag, rc)
75
76 #define MCA_BTL_ELAN_FRAG_RETURN(frag) \
77 { \
78 OMPI_FREE_LIST_RETURN(frag->my_list, \
79 (ompi_free_list_item_t*)(frag)); \
80 }
81
82
83 END_C_DECLS
84
85 #endif /* MCA_BTL_ELAN_FRAG_H */
mca_btl_base_descriptor_t
A descriptor that holds the parameters to a send/put/get operation along w/ a callback routine that i...
Definition: btl.h:275
mca_btl_elan_frag_t
Elan send fragment derived type.
Definition: btl_elan_frag.h:29
mca_btl_elan_module_t
BTL Module Interface.
Definition: btl_elan.h:83
ompi_free_list_t
Definition: ompi_free_list.h:39
mca_btl_base_endpoint_t
State of ELAN endpoint connection.
Definition: btl_elan_endpoint.h:33
btl_elan.h
mca_btl_base_segment_t
Describes a region/segment of memory that is addressable by an BTL.
Definition: btl.h:236
OBJ_CLASS_DECLARATION
#define OBJ_CLASS_DECLARATION(NAME)
Declaration for class descriptor.
Definition: opal_object.h:236