14static uint32_t prio_curr;
15static uint8_t prio_tbl[OS_PRIO_TBL_SIZE];
23 for (i = 0u; i < OS_PRIO_TBL_SIZE; i++)
40 row = (uint32_t)(prio / (8u));
41 bit = (uint8_t)prio & ((8u) - 1u);
42 prio_tbl[row] |= (uint8_t)1u << (((8u) - 1u) - bit);
54 row = (uint32_t)(prio / (8u));
55 bit = (uint8_t)prio & ((8u) - 1u);
56 prio_tbl[row] &= ~((uint8_t)1u << (((8u) - 1u) - bit));
76 uint8_t bit = (uint8_t)prio & ((8u) - 1u);
77 while (!(*p_tbl & ((uint8_t)1u << (((8u) - 1u) - bit))))
80 bit = (uint8_t)prio & ((8u) - 1u);
uint32_t akos_priority_get_current(void)
Get current scheduler priority tracker.
void akos_priority_init()
Initialize ready-priority bitmap table.
void akos_priority_insert(uint32_t prio)
Insert priority into ready bitmap.
void akos_priority_remove(uint32_t prio)
Remove priority from ready bitmap.
uint32_t akos_priority_get_highest(void)
Get highest ready priority.
Priority bitmap scheduler helpers.