Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-02-23 10:12:53

0001 /* -*- C -*-
0002  *
0003  * Copyright (c) 2019      IBM Corporation.  All rights reserved.
0004  * Copyright (c) 2019      Mellanox Technologies, Inc.
0005  *                         All rights reserved.
0006  * Copyright (c) 2020      Research Organization for Information Science
0007  *                         and Technology (RIST).  All rights reserved.
0008  * Copyright (c) 2020      Intel, Inc.  All rights reserved.
0009  * Copyright (c) 2021      Nanook Consulting.  All rights reserved.
0010  * $COPYRIGHT$
0011  *
0012  * Additional copyrights may follow
0013  *
0014  * $HEADER$
0015  *
0016  */
0017 #ifndef PMIX_PSQUASH_BASE_H_
0018 #define PMIX_PSQUASH_BASE_H_
0019 
0020 #include "src/include/pmix_config.h"
0021 
0022 #ifdef HAVE_STRING_H
0023 #    include <string.h>
0024 #endif
0025 
0026 #include "src/class/pmix_pointer_array.h"
0027 #include "src/mca/base/pmix_mca_base_framework.h"
0028 #include "src/mca/mca.h"
0029 
0030 #include "src/mca/psquash/psquash.h"
0031 
0032 BEGIN_C_DECLS
0033 
0034 /**
0035  * Sizeof by PMIx type integer values.
0036  *
0037  * r - return status code
0038  * t - type (pmix_data_type_t) of integer value
0039  * s - size of type in bytes
0040  * (see a comment to `pmix_bfrops_pack_flex` for additional details)
0041  */
0042 #define PMIX_SQUASH_TYPE_SIZEOF(r, t, s) \
0043     do {                                 \
0044         (r) = PMIX_SUCCESS;              \
0045         switch (t) {                     \
0046         case PMIX_INT16:                 \
0047         case PMIX_UINT16:                \
0048             (s) = SIZEOF_SHORT;          \
0049             break;                       \
0050         case PMIX_INT:                   \
0051         case PMIX_INT32:                 \
0052         case PMIX_UINT:                  \
0053         case PMIX_UINT32:                \
0054             (s) = SIZEOF_INT;            \
0055             break;                       \
0056         case PMIX_INT64:                 \
0057         case PMIX_UINT64:                \
0058             (s) = SIZEOF_LONG;           \
0059             break;                       \
0060         case PMIX_SIZE:                  \
0061             (s) = SIZEOF_SIZE_T;         \
0062             break;                       \
0063         default:                         \
0064             (r) = PMIX_ERR_BAD_PARAM;    \
0065         }                                \
0066     } while (0)
0067 
0068 struct pmix_psquash_globals_t {
0069     bool initialized;
0070     bool selected;
0071 };
0072 
0073 typedef struct pmix_psquash_globals_t pmix_psquash_globals_t;
0074 
0075 PMIX_EXPORT extern pmix_mca_base_framework_t pmix_psquash_base_framework;
0076 
0077 PMIX_EXPORT pmix_status_t pmix_psquash_base_select(void);
0078 
0079 PMIX_EXPORT extern pmix_psquash_globals_t pmix_psquash_globals;
0080 
0081 END_C_DECLS
0082 
0083 #endif