Realm
A distributed, event-based tasking library
Loading...
Searching...
No Matches
realm_c.h File Reference
#include "realm/realm_config.h"
#include <stddef.h>
#include <stdint.h>
Include dependency graph for realm_c.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  realm_external_cuda_memory_resource_st
 
struct  realm_external_system_memory_resource_st
 
struct  realm_external_resource_st
 
struct  realm_index_space_t
 
struct  realm_region_instance_create_params_t
 
struct  realm_copy_src_dst_field_t
 
struct  realm_region_instance_copy_params_t
 
struct  realm_region_instance_attr_value_t
 
struct  realm_affinity_details_t
 

Macros

#define REALM_EXPORT   REALM_PUBLIC_API
 
#define REALM_FNPTR
 
#define IDFMT   "%llx"
 
#define REALM_NO_PROC   ((realm_processor_t)0ULL)
 
#define REALM_NO_MEM   ((realm_memory_t)0ULL)
 
#define REALM_NO_EVENT   ((realm_event_t)0ULL)
 
#define REALM_NO_USER_EVENT   ((realm_user_event_t)0ULL)
 
#define REALM_NO_INST   ((realm_region_instance_t)0ULL)
 
#define REALM_TASK_ID_PROCESSOR_NOP   ((realm_task_func_id_t)0U)
 
#define REALM_TASK_ID_PROCESSOR_INIT   ((realm_task_func_id_t)1U)
 
#define REALM_TASK_ID_PROCESSOR_SHUTDOWN   ((realm_task_func_id_t)2U)
 
#define REALM_TASK_ID_FIRST_AVAILABLE   ((realm_task_func_id_t)4U)
 
#define REALM_WAIT_INFINITE   ((int64_t)INT64_MIN)
 
#define REALM_PROCESSOR_KINDS(__op__)
 
#define C_ENUMS(name, desc)   name,
 
#define REALM_MEMORY_KINDS(__op__)
 
#define C_ENUMS(name, desc)   name,
 

Typedefs

typedef struct realm_runtime_st * realm_runtime_t
 
typedef struct realm_profiling_request_set_st * realm_profiling_request_set_t
 
typedef struct realm_processor_query_st * realm_processor_query_t
 
typedef struct realm_memory_query_st * realm_memory_query_t
 
typedef struct realm_sparsity_handle_st * realm_sparsity_handle_t
 
typedef unsigned long long realm_id_t
 
typedef realm_id_t realm_event_t
 
typedef realm_id_t realm_user_event_t
 
typedef realm_id_t realm_processor_t
 
typedef realm_id_t realm_memory_t
 
typedef realm_id_t realm_region_instance_t
 
typedef unsigned int realm_address_space_t
 
typedef unsigned realm_task_func_id_t
 
typedef int realm_reduction_op_id_t
 
typedef int realm_custom_serdez_id_t
 
typedef unsigned realm_event_gen_t
 
typedef int realm_field_id_t
 
typedef unsigned long long realm_barrier_timestamp_t
 
typedef enum realm_external_resource_type_enum realm_external_resource_type_t
 
typedef struct realm_external_cuda_memory_resource_st realm_external_cuda_memory_resource_t
 
typedef struct realm_external_system_memory_resource_st realm_external_system_memory_resource_t
 
typedef struct realm_external_resource_st realm_external_resource_t
 
typedef void * realm_coord_t
 
typedef enum realm_coord_type_enum realm_coord_type_t
 
typedef struct realm_index_space_t realm_index_space_t
 
typedef struct realm_region_instance_create_params_t realm_region_instance_create_params_t
 
typedef struct realm_copy_src_dst_field_t realm_copy_src_dst_field_t
 
typedef struct realm_region_instance_copy_params_t realm_region_instance_copy_params_t
 
typedef enum realm_register_task_flags realm_register_task_flags_t
 
typedef enum realm_processor_attr_enum realm_processor_attr_t
 
typedef enum realm_memory_attr_enum realm_memory_attr_t
 
typedef enum realm_runtime_attr_enum realm_runtime_attr_t
 
typedef enum realm_region_instance_attr_enum realm_region_instance_attr_t
 
typedef struct realm_region_instance_attr_value_t realm_region_instance_attr_value_t
 
typedef enum realm_processor_kind_t realm_processor_kind_t
 
typedef enum realm_memory_kind_t realm_memory_kind_t
 
typedef enum realm_file_mode_t realm_file_mode_t
 
typedef struct realm_affinity_details_t realm_affinity_details_t
 
typedef void(REALM_FNPTRrealm_task_pointer_t) (const void *, size_t, const void *, size_t, realm_processor_t)
 
typedef enum realm_status_enum realm_status_t
 
typedef realm_status_t RealmStatus
 
typedef realm_status_t(REALM_FNPTRrealm_processor_query_cb_t) (realm_processor_t, void *)
 
typedef realm_status_t(REALM_FNPTRrealm_memory_query_cb_t) (realm_memory_t, void *)
 

Enumerations

enum  realm_external_resource_type_enum { REALM_EXTERNAL_RESOURCE_TYPE_CUDA_MEMORY = 0 , REALM_EXTERNAL_RESOURCE_TYPE_SYSTEM_MEMORY , REALM_EXTERNAL_RESOURCE_TYPE_NUM , REALM_EXTERNAL_RESOURCE_TYPE_MAX = 0x7fffffffULL }
 
enum  realm_coord_type_enum { REALM_COORD_TYPE_LONG_LONG = 0 , REALM_COORD_TYPE_INT , REALM_COORD_TYPE_NUM , REALM_COORD_TYPE_MAX = 0x7fffffffULL }
 
enum  realm_register_task_flags { REALM_REGISTER_TASK_DEFAULT = 0x0ULL , REALM_REGISTER_TASK_GLOBAL = 0x1ULL , REALM_REGISTER_TASK_NUM , REALM_REGISTER_TASK_MAX = 0x7fffffffULL }
 
enum  realm_processor_attr_enum { REALM_PROCESSOR_ATTR_KIND = 0x0ULL , REALM_PROCESSOR_ATTR_ADDRESS_SPACE , REALM_PROCESSOR_ATTR_NUM , REALM_PROCESSOR_ATTR_MAX = 0xFFFFFFFFFFFFFFFFULL }
 
enum  realm_memory_attr_enum {
  REALM_MEMORY_ATTR_KIND = 0x0ULL , REALM_MEMORY_ATTR_ADDRESS_SPACE , REALM_MEMORY_ATTR_CAPACITY , REALM_MEMORY_ATTR_NUM ,
  REALM_MEMORY_ATTR_MAX = 0xFFFFFFFFFFFFFFFFULL
}
 
enum  realm_runtime_attr_enum { REALM_RUNTIME_ATTR_ADDRESS_SPACE = 0x0ULL , REALM_RUNTIME_ATTR_LOCAL_ADDRESS_SPACE , REALM_RUNTIME_ATTR_NUM , REALM_RUNTIME_ATTR_MAX = 0xFFFFFFFFFFFFFFFFULL }
 
enum  realm_region_instance_attr_enum { REALM_REGION_INSTANCE_ATTR_MEMORY = 0x0ULL , REALM_REGION_INSTANCE_ATTR_NUM , REALM_REGION_INSTANCE_ATTR_MAX = 0xFFFFFFFFFFFFFFFFULL }
 
enum  realm_processor_kind_t
 
enum  realm_memory_kind_t
 
enum  realm_file_mode_t {
  REALM_FILE_READ_ONLY , REALM_FILE_READ_WRITE , REALM_FILE_CREATE , LEGION_FILE_READ_ONLY = REALM_FILE_READ_ONLY ,
  LEGION_FILE_READ_WRITE = REALM_FILE_READ_WRITE , LEGION_FILE_CREATE = REALM_FILE_CREATE
}
 
enum  realm_status_enum {
  REALM_SUCCESS = 0 , REALM_ERROR = -1 , REALM_ERROR_INVALID_PARAMETER = -2 , REALM_ARGUMENT_ERROR_WITH_EXTRA_FLAGS ,
  REALM_ARGUMENT_ERROR_UNKNOWN_INTEGER = -1001 , REALM_ARGUMENT_ERROR_UNKNOWN_INTEGER_UNIT = -1002 , REALM_ARGUMENT_ERROR_MISSING_INPUT = -1003 , REALM_ARGUMENT_ERROR_OUTPUT_STRING_TOO_SHORT = -1004 ,
  REALM_ARGUMENT_ERROR_METHOD_RETURN_FALSE = -1005 , REALM_TOPOLOGY_ERROR_NO_AFFINITY = -2001 , REALM_TOPOLOGY_ERROR_LINUX_NO_CPU_DIR = -2002 , REALM_TOPOLOGY_ERROR_LINUX_NO_NUMA_DIR = -2003 ,
  REALM_TOPOLOGY_ERROR_HWLOC_INIT_FAILED = -2004 , REALM_TOPOLOGY_ERROR_HWLOC_LOAD_TOPO_FAILED = -2005 , REALM_TOPOLOGY_ERROR_HWLOC_TYPE_DEPTH_UNKNOWN = -2006 , REALM_TOPOLOGY_ERROR_ENV_LOAD_FAILED = -2007 ,
  REALM_TOPOLOGY_ERROR_WIN32_NO_PROC_INFO = -2008 , REALM_RUNTIME_ERROR_INVALID_RUNTIME = -3001 , REALM_RUNTIME_ERROR_NOT_INITIALIZED = -3002 , REALM_RUNTIME_ERROR_INVALID_ATTRIBUTE = -3003 ,
  REALM_RUNTIME_ERROR_INVALID_AFFINITY = -3004 , REALM_MACHINE_ERROR_INVALID_MACHINE = -4001 , REALM_MEMORY_ERROR_INVALID_MEMORY = -5001 , REALM_PROCESSOR_ERROR_INVALID_PROCESSOR = -6001 ,
  REALM_PROCESSOR_ERROR_INVALID_PROCESSOR_KIND = -6002 , REALM_PROCESSOR_ERROR_INVALID_ATTRIBUTE = -6003 , REALM_PROCESSOR_ERROR_INVALID_TASK_FUNCTION = -6004 , REALM_PROCESSOR_ERROR_OUTSIDE_TASK = -6005 ,
  REALM_MEMORY_ERROR_INVALID_MEMORY_KIND = -7001 , REALM_MEMORY_ERROR_INVALID_ATTRIBUTE = -7002 , REALM_EVENT_ERROR_INVALID_EVENT = -8001 , REALM_PROCESSOR_QUERY_ERROR_INVALID_QUERY = -9001 ,
  REALM_PROCESSOR_QUERY_ERROR_INVALID_CALLBACK = -9002 , REALM_MEMORY_QUERY_ERROR_INVALID_QUERY = -10001 , REALM_MEMORY_QUERY_ERROR_INVALID_CALLBACK = -10002 , REALM_ADDRESS_SPACE_INVALID = -11001 ,
  REALM_REGION_INSTANCE_ERROR_INVALID_DIMS = -12001 , REALM_REGION_INSTANCE_ERROR_INVALID_FIELDS = -12002 , REALM_REGION_INSTANCE_ERROR_INVALID_INSTANCE = -12003 , REALM_REGION_INSTANCE_ERROR_INVALID_EVENT = -12004 ,
  REALM_REGION_INSTANCE_ERROR_INVALID_PARAMS = -12005 , REALM_REGION_INSTANCE_ERROR_INVALID_COORD_TYPE = -12006 , REALM_REGION_INSTANCE_ERROR_INVALID_ATTRIBUTE = -12007 , REALM_EXTERNAL_RESOURCE_ERROR_INVALID_RESOURCE = -13001 ,
  REALM_EXTERNAL_RESOURCE_ERROR_INVALID_BASE = -13002 , REALM_EXTERNAL_RESOURCE_ERROR_INVALID_SIZE = -13003 , REALM_EXTERNAL_RESOURCE_ERROR_INVALID_CUDA_DEVICE_ID = -13004 , REALM_EXTERNAL_RESOURCE_ERROR_INVALID_TYPE = -13005 ,
  REALM_EXTERNAL_RESOURCE_ERROR_INVALID_PARAMS = -13006 , REALM_CUDA_ERROR_NOT_ENABLED = -14001 , REALM_MODULE_CONFIG_ERROR_INVALID_NAME = -16001 , REALM_MODULE_CONFIG_ERROR_NO_RESOURCE = -16002
}
 

Functions

realm_status_t REALM_EXPORT realm_get_library_version (const char **version)
 Returns the version of the Realm library.
 
realm_status_t REALM_EXPORT realm_runtime_create (realm_runtime_t *runtime)
 Creates a new Realm runtime instance.
 
realm_status_t REALM_EXPORT realm_runtime_destroy (realm_runtime_t runtime)
 Destroys a Realm runtime instance, please make sure all works are finished and the runtime has been shutdown before destroying the runtime.
 
realm_status_t REALM_EXPORT realm_runtime_get_runtime (realm_runtime_t *runtime)
 Returns the current Realm runtime instance.
 
realm_status_t REALM_EXPORT realm_runtime_init (realm_runtime_t runtime, int *argc, char ***argv)
 Creates and initializes the Realm runtime with command-line arguments.
 
realm_status_t REALM_EXPORT realm_runtime_signal_shutdown (realm_runtime_t runtime, realm_event_t wait_on, int result_code)
 Shuts down the Realm runtime.
 
realm_status_t REALM_EXPORT realm_runtime_wait_for_shutdown (realm_runtime_t runtime)
 Waits for the Realm runtime to shut down.
 
realm_status_t REALM_EXPORT realm_runtime_collective_spawn (realm_runtime_t runtime, realm_processor_t target_proc, realm_task_func_id_t task_id, const void *args, size_t arglen, realm_event_t wait_on, int priority, realm_event_t *event)
 Spawns the task registered by the task id by task_id on the processor given by target_proc. This call has special meaning for multi-process realms as all processes calling this will perform a barrier and a single arbitrary process will be elected to launch the task on the processor. It is undefined if these arguments do not match across all processes calls in a multi-process invocation.
 
realm_status_t REALM_EXPORT realm_runtime_get_attributes (realm_runtime_t runtime, realm_runtime_attr_t *attrs, uint64_t *values, size_t num)
 Returns the attributes of a runtime.
 
realm_status_t REALM_EXPORT realm_runtime_get_memory_memory_affinity (realm_runtime_t runtime, realm_memory_t mem1, realm_memory_t mem2, realm_affinity_details_t *details)
 Checks if two memories have affinity. If there is a affinity, we can do one-hop copy between them.
 
realm_status_t REALM_EXPORT realm_runtime_get_processor_memory_affinity (realm_runtime_t runtime, realm_processor_t proc, realm_memory_t mem, realm_affinity_details_t *details)
 Checks if a processor has affinity to a memory. If there is a affinity, the processor can access the memory directly.
 
realm_status_t REALM_EXPORT realm_processor_register_task_by_kind (realm_runtime_t runtime, realm_processor_kind_t target_kind, realm_register_task_flags_t flags, realm_task_func_id_t task_id, realm_task_pointer_t func, void *user_data, size_t user_data_len, realm_event_t *event)
 Registers a task with all processors whose kind matches that of target_kind.
 
realm_status_t REALM_EXPORT realm_processor_spawn (realm_runtime_t runtime, realm_processor_t target_proc, realm_task_func_id_t task_id, const void *args, size_t arglen, realm_profiling_request_set_t prs, realm_event_t wait_on, int priority, realm_event_t *event)
 Spawns a task on a specific processor.
 
realm_status_t REALM_EXPORT realm_processor_get_attributes (realm_runtime_t runtime, realm_processor_t proc, realm_processor_attr_t *attrs, uint64_t *values, size_t num)
 Returns the attributes of a processor.
 
realm_status_t REALM_EXPORT realm_processor_query_create (realm_runtime_t runtime, realm_processor_query_t *query)
 Creates a new processor query.
 
realm_status_t REALM_EXPORT realm_processor_query_destroy (realm_processor_query_t query)
 Destroys a processor query.
 
realm_status_t REALM_EXPORT realm_processor_query_restrict_to_kind (realm_processor_query_t query, realm_processor_kind_t kind)
 Restricts the processor query to a specific kind.
 
realm_status_t REALM_EXPORT realm_processor_query_restrict_to_address_space (realm_processor_query_t query, realm_address_space_t address_space)
 Restricts the processor query to address space.
 
realm_status_t REALM_EXPORT realm_processor_query_iter (realm_processor_query_t query, realm_processor_query_cb_t cb, void *user_data, size_t max_queries)
 Iterates over the processors in the query.
 
realm_status_t REALM_EXPORT realm_memory_get_attributes (realm_runtime_t runtime, realm_memory_t mem, realm_memory_attr_t *attrs, uint64_t *values, size_t num)
 Returns the attributes of a memory.
 
realm_status_t REALM_EXPORT realm_memory_query_create (realm_runtime_t runtime, realm_memory_query_t *query)
 Creates a new memory query.
 
realm_status_t REALM_EXPORT realm_memory_query_destroy (realm_memory_query_t query)
 Destroys a memory query.
 
realm_status_t REALM_EXPORT realm_memory_query_restrict_to_kind (realm_memory_query_t query, realm_memory_kind_t kind)
 Restricts the memory query to a specific kind.
 
realm_status_t REALM_EXPORT realm_memory_query_restrict_to_address_space (realm_memory_query_t query, realm_address_space_t address_space)
 Restricts the memory query to address space.
 
realm_status_t REALM_EXPORT realm_memory_query_restrict_by_capacity (realm_memory_query_t query, size_t min_bytes)
 Restricts the memory query to a minimum capacity.
 
realm_status_t REALM_EXPORT realm_memory_query_iter (realm_memory_query_t query, realm_memory_query_cb_t cb, void *user_data, size_t max_queries)
 Iterates over the memories in the query.
 
realm_status_t REALM_EXPORT realm_event_wait (realm_runtime_t runtime, realm_event_t event, int64_t max_ns, int *poisoned)
 Waits for a specific event to complete.
 
realm_status_t REALM_EXPORT realm_event_merge (realm_runtime_t runtime, const realm_event_t *wait_for, size_t num_events, realm_event_t *event, int ignore_faults)
 Merges multiple events into a single event.
 
realm_status_t REALM_EXPORT realm_event_has_triggered (realm_runtime_t runtime, realm_event_t event, int *has_triggered, int *poisoned)
 Checks if an event has triggered.
 
realm_status_t REALM_EXPORT realm_user_event_create (realm_runtime_t runtime, realm_user_event_t *event)
 Creates a new user event.
 
realm_status_t REALM_EXPORT realm_user_event_trigger (realm_runtime_t runtime, realm_user_event_t event, realm_event_t wait_on, int ignore_faults)
 Triggers a user event.
 
realm_status_t REALM_EXPORT realm_region_instance_create (realm_runtime_t runtime, const realm_region_instance_create_params_t *instance_creation_params, realm_profiling_request_set_t prs, realm_event_t wait_on, realm_region_instance_t *instance, realm_event_t *event)
 Creates a new region instance.
 
realm_status_t REALM_EXPORT realm_region_instance_copy (realm_runtime_t runtime, const realm_region_instance_copy_params_t *instance_copy_params, realm_profiling_request_set_t prs, realm_event_t wait_on, int priority, realm_event_t *event)
 Copies data between region instances.
 
realm_status_t REALM_EXPORT realm_region_instance_destroy (realm_runtime_t runtime, realm_region_instance_t instance, realm_event_t wait_on)
 Destroys a region instance.
 
realm_status_t REALM_EXPORT realm_region_instance_fetch_metadata (realm_runtime_t runtime, realm_region_instance_t instance, realm_processor_t target, realm_event_t *event)
 Fetches the metadata of a region instance.
 
realm_status_t REALM_EXPORT realm_region_instance_get_attributes (realm_runtime_t runtime, realm_region_instance_t instance, realm_region_instance_attr_t *attrs, realm_region_instance_attr_value_t *values, size_t num)
 Gets the attributes of a region instance.
 
realm_status_t REALM_EXPORT realm_region_instance_generate_external_resource_info (realm_runtime_t runtime, realm_region_instance_t instance, const realm_index_space_t *index_space, const realm_field_id_t *field_ids, size_t num_fields, int read_only, realm_external_resource_t *external_resource)
 Generates an external instance resource info for a region instance.
 
realm_status_t REALM_EXPORT realm_external_resource_suggested_memory (realm_runtime_t runtime, const realm_external_resource_t *external_resource, realm_memory_t *memory)
 Gets the suggested memory for an external instance resource.
 

Macro Definition Documentation

◆ C_ENUMS [1/2]

#define C_ENUMS (   name,
  desc 
)    name,

◆ C_ENUMS [2/2]

#define C_ENUMS (   name,
  desc 
)    name,

◆ IDFMT

#define IDFMT   "%llx"

◆ REALM_EXPORT

#define REALM_EXPORT   REALM_PUBLIC_API

◆ REALM_FNPTR

#define REALM_FNPTR

◆ REALM_MEMORY_KINDS

#define REALM_MEMORY_KINDS (   __op__)
Value:
__op__(NO_MEMKIND, "") \
__op__(GLOBAL_MEM, "Guaranteed visible to all processors on all nodes (e.g. GASNet memory, universally slow)") \
__op__(SYSTEM_MEM, "Visible to all processors on a node") \
__op__(REGDMA_MEM, "Registered memory visible to all processors on a node, can be a target of RDMA") \
__op__(SOCKET_MEM, "Memory visible to all processors within a node, better performance to processors on same socket") \
__op__(Z_COPY_MEM, "Zero-Copy memory visible to all CPUs within a node and one or more GPUs") \
__op__(GPU_FB_MEM, "Framebuffer memory for one GPU and all its SMs") \
__op__(DISK_MEM, "Disk memory visible to all processors on a node") \
__op__(HDF_MEM, "HDF memory visible to all processors on a node") \
__op__(FILE_MEM, "file memory visible to all processors on a node") \
__op__(LEVEL3_CACHE, "CPU L3 Visible to all processors on the node, better performance to processors on same socket") \
__op__(LEVEL2_CACHE, "CPU L2 Visible to all processors on the node, better performance to one processor") \
__op__(LEVEL1_CACHE, "CPU L1 Visible to all processors on the node, better performance to one processor") \
__op__(GPU_MANAGED_MEM, "Managed memory that can be cached by either host or GPU") \
__op__(GPU_DYNAMIC_MEM, "Dynamically-allocated framebuffer memory for one GPU and all its SMs")

◆ REALM_NO_EVENT

#define REALM_NO_EVENT   ((realm_event_t)0ULL)

◆ REALM_NO_INST

#define REALM_NO_INST   ((realm_region_instance_t)0ULL)

◆ REALM_NO_MEM

#define REALM_NO_MEM   ((realm_memory_t)0ULL)

◆ REALM_NO_PROC

#define REALM_NO_PROC   ((realm_processor_t)0ULL)

◆ REALM_NO_USER_EVENT

#define REALM_NO_USER_EVENT   ((realm_user_event_t)0ULL)

◆ REALM_PROCESSOR_KINDS

#define REALM_PROCESSOR_KINDS (   __op__)
Value:
__op__(NO_KIND, "") \
__op__(TOC_PROC, "Throughput core") \
__op__(LOC_PROC, "Latency core") \
__op__(UTIL_PROC, "Utility core") \
__op__(IO_PROC, "I/O core") \
__op__(PROC_GROUP, "Processor group") \
__op__(PROC_SET, "Set of Processors for OpenMP/Kokkos etc.") \
__op__(OMP_PROC, "OpenMP (or similar) thread pool") \
__op__(PY_PROC, "Python interpreter")

◆ REALM_TASK_ID_FIRST_AVAILABLE

#define REALM_TASK_ID_FIRST_AVAILABLE   ((realm_task_func_id_t)4U)

◆ REALM_TASK_ID_PROCESSOR_INIT

#define REALM_TASK_ID_PROCESSOR_INIT   ((realm_task_func_id_t)1U)

◆ REALM_TASK_ID_PROCESSOR_NOP

#define REALM_TASK_ID_PROCESSOR_NOP   ((realm_task_func_id_t)0U)

◆ REALM_TASK_ID_PROCESSOR_SHUTDOWN

#define REALM_TASK_ID_PROCESSOR_SHUTDOWN   ((realm_task_func_id_t)2U)

◆ REALM_WAIT_INFINITE

#define REALM_WAIT_INFINITE   ((int64_t)INT64_MIN)

Typedef Documentation

◆ realm_address_space_t

typedef unsigned int realm_address_space_t

◆ realm_affinity_details_t

◆ realm_barrier_timestamp_t

typedef unsigned long long realm_barrier_timestamp_t

◆ realm_coord_t

typedef void* realm_coord_t

◆ realm_coord_type_t

◆ realm_copy_src_dst_field_t

◆ realm_custom_serdez_id_t

◆ realm_event_gen_t

typedef unsigned realm_event_gen_t

◆ realm_event_t

◆ realm_external_cuda_memory_resource_t

◆ realm_external_resource_t

◆ realm_external_resource_type_t

◆ realm_external_system_memory_resource_t

◆ realm_field_id_t

typedef int realm_field_id_t

◆ realm_file_mode_t

◆ realm_id_t

typedef unsigned long long realm_id_t

◆ realm_index_space_t

◆ realm_memory_attr_t

◆ realm_memory_kind_t

◆ realm_memory_query_cb_t

typedef realm_status_t(REALM_FNPTR * realm_memory_query_cb_t) (realm_memory_t, void *)

◆ realm_memory_query_t

typedef struct realm_memory_query_st* realm_memory_query_t

◆ realm_memory_t

◆ realm_processor_attr_t

◆ realm_processor_kind_t

◆ realm_processor_query_cb_t

typedef realm_status_t(REALM_FNPTR * realm_processor_query_cb_t) (realm_processor_t, void *)

◆ realm_processor_query_t

typedef struct realm_processor_query_st* realm_processor_query_t

◆ realm_processor_t

◆ realm_profiling_request_set_t

typedef struct realm_profiling_request_set_st* realm_profiling_request_set_t

◆ realm_reduction_op_id_t

◆ realm_region_instance_attr_t

◆ realm_region_instance_attr_value_t

◆ realm_region_instance_copy_params_t

◆ realm_region_instance_create_params_t

◆ realm_region_instance_t

◆ realm_register_task_flags_t

◆ realm_runtime_attr_t

◆ realm_runtime_t

typedef struct realm_runtime_st* realm_runtime_t

◆ realm_sparsity_handle_t

typedef struct realm_sparsity_handle_st* realm_sparsity_handle_t

◆ realm_status_t

◆ realm_task_func_id_t

typedef unsigned realm_task_func_id_t

◆ realm_task_pointer_t

typedef void(REALM_FNPTR * realm_task_pointer_t) (const void *, size_t, const void *, size_t, realm_processor_t)

◆ realm_user_event_t

◆ RealmStatus

Enumeration Type Documentation

◆ realm_coord_type_enum

Enumerator
REALM_COORD_TYPE_LONG_LONG 
REALM_COORD_TYPE_INT 
REALM_COORD_TYPE_NUM 
REALM_COORD_TYPE_MAX 

◆ realm_external_resource_type_enum

Enumerator
REALM_EXTERNAL_RESOURCE_TYPE_CUDA_MEMORY 
REALM_EXTERNAL_RESOURCE_TYPE_SYSTEM_MEMORY 
REALM_EXTERNAL_RESOURCE_TYPE_NUM 
REALM_EXTERNAL_RESOURCE_TYPE_MAX 

◆ realm_file_mode_t

Enumerator
REALM_FILE_READ_ONLY 
REALM_FILE_READ_WRITE 
REALM_FILE_CREATE 
LEGION_FILE_READ_ONLY 
LEGION_FILE_READ_WRITE 
LEGION_FILE_CREATE 

◆ realm_memory_attr_enum

Enumerator
REALM_MEMORY_ATTR_KIND 
REALM_MEMORY_ATTR_ADDRESS_SPACE 
REALM_MEMORY_ATTR_CAPACITY 
REALM_MEMORY_ATTR_NUM 
REALM_MEMORY_ATTR_MAX 

◆ realm_memory_kind_t

◆ realm_processor_attr_enum

Enumerator
REALM_PROCESSOR_ATTR_KIND 
REALM_PROCESSOR_ATTR_ADDRESS_SPACE 
REALM_PROCESSOR_ATTR_NUM 
REALM_PROCESSOR_ATTR_MAX 

◆ realm_processor_kind_t

◆ realm_region_instance_attr_enum

Enumerator
REALM_REGION_INSTANCE_ATTR_MEMORY 
REALM_REGION_INSTANCE_ATTR_NUM 
REALM_REGION_INSTANCE_ATTR_MAX 

◆ realm_register_task_flags

Enumerator
REALM_REGISTER_TASK_DEFAULT 
REALM_REGISTER_TASK_GLOBAL 
REALM_REGISTER_TASK_NUM 
REALM_REGISTER_TASK_MAX 

◆ realm_runtime_attr_enum

Enumerator
REALM_RUNTIME_ATTR_ADDRESS_SPACE 
REALM_RUNTIME_ATTR_LOCAL_ADDRESS_SPACE 
REALM_RUNTIME_ATTR_NUM 
REALM_RUNTIME_ATTR_MAX 

◆ realm_status_enum

Enumerator
REALM_SUCCESS 
REALM_ERROR 
REALM_ERROR_INVALID_PARAMETER 
REALM_ARGUMENT_ERROR_WITH_EXTRA_FLAGS 
REALM_ARGUMENT_ERROR_UNKNOWN_INTEGER 
REALM_ARGUMENT_ERROR_UNKNOWN_INTEGER_UNIT 
REALM_ARGUMENT_ERROR_MISSING_INPUT 
REALM_ARGUMENT_ERROR_OUTPUT_STRING_TOO_SHORT 
REALM_ARGUMENT_ERROR_METHOD_RETURN_FALSE 
REALM_TOPOLOGY_ERROR_NO_AFFINITY 
REALM_TOPOLOGY_ERROR_LINUX_NO_CPU_DIR 
REALM_TOPOLOGY_ERROR_LINUX_NO_NUMA_DIR 
REALM_TOPOLOGY_ERROR_HWLOC_INIT_FAILED 
REALM_TOPOLOGY_ERROR_HWLOC_LOAD_TOPO_FAILED 
REALM_TOPOLOGY_ERROR_HWLOC_TYPE_DEPTH_UNKNOWN 
REALM_TOPOLOGY_ERROR_ENV_LOAD_FAILED 
REALM_TOPOLOGY_ERROR_WIN32_NO_PROC_INFO 
REALM_RUNTIME_ERROR_INVALID_RUNTIME 
REALM_RUNTIME_ERROR_NOT_INITIALIZED 
REALM_RUNTIME_ERROR_INVALID_ATTRIBUTE 
REALM_RUNTIME_ERROR_INVALID_AFFINITY 
REALM_MACHINE_ERROR_INVALID_MACHINE 
REALM_MEMORY_ERROR_INVALID_MEMORY 
REALM_PROCESSOR_ERROR_INVALID_PROCESSOR 
REALM_PROCESSOR_ERROR_INVALID_PROCESSOR_KIND 
REALM_PROCESSOR_ERROR_INVALID_ATTRIBUTE 
REALM_PROCESSOR_ERROR_INVALID_TASK_FUNCTION 
REALM_PROCESSOR_ERROR_OUTSIDE_TASK 
REALM_MEMORY_ERROR_INVALID_MEMORY_KIND 
REALM_MEMORY_ERROR_INVALID_ATTRIBUTE 
REALM_EVENT_ERROR_INVALID_EVENT 
REALM_PROCESSOR_QUERY_ERROR_INVALID_QUERY 
REALM_PROCESSOR_QUERY_ERROR_INVALID_CALLBACK 
REALM_MEMORY_QUERY_ERROR_INVALID_QUERY 
REALM_MEMORY_QUERY_ERROR_INVALID_CALLBACK 
REALM_ADDRESS_SPACE_INVALID 
REALM_REGION_INSTANCE_ERROR_INVALID_DIMS 
REALM_REGION_INSTANCE_ERROR_INVALID_FIELDS 
REALM_REGION_INSTANCE_ERROR_INVALID_INSTANCE 
REALM_REGION_INSTANCE_ERROR_INVALID_EVENT 
REALM_REGION_INSTANCE_ERROR_INVALID_PARAMS 
REALM_REGION_INSTANCE_ERROR_INVALID_COORD_TYPE 
REALM_REGION_INSTANCE_ERROR_INVALID_ATTRIBUTE 
REALM_EXTERNAL_RESOURCE_ERROR_INVALID_RESOURCE 
REALM_EXTERNAL_RESOURCE_ERROR_INVALID_BASE 
REALM_EXTERNAL_RESOURCE_ERROR_INVALID_SIZE 
REALM_EXTERNAL_RESOURCE_ERROR_INVALID_CUDA_DEVICE_ID 
REALM_EXTERNAL_RESOURCE_ERROR_INVALID_TYPE 
REALM_EXTERNAL_RESOURCE_ERROR_INVALID_PARAMS 
REALM_CUDA_ERROR_NOT_ENABLED 
REALM_MODULE_CONFIG_ERROR_INVALID_NAME 
REALM_MODULE_CONFIG_ERROR_NO_RESOURCE 

Function Documentation

◆ realm_event_has_triggered()

realm_status_t REALM_EXPORT realm_event_has_triggered ( realm_runtime_t  runtime,
realm_event_t  event,
int *  has_triggered,
int *  poisoned 
)

Checks if an event has triggered.

Parameters
runtimeThe runtime instance to use.
eventThe event to check.
[out]has_triggeredWhether the event has triggered.
[out]poisonedWhether the event is poisoned.
Returns
Realm status indicating success or failure.

◆ realm_event_merge()

realm_status_t REALM_EXPORT realm_event_merge ( realm_runtime_t  runtime,
const realm_event_t wait_for,
size_t  num_events,
realm_event_t event,
int  ignore_faults 
)

Merges multiple events into a single event.

Parameters
runtimeThe runtime instance to use.
wait_forThe events to wait for.
num_eventsThe number of events to wait for.
[out]eventThe merged event.
ignore_faultsWhether to ignore any poison on the input events.
Returns
Realm status indicating success or failure.

◆ realm_event_wait()

realm_status_t REALM_EXPORT realm_event_wait ( realm_runtime_t  runtime,
realm_event_t  event,
int64_t  max_ns,
int *  poisoned 
)

Waits for a specific event to complete.

Parameters
runtimeThe runtime instance to use.
eventThe event to wait for.
max_nsThe maximum number of nanoseconds to wait. REALM_WAIT_INFINITE is a special value that means wait forever.
[out]poisonedWhether the event is poisoned.
Returns
Realm status indicating success or failure.

◆ realm_external_resource_suggested_memory()

realm_status_t REALM_EXPORT realm_external_resource_suggested_memory ( realm_runtime_t  runtime,
const realm_external_resource_t external_resource,
realm_memory_t memory 
)

Gets the suggested memory for an external instance resource.

Parameters
runtimeThe runtime instance to use.
resourceThe external instance resource to get the suggested memory for.
[out]memoryThe suggested memory.
Returns
Realm status indicating success or failure.

◆ realm_get_library_version()

realm_status_t REALM_EXPORT realm_get_library_version ( const char **  version)

Returns the version of the Realm library.

Parameters
[out]versionThe version of the Realm library.
Returns
Realm status indicating success or failure.

◆ realm_memory_get_attributes()

realm_status_t REALM_EXPORT realm_memory_get_attributes ( realm_runtime_t  runtime,
realm_memory_t  mem,
realm_memory_attr_t attrs,
uint64_t *  values,
size_t  num 
)

Returns the attributes of a memory.

Parameters
runtimeThe runtime instance to use.
memThe memory to get the attributes of.
attrsThe attributes to get.
[out]valuesThe values of the attributes.
numThe number of attributes to get.
Returns
Realm status indicating success or failure.

◆ realm_memory_query_create()

realm_status_t REALM_EXPORT realm_memory_query_create ( realm_runtime_t  runtime,
realm_memory_query_t query 
)

Creates a new memory query.

Parameters
machineThe machine instance.
[out]queryThe memory query to be created.
Returns
Realm status indicating success or failure.

◆ realm_memory_query_destroy()

realm_status_t REALM_EXPORT realm_memory_query_destroy ( realm_memory_query_t  query)

Destroys a memory query.

Parameters
queryThe memory query to be destroyed.
Returns
Realm status indicating success or failure.

◆ realm_memory_query_iter()

realm_status_t REALM_EXPORT realm_memory_query_iter ( realm_memory_query_t  query,
realm_memory_query_cb_t  cb,
void *  user_data,
size_t  max_queries 
)

Iterates over the memories in the query.

Parameters
queryThe memory query to be iterated over.
cbThe callback function to be called for each memory.
user_dataThe user data to be passed to the callback function.
max_queriesThe maximum number of memories to iterate over.
Returns
Realm status indicating success or failure.

◆ realm_memory_query_restrict_by_capacity()

realm_status_t REALM_EXPORT realm_memory_query_restrict_by_capacity ( realm_memory_query_t  query,
size_t  min_bytes 
)

Restricts the memory query to a minimum capacity.

Parameters
queryThe memory query to be restricted.
min_bytesThe minimum capacity to restrict to.
Returns
Realm status indicating success or failure.

◆ realm_memory_query_restrict_to_address_space()

realm_status_t REALM_EXPORT realm_memory_query_restrict_to_address_space ( realm_memory_query_t  query,
realm_address_space_t  address_space 
)

Restricts the memory query to address space.

Parameters
queryThe memory query to be restricted.
address_spaceThe address space to restrict to.
Returns
Realm status indicating success or failure.

◆ realm_memory_query_restrict_to_kind()

realm_status_t REALM_EXPORT realm_memory_query_restrict_to_kind ( realm_memory_query_t  query,
realm_memory_kind_t  kind 
)

Restricts the memory query to a specific kind.

Parameters
queryThe memory query to be restricted.
kindThe kind of memory to restrict to.
Returns
Realm status indicating success or failure.

◆ realm_processor_get_attributes()

realm_status_t REALM_EXPORT realm_processor_get_attributes ( realm_runtime_t  runtime,
realm_processor_t  proc,
realm_processor_attr_t attrs,
uint64_t *  values,
size_t  num 
)

Returns the attributes of a processor.

Parameters
runtimeThe runtime instance to use.
procThe processor to get the attributes of.
attrsThe attributes to get.
[out]valuesThe values of the attributes.
numThe number of attributes to get.
Returns
Realm status indicating success or failure.

◆ realm_processor_query_create()

realm_status_t REALM_EXPORT realm_processor_query_create ( realm_runtime_t  runtime,
realm_processor_query_t query 
)

Creates a new processor query.

Parameters
machineThe machine instance.
[out]queryThe processor query to be created.
Returns
Realm status indicating success or failure.

◆ realm_processor_query_destroy()

realm_status_t REALM_EXPORT realm_processor_query_destroy ( realm_processor_query_t  query)

Destroys a processor query.

Parameters
queryThe processor query to be destroyed.
Returns
Realm status indicating success or failure.

◆ realm_processor_query_iter()

realm_status_t REALM_EXPORT realm_processor_query_iter ( realm_processor_query_t  query,
realm_processor_query_cb_t  cb,
void *  user_data,
size_t  max_queries 
)

Iterates over the processors in the query.

Parameters
queryThe processor query to be iterated over.
cbThe callback function to be called for each processor.
user_dataThe user data to be passed to the callback function.
max_queriesThe maximum number of processors to iterate over.
Returns
Realm status indicating success or failure.

◆ realm_processor_query_restrict_to_address_space()

realm_status_t REALM_EXPORT realm_processor_query_restrict_to_address_space ( realm_processor_query_t  query,
realm_address_space_t  address_space 
)

Restricts the processor query to address space.

Parameters
queryThe processor query to be restricted.
address_spaceThe address space to restrict to.
Returns
Realm status indicating success or failure.

◆ realm_processor_query_restrict_to_kind()

realm_status_t REALM_EXPORT realm_processor_query_restrict_to_kind ( realm_processor_query_t  query,
realm_processor_kind_t  kind 
)

Restricts the processor query to a specific kind.

Parameters
queryThe processor query to be restricted.
kindThe kind of processor to restrict to.
Returns
Realm status indicating success or failure.

◆ realm_processor_register_task_by_kind()

realm_status_t REALM_EXPORT realm_processor_register_task_by_kind ( realm_runtime_t  runtime,
realm_processor_kind_t  target_kind,
realm_register_task_flags_t  flags,
realm_task_func_id_t  task_id,
realm_task_pointer_t  func,
void *  user_data,
size_t  user_data_len,
realm_event_t event 
)

Registers a task with all processors whose kind matches that of target_kind.

Parameters
runtimeThe runtime instance to use.
target_kindThe kind of processor to register the task with.
globalRegistrations that are global are ones in which the registration only has to be done by one process in a multi-process realm. This has the requirement that the function is referenceable through calls such as dladdr and dlsym and that the function has the same offset across all processes in the realm. This usually requires the application to compile with -rdynamic.
task_idThe ID of the task to be registered.
funcThe function pointer for the task.
user_dataUser data to pass to the task.
user_data_lenThe length of the user data.
[out]eventAn event to signal upon task registration.
Returns
Realm status indicating success or failure.

◆ realm_processor_spawn()

realm_status_t REALM_EXPORT realm_processor_spawn ( realm_runtime_t  runtime,
realm_processor_t  target_proc,
realm_task_func_id_t  task_id,
const void *  args,
size_t  arglen,
realm_profiling_request_set_t  prs,
realm_event_t  wait_on,
int  priority,
realm_event_t event 
)

Spawns a task on a specific processor.

Parameters
runtimeThe runtime instance to use.
target_procThe target processor for the task.
task_idThe ID of the task to be spawned.
argsThe arguments for the task.
arglenThe length of the arguments.
prsThe profiling request set.
wait_onAn event to wait on before spawning the task.
priorityThe priority of the task.
[out]eventAn event to signal upon task completion.
Returns
Realm status indicating success or failure.

◆ realm_region_instance_copy()

realm_status_t REALM_EXPORT realm_region_instance_copy ( realm_runtime_t  runtime,
const realm_region_instance_copy_params_t instance_copy_params,
realm_profiling_request_set_t  prs,
realm_event_t  wait_on,
int  priority,
realm_event_t event 
)

Copies data between region instances.

Parameters
runtimeThe runtime instance to use.
paramsThe parameters to copy the region instances.
prsThe profiling request set.
wait_onThe event to wait on before copying.
priorityThe priority of the copy.
[out]eventThe event to signal upon copy completion.
Returns
Realm status indicating success or failure.

◆ realm_region_instance_create()

realm_status_t REALM_EXPORT realm_region_instance_create ( realm_runtime_t  runtime,
const realm_region_instance_create_params_t instance_creation_params,
realm_profiling_request_set_t  prs,
realm_event_t  wait_on,
realm_region_instance_t instance,
realm_event_t event 
)

Creates a new region instance.

Parameters
runtimeThe runtime instance to use.
instance_paramsThe parameters to create the region instance.
prsThe profiling request set.
wait_onThe event to wait on before creating the region instance.
[out]instanceThe region instance to be created.
[out]eventThe event to signal upon region instance creation.
Returns
Realm status indicating success or failure.

◆ realm_region_instance_destroy()

realm_status_t REALM_EXPORT realm_region_instance_destroy ( realm_runtime_t  runtime,
realm_region_instance_t  instance,
realm_event_t  wait_on 
)

Destroys a region instance.

Parameters
runtimeThe runtime instance to use.
instanceThe region instance to destroy.
wait_onThe event to wait on before destroying the region instance.
Returns
Realm status indicating success or failure.

◆ realm_region_instance_fetch_metadata()

realm_status_t REALM_EXPORT realm_region_instance_fetch_metadata ( realm_runtime_t  runtime,
realm_region_instance_t  instance,
realm_processor_t  target,
realm_event_t event 
)

Fetches the metadata of a region instance.

Parameters
runtimeThe runtime instance to use.
instanceThe region instance to fetch the metadata of.
targetThe target processor to fetch the metadata on.
[out]eventThe event to signal upon metadata fetch completion.
Returns
Realm status indicating success or failure.

◆ realm_region_instance_generate_external_resource_info()

realm_status_t REALM_EXPORT realm_region_instance_generate_external_resource_info ( realm_runtime_t  runtime,
realm_region_instance_t  instance,
const realm_index_space_t index_space,
const realm_field_id_t field_ids,
size_t  num_fields,
int  read_only,
realm_external_resource_t external_resource 
)

Generates an external instance resource info for a region instance.

Parameters
runtimeThe runtime instance to use.
instanceThe region instance to generate the external instance resource info for.
index_spaceThe index space of the region instance.
field_idsThe field ids of the region instance.
num_fieldsThe number of fields of the region instance.
read_onlyWhether the external instance resource is read only.
[out]external_resourceThe external instance resource info. It should be either realm_external_cuda_memory_resource_t or realm_external_system_memory_resource_t. It is caller's responsibility to allocate the memory for the external instance resource.
Returns
Realm status indicating success or failure.

◆ realm_region_instance_get_attributes()

realm_status_t REALM_EXPORT realm_region_instance_get_attributes ( realm_runtime_t  runtime,
realm_region_instance_t  instance,
realm_region_instance_attr_t attrs,
realm_region_instance_attr_value_t values,
size_t  num 
)

Gets the attributes of a region instance.

Parameters
runtimeThe runtime instance to use.
instanceThe region instance to get the attributes of.
attrsThe attributes to get.
[out]valuesThe values of the attributes.
numThe number of attributes to get.
Returns
Realm status indicating success or failure.

◆ realm_runtime_collective_spawn()

realm_status_t REALM_EXPORT realm_runtime_collective_spawn ( realm_runtime_t  runtime,
realm_processor_t  target_proc,
realm_task_func_id_t  task_id,
const void *  args,
size_t  arglen,
realm_event_t  wait_on,
int  priority,
realm_event_t event 
)

Spawns the task registered by the task id by task_id on the processor given by target_proc. This call has special meaning for multi-process realms as all processes calling this will perform a barrier and a single arbitrary process will be elected to launch the task on the processor. It is undefined if these arguments do not match across all processes calls in a multi-process invocation.

Parameters
runtimeThe runtime instance to use.
target_procThe target processor for the task.
task_idThe ID of the task to be spawned.
argsThis is a buffer of bytes of length arglen to be copied to the executor of the given task_id.
arglenThe length of the arguments.
wait_onAn event to wait on before spawning the task.
priorityThe priority of the task.
[out]eventAn event to signal upon task completion.
Returns
Realm status indicating success or failure.

◆ realm_runtime_create()

realm_status_t REALM_EXPORT realm_runtime_create ( realm_runtime_t runtime)

Creates a new Realm runtime instance.

Parameters
[out]runtimeA pointer to the runtime instance to be created.
Returns
Realm status indicating success or failure.

◆ realm_runtime_destroy()

realm_status_t REALM_EXPORT realm_runtime_destroy ( realm_runtime_t  runtime)

Destroys a Realm runtime instance, please make sure all works are finished and the runtime has been shutdown before destroying the runtime.

Parameters
runtimeThe runtime instance to be destroyed.
Returns
Realm status indicating success or failure.

◆ realm_runtime_get_attributes()

realm_status_t REALM_EXPORT realm_runtime_get_attributes ( realm_runtime_t  runtime,
realm_runtime_attr_t attrs,
uint64_t *  values,
size_t  num 
)

Returns the attributes of a runtime.

Parameters
runtimeThe runtime instance to use.
attrsThe attributes to get.
valuesThe values of the attributes.
numThe number of attributes to get.
Returns
Realm status indicating success or failure.

◆ realm_runtime_get_memory_memory_affinity()

realm_status_t REALM_EXPORT realm_runtime_get_memory_memory_affinity ( realm_runtime_t  runtime,
realm_memory_t  mem1,
realm_memory_t  mem2,
realm_affinity_details_t details 
)

Checks if two memories have affinity. If there is a affinity, we can do one-hop copy between them.

Parameters
runtimeThe runtime instance to use.
mem1The first memory.
mem2The second memory.
[out]detailsThe details of the affinity.
Returns
Realm status indicating success or failure.

◆ realm_runtime_get_processor_memory_affinity()

realm_status_t REALM_EXPORT realm_runtime_get_processor_memory_affinity ( realm_runtime_t  runtime,
realm_processor_t  proc,
realm_memory_t  mem,
realm_affinity_details_t details 
)

Checks if a processor has affinity to a memory. If there is a affinity, the processor can access the memory directly.

Parameters
runtimeThe runtime instance to use.
procThe processor.
memThe memory.
[out]detailsThe details of the affinity.
Returns
Realm status indicating success or failure.

◆ realm_runtime_get_runtime()

realm_status_t REALM_EXPORT realm_runtime_get_runtime ( realm_runtime_t runtime)

Returns the current Realm runtime instance.

Parameters
[out]runtimeA pointer to the runtime instance to be returned.
Returns
Realm status indicating success or failure.

◆ realm_runtime_init()

realm_status_t REALM_EXPORT realm_runtime_init ( realm_runtime_t  runtime,
int *  argc,
char ***  argv 
)

Creates and initializes the Realm runtime with command-line arguments.

Parameters
runtimeA pointer to the runtime instance to be initialized.
[in,out]argcA pointer to the argument count.
[in,out]argvA pointer to the argument vector.
Returns
Realm status indicating success or failure.

◆ realm_runtime_signal_shutdown()

realm_status_t REALM_EXPORT realm_runtime_signal_shutdown ( realm_runtime_t  runtime,
realm_event_t  wait_on,
int  result_code 
)

Shuts down the Realm runtime.

Parameters
runtimeThe runtime instance to be shut down.
wait_onAn event to wait on before shutting down.
result_codeThe result code to return upon shutdown.
Returns
Realm status indicating success or failure.

◆ realm_runtime_wait_for_shutdown()

realm_status_t REALM_EXPORT realm_runtime_wait_for_shutdown ( realm_runtime_t  runtime)

Waits for the Realm runtime to shut down.

Parameters
runtimeThe runtime instance to wait for.
Returns
Realm status indicating success or failure.

◆ realm_user_event_create()

realm_status_t REALM_EXPORT realm_user_event_create ( realm_runtime_t  runtime,
realm_user_event_t event 
)

Creates a new user event.

Parameters
[out]eventThe user event to be created.
Returns
Realm status indicating success or failure.

◆ realm_user_event_trigger()

realm_status_t REALM_EXPORT realm_user_event_trigger ( realm_runtime_t  runtime,
realm_user_event_t  event,
realm_event_t  wait_on,
int  ignore_faults 
)

Triggers a user event.

Parameters
eventThe user event to be triggered.
wait_onThe event to wait on.
ignore_faultsWhether to ignore any poison on the input events.
Returns
Realm status indicating success or failure.