summaryrefslogtreecommitdiff
path: root/debian/patches/io_select_timeout
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches/io_select_timeout')
-rw-r--r--debian/patches/io_select_timeout104
1 files changed, 104 insertions, 0 deletions
diff --git a/debian/patches/io_select_timeout b/debian/patches/io_select_timeout
new file mode 100644
index 00000000..6ff81e68
--- /dev/null
+++ b/debian/patches/io_select_timeout
@@ -0,0 +1,104 @@
+commit cc36b5a5e2e8df6e633bb767df84ac1e61c56bc3
+Author: Richard Braun <rbraun@sceen.net>
+Date: Tue Feb 26 22:24:42 2013 +0100
+
+ Add the timespec_t Hurd type
+
+ This type matches the standard struct timespec, and allows passing time
+ values with nanosecond precision in RPCs.
+
+ * hurd/hurd_types.defs (timespec_t): New MIG type.
+ * hurd/hurd_types.h: Include <time.h>.
+ (timespec_t): New C type, aliasing struct timespec.
+
+diff --git a/hurd/hurd_types.defs b/hurd/hurd_types.defs
+index 5ad5e93..4b32504 100644
+--- a/hurd/hurd_types.defs
++++ b/hurd/hurd_types.defs
+@@ -230,6 +230,8 @@ type rusage_t = struct[18] of int; /* XXX */
+
+ type flock_t = struct[5] of int;
+
++type timespec_t = struct[2] of int;
++
+ #define _SYS_UTSNAME_H /* Inhibit warning from <bits/utsname.h>. */
+ #include <bits/utsname.h>
+ type utsname_t = struct[5 * _UTSNAME_LENGTH] of char;
+diff --git a/hurd/hurd_types.h b/hurd/hurd_types.h
+index e1a644f..7d1bb73 100644
+--- a/hurd/hurd_types.h
++++ b/hurd/hurd_types.h
+@@ -20,6 +20,7 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
+ #ifndef _HURD_TYPES_H
+ #define _HURD_TYPES_H
+
++#include <time.h> /* For struct timespec. */
+ #include <mach/std_types.h> /* For mach_port_t et al. */
+ #include <mach/message.h> /* For mach_msg_id_t et al. */
+ #include <sys/types.h> /* For pid_t and uid_t. */
+@@ -69,6 +70,7 @@ typedef struct statfs fsys_statfsbuf_t;
+ typedef struct stat64 io_statbuf_t;
+ typedef struct statfs64 fsys_statfsbuf_t;
+ #endif
++typedef struct timespec timespec_t;
+
+
+ /* Parameters and flags in RPC calls */
+
+
+commit 8cd75c4d6b229bb4e3de9264466731e3a32e0133
+Author: Richard Braun <rbraun@sceen.net>
+Date: Tue Feb 26 22:24:47 2013 +0100
+
+ Add io_select_timeout to the io interface
+
+ * hurd/io.defs (io_select_timeout): New MIG routine.
+ * hurd/io_reply.defs (io_select_timeout_reply): New MIG simpleroutine.
+ * hurd/io_request.defs (io_select_timeout_request): Likewise.
+
+diff --git a/hurd/io.defs b/hurd/io.defs
+index 9119b05..ba0b807 100644
+--- a/hurd/io.defs
++++ b/hurd/io.defs
+@@ -320,3 +320,14 @@ routine io_identity (
+ on the specified object. */
+ routine io_revoke (
+ io_object: io_t RPTLAST);
++
++/* INTR */
++routine io_select_timeout (
++ io_object: io_t;
++#if defined (REPLY_PORTS) || defined (IO_SELECT_REPLY_PORT)
++ replyport reply: sreply_port_t;
++#else
++ ureplyport reply: mach_port_make_send_t;
++#endif
++ timeout: timespec_t;
++ inout select_type: int);
+diff --git a/hurd/io_reply.defs b/hurd/io_reply.defs
+index ffc4e75..eee6824 100644
+--- a/hurd/io_reply.defs
++++ b/hurd/io_reply.defs
+@@ -175,3 +175,8 @@ simpleroutine io_identity_reply (
+ simpleroutine io_revoke_reply (
+ reply: reply_port_t;
+ RETURN_CODE_ARG);
++
++simpleroutine io_select_timeout_reply (
++ reply: reply_port_t;
++ RETURN_CODE_ARG;
++ select_result: int);
+diff --git a/hurd/io_request.defs b/hurd/io_request.defs
+index a3e775a..0d5e36d 100644
+--- a/hurd/io_request.defs
++++ b/hurd/io_request.defs
+@@ -172,3 +172,9 @@ simpleroutine io_identity_request (
+ simpleroutine io_revoke_request (
+ io_object: io_t;
+ reply: reply_port_t);
++
++simpleroutine io_select_timeout_request (
++ io_object: io_t;
++ ureplyport reply: mach_port_make_send_t;
++ timeout: timespec_t;
++ select_type: int);