7#ifndef LOOMC_TARGET_IREE_HAL_H_
8#define LOOMC_TARGET_IREE_HAL_H_
12#include "iree/hal/api.h"
#define LOOMC_API_EXPORT
Exports a public Loom C API symbol from a shared library build.
Definition base.h:34
size_t loomc_host_size_t
Host allocation and container size type.
Definition base.h:45
loomc_structure_type_t
Structure type values used by extensible public descriptors.
Definition base.h:181
#define LOOMC_API_PTR
Marks a public callback function pointer type.
Definition base.h:38
struct iree_status_handle_t * loomc_status_t
Opaque status handle.
Definition base.h:55
loomc_status_t loomc_target_profile_create_iree_hal(loomc_target_environment_t *target_environment, const loomc_iree_hal_profile_options_t *options, loomc_allocator_t allocator, loomc_target_profile_t **out_profile, loomc_result_t **out_result)
Routes an IREE HAL device through the linked target-profile providers.
loomc_status_t(* loomc_iree_hal_profile_provider_fn_t)(void *user_data, loomc_target_environment_t *target_environment, const loomc_iree_hal_profile_options_t *options, loomc_allocator_t allocator, bool *out_supported, loomc_target_profile_t **out_profile, loomc_result_t **out_result)
Attempts to create a target profile from an IREE HAL device.
Definition iree_hal.h:97
struct loomc_result_t loomc_result_t
Immutable operation result.
Definition result.h:63
Host allocator used for persistent Loom object storage.
Definition base.h:375
IREE HAL target-profile routing options.
Definition iree_hal.h:116
iree_hal_device_t * device
IREE HAL device borrowed for the duration of the call.
Definition iree_hal.h:131
loomc_structure_type_t type
Structure type.
Definition iree_hal.h:119
loomc_host_size_t provider_count
Number of entries in providers.
Definition iree_hal.h:144
loomc_host_size_t structure_size
Size of this structure in bytes.
Definition iree_hal.h:122
loomc_string_view_t identifier
Stable profile identifier used in diagnostics.
Definition iree_hal.h:128
const loomc_iree_hal_profile_provider_t *const * providers
Ordered borrowed array of provider descriptors.
Definition iree_hal.h:141
const void * next
Provider-specific option descriptors.
Definition iree_hal.h:125
iree_hal_physical_device_affinity_t physical_device_affinity
Optional physical-device set the selected profile must fully cover.
Definition iree_hal.h:138
One linked IREE HAL profile provider.
Definition iree_hal.h:104
loomc_string_view_t name
Stable provider name used in diagnostics and reports.
Definition iree_hal.h:106
void * user_data
Provider-owned callback state.
Definition iree_hal.h:109
loomc_iree_hal_profile_provider_fn_t create_profile
Provider callback that attempts profile creation.
Definition iree_hal.h:112
Non-owning string view over bytes that need not be NUL-terminated.
Definition base.h:63
Prepared target environments and target lowering pipelines.
struct loomc_target_environment_t loomc_target_environment_t
Prepared immutable target environment.
Definition target.h:123
struct loomc_target_profile_t loomc_target_profile_t
Prepared immutable target profile.
Definition target.h:135