*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->OpenBSD man pages -> types (5)              



NAME    [Toc]    [Back]

     types - system data types

SYNOPSIS    [Toc]    [Back]

     #include <sys/types.h>

DESCRIPTION    [Toc]    [Back]

     The <sys/types.h> file contains the defined data types  used
in the kernel
     (most are used throughout the system).

     #ifndef _SYS_TYPES_H_
     #define _SYS_TYPES_H_

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

     #include <machine/ansi.h>
     #include <machine/endian.h>

     #if !defined(_POSIX_SOURCE) && !defined(_XOPEN_SOURCE)
     typedef unsigned char   u_char;
     typedef unsigned short  u_short;
     typedef unsigned int    u_int;
     typedef unsigned long   u_long;

     typedef unsigned char   unchar;         /* Sys V compatibility */
     typedef unsigned short  ushort;         /* Sys V compatibility */
     typedef unsigned int    uint;           /* Sys V compatibility */
     typedef unsigned long   ulong;          /* Sys V compatibility */

     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 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       id_t;           /* may contain  pid,
uid or gid */
     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 int32_t         pid_t;          /* process id */
     typedef u_quad_t        rlim_t;         /* resource limit */
     typedef int32_t         segsz_t;        /* segment size */
     typedef int32_t         swblk_t;        /* swap offset */
     typedef u_int32_t       uid_t;          /* user id */
     typedef u_int32_t       useconds_t;     /* microseconds */
     typedef   int32_t          suseconds_t;     /*  microseconds
(signed) */

     #ifdef  _BSD_CLOCK_T_
     typedef _BSD_CLOCK_T_   clock_t;
     #undef  _BSD_CLOCK_T_

     #ifdef  _BSD_SIZE_T_
     typedef _BSD_SIZE_T_    size_t;
     #undef  _BSD_SIZE_T_

     #ifdef  _BSD_SSIZE_T_
     typedef _BSD_SSIZE_T_   ssize_t;
     #undef  _BSD_SSIZE_T_

     #ifdef  _BSD_TIME_T_
     typedef _BSD_TIME_T_    time_t;
     #undef  _BSD_TIME_T_

     #ifdef  _BSD_CLOCKID_T_
     typedef _BSD_CLOCKID_T_ clockid_t;
     #undef  _BSD_CLOCKID_T_

     #ifdef  _BSD_TIMER_T_
     typedef _BSD_TIMER_T_   timer_t;
     #undef  _BSD_TIMER_T_

     #ifdef  _BSD_OFF_T_
     typedef _BSD_OFF_T_     off_t;
     #undef  _BSD_OFF_T_

     #if !defined(_POSIX_SOURCE) && !defined(_XOPEN_SOURCE)
     /* Major, minor numbers, dev_t's. */
     #define major(x)        ((int32_t)(((u_int32_t)(x) >>  8)  &
     #define  minor(x)         ((int32_t)((x)  &  0xff) | (((x) &
0xffff0000) >> 8))
     #define makedev(x,y)    ((dev_t)((((x) & 0xff) << 8) |  ((y)
& 0xff) | (((y) & 0xffff00) << 8)))

     #if !defined(_POSIX_SOURCE) && !defined(_XOPEN_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
      * FD_SETSIZE may be defined by the user,  but  the  default
here should
      * be enough for most uses.
     #ifndef FD_SETSIZE
     #define FD_SETSIZE      1024

     typedef int32_t fd_mask;
     #define  NFDBITS (sizeof(fd_mask) * NBBY)        /* bits per
mask */

     #ifndef howmany
     #define howmany(x, y)   (((x) + ((y) - 1)) / (y))

     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)   memcpy(t, f, sizeof(*(f)))
     #define FD_ZERO(p)      memset(p, 0, sizeof(*(p)))

     #endif /* !defined(_POSIX_SOURCE) ... */
     #endif /* !_SYS_TYPES_H_ */

SEE ALSO    [Toc]    [Back]

     lseek(2),  select(2),  truncate(2),  byteorder(3),  time(3),

HISTORY    [Toc]    [Back]

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

OpenBSD      3.6                           June      5,      1993
[ Back ]
 Similar pages
Name OS Title
cry2mips IRIX Converts Fortran data types between Cray Fortran data types and MIPS IEEE Fortran data types
types HP-UX primitive system data types
types IRIX primitive system data types
perldata IRIX Perl data types
perldata OpenBSD Perl data types
DtDtsFindAttribute HP-UX get a specified list of data types
DtDtsDataTypeNames HP-UX get a list of available data types
inttypes HP-UX basic integer data types
nl_types IRIX native language data types
iflDataSize IRIX convenience functions for using IFL data types
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service