(enum __hurd_threadvar_index):
[kopensolaris-gnu/glibc.git] / hurd / hurd / ioctl.h
index cc83433..8c6dbfd 100644 (file)
@@ -1,27 +1,28 @@
 /* User-registered handlers for specific `ioctl' requests.
-Copyright (C) 1993, 1994, 1995 Free Software Foundation, Inc.
-This file is part of the GNU C Library.
+   Copyright (C) 1993, 1994, 1995, 1996, 1997 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
-modify it under the terms of the GNU Library General Public License as
-published by the Free Software Foundation; either version 2 of the
-License, or (at your option) any later version.
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Library General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, or (at your option) any later version.
 
-The GNU C Library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-Library General Public License for more details.
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Library General Public License for more details.
 
-You should have received a copy of the GNU Library General Public
-License along with the GNU C Library; see the file COPYING.LIB.  If
-not, write to the Free Software Foundation, Inc., 675 Mass Ave,
-Cambridge, MA 02139, USA.  */
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
 
 #ifndef        _HURD_IOCTL_H
 #define        _HURD_IOCTL_H   1
 
 #define        __need___va_list
 #include <stdarg.h>
+#include <ioctls.h>
 
 
 /* Type of handler function, called like ioctl to do its entire job.  */
@@ -30,7 +31,8 @@ typedef int (*ioctl_handler_t) (int fd, int request, void *arg);
 /* Structure that records an ioctl handler.  */
 struct ioctl_handler
   {
-    int first_request, last_request; /* Range of handled request values.  */
+    /* Range of handled _IOC_NOTYPE (REQUEST) values.  */
+    int first_request, last_request;
 
     /* Handler function, called like ioctl to do its entire job.  */
     ioctl_handler_t handler;
@@ -52,9 +54,10 @@ extern int hurd_register_ioctl_handler (int first_request, int last_request,
    avoid `defined but not used' warnings.  */
 
 #define        _HURD_HANDLE_IOCTLS(handler, first, last)                             \
-  static const struct ioctl_handler handler##_ioctl_handler =                \
-    { (first), (last), (int (*) (int, int, void *)) (handler),       \
-       (&(handler), &(handler##_ioctl_handler), NULL) };                     \
+  static const struct ioctl_handler handler##_ioctl_handler                  \
+       __attribute__ ((__unused__)) =                                        \
+    { _IOC_NOTYPE (first), _IOC_NOTYPE (last),                               \
+       (int (*) (int, int, void *)) (handler), NULL };                       \
   text_set_element (_hurd_ioctl_handler_lists, ##handler##_ioctl_handler)
 
 /* Define a library-internal handler for a single ioctl command.  */