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/libkern/libkern/OSTypes.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 /*
    2  * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
    3  *
    4  * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
    5  * 
    6  * This file contains Original Code and/or Modifications of Original Code
    7  * as defined in and that are subject to the Apple Public Source License
    8  * Version 2.0 (the 'License'). You may not use this file except in
    9  * compliance with the License. The rights granted to you under the License
   10  * may not be used to create, or enable the creation or redistribution of,
   11  * unlawful or unlicensed copies of an Apple operating system, or to
   12  * circumvent, violate, or enable the circumvention or violation of, any
   13  * terms of an Apple operating system software license agreement.
   14  * 
   15  * Please obtain a copy of the License at
   16  * http://www.opensource.apple.com/apsl/ and read it before using this file.
   17  * 
   18  * The Original Code and all software distributed under the License are
   19  * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
   20  * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
   21  * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
   22  * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
   23  * Please see the License for the specific language governing rights and
   24  * limitations under the License.
   25  * 
   26  * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
   27  */
   28 /*
   29  * Copyright (c) 1999 Apple Computer, Inc.  All rights reserved.
   30  *
   31  * HISTORY
   32  *
   33  */
   34 
   35 #ifndef _OS_OSTYPES_H
   36 #define _OS_OSTYPES_H
   37 
   38 #define OSTYPES_K64_REV         2
   39 
   40 typedef unsigned int       UInt;
   41 typedef signed int         SInt;
   42 
   43 #ifndef __MACTYPES__    /* CF MacTypes.h */
   44 #ifndef __TYPES__       /* guess... Mac Types.h */
   45 
   46 typedef unsigned char      UInt8;
   47 typedef unsigned short     UInt16;
   48 #if __LP64__
   49 typedef unsigned int       UInt32;
   50 #else
   51 typedef unsigned long      UInt32;
   52 #endif
   53 typedef unsigned long long UInt64;
   54 #if             defined(__BIG_ENDIAN__)
   55 typedef struct UnsignedWide {
   56                         UInt32          hi;
   57                         UInt32          lo;
   58 }                                                       UnsignedWide;
   59 #elif           defined(__LITTLE_ENDIAN__)
   60 typedef struct UnsignedWide {
   61                         UInt32          lo;
   62                         UInt32          hi;
   63 }                                                       UnsignedWide;
   64 #else
   65 #error Unknown endianess.
   66 #endif
   67 
   68 typedef signed char        SInt8;
   69 typedef signed short       SInt16;
   70 #if __LP64__
   71 typedef signed int         SInt32;
   72 #else
   73 typedef signed long        SInt32;
   74 #endif
   75 typedef signed long long   SInt64;
   76 #if             defined(__BIG_ENDIAN__)
   77 typedef struct wide {
   78                         SInt32          hi;
   79                         UInt32          lo;
   80 }                                                       wide;
   81 #elif           defined(__LITTLE_ENDIAN__)
   82 typedef struct wide {
   83                         UInt32          lo;
   84                         SInt32          hi;
   85 }                                                       wide;
   86 #else
   87 #error Unknown endianess.
   88 #endif
   89 
   90 typedef SInt32                          OSStatus;
   91 
   92 #if defined(__LP64__) && defined(KERNEL)
   93 #ifndef ABSOLUTETIME_SCALAR_TYPE
   94 #define ABSOLUTETIME_SCALAR_TYPE    1
   95 #endif
   96 typedef UInt64          AbsoluteTime;
   97 #else
   98 typedef UnsignedWide            AbsoluteTime;
   99 #endif
  100 
  101 typedef UInt32                          OptionBits;
  102 
  103 #if defined(KERNEL) && defined(__LP64__)
  104 /*
  105  * Use intrinsic boolean types for the LP64 kernel, otherwise maintain
  106  * source and binary backward compatibility.  This attempts to resolve
  107  * the "(x == true)" vs. "(x)" conditional issue.
  108  */
  109 #ifdef __cplusplus
  110 typedef bool Boolean;
  111 #else   /* !__cplusplus */
  112 #if defined(__STDC_VERSION__) && ((__STDC_VERSION__ - 199901L) > 0L)
  113 /* only use this if we are sure we are using a c99 compiler */
  114 typedef _Bool Boolean;
  115 #else   /* !c99 */
  116 /* Fall back to previous definition unless c99 */
  117 typedef unsigned char Boolean;
  118 #endif  /* !c99 */
  119 #endif  /* !__cplusplus */
  120 #else   /* !(KERNEL && __LP64__) */
  121 typedef unsigned char Boolean;
  122 #endif  /* !(KERNEL && __LP64__) */
  123 
  124 #endif /* __TYPES__ */
  125 #endif /* __MACTYPES__ */
  126 
  127 #if !defined(OS_INLINE)
  128 #       define OS_INLINE static inline
  129 #endif
  130 
  131 #endif /* _OS_OSTYPES_H */

Cache object: c2e1322ce8c9bc96b3ddd4aa59683323


[ 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.