]> git.saurik.com Git - apple/xnu.git/blobdiff - bsd/sys/ioccom.h
xnu-6153.81.5.tar.gz
[apple/xnu.git] / bsd / sys / ioccom.h
index 4a14f1eb30debcf6c34721bfb399130f64f63b39..cabce8cf7ed27759326b8ea9e38b1069d4d653c4 100644 (file)
@@ -1,15 +1,20 @@
 /*
  * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
  *
- * @APPLE_LICENSE_HEADER_START@
- * 
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
  * This file contains Original Code and/or Modifications of Original Code
  * as defined in and that are subject to the Apple Public Source License
  * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this
- * file.
- * 
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
  * The Original Code and all software distributed under the License are
  * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
  * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
@@ -17,8 +22,8 @@
  * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
  * Please see the License for the specific language governing rights and
  * limitations under the License.
- * 
- * @APPLE_LICENSE_HEADER_END@
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
  */
 /* Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved */
 /*-
  *     @(#)ioccom.h    8.2 (Berkeley) 3/28/94
  */
 
-#ifndef        _SYS_IOCCOM_H_
-#define        _SYS_IOCCOM_H_
+#ifndef _SYS_IOCCOM_H_
+#define _SYS_IOCCOM_H_
+
+#include <sys/_types.h>
 
 /*
  * Ioctl's have the command encoded in the lower word, and the size of
  * any in or out parameters in the upper word.  The high 3 bits of the
  * upper word are used to encode the in/out status of the parameter.
  */
-#define        IOCPARM_MASK    0x1fff          /* parameter length, at most 13 bits */
-#define        IOCPARM_LEN(x)  (((x) >> 16) & IOCPARM_MASK)
-#define        IOCBASECMD(x)   ((x) & ~(IOCPARM_MASK << 16))
-#define        IOCGROUP(x)     (((x) >> 8) & 0xff)
+#define IOCPARM_MASK    0x1fff          /* parameter length, at most 13 bits */
+#define IOCPARM_LEN(x)  (((x) >> 16) & IOCPARM_MASK)
+#define IOCBASECMD(x)   ((x) & ~(IOCPARM_MASK << 16))
+#define IOCGROUP(x)     (((x) >> 8) & 0xff)
 
-#define        IOCPARM_MAX     (IOCPARM_MASK + 1)      /* max size of ioctl args */
-                               /* no parameters */
-#define        IOC_VOID        (unsigned long)0x20000000
-                               /* copy parameters out */
-#define        IOC_OUT         (unsigned long)0x40000000
-                               /* copy parameters in */
-#define        IOC_IN          (unsigned long)0x80000000
-                               /* copy paramters in and out */
-#define        IOC_INOUT       (IOC_IN|IOC_OUT)
-                               /* mask for IN/OUT/VOID */
-#define        IOC_DIRMASK     (unsigned long)0xe0000000
+#define IOCPARM_MAX     (IOCPARM_MASK + 1)      /* max size of ioctl args */
+/* no parameters */
+#define IOC_VOID        (__uint32_t)0x20000000
+/* copy parameters out */
+#define IOC_OUT         (__uint32_t)0x40000000
+/* copy parameters in */
+#define IOC_IN          (__uint32_t)0x80000000
+/* copy paramters in and out */
+#define IOC_INOUT       (IOC_IN|IOC_OUT)
+/* mask for IN/OUT/VOID */
+#define IOC_DIRMASK     (__uint32_t)0xe0000000
 
-#define        _IOC(inout,group,num,len) \
+#define _IOC(inout, group, num, len) \
        (inout | ((len & IOCPARM_MASK) << 16) | ((group) << 8) | (num))
-#define        _IO(g,n)        _IOC(IOC_VOID,  (g), (n), 0)
-#define        _IOR(g,n,t)     _IOC(IOC_OUT,   (g), (n), sizeof(t))
-#define        _IOW(g,n,t)     _IOC(IOC_IN,    (g), (n), sizeof(t))
+#define _IO(g, n)        _IOC(IOC_VOID,        (g), (n), 0)
+#define _IOR(g, n, t)     _IOC(IOC_OUT,        (g), (n), sizeof(t))
+#define _IOW(g, n, t)     _IOC(IOC_IN, (g), (n), sizeof(t))
 /* this should be _IORW, but stdio got there first */
-#define        _IOWR(g,n,t)    _IOC(IOC_INOUT, (g), (n), sizeof(t))
+#define _IOWR(g, n, t)    _IOC(IOC_INOUT,      (g), (n), sizeof(t))
 
 #endif /* !_SYS_IOCCOM_H_ */