root/sys/types.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


    1 /*      $OpenBSD: types.h,v 1.30 2006/10/03 19:49:06 pedro Exp $        */
    2 /*      $NetBSD: types.h,v 1.29 1996/11/15 22:48:25 jtc Exp $   */
    3 
    4 /*-
    5  * Copyright (c) 1982, 1986, 1991, 1993
    6  *      The Regents of the University of California.  All rights reserved.
    7  * (c) UNIX System Laboratories, Inc.
    8  * All or some portions of this file are derived from material licensed
    9  * to the University of California by American Telephone and Telegraph
   10  * Co. or Unix System Laboratories, Inc. and are reproduced herein with
   11  * the permission of UNIX System Laboratories, Inc.
   12  *
   13  * Redistribution and use in source and binary forms, with or without
   14  * modification, are permitted provided that the following conditions
   15  * are met:
   16  * 1. Redistributions of source code must retain the above copyright
   17  *    notice, this list of conditions and the following disclaimer.
   18  * 2. Redistributions in binary form must reproduce the above copyright
   19  *    notice, this list of conditions and the following disclaimer in the
   20  *    documentation and/or other materials provided with the distribution.
   21  * 3. Neither the name of the University nor the names of its contributors
   22  *    may be used to endorse or promote products derived from this software
   23  *    without specific prior written permission.
   24  *
   25  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
   26  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
   27  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
   28  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
   29  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
   30  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
   31  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
   32  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
   33  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
   34  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   35  * SUCH DAMAGE.
   36  *
   37  *      @(#)types.h     8.4 (Berkeley) 1/21/94
   38  */
   39 
   40 #ifndef _SYS_TYPES_H_
   41 #define _SYS_TYPES_H_
   42 
   43 #include <sys/cdefs.h>
   44 #include <sys/_types.h>
   45 #include <machine/endian.h>
   46 
   47 #if __BSD_VISIBLE
   48 typedef unsigned char   u_char;
   49 typedef unsigned short  u_short;
   50 typedef unsigned int    u_int;
   51 typedef unsigned long   u_long;
   52 
   53 typedef unsigned char   unchar;         /* Sys V compatibility */
   54 typedef unsigned short  ushort;         /* Sys V compatibility */
   55 typedef unsigned int    uint;           /* Sys V compatibility */
   56 typedef unsigned long   ulong;          /* Sys V compatibility */
   57 
   58 typedef __cpuid_t       cpuid_t;        /* CPU id */
   59 typedef __register_t    register_t;     /* register-sized type */
   60 #endif /* __BSD_VISIBLE */
   61 
   62 /*
   63  * XXX The exact-width bit types should only be exposed if __BSD_VISIBLE
   64  *     but the rest of the includes are not ready for that yet.
   65  */
   66 #ifndef __BIT_TYPES_DEFINED__
   67 #define __BIT_TYPES_DEFINED__
   68 #endif
   69 
   70 #ifndef _INT8_T_DEFINED_
   71 #define _INT8_T_DEFINED_
   72 typedef __int8_t                int8_t;
   73 #endif
   74 
   75 #ifndef _UINT8_T_DEFINED_
   76 #define _UINT8_T_DEFINED_
   77 typedef __uint8_t               uint8_t;
   78 #endif
   79 
   80 #ifndef _INT16_T_DEFINED_
   81 #define _INT16_T_DEFINED_
   82 typedef __int16_t               int16_t;
   83 #endif
   84 
   85 #ifndef _UINT16_T_DEFINED_
   86 #define _UINT16_T_DEFINED_
   87 typedef __uint16_t              uint16_t;
   88 #endif
   89 
   90 #ifndef _INT32_T_DEFINED_
   91 #define _INT32_T_DEFINED_
   92 typedef __int32_t               int32_t;
   93 #endif
   94 
   95 #ifndef _UINT32_T_DEFINED_
   96 #define _UINT32_T_DEFINED_
   97 typedef __uint32_t              uint32_t;
   98 #endif
   99 
  100 #ifndef _INT64_T_DEFINED_
  101 #define _INT64_T_DEFINED_
  102 typedef __int64_t               int64_t;
  103 #endif
  104 
  105 #ifndef _UINT64_T_DEFINED_
  106 #define _UINT64_T_DEFINED_
  107 typedef __uint64_t              uint64_t;
  108 #endif
  109 
  110 /* BSD-style unsigned bits types */
  111 typedef __uint8_t       u_int8_t;
  112 typedef __uint16_t      u_int16_t;
  113 typedef __uint32_t      u_int32_t;
  114 typedef __uint64_t      u_int64_t;
  115 
  116 /* quads, deprecated in favor of 64 bit int types */
  117 typedef __int64_t       quad_t;
  118 typedef __uint64_t      u_quad_t;
  119 typedef quad_t *        qaddr_t;
  120 
  121 #if __BSD_VISIBLE
  122 /* VM system types */
  123 typedef __vaddr_t       vaddr_t;
  124 typedef __paddr_t       paddr_t;
  125 typedef __vsize_t       vsize_t;
  126 typedef __psize_t       psize_t;
  127 #endif /* __BSD_VISIBLE */
  128 
  129 /* Standard system types */
  130 typedef char *          caddr_t;        /* core address */
  131 typedef __int32_t       daddr_t;        /* 32-bit disk address */
  132 typedef __int32_t       daddr32_t;      /* 32-bit disk address */
  133 typedef __int64_t       daddr64_t;      /* 64-bit disk address */
  134 typedef __dev_t         dev_t;          /* device number */
  135 typedef __fixpt_t       fixpt_t;        /* fixed point number */
  136 typedef __gid_t         gid_t;          /* group id */
  137 typedef __id_t          id_t;           /* may contain pid, uid or gid */
  138 typedef __ino_t         ino_t;          /* inode number */
  139 typedef __key_t         key_t;          /* IPC key (for Sys V IPC) */
  140 typedef __mode_t        mode_t;         /* permissions */
  141 typedef __nlink_t       nlink_t;        /* link count */
  142 typedef __pid_t         pid_t;          /* process id */
  143 typedef __rlim_t        rlim_t;         /* resource limit */
  144 typedef __segsz_t       segsz_t;        /* segment size */
  145 typedef __swblk_t       swblk_t;        /* swap offset */
  146 typedef __uid_t         uid_t;          /* user id */
  147 typedef __useconds_t    useconds_t;     /* microseconds */
  148 typedef __suseconds_t   suseconds_t;    /* microseconds (signed) */
  149 
  150 /*
  151  * XPG4.2 states that inclusion of <netinet/in.h> must pull these
  152  * in and that inclusion of <sys/socket.h> must pull in sa_family_t.
  153  * We put these here because there are other headers that require
  154  * these types and <sys/socket.h> and <netinet/in.h> will indirectly
  155  * include <sys/types.h>.
  156  * XXX - now that we have protected versions these should move.
  157  */
  158 typedef __in_addr_t     in_addr_t;      /* base type for internet address */
  159 typedef __in_port_t     in_port_t;      /* IP port type */
  160 typedef __sa_family_t   sa_family_t;    /* sockaddr address family type */
  161 typedef __socklen_t     socklen_t;      /* length type for network syscalls */
  162 
  163 /*
  164  * The following types may be defined in multiple header files.
  165  */
  166 #ifndef _CLOCK_T_DEFINED_
  167 #define _CLOCK_T_DEFINED_
  168 typedef __clock_t       clock_t;
  169 #endif
  170 
  171 #ifndef _CLOCKID_T_DEFINED_
  172 #define _CLOCKID_T_DEFINED_
  173 typedef __clockid_t     clockid_t;
  174 #endif
  175 
  176 #ifndef _SIZE_T_DEFINED_
  177 #define _SIZE_T_DEFINED_
  178 typedef __size_t        size_t;
  179 #endif
  180 
  181 #ifndef _SSIZE_T_DEFINED_
  182 #define _SSIZE_T_DEFINED_
  183 typedef __ssize_t       ssize_t;
  184 #endif
  185 
  186 #ifndef _TIME_T_DEFINED_
  187 #define _TIME_T_DEFINED_
  188 typedef __time_t        time_t;
  189 #endif
  190 
  191 #ifndef _TIMER_T_DEFINED_
  192 #define _TIMER_T_DEFINED_
  193 typedef __timer_t       timer_t;
  194 #endif
  195 
  196 #ifndef _OFF_T_DEFINED_
  197 #define _OFF_T_DEFINED_
  198 typedef __off_t         off_t;
  199 #endif
  200 
  201 /*
  202  * These belong in unistd.h, but are placed here too to ensure that
  203  * long arguments will be promoted to off_t if the program fails to
  204  * include that header or explicitly cast them to off_t.
  205  */
  206 #if __BSD_VISIBLE && !defined(_KERNEL)
  207 __BEGIN_DECLS
  208 off_t    lseek(int, off_t, int);
  209 int      ftruncate(int, off_t);
  210 int      truncate(const char *, off_t);
  211 __END_DECLS
  212 #endif /* __BSD_VISIBLE && !_KERNEL */
  213 
  214 #if __BSD_VISIBLE
  215 /* Major, minor numbers, dev_t's. */
  216 #define major(x)        ((int32_t)(((u_int32_t)(x) >> 8) & 0xff))
  217 #define minor(x)        ((int32_t)((x) & 0xff) | (((x) & 0xffff0000) >> 8))
  218 #define makedev(x,y)    ((dev_t)((((x) & 0xff) << 8) | ((y) & 0xff) | (((y) & 0xffff00) << 8)))
  219 #endif
  220 
  221 #if __BSD_VISIBLE
  222 #include <sys/select.h> /* must be after type declarations */
  223 #endif
  224 
  225 #if defined(__STDC__) && defined(_KERNEL)
  226 /*
  227  * Forward structure declarations for function prototypes.  We include the
  228  * common structures that cross subsystem boundaries here; others are mostly
  229  * used in the same place that the structure is defined.
  230  */
  231 struct  proc;
  232 struct  pgrp;
  233 struct  ucred;
  234 struct  rusage;
  235 struct  file;
  236 struct  buf;
  237 struct  tty;
  238 struct  uio;
  239 #endif
  240 
  241 #endif /* !_SYS_TYPES_H_ */

/* [<][>][^][v][top][bottom][index][help] */