1 /*-
2  * Copyright (c) 1982, 1986, 1991, 1993, 1994
3  *	The Regents of the University of California.  All rights reserved.
4  * (c) UNIX System Laboratories, Inc.
5  * All or some portions of this file are derived from material licensed
6  * to the University of California by American Telephone and Telegraph
7  * Co. or Unix System Laboratories, Inc. and are reproduced herein with
8  * the permission of UNIX System Laboratories, Inc.
9  *
10  * Redistribution and use in source and binary forms, with or without
11  * modification, are permitted provided that the following conditions
12  * are met:
13  * 1. Redistributions of source code must retain the above copyright
14  *    notice, this list of conditions and the following disclaimer.
15  * 2. Redistributions in binary form must reproduce the above copyright
16  *    notice, this list of conditions and the following disclaimer in the
17  *    documentation and/or other materials provided with the distribution.
18  * 4. Neither the name of the University nor the names of its contributors
19  *    may be used to endorse or promote products derived from this software
20  *    without specific prior written permission.
21  *
22  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
23  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
24  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
25  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
26  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
27  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
28  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
29  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
30  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
31  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
32  * SUCH DAMAGE.
33  *
34  *	@(#)types.h	8.6 (Berkeley) 2/19/95
35  * $FreeBSD$
36  */
37 
38 #ifndef _SYS_TYPES_H_
39 #define	_SYS_TYPES_H_
40 
41 #include <sys/cdefs.h>
42 
43 /* Machine type dependent parameters. */
44 #include <sys/_types.h>
45 
46 #if __BSD_VISIBLE
47 typedef	unsigned char	u_char;
48 typedef	unsigned short	u_short;
49 typedef	unsigned int	u_int;
50 typedef	unsigned long	u_long;
51 #ifndef _KERNEL
52 typedef	unsigned short	ushort;		/* Sys V compatibility */
53 typedef	unsigned int	uint;		/* Sys V compatibility */
54 #endif
55 #endif
56 
57 /*
58  * XXX POSIX sized integrals that should appear only in <sys/stdint.h>.
59  */
60 #include <sys/_stdint.h>
61 
62 typedef __uint8_t	u_int8_t;	/* unsigned integrals (deprecated) */
63 typedef __uint16_t	u_int16_t;
64 typedef __uint32_t	u_int32_t;
65 typedef __uint64_t	u_int64_t;
66 
67 typedef	__uint64_t	u_quad_t;	/* quads (deprecated) */
68 typedef	__int64_t	quad_t;
69 typedef	quad_t		*qaddr_t;
70 
71 typedef	char		*caddr_t;	/* core address */
72 typedef	const char	*c_caddr_t;	/* core address, pointer to const */
73 
74 #ifndef _BLKSIZE_T_DECLARED
75 typedef	__blksize_t	blksize_t;
76 #define	_BLKSIZE_T_DECLARED
77 #endif
78 
79 typedef	__cpuwhich_t	cpuwhich_t;
80 typedef	__cpulevel_t	cpulevel_t;
81 typedef	__cpusetid_t	cpusetid_t;
82 
83 #ifndef _BLKCNT_T_DECLARED
84 typedef	__blkcnt_t	blkcnt_t;
85 #define	_BLKCNT_T_DECLARED
86 #endif
87 
88 #ifndef _CLOCK_T_DECLARED
89 typedef	__clock_t	clock_t;
90 #define	_CLOCK_T_DECLARED
91 #endif
92 
93 #ifndef _CLOCKID_T_DECLARED
94 typedef	__clockid_t	clockid_t;
95 #define	_CLOCKID_T_DECLARED
96 #endif
97 
98 typedef	__critical_t	critical_t;	/* Critical section value */
99 typedef	__int64_t	daddr_t;	/* disk address */
100 
101 #ifndef _DEV_T_DECLARED
102 typedef	__dev_t		dev_t;		/* device number or struct cdev */
103 #define	_DEV_T_DECLARED
104 #endif
105 
106 #ifndef _FFLAGS_T_DECLARED
107 typedef	__fflags_t	fflags_t;	/* file flags */
108 #define	_FFLAGS_T_DECLARED
109 #endif
110 
111 typedef	__fixpt_t	fixpt_t;	/* fixed point number */
112 
113 #ifndef _FSBLKCNT_T_DECLARED		/* for statvfs() */
114 typedef	__fsblkcnt_t	fsblkcnt_t;
115 typedef	__fsfilcnt_t	fsfilcnt_t;
116 #define	_FSBLKCNT_T_DECLARED
117 #endif
118 
119 #ifndef _GID_T_DECLARED
120 typedef	__gid_t		gid_t;		/* group id */
121 #define	_GID_T_DECLARED
122 #endif
123 
124 #ifndef _IN_ADDR_T_DECLARED
125 typedef	__uint32_t	in_addr_t;	/* base type for internet address */
126 #define	_IN_ADDR_T_DECLARED
127 #endif
128 
129 #ifndef _IN_PORT_T_DECLARED
130 typedef	__uint16_t	in_port_t;
131 #define	_IN_PORT_T_DECLARED
132 #endif
133 
134 #ifndef _ID_T_DECLARED
135 typedef	__id_t		id_t;		/* can hold a uid_t or pid_t */
136 #define	_ID_T_DECLARED
137 #endif
138 
139 #ifndef _INO_T_DECLARED
140 typedef	__ino_t		ino_t;		/* inode number */
141 #define	_INO_T_DECLARED
142 #endif
143 
144 #ifndef _KEY_T_DECLARED
145 typedef	__key_t		key_t;		/* IPC key (for Sys V IPC) */
146 #define	_KEY_T_DECLARED
147 #endif
148 
149 #ifndef _LWPID_T_DECLARED
150 typedef	__lwpid_t	lwpid_t;	/* Thread ID (a.k.a. LWP) */
151 #define	_LWPID_T_DECLARED
152 #endif
153 
154 #ifndef _MODE_T_DECLARED
155 typedef	__mode_t	mode_t;		/* permissions */
156 #define	_MODE_T_DECLARED
157 #endif
158 
159 #ifndef _ACCMODE_T_DECLARED
160 typedef	__accmode_t	accmode_t;	/* access permissions */
161 #define	_ACCMODE_T_DECLARED
162 #endif
163 
164 #ifndef _NLINK_T_DECLARED
165 typedef	__nlink_t	nlink_t;	/* link count */
166 #define	_NLINK_T_DECLARED
167 #endif
168 
169 #ifndef _OFF_T_DECLARED
170 typedef	__off_t		off_t;		/* file offset */
171 #define	_OFF_T_DECLARED
172 #endif
173 
174 #ifndef _PID_T_DECLARED
175 typedef	__pid_t		pid_t;		/* process id */
176 #define	_PID_T_DECLARED
177 #endif
178 
179 typedef	__register_t	register_t;
180 
181 #ifndef _RLIM_T_DECLARED
182 typedef	__rlim_t	rlim_t;		/* resource limit */
183 #define	_RLIM_T_DECLARED
184 #endif
185 
186 typedef	__int64_t	sbintime_t;
187 
188 typedef	__segsz_t	segsz_t;	/* segment size (in pages) */
189 
190 #ifndef _SIZE_T_DECLARED
191 typedef	__size_t	size_t;
192 #define	_SIZE_T_DECLARED
193 #endif
194 
195 #ifndef _SSIZE_T_DECLARED
196 typedef	__ssize_t	ssize_t;
197 #define	_SSIZE_T_DECLARED
198 #endif
199 
200 #ifndef _SUSECONDS_T_DECLARED
201 typedef	__suseconds_t	suseconds_t;	/* microseconds (signed) */
202 #define	_SUSECONDS_T_DECLARED
203 #endif
204 
205 #ifndef _TIME_T_DECLARED
206 typedef	__time_t	time_t;
207 #define	_TIME_T_DECLARED
208 #endif
209 
210 #ifndef _TIMER_T_DECLARED
211 typedef	__timer_t	timer_t;
212 #define	_TIMER_T_DECLARED
213 #endif
214 
215 #ifndef _MQD_T_DECLARED
216 typedef	__mqd_t	mqd_t;
217 #define	_MQD_T_DECLARED
218 #endif
219 
220 typedef	__u_register_t	u_register_t;
221 
222 #ifndef _UID_T_DECLARED
223 typedef	__uid_t		uid_t;		/* user id */
224 #define	_UID_T_DECLARED
225 #endif
226 
227 #ifndef _USECONDS_T_DECLARED
228 typedef	__useconds_t	useconds_t;	/* microseconds (unsigned) */
229 #define	_USECONDS_T_DECLARED
230 #endif
231 
232 #ifndef _CAP_RIGHTS_T_DECLARED
233 #define	_CAP_RIGHTS_T_DECLARED
234 struct cap_rights;
235 
236 typedef	struct cap_rights	cap_rights_t;
237 #endif
238 
239 typedef	__vm_offset_t	vm_offset_t;
240 typedef	__vm_ooffset_t	vm_ooffset_t;
241 typedef	__vm_paddr_t	vm_paddr_t;
242 typedef	__vm_pindex_t	vm_pindex_t;
243 typedef	__vm_size_t	vm_size_t;
244 
245 #endif /* !_SYS_TYPES_H_ */
246