]>
Commit | Line | Data |
---|---|---|
9bccf70c A |
1 | .\" $NetBSD: types.5,v 1.3 1994/11/30 19:31:34 jtc Exp $ |
2 | .\" | |
3 | .\" Copyright (c) 1980, 1991, 1993 | |
4 | .\" The Regents of the University of California. All rights reserved. | |
5 | .\" | |
6 | .\" Redistribution and use in source and binary forms, with or without | |
7 | .\" modification, are permitted provided that the following conditions | |
8 | .\" are met: | |
9 | .\" 1. Redistributions of source code must retain the above copyright | |
10 | .\" notice, this list of conditions and the following disclaimer. | |
11 | .\" 2. Redistributions in binary form must reproduce the above copyright | |
12 | .\" notice, this list of conditions and the following disclaimer in the | |
13 | .\" documentation and/or other materials provided with the distribution. | |
14 | .\" 3. All advertising materials mentioning features or use of this software | |
15 | .\" must display the following acknowledgement: | |
16 | .\" This product includes software developed by the University of | |
17 | .\" California, Berkeley and its contributors. | |
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.5 8.1 (Berkeley) 6/5/93 | |
35 | .\" | |
b0d623f7 | 36 | .Dd May 15, 2008 |
9bccf70c A |
37 | .Dt TYPES 5 |
38 | .Os Darwin | |
39 | .Sh NAME | |
40 | .Nm types | |
41 | .Nd system data types | |
42 | .Sh SYNOPSIS | |
43 | .Fd #include <sys/types.h> | |
44 | .Sh DESCRIPTION | |
45 | The file | |
46 | .Pa sys/types.h | |
47 | contains the defined data types used in the kernel (most are | |
48 | used through out the system). | |
49 | .Bd -literal | |
50 | #ifndef _TYPES_H_ | |
51 | #define _TYPES_H_ | |
52 | ||
53 | typedef short dev_t; | |
54 | #ifndef _POSIX_SOURCE | |
55 | /* major part of a device */ | |
56 | #define major(x) ((int)(((unsigned)(x)>>8)&0377)) | |
57 | /* minor part of a device */ | |
58 | #define minor(x) ((int)((x)&0377)) | |
59 | /* make a device number */ | |
60 | #define makedev(x,y) ((dev_t)(((x)<<8) | (y))) | |
61 | #endif | |
62 | ||
63 | typedef unsigned char u_char; | |
64 | typedef unsigned short u_short; | |
65 | typedef unsigned int u_int; | |
66 | typedef unsigned long u_long; | |
67 | typedef unsigned short ushort; /* Sys V compatibility */ | |
68 | ||
91447636 | 69 | #if !defined(_ANSI_SOURCE) && !defined(_POSIX_C_SOURCE) |
9bccf70c A |
70 | #include <machine/types.h> |
71 | #endif | |
72 | ||
73 | #ifdef _CLOCK_T_ | |
74 | typedef _CLOCK_T_ clock_t; | |
75 | #undef _CLOCK_T_ | |
76 | #endif | |
77 | ||
78 | #ifdef _SIZE_T_ | |
79 | typedef _SIZE_T_ size_t; | |
80 | #undef _SIZE_T_ | |
81 | #endif | |
82 | ||
83 | #ifdef _TIME_T_ | |
84 | typedef _TIME_T_ time_t; | |
85 | #undef _TIME_T_ | |
86 | #endif | |
87 | ||
b0d623f7 A |
88 | typedef u_int64_t u_quad_t; |
89 | typedef int64_t quad_t | |
90 | typedef quad_t * qaddr_t; /* should be typedef quad * qaddr_t; */ | |
9bccf70c A |
91 | |
92 | typedef long daddr_t; | |
93 | typedef char * caddr_t; | |
b0d623f7 A |
94 | #ifdef _DARWIN_FEATURE_64_BIT_INODE |
95 | typedef u_int64_t ino_t; | |
96 | #else /* !_DARWIN_FEATURE_64_BIT_INODE */ | |
97 | typedef u_int ino_t; | |
98 | #endif /* _DARWIN_FEATURE_64_BIT_INODE */ | |
9bccf70c A |
99 | typedef long swblk_t; |
100 | typedef long segsz_t; | |
b0d623f7 A |
101 | typedef int64_t off_t; |
102 | typedef u_int uid_t; | |
103 | typedef u_int gid_t; | |
104 | typedef int pid_t; | |
9bccf70c A |
105 | typedef u_short nlink_t; |
106 | typedef u_short mode_t; | |
107 | typedef u_long fixpt_t; | |
108 | ||
109 | #ifndef _POSIX_SOURCE | |
110 | #define NBBY 8 /* number of bits in a byte */ | |
111 | ||
112 | /* | |
113 | * Select uses bit masks of file descriptors in longs. These macros | |
114 | * manipulate such bit fields (the filesystem macros use chars). | |
115 | * FD_SETSIZE may be defined by the user, but the default here should | |
116 | * be >= NOFILE (param.h). | |
117 | */ | |
118 | #ifndef FD_SETSIZE | |
119 | #define FD_SETSIZE 1024 | |
120 | #endif | |
121 | ||
122 | typedef long fd_mask; | |
123 | #define NFDBITS (sizeof(fd_mask) * NBBY) /* bits per mask */ | |
124 | ||
125 | #ifndef howmany | |
126 | #define howmany(x, y) (((x)+((y)-1))/(y)) | |
127 | #endif | |
128 | ||
129 | typedef struct fd_set { | |
130 | fd_mask fds_bits[howmany(FD_SETSIZE, NFDBITS)]; | |
131 | } fd_set; | |
132 | ||
133 | #define FD_SET(n, p) ((p)->fds_bits[(n)/NFDBITS] |= (1 << ((n) % NFDBITS))) | |
134 | #define FD_CLR(n, p) ((p)->fds_bits[(n)/NFDBITS] &= ~(1 << ((n) % NFDBITS))) | |
135 | #define FD_ISSET(n, p) ((p)->fds_bits[(n)/NFDBITS] & (1 << ((n) % NFDBITS))) | |
91447636 | 136 | #define FD_COPY(f, t) bcopy(f, t, sizeof(*(f))) |
9bccf70c A |
137 | #define FD_ZERO(p) bzero((char *)(p), sizeof(*(p))) |
138 | ||
139 | #endif /* !_POSIX_SOURCE */ | |
140 | #endif /* !_TYPES_H_ */ | |
141 | .Ed | |
142 | .Sh SEE ALSO | |
2d21ac55 | 143 | .Xr adb 1 , |
9bccf70c | 144 | .Xr lseek 2 , |
2d21ac55 A |
145 | .Xr time 3 , |
146 | .Xr fs 5 | |
9bccf70c A |
147 | .Sh HISTORY |
148 | A | |
149 | .Nm | |
150 | file appeared in | |
151 | .At v7 . |