12949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project/*
22949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * Copyright (C) 1999 WIDE Project.
32949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * All rights reserved.
42949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project *
52949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * Redistribution and use in source and binary forms, with or without
62949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * modification, are permitted provided that the following conditions
72949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * are met:
82949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * 1. Redistributions of source code must retain the above copyright
92949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project *    notice, this list of conditions and the following disclaimer.
102949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * 2. Redistributions in binary form must reproduce the above copyright
112949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project *    notice, this list of conditions and the following disclaimer in the
122949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project *    documentation and/or other materials provided with the distribution.
132949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * 3. Neither the name of the project nor the names of its contributors
142949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project *    may be used to endorse or promote products derived from this software
152949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project *    without specific prior written permission.
162949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project *
172949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
182949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
192949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
202949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * ARE DISCLAIMED.  IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
212949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
222949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
232949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
242949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
252949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
262949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
272949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * SUCH DAMAGE.
282949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project */
2953f17a9db278d33517d9888dd77848f554522a38JP Abgrall#ifndef _BITTYPES_H
3053f17a9db278d33517d9888dd77848f554522a38JP Abgrall#define _BITTYPES_H
312949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project
3253f17a9db278d33517d9888dd77848f554522a38JP Abgrall#ifndef HAVE_U_INT8_T
332949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projecttypedef unsigned char u_int8_t;
3453f17a9db278d33517d9888dd77848f554522a38JP Abgralltypedef signed char int8_t;
352949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#endif /* HAVE_U_INT8_T */
362949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project
372949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#ifndef HAVE_U_INT16_T
382949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projecttypedef unsigned short u_int16_t;
3953f17a9db278d33517d9888dd77848f554522a38JP Abgralltypedef signed short int16_t;
402949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#endif /* HAVE_U_INT16_T */
412949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project
422949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#ifndef HAVE_U_INT32_T
432949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projecttypedef unsigned int u_int32_t;
4453f17a9db278d33517d9888dd77848f554522a38JP Abgralltypedef signed int int32_t;
452949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#endif /* HAVE_U_INT32_T */
462949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project
472949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#ifndef HAVE_U_INT64_T
4853f17a9db278d33517d9888dd77848f554522a38JP Abgrall#ifdef _MSC_EXTENSIONS
492949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projecttypedef unsigned _int64 u_int64_t;
5053f17a9db278d33517d9888dd77848f554522a38JP Abgralltypedef _int64 int64_t;
5153f17a9db278d33517d9888dd77848f554522a38JP Abgrall#else /* _MSC_EXTENSIONS */
5253f17a9db278d33517d9888dd77848f554522a38JP Abgralltypedef unsigned long long u_int64_t;
5353f17a9db278d33517d9888dd77848f554522a38JP Abgralltypedef long long int64_t;
5453f17a9db278d33517d9888dd77848f554522a38JP Abgrall#endif /* _MSC_EXTENSIONS */
552949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#endif /* HAVE_U_INT64_T */
562949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project
572949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#ifndef PRId64
582949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#ifdef _MSC_EXTENSIONS
592949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define PRId64	"I64d"
602949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#else /* _MSC_EXTENSIONS */
612949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define PRId64	"lld"
622949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#endif /* _MSC_EXTENSIONS */
632949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#endif /* PRId64 */
642949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project
652949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#ifndef PRIo64
662949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#ifdef _MSC_EXTENSIONS
672949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define PRIo64	"I64o"
682949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#else /* _MSC_EXTENSIONS */
692949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define PRIo64	"llo"
702949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#endif /* _MSC_EXTENSIONS */
712949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#endif /* PRIo64 */
722949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project
732949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#ifndef PRIx64
742949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#ifdef _MSC_EXTENSIONS
752949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define PRIx64	"I64x"
762949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#else /* _MSC_EXTENSIONS */
772949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define PRIx64	"llx"
782949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#endif /* _MSC_EXTENSIONS */
792949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#endif /* PRIx64 */
802949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project
812949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#ifndef PRIu64
822949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#ifdef _MSC_EXTENSIONS
832949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define PRIu64	"I64u"
842949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#else /* _MSC_EXTENSIONS */
852949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define PRIu64	"llu"
862949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#endif /* _MSC_EXTENSIONS */
872949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#endif /* PRIu64 */
8853f17a9db278d33517d9888dd77848f554522a38JP Abgrall
8953f17a9db278d33517d9888dd77848f554522a38JP Abgrall#endif /* _BITTYPES_H */
90