aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/mach/hurd
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/hurd
parentb710a6e220839b768df24ffa59ff0a7f3e1ca943 (diff)
downloadglibc-d7440f640efc06dfadd9ebf2ffa9a3f262e0be3b.zip
glibc-d7440f640efc06dfadd9ebf2ffa9a3f262e0be3b.tar.gz
glibc-d7440f640efc06dfadd9ebf2ffa9a3f262e0be3b.tar.bz2
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/hurd')
-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 1a7c42a..8d8ac9a 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)
{