Annotation of 43BSD/sys/h/types.h, revision 1.1.1.1

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

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.