xref: /titanic_41/usr/src/uts/sun4u/ml/mach_offsets.in (revision d4660949aa62dd6a963f4913b7120b383cf473c4)
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 2008 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_tteflags
107        sfmmu_rtteflags
108        sfmmu_srdp
109        sfmmu_region_map.h_rmap_s.hmeregion_map SFMMU_HMERMAP
110        sfmmu_scdp
111        sfmmu_cext
112        sfmmu_ctx_lock
113        sfmmu_ctxs
114
115sf_scd SCD_SIZE
116        scd_sfmmup
117        scd_region_map.h_rmap_s.hmeregion_map   SCD_HMERMAP
118
119sfmmu_global_stat HATSTAT_SIZE
120        sf_pagefaults           HATSTAT_PAGEFAULT
121        sf_uhash_searches       HATSTAT_UHASH_SEARCH
122        sf_uhash_links          HATSTAT_UHASH_LINKS
123        sf_khash_searches       HATSTAT_KHASH_SEARCH
124        sf_khash_links          HATSTAT_KHASH_LINKS
125
126sf_hment        SFHME_SIZE      SFHME_SHIFT
127        hme_tte         SFHME_TTE
128
129tsbmiss         TSBMISS_SIZE
130        ksfmmup         TSBMISS_KHATID
131        usfmmup         TSBMISS_UHATID
132        usrdp           TSBMISS_SHARED_UHATID
133        tsbptr          TSBMISS_TSBPTR
134        tsbptr4m        TSBMISS_TSBPTR4M
135        tsbscdptr       TSBMISS_TSBSCDPTR
136        tsbscdptr4m     TSBMISS_TSBSCDPTR4M
137        ismblkpa        TSBMISS_ISMBLKPA
138        khashstart      TSBMISS_KHASHSTART
139        uhashstart      TSBMISS_UHASHSTART
140        khashsz         TSBMISS_KHASHSZ
141        uhashsz         TSBMISS_UHASHSZ
142	dcache_line_mask TSBMISS_DMASK
143        uhat_tteflags   TSBMISS_UTTEFLAGS
144        uhat_rtteflags  TSBMISS_URTTEFLAGS
145        utsb_misses     TSBMISS_UTSBMISS
146        ktsb_misses     TSBMISS_KTSBMISS
147        uprot_traps     TSBMISS_UPROTS
148        kprot_traps     TSBMISS_KPROTS
149        scratch         TSBMISS_SCRATCH
150        shmermap        TSBMISS_SHMERMAP
151        scd_shmermap    TSBMISS_SCDSHMERMAP
152
153\#define        TSB_TAGACC      (0 * TSBMISS_SCRATCH_INCR)
154\#define        TSBMISS_HMEBP   (1 * TSBMISS_SCRATCH_INCR)
155\#define        TSBMISS_HATID   (2 * TSBMISS_SCRATCH_INCR)
156
157kpmtsbm		KPMTSBM_SIZE KPMTSBM_SHIFT
158	vbase		KPMTSBM_VBASE
159	vend		KPMTSBM_VEND
160	flags		KPMTSBM_FLAGS
161	sz_shift	KPMTSBM_SZSHIFT
162	kpmp_shift	KPMTSBM_KPMPSHIFT
163	kpmp2pshft	KPMTSBM_KPMP2PSHFT
164	kpmp_table_sz	KPMTSBM_KPMPTABLESZ
165	kpmp_tablepa	KPMTSBM_KPMPTABLEPA
166	msegphashpa	KPMTSBM_MSEGPHASHPA
167	tsbptr		KPMTSBM_TSBPTR
168	kpm_dtlb_misses	KPMTSBM_DTLBMISS
169	kpm_tsb_misses	KPMTSBM_TSBMISS
170
171kpm_page	KPMPAGE_SIZE KPMPAGE_SHIFT
172	kp_refcnt	KPMPAGE_REFCNT
173	kp_refcnta	KPMPAGE_REFCNTA
174	kp_refcntc	KPMPAGE_REFCNTC
175	kp_refcnts	KPMPAGE_REFCNTS
176
177kpm_hlk		KPMHLK_SIZE KPMHLK_SHIFT
178	khl_mutex	KPMHLK_MUTEX
179	khl_lock	KPMHLK_LOCK
180
181kpm_spage	KPMSPAGE_SIZE KPMSPAGE_SHIFT
182	kp_mapped	KPMSPAGE_MAPPED
183
184kpm_shlk	KPMSHLK_SIZE KPMSHLK_SHIFT
185	kshl_lock	KPMSHLK_LOCK
186
187memseg		MEMSEG_SIZE
188	pages		MEMSEG_PAGES
189	epages		MEMSEG_EPAGES
190	pages_base	MEMSEG_PAGES_BASE
191	pages_end	MEMSEG_PAGES_END
192	next		MEMSEG_NEXT
193	lnext		MEMSEG_LNEXT
194	nextpa		MEMSEG_NEXTPA
195	pagespa		MEMSEG_PAGESPA
196	epagespa	MEMSEG_EPAGESPA
197	kpm_pbase	MEMSEG_KPM_PBASE
198	kpm_nkpmpgs	MEMSEG_KPM_NKPMPGS
199	mseg_un
200	kpm_pagespa	MEMSEG_KPM_PAGESPA
201
202\#define	MEMSEG_KPM_PAGES	(MSEG_UN)
203\#define	MEMSEG_KPM_SPAGES	(MSEG_UN)
204
205page		PAGE_SIZE
206	p_pagenum	PAGE_PAGENUM
207
208tsb_info	TSBINFO_SIZE
209	tsb_tte		TSBINFO_TTE
210	tsb_va		TSBINFO_VADDR
211	tsb_pa		TSBINFO_PADDR
212	tsb_szc		TSBINFO_SZCODE
213	tsb_next	TSBINFO_NEXTPTR
214
215cpu_node	CPU_NODE_SIZE
216	implementation
217	version
218	nodeid
219	clock_freq
220	tick_nsec_scale
221	ecache_size	ECACHE_SIZE
222	ecache_linesize	ECACHE_LINESIZE
223	device_id	DEVICE_ID
224	itlb_size	ITLB_SIZE
225	dtlb_size	DTLB_SIZE
226
227spitfire_scrub_misc_t
228	ec_scrub_outstanding
229
230spitfire_private_t
231	sfpr_scrub_misc
232	sfpr_scrub_afsr
233
234cheetah_private_t
235	chpr_icache_size
236	chpr_icache_linesize
237	chpr_tl1_err_data
238	chpr_scrub_misc
239	chpr_fecctl0_logout
240	chpr_cecc_logout
241	chpr_async_logout
242	chpr_tlb_logout
243	chpr_fpras_timestamp
244
245ch_scrub_misc_t
246	chsm_outstanding
247
248ch_cpu_logout_t		CH_CPU_LOGOUT_SIZE
249	clo_flags	CH_CLO_FLAGS
250	clo_nest_cnt	CH_CLO_NEST_CNT
251	clo_data	CH_CLO_DATA
252	clo_sdw_data	CH_CLO_SDW_DATA
253
254ch_err_tl1_data_t	CH_ERR_TL1_DATA_SIZE
255	ch_err_tl1_g1
256	ch_err_tl1_g2
257	ch_err_tl1_g3
258	ch_err_tl1_g4
259	ch_err_tl1_g5
260	ch_err_tl1_g6
261	ch_err_tl1_g7
262	ch_err_tl1_tpc
263	ch_err_tl1_flags
264	ch_err_tl1_tmp
265	ch_err_tl1_logout
266
267ch_cpu_errors_t         CH_CPU_ERROR_SIZE
268	afsr		CH_CPU_ERRORS_AFSR
269	afar		CH_CPU_ERRORS_AFAR
270	shadow_afsr	CH_CPU_ERRORS_SHADOW_AFSR
271	shadow_afar	CH_CPU_ERRORS_SHADOW_AFAR
272	afsr_ext	CH_CPU_ERRORS_AFSR_EXT
273	shadow_afsr_ext	CH_CPU_ERRORS_SHADOW_AFSR_EXT
274	afar2		CH_CPU_ERRORS_AFAR2
275
276ch_diag_data_t		CH_DIAG_DATA_SIZE
277	chd_afar	CH_CHD_AFAR
278	chd_afar2	CH_CHD_AFAR2
279	chd_afsr	CH_CHD_AFSR
280	chd_afsr_ext	CH_CHD_AFSR_EXT
281	chd_ec_data	CH_CHD_EC_DATA
282	chd_l2_data	CH_CHD_L2_DATA
283	chd_dc_data	CH_CHD_DC_DATA
284	chd_ic_data	CH_CHD_IC_DATA
285
286ch_ec_data_t		CH_EC_DATA_SIZE
287	ec_idx		CH_EC_IDX
288	ec_tag		CH_EC_TAG
289	ec_tag_ecc	CH_EC_TAG_ECC
290	ec_data		CH_EC_DATA
291
292ch_dc_data		CH_DC_DATA_SIZE
293	dc_idx		CH_DC_IDX
294	dc_way		CH_DC_WAY
295	dc_tag		CH_DC_TAG
296	dc_utag		CH_DC_UTAG
297	dc_sntag	CH_DC_SNTAG
298	dc_data		CH_DC_DATA
299	dc_pn_data_parity	CH_DC_PN_DATA_PARITY
300
301ch_ic_data		CH_IC_DATA_SIZE
302	ic_idx		CH_IC_IDX
303	ic_way		CH_IC_WAY
304	ic_patag	CH_IC_PATAG
305	ic_utag		CH_IC_UTAG
306	ic_upper	CH_IC_UPPER
307	ic_lower	CH_IC_LOWER
308	ic_sntag	CH_IC_SNTAG
309	ic_data		CH_IC_DATA
310
311fpras_chkfn		FPRAS_CHKFN_SIZE FPRAS_CHKFN_SIZE_SHIFT
312	fpras_blk0
313
314fpras_chkfngrp		FPRAS_CHKFNGRP_SIZE FPRAS_CHKFNGRP_SIZE_SHIFT
315
316ch_pc_data		CH_PC_DATA_SIZE
317	pc_idx		CH_PC_IDX
318	pc_way		CH_PC_WAY
319	pc_status	CH_PC_STATUS
320	pc_tag		CH_PC_TAG
321	pc_sntag	CH_PC_SNTAG
322	pc_data		CH_PC_DATA
323
324pn_tlb_logout		PN_TLO_SIZE
325	tlo_info	PN_TLO_INFO
326	tlo_addr	PN_TLO_ADDR
327	tlo_pc		PN_TLO_PC
328	tlo_itlb_tte	PN_TLO_ITLB_TTE
329	tlo_dtlb_tte	PN_TLO_DTLB_TTE
330
331ch_tte_entry		CH_TLO_TTE_SIZE
332	ch_tte_tag	CH_TLO_TTE_TAG
333	ch_tte_data	CH_TLO_TTE_DATA
334
335ptl1_regs
336	ptl1_trap_regs
337	ptl1_g1
338	ptl1_g2
339	ptl1_g3
340	ptl1_g4
341	ptl1_g5
342	ptl1_g6
343	ptl1_g7
344	ptl1_tick
345	ptl1_dmmu_sfar
346	ptl1_dmmu_sfsr
347	ptl1_dmmu_tag_access
348	ptl1_immu_sfsr
349	ptl1_immu_tag_access
350	ptl1_rwindow
351	ptl1_softint
352	ptl1_pstate
353	ptl1_pil
354	ptl1_cwp
355	ptl1_wstate
356	ptl1_otherwin
357	ptl1_cleanwin
358	ptl1_cansave
359	ptl1_canrestore
360
361