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