1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
|
/* $NetBSD: types.h,v 1.73 2023/03/20 11:07:33 martin Exp $ */
/*
* Copyright (c) 1992, 1993
* The Regents of the University of California. All rights reserved.
*
* This software was developed by the Computer Systems Engineering group
* at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and
* contributed to Berkeley.
*
* All advertising materials mentioning features or use of this software
* must display the following acknowledgement:
* This product includes software developed by the University of
* California, Lawrence Berkeley Laboratory.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. Neither the name of the University nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* @(#)types.h 8.1 (Berkeley) 6/11/93
*/
#ifndef _MACHTYPES_H_
#define _MACHTYPES_H_
#ifdef sun
#undef sun
#endif
#if defined(_KERNEL_OPT)
#include "opt_multiprocessor.h"
#include "opt_sparc_arch.h"
#endif
#ifndef _LOCORE
#include <sys/cdefs.h>
#include <sys/featuretest.h>
#include <machine/int_types.h>
/* The following are unsigned to prevent annoying sign extended pointers. */
#if defined(_KERNEL) || defined(_KMEMUSER) || defined(_KERNTYPES) || defined(_STANDALONE)
typedef unsigned long int register_t;
#define PRIxREGISTER "lx"
typedef unsigned int register32_t;
#define PRIxREGISTER32 "x"
#ifdef __arch64__
typedef unsigned long int register64_t;
#define PRIxREGISTER64 "lx"
#else
/* LONGLONG */
typedef unsigned long long int register64_t;
#define PRIxREGISTER64 "llx"
#endif
#endif
#if defined(_KERNEL)
typedef struct label_t {
#ifdef __sparc_v9__
register64_t val[2];
#else
register_t val[3];
#endif
} label_t;
#endif
#if defined(_KERNEL) || defined(_KMEMUSER) || defined(_KERNTYPES) || defined(_STANDALONE)
typedef unsigned long int vaddr_t;
typedef vaddr_t vsize_t;
#define PRIxVADDR "lx"
#define PRIxVSIZE "lx"
#define PRIuVSIZE "lu"
#ifdef __sparc_v9__
#ifdef __arch64__
typedef unsigned long int paddr_t;
#define PRIxPADDR "lx"
#define PRIuPSIZE "lu"
#else
/* LONGLONG */
typedef unsigned long long int paddr_t;
#define PRIxPADDR "llx"
#define PRIuPSIZE "llu"
#endif /* __arch64__ */
#else
typedef unsigned long int paddr_t;
#define PRIxPADDR "lx"
#define PRIuPSIZE "lu"
#endif /* __sparc_v9__ */
typedef paddr_t psize_t;
#define PRIxPSIZE PRIxPADDR
#endif
typedef unsigned char __cpu_simple_lock_nv_t;
typedef unsigned long int __register_t;
/* __cpu_simple_lock_t used to be a full word. */
#define __CPU_SIMPLE_LOCK_PAD
#define __SIMPLELOCK_LOCKED 0xff
#define __SIMPLELOCK_UNLOCKED 0
#endif /* _LOCORE */
#define __HAVE_NEW_STYLE_BUS_H
#define __HAVE_SYSCALL_INTERN
#define __GENERIC_SOFT_INTERRUPTS_ALL_LEVELS
#define __HAVE_CPU_VMSPACE_EXEC
#define __HAVE_RAS
#define __HAVE_BUS_SPACE_8
#ifdef __sparc_v9__
#define __HAVE_CPU_DATA_FIRST
#define __HAVE_DEVICE_REGISTER_POSTCONFIG
#define __HAVE_ATOMIC64_OPS
#define __HAVE_CPU_COUNTER /* sparc v9 CPUs have %tick */
#define __HAVE_FAST_SOFTINTS
#else
#define __HAVE_MM_MD_READWRITE
#if !defined(_KERNEL) || defined(MULTIPROCESSOR)
#define __HAVE_HASHLOCKED_ATOMICS
#endif
#endif
#define __HAVE_CPU_LWP_SETPRIVATE
#define __HAVE___LWP_GETPRIVATE_FAST
#define __HAVE_TLS_VARIANT_II
#define __HAVE_COMMON___TLS_GET_ADDR
#endif /* _MACHTYPES_H_ */
|