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);