1405b8029a6888f386adf3512113a33546141d1c8Raghu Gandham/* $OpenBSD: _types.h,v 1.5 2008/07/21 20:50:54 martynas Exp $ */ 2405b8029a6888f386adf3512113a33546141d1c8Raghu Gandham 3405b8029a6888f386adf3512113a33546141d1c8Raghu Gandham/*- 4405b8029a6888f386adf3512113a33546141d1c8Raghu Gandham * Copyright (c) 1990, 1993 5405b8029a6888f386adf3512113a33546141d1c8Raghu Gandham * The Regents of the University of California. All rights reserved. 6405b8029a6888f386adf3512113a33546141d1c8Raghu Gandham * 7405b8029a6888f386adf3512113a33546141d1c8Raghu Gandham * Redistribution and use in source and binary forms, with or without 8405b8029a6888f386adf3512113a33546141d1c8Raghu Gandham * modification, are permitted provided that the following conditions 9405b8029a6888f386adf3512113a33546141d1c8Raghu Gandham * are met: 10405b8029a6888f386adf3512113a33546141d1c8Raghu Gandham * 1. Redistributions of source code must retain the above copyright 11405b8029a6888f386adf3512113a33546141d1c8Raghu Gandham * notice, this list of conditions and the following disclaimer. 12405b8029a6888f386adf3512113a33546141d1c8Raghu Gandham * 2. Redistributions in binary form must reproduce the above copyright 13405b8029a6888f386adf3512113a33546141d1c8Raghu Gandham * notice, this list of conditions and the following disclaimer in the 14405b8029a6888f386adf3512113a33546141d1c8Raghu Gandham * documentation and/or other materials provided with the distribution. 15405b8029a6888f386adf3512113a33546141d1c8Raghu Gandham * 3. Neither the name of the University nor the names of its contributors 16405b8029a6888f386adf3512113a33546141d1c8Raghu Gandham * may be used to endorse or promote products derived from this software 17405b8029a6888f386adf3512113a33546141d1c8Raghu Gandham * without specific prior written permission. 18405b8029a6888f386adf3512113a33546141d1c8Raghu Gandham * 19405b8029a6888f386adf3512113a33546141d1c8Raghu Gandham * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 20405b8029a6888f386adf3512113a33546141d1c8Raghu Gandham * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 21405b8029a6888f386adf3512113a33546141d1c8Raghu Gandham * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 22405b8029a6888f386adf3512113a33546141d1c8Raghu Gandham * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 23405b8029a6888f386adf3512113a33546141d1c8Raghu Gandham * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 24405b8029a6888f386adf3512113a33546141d1c8Raghu Gandham * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 25405b8029a6888f386adf3512113a33546141d1c8Raghu Gandham * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 26405b8029a6888f386adf3512113a33546141d1c8Raghu Gandham * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 27405b8029a6888f386adf3512113a33546141d1c8Raghu Gandham * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 28405b8029a6888f386adf3512113a33546141d1c8Raghu Gandham * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 29405b8029a6888f386adf3512113a33546141d1c8Raghu Gandham * SUCH DAMAGE. 30405b8029a6888f386adf3512113a33546141d1c8Raghu Gandham * 31405b8029a6888f386adf3512113a33546141d1c8Raghu Gandham * @(#)types.h 8.3 (Berkeley) 1/5/94 32405b8029a6888f386adf3512113a33546141d1c8Raghu Gandham * @(#)ansi.h 8.2 (Berkeley) 1/4/94 33405b8029a6888f386adf3512113a33546141d1c8Raghu Gandham */ 34405b8029a6888f386adf3512113a33546141d1c8Raghu Gandham 35405b8029a6888f386adf3512113a33546141d1c8Raghu Gandham#ifndef _MIPS64__TYPES_H_ 36405b8029a6888f386adf3512113a33546141d1c8Raghu Gandham#define _MIPS64__TYPES_H_ 37405b8029a6888f386adf3512113a33546141d1c8Raghu Gandham 38405b8029a6888f386adf3512113a33546141d1c8Raghu Gandham/* 39405b8029a6888f386adf3512113a33546141d1c8Raghu Gandham * We need to handle the various ISA levels for sizes. 40405b8029a6888f386adf3512113a33546141d1c8Raghu Gandham */ 41405b8029a6888f386adf3512113a33546141d1c8Raghu Gandham#define _MIPS_ISA_MIPS1 1 /* R2000/R3000 */ 42405b8029a6888f386adf3512113a33546141d1c8Raghu Gandham#define _MIPS_ISA_MIPS2 2 /* R4000/R6000 */ 43405b8029a6888f386adf3512113a33546141d1c8Raghu Gandham#define _MIPS_ISA_MIPS3 3 /* R4000 */ 44405b8029a6888f386adf3512113a33546141d1c8Raghu Gandham#define _MIPS_ISA_MIPS4 4 /* TFP (R1x000) */ 45405b8029a6888f386adf3512113a33546141d1c8Raghu Gandham 46405b8029a6888f386adf3512113a33546141d1c8Raghu Gandham/* 7.18.1.1 Exact-width integer types */ 47405b8029a6888f386adf3512113a33546141d1c8Raghu Gandhamtypedef __signed char __int8_t; 48405b8029a6888f386adf3512113a33546141d1c8Raghu Gandhamtypedef unsigned char __uint8_t; 49405b8029a6888f386adf3512113a33546141d1c8Raghu Gandhamtypedef short __int16_t; 50405b8029a6888f386adf3512113a33546141d1c8Raghu Gandhamtypedef unsigned short __uint16_t; 51405b8029a6888f386adf3512113a33546141d1c8Raghu Gandhamtypedef int __int32_t; 52405b8029a6888f386adf3512113a33546141d1c8Raghu Gandhamtypedef unsigned int __uint32_t; 53405b8029a6888f386adf3512113a33546141d1c8Raghu Gandham/* LONGLONG */ 54405b8029a6888f386adf3512113a33546141d1c8Raghu Gandhamtypedef long long __int64_t; 55405b8029a6888f386adf3512113a33546141d1c8Raghu Gandham/* LONGLONG */ 56405b8029a6888f386adf3512113a33546141d1c8Raghu Gandhamtypedef unsigned long long __uint64_t; 57405b8029a6888f386adf3512113a33546141d1c8Raghu Gandham 58405b8029a6888f386adf3512113a33546141d1c8Raghu Gandham/* 7.18.1.2 Minimum-width integer types */ 59405b8029a6888f386adf3512113a33546141d1c8Raghu Gandhamtypedef __int8_t __int_least8_t; 60405b8029a6888f386adf3512113a33546141d1c8Raghu Gandhamtypedef __uint8_t __uint_least8_t; 61405b8029a6888f386adf3512113a33546141d1c8Raghu Gandhamtypedef __int16_t __int_least16_t; 62405b8029a6888f386adf3512113a33546141d1c8Raghu Gandhamtypedef __uint16_t __uint_least16_t; 63405b8029a6888f386adf3512113a33546141d1c8Raghu Gandhamtypedef __int32_t __int_least32_t; 64405b8029a6888f386adf3512113a33546141d1c8Raghu Gandhamtypedef __uint32_t __uint_least32_t; 65405b8029a6888f386adf3512113a33546141d1c8Raghu Gandhamtypedef __int64_t __int_least64_t; 66405b8029a6888f386adf3512113a33546141d1c8Raghu Gandhamtypedef __uint64_t __uint_least64_t; 67405b8029a6888f386adf3512113a33546141d1c8Raghu Gandham 68405b8029a6888f386adf3512113a33546141d1c8Raghu Gandham/* 7.18.1.3 Fastest minimum-width integer types */ 69405b8029a6888f386adf3512113a33546141d1c8Raghu Gandhamtypedef __int32_t __int_fast8_t; 70405b8029a6888f386adf3512113a33546141d1c8Raghu Gandhamtypedef __uint32_t __uint_fast8_t; 71405b8029a6888f386adf3512113a33546141d1c8Raghu Gandhamtypedef __int32_t __int_fast16_t; 72405b8029a6888f386adf3512113a33546141d1c8Raghu Gandhamtypedef __uint32_t __uint_fast16_t; 73405b8029a6888f386adf3512113a33546141d1c8Raghu Gandhamtypedef __int32_t __int_fast32_t; 74405b8029a6888f386adf3512113a33546141d1c8Raghu Gandhamtypedef __uint32_t __uint_fast32_t; 75405b8029a6888f386adf3512113a33546141d1c8Raghu Gandhamtypedef __int64_t __int_fast64_t; 76405b8029a6888f386adf3512113a33546141d1c8Raghu Gandhamtypedef __uint64_t __uint_fast64_t; 77405b8029a6888f386adf3512113a33546141d1c8Raghu Gandham 78405b8029a6888f386adf3512113a33546141d1c8Raghu Gandham/* 7.18.1.4 Integer types capable of holding object pointers */ 79405b8029a6888f386adf3512113a33546141d1c8Raghu Gandhamtypedef long __intptr_t; 80405b8029a6888f386adf3512113a33546141d1c8Raghu Gandhamtypedef unsigned long __uintptr_t; 81405b8029a6888f386adf3512113a33546141d1c8Raghu Gandham 82405b8029a6888f386adf3512113a33546141d1c8Raghu Gandham/* 7.18.1.5 Greatest-width integer types */ 83405b8029a6888f386adf3512113a33546141d1c8Raghu Gandhamtypedef __int64_t __intmax_t; 84405b8029a6888f386adf3512113a33546141d1c8Raghu Gandhamtypedef __uint64_t __uintmax_t; 85405b8029a6888f386adf3512113a33546141d1c8Raghu Gandham 86405b8029a6888f386adf3512113a33546141d1c8Raghu Gandham/* Register size */ 87405b8029a6888f386adf3512113a33546141d1c8Raghu Gandham#if (_MIPS_ISA == _MIPS_ISA_MIPS3 || _MIPS_ISA == _MIPS_ISA_MIPS4) 88405b8029a6888f386adf3512113a33546141d1c8Raghu Gandhamtypedef __int64_t __register_t; 89405b8029a6888f386adf3512113a33546141d1c8Raghu Gandhamtypedef __int64_t f_register_t; /* XXX */ 90405b8029a6888f386adf3512113a33546141d1c8Raghu Gandham#else 91405b8029a6888f386adf3512113a33546141d1c8Raghu Gandhamtypedef __int32_t __register_t; 92405b8029a6888f386adf3512113a33546141d1c8Raghu Gandhamtypedef __int32_t f_register_t; /* XXX */ 93405b8029a6888f386adf3512113a33546141d1c8Raghu Gandham#endif 94405b8029a6888f386adf3512113a33546141d1c8Raghu Gandham 95405b8029a6888f386adf3512113a33546141d1c8Raghu Gandham/* VM system types */ 96405b8029a6888f386adf3512113a33546141d1c8Raghu Gandhamtypedef unsigned long __vaddr_t; 97405b8029a6888f386adf3512113a33546141d1c8Raghu Gandhamtypedef unsigned long __paddr_t; 98405b8029a6888f386adf3512113a33546141d1c8Raghu Gandhamtypedef unsigned long __vsize_t; 99405b8029a6888f386adf3512113a33546141d1c8Raghu Gandhamtypedef unsigned long __psize_t; 100405b8029a6888f386adf3512113a33546141d1c8Raghu Gandham 101405b8029a6888f386adf3512113a33546141d1c8Raghu Gandham/* Standard system types */ 102405b8029a6888f386adf3512113a33546141d1c8Raghu Gandhamtypedef int __clock_t; 103405b8029a6888f386adf3512113a33546141d1c8Raghu Gandhamtypedef int __clockid_t; 104405b8029a6888f386adf3512113a33546141d1c8Raghu Gandhamtypedef double __double_t; 105405b8029a6888f386adf3512113a33546141d1c8Raghu Gandhamtypedef float __float_t; 106405b8029a6888f386adf3512113a33546141d1c8Raghu Gandhamtypedef long long __off_t; 107405b8029a6888f386adf3512113a33546141d1c8Raghu Gandhamtypedef long __ptrdiff_t; 108405b8029a6888f386adf3512113a33546141d1c8Raghu Gandham/*typedef unsigned long __size_t;*/ 109405b8029a6888f386adf3512113a33546141d1c8Raghu Gandhamtypedef long __ssize_t; 110405b8029a6888f386adf3512113a33546141d1c8Raghu Gandhamtypedef int __time_t; 111405b8029a6888f386adf3512113a33546141d1c8Raghu Gandhamtypedef int __timer_t; 112405b8029a6888f386adf3512113a33546141d1c8Raghu Gandham#if defined(__GNUC__) && __GNUC__ >= 3 113405b8029a6888f386adf3512113a33546141d1c8Raghu Gandhamtypedef __builtin_va_list __va_list; 114405b8029a6888f386adf3512113a33546141d1c8Raghu Gandham#else 115405b8029a6888f386adf3512113a33546141d1c8Raghu Gandhamtypedef char * __va_list; 116405b8029a6888f386adf3512113a33546141d1c8Raghu Gandham#endif 117405b8029a6888f386adf3512113a33546141d1c8Raghu Gandham 118405b8029a6888f386adf3512113a33546141d1c8Raghu Gandham/* Wide character support types */ 119405b8029a6888f386adf3512113a33546141d1c8Raghu Gandham#ifndef __cplusplus 120405b8029a6888f386adf3512113a33546141d1c8Raghu Gandhamtypedef int __wchar_t; 121405b8029a6888f386adf3512113a33546141d1c8Raghu Gandham#endif 122405b8029a6888f386adf3512113a33546141d1c8Raghu Gandhamtypedef int __wint_t; 123405b8029a6888f386adf3512113a33546141d1c8Raghu Gandhamtypedef int __rune_t; 124405b8029a6888f386adf3512113a33546141d1c8Raghu Gandhamtypedef void * __wctrans_t; 125405b8029a6888f386adf3512113a33546141d1c8Raghu Gandhamtypedef void * __wctype_t; 126405b8029a6888f386adf3512113a33546141d1c8Raghu Gandham 127405b8029a6888f386adf3512113a33546141d1c8Raghu Gandham#ifdef __MIPSEB__ 128405b8029a6888f386adf3512113a33546141d1c8Raghu Gandham#define _BYTE_ORDER _BIG_ENDIAN 129405b8029a6888f386adf3512113a33546141d1c8Raghu Gandham#else 130405b8029a6888f386adf3512113a33546141d1c8Raghu Gandham#define _BYTE_ORDER _LITTLE_ENDIAN 131405b8029a6888f386adf3512113a33546141d1c8Raghu Gandham#endif 132405b8029a6888f386adf3512113a33546141d1c8Raghu Gandham 133405b8029a6888f386adf3512113a33546141d1c8Raghu Gandham#if defined(_KERNEL) 134405b8029a6888f386adf3512113a33546141d1c8Raghu Gandhamtypedef struct label_t { 135405b8029a6888f386adf3512113a33546141d1c8Raghu Gandham __register_t val[14]; 136405b8029a6888f386adf3512113a33546141d1c8Raghu Gandham} label_t; 137405b8029a6888f386adf3512113a33546141d1c8Raghu Gandham#endif 138405b8029a6888f386adf3512113a33546141d1c8Raghu Gandham 139405b8029a6888f386adf3512113a33546141d1c8Raghu Gandham/* XXX check why this still has to be defined. pmap.c issue? */ 140405b8029a6888f386adf3512113a33546141d1c8Raghu Gandham#define __SWAP_BROKEN 141405b8029a6888f386adf3512113a33546141d1c8Raghu Gandham 142405b8029a6888f386adf3512113a33546141d1c8Raghu Gandham/* Feature test macros */ 143405b8029a6888f386adf3512113a33546141d1c8Raghu Gandham#define __HAVE_TIMECOUNTER 144405b8029a6888f386adf3512113a33546141d1c8Raghu Gandham 145405b8029a6888f386adf3512113a33546141d1c8Raghu Gandham#endif /* _MIPS64__TYPES_H_ */ 146