summaryrefslogtreecommitdiff
path: root/lib.c
diff options
context:
space:
mode:
authorJustus Winter <4winter@informatik.uni-hamburg.de>2013-08-03 09:47:12 +0200
committerJustus Winter <4winter@informatik.uni-hamburg.de>2013-08-03 10:40:38 +0200
commit042a0db8b705abc0e5a5fec61309a1fe05878931 (patch)
tree248fca6e81b4d55a543fabe543aafc6c0c8f7065 /lib.c
parent06c3b46e273598a94480df39d01617c14764ee39 (diff)
Refactor and remove unused code
Diffstat (limited to 'lib.c')
-rw-r--r--lib.c59
1 files changed, 59 insertions, 0 deletions
diff --git a/lib.c b/lib.c
new file mode 100644
index 0000000..c344284
--- /dev/null
+++ b/lib.c
@@ -0,0 +1,59 @@
+/* Reincarnation services for translators.
+
+ Copyright (C) 2013 Free Software Foundation, Inc.
+
+ Written by Justus Winter <4winter@informatik.uni-hamburg.de>
+
+ This file might one day be a part of the GNU Hurd.
+
+ This program is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License as
+ published by the Free Software Foundation; either version 2, or (at
+ your option) any later version.
+
+ This program is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include <mach/mach_param.h>
+#include "reincarnation.h"
+
+error_t
+reincarnation_set_port (task_t task, mach_port_t port)
+{
+ error_t err;
+
+ mach_port_t *ports;
+ size_t ports_len;
+ err = mach_ports_lookup (task,
+ &ports, &ports_len);
+ if (err)
+ return err;
+
+ ports[TASK_PORT_REGISTER_REINCARNATION] = port;
+
+ err = mach_ports_register (task,
+ ports,
+ TASK_PORT_REGISTER_MAX);
+ return err;
+}
+
+error_t
+reincarnation_get_port (task_t task, mach_port_t *port)
+{
+ error_t err;
+
+ mach_port_t *ports = NULL;
+ size_t ports_len = 0;
+ err = mach_ports_lookup (task,
+ &ports, &ports_len);
+ if (err)
+ return err;
+
+ *port = ports[TASK_PORT_REGISTER_REINCARNATION];
+ return 0;
+}