1 /* 2 * Copyright (c) 2013 Mellanox Technologies, Inc. 3 * All rights reserved. 4 * $COPYRIGHT$ 5 * 6 * Additional copyrights may follow 7 * 8 * $HEADER$ 9 */ 10 11 #ifndef OSHMEM_CONSTANTS_H 12 #define OSHMEM_CONSTANTS_H 13 14 #include "orte/constants.h" 15 #include "oshmem/include/shmem.h" 16 17 18 #define OSHMEM_ERR_BASE ORTE_ERR_MAX 19 20 /* error codes */ 21 enum { 22 /* Error codes inherited from ORTE/OPAL. Still enum values so 23 that we might get nice debugger help */ 24 OSHMEM_SUCCESS = ORTE_SUCCESS, 25 26 OSHMEM_ERROR = ORTE_ERROR, 27 OSHMEM_ERR_OUT_OF_RESOURCE = ORTE_ERR_OUT_OF_RESOURCE, 28 OSHMEM_ERR_TEMP_OUT_OF_RESOURCE = ORTE_ERR_TEMP_OUT_OF_RESOURCE, 29 OSHMEM_ERR_RESOURCE_BUSY = ORTE_ERR_RESOURCE_BUSY, 30 OSHMEM_ERR_BAD_PARAM = ORTE_ERR_BAD_PARAM, 31 OSHMEM_ERR_FATAL = ORTE_ERR_FATAL, 32 OSHMEM_ERR_NOT_IMPLEMENTED = ORTE_ERR_NOT_IMPLEMENTED, 33 OSHMEM_ERR_NOT_SUPPORTED = ORTE_ERR_NOT_SUPPORTED, 34 OSHMEM_ERR_INTERUPTED = ORTE_ERR_INTERUPTED, 35 OSHMEM_ERR_WOULD_BLOCK = ORTE_ERR_WOULD_BLOCK, 36 OSHMEM_ERR_IN_ERRNO = ORTE_ERR_IN_ERRNO, 37 OSHMEM_ERR_UNREACH = ORTE_ERR_UNREACH, 38 OSHMEM_ERR_NOT_FOUND = ORTE_ERR_NOT_FOUND, 39 OSHMEM_EXISTS = ORTE_EXISTS, /* indicates that the specified object already exists */ 40 OSHMEM_ERR_TIMEOUT = ORTE_ERR_TIMEOUT, 41 OSHMEM_ERR_NOT_AVAILABLE = ORTE_ERR_NOT_AVAILABLE, 42 OSHMEM_ERR_PERM = ORTE_ERR_PERM, 43 OSHMEM_ERR_VALUE_OUT_OF_BOUNDS = ORTE_ERR_VALUE_OUT_OF_BOUNDS, 44 OSHMEM_ERR_FILE_READ_FAILURE = ORTE_ERR_FILE_READ_FAILURE, 45 OSHMEM_ERR_FILE_WRITE_FAILURE = ORTE_ERR_FILE_WRITE_FAILURE, 46 OSHMEM_ERR_FILE_OPEN_FAILURE = ORTE_ERR_FILE_OPEN_FAILURE, 47 48 OSHMEM_ERR_RECV_LESS_THAN_POSTED = ORTE_ERR_RECV_LESS_THAN_POSTED, 49 OSHMEM_ERR_RECV_MORE_THAN_POSTED = ORTE_ERR_RECV_MORE_THAN_POSTED, 50 OSHMEM_ERR_NO_MATCH_YET = ORTE_ERR_NO_MATCH_YET, 51 OSHMEM_ERR_BUFFER = ORTE_ERR_BUFFER, 52 OSHMEM_ERR_REQUEST = ORTE_ERR_REQUEST, 53 OSHMEM_ERR_NO_CONNECTION_ALLOWED = ORTE_ERR_NO_CONNECTION_ALLOWED, 54 OSHMEM_ERR_CONNECTION_REFUSED = ORTE_ERR_CONNECTION_REFUSED , 55 OSHMEM_ERR_CONNECTION_FAILED = ORTE_ERR_CONNECTION_FAILED, 56 OSHMEM_PACK_MISMATCH = ORTE_ERR_PACK_MISMATCH, 57 OSHMEM_ERR_PACK_FAILURE = ORTE_ERR_PACK_FAILURE, 58 OSHMEM_ERR_UNPACK_FAILURE = ORTE_ERR_UNPACK_FAILURE, 59 OSHMEM_ERR_COMM_FAILURE = ORTE_ERR_COMM_FAILURE, 60 OSHMEM_UNPACK_INADEQUATE_SPACE = ORTE_ERR_UNPACK_INADEQUATE_SPACE, 61 OSHMEM_UNPACK_READ_PAST_END_OF_BUFFER = ORTE_ERR_UNPACK_READ_PAST_END_OF_BUFFER, 62 OSHMEM_ERR_TYPE_MISMATCH = ORTE_ERR_TYPE_MISMATCH, 63 OSHMEM_ERR_COMPARE_FAILURE = ORTE_ERR_COMPARE_FAILURE, 64 OSHMEM_ERR_COPY_FAILURE = ORTE_ERR_COPY_FAILURE, 65 OSHMEM_ERR_UNKNOWN_DATA_TYPE = ORTE_ERR_UNKNOWN_DATA_TYPE, 66 OSHMEM_ERR_DATA_TYPE_REDEF = ORTE_ERR_DATA_TYPE_REDEF, 67 OSHMEM_ERR_DATA_OVERWRITE_ATTEMPT = ORTE_ERR_DATA_OVERWRITE_ATTEMPT 68 }; 69 70 71 /* C datatypes */ 72 /* 73 * SHMEM_Init_thread constants 74 * Do not change the order of these without also modifying mpif.h.in. 75 */ 76 enum { 77 SHMEM_NULL = 0, 78 SHMEM_CHAR, 79 SHMEM_UCHAR, 80 SHMEM_SHORT, 81 SHMEM_USHORT, 82 SHMEM_INT, 83 SHMEM_UINT, 84 SHMEM_LONG, 85 SHMEM_ULONG, 86 SHMEM_LLONG, 87 SHMEM_INT32_T, 88 SHMEM_INT64_T, 89 SHMEM_ULLONG, 90 SHMEM_FLOAT, 91 SHMEM_DOUBLE, 92 SHMEM_LDOUBLE, 93 94 SHMEM_FINT, 95 SHMEM_FINT4, 96 SHMEM_FINT8 97 }; 98 99 100 /* 101 * Miscellaneous constants 102 */ 103 #define SHMEM_ANY_SOURCE -1 /* match any source rank */ 104 #define SHMEM_PROC_NULL -2 /* rank of null process */ 105 #define SHMEM_UNDEFINED -32766 /* undefined stuff */ 106 107 108 #ifndef UNREFERENCED_PARAMETER 109 #define UNREFERENCED_PARAMETER(P) ((void)P) 110 #endif 111 112 #define OSHMEM_PREDEFINED_GLOBAL(type, global) ((type) ((void *) &(global))) 113 114 #if OPAL_WANT_MEMCHECKER 115 #define MEMCHECKER(x) do { \ 116 x; \ 117 } while(0) 118 #else 119 #define MEMCHECKER(x) 120 #endif /* OPAL_WANT_MEMCHECKER */ 121 122 #endif /* OSHMEM_CONSTANTS_H */ 123 124