52#if (CH_CFG_NO_IDLE_THREAD == FALSE) || defined(__DOXYGEN__)
60#if CH_DBG_ENABLE_STACK_CHECK == TRUE
69#if CH_DBG_ENABLE_STACK_CHECK == TRUE
72#elif CH_CFG_USE_DYNAMIC == TRUE
73 .mainthread_base = NULL,
74 .mainthread_end = NULL,
76#if CH_CFG_NO_IDLE_THREAD == FALSE
82#if (PORT_CORES_NUMBER > 1) || defined(__DOXYGEN__)
88#if (CH_CFG_NO_IDLE_THREAD == FALSE) || defined(__DOXYGEN__)
96#if CH_DBG_ENABLE_STACK_CHECK == TRUE
105#if CH_DBG_ENABLE_STACK_CHECK == TRUE
108#elif CH_CFG_USE_DYNAMIC == TRUE
109 .mainthread_base = NULL,
110 .mainthread_end = NULL,
112#if CH_CFG_NO_IDLE_THREAD == FALSE
168#if CH_CFG_USE_TM == TRUE
173#if (CH_CFG_USE_REGISTRY == TRUE) && (CH_CFG_SMP_MODE == TRUE)
178#if CH_CFG_SMP_MODE == TRUE
222#if defined(PORT_SYSTEM_HALT_HOOK)
225 PORT_SYSTEM_HALT_HOOK();
336#if CH_CFG_USE_REGISTRY == TRUE
366#if defined(PORT_INTEGRITY_CHECK)
368 PORT_INTEGRITY_CHECK();
387#if (CH_CFG_TIME_QUANTUM > 0) || (CH_DBG_THREADS_PROFILING == TRUE)
393#if CH_CFG_TIME_QUANTUM > 0
400#if CH_DBG_THREADS_PROFILING == TRUE
407#if (CH_PORT_SUPPORTS_RECURSIVE_LOCKS == TRUE) || defined(__DOXYGEN__)
462#if (PORT_SUPPORTS_RT == TRUE) || defined(__DOXYGEN__)
#define chThdGetSelfX()
Returns a pointer to the current thread_t.
#define chSysLockFromISR()
Enters the kernel lock state from within an interrupt handler.
#define chSysUnlock()
Leaves the kernel lock state.
#define chSysLock()
Enters the kernel lock state.
#define chSysUnlockFromISR()
Leaves the kernel lock state from within an interrupt handler.
#define chDbgAssert(c, r)
Condition assertion.
#define chDbgCheckClassI()
#define CH_CFG_SYSTEM_TICK_HOOK()
System tick event hook.
#define CH_CFG_SYSTEM_HALT_HOOK(reason)
System halt hook.
#define CH_CFG_SYSTEM_INIT_HOOK()
System initialization hook.
void chInstanceObjectInit(os_instance_t *oip, const os_instance_config_t *oicp)
Initializes a system instance.
struct ch_priority_queue ch_priority_queue_t
Type of a generic priority-ordered bidirectional linked list header and element.
struct ch_delta_list ch_delta_list_t
Type of a generic bidirectional linked delta list header and element.
struct ch_queue ch_queue_t
Type of a generic bidirectional linked list header and element.
#define threadref(p)
Safe cast of a queue pointer to a thread pointer.
struct ch_system ch_system_t
Type of system data structure.
struct ch_os_instance os_instance_t
Type of an OS instance structure.
struct ch_os_instance_config os_instance_config_t
Type of an system instance configuration.
port_stkalign_t stkalign_t
system_state_t
Global state of the operating system.
struct ch_thread thread_t
Type of a thread structure.
static void __oslib_init(void)
Initialization of all library modules.
static void port_disable(void)
Disables all the interrupt sources.
#define port_get_lock_status()
Returns a word representing a critical section status.
#define PORT_IDLE_THREAD_STACK_SIZE
Stack size for the system idle thread.
#define port_is_locked(sts)
Determines if in a critical section.
static bool port_is_isr_context(void)
Determines the current execution context.
#define PORT_CORES_NUMBER
#define REG_HEADER(oip)
Access to the registry list header.
static void __reg_object_init(registry_t *rp)
Initializes a registry.
static void __rfcu_object_init(rfcu_t *rfcup)
Runtime Faults Collection Unit initialization.
void chSchRescheduleS(void)
Performs a reschedule if a higher priority thread is runnable.
#define IDLEPRIO
Idle priority.
#define CH_SYS_CORE0_MEMORY
Core zero memory affinity macro.
stkalign_t __main_thread_stack_end__
#define chSysGetRealtimeCounterX()
Returns the current value of the system real time counter.
syssts_t chSysGetStatusAndLockX(void)
Returns the execution status and enters a critical zone.
#define CH_INTEGRITY_VTLIST
CH_SYS_CORE1_MEMORY os_instance_t ch1
Core 1 OS instance.
bool chSysIsCounterWithinX(rtcnt_t cnt, rtcnt_t start, rtcnt_t end)
Realtime window test.
void chSysTimerHandlerI(void)
Handles time ticks for round robin preemption and timer increments.
CH_SYS_CORE0_MEMORY os_instance_t ch0
Core 0 OS instance.
bool chSysIntegrityCheckI(unsigned testmask)
System integrity check.
#define CH_SYS_CORE1_MEMORY
Core one memory affinity macro.
#define CH_INTEGRITY_REGISTRY
thread_t * chSysGetIdleThreadX(void)
Returns a pointer to the idle thread.
stkalign_t __c1_main_thread_stack_end__
void chSysPolledDelayX(rtcnt_t cycles)
Polled delay.
const os_instance_config_t ch_core0_cfg
Core 0 OS instance configuration.
void chSysWaitSystemState(system_state_t state)
Waits for the system state to be equal to the specified one.
stkalign_t __c1_main_thread_stack_base__
const os_instance_config_t ch_core1_cfg
Core 1 OS instance configuration.
void chSysRestoreStatusX(syssts_t sts)
Restores the specified execution status and leaves a critical zone.
#define CH_INTEGRITY_RLIST
#define CH_INTEGRITY_PORT
#define currcore
Access to current core's instance structure.
stkalign_t __main_thread_stack_base__
void chSysInit(void)
System initialization.
void chSysHalt(const char *reason)
Halts the system.
#define THD_WORKING_AREA_END(s)
End of a working area casted to the correct type.
#define THD_WORKING_AREA_BASE(s)
Base of a working area casted to the correct type.
#define THD_WORKING_AREA(s, n)
Static working area allocation.
static void __tm_calibration_object_init(tm_calibration_t *tcp)
Time measurement initialization.
void chVTDoTickI(void)
Virtual timers ticker.
#define __trace_halt(reason)
ch_delta_list_t * next
Next in the delta list.
ch_delta_list_t * prev
Previous in the delta list.
virtual_timers_list_t vtlist
Virtual timers delta list header.
ready_list_t rlist
Ready list header.
ch_priority_queue_t * next
Next in the queue.
tprio_t prio
Priority of this element.
ch_priority_queue_t * prev
Previous in the queue.
ch_queue_t * prev
Previous in the queue.
ch_queue_t * next
Next in the list/queue.
ch_priority_queue_t pqueue
Threads ordered queues header.
Type of system data structure.
tm_calibration_t tmc
Time measurement calibration data.
os_instance_t * instances[PORT_CORES_NUMBER]
Initialized OS instances or NULL.
rfcu_t rfcu
Runtime Faults Collection Unit.
system_state_t state
Operating system state.
registry_t reglist
Registry header.
union ch_thread::@065317322233202114332352372014266163076165303275 hdr
Shared list headers.
tslices_t ticks
Number of ticks remaining to this thread.
volatile systime_t time
Thread consumed time in ticks.
ch_priority_queue_t pqueue
Threads ordered queues element.
ch_delta_list_t dlist
Delta list header.