Barrelfish
|
Kernel management of dispatchers. More...
Data Structures | |
struct | guest |
Structure to hold information regarding AMD SVM. More... | |
struct | dcb |
The dispatcher control block. More... | |
Functions | |
void | context_switch (struct dcb *dcb) |
Switch context to 'dcb'. More... | |
errval_t | lmp_can_deliver_payload (struct capability *ep, size_t payload_len) |
Check if it would be possible to deliver LMP payload, but do not deliver it. More... | |
errval_t | lmp_deliver_payload (struct capability *ep, struct dcb *send, uintptr_t *payload, size_t payload_len, bool captransfer, bool now) |
Deliver the payload of an LMP message to a dispatcher. More... | |
errval_t | lmp_deliver (struct capability *ep, struct dcb *send, uintptr_t *payload, size_t payload_len, capaddr_t send_cptr, uint8_t send_bits, bool give_away) |
Deliver an LMP message to a dispatcher. More... | |
Variables | |
uint64_t | context_switch_counter |
Counter for number of context switches. | |
struct dcb * | dcb_current |
The currently running dispatcher and FPU dispatcher. More... | |
struct dcb * | fpu_dcb |
Remembered FPU-using DCB (NULL if none) | |
Kernel management of dispatchers.
void context_switch | ( | struct dcb * | dcb | ) |
Switch context to 'dcb'.
Switch to the dispatcher pointed to by 'dcb'. Sets 'dcb_current'.
dcb | Pointer to dispatcher to which to switch context. |
errval_t lmp_can_deliver_payload | ( | struct capability * | ep, |
size_t | payload_len | ||
) |
Check if it would be possible to deliver LMP payload, but do not deliver it.
ep | Endpoint capability to send to |
payload_len | Length (in number of words) of payload |
errval_t lmp_deliver | ( | struct capability * | ep, |
struct dcb * | send, | ||
uintptr_t * | payload, | ||
size_t | len, | ||
capaddr_t | send_cptr, | ||
uint8_t | send_level, | ||
bool | give_away | ||
) |
Deliver an LMP message to a dispatcher.
ep | Endpoint capability to send to |
send | DCB of the sender. Can be NULL for kernel-originated messages |
payload | Buffer containing message payload |
len | Length of message payload, as number of words |
send_cptr | Capability to be transferred with LMP |
send_level | CSpace level of cptr |
errval_t lmp_deliver_payload | ( | struct capability * | ep, |
struct dcb * | send, | ||
uintptr_t * | payload, | ||
size_t | payload_len, | ||
bool | captransfer, | ||
bool | now | ||
) |
Deliver the payload of an LMP message to a dispatcher.
ep | Endpoint capability to send to |
send | DCB of the sender. Can be NULL for kernel-originated messages |
payload | Message payload |
payload_len | Length (in number of words) of payload |
captransfer | True iff a cap has also been delivered |
struct dcb* dcb_current |
The currently running dispatcher and FPU dispatcher.
The currently running dispatcher and FPU dispatcher.