Add spawn, spawn_with_caps and span calls to the Process Manager API.
[barrelfish] / if / proc_mgmt.if
index b957e34..3309307 100644 (file)
@@ -9,27 +9,43 @@
 
 interface proc_mgmt "Process management service" {
   
-  // Allocate a new endpoint for a future connecting client.
-  rpc alloc_ep(out errval err, out cap ep);
+  // Add a new spawnd to the process manager's list.
+  message add_spawnd(coreid core, iref iref);
 
-  // Spawn a new domain, returning its domainid cap.
+  // Spawn a new domain, returning its domain cap.
   rpc spawn(in coreid core,
             in String path[2048],
             in char argvbuf[argvbytes, 2048],
             in char envbuf[envbytes, 2048],
             in uint8 flags,
             out errval err,
-            out cap domainid_cap);
+            out cap domain_cap);
 
+  rpc spawn_with_caps(in coreid core,
+                      in String path[2048],
+                      in char argvbuf[argvbytes, 2048],
+                      in char envbuf[envbytes, 2048],
+                      in cap inheritcn_cap,
+                      in cap argcn_cap,
+                      in uint8 flags,
+                      out errval err,
+                      out cap domain_cap);
+
+  // Span a new core for a given domain, based on provided vroot and dispframe.
+  rpc span(in cap domain_cap, in coreid core, in cap vroot, in cap dispframe,
+           out errval err);
+
+  // Kill a domain for which the caller has a domain cap.
+  rpc kill(in cap domain_cap, out errval err);
+
+  /*
   // Span the caller to a new core.
   rpc span(in cap domainid_cap,
            in coreid core,
            in cap vroot,
            in cap disp_mem,
            out errval err);
-
-  // Kill a domain for which the caller has a domainid cap.
-  rpc kill(in cap domainid_cap, out errval err);
+  */
 
   // TODO(razvan): exit, wait, status, some other calls from spawn.if?
 };