1\
2\ CDDL HEADER START
3\
4\ The contents of this file are subject to the terms of the
5\ Common Development and Distribution License (the "License").
6\ You may not use this file except in compliance with the License.
7\
8\ You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9\ or http://www.opensolaris.org/os/licensing.
10\ See the License for the specific language governing permissions
11\ and limitations under the License.
12\
13\ When distributing Covered Code, include this CDDL HEADER in each
14\ file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15\ If applicable, add the following below this CDDL HEADER, with the
16\ fields enclosed by brackets "[]" replaced with your own identifying
17\ information: Portions Copyright [yyyy] [name of copyright owner]
18\
19\ CDDL HEADER END
20\
21\ Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
22\ Use is subject to license terms.
23\
24\ offsets.in: input file to produce assym.h using the stabs program
25\
26\
27\ Guidelines:
28\
29\ A blank line is required between structure/union/intrinsic names.
30\
31\ The general form is:
32\
33\	name size_define [shift_define]
34\		[member_name [offset_define]]
35\	{blank line}
36\
37\ If no individual member_name's are specified then NO members are processed.
38\ If offset_define is not specified then the member_name is
39\ converted to all caps and used instead.  If the size of an item is
40\ a power of two then an optional shift count may be output using
41\ shift_define as the name but only if shift_define was specified.
42\
43\ Arrays cause stabs to automatically output the per-array-item increment
44\ in addition to the base address:
45\
46\	 foo FOO_SIZE
47\		array	FOO_ARRAY
48\
49\ results in:
50\
51\	#define	FOO_ARRAY	0x0
52\	#define	FOO_ARRAY_INCR	0x4
53\
54\ which allows \#define's to be used to specify array items:
55\
56\	#define	FOO_0	(FOO_ARRAY + (0 * FOO_ARRAY_INCR))
57\	#define	FOO_1	(FOO_ARRAY + (1 * FOO_ARRAY_INCR))
58\	...
59\	#define	FOO_n	(FOO_ARRAY + (n * FOO_ARRAY_INCR))
60\
61\ There are several examples below (search for _INCR).
62\
63\ There is currently no manner in which to identify "anonymous"
64\ structures or unions so if they are to be used in assembly code
65\ they must be given names.
66\
67\ When specifying the offsets of nested structures/unions each nested
68\ structure or union must be listed separately then use the
69\ "\#define" escapes to add the offsets from the base structure/union
70\ and all of the nested structures/unions together.  See the many
71\ examples already in this file.
72
73#pragma ident	"%Z%%M%	%I%	%E% SMI"
74
75#ifndef	_GENASSYM
76#define	_GENASSYM
77#endif
78
79#include <vm/hat_sfmmu.h>
80#include <sys/spitregs.h>
81#include <sys/cheetahregs.h>
82#include <sys/fpras_impl.h>
83#include <sys/traptrace.h>
84
85machcpu
86	intrstat		MCPU_INTRSTAT
87	pil_high_start		MCPU_PIL_HIGH_START
88
89trap_trace_record	TRAP_ENT_SIZE
90	tt_tl		TRAP_ENT_TL
91	tt_tt		TRAP_ENT_TT
92	tt_tpc		TRAP_ENT_TPC
93	tt_tstate	TRAP_ENT_TSTATE
94	tt_tick		TRAP_ENT_TICK
95	tt_sp		TRAP_ENT_SP
96	tt_tr		TRAP_ENT_TR
97	tt_f1		TRAP_ENT_F1
98	tt_f2		TRAP_ENT_F2
99	tt_f3		TRAP_ENT_F3
100	tt_f4		TRAP_ENT_F4
101
102hat	HAT_SIZE
103	sfmmu_cpusran
104	sfmmu_tsb
105	sfmmu_ismblkpa
106	sfmmu_flags
107	sfmmu_cext
108	sfmmu_ctx_lock
109	sfmmu_ctxs
110
111sfmmu_global_stat HATSTAT_SIZE
112	sf_pagefaults		HATSTAT_PAGEFAULT
113	sf_uhash_searches	HATSTAT_UHASH_SEARCH
114	sf_uhash_links		HATSTAT_UHASH_LINKS
115	sf_khash_searches	HATSTAT_KHASH_SEARCH
116	sf_khash_links		HATSTAT_KHASH_LINKS
117
118sf_hment	SFHME_SIZE	SFHME_SHIFT
119	hme_tte		SFHME_TTE
120
121tsbmiss		TSBMISS_SIZE TSBMISS_SHIFT
122	tsbptr		TSBMISS_TSBPTR
123	tsbptr4m	TSBMISS_TSBPTR4M
124	ksfmmup		TSBMISS_KHATID
125	usfmmup		TSBMISS_UHATID
126	khashsz		TSBMISS_KHASHSZ
127	khashstart	TSBMISS_KHASHSTART
128	dcache_line_mask	TSBMISS_DMASK
129	uhashsz		TSBMISS_UHASHSZ
130	uhashstart	TSBMISS_UHASHSTART
131	hat_flags	TSBMISS_HATFLAGS
132	ismblkpa	TSBMISS_ISMBLKPA
133	itlb_misses	TSBMISS_ITLBMISS
134	dtlb_misses	TSBMISS_DTLBMISS
135	utsb_misses	TSBMISS_UTSBMISS
136	ktsb_misses	TSBMISS_KTSBMISS
137	uprot_traps	TSBMISS_UPROTS
138	kprot_traps	TSBMISS_KPROTS
139	scratch		TSBMISS_SCRATCH
140
141\#define	TSB_TAGACC	(0 * TSBMISS_SCRATCH_INCR)
142\#define	TSBMISS_HMEBP	(1 * TSBMISS_SCRATCH_INCR)
143\#define	TSBMISS_HATID	(2 * TSBMISS_SCRATCH_INCR)
144\#define	TSBMISS_XMMURET	(3 * TSBMISS_SCRATCH_INCR)
145\#define	TSBMISS_XMMUPTR	(4 * TSBMISS_SCRATCH_INCR)
146
147kpmtsbm		KPMTSBM_SIZE KPMTSBM_SHIFT
148	vbase		KPMTSBM_VBASE
149	vend		KPMTSBM_VEND
150	flags		KPMTSBM_FLAGS
151	sz_shift	KPMTSBM_SZSHIFT
152	kpmp_shift	KPMTSBM_KPMPSHIFT
153	kpmp2pshft	KPMTSBM_KPMP2PSHFT
154	kpmp_table_sz	KPMTSBM_KPMPTABLESZ
155	kpmp_tablepa	KPMTSBM_KPMPTABLEPA
156	msegphashpa	KPMTSBM_MSEGPHASHPA
157	tsbptr		KPMTSBM_TSBPTR
158	kpm_dtlb_misses	KPMTSBM_DTLBMISS
159	kpm_tsb_misses	KPMTSBM_TSBMISS
160
161kpm_page	KPMPAGE_SIZE KPMPAGE_SHIFT
162	kp_refcnt	KPMPAGE_REFCNT
163	kp_refcnta	KPMPAGE_REFCNTA
164	kp_refcntc	KPMPAGE_REFCNTC
165	kp_refcnts	KPMPAGE_REFCNTS
166
167kpm_hlk		KPMHLK_SIZE KPMHLK_SHIFT
168	khl_mutex	KPMHLK_MUTEX
169	khl_lock	KPMHLK_LOCK
170
171kpm_spage	KPMSPAGE_SIZE KPMSPAGE_SHIFT
172	kp_mapped	KPMSPAGE_MAPPED
173
174kpm_shlk	KPMSHLK_SIZE KPMSHLK_SHIFT
175	kshl_lock	KPMSHLK_LOCK
176
177memseg		MEMSEG_SIZE
178	pages		MEMSEG_PAGES
179	epages		MEMSEG_EPAGES
180	pages_base	MEMSEG_PAGES_BASE
181	pages_end	MEMSEG_PAGES_END
182	next		MEMSEG_NEXT
183	lnext		MEMSEG_LNEXT
184	nextpa		MEMSEG_NEXTPA
185	pagespa		MEMSEG_PAGESPA
186	epagespa	MEMSEG_EPAGESPA
187	kpm_pbase	MEMSEG_KPM_PBASE
188	kpm_nkpmpgs	MEMSEG_KPM_NKPMPGS
189	mseg_un
190	kpm_pagespa	MEMSEG_KPM_PAGESPA
191
192\#define	MEMSEG_KPM_PAGES	(MSEG_UN)
193\#define	MEMSEG_KPM_SPAGES	(MSEG_UN)
194
195page		PAGE_SIZE
196	p_pagenum	PAGE_PAGENUM
197
198tsb_info	TSBINFO_SIZE
199	tsb_tte		TSBINFO_TTE
200	tsb_va		TSBINFO_VADDR
201	tsb_pa		TSBINFO_PADDR
202	tsb_szc		TSBINFO_SZCODE
203	tsb_next	TSBINFO_NEXTPTR
204
205cpu_node	CPU_NODE_SIZE
206	implementation
207	version
208	nodeid
209	clock_freq
210	tick_nsec_scale
211	ecache_size	ECACHE_SIZE
212	ecache_linesize	ECACHE_LINESIZE
213	device_id	DEVICE_ID
214	itlb_size	ITLB_SIZE
215	dtlb_size	DTLB_SIZE
216
217spitfire_scrub_misc_t
218	ec_scrub_outstanding
219
220spitfire_private_t
221	sfpr_scrub_misc
222	sfpr_scrub_afsr
223
224cheetah_private_t
225	chpr_icache_size
226	chpr_icache_linesize
227	chpr_tl1_err_data
228	chpr_scrub_misc
229	chpr_fecctl0_logout
230	chpr_cecc_logout
231	chpr_async_logout
232	chpr_tlb_logout
233	chpr_fpras_timestamp
234
235ch_scrub_misc_t
236	chsm_outstanding
237
238ch_cpu_logout_t		CH_CPU_LOGOUT_SIZE
239	clo_flags	CH_CLO_FLAGS
240	clo_nest_cnt	CH_CLO_NEST_CNT
241	clo_data	CH_CLO_DATA
242	clo_sdw_data	CH_CLO_SDW_DATA
243
244ch_err_tl1_data_t	CH_ERR_TL1_DATA_SIZE
245	ch_err_tl1_g1
246	ch_err_tl1_g2
247	ch_err_tl1_g3
248	ch_err_tl1_g4
249	ch_err_tl1_g5
250	ch_err_tl1_g6
251	ch_err_tl1_g7
252	ch_err_tl1_tpc
253	ch_err_tl1_flags
254	ch_err_tl1_tmp
255	ch_err_tl1_logout
256
257ch_cpu_errors_t         CH_CPU_ERROR_SIZE
258	afsr		CH_CPU_ERRORS_AFSR
259	afar		CH_CPU_ERRORS_AFAR
260	shadow_afsr	CH_CPU_ERRORS_SHADOW_AFSR
261	shadow_afar	CH_CPU_ERRORS_SHADOW_AFAR
262	afsr_ext	CH_CPU_ERRORS_AFSR_EXT
263	shadow_afsr_ext	CH_CPU_ERRORS_SHADOW_AFSR_EXT
264	afar2		CH_CPU_ERRORS_AFAR2
265
266ch_diag_data_t		CH_DIAG_DATA_SIZE
267	chd_afar	CH_CHD_AFAR
268	chd_afar2	CH_CHD_AFAR2
269	chd_afsr	CH_CHD_AFSR
270	chd_afsr_ext	CH_CHD_AFSR_EXT
271	chd_ec_data	CH_CHD_EC_DATA
272	chd_l2_data	CH_CHD_L2_DATA
273	chd_dc_data	CH_CHD_DC_DATA
274	chd_ic_data	CH_CHD_IC_DATA
275
276ch_ec_data_t		CH_EC_DATA_SIZE
277	ec_idx		CH_EC_IDX
278	ec_tag		CH_EC_TAG
279	ec_tag_ecc	CH_EC_TAG_ECC
280	ec_data		CH_EC_DATA
281
282ch_dc_data		CH_DC_DATA_SIZE
283	dc_idx		CH_DC_IDX
284	dc_way		CH_DC_WAY
285	dc_tag		CH_DC_TAG
286	dc_utag		CH_DC_UTAG
287	dc_sntag	CH_DC_SNTAG
288	dc_data		CH_DC_DATA
289	dc_pn_data_parity	CH_DC_PN_DATA_PARITY
290
291ch_ic_data		CH_IC_DATA_SIZE
292	ic_idx		CH_IC_IDX
293	ic_way		CH_IC_WAY
294	ic_patag	CH_IC_PATAG
295	ic_utag		CH_IC_UTAG
296	ic_upper	CH_IC_UPPER
297	ic_lower	CH_IC_LOWER
298	ic_sntag	CH_IC_SNTAG
299	ic_data		CH_IC_DATA
300
301fpras_chkfn		FPRAS_CHKFN_SIZE FPRAS_CHKFN_SIZE_SHIFT
302	fpras_blk0
303
304fpras_chkfngrp		FPRAS_CHKFNGRP_SIZE FPRAS_CHKFNGRP_SIZE_SHIFT
305
306ch_pc_data		CH_PC_DATA_SIZE
307	pc_idx		CH_PC_IDX
308	pc_way		CH_PC_WAY
309	pc_status	CH_PC_STATUS
310	pc_tag		CH_PC_TAG
311	pc_sntag	CH_PC_SNTAG
312	pc_data		CH_PC_DATA
313
314pn_tlb_logout		PN_TLO_SIZE
315	tlo_info	PN_TLO_INFO
316	tlo_addr	PN_TLO_ADDR
317	tlo_pc		PN_TLO_PC
318	tlo_itlb_tte	PN_TLO_ITLB_TTE
319	tlo_dtlb_tte	PN_TLO_DTLB_TTE
320
321ch_tte_entry		CH_TLO_TTE_SIZE
322	ch_tte_tag	CH_TLO_TTE_TAG
323	ch_tte_data	CH_TLO_TTE_DATA
324
325ptl1_regs
326	ptl1_trap_regs
327	ptl1_g1
328	ptl1_g2
329	ptl1_g3
330	ptl1_g4
331	ptl1_g5
332	ptl1_g6
333	ptl1_g7
334	ptl1_tick
335	ptl1_dmmu_sfar
336	ptl1_dmmu_sfsr
337	ptl1_dmmu_tag_access
338	ptl1_immu_sfsr
339	ptl1_immu_tag_access
340	ptl1_rwindow
341	ptl1_softint
342	ptl1_pstate
343	ptl1_pil
344	ptl1_cwp
345	ptl1_wstate
346	ptl1_otherwin
347	ptl1_cleanwin
348	ptl1_cansave
349	ptl1_canrestore
350
351