| OLD | NEW |
| (Empty) |
| 1 /* -*- Mode: C; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ | |
| 2 /* ***** BEGIN LICENSE BLOCK ***** | |
| 3 * Version: MPL 1.1/GPL 2.0/LGPL 2.1 | |
| 4 * | |
| 5 * The contents of this file are subject to the Mozilla Public License Version | |
| 6 * 1.1 (the "License"); you may not use this file except in compliance with | |
| 7 * the License. You may obtain a copy of the License at | |
| 8 * http://www.mozilla.org/MPL/ | |
| 9 * | |
| 10 * Software distributed under the License is distributed on an "AS IS" basis, | |
| 11 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License | |
| 12 * for the specific language governing rights and limitations under the | |
| 13 * License. | |
| 14 * | |
| 15 * The Original Code is mozilla.org code. | |
| 16 * | |
| 17 * The Initial Developer of the Original Code is | |
| 18 * mozilla.org. | |
| 19 * Portions created by the Initial Developer are Copyright (C) 2004 | |
| 20 * the Initial Developer. All Rights Reserved. | |
| 21 * | |
| 22 * Contributor(s): | |
| 23 * Johnny Stenback <jst@mozilla.org> (Original author) | |
| 24 * | |
| 25 * Alternatively, the contents of this file may be used under the terms of | |
| 26 * either the GNU General Public License Version 2 or later (the "GPL"), or | |
| 27 * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), | |
| 28 * in which case the provisions of the GPL or the LGPL are applicable instead | |
| 29 * of those above. If you wish to allow use of your version of this file only | |
| 30 * under the terms of either the GPL or the LGPL, and not to allow others to | |
| 31 * use your version of this file under the terms of the MPL, indicate your | |
| 32 * decision by deleting the provisions above and replace them with the notice | |
| 33 * and other provisions required by the GPL or the LGPL. If you do not delete | |
| 34 * the provisions above, a recipient may use your version of this file under | |
| 35 * the terms of any one of the MPL, the GPL or the LGPL. | |
| 36 * | |
| 37 * ***** END LICENSE BLOCK ***** */ | |
| 38 | |
| 39 #ifndef nptypes_h_ | |
| 40 #define nptypes_h_ | |
| 41 | |
| 42 /* | |
| 43 * Header file for ensuring that C99 types ([u]int32_t, [u]int64_t and bool) and | |
| 44 * true/false macros are available. | |
| 45 */ | |
| 46 | |
| 47 #if defined(WIN32) || defined(OS2) | |
| 48 /* | |
| 49 * Win32 and OS/2 don't know C99, so define [u]int_16/32/64 here. The bool | |
| 50 * is predefined tho, both in C and C++. | |
| 51 */ | |
| 52 typedef short int16_t; | |
| 53 typedef unsigned short uint16_t; | |
| 54 typedef int int32_t; | |
| 55 typedef unsigned int uint32_t; | |
| 56 typedef long long int64_t; | |
| 57 typedef unsigned long long uint64_t; | |
| 58 #elif defined(_AIX) || defined(__sun) || defined(__osf__) || defined(IRIX) || de
fined(HPUX) | |
| 59 /* | |
| 60 * AIX and SunOS ship a inttypes.h header that defines [u]int32_t, | |
| 61 * but not bool for C. | |
| 62 */ | |
| 63 #include <inttypes.h> | |
| 64 | |
| 65 #ifndef __cplusplus | |
| 66 typedef int bool; | |
| 67 #define true 1 | |
| 68 #define false 0 | |
| 69 #endif | |
| 70 #elif defined(bsdi) || defined(FREEBSD) || defined(OPENBSD) | |
| 71 /* | |
| 72 * BSD/OS, FreeBSD, and OpenBSD ship sys/types.h that define int32_t and | |
| 73 * u_int32_t. | |
| 74 */ | |
| 75 #include <sys/types.h> | |
| 76 | |
| 77 /* | |
| 78 * BSD/OS ships no header that defines uint32_t, nor bool (for C) | |
| 79 */ | |
| 80 #if defined(bsdi) | |
| 81 typedef u_int32_t uint32_t; | |
| 82 typedef u_int64_t uint64_t; | |
| 83 | |
| 84 #if !defined(__cplusplus) | |
| 85 typedef int bool; | |
| 86 #define true 1 | |
| 87 #define false 0 | |
| 88 #endif | |
| 89 #else | |
| 90 /* | |
| 91 * FreeBSD and OpenBSD define uint32_t and bool. | |
| 92 */ | |
| 93 #include <inttypes.h> | |
| 94 #include <stdbool.h> | |
| 95 #endif | |
| 96 #elif defined(BEOS) | |
| 97 #include <inttypes.h> | |
| 98 #else | |
| 99 /* | |
| 100 * For those that ship a standard C99 stdint.h header file, include | |
| 101 * it. Can't do the same for stdbool.h tho, since some systems ship | |
| 102 * with a stdbool.h file that doesn't compile! | |
| 103 */ | |
| 104 #include <stdint.h> | |
| 105 | |
| 106 #ifndef __cplusplus | |
| 107 #if !defined(__GNUC__) || (__GNUC__ > 2 || __GNUC_MINOR__ > 95) | |
| 108 #include <stdbool.h> | |
| 109 #else | |
| 110 /* | |
| 111 * GCC 2.91 can't deal with a typedef for bool, but a #define | |
| 112 * works. | |
| 113 */ | |
| 114 #define bool int | |
| 115 #define true 1 | |
| 116 #define false 0 | |
| 117 #endif | |
| 118 #endif | |
| 119 #endif | |
| 120 | |
| 121 #endif /* nptypes_h_ */ | |
| OLD | NEW |