This file contains global type definitions which are used throughout the entire engine and applicatio...
#define KAPI
Import/export qualifier.
Definition: defines.h:205
_Bool b8
8-bit boolean type
Definition: defines.h:58
signed int i32
Signed 32-bit integer.
Definition: defines.h:39
unsigned long long u64
Unsigned 64-bit integer.
Definition: defines.h:28
A global handle system for Kohi. Handles are used to obtain various resources using a unique handle i...
kregistry_entry_change_type
Definition: registry.h:21
@ K_REGISTRY_CHANGE_TYPE_BLOCK_CHANGED
Definition: registry.h:23
@ K_REGISTRY_CHANGE_TYPE_DESTROYED
Definition: registry.h:25
KAPI b8 kregistry_entry_update_callback_for_listener(kregistry *registry, khandle entry_handle, void *listener, PFN_on_registry_entry_updated updated_callback)
Attempts to update the callback for the given entry for the provided listener.
KAPI khandle kregistry_add_entry(kregistry *registry, const void *block, u64 size, b8 auto_release)
Adds a new entry to the registry and returns a handle to it.
void(* PFN_on_registry_entry_updated)(void *sender, void *block, u64 size, kregistry_entry_change_type change_type)
Callback to be made when a registry block is updated via registry_entry_block_set().
Definition: registry.h:31
struct kregistry_entry_listener_callback kregistry_entry_listener_callback
KAPI void kregistry_entry_release(kregistry *registry, khandle entry_handle, void *listener)
Attempts to release a reference for the given entry for the provided listener. This decrements the in...
struct kregistry_entry kregistry_entry
KAPI void kregistry_create(kregistry *out_registry)
KAPI void * kregistry_entry_acquire(kregistry *registry, khandle entry_handle, void *listener, PFN_on_registry_entry_updated updated_callback)
Attempts to acquire a reference for the given entry for the provided listener. This increments the in...
KAPI void kregistry_destroy(kregistry *registry)
struct k_registry kregistry
KAPI b8 kregistry_entry_set(kregistry *registry, khandle entry_handle, const void *block, u64 size, void *sender)
Attempts to set an existing registry block's data. When this occurs, the old data block will be relea...
Definition: registry.h:49
kregistry_entry * entries
Definition: registry.h:51
A handle is a unique identifier used a system in the engine to avoid using raw pointers where possibl...
Definition: khandle.h:25
Definition: registry.h:33
PFN_on_registry_entry_updated callback
Definition: registry.h:35
void * listener
Definition: registry.h:34
Definition: registry.h:38
u64 block_size
Definition: registry.h:40
i32 reference_count
Definition: registry.h:42
kregistry_entry_listener_callback * callbacks
Definition: registry.h:46
void * block
Definition: registry.h:41
u64 uniqueid
Definition: registry.h:39
b8 auto_release
Definition: registry.h:43