Barrelfish
|
Manage domain spanning cores. More...
Functions | |
errval_t | domain_init (void) |
Initialize the domain library. More... | |
errval_t | domain_new_dispatcher (coreid_t core_id, domain_spanned_callback_t callback, void *callback_arg) |
Creates a dispatcher on a remote core. More... | |
void | disp_set_core_id (coreid_t core_id) |
set the core_id. More... | |
void | disp_get_eh_frame (lvaddr_t *eh_frame, size_t *eh_frame_size) |
returns the address and the size of the EH frame More... | |
void | disp_get_eh_frame_hdr (lvaddr_t *eh_frame_hdr, size_t *eh_frame_hdr_size) |
returns the address and the size of the EH frame header More... | |
coreid_t | disp_get_core_id (void) |
returns the core_id stored in disp_priv struct | |
coreid_t | disp_get_current_core_id (void) |
returns the current core_id stored in disp_shared struct | |
domainid_t | disp_get_domain_id (void) |
returns the domain_id stored in disp_priv struct | |
coreid_t | disp_handle_get_core_id (dispatcher_handle_t handle) |
returns the core_id stored in disp_priv struct | |
void | set_monitor_binding (struct monitor_binding *b) |
set the monitor client binding on the dispatcher priv | |
struct monitor_binding * | get_monitor_binding (void) |
Returns the monitor client binding on the dispatcher priv. | |
void | set_monitor_blocking_binding (struct monitor_blocking_binding *st) |
set the blocking rpc monitor client binding on the dispatcher priv | |
struct monitor_blocking_binding * | get_monitor_blocking_binding (void) |
Returns the blocking rpc monitor client binding on the dispatcher priv. | |
void | set_mem_client (struct mem_binding *st) |
set the mem client on the dispatcher priv | |
struct mem_binding * | get_mem_client (void) |
Returns the mem client on the dispatcher priv. | |
struct vspace * | get_current_vspace (void) |
Returns a pointer to the current vspace on the dispatcher priv. | |
struct pinned_state * | get_current_pinned_state (void) |
Returns a pointer to the current pinned state on the dispatcher priv. | |
struct pmap * | get_current_pmap (void) |
Returns a pointer to the current pmap on the dispatcher priv. | |
struct morecore_state * | get_morecore_state (void) |
Returns a pointer to the morecore state on the dispatcher priv. | |
struct ram_alloc_state * | get_ram_alloc_state (void) |
Returns a pointer to the ram_alloc state on the dispatcher priv. | |
struct skb_state * | get_skb_state (void) |
Returns a pointer to the ram_alloc state on the dispatcher priv. | |
struct octopus_binding * | get_octopus_binding (void) |
Returns a pointer to the octopus rpc client on the dispatcher priv. | |
void | set_octopus_binding (struct octopus_binding *c) |
Sets the octopus rpc client on the dispatcher priv. | |
struct spawn_binding * | get_spawn_binding (coreid_t core) |
Returns a pointer to the chips_context state on the dispatcher priv. | |
void | set_spawn_binding (coreid_t core, struct spawn_binding *c) |
set the chips_context state on the dispatcher priv | |
void | set_arrakis_binding (coreid_t core, struct arrakis_binding *c) |
set the chips_context state on the dispatcher priv | |
struct terminal_state * | get_terminal_state (void) |
Returns a pointer to the terminal state on the dispatcher priv. | |
void | set_terminal_state (struct terminal_state *st) |
set the terminal state on the dispatcher priv | |
struct domain_state * | get_domain_state (void) |
Returns a pointer to the domain state on the dispatcher priv. | |
void | set_domain_state (struct domain_state *st) |
set the domain state on the dispatcher priv | |
struct spawn_state * | get_spawn_state (void) |
Returns a pointer to the spawn state on the dispatcher priv. | |
void | set_spawn_state (struct spawn_state *st) |
set the spawn state on the dispatcher priv | |
struct slot_alloc_state * | get_slot_alloc_state (void) |
Returns a pointer to the spawn state on the dispatcher priv. | |
Manage domain spanning cores.
void disp_get_eh_frame | ( | lvaddr_t * | eh_frame, |
size_t * | eh_frame_size | ||
) |
returns the address and the size of the EH frame
eh_frame | returned virtual address of the EH frame |
eh_frame_size | returned size of the EH frame |
void disp_get_eh_frame_hdr | ( | lvaddr_t * | eh_frame_hdr, |
size_t * | eh_frame_hdr_size | ||
) |
returns the address and the size of the EH frame header
eh_frame | returned virtual address of the EH frame |
eh_frame_size | returned size of the EH frame |
void disp_set_core_id | ( | coreid_t | core_id | ) |
set the core_id.
Code using this should do a kernel_cap invocation to get the core_id first.
errval_t domain_init | ( | void | ) |
Initialize the domain library.
Registers a iref with the monitor to offer the interdisp service on this core Does not block for completion.
errval_t domain_new_dispatcher | ( | coreid_t | core_id, |
domain_spanned_callback_t | callback, | ||
void * | callback_arg | ||
) |
Creates a dispatcher on a remote core.
core_id | Id of the core to create the dispatcher on |
callback | Callback to use when new dispatcher is created |
The new dispatcher is created with the same vroot, sharing the same vspace. The new dispatcher also has a urpc connection to the core that created it.