readme: add NXP iMX8X to supported platforms
[barrelfish] / usr / proc_mgmt / pending_clients.h
1 /*
2  * \brief Client handling internals for the process manager.
3  *
4  * Copyright (c) 2017, ETH Zurich.
5  * All rights reserved.
6  *
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, Universitaetstrasse 6, CH-8092 Zurich. Attn: Systems Group.
10  */
11
12 #ifndef PENDING_CLIENTS_H
13 #define PENDING_CLIENTS_H
14
15 #include <barrelfish/barrelfish.h>
16 #include <if/proc_mgmt_defs.h>
17 #include <if/spawn_defs.h>
18
19 #include "domain.h"
20
21 #define HASH_INDEX_BUCKETS 6151
22
23 enum ClientType {
24         ClientType_Spawn,
25         ClientType_SpawnWithCaps,
26         ClientType_Span,
27         ClientType_Kill,
28         ClientType_Exit,
29         ClientType_Cleanup
30 };
31
32 struct pending_spawn {
33     struct domain_cap_node *cap_node;
34
35         struct spawn_binding *b;
36         coreid_t core_id;
37         
38         const char *path;
39         
40         const char *argvbuf;
41         size_t argvbytes;
42         const char *envbuf;
43         size_t envbytes;
44         
45         struct capref inheritcn_cap;
46         struct capref argcn_cap;
47         
48         uint8_t flags;
49 };
50
51 struct pending_span {
52         struct capref domain_cap;
53     struct domain_entry *entry;
54
55         struct spawn_binding *b;
56
57         coreid_t core_id;
58         struct capref vroot;
59         struct capref dispframe;
60 };
61
62 struct pending_kill_cleanup {
63         struct capref domain_cap;
64     struct domain_entry *entry;
65         struct spawn_binding *b;
66 };
67
68 struct pending_client {
69         struct proc_mgmt_binding *b;
70         enum ClientType type;
71         void *st;
72 };
73
74 #endif  // PENDING_CLIENTS_H