Change 'exit' from RPC to message in if/proc_mgmt.if.
[barrelfish] / if / proc_mgmt.if
index 07a73d3..7c53aa3 100644 (file)
@@ -12,26 +12,35 @@ 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);
 
-  // Span the caller to a new core.
-  rpc span(in cap domainid_cap,
-           in coreid core,
-           in cap vroot,
-           in cap disp_mem,
+  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 domainid cap.
-  rpc kill(in cap domainid_cap, out errval err);
-  */
+  // Kill a domain for which the caller has a domain cap.
+  rpc kill(in cap domain_cap, out errval err);
+
+  // Let the process manager know the caller has finished execution.
+  message exit(cap domain_cap, uint8 status);
+  //rpc exit(in cap domain_cap, in uint8 status);
 
-  // TODO(razvan): exit, wait, status, some other calls from spawn.if?
+  rpc wait(in cap domain_cap, out errval err, out uint8 status);
 };