typedefs_md.h revision 5821806d5e7f356e8fa4b058a389a808ea183019
1/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ 2/* ***** BEGIN LICENSE BLOCK ***** 3 * Version: NPL 1.1/GPL 2.0/LGPL 2.1 4 * 5 * The contents of this file are subject to the Netscape Public License 6 * Version 1.1 (the "License"); you may not use this file except in 7 * compliance with the License. You may obtain a copy of the License at 8 * http://www.mozilla.org/NPL/ 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 * Netscape Communications Corporation. 19 * Portions created by the Initial Developer are Copyright (C) 1998 20 * the Initial Developer. All Rights Reserved. 21 * 22 * Contributor(s): 23 * 24 * Alternatively, the contents of this file may be used under the terms of 25 * either the GNU General Public License Version 2 or later (the "GPL"), or 26 * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), 27 * in which case the provisions of the GPL or the LGPL are applicable instead 28 * of those above. If you wish to allow use of your version of this file only 29 * under the terms of either the GPL or the LGPL, and not to allow others to 30 * use your version of this file under the terms of the NPL, indicate your 31 * decision by deleting the provisions above and replace them with the notice 32 * and other provisions required by the GPL or the LGPL. If you do not delete 33 * the provisions above, a recipient may use your version of this file under 34 * the terms of any one of the NPL, the GPL or the LGPL. 35 * 36 * ***** END LICENSE BLOCK ***** */ 37#ifndef sun_java_typedefs_md_h___ 38#define sun_java_typedefs_md_h___ 39 40#include "prtypes.h" 41#include "nspr_md.h" 42 43/* Some platforms need this to define int32_t */ 44#ifdef HAVE_SYS_BITYPES_H 45#include <sys/bitypes.h> 46#endif 47 48PR_BEGIN_EXTERN_C 49 50#ifndef HAVE_INT16_T 51typedef int16 int16_t; 52#endif 53 54#ifndef HAVE_INT32_T 55typedef int32 int32_t; 56#endif 57 58#ifndef HAVE_UINT16_T 59typedef uint16 uint16_t; 60#ifndef _UINT32_T 61#define _UINT32_T 62typedef uint32 uint32_t; 63#endif 64#endif 65 66typedef prword_t uintVP_t; /* unsigned that is same size as a void pointer */ 67 68#if defined(HAVE_INT64) && !defined(HAVE_INT64_T) 69typedef int64 int64_t; 70#endif 71 72#if !defined(HAVE_INT64) && defined(HAVE_INT64_T) 73/* 74** On BSDI, for some reason, they define long long's for these types 75** even though they aren't actually 64 bits wide! 76*/ 77#define int64_t int64 78#endif 79 80#ifndef HAVE_UINT_T 81#ifndef XP_MAC 82typedef unsigned int uint_t; 83#else 84/* we have to push/pop to avoid breaking existing projects that 85** have "treat warnings as errors" on. This is two, two, TWO hacks in one! (pinkerton) 86*/ 87#pragma warning_errors off 88#ifndef __OPENTRANSPORT__ 89typedef unsigned long uint_t; /* this is already declared in OpenTransport.h, but we don't want to drag in 90 all the other defines present there. This is a bad solution, but the 91 least bad given the alternatives. */ 92#endif /* __OPENTRANSPORT__ */ 93#pragma warning_errors reset 94#endif 95#endif 96 97#if defined(XP_WIN) 98typedef long int32_t; 99#endif 100 101PR_END_EXTERN_C 102 103#endif /* sun_java_typedefs_md_h___ */ 104