1 
   2 
   3 
   4 
   5 
   6 
   7 
   8 
   9 
  10 
  11 
  12 
  13 
  14 
  15 
  16 
  17 
  18 
  19 
  20 
  21 #ifndef ORTE_TYPES_H
  22 #define ORTE_TYPES_H
  23 
  24 #include "orte_config.h"
  25 
  26 #ifdef HAVE_SYS_TYPES_H
  27 #include <sys/types.h>
  28 #endif
  29 #include "opal/dss/dss_types.h"
  30 #include "opal/util/proc.h"
  31 
  32 
  33 
  34 
  35 
  36 typedef int32_t orte_std_cntr_t;  
  37 #define ORTE_STD_CNTR_T         OPAL_INT32
  38 #define ORTE_STD_CNTR_MAX       INT32_MAX
  39 #define ORTE_STD_CNTR_MIN       INT32_MIN
  40 #define ORTE_STD_CNTR_INVALID   -1
  41 
  42 
  43 
  44 
  45 
  46 
  47 
  48 typedef uint16_t orte_local_rank_t;
  49 typedef uint16_t orte_node_rank_t;
  50 #define ORTE_LOCAL_RANK         OPAL_UINT16
  51 #define ORTE_NODE_RANK          OPAL_UINT16
  52 #define ORTE_LOCAL_RANK_MAX     UINT16_MAX-1
  53 #define ORTE_NODE_RANK_MAX      UINT16_MAX-1
  54 #define ORTE_LOCAL_RANK_INVALID UINT16_MAX
  55 #define ORTE_NODE_RANK_INVALID  UINT16_MAX
  56 
  57 
  58 typedef uint32_t orte_app_idx_t;
  59 #define ORTE_APP_IDX        OPAL_UINT32
  60 #define ORTE_APP_IDX_MAX    UINT32_MAX
  61 
  62 
  63 
  64 
  65 
  66 
  67 
  68 typedef opal_jobid_t orte_jobid_t;
  69 #define ORTE_JOBID_T        OPAL_JOBID_T
  70 #define ORTE_JOBID_MAX      OPAL_JOBID_MAX
  71 #define ORTE_JOBID_MIN      OPAL_JOBID_MIN
  72 typedef opal_vpid_t orte_vpid_t;
  73 #define ORTE_VPID_T         OPAL_VPID_T
  74 #define ORTE_VPID_MAX       OPAL_VPID_MAX
  75 #define ORTE_VPID_MIN       OPAL_VPID_MIX
  76 
  77 #define ORTE_PROCESS_NAME_HTON(n) OPAL_PROCESS_NAME_HTON(n)
  78 
  79 #define ORTE_PROCESS_NAME_NTOH(n) OPAL_PROCESS_NAME_NTOH(n)
  80 
  81 #define ORTE_NAME_ARGS(n) \
  82     (unsigned long) ((NULL == n) ? (unsigned long)ORTE_JOBID_INVALID : (unsigned long)(n)->jobid), \
  83     (unsigned long) ((NULL == n) ? (unsigned long)ORTE_VPID_INVALID : (unsigned long)(n)->vpid) \
  84 
  85 
  86 
  87 
  88 #define ORTE_JOBID_INVALID          OPAL_JOBID_INVALID
  89 #define ORTE_VPID_INVALID           OPAL_VPID_INVALID
  90 #define ORTE_LOCAL_JOBID_INVALID    (ORTE_JOBID_INVALID & 0x0000FFFF)
  91 
  92 
  93 
  94 
  95 #define ORTE_JOBID_WILDCARD         OPAL_JOBID_WILDCARD
  96 #define ORTE_VPID_WILDCARD          OPAL_VPID_WILDCARD
  97 #define ORTE_LOCAL_JOBID_WILDCARD   (ORTE_JOBID_WILDCARD & 0x0000FFFF)
  98 
  99 
 100 
 101 
 102 typedef opal_process_name_t orte_process_name_t;
 103 
 104 
 105 
 106 
 107 
 108 
 109 #if defined(__APPLE__)
 110 typedef char* orte_iov_base_ptr_t;
 111 #else
 112 typedef void* orte_iov_base_ptr_t;
 113 #endif
 114 
 115 
 116 typedef uint16_t orte_attribute_key_t;
 117 #define ORTE_ATTR_KEY_T   OPAL_UINT16
 118 typedef struct {
 119     opal_list_item_t super;             
 120     orte_attribute_key_t key;           
 121     opal_data_type_t type;              
 122     bool local;                         
 123     union {
 124         bool flag;
 125         uint8_t byte;
 126         char *string;
 127         size_t size;
 128         pid_t pid;
 129         int integer;
 130         int8_t int8;
 131         int16_t int16;
 132         int32_t int32;
 133         int64_t int64;
 134         unsigned int uint;
 135         uint8_t uint8;
 136         uint16_t uint16;
 137         uint32_t uint32;
 138         uint64_t uint64;
 139         opal_byte_object_t bo;
 140         opal_buffer_t buf;
 141         float fval;
 142         struct timeval tv;
 143         void *ptr;  
 144         orte_vpid_t vpid;
 145         orte_jobid_t jobid;
 146         opal_process_name_t name;
 147         opal_envar_t envar;
 148     } data;
 149 } orte_attribute_t;
 150 OPAL_DECLSPEC OBJ_CLASS_DECLARATION(orte_attribute_t);
 151 
 152 
 153 
 154 #define    ORTE_NAME                OPAL_NAME   
 155 #define    ORTE_VPID                OPAL_VPID   
 156 #define    ORTE_JOBID               OPAL_JOBID  
 157 
 158 
 159 #define    ORTE_STD_CNTR            (OPAL_DSS_ID_DYNAMIC + 1)  
 160     
 161 #define    ORTE_NODE_STATE          (OPAL_DSS_ID_DYNAMIC + 2)  
 162 #define    ORTE_PROC_STATE          (OPAL_DSS_ID_DYNAMIC + 3)  
 163 #define    ORTE_JOB_STATE           (OPAL_DSS_ID_DYNAMIC + 4)  
 164 #define    ORTE_EXIT_CODE           (OPAL_DSS_ID_DYNAMIC + 5)  
 165     
 166 #define    ORTE_VALUE               (OPAL_DSS_ID_DYNAMIC + 6)  
 167     
 168 #define    ORTE_APP_CONTEXT         (OPAL_DSS_ID_DYNAMIC + 7) 
 169 #define    ORTE_NODE_DESC           (OPAL_DSS_ID_DYNAMIC + 8) 
 170 #define    ORTE_SLOT_DESC           (OPAL_DSS_ID_DYNAMIC + 9) 
 171 #define    ORTE_JOB                 (OPAL_DSS_ID_DYNAMIC + 10) 
 172 #define    ORTE_NODE                (OPAL_DSS_ID_DYNAMIC + 11) 
 173 #define    ORTE_PROC                (OPAL_DSS_ID_DYNAMIC + 12) 
 174 #define    ORTE_JOB_MAP             (OPAL_DSS_ID_DYNAMIC + 13) 
 175 
 176 
 177 #define    ORTE_RML_TAG             (OPAL_DSS_ID_DYNAMIC + 14) 
 178 
 179 #define    ORTE_DAEMON_CMD          (OPAL_DSS_ID_DYNAMIC + 15) 
 180 
 181 
 182 #define    ORTE_IOF_TAG             (OPAL_DSS_ID_DYNAMIC + 16)
 183 
 184 
 185 #define    ORTE_ATTRIBUTE           (OPAL_DSS_ID_DYNAMIC + 17)
 186 
 187 #define    ORTE_SIGNATURE           (OPAL_DSS_ID_DYNAMIC + 18)
 188 
 189 
 190 #define    ORTE_DSS_ID_DYNAMIC      (OPAL_DSS_ID_DYNAMIC + 50)
 191 
 192 #endif