|
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.
1.8.11