The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/arch/amd64/include/_types.h

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 /*      $OpenBSD: _types.h,v 1.18 2022/11/08 17:34:13 cheloha Exp $     */
    2 
    3 /*-
    4  * Copyright (c) 1990, 1993
    5  *      The Regents of the University of California.  All rights reserved.
    6  *
    7  * Redistribution and use in source and binary forms, with or without
    8  * modification, are permitted provided that the following conditions
    9  * are met:
   10  * 1. Redistributions of source code must retain the above copyright
   11  *    notice, this list of conditions and the following disclaimer.
   12  * 2. Redistributions in binary form must reproduce the above copyright
   13  *    notice, this list of conditions and the following disclaimer in the
   14  *    documentation and/or other materials provided with the distribution.
   15  * 3. Neither the name of the University nor the names of its contributors
   16  *    may be used to endorse or promote products derived from this software
   17  *    without specific prior written permission.
   18  *
   19  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
   20  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
   21  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
   22  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
   23  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
   24  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
   25  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
   26  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
   27  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
   28  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   29  * SUCH DAMAGE.
   30  *
   31  *      @(#)types.h     8.3 (Berkeley) 1/5/94
   32  *      @(#)ansi.h      8.2 (Berkeley) 1/4/94
   33  */
   34 
   35 #ifndef _MACHINE__TYPES_H_
   36 #define _MACHINE__TYPES_H_
   37 
   38 #define __HAVE_CLOCKINTR
   39 
   40 /*
   41  * _ALIGN(p) rounds p (pointer or byte index) up to a correctly-aligned
   42  * value for all data types (int, long, ...).   The result is an
   43  * unsigned long and must be cast to any desired pointer type.
   44  *
   45  * _ALIGNED_POINTER is a boolean macro that checks whether an address
   46  * is valid to fetch data elements of type t from on this architecture.
   47  * This does not reflect the optimal alignment, just the possibility
   48  * (within reasonable limits). 
   49  */
   50 #define _ALIGNBYTES             (sizeof(long) - 1)
   51 #define _STACKALIGNBYTES        15
   52 #define _ALIGN(p)               (((unsigned long)(p) + _ALIGNBYTES) &~_ALIGNBYTES)
   53 #define _ALIGNED_POINTER(p,t)   1
   54 #define _MAX_PAGE_SHIFT         12      /* same as PAGE_SHIFT */
   55 
   56 #if defined(_KERNEL)
   57 typedef struct label_t {
   58         long val[8];
   59 } label_t;
   60 #endif
   61 
   62 /* 7.18.1.1 Exact-width integer types */
   63 typedef signed char             __int8_t;
   64 typedef unsigned char           __uint8_t;
   65 typedef short                   __int16_t;
   66 typedef unsigned short          __uint16_t;
   67 typedef int                     __int32_t;
   68 typedef unsigned int            __uint32_t;
   69 typedef long long               __int64_t;
   70 typedef unsigned long long      __uint64_t;
   71 
   72 /* 7.18.1.2 Minimum-width integer types */
   73 typedef __int8_t                __int_least8_t;
   74 typedef __uint8_t               __uint_least8_t;
   75 typedef __int16_t               __int_least16_t;
   76 typedef __uint16_t              __uint_least16_t;
   77 typedef __int32_t               __int_least32_t;
   78 typedef __uint32_t              __uint_least32_t;
   79 typedef __int64_t               __int_least64_t;
   80 typedef __uint64_t              __uint_least64_t;
   81 
   82 /* 7.18.1.3 Fastest minimum-width integer types */
   83 typedef __int32_t               __int_fast8_t;
   84 typedef __uint32_t              __uint_fast8_t;
   85 typedef __int32_t               __int_fast16_t;
   86 typedef __uint32_t              __uint_fast16_t;
   87 typedef __int32_t               __int_fast32_t;
   88 typedef __uint32_t              __uint_fast32_t;
   89 typedef __int64_t               __int_fast64_t;
   90 typedef __uint64_t              __uint_fast64_t;
   91 #define __INT_FAST8_MIN         INT32_MIN
   92 #define __INT_FAST16_MIN        INT32_MIN
   93 #define __INT_FAST32_MIN        INT32_MIN
   94 #define __INT_FAST64_MIN        INT64_MIN
   95 #define __INT_FAST8_MAX         INT32_MAX
   96 #define __INT_FAST16_MAX        INT32_MAX
   97 #define __INT_FAST32_MAX        INT32_MAX
   98 #define __INT_FAST64_MAX        INT64_MAX
   99 #define __UINT_FAST8_MAX        UINT32_MAX
  100 #define __UINT_FAST16_MAX       UINT32_MAX
  101 #define __UINT_FAST32_MAX       UINT32_MAX
  102 #define __UINT_FAST64_MAX       UINT64_MAX
  103 
  104 /* 7.18.1.4 Integer types capable of holding object pointers */
  105 typedef long                    __intptr_t;
  106 typedef unsigned long           __uintptr_t;
  107 
  108 /* 7.18.1.5 Greatest-width integer types */
  109 typedef __int64_t               __intmax_t;
  110 typedef __uint64_t              __uintmax_t;
  111 
  112 /* Register size */
  113 typedef long                    __register_t;
  114 
  115 /* VM system types */
  116 typedef unsigned long           __vaddr_t;
  117 typedef unsigned long           __paddr_t;
  118 typedef unsigned long           __vsize_t;
  119 typedef unsigned long           __psize_t;
  120 
  121 /* Standard system types */
  122 typedef double                  __double_t;
  123 typedef float                   __float_t;
  124 typedef long                    __ptrdiff_t;
  125 typedef unsigned long           __size_t;
  126 typedef long                    __ssize_t;
  127 #if defined(__GNUC__) && __GNUC__ >= 3
  128 typedef __builtin_va_list       __va_list;
  129 #else
  130 typedef char *                  __va_list;
  131 #endif
  132 
  133 /* Wide character support types */
  134 #ifndef __cplusplus
  135 typedef int                     __wchar_t;
  136 #endif
  137 typedef int                     __wint_t;
  138 typedef int                     __rune_t;
  139 typedef void *                  __wctrans_t;
  140 typedef void *                  __wctype_t;
  141 
  142 #endif  /* _MACHINE__TYPES_H_ */

Cache object: 3ee35132f5246d2a1385e0411577b298


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.