Legion Runtime
Loading...
Searching...
No Matches
c_bindings.h
Go to the documentation of this file.
1/* Copyright 2026 Stanford University
2 *
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16#ifndef __LEGION_C_H__
17#define __LEGION_C_H__
18
24// ******************** IMPORTANT **************************
25//
26// This file is PURE C, **NOT** C++.
27//
28// ******************** IMPORTANT **************************
29
30#include "legion/api/config.h"
31
32#include <stdbool.h>
33#ifndef LEGION_USE_PYTHON_CFFI
34#include <stddef.h>
35#include <stdint.h>
36#include <stdio.h>
37#endif // LEGION_USE_PYTHON_CFFI
38
39#ifdef __cplusplus
40extern "C"
41{
42#endif
43
44 // -----------------------------------------------------------------------
45 // Proxy Types
46 // -----------------------------------------------------------------------
47
48// #define NEW_OPAQUE_TYPE(T) typedef void * T
49#define NEW_OPAQUE_TYPE(T) \
50 typedef struct T { \
51 void* impl; \
52 } T
53 NEW_OPAQUE_TYPE(legion_runtime_t);
54 NEW_OPAQUE_TYPE(legion_context_t);
55 NEW_OPAQUE_TYPE(legion_domain_point_iterator_t);
56#define NEW_ITERATOR_TYPE(DIM) \
57 NEW_OPAQUE_TYPE(legion_rect_in_domain_iterator_##DIM##d_t);
58 LEGION_FOREACH_N(NEW_ITERATOR_TYPE);
59#undef NEW_ITERATOR_TYPE
60 NEW_OPAQUE_TYPE(legion_coloring_t);
61 NEW_OPAQUE_TYPE(legion_domain_coloring_t);
62 NEW_OPAQUE_TYPE(legion_point_coloring_t);
63 NEW_OPAQUE_TYPE(legion_domain_point_coloring_t);
64 NEW_OPAQUE_TYPE(legion_multi_domain_point_coloring_t);
65 NEW_OPAQUE_TYPE(legion_index_space_allocator_t);
66 NEW_OPAQUE_TYPE(legion_field_allocator_t);
67 NEW_OPAQUE_TYPE(legion_argument_map_t);
68 NEW_OPAQUE_TYPE(legion_predicate_t);
69 NEW_OPAQUE_TYPE(legion_future_t);
70 NEW_OPAQUE_TYPE(legion_future_map_t);
71#define NEW_DEFERRED_BUFFER_TYPE(DIM) \
72 NEW_OPAQUE_TYPE(legion_deferred_buffer_char_##DIM##d_t);
73 LEGION_FOREACH_N(NEW_DEFERRED_BUFFER_TYPE)
74#undef NEW_DEFERRED_BUFFER_TYPE
75 NEW_OPAQUE_TYPE(legion_task_launcher_t);
76 NEW_OPAQUE_TYPE(legion_index_launcher_t);
77 NEW_OPAQUE_TYPE(legion_inline_launcher_t);
78 NEW_OPAQUE_TYPE(legion_copy_launcher_t);
79 NEW_OPAQUE_TYPE(legion_index_copy_launcher_t);
80 NEW_OPAQUE_TYPE(legion_fill_launcher_t);
81 NEW_OPAQUE_TYPE(legion_index_fill_launcher_t);
82 NEW_OPAQUE_TYPE(legion_discard_launcher_t);
83 NEW_OPAQUE_TYPE(legion_acquire_launcher_t);
84 NEW_OPAQUE_TYPE(legion_release_launcher_t);
85 NEW_OPAQUE_TYPE(legion_attach_launcher_t);
86 NEW_OPAQUE_TYPE(legion_index_attach_launcher_t);
87 NEW_OPAQUE_TYPE(legion_must_epoch_launcher_t);
88 NEW_OPAQUE_TYPE(legion_physical_region_t);
89 NEW_OPAQUE_TYPE(legion_external_resources_t);
90#define NEW_ACCESSOR_ARRAY_TYPE(DIM) \
91 NEW_OPAQUE_TYPE(legion_accessor_array_##DIM##d_t);
92 LEGION_FOREACH_N(NEW_ACCESSOR_ARRAY_TYPE)
93#undef NEW_ACCESSOR_ARRAY_TYPE
94 NEW_OPAQUE_TYPE(legion_task_t);
95 NEW_OPAQUE_TYPE(legion_task_mut_t);
96 NEW_OPAQUE_TYPE(legion_copy_t);
97 NEW_OPAQUE_TYPE(legion_fill_t);
98 NEW_OPAQUE_TYPE(legion_inline_t);
99 NEW_OPAQUE_TYPE(legion_mappable_t);
100 NEW_OPAQUE_TYPE(legion_region_requirement_t);
101 NEW_OPAQUE_TYPE(legion_output_requirement_t);
102 NEW_OPAQUE_TYPE(legion_machine_t);
103 NEW_OPAQUE_TYPE(legion_logger_t);
104 NEW_OPAQUE_TYPE(legion_mapper_t);
105 NEW_OPAQUE_TYPE(legion_default_mapper_t);
106 NEW_OPAQUE_TYPE(legion_processor_query_t);
107 NEW_OPAQUE_TYPE(legion_memory_query_t);
108 NEW_OPAQUE_TYPE(legion_machine_query_interface_t);
109 NEW_OPAQUE_TYPE(legion_execution_constraint_set_t);
110 NEW_OPAQUE_TYPE(legion_layout_constraint_set_t);
111 NEW_OPAQUE_TYPE(legion_task_layout_constraint_set_t);
112 NEW_OPAQUE_TYPE(legion_slice_task_output_t);
113 NEW_OPAQUE_TYPE(legion_map_task_input_t);
114 NEW_OPAQUE_TYPE(legion_map_task_output_t);
115 NEW_OPAQUE_TYPE(legion_physical_instance_t);
116 NEW_OPAQUE_TYPE(legion_mapper_runtime_t);
117 NEW_OPAQUE_TYPE(legion_mapper_context_t);
118 NEW_OPAQUE_TYPE(legion_field_map_t);
119 NEW_OPAQUE_TYPE(legion_point_transform_functor_t);
120 NEW_OPAQUE_TYPE(legion_task_variant_registrar_t);
121#undef NEW_OPAQUE_TYPE
122
126 typedef struct legion_ptr_t {
127 long long int value;
129
130 typedef legion_coord_t coord_t;
131
132#define NEW_POINT_TYPE(DIM) \
133 typedef struct legion_point_##DIM##d_t { \
134 coord_t x[DIM]; \
135 } legion_point_##DIM##d_t;
136 LEGION_FOREACH_N(NEW_POINT_TYPE)
137#undef NEW_POINT_TYPE
138
139#define NEW_RECT_TYPE(DIM) \
140 typedef struct legion_rect_##DIM##d_t { \
141 legion_point_##DIM##d_t lo, hi; \
142 } legion_rect_##DIM##d_t;
143 LEGION_FOREACH_N(NEW_RECT_TYPE)
144#undef NEW_RECT_TYPE
145
146#define NEW_BLOCKIFY_TYPE(DIM) \
147 typedef struct legion_blockify_##DIM##d_t { \
148 legion_point_##DIM##d_t block_size; \
149 legion_point_##DIM##d_t offset; \
150 } legion_blockify_##DIM##d_t;
151 LEGION_FOREACH_N(NEW_BLOCKIFY_TYPE)
152#undef NEW_BLOCKIFY_TYPE
153
154#define NEW_TRANSFORM_TYPE(D1, D2) \
155 typedef struct legion_transform_##D1##x##D2##_t { \
156 coord_t trans[D1][D2]; \
157 } legion_transform_##D1##x##D2##_t;
158 LEGION_FOREACH_NN(NEW_TRANSFORM_TYPE)
159#undef NEW_TRANSFORM_TYPE
160
161#define NEW_AFFINE_TRANSFORM_TYPE(D1, D2) \
162 typedef struct legion_affine_transform_##D1##x##D2##_t { \
163 legion_transform_##D1##x##D2##_t transform; \
164 legion_point_##D1##d_t offset; \
165 } legion_affine_transform_##D1##x##D2##_t;
166 LEGION_FOREACH_NN(NEW_AFFINE_TRANSFORM_TYPE)
167#undef NEW_AFFINE_TRANSFORM_TYPE
168
172 typedef struct legion_domain_t {
173 realm_id_t is_id;
174 legion_type_tag_t is_type;
175 int dim;
176// Hack: Python CFFI isn't smart enough to do constant folding so we
177// have to do this by hand here. To avoid this bitrotting, at least
178// make the preprocessor check that the value is equal to what we
179// expect.
180#if LEGION_MAX_DIM == 1
181#define MAX_DOMAIN_DIM 2 // 2 * LEGION_MAX_RECT_DIM
182#elif LEGION_MAX_DIM == 2
183#define MAX_DOMAIN_DIM 4 // 2 * LEGION_MAX_RECT_DIM
184#elif LEGION_MAX_DIM == 3
185#define MAX_DOMAIN_DIM 6 // 2 * LEGION_MAX_RECT_DIM
186#elif LEGION_MAX_DIM == 4
187#define MAX_DOMAIN_DIM 8 // 2 * LEGION_MAX_RECT_DIM
188#elif LEGION_MAX_DIM == 5
189#define MAX_DOMAIN_DIM 10 // 2 * LEGION_MAX_RECT_DIM
190#elif LEGION_MAX_DIM == 6
191#define MAX_DOMAIN_DIM 12 // 2 * LEGION_MAX_RECT_DIM
192#elif LEGION_MAX_DIM == 7
193#define MAX_DOMAIN_DIM 14 // 2 * LEGION_MAX_RECT_DIM
194#elif LEGION_MAX_DIM == 8
195#define MAX_DOMAIN_DIM 16 // 2 * LEGION_MAX_RECT_DIM
196#elif LEGION_MAX_DIM == 9
197#define MAX_DOMAIN_DIM 18 // 2 * LEGION_MAX_RECT_DIM
198#else
199#error "Illegal value of LEGION_MAX_DIM"
200#endif
201#if MAX_DOMAIN_DIM != 2 * LEGION_MAX_RECT_DIM // sanity check value
202#error Mismatch in MAX_DOMAIN_DIM
203#endif
204 coord_t rect_data[MAX_DOMAIN_DIM];
205#undef MAX_DOMAIN_DIM
207
211 typedef struct legion_domain_point_t {
212 int dim;
213 coord_t point_data[LEGION_MAX_DIM];
215
220 int m, n;
221// Hack: Python CFFI isn't smart enough to do constant folding so we
222// have to do this by hand here. To avoid this bitrotting, at least
223// make the preprocessor check that the value is equal to what we
224// expect.
225#if LEGION_MAX_DIM == 1
226#define MAX_MATRIX_DIM 1
227#elif LEGION_MAX_DIM == 2
228#define MAX_MATRIX_DIM 4
229#elif LEGION_MAX_DIM == 3
230#define MAX_MATRIX_DIM 9
231#elif LEGION_MAX_DIM == 4
232#define MAX_MATRIX_DIM 16
233#elif LEGION_MAX_DIM == 5
234#define MAX_MATRIX_DIM 25
235#elif LEGION_MAX_DIM == 6
236#define MAX_MATRIX_DIM 36
237#elif LEGION_MAX_DIM == 7
238#define MAX_MATRIX_DIM 49
239#elif LEGION_MAX_DIM == 8
240#define MAX_MATRIX_DIM 64
241#elif LEGION_MAX_DIM == 9
242#define MAX_MATRIX_DIM 81
243#else
244#error "Illegal value of LEGION_MAX_DIM"
245#endif
246#if MAX_MATRIX_DIM != \
247 LEGION_MAX_POINT_DIM * LEGION_MAX_POINT_DIM // sanity check
248#error Mismatch in MAX_MATRIX_DIM
249#endif
250 coord_t matrix[MAX_MATRIX_DIM];
251#undef MAX_MATRIX_DIM
253
261
265 typedef struct legion_index_space_t {
266 legion_distributed_id_t id;
267 legion_index_tree_id_t tid;
268 legion_type_tag_t type_tag;
270
275 legion_distributed_id_t id;
276 legion_index_tree_id_t tid;
277 legion_type_tag_t type_tag;
279
283 typedef struct legion_field_space_t {
284 legion_distributed_id_t id;
286
290 typedef struct legion_logical_region_t {
291 legion_distributed_id_t tree_id;
292 legion_index_space_t index_space;
293 legion_field_space_t field_space;
295
300 legion_distributed_id_t tree_id;
301 legion_index_partition_t index_partition;
302 legion_field_space_t field_space;
304
308 typedef struct legion_untyped_buffer_t {
309 void* args;
310 size_t arglen;
312 // This is for backwards compatibility when we used
313 // to call legion_untyped_buffer_t as legion_task_argument_t
315
316 typedef struct legion_byte_offset_t {
317 int offset;
319
323 typedef struct legion_input_args_t {
324 char** argv;
325 int argc;
327
332 bool leaf /* = false */;
333 bool inner /* = false */;
334 bool idempotent /* = false */;
335 bool replicable /* = false */;
337
341 typedef struct legion_processor_t {
342 realm_id_t id;
344
348 typedef struct legion_memory_t {
349 realm_id_t id;
351
355 typedef struct legion_task_slice_t {
356 legion_domain_t domain;
358 bool recurse;
359 bool stealable;
361
365 typedef struct legion_phase_barrier_t {
366 // From Realm::Event
367 realm_id_t id;
368 // From Realm::Barrier
369 realm_barrier_timestamp_t timestamp;
371
376 // From Legion::PhaseBarrier
377 // From Realm::Event
378 realm_id_t id;
379 // From Realm::Barrier
380 realm_barrier_timestamp_t timestamp;
381 // From Legion::DynamicCollective
382 legion_reduction_op_id_t redop;
384
388 typedef struct legion_task_options_t {
389 legion_processor_t initial_proc;
390 bool inline_task;
391 bool stealable;
392 bool map_locally;
393 bool valid_instances;
394 bool memoize;
395 bool replicate;
396 legion_task_priority_t parent_priority;
398
402
407 legion_machine_t /* machine */, legion_runtime_t /* runtime */,
408 const legion_processor_t* /* local_procs */,
409 unsigned /* num_local_procs */);
410
415 typedef realm_task_pointer_t legion_task_pointer_wrapped_t;
416
422 legion_runtime_t /* runtime */, legion_logical_region_t /* upper_bound */,
423 legion_domain_point_t /* point */, legion_domain_t /* launch domain */);
424
431 legion_runtime_t /* runtime */,
432 legion_logical_partition_t /* upper_bound */,
433 legion_domain_point_t /* point */, legion_domain_t /* launch domain */);
434
441 legion_runtime_t /* runtime */, legion_logical_region_t /* upper_bound */,
442 legion_domain_point_t /* point */, legion_domain_t /* launch domain */,
443 const void* /* args */, size_t /* size */);
444
451 legion_runtime_t /* runtime */,
452 legion_logical_partition_t /* upper_bound */,
453 legion_domain_point_t /* point */, legion_domain_t /* launch domain */,
454 const void* /* args */, size_t /* size */);
455
462 legion_runtime_t /* runtime */, legion_mappable_t /* mappable */,
463 unsigned /* index */, legion_logical_region_t /* upper_bound */,
464 legion_domain_point_t /* point */);
465
472 legion_runtime_t /* runtime */, legion_mappable_t /* mappable */,
473 unsigned /* index */, legion_logical_partition_t /* upper_bound */,
474 legion_domain_point_t /* point */);
475
476 // -----------------------------------------------------------------------
477 // Pointer Operations
478 // -----------------------------------------------------------------------
479
484
489
495 legion_runtime_t runtime, legion_context_t ctx, legion_ptr_t pointer,
497
498 // -----------------------------------------------------------------------
499 // Domain Operations
500 // -----------------------------------------------------------------------
501
506
510#define FROM_RECT(DIM) \
511 legion_domain_t legion_domain_from_rect_##DIM##d(legion_rect_##DIM##d_t r);
512 LEGION_FOREACH_N(FROM_RECT)
513#undef FROM_RECT
514
519 legion_runtime_t runtime, legion_index_space_t is);
520
524#define GET_RECT(DIM) \
525 legion_rect_##DIM##d_t legion_domain_get_rect_##DIM##d(legion_domain_t d);
526 LEGION_FOREACH_N(GET_RECT)
527#undef GET_RECT
528
529 bool legion_domain_is_dense(legion_domain_t d);
530
531 // These are the same as above but will ignore
532 // the existence of any sparsity map, whereas the
533 // ones above will fail if a sparsity map exists
534#define GET_BOUNDS(DIM) \
535 legion_rect_##DIM##d_t legion_domain_get_bounds_##DIM##d(legion_domain_t d);
536 LEGION_FOREACH_N(GET_BOUNDS)
537#undef GET_BOUNDS
538
543
548
549 // -----------------------------------------------------------------------
550 // Domain Transform Operations
551 // -----------------------------------------------------------------------
552
553 legion_domain_transform_t legion_domain_transform_identity(
554 unsigned m, unsigned n);
555
556#define FROM_TRANSFORM(D1, D2) \
557 legion_domain_transform_t legion_domain_transform_from_##D1##x##D2( \
558 legion_transform_##D1##x##D2##_t t);
559 LEGION_FOREACH_NN(FROM_TRANSFORM)
560#undef FROM_TRANSFORM
561
562 legion_domain_affine_transform_t legion_domain_affine_transform_identity(
563 unsigned m, unsigned n);
564
565#define FROM_AFFINE(D1, D2) \
566 legion_domain_affine_transform_t \
567 legion_domain_affine_transform_from_##D1##x##D2( \
568 legion_affine_transform_##D1##x##D2##_t t);
569 LEGION_FOREACH_NN(FROM_AFFINE)
570#undef FROM_AFFINE
571
572 // -----------------------------------------------------------------------
573 // Domain Point Operations
574 // -----------------------------------------------------------------------
575
579#define FROM_POINT(DIM) \
580 legion_domain_point_t legion_domain_point_from_point_##DIM##d( \
581 legion_point_##DIM##d_t p);
582 LEGION_FOREACH_N(FROM_POINT)
583#undef FROM_POINT
584
588#define GET_POINT(DIM) \
589 legion_point_##DIM##d_t legion_domain_point_get_point_##DIM##d( \
590 legion_domain_point_t p);
591 LEGION_FOREACH_N(GET_POINT)
592#undef GET_POINT
593
594 legion_domain_point_t legion_domain_point_origin(unsigned dim);
595
600
605
611 legion_runtime_t runtime, legion_context_t ctx,
613
614 // -----------------------------------------------------------------------
615 // Domain Point Iterator
616 // -----------------------------------------------------------------------
617
623 legion_domain_point_iterator_t legion_domain_point_iterator_create(
624 legion_domain_t handle);
625
632 legion_domain_point_iterator_t handle);
633
638 legion_domain_point_iterator_t handle);
639
644 legion_domain_point_iterator_t handle);
645
646 // -----------------------------------------------------------------------
647 // Rect in Domain Iterator
648 // -----------------------------------------------------------------------
649
655#define ITERATOR_CREATE(DIM) \
656 legion_rect_in_domain_iterator_##DIM##d_t \
657 legion_rect_in_domain_iterator_create_##DIM##d(legion_domain_t handle);
658 LEGION_FOREACH_N(ITERATOR_CREATE)
659#undef ITERATOR_CREATE
660
666#define ITERATOR_DESTROY(DIM) \
667 void legion_rect_in_domain_iterator_destroy_##DIM##d( \
668 legion_rect_in_domain_iterator_##DIM##d_t handle);
669 LEGION_FOREACH_N(ITERATOR_DESTROY)
670#undef ITERATOR_DESTROY
671
675#define ITERATOR_VALID(DIM) \
676 bool legion_rect_in_domain_iterator_valid_##DIM##d( \
677 legion_rect_in_domain_iterator_##DIM##d_t handle);
678 LEGION_FOREACH_N(ITERATOR_VALID)
679#undef ITERATOR_VALID
680
684#define ITERATOR_STEP(DIM) \
685 bool legion_rect_in_domain_iterator_step_##DIM##d( \
686 legion_rect_in_domain_iterator_##DIM##d_t handle);
687 LEGION_FOREACH_N(ITERATOR_STEP)
688#undef ITERATOR_STEP
689
693#define ITERATOR_OP(DIM) \
694 legion_rect_##DIM##d_t legion_rect_in_domain_iterator_get_rect_##DIM##d( \
695 legion_rect_in_domain_iterator_##DIM##d_t handle);
696 LEGION_FOREACH_N(ITERATOR_OP)
697#undef ITERATOR_OP
698
699 // -----------------------------------------------------------------------
700 // Coloring Operations
701 // -----------------------------------------------------------------------
702
708 legion_coloring_t legion_coloring_create(void);
709
715 void legion_coloring_destroy(legion_coloring_t handle);
716
721 legion_coloring_t handle, legion_color_t color);
722
727 legion_coloring_t handle, legion_color_t color, legion_ptr_t point);
728
733 legion_coloring_t handle, legion_color_t color, legion_ptr_t point);
734
739 legion_coloring_t handle, legion_color_t color, legion_ptr_t point);
740
745 legion_coloring_t handle, legion_color_t color, legion_ptr_t start,
746 legion_ptr_t end );
747
748 // -----------------------------------------------------------------------
749 // Domain Coloring Operations
750 // -----------------------------------------------------------------------
751
757 legion_domain_coloring_t legion_domain_coloring_create(void);
758
764 void legion_domain_coloring_destroy(legion_domain_coloring_t handle);
765
770 legion_domain_coloring_t handle, legion_color_t color,
771 legion_domain_t domain);
772
777 legion_domain_coloring_t handle);
778
779 // -----------------------------------------------------------------------
780 // Point Coloring Operations
781 // -----------------------------------------------------------------------
782
788 legion_point_coloring_t legion_point_coloring_create(void);
789
795 void legion_point_coloring_destroy(legion_point_coloring_t handle);
796
801 legion_point_coloring_t handle, legion_domain_point_t color,
802 legion_ptr_t point);
803
808 legion_point_coloring_t handle, legion_domain_point_t color,
809 legion_ptr_t start, legion_ptr_t end );
810
811 // -----------------------------------------------------------------------
812 // Domain Point Coloring Operations
813 // -----------------------------------------------------------------------
814
820 legion_domain_point_coloring_t legion_domain_point_coloring_create(void);
821
828 legion_domain_point_coloring_t handle);
829
834 legion_domain_point_coloring_t handle, legion_domain_point_t color,
835 legion_domain_t domain);
836
837 // -----------------------------------------------------------------------
838 // Multi-Domain Point Coloring Operations
839 // -----------------------------------------------------------------------
840
846 legion_multi_domain_point_coloring_t
848
855 legion_multi_domain_point_coloring_t handle);
856
861 legion_multi_domain_point_coloring_t handle, legion_domain_point_t color,
862 legion_domain_t domain);
863
864 // -----------------------------------------------------------------------
865 // Index Space Operations
866 // ----------------------------------------------------------------------
867
874 legion_runtime_t runtime, legion_context_t ctx, size_t max_num_elmts);
875
882 legion_runtime_t runtime, legion_context_t ctx, legion_domain_t domain);
883
890 legion_runtime_t runtime, legion_context_t ctx, size_t dimensions,
891 legion_future_t future, legion_type_tag_t type_tag /*=0*/);
892
899 legion_runtime_t runtime, legion_context_t ctx,
900 const legion_index_space_t* spaces, size_t num_spaces);
901
908 legion_runtime_t runtime, legion_context_t ctx,
909 const legion_index_space_t* spaces, size_t num_spaces);
910
917 legion_runtime_t runtime, legion_context_t ctx, legion_index_space_t left,
919
924 legion_runtime_t runtime, legion_index_space_t handle);
925
932 legion_runtime_t runtime, legion_index_space_t handle);
933
940 legion_runtime_t runtime, legion_index_space_t handle);
947 legion_runtime_t runtime, legion_index_space_t handle);
948
955 legion_runtime_t runtime, legion_context_t ctx,
956 legion_index_space_t handle);
957
964 legion_runtime_t runtime, legion_context_t ctx,
965 legion_index_space_t handle);
966
973 legion_runtime_t runtime, legion_context_t ctx,
974 legion_index_space_t handle, bool unordered);
975
980 legion_runtime_t runtime, legion_index_space_t handle,
981 legion_semantic_tag_t tag, const void* buffer, size_t size,
982 bool is_mutable /* = false */);
983
988 legion_runtime_t runtime, legion_index_space_t handle,
989 legion_semantic_tag_t tag, const void** result, size_t* size,
990 bool can_fail /* = false */, bool wait_until_ready /* = false */);
991
996 legion_runtime_t runtime, legion_index_space_t handle, const char* name,
997 bool is_mutable /* = false */);
998
1003 legion_runtime_t runtime, legion_index_space_t handle,
1004 const char** result);
1005
1012
1013 // -----------------------------------------------------------------------
1014 // Index Partition Operations
1015 // -----------------------------------------------------------------------
1016
1024 legion_runtime_t runtime, legion_context_t ctx,
1025 legion_index_space_t parent, legion_coloring_t coloring, bool disjoint,
1026 legion_color_t part_color /* = AUTO_GENERATE_ID */);
1027
1035 legion_runtime_t runtime, legion_context_t ctx,
1036 legion_index_space_t parent, legion_domain_t color_space,
1037 legion_domain_coloring_t coloring, bool disjoint,
1038 legion_color_t part_color /* = AUTO_GENERATE_ID */);
1039
1047 legion_runtime_t runtime, legion_context_t ctx,
1048 legion_index_space_t parent, legion_domain_t color_space,
1049 legion_point_coloring_t coloring,
1050 legion_partition_kind_t part_kind /* = COMPUTE_KIND */,
1051 legion_color_t color /* = AUTO_GENERATE_ID */);
1052
1061 legion_runtime_t runtime, legion_context_t ctx,
1062 legion_index_space_t parent, legion_domain_t color_space,
1063 legion_domain_point_coloring_t coloring,
1064 legion_partition_kind_t part_kind /* = COMPUTE_KIND */,
1065 legion_color_t color /* = AUTO_GENERATE_ID */);
1066
1076 legion_runtime_t runtime, legion_context_t ctx,
1077 legion_index_space_t parent, legion_domain_t color_space,
1078 legion_multi_domain_point_coloring_t coloring,
1079 legion_partition_kind_t part_kind /* = COMPUTE_KIND */,
1080 legion_color_t color /* = AUTO_GENERATE_ID */);
1081
1088#define CREATE_BLOCKIFY(DIM) \
1089 legion_index_partition_t legion_index_partition_create_blockify_##DIM##d( \
1090 legion_runtime_t runtime, legion_context_t ctx, \
1091 legion_index_space_t parent, legion_blockify_##DIM##d_t blockify, \
1092 legion_color_t part_color /* = AUTO_GENERATE_ID */);
1093 LEGION_FOREACH_N(CREATE_BLOCKIFY)
1094#undef CREATE_BLOCKIFY
1095
1102 legion_runtime_t runtime, legion_context_t ctx,
1103 legion_index_space_t parent, legion_index_space_t color_space,
1104 size_t granularity, legion_color_t color /* = AUTO_GENERATE_ID */);
1105
1112 legion_runtime_t runtime, legion_context_t ctx,
1113 legion_index_space_t parent, legion_domain_point_t* colors, int* weights,
1114 size_t num_colors, legion_index_space_t color_space,
1115 size_t granularity /* = 1 */,
1116 legion_color_t color /* = AUTO_GENERATE_ID */);
1117
1124 legion_runtime_t runtime, legion_context_t ctx,
1125 legion_index_space_t parent, legion_future_map_t future_map,
1126 legion_index_space_t color_space, size_t granularity /* = 1 */,
1127 legion_color_t color /* = AUTO_GENERATE_ID */);
1128
1135 legion_runtime_t runtime, legion_context_t ctx,
1138 legion_partition_kind_t part_kind /* = COMPUTE_KIND */,
1139 legion_color_t color /* = AUTO_GENERATE_ID */);
1140
1147 legion_runtime_t runtime, legion_context_t ctx,
1150 legion_partition_kind_t part_kind /* = COMPUTE_KIND */,
1151 legion_color_t color /* = AUTO_GENERATE_ID */);
1152
1159 legion_runtime_t runtime, legion_context_t ctx,
1161 legion_partition_kind_t part_kind /* = COMPUTE_KIND */,
1162 legion_color_t color /* = AUTO_GENERATE_ID */,
1163 bool dominates /* = false */);
1164
1171 legion_runtime_t runtime, legion_context_t ctx,
1174 legion_partition_kind_t part_kind /* = COMPUTE_KIND */,
1175 legion_color_t color /* = AUTO_GENERATE_ID */);
1176
1183 legion_runtime_t runtime, legion_context_t ctx,
1185 legion_domain_t* domains, size_t num_color_domains,
1186 legion_index_space_t color_space, bool perform_intersections /* = true */,
1187 legion_partition_kind_t part_kind /* = COMPUTE_KIND */,
1188 legion_color_t color /* = AUTO_GENERATE_ID */);
1189
1196 legion_runtime_t runtime, legion_context_t ctx,
1197 legion_index_space_t parent, legion_future_map_t future_map,
1198 legion_index_space_t color_space, bool perform_intersections /* = true */,
1199 legion_partition_kind_t part_kind /* = COMPUTE_KIND */,
1200 legion_color_t color /* = AUTO_GENERATE_ID */);
1201
1208 legion_runtime_t runtime, legion_context_t ctx,
1210 legion_field_id_t fid, legion_index_space_t color_space,
1211 legion_color_t color /* = AUTO_GENERATE_ID */,
1212 legion_mapper_id_t id /* = 0 */, legion_mapping_tag_id_t tag /* = 0 */,
1213 legion_partition_kind_t part_kind /* = DISJOINT_KIND */,
1214 legion_untyped_buffer_t map_arg);
1215
1222 legion_runtime_t runtime, legion_context_t ctx,
1224 legion_logical_region_t parent, legion_field_id_t fid,
1225 legion_index_space_t color_space,
1226 legion_partition_kind_t part_kind /* = COMPUTE_KIND */,
1227 legion_color_t color /* = AUTO_GENERATE_ID */,
1228 legion_mapper_id_t id /* = 0 */, legion_mapping_tag_id_t tag /* = 0 */,
1229 legion_untyped_buffer_t map_arg);
1230
1237 legion_runtime_t runtime, legion_context_t ctx,
1239 legion_logical_region_t parent, legion_field_id_t fid,
1240 legion_index_space_t color_space,
1241 legion_partition_kind_t part_kind /* = COMPUTE_KIND */,
1242 legion_color_t color /* = AUTO_GENERATE_ID */,
1243 legion_mapper_id_t id /* = 0 */, legion_mapping_tag_id_t tag /* = 0 */,
1244 legion_untyped_buffer_t map_arg);
1245
1252 legion_runtime_t runtime, legion_context_t ctx,
1254 legion_logical_region_t parent, legion_field_id_t fid,
1255 legion_index_space_t color_space,
1256 legion_partition_kind_t part_kind /* = COMPUTE_KIND */,
1257 legion_color_t color /* = AUTO_GENERATE_ID */,
1258 legion_mapper_id_t id /* = 0 */, legion_mapping_tag_id_t tag /* = 0 */,
1259 legion_untyped_buffer_t map_arg);
1260
1267 legion_runtime_t runtime, legion_context_t ctx,
1269 legion_logical_region_t parent, legion_field_id_t fid,
1270 legion_index_space_t color_space,
1271 legion_partition_kind_t part_kind /* = COMPUTE_KIND */,
1272 legion_color_t color /* = AUTO_GENERATE_ID */,
1273 legion_mapper_id_t id /* = 0 */, legion_mapping_tag_id_t tag /* = 0 */,
1274 legion_untyped_buffer_t map_arg);
1275
1282 legion_runtime_t runtime, legion_context_t ctx,
1283 legion_index_space_t parent, legion_index_space_t color_space,
1285 legion_partition_kind_t part_kind /* = COMPUTE_KIND */,
1286 legion_color_t color /* = AUTO_GENERATE_ID */);
1287
1294 legion_runtime_t runtime, legion_context_t ctx,
1295 legion_index_space_t parent, legion_index_space_t color_space,
1296 legion_partition_kind_t part_kind /* = COMPUTE_KIND */,
1297 legion_color_t color /* = AUTO_GENERATE_ID */);
1298
1303 legion_runtime_t runtime, legion_context_t ctx,
1305 const legion_index_space_t* spaces, size_t num_spaces);
1306
1312 legion_runtime_t runtime, legion_context_t ctx,
1315
1321 legion_runtime_t runtime, legion_context_t ctx,
1323 const legion_index_space_t* spaces, size_t num_spaces);
1324
1330 legion_runtime_t runtime, legion_context_t ctx,
1333
1338 legion_runtime_t runtime, legion_context_t ctx,
1340 legion_index_space_t initial, const legion_index_space_t* spaces,
1341 size_t num_spaces);
1342
1347 legion_runtime_t runtime, legion_index_partition_t handle);
1348
1353 legion_runtime_t runtime, legion_index_partition_t handle);
1354
1361 legion_runtime_t runtime, legion_index_partition_t handle,
1362 legion_color_t color);
1363
1370 legion_runtime_t runtime, legion_index_partition_t handle,
1371 legion_domain_point_t color);
1372
1377 legion_runtime_t runtime, legion_index_partition_t handle,
1378 legion_domain_point_t color);
1379
1384 legion_runtime_t runtime, legion_index_partition_t handle);
1385
1390 legion_runtime_t runtime, legion_index_partition_t handle);
1391
1398 legion_runtime_t runtime, legion_index_partition_t handle);
1399
1406 legion_runtime_t runtime, legion_context_t ctx,
1408
1415 legion_runtime_t runtime, legion_context_t ctx,
1417
1424 legion_runtime_t runtime, legion_context_t ctx,
1425 legion_index_partition_t handle, bool unordered /* = false */,
1426 bool recurse /* = true */);
1427
1432 legion_runtime_t runtime, legion_index_partition_t handle,
1433 legion_semantic_tag_t tag, const void* buffer, size_t size,
1434 bool is_mutable /* = false */);
1435
1440 legion_runtime_t runtime, legion_index_partition_t handle,
1441 legion_semantic_tag_t tag, const void** result, size_t* size,
1442 bool can_fail /* = false */, bool wait_until_ready /* = false */);
1443
1448 legion_runtime_t runtime, legion_index_partition_t handle,
1449 const char* name, bool is_mutable /* = false */);
1450
1455 legion_runtime_t runtime, legion_index_partition_t handle,
1456 const char** result);
1457
1458 // -----------------------------------------------------------------------
1459 // Field Space Operations
1460 // -----------------------------------------------------------------------
1461
1468 legion_runtime_t runtime, legion_context_t ctx);
1469
1476 legion_runtime_t runtime, legion_context_t ctx, size_t* field_sizes,
1477 legion_field_id_t* field_ids, size_t num_fields,
1478 legion_custom_serdez_id_t serdez);
1479
1486 legion_runtime_t runtime, legion_context_t ctx,
1487 legion_future_t* field_sizes, legion_field_id_t* field_ids,
1488 size_t num_fields, legion_custom_serdez_id_t serdez);
1489
1494
1501 legion_runtime_t runtime, legion_context_t ctx,
1502 legion_field_space_t handle);
1503
1510 legion_runtime_t runtime, legion_context_t ctx,
1511 legion_field_space_t handle);
1512
1519 legion_runtime_t runtime, legion_context_t ctx,
1520 legion_field_space_t handle, bool unordered);
1521
1526 legion_runtime_t runtime, legion_field_space_t handle,
1527 legion_semantic_tag_t tag, const void* buffer, size_t size,
1528 bool is_mutable /* = false */);
1529
1534 legion_runtime_t runtime, legion_field_space_t handle,
1535 legion_semantic_tag_t tag, const void** result, size_t* size,
1536 bool can_fail /* = false */, bool wait_until_ready /* = false */);
1537
1544 legion_runtime_t runtime, legion_context_t ctx,
1545 legion_field_space_t handle, size_t* size);
1546
1553 legion_runtime_t runtime, legion_context_t ctx,
1554 legion_field_space_t handle, const legion_field_id_t* fields,
1555 size_t fields_size);
1556
1561 legion_runtime_t runtime, legion_field_space_t handle,
1562 legion_field_id_t id, legion_semantic_tag_t tag, const void* buffer,
1563 size_t size, bool is_mutable /* = false */);
1564
1569 legion_runtime_t runtime, legion_field_space_t handle,
1570 legion_field_id_t id, legion_semantic_tag_t tag, const void** result,
1571 size_t* size, bool can_fail /* = false */,
1572 bool wait_until_ready /* = false */);
1573
1578 legion_runtime_t runtime, legion_field_space_t handle, const char* name,
1579 bool is_mutable /* = false */);
1580
1585 legion_runtime_t runtime, legion_field_space_t handle,
1586 const char** result);
1587
1592 legion_runtime_t runtime, legion_field_space_t handle,
1593 legion_field_id_t id, const char* name, bool is_mutable /* = false */);
1594
1599 legion_runtime_t runtime, legion_field_space_t handle,
1600 legion_field_id_t id, const char** result);
1601
1606 legion_runtime_t runtime, legion_context_t ctx,
1607 legion_field_space_t handle, legion_field_id_t id);
1608
1609 // -----------------------------------------------------------------------
1610 // Logical Region Operations
1611 // -----------------------------------------------------------------------
1612
1619 legion_runtime_t runtime, legion_context_t ctx,
1620 legion_index_space_t index, legion_field_space_t fields, bool task_local);
1621
1628 legion_runtime_t runtime, legion_context_t ctx,
1630
1637 legion_runtime_t runtime, legion_context_t ctx,
1639
1646 legion_runtime_t runtime, legion_context_t ctx,
1647 legion_logical_region_t handle, bool unordered);
1648
1653 legion_runtime_t runtime, legion_logical_region_t handle);
1654
1659 legion_runtime_t runtime_, legion_logical_region_t handle_);
1660
1665 legion_runtime_t runtime, legion_logical_region_t handle);
1666
1671 legion_runtime_t runtime, legion_logical_region_t handle);
1672
1677 legion_runtime_t runtime, legion_logical_region_t handle,
1678 legion_semantic_tag_t tag, const void* buffer, size_t size,
1679 bool is_mutable /* = false */);
1680
1685 legion_runtime_t runtime, legion_logical_region_t handle,
1686 legion_semantic_tag_t tag, const void** result, size_t* size,
1687 bool can_fail /* = false */, bool wait_until_ready /* = false */);
1688
1693 legion_runtime_t runtime, legion_logical_region_t handle,
1694 const char* name, bool is_mutable /* = false */);
1695
1700 legion_runtime_t runtime, legion_logical_region_t handle,
1701 const char** result);
1702
1708
1709 // -----------------------------------------------------------------------
1710 // Logical Region Tree Traversal Operations
1711 // -----------------------------------------------------------------------
1712
1719 legion_runtime_t runtime, legion_logical_region_t parent,
1721
1728 legion_runtime_t runtime, legion_context_t ctx,
1730 legion_region_tree_id_t tid);
1731
1738 legion_runtime_t runtime, legion_context_t ctx,
1740
1747 legion_runtime_t runtime, legion_context_t ctx,
1748 legion_logical_partition_t handle, bool unordered);
1749
1756 legion_runtime_t runtime, legion_logical_partition_t parent,
1757 legion_index_space_t handle);
1758
1766 legion_runtime_t runtime, legion_logical_partition_t parent,
1767 legion_color_t c);
1768
1776 legion_runtime_t runtime, legion_logical_partition_t parent,
1778
1783 legion_runtime_t runtime, legion_logical_partition_t parent,
1785
1793 legion_runtime_t runtime, legion_index_space_t handle,
1794 legion_field_space_t fspace, legion_region_tree_id_t tid);
1795
1800 legion_runtime_t runtime, legion_logical_partition_t handle);
1801
1806 legion_runtime_t runtime, legion_logical_partition_t handle,
1807 legion_semantic_tag_t tag, const void* buffer, size_t size,
1808 bool is_mutable /* = false */);
1809
1814 legion_runtime_t runtime, legion_logical_partition_t handle,
1815 legion_semantic_tag_t tag, const void** result, size_t* size,
1816 bool can_fail /* = false */, bool wait_until_ready /* = false */);
1817
1822 legion_runtime_t runtime, legion_logical_partition_t handle,
1823 const char* name, bool is_mutable /* = false */);
1824
1829 legion_runtime_t runtime, legion_logical_partition_t handle,
1830 const char** result);
1831
1839 legion_runtime_t runtime, legion_context_t ctx,
1841 int num_fields, legion_field_id_t* fields);
1842
1843 // -----------------------------------------------------------------------
1844 // Region Requirement Operations
1845 // -----------------------------------------------------------------------
1846
1851 legion_logical_region_t handle, legion_privilege_mode_t priv,
1852 legion_coherence_property_t prop, legion_logical_region_t parent,
1853 legion_mapping_tag_id_t tag /* = 0 */, bool verified /* = false*/);
1854
1858 legion_region_requirement_t
1860 legion_logical_region_t handle, legion_projection_id_t proj /* = 0 */,
1861 legion_privilege_mode_t priv, legion_coherence_property_t prop,
1862 legion_logical_region_t parent, legion_mapping_tag_id_t tag /* = 0 */,
1863 bool verified /* = false*/);
1864
1868 legion_region_requirement_t
1871 legion_projection_id_t proj /* = 0 */, legion_privilege_mode_t priv,
1872 legion_coherence_property_t prop, legion_logical_region_t parent,
1873 legion_mapping_tag_id_t tag /* = 0 */, bool verified /* = false*/);
1874
1878 void legion_region_requirement_destroy(legion_region_requirement_t handle);
1879
1884 legion_region_requirement_t handle, legion_field_id_t field,
1885 bool instance_field);
1886
1891 legion_region_requirement_t handle, legion_region_flags_t flags);
1892
1897 legion_region_requirement_t handle);
1898
1903 legion_region_requirement_t handle);
1904
1909 legion_region_requirement_t handle);
1910
1915 legion_region_requirement_t handle);
1916
1929 legion_region_requirement_t handle, legion_field_id_t* fields,
1930 unsigned fields_size);
1931
1940 legion_region_requirement_t handle, unsigned idx);
1941
1946 legion_region_requirement_t handle);
1947
1960 legion_region_requirement_t handle, legion_field_id_t* fields,
1961 unsigned fields_size);
1962
1969 legion_region_requirement_t handle, unsigned idx);
1970
1975 legion_region_requirement_t handle);
1976
1980 legion_coherence_property_t legion_region_requirement_get_prop(
1981 legion_region_requirement_t handle);
1982
1986 legion_reduction_op_id_t legion_region_requirement_get_redop(
1987 legion_region_requirement_t handle);
1988
1992 legion_mapping_tag_id_t legion_region_requirement_get_tag(
1993 legion_region_requirement_t handle);
1994
1999 legion_region_requirement_t handle);
2000
2005 legion_region_requirement_t handle);
2006
2007 // -----------------------------------------------------------------------
2008 // Output Requirement Operations
2009 // -----------------------------------------------------------------------
2010
2014 legion_output_requirement_t legion_output_requirement_create(
2015 legion_field_space_t field_space, legion_field_id_t* fields,
2016 size_t fields_size, int dim, bool global_indexing);
2017
2021 legion_output_requirement_t
2023 legion_region_requirement_t handle);
2024
2028 void legion_output_requirement_destroy(legion_output_requirement_t handle);
2029
2034 legion_output_requirement_t handle, legion_field_id_t field,
2035 bool instance);
2036
2041 legion_output_requirement_t handle);
2042
2047 legion_output_requirement_t handle);
2048
2053 legion_output_requirement_t handle);
2054
2055 // -----------------------------------------------------------------------
2056 // Allocator and Argument Map Operations
2057 // -----------------------------------------------------------------------
2058
2064 legion_field_allocator_t legion_field_allocator_create(
2065 legion_runtime_t runtime, legion_context_t ctx,
2066 legion_field_space_t handle);
2067
2073 void legion_field_allocator_destroy(legion_field_allocator_t handle);
2074
2078 legion_field_id_t legion_auto_generate_id(void);
2079
2084 legion_field_allocator_t allocator, size_t field_size,
2085 legion_field_id_t desired_fieldid /* = AUTO_GENERATE_ID */);
2086
2091 legion_field_allocator_t allocator, legion_future_t field_size,
2092 legion_field_id_t desired_fieldid /* = AUTO_GENERATE_ID */);
2093
2098 legion_field_allocator_t allocator, legion_field_id_t fid);
2099
2104 legion_field_allocator_t allocator, legion_field_id_t fid,
2105 bool unordered);
2106
2111 legion_field_allocator_t allocator, size_t field_size,
2112 legion_field_id_t desired_fieldid /* = AUTO_GENERATE_ID */);
2113
2119 legion_argument_map_t legion_argument_map_create(void);
2120
2127 legion_future_map_t map);
2128
2133 legion_argument_map_t map, legion_domain_point_t dp,
2134 legion_untyped_buffer_t arg, bool replace /* = true */);
2135
2140 legion_argument_map_t map, legion_domain_point_t dp,
2141 legion_future_t future, bool replace /* = true */);
2142
2148 void legion_argument_map_destroy(legion_argument_map_t handle);
2149
2150 // -----------------------------------------------------------------------
2151 // Predicate Operations
2152 // -----------------------------------------------------------------------
2153
2159 legion_predicate_t legion_predicate_create(
2160 legion_runtime_t runtime, legion_context_t ctx, legion_future_t f);
2161
2167 void legion_predicate_destroy(legion_predicate_t handle);
2168
2174 const legion_predicate_t legion_predicate_true(void);
2175
2181 const legion_predicate_t legion_predicate_false(void);
2182
2183 // -----------------------------------------------------------------------
2184 // Phase Barrier Operations
2185 // -----------------------------------------------------------------------
2186
2193 legion_runtime_t runtime, legion_context_t ctx, unsigned arrivals);
2194
2201 legion_runtime_t runtime, legion_context_t ctx,
2202 legion_phase_barrier_t handle);
2203
2208 legion_runtime_t runtime, legion_context_t ctx,
2209 legion_phase_barrier_t handle, int delta);
2210
2215 legion_runtime_t runtime, legion_context_t ctx,
2216 legion_phase_barrier_t handle, unsigned count /* = 1 */);
2217
2222 legion_runtime_t runtime, legion_context_t ctx,
2223 legion_phase_barrier_t handle);
2224
2231 legion_runtime_t runtime, legion_context_t ctx,
2232 legion_phase_barrier_t handle);
2233
2234 // -----------------------------------------------------------------------
2235 // Dynamic Collective Operations
2236 // -----------------------------------------------------------------------
2237
2244 legion_runtime_t runtime, legion_context_t ctx, unsigned arrivals,
2245 legion_reduction_op_id_t redop, const void* init_value, size_t init_size);
2246
2253 legion_runtime_t runtime, legion_context_t ctx,
2255
2260 legion_runtime_t runtime, legion_context_t ctx,
2261 legion_dynamic_collective_t handle, int delta);
2262
2267 legion_runtime_t runtime, legion_context_t ctx,
2268 legion_dynamic_collective_t handle, const void* buffer, size_t size,
2269 unsigned count /* = 1 */);
2270
2275 legion_runtime_t runtime, legion_context_t ctx,
2276 legion_dynamic_collective_t handle, legion_future_t f,
2277 unsigned count /* = 1 */);
2278
2285 legion_runtime_t runtime, legion_context_t ctx,
2287
2294 legion_runtime_t runtime, legion_context_t ctx,
2296
2297 // -----------------------------------------------------------------------
2298 // Future Operations
2299 // -----------------------------------------------------------------------
2300
2307 legion_runtime_t runtime, const void* buffer, size_t size);
2308
2315 legion_runtime_t runtime, const void* buffer, size_t size,
2316 bool take_ownership, const char* provenance, bool shard_local);
2317
2323 legion_future_t legion_future_copy(legion_future_t handle);
2324
2330 void legion_future_destroy(legion_future_t handle);
2331
2335 void legion_future_get_void_result(legion_future_t handle);
2336
2341 legion_future_t handle, bool silence_warnings /* = false */,
2342 const char* warning_string /* = nullptr */);
2343
2347 bool legion_future_is_empty(legion_future_t handle, bool block /* = false */);
2348
2352 bool legion_future_is_ready(legion_future_t handle);
2353
2357 bool legion_future_is_ready_subscribe(legion_future_t handle, bool subscribe);
2358
2362 const void* legion_future_get_untyped_pointer(legion_future_t handle);
2363
2367 size_t legion_future_get_untyped_size(legion_future_t handle);
2368
2373 legion_future_t handle, size_t* size /*=nullptr*/);
2374
2375 // -----------------------------------------------------------------------
2376 // Future Map Operations
2377 // -----------------------------------------------------------------------
2378
2384 legion_future_map_t legion_future_map_copy(legion_future_map_t handle);
2385
2391 void legion_future_map_destroy(legion_future_map_t handle);
2392
2396 void legion_future_map_wait_all_results(legion_future_map_t handle);
2397
2404 legion_future_map_t handle, legion_domain_point_t point);
2405
2410
2417 legion_runtime_t runtime, legion_context_t ctx,
2418 legion_future_map_t handle, legion_reduction_op_id_t redop,
2419 bool deterministic, legion_mapper_id_t map_id,
2420 legion_mapping_tag_id_t tag);
2421
2428 legion_runtime_t runtime, legion_context_t ctx,
2429 legion_future_map_t handle, legion_reduction_op_id_t redop,
2430 bool deterministic, legion_mapper_id_t map_id,
2431 legion_mapping_tag_id_t tag, const char* provenance,
2432 legion_future_t initial_value);
2433
2440 legion_runtime_t runtime, legion_context_t ctx, legion_domain_t domain,
2442 size_t num_points, bool collective, legion_sharding_id_t sid,
2443 bool implicit_sharding);
2444
2451 legion_runtime_t runtime, legion_context_t ctx, legion_domain_t domain,
2452 legion_domain_point_t* points, legion_future_t* futures,
2453 size_t num_futures, bool collective, legion_sharding_id_t sid,
2454 bool implicit_sharding);
2455
2461 legion_future_map_t legion_future_map_transform(
2462 legion_runtime_t runtime, legion_context_t ctx, legion_future_map_t fm,
2463 legion_index_space_t new_domain, legion_point_transform_functor_t functor,
2464 bool take_ownership);
2465
2466 // -----------------------------------------------------------------------
2467 // Deferred Buffer Operations
2468 // -----------------------------------------------------------------------
2469
2475#define BUFFER_CREATE(DIM) \
2476 legion_deferred_buffer_char_##DIM##d_t \
2477 legion_deferred_buffer_char_##DIM##d_create( \
2478 legion_rect_##DIM##d_t bounds, legion_memory_kind_t kind, \
2479 char* initial_value);
2480 LEGION_FOREACH_N(BUFFER_CREATE)
2481#undef BUFFER_CREATE
2482
2483 /*
2484 * @see Legion::DeferredBuffer::ptr()
2485 */
2486#define BUFFER_PTR(DIM) \
2487 char* legion_deferred_buffer_char_##DIM##d_ptr( \
2488 legion_deferred_buffer_char_##DIM##d_t buffer, \
2489 legion_point_##DIM##d_t p);
2490 LEGION_FOREACH_N(BUFFER_PTR)
2491#undef BUFFER_PTR
2492
2493 /*
2494 * @see Legion::DeferredBuffer::~DeferredBuffer()
2495 */
2496#define BUFFER_DESTROY(DIM) \
2497 void legion_deferred_buffer_char_##DIM##d_destroy( \
2498 legion_deferred_buffer_char_##DIM##d_t buffer);
2499 LEGION_FOREACH_N(BUFFER_DESTROY)
2500#undef BUFFER_DESTROY
2501
2502 // -----------------------------------------------------------------------
2503 // Task Launch Operations
2504 // -----------------------------------------------------------------------
2505
2511 legion_task_launcher_t legion_task_launcher_create(
2512 legion_task_id_t tid, legion_untyped_buffer_t arg,
2513 legion_predicate_t pred /* = legion_predicate_true() */,
2514 legion_mapper_id_t id /* = 0 */, legion_mapping_tag_id_t tag /* = 0 */);
2515
2522 legion_task_id_t tid, const void* buffer, size_t buffer_size,
2523 legion_predicate_t pred /* = legion_predicate_true() */,
2524 legion_mapper_id_t id /* = 0 */, legion_mapping_tag_id_t tag /* = 0 */);
2525
2531 void legion_task_launcher_destroy(legion_task_launcher_t handle);
2532
2539 legion_runtime_t runtime, legion_context_t ctx,
2540 legion_task_launcher_t launcher);
2541
2548 legion_runtime_t runtime, legion_context_t ctx,
2549 legion_task_launcher_t launcher, legion_output_requirement_t* reqs,
2550 size_t reqs_size);
2551
2556 legion_task_launcher_t launcher, legion_logical_region_t handle,
2557 legion_privilege_mode_t priv, legion_coherence_property_t prop,
2558 legion_logical_region_t parent, legion_mapping_tag_id_t tag /* = 0 */,
2559 bool verified /* = false*/);
2560
2565 legion_task_launcher_t launcher, legion_logical_region_t handle,
2566 legion_reduction_op_id_t redop, legion_coherence_property_t prop,
2567 legion_logical_region_t parent, legion_mapping_tag_id_t tag /* = 0 */,
2568 bool verified /* = false*/);
2569
2574 legion_task_launcher_t launcher, unsigned idx,
2575 legion_logical_region_t handle, legion_privilege_mode_t priv,
2576 legion_coherence_property_t prop, legion_logical_region_t parent,
2577 legion_mapping_tag_id_t tag /* = 0 */, bool verified /* = false*/);
2578
2583 legion_task_launcher_t launcher, unsigned idx,
2584 legion_logical_region_t handle, legion_reduction_op_id_t redop,
2585 legion_coherence_property_t prop, legion_logical_region_t parent,
2586 legion_mapping_tag_id_t tag /* = 0 */, bool verified /* = false*/);
2587
2592 legion_task_launcher_t launcher, unsigned idx, legion_field_id_t fid,
2593 bool inst /* = true */);
2594
2599 legion_region_requirement_t requirement, size_t* size);
2600
2605 legion_index_launcher_t launcher_, unsigned idx, const void* args,
2606 size_t size, bool own);
2607
2612 legion_task_launcher_t launcher, unsigned idx,
2613 enum legion_region_flags_t flags);
2614
2619 legion_task_launcher_t launcher, unsigned idx,
2620 enum legion_region_flags_t flags);
2621
2626 legion_task_launcher_t launcher, legion_index_space_t handle,
2627 legion_allocate_mode_t priv, legion_index_space_t parent,
2628 bool verified /* = false*/);
2629
2634 legion_task_launcher_t launcher, legion_future_t future);
2635
2640 legion_task_launcher_t launcher, legion_phase_barrier_t bar);
2641
2646 legion_task_launcher_t launcher, legion_phase_barrier_t bar);
2647
2652 legion_task_launcher_t launcher, legion_untyped_buffer_t arg);
2653
2658 legion_task_launcher_t launcher, legion_domain_point_t point);
2659
2664 legion_task_launcher_t launcher, legion_index_space_t is);
2665
2670 legion_task_launcher_t launcher, legion_future_t f);
2671
2676 legion_task_launcher_t launcher, legion_untyped_buffer_t arg);
2677
2682 legion_task_launcher_t launcher, legion_mapper_id_t mapper_id);
2683
2688 legion_task_launcher_t launcher, legion_mapping_tag_id_t tag);
2689
2694 legion_task_launcher_t launcher, legion_untyped_buffer_t arg);
2695
2700 legion_task_launcher_t launcher, bool enable_inlining);
2701
2706 legion_task_launcher_t launcher, bool local_function_task);
2707
2712 legion_task_launcher_t launcher, bool elide_future_return);
2713
2718 legion_task_launcher_t launcher, const char* provenance);
2719
2725 legion_index_launcher_t legion_index_launcher_create(
2726 legion_task_id_t tid, legion_domain_t domain,
2727 legion_untyped_buffer_t global_arg, legion_argument_map_t map,
2728 legion_predicate_t pred /* = legion_predicate_true() */,
2729 bool must /* = false */, legion_mapper_id_t id /* = 0 */,
2730 legion_mapping_tag_id_t tag /* = 0 */);
2731
2738 legion_task_id_t tid, legion_domain_t domain, const void* buffer,
2739 size_t buffer_size, legion_argument_map_t map,
2740 legion_predicate_t pred /* = legion_predicate_true() */,
2741 bool must /* = false */, legion_mapper_id_t id /* = 0 */,
2742 legion_mapping_tag_id_t tag /* = 0 */);
2743
2749 void legion_index_launcher_destroy(legion_index_launcher_t handle);
2750
2758 legion_runtime_t runtime, legion_context_t ctx,
2759 legion_index_launcher_t launcher);
2760
2768 legion_runtime_t runtime, legion_context_t ctx,
2769 legion_index_launcher_t launcher, legion_reduction_op_id_t redop);
2770
2778 legion_runtime_t runtime, legion_context_t ctx,
2779 legion_index_launcher_t launcher, legion_output_requirement_t* reqs,
2780 size_t reqs_size);
2781
2789 legion_runtime_t runtime, legion_context_t ctx,
2790 legion_index_launcher_t launcher, legion_reduction_op_id_t redop,
2791 bool deterministic);
2792
2800 legion_runtime_t runtime, legion_context_t ctx,
2801 legion_index_launcher_t launcher, legion_reduction_op_id_t redop,
2802 bool deterministic, legion_output_requirement_t* reqs, size_t reqs_size);
2803
2808 legion_index_launcher_t launcher, legion_logical_region_t handle,
2809 legion_projection_id_t proj /* = 0 */, legion_privilege_mode_t priv,
2810 legion_coherence_property_t prop, legion_logical_region_t parent,
2811 legion_mapping_tag_id_t tag /* = 0 */, bool verified /* = false*/);
2812
2817 legion_index_launcher_t launcher, legion_logical_partition_t handle,
2818 legion_projection_id_t proj /* = 0 */, legion_privilege_mode_t priv,
2819 legion_coherence_property_t prop, legion_logical_region_t parent,
2820 legion_mapping_tag_id_t tag /* = 0 */, bool verified /* = false*/);
2821
2825 unsigned
2827 legion_index_launcher_t launcher, legion_logical_region_t handle,
2828 legion_projection_id_t proj /* = 0 */, legion_reduction_op_id_t redop,
2829 legion_coherence_property_t prop, legion_logical_region_t parent,
2830 legion_mapping_tag_id_t tag /* = 0 */, bool verified /* = false*/);
2831
2835 unsigned
2837 legion_index_launcher_t launcher, legion_logical_partition_t handle,
2838 legion_projection_id_t proj /* = 0 */, legion_reduction_op_id_t redop,
2839 legion_coherence_property_t prop, legion_logical_region_t parent,
2840 legion_mapping_tag_id_t tag /* = 0 */, bool verified /* = false*/);
2841
2846 legion_index_launcher_t launcher, unsigned idx,
2847 legion_logical_region_t handle, legion_projection_id_t proj /* = 0 */,
2848 legion_privilege_mode_t priv, legion_coherence_property_t prop,
2849 legion_logical_region_t parent, legion_mapping_tag_id_t tag /* = 0 */,
2850 bool verified /* = false*/);
2851
2856 legion_index_launcher_t launcher, unsigned idx,
2857 legion_logical_partition_t handle, legion_projection_id_t proj /* = 0 */,
2858 legion_privilege_mode_t priv, legion_coherence_property_t prop,
2859 legion_logical_region_t parent, legion_mapping_tag_id_t tag /* = 0 */,
2860 bool verified /* = false*/);
2861
2866 legion_index_launcher_t launcher, unsigned idx,
2867 legion_logical_region_t handle, legion_projection_id_t proj /* = 0 */,
2868 legion_reduction_op_id_t redop, legion_coherence_property_t prop,
2869 legion_logical_region_t parent, legion_mapping_tag_id_t tag /* = 0 */,
2870 bool verified /* = false*/);
2871
2876 legion_index_launcher_t launcher, unsigned idx,
2877 legion_logical_partition_t handle, legion_projection_id_t proj /* = 0 */,
2878 legion_reduction_op_id_t redop, legion_coherence_property_t prop,
2879 legion_logical_region_t parent, legion_mapping_tag_id_t tag /* = 0 */,
2880 bool verified /* = false*/);
2881
2886 legion_index_launcher_t launcher, unsigned idx, legion_field_id_t fid,
2887 bool inst /* = true */);
2888
2893 legion_index_launcher_t launcher, unsigned idx,
2894 enum legion_region_flags_t flags);
2895
2900 legion_index_launcher_t launcher, unsigned idx,
2901 enum legion_region_flags_t flags);
2902
2907 legion_index_launcher_t launcher, legion_index_space_t handle,
2908 legion_allocate_mode_t priv, legion_index_space_t parent,
2909 bool verified /* = false*/);
2910
2915 legion_index_launcher_t launcher, legion_future_t future);
2916
2921 legion_index_launcher_t launcher, legion_phase_barrier_t bar);
2922
2927 legion_index_launcher_t launcher, legion_phase_barrier_t bar);
2928
2933 legion_index_launcher_t launcher, legion_argument_map_t map);
2934
2939 legion_index_launcher_t launcher, legion_untyped_buffer_t global_arg);
2940
2945 legion_index_launcher_t launcher, legion_index_space_t is);
2946
2951 legion_index_launcher_t launcher, legion_mapper_id_t mapper_id);
2952
2957 legion_index_launcher_t launcher, legion_mapping_tag_id_t tag);
2958
2963 legion_index_launcher_t launcher, legion_untyped_buffer_t map_arg);
2964
2969 legion_index_launcher_t launcher, bool elide_future_return);
2970
2975 legion_index_launcher_t launcher, const char* provenance);
2976
2981 legion_index_launcher_t launcher, bool concurrent);
2982
2987 legion_index_launcher_t launcher, legion_future_t initial_value);
2988
2989 // -----------------------------------------------------------------------
2990 // Inline Mapping Operations
2991 // -----------------------------------------------------------------------
2992
2999 legion_logical_region_t handle, legion_privilege_mode_t priv,
3000 legion_coherence_property_t prop, legion_logical_region_t parent,
3001 legion_mapping_tag_id_t region_tag /* = 0 */, bool verified /* = false*/,
3002 legion_mapper_id_t id /* = 0 */,
3003 legion_mapping_tag_id_t launcher_tag /* = 0 */);
3004
3010 void legion_inline_launcher_destroy(legion_inline_launcher_t handle);
3011
3017 legion_physical_region_t legion_inline_launcher_execute(
3018 legion_runtime_t runtime, legion_context_t ctx,
3019 legion_inline_launcher_t launcher);
3020
3025 legion_inline_launcher_t launcher, legion_field_id_t fid,
3026 bool inst /* = true */);
3027
3032 legion_inline_launcher_t launcher, legion_untyped_buffer_t arg);
3033
3038 legion_inline_launcher_t launcher, const char* provenance);
3039
3044 legion_runtime_t runtime, legion_context_t ctx,
3045 legion_physical_region_t region);
3046
3051 legion_runtime_t runtime, legion_context_t ctx,
3052 legion_physical_region_t region);
3053
3058 legion_runtime_t runtime, legion_context_t ctx);
3059
3060 // -----------------------------------------------------------------------
3061 // Fill Field Operations
3062 // -----------------------------------------------------------------------
3063
3068 legion_runtime_t runtime, legion_context_t ctx,
3070 legion_field_id_t fid, const void* value, size_t value_size,
3071 legion_predicate_t pred /* = legion_predicate_true() */);
3072
3077 legion_runtime_t runtime, legion_context_t ctx,
3079 legion_field_id_t fid, legion_future_t f,
3080 legion_predicate_t pred /* = legion_predicate_true() */);
3081
3087 legion_fill_launcher_t legion_fill_launcher_create(
3089 legion_field_id_t fid, const void* value, size_t value_size,
3090 legion_predicate_t pred /* = legion_predicate_true() */,
3091 legion_mapper_id_t id /* = 0 */, legion_mapping_tag_id_t tag /* = 0 */);
3092
3100 legion_field_id_t fid, legion_future_t f,
3101 legion_predicate_t pred /* = legion_predicate_true() */,
3102 legion_mapper_id_t id /* = 0 */, legion_mapping_tag_id_t tag /* = 0 */);
3103
3109 void legion_fill_launcher_destroy(legion_fill_launcher_t handle);
3110
3115 legion_fill_launcher_t handle, legion_field_id_t fid);
3116
3121 legion_runtime_t runtime, legion_context_t ctx,
3122 legion_fill_launcher_t launcher);
3123
3128 legion_fill_launcher_t launcher, legion_domain_point_t point);
3129
3134 legion_fill_launcher_t launcher, legion_index_space_t space);
3135
3140 legion_fill_launcher_t launcher, legion_untyped_buffer_t arg);
3141
3146 legion_fill_launcher_t launcher, const char* provenance);
3147
3148 // -----------------------------------------------------------------------
3149 // Index Fill Field Operations
3150 // -----------------------------------------------------------------------
3151
3157 legion_runtime_t runtime, legion_context_t ctx,
3159 legion_field_id_t fid, const void* value, size_t value_size,
3160 legion_projection_id_t proj /* = 0 */,
3161 legion_predicate_t pred /* = legion_predicate_true() */,
3162 legion_mapper_id_t id /* = 0 */,
3163 legion_mapping_tag_id_t launcher_tag /* = 0 */);
3164
3170 legion_runtime_t runtime, legion_context_t ctx,
3172 legion_logical_region_t parent, legion_field_id_t fid, const void* value,
3173 size_t value_size, legion_projection_id_t proj /* = 0 */,
3174 legion_predicate_t pred /* = legion_predicate_true() */,
3175 legion_mapper_id_t id /* = 0 */,
3176 legion_mapping_tag_id_t launcher_tag /* = 0 */);
3177
3183 legion_runtime_t runtime, legion_context_t ctx, legion_domain_t domain,
3185 legion_field_id_t fid, const void* value, size_t value_size,
3186 legion_projection_id_t proj /* = 0 */,
3187 legion_predicate_t pred /* = legion_predicate_true() */,
3188 legion_mapper_id_t id /* = 0 */,
3189 legion_mapping_tag_id_t launcher_tag /* = 0 */);
3190
3196 legion_runtime_t runtime, legion_context_t ctx,
3198 legion_field_id_t fid, legion_future_t f,
3199 legion_projection_id_t proj /* = 0 */,
3200 legion_predicate_t pred /* = legion_predicate_true() */,
3201 legion_mapper_id_t id /* = 0 */,
3202 legion_mapping_tag_id_t launcher_tag /* = 0 */);
3203
3209 legion_runtime_t runtime, legion_context_t ctx,
3211 legion_logical_region_t parent, legion_field_id_t fid, legion_future_t f,
3212 legion_projection_id_t proj /* = 0 */,
3213 legion_predicate_t pred /* = legion_predicate_true() */,
3214 legion_mapper_id_t id /* = 0 */,
3215 legion_mapping_tag_id_t launcher_tag /* = 0 */);
3216
3222 legion_runtime_t runtime, legion_context_t ctx, legion_domain_t domain,
3224 legion_field_id_t fid, legion_future_t f,
3225 legion_projection_id_t proj /* = 0 */,
3226 legion_predicate_t pred /* = legion_predicate_true() */,
3227 legion_mapper_id_t id /* = 0 */,
3228 legion_mapping_tag_id_t launcher_tag /* = 0 */);
3229
3237 legion_logical_region_t parent, legion_field_id_t fid, const void* value,
3238 size_t value_size, legion_projection_id_t proj /* = 0 */,
3239 legion_predicate_t pred /* = legion_predicate_true() */,
3240 legion_mapper_id_t id /* = 0 */,
3241 legion_mapping_tag_id_t launcher_tag /* = 0 */);
3242
3250 legion_logical_region_t parent, legion_field_id_t fid, const void* value,
3251 size_t value_size, legion_projection_id_t proj /* = 0 */,
3252 legion_predicate_t pred /* = legion_predicate_true() */,
3253 legion_mapper_id_t id /* = 0 */,
3254 legion_mapping_tag_id_t launcher_tag /* = 0 */);
3255
3261 legion_index_fill_launcher_t
3264 legion_logical_region_t parent, legion_field_id_t fid,
3265 legion_future_t future, legion_projection_id_t proj /* = 0 */,
3266 legion_predicate_t pred /* = legion_predicate_true() */,
3267 legion_mapper_id_t id /* = 0 */,
3268 legion_mapping_tag_id_t launcher_tag /* = 0 */);
3269
3275 legion_index_fill_launcher_t
3278 legion_logical_region_t parent, legion_field_id_t fid,
3279 legion_future_t future, legion_projection_id_t proj /* = 0 */,
3280 legion_predicate_t pred /* = legion_predicate_true() */,
3281 legion_mapper_id_t id /* = 0 */,
3282 legion_mapping_tag_id_t launcher_tag /* = 0 */);
3283
3289 void legion_index_fill_launcher_destroy(legion_index_fill_launcher_t handle);
3290
3295 legion_fill_launcher_t handle, legion_field_id_t fid);
3296
3301 legion_runtime_t runtime, legion_context_t ctx,
3302 legion_index_fill_launcher_t launcher);
3303
3308 legion_index_fill_launcher_t launcher, legion_index_space_t space);
3309
3314 legion_index_fill_launcher_t launcher, legion_untyped_buffer_t arg);
3315
3320 legion_index_fill_launcher_t launcher, const char* provenance);
3321
3327 legion_region_requirement_t legion_fill_get_requirement(legion_fill_t fill);
3328
3329 // -----------------------------------------------------------------------
3330 // Discard Operation
3331 // -----------------------------------------------------------------------
3332
3338 legion_discard_launcher_t legion_discard_launcher_create(
3340
3346 void legion_discard_launcher_destroy(legion_discard_launcher_t handle);
3347
3352 legion_discard_launcher_t handle, legion_field_id_t fid);
3353
3358 legion_runtime_t runtime, legion_context_t ctx,
3359 legion_discard_launcher_t launcher);
3360
3365 legion_discard_launcher_t launcher, const char* provenance);
3366
3367 // -----------------------------------------------------------------------
3368 // File Operations
3369 // -----------------------------------------------------------------------
3370
3374 legion_field_map_t legion_field_map_create(void);
3375
3379 void legion_field_map_destroy(legion_field_map_t handle);
3380
3381 void legion_field_map_insert(
3382 legion_field_map_t handle, legion_field_id_t key, const char* value);
3383
3389 legion_physical_region_t legion_runtime_attach_hdf5(
3390 legion_runtime_t runtime, legion_context_t ctx, const char* filename,
3392 legion_field_map_t field_map, legion_file_mode_t mode);
3393
3398 legion_runtime_t runtime, legion_context_t ctx,
3399 legion_physical_region_t region);
3400
3401 // -----------------------------------------------------------------------
3402 // Copy Operations
3403 // -----------------------------------------------------------------------
3404
3410 legion_copy_launcher_t legion_copy_launcher_create(
3411 legion_predicate_t pred /* = legion_predicate_true() */,
3412 legion_mapper_id_t id /* = 0 */,
3413 legion_mapping_tag_id_t launcher_tag /* = 0 */);
3414
3420 void legion_copy_launcher_destroy(legion_copy_launcher_t handle);
3421
3428 legion_runtime_t runtime, legion_context_t ctx,
3429 legion_copy_launcher_t launcher);
3430
3435 legion_copy_launcher_t launcher, legion_logical_region_t handle,
3436 legion_privilege_mode_t priv, legion_coherence_property_t prop,
3437 legion_logical_region_t parent, legion_mapping_tag_id_t tag /* = 0 */,
3438 bool verified /* = false*/);
3439
3444 legion_copy_launcher_t launcher, legion_logical_region_t handle,
3445 legion_privilege_mode_t priv, legion_coherence_property_t prop,
3446 legion_logical_region_t parent, legion_mapping_tag_id_t tag /* = 0 */,
3447 bool verified /* = false*/);
3448
3452 unsigned
3454 legion_copy_launcher_t launcher, legion_logical_region_t handle,
3455 legion_reduction_op_id_t redop, legion_coherence_property_t prop,
3456 legion_logical_region_t parent, legion_mapping_tag_id_t tag /* = 0 */,
3457 bool verified /* = false*/);
3458
3462 unsigned
3464 legion_copy_launcher_t launcher, legion_logical_region_t handle,
3465 legion_field_id_t fid, legion_coherence_property_t prop,
3466 legion_logical_region_t parent, legion_mapping_tag_id_t tag /* = 0 */,
3467 bool is_range_indirection /* = false */, bool verified /* = false*/);
3468
3472 unsigned
3474 legion_copy_launcher_t launcher, legion_logical_region_t handle,
3475 legion_field_id_t fid, legion_coherence_property_t prop,
3476 legion_logical_region_t parent, legion_mapping_tag_id_t tag /* = 0 */,
3477 bool is_range_indirection /* = false */, bool verified /* = false*/);
3478
3483 legion_copy_launcher_t launcher, unsigned idx, legion_field_id_t fid,
3484 bool inst /* = true */);
3485
3490 legion_copy_launcher_t launcher, unsigned idx, legion_field_id_t fid,
3491 bool inst /* = true */);
3492
3497 legion_copy_launcher_t launcher, legion_phase_barrier_t bar);
3498
3503 legion_copy_launcher_t launcher, legion_phase_barrier_t bar);
3504
3509 legion_copy_launcher_t launcher, bool flag);
3510
3515 legion_copy_launcher_t launcher, bool flag);
3516
3521 legion_copy_launcher_t launcher, legion_domain_point_t point);
3522
3527 legion_copy_launcher_t launcher, legion_index_space_t space);
3528
3533 legion_copy_launcher_t launcher, legion_untyped_buffer_t arg);
3534
3539 legion_copy_launcher_t launcher, const char* provenance);
3540
3549 legion_region_requirement_t legion_copy_get_requirement(
3550 legion_copy_t copy, unsigned idx);
3551
3552 // -----------------------------------------------------------------------
3553 // Index Copy Operations
3554 // -----------------------------------------------------------------------
3555
3561 legion_index_copy_launcher_t legion_index_copy_launcher_create(
3562 legion_domain_t domain,
3563 legion_predicate_t pred /* = legion_predicate_true() */,
3564 legion_mapper_id_t id /* = 0 */,
3565 legion_mapping_tag_id_t launcher_tag /* = 0 */);
3566
3572 void legion_index_copy_launcher_destroy(legion_index_copy_launcher_t handle);
3573
3580 legion_runtime_t runtime, legion_context_t ctx,
3581 legion_index_copy_launcher_t launcher);
3582
3587 legion_index_copy_launcher_t launcher, legion_logical_region_t handle,
3588 legion_projection_id_t proj /* = 0 */, legion_privilege_mode_t priv,
3589 legion_coherence_property_t prop, legion_logical_region_t parent,
3590 legion_mapping_tag_id_t tag /* = 0 */, bool verified /* = false*/);
3591
3596 legion_index_copy_launcher_t launcher, legion_logical_region_t handle,
3597 legion_projection_id_t proj /* = 0 */, legion_privilege_mode_t priv,
3598 legion_coherence_property_t prop, legion_logical_region_t parent,
3599 legion_mapping_tag_id_t tag /* = 0 */, bool verified /* = false*/);
3600
3604 unsigned
3606 legion_index_copy_launcher_t launcher,
3608 legion_projection_id_t proj /* = 0 */, legion_privilege_mode_t priv,
3609 legion_coherence_property_t prop, legion_logical_region_t parent,
3610 legion_mapping_tag_id_t tag /* = 0 */, bool verified /* = false*/);
3611
3615 unsigned
3617 legion_index_copy_launcher_t launcher,
3619 legion_projection_id_t proj /* = 0 */, legion_privilege_mode_t priv,
3620 legion_coherence_property_t prop, legion_logical_region_t parent,
3621 legion_mapping_tag_id_t tag /* = 0 */, bool verified /* = false*/);
3622
3626 unsigned
3628 legion_index_copy_launcher_t launcher, legion_logical_region_t handle,
3629 legion_projection_id_t proj /* = 0 */, legion_reduction_op_id_t redop,
3630 legion_coherence_property_t prop, legion_logical_region_t parent,
3631 legion_mapping_tag_id_t tag /* = 0 */, bool verified /* = false*/);
3632
3636 unsigned
3638 legion_index_copy_launcher_t launcher,
3640 legion_projection_id_t proj /* = 0 */, legion_reduction_op_id_t redop,
3641 legion_coherence_property_t prop, legion_logical_region_t parent,
3642 legion_mapping_tag_id_t tag /* = 0 */, bool verified /* = false*/);
3643
3647 unsigned
3649 legion_index_copy_launcher_t launcher, legion_logical_region_t handle,
3650 legion_projection_id_t proj /* = 0 */, legion_field_id_t fid,
3651 legion_coherence_property_t prop, legion_logical_region_t parent,
3652 legion_mapping_tag_id_t tag /* = 0 */,
3653 bool is_range_indirection /* = false */, bool verified /* = false*/);
3654
3658 unsigned
3660 legion_index_copy_launcher_t launcher, legion_logical_region_t handle,
3661 legion_projection_id_t proj /* = 0 */, legion_field_id_t fid,
3662 legion_coherence_property_t prop, legion_logical_region_t parent,
3663 legion_mapping_tag_id_t tag /* = 0 */,
3664 bool is_range_indirection /* = false */, bool verified /* = false*/);
3665
3669 unsigned
3671 legion_index_copy_launcher_t launcher,
3673 legion_projection_id_t proj /* = 0 */, legion_field_id_t fid,
3674 legion_coherence_property_t prop, legion_logical_region_t parent,
3675 legion_mapping_tag_id_t tag /* = 0 */,
3676 bool is_range_indirection /* = false */, bool verified /* = false*/);
3677
3681 unsigned
3683 legion_index_copy_launcher_t launcher,
3685 legion_projection_id_t proj /* = 0 */, legion_field_id_t fid,
3686 legion_coherence_property_t prop, legion_logical_region_t parent,
3687 legion_mapping_tag_id_t tag /* = 0 */,
3688 bool is_range_indirection /* = false */, bool verified /* = false*/);
3689
3694 legion_index_copy_launcher_t launcher, unsigned idx,
3695 legion_field_id_t fid, bool inst /* = true */);
3696
3701 legion_index_copy_launcher_t launcher, unsigned idx,
3702 legion_field_id_t fid, bool inst /* = true */);
3703
3708 legion_index_copy_launcher_t launcher, legion_phase_barrier_t bar);
3709
3714 legion_index_copy_launcher_t launcher, legion_phase_barrier_t bar);
3715
3720 legion_index_copy_launcher_t launcher, bool flag);
3721
3726 legion_index_copy_launcher_t launcher, bool flag);
3727
3732 legion_index_copy_launcher_t launcher, legion_index_space_t is);
3733
3738 legion_index_copy_launcher_t launcher, legion_untyped_buffer_t arg);
3739
3744 legion_index_copy_launcher_t launcher, const char* provenance);
3745
3746 // -----------------------------------------------------------------------
3747 // Acquire Operations
3748 // -----------------------------------------------------------------------
3749
3755 legion_acquire_launcher_t legion_acquire_launcher_create(
3756 legion_logical_region_t logical_region,
3757 legion_logical_region_t parent_region,
3758 legion_predicate_t pred /* = legion_predicate_true() */,
3759 legion_mapper_id_t id /* = 0 */, legion_mapping_tag_id_t tag /* = 0 */);
3760
3766 void legion_acquire_launcher_destroy(legion_acquire_launcher_t handle);
3767
3774 legion_runtime_t runtime, legion_context_t ctx,
3775 legion_acquire_launcher_t launcher);
3776
3781 legion_acquire_launcher_t launcher, legion_field_id_t fid);
3782
3787 legion_acquire_launcher_t launcher, legion_phase_barrier_t bar);
3788
3793 legion_acquire_launcher_t launcher, legion_phase_barrier_t bar);
3794
3799 legion_acquire_launcher_t launcher, legion_index_space_t space);
3800
3805 legion_acquire_launcher_t launcher, legion_untyped_buffer_t arg);
3806
3811 legion_acquire_launcher_t launcher, const char* provenance);
3812
3813 // -----------------------------------------------------------------------
3814 // Release Operations
3815 // -----------------------------------------------------------------------
3816
3822 legion_release_launcher_t legion_release_launcher_create(
3823 legion_logical_region_t logical_region,
3824 legion_logical_region_t parent_region,
3825 legion_predicate_t pred /* = legion_predicate_true() */,
3826 legion_mapper_id_t id /* = 0 */, legion_mapping_tag_id_t tag /* = 0 */);
3827
3833 void legion_release_launcher_destroy(legion_release_launcher_t handle);
3834
3841 legion_runtime_t runtime, legion_context_t ctx,
3842 legion_release_launcher_t launcher);
3843
3848 legion_release_launcher_t launcher, legion_field_id_t fid);
3849
3854 legion_release_launcher_t launcher, legion_phase_barrier_t bar);
3855
3860 legion_release_launcher_t launcher, legion_phase_barrier_t bar);
3861
3866 legion_release_launcher_t launcher, legion_index_space_t space);
3867
3872 legion_release_launcher_t launcher, legion_untyped_buffer_t arg);
3873
3878 legion_release_launcher_t launcher, const char* provenance);
3879
3880 // -----------------------------------------------------------------------
3881 // Attach/Detach Operations
3882 // -----------------------------------------------------------------------
3883
3889 legion_attach_launcher_t legion_attach_launcher_create(
3890 legion_logical_region_t logical_region,
3891 legion_logical_region_t parent_region,
3892 legion_external_resource_t resource);
3893
3898 legion_attach_launcher_t handle, const char* filename,
3899 legion_field_map_t field_map, legion_file_mode_t mode);
3900
3905 legion_attach_launcher_t handle, bool restricted);
3906
3911 legion_attach_launcher_t handle, bool mapped);
3912
3917 legion_attach_launcher_t handle, const char* provenance);
3918
3924 void legion_attach_launcher_destroy(legion_attach_launcher_t handle);
3925
3931 legion_physical_region_t legion_attach_launcher_execute(
3932 legion_runtime_t runtime, legion_context_t ctx,
3933 legion_attach_launcher_t launcher);
3934
3939 legion_attach_launcher_t launcher, legion_field_id_t fid, void* base_ptr,
3940 bool column_major);
3941
3946 legion_attach_launcher_t launcher, size_t footprint);
3947
3954 legion_runtime_t runtime, legion_context_t ctx,
3955 legion_physical_region_t handle);
3956
3963 legion_runtime_t runtime, legion_context_t ctx,
3964 legion_physical_region_t handle, bool flush);
3965
3972 legion_runtime_t runtime, legion_context_t ctx,
3973 legion_physical_region_t handle, bool flush, bool unordered);
3974
3979 legion_runtime_t runtime, legion_context_t ctx);
3980
3981 // -----------------------------------------------------------------------
3982 // Index Attach/Detach Operations
3983 // -----------------------------------------------------------------------
3984
3990 legion_index_attach_launcher_t legion_index_attach_launcher_create(
3991 legion_logical_region_t parent_region,
3992 legion_external_resource_t resource, bool restricted /*=true*/);
3993
3998 legion_index_attach_launcher_t handle, bool restricted);
3999
4004 legion_index_attach_launcher_t handle, const char* provenance);
4005
4010 legion_index_attach_launcher_t handle, bool deduplicate);
4011
4016 legion_index_attach_launcher_t handle, legion_logical_region_t region,
4017 const char* filename, const legion_field_id_t* fields, size_t num_fields,
4018 legion_file_mode_t mode);
4019
4024 legion_index_attach_launcher_t handle, legion_logical_region_t region,
4025 const char* filename, legion_field_map_t field_map,
4026 legion_file_mode_t mode);
4027
4032 legion_index_attach_launcher_t handle, legion_logical_region_t region,
4033 void* base_ptr, bool column_major, const legion_field_id_t* fields,
4034 size_t num_fields, legion_memory_t memory);
4035
4040 legion_index_attach_launcher_t handle, legion_logical_region_t region,
4041 void* base_ptr, bool column_major, const legion_field_id_t* fields,
4042 size_t num_fields, legion_memory_t memory);
4043
4050 legion_index_attach_launcher_t handle);
4051
4057 legion_external_resources_t legion_attach_external_resources(
4058 legion_runtime_t runtime, legion_context_t ctx,
4059 legion_index_attach_launcher_t launcher);
4060
4067 legion_runtime_t runtime, legion_context_t ctx,
4068 legion_external_resources_t, bool flush, bool unordered);
4069
4070 // -----------------------------------------------------------------------
4071 // Must Epoch Operations
4072 // -----------------------------------------------------------------------
4073
4079 legion_must_epoch_launcher_t legion_must_epoch_launcher_create(
4080 legion_mapper_id_t id /* = 0 */,
4081 legion_mapping_tag_id_t launcher_tag /* = 0 */);
4082
4088 void legion_must_epoch_launcher_destroy(legion_must_epoch_launcher_t handle);
4089
4096 legion_runtime_t runtime, legion_context_t ctx,
4097 legion_must_epoch_launcher_t launcher);
4098
4105 legion_must_epoch_launcher_t launcher, legion_domain_point_t point,
4106 legion_task_launcher_t handle);
4107
4114 legion_must_epoch_launcher_t launcher, legion_index_launcher_t handle);
4115
4120 legion_must_epoch_launcher_t launcher, legion_domain_t domain);
4121
4126 legion_must_epoch_launcher_t launcher, legion_index_space_t is);
4127
4132 legion_must_epoch_launcher_t launcher, const char* provenance);
4133
4134 // -----------------------------------------------------------------------
4135 // Fence Operations
4136 // -----------------------------------------------------------------------
4137
4142 legion_runtime_t runtime, legion_context_t ctx);
4143
4148 legion_runtime_t runtime, legion_context_t ctx);
4149
4150 // -----------------------------------------------------------------------
4151 // Tracing Operations
4152 // -----------------------------------------------------------------------
4153
4158 legion_runtime_t runtime, legion_context_t ctx, legion_trace_id_t tid,
4159 bool logical_only);
4160
4165 legion_runtime_t runtime, legion_context_t ctx, legion_trace_id_t tid);
4166
4167 // -----------------------------------------------------------------------
4168 // Frame Operations
4169 // -----------------------------------------------------------------------
4170
4171 void legion_runtime_complete_frame(
4172 legion_runtime_t runtime, legion_context_t ctx);
4173
4174 // -----------------------------------------------------------------------
4175 // Tunable Variables
4176 // -----------------------------------------------------------------------
4177
4184 legion_runtime_t runtime, legion_context_t ctx, legion_tunable_id_t tid,
4185 legion_mapper_id_t mapper /* = 0 */,
4186 legion_mapping_tag_id_t tag /* = 0 */);
4187
4188 // -----------------------------------------------------------------------
4189 // Miscellaneous Operations
4190 // -----------------------------------------------------------------------
4191
4196
4200 legion_runtime_t legion_runtime_get_runtime(void);
4201
4206
4212 legion_context_t legion_runtime_get_context(void);
4213
4220 void legion_context_destroy(legion_context_t);
4221
4226 legion_runtime_t runtime, legion_context_t ctx);
4227
4231 void legion_runtime_yield(legion_runtime_t runtime, legion_context_t ctx);
4232
4237 legion_runtime_t runtime, legion_context_t ctx);
4238
4239 legion_shard_id_t legion_runtime_local_shard_without_context(void);
4240
4245 legion_runtime_t runtime, legion_context_t ctx);
4246
4253 legion_sharding_id_t sid, legion_domain_point_t point,
4254 legion_domain_t full_space, size_t total_shards);
4255
4271 legion_sharding_id_t sid, legion_shard_id_t shard,
4272 legion_domain_t shard_domain, legion_domain_t full_domain,
4273 size_t total_shards, legion_domain_point_t* points, size_t* points_size);
4274
4275 void legion_runtime_enable_scheduler_lock(void);
4276
4277 void legion_runtime_disable_scheduler_lock(void);
4278
4283 legion_runtime_t runtime, legion_context_t ctx, FILE* f,
4284 const char* message);
4289 legion_runtime_t runtime, legion_context_t ctx, int fd, const char* mode,
4290 const char* message);
4291
4292 // -----------------------------------------------------------------------
4293 // Physical Data Operations
4294 // -----------------------------------------------------------------------
4295
4301 void legion_physical_region_destroy(legion_physical_region_t handle);
4302
4308 legion_physical_region_t legion_physical_region_copy(
4309 legion_physical_region_t handle);
4310
4314 bool legion_physical_region_is_mapped(legion_physical_region_t handle);
4315
4319 void legion_physical_region_wait_until_valid(legion_physical_region_t handle);
4320
4324 bool legion_physical_region_is_valid(legion_physical_region_t handle);
4325
4330 legion_physical_region_t handle);
4331
4336 legion_physical_region_t handle);
4337 legion_field_id_t legion_physical_region_get_field_id(
4338 legion_physical_region_t handle, size_t index);
4339
4344 legion_physical_region_t handle);
4345 legion_memory_t legion_physical_region_get_memory(
4346 legion_physical_region_t handle, size_t index);
4347
4353#define ACCESSOR_ARRAY(DIM) \
4354 legion_accessor_array_##DIM##d_t \
4355 legion_physical_region_get_field_accessor_array_##DIM##d( \
4356 legion_physical_region_t handle, legion_field_id_t fid);
4357 LEGION_FOREACH_N(ACCESSOR_ARRAY)
4358#undef ACCESSOR_ARRAY
4359
4360#define ACCESSOR_ARRAY(DIM) \
4361 legion_accessor_array_##DIM##d_t \
4362 legion_physical_region_get_field_accessor_array_##DIM##d_with_transform( \
4363 legion_physical_region_t handle, legion_field_id_t fid, \
4364 legion_domain_affine_transform_t transform);
4365 LEGION_FOREACH_N(ACCESSOR_ARRAY)
4366#undef ACCESSOR_ARRAY
4367
4368#define RAW_PTR(DIM) \
4369 void* legion_accessor_array_##DIM##d_raw_rect_ptr( \
4370 legion_accessor_array_##DIM##d_t handle, legion_rect_##DIM##d_t rect, \
4371 legion_rect_##DIM##d_t* subrect, legion_byte_offset_t* offsets);
4372 LEGION_FOREACH_N(RAW_PTR)
4373#undef RAW_PTR
4374
4375 // Read
4376 void legion_accessor_array_1d_read(
4377 legion_accessor_array_1d_t handle, legion_ptr_t ptr, void* dst,
4378 size_t bytes);
4379
4380#define READ_ARRAY(DIM) \
4381 void legion_accessor_array_##DIM##d_read_point( \
4382 legion_accessor_array_##DIM##d_t handle, legion_point_##DIM##d_t point, \
4383 void* dst, size_t bytes);
4384 LEGION_FOREACH_N(READ_ARRAY)
4385#undef READ_ARRAY
4386
4387 // Write
4388 void legion_accessor_array_1d_write(
4389 legion_accessor_array_1d_t handle, legion_ptr_t ptr, const void* src,
4390 size_t bytes);
4391
4392#define WRITE_ARRAY(DIM) \
4393 void legion_accessor_array_##DIM##d_write_point( \
4394 legion_accessor_array_##DIM##d_t handle, legion_point_##DIM##d_t point, \
4395 const void* src, size_t bytes);
4396 LEGION_FOREACH_N(WRITE_ARRAY)
4397#undef WRITE_ARRAY
4398
4399 // Ref
4400 void* legion_accessor_array_1d_ref(
4401 legion_accessor_array_1d_t handle, legion_ptr_t ptr);
4402
4403#define REF_ARRAY(DIM) \
4404 void* legion_accessor_array_##DIM##d_ref_point( \
4405 legion_accessor_array_##DIM##d_t handle, legion_point_##DIM##d_t point);
4406 LEGION_FOREACH_N(REF_ARRAY)
4407#undef REF_ARRAY
4408
4412#define DESTROY_ARRAY(DIM) \
4413 void legion_accessor_array_##DIM##d_destroy( \
4414 legion_accessor_array_##DIM##d_t handle);
4415 LEGION_FOREACH_N(DESTROY_ARRAY)
4416#undef DESTROY_ARRAY
4417
4418 // -----------------------------------------------------------------------
4419 // External Resource Operations
4420 // -----------------------------------------------------------------------
4421
4425 void legion_external_resources_destroy(legion_external_resources_t handle);
4426
4430 size_t legion_external_resources_size(legion_external_resources_t handle);
4431
4438 legion_external_resources_t handle, unsigned index);
4439
4440 // -----------------------------------------------------------------------
4441 // Mappable Operations
4442 // -----------------------------------------------------------------------
4443
4447 enum legion_mappable_type_id_t legion_mappable_get_type(
4448 legion_mappable_t mappable);
4449
4453 legion_task_t legion_mappable_as_task(legion_mappable_t mappable);
4454
4458 legion_copy_t legion_mappable_as_copy(legion_mappable_t mappable);
4459
4463 legion_fill_t legion_mappable_as_fill(legion_mappable_t mappable);
4464
4468 legion_inline_t legion_mappable_as_inline_mapping(legion_mappable_t mappable);
4469
4470 // -----------------------------------------------------------------------
4471 // Task Operations
4472 // -----------------------------------------------------------------------
4473
4477 legion_unique_id_t legion_context_get_unique_id(legion_context_t ctx);
4478
4489 legion_task_mut_t legion_task_create_empty();
4490
4496 void legion_task_destroy(legion_task_mut_t handle);
4497
4503 legion_task_t legion_task_mut_as_task(legion_task_mut_t task);
4504
4508 legion_unique_id_t legion_task_get_unique_id(legion_task_t task);
4509
4513 int legion_task_get_depth(legion_task_t task);
4514
4518 legion_mapper_id_t legion_task_get_mapper(legion_task_t task);
4519
4523 legion_mapping_tag_id_t legion_task_get_tag(legion_task_t task);
4524
4529 legion_runtime_t runtime, legion_task_id_t task_id,
4530 legion_semantic_tag_t tag, const void* buffer, size_t size,
4531 bool is_mutable /* = false */);
4532
4537 legion_runtime_t runtime, legion_task_id_t task_id,
4538 legion_semantic_tag_t tag, const void** result, size_t* size,
4539 bool can_fail /* = false */, bool wait_until_ready /* = false */);
4540
4545 legion_runtime_t runtime, legion_task_id_t task_id, const char* name,
4546 bool is_mutable /* = false */);
4547
4552 legion_runtime_t runtime, legion_task_id_t task_id, const char** result);
4553
4557 const void* legion_task_get_args(legion_task_t task);
4558
4562 void legion_task_set_args(legion_task_mut_t task, void* args);
4563
4567 size_t legion_task_get_arglen(legion_task_t task);
4568
4572 void legion_task_set_arglen(legion_task_mut_t task, size_t arglen);
4573
4578
4583
4587 bool legion_task_get_is_index_space(legion_task_t task);
4588
4592 const void* legion_task_get_local_args(legion_task_t task);
4593
4597 size_t legion_task_get_local_arglen(legion_task_t task);
4598
4602 unsigned legion_task_get_regions_size(legion_task_t task);
4603
4609 legion_region_requirement_t legion_task_get_requirement(
4610 legion_task_t task, unsigned idx);
4611
4615 unsigned legion_task_get_futures_size(legion_task_t task);
4616
4620 legion_future_t legion_task_get_future(legion_task_t task, unsigned idx);
4621
4625 void legion_task_add_future(legion_task_mut_t task, legion_future_t future);
4626
4630 legion_task_id_t legion_task_get_task_id(legion_task_t task);
4631
4636
4640 const char* legion_task_get_name(legion_task_t task);
4641
4642 // -----------------------------------------------------------------------
4643 // Inline Operations
4644 // -----------------------------------------------------------------------
4645
4651 legion_region_requirement_t legion_inline_get_requirement(
4652 legion_inline_t inline_operation);
4653
4654 // -----------------------------------------------------------------------
4655 // Execution Constraints
4656 // -----------------------------------------------------------------------
4657
4663 legion_execution_constraint_set_t legion_execution_constraint_set_create(
4664 void);
4665
4672 legion_execution_constraint_set_t handle);
4673
4678 legion_execution_constraint_set_t handle, uint64_t prop);
4679
4685 legion_execution_constraint_set_t handle,
4686 legion_processor_kind_t proc_kind);
4687
4693 legion_execution_constraint_set_t handle,
4694 legion_resource_constraint_t resource, legion_equality_kind_t eq,
4695 size_t value);
4696
4702 legion_execution_constraint_set_t handle, legion_launch_constraint_t kind,
4703 size_t value);
4704
4710 legion_execution_constraint_set_t handle, legion_launch_constraint_t kind,
4711 const size_t* values, int dims);
4712
4718 legion_execution_constraint_set_t handle, const unsigned* indexes,
4719 size_t num_indexes, const legion_field_id_t* fields, size_t num_fields);
4720
4721 // -----------------------------------------------------------------------
4722 // Layout Constraints
4723 // -----------------------------------------------------------------------
4724
4730 legion_layout_constraint_set_t legion_layout_constraint_set_create(void);
4731
4738 legion_layout_constraint_set_t handle);
4739
4745 legion_layout_constraint_id_t legion_layout_constraint_set_register(
4746 legion_runtime_t runtime, legion_field_space_t fspace,
4747 legion_layout_constraint_set_t handle,
4748 const char* layout_name /* = nullptr */);
4749
4755 legion_layout_constraint_id_t legion_layout_constraint_set_preregister(
4756 legion_layout_constraint_set_t handle,
4757 const char* layout_name /* = nullptr */);
4758
4765 legion_runtime_t runtime, legion_layout_constraint_id_t handle);
4766
4772 legion_layout_constraint_set_t handle,
4773 legion_specialized_constraint_t specialized,
4774 legion_reduction_op_id_t redop);
4775
4781 legion_layout_constraint_set_t handle, legion_memory_kind_t kind);
4782
4788 legion_layout_constraint_set_t handle, const legion_field_id_t* fields,
4789 size_t num_fields, bool contiguous, bool inorder);
4790
4796 legion_layout_constraint_set_t handle,
4797 const legion_dimension_kind_t* dims, size_t num_dims, bool contiguous);
4798
4804 legion_layout_constraint_set_t handle, legion_dimension_kind_t dim,
4805 size_t value, bool tiles);
4806
4812 legion_layout_constraint_set_t handle, legion_dimension_kind_t dim,
4813 legion_equality_kind_t eq, size_t value);
4814
4820 legion_layout_constraint_set_t handle, legion_field_id_t field,
4821 legion_equality_kind_t eq, size_t byte_boundary);
4822
4828 legion_layout_constraint_set_t handle, legion_field_id_t field,
4829 size_t offset);
4830
4836 legion_layout_constraint_set_t handle, legion_memory_t memory,
4837 uintptr_t ptr);
4838
4839 // -----------------------------------------------------------------------
4840 // Task Layout Constraints
4841 // -----------------------------------------------------------------------
4842
4848 legion_task_layout_constraint_set_t legion_task_layout_constraint_set_create(
4849 void);
4850
4857 legion_task_layout_constraint_set_t handle);
4858
4863 legion_task_layout_constraint_set_t handle, unsigned idx,
4864 legion_layout_constraint_id_t layout);
4865
4866 // -----------------------------------------------------------------------
4867 // Start-up Operations
4868 // -----------------------------------------------------------------------
4869
4874 int* argc, char*** argv, bool filter /* = false */);
4875
4880 int argc, char** argv, bool background /* = false */);
4881
4886
4890 void legion_runtime_set_return_code(int return_code);
4891
4895 void legion_runtime_set_top_level_task_id(legion_task_id_t top_id);
4896
4901
4906
4912
4917 legion_runtime_t runtime, const char* library_name, size_t count);
4918
4923 legion_runtime_t runtime, legion_mapper_t mapper,
4924 legion_processor_t proc);
4925
4930
4935 legion_runtime_t runtime, const char* library_name, size_t count);
4936
4941 legion_runtime_t runtime, const char* library_name, size_t count);
4942
4947 legion_runtime_t runtime, const char* library_name, size_t count);
4948
4953 legion_projection_id_t id, bool exclusive, unsigned depth,
4956
4961 legion_runtime_t runtime, legion_projection_id_t id, bool exclusive,
4962 unsigned depth,
4965
4970 legion_projection_id_t id, bool exclusive, unsigned depth,
4973
4978 legion_runtime_t runtime, legion_projection_id_t id, bool exclusive,
4979 unsigned depth, legion_projection_functor_logical_region_t region_functor,
4981
4986 legion_projection_id_t id, bool exclusive, unsigned depth,
4989
4994 legion_runtime_t runtime, legion_projection_id_t id, bool exclusive,
4995 unsigned depth,
4998
5003 legion_runtime_t runtime, const char* library_name, size_t count);
5004
5010 legion_task_variant_registrar_t legion_task_variant_registrar_create(
5011 legion_task_id_t tid, bool global, const char* variant_name);
5012
5019 legion_task_variant_registrar_t registrar);
5020
5025 legion_task_variant_registrar_t registrar,
5026 legion_execution_constraint_set_t constraints);
5027
5032 legion_task_variant_registrar_t registrar,
5033 legion_task_layout_constraint_set_t constraints);
5034
5042 legion_task_variant_registrar_t registrar,
5044
5049 legion_task_variant_registrar_t registrar, legion_memory_kind_t kind,
5050 size_t size, unsigned alignment);
5051
5056 legion_runtime_t runtime, legion_task_variant_registrar_t registrar,
5057 legion_task_pointer_wrapped_t wrapped_task_pointer,
5058 legion_variant_id_t variant_id, const void* userdata, size_t userlen,
5059 size_t return_type_size, bool has_return_type_size);
5060
5064 legion_variant_id_t
5066 legion_task_variant_registrar_t registrar,
5067 legion_task_pointer_wrapped_t wrapped_task_pointer,
5068 legion_variant_id_t variant_id, const char* task_name,
5069 const void* userdata, size_t userlen, size_t return_type_size,
5070 bool has_return_type_size);
5071
5076 legion_runtime_t runtime, legion_task_id_t id /* = AUTO_GENERATE_ID */,
5077 const char* task_name /* = nullptr*/,
5078 const char* variant_name /* = nullptr*/, bool global,
5079 legion_execution_constraint_set_t execution_constraints,
5080 legion_task_layout_constraint_set_t layout_constraints,
5082 legion_task_pointer_wrapped_t wrapped_task_pointer, const void* userdata,
5083 size_t userlen);
5084
5089 legion_task_id_t id /* = AUTO_GENERATE_ID */,
5090 legion_variant_id_t variant_id /* = AUTO_GENERATE_ID */,
5091 const char* task_name /* = nullptr*/,
5092 const char* variant_name /* = nullptr*/,
5093 legion_execution_constraint_set_t execution_constraints,
5094 legion_task_layout_constraint_set_t layout_constraints,
5096 legion_task_pointer_wrapped_t wrapped_task_pointer, const void* userdata,
5097 size_t userlen);
5098
5099#ifdef REALM_USE_LLVM
5103 legion_task_id_t legion_runtime_register_task_variant_llvmir(
5104 legion_runtime_t runtime, legion_task_id_t id /* = AUTO_GENERATE_ID */,
5105 const char* task_name /* = nullptr*/, bool global,
5106 legion_execution_constraint_set_t execution_constraints,
5107 legion_task_layout_constraint_set_t layout_constraints,
5108 legion_task_config_options_t options, const char* llvmir,
5109 const char* entry_symbol, const void* userdata, size_t userlen);
5110
5114 legion_task_id_t legion_runtime_preregister_task_variant_llvmir(
5115 legion_task_id_t id /* = AUTO_GENERATE_ID */,
5116 legion_variant_id_t variant_id /* = AUTO_GENERATE_ID */,
5117 const char* task_name /* = nullptr*/,
5118 legion_execution_constraint_set_t execution_constraints,
5119 legion_task_layout_constraint_set_t layout_constraints,
5120 legion_task_config_options_t options, const char* llvmir,
5121 const char* entry_symbol, const void* userdata, size_t userlen);
5122#endif
5123
5124#ifdef REALM_USE_PYTHON
5128 legion_task_id_t legion_runtime_register_task_variant_python_source(
5129 legion_runtime_t runtime, legion_task_id_t id /* = AUTO_GENERATE_ID */,
5130 const char* task_name /* = nullptr*/, bool global,
5131 legion_execution_constraint_set_t execution_constraints,
5132 legion_task_layout_constraint_set_t layout_constraints,
5133 legion_task_config_options_t options, const char* module_name,
5134 const char* function_name, const void* userdata, size_t userlen);
5135
5139 legion_task_id_t legion_runtime_register_task_variant_python_source_qualname(
5140 legion_runtime_t runtime, legion_task_id_t id /* = AUTO_GENERATE_ID */,
5141 const char* task_name /* = nullptr*/, bool global,
5142 legion_execution_constraint_set_t execution_constraints,
5143 legion_task_layout_constraint_set_t layout_constraints,
5144 legion_task_config_options_t options, const char* module_name,
5145 const char** function_qualname, size_t function_qualname_len,
5146 const void* userdata, size_t userlen);
5147#endif
5148
5153 const void* data, size_t datalen, realm_id_t proc_id,
5154 legion_task_t* taskptr, const legion_physical_region_t** regionptr,
5155 unsigned* num_regions_ptr, legion_context_t* ctxptr,
5156 legion_runtime_t* runtimeptr);
5157
5162 legion_runtime_t runtime, legion_context_t ctx, const void* retval,
5163 size_t retsize);
5164
5165 // -----------------------------------------------------------------------
5166 // Timing Operations
5167 // -----------------------------------------------------------------------
5168
5172 unsigned long long legion_get_current_time_in_micros(void);
5173
5177 unsigned long long legion_get_current_time_in_nanos(void);
5178
5183 legion_runtime_t runtime, legion_context_t ctx);
5184
5189 legion_runtime_t runtime, legion_context_t ctx);
5190
5195 legion_runtime_t runtime, legion_context_t ctx);
5196
5197 // -----------------------------------------------------------------------
5198 // Logging Operations
5199 // -----------------------------------------------------------------------
5200
5206 legion_logger_t legion_logger_create(const char* name);
5207
5213 void legion_logger_destroy(legion_logger_t handle);
5214
5218 void legion_logger_spew(legion_logger_t handle, const char* msg);
5219
5223 void legion_logger_debug(legion_logger_t handle, const char* msg);
5224
5228 void legion_logger_info(legion_logger_t handle, const char* msg);
5229
5233 void legion_logger_print(legion_logger_t handle, const char* msg);
5234
5238 void legion_logger_warning(legion_logger_t handle, const char* msg);
5239
5243 void legion_logger_error(legion_logger_t handle, const char* msg);
5244
5248 void legion_logger_fatal(legion_logger_t handle, const char* msg);
5249
5253 bool legion_logger_want_spew(legion_logger_t handle);
5254
5258 bool legion_logger_want_debug(legion_logger_t handle);
5259
5263 bool legion_logger_want_info(legion_logger_t handle);
5264
5268 bool legion_logger_want_print(legion_logger_t handle);
5269
5273 bool legion_logger_want_warning(legion_logger_t handle);
5274
5278 bool legion_logger_want_error(legion_logger_t handle);
5279
5283 bool legion_logger_want_fatal(legion_logger_t handle);
5284
5285 // -----------------------------------------------------------------------
5286 // Machine Operations
5287 // -----------------------------------------------------------------------
5288
5294 legion_machine_t legion_machine_create(void);
5295
5301 void legion_machine_destroy(legion_machine_t handle);
5302
5307 legion_machine_t machine, legion_processor_t* processors,
5308 size_t processors_size);
5309
5313 size_t legion_machine_get_all_processors_size(legion_machine_t machine);
5314
5319 legion_machine_t machine, legion_memory_t* memories,
5320 size_t memories_size);
5321
5325 size_t legion_machine_get_all_memories_size(legion_machine_t machine);
5326
5327 // -----------------------------------------------------------------------
5328 // Processor Operations
5329 // -----------------------------------------------------------------------
5330
5334 legion_processor_kind_t legion_processor_kind(legion_processor_t proc);
5335
5339 legion_address_space_t legion_processor_address_space(
5340 legion_processor_t proc);
5341
5342 // -----------------------------------------------------------------------
5343 // Memory Operations
5344 // -----------------------------------------------------------------------
5345
5349 legion_memory_kind_t legion_memory_kind(legion_memory_t mem);
5350
5355
5356 // -----------------------------------------------------------------------
5357 // Processor Query Operations
5358 // -----------------------------------------------------------------------
5359
5365 legion_processor_query_t legion_processor_query_create(
5366 legion_machine_t machine);
5367
5373 legion_processor_query_t legion_processor_query_create_copy(
5374 legion_processor_query_t query);
5375
5381 void legion_processor_query_destroy(legion_processor_query_t handle);
5382
5389 legion_processor_query_t query, legion_processor_kind_t kind);
5390
5397 legion_processor_query_t query);
5398
5405 legion_processor_query_t query, legion_processor_t proc);
5406
5413 legion_processor_query_t query, legion_memory_t mem);
5414
5421 legion_processor_query_t query, legion_memory_t mem,
5422 unsigned min_bandwidth /* = 0 */, unsigned max_latency /* = 0 */);
5423
5430 legion_processor_query_t query, legion_memory_t mem,
5431 int bandwidth_weight /* = 0 */, int latency_weight /* = 0 */);
5432
5436 size_t legion_processor_query_count(legion_processor_query_t query);
5437
5442 legion_processor_query_t query);
5443
5448 legion_processor_query_t query, legion_processor_t after);
5449
5454 legion_processor_query_t query);
5455
5456 // -----------------------------------------------------------------------
5457 // Memory Query Operations
5458 // -----------------------------------------------------------------------
5459
5465 legion_memory_query_t legion_memory_query_create(legion_machine_t machine);
5466
5472 legion_memory_query_t legion_memory_query_create_copy(
5473 legion_memory_query_t query);
5474
5480 void legion_memory_query_destroy(legion_memory_query_t handle);
5481
5488 legion_memory_query_t query, legion_memory_kind_t kind);
5489
5495 void legion_memory_query_local_address_space(legion_memory_query_t query);
5496
5503 legion_memory_query_t query, legion_processor_t proc);
5504
5511 legion_memory_query_t query, legion_memory_t mem);
5512
5519 legion_memory_query_t query, legion_processor_t proc,
5520 unsigned min_bandwidth /* = 0 */, unsigned max_latency /* = 0 */);
5521
5528 legion_memory_query_t query, legion_memory_t mem,
5529 unsigned min_bandwidth /* = 0 */, unsigned max_latency /* = 0 */);
5530
5537 legion_memory_query_t query, legion_processor_t proc,
5538 int bandwidth_weight /* = 0 */, int latency_weight /* = 0 */);
5539
5546 legion_memory_query_t query, legion_memory_t mem,
5547 int bandwidth_weight /* = 0 */, int latency_weight /* = 0 */);
5548
5552 size_t legion_memory_query_count(legion_memory_query_t query);
5553
5557 legion_memory_t legion_memory_query_first(legion_memory_query_t query);
5558
5563 legion_memory_query_t query, legion_memory_t after);
5564
5568 legion_memory_t legion_memory_query_random(legion_memory_query_t query);
5569
5570 // -----------------------------------------------------------------------
5571 // Physical Instance Operations
5572 // -----------------------------------------------------------------------
5573
5574 /*
5575 * @param instance Caller must have ownership of parameter `instance`.
5576 *
5577 * @see Legion::Mapping::PhysicalInstance
5578 */
5579 void legion_physical_instance_destroy(legion_physical_instance_t instance);
5580
5581 // -----------------------------------------------------------------------
5582 // Slice Task Output
5583 // -----------------------------------------------------------------------
5584
5589 legion_slice_task_output_t output, legion_task_slice_t slice);
5590
5595 legion_slice_task_output_t output, bool verify_correctness);
5596
5597 // -----------------------------------------------------------------------
5598 // Map Task Input/Output
5599 // -----------------------------------------------------------------------
5600
5605 legion_map_task_output_t output);
5606
5611 legion_map_task_output_t output, size_t idx);
5612
5617 legion_map_task_output_t output, legion_physical_instance_t* instances,
5618 size_t instances_size);
5619
5624 legion_map_task_output_t output, size_t idx,
5625 legion_physical_instance_t* instances, size_t instances_size);
5626
5631 legion_map_task_output_t output);
5632
5637 legion_map_task_output_t output, legion_processor_t proc);
5638
5643 legion_map_task_output_t output, size_t idx);
5644
5649 legion_map_task_output_t output, legion_task_priority_t priority);
5650
5651 // -----------------------------------------------------------------------
5652 // MapperRuntime Operations
5653 // -----------------------------------------------------------------------
5654
5661 legion_mapper_runtime_t runtime, legion_mapper_context_t ctx,
5662 legion_memory_t target_memory, legion_layout_constraint_set_t constraints,
5663 const legion_logical_region_t* regions, size_t regions_size,
5664 legion_physical_instance_t* result, bool acquire,
5665 legion_garbage_collection_priority_t priority);
5666
5673 legion_mapper_runtime_t runtime, legion_mapper_context_t ctx,
5674 legion_memory_t target_memory, legion_layout_constraint_id_t layout_id,
5675 const legion_logical_region_t* regions, size_t regions_size,
5676 legion_physical_instance_t* result, bool acquire,
5677 legion_garbage_collection_priority_t priority);
5678
5685 legion_mapper_runtime_t runtime, legion_mapper_context_t ctx,
5686 legion_memory_t target_memory, legion_layout_constraint_set_t constraints,
5687 const legion_logical_region_t* regions, size_t regions_size,
5688 legion_physical_instance_t* result, bool* created, bool acquire,
5689 legion_garbage_collection_priority_t priority, bool tight_region_bounds);
5690
5696 bool
5698 legion_mapper_runtime_t runtime, legion_mapper_context_t ctx,
5699 legion_memory_t target_memory,
5700 legion_layout_constraint_id_t layout_id,
5701 const legion_logical_region_t* regions, size_t regions_size,
5702 legion_physical_instance_t* result, bool* created, bool acquire,
5703 legion_garbage_collection_priority_t priority,
5704 bool tight_region_bounds);
5705
5712 legion_mapper_runtime_t runtime, legion_mapper_context_t ctx,
5713 legion_memory_t target_memory, legion_layout_constraint_set_t constraints,
5714 const legion_logical_region_t* regions, size_t regions_size,
5715 legion_physical_instance_t* result, bool acquire,
5716 bool tight_region_bounds);
5717
5724 legion_mapper_runtime_t runtime, legion_mapper_context_t ctx,
5725 legion_memory_t target_memory, legion_layout_constraint_id_t layout_id,
5726 const legion_logical_region_t* regions, size_t regions_size,
5727 legion_physical_instance_t* result, bool acquire,
5728 bool tight_region_bounds);
5729
5736 legion_mapper_runtime_t runtime, legion_mapper_context_t ctx,
5737 legion_physical_instance_t instance);
5738
5745 legion_mapper_runtime_t runtime, legion_mapper_context_t ctx,
5746 legion_physical_instance_t* instances, size_t instances_size);
5747
5748 // A hidden method here that hopefully nobody sees or ever needs
5749 // to use but its here anyway just in case
5750 legion_shard_id_t legion_context_get_shard_id(
5751 legion_runtime_t /*runtime*/, legion_context_t /*context*/,
5752 bool /*I know what I am doing*/);
5753 // Another hidden method for getting the number of shards
5754 size_t legion_context_get_num_shards(
5755 legion_runtime_t /*runtime*/, legion_context_t /*context*/,
5756 bool /*I know what I am doing*/);
5757 // Another hidden method for control replication that most
5758 // people should not be using but for which there are legitamite
5759 // user, especially in garbage collected languages
5760 // Note the caller takes ownership of the future
5761 legion_future_t legion_context_consensus_match(
5762 legion_runtime_t /*runtime*/, legion_context_t /*context*/,
5763 const void* /*input*/, void* /*output*/, size_t /*num elements*/,
5764 size_t /*element size*/);
5765
5769 legion_physical_region_t legion_get_physical_region_by_id(
5770 legion_physical_region_t* regionptr, int id, int num_regions);
5771#ifdef __cplusplus
5772}
5773#endif
5774
5775#endif // __LEGION_C_H__
void legion_task_launcher_set_point(legion_task_launcher_t launcher, legion_domain_point_t point)
void legion_index_space_destroy_unordered(legion_runtime_t runtime, legion_context_t ctx, legion_index_space_t handle, bool unordered)
bool legion_index_partition_retrieve_semantic_information(legion_runtime_t runtime, legion_index_partition_t handle, legion_semantic_tag_t tag, const void **result, size_t *size, bool can_fail, bool wait_until_ready)
size_t legion_runtime_get_maximum_dimension(void)
void legion_inline_launcher_destroy(legion_inline_launcher_t handle)
legion_domain_point_coloring_t legion_domain_point_coloring_create(void)
legion_index_space_t legion_index_space_create_future(legion_runtime_t runtime, legion_context_t ctx, size_t dimensions, legion_future_t future, legion_type_tag_t type_tag)
const legion_predicate_t legion_predicate_false(void)
void legion_context_progress_unordered_operations(legion_runtime_t runtime, legion_context_t ctx)
legion_layout_constraint_id_t legion_layout_constraint_set_register(legion_runtime_t runtime, legion_field_space_t fspace, legion_layout_constraint_set_t handle, const char *layout_name)
legion_shard_id_t legion_sharding_functor_shard(legion_sharding_id_t sid, legion_domain_point_t point, legion_domain_t full_space, size_t total_shards)
void legion_runtime_replace_default_mapper(legion_runtime_t runtime, legion_mapper_t mapper, legion_processor_t proc)
legion_index_space_t legion_index_partition_create_index_space_difference(legion_runtime_t runtime, legion_context_t ctx, legion_index_partition_t parent, legion_domain_point_t color, legion_index_space_t initial, const legion_index_space_t *spaces, size_t num_spaces)
void legion_index_fill_launcher_set_mapper_arg(legion_index_fill_launcher_t launcher, legion_untyped_buffer_t arg)
void legion_task_set_arglen(legion_task_mut_t task, size_t arglen)
void legion_field_id_attach_name(legion_runtime_t runtime, legion_field_space_t handle, legion_field_id_t id, const char *name, bool is_mutable)
legion_variant_id_t legion_runtime_preregister_task_variant_fnptr_with_registrar(legion_task_variant_registrar_t registrar, legion_task_pointer_wrapped_t wrapped_task_pointer, legion_variant_id_t variant_id, const char *task_name, const void *userdata, size_t userlen, size_t return_type_size, bool has_return_type_size)
unsigned legion_region_requirement_get_privilege_fields_size(legion_region_requirement_t handle)
void legion_processor_query_same_address_space_as_processor(legion_processor_query_t query, legion_processor_t proc)
void legion_task_layout_constraint_set_destroy(legion_task_layout_constraint_set_t handle)
legion_index_partition_t legion_index_partition_create_by_preimage_range(legion_runtime_t runtime, legion_context_t ctx, legion_index_partition_t projection, legion_logical_region_t handle, legion_logical_region_t parent, legion_field_id_t fid, legion_index_space_t color_space, legion_partition_kind_t part_kind, legion_color_t color, legion_mapper_id_t id, legion_mapping_tag_id_t tag, legion_untyped_buffer_t map_arg)
legion_index_partition_t legion_index_partition_create_by_intersection(legion_runtime_t runtime, legion_context_t ctx, legion_index_space_t parent, legion_index_partition_t handle1, legion_index_partition_t handle2, legion_index_space_t color_space, legion_partition_kind_t part_kind, legion_color_t color)
const char * legion_task_get_name(legion_task_t task)
unsigned legion_index_copy_launcher_add_dst_region_requirement_logical_region_reduction(legion_index_copy_launcher_t launcher, legion_logical_region_t handle, legion_projection_id_t proj, legion_reduction_op_id_t redop, legion_coherence_property_t prop, legion_logical_region_t parent, legion_mapping_tag_id_t tag, bool verified)
int legion_runtime_start(int argc, char **argv, bool background)
legion_memory_t legion_memory_query_random(legion_memory_query_t query)
legion_index_fill_launcher_t legion_index_fill_launcher_create_with_domain(legion_domain_t domain, legion_logical_partition_t handle, legion_logical_region_t parent, legion_field_id_t fid, const void *value, size_t value_size, legion_projection_id_t proj, legion_predicate_t pred, legion_mapper_id_t id, legion_mapping_tag_id_t launcher_tag)
legion_index_fill_launcher_t legion_index_fill_launcher_create_from_future_with_domain(legion_domain_t domain, legion_logical_partition_t handle, legion_logical_region_t parent, legion_field_id_t fid, legion_future_t future, legion_projection_id_t proj, legion_predicate_t pred, legion_mapper_id_t id, legion_mapping_tag_id_t launcher_tag)
void legion_runtime_fill_field(legion_runtime_t runtime, legion_context_t ctx, legion_logical_region_t handle, legion_logical_region_t parent, legion_field_id_t fid, const void *value, size_t value_size, legion_predicate_t pred)
void legion_task_variant_registrar_destroy(legion_task_variant_registrar_t registrar)
void legion_runtime_index_fill_field_future(legion_runtime_t runtime, legion_context_t ctx, legion_logical_partition_t handle, legion_logical_region_t parent, legion_field_id_t fid, legion_future_t f, legion_projection_id_t proj, legion_predicate_t pred, legion_mapper_id_t id, legion_mapping_tag_id_t launcher_tag)
void legion_index_attach_launcher_attach_array_soa(legion_index_attach_launcher_t handle, legion_logical_region_t region, void *base_ptr, bool column_major, const legion_field_id_t *fields, size_t num_fields, legion_memory_t memory)
void legion_field_space_retrieve_name(legion_runtime_t runtime, legion_field_space_t handle, const char **result)
legion_index_space_t legion_index_partition_get_index_subspace(legion_runtime_t runtime, legion_index_partition_t handle, legion_color_t color)
void legion_processor_query_only_kind(legion_processor_query_t query, legion_processor_kind_t kind)
legion_future_map_t legion_index_launcher_execute(legion_runtime_t runtime, legion_context_t ctx, legion_index_launcher_t launcher)
legion_coloring_t legion_coloring_create(void)
void legion_must_epoch_launcher_add_single_task(legion_must_epoch_launcher_t launcher, legion_domain_point_t point, legion_task_launcher_t handle)
void legion_domain_point_coloring_color_domain(legion_domain_point_coloring_t handle, legion_domain_point_t color, legion_domain_t domain)
unsigned legion_index_copy_launcher_add_src_indirect_region_requirement_logical_partition(legion_index_copy_launcher_t launcher, legion_logical_partition_t handle, legion_projection_id_t proj, legion_field_id_t fid, legion_coherence_property_t prop, legion_logical_region_t parent, legion_mapping_tag_id_t tag, bool is_range_indirection, bool verified)
void legion_acquire_launcher_destroy(legion_acquire_launcher_t handle)
void legion_index_partition_attach_semantic_information(legion_runtime_t runtime, legion_index_partition_t handle, legion_semantic_tag_t tag, const void *buffer, size_t size, bool is_mutable)
void legion_release_launcher_set_provenance(legion_release_launcher_t launcher, const char *provenance)
void legion_index_partition_destroy_unordered(legion_runtime_t runtime, legion_context_t ctx, legion_index_partition_t handle, bool unordered, bool recurse)
legion_index_partition_t legion_index_partition_create_by_image_range(legion_runtime_t runtime, legion_context_t ctx, legion_index_space_t handle, legion_logical_partition_t projection, legion_logical_region_t parent, legion_field_id_t fid, legion_index_space_t color_space, legion_partition_kind_t part_kind, legion_color_t color, legion_mapper_id_t id, legion_mapping_tag_id_t tag, legion_untyped_buffer_t map_arg)
legion_inline_launcher_t legion_inline_launcher_create_logical_region(legion_logical_region_t handle, legion_privilege_mode_t priv, legion_coherence_property_t prop, legion_logical_region_t parent, legion_mapping_tag_id_t region_tag, bool verified, legion_mapper_id_t id, legion_mapping_tag_id_t launcher_tag)
void legion_index_partition_destroy(legion_runtime_t runtime, legion_context_t ctx, legion_index_partition_t handle)
void legion_runtime_yield(legion_runtime_t runtime, legion_context_t ctx)
void legion_index_launcher_add_field(legion_index_launcher_t launcher, unsigned idx, legion_field_id_t fid, bool inst)
legion_attach_launcher_t legion_attach_launcher_create(legion_logical_region_t logical_region, legion_logical_region_t parent_region, legion_external_resource_t resource)
legion_processor_t legion_processor_query_first(legion_processor_query_t query)
void legion_future_map_destroy(legion_future_map_t handle)
legion_index_space_t legion_index_partition_create_index_space_intersection_partition(legion_runtime_t runtime, legion_context_t ctx, legion_index_partition_t parent, legion_domain_point_t color, legion_index_partition_t handle)
void legion_task_launcher_intersect_flags(legion_task_launcher_t launcher, unsigned idx, enum legion_region_flags_t flags)
legion_execution_constraint_set_t legion_execution_constraint_set_create(void)
legion_domain_point_t legion_logical_region_get_color_domain_point(legion_runtime_t runtime_, legion_logical_region_t handle_)
unsigned legion_index_copy_launcher_add_dst_region_requirement_logical_partition(legion_index_copy_launcher_t launcher, legion_logical_partition_t handle, legion_projection_id_t proj, legion_privilege_mode_t priv, legion_coherence_property_t prop, legion_logical_region_t parent, legion_mapping_tag_id_t tag, bool verified)
legion_field_id_t legion_field_allocator_allocate_local_field(legion_field_allocator_t allocator, size_t field_size, legion_field_id_t desired_fieldid)
bool legion_domain_contains(legion_domain_t d, legion_domain_point_t p)
void legion_index_attach_launcher_attach_file(legion_index_attach_launcher_t handle, legion_logical_region_t region, const char *filename, const legion_field_id_t *fields, size_t num_fields, legion_file_mode_t mode)
void legion_index_attach_launcher_set_deduplicate_across_shards(legion_index_attach_launcher_t handle, bool deduplicate)
legion_future_t legion_future_from_untyped_pointer(legion_runtime_t runtime, const void *buffer, size_t size)
legion_logical_partition_t legion_logical_partition_create_by_tree(legion_runtime_t runtime, legion_context_t ctx, legion_index_partition_t handle, legion_field_space_t fspace, legion_region_tree_id_t tid)
void legion_runtime_set_top_level_task_id(legion_task_id_t top_id)
void legion_copy_launcher_set_mapper_arg(legion_copy_launcher_t launcher, legion_untyped_buffer_t arg)
legion_future_t legion_future_from_untyped_pointer_detailed(legion_runtime_t runtime, const void *buffer, size_t size, bool take_ownership, const char *provenance, bool shard_local)
void legion_index_fill_launcher_destroy(legion_index_fill_launcher_t handle)
#define DESTROY_ARRAY(DIM)
Definition c_bindings.h:4412
void legion_index_launcher_add_arrival_barrier(legion_index_launcher_t launcher, legion_phase_barrier_t bar)
void legion_acquire_launcher_add_arrival_barrier(legion_acquire_launcher_t launcher, legion_phase_barrier_t bar)
legion_field_id_t legion_region_requirement_get_privilege_field(legion_region_requirement_t handle, unsigned idx)
legion_phase_barrier_t legion_phase_barrier_alter_arrival_count(legion_runtime_t runtime, legion_context_t ctx, legion_phase_barrier_t handle, int delta)
legion_logical_partition_t legion_logical_region_get_parent_logical_partition(legion_runtime_t runtime, legion_logical_region_t handle)
const void * legion_future_get_metadata(legion_future_t handle, size_t *size)
legion_index_partition_t legion_index_partition_create_point_coloring(legion_runtime_t runtime, legion_context_t ctx, legion_index_space_t parent, legion_domain_t color_space, legion_point_coloring_t coloring, legion_partition_kind_t part_kind, legion_color_t color)
legion_index_space_t legion_index_space_create(legion_runtime_t runtime, legion_context_t ctx, size_t max_num_elmts)
unsigned legion_index_launcher_add_region_requirement_logical_partition_reduction(legion_index_launcher_t launcher, legion_logical_partition_t handle, legion_projection_id_t proj, legion_reduction_op_id_t redop, legion_coherence_property_t prop, legion_logical_region_t parent, legion_mapping_tag_id_t tag, bool verified)
void legion_output_requirement_add_field(legion_output_requirement_t handle, legion_field_id_t field, bool instance)
bool legion_index_space_has_parent_index_partition(legion_runtime_t runtime, legion_index_space_t handle)
legion_point_coloring_t legion_point_coloring_create(void)
void legion_output_requirement_destroy(legion_output_requirement_t handle)
size_t legion_physical_region_get_field_count(legion_physical_region_t handle)
void legion_discard_launcher_execute(legion_runtime_t runtime, legion_context_t ctx, legion_discard_launcher_t launcher)
void legion_index_copy_launcher_execute(legion_runtime_t runtime, legion_context_t ctx, legion_index_copy_launcher_t launcher)
legion_domain_t legion_index_space_get_domain(legion_runtime_t runtime, legion_index_space_t handle)
legion_field_space_t legion_field_space_no_space()
legion_index_partition_t legion_index_partition_create_coloring(legion_runtime_t runtime, legion_context_t ctx, legion_index_space_t parent, legion_coloring_t coloring, bool disjoint, legion_color_t part_color)
legion_processor_t legion_task_get_target_proc(legion_task_t task)
legion_handle_type_t legion_region_requirement_get_handle_type(legion_region_requirement_t handle)
void legion_logical_region_attach_name(legion_runtime_t runtime, legion_logical_region_t handle, const char *name, bool is_mutable)
bool legion_logger_want_print(legion_logger_t handle)
legion_unique_id_t legion_task_get_unique_id(legion_task_t task)
legion_index_partition_t legion_index_partition_create_by_domain(legion_runtime_t runtime, legion_context_t ctx, legion_index_space_t parent, legion_domain_point_t *colors, legion_domain_t *domains, size_t num_color_domains, legion_index_space_t color_space, bool perform_intersections, legion_partition_kind_t part_kind, legion_color_t color)
void legion_external_resources_destroy(legion_external_resources_t handle)
legion_physical_region_t legion_external_resources_get_region(legion_external_resources_t handle, unsigned index)
legion_coherence_property_t legion_region_requirement_get_prop(legion_region_requirement_t handle)
void legion_copy_launcher_destroy(legion_copy_launcher_t handle)
void legion_layout_constraint_set_add_specialized_constraint(legion_layout_constraint_set_t handle, legion_specialized_constraint_t specialized, legion_reduction_op_id_t redop)
void legion_region_requirement_get_instance_fields(legion_region_requirement_t handle, legion_field_id_t *fields, unsigned fields_size)
void legion_domain_point_iterator_destroy(legion_domain_point_iterator_t handle)
legion_logical_region_t legion_logical_partition_get_logical_subregion_by_tree(legion_runtime_t runtime, legion_index_space_t handle, legion_field_space_t fspace, legion_region_tree_id_t tid)
void legion_processor_query_has_affinity_to_memory(legion_processor_query_t query, legion_memory_t mem, unsigned min_bandwidth, unsigned max_latency)
void legion_layout_constraint_set_add_tiling_constraint(legion_layout_constraint_set_t handle, legion_dimension_kind_t dim, size_t value, bool tiles)
legion_discard_launcher_t legion_discard_launcher_create(legion_logical_region_t handle, legion_logical_region_t parent)
void legion_attach_launcher_set_restricted(legion_attach_launcher_t handle, bool restricted)
int legion_task_get_depth(legion_task_t task)
void legion_logger_destroy(legion_logger_t handle)
legion_projection_id_t legion_runtime_generate_library_projection_ids(legion_runtime_t runtime, const char *library_name, size_t count)
unsigned legion_index_launcher_add_region_requirement_logical_region_reduction(legion_index_launcher_t launcher, legion_logical_region_t handle, legion_projection_id_t proj, legion_reduction_op_id_t redop, legion_coherence_property_t prop, legion_logical_region_t parent, legion_mapping_tag_id_t tag, bool verified)
void legion_memory_query_has_affinity_to_processor(legion_memory_query_t query, legion_processor_t proc, unsigned min_bandwidth, unsigned max_latency)
bool legion_index_space_has_multiple_domains(legion_runtime_t runtime, legion_index_space_t handle)
legion_index_partition_t legion_index_partition_create_domain_coloring(legion_runtime_t runtime, legion_context_t ctx, legion_index_space_t parent, legion_domain_t color_space, legion_domain_coloring_t coloring, bool disjoint, legion_color_t part_color)
legion_acquire_launcher_t legion_acquire_launcher_create(legion_logical_region_t logical_region, legion_logical_region_t parent_region, legion_predicate_t pred, legion_mapper_id_t id, legion_mapping_tag_id_t tag)
legion_domain_t legion_task_get_index_domain(legion_task_t task)
bool legion_index_partition_is_disjoint(legion_runtime_t runtime, legion_index_partition_t handle)
void legion_memory_query_same_address_space_as_memory(legion_memory_query_t query, legion_memory_t mem)
void legion_task_launcher_set_enable_inlining(legion_task_launcher_t launcher, bool enable_inlining)
void legion_field_allocator_free_field(legion_field_allocator_t allocator, legion_field_id_t fid)
legion_fill_launcher_t legion_fill_launcher_create(legion_logical_region_t handle, legion_logical_region_t parent, legion_field_id_t fid, const void *value, size_t value_size, legion_predicate_t pred, legion_mapper_id_t id, legion_mapping_tag_id_t tag)
legion_argument_map_t legion_argument_map_from_future_map(legion_future_map_t map)
void legion_index_launcher_set_mapper_arg(legion_index_launcher_t launcher, legion_untyped_buffer_t map_arg)
legion_logical_region_t legion_physical_region_get_logical_region(legion_physical_region_t handle)
legion_region_requirement_t legion_region_requirement_create_logical_region(legion_logical_region_t handle, legion_privilege_mode_t priv, legion_coherence_property_t prop, legion_logical_region_t parent, legion_mapping_tag_id_t tag, bool verified)
legion_color_t legion_logical_region_get_color(legion_runtime_t runtime, legion_logical_region_t handle)
void legion_execution_constraint_set_add_launch_constraint_multi_dim(legion_execution_constraint_set_t handle, legion_launch_constraint_t kind, const size_t *values, int dims)
legion_output_requirement_t legion_output_requirement_create(legion_field_space_t field_space, legion_field_id_t *fields, size_t fields_size, int dim, bool global_indexing)
legion_domain_point_t legion_domain_point_nil(void)
void legion_domain_point_coloring_destroy(legion_domain_point_coloring_t handle)
bool legion_future_is_ready_subscribe(legion_future_t handle, bool subscribe)
legion_logical_region_t(* legion_projection_functor_logical_region_t)(legion_runtime_t, legion_logical_region_t, legion_domain_point_t, legion_domain_t)
Definition c_bindings.h:421
const void * legion_task_get_local_args(legion_task_t task)
void legion_runtime_print_once(legion_runtime_t runtime, legion_context_t ctx, FILE *f, const char *message)
bool legion_mapper_runtime_find_or_create_physical_instance_layout_constraint(legion_mapper_runtime_t runtime, legion_mapper_context_t ctx, legion_memory_t target_memory, legion_layout_constraint_set_t constraints, const legion_logical_region_t *regions, size_t regions_size, legion_physical_instance_t *result, bool *created, bool acquire, legion_garbage_collection_priority_t priority, bool tight_region_bounds)
legion_domain_point_t legion_domain_point_iterator_next(legion_domain_point_iterator_t handle)
void legion_field_id_attach_semantic_information(legion_runtime_t runtime, legion_field_space_t handle, legion_field_id_t id, legion_semantic_tag_t tag, const void *buffer, size_t size, bool is_mutable)
legion_index_partition_t legion_index_partition_create_by_union(legion_runtime_t runtime, legion_context_t ctx, legion_index_space_t parent, legion_index_partition_t handle1, legion_index_partition_t handle2, legion_index_space_t color_space, legion_partition_kind_t part_kind, legion_color_t color)
legion_index_partition_t legion_index_partition_create_by_weights(legion_runtime_t runtime, legion_context_t ctx, legion_index_space_t parent, legion_domain_point_t *colors, int *weights, size_t num_colors, legion_index_space_t color_space, size_t granularity, legion_color_t color)
unsigned legion_index_launcher_add_index_requirement(legion_index_launcher_t launcher, legion_index_space_t handle, legion_allocate_mode_t priv, legion_index_space_t parent, bool verified)
legion_logical_region_t legion_logical_region_create(legion_runtime_t runtime, legion_context_t ctx, legion_index_space_t index, legion_field_space_t fields, bool task_local)
unsigned legion_copy_launcher_add_dst_region_requirement_logical_region(legion_copy_launcher_t launcher, legion_logical_region_t handle, legion_privilege_mode_t priv, legion_coherence_property_t prop, legion_logical_region_t parent, legion_mapping_tag_id_t tag, bool verified)
legion_task_id_t legion_runtime_generate_library_task_ids(legion_runtime_t runtime, const char *library_name, size_t count)
legion_dynamic_collective_t legion_dynamic_collective_create(legion_runtime_t runtime, legion_context_t ctx, unsigned arrivals, legion_reduction_op_id_t redop, const void *init_value, size_t init_size)
void legion_index_launcher_set_initial_value(legion_index_launcher_t launcher, legion_future_t initial_value)
legion_physical_region_t legion_attach_launcher_execute(legion_runtime_t runtime, legion_context_t ctx, legion_attach_launcher_t launcher)
legion_index_partition_t legion_index_partition_create_multi_domain_point_coloring(legion_runtime_t runtime, legion_context_t ctx, legion_index_space_t parent, legion_domain_t color_space, legion_multi_domain_point_coloring_t coloring, legion_partition_kind_t part_kind, legion_color_t color)
#define ITERATOR_DESTROY(DIM)
Definition c_bindings.h:666
bool legion_logical_region_has_parent_logical_partition(legion_runtime_t runtime, legion_logical_region_t handle)
legion_index_partition_t legion_index_partition_create_by_intersection_mirror(legion_runtime_t runtime, legion_context_t ctx, legion_index_space_t parent, legion_index_partition_t handle, legion_partition_kind_t part_kind, legion_color_t color, bool dominates)
void legion_memory_query_best_affinity_to_memory(legion_memory_query_t query, legion_memory_t mem, int bandwidth_weight, int latency_weight)
void legion_machine_get_all_memories(legion_machine_t machine, legion_memory_t *memories, size_t memories_size)
legion_future_t legion_future_map_reduce_with_initial_value(legion_runtime_t runtime, legion_context_t ctx, legion_future_map_t handle, legion_reduction_op_id_t redop, bool deterministic, legion_mapper_id_t map_id, legion_mapping_tag_id_t tag, const char *provenance, legion_future_t initial_value)
void legion_discard_launcher_add_field(legion_discard_launcher_t handle, legion_field_id_t fid)
void legion_release_launcher_add_wait_barrier(legion_release_launcher_t launcher, legion_phase_barrier_t bar)
void legion_dynamic_collective_defer_arrival(legion_runtime_t runtime, legion_context_t ctx, legion_dynamic_collective_t handle, legion_future_t f, unsigned count)
legion_logical_region_t legion_logical_partition_get_logical_subregion_by_color(legion_runtime_t runtime, legion_logical_partition_t parent, legion_color_t c)
void legion_task_variant_registrar_set_leaf_memory_pool_bounds(legion_task_variant_registrar_t registrar, legion_memory_kind_t kind, size_t size, unsigned alignment)
void legion_runtime_preregister_projection_functor_args(legion_projection_id_t id, bool exclusive, unsigned depth, legion_projection_functor_logical_region_args_t region_functor, legion_projection_functor_logical_partition_args_t partition_functor)
void legion_runtime_remap_region(legion_runtime_t runtime, legion_context_t ctx, legion_physical_region_t region)
bool legion_physical_region_is_mapped(legion_physical_region_t handle)
size_t legion_domain_get_volume(legion_domain_t d)
void legion_index_space_create_shared_ownership(legion_runtime_t runtime, legion_context_t ctx, legion_index_space_t handle)
legion_sharding_id_t legion_runtime_generate_library_sharding_ids(legion_runtime_t runtime, const char *library_name, size_t count)
void legion_field_space_attach_semantic_information(legion_runtime_t runtime, legion_field_space_t handle, legion_semantic_tag_t tag, const void *buffer, size_t size, bool is_mutable)
void legion_must_epoch_launcher_set_provenance(legion_must_epoch_launcher_t launcher, const char *provenance)
void legion_layout_constraint_set_add_memory_constraint(legion_layout_constraint_set_t handle, legion_memory_kind_t kind)
void legion_domain_coloring_color_domain(legion_domain_coloring_t handle, legion_color_t color, legion_domain_t domain)
legion_task_id_t legion_runtime_preregister_task_variant_fnptr(legion_task_id_t id, legion_variant_id_t variant_id, const char *task_name, const char *variant_name, legion_execution_constraint_set_t execution_constraints, legion_task_layout_constraint_set_t layout_constraints, legion_task_config_options_t options, legion_task_pointer_wrapped_t wrapped_task_pointer, const void *userdata, size_t userlen)
#define GET_POINT(DIM)
Definition c_bindings.h:588
void legion_fill_launcher_set_point(legion_fill_launcher_t launcher, legion_domain_point_t point)
void legion_fill_launcher_set_provenance(legion_fill_launcher_t launcher, const char *provenance)
void legion_index_launcher_set_concurrent(legion_index_launcher_t launcher, bool concurrent)
bool legion_logger_want_spew(legion_logger_t handle)
legion_future_t legion_dynamic_collective_get_result(legion_runtime_t runtime, legion_context_t ctx, legion_dynamic_collective_t handle)
void legion_index_launcher_set_mapping_tag(legion_index_launcher_t launcher, legion_mapping_tag_id_t tag)
bool legion_index_partition_has_index_subspace_domain_point(legion_runtime_t runtime, legion_index_partition_t handle, legion_domain_point_t color)
void legion_runtime_register_projection_functor(legion_runtime_t runtime, legion_projection_id_t id, bool exclusive, unsigned depth, legion_projection_functor_logical_region_args_t region_functor, legion_projection_functor_logical_partition_args_t partition_functor)
void legion_index_fill_launcher_set_sharding_space(legion_index_fill_launcher_t launcher, legion_index_space_t space)
legion_task_launcher_t legion_task_launcher_create_from_buffer(legion_task_id_t tid, const void *buffer, size_t buffer_size, legion_predicate_t pred, legion_mapper_id_t id, legion_mapping_tag_id_t tag)
void legion_task_launcher_set_region_requirement_logical_region(legion_task_launcher_t launcher, unsigned idx, legion_logical_region_t handle, legion_privilege_mode_t priv, legion_coherence_property_t prop, legion_logical_region_t parent, legion_mapping_tag_id_t tag, bool verified)
legion_dynamic_collective_t legion_dynamic_collective_alter_arrival_count(legion_runtime_t runtime, legion_context_t ctx, legion_dynamic_collective_t handle, int delta)
void legion_point_coloring_add_range(legion_point_coloring_t handle, legion_domain_point_t color, legion_ptr_t start, legion_ptr_t end)
legion_copy_launcher_t legion_copy_launcher_create(legion_predicate_t pred, legion_mapper_id_t id, legion_mapping_tag_id_t launcher_tag)
void legion_machine_destroy(legion_machine_t handle)
void legion_runtime_index_fill_field_future_with_space(legion_runtime_t runtime, legion_context_t ctx, legion_index_space_t space, legion_logical_partition_t handle, legion_logical_region_t parent, legion_field_id_t fid, legion_future_t f, legion_projection_id_t proj, legion_predicate_t pred, legion_mapper_id_t id, legion_mapping_tag_id_t launcher_tag)
legion_future_t legion_runtime_issue_execution_fence(legion_runtime_t runtime, legion_context_t ctx)
legion_index_partition_t legion_index_partition_create_equal(legion_runtime_t runtime, legion_context_t ctx, legion_index_space_t parent, legion_index_space_t color_space, size_t granularity, legion_color_t color)
legion_index_space_t legion_index_space_subtraction(legion_runtime_t runtime, legion_context_t ctx, legion_index_space_t left, legion_index_space_t right)
legion_index_space_t legion_index_partition_create_index_space_intersection_spaces(legion_runtime_t runtime, legion_context_t ctx, legion_index_partition_t parent, legion_domain_point_t color, const legion_index_space_t *spaces, size_t num_spaces)
legion_domain_t legion_domain_from_index_space(legion_runtime_t runtime, legion_index_space_t is)
void legion_index_copy_launcher_add_src_field(legion_index_copy_launcher_t launcher, unsigned idx, legion_field_id_t fid, bool inst)
void legion_runtime_preregister_projection_functor_mappable(legion_projection_id_t id, bool exclusive, unsigned depth, legion_projection_functor_logical_region_mappable_t region_functor, legion_projection_functor_logical_partition_mappable_t partition_functor)
bool legion_task_get_is_index_space(legion_task_t task)
legion_domain_t legion_domain_coloring_get_color_space(legion_domain_coloring_t handle)
enum legion_mappable_type_id_t legion_mappable_get_type(legion_mappable_t mappable)
void legion_index_launcher_set_region_requirement_logical_partition(legion_index_launcher_t launcher, unsigned idx, legion_logical_partition_t handle, legion_projection_id_t proj, legion_privilege_mode_t priv, legion_coherence_property_t prop, legion_logical_region_t parent, legion_mapping_tag_id_t tag, bool verified)
unsigned long long legion_get_current_time_in_micros(void)
legion_index_partition_t legion_index_partition_create_by_image(legion_runtime_t runtime, legion_context_t ctx, legion_index_space_t handle, legion_logical_partition_t projection, legion_logical_region_t parent, legion_field_id_t fid, legion_index_space_t color_space, legion_partition_kind_t part_kind, legion_color_t color, legion_mapper_id_t id, legion_mapping_tag_id_t tag, legion_untyped_buffer_t map_arg)
legion_task_variant_registrar_t legion_task_variant_registrar_create(legion_task_id_t tid, bool global, const char *variant_name)
void legion_logger_fatal(legion_logger_t handle, const char *msg)
void legion_copy_launcher_set_provenance(legion_copy_launcher_t launcher, const char *provenance)
void legion_index_attach_launcher_set_restricted(legion_index_attach_launcher_t handle, bool restricted)
void legion_region_requirement_add_flags(legion_region_requirement_t handle, legion_region_flags_t flags)
void legion_task_add_future(legion_task_mut_t task, legion_future_t future)
legion_mapping_tag_id_t legion_region_requirement_get_tag(legion_region_requirement_t handle)
void legion_slice_task_output_verify_correctness_set(legion_slice_task_output_t output, bool verify_correctness)
legion_future_map_t legion_future_map_copy(legion_future_map_t handle)
int legion_runtime_wait_for_shutdown(void)
void legion_layout_constraint_set_destroy(legion_layout_constraint_set_t handle)
void legion_index_attach_launcher_set_provenance(legion_index_attach_launcher_t handle, const char *provenance)
legion_future_map_t legion_future_map_transform(legion_runtime_t runtime, legion_context_t ctx, legion_future_map_t fm, legion_index_space_t new_domain, legion_point_transform_functor_t functor, bool take_ownership)
legion_external_resources_t legion_attach_external_resources(legion_runtime_t runtime, legion_context_t ctx, legion_index_attach_launcher_t launcher)
void legion_task_preamble(const void *data, size_t datalen, realm_id_t proc_id, legion_task_t *taskptr, const legion_physical_region_t **regionptr, unsigned *num_regions_ptr, legion_context_t *ctxptr, legion_runtime_t *runtimeptr)
void legion_index_launcher_add_point_future(legion_index_launcher_t launcher, legion_argument_map_t map)
#define ITERATOR_STEP(DIM)
Definition c_bindings.h:684
void legion_map_task_output_chosen_instances_clear_all(legion_map_task_output_t output)
legion_region_requirement_t legion_task_get_requirement(legion_task_t task, unsigned idx)
unsigned legion_index_launcher_add_region_requirement_logical_partition(legion_index_launcher_t launcher, legion_logical_partition_t handle, legion_projection_id_t proj, legion_privilege_mode_t priv, legion_coherence_property_t prop, legion_logical_region_t parent, legion_mapping_tag_id_t tag, bool verified)
void legion_map_task_output_chosen_instances_add(legion_map_task_output_t output, legion_physical_instance_t *instances, size_t instances_size)
legion_predicate_t legion_predicate_create(legion_runtime_t runtime, legion_context_t ctx, legion_future_t f)
void legion_task_id_attach_semantic_information(legion_runtime_t runtime, legion_task_id_t task_id, legion_semantic_tag_t tag, const void *buffer, size_t size, bool is_mutable)
void legion_context_destroy(legion_context_t)
void legion_memory_query_has_affinity_to_memory(legion_memory_query_t query, legion_memory_t mem, unsigned min_bandwidth, unsigned max_latency)
void legion_map_task_output_target_procs_add(legion_map_task_output_t output, legion_processor_t proc)
void legion_task_id_retrieve_name(legion_runtime_t runtime, legion_task_id_t task_id, const char **result)
void legion_copy_launcher_add_dst_field(legion_copy_launcher_t launcher, unsigned idx, legion_field_id_t fid, bool inst)
void legion_runtime_index_fill_field_with_domain(legion_runtime_t runtime, legion_context_t ctx, legion_domain_t domain, legion_logical_partition_t handle, legion_logical_region_t parent, legion_field_id_t fid, const void *value, size_t value_size, legion_projection_id_t proj, legion_predicate_t pred, legion_mapper_id_t id, legion_mapping_tag_id_t launcher_tag)
legion_phase_barrier_t legion_phase_barrier_advance(legion_runtime_t runtime, legion_context_t ctx, legion_phase_barrier_t handle)
void legion_logger_debug(legion_logger_t handle, const char *msg)
legion_address_space_t legion_processor_address_space(legion_processor_t proc)
legion_task_t legion_task_mut_as_task(legion_task_mut_t task)
legion_future_t legion_runtime_issue_mapping_fence(legion_runtime_t runtime, legion_context_t ctx)
legion_output_requirement_t legion_output_requirement_create_region_requirement(legion_region_requirement_t handle)
void legion_fill_launcher_execute(legion_runtime_t runtime, legion_context_t ctx, legion_fill_launcher_t launcher)
legion_logical_region_t(* legion_projection_functor_logical_partition_args_t)(legion_runtime_t, legion_logical_partition_t, legion_domain_point_t, legion_domain_t, const void *, size_t)
Definition c_bindings.h:450
legion_logical_region_t legion_logical_partition_get_logical_subregion_by_color_domain_point(legion_runtime_t runtime, legion_logical_partition_t parent, legion_domain_point_t c)
void legion_index_partition_retrieve_name(legion_runtime_t runtime, legion_index_partition_t handle, const char **result)
legion_processor_t legion_map_task_output_target_procs_get(legion_map_task_output_t output, size_t idx)
void legion_region_requirement_get_privilege_fields(legion_region_requirement_t handle, legion_field_id_t *fields, unsigned fields_size)
bool legion_coloring_has_point(legion_coloring_t handle, legion_color_t color, legion_ptr_t point)
void legion_attach_launcher_add_cpu_soa_field(legion_attach_launcher_t launcher, legion_field_id_t fid, void *base_ptr, bool column_major)
void legion_index_copy_launcher_add_wait_barrier(legion_index_copy_launcher_t launcher, legion_phase_barrier_t bar)
legion_fill_t legion_mappable_as_fill(legion_mappable_t mappable)
void legion_index_copy_launcher_set_sharding_space(legion_index_copy_launcher_t launcher, legion_index_space_t is)
void legion_task_variant_registrar_set_layout_constraints(legion_task_variant_registrar_t registrar, legion_task_layout_constraint_set_t constraints)
realm_task_pointer_t legion_task_pointer_wrapped_t
Definition c_bindings.h:415
legion_field_space_t legion_field_space_create_with_futures(legion_runtime_t runtime, legion_context_t ctx, legion_future_t *field_sizes, legion_field_id_t *field_ids, size_t num_fields, legion_custom_serdez_id_t serdez)
void legion_attach_launcher_set_provenance(legion_attach_launcher_t handle, const char *provenance)
unsigned legion_task_launcher_add_index_requirement(legion_task_launcher_t launcher, legion_index_space_t handle, legion_allocate_mode_t priv, legion_index_space_t parent, bool verified)
void legion_fill_launcher_destroy(legion_fill_launcher_t handle)
void legion_logical_region_destroy_unordered(legion_runtime_t runtime, legion_context_t ctx, legion_logical_region_t handle, bool unordered)
bool legion_future_is_empty(legion_future_t handle, bool block)
void legion_sharding_functor_invert(legion_sharding_id_t sid, legion_shard_id_t shard, legion_domain_t shard_domain, legion_domain_t full_domain, size_t total_shards, legion_domain_point_t *points, size_t *points_size)
void legion_runtime_add_registration_callback(legion_registration_callback_pointer_t callback)
void legion_argument_map_destroy(legion_argument_map_t handle)
unsigned legion_index_copy_launcher_add_dst_indirect_region_requirement_logical_region(legion_index_copy_launcher_t launcher, legion_logical_region_t handle, legion_projection_id_t proj, legion_field_id_t fid, legion_coherence_property_t prop, legion_logical_region_t parent, legion_mapping_tag_id_t tag, bool is_range_indirection, bool verified)
void legion_index_attach_launcher_destroy(legion_index_attach_launcher_t handle)
void legion_runtime_index_fill_field_future_with_domain(legion_runtime_t runtime, legion_context_t ctx, legion_domain_t domain, legion_logical_partition_t handle, legion_logical_region_t parent, legion_field_id_t fid, legion_future_t f, legion_projection_id_t proj, legion_predicate_t pred, legion_mapper_id_t id, legion_mapping_tag_id_t launcher_tag)
legion_ptr_t legion_ptr_nil(void)
void legion_index_copy_launcher_add_dst_field(legion_index_copy_launcher_t launcher, unsigned idx, legion_field_id_t fid, bool inst)
size_t legion_task_get_arglen(legion_task_t task)
legion_processor_query_t legion_processor_query_create(legion_machine_t machine)
legion_future_map_t legion_must_epoch_launcher_execute(legion_runtime_t runtime, legion_context_t ctx, legion_must_epoch_launcher_t launcher)
legion_layout_constraint_id_t legion_layout_constraint_set_preregister(legion_layout_constraint_set_t handle, const char *layout_name)
legion_variant_id_t legion_runtime_register_task_variant_fnptr_with_registrar(legion_runtime_t runtime, legion_task_variant_registrar_t registrar, legion_task_pointer_wrapped_t wrapped_task_pointer, legion_variant_id_t variant_id, const void *userdata, size_t userlen, size_t return_type_size, bool has_return_type_size)
size_t legion_future_get_untyped_size(legion_future_t handle)
void legion_must_epoch_launcher_add_index_task(legion_must_epoch_launcher_t launcher, legion_index_launcher_t handle)
void legion_index_launcher_intersect_flags(legion_index_launcher_t launcher, unsigned idx, enum legion_region_flags_t flags)
void legion_task_launcher_set_mapper(legion_task_launcher_t launcher, legion_mapper_id_t mapper_id)
legion_memory_query_t legion_memory_query_create(legion_machine_t machine)
bool legion_logger_want_info(legion_logger_t handle)
void legion_logical_region_destroy(legion_runtime_t runtime, legion_context_t ctx, legion_logical_region_t handle)
void legion_logical_partition_attach_semantic_information(legion_runtime_t runtime, legion_logical_partition_t handle, legion_semantic_tag_t tag, const void *buffer, size_t size, bool is_mutable)
unsigned legion_task_get_futures_size(legion_task_t task)
bool legion_field_space_has_fields(legion_runtime_t runtime, legion_context_t ctx, legion_field_space_t handle, const legion_field_id_t *fields, size_t fields_size)
void legion_slice_task_output_slices_add(legion_slice_task_output_t output, legion_task_slice_t slice)
unsigned legion_copy_launcher_add_dst_region_requirement_logical_region_reduction(legion_copy_launcher_t launcher, legion_logical_region_t handle, legion_reduction_op_id_t redop, legion_coherence_property_t prop, legion_logical_region_t parent, legion_mapping_tag_id_t tag, bool verified)
void legion_index_launcher_set_region_requirement_logical_region(legion_index_launcher_t launcher, unsigned idx, legion_logical_region_t handle, legion_projection_id_t proj, legion_privilege_mode_t priv, legion_coherence_property_t prop, legion_logical_region_t parent, legion_mapping_tag_id_t tag, bool verified)
void legion_execution_constraint_set_add_resource_constraint(legion_execution_constraint_set_t handle, legion_resource_constraint_t resource, legion_equality_kind_t eq, size_t value)
void legion_machine_get_all_processors(legion_machine_t machine, legion_processor_t *processors, size_t processors_size)
legion_future_map_t legion_index_launcher_execute_outputs(legion_runtime_t runtime, legion_context_t ctx, legion_index_launcher_t launcher, legion_output_requirement_t *reqs, size_t reqs_size)
void legion_phase_barrier_wait(legion_runtime_t runtime, legion_context_t ctx, legion_phase_barrier_t handle)
#define BUFFER_CREATE(DIM)
Definition c_bindings.h:2475
void legion_runtime_end_trace(legion_runtime_t runtime, legion_context_t ctx, legion_trace_id_t tid)
legion_ptr_t legion_ptr_safe_cast(legion_runtime_t runtime, legion_context_t ctx, legion_ptr_t pointer, legion_logical_region_t region)
void legion_runtime_unmap_all_regions(legion_runtime_t runtime, legion_context_t ctx)
legion_phase_barrier_t legion_phase_barrier_create(legion_runtime_t runtime, legion_context_t ctx, unsigned arrivals)
legion_future_map_t legion_future_map_construct_from_buffers(legion_runtime_t runtime, legion_context_t ctx, legion_domain_t domain, legion_domain_point_t *points, legion_untyped_buffer_t *buffers, size_t num_points, bool collective, legion_sharding_id_t sid, bool implicit_sharding)
legion_future_t legion_task_launcher_execute_outputs(legion_runtime_t runtime, legion_context_t ctx, legion_task_launcher_t launcher, legion_output_requirement_t *reqs, size_t reqs_size)
bool legion_mapper_runtime_create_physical_instance_layout_constraint(legion_mapper_runtime_t runtime, legion_mapper_context_t ctx, legion_memory_t target_memory, legion_layout_constraint_set_t constraints, const legion_logical_region_t *regions, size_t regions_size, legion_physical_instance_t *result, bool acquire, legion_garbage_collection_priority_t priority)
legion_future_t legion_flush_detach_external_resource(legion_runtime_t runtime, legion_context_t ctx, legion_physical_region_t handle, bool flush)
legion_index_launcher_t legion_index_launcher_create_from_buffer(legion_task_id_t tid, legion_domain_t domain, const void *buffer, size_t buffer_size, legion_argument_map_t map, legion_predicate_t pred, bool must, legion_mapper_id_t id, legion_mapping_tag_id_t tag)
void legion_memory_query_destroy(legion_memory_query_t handle)
void legion_release_launcher_execute(legion_runtime_t runtime, legion_context_t ctx, legion_release_launcher_t launcher)
legion_logical_region_t(* legion_projection_functor_logical_region_args_t)(legion_runtime_t, legion_logical_region_t, legion_domain_point_t, legion_domain_t, const void *, size_t)
Definition c_bindings.h:440
void legion_logger_spew(legion_logger_t handle, const char *msg)
void legion_runtime_detach_hdf5(legion_runtime_t runtime, legion_context_t ctx, legion_physical_region_t region)
legion_field_allocator_t legion_field_allocator_create(legion_runtime_t runtime, legion_context_t ctx, legion_field_space_t handle)
legion_future_t legion_detach_external_resource(legion_runtime_t runtime, legion_context_t ctx, legion_physical_region_t handle)
void legion_dynamic_collective_arrive(legion_runtime_t runtime, legion_context_t ctx, legion_dynamic_collective_t handle, const void *buffer, size_t size, unsigned count)
legion_task_mut_t legion_task_create_empty()
void legion_index_attach_launcher_attach_hdf5(legion_index_attach_launcher_t handle, legion_logical_region_t region, const char *filename, legion_field_map_t field_map, legion_file_mode_t mode)
void legion_fill_launcher_add_field(legion_fill_launcher_t handle, legion_field_id_t fid)
legion_index_space_t legion_index_partition_create_index_space_union_spaces(legion_runtime_t runtime, legion_context_t ctx, legion_index_partition_t parent, legion_domain_point_t color, const legion_index_space_t *spaces, size_t num_spaces)
void legion_release_launcher_add_field(legion_release_launcher_t launcher, legion_field_id_t fid)
void legion_index_fill_launcher_add_field(legion_fill_launcher_t handle, legion_field_id_t fid)
const legion_input_args_t legion_runtime_get_input_args(void)
legion_domain_t legion_future_map_get_domain(legion_future_map_t handle)
void legion_index_copy_launcher_destroy(legion_index_copy_launcher_t handle)
legion_task_id_t legion_runtime_register_task_variant_fnptr(legion_runtime_t runtime, legion_task_id_t id, const char *task_name, const char *variant_name, bool global, legion_execution_constraint_set_t execution_constraints, legion_task_layout_constraint_set_t layout_constraints, legion_task_config_options_t options, legion_task_pointer_wrapped_t wrapped_task_pointer, const void *userdata, size_t userlen)
legion_must_epoch_launcher_t legion_must_epoch_launcher_create(legion_mapper_id_t id, legion_mapping_tag_id_t launcher_tag)
void legion_index_launcher_set_global_arg(legion_index_launcher_t launcher, legion_untyped_buffer_t global_arg)
void legion_index_launcher_destroy(legion_index_launcher_t handle)
void legion_index_copy_launcher_set_possible_dst_indirect_out_of_range(legion_index_copy_launcher_t launcher, bool flag)
size_t legion_external_resources_size(legion_external_resources_t handle)
bool legion_ptr_is_null(legion_ptr_t ptr)
void legion_runtime_begin_trace(legion_runtime_t runtime, legion_context_t ctx, legion_trace_id_t tid, bool logical_only)
void legion_release_launcher_destroy(legion_release_launcher_t handle)
void legion_layout_constraint_set_add_field_constraint(legion_layout_constraint_set_t handle, const legion_field_id_t *fields, size_t num_fields, bool contiguous, bool inorder)
int legion_index_space_get_dim(legion_index_space_t handle)
void legion_future_get_void_result(legion_future_t handle)
void legion_logical_partition_destroy(legion_runtime_t runtime, legion_context_t ctx, legion_logical_partition_t handle)
void legion_index_copy_launcher_set_provenance(legion_index_copy_launcher_t launcher, const char *provenance)
void legion_memory_query_same_address_space_as_processor(legion_memory_query_t query, legion_processor_t proc)
unsigned legion_copy_launcher_add_src_indirect_region_requirement_logical_region(legion_copy_launcher_t launcher, legion_logical_region_t handle, legion_field_id_t fid, legion_coherence_property_t prop, legion_logical_region_t parent, legion_mapping_tag_id_t tag, bool is_range_indirection, bool verified)
void legion_coloring_delete_point(legion_coloring_t handle, legion_color_t color, legion_ptr_t point)
void legion_field_space_create_shared_ownership(legion_runtime_t runtime, legion_context_t ctx, legion_field_space_t handle)
void legion_execution_constraint_set_add_processor_constraint(legion_execution_constraint_set_t handle, legion_processor_kind_t proc_kind)
void legion_acquire_launcher_set_mapper_arg(legion_acquire_launcher_t launcher, legion_untyped_buffer_t arg)
void legion_inline_launcher_set_mapper_arg(legion_inline_launcher_t launcher, legion_untyped_buffer_t arg)
legion_memory_t legion_memory_query_next(legion_memory_query_t query, legion_memory_t after)
#define ITERATOR_CREATE(DIM)
Definition c_bindings.h:655
void legion_task_postamble(legion_runtime_t runtime, legion_context_t ctx, const void *retval, size_t retsize)
legion_future_t legion_future_copy(legion_future_t handle)
void legion_processor_query_local_address_space(legion_processor_query_t query)
bool legion_field_space_retrieve_semantic_information(legion_runtime_t runtime, legion_field_space_t handle, legion_semantic_tag_t tag, const void **result, size_t *size, bool can_fail, bool wait_until_ready)
legion_field_id_t legion_field_allocator_allocate_field(legion_field_allocator_t allocator, size_t field_size, legion_field_id_t desired_fieldid)
#define GET_RECT(DIM)
Definition c_bindings.h:524
const void * legion_task_get_args(legion_task_t task)
size_t legion_memory_query_count(legion_memory_query_t query)
legion_layout_constraint_set_t legion_layout_constraint_set_create(void)
legion_domain_coloring_t legion_domain_coloring_create(void)
legion_index_space_t legion_index_space_intersection(legion_runtime_t runtime, legion_context_t ctx, const legion_index_space_t *spaces, size_t num_spaces)
legion_index_fill_launcher_t legion_index_fill_launcher_create_with_space(legion_index_space_t space, legion_logical_partition_t handle, legion_logical_region_t parent, legion_field_id_t fid, const void *value, size_t value_size, legion_projection_id_t proj, legion_predicate_t pred, legion_mapper_id_t id, legion_mapping_tag_id_t launcher_tag)
void legion_attach_launcher_set_mapped(legion_attach_launcher_t handle, bool mapped)
void legion_layout_constraint_set_add_dimension_constraint(legion_layout_constraint_set_t handle, legion_dimension_kind_t dim, legion_equality_kind_t eq, size_t value)
void legion_acquire_launcher_execute(legion_runtime_t runtime, legion_context_t ctx, legion_acquire_launcher_t launcher)
void legion_logical_partition_destroy_unordered(legion_runtime_t runtime, legion_context_t ctx, legion_logical_partition_t handle, bool unordered)
void legion_region_requirement_add_field(legion_region_requirement_t handle, legion_field_id_t field, bool instance_field)
legion_field_id_t legion_auto_generate_id(void)
legion_region_requirement_t legion_inline_get_requirement(legion_inline_t inline_operation)
void legion_index_launcher_set_provenance(legion_index_launcher_t launcher, const char *provenance)
legion_field_id_t * legion_field_space_get_fields(legion_runtime_t runtime, legion_context_t ctx, legion_field_space_t handle, size_t *size)
void legion_index_copy_launcher_add_arrival_barrier(legion_index_copy_launcher_t launcher, legion_phase_barrier_t bar)
legion_mapper_id_t legion_task_get_mapper(legion_task_t task)
void legion_index_partition_attach_name(legion_runtime_t runtime, legion_index_partition_t handle, const char *name, bool is_mutable)
void legion_domain_coloring_destroy(legion_domain_coloring_t handle)
#define ITERATOR_OP(DIM)
Definition c_bindings.h:693
unsigned legion_task_launcher_add_region_requirement_logical_region_reduction(legion_task_launcher_t launcher, legion_logical_region_t handle, legion_reduction_op_id_t redop, legion_coherence_property_t prop, legion_logical_region_t parent, legion_mapping_tag_id_t tag, bool verified)
void legion_fill_launcher_set_sharding_space(legion_fill_launcher_t launcher, legion_index_space_t space)
void legion_task_launcher_set_provenance(legion_task_launcher_t launcher, const char *provenance)
unsigned legion_region_requirement_get_instance_fields_size(legion_region_requirement_t handle)
legion_mapper_id_t legion_runtime_generate_library_mapper_ids(legion_runtime_t runtime, const char *library_name, size_t count)
void legion_field_space_destroy(legion_runtime_t runtime, legion_context_t ctx, legion_field_space_t handle)
void legion_layout_constraint_set_add_pointer_constraint(legion_layout_constraint_set_t handle, legion_memory_t memory, uintptr_t ptr)
size_t legion_field_id_get_size(legion_runtime_t runtime, legion_context_t ctx, legion_field_space_t handle, legion_field_id_t id)
void legion_index_launcher_add_future(legion_index_launcher_t launcher, legion_future_t future)
legion_region_requirement_t legion_copy_get_requirement(legion_copy_t copy, unsigned idx)
void legion_future_wait(legion_future_t handle, bool silence_warnings, const char *warning_string)
legion_future_t legion_detach_external_resources(legion_runtime_t runtime, legion_context_t ctx, legion_external_resources_t, bool flush, bool unordered)
void legion_logical_region_attach_semantic_information(legion_runtime_t runtime, legion_logical_region_t handle, legion_semantic_tag_t tag, const void *buffer, size_t size, bool is_mutable)
legion_index_space_t legion_logical_region_get_index_space(legion_logical_region_t handle)
legion_copy_t legion_mappable_as_copy(legion_mappable_t mappable)
void legion_field_space_destroy_unordered(legion_runtime_t runtime, legion_context_t ctx, legion_field_space_t handle, bool unordered)
legion_fill_launcher_t legion_fill_launcher_create_from_future(legion_logical_region_t handle, legion_logical_region_t parent, legion_field_id_t fid, legion_future_t f, legion_predicate_t pred, legion_mapper_id_t id, legion_mapping_tag_id_t tag)
legion_logical_partition_t legion_region_requirement_get_partition(legion_region_requirement_t handle)
unsigned legion_task_launcher_add_region_requirement_logical_region(legion_task_launcher_t launcher, legion_logical_region_t handle, legion_privilege_mode_t priv, legion_coherence_property_t prop, legion_logical_region_t parent, legion_mapping_tag_id_t tag, bool verified)
void legion_runtime_index_fill_field_with_space(legion_runtime_t runtime, legion_context_t ctx, legion_index_space_t space, legion_logical_partition_t handle, legion_logical_region_t parent, legion_field_id_t fid, const void *value, size_t value_size, legion_projection_id_t proj, legion_predicate_t pred, legion_mapper_id_t id, legion_mapping_tag_id_t launcher_tag)
size_t legion_runtime_total_shards(legion_runtime_t runtime, legion_context_t ctx)
legion_projection_id_t legion_region_requirement_get_projection(legion_region_requirement_t handle)
bool legion_mapper_runtime_create_physical_instance_layout_constraint_id(legion_mapper_runtime_t runtime, legion_mapper_context_t ctx, legion_memory_t target_memory, legion_layout_constraint_id_t layout_id, const legion_logical_region_t *regions, size_t regions_size, legion_physical_instance_t *result, bool acquire, legion_garbage_collection_priority_t priority)
legion_index_space_t legion_index_space_create_domain(legion_runtime_t runtime, legion_context_t ctx, legion_domain_t domain)
void legion_task_layout_constraint_set_add_layout_constraint(legion_task_layout_constraint_set_t handle, unsigned idx, legion_layout_constraint_id_t layout)
legion_field_id_t legion_region_requirement_get_instance_field(legion_region_requirement_t handle, unsigned idx)
bool legion_logical_partition_has_logical_subregion_by_color_domain_point(legion_runtime_t runtime, legion_logical_partition_t parent, legion_domain_point_t c)
void legion_logger_warning(legion_logger_t handle, const char *msg)
void legion_copy_launcher_set_possible_src_indirect_out_of_range(legion_copy_launcher_t launcher, bool flag)
legion_index_partition_t legion_index_partition_create_domain_point_coloring(legion_runtime_t runtime, legion_context_t ctx, legion_index_space_t parent, legion_domain_t color_space, legion_domain_point_coloring_t coloring, legion_partition_kind_t part_kind, legion_color_t color)
legion_processor_t legion_processor_query_random(legion_processor_query_t query)
void legion_task_launcher_set_predicate_false_future(legion_task_launcher_t launcher, legion_future_t f)
legion_future_t legion_future_map_get_future(legion_future_map_t handle, legion_domain_point_t point)
#define ITERATOR_VALID(DIM)
Definition c_bindings.h:675
legion_domain_point_t legion_task_get_index_point(legion_task_t task)
void legion_task_launcher_add_wait_barrier(legion_task_launcher_t launcher, legion_phase_barrier_t bar)
void legion_task_launcher_set_argument(legion_task_launcher_t launcher, legion_untyped_buffer_t arg)
void legion_layout_constraint_set_add_offset_constraint(legion_layout_constraint_set_t handle, legion_field_id_t field, size_t offset)
legion_logical_region_t legion_region_requirement_get_parent(legion_region_requirement_t handle)
legion_field_id_t legion_field_allocator_allocate_field_future(legion_field_allocator_t allocator, legion_future_t field_size, legion_field_id_t desired_fieldid)
unsigned legion_index_copy_launcher_add_dst_region_requirement_logical_partition_reduction(legion_index_copy_launcher_t launcher, legion_logical_partition_t handle, legion_projection_id_t proj, legion_reduction_op_id_t redop, legion_coherence_property_t prop, legion_logical_region_t parent, legion_mapping_tag_id_t tag, bool verified)
void legion_copy_launcher_add_src_field(legion_copy_launcher_t launcher, unsigned idx, legion_field_id_t fid, bool inst)
legion_logger_t legion_logger_create(const char *name)
unsigned legion_index_copy_launcher_add_src_region_requirement_logical_partition(legion_index_copy_launcher_t launcher, legion_logical_partition_t handle, legion_projection_id_t proj, legion_privilege_mode_t priv, legion_coherence_property_t prop, legion_logical_region_t parent, legion_mapping_tag_id_t tag, bool verified)
legion_index_space_t legion_index_partition_get_color_space(legion_runtime_t runtime, legion_index_partition_t handle)
legion_machine_t legion_machine_create(void)
void legion_task_launcher_set_mapping_tag(legion_task_launcher_t launcher, legion_mapping_tag_id_t tag)
legion_task_id_t legion_task_get_task_id(legion_task_t task)
legion_task_t legion_mappable_as_task(legion_mappable_t mappable)
void legion_index_launcher_set_mapper(legion_index_launcher_t launcher, legion_mapper_id_t mapper_id)
legion_logical_region_t(* legion_projection_functor_logical_partition_t)(legion_runtime_t, legion_logical_partition_t, legion_domain_point_t, legion_domain_t)
Definition c_bindings.h:430
legion_memory_kind_t legion_memory_kind(legion_memory_t mem)
legion_field_map_t legion_field_map_create(void)
size_t legion_machine_get_all_memories_size(legion_machine_t machine)
void legion_acquire_launcher_add_field(legion_acquire_launcher_t launcher, legion_field_id_t fid)
void legion_map_task_output_chosen_instances_set(legion_map_task_output_t output, size_t idx, legion_physical_instance_t *instances, size_t instances_size)
legion_region_requirement_t legion_region_requirement_create_logical_partition(legion_logical_partition_t handle, legion_projection_id_t proj, legion_privilege_mode_t priv, legion_coherence_property_t prop, legion_logical_region_t parent, legion_mapping_tag_id_t tag, bool verified)
legion_index_space_t legion_index_partition_create_index_space_union_partition(legion_runtime_t runtime, legion_context_t ctx, legion_index_partition_t parent, legion_domain_point_t color, legion_index_partition_t handle)
void legion_index_launcher_set_region_requirement_logical_partition_reduction(legion_index_launcher_t launcher, unsigned idx, legion_logical_partition_t handle, legion_projection_id_t proj, legion_reduction_op_id_t redop, legion_coherence_property_t prop, legion_logical_region_t parent, legion_mapping_tag_id_t tag, bool verified)
legion_region_requirement_t legion_fill_get_requirement(legion_fill_t fill)
void legion_must_epoch_launcher_set_launch_domain(legion_must_epoch_launcher_t launcher, legion_domain_t domain)
legion_index_partition_t legion_index_partition_create_by_restriction(legion_runtime_t runtime, legion_context_t ctx, legion_index_space_t parent, legion_index_space_t color_space, legion_domain_transform_t transform, legion_domain_t extent, legion_partition_kind_t part_kind, legion_color_t color)
#define FROM_RECT(DIM)
Definition c_bindings.h:510
void legion_task_launcher_add_future(legion_task_launcher_t launcher, legion_future_t future)
bool legion_logger_want_error(legion_logger_t handle)
void legion_field_id_retrieve_name(legion_runtime_t runtime, legion_field_space_t handle, legion_field_id_t id, const char **result)
void legion_copy_launcher_set_point(legion_copy_launcher_t launcher, legion_domain_point_t point)
void legion_copy_launcher_add_arrival_barrier(legion_copy_launcher_t launcher, legion_phase_barrier_t bar)
legion_address_space_t legion_memory_address_space(legion_memory_t mem)
void legion_inline_launcher_set_provenance(legion_inline_launcher_t launcher, const char *provenance)
void legion_index_space_attach_name(legion_runtime_t runtime, legion_index_space_t handle, const char *name, bool is_mutable)
void legion_task_variant_registrar_set_execution_constraints(legion_task_variant_registrar_t registrar, legion_execution_constraint_set_t constraints)
legion_privilege_mode_t legion_region_requirement_get_privilege(legion_region_requirement_t handle)
void legion_logger_info(legion_logger_t handle, const char *msg)
void legion_task_set_args(legion_task_mut_t task, void *args)
void legion_memory_query_only_kind(legion_memory_query_t query, legion_memory_kind_t kind)
void legion_processor_query_same_address_space_as_memory(legion_processor_query_t query, legion_memory_t mem)
void legion_runtime_initialize(int *argc, char ***argv, bool filter)
legion_index_partition_t legion_index_partition_create_by_weights_future_map(legion_runtime_t runtime, legion_context_t ctx, legion_index_space_t parent, legion_future_map_t future_map, legion_index_space_t color_space, size_t granularity, legion_color_t color)
legion_logical_region_t legion_region_requirement_get_region(legion_region_requirement_t handle)
legion_mapping_tag_id_t legion_task_get_tag(legion_task_t task)
unsigned legion_copy_launcher_add_src_region_requirement_logical_region(legion_copy_launcher_t launcher, legion_logical_region_t handle, legion_privilege_mode_t priv, legion_coherence_property_t prop, legion_logical_region_t parent, legion_mapping_tag_id_t tag, bool verified)
void legion_map_task_output_task_priority_set(legion_map_task_output_t output, legion_task_priority_t priority)
legion_release_launcher_t legion_release_launcher_create(legion_logical_region_t logical_region, legion_logical_region_t parent_region, legion_predicate_t pred, legion_mapper_id_t id, legion_mapping_tag_id_t tag)
void legion_argument_map_set_future(legion_argument_map_t map, legion_domain_point_t dp, legion_future_t future, bool replace)
bool legion_index_space_retrieve_semantic_information(legion_runtime_t runtime, legion_index_space_t handle, legion_semantic_tag_t tag, const void **result, size_t *size, bool can_fail, bool wait_until_ready)
legion_index_partition_t legion_index_space_get_parent_index_partition(legion_runtime_t runtime, legion_index_space_t handle)
legion_index_partition_t legion_index_partition_create_by_difference(legion_runtime_t runtime, legion_context_t ctx, legion_index_space_t parent, legion_index_partition_t handle1, legion_index_partition_t handle2, legion_index_space_t color_space, legion_partition_kind_t part_kind, legion_color_t color)
void legion_index_copy_launcher_set_possible_src_indirect_out_of_range(legion_index_copy_launcher_t launcher, bool flag)
void legion_task_launcher_set_sharding_space(legion_task_launcher_t launcher, legion_index_space_t is)
void legion_runtime_print_once_fd(legion_runtime_t runtime, legion_context_t ctx, int fd, const char *mode, const char *message)
void legion_acquire_launcher_set_sharding_space(legion_acquire_launcher_t launcher, legion_index_space_t space)
void legion_dynamic_collective_destroy(legion_runtime_t runtime, legion_context_t ctx, legion_dynamic_collective_t handle)
legion_physical_region_t legion_get_physical_region_by_id(legion_physical_region_t *regionptr, int id, int num_regions)
void legion_index_space_destroy(legion_runtime_t runtime, legion_context_t ctx, legion_index_space_t handle)
legion_field_space_t legion_field_space_create(legion_runtime_t runtime, legion_context_t ctx)
void legion_execution_constraint_set_destroy(legion_execution_constraint_set_t handle)
void legion_processor_query_best_affinity_to_memory(legion_processor_query_t query, legion_memory_t mem, int bandwidth_weight, int latency_weight)
bool legion_mapper_runtime_acquire_instance(legion_mapper_runtime_t runtime, legion_mapper_context_t ctx, legion_physical_instance_t instance)
legion_index_space_t legion_index_partition_get_index_subspace_domain_point(legion_runtime_t runtime, legion_index_partition_t handle, legion_domain_point_t color)
size_t legion_machine_get_all_processors_size(legion_machine_t machine)
bool legion_index_partition_is_complete(legion_runtime_t runtime, legion_index_partition_t handle)
void legion_task_launcher_set_elide_future_return(legion_task_launcher_t launcher, bool elide_future_return)
legion_index_partition_t legion_index_partition_create_by_preimage(legion_runtime_t runtime, legion_context_t ctx, legion_index_partition_t projection, legion_logical_region_t handle, legion_logical_region_t parent, legion_field_id_t fid, legion_index_space_t color_space, legion_partition_kind_t part_kind, legion_color_t color, legion_mapper_id_t id, legion_mapping_tag_id_t tag, legion_untyped_buffer_t map_arg)
void legion_runtime_fill_field_future(legion_runtime_t runtime, legion_context_t ctx, legion_logical_region_t handle, legion_logical_region_t parent, legion_field_id_t fid, legion_future_t f, legion_predicate_t pred)
unsigned legion_index_copy_launcher_add_src_region_requirement_logical_region(legion_index_copy_launcher_t launcher, legion_logical_region_t handle, legion_projection_id_t proj, legion_privilege_mode_t priv, legion_coherence_property_t prop, legion_logical_region_t parent, legion_mapping_tag_id_t tag, bool verified)
void legion_logger_error(legion_logger_t handle, const char *msg)
void legion_field_space_attach_name(legion_runtime_t runtime, legion_field_space_t handle, const char *name, bool is_mutable)
void legion_map_task_output_target_procs_clear(legion_map_task_output_t output)
void legion_must_epoch_launcher_set_launch_space(legion_must_epoch_launcher_t launcher, legion_index_space_t is)
void legion_processor_query_destroy(legion_processor_query_t handle)
void legion_index_fill_launcher_set_provenance(legion_index_fill_launcher_t launcher, const char *provenance)
legion_future_t legion_future_map_reduce(legion_runtime_t runtime, legion_context_t ctx, legion_future_map_t handle, legion_reduction_op_id_t redop, bool deterministic, legion_mapper_id_t map_id, legion_mapping_tag_id_t tag)
bool legion_logger_want_fatal(legion_logger_t handle)
bool legion_physical_region_is_valid(legion_physical_region_t handle)
bool legion_mapper_runtime_find_or_create_physical_instance_layout_constraint_id(legion_mapper_runtime_t runtime, legion_mapper_context_t ctx, legion_memory_t target_memory, legion_layout_constraint_id_t layout_id, const legion_logical_region_t *regions, size_t regions_size, legion_physical_instance_t *result, bool *created, bool acquire, legion_garbage_collection_priority_t priority, bool tight_region_bounds)
void legion_task_launcher_add_flags(legion_task_launcher_t launcher, unsigned idx, enum legion_region_flags_t flags)
legion_logical_partition_t legion_output_requirement_get_partition(legion_output_requirement_t handle)
void legion_multi_domain_point_coloring_destroy(legion_multi_domain_point_coloring_t handle)
bool legion_logical_region_retrieve_semantic_information(legion_runtime_t runtime, legion_logical_region_t handle, legion_semantic_tag_t tag, const void **result, size_t *size, bool can_fail, bool wait_until_ready)
legion_future_t legion_runtime_select_tunable_value(legion_runtime_t runtime, legion_context_t ctx, legion_tunable_id_t tid, legion_mapper_id_t mapper, legion_mapping_tag_id_t tag)
unsigned legion_task_get_regions_size(legion_task_t task)
bool legion_task_id_retrieve_semantic_information(legion_runtime_t runtime, legion_task_id_t task_id, legion_semantic_tag_t tag, const void **result, size_t *size, bool can_fail, bool wait_until_ready)
void legion_must_epoch_launcher_destroy(legion_must_epoch_launcher_t handle)
void legion_physical_region_wait_until_valid(legion_physical_region_t handle)
void legion_attach_launcher_destroy(legion_attach_launcher_t handle)
legion_index_launcher_t legion_index_launcher_create(legion_task_id_t tid, legion_domain_t domain, legion_untyped_buffer_t global_arg, legion_argument_map_t map, legion_predicate_t pred, bool must, legion_mapper_id_t id, legion_mapping_tag_id_t tag)
legion_argument_map_t legion_argument_map_create(void)
legion_shard_id_t legion_runtime_local_shard(legion_runtime_t runtime, legion_context_t ctx)
#define FROM_POINT(DIM)
Definition c_bindings.h:579
void legion_task_launcher_destroy(legion_task_launcher_t handle)
void legion_execution_constraint_set_add_launch_constraint(legion_execution_constraint_set_t handle, legion_launch_constraint_t kind, size_t value)
legion_dynamic_collective_t legion_dynamic_collective_advance(legion_runtime_t runtime, legion_context_t ctx, legion_dynamic_collective_t handle)
legion_domain_point_t legion_domain_point_safe_cast(legion_runtime_t runtime, legion_context_t ctx, legion_domain_point_t point, legion_logical_region_t region)
size_t legion_processor_query_count(legion_processor_query_t query)
#define ACCESSOR_ARRAY(DIM)
Definition c_bindings.h:4353
bool legion_mapper_runtime_find_physical_instance_layout_constraint(legion_mapper_runtime_t runtime, legion_mapper_context_t ctx, legion_memory_t target_memory, legion_layout_constraint_set_t constraints, const legion_logical_region_t *regions, size_t regions_size, legion_physical_instance_t *result, bool acquire, bool tight_region_bounds)
bool legion_mapper_runtime_find_physical_instance_layout_constraint_id(legion_mapper_runtime_t runtime, legion_mapper_context_t ctx, legion_memory_t target_memory, legion_layout_constraint_id_t layout_id, const legion_logical_region_t *regions, size_t regions_size, legion_physical_instance_t *result, bool acquire, bool tight_region_bounds)
legion_runtime_t legion_runtime_get_runtime(void)
void legion_physical_region_destroy(legion_physical_region_t handle)
void legion_runtime_index_fill_field(legion_runtime_t runtime, legion_context_t ctx, legion_logical_partition_t handle, legion_logical_region_t parent, legion_field_id_t fid, const void *value, size_t value_size, legion_projection_id_t proj, legion_predicate_t pred, legion_mapper_id_t id, legion_mapping_tag_id_t launcher_tag)
void legion_layout_constraint_set_add_alignment_constraint(legion_layout_constraint_set_t handle, legion_field_id_t field, legion_equality_kind_t eq, size_t byte_boundary)
legion_index_partition_t legion_index_partition_create_by_field(legion_runtime_t runtime, legion_context_t ctx, legion_logical_region_t handle, legion_logical_region_t parent, legion_field_id_t fid, legion_index_space_t color_space, legion_color_t color, legion_mapper_id_t id, legion_mapping_tag_id_t tag, legion_partition_kind_t part_kind, legion_untyped_buffer_t map_arg)
void legion_future_map_wait_all_results(legion_future_map_t handle)
legion_domain_t legion_domain_empty(unsigned dim)
void legion_index_launcher_set_elide_future_return(legion_index_launcher_t launcher, bool elide_future_return)
void legion_memory_query_best_affinity_to_processor(legion_memory_query_t query, legion_processor_t proc, int bandwidth_weight, int latency_weight)
void legion_index_launcher_set_region_requirement_logical_region_reduction(legion_index_launcher_t launcher, unsigned idx, legion_logical_region_t handle, legion_projection_id_t proj, legion_reduction_op_id_t redop, legion_coherence_property_t prop, legion_logical_region_t parent, legion_mapping_tag_id_t tag, bool verified)
void legion_execution_constraint_set_add_colocation_constraint(legion_execution_constraint_set_t handle, const unsigned *indexes, size_t num_indexes, const legion_field_id_t *fields, size_t num_fields)
void legion_multi_domain_point_coloring_color_domain(legion_multi_domain_point_coloring_t handle, legion_domain_point_t color, legion_domain_t domain)
unsigned legion_index_copy_launcher_add_dst_indirect_region_requirement_logical_partition(legion_index_copy_launcher_t launcher, legion_logical_partition_t handle, legion_projection_id_t proj, legion_field_id_t fid, legion_coherence_property_t prop, legion_logical_region_t parent, legion_mapping_tag_id_t tag, bool is_range_indirection, bool verified)
void legion_logical_region_retrieve_name(legion_runtime_t runtime, legion_logical_region_t handle, const char **result)
legion_future_t legion_issue_timing_op_seconds(legion_runtime_t runtime, legion_context_t ctx)
void legion_index_copy_launcher_set_mapper_arg(legion_index_copy_launcher_t launcher, legion_untyped_buffer_t arg)
void legion_release_launcher_add_arrival_barrier(legion_release_launcher_t launcher, legion_phase_barrier_t bar)
void legion_copy_launcher_add_wait_barrier(legion_copy_launcher_t launcher, legion_phase_barrier_t bar)
void legion_task_launcher_set_mapper_arg(legion_task_launcher_t launcher, legion_untyped_buffer_t arg)
legion_logical_region_t legion_output_requirement_get_parent(legion_output_requirement_t handle)
void legion_future_destroy(legion_future_t handle)
void legion_task_launcher_add_arrival_barrier(legion_task_launcher_t launcher, legion_phase_barrier_t bar)
void legion_runtime_register_projection_functor_mappable(legion_runtime_t runtime, legion_projection_id_t id, bool exclusive, unsigned depth, legion_projection_functor_logical_region_mappable_t region_functor, legion_projection_functor_logical_partition_mappable_t partition_functor)
legion_logical_region_t legion_output_requirement_get_region(legion_output_requirement_t handle)
void legion_runtime_register_projection_functor_args(legion_runtime_t runtime, legion_projection_id_t id, bool exclusive, unsigned depth, legion_projection_functor_logical_region_t region_functor, legion_projection_functor_logical_partition_t partition_functor)
legion_future_t legion_index_launcher_execute_reduction_and_outputs(legion_runtime_t runtime, legion_context_t ctx, legion_index_launcher_t launcher, legion_reduction_op_id_t redop, bool deterministic, legion_output_requirement_t *reqs, size_t reqs_size)
void legion_task_launcher_set_region_requirement_logical_region_reduction(legion_task_launcher_t launcher, unsigned idx, legion_logical_region_t handle, legion_reduction_op_id_t redop, legion_coherence_property_t prop, legion_logical_region_t parent, legion_mapping_tag_id_t tag, bool verified)
legion_processor_t legion_runtime_get_executing_processor(legion_runtime_t runtime, legion_context_t ctx)
void legion_index_launcher_add_flags(legion_index_launcher_t launcher, unsigned idx, enum legion_region_flags_t flags)
legion_task_layout_constraint_set_t legion_task_layout_constraint_set_create(void)
legion_logical_partition_t legion_logical_partition_create(legion_runtime_t runtime, legion_logical_region_t parent, legion_index_partition_t handle)
void legion_reset_equivalence_sets(legion_runtime_t runtime, legion_context_t ctx, legion_logical_region_t parent, legion_logical_region_t region, int num_fields, legion_field_id_t *fields)
legion_processor_query_t legion_processor_query_create_copy(legion_processor_query_t query)
bool legion_mapper_runtime_acquire_instances(legion_mapper_runtime_t runtime, legion_mapper_context_t ctx, legion_physical_instance_t *instances, size_t instances_size)
void legion_index_space_retrieve_name(legion_runtime_t runtime, legion_index_space_t handle, const char **result)
void legion_layout_constraint_set_release(legion_runtime_t runtime, legion_layout_constraint_id_t handle)
legion_physical_region_t legion_runtime_attach_hdf5(legion_runtime_t runtime, legion_context_t ctx, const char *filename, legion_logical_region_t handle, legion_logical_region_t parent, legion_field_map_t field_map, legion_file_mode_t mode)
void legion_acquire_launcher_add_wait_barrier(legion_acquire_launcher_t launcher, legion_phase_barrier_t bar)
legion_unique_id_t legion_context_get_unique_id(legion_context_t ctx)
legion_index_attach_launcher_t legion_index_attach_launcher_create(legion_logical_region_t parent_region, legion_external_resource_t resource, bool restricted)
bool legion_domain_point_is_null(legion_domain_point_t point)
const legion_predicate_t legion_predicate_true(void)
legion_context_t legion_runtime_get_context(void)
void legion_index_launcher_set_projection_args(legion_index_launcher_t launcher_, unsigned idx, const void *args, size_t size, bool own)
bool legion_field_id_retrieve_semantic_information(legion_runtime_t runtime, legion_field_space_t handle, legion_field_id_t id, legion_semantic_tag_t tag, const void **result, size_t *size, bool can_fail, bool wait_until_ready)
legion_index_fill_launcher_t legion_index_fill_launcher_create_from_future_with_space(legion_index_space_t space, legion_logical_partition_t handle, legion_logical_region_t parent, legion_field_id_t fid, legion_future_t future, legion_projection_id_t proj, legion_predicate_t pred, legion_mapper_id_t id, legion_mapping_tag_id_t launcher_tag)
legion_index_space_t legion_index_partition_get_parent_index_space(legion_runtime_t runtime, legion_index_partition_t handle)
legion_multi_domain_point_coloring_t legion_multi_domain_point_coloring_create(void)
legion_memory_query_t legion_memory_query_create_copy(legion_memory_query_t query)
legion_color_t legion_index_partition_get_color(legion_runtime_t runtime, legion_index_partition_t handle)
void legion_field_allocator_free_field_unordered(legion_field_allocator_t allocator, legion_field_id_t fid, bool unordered)
legion_domain_point_iterator_t legion_domain_point_iterator_create(legion_domain_t handle)
void legion_release_launcher_set_mapper_arg(legion_release_launcher_t launcher, legion_untyped_buffer_t arg)
legion_memory_t legion_memory_query_first(legion_memory_query_t query)
void legion_coloring_destroy(legion_coloring_t handle)
void legion_logical_partition_attach_name(legion_runtime_t runtime, legion_logical_partition_t handle, const char *name, bool is_mutable)
void legion_index_space_attach_semantic_information(legion_runtime_t runtime, legion_index_space_t handle, legion_semantic_tag_t tag, const void *buffer, size_t size, bool is_mutable)
void legion_logical_partition_retrieve_name(legion_runtime_t runtime, legion_logical_partition_t handle, const char **result)
void legion_point_coloring_add_point(legion_point_coloring_t handle, legion_domain_point_t color, legion_ptr_t point)
void legion_index_attach_launcher_attach_array_aos(legion_index_attach_launcher_t handle, legion_logical_region_t region, void *base_ptr, bool column_major, const legion_field_id_t *fields, size_t num_fields, legion_memory_t memory)
void legion_runtime_preregister_projection_functor(legion_projection_id_t id, bool exclusive, unsigned depth, legion_projection_functor_logical_region_t region_functor, legion_projection_functor_logical_partition_t partition_functor)
bool legion_future_is_ready(legion_future_t handle)
unsigned long long legion_get_current_time_in_nanos(void)
void legion_release_launcher_set_sharding_space(legion_release_launcher_t launcher, legion_index_space_t space)
legion_index_partition_t legion_index_partition_create_by_domain_future_map(legion_runtime_t runtime, legion_context_t ctx, legion_index_space_t parent, legion_future_map_t future_map, legion_index_space_t color_space, bool perform_intersections, legion_partition_kind_t part_kind, legion_color_t color)
size_t legion_physical_region_get_memory_count(legion_physical_region_t handle)
void legion_task_destroy(legion_task_mut_t handle)
legion_inline_t legion_mappable_as_inline_mapping(legion_mappable_t mappable)
void legion_task_launcher_set_local_function_task(legion_task_launcher_t launcher, bool local_function_task)
void legion_predicate_destroy(legion_predicate_t handle)
void legion_index_launcher_add_wait_barrier(legion_index_launcher_t launcher, legion_phase_barrier_t bar)
legion_future_t legion_issue_timing_op_nanoseconds(legion_runtime_t runtime, legion_context_t ctx)
void legion_coloring_ensure_color(legion_coloring_t handle, legion_color_t color)
legion_reduction_op_id_t legion_region_requirement_get_redop(legion_region_requirement_t handle)
bool legion_runtime_has_runtime(void)
legion_processor_kind_t legion_processor_kind(legion_processor_t proc)
void legion_task_variant_registrar_set_options(legion_task_variant_registrar_t registrar, legion_task_config_options_t options)
void legion_attach_launcher_attach_hdf5(legion_attach_launcher_t handle, const char *filename, legion_field_map_t field_map, legion_file_mode_t mode)
void legion_map_task_output_chosen_instances_clear_each(legion_map_task_output_t output, size_t idx)
void legion_fill_launcher_set_mapper_arg(legion_fill_launcher_t launcher, legion_untyped_buffer_t arg)
void legion_copy_launcher_execute(legion_runtime_t runtime, legion_context_t ctx, legion_copy_launcher_t launcher)
void legion_discard_launcher_set_provenance(legion_discard_launcher_t launcher, const char *provenance)
void legion_execution_constraint_set_add_isa_constraint(legion_execution_constraint_set_t handle, uint64_t prop)
unsigned legion_index_copy_launcher_add_dst_region_requirement_logical_region(legion_index_copy_launcher_t launcher, legion_logical_region_t handle, legion_projection_id_t proj, legion_privilege_mode_t priv, legion_coherence_property_t prop, legion_logical_region_t parent, legion_mapping_tag_id_t tag, bool verified)
legion_future_t legion_unordered_detach_external_resource(legion_runtime_t runtime, legion_context_t ctx, legion_physical_region_t handle, bool flush, bool unordered)
bool legion_logical_partition_retrieve_semantic_information(legion_runtime_t runtime, legion_logical_partition_t handle, legion_semantic_tag_t tag, const void **result, size_t *size, bool can_fail, bool wait_until_ready)
legion_index_partition_t legion_index_partition_create_pending_partition(legion_runtime_t runtime, legion_context_t ctx, legion_index_space_t parent, legion_index_space_t color_space, legion_partition_kind_t part_kind, legion_color_t color)
bool legion_runtime_has_context(void)
void legion_region_requirement_destroy(legion_region_requirement_t handle)
bool legion_domain_point_iterator_has_next(legion_domain_point_iterator_t handle)
legion_index_space_t legion_index_space_union(legion_runtime_t runtime, legion_context_t ctx, const legion_index_space_t *spaces, size_t num_spaces)
void legion_attach_launcher_set_footprint(legion_attach_launcher_t launcher, size_t footprint)
legion_logical_region_t legion_logical_partition_get_logical_subregion(legion_runtime_t runtime, legion_logical_partition_t parent, legion_index_space_t handle)
legion_future_t legion_index_launcher_execute_reduction(legion_runtime_t runtime, legion_context_t ctx, legion_index_launcher_t launcher, legion_reduction_op_id_t redop)
bool legion_logger_want_warning(legion_logger_t handle)
void legion_task_id_attach_name(legion_runtime_t runtime, legion_task_id_t task_id, const char *name, bool is_mutable)
legion_logical_region_t legion_logical_partition_get_parent_logical_region(legion_runtime_t runtime, legion_logical_partition_t handle)
void legion_inline_launcher_add_field(legion_inline_launcher_t launcher, legion_field_id_t fid, bool inst)
legion_physical_region_t legion_inline_launcher_execute(legion_runtime_t runtime, legion_context_t ctx, legion_inline_launcher_t launcher)
void legion_copy_launcher_set_possible_dst_indirect_out_of_range(legion_copy_launcher_t launcher, bool flag)
legion_physical_region_t legion_physical_region_copy(legion_physical_region_t handle)
legion_reduction_op_id_t legion_runtime_generate_library_reduction_ids(legion_runtime_t runtime, const char *library_name, size_t count)
void(* legion_registration_callback_pointer_t)(legion_machine_t, legion_runtime_t, const legion_processor_t *, unsigned)
Definition c_bindings.h:406
void legion_runtime_unmap_region(legion_runtime_t runtime, legion_context_t ctx, legion_physical_region_t region)
void legion_task_launcher_set_predicate_false_result(legion_task_launcher_t launcher, legion_untyped_buffer_t arg)
void legion_layout_constraint_set_add_ordering_constraint(legion_layout_constraint_set_t handle, const legion_dimension_kind_t *dims, size_t num_dims, bool contiguous)
void legion_discard_launcher_destroy(legion_discard_launcher_t handle)
legion_processor_t legion_processor_query_next(legion_processor_query_t query, legion_processor_t after)
void legion_logical_region_create_shared_ownership(legion_runtime_t runtime, legion_context_t ctx, legion_logical_region_t handle)
size_t legion_task_get_local_arglen(legion_task_t task)
legion_index_copy_launcher_t legion_index_copy_launcher_create(legion_domain_t domain, legion_predicate_t pred, legion_mapper_id_t id, legion_mapping_tag_id_t launcher_tag)
bool legion_logger_want_debug(legion_logger_t handle)
const void * legion_future_get_untyped_pointer(legion_future_t handle)
legion_region_requirement_t legion_region_requirement_create_logical_region_projection(legion_logical_region_t handle, legion_projection_id_t proj, legion_privilege_mode_t priv, legion_coherence_property_t prop, legion_logical_region_t parent, legion_mapping_tag_id_t tag, bool verified)
void legion_index_launcher_set_sharding_space(legion_index_launcher_t launcher, legion_index_space_t is)
legion_task_launcher_t legion_task_launcher_create(legion_task_id_t tid, legion_untyped_buffer_t arg, legion_predicate_t pred, legion_mapper_id_t id, legion_mapping_tag_id_t tag)
void legion_phase_barrier_arrive(legion_runtime_t runtime, legion_context_t ctx, legion_phase_barrier_t handle, unsigned count)
#define CREATE_BLOCKIFY(DIM)
Definition c_bindings.h:1088
legion_projection_id_t legion_runtime_generate_static_projection_id()
const void * legion_index_launcher_get_projection_args(legion_region_requirement_t requirement, size_t *size)
void legion_copy_launcher_set_sharding_space(legion_copy_launcher_t launcher, legion_index_space_t space)
void legion_phase_barrier_destroy(legion_runtime_t runtime, legion_context_t ctx, legion_phase_barrier_t handle)
void legion_coloring_add_point(legion_coloring_t handle, legion_color_t color, legion_ptr_t point)
void legion_field_map_destroy(legion_field_map_t handle)
void legion_acquire_launcher_set_provenance(legion_acquire_launcher_t launcher, const char *provenance)
legion_future_t legion_task_get_future(legion_task_t task, unsigned idx)
void legion_point_coloring_destroy(legion_point_coloring_t handle)
void legion_logger_print(legion_logger_t handle, const char *msg)
unsigned legion_index_launcher_add_region_requirement_logical_region(legion_index_launcher_t launcher, legion_logical_region_t handle, legion_projection_id_t proj, legion_privilege_mode_t priv, legion_coherence_property_t prop, legion_logical_region_t parent, legion_mapping_tag_id_t tag, bool verified)
legion_field_space_t legion_field_space_create_with_fields(legion_runtime_t runtime, legion_context_t ctx, size_t *field_sizes, legion_field_id_t *field_ids, size_t num_fields, legion_custom_serdez_id_t serdez)
legion_future_t legion_issue_timing_op_microseconds(legion_runtime_t runtime, legion_context_t ctx)
unsigned legion_copy_launcher_add_dst_indirect_region_requirement_logical_region(legion_copy_launcher_t launcher, legion_logical_region_t handle, legion_field_id_t fid, legion_coherence_property_t prop, legion_logical_region_t parent, legion_mapping_tag_id_t tag, bool is_range_indirection, bool verified)
unsigned legion_index_copy_launcher_add_src_indirect_region_requirement_logical_region(legion_index_copy_launcher_t launcher, legion_logical_region_t handle, legion_projection_id_t proj, legion_field_id_t fid, legion_coherence_property_t prop, legion_logical_region_t parent, legion_mapping_tag_id_t tag, bool is_range_indirection, bool verified)
legion_future_map_t legion_future_map_construct_from_futures(legion_runtime_t runtime, legion_context_t ctx, legion_domain_t domain, legion_domain_point_t *points, legion_future_t *futures, size_t num_futures, bool collective, legion_sharding_id_t sid, bool implicit_sharding)
void legion_index_fill_launcher_execute(legion_runtime_t runtime, legion_context_t ctx, legion_index_fill_launcher_t launcher)
legion_future_t legion_task_launcher_execute(legion_runtime_t runtime, legion_context_t ctx, legion_task_launcher_t launcher)
void legion_coloring_add_range(legion_coloring_t handle, legion_color_t color, legion_ptr_t start, legion_ptr_t end)
void legion_index_partition_create_shared_ownership(legion_runtime_t runtime, legion_context_t ctx, legion_index_partition_t handle)
legion_logical_region_t(* legion_projection_functor_logical_partition_mappable_t)(legion_runtime_t, legion_mappable_t, unsigned, legion_logical_partition_t, legion_domain_point_t)
Definition c_bindings.h:471
void legion_field_allocator_destroy(legion_field_allocator_t handle)
void legion_runtime_set_return_code(int return_code)
legion_logical_region_t(* legion_projection_functor_logical_region_mappable_t)(legion_runtime_t, legion_mappable_t, unsigned, legion_logical_region_t, legion_domain_point_t)
Definition c_bindings.h:461
legion_future_t legion_index_launcher_execute_deterministic_reduction(legion_runtime_t runtime, legion_context_t ctx, legion_index_launcher_t launcher, legion_reduction_op_id_t redop, bool deterministic)
void legion_memory_query_local_address_space(legion_memory_query_t query)
void legion_argument_map_set_point(legion_argument_map_t map, legion_domain_point_t dp, legion_untyped_buffer_t arg, bool replace)
void legion_task_launcher_add_field(legion_task_launcher_t launcher, unsigned idx, legion_field_id_t fid, bool inst)
Definition c_bindings.h:316
Definition c_bindings.h:257
Definition c_bindings.h:211
Definition c_bindings.h:172
Definition c_bindings.h:219
Definition c_bindings.h:375
Definition c_bindings.h:283
Definition c_bindings.h:274
Definition c_bindings.h:265
Definition c_bindings.h:323
Definition c_bindings.h:299
Definition c_bindings.h:290
Definition c_bindings.h:348
Definition c_bindings.h:365
Definition c_bindings.h:341
Definition c_bindings.h:126
Definition c_bindings.h:399
Definition c_bindings.h:331
Definition c_bindings.h:388
Definition c_bindings.h:355
Definition c_bindings.h:308