summaryrefslogtreecommitdiff
path: root/usr/src/uts/sun4u/ml/mach_offsets.in
blob: f32cd2374b328a9575c95e547d68991cda33af18 (plain)
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
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
\
\ CDDL HEADER START
\
\ The contents of this file are subject to the terms of the
\ Common Development and Distribution License (the "License").
\ You may not use this file except in compliance with the License.
\
\ You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
\ or http://www.opensolaris.org/os/licensing.
\ See the License for the specific language governing permissions
\ and limitations under the License.
\
\ When distributing Covered Code, include this CDDL HEADER in each
\ file and include the License file at usr/src/OPENSOLARIS.LICENSE.
\ If applicable, add the following below this CDDL HEADER, with the
\ fields enclosed by brackets "[]" replaced with your own identifying
\ information: Portions Copyright [yyyy] [name of copyright owner]
\
\ CDDL HEADER END
\
\ Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
\ Use is subject to license terms.
\
\ offsets.in: input file to produce assym.h using the stabs program
\
\
\ Guidelines:
\ 
\ A blank line is required between structure/union/intrinsic names.
\ 
\ The general form is:
\ 
\	name size_define [shift_define]
\		[member_name [offset_define]]
\	{blank line}
\ 
\ If no individual member_name's are specified then NO members are processed.
\ If offset_define is not specified then the member_name is
\ converted to all caps and used instead.  If the size of an item is
\ a power of two then an optional shift count may be output using
\ shift_define as the name but only if shift_define was specified.
\ 
\ Arrays cause stabs to automatically output the per-array-item increment
\ in addition to the base address:
\ 
\	 foo FOO_SIZE
\		array	FOO_ARRAY
\ 
\ results in:
\ 
\	#define	FOO_ARRAY	0x0
\	#define	FOO_ARRAY_INCR	0x4
\ 
\ which allows \#define's to be used to specify array items:
\ 
\	#define	FOO_0	(FOO_ARRAY + (0 * FOO_ARRAY_INCR))
\	#define	FOO_1	(FOO_ARRAY + (1 * FOO_ARRAY_INCR))
\	...
\	#define	FOO_n	(FOO_ARRAY + (n * FOO_ARRAY_INCR))
\ 
\ There are several examples below (search for _INCR).
\ 
\ There is currently no manner in which to identify "anonymous"
\ structures or unions so if they are to be used in assembly code
\ they must be given names.
\ 
\ When specifying the offsets of nested structures/unions each nested
\ structure or union must be listed separately then use the
\ "\#define" escapes to add the offsets from the base structure/union
\ and all of the nested structures/unions together.  See the many
\ examples already in this file.

#ifndef	_GENASSYM
#define	_GENASSYM
#endif

#include <vm/hat_sfmmu.h>
#include <sys/spitregs.h>
#include <sys/cheetahregs.h>
#include <sys/fpras_impl.h>
#include <sys/traptrace.h>

machcpu
	intrstat		MCPU_INTRSTAT
	pil_high_start		MCPU_PIL_HIGH_START

trap_trace_record	TRAP_ENT_SIZE
	tt_tl		TRAP_ENT_TL
	tt_tt		TRAP_ENT_TT
	tt_tpc		TRAP_ENT_TPC
	tt_tstate	TRAP_ENT_TSTATE
	tt_tick		TRAP_ENT_TICK
	tt_sp		TRAP_ENT_SP
	tt_tr		TRAP_ENT_TR
	tt_f1		TRAP_ENT_F1
	tt_f2		TRAP_ENT_F2
	tt_f3		TRAP_ENT_F3
	tt_f4		TRAP_ENT_F4

hat     HAT_SIZE
        sfmmu_cpusran
        sfmmu_tsb
        sfmmu_ismblkpa
        sfmmu_tteflags
        sfmmu_rtteflags
        sfmmu_srdp
        sfmmu_region_map.h_rmap_s.hmeregion_map SFMMU_HMERMAP
        sfmmu_scdp
        sfmmu_cext
        sfmmu_ctx_lock
        sfmmu_ctxs

sf_scd SCD_SIZE
        scd_sfmmup
        scd_region_map.h_rmap_s.hmeregion_map   SCD_HMERMAP

sfmmu_global_stat HATSTAT_SIZE
        sf_pagefaults           HATSTAT_PAGEFAULT
        sf_uhash_searches       HATSTAT_UHASH_SEARCH
        sf_uhash_links          HATSTAT_UHASH_LINKS
        sf_khash_searches       HATSTAT_KHASH_SEARCH
        sf_khash_links          HATSTAT_KHASH_LINKS

sf_hment        SFHME_SIZE      SFHME_SHIFT
        hme_tte         SFHME_TTE

tsbmiss         TSBMISS_SIZE
        ksfmmup         TSBMISS_KHATID
        usfmmup         TSBMISS_UHATID
        usrdp           TSBMISS_SHARED_UHATID
        tsbptr          TSBMISS_TSBPTR
        tsbptr4m        TSBMISS_TSBPTR4M
        tsbscdptr       TSBMISS_TSBSCDPTR
        tsbscdptr4m     TSBMISS_TSBSCDPTR4M
        ismblkpa        TSBMISS_ISMBLKPA
        khashstart      TSBMISS_KHASHSTART
        uhashstart      TSBMISS_UHASHSTART
        khashsz         TSBMISS_KHASHSZ
        uhashsz         TSBMISS_UHASHSZ
	dcache_line_mask TSBMISS_DMASK
        uhat_tteflags   TSBMISS_UTTEFLAGS
        uhat_rtteflags  TSBMISS_URTTEFLAGS
        utsb_misses     TSBMISS_UTSBMISS
        ktsb_misses     TSBMISS_KTSBMISS
        uprot_traps     TSBMISS_UPROTS
        kprot_traps     TSBMISS_KPROTS
        scratch         TSBMISS_SCRATCH
        shmermap        TSBMISS_SHMERMAP
        scd_shmermap    TSBMISS_SCDSHMERMAP

\#define        TSB_TAGACC      (0 * TSBMISS_SCRATCH_INCR)
\#define        TSBMISS_HMEBP   (1 * TSBMISS_SCRATCH_INCR)
\#define        TSBMISS_HATID   (2 * TSBMISS_SCRATCH_INCR)

kpmtsbm		KPMTSBM_SIZE KPMTSBM_SHIFT
	vbase		KPMTSBM_VBASE
	vend		KPMTSBM_VEND
	flags		KPMTSBM_FLAGS
	sz_shift	KPMTSBM_SZSHIFT
	kpmp_shift	KPMTSBM_KPMPSHIFT
	kpmp2pshft	KPMTSBM_KPMP2PSHFT
	kpmp_table_sz	KPMTSBM_KPMPTABLESZ
	kpmp_tablepa	KPMTSBM_KPMPTABLEPA
	msegphashpa	KPMTSBM_MSEGPHASHPA
	tsbptr		KPMTSBM_TSBPTR
	kpm_dtlb_misses	KPMTSBM_DTLBMISS
	kpm_tsb_misses	KPMTSBM_TSBMISS

kpm_page	KPMPAGE_SIZE KPMPAGE_SHIFT
	kp_refcnt	KPMPAGE_REFCNT
	kp_refcnta	KPMPAGE_REFCNTA
	kp_refcntc	KPMPAGE_REFCNTC
	kp_refcnts	KPMPAGE_REFCNTS

kpm_hlk		KPMHLK_SIZE KPMHLK_SHIFT
	khl_mutex	KPMHLK_MUTEX
	khl_lock	KPMHLK_LOCK

kpm_spage	KPMSPAGE_SIZE KPMSPAGE_SHIFT
	kp_mapped_flag	KPMSPAGE_MAPPED

kpm_shlk	KPMSHLK_SIZE KPMSHLK_SHIFT
	kshl_lock	KPMSHLK_LOCK

memseg		MEMSEG_SIZE
	pages		MEMSEG_PAGES
	epages		MEMSEG_EPAGES
	pages_base	MEMSEG_PAGES_BASE
	pages_end	MEMSEG_PAGES_END
	next		MEMSEG_NEXT
	lnext		MEMSEG_LNEXT
	nextpa		MEMSEG_NEXTPA	
	pagespa		MEMSEG_PAGESPA
	epagespa	MEMSEG_EPAGESPA
	kpm_pbase	MEMSEG_KPM_PBASE
	kpm_nkpmpgs	MEMSEG_KPM_NKPMPGS
	mseg_un
	kpm_pagespa	MEMSEG_KPM_PAGESPA

\#define	MEMSEG_KPM_PAGES	(MSEG_UN)
\#define	MEMSEG_KPM_SPAGES	(MSEG_UN)

page		PAGE_SIZE
	p_pagenum	PAGE_PAGENUM

tsb_info	TSBINFO_SIZE
	tsb_tte		TSBINFO_TTE
	tsb_va		TSBINFO_VADDR
	tsb_pa		TSBINFO_PADDR
	tsb_szc		TSBINFO_SZCODE
	tsb_next	TSBINFO_NEXTPTR

cpu_node	CPU_NODE_SIZE
	implementation
	version
	nodeid
	clock_freq
	tick_nsec_scale
	ecache_size	ECACHE_SIZE
	ecache_linesize	ECACHE_LINESIZE
	device_id	DEVICE_ID
	itlb_size	ITLB_SIZE
	dtlb_size	DTLB_SIZE

spitfire_scrub_misc_t
	ec_scrub_outstanding

spitfire_private_t
	sfpr_scrub_misc
	sfpr_scrub_afsr

cheetah_private_t
	chpr_icache_size
	chpr_icache_linesize
	chpr_tl1_err_data
	chpr_scrub_misc
	chpr_fecctl0_logout
	chpr_cecc_logout
	chpr_async_logout
	chpr_tlb_logout
	chpr_fpras_timestamp

ch_scrub_misc_t
	chsm_outstanding

ch_cpu_logout_t		CH_CPU_LOGOUT_SIZE
	clo_flags	CH_CLO_FLAGS
	clo_nest_cnt	CH_CLO_NEST_CNT
	clo_data	CH_CLO_DATA
	clo_sdw_data	CH_CLO_SDW_DATA

ch_err_tl1_data_t	CH_ERR_TL1_DATA_SIZE
	ch_err_tl1_g1
	ch_err_tl1_g2
	ch_err_tl1_g3
	ch_err_tl1_g4
	ch_err_tl1_g5
	ch_err_tl1_g6
	ch_err_tl1_g7
	ch_err_tl1_tpc
	ch_err_tl1_flags
	ch_err_tl1_tmp
	ch_err_tl1_logout

ch_cpu_errors_t         CH_CPU_ERROR_SIZE
	afsr		CH_CPU_ERRORS_AFSR
	afar		CH_CPU_ERRORS_AFAR
	shadow_afsr	CH_CPU_ERRORS_SHADOW_AFSR
	shadow_afar	CH_CPU_ERRORS_SHADOW_AFAR
	afsr_ext	CH_CPU_ERRORS_AFSR_EXT
	shadow_afsr_ext	CH_CPU_ERRORS_SHADOW_AFSR_EXT
	afar2		CH_CPU_ERRORS_AFAR2

ch_diag_data_t		CH_DIAG_DATA_SIZE
	chd_afar	CH_CHD_AFAR
	chd_afar2	CH_CHD_AFAR2
	chd_afsr	CH_CHD_AFSR
	chd_afsr_ext	CH_CHD_AFSR_EXT
	chd_ec_data	CH_CHD_EC_DATA
	chd_l2_data	CH_CHD_L2_DATA
	chd_dc_data	CH_CHD_DC_DATA
	chd_ic_data	CH_CHD_IC_DATA

ch_ec_data_t		CH_EC_DATA_SIZE
	ec_idx		CH_EC_IDX
	ec_tag		CH_EC_TAG
	ec_tag_ecc	CH_EC_TAG_ECC
	ec_data		CH_EC_DATA

ch_dc_data		CH_DC_DATA_SIZE
	dc_idx		CH_DC_IDX
	dc_way		CH_DC_WAY
	dc_tag		CH_DC_TAG
	dc_utag		CH_DC_UTAG
	dc_sntag	CH_DC_SNTAG
	dc_data		CH_DC_DATA
	dc_pn_data_parity	CH_DC_PN_DATA_PARITY

ch_ic_data		CH_IC_DATA_SIZE
	ic_idx		CH_IC_IDX
	ic_way		CH_IC_WAY
	ic_patag	CH_IC_PATAG
	ic_utag		CH_IC_UTAG
	ic_upper	CH_IC_UPPER
	ic_lower	CH_IC_LOWER
	ic_sntag	CH_IC_SNTAG
	ic_data		CH_IC_DATA

fpras_chkfn		FPRAS_CHKFN_SIZE FPRAS_CHKFN_SIZE_SHIFT
	fpras_blk0

fpras_chkfngrp		FPRAS_CHKFNGRP_SIZE FPRAS_CHKFNGRP_SIZE_SHIFT

ch_pc_data		CH_PC_DATA_SIZE
	pc_idx		CH_PC_IDX
	pc_way		CH_PC_WAY
	pc_status	CH_PC_STATUS
	pc_tag		CH_PC_TAG
	pc_sntag	CH_PC_SNTAG
	pc_data		CH_PC_DATA

pn_tlb_logout		PN_TLO_SIZE
	tlo_info	PN_TLO_INFO
	tlo_addr	PN_TLO_ADDR
	tlo_pc		PN_TLO_PC
	tlo_itlb_tte	PN_TLO_ITLB_TTE
	tlo_dtlb_tte	PN_TLO_DTLB_TTE

ch_tte_entry		CH_TLO_TTE_SIZE
	ch_tte_tag	CH_TLO_TTE_TAG
	ch_tte_data	CH_TLO_TTE_DATA

ptl1_regs
	ptl1_trap_regs
	ptl1_g1
	ptl1_g2
	ptl1_g3
	ptl1_g4
	ptl1_g5
	ptl1_g6
	ptl1_g7
	ptl1_tick
	ptl1_dmmu_sfar
	ptl1_dmmu_sfsr
	ptl1_dmmu_tag_access
	ptl1_immu_sfsr
	ptl1_immu_tag_access
	ptl1_rwindow
	ptl1_softint
	ptl1_pstate
	ptl1_pil
	ptl1_cwp
	ptl1_wstate
	ptl1_otherwin
	ptl1_cleanwin
	ptl1_cansave
	ptl1_canrestore