1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134
|
/* @(#)types.h 2.32 94/08/18 SMI; from UCB 7.1 6/4/86 */
/*
* 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.
*/
#ifndef __sys_types_h
#define __sys_types_h
/*
* Basic system types.
*/
#include <sys/stdtypes.h> /* ANSI & POSIX types */
#ifndef _POSIX_SOURCE
#include <sys/sysmacros.h>
#define physadr physadr_t
#define quad quad_t
#if !defined(__BIT_TYPES_DEFINED__) && !defined(_MACHTYPES_H_)
#define __BIT_TYPES_DEFINED__
typedef char int8_t;
typedef unsigned char u_int8_t;
typedef short int16_t;
typedef unsigned short u_int16_t;
typedef int int32_t;
typedef unsigned int u_int32_t;
#ifdef WE_DONT_NEED_QUADS
typedef long long int64_t;
typedef unsigned long long u_int64_t;
#endif
#endif
typedef unsigned char u_char;
typedef unsigned short u_short;
typedef unsigned int u_int;
typedef unsigned long u_long;
typedef unsigned short ushort; /* System V compatibility */
typedef unsigned int uint; /* System V compatibility */
#endif !_POSIX_SOURCE
#ifdef vax
typedef struct _physadr_t { int r[1]; } *physadr_t;
typedef struct label_t {
int val[14];
} label_t;
#endif
#ifdef mc68000
typedef struct _physadr_t { short r[1]; } *physadr_t;
typedef struct label_t {
int val[13];
} label_t;
#endif
#ifdef sparc
typedef struct _physadr_t { int r[1]; } *physadr_t;
typedef struct label_t {
int val[2];
} label_t;
#endif
#ifdef i386
typedef struct _physadr_t { short r[1]; } *physadr_t;
typedef struct label_t {
int val[8];
} label_t;
#endif
typedef struct _quad_t { long val[2]; } quad_t;
typedef long daddr_t;
typedef char * caddr_t;
typedef unsigned long ino_t;
typedef short dev_t;
typedef unsigned long off_t;
typedef unsigned short uid_t;
typedef unsigned short gid_t;
typedef long key_t;
typedef char * addr_t;
#ifndef _POSIX_SOURCE
#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
#ifdef SUNDBE
#define FD_SETSIZE 2048
#else
#define FD_SETSIZE 256
#endif /* SUNDBE */
#endif
typedef long fd_mask;
#define NFDBITS (sizeof (fd_mask) * NBBY) /* bits per mask */
#ifndef howmany
#ifdef sun386
#define howmany(x, y) ((((u_int)(x))+(((u_int)(y))-1))/((u_int)(y)))
#else
#define howmany(x, y) (((x)+((y)-1))/(y))
#endif
#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)))
#ifdef KERNEL
#ifdef sparc
/*
* routines that call setjmp or on_fault have strange control flow graphs,
* since a call to a routine that calls resume/longjmp will eventually
* return at the setjmp site, not the original call site. This
* utterly wrecks control flow analysis.
*/
extern int setjmp();
#pragma unknown_control_flow(setjmp)
extern int on_fault();
#pragma unknown_control_flow(on_fault)
#endif /* sparc */
#endif /* KERNEL */
#endif /* !_POSIX_SOURCE */
#endif /* !__sys_types_h */
|