mirror of
https://sourceware.org/git/glibc.git
synced 2024-12-01 13:43:35 +08:00
1999-01-24 Roland McGrath <roland@baalperazim.frob.com>
* sysdeps/mach/hurd/ioctl.c: Include <hurd/ioctls.defs>. (__ioctl): Use IOC_MSGID macro.
This commit is contained in:
parent
b710a6e220
commit
d7440f640e
@ -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)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user