17 #ifndef __LEGION_CONFIG_H__
18 #define __LEGION_CONFIG_H__
21 #include "legion_defines.h"
23 #ifndef LEGION_USE_PYTHON_CFFI
26 #endif // LEGION_USE_PYTHON_CFFI
29 #if defined (__CUDACC__) || defined (__HIPCC__)
30 #define __CUDA_HD__ __host__ __device__
46 #include "realm/realm_c.h"
52 #ifndef LEGION_AUTO_GENERATE_ID
53 #define LEGION_AUTO_GENERATE_ID UINT_MAX
55 #error "legion.h requires the ability to define the macro 'LEGION_AUTO_GENERATE_ID' but it has already been defined"
59 #ifndef LEGION_DISABLE_DEPRECATED_ENUMS
60 #ifndef AUTO_GENERATE_ID
61 #define AUTO_GENERATE_ID LEGION_AUTO_GENERATE_ID
65 #ifndef LEGION_GC_MIN_PRIORITY
66 #define LEGION_GC_MIN_PRIORITY INT_MIN
68 #error "legion.h requires the ability to define the macro 'LEGION_GC_MIN_PRIORITY' but it has already been defined"
72 #ifndef LEGION_DISABLE_DEPRECATED_ENUMS
73 #ifndef GC_MIN_PRIORITY
74 #define GC_MIN_PRIORITY LEGION_GC_MIN_PRIORITY
78 #ifndef LEGION_GC_MAX_PRIORITY
79 #define LEGION_GC_MAX_PRIORITY INT_MAX
81 #error "legion.h requires the ability to define the macro 'LEGION_GC_MAX_PRIORITY' but it has already been defined"
85 #ifndef LEGION_DISABLE_DEPRECATED_ENUMS
86 #ifndef GC_MAX_PRIORITY
87 #define GC_MAX_PRIORITY LEGION_GC_MAX_PRIORITY
91 #ifndef LEGION_GC_NEVER_PRIORITY
92 #define LEGION_GC_NEVER_PRIORITY LEGION_GC_MIN_PRIORITY
94 #error "legion.h requires the ability to define the macro 'LEGION_GC_NEVER_PRIORITY' but it has already been defined"
98 #ifndef LEGION_DISABLE_DEPRECATED_ENUMS
99 #ifndef GC_NEVER_PRIORITY
100 #define GC_NEVER_PRIORITY LEGION_GC_NEVER_PRIORITY
106 #ifndef LEGION_BOUNDS_CHECKS
107 #define LEGION_BOUNDS_CHECKS
112 #ifdef PRIVILEGE_CHECKS
113 #ifndef LEGION_PRIVILEGE_CHECKS
114 #define LEGION_PRIVILEGE_CHECKS
118 #ifndef LEGION_GC_FIRST_PRIORITY
119 #define LEGION_GC_FIRST_PRIORITY LEGION_GC_MAX_PRIORITY
121 #ifndef LEGION_GC_DEFAULT_PRIORITY
122 #define LEGION_GC_DEFAULT_PRIORITY 0
124 #ifndef LEGION_GC_LAST_PRIORITY
125 #define LEGION_GC_LAST_PRIORITY (LEGION_GC_MIN_PRIORITY+1)
129 #ifndef LEGION_DISABLE_DEPRECATED_ENUMS
130 #ifndef GC_FIRST_PRIORITY
131 #define GC_FIRST_PRIORITY LEGION_GC_MAX_PRIORITY
133 #ifndef GC_DEFAULT_PRIORITY
134 #define GC_DEFAULT_PRIORITY 0
136 #ifndef GC_LAST_PRIORITY
137 #define GC_LAST_PRIORITY (LEGION_GC_MIN_PRIORITY+1)
141 #ifndef LEGION_MAX_DIM
142 #define LEGION_MAX_DIM 3 // maximum number of dimensions for index spaces
145 #ifndef MAX_RETURN_SIZE // For backwards compatibility
146 #ifndef LEGION_MAX_RETURN_SIZE
147 #define LEGION_MAX_RETURN_SIZE 2048 // maximum return type size in bytes
150 #ifndef LEGION_MAX_RETURN_SIZE
151 #define LEGION_MAX_RETURN_SIZE (MAX_RETURN_SIZE)
155 #ifndef MAX_FIELDS // For backwards compatibility
156 #ifndef LEGION_MAX_FIELDS
157 #define LEGION_MAX_FIELDS 256 // must be a power of 2
160 #ifndef LEGION_MAX_FIELDS
161 #define LEGION_MAX_FIELDS (MAX_FIELDS)
168 #ifndef MAX_NUM_NODES // For backwards compatibility
169 #ifndef LEGION_MAX_NUM_NODES
170 #define LEGION_MAX_NUM_NODES 1024 // must be a power of 2
173 #ifndef LEGION_MAX_NUM_NODES
174 #define LEGION_MAX_NUM_NODES (MAX_NUM_NODES)
178 #ifndef MAX_NUM_PROCS // For backwards compatibility
179 #ifndef LEGION_MAX_NUM_PROCS
180 #define LEGION_MAX_NUM_PROCS 64 // must be a power of 2
183 #ifndef LEGION_MAX_NUM_PROCS
184 #define LEGION_MAX_NUM_PROCS (MAX_NUM_PROCS)
188 #ifndef MAX_APPLICATION_TASK_ID // For backwards compatibility
189 #ifndef LEGION_MAX_APPLICATION_TASK_ID
190 #define LEGION_MAX_APPLICATION_TASK_ID (1<<20)
193 #ifndef LEGION_MAX_APPLICATION_TASK_ID
194 #define LEGION_MAX_APPLICATION_TASK_ID (MAX_APPLICATION_TASK_ID)
198 #ifndef MAX_APPLICATION_FIELD_ID // For backwards compatibility
199 #ifndef LEGION_MAX_APPLICATION_FIELD_ID
200 #define LEGION_MAX_APPLICATION_FIELD_ID (1<<20)
203 #ifndef LEGION_MAX_APPLICATION_FIELD_ID
204 #define LEGION_MAX_APPLICATION_FIELD_ID (MAX_APPLICATION_FIELD_ID)
208 #ifndef MAX_APPLICATION_MAPPER_ID // For backwards compatibility
209 #ifndef LEGION_MAX_APPLICATION_MAPPER_ID
210 #define LEGION_MAX_APPLICATION_MAPPER_ID (1<<20)
213 #ifndef LEGION_MAX_APPLICATION_MAPPER_ID
214 #define LEGION_MAX_APPLICATION_MAPPER_ID (MAX_APPLICATION_MAPPER_ID)
218 #ifndef LEGION_MAX_APPLICATION_TRACE_ID
219 #define LEGION_MAX_APPLICATION_TRACE_ID (1<<20)
222 #ifndef MAX_APPLICATION_PROJECTION_ID // For backwards compatibility
223 #ifndef LEGION_MAX_APPLICATION_PROJECTION_ID
224 #define LEGION_MAX_APPLICATION_PROJECTION_ID (1<<20)
227 #ifndef LEGION_MAX_APPLICATION_PROJECTION_ID
228 #define LEGION_MAX_APPLICATION_PROJECTION_ID (MAX_APPLICATION_PROJECTION_ID)
232 #ifndef MAX_APPLICATION_SHARDING_ID // For backwards compatibility
233 #ifndef LEGION_MAX_APPLICATION_SHARDING_ID
234 #define LEGION_MAX_APPLICATION_SHARDING_ID (1<<20)
237 #ifndef LEGION_MAX_APPLICATION_SHARDING_ID
238 #define LEGION_MAX_APPLICATION_SHARDING_ID (MAX_APPLICATION_SHARDING_ID)
242 #ifndef LEGION_MAX_APPLICATION_REDOP_ID
243 #ifdef LEGION_USE_PYTHON_CFFI
244 #define LEGION_MAX_APPLICATION_REDOP_ID 1048576
246 #define LEGION_MAX_APPLICATION_REDOP_ID (1<<20) // Python CFFI can't do this math
250 #ifndef LEGION_MAX_APPLICATION_SERDEZ_ID
251 #define LEGION_MAX_APPLICATION_SERDEZ_ID (1<<20)
254 #ifndef DEFAULT_LOCAL_FIELDS // For backwards compatibility
255 #ifndef LEGION_DEFAULT_LOCAL_FIELDS
256 #define LEGION_DEFAULT_LOCAL_FIELDS 4
259 #ifndef LEGION_DEFAULT_LOCAL_FIELDS
260 #define LEGION_DEFAULT_LOCAL_FIELDS (DEFAULT_LOCAL_FIELDS)
264 #ifndef DEFAULT_MAPPER_SLOTS // For backwards compatibility
265 #ifndef LEGION_DEFAULT_MAPPER_SLOTS
266 #define LEGION_DEFAULT_MAPPER_SLOTS 8
269 #ifndef LEGION_DEFAULT_MAPPER_SLOTS
270 #define LEGION_DEFAULT_MAPPER_SLOTS (DEFAULT_MAPPER_SLOTS)
275 #ifndef DEFAULT_CONTEXTS // For backwards compatibility
276 #ifndef LEGION_DEFAULT_CONTEXTS
277 #define LEGION_DEFAULT_CONTEXTS 8
280 #ifndef LEGION_DEFAULT_CONTEXTS
281 #define LEGION_DEFAULT_CONTEXTS (DEFAULT_CONTEXTS)
285 #ifndef DEFAULT_MAX_TASK_WINDOW // For backwards compatibility
286 #ifndef LEGION_DEFAULT_MAX_TASK_WINDOW
287 #define LEGION_DEFAULT_MAX_TASK_WINDOW 1024
290 #ifndef LEGION_DEFAULT_MAX_TASK_WINDOW
291 #define LEGION_DEFAULT_MAX_TASK_WINDOW (DEFAULT_MAX_TASK_WINDOW)
296 #ifndef DEFAULT_TASK_WINDOW_HYSTERESIS // For backwards compatibility
297 #ifndef LEGION_DEFAULT_TASK_WINDOW_HYSTERESIS
298 #define LEGION_DEFAULT_TASK_WINDOW_HYSTERESIS 25
301 #ifndef LEGION_DEFAULT_TASK_WINDOW_HYSTERESIS
302 #define LEGION_DEFAULT_TASK_WINDOW_HYSTERESIS (DEFAULT_TASK_WINDOW_HYSTERESIS)
307 #ifndef DEFAULT_MIN_TASKS_TO_SCHEDULE // For backwards compatibility
308 #ifndef LEGION_DEFAULT_MIN_TASKS_TO_SCHEDULE
309 #define LEGION_DEFAULT_MIN_TASKS_TO_SCHEDULE 32
312 #ifndef LEGION_DEFAULT_MIN_TASKS_TO_SCHEDULE
313 #define LEGION_DEFAULT_MIN_TASKS_TO_SCHEDULE (DEFAULT_MIN_TASKS_TO_SCHEDULE)
317 #ifndef DEFAULT_META_TASK_VECTOR_WIDTH // For backwards compatibility
318 #ifndef LEGION_DEFAULT_META_TASK_VECTOR_WIDTH
319 #define LEGION_DEFAULT_META_TASK_VECTOR_WIDTH 16
322 #ifndef LEGION_DEFAULT_META_TASK_VECTOR_WIDTH
323 #define LEGION_DEFAULT_META_TASK_VECTOR_WIDTH (DEFAULT_META_TASK_VECTOR_WIDTH)
327 #ifndef LEGION_DEFAULT_MAX_TEMPLATES_PER_TRACE
328 #define LEGION_DEFAULT_MAX_TEMPLATES_PER_TRACE 16
331 #ifndef DEFAULT_MAX_REPLAY_PARALLELISM // For backwards compatibility
332 #ifndef LEGION_DEFAULT_MAX_REPLAY_PARALLELISM
333 #define LEGION_DEFAULT_MAX_REPLAY_PARALLELISM 2
336 #ifndef LEGION_DEFAULT_MAX_REPLAY_PARALLELISM
337 #define LEGION_DEFAULT_MAX_REPLAY_PARALLELISM (DEFAULT_MAX_REPLAY_PARALLELISM)
344 #ifndef DEFAULT_MAX_MESSAGE_SIZE // For backwards compatibility
345 #ifndef LEGION_DEFAULT_MAX_MESSAGE_SIZE
346 #define LEGION_DEFAULT_MAX_MESSAGE_SIZE 16384
349 #ifndef LEGION_DEFAULT_MAX_MESSAGE_SIZE
350 #define LEGION_DEFAULT_MAX_MESSAGE_SIZE (DEFAULT_MAX_MESSAGE_SIZE)
357 #ifndef DEFAULT_LOGICAL_USER_TIMEOUT // For backwards compatibility
358 #ifndef LEGION_DEFAULT_LOGICAL_USER_TIMEOUT
359 #define LEGION_DEFAULT_LOGICAL_USER_TIMEOUT 32
362 #ifndef LEGION_DEFAULT_LOGICAL_USER_TIMEOUT
363 #define LEGION_DEFAULT_LOGICAL_USER_TIMEOUT (DEFAULT_LOGICAL_USER_TIMEOUT)
370 #ifndef DEFAULT_GC_EPOCH_SIZE // For backwards compatibility
371 #ifndef LEGION_DEFAULT_GC_EPOCH_SIZE
372 #define LEGION_DEFAULT_GC_EPOCH_SIZE 64
375 #ifndef LEGION_DEFAULT_GC_EPOCH_SIZE
376 #define LEGION_DEFAULT_GC_EPOCH_SIZE (DEFAULT_GC_EPOCH_SIZE)
383 #ifndef TRACE_ALLOCATION_FREQUENCY // For backwards compatibility
384 #ifndef LEGION_TRACE_ALLOCATION_FREQUENCY
385 #define LEGION_TRACE_ALLOCATION_FREQUENCY 1024
388 #ifndef LEGION_TRACE_ALLOCATION_FREQUENCY
389 #define LEGION_TRACE_ALLOCATION_FREQUENCY (TRACE_ALLOCATION_FREQUENCY)
396 #ifndef LEGION_MAX_ALIGNMENT
397 #define LEGION_MAX_ALIGNMENT (2*sizeof(void *))
405 #ifndef LEGION_MAX_RECYCLABLE_OBJECTS
406 #define LEGION_MAX_RECYCLABLE_OBJECTS 1024
411 #ifndef LEGION_INIT_SEED
412 #define LEGION_INIT_SEED 0x221B
417 #ifndef LEGION_COLLECTIVE_RADIX
418 #define LEGION_COLLECTIVE_RADIX 8
423 #ifndef LEGION_SHUTDOWN_RADIX
424 #define LEGION_SHUTDOWN_RADIX 8
428 #ifndef LEGION_MAX_BVH_FANOUT
429 #define LEGION_MAX_BVH_FANOUT 16
433 #ifndef LEGION_NON_REPLAYABLE_WARNING
434 #define LEGION_NON_REPLAYABLE_WARNING 5
438 #ifndef LEGION_NEW_TEMPLATE_WARNING_COUNT
439 #define LEGION_NEW_TEMPLATE_WARNING_COUNT 8
444 #ifndef LEGION_INITIAL_LIBRARY_ID_OFFSET
445 #define LEGION_INITIAL_LIBRARY_ID_OFFSET (1 << 30)
453 #define STATIC_LOG2(x) (LOG2_LOOKUP(uint32_t(x * 0x077CB531U) >> 27))
454 #define LOG2_LOOKUP(x) ((x==0) ? 0 : (x==1) ? 1 : (x==2) ? 28 : (x==3) ? 2 : \
455 (x==4) ? 29 : (x==5) ? 14 : (x==6) ? 24 : (x==7) ? 3 : \
456 (x==8) ? 30 : (x==9) ? 22 : (x==10) ? 20 : (x==11) ? 15 : \
457 (x==12) ? 25 : (x==13) ? 17 : (x==14) ? 4 : (x==15) ? 8 : \
458 (x==16) ? 31 : (x==17) ? 27 : (x==18) ? 13 : (x==19) ? 23 : \
459 (x==20) ? 21 : (x==21) ? 19 : (x==22) ? 16 : (x==23) ? 7 : \
460 (x==24) ? 26 : (x==25) ? 12 : (x==26) ? 18 : (x==27) ? 6 : \
461 (x==28) ? 11 : (x==29) ? 5 : (x==30) ? 10 : 9)
464 #ifndef LEGION_FIELD_LOG2
465 #define LEGION_FIELD_LOG2 STATIC_LOG2(LEGION_MAX_FIELDS)
468 #define LEGION_STRINGIFY(x) #x
469 #define LEGION_MACRO_TO_STRING(x) LEGION_STRINGIFY(x)
471 #define LEGION_DISTRIBUTED_ID_MASK 0x00FFFFFFFFFFFFFFULL
472 #define LEGION_DISTRIBUTED_ID_FILTER(x) ((x) & LEGION_DISTRIBUTED_ID_MASK)
473 #define LEGION_DISTRIBUTED_HELP_DECODE(x) ((x) >> 56)
474 #define LEGION_DISTRIBUTED_HELP_ENCODE(x,y) ((x) | (((long long)(y)) << 56))
476 #if LEGION_MAX_DIM == 1
478 #define LEGION_FOREACH_N(__func__) \
480 #define LEGION_FOREACH_NN(__func__) \
483 #elif LEGION_MAX_DIM == 2
485 #define LEGION_FOREACH_N(__func__) \
488 #define LEGION_FOREACH_NN(__func__) \
494 #elif LEGION_MAX_DIM == 3
496 #define LEGION_FOREACH_N(__func__) \
500 #define LEGION_FOREACH_NN(__func__) \
511 #elif LEGION_MAX_DIM == 4
513 #define LEGION_FOREACH_N(__func__) \
518 #define LEGION_FOREACH_NN(__func__) \
536 #elif LEGION_MAX_DIM == 5
538 #define LEGION_FOREACH_N(__func__) \
544 #define LEGION_FOREACH_NN(__func__) \
571 #elif LEGION_MAX_DIM == 6
573 #define LEGION_FOREACH_N(__func__) \
580 #define LEGION_FOREACH_NN(__func__) \
618 #elif LEGION_MAX_DIM == 7
620 #define LEGION_FOREACH_N(__func__) \
628 #define LEGION_FOREACH_NN(__func__) \
679 #elif LEGION_MAX_DIM == 8
681 #define LEGION_FOREACH_N(__func__) \
690 #define LEGION_FOREACH_NN(__func__) \
756 #elif LEGION_MAX_DIM == 9
758 #define LEGION_FOREACH_N(__func__) \
768 #define LEGION_FOREACH_NN(__func__) \
852 #error "Unsupported LEGION_MAX_DIM"
855 #ifdef LEGION_DISABLE_DEPRECATED_ENUMS
856 #define LEGION_DEPRECATED_ENUM(x)
857 #define LEGION_DEPRECATED_ENUM_FROM(x,y)
858 #elif defined(LEGION_WARN_DEPRECATED_ENUMS)
859 #if defined(__cplusplus) && __cplusplus >= 201402L
861 #define LEGION_DEPRECATED_ENUM(x) \
862 x [[deprecated("use LEGION_" #x " instead")]] = LEGION_##x,
863 #define LEGION_DEPRECATED_ENUM_FROM(x,y) \
864 x [[deprecated("use " #y " instead")]] = y,
867 #define LEGION_DEPRECATED_ENUM(x) \
868 x __attribute__ ((deprecated ("use LEGION_" #x " instead"))) = LEGION_##x,
869 #define LEGION_DEPRECATED_ENUM_FROM(x,y) \
870 x __attribute__ ((deprecated ("use " #y " instead"))) = y,
873 #define LEGION_DEPRECATED_ENUM(x) \
875 #define LEGION_DEPRECATED_ENUM_FROM(x,y) \
883 typedef enum legion_error_t {
885 ERROR_RESERVED_REDOP_ID = 1,
886 ERROR_DUPLICATE_REDOP_ID = 2,
887 ERROR_RESERVED_TYPE_HANDLE = 3,
888 ERROR_DUPLICATE_TYPE_HANDLE = 4,
889 ERROR_DUPLICATE_FIELD_ID = 5,
890 ERROR_PARENT_TYPE_HANDLE_NONEXISTENT = 6,
891 ERROR_MISSING_PARENT_FIELD_ID = 7,
892 ERROR_RESERVED_PROJECTION_ID = 8,
893 ERROR_DUPLICATE_PROJECTION_ID = 9,
894 ERROR_UNREGISTERED_VARIANT = 10,
895 ERROR_USE_REDUCTION_REGION_REQ = 11,
896 ERROR_INVALID_ACCESSOR_REQUESTED = 12,
897 ERROR_PHYSICAL_REGION_UNMAPPED = 13,
898 ERROR_RESERVED_TASK_ID = 14,
899 ERROR_INVALID_ARG_MAP_DESTRUCTION = 15,
900 ERROR_RESERVED_MAPPING_ID = 16,
901 ERROR_BAD_INDEX_PRIVILEGES = 17,
902 ERROR_BAD_FIELD_PRIVILEGES = 18,
903 ERROR_BAD_REGION_PRIVILEGES = 19,
904 ERROR_BAD_PARTITION_PRIVILEGES = 20,
905 ERROR_BAD_PARENT_INDEX = 21,
906 ERROR_BAD_INDEX_PATH = 22,
907 ERROR_BAD_PARENT_REGION = 23,
908 ERROR_BAD_REGION_PATH = 24,
909 ERROR_BAD_PARTITION_PATH = 25,
910 ERROR_BAD_FIELD = 26,
911 ERROR_BAD_REGION_TYPE = 27,
912 ERROR_INVALID_TYPE_HANDLE = 28,
913 ERROR_LEAF_TASK_VIOLATION = 29,
914 ERROR_INVALID_REDOP_ID = 30,
915 ERROR_REDUCTION_INITIAL_VALUE_MISMATCH = 31,
916 ERROR_INVALID_UNMAP_OP = 32,
917 ERROR_INVALID_DUPLICATE_MAPPING = 33,
918 ERROR_INVALID_REGION_ARGUMENT_INDEX = 34,
919 ERROR_INVALID_MAPPING_ACCESS = 35,
920 ERROR_STALE_INLINE_MAPPING_ACCESS = 36,
921 ERROR_INVALID_INDEX_SPACE_PARENT = 37,
922 ERROR_INVALID_INDEX_PART_PARENT = 38,
923 ERROR_INVALID_INDEX_SPACE_COLOR = 39,
924 ERROR_INVALID_INDEX_PART_COLOR = 40,
925 ERROR_INVALID_INDEX_SPACE_HANDLE = 41,
926 ERROR_INVALID_INDEX_PART_HANDLE = 42,
927 ERROR_FIELD_SPACE_FIELD_MISMATCH = 43,
928 ERROR_INVALID_INSTANCE_FIELD = 44,
929 ERROR_DUPLICATE_INSTANCE_FIELD = 45,
930 ERROR_TYPE_INST_MISMATCH = 46,
931 ERROR_TYPE_INST_MISSIZE = 47,
932 ERROR_INVALID_INDEX_SPACE_ENTRY = 48,
933 ERROR_INVALID_INDEX_PART_ENTRY = 49,
934 ERROR_INVALID_FIELD_SPACE_ENTRY = 50,
935 ERROR_INVALID_REGION_ENTRY = 51,
936 ERROR_INVALID_PARTITION_ENTRY = 52,
937 ERROR_ALIASED_INTRA_TASK_REGIONS = 53,
938 ERROR_MAX_FIELD_OVERFLOW = 54,
939 ERROR_MISSING_TASK_COLLECTION = 55,
940 ERROR_INVALID_IDENTITY_PROJECTION_USE = 56,
941 ERROR_INVALID_PROJECTION_ID = 57,
942 ERROR_NON_DISJOINT_PARTITION = 58,
943 ERROR_BAD_PROJECTION_USE = 59,
944 ERROR_INDEPENDENT_SLICES_VIOLATION = 60,
945 ERROR_INVALID_REGION_HANDLE = 61,
946 ERROR_INVALID_PARTITION_HANDLE = 62,
947 ERROR_VIRTUAL_MAP_IN_LEAF_TASK = 63,
948 ERROR_LEAF_MISMATCH = 64,
949 ERROR_INVALID_PROCESSOR_SELECTION = 65,
950 ERROR_INVALID_VARIANT_SELECTION = 66,
951 ERROR_INVALID_MAPPER_OUTPUT = 67,
952 ERROR_UNINITIALIZED_USE = 68,
953 ERROR_INVALID_INDEX_DOMAIN = 69,
954 ERROR_INVALID_INDEX_PART_DOMAIN = 70,
955 ERROR_PARTITION_VERIFICATION = 71,
956 ERROR_NON_DISJOINT_TASK_REGIONS = 72,
957 ERROR_INVALID_FIELD_ACCESSOR_PRIVILEGES = 73,
958 ERROR_INVALID_PREMAPPED_REGION_LOCATION = 74,
959 ERROR_IDEMPOTENT_MISMATCH = 75,
960 ERROR_INVALID_MAPPER_ID = 76,
961 ERROR_INVALID_TREE_ENTRY = 77,
962 ERROR_FUTURE_MAP_COUNT_MISMATCH = 78,
963 ERROR_MAXIMUM_NODES_EXCEEDED = 79,
964 ERROR_MAXIMUM_PROCS_EXCEEDED = 80,
965 ERROR_INVALID_TASK_ID = 81,
966 ERROR_INVALID_MAPPER_DOMAIN_SLICE = 82,
967 ERROR_UNFOLDABLE_REDUCTION_OP = 83,
968 ERROR_INVALID_INLINE_ID = 84,
969 ERROR_ILLEGAL_MUST_PARALLEL_INLINE = 85,
970 ERROR_ILLEGAL_MAPPER_PROCESSOR = 86,
971 ERROR_FUTURE_SIZE_MISMATCH = 87,
972 ERROR_ILLEGAL_PREDICATE_FUTURE = 88,
973 ERROR_COPY_REQUIREMENTS_MISMATCH = 89,
974 ERROR_INVALID_COPY_FIELDS_SIZE = 90,
975 ERROR_COPY_SPACE_MISMATCH = 91,
976 ERROR_INVALID_COPY_PRIVILEGE = 92,
977 ERROR_INVALID_PARTITION_COLOR = 93,
978 ERROR_EXCEEDED_MAX_CONTEXTS = 94,
979 ERROR_ACQUIRE_MISMATCH = 95,
980 ERROR_RELEASE_MISMATCH = 96,
981 ERROR_INNER_LEAF_MISMATCH = 97,
982 ERROR_INVALID_FIELD_PRIVILEGES = 98,
983 ERROR_ILLEGAL_NESTED_TRACE = 99,
984 ERROR_UNMATCHED_END_TRACE = 100,
985 ERROR_CONFLICTING_PARENT_MAPPING_DEADLOCK = 101,
986 ERROR_CONFLICTING_SIBLING_MAPPING_DEADLOCK = 102,
987 ERROR_INVALID_PARENT_REQUEST = 103,
988 ERROR_INVALID_FIELD_ID = 104,
989 ERROR_NESTED_MUST_EPOCH = 105,
990 ERROR_UNMATCHED_MUST_EPOCH = 106,
991 ERROR_MUST_EPOCH_FAILURE = 107,
992 ERROR_DOMAIN_DIM_MISMATCH = 108,
993 ERROR_INVALID_PROCESSOR_NAME = 109,
994 ERROR_INVALID_INDEX_SUBSPACE_REQUEST = 110,
995 ERROR_INVALID_INDEX_SUBPARTITION_REQUEST = 111,
996 ERROR_INVALID_FIELD_SPACE_REQUEST = 112,
997 ERROR_INVALID_LOGICAL_SUBREGION_REQUEST = 113,
998 ERROR_INVALID_LOGICAL_SUBPARTITION_REQUEST = 114,
999 ERROR_ALIASED_REGION_REQUIREMENTS = 115,
1000 ERROR_MISSING_DEFAULT_PREDICATE_RESULT = 116,
1001 ERROR_PREDICATE_RESULT_SIZE_MISMATCH = 117,
1002 ERROR_MPI_INTEROPERABILITY_NOT_CONFIGURED = 118,
1003 ERROR_NESTED_REGISTRATION_CALLBACKS = 119,
1004 ERROR_EMPTY_INDEX_PARTITION = 120,
1005 ERROR_INCONSISTENT_SEMANTIC_TAG = 121,
1006 ERROR_INVALID_SEMANTIC_TAG = 122,
1007 ERROR_DUMMY_CONTEXT_OPERATION = 123,
1008 ERROR_INVALID_CONTEXT_CONFIGURATION = 124,
1009 ERROR_INDEX_TREE_MISMATCH = 125,
1010 ERROR_INDEX_PARTITION_ANCESTOR = 126,
1011 ERROR_INVALID_PENDING_CHILD = 127,
1012 ERROR_ILLEGAL_FILE_ATTACH = 128,
1013 ERROR_ILLEGAL_ALLOCATOR_REQUEST = 129,
1014 ERROR_ILLEGAL_DETACH_OPERATION = 130,
1015 ERROR_NO_PROCESSORS = 131,
1016 ERROR_ILLEGAL_REDUCTION_VIRTUAL_MAPPING = 132,
1017 ERROR_INVALID_MAPPED_REGION_LOCATION = 133,
1018 ERROR_RESERVED_SERDEZ_ID = 134,
1019 ERROR_DUPLICATE_SERDEZ_ID = 135,
1020 ERROR_INVALID_SERDEZ_ID = 136,
1021 ERROR_TRACE_VIOLATION = 137,
1022 ERROR_INVALID_TARGET_PROC = 138,
1023 ERROR_INCOMPLETE_TRACE = 139,
1024 ERROR_STATIC_CALL_POST_RUNTIME_START = 140,
1025 ERROR_ILLEGAL_GLOBAL_VARIANT_REGISTRATION = 141,
1026 ERROR_ILLEGAL_USE_OF_NON_GLOBAL_VARIANT = 142,
1027 ERROR_RESERVED_CONSTRAINT_ID = 143,
1028 ERROR_INVALID_CONSTRAINT_ID = 144,
1029 ERROR_DUPLICATE_CONSTRAINT_ID = 145,
1030 ERROR_ILLEGAL_WAIT_FOR_SHUTDOWN = 146,
1031 ERROR_DEPRECATED_METHOD_USE = 147,
1032 ERROR_MAX_APPLICATION_TASK_ID_EXCEEDED = 148,
1033 ERROR_MAX_APPLICATION_MAPPER_ID_EXCEEDED = 149,
1034 ERROR_INVALID_ARGUMENTS_TO_MAPPER_RUNTIME = 150,
1035 ERROR_INVALID_MAPPER_SYNCHRONIZATION = 151,
1036 ERROR_ILLEGAL_PARTIAL_ACQUISITION = 152,
1037 ERROR_ILLEGAL_INTERFERING_RESTRICTIONS = 153,
1038 ERROR_ILLEGAL_PARTIAL_RESTRICTION = 154,
1039 ERROR_ILLEGAL_INTERFERING_ACQUISITIONS = 155,
1040 ERROR_UNRESTRICTED_ACQUIRE = 156,
1041 ERROR_UNACQUIRED_RELEASE = 157,
1042 ERROR_UNATTACHED_DETACH = 158,
1043 ERROR_INVALID_PROJECTION_RESULT = 159,
1044 ERROR_ILLEGAL_IMPLICIT_MAPPING = 160,
1045 ERROR_INNER_TASK_VIOLATION = 161,
1046 ERROR_REQUEST_FOR_EMPTY_FUTURE = 162,
1047 ERROR_ILLEGAL_REMAP_IN_STATIC_TRACE = 163,
1048 ERROR_DYNAMIC_TYPE_MISMATCH = 164,
1049 ERROR_MISSING_LOCAL_VARIABLE = 165,
1050 ERROR_ACCESSOR_PRIVILEGE_CHECK = 166,
1051 ERROR_ACCESSOR_BOUNDS_CHECK = 167,
1052 ERROR_DUPLICATE_MPI_CONFIG = 168,
1053 ERROR_UNKNOWN_MAPPABLE = 169,
1054 ERROR_DEPRECATED_PROJECTION = 170,
1055 ERROR_ILLEGAL_PARTIAL_ACQUIRE = 171,
1056 ERROR_ILLEGAL_INTERFERING_RESTRICTON = 172,
1057 ERROR_ILLEGAL_INTERFERING_ACQUIRE = 173,
1058 ERROR_ILLEGAL_REDUCTION_REQUEST = 175,
1059 ERROR_PROJECTION_REGION_REQUIREMENTS = 180,
1060 ERROR_REQUIREMENTS_INVALID_REGION = 181,
1061 ERROR_FIELD_NOT_VALID_FIELD = 182,
1062 ERROR_INSTANCE_FIELD_PRIVILEGE = 183,
1063 ERROR_ILLEGAL_REQUEST_VIRTUAL_INSTANCE = 185,
1064 ERROR_PARENT_TASK_INLINE = 186,
1065 ERROR_REGION_NOT_SUBREGION = 189,
1066 ERROR_REGION_REQUIREMENT_INLINE = 190,
1067 ERROR_PRIVILEGES_FOR_REGION = 191,
1068 ERROR_MISSING_INSTANCE_FIELD = 195,
1069 ERROR_NUMBER_SOURCE_REQUIREMENTS = 204,
1070 ERROR_COPY_SOURCE_REQUIREMENTS = 205,
1071 ERROR_COPY_DESTINATION_REQUIREMENT = 206,
1072 ERROR_TYPE_MISMATCH = 208,
1073 ERROR_TYPE_FIELD_MISMATCH = 209,
1074 ERROR_ALIASED_REQION_REQUIREMENTS = 210,
1075 ERROR_FIELD_SIZE_MISMATCH = 211,
1076 ERROR_REQUEST_INVALID_REGION = 212,
1077 ERROR_FIELD_SERDEZ_MISMATCH = 213,
1078 ERROR_SERDEZ_FIELD_DISALLOWED = 214,
1079 ERROR_INSTANCE_FIELD_DUPLICATE = 215,
1080 ERROR_PARENT_TASK_COPY = 216,
1081 ERROR_REGION_REQUIREMENT_COPY = 220,
1082 ERROR_SOURCE_REGION_REQUIREMENT = 232,
1083 ERROR_DESTINATION_REGION_REQUIREMENT = 233,
1084 ERROR_COPY_SOURCE_REQUIREMENT = 235,
1085 ERROR_INDEX_SPACE_COPY = 237,
1087 ERROR_MAPPER_FAILED_ACQUIRE = 245,
1088 ERROR_FIELD_NOT_VALID = 248,
1089 ERROR_PARENT_TASK_ACQUIRE = 249,
1090 ERROR_REGION_REQUIREMENT_ACQUIRE = 253,
1091 ERROR_PARENT_TASK_RELEASE = 257,
1092 ERROR_REGION_REQUIREMENT_RELEASE = 261,
1093 ERROR_MUST_EPOCH_DEPENDENCE = 267,
1094 ERROR_PARENT_TASK_PARTITION = 268,
1095 ERROR_PARENT_TASK_FILL = 273,
1096 ERROR_REGION_REQUIREMENT_FILL = 278,
1097 ERROR_PRIVILEGES_REGION_SUBSET = 279,
1098 ERROR_INDEX_SPACE_FILL = 281,
1099 ERROR_ILLEGAL_FILE_ATTACHMENT = 284,
1100 ERROR_REGION_REQUIREMENT_ATTACH = 293,
1101 ERROR_PARENT_TASK_DETACH = 295,
1103 ERROR_MAPPER_REQUESTED_EXECUTION = 297,
1104 ERROR_PARENT_TASK_TASK = 298,
1105 ERROR_INDEX_SPACE_NOTSUBSPACE = 299,
1106 ERROR_PRIVILEGES_INDEX_SPACE = 300,
1107 ERROR_PROJECTION_REGION_REQUIREMENT = 303,
1108 ERROR_NONDISJOINT_PARTITION_SELECTED = 304,
1109 ERROR_PARTITION_NOT_SUBPARTITION = 312,
1110 ERROR_REGION_REQUIREMENT_TASK = 313,
1111 ERROR_PRIVILEGES_REGION_NOTSUBSET = 314,
1112 ERROR_PRIVILEGES_PARTITION_NOTSUBSET = 315,
1113 ERROR_INVALID_LOCATION_CONSTRAINT = 344,
1114 ERROR_ALIASED_INTERFERING_REGION = 356,
1115 ERROR_REDUCTION_OPERATION_INDEX = 357,
1117 ERROR_INDEX_SPACE_TASK = 359,
1118 ERROR_TRACE_VIOLATION_RECORDED = 363,
1119 ERROR_TRACE_VIOLATION_OPERATION = 364,
1120 ERROR_INVALID_MAPPER_REQUEST = 366,
1121 ERROR_ILLEGAL_RUNTIME_REMAPPING = 377,
1122 ERROR_UNABLE_FIND_TASK_LOCAL = 378,
1123 ERROR_INDEXPARTITION_NOT_SAME_INDEX_TREE = 379,
1124 ERROR_TASK_ATTEMPTED_ALLOCATE_FILED = 386,
1125 ERROR_EXCEEDED_MAXIMUM_NUMBER_LOCAL_FIELDS = 387,
1126 ERROR_UNABLE_ALLOCATE_LOCAL_FIELD = 388,
1127 ERROR_TASK_ATTEMPTED_ALLOCATE_FIELD = 389,
1129 ERROR_PREDICATED_INDEX_TASK_LAUNCH = 393,
1130 ERROR_ATTEMPTED_INLINE_MAPPING_REGION = 395,
1131 ERROR_ATTEMPTED_EXTERNAL_ATTACH = 397,
1132 ERROR_ILLEGAL_PREDICATE_CREATION = 399,
1133 ERROR_ILLEGAL_END_TRACE_CALL = 402,
1134 ERROR_UNMATCHED_END_STATIC_TRACE = 403,
1135 ERROR_ILLEGAL_END_STATIC_TRACE = 404,
1136 ERROR_ILLEGAL_ACQUIRE_OPERATION = 405,
1137 ERROR_ILLEGAL_RELEASE_OPERATION = 406,
1138 ERROR_TASK_FAILED_END_TRACE = 408,
1139 ERROR_ILLEGAL_INDEX_SPACE_CREATION = 410,
1140 ERROR_UMATCHED_END_TRACE = 411,
1141 ERROR_ILLEGAL_NESTED_STATIC_TRACE = 412,
1142 ERROR_ILLEGAL_UNION_INDEX_SPACES = 414,
1143 ERROR_ILLEGAL_INTERSECT_INDEX_SPACES = 415,
1144 ERROR_ILLEGAL_SUBTRACT_INDEX_SPACES = 416,
1145 ERROR_ILLEGAL_INDEX_SPACE_DELETION = 417,
1146 ERROR_ILLEGAL_INDEX_PARTITION_DELETION = 418,
1147 ERROR_ILLEGAL_EQUAL_PARTITION_CREATION = 419,
1148 ERROR_ILLEGAL_UNION_PARTITION_CREATION = 420,
1149 ERROR_ILLEGAL_INTERSECTION_PARTITION_CREATION = 421,
1150 ERROR_ILLEGAL_DIFFERENCE_PARTITION_CREATION = 422,
1151 ERROR_ILLEGAL_CREATE_CROSS_PRODUCT_PARTITION = 423,
1152 ERROR_ILLEGAL_CREATE_ASSOCIATION = 424,
1153 ERROR_ILLEGAL_CREATE_RESTRICTED_PARTITION = 425,
1154 ERROR_ILLEGAL_PARTITION_FIELD = 426,
1155 ERROR_ILLEGAL_PARTITION_IMAGE = 427,
1156 ERROR_ILLEGAL_PARTITION_IMAGE_RANGE = 428,
1157 ERROR_ILLEGAL_PARTITION_PREIMAGE = 429,
1158 ERROR_ILLEGAL_PARTITION_PREIMAGE_RANGE = 430,
1159 ERROR_ILLEGAL_CREATE_PENDING_PARTITION = 431,
1160 ERROR_ILLEGAL_CREATE_INDEX_SPACE_UNION = 432,
1161 ERROR_ILLEGAL_CREATE_INDEX_SPACE_INTERSECTION = 434,
1162 ERROR_ILLEGAL_CREATE_INDEX_SPACE_DIFFERENCE = 436,
1163 ERROR_ILLEGAL_CREATE_FIELD_SPACE = 437,
1164 ERROR_ILLEGAL_DESTROY_FIELD_SPACE = 438,
1165 ERROR_ILLEGAL_NONLOCAL_FIELD_ALLOCATION = 439,
1166 ERROR_ILLEGAL_FIELD_DESTRUCTION = 440,
1167 ERROR_ILLEGAL_NONLOCAL_FIELD_ALLOCATION2 = 441,
1168 ERROR_ILLEGAL_FIELD_DESTRUCTION2 = 442,
1169 ERROR_ILLEGAL_REGION_CREATION = 443,
1170 ERROR_ILLEGAL_REGION_DESTRUCTION = 444,
1171 ERROR_ILLEGAL_PARTITION_DESTRUCTION = 445,
1172 ERROR_ILLEGAL_CREATE_FIELD_ALLOCATION = 447,
1173 ERROR_ILLEGAL_EXECUTE_TASK_CALL = 448,
1174 ERROR_ILLEGAL_EXECUTE_INDEX_SPACE = 449,
1175 ERROR_ILLEGAL_MAP_REGION = 451,
1176 ERROR_ILLEGAL_REMAP_OPERATION = 452,
1177 ERROR_ILLEGAL_UNMAP_OPERATION = 453,
1178 ERROR_ILLEGAL_FILL_OPERATION_CALL = 454,
1179 ERROR_ILLEGAL_INDEX_FILL_OPERATION_CALL = 455,
1180 ERROR_ILLEGAL_COPY_FILL_OPERATION_CALL = 456,
1181 ERROR_ILLEGAL_INDEX_COPY_OPERATION = 457,
1182 ERROR_ILLEGAL_ATTACH_RESOURCE_OPERATION = 460,
1183 ERROR_ILLEGAL_DETACH_RESOURCE_OPERATION = 461,
1184 ERROR_ILLEGAL_LEGION_EXECUTE_MUST_EPOCH = 462,
1185 ERROR_ILLEGAL_TIMING_MEASUREMENT = 463,
1186 ERROR_ILLEGAL_LEGION_MAPPING_FENCE_CALL = 464,
1187 ERROR_ILLEGAL_LEGION_EXECUTION_FENCE_CALL = 465,
1188 ERROR_ILLEGAL_LEGION_COMPLETE_FRAME_CALL = 466,
1189 ERROR_ILLEGAL_GET_PREDICATE_FUTURE = 469,
1190 ERROR_ILLEGAL_LEGION_BEGIN_TRACE = 470,
1191 ERROR_ILLEGAL_LEGION_END_TRACE = 471,
1192 ERROR_ILLEGAL_LEGION_BEGIN_STATIC_TRACE = 472,
1193 ERROR_ILLEGAL_LEGION_END_STATIC_TRACE = 473,
1194 ERROR_INVALID_PHYSICAL_TRACING = 474,
1195 ERROR_INCOMPLETE_PHYSICAL_TRACING = 475,
1196 ERROR_PHYSICAL_TRACING_UNSUPPORTED_OP = 476,
1197 ERROR_DYNAMIC_CALL_PRE_RUNTIME_START = 477,
1198 ERROR_PARENT_INDEX_PARTITION_REQUESTED = 478,
1199 ERROR_FIELD_SPACE_HAS_NO_FIELD = 479,
1200 ERROR_PARENT_LOGICAL_PARTITION_REQUESTED = 480,
1201 ERROR_INVALID_REQUEST_FOR_INDEXSPACE = 481,
1202 ERROR_UNABLE_FIND_ENTRY = 482,
1203 ERROR_INVALID_REQUEST_INDEXPARTITION = 484,
1204 ERROR_INVALID_REQUEST_FIELDSPACE = 487,
1205 ERROR_INVALID_REQUEST_LOGICALREGION = 490,
1206 ERROR_INVALID_REQUEST_LOGICALPARTITION = 492,
1207 ERROR_INVALID_REQUEST_TREE_ID = 493,
1208 ERROR_UNABLE_FIND_TOPLEVEL_TREE = 495,
1209 ERROR_ILLEGAL_DUPLICATE_REQUEST_ALLOCATOR = 502,
1210 ERROR_ILLEGAL_DUPLICATE_FIELD_ID = 510,
1211 ERROR_EXCEEDED_MAXIMUM_NUMBER_ALLOCATED_FIELDS = 511,
1212 ERROR_ILLEGAL_NOT_PREDICATE_CREATION = 533,
1213 ERROR_PARENT_TASK_ATTACH = 534,
1214 ERROR_INVALID_REGION_ARGUMENTS = 535,
1215 ERROR_INVALID_MAPPER_CONTENT = 536,
1216 ERROR_INVALID_DUPLICATE_MAPPER = 537,
1217 ERROR_INVALID_UNLOCK_MAPPER = 538,
1218 ERROR_UNKNOWN_PROFILER_OPTION = 539,
1219 ERROR_MISSING_PROFILER_OPTION = 540,
1220 ERROR_INVALID_PROFILER_SERIALIZER = 541,
1221 ERROR_INVALID_PROFILER_FILE = 542,
1222 ERROR_ILLEGAL_LAYOUT_CONSTRAINT = 543,
1223 ERROR_UNSUPPORTED_LAYOUT_CONSTRAINT = 544,
1224 ERROR_ACCESSOR_FIELD_SIZE_CHECK = 545,
1225 ERROR_ATTACH_OPERATION_MISSING_POINTER = 546,
1226 ERROR_RESERVED_VARIANT_ID = 547,
1227 ERROR_NON_DENSE_RECTANGLE = 548,
1228 ERROR_LIBRARY_COUNT_MISMATCH = 549,
1229 ERROR_MPI_INTEROP_MISCONFIGURATION = 550,
1230 ERROR_NUMBER_SRC_INDIRECT_REQUIREMENTS = 551,
1231 ERROR_NUMBER_DST_INDIRECT_REQUIREMENTS = 552,
1232 ERROR_COPY_GATHER_REQUIREMENT = 553,
1233 ERROR_COPY_SCATTER_REQUIREMENT = 554,
1234 ERROR_MAPPER_SYNCHRONIZATION = 555,
1235 ERROR_DUPLICATE_VARIANT_REGISTRATION = 556,
1236 ERROR_ILLEGAL_IMPLICIT_TOP_LEVEL_TASK = 557,
1237 ERROR_ACCESSOR_COMPATIBILITY_CHECK = 558,
1238 ERROR_ILLEGAL_RESOURCE_DESTRUCTION = 559,
1239 ERROR_DUPLICATE_FUTURE_SET = 560,
1240 ERROR_ATTACH_HDF5 = 561,
1241 ERROR_ATTACH_HDF5_CONSTRAINT = 562,
1242 ERROR_ILLEGAL_PARTITION_BY_DOMAIN = 563,
1243 ERROR_INVALID_PARTITION_BY_DOMAIN_VALUE = 564,
1244 ERROR_FUTURE_MAP_REDOP_TYPE_MISMATCH = 565,
1245 ERROR_MISSING_PARTITION_BY_WEIGHT_COLOR = 566,
1246 ERROR_INVALID_PARTITION_BY_WEIGHT_VALUE = 567,
1247 ERROR_LEGION_CONFIGURATION = 568,
1248 ERROR_CREATION_FUTURE_TYPE_MISMATCH = 569,
1249 ERROR_ILLEGAL_LOCAL_FUNCTION_TASK_LAUNCH = 570,
1250 ERROR_ILLEGAL_SHARED_OWNERSHIP = 571,
1251 ERROR_NON_PIECE_RECTANGLE = 572,
1252 ERROR_ILLEGAL_PERFORM_REGISTRATION_CALLBACK = 573,
1253 ERROR_DEFERRED_ALLOCATION_FAILURE = 574,
1254 ERROR_CONFUSED_USER = 575,
1255 ERROR_INDEX_SPACE_ATTACH = 576,
1256 ERROR_INDEX_SPACE_DETACH = 577,
1257 ERROR_POST_EXECUTION_UNORDERED_OPERATION = 578,
1258 ERROR_COLOCATION_VIOLATION = 579,
1261 LEGION_WARNING_FUTURE_NONLEAF = 1000,
1262 LEGION_WARNING_BLOCKING_EMPTY = 1001,
1263 LEGION_WARNING_WAITING_ALL_FUTURES = 1002,
1264 LEGION_WARNING_WAITING_REGION = 1003,
1265 LEGION_WARNING_MISSING_REGION_WAIT = 1004,
1266 LEGION_WARNING_NONLEAF_ACCESSOR = 1005,
1267 LEGION_WARNING_UNMAPPED_ACCESSOR = 1006,
1268 LEGION_WARNING_READ_DISCARD = 1007,
1269 LEGION_WARNING_MISSING_PROC_CONSTRAINT = 1008,
1270 LEGION_WARNING_DYNAMIC_PROJECTION_REG = 1009,
1271 LEGION_WARNING_DUPLICATE_MPI_CONFIG = 1010,
1272 LEGION_WARNING_NEW_PROJECTION_FUNCTORS = 1011,
1273 LEGION_WARNING_IGNORE_MEMORY_REQUEST = 1012,
1274 LEGION_WARNING_NOT_COPY = 1013,
1275 LEGION_WARNING_REGION_REQUIREMENT_INLINE = 1014,
1276 LEGION_WARNING_MAPPER_FAILED_ACQUIRE = 1015,
1277 LEGION_WARNING_SOURCE_REGION_REQUIREMENT = 1016,
1278 LEGION_WARNING_DESTINATION_REGION_REQUIREMENT = 1017,
1279 LEGION_WARNING_REGION_REQUIREMENTS_INDEX = 1019,
1280 LEGION_WARNING_PRIVILEGE_FIELDS_ACQUIRE = 1020,
1281 LEGION_WARNING_PRIVILEGE_FIELDS_RELEASE = 1021,
1282 LEGION_WARNING_FILE_ATTACH_OPERATION = 1022,
1283 LEGION_WARNING_HDF5_ATTACH_OPERATION = 1023,
1284 LEGION_WARNING_REGION_REQUIREMENT_TASK = 1024,
1285 LEGION_WARNING_EMPTY_FILL_FIELDS = 1025,
1286 LEGION_WARNING_EMPTY_OUTPUT_TARGET = 1026,
1287 LEGION_WARNING_IGNORING_SPURIOUS_TARGET = 1027,
1288 LEGION_WARNING_IGNORING_PROCESSOR_REQUEST = 1028,
1289 LEGION_WARNING_MAPPER_REQUESTED_COMPOSITE = 1030,
1290 LEGION_WARNING_MAPPER_REQUESTED_INLINE = 1031,
1291 LEGION_WARNING_REGION_REQUIREMENTS_INDIVIDUAL = 1032,
1292 LEGION_WARNING_IGNORING_ACQUIRE_REQUEST = 1035,
1293 LEGION_WARNING_WAITING_FUTURE_NONLEAF = 1047,
1294 LEGION_WARNING_RUNTIME_UNMAPPING_REMAPPING = 1050,
1295 LEGION_WARNING_IGNORING_EMPTY_INDEX_TASK_LAUNCH = 1058,
1296 LEGION_WARNING_UNINITIALIZED_USE = 1071,
1297 LEGION_WARNING_MAPPER_REQUESTED_PROFILING = 1082,
1298 LEGION_WARNING_REGION_TREE_STATE_LOGGING = 1083,
1299 LEGION_WARNING_DISJOINTNESS_VERIFICATION = 1084,
1300 LEGION_WARNING_IGNORING_EMPTY_INDEX_SPACE_FILL = 1085,
1301 LEGION_WARNING_IGNORING_EMPTY_INDEX_SPACE_COPY = 1086,
1302 LEGION_WARNING_VARIANT_TASK_NOT_MARKED = 1087,
1303 LEGION_WARNING_MAPPER_REQUESTED_POST = 1088,
1304 LEGION_WARNING_IGNORING_RELEASE_REQUEST = 1089,
1305 LEGION_WARNING_PRUNE_DEPTH_EXCEEDED = 1090,
1306 LEGION_WARNING_GENERIC_ACCESSOR = 1091,
1307 LEGION_WARNING_UNUSED_PROFILING_FILE_NAME = 1092,
1308 LEGION_WARNING_INVALID_PRIORITY_CHANGE = 1093,
1309 LEGION_WARNING_EXTERNAL_ATTACH_OPERATION = 1094,
1310 LEGION_WARNING_EXTERNAL_GARBAGE_PRIORITY = 1095,
1311 LEGION_WARNING_MAPPER_INVALID_INSTANCE = 1096,
1312 LEGION_WARNING_NON_REPLAYABLE_COUNT_EXCEEDED = 1097,
1313 LEGION_WARNING_LARGE_EQUIVALENCE_SET_NODE_USAGE = 1098,
1314 LEGION_WARNING_NON_READ_ONLY_UNTRACK_VALID = 1099,
1315 LEGION_WARNING_LEAKED_RESOURCE = 1100,
1316 LEGION_WARNING_DUPLICATE_DELETION = 1101,
1317 LEGION_WARNING_NEW_TEMPLATE_COUNT_EXCEEDED = 1102,
1318 LEGION_WARNING_NON_CALLBACK_REGISTRATION = 1103,
1319 LEGION_WARNING_COLLECTIVE_INSTANCE_VIOLATION = 1104,
1320 LEGION_WARNING_FAILED_INLINING = 1105,
1321 LEGION_WARNING_PARTITION_VERIFICATION = 1106,
1322 LEGION_WARNING_IMPRECISE_ATTACH_MEMORY = 1107,
1325 LEGION_FATAL_MUST_EPOCH_NOADDRESS = 2000,
1326 LEGION_FATAL_MUST_EPOCH_NOTASKS = 2001,
1327 LEGION_FATAL_DEFAULT_MAPPER_ERROR = 2002,
1328 LEGION_FATAL_SHIM_MAPPER_SUPPORT = 2006,
1329 LEGION_FATAL_UNKNOWN_FIELD_ID = 2007,
1330 LEGION_FATAL_RESTRICTED_SIMULTANEOUS = 2008,
1331 LEGION_FATAL_INCONSISTENT_PHI_VIEW = 2009,
1332 LEGION_FATAL_EXCEEDED_LIBRARY_ID_OFFSET = 2010,
1333 LEGION_FATAL_SEPARATE_RUNTIME_INSTANCES = 2011,
1334 LEGION_FATAL_UNIMPLEMENTED_FEATURE = 2012,
1335 LEGION_FATAL_CALLBACK_NOT_PORTABLE = 2013,
1336 LEGION_FATAL_REDUCTION_ABA_PROBLEM = 2014,
1343 typedef enum legion_privilege_mode_t {
1344 LEGION_NO_ACCESS = 0x00000000,
1345 LEGION_READ_PRIV = 0x00000001,
1346 LEGION_READ_ONLY = 0x00000001,
1347 LEGION_WRITE_PRIV = 0x00000002,
1348 LEGION_REDUCE_PRIV = 0x00000004,
1349 LEGION_REDUCE = 0x00000004,
1350 LEGION_READ_WRITE = 0x00000007,
1351 LEGION_DISCARD_MASK = 0x10000000,
1352 LEGION_WRITE_ONLY = 0x10000002,
1353 LEGION_WRITE_DISCARD = 0x10000007,
1355 LEGION_DEPRECATED_ENUM(NO_ACCESS)
1356 LEGION_DEPRECATED_ENUM(READ_PRIV)
1357 LEGION_DEPRECATED_ENUM(READ_ONLY)
1358 LEGION_DEPRECATED_ENUM(WRITE_PRIV)
1359 LEGION_DEPRECATED_ENUM(REDUCE_PRIV)
1360 LEGION_DEPRECATED_ENUM(REDUCE)
1361 LEGION_DEPRECATED_ENUM(READ_WRITE)
1362 LEGION_DEPRECATED_ENUM(DISCARD_MASK)
1363 LEGION_DEPRECATED_ENUM(WRITE_ONLY)
1364 LEGION_DEPRECATED_ENUM(WRITE_DISCARD)
1365 } legion_privilege_mode_t;
1367 typedef enum legion_allocate_mode_t {
1368 LEGION_NO_MEMORY = 0x00000000,
1369 LEGION_ALLOCABLE = 0x00000001,
1370 LEGION_FREEABLE = 0x00000002,
1371 LEGION_MUTABLE = 0x00000003,
1372 LEGION_REGION_CREATION = 0x00000004,
1373 LEGION_REGION_DELETION = 0x00000008,
1374 LEGION_ALL_MEMORY = 0x0000000F,
1376 LEGION_DEPRECATED_ENUM(NO_MEMORY)
1377 LEGION_DEPRECATED_ENUM(ALLOCABLE)
1378 LEGION_DEPRECATED_ENUM(FREEABLE)
1379 LEGION_DEPRECATED_ENUM(MUTABLE)
1380 LEGION_DEPRECATED_ENUM(REGION_CREATION)
1381 LEGION_DEPRECATED_ENUM(REGION_DELETION)
1382 LEGION_DEPRECATED_ENUM(ALL_MEMORY)
1383 } legion_allocate_mode_t;
1385 typedef enum legion_coherence_property_t {
1386 LEGION_EXCLUSIVE = 0,
1388 LEGION_SIMULTANEOUS = 2,
1391 LEGION_DEPRECATED_ENUM(EXCLUSIVE)
1392 LEGION_DEPRECATED_ENUM(ATOMIC)
1393 LEGION_DEPRECATED_ENUM(SIMULTANEOUS)
1394 LEGION_DEPRECATED_ENUM(RELAXED)
1395 } legion_coherence_property_t;
1398 typedef enum legion_region_flags_t {
1399 LEGION_NO_FLAG = 0x00000000,
1400 LEGION_VERIFIED_FLAG = 0x00000001,
1401 LEGION_NO_ACCESS_FLAG = 0x00000002,
1402 LEGION_RESTRICTED_FLAG = 0x00000004,
1403 LEGION_MUST_PREMAP_FLAG = 0x00000008,
1411 LEGION_COMPLETE_PROJECTION_WRITE_FLAG = 0x00000010,
1413 LEGION_DEPRECATED_ENUM(NO_FLAG)
1414 LEGION_DEPRECATED_ENUM(VERIFIED_FLAG)
1415 LEGION_DEPRECATED_ENUM(NO_ACCESS_FLAG)
1416 LEGION_DEPRECATED_ENUM(RESTRICTED_FLAG)
1417 LEGION_DEPRECATED_ENUM(MUST_PREMAP_FLAG)
1418 LEGION_DEPRECATED_ENUM(COMPLETE_PROJECTION_WRITE_FLAG)
1419 } legion_region_flags_t;
1421 typedef enum legion_projection_type_t {
1422 LEGION_SINGULAR_PROJECTION,
1423 LEGION_PARTITION_PROJECTION,
1424 LEGION_REGION_PROJECTION,
1426 LEGION_DEPRECATED_ENUM_FROM(SINGULAR, LEGION_SINGULAR_PROJECTION)
1427 LEGION_DEPRECATED_ENUM_FROM(PART_PROJECTION, LEGION_PARTITION_PROJECTION)
1428 LEGION_DEPRECATED_ENUM_FROM(REG_PROJECTION, LEGION_REGION_PROJECTION)
1429 } legion_projection_type_t;
1431 typedef legion_projection_type_t legion_handle_type_t;
1433 typedef enum legion_partition_kind_t {
1434 LEGION_DISJOINT_KIND,
1435 LEGION_ALIASED_KIND,
1436 LEGION_COMPUTE_KIND,
1437 LEGION_DISJOINT_COMPLETE_KIND,
1438 LEGION_ALIASED_COMPLETE_KIND,
1439 LEGION_COMPUTE_COMPLETE_KIND,
1440 LEGION_DISJOINT_INCOMPLETE_KIND,
1441 LEGION_ALIASED_INCOMPLETE_KIND,
1442 LEGION_COMPUTE_INCOMPLETE_KIND,
1444 LEGION_DEPRECATED_ENUM(DISJOINT_KIND)
1445 LEGION_DEPRECATED_ENUM(ALIASED_KIND)
1446 LEGION_DEPRECATED_ENUM(COMPUTE_KIND)
1447 LEGION_DEPRECATED_ENUM(DISJOINT_COMPLETE_KIND)
1448 LEGION_DEPRECATED_ENUM(ALIASED_COMPLETE_KIND)
1449 LEGION_DEPRECATED_ENUM(COMPUTE_COMPLETE_KIND)
1450 LEGION_DEPRECATED_ENUM(DISJOINT_INCOMPLETE_KIND)
1451 LEGION_DEPRECATED_ENUM(ALIASED_INCOMPLETE_KIND)
1452 LEGION_DEPRECATED_ENUM(COMPUTE_INCOMPLETE_KIND)
1453 } legion_partition_kind_t;
1455 typedef enum legion_external_resource_t {
1456 LEGION_EXTERNAL_POSIX_FILE,
1457 LEGION_EXTERNAL_HDF5_FILE,
1458 LEGION_EXTERNAL_INSTANCE,
1460 LEGION_DEPRECATED_ENUM(EXTERNAL_POSIX_FILE)
1461 LEGION_DEPRECATED_ENUM(EXTERNAL_HDF5_FILE)
1462 LEGION_DEPRECATED_ENUM(EXTERNAL_INSTANCE)
1463 } legion_external_resource_t;
1465 typedef enum legion_timing_measurement_t {
1466 LEGION_MEASURE_SECONDS,
1467 LEGION_MEASURE_MICRO_SECONDS,
1468 LEGION_MEASURE_NANO_SECONDS,
1470 LEGION_DEPRECATED_ENUM(MEASURE_SECONDS)
1471 LEGION_DEPRECATED_ENUM(MEASURE_MICRO_SECONDS)
1472 LEGION_DEPRECATED_ENUM(MEASURE_NANO_SECONDS)
1473 } legion_timing_measurement_t;
1475 typedef enum legion_dependence_type_t {
1476 LEGION_NO_DEPENDENCE = 0,
1477 LEGION_TRUE_DEPENDENCE = 1,
1478 LEGION_ANTI_DEPENDENCE = 2,
1479 LEGION_ATOMIC_DEPENDENCE = 3,
1480 LEGION_SIMULTANEOUS_DEPENDENCE = 4,
1482 LEGION_DEPRECATED_ENUM(NO_DEPENDENCE)
1483 LEGION_DEPRECATED_ENUM(TRUE_DEPENDENCE)
1484 LEGION_DEPRECATED_ENUM(ANTI_DEPENDENCE)
1485 LEGION_DEPRECATED_ENUM(ATOMIC_DEPENDENCE)
1486 LEGION_DEPRECATED_ENUM(SIMULTANEOUS_DEPENDENCE)
1487 } legion_dependence_type_t;
1490 LEGION_NAME_SEMANTIC_TAG = 0,
1491 LEGION_SOURCE_FILE_TAG = 1,
1492 LEGION_SOURCE_LINE_TAG = 2,
1493 LEGION_FIRST_AVAILABLE_SEMANTIC_TAG = 3,
1495 LEGION_DEPRECATED_ENUM(NAME_SEMANTIC_TAG)
1496 LEGION_DEPRECATED_ENUM(SOURCE_FILE_TAG)
1497 LEGION_DEPRECATED_ENUM(SOURCE_LINE_TAG)
1498 LEGION_DEPRECATED_ENUM(FIRST_AVAILABLE_SEMANTIC_TAG)
1501 typedef enum legion_mappable_type_id_t {
1502 LEGION_TASK_MAPPABLE = 0,
1503 LEGION_COPY_MAPPABLE = 1,
1504 LEGION_INLINE_MAPPABLE = 2,
1505 LEGION_ACQUIRE_MAPPABLE = 3,
1506 LEGION_RELEASE_MAPPABLE = 4,
1507 LEGION_CLOSE_MAPPABLE = 5,
1508 LEGION_FILL_MAPPABLE = 6,
1509 LEGION_PARTITION_MAPPABLE = 7,
1510 LEGION_MUST_EPOCH_MAPPABLE = 9,
1512 LEGION_DEPRECATED_ENUM(TASK_MAPPABLE)
1513 LEGION_DEPRECATED_ENUM(COPY_MAPPABLE)
1514 LEGION_DEPRECATED_ENUM(INLINE_MAPPABLE)
1515 LEGION_DEPRECATED_ENUM(ACQUIRE_MAPPABLE)
1516 LEGION_DEPRECATED_ENUM(RELEASE_MAPPABLE)
1517 LEGION_DEPRECATED_ENUM(CLOSE_MAPPABLE)
1518 LEGION_DEPRECATED_ENUM(FILL_MAPPABLE)
1519 LEGION_DEPRECATED_ENUM(PARTITION_MAPPABLE)
1520 LEGION_DEPRECATED_ENUM(MUST_EPOCH_MAPPABLE)
1521 } legion_mappable_type_id;
1523 typedef enum legion_type_id_t {
1524 LEGION_TYPE_BOOL = 0,
1525 LEGION_TYPE_INT8 = 1,
1526 LEGION_TYPE_INT16 = 2,
1527 LEGION_TYPE_INT32 = 3,
1528 LEGION_TYPE_INT64 = 4,
1529 LEGION_TYPE_UINT8 = 5,
1530 LEGION_TYPE_UINT16 = 6,
1531 LEGION_TYPE_UINT32 = 7,
1532 LEGION_TYPE_UINT64 = 8,
1533 LEGION_TYPE_FLOAT16 = 9,
1534 LEGION_TYPE_FLOAT32 = 10,
1535 LEGION_TYPE_FLOAT64 = 11,
1536 LEGION_TYPE_COMPLEX32 = 12,
1537 LEGION_TYPE_COMPLEX64 = 13,
1538 LEGION_TYPE_COMPLEX128 = 14,
1539 LEGION_TYPE_TOTAL = 15,
1543 #define LEGION_REDOP_KIND_SUM_VALUE 0
1544 #define LEGION_REDOP_KIND_DIFF_VALUE 1
1545 #define LEGION_REDOP_KIND_PROD_VALUE 2
1546 #define LEGION_REDOP_KIND_DIV_VALUE 3
1547 #define LEGION_REDOP_KIND_MAX_VALUE 4
1548 #define LEGION_REDOP_KIND_MIN_VALUE 5
1549 #define LEGION_REDOP_KIND_OR_VALUE 6
1550 #define LEGION_REDOP_KIND_AND_VALUE 7
1551 #define LEGION_REDOP_KIND_XOR_VALUE 8
1552 #define LEGION_REDOP_KIND_TOTAL_VALUE 9
1555 typedef enum legion_redop_kind_t {
1556 LEGION_REDOP_KIND_SUM = LEGION_REDOP_KIND_SUM_VALUE,
1557 LEGION_REDOP_KIND_DIFF = LEGION_REDOP_KIND_DIFF_VALUE,
1558 LEGION_REDOP_KIND_PROD = LEGION_REDOP_KIND_PROD_VALUE,
1559 LEGION_REDOP_KIND_DIV = LEGION_REDOP_KIND_DIV_VALUE,
1560 LEGION_REDOP_KIND_MAX = LEGION_REDOP_KIND_MAX_VALUE,
1561 LEGION_REDOP_KIND_MIN = LEGION_REDOP_KIND_MIN_VALUE,
1562 LEGION_REDOP_KIND_OR = LEGION_REDOP_KIND_OR_VALUE,
1563 LEGION_REDOP_KIND_AND = LEGION_REDOP_KIND_AND_VALUE,
1564 LEGION_REDOP_KIND_XOR = LEGION_REDOP_KIND_XOR_VALUE,
1565 LEGION_REDOP_KIND_TOTAL = LEGION_REDOP_KIND_TOTAL_VALUE,
1566 } legion_redop_kind_t;
1568 #ifndef LEGION_USE_PYTHON_CFFI
1570 #define LEGION_REDOP_VALUE(kind, type) (LEGION_REDOP_BASE + \
1571 ((int)LEGION_REDOP_KIND_##kind * (int)LEGION_TYPE_TOTAL) + \
1572 (int)LEGION_TYPE_##type)
1577 #define MULTIPLY0(x) 0
1578 #define MULTIPLY1(x) (x)
1579 #define MULTIPLY2(x) (x) + (x)
1580 #define MULTIPLY3(x) (x) + MULTIPLY2(x)
1581 #define MULTIPLY4(x) (x) + MULTIPLY3(x)
1582 #define MULTIPLY5(x) (x) + MULTIPLY4(x)
1583 #define MULTIPLY6(x) (x) + MULTIPLY5(x)
1584 #define MULTIPLY7(x) (x) + MULTIPLY6(x)
1585 #define MULTIPLY8(x) (x) + MULTIPLY7(x)
1586 #define MULTIPLY9(x) (x) + MULTIPLY8(x)
1588 #define MULTIPLY_(x,y) MULTIPLY##x(y)
1589 #define MULTIPLY(x,y) MULTIPLY_(x,y)
1591 #define LEGION_REDOP_VALUE(kind, type) LEGION_REDOP_BASE + \
1592 MULTIPLY(LEGION_REDOP_KIND_##kind##_VALUE, LEGION_TYPE_TOTAL) + \
1595 typedef enum legion_builtin_redop_t {
1596 LEGION_REDOP_BASE = LEGION_MAX_APPLICATION_REDOP_ID,
1600 LEGION_REDOP_OR_BOOL = LEGION_REDOP_VALUE(SUM,BOOL),
1601 LEGION_REDOP_SUM_INT8 = LEGION_REDOP_VALUE(SUM,INT8),
1602 LEGION_REDOP_SUM_INT16 = LEGION_REDOP_VALUE(SUM,INT16),
1603 LEGION_REDOP_SUM_INT32 = LEGION_REDOP_VALUE(SUM,INT32),
1604 LEGION_REDOP_SUM_INT64 = LEGION_REDOP_VALUE(SUM,INT64),
1605 LEGION_REDOP_SUM_UINT8 = LEGION_REDOP_VALUE(SUM,UINT8),
1606 LEGION_REDOP_SUM_UINT16 = LEGION_REDOP_VALUE(SUM,UINT16),
1607 LEGION_REDOP_SUM_UINT32 = LEGION_REDOP_VALUE(SUM,UINT32),
1608 LEGION_REDOP_SUM_UINT64 = LEGION_REDOP_VALUE(SUM,UINT64),
1609 #ifdef LEGION_REDOP_HALF
1610 LEGION_REDOP_SUM_FLOAT16 = LEGION_REDOP_VALUE(SUM,FLOAT16),
1612 LEGION_REDOP_SUM_FLOAT32 = LEGION_REDOP_VALUE(SUM,FLOAT32),
1613 LEGION_REDOP_SUM_FLOAT64 = LEGION_REDOP_VALUE(SUM,FLOAT64),
1614 #ifdef LEGION_REDOP_COMPLEX
1615 #ifdef LEGION_REDOP_HALF
1616 LEGION_REDOP_SUM_COMPLEX32 = LEGION_REDOP_VALUE(SUM,COMPLEX32),
1618 LEGION_REDOP_SUM_COMPLEX64 = LEGION_REDOP_VALUE(SUM,COMPLEX64),
1619 LEGION_REDOP_SUM_COMPLEX128 = LEGION_REDOP_VALUE(SUM,COMPLEX128),
1625 LEGION_REDOP_DIFF_INT8 = LEGION_REDOP_VALUE(DIFF,INT8),
1626 LEGION_REDOP_DIFF_INT16 = LEGION_REDOP_VALUE(DIFF,INT16),
1627 LEGION_REDOP_DIFF_INT32 = LEGION_REDOP_VALUE(DIFF,INT32),
1628 LEGION_REDOP_DIFF_INT64 = LEGION_REDOP_VALUE(DIFF,INT64),
1629 LEGION_REDOP_DIFF_UINT8 = LEGION_REDOP_VALUE(DIFF,UINT8),
1630 LEGION_REDOP_DIFF_UINT16 = LEGION_REDOP_VALUE(DIFF,UINT16),
1631 LEGION_REDOP_DIFF_UINT32 = LEGION_REDOP_VALUE(DIFF,UINT32),
1632 LEGION_REDOP_DIFF_UINT64 = LEGION_REDOP_VALUE(DIFF,UINT64),
1633 #ifdef LEGION_REDOP_HALF
1634 LEGION_REDOP_DIFF_FLOAT16 = LEGION_REDOP_VALUE(DIFF,FLOAT16),
1636 LEGION_REDOP_DIFF_FLOAT32 = LEGION_REDOP_VALUE(DIFF,FLOAT32),
1637 LEGION_REDOP_DIFF_FLOAT64 = LEGION_REDOP_VALUE(DIFF,FLOAT64),
1638 #ifdef LEGION_REDOP_COMPLEX
1639 #ifdef LEGION_REDOP_HALF
1640 LEGION_REDOP_DIFF_COMPLEX32 = LEGION_REDOP_VALUE(DIFF,COMPLEX32),
1642 LEGION_REDOP_DIFF_COMPLEX64 = LEGION_REDOP_VALUE(DIFF,COMPLEX64),
1648 LEGION_REDOP_AND_BOOL = LEGION_REDOP_VALUE(PROD,BOOL),
1649 LEGION_REDOP_PROD_INT8 = LEGION_REDOP_VALUE(PROD,INT8),
1650 LEGION_REDOP_PROD_INT16 = LEGION_REDOP_VALUE(PROD,INT16),
1651 LEGION_REDOP_PROD_INT32 = LEGION_REDOP_VALUE(PROD,INT32),
1652 LEGION_REDOP_PROD_INT64 = LEGION_REDOP_VALUE(PROD,INT64),
1653 LEGION_REDOP_PROD_UINT8 = LEGION_REDOP_VALUE(PROD,UINT8),
1654 LEGION_REDOP_PROD_UINT16 = LEGION_REDOP_VALUE(PROD,UINT16),
1655 LEGION_REDOP_PROD_UINT32 = LEGION_REDOP_VALUE(PROD,UINT32),
1656 LEGION_REDOP_PROD_UINT64 = LEGION_REDOP_VALUE(PROD,UINT64),
1657 #ifdef LEGION_REDOP_HALF
1658 LEGION_REDOP_PROD_FLOAT16 = LEGION_REDOP_VALUE(PROD,FLOAT16),
1660 LEGION_REDOP_PROD_FLOAT32 = LEGION_REDOP_VALUE(PROD,FLOAT32),
1661 LEGION_REDOP_PROD_FLOAT64 = LEGION_REDOP_VALUE(PROD,FLOAT64),
1662 #ifdef LEGION_REDOP_COMPLEX
1663 #ifdef LEGION_REDOP_HALF
1664 LEGION_REDOP_PROD_COMPLEX32 = LEGION_REDOP_VALUE(PROD,COMPLEX32),
1666 LEGION_REDOP_PROD_COMPLEX64 = LEGION_REDOP_VALUE(PROD,COMPLEX64),
1673 LEGION_REDOP_DIV_INT8 = LEGION_REDOP_VALUE(DIV,INT8),
1674 LEGION_REDOP_DIV_INT16 = LEGION_REDOP_VALUE(DIV,INT16),
1675 LEGION_REDOP_DIV_INT32 = LEGION_REDOP_VALUE(DIV,INT32),
1676 LEGION_REDOP_DIV_INT64 = LEGION_REDOP_VALUE(DIV,INT64),
1677 LEGION_REDOP_DIV_UINT8 = LEGION_REDOP_VALUE(DIV,UINT8),
1678 LEGION_REDOP_DIV_UINT16 = LEGION_REDOP_VALUE(DIV,UINT16),
1679 LEGION_REDOP_DIV_UINT32 = LEGION_REDOP_VALUE(DIV,UINT32),
1680 LEGION_REDOP_DIV_UINT64 = LEGION_REDOP_VALUE(DIV,UINT64),
1681 #ifdef LEGION_REDOP_HALF
1682 LEGION_REDOP_DIV_FLOAT16 = LEGION_REDOP_VALUE(DIV,FLOAT16),
1684 LEGION_REDOP_DIV_FLOAT32 = LEGION_REDOP_VALUE(DIV,FLOAT32),
1685 LEGION_REDOP_DIV_FLOAT64 = LEGION_REDOP_VALUE(DIV,FLOAT64),
1686 #ifdef LEGION_REDOP_COMPLEX
1687 #ifdef LEGION_REDOP_HALF
1688 LEGION_REDOP_DIV_COMPLEX32 = LEGION_REDOP_VALUE(DIV,COMPLEX32),
1690 LEGION_REDOP_DIV_COMPLEX64 = LEGION_REDOP_VALUE(DIV,COMPLEX64),
1696 LEGION_REDOP_MAX_BOOL = LEGION_REDOP_VALUE(MAX,BOOL),
1697 LEGION_REDOP_MAX_INT8 = LEGION_REDOP_VALUE(MAX,INT8),
1698 LEGION_REDOP_MAX_INT16 = LEGION_REDOP_VALUE(MAX,INT16),
1699 LEGION_REDOP_MAX_INT32 = LEGION_REDOP_VALUE(MAX,INT32),
1700 LEGION_REDOP_MAX_INT64 = LEGION_REDOP_VALUE(MAX,INT64),
1701 LEGION_REDOP_MAX_UINT8 = LEGION_REDOP_VALUE(MAX,UINT8),
1702 LEGION_REDOP_MAX_UINT16 = LEGION_REDOP_VALUE(MAX,UINT16),
1703 LEGION_REDOP_MAX_UINT32 = LEGION_REDOP_VALUE(MAX,UINT32),
1704 LEGION_REDOP_MAX_UINT64 = LEGION_REDOP_VALUE(MAX,UINT64),
1705 #ifdef LEGION_REDOP_HALF
1706 LEGION_REDOP_MAX_FLOAT16 = LEGION_REDOP_VALUE(MAX,FLOAT16),
1708 LEGION_REDOP_MAX_FLOAT32 = LEGION_REDOP_VALUE(MAX,FLOAT32),
1709 LEGION_REDOP_MAX_FLOAT64 = LEGION_REDOP_VALUE(MAX,FLOAT64),
1710 #ifdef LEGION_REDOP_COMPLEX
1711 #ifdef LEGION_REDOP_HALF
1712 LEGION_REDOP_MAX_COMPLEX32 = LEGION_REDOP_VALUE(MAX,COMPLEX32),
1714 LEGION_REDOP_MAX_COMPLEX64 = LEGION_REDOP_VALUE(MAX,COMPLEX64),
1720 LEGION_REDOP_MIN_BOOL = LEGION_REDOP_VALUE(MIN,BOOL),
1721 LEGION_REDOP_MIN_INT8 = LEGION_REDOP_VALUE(MIN,INT8),
1722 LEGION_REDOP_MIN_INT16 = LEGION_REDOP_VALUE(MIN,INT16),
1723 LEGION_REDOP_MIN_INT32 = LEGION_REDOP_VALUE(MIN,INT32),
1724 LEGION_REDOP_MIN_INT64 = LEGION_REDOP_VALUE(MIN,INT64),
1725 LEGION_REDOP_MIN_UINT8 = LEGION_REDOP_VALUE(MIN,UINT8),
1726 LEGION_REDOP_MIN_UINT16 = LEGION_REDOP_VALUE(MIN,UINT16),
1727 LEGION_REDOP_MIN_UINT32 = LEGION_REDOP_VALUE(MIN,UINT32),
1728 LEGION_REDOP_MIN_UINT64 = LEGION_REDOP_VALUE(MIN,UINT64),
1729 #ifdef LEGION_REDOP_HALF
1730 LEGION_REDOP_MIN_FLOAT16 = LEGION_REDOP_VALUE(MIN,FLOAT16),
1732 LEGION_REDOP_MIN_FLOAT32 = LEGION_REDOP_VALUE(MIN,FLOAT32),
1733 LEGION_REDOP_MIN_FLOAT64 = LEGION_REDOP_VALUE(MIN,FLOAT64),
1734 #ifdef LEGION_REDOP_COMPLEX
1735 #ifdef LEGION_REDOP_HALF
1736 LEGION_REDOP_MIN_COMPLEX32 = LEGION_REDOP_VALUE(MIN,COMPLEX32),
1738 LEGION_REDOP_MIN_COMPLEX64 = LEGION_REDOP_VALUE(MIN,COMPLEX64),
1744 LEGION_REDOP_OR_INT8 = LEGION_REDOP_VALUE(OR,INT8),
1745 LEGION_REDOP_OR_INT16 = LEGION_REDOP_VALUE(OR,INT16),
1746 LEGION_REDOP_OR_INT32 = LEGION_REDOP_VALUE(OR,INT32),
1747 LEGION_REDOP_OR_INT64 = LEGION_REDOP_VALUE(OR,INT64),
1748 LEGION_REDOP_OR_UINT8 = LEGION_REDOP_VALUE(OR,UINT8),
1749 LEGION_REDOP_OR_UINT16 = LEGION_REDOP_VALUE(OR,UINT16),
1750 LEGION_REDOP_OR_UINT32 = LEGION_REDOP_VALUE(OR,UINT32),
1751 LEGION_REDOP_OR_UINT64 = LEGION_REDOP_VALUE(OR,UINT64),
1756 LEGION_REDOP_AND_INT8 = LEGION_REDOP_VALUE(AND,INT8),
1757 LEGION_REDOP_AND_INT16 = LEGION_REDOP_VALUE(AND,INT16),
1758 LEGION_REDOP_AND_INT32 = LEGION_REDOP_VALUE(AND,INT32),
1759 LEGION_REDOP_AND_INT64 = LEGION_REDOP_VALUE(AND,INT64),
1760 LEGION_REDOP_AND_UINT8 = LEGION_REDOP_VALUE(AND,UINT8),
1761 LEGION_REDOP_AND_UINT16 = LEGION_REDOP_VALUE(AND,UINT16),
1762 LEGION_REDOP_AND_UINT32 = LEGION_REDOP_VALUE(AND,UINT32),
1763 LEGION_REDOP_AND_UINT64 = LEGION_REDOP_VALUE(AND,UINT64),
1768 LEGION_REDOP_XOR_BOOL = LEGION_REDOP_VALUE(XOR,BOOL),
1769 LEGION_REDOP_XOR_INT8 = LEGION_REDOP_VALUE(XOR,INT8),
1770 LEGION_REDOP_XOR_INT16 = LEGION_REDOP_VALUE(XOR,INT16),
1771 LEGION_REDOP_XOR_INT32 = LEGION_REDOP_VALUE(XOR,INT32),
1772 LEGION_REDOP_XOR_INT64 = LEGION_REDOP_VALUE(XOR,INT64),
1773 LEGION_REDOP_XOR_UINT8 = LEGION_REDOP_VALUE(XOR,UINT8),
1774 LEGION_REDOP_XOR_UINT16 = LEGION_REDOP_VALUE(XOR,UINT16),
1775 LEGION_REDOP_XOR_UINT32 = LEGION_REDOP_VALUE(XOR,UINT32),
1776 LEGION_REDOP_XOR_UINT64 = LEGION_REDOP_VALUE(XOR,UINT64),
1779 } legion_builtin_redop_t;
1781 #undef LEGION_REDOP_KIND_SUM_VALUE
1782 #undef LEGION_REDOP_KIND_DIFF_VALUE
1783 #undef LEGION_REDOP_KIND_PROD_VALUE
1784 #undef LEGION_REDOP_KIND_DIV_VALUE
1785 #undef LEGION_REDOP_KIND_MAX_VALUE
1786 #undef LEGION_REDOP_KIND_MIN_VALUE
1787 #undef LEGION_REDOP_KIND_TOTAL_VALUE
1789 #ifdef LEGION_USE_PYTHON_CFFI
1804 typedef enum legion_execution_constraint_t {
1805 LEGION_ISA_CONSTRAINT = 0,
1806 LEGION_PROCESSOR_CONSTRAINT = 1,
1807 LEGION_RESOURCE_CONSTRAINT = 2,
1808 LEGION_LAUNCH_CONSTRAINT = 3,
1809 LEGION_COLOCATION_CONSTRAINT = 4,
1811 LEGION_DEPRECATED_ENUM(ISA_CONSTRAINT)
1812 LEGION_DEPRECATED_ENUM(PROCESSOR_CONSTRAINT)
1813 LEGION_DEPRECATED_ENUM(RESOURCE_CONSTRAINT)
1814 LEGION_DEPRECATED_ENUM(LAUNCH_CONSTRAINT)
1815 LEGION_DEPRECATED_ENUM(COLOCATION_CONSTRAINT)
1816 } legion_execution_constraint_t;
1818 typedef enum legion_layout_constraint_t {
1819 LEGION_SPECIALIZED_CONSTRAINT = 0,
1820 LEGION_MEMORY_CONSTRAINT = 1,
1821 LEGION_FIELD_CONSTRAINT = 2,
1822 LEGION_ORDERING_CONSTRAINT = 3,
1823 LEGION_SPLITTING_CONSTRAINT = 4,
1824 LEGION_DIMENSION_CONSTRAINT = 5,
1825 LEGION_ALIGNMENT_CONSTRAINT = 6,
1826 LEGION_OFFSET_CONSTRAINT = 7,
1827 LEGION_POINTER_CONSTRAINT = 8,
1829 LEGION_DEPRECATED_ENUM(SPECIALIZED_CONSTRAINT)
1830 LEGION_DEPRECATED_ENUM(MEMORY_CONSTRAINT)
1831 LEGION_DEPRECATED_ENUM(FIELD_CONSTRAINT)
1832 LEGION_DEPRECATED_ENUM(ORDERING_CONSTRAINT)
1833 LEGION_DEPRECATED_ENUM(SPLITTING_CONSTRAINT)
1834 LEGION_DEPRECATED_ENUM(DIMENSION_CONSTRAINT)
1835 LEGION_DEPRECATED_ENUM(ALIGNMENT_CONSTRAINT)
1836 LEGION_DEPRECATED_ENUM(OFFSET_CONSTRAINT)
1837 LEGION_DEPRECATED_ENUM(POINTER_CONSTRAINT)
1838 } legion_layout_constraint_t;
1840 typedef enum legion_equality_kind_t {
1848 LEGION_DEPRECATED_ENUM(LT_EK)
1849 LEGION_DEPRECATED_ENUM(LE_EK)
1850 LEGION_DEPRECATED_ENUM(GT_EK)
1851 LEGION_DEPRECATED_ENUM(GE_EK)
1852 LEGION_DEPRECATED_ENUM(EQ_EK)
1853 LEGION_DEPRECATED_ENUM(NE_EK)
1854 } legion_equality_kind_t;
1856 typedef enum legion_dimension_kind_t {
1868 LEGION_INNER_DIM_X = 10,
1869 LEGION_OUTER_DIM_X = 11,
1870 LEGION_INNER_DIM_Y = 12,
1871 LEGION_OUTER_DIM_Y = 13,
1872 LEGION_INNER_DIM_Z = 14,
1873 LEGION_OUTER_DIM_Z = 15,
1874 LEGION_INNER_DIM_W = 16,
1875 LEGION_OUTER_DIM_W = 17,
1876 LEGION_INNER_DIM_V = 18,
1877 LEGION_OUTER_DIM_V = 19,
1878 LEGION_INNER_DIM_U = 20,
1879 LEGION_OUTER_DIM_U = 21,
1880 LEGION_INNER_DIM_T = 22,
1881 LEGION_OUTER_DIM_T = 23,
1882 LEGION_INNER_DIM_S = 24,
1883 LEGION_OUTER_DIM_S = 25,
1884 LEGION_INNER_DIM_R = 26,
1885 LEGION_OUTER_DIM_R = 27,
1887 LEGION_DEPRECATED_ENUM(DIM_X)
1888 LEGION_DEPRECATED_ENUM(DIM_Y)
1889 LEGION_DEPRECATED_ENUM(DIM_Z)
1890 LEGION_DEPRECATED_ENUM(DIM_W)
1891 LEGION_DEPRECATED_ENUM(DIM_V)
1892 LEGION_DEPRECATED_ENUM(DIM_U)
1893 LEGION_DEPRECATED_ENUM(DIM_T)
1894 LEGION_DEPRECATED_ENUM(DIM_S)
1895 LEGION_DEPRECATED_ENUM(DIM_R)
1896 LEGION_DEPRECATED_ENUM(DIM_F)
1897 } legion_dimension_kind_t;
1900 typedef enum legion_isa_kind_t {
1902 LEGION_X86_ISA = 0x00000001,
1903 LEGION_ARM_ISA = 0x00000002,
1904 LEGION_PPC_ISA = 0x00000004,
1905 LEGION_PTX_ISA = 0x00000008,
1906 LEGION_CUDA_ISA = 0x00000010,
1907 LEGION_LUA_ISA = 0x00000020,
1908 LEGION_TERRA_ISA = 0x00000040,
1909 LEGION_LLVM_ISA = 0x00000080,
1910 LEGION_GL_ISA = 0x00000100,
1912 LEGION_SSE_ISA = 0x00000200,
1913 LEGION_SSE2_ISA = 0x00000400,
1914 LEGION_SSE3_ISA = 0x00000800,
1915 LEGION_SSE4_ISA = 0x00001000,
1916 LEGION_AVX_ISA = 0x00002000,
1917 LEGION_AVX2_ISA = 0x00004000,
1918 LEGION_FMA_ISA = 0x00008000,
1920 LEGION_VSX_ISA = 0x00010000,
1922 LEGION_SM_10_ISA = 0x00020000,
1923 LEGION_SM_20_ISA = 0x00040000,
1924 LEGION_SM_30_ISA = 0x00080000,
1925 LEGION_SM_35_ISA = 0x00100000,
1927 LEGION_NEON_ISA = 0x00200000,
1929 LEGION_DEPRECATED_ENUM(X86_ISA)
1930 LEGION_DEPRECATED_ENUM(ARM_ISA)
1931 LEGION_DEPRECATED_ENUM(PPC_ISA)
1932 LEGION_DEPRECATED_ENUM(PTX_ISA)
1933 LEGION_DEPRECATED_ENUM(CUDA_ISA)
1934 LEGION_DEPRECATED_ENUM(LUA_ISA)
1935 LEGION_DEPRECATED_ENUM(TERRA_ISA)
1936 LEGION_DEPRECATED_ENUM(LLVM_ISA)
1937 LEGION_DEPRECATED_ENUM(GL_ISA)
1938 LEGION_DEPRECATED_ENUM(SSE_ISA)
1939 LEGION_DEPRECATED_ENUM(SSE2_ISA)
1940 LEGION_DEPRECATED_ENUM(SSE3_ISA)
1941 LEGION_DEPRECATED_ENUM(SSE4_ISA)
1942 LEGION_DEPRECATED_ENUM(AVX_ISA)
1943 LEGION_DEPRECATED_ENUM(AVX2_ISA)
1944 LEGION_DEPRECATED_ENUM(FMA_ISA)
1945 LEGION_DEPRECATED_ENUM(VSX_ISA)
1946 LEGION_DEPRECATED_ENUM(SM_10_ISA)
1947 LEGION_DEPRECATED_ENUM(SM_20_ISA)
1948 LEGION_DEPRECATED_ENUM(SM_30_ISA)
1949 LEGION_DEPRECATED_ENUM(SM_35_ISA)
1950 LEGION_DEPRECATED_ENUM(NEON_ISA)
1951 } legion_isa_kind_t;
1953 typedef enum legion_resource_constraint_t {
1954 LEGION_L1_CACHE_SIZE = 0,
1955 LEGION_L2_CACHE_SIZE = 1,
1956 LEGION_L3_CACHE_SIZE = 2,
1957 LEGION_L1_CACHE_ASSOCIATIVITY = 3,
1958 LEGION_L2_CACHE_ASSOCIATIVITY = 4,
1959 LEGION_L3_CACHE_ASSOCIATIVITY = 5,
1960 LEGION_REGISTER_FILE_SIZE = 6,
1961 LEGION_SHARED_MEMORY_SIZE = 7,
1962 LEGION_TEXTURE_CACHE_SIZE = 8,
1963 LEGION_CONSTANT_CACHE_SIZE = 9,
1964 LEGION_NAMED_BARRIERS = 10,
1965 LEGION_SM_COUNT = 11,
1966 LEGION_MAX_OCCUPANCY = 12,
1968 LEGION_DEPRECATED_ENUM(L1_CACHE_SIZE)
1969 LEGION_DEPRECATED_ENUM(L2_CACHE_SIZE)
1970 LEGION_DEPRECATED_ENUM(L3_CACHE_SIZE)
1971 LEGION_DEPRECATED_ENUM(L1_CACHE_ASSOCIATIVITY)
1972 LEGION_DEPRECATED_ENUM(L2_CACHE_ASSOCIATIVITY)
1973 LEGION_DEPRECATED_ENUM(L3_CACHE_ASSOCIATIVITY)
1974 LEGION_DEPRECATED_ENUM(REGISTER_FILE_SIZE)
1975 LEGION_DEPRECATED_ENUM(SHARED_MEMORY_SIZE)
1976 LEGION_DEPRECATED_ENUM(TEXTURE_CACHE_SIZE)
1977 LEGION_DEPRECATED_ENUM(CONSTANT_CACHE_SIZE)
1978 LEGION_DEPRECATED_ENUM(NAMED_BARRIERS)
1979 LEGION_DEPRECATED_ENUM(SM_COUNT)
1980 LEGION_DEPRECATED_ENUM(MAX_OCCUPANCY)
1981 } legion_resource_constraint_t;
1983 typedef enum legion_launch_constraint_t {
1984 LEGION_CTA_SHAPE = 0,
1985 LEGION_GRID_SHAPE = 1,
1986 LEGION_DYNAMIC_SHARED_MEMORY = 2,
1987 LEGION_REGISTERS_PER_THREAD = 3,
1988 LEGION_CTAS_PER_SM = 4,
1989 LEGION_NAMED_BARRIERS_PER_CTA = 5,
1990 } legion_launch_constraint_t;
1992 typedef enum legion_specialized_constraint_t {
1993 LEGION_NO_SPECIALIZE = 0,
1994 LEGION_AFFINE_SPECIALIZE = 1,
1995 LEGION_COMPACT_SPECIALIZE = 2,
1996 LEGION_AFFINE_REDUCTION_SPECIALIZE = 3,
1997 LEGION_COMPACT_REDUCTION_SPECIALIZE = 4,
1998 LEGION_VIRTUAL_SPECIALIZE = 5,
2000 LEGION_GENERIC_FILE_SPECIALIZE = 6,
2001 LEGION_HDF5_FILE_SPECIALIZE = 7,
2003 LEGION_DEPRECATED_ENUM(NO_SPECIALIZE)
2004 LEGION_DEPRECATED_ENUM(AFFINE_SPECIALIZE)
2005 LEGION_DEPRECATED_ENUM_FROM(NORMAL_SPECIALIZE,
2006 LEGION_AFFINE_SPECIALIZE)
2007 LEGION_DEPRECATED_ENUM(COMPACT_SPECIALIZE)
2008 LEGION_DEPRECATED_ENUM(AFFINE_REDUCTION_SPECIALIZE)
2009 LEGION_DEPRECATED_ENUM_FROM(REDUCTION_FOLD_SPECIALIZE,
2010 LEGION_AFFINE_REDUCTION_SPECIALIZE)
2011 LEGION_DEPRECATED_ENUM(COMPACT_REDUCTION_SPECIALIZE)
2012 LEGION_DEPRECATED_ENUM_FROM(REDUCTION_LIST_SPECIALIZE,
2013 LEGION_COMPACT_REDUCTION_SPECIALIZE)
2014 LEGION_DEPRECATED_ENUM(VIRTUAL_SPECIALIZE)
2015 LEGION_DEPRECATED_ENUM(GENERIC_FILE_SPECIALIZE)
2016 LEGION_DEPRECATED_ENUM(HDF5_FILE_SPECIALIZE)
2017 } legion_specialized_constraint_t;
2021 #define LEGION_MAX_POINT_DIM (LEGION_MAX_DIM)
2022 #define LEGION_MAX_RECT_DIM (LEGION_MAX_DIM)
2023 typedef enum legion_domain_max_rect_dim_t {
2025 LEGION_DEPRECATED_ENUM(MAX_POINT_DIM)
2026 LEGION_DEPRECATED_ENUM(MAX_RECT_DIM)
2027 } legion_domain_max_rect_dim_t;
2029 #undef LEGION_DEPRECATED_ENUM
2030 #undef LEGION_DEPRECATED_ENUM_FROM
2036 typedef realm_processor_kind_t legion_processor_kind_t;
2037 typedef realm_memory_kind_t legion_memory_kind_t;
2038 typedef realm_reduction_op_id_t legion_reduction_op_id_t;
2039 typedef realm_custom_serdez_id_t legion_custom_serdez_id_t;
2040 typedef realm_address_space_t legion_address_space_t;
2041 typedef realm_file_mode_t legion_file_mode_t;
2042 typedef realm_id_t legion_proc_id_t;
2043 typedef realm_id_t legion_memory_id_t;
2044 typedef int legion_task_priority_t;
2045 typedef int legion_garbage_collection_priority_t;
2046 typedef long long legion_coord_t;
2047 typedef unsigned int legion_color_t;
2048 typedef unsigned int legion_field_id_t;
2049 typedef unsigned int legion_trace_id_t;
2050 typedef unsigned int legion_mapper_id_t;
2051 typedef unsigned int legion_context_id_t;
2052 typedef unsigned int legion_instance_id_t;
2053 typedef unsigned int legion_type_tag_t;
2054 typedef unsigned int legion_index_space_id_t;
2055 typedef unsigned int legion_index_partition_id_t;
2056 typedef unsigned int legion_index_tree_id_t;
2057 typedef unsigned int legion_field_space_id_t;
2058 typedef unsigned int legion_generation_id_t;
2059 typedef unsigned int legion_type_handle;
2060 typedef unsigned int legion_projection_id_t;
2061 typedef unsigned int legion_sharding_id_t;
2062 typedef unsigned int legion_region_tree_id_t;
2063 typedef unsigned int legion_tunable_id_t;
2064 typedef unsigned int legion_local_variable_id_t;
2065 typedef unsigned int legion_replication_id_t;
2066 typedef unsigned int legion_shard_id_t;
2067 typedef unsigned int legion_variant_id_t;
2068 typedef unsigned long long legion_distributed_id_t;
2069 typedef unsigned long legion_mapping_tag_id_t;
2070 typedef unsigned long legion_code_descriptor_id_t;
2071 typedef unsigned long legion_semantic_tag_t;
2072 typedef unsigned long long legion_unique_id_t;
2073 typedef unsigned long long legion_version_id_t;
2074 typedef unsigned long long legion_projection_epoch_id_t;
2075 typedef realm_task_func_id_t legion_task_id_t;
2076 typedef unsigned long legion_layout_constraint_id_t;
2077 typedef long long legion_internal_color_t;
2079 #endif // __LEGION_CONFIG_H__