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, Universitaetstrasse 6, CH-8092 Zurich. Attn: Systems Group.
10 interface proc_mgmt "Process management service" {
16 // Add a new spawnd to the process manager's list.
17 message add_spawnd(coreid core, iref iref);
19 // Spawn a new domain, returning its domain cap.
20 rpc spawn(in coreid core,
22 in char argvbuf[argvbytes, 2048],
23 in char envbuf[envbytes, 2048],
28 rpc spawn_with_caps(in coreid core,
30 in char argvbuf[argvbytes, 2048],
31 in char envbuf[envbytes, 2048],
38 // Span a new core for a given domain, based on provided vroot and dispframe.
39 rpc span(in cap domain_cap, in coreid core, in cap vroot, in cap dispframe,
42 // Kill a domain for which the caller has a domain cap.
43 rpc kill(in cap domain_cap, out errval err);
45 // Let the process manager know the caller has finished execution.
46 //message exit(cap domain_cap, uint8 status);
47 rpc exit(in cap domain_cap, in uint8 status);
49 rpc wait(in cap domain_cap, in bool nohang, out errval err, out uint8 status);
52 rpc get_status(in uint32 domainid, out ps_entry ps_entry,
53 out char argv[len, 2048], out errval err);
55 // 4 uint8 are merged to a 32 bit domaind.
56 rpc get_domainlist(out uint8 domains[len, 4096]);