root/opal/mca/btl/smcuda/btl_smcuda_frag.c

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. mca_btl_smcuda_frag_common_constructor
  2. mca_btl_smcuda_frag1_constructor
  3. mca_btl_smcuda_frag2_constructor
  4. mca_btl_smcuda_user_constructor

   1 /* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */
   2 /*
   3  * Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
   4  *                         University Research and Technology
   5  *                         Corporation.  All rights reserved.
   6  * Copyright (c) 2004-2009 The University of Tennessee and The University
   7  *                         of Tennessee Research Foundation.  All rights
   8  *                         reserved.
   9  * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
  10  *                         University of Stuttgart.  All rights reserved.
  11  * Copyright (c) 2004-2005 The Regents of the University of California.
  12  *                         All rights reserved.
  13  * Copyright (c) 2009      Cisco Systems, Inc.  All rights reserved.
  14  * Copyright (c) 2012      NVIDIA Corporation.  All rights reserved.
  15  * Copyright (c) 2015      Los Alamos National Security, LLC. All rights
  16  *                         reserved.
  17  * $COPYRIGHT$
  18  *
  19  * Additional copyrights may follow
  20  *
  21  * $HEADER$
  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 /* OPAL_CUDA_SUPPORT */
  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);

/* [<][>][^][v][top][bottom][index][help] */