This source file includes following definitions.
- opal_process_name_ntoh_intr
- opal_process_name_hton_intr
   1 
   2 
   3 
   4 
   5 
   6 
   7 
   8 
   9 
  10 
  11 
  12 
  13 
  14 
  15 
  16 
  17 #ifndef OPAL_PROC_H
  18 #define OPAL_PROC_H
  19 
  20 #include "opal_config.h"
  21 #include "opal/class/opal_list.h"
  22 #include "opal/mca/hwloc/hwloc-internal.h"
  23 #include "opal/types.h"
  24 #include "opal/dss/dss.h"
  25 
  26 
  27 #if OPAL_ENABLE_HETEROGENEOUS_SUPPORT
  28 #include <arpa/inet.h>
  29 #endif
  30 
  31 
  32 
  33 
  34 
  35 
  36 
  37 
  38 
  39 #define OPAL_JOBID_T        OPAL_UINT32
  40 #define OPAL_JOBID_MAX      UINT32_MAX-2
  41 #define OPAL_JOBID_MIN      0
  42 #define OPAL_JOBID_INVALID  (OPAL_JOBID_MAX + 2)
  43 #define OPAL_JOBID_WILDCARD (OPAL_JOBID_MAX + 1)
  44 
  45 #define OPAL_VPID_T         OPAL_UINT32
  46 #define OPAL_VPID_MAX       UINT32_MAX-2
  47 #define OPAL_VPID_MIN       0
  48 #define OPAL_VPID_INVALID   (OPAL_VPID_MAX + 2)
  49 #define OPAL_VPID_WILDCARD  (OPAL_VPID_MAX + 1)
  50 
  51 #define OPAL_PROC_MY_NAME           (opal_proc_local_get()->proc_name)
  52 #define OPAL_PROC_MY_HOSTNAME       (opal_proc_local_get()->proc_hostname)
  53 
  54 #define OPAL_NAME_WILDCARD      (&opal_name_wildcard)
  55 OPAL_DECLSPEC extern opal_process_name_t opal_name_wildcard;
  56 #define OPAL_NAME_INVALID       (&opal_name_invalid)
  57 OPAL_DECLSPEC extern opal_process_name_t opal_name_invalid;
  58 
  59 
  60 #define OPAL_NAME_ARGS(n) \
  61     (unsigned long) ((NULL == n) ? (unsigned long)OPAL_JOBID_INVALID : (unsigned long)(n)->jobid), \
  62     (unsigned long) ((NULL == n) ? (unsigned long)OPAL_VPID_INVALID : (unsigned long)(n)->vpid) \
  63 
  64 #if OPAL_ENABLE_HETEROGENEOUS_SUPPORT && !defined(WORDS_BIGENDIAN)
  65 #define OPAL_PROCESS_NAME_NTOH(guid) opal_process_name_ntoh_intr(&(guid))
  66 static inline __opal_attribute_always_inline__ void
  67 opal_process_name_ntoh_intr(opal_process_name_t *name)
  68 {
  69     name->jobid = ntohl(name->jobid);
  70     name->vpid = ntohl(name->vpid);
  71 }
  72 #define OPAL_PROCESS_NAME_HTON(guid) opal_process_name_hton_intr(&(guid))
  73 static inline __opal_attribute_always_inline__ void
  74 opal_process_name_hton_intr(opal_process_name_t *name)
  75 {
  76     name->jobid = htonl(name->jobid);
  77     name->vpid = htonl(name->vpid);
  78 }
  79 #else
  80 #define OPAL_PROCESS_NAME_NTOH(guid)
  81 #define OPAL_PROCESS_NAME_HTON(guid)
  82 #endif
  83 
  84 typedef struct opal_proc_t {
  85     
  86     opal_list_item_t                super;
  87     
  88     opal_process_name_t             proc_name;
  89     
  90     uint32_t                        proc_arch;
  91     
  92     opal_hwloc_locality_t           proc_flags;
  93     
  94     struct opal_convertor_t*        proc_convertor;
  95     
  96 
  97     char*                           proc_hostname;
  98 } opal_proc_t;
  99 OBJ_CLASS_DECLARATION(opal_proc_t);
 100 
 101 typedef struct {
 102     opal_list_item_t super;
 103     opal_process_name_t name;
 104 } opal_namelist_t;
 105 OBJ_CLASS_DECLARATION(opal_namelist_t);
 106 
 107 typedef struct opal_process_info_t {
 108     char *nodename;                     
 109     char *job_session_dir;              
 110     char *proc_session_dir;             
 111     int32_t num_local_peers;            
 112     int32_t my_local_rank;              
 113     char *cpuset;                       
 114 } opal_process_info_t;
 115 OPAL_DECLSPEC extern opal_process_info_t opal_process_info;
 116 
 117 OPAL_DECLSPEC extern opal_proc_t* opal_proc_local_get(void);
 118 OPAL_DECLSPEC extern int opal_proc_local_set(opal_proc_t* proc);
 119 OPAL_DECLSPEC extern void opal_proc_set_name(opal_process_name_t *name);
 120 
 121 
 122 
 123 
 124 
 125 
 126 typedef int (*opal_compare_proc_fct_t)(const opal_process_name_t, const opal_process_name_t);
 127 OPAL_DECLSPEC extern opal_compare_proc_fct_t opal_compare_proc;
 128 
 129 
 130 OPAL_DECLSPEC extern char* (*opal_process_name_print)(const opal_process_name_t);
 131 OPAL_DECLSPEC extern int (*opal_convert_string_to_process_name)(opal_process_name_t *name,
 132                                                                 const char* name_string);
 133 OPAL_DECLSPEC extern int (*opal_convert_process_name_to_string)(char** name_string,
 134                                                                 const opal_process_name_t *name);
 135 OPAL_DECLSPEC extern char* (*opal_vpid_print)(const opal_vpid_t);
 136 OPAL_DECLSPEC extern char* (*opal_jobid_print)(const opal_jobid_t);
 137 OPAL_DECLSPEC extern int (*opal_snprintf_jobid)(char* name_string, size_t size, opal_jobid_t jobid);
 138 OPAL_DECLSPEC extern int (*opal_convert_string_to_jobid)(opal_jobid_t *jobid, const char *jobid_string);
 139 
 140 
 141 
 142 
 143 
 144 
 145 OPAL_DECLSPEC extern struct opal_proc_t *(*opal_proc_for_name) (const opal_process_name_t name);
 146 
 147 #define OPAL_NAME_PRINT(OPAL_PN)    opal_process_name_print(OPAL_PN)
 148 #define OPAL_JOBID_PRINT(OPAL_PN)   opal_jobid_print(OPAL_PN)
 149 #define OPAL_VPID_PRINT(OPAL_PN)    opal_vpid_print(OPAL_PN)
 150 
 151 
 152 
 153 
 154 
 155 OPAL_DECLSPEC char* opal_get_proc_hostname(const opal_proc_t *proc);
 156 
 157 #endif