types man page on 4.4BSD

Printed from http://www.polarhome.com/service/man/?qf=types&af=0&tf=2&of=4.4BSD

TYPES(5)		    BSD File Formats Manual		      TYPES(5)

NAME
     types — system data types

SYNOPSIS
     #include <sys/types.h>

DESCRIPTION
     The file sys/types.h contains the defined data types used in the kernel
     (most are used through out the system).

     #ifndef _SYS_TYPES_H_
     #define _SYS_TYPES_H_

     /* Machine type dependent parameters. */
     #include <machine/ansi.h>
     #include <machine/types.h>

     #ifndef _POSIX_SOURCE
     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 V compatibility */
     typedef unsigned int    uint;	     /* Sys V compatibility */
     #endif

     typedef u_int64_t	     u_quad_t;	     /* quads */
     typedef int64_t	     quad_t;
     typedef quad_t *	     qaddr_t;

     typedef char *	     caddr_t;	     /* core address */
     typedef int32_t	     daddr_t;	     /* disk address */
     typedef u_int32_t	     dev_t;	     /* device number */
     typedef u_int32_t	     fixpt_t;	     /* fixed point number */
     typedef u_int32_t	     gid_t;	     /* group id */
     typedef u_int32_t	     ino_t;	     /* inode number */
     typedef long	     key_t;	     /* IPC key (for Sys V IPC) */
     typedef u_int16_t	     mode_t;	     /* permissions */
     typedef u_int16_t	     nlink_t;	     /* link count */
     typedef quad_t	     off_t;	     /* file offset */
     typedef int32_t	     pid_t;	     /* process id */
     typedef int32_t	     segsz_t;	     /* segment size */
     typedef int32_t	     swblk_t;	     /* swap offset */
     typedef u_int32_t	     uid_t;	     /* user id */

     /*
      * This belongs in unistd.h, but is placed here to ensure that programs
      * casting the second parameter of lseek to off_t will get the correct
      * version of lseek.
      */
     #ifndef KERNEL
     #include <sys/cdefs.h>
     __BEGIN_DECLS
     off_t    lseek __P((int, off_t, int));
     __END_DECLS
     #endif

     #ifndef _POSIX_SOURCE
							     /* major number */
     #define major(x)	     ((int32_t)(((u_int32_t)(x) >> 8) & 0xff))
     #define minor(x)	     ((int32_t)((x) & 0xff))	     /* minor number */
     #define makedev(x,y)    ((dev_t)(((x) << 8) | (y)))     /* create dev_t */
     #endif

     #include <machine/endian.h>

     #ifdef  _BSD_CLOCK_T_
     typedef _BSD_CLOCK_T_   clock_t;
     #undef  _BSD_CLOCK_T_
     #endif

     #ifdef  _BSD_SIZE_T_
     typedef _BSD_SIZE_T_    size_t;
     #undef  _BSD_SIZE_T_
     #endif

     #ifdef  _BSD_SSIZE_T_
     typedef _BSD_SSIZE_T_   ssize_t;
     #undef  _BSD_SSIZE_T_
     #endif

     #ifdef  _BSD_TIME_T_
     typedef _BSD_TIME_T_    time_t;
     #undef  _BSD_TIME_T_
     #endif

     #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 enough for most uses.
      */
     #ifndef FD_SETSIZE
     #define FD_SETSIZE	     256
     #endif

     typedef int32_t 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_COPY(f, t)   bcopy(f, t, sizeof(*(f)))
     #define FD_ZERO(p)	     bzero(p, sizeof(*(p)))

     #if defined(__STDC__) && defined(KERNEL)
     /*
      * Forward structure declarations for function prototypes.	 We include the
      * common structures that cross subsystem boundaries here; others are mostly
      * used in the same place that the structure is defined.
      */
     struct  proc;
     struct  pgrp;
     struct  ucred;
     struct  rusage;
     struct  file;
     struct  buf;
     struct  tty;
     struct  uio;
     #endif

     #endif /* !_POSIX_SOURCE */
     #endif /* !_SYS_TYPES_H_ */

SEE ALSO
     fs(5), time(3), lseek(2),

HISTORY
     A types file appeared in Version 7 AT&T UNIX.

4th Berkeley Distribution	April 28, 1995	     4th Berkeley Distribution
[top]

List of man pages available for 4.4BSD

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net