diff options
author | Justus Winter <4winter@informatik.uni-hamburg.de> | 2014-11-20 22:03:34 +0100 |
---|---|---|
committer | Justus Winter <4winter@informatik.uni-hamburg.de> | 2014-11-20 22:03:34 +0100 |
commit | e9d7ec79422b25cfa62070a40f6f961412879087 (patch) | |
tree | dc2173570cf76a4568350462b2fbad57e1e96cf1 /debian/patches/0008-boot-implement-pseudo-time-device.patch | |
parent | 15243344dbf0e44764d1fa083b81903d613a43ba (diff) |
drop old patch series
Diffstat (limited to 'debian/patches/0008-boot-implement-pseudo-time-device.patch')
-rw-r--r-- | debian/patches/0008-boot-implement-pseudo-time-device.patch | 87 |
1 files changed, 0 insertions, 87 deletions
diff --git a/debian/patches/0008-boot-implement-pseudo-time-device.patch b/debian/patches/0008-boot-implement-pseudo-time-device.patch deleted file mode 100644 index c690b674..00000000 --- a/debian/patches/0008-boot-implement-pseudo-time-device.patch +++ /dev/null @@ -1,87 +0,0 @@ -From 15e19afadfc8103f82682265bbbcae00c42b3674 Mon Sep 17 00:00:00 2001 -From: Justus Winter <4winter@informatik.uni-hamburg.de> -Date: Fri, 7 Nov 2014 00:27:03 +0100 -Subject: [PATCH hurd 08/14] boot: implement pseudo-time device - -* boot/boot.c (pseudo_time): New variable. -(main): Allocate port `pseudo_time'. -(ds_device_open): Give out `pseudo_time'. -(ds_device_map): Emulate Mach-style `Mapped Time'. ---- - boot/boot.c | 38 +++++++++++++++++++++++++++++++++++--- - 1 file changed, 35 insertions(+), 3 deletions(-) - -diff --git a/boot/boot.c b/boot/boot.c -index d35ce50..747ab73 100644 ---- a/boot/boot.c -+++ b/boot/boot.c -@@ -112,7 +112,7 @@ typedef struct stat host_stat_t; - mach_port_t privileged_host_port, master_device_port; - mach_port_t pseudo_master_device_port; - mach_port_t receive_set; --mach_port_t pseudo_console, pseudo_root; -+mach_port_t pseudo_console, pseudo_root, pseudo_time; - auth_t authserver; - - struct store *root_store; -@@ -534,6 +534,15 @@ main (int argc, char **argv, char **envp) - if (foo != MACH_PORT_NULL) - mach_port_deallocate (mach_task_self (), foo); - -+ mach_port_allocate (mach_task_self (), MACH_PORT_RIGHT_RECEIVE, -+ &pseudo_time); -+ mach_port_move_member (mach_task_self (), pseudo_time, receive_set); -+ mach_port_request_notification (mach_task_self (), pseudo_time, -+ MACH_NOTIFY_NO_SENDERS, 1, pseudo_time, -+ MACH_MSG_TYPE_MAKE_SEND_ONCE, &foo); -+ if (foo != MACH_PORT_NULL) -+ mach_port_deallocate (mach_task_self (), foo); -+ - if (kernel_command_line == 0) - asprintf (&kernel_command_line, "%s %s root=%s", - argv[0], bootstrap_args, bootdevice); -@@ -894,6 +903,12 @@ ds_device_open (mach_port_t master_port, - *devicetype = MACH_MSG_TYPE_MAKE_SEND; - return 0; - } -+ else if (!strcmp (name, "time")) -+ { -+ *device = pseudo_time; -+ *devicetype = MACH_MSG_TYPE_MAKE_SEND; -+ return 0; -+ } - else if (strcmp (name, "pseudo-root") == 0) - /* Magic root device. */ - { -@@ -1125,9 +1140,26 @@ ds_device_map (device_t device, - memory_object_t *pager, - int unmap) - { -- if (device != pseudo_console && device != pseudo_root) -+ if (device == pseudo_console || device == pseudo_root) -+ return D_INVALID_OPERATION; -+ else if (device == pseudo_time) -+ { -+ error_t err; -+ mach_port_t wr_memobj; -+ file_t node = file_name_lookup ("/dev/time", O_RDONLY, 0); -+ -+ if (node == MACH_PORT_NULL) -+ return D_IO_ERROR; -+ -+ err = io_map (node, pager, &wr_memobj); -+ if (!err && MACH_PORT_VALID (wr_memobj)) -+ mach_port_deallocate (mach_task_self (), wr_memobj); -+ -+ mach_port_deallocate (mach_task_self (), node); -+ return D_SUCCESS; -+ } -+ else - return D_NO_SUCH_DEVICE; -- return D_INVALID_OPERATION; - } - - kern_return_t --- -2.1.1 - |