|
c23_nodiscard infix_type * | infix_type_create_primitive (infix_primitive_type_id id) |
| Creates an infix_type descriptor for a primitive C type.
|
|
c23_nodiscard infix_type * | infix_type_create_pointer (void) |
| Creates an infix_type descriptor for a generic void* pointer.
|
|
c23_nodiscard infix_type * | infix_type_create_void (void) |
| Creates an infix_type descriptor for the void type.
|
|
infix_struct_member | infix_type_create_member (const char *name, infix_type *type, size_t offset) |
| A factory function to create an infix_struct_member .
|
|
static infix_status | _create_aggregate_setup (infix_arena_t *arena, infix_type **out_type, infix_struct_member **out_arena_members, infix_struct_member *members, size_t num_members) |
|
c23_nodiscard infix_status | infix_type_create_pointer_to (infix_arena_t *arena, infix_type **out_type, infix_type *pointee_type) |
| Creates an infix_type for a pointer to a specific type from an arena.
|
|
c23_nodiscard infix_status | infix_type_create_array (infix_arena_t *arena, infix_type **out_type, infix_type *element_type, size_t num_elements) |
| Creates a new infix_type for a fixed-size array from an arena.
|
|
c23_nodiscard infix_status | infix_type_create_enum (infix_arena_t *arena, infix_type **out_type, infix_type *underlying_type) |
| Creates a new infix_type for an enum from an arena.
|
|
c23_nodiscard infix_status | infix_type_create_complex (infix_arena_t *arena, infix_type **out_type, infix_type *base_type) |
| Creates a new infix_type for a _Complex number from an arena.
|
|
c23_nodiscard infix_status | infix_type_create_vector (infix_arena_t *arena, infix_type **out_type, infix_type *element_type, size_t num_elements) |
| Creates a new infix_type for a SIMD vector from an arena.
|
|
c23_nodiscard infix_status | infix_type_create_union (infix_arena_t *arena, infix_type **out_type, infix_struct_member *members, size_t num_members) |
| Creates a new infix_type for a union from an arena.
|
|
c23_nodiscard infix_status | infix_type_create_struct (infix_arena_t *arena, infix_type **out_type, infix_struct_member *members, size_t num_members) |
| Creates a new infix_type for a struct from an arena.
|
|
c23_nodiscard infix_status | infix_type_create_packed_struct (infix_arena_t *arena, infix_type **out_type, size_t total_size, size_t alignment, infix_struct_member *members, size_t num_members) |
| Creates a new infix_type for a packed struct from an arena.
|
|
c23_nodiscard infix_status | infix_type_create_named_reference (infix_arena_t *arena, infix_type **out_type, const char *name, infix_aggregate_category_t agg_cat) |
| Creates a new infix_type for a named reference from an arena.
|
|
infix_type * | _copy_type_graph_to_arena (infix_arena_t *dest_arena, const infix_type *src_type) |
| Performs a deep copy of a type graph from one arena to another.
|
|
c23_nodiscard infix_type_category | infix_type_get_category (const infix_type *type) |
| Retrieves the fundamental category of an infix_type .
|
|
c23_nodiscard size_t | infix_type_get_size (const infix_type *type) |
| Retrieves the size of an infix_type in bytes.
|
|
c23_nodiscard size_t | infix_type_get_alignment (const infix_type *type) |
| Retrieves the alignment requirement of an infix_type in bytes.
|
|
c23_nodiscard size_t | infix_type_get_member_count (const infix_type *type) |
| Retrieves the number of members in an aggregate type (struct or union).
|
|
c23_nodiscard const infix_struct_member * | infix_type_get_member (const infix_type *type, size_t index) |
| Retrieves a specific member from an aggregate type by its index.
|
|
c23_nodiscard const char * | infix_type_get_arg_name (const infix_type *func_type, size_t index) |
| Retrieves the name of a function argument by its index.
|
|
c23_nodiscard const infix_type * | infix_type_get_arg_type (const infix_type *func_type, size_t index) |
| Retrieves the type of a function argument by its index.
|
|
c23_nodiscard size_t | infix_forward_get_num_args (const infix_forward_t *trampoline) |
| Retrieves the number of arguments for a forward trampoline.
|
|
c23_nodiscard size_t | infix_forward_get_num_fixed_args (const infix_forward_t *trampoline) |
| Retrieves the number of fixed (non-variadic) arguments for a forward trampoline.
|
|
c23_nodiscard const infix_type * | infix_forward_get_return_type (const infix_forward_t *trampoline) |
| Retrieves the return type for a forward trampoline.
|
|
c23_nodiscard const infix_type * | infix_forward_get_arg_type (const infix_forward_t *trampoline, size_t index) |
| Retrieves the type of a specific argument for a forward trampoline.
|
|
c23_nodiscard size_t | infix_reverse_get_num_args (const infix_reverse_t *trampoline) |
| Retrieves the number of arguments for a reverse trampoline.
|
|
c23_nodiscard size_t | infix_reverse_get_num_fixed_args (const infix_reverse_t *trampoline) |
| Retrieves the number of fixed (non-variadic) arguments for a reverse trampoline.
|
|
c23_nodiscard const infix_type * | infix_reverse_get_return_type (const infix_reverse_t *trampoline) |
| Retrieves the return type for a reverse trampoline.
|
|
c23_nodiscard const infix_type * | infix_reverse_get_arg_type (const infix_reverse_t *trampoline, size_t index) |
| Retrieves the type of a specific argument for a reverse trampoline.
|
|
Implements the public API for creating and managing type descriptions.
Copyright (c) 2025 Sanko Robinson
This source code is dual-licensed under the Artistic License 2.0 or the MIT License. You may choose to use this code under the terms of either license.
SPDX-License-Identifier: (Artistic-2.0 OR MIT)
The documentation blocks within this file are licensed under the Creative Commons Attribution 4.0 International License (CC BY 4.0).
SPDX-License-Identifier: CC-BY-4.0