ChibiOS
21.6.0
|
OS instances management.
Macros | |
#define | __instance_get_currthread(oip) (oip)->rlist.current |
Current thread pointer get macro. More... | |
#define | __instance_set_currthread(oip, tp) (oip)->rlist.current = (tp) |
Current thread pointer set macro. More... | |
Functions | |
static void | __idle_thread (void *p) |
This function implements the idle thread infinite loop. More... | |
void | chInstanceObjectInit (os_instance_t *oip, const os_instance_config_t *oicp) |
Initializes a system instance. More... | |
#define __instance_get_currthread | ( | oip | ) | (oip)->rlist.current |
Current thread pointer get macro.
chThdGetSelfX()
instead. Definition at line 56 of file chinstances.h.
#define __instance_set_currthread | ( | oip, | |
tp | |||
) | (oip)->rlist.current = (tp) |
Current thread pointer set macro.
Definition at line 61 of file chinstances.h.
|
static |
This function implements the idle thread infinite loop.
The function puts the processor in the lowest power mode capable to serve interrupts.
The priority is internally set to the minimum system value so that this thread is executed only if there are no other ready threads in the system.
[in] | p | the thread parameter, unused in this scenario |
Definition at line 62 of file chinstances.c.
References CH_CFG_IDLE_LOOP_HOOK, and port_wait_for_interrupt().
void chInstanceObjectInit | ( | os_instance_t * | oip, |
const os_instance_config_t * | oicp | ||
) |
Initializes a system instance.
[out] | oip | pointer to the os_instance_t structure |
[in] | oicp | pointer to the os_instance_config_t structure |
Definition at line 89 of file chinstances.c.
References __dbg_object_init(), __reg_object_init(), __rfcu_object_init(), __stats_object_init(), __thd_object_init(), __trace_object_init(), __vt_object_init(), ch_pqueue_init(), chDbgAssert, ch_os_instance::config, ch_os_instance::core_id, ch_ready_list::current, ch_os_instance::dbg, ch_system::instances, ch_os_instance::kernel_stats, ch_os_instance::mainthread, ch_ready_list::pqueue, ch_os_instance::reglist, ch_os_instance::rfcu, ch_os_instance::rlist, ch_os_instance::trace_buffer, and ch_os_instance::vtlist.