Implement kill() and exit() in the process manager.
[barrelfish] / lib / barrelfish / proc_mgmt_client.c
index 130c868..775fcc0 100644 (file)
@@ -487,3 +487,24 @@ errval_t proc_mgmt_kill(struct capref domain_cap)
 
     return msgerr;
 }
+
+/**
+ * \brief Inform the process manager about exiting execution.
+ */
+errval_t proc_mgmt_exit(uint8_t status )
+{
+    errval_t err = proc_mgmt_bind_client();
+    if (err_is_fail(err)) {
+        return err;
+    }
+
+    struct proc_mgmt_binding *b = get_proc_mgmt_binding();
+    assert(b != NULL);
+
+    err = b->tx_vtbl.exit(b, NOP_CONT, cap_domainid, status);
+    if (err_is_fail(err)) {
+        return err;
+    }
+
+    return SYS_ERR_OK;
+}