Zephyr Project API 3.7.0
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
obj_core.h File Reference
#include <zephyr/sys/slist.h>

Go to the source code of this file.

Data Structures

struct  k_obj_core_stats_desc
 Object core statistics descriptor. More...
 
struct  k_obj_type
 Object type structure. More...
 
struct  k_obj_core
 Object core structure. More...
 

Macros

#define K_OBJ_CORE(kobj)   (&((kobj)->obj_core))
 Convert kernel object pointer into its object core pointer.
 
#define K_OBJ_TYPE_ID_GEN(s)   ((s[0] << 24) | (s[1] << 16) | (s[2] << 8) | (s[3]))
 Generate new object type IDs based on a 4 letter string.
 
#define K_OBJ_TYPE_CONDVAR_ID   K_OBJ_TYPE_ID_GEN("COND")
 Condition variable object type.
 
#define K_OBJ_TYPE_CPU_ID   K_OBJ_TYPE_ID_GEN("CPU_")
 CPU object type.
 
#define K_OBJ_TYPE_EVENT_ID   K_OBJ_TYPE_ID_GEN("EVNT")
 Event object type.
 
#define K_OBJ_TYPE_FIFO_ID   K_OBJ_TYPE_ID_GEN("FIFO")
 FIFO object type.
 
#define K_OBJ_TYPE_KERNEL_ID   K_OBJ_TYPE_ID_GEN("KRNL")
 Kernel object type.
 
#define K_OBJ_TYPE_LIFO_ID   K_OBJ_TYPE_ID_GEN("LIFO")
 LIFO object type.
 
#define K_OBJ_TYPE_MEM_BLOCK_ID   K_OBJ_TYPE_ID_GEN("MBLK")
 Memory block object type.
 
#define K_OBJ_TYPE_MBOX_ID   K_OBJ_TYPE_ID_GEN("MBOX")
 Mailbox object type.
 
#define K_OBJ_TYPE_MEM_SLAB_ID   K_OBJ_TYPE_ID_GEN("SLAB")
 Memory slab object type.
 
#define K_OBJ_TYPE_MSGQ_ID   K_OBJ_TYPE_ID_GEN("MSGQ")
 Message queue object type.
 
#define K_OBJ_TYPE_MUTEX_ID   K_OBJ_TYPE_ID_GEN("MUTX")
 Mutex object type.
 
#define K_OBJ_TYPE_PIPE_ID   K_OBJ_TYPE_ID_GEN("PIPE")
 Pipe object type.
 
#define K_OBJ_TYPE_SEM_ID   K_OBJ_TYPE_ID_GEN("SEM4")
 Semaphore object type.
 
#define K_OBJ_TYPE_STACK_ID   K_OBJ_TYPE_ID_GEN("STCK")
 Stack object type.
 
#define K_OBJ_TYPE_THREAD_ID   K_OBJ_TYPE_ID_GEN("THRD")
 Thread object type.
 
#define K_OBJ_TYPE_TIMER_ID   K_OBJ_TYPE_ID_GEN("TIMR")
 Timer object type.
 

Functions

struct k_obj_typek_obj_type_find (uint32_t type_id)
 Find a specific object type by ID.
 
int k_obj_type_walk_locked (struct k_obj_type *type, int(*func)(struct k_obj_core *, void *), void *data)
 Walk the object type's list of object cores.
 
int k_obj_type_walk_unlocked (struct k_obj_type *type, int(*func)(struct k_obj_core *, void *), void *data)
 Walk the object type's list of object cores.
 
void k_obj_core_init (struct k_obj_core *obj_core, struct k_obj_type *type)
 Initialize the core of the kernel object.
 
void k_obj_core_link (struct k_obj_core *obj_core)
 Link the kernel object to the kernel object type list.
 
void k_obj_core_init_and_link (struct k_obj_core *obj_core, struct k_obj_type *type)
 Automatically link the kernel object after initializing it.
 
void k_obj_core_unlink (struct k_obj_core *obj_core)
 Unlink the kernel object from the kernel object type list.
 
int k_obj_core_stats_register (struct k_obj_core *obj_core, void *stats, size_t stats_len)
 Register kernel object for gathering statistics.
 
int k_obj_core_stats_deregister (struct k_obj_core *obj_core)
 Deregister kernel object from gathering statistics.
 
int k_obj_core_stats_raw (struct k_obj_core *obj_core, void *stats, size_t stats_len)
 Retrieve the raw statistics associated with the kernel object.
 
int k_obj_core_stats_query (struct k_obj_core *obj_core, void *stats, size_t stats_len)
 Retrieve the statistics associated with the kernel object.
 
int k_obj_core_stats_reset (struct k_obj_core *obj_core)
 Reset the stats associated with the kernel object.
 
int k_obj_core_stats_disable (struct k_obj_core *obj_core)
 Stop gathering the stats associated with the kernel object.
 
int k_obj_core_stats_enable (struct k_obj_core *obj_core)
 Reset the stats associated with the kernel object.