Barrelfish
|
The kernel control block. More...
Data Fields | |
bool | is_valid |
kcb has been initialized by a kernel before | |
struct kcb * | next |
lvaddr_t | mdb_root |
mdb root node | |
enum sched_state | sched |
which scheduler state is valid | |
struct dcb * | ring_current |
RR scheduler state. | |
struct dcb * | queue_head |
RBED scheduler state. | |
struct dcb * | wakeup_queue_head |
int64_t | kernel_off |
last value of kernel_now before shutdown/migration | |
The kernel control block.
this is the memory layout of ObjType_KernelControlBlock this struct should contain all the persistent state that belongs to a kernel.
struct kcb* kcb::next |
kcb scheduling ring. These fields point to the next and previous kcb that should be scheduled when we're running multiple kcbs on the same kernel. invariant: next == NULL –> prev == NULL invariant: next is the next kcb in the ring and prev is the previous kcb in the ring
struct dcb* kcb::wakeup_queue_head |
current time since kernel start in timeslices. This is necessary to make the scheduler work correctly wakeup queue head