root/opal/mca/rcache/udreg/rcache_udreg_component.c

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

DEFINITIONS

This source file includes following definitions.
  1. udreg_open
  2. udreg_register
  3. udreg_close
  4. udreg_init

   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-2013 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) 2006      Voltaire. All rights reserved.
  14  * Copyright (c) 2007-2009 Cisco Systems, Inc.  All rights reserved.
  15  * Copyright (c) 2012-2015 Los Alamos National Security, LLC. All rights
  16  *                         reserved.
  17  *
  18  * $COPYRIGHT$
  19  *
  20  * Additional copyrights may follow
  21  *
  22  * $HEADER$
  23  */
  24 
  25 #define OPAL_DISABLE_ENABLE_MEM_DEBUG 1
  26 #include "opal_config.h"
  27 #include "opal/mca/base/base.h"
  28 #include "opal/runtime/opal_params.h"
  29 #include "rcache_udreg.h"
  30 #ifdef HAVE_UNISTD_H
  31 #include <unistd.h>
  32 #endif
  33 #ifdef HAVE_MALLOC_H
  34 #include <malloc.h>
  35 #endif
  36 
  37 #include <fcntl.h>
  38 
  39 /*
  40  * Local functions
  41  */
  42 static int udreg_open(void);
  43 static int udreg_close(void);
  44 static int udreg_register(void);
  45 static mca_rcache_base_module_t* udreg_init(
  46         struct mca_rcache_base_resources_t* resources);
  47 
  48 mca_rcache_udreg_component_t mca_rcache_udreg_component = {
  49     {
  50         /* First, the mca_base_component_t struct containing meta
  51            information about the component itself */
  52 
  53         .rcache_version ={
  54             MCA_RCACHE_BASE_VERSION_3_0_0,
  55 
  56             .mca_component_name = "udreg",
  57             MCA_BASE_MAKE_VERSION(component, OPAL_MAJOR_VERSION, OPAL_MINOR_VERSION,
  58                                   OPAL_RELEASE_VERSION),
  59             .mca_open_component = udreg_open,
  60             .mca_close_component = udreg_close,
  61             .mca_register_component_params = udreg_register,
  62         },
  63         .rcache_data = {
  64             /* The component is checkpoint ready */
  65             MCA_BASE_METADATA_PARAM_CHECKPOINT
  66         },
  67 
  68         .rcache_init = udreg_init
  69     }
  70 };
  71 
  72 /**
  73   * component open/close/init function
  74   */
  75 static int udreg_open(void)
  76 {
  77     return OPAL_SUCCESS;
  78 }
  79 
  80 
  81 static int udreg_register(void)
  82 {
  83     mca_rcache_udreg_component.print_stats = false;
  84     (void) mca_base_component_var_register(&mca_rcache_udreg_component.super.rcache_version,
  85                                            "print_stats", "print pool usage statistics at the end of the run",
  86                                            MCA_BASE_VAR_TYPE_BOOL, NULL, 0, 0,
  87                                            OPAL_INFO_LVL_9,
  88                                            MCA_BASE_VAR_SCOPE_READONLY,
  89                                            &mca_rcache_udreg_component.print_stats);
  90 
  91     return OPAL_SUCCESS;
  92 }
  93 
  94 
  95 static int udreg_close(void)
  96 {
  97     return OPAL_SUCCESS;
  98 }
  99 
 100 static mca_rcache_base_module_t *
 101 udreg_init(struct mca_rcache_base_resources_t *resources)
 102 {
 103     mca_rcache_udreg_resources_t *udreg_resources = (mca_rcache_udreg_resources_t *) resources;
 104     mca_rcache_udreg_module_t* rcache_module;
 105     static int inited = false;
 106     int rc;
 107 
 108     /* Set this here (vs in component.c) because
 109        opal_leave_pinned* may have been set after MCA params were
 110        read (e.g., by the openib btl) */
 111     mca_rcache_udreg_component.leave_pinned = (int)
 112         (1 == opal_leave_pinned || opal_leave_pinned_pipeline);
 113 
 114     if (!inited) {
 115         inited = true;
 116     }
 117 
 118     rcache_module =
 119         (mca_rcache_udreg_module_t *) malloc (sizeof (mca_rcache_udreg_module_t));
 120 
 121     memmove (&rcache_module->resources, udreg_resources, sizeof (*udreg_resources));
 122 
 123     rc = mca_rcache_udreg_module_init(rcache_module);
 124     if (OPAL_SUCCESS != rc) {
 125         free (rcache_module);
 126         return NULL;
 127     }
 128 
 129     return &rcache_module->super;
 130 }

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