18e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/* 28e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Copyright (C) 2005, 2006 Apple Computer, Inc. 38e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 48e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * This library is free software; you can redistribute it and/or 58e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * modify it under the terms of the GNU Library General Public 68e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * License as published by the Free Software Foundation; either 78e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * version 2 of the License, or (at your option) any later version. 88e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 98e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * This library is distributed in the hope that it will be useful, 108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * but WITHOUT ANY WARRANTY; without even the implied warranty of 118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Library General Public License for more details. 138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * You should have received a copy of the GNU Library General Public License 158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * along with this library; see the file COPYING.LIB. If not, write to 168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Boston, MA 02110-1301, USA. 188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */ 208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#ifndef STDINT_WIN32_H 228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define STDINT_WIN32_H 238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include <wtf/Platform.h> 258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 26231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block/* This file emulates enough of stdint.h on Windows to make JavaScriptCore and WebCore 27231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block compile using MSVC which does not ship with the stdint.h header. */ 288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 29231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block#if !COMPILER(MSVC) 30231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block#error "This stdint.h file should only be compiled with MSVC" 318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include <limits.h> 348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projecttypedef unsigned char uint8_t; 368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projecttypedef signed char int8_t; 378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projecttypedef unsigned short uint16_t; 388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projecttypedef short int16_t; 398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projecttypedef unsigned int uint32_t; 408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projecttypedef int int32_t; 418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projecttypedef __int64 int64_t; 428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projecttypedef unsigned __int64 uint64_t; 438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#if !defined(__cplusplus) || defined(__STDC_LIMIT_MACROS) 458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#ifndef SIZE_MAX 468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#ifdef _WIN64 478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define SIZE_MAX _UI64_MAX 488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#else 498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define SIZE_MAX _UI32_MAX 508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#ifndef CASSERT 558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define CASSERT(exp, name) typedef int dummy##name [(exp) ? 1 : -1]; 568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectCASSERT(sizeof(int8_t) == 1, int8_t_is_one_byte) 598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectCASSERT(sizeof(uint8_t) == 1, uint8_t_is_one_byte) 608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectCASSERT(sizeof(int16_t) == 2, int16_t_is_two_bytes) 618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectCASSERT(sizeof(uint16_t) == 2, uint16_t_is_two_bytes) 628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectCASSERT(sizeof(int32_t) == 4, int32_t_is_four_bytes) 638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectCASSERT(sizeof(uint32_t) == 4, uint32_t_is_four_bytes) 64dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockCASSERT(sizeof(int64_t) == 8, int64_t_is_eight_bytes) 65dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockCASSERT(sizeof(uint64_t) == 8, uint64_t_is_eight_bytes) 668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 68