root/opal/mca/pmix/pmix4x/pmix/src/common/pmix_strings.c

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

DEFINITIONS

This source file includes following definitions.
  1. PMIx_Proc_state_string
  2. PMIx_Scope_string
  3. PMIx_Persistence_string
  4. PMIx_Data_range_string
  5. PMIx_Info_directives_string
  6. PMIx_Alloc_directive_string
  7. pmix_command_string
  8. PMIx_IOF_channel_string

   1 /*
   2  * Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
   3  *                         University Research and Technology
   4  *                         Corporation.  All rights reserved.
   5  * Copyright (c) 2004-2005 The University of Tennessee and The University
   6  *                         of Tennessee Research Foundation.  All rights
   7  *                         reserved.
   8  * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
   9  *                         University of Stuttgart.  All rights reserved.
  10  * Copyright (c) 2004-2005 The Regents of the University of California.
  11  *                         All rights reserved.
  12  * Copyright (c) 2007-2012 Los Alamos National Security, LLC.
  13  *                         All rights reserved.
  14  * Copyright (c) 2014-2018 Intel, Inc. All rights reserved.
  15  * Copyright (c) 2018      Research Organization for Information Science
  16  *                         and Technology (RIST).  All rights reserved.
  17  * $COPYRIGHT$
  18  *
  19  * Additional copyrights may follow
  20  *
  21  * $HEADER$
  22  */
  23 
  24 #include <src/include/pmix_config.h>
  25 
  26 
  27 #ifdef HAVE_STRING_H
  28 #include <string.h>
  29 #endif
  30 #include <errno.h>
  31 #include <stdio.h>
  32 #ifdef HAVE_STDLIB_H
  33 #include <stdlib.h>
  34 #endif
  35 
  36 #include <pmix_common.h>
  37 #include <pmix_rename.h>
  38 
  39 #include "src/include/pmix_globals.h"
  40 
  41 PMIX_EXPORT const char* PMIx_Proc_state_string(pmix_proc_state_t state)
  42 {
  43     switch(state) {
  44         case PMIX_PROC_STATE_UNDEF:
  45             return "UNDEFINED";
  46         case PMIX_PROC_STATE_PREPPED:
  47             return "PREPPED FOR LAUNCH";
  48         case PMIX_PROC_STATE_LAUNCH_UNDERWAY:
  49             return "LAUNCH UNDERWAY";
  50         case PMIX_PROC_STATE_RESTART:
  51             return "PROC READY FOR RESTART";
  52         case PMIX_PROC_STATE_TERMINATE:
  53             return "PROC MARKED FOR TERMINATION";
  54         case PMIX_PROC_STATE_RUNNING:
  55             return "PROC EXECUTING";
  56         case PMIX_PROC_STATE_CONNECTED:
  57             return "PROC HAS CONNECTED TO LOCAL PMIX SERVER";
  58         case PMIX_PROC_STATE_UNTERMINATED:
  59             return "PROC HAS NOT TERMINATED";
  60         case PMIX_PROC_STATE_TERMINATED:
  61             return "PROC HAS TERMINATED";
  62         case PMIX_PROC_STATE_ERROR:
  63             return "PROC ERROR";
  64         case PMIX_PROC_STATE_KILLED_BY_CMD:
  65             return "PROC KILLED BY CMD";
  66         case PMIX_PROC_STATE_ABORTED:
  67             return "PROC ABNORMALLY ABORTED";
  68         case PMIX_PROC_STATE_FAILED_TO_START:
  69             return "PROC FAILED TO START";
  70         case PMIX_PROC_STATE_ABORTED_BY_SIG:
  71             return "PROC ABORTED BY SIGNAL";
  72         case PMIX_PROC_STATE_TERM_WO_SYNC:
  73             return "PROC TERMINATED WITHOUT CALLING PMIx_Finalize";
  74         case PMIX_PROC_STATE_COMM_FAILED:
  75             return "PROC LOST COMMUNICATION";
  76         case PMIX_PROC_STATE_SENSOR_BOUND_EXCEEDED:
  77             return "PROC SENSOR BOUND EXCEEDED";
  78         case PMIX_PROC_STATE_CALLED_ABORT:
  79             return "PROC CALLED PMIx_Abort";
  80         case PMIX_PROC_STATE_HEARTBEAT_FAILED:
  81             return "PROC FAILED TO REPORT HEARTBEAT";
  82         case PMIX_PROC_STATE_MIGRATING:
  83             return "PROC WAITING TO MIGRATE";
  84         case PMIX_PROC_STATE_CANNOT_RESTART:
  85             return "PROC CANNOT BE RESTARTED";
  86         case PMIX_PROC_STATE_TERM_NON_ZERO:
  87             return "PROC TERMINATED WITH NON-ZERO STATUS";
  88         case PMIX_PROC_STATE_FAILED_TO_LAUNCH:
  89             return "PROC FAILED TO LAUNCH";
  90         default:
  91             return "UNKNOWN STATE";
  92     }
  93 }
  94 
  95 PMIX_EXPORT const char* PMIx_Scope_string(pmix_scope_t scope)
  96 {
  97     switch(scope) {
  98         case PMIX_SCOPE_UNDEF:
  99             return "UNDEFINED";
 100         case PMIX_LOCAL:
 101             return "SHARE ON LOCAL NODE ONLY";
 102         case PMIX_REMOTE:
 103             return "SHARE ON REMOTE NODES ONLY";
 104         case PMIX_GLOBAL:
 105             return "SHARE ACROSS ALL NODES";
 106         case PMIX_INTERNAL:
 107             return "STORE INTERNALLY";
 108         default:
 109             return "UNKNOWN SCOPE";
 110     }
 111 }
 112 
 113 PMIX_EXPORT const char* PMIx_Persistence_string(pmix_persistence_t persist)
 114 {
 115     switch(persist) {
 116         case PMIX_PERSIST_INDEF:
 117             return "INDEFINITE";
 118         case PMIX_PERSIST_FIRST_READ:
 119             return "DELETE ON FIRST ACCESS";
 120         case PMIX_PERSIST_PROC:
 121             return "RETAIN UNTIL PUBLISHING PROCESS TERMINATES";
 122         case PMIX_PERSIST_APP:
 123             return "RETAIN UNTIL APPLICATION OF PUBLISHING PROCESS TERMINATES";
 124         case PMIX_PERSIST_SESSION:
 125             return "RETAIN UNTIL ALLOCATION OF PUBLISHING PROCESS TERMINATES";
 126         case PMIX_PERSIST_INVALID:
 127             return "INVALID";
 128         default:
 129             return "UNKNOWN PERSISTENCE";
 130     }
 131 }
 132 
 133 PMIX_EXPORT const char* PMIx_Data_range_string(pmix_data_range_t range)
 134 {
 135     switch(range) {
 136         case PMIX_RANGE_UNDEF:
 137             return "UNDEFINED";
 138         case PMIX_RANGE_RM:
 139             return "INTENDED FOR HOST RESOURCE MANAGER ONLY";
 140         case PMIX_RANGE_LOCAL:
 141             return "AVAIL ON LOCAL NODE ONLY";
 142         case PMIX_RANGE_NAMESPACE:
 143             return "AVAIL TO PROCESSES IN SAME JOB ONLY";
 144         case PMIX_RANGE_SESSION:
 145             return "AVAIL TO PROCESSES IN SAME ALLOCATION ONLY";
 146         case PMIX_RANGE_GLOBAL:
 147             return "AVAIL TO ANYONE WITH AUTHORIZATION";
 148         case PMIX_RANGE_CUSTOM:
 149             return "AVAIL AS SPECIFIED IN DIRECTIVES";
 150         case PMIX_RANGE_PROC_LOCAL:
 151             return "AVAIL ON LOCAL PROC ONLY";
 152         case PMIX_RANGE_INVALID:
 153             return "INVALID";
 154         default:
 155             return "UNKNOWN";
 156     }
 157 }
 158 
 159 PMIX_EXPORT const char* PMIx_Info_directives_string(pmix_info_directives_t directives)
 160 {
 161     switch(directives) {
 162         case PMIX_INFO_REQD:
 163             return "REQUIRED";
 164         default:
 165             return "UNSPECIFIED";
 166     }
 167 }
 168 
 169 PMIX_EXPORT const char* PMIx_Alloc_directive_string(pmix_alloc_directive_t directive)
 170 {
 171     switch(directive) {
 172         case PMIX_ALLOC_NEW:
 173             return "NEW";
 174         case PMIX_ALLOC_EXTEND:
 175             return "EXTEND";
 176         case PMIX_ALLOC_RELEASE:
 177             return "RELEASE";
 178         case PMIX_ALLOC_REAQUIRE:
 179             return "REACQUIRE";
 180         default:
 181             return "UNSPECIFIED";
 182     }
 183 }
 184 
 185 
 186 PMIX_EXPORT const char* pmix_command_string(pmix_cmd_t cmd)
 187 {
 188     switch(cmd) {
 189         case PMIX_REQ_CMD:
 190             return "REQUEST INIT INFO";
 191         case PMIX_ABORT_CMD:
 192             return "ABORT";
 193         case PMIX_COMMIT_CMD:
 194             return "COMMIT";
 195         case PMIX_FENCENB_CMD:
 196             return "FENCE";
 197         case PMIX_GETNB_CMD:
 198             return "GET";
 199         case PMIX_FINALIZE_CMD:
 200             return "FINALIZE";
 201         case PMIX_PUBLISHNB_CMD:
 202             return "PUBLISH";
 203         case PMIX_LOOKUPNB_CMD:
 204             return "LOOKUP";
 205         case PMIX_UNPUBLISHNB_CMD:
 206             return "UNPUBLISH";
 207         case PMIX_SPAWNNB_CMD:
 208             return "SPAWN";
 209         case PMIX_CONNECTNB_CMD:
 210             return "CONNECT";
 211         case PMIX_DISCONNECTNB_CMD:
 212             return "DISCONNECT";
 213         case PMIX_NOTIFY_CMD:
 214             return "NOTIFY";
 215         case PMIX_REGEVENTS_CMD:
 216             return "REGISTER EVENT HANDLER";
 217         case PMIX_DEREGEVENTS_CMD:
 218             return "DEREGISTER EVENT HANDLER";
 219         case PMIX_QUERY_CMD:
 220             return "QUERY";
 221         case PMIX_LOG_CMD:
 222             return "LOG";
 223         case PMIX_ALLOC_CMD:
 224             return "ALLOCATE";
 225         case PMIX_JOB_CONTROL_CMD:
 226             return "JOB CONTROL";
 227         case PMIX_MONITOR_CMD:
 228             return "MONITOR";
 229         case PMIX_IOF_PUSH_CMD:
 230             return "IOF PUSH";
 231         case PMIX_IOF_PULL_CMD:
 232             return "IOF PULL";
 233         case PMIX_GROUP_CONSTRUCT_CMD:
 234             return "GROUP CONSTRUCT";
 235         case PMIX_GROUP_JOIN_CMD:
 236             return "GROUP JOIN";
 237         case PMIX_GROUP_INVITE_CMD:
 238             return "GROUP INVITE";
 239         case PMIX_GROUP_LEAVE_CMD:
 240             return "GROUP LEAVE";
 241         case PMIX_GROUP_DESTRUCT_CMD:
 242             return "GROUP DESTRUCT";
 243         default:
 244             return "UNKNOWN";
 245     }
 246 }
 247 
 248 /* this is not a thread-safe implementation. To correctly implement this,
 249  * we need to port the thread-safe data code from OPAL and use it here */
 250 static char answer[300];
 251 
 252 PMIX_EXPORT const char* PMIx_IOF_channel_string(pmix_iof_channel_t channel)
 253 {
 254     size_t cnt=0;
 255 
 256     if (PMIX_FWD_STDIN_CHANNEL & channel) {
 257         strcpy(&answer[cnt], "STDIN ");
 258         cnt += strlen("STDIN ");
 259     }
 260     if (PMIX_FWD_STDOUT_CHANNEL & channel) {
 261         strcpy(&answer[cnt], "STDOUT ");
 262         cnt += strlen("STDOUT ");
 263     }
 264     if (PMIX_FWD_STDERR_CHANNEL & channel) {
 265         strcpy(&answer[cnt], "STDERR ");
 266         cnt += strlen("STDERR ");
 267     }
 268     if (PMIX_FWD_STDDIAG_CHANNEL & channel) {
 269         strcpy(&answer[cnt], "STDDIAG ");
 270         cnt += strlen("STDDIAG ");
 271     }
 272     if (0 == cnt) {
 273         strcpy(&answer[cnt], "NONE");
 274     }
 275     return answer;
 276 }

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