|
|
1.1 ! root 1: /* ! 2: * Copyright (c) 1982, 1986 Regents of the University of California. ! 3: * All rights reserved. The Berkeley software License Agreement ! 4: * specifies the terms and conditions for redistribution. ! 5: * ! 6: * @(#)types.h 7.1 (Berkeley) 6/4/86 ! 7: */ ! 8: ! 9: #ifndef _TYPES_ ! 10: #define _TYPES_ ! 11: /* ! 12: * Basic system types and major/minor device constructing/busting macros. ! 13: */ ! 14: ! 15: /* major part of a device */ ! 16: #define major(x) ((int)(((unsigned)(x)>>8)&0377)) ! 17: ! 18: /* minor part of a device */ ! 19: #define minor(x) ((int)((x)&0377)) ! 20: ! 21: /* make a device number */ ! 22: #define makedev(x,y) ((dev_t)(((x)<<8) | (y))) ! 23: ! 24: typedef unsigned char u_char; ! 25: typedef unsigned short u_short; ! 26: typedef unsigned int u_int; ! 27: typedef unsigned long u_long; ! 28: typedef unsigned short ushort; /* sys III compat */ ! 29: ! 30: #ifdef vax ! 31: typedef struct _physadr { int r[1]; } *physadr; ! 32: typedef struct label_t { ! 33: int val[14]; ! 34: } label_t; ! 35: #endif ! 36: typedef struct _quad { long val[2]; } quad; ! 37: typedef long daddr_t; ! 38: typedef char * caddr_t; ! 39: typedef u_long ino_t; ! 40: typedef long swblk_t; ! 41: typedef long size_t; ! 42: typedef long time_t; ! 43: typedef short dev_t; ! 44: typedef long off_t; ! 45: typedef u_short uid_t; ! 46: typedef u_short gid_t; ! 47: ! 48: #define NBBY 8 /* number of bits in a byte */ ! 49: /* ! 50: * Select uses bit masks of file descriptors in longs. ! 51: * These macros manipulate such bit fields (the filesystem macros use chars). ! 52: * FD_SETSIZE may be defined by the user, but the default here ! 53: * should be >= NOFILE (param.h). ! 54: */ ! 55: #ifndef FD_SETSIZE ! 56: #define FD_SETSIZE 256 ! 57: #endif ! 58: ! 59: typedef long fd_mask; ! 60: #define NFDBITS (sizeof(fd_mask) * NBBY) /* bits per mask */ ! 61: #ifndef howmany ! 62: #define howmany(x, y) (((x)+((y)-1))/(y)) ! 63: #endif ! 64: ! 65: typedef struct fd_set { ! 66: fd_mask fds_bits[howmany(FD_SETSIZE, NFDBITS)]; ! 67: } fd_set; ! 68: ! 69: #define FD_SET(n, p) ((p)->fds_bits[(n)/NFDBITS] |= (1 << ((n) % NFDBITS))) ! 70: #define FD_CLR(n, p) ((p)->fds_bits[(n)/NFDBITS] &= ~(1 << ((n) % NFDBITS))) ! 71: #define FD_ISSET(n, p) ((p)->fds_bits[(n)/NFDBITS] & (1 << ((n) % NFDBITS))) ! 72: #define FD_ZERO(p) bzero((char *)(p), sizeof(*(p))) ! 73: ! 74: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.