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