Changes for nameservice. Use RPC client for NS functionality.
[barrelfish] / include / barrelfish / domain.h
1 /**
2  * \file
3  * \brief
4  */
5
6 /*
7  * Copyright (c) 2009, 2010, 2011, ETH Zurich.
8  * All rights reserved.
9  *
10  * This file is distributed under the terms in the attached LICENSE file.
11  * If you do not find this file, copies can be found by writing to:
12  * ETH Zurich D-INFK, Haldeneggsteig 4, CH-8092 Zurich. Attn: Systems Group.
13  */
14
15 #ifndef BARRELFISH_DOMAIN_H
16 #define BARRELFISH_DOMAIN_H
17
18 typedef void (*domain_spanned_callback_t)(void *arg, errval_t err);
19
20 struct mem_rpc_client;
21 struct dist2_rpc_client;
22 struct monitor_binding;
23 struct monitor_blocking_rpc_client;
24 struct waitset;
25 struct spawn_rpc_client;
26
27 struct waitset *get_default_waitset(void);
28 void disp_set_core_id(coreid_t core_id);
29 coreid_t disp_get_core_id(void);
30 domainid_t disp_get_domain_id(void);
31 coreid_t disp_handle_get_core_id(dispatcher_handle_t handle);
32 void set_monitor_binding(struct monitor_binding *b);
33 struct monitor_binding *get_monitor_binding(void);
34 void set_monitor_blocking_rpc_client(struct monitor_blocking_rpc_client *st);
35 struct monitor_blocking_rpc_client *get_monitor_blocking_rpc_client(void);
36 void set_mem_client(struct mem_rpc_client *st);
37 struct mem_rpc_client *get_mem_client(void);
38 struct pinned_state *get_current_pinned_state(void);
39 struct vspace *get_current_vspace(void);
40 struct pmap *get_current_pmap(void);
41 struct morecore_state *get_morecore_state(void);
42 struct ram_alloc_state *get_ram_alloc_state(void);
43 void set_nameservice_rpc_client(struct dist2_rpc_client *st);
44 struct dist2_rpc_client *get_nameservice_rpc_client(void);
45 void set_spawn_rpc_client(coreid_t core, struct spawn_rpc_client *st);
46 struct spawn_rpc_client *get_spawn_rpc_client(coreid_t core);
47 struct terminal_state *get_terminal_state(void);
48 void set_terminal_state(struct terminal_state *st);
49 struct domain_state *get_domain_state(void);
50 void set_domain_state(struct domain_state *st);
51 struct spawn_state *get_spawn_state(void);
52 void set_spawn_state(struct spawn_state *st);
53 struct slot_alloc_state *get_slot_alloc_state(void);
54 struct skb_state *get_skb_state(void);
55
56 errval_t domain_init(void);
57 errval_t domain_new_dispatcher(coreid_t core_id,
58                                domain_spanned_callback_t callback,
59                                void *callback_arg);
60 errval_t domain_thread_create_on(coreid_t core_id, thread_func_t start_func,
61                                  void *arg);
62 errval_t domain_thread_create_on_varstack(coreid_t core_id,
63                                           thread_func_t start_func,
64                                           void *arg, size_t stacksize);
65 errval_t domain_send_cap(coreid_t core_id, struct capref cap);
66 errval_t domain_wakeup_on(dispatcher_handle_t disp, struct thread *thread);
67 errval_t domain_wakeup_on_disabled(dispatcher_handle_t disp,
68                                    struct thread *thread,
69                                    dispatcher_handle_t mydisp);
70 errval_t domain_thread_move_to(struct thread *thread, coreid_t core_id);
71
72 #endif