2 * \brief Client handling internals for the process manager.
4 * Copyright (c) 2017, ETH Zurich.
7 * This file is distributed under the terms in the attached LICENSE file.
8 * If you do not find this file, copies can be found by writing to:
9 * ETH Zurich D-INFK, Haldeneggsteig 4, CH-8092 Zurich. Attn: Systems Group.
12 #ifndef PENDING_CLIENTS_H
13 #define PENDING_CLIENTS_H
15 #include <barrelfish/barrelfish.h>
16 #include <if/proc_mgmt_defs.h>
17 #include <if/spawn_defs.h>
19 #define HASH_INDEX_BUCKETS 6151
23 ClientType_SpawnWithCaps,
28 // TODO(razvan): Others?
31 struct pending_spawn {
32 struct capref domain_cap;
34 struct spawn_binding *b;
44 struct capref inheritcn_cap;
45 struct capref argcn_cap;
51 struct capref domain_cap;
53 struct spawn_binding *b;
57 struct capref dispframe;
60 struct pending_kill_exit_cleanup {
61 struct capref domain_cap;
62 struct spawn_binding *sb;
63 struct proc_mgmt_binding *pmb;
66 struct pending_client {
67 struct proc_mgmt_binding *b;
69 struct capref domain_cap;
74 struct pending_client *next;
77 errval_t pending_clients_add(struct capref domain_cap,
78 struct proc_mgmt_binding *b, enum ClientType type,
80 errval_t pending_clients_release(struct capref domain_cap, enum ClientType type,
81 struct pending_client **ret_cl);
82 errval_t pending_clients_release_one(struct capref domain_cap,
84 struct proc_mgmt_binding *b,
85 struct pending_client **ret_cl);
87 #endif // PENDING_CLIENTS_H