4.3BSD-UWisc/man/cat5/types.5

Compare this file to the similar file:
Show the results in this format:




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