dispatch.c file
Functions
-
static auto vm_backend_ops_complete(const vm_
backend_ ops* ops) -> int -
auto vm_backend_best(void) -> const vm_
backend* -
static void vm_cpu_bind_backend(const vm_
backend* backend) -
static void vm_cpu_bind(const vm_
cpu_ features_ t features) - Binds dispatched function pointers for
features. -
auto vm_backend_register(const vm_
backend* backend) -> int - Register an external backend.
- void vm_dispatch_init(void)
- One-time runtime dispatch bind (thread-safe).
Variables
- static atomic_int dispatch_ready
- static atomic_flag dispatch_lock
-
static const vm_
backend* vm_backends - static int vm_backend_count
Defines
- #define VECMAT_FN_PTR(name, params, args)
- #define VECMAT_REQUIRE_OP(name, params, args)
- #define VECMAT_BIND_BACKEND(name, params, args)
- #define VECMAT_PICK_SVE2(name)
- #define VECMAT_PICK_SVE(name)
- #define VECMAT_PICK_NEON(name)
- #define VECMAT_PICK_AVX512F(name)
- #define VECMAT_PICK_AVX2(name)
- #define VECMAT_PICK_AVX(name)
- #define VECMAT_PICK(name)
- #define VECMAT_BIND(name, params, args)
Function documentation
static void vm_cpu_bind(const vm_ cpu_ features_ t features)
Binds dispatched function pointers for features.
| Parameters | |
|---|---|
| features | Selected ISA mask. |
int vm_backend_register(const vm_ backend* backend)
Register an external backend.
| Parameters | |
|---|---|
| backend | Backend descriptor; must outlive the process. |
| Returns | VM_ or a negative VM_BACKEND_ERR_* code. |
Idempotent for the same backend pointer. Rejects a NULL name, NULL ops, or any NULL slot. Same name with a different pointer is a conflict.