Barrelfish
Data Structures | Functions | Variables
dispatch.h File Reference

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 dcbdcb_current
 The currently running dispatcher and FPU dispatcher. More...
 
struct dcbfpu_dcb
 Remembered FPU-using DCB (NULL if none)
 

Detailed Description

Kernel management of dispatchers.

Function Documentation

void context_switch ( struct dcb dcb)

Switch context to 'dcb'.

Switch to the dispatcher pointed to by 'dcb'. Sets 'dcb_current'.

Parameters
dcbPointer 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.

Parameters
epEndpoint capability to send to
payload_lenLength (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.

Parameters
epEndpoint capability to send to
sendDCB of the sender. Can be NULL for kernel-originated messages
payloadBuffer containing message payload
lenLength of message payload, as number of words
send_cptrCapability to be transferred with LMP
send_levelCSpace 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.

Parameters
epEndpoint capability to send to
sendDCB of the sender. Can be NULL for kernel-originated messages
payloadMessage payload
payload_lenLength (in number of words) of payload
captransferTrue iff a cap has also been delivered
Returns
Error code

Variable Documentation

struct dcb* dcb_current

The currently running dispatcher and FPU dispatcher.

The currently running dispatcher and FPU dispatcher.