about summary refs log tree commit diff
path: root/sysdeps/mach
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>1999-01-25 08:42:15 +0000
committerRoland McGrath <roland@gnu.org>1999-01-25 08:42:15 +0000
commitd7440f640efc06dfadd9ebf2ffa9a3f262e0be3b (patch)
treeb0e8c4166f256fa77349b9e2fdf48b2c2dd1471b /sysdeps/mach
parentb710a6e220839b768df24ffa59ff0a7f3e1ca943 (diff)
downloadglibc-d7440f640efc06dfadd9ebf2ffa9a3f262e0be3b.tar.gz
glibc-d7440f640efc06dfadd9ebf2ffa9a3f262e0be3b.tar.xz
glibc-d7440f640efc06dfadd9ebf2ffa9a3f262e0be3b.zip
1999-01-24 Roland McGrath <roland@baalperazim.frob.com>
* sysdeps/mach/hurd/ioctl.c: Include <hurd/ioctls.defs>. 
(__ioctl): Use IOC_MSGID macro.
Diffstat (limited to 'sysdeps/mach')
-rw-r--r--sysdeps/mach/hurd/ioctl.c16
1 files changed, 4 insertions, 12 deletions
diff --git a/sysdeps/mach/hurd/ioctl.c b/sysdeps/mach/hurd/ioctl.c
index 1a7c42aad7..8d8ac9adcd 100644
--- a/sysdeps/mach/hurd/ioctl.c
+++ b/sysdeps/mach/hurd/ioctl.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992, 93, 94, 95, 96, 97 Free Software Foundation, Inc.
+/* Copyright (C) 1992, 93, 94, 95, 96, 97, 99 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -28,6 +28,8 @@
 #include <hurd/ioctl.h>
 #include <mach/mig_support.h>
 
+#include <hurd/ioctls.defs>
+
 #define typesize(type)	(1 << (type))
 
 
@@ -144,17 +146,7 @@ __ioctl (int fd, unsigned long int request, ...)
 
   /* Compute the Mach message ID for the RPC from the group and command
      parts of the ioctl request.  */
-  msgid = 100000 + ((_IOC_GROUP (request) - 'f') * 4000); /* Base subsystem */
-  /* Because of MiG's poorly chosen algorithm of adding 100 to a request
-     msgid to produce the reply msgid, we cannot just add the command part
-     of the ioctl request to the subsystem base msgid.  For ioctl requests
-     past 99, we must skip blocks of 100 msgids to allow for the reply
-     msgids corresponding to the earlier requests.  */
-  if (_IOC_COMMAND (request) >= 100)
-    msgid += 100;
-  if (_IOC_COMMAND (request) >= 200)
-    msgid += 100;
-  msgid += _IOC_COMMAND (request);
+  msgid = IOC_MSGID (request);
 
   if (_IOC_INOUT (request) & IOC_IN)
     {