2 * Copyright (c) 2017, ETH Zurich.
5 * This file is distributed under the terms in the attached LICENSE file.
6 * If you do not find this file, copies can be found by writing to:
7 * ETH Zurich D-INFK, Haldeneggsteig 4, CH-8092 Zurich. Attn: Systems Group.
10 interface proc_mgmt "Process management service" {
12 // Add a new spawnd to the process manager's list.
13 message add_spawnd(coreid core, iref iref);
15 // Spawn a new domain, returning its domain cap.
16 rpc spawn(in coreid core,
18 in char argvbuf[argvbytes, 2048],
19 in char envbuf[envbytes, 2048],
24 rpc spawn_with_caps(in coreid core,
26 in char argvbuf[argvbytes, 2048],
27 in char envbuf[envbytes, 2048],
34 // Span a new core for a given domain, based on provided vroot and dispframe.
35 rpc span(in cap domain_cap, in coreid core, in cap vroot, in cap dispframe,
38 // Kill a domain for which the caller has a domain cap.
39 rpc kill(in cap domain_cap, out errval err);
41 // Let the process manager know the caller has finished execution.
42 //message exit(cap domain_cap, uint8 status);
43 rpc exit(in cap domain_cap, in uint8 status);
45 rpc wait(in cap domain_cap, out errval err, out uint8 status);
47 // TODO(razvan): exit, wait, status, some other calls from spawn.if?