xref: /xnu-8019.80.24/bsd/man/man5/types.5 (revision a325d9c4a84054e40bbe985afedcb50ab80993ea)
1*a325d9c4SApple OSS Distributions.\"	$NetBSD: types.5,v 1.3 1994/11/30 19:31:34 jtc Exp $
2*a325d9c4SApple OSS Distributions.\"
3*a325d9c4SApple OSS Distributions.\" Copyright (c) 1980, 1991, 1993
4*a325d9c4SApple OSS Distributions.\"	The Regents of the University of California.  All rights reserved.
5*a325d9c4SApple OSS Distributions.\"
6*a325d9c4SApple OSS Distributions.\" Redistribution and use in source and binary forms, with or without
7*a325d9c4SApple OSS Distributions.\" modification, are permitted provided that the following conditions
8*a325d9c4SApple OSS Distributions.\" are met:
9*a325d9c4SApple OSS Distributions.\" 1. Redistributions of source code must retain the above copyright
10*a325d9c4SApple OSS Distributions.\"    notice, this list of conditions and the following disclaimer.
11*a325d9c4SApple OSS Distributions.\" 2. Redistributions in binary form must reproduce the above copyright
12*a325d9c4SApple OSS Distributions.\"    notice, this list of conditions and the following disclaimer in the
13*a325d9c4SApple OSS Distributions.\"    documentation and/or other materials provided with the distribution.
14*a325d9c4SApple OSS Distributions.\" 3. All advertising materials mentioning features or use of this software
15*a325d9c4SApple OSS Distributions.\"    must display the following acknowledgement:
16*a325d9c4SApple OSS Distributions.\"	This product includes software developed by the University of
17*a325d9c4SApple OSS Distributions.\"	California, Berkeley and its contributors.
18*a325d9c4SApple OSS Distributions.\" 4. Neither the name of the University nor the names of its contributors
19*a325d9c4SApple OSS Distributions.\"    may be used to endorse or promote products derived from this software
20*a325d9c4SApple OSS Distributions.\"    without specific prior written permission.
21*a325d9c4SApple OSS Distributions.\"
22*a325d9c4SApple OSS Distributions.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
23*a325d9c4SApple OSS Distributions.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
24*a325d9c4SApple OSS Distributions.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
25*a325d9c4SApple OSS Distributions.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
26*a325d9c4SApple OSS Distributions.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
27*a325d9c4SApple OSS Distributions.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
28*a325d9c4SApple OSS Distributions.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
29*a325d9c4SApple OSS Distributions.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
30*a325d9c4SApple OSS Distributions.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
31*a325d9c4SApple OSS Distributions.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
32*a325d9c4SApple OSS Distributions.\" SUCH DAMAGE.
33*a325d9c4SApple OSS Distributions.\"
34*a325d9c4SApple OSS Distributions.\"     @(#)types.5	8.1 (Berkeley) 6/5/93
35*a325d9c4SApple OSS Distributions.\"
36*a325d9c4SApple OSS Distributions.Dd May 15, 2008
37*a325d9c4SApple OSS Distributions.Dt TYPES 5
38*a325d9c4SApple OSS Distributions.Os Darwin
39*a325d9c4SApple OSS Distributions.Sh NAME
40*a325d9c4SApple OSS Distributions.Nm types
41*a325d9c4SApple OSS Distributions.Nd system data types
42*a325d9c4SApple OSS Distributions.Sh SYNOPSIS
43*a325d9c4SApple OSS Distributions.Fd #include <sys/types.h>
44*a325d9c4SApple OSS Distributions.Sh DESCRIPTION
45*a325d9c4SApple OSS DistributionsThe file
46*a325d9c4SApple OSS Distributions.Pa sys/types.h
47*a325d9c4SApple OSS Distributionscontains the defined data types used in the kernel (most are
48*a325d9c4SApple OSS Distributionsused through out the system).
49*a325d9c4SApple OSS Distributions.Bd -literal
50*a325d9c4SApple OSS Distributions#ifndef _TYPES_H_
51*a325d9c4SApple OSS Distributions#define	_TYPES_H_
52*a325d9c4SApple OSS Distributions
53*a325d9c4SApple OSS Distributionstypedef	short	dev_t;
54*a325d9c4SApple OSS Distributions#ifndef _POSIX_SOURCE
55*a325d9c4SApple OSS Distributions					/* major part of a device */
56*a325d9c4SApple OSS Distributions#define	major(x)	((int)(((unsigned)(x)>>8)&0377))
57*a325d9c4SApple OSS Distributions					/* minor part of a device */
58*a325d9c4SApple OSS Distributions#define	minor(x)	((int)((x)&0377))
59*a325d9c4SApple OSS Distributions					/* make a device number */
60*a325d9c4SApple OSS Distributions#define	makedev(x,y)	((dev_t)(((x)<<8) | (y)))
61*a325d9c4SApple OSS Distributions#endif
62*a325d9c4SApple OSS Distributions
63*a325d9c4SApple OSS Distributionstypedef	unsigned char	u_char;
64*a325d9c4SApple OSS Distributionstypedef	unsigned short	u_short;
65*a325d9c4SApple OSS Distributionstypedef	unsigned int	u_int;
66*a325d9c4SApple OSS Distributionstypedef	unsigned long	u_long;
67*a325d9c4SApple OSS Distributionstypedef	unsigned short	ushort;		/* Sys V compatibility */
68*a325d9c4SApple OSS Distributions
69*a325d9c4SApple OSS Distributions#if !defined(_ANSI_SOURCE) && !defined(_POSIX_C_SOURCE)
70*a325d9c4SApple OSS Distributions#include <machine/types.h>
71*a325d9c4SApple OSS Distributions#endif
72*a325d9c4SApple OSS Distributions
73*a325d9c4SApple OSS Distributions#ifdef	_CLOCK_T_
74*a325d9c4SApple OSS Distributionstypedef	_CLOCK_T_	clock_t;
75*a325d9c4SApple OSS Distributions#undef	_CLOCK_T_
76*a325d9c4SApple OSS Distributions#endif
77*a325d9c4SApple OSS Distributions
78*a325d9c4SApple OSS Distributions#ifdef	_SIZE_T_
79*a325d9c4SApple OSS Distributionstypedef	_SIZE_T_	size_t;
80*a325d9c4SApple OSS Distributions#undef	_SIZE_T_
81*a325d9c4SApple OSS Distributions#endif
82*a325d9c4SApple OSS Distributions
83*a325d9c4SApple OSS Distributions#ifdef	_TIME_T_
84*a325d9c4SApple OSS Distributionstypedef	_TIME_T_	time_t;
85*a325d9c4SApple OSS Distributions#undef	_TIME_T_
86*a325d9c4SApple OSS Distributions#endif
87*a325d9c4SApple OSS Distributions
88*a325d9c4SApple OSS Distributionstypedef	u_int64_t	u_quad_t;
89*a325d9c4SApple OSS Distributionstypedef	int64_t		quad_t
90*a325d9c4SApple OSS Distributionstypedef	quad_t *	qaddr_t;	/* should be typedef quad * qaddr_t; */
91*a325d9c4SApple OSS Distributions
92*a325d9c4SApple OSS Distributionstypedef	long	daddr_t;
93*a325d9c4SApple OSS Distributionstypedef	char *	caddr_t;
94*a325d9c4SApple OSS Distributions#ifdef _DARWIN_FEATURE_64_BIT_INODE
95*a325d9c4SApple OSS Distributionstypedef	u_int64_t	ino_t;
96*a325d9c4SApple OSS Distributions#else /* !_DARWIN_FEATURE_64_BIT_INODE */
97*a325d9c4SApple OSS Distributionstypedef	u_int		ino_t;
98*a325d9c4SApple OSS Distributions#endif /* _DARWIN_FEATURE_64_BIT_INODE */
99*a325d9c4SApple OSS Distributionstypedef	long	swblk_t;
100*a325d9c4SApple OSS Distributionstypedef	long	segsz_t;
101*a325d9c4SApple OSS Distributionstypedef	int64_t	off_t;
102*a325d9c4SApple OSS Distributionstypedef	u_int	uid_t;
103*a325d9c4SApple OSS Distributionstypedef	u_int	gid_t;
104*a325d9c4SApple OSS Distributionstypedef	int	pid_t;
105*a325d9c4SApple OSS Distributionstypedef	u_short	nlink_t;
106*a325d9c4SApple OSS Distributionstypedef	u_short	mode_t;
107*a325d9c4SApple OSS Distributionstypedef u_long	fixpt_t;
108*a325d9c4SApple OSS Distributions
109*a325d9c4SApple OSS Distributions#ifndef _POSIX_SOURCE
110*a325d9c4SApple OSS Distributions#define	NBBY	8		/* number of bits in a byte */
111*a325d9c4SApple OSS Distributions
112*a325d9c4SApple OSS Distributions/*
113*a325d9c4SApple OSS Distributions * Select uses bit masks of file descriptors in longs.  These macros
114*a325d9c4SApple OSS Distributions * manipulate such bit fields (the filesystem macros use chars).
115*a325d9c4SApple OSS Distributions * FD_SETSIZE may be defined by the user, but the default here should
116*a325d9c4SApple OSS Distributions * be >= NOFILE (param.h).
117*a325d9c4SApple OSS Distributions */
118*a325d9c4SApple OSS Distributions#ifndef	FD_SETSIZE
119*a325d9c4SApple OSS Distributions#define	FD_SETSIZE	1024
120*a325d9c4SApple OSS Distributions#endif
121*a325d9c4SApple OSS Distributions
122*a325d9c4SApple OSS Distributionstypedef long	fd_mask;
123*a325d9c4SApple OSS Distributions#define NFDBITS	(sizeof(fd_mask) * NBBY)	/* bits per mask */
124*a325d9c4SApple OSS Distributions
125*a325d9c4SApple OSS Distributions#ifndef howmany
126*a325d9c4SApple OSS Distributions#define	howmany(x, y)	(((x)+((y)-1))/(y))
127*a325d9c4SApple OSS Distributions#endif
128*a325d9c4SApple OSS Distributions
129*a325d9c4SApple OSS Distributionstypedef	struct fd_set {
130*a325d9c4SApple OSS Distributions	fd_mask	fds_bits[howmany(FD_SETSIZE, NFDBITS)];
131*a325d9c4SApple OSS Distributions} fd_set;
132*a325d9c4SApple OSS Distributions
133*a325d9c4SApple OSS Distributions#define	FD_SET(n, p)	((p)->fds_bits[(n)/NFDBITS] |= (1 << ((n) % NFDBITS)))
134*a325d9c4SApple OSS Distributions#define	FD_CLR(n, p)	((p)->fds_bits[(n)/NFDBITS] &= ~(1 << ((n) % NFDBITS)))
135*a325d9c4SApple OSS Distributions#define	FD_ISSET(n, p)	((p)->fds_bits[(n)/NFDBITS] & (1 << ((n) % NFDBITS)))
136*a325d9c4SApple OSS Distributions#define	FD_COPY(f, t)	bcopy(f, t, sizeof(*(f)))
137*a325d9c4SApple OSS Distributions#define	FD_ZERO(p)	bzero((char *)(p), sizeof(*(p)))
138*a325d9c4SApple OSS Distributions
139*a325d9c4SApple OSS Distributions#endif /* !_POSIX_SOURCE */
140*a325d9c4SApple OSS Distributions#endif /* !_TYPES_H_ */
141*a325d9c4SApple OSS Distributions.Ed
142*a325d9c4SApple OSS Distributions.Sh SEE ALSO
143*a325d9c4SApple OSS Distributions.Xr adb 1 ,
144*a325d9c4SApple OSS Distributions.Xr lseek 2 ,
145*a325d9c4SApple OSS Distributions.Xr time 3 ,
146*a325d9c4SApple OSS Distributions.Xr fs 5
147*a325d9c4SApple OSS Distributions.Sh HISTORY
148*a325d9c4SApple OSS DistributionsA
149*a325d9c4SApple OSS Distributions.Nm
150*a325d9c4SApple OSS Distributionsfile appeared in
151*a325d9c4SApple OSS Distributions.At v7 .
152