This source file includes following definitions.
- mca_btl_smcuda_frag_common_constructor
- mca_btl_smcuda_frag1_constructor
- mca_btl_smcuda_frag2_constructor
- mca_btl_smcuda_user_constructor
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 #include "opal_config.h"
24 #include "btl_smcuda_frag.h"
25
26
27 static inline void mca_btl_smcuda_frag_common_constructor(mca_btl_smcuda_frag_t* frag)
28 {
29 frag->hdr = (mca_btl_smcuda_hdr_t*)frag->base.super.ptr;
30 if(frag->hdr != NULL) {
31 frag->hdr->frag = (mca_btl_smcuda_frag_t*)((uintptr_t)frag |
32 MCA_BTL_SMCUDA_FRAG_ACK);
33 frag->segment.seg_addr.pval = ((char*)frag->hdr) +
34 sizeof(mca_btl_smcuda_hdr_t);
35 frag->hdr->my_smp_rank = mca_btl_smcuda_component.my_smp_rank;
36 }
37 frag->segment.seg_len = frag->size;
38 frag->base.des_segments = &frag->segment;
39 frag->base.des_segment_count = 1;
40 frag->base.des_flags = 0;
41 #if OPAL_CUDA_SUPPORT
42 frag->registration = NULL;
43 #endif
44 }
45
46 static void mca_btl_smcuda_frag1_constructor(mca_btl_smcuda_frag_t* frag)
47 {
48 frag->size = mca_btl_smcuda_component.eager_limit;
49 frag->my_list = &mca_btl_smcuda_component.sm_frags_eager;
50 mca_btl_smcuda_frag_common_constructor(frag);
51 }
52
53 static void mca_btl_smcuda_frag2_constructor(mca_btl_smcuda_frag_t* frag)
54 {
55 frag->size = mca_btl_smcuda_component.max_frag_size;
56 frag->my_list = &mca_btl_smcuda_component.sm_frags_max;
57 mca_btl_smcuda_frag_common_constructor(frag);
58 }
59
60 static void mca_btl_smcuda_user_constructor(mca_btl_smcuda_frag_t* frag)
61 {
62 frag->size = 0;
63 frag->my_list = &mca_btl_smcuda_component.sm_frags_user;
64 mca_btl_smcuda_frag_common_constructor(frag);
65 }
66
67 OBJ_CLASS_INSTANCE(
68 mca_btl_smcuda_frag1_t,
69 mca_btl_base_descriptor_t,
70 mca_btl_smcuda_frag1_constructor,
71 NULL);
72
73 OBJ_CLASS_INSTANCE(
74 mca_btl_smcuda_frag2_t,
75 mca_btl_base_descriptor_t,
76 mca_btl_smcuda_frag2_constructor,
77 NULL);
78
79 OBJ_CLASS_INSTANCE(
80 mca_btl_smcuda_user_t,
81 mca_btl_base_descriptor_t,
82 mca_btl_smcuda_user_constructor,
83 NULL);