Add spawn, spawn_with_caps and span calls to the Process Manager API.
[barrelfish] / if / proc_mgmt.if
index 07a73d3..3309307 100644 (file)
@@ -12,25 +12,39 @@ interface proc_mgmt "Process management service" {
   // 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?