4.3BSD-UWisc/man/cat5/types.5
TYPES(5) UNIX Programmer's Manual TYPES(5)
NAME
types - primitive system data types
SYNOPSIS
#include <sys/types.h>
DESCRIPTION
The data types defined in the include file are used in UNIX
system code; some data of these types are accessible to user
code:
/*
* Copyright (c) 1982, 1986 Regents of the University of California.
* All rights reserved. The Berkeley software License Agreement
* specifies the terms and conditions for redistribution.
*
* @(#)types.h 7.1 (Berkeley) 6/4/86
*/
/*
* RCS Info
* $Header: types.h,v 3.1 86/10/22 13:29:39 tadl Exp $
* $Locker: $
*/
#ifndef _TYPES_
#define _TYPES_
/*
* Basic system types and major/minor device constructing/busting macros.
*/
/* major part of a device */
#define major(x) ((int)(((unsigned)(x)>>8)&0377))
/* minor part of a device */
#define minor(x) ((int)((x)&0377))
/* make a device number */
#define makedev(x,y) ((dev_t)(((x)<<8) | (y)))
typedef unsigned char u_char;
typedef unsigned short u_short;
typedef unsigned int u_int;
typedef unsigned long u_long;
typedef unsigned short ushort;/* sys III compat */
#ifdef vax
typedef struct _physadr { int r[1]; } *physadr;
typedef struct label_t {
int val[14];
} label_t;
#endif
typedef struct _quad { long val[2]; } quad;
Printed 12/27/86 May 15, 1985 1
TYPES(5) UNIX Programmer's Manual TYPES(5)
typedef long daddr_t;
typedef char * caddr_t;
typedef u_long ino_t;
typedef long swblk_t;
typedef long size_t;
typedef long time_t;
typedef short dev_t;
typedef long off_t;
typedef u_short uid_t;
typedef u_short gid_t;
typedef long key_t;
#define NBBY 8 /* number of bits in a byte */
/*
* Select uses bit masks of file descriptors in longs.
* These macros manipulate such bit fields (the filesystem macros use chars).
* FD_SETSIZE may be defined by the user, but the default here
* should be >= NOFILE (param.h).
*/
#ifndef FD_SETSIZE
#define FD_SETSIZE 256
#endif
typedef long fd_mask;
#define NFDBITS (sizeof(fd_mask) * NBBY)/* bits per mask */
#ifndef howmany
#define howmany(x, y) (((x)+((y)-1))/(y))
#endif
typedef struct fd_set {
fd_mask fds_bits[howmany(FD_SETSIZE, NFDBITS)];
} fd_set;
#define FD_SET(n, p) ((p)->fds_bits[(n)/NFDBITS] |= (1 << ((n) % NFDBITS)))
#define FD_CLR(n, p) ((p)->fds_bits[(n)/NFDBITS] &= ~(1 << ((n) % NFDBITS)))
#define FD_ISSET(n, p) ((p)->fds_bits[(n)/NFDBITS] & (1 << ((n) % NFDBITS)))
#define FD_ZERO(p) bzero((char *)(p), sizeof(*(p)))
#endif
The form _d_a_d_d_r__t is used for disk addresses except in an i-
node on disk, see _f_s(5). Times are encoded in seconds since
00:00:00 GMT, January 1, 1970. The major and minor parts of
a device code specify kind and unit number of a device and
are installation-dependent. Offsets are measured in bytes
from the beginning of a file. The _l_a_b_e_l__t variables are
used to save the processor state while another process is
running.
SEE ALSO
fs(5), time(3), lseek(2), adb(1)
Printed 12/27/86 May 15, 1985 2