Barrelfish
Functions
domain.h File Reference

Functions

void disp_set_core_id (coreid_t core_id)
 set the core_id. 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
 
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...
 
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 pinned_state * get_current_pinned_state (void)
 Returns a pointer to the current pinned state on the dispatcher priv.
 
struct vspace * get_current_vspace (void)
 Returns a pointer to the current vspace 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.
 
void set_octopus_binding (struct octopus_binding *st)
 Sets the octopus rpc client 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_spawn_binding (coreid_t core, struct spawn_binding *st)
 set the chips_context state on the dispatcher priv
 
void set_arrakis_binding (coreid_t core, struct arrakis_binding *st)
 set the chips_context state 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.
 
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.
 
struct skb_state * get_skb_state (void)
 Returns a pointer to the ram_alloc state on the dispatcher priv.
 
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...
 

Function Documentation

void disp_get_eh_frame ( lvaddr_t *  eh_frame,
size_t *  eh_frame_size 
)

returns the address and the size of the EH frame

Parameters
eh_framereturned virtual address of the EH frame
eh_frame_sizereturned 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

Parameters
eh_framereturned virtual address of the EH frame
eh_frame_sizereturned 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.

Parameters
core_idId of the core to create the dispatcher on
callbackCallback 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.