xref: /xnu-8792.61.2/osfmk/libsa/types.h (revision 42e220869062b56f8d7d0726fd4c88954f87902c)
1 /*
2  * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
3  *
4  * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
5  *
6  * This file contains Original Code and/or Modifications of Original Code
7  * as defined in and that are subject to the Apple Public Source License
8  * Version 2.0 (the 'License'). You may not use this file except in
9  * compliance with the License. The rights granted to you under the License
10  * may not be used to create, or enable the creation or redistribution of,
11  * unlawful or unlicensed copies of an Apple operating system, or to
12  * circumvent, violate, or enable the circumvention or violation of, any
13  * terms of an Apple operating system software license agreement.
14  *
15  * Please obtain a copy of the License at
16  * http://www.opensource.apple.com/apsl/ and read it before using this file.
17  *
18  * The Original Code and all software distributed under the License are
19  * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
20  * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
21  * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
22  * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
23  * Please see the License for the specific language governing rights and
24  * limitations under the License.
25  *
26  * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
27  */
28 /*
29  * @OSF_COPYRIGHT@
30  */
31 /*
32  * HISTORY
33  *
34  * Revision 1.1.1.1  1998/09/22 21:05:51  wsanchez
35  * Import of Mac OS X kernel (~semeria)
36  *
37  * Revision 1.1.1.1  1998/03/07 02:25:35  wsanchez
38  * Import of OSF Mach kernel (~mburg)
39  *
40  * Revision 1.1.2.1  1996/09/17  16:56:21  bruel
41  *      created from standalone mach servers.
42  *      [96/09/17            bruel]
43  *
44  * $EndLog$
45  */
46 
47 #ifndef _MACH_TYPES_H_
48 #define _MACH_TYPES_H_
49 
50 #include <stddef.h>
51 #include "libsa/machine/types.h"
52 
53 #ifndef _SIZE_T
54 #define _SIZE_T
55 typedef unsigned long   size_t;
56 #endif  /* _SIZE_T */
57 
58 /*
59  * Common type definitions that lots of old files seem to want.
60  */
61 
62 typedef unsigned char   u_char;         /* unsigned char */
63 typedef unsigned short  u_short;        /* unsigned short */
64 typedef unsigned int    u_int;          /* unsigned int */
65 typedef unsigned long   u_long;         /* unsigned long */
66 
67 typedef struct _quad_ {
68 	unsigned int    val[2];         /* 2 32-bit values make... */
69 } quad;                                 /* an 8-byte item */
70 
71 typedef char *          caddr_t;        /* address of a (signed) char */
72 
73 typedef unsigned int    daddr_t;        /* an unsigned 32 */
74 #if 0 /* off_t should be 64-bit ! */
75 typedef unsigned int    off_t;          /* another unsigned 32 */
76 #endif
77 
78 
79 #define major(i)        (((i) >> 8) & 0xFF)
80 #define minor(i)        ((i) & 0xFF)
81 #define makedev(i, j)    ((((i) & 0xFF) << 8) | ((j) & 0xFF))
82 
83 #ifndef NULL
84 #define NULL            ((void *) 0)    /* the null pointer */
85 #endif
86 
87 /*
88  * Shorthand type definitions for unsigned storage classes
89  */
90 typedef unsigned char   uchar_t;
91 typedef unsigned short  ushort_t;
92 typedef unsigned int    uint_t;
93 typedef unsigned long   ulong_t;
94 typedef volatile unsigned char  vuchar_t;
95 typedef volatile unsigned short vushort_t;
96 typedef volatile unsigned int   vuint_t;
97 typedef volatile unsigned long  vulong_t;
98 
99 /*
100  * Deprecation macro
101  */
102 #if __GNUC__ >= 3
103 #define __deprecated    __attribute__((__deprecated__))
104 #else
105 #define __deprecated /* nothing */
106 #endif
107 
108 #endif  /* _MACH_TYPES_H_ */
109