xref: /illumos-gate/usr/src/uts/sun4/ml/offsets.in (revision 44c4f64b)
1\ offsets.in: input file to produce assym.h using the stabs program
2\ Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
3\
4\ CDDL HEADER START
5\
6\ The contents of this file are subject to the terms of the
7\ Common Development and Distribution License (the "License").
8\ You may not use this file except in compliance with the License.
9\
10\ You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
11\ or http://www.opensolaris.org/os/licensing.
12\ See the License for the specific language governing permissions
13\ and limitations under the License.
14\
15\ When distributing Covered Code, include this CDDL HEADER in each
16\ file and include the License file at usr/src/OPENSOLARIS.LICENSE.
17\ If applicable, add the following below this CDDL HEADER, with the
18\ fields enclosed by brackets "[]" replaced with your own identifying
19\ information: Portions Copyright [yyyy] [name of copyright owner]
20\
21\ CDDL HEADER END
22\
23\
24\
25\ Guidelines:
26\
27\ A blank line is required between structure/union/intrinsic names.
28\
29\ The general form is:
30\
31\	name size_define [shift_define]
32\		member_name [offset_define]
33\	{blank line}
34\
35\ If offset_define is not specified then the member_name is
36\ converted to all caps and used instead.  If the size of an item is
37\ a power of two then an optional shift count may be output using
38\ shift_define as the name but only if shift_define was specified.
39\
40\ Arrays cause stabs to automatically output the per-array-item increment
41\ in addition to the base address:
42\
43\	 foo FOO_SIZE
44\		array	FOO_ARRAY
45\
46\ results in:
47\
48\	#define	FOO_ARRAY	0x0
49\	#define	FOO_ARRAY_INCR	0x4
50\
51\ which allows \#define's to be used to specify array items:
52\
53\	#define	FOO_0	(FOO_ARRAY + (0 * FOO_ARRAY_INCR))
54\	#define	FOO_1	(FOO_ARRAY + (1 * FOO_ARRAY_INCR))
55\	...
56\	#define	FOO_n	(FOO_ARRAY + (n * FOO_ARRAY_INCR))
57\
58\ There are several examples below (search for _INCR).
59\
60\ There is currently no manner in which to identify "anonymous"
61\ structures or unions so if they are to be used in assembly code
62\ they must be given names.
63\
64\ When specifying the offsets of nested structures/unions each nested
65\ structure or union must be listed separately then use the
66\ "\#define" escapes to add the offsets from the base structure/union
67\ and all of the nested structures/unions together.  See the many
68\ examples already in this file.
69
70#ifndef	_GENASSYM
71#define	_GENASSYM
72#endif
73
74#define	SIZES	1
75
76#include <sys/mutex_impl.h>
77#include <sys/lockstat.h>
78#include <sys/ddi_isa.h>
79#include <sys/ivintr.h>
80#include <sys/ddi_impldefs.h>
81#include <vm/hat_sfmmu.h>
82#include <sys/avintr.h>
83#include <sys/strsubr.h>
84#include <sys/dmv.h>
85#include <sys/fpu/fpu_simulator.h>
86#include <sys/ontrap.h>
87#include <sys/lgrp.h>
88#include <sys/ddifm_impl.h>
89#include <sys/brand.h>
90
91greg_t		GREGSIZE
92
93uintptr_t	LWP_ARG_SZ
94
95proc		PROCSIZE
96	p_link
97	p_next
98	p_child
99	p_sibling
100	p_sig
101	p_wcode
102	p_flag
103	p_tlist
104	p_as
105	p_lockp
106	p_pidp
107	p_fixalignment
108	p_utraps
109	p_agenttp
110	p_brand
111	p_brand_data
112
113\#define	P_UTRAP4	(UT_ILLTRAP_INSTRUCTION * CPTRSIZE)
114\#define	P_UTRAP7	(UT_FP_DISABLED * CPTRSIZE)
115\#define	P_UTRAP8	(UT_FP_EXCEPTION_IEEE_754 * CPTRSIZE)
116\#define	P_UTRAP10	(UT_TAG_OVERFLOW * CPTRSIZE)
117\#define	P_UTRAP11	(UT_DIVISION_BY_ZERO * CPTRSIZE)
118\#define	P_UTRAP15	(UT_MEM_ADDRESS_NOT_ALIGNED * CPTRSIZE)
119\#define	P_UTRAP16	(UT_PRIVILEGED_ACTION * CPTRSIZE)
120
121pid	PID_SIZE
122	pid_id	PID_PIDID
123
124_label_t	LABEL_SIZE
125	val	LABEL_VAL
126
127_kthread	THREAD_SIZE
128	t_lock
129	t_lock_flush
130	t_lockp
131	t_oldspl
132	t_pri
133	t_lwp
134	t_procp
135	t_link
136	t_state
137	t_mstate
138	t_stk		T_STACK
139	t_swap
140	t_flag		T_FLAGS
141	t_ctx
142	t_pcb
143	t_lofault
144	t_onfault
145	t_ontrap
146	t_nomigrate
147	t_cpu
148	t_weakbound_cpu
149	t_lpl
150	t_bound_cpu
151	t_intr
152	t_forw
153	t_back
154	t_sig
155	t_tid
156	t_pre_sys
157	t_preempt
158	t_proc_flag
159	t_startpc
160	t_sysnum
161	_tu._t_post_sys_ast	T_POST_SYS_AST
162	_tu._ts._t_astflag	T_ASTFLAG
163	_tu._ts._t_sig_check	T_SIG_CHECK
164	_tu._ts._t_post_sys	T_POST_SYS
165	_tu._ts._t_trapret	T_TRAPRET
166	t_preempt_lk
167	t_kpri_req
168	t_lockstat
169	t_pil
170	t_intr_start
171	_tdu._tds._t_dtrace_on	T_DTRACE_ON
172	_tdu._tds._t_dtrace_step T_DTRACE_STEP
173	_tdu._tds._t_dtrace_ret	T_DTRACE_RET
174	_tdu._tds._t_dtrace_ast	T_DTRACE_AST
175	_tdu._t_dtrace_ft	T_DTRACE_FT
176	t_dtrace_npc
177	t_copyops
178
179\#define	L_PC	(0 * LABEL_VAL_INCR)
180\#define	L_SP	(1 * LABEL_VAL_INCR)
181
182\#define	T_PC	(T_PCB + L_PC)
183\#define	T_SP	(T_PCB + L_SP)
184
185sysent	SYSENT_SIZE SYSENT_SHIFT
186	sy_callc
187	sy_flags
188
189as	AS_SIZE
190	a_hat
191	a_userlimit
192
193hmehash_bucket	HMEBUCK_SIZE
194	hmeblkp	HMEBUCK_HBLK
195	hmeh_nextpa	HMEBUCK_NEXTPA
196	hmeh_listlock	HMEBUCK_LOCK
197
198tte_t	TTE_SIZE
199	ll	TTE_LL
200
201ism_blk	ISMBLK_SIZE
202	iblk_maps	IBLK_MAPS
203	iblk_next	IBLK_NEXT
204	iblk_nextpa	IBLK_NEXTPA
205
206ism_map_t	ISM_MAP_SZ
207	imap_seg	IMAP_SEG
208	imap_vb_shift	IMAP_VB_SHIFT
209	imap_rid	IMAP_RID
210	imap_hatflags	IMAP_HATFLAGS
211	imap_sz_mask	IMAP_SZ_MASK
212	imap_ismhat	IMAP_ISMHAT
213
214tsbe	TSBE_SIZE
215	tte_tag		TSBE_TAG
216	tte_data	TSBE_TTE
217
218tsb_tag	TSBTAG_SIZE
219	tagints.inthi	TSBTAG_INTHI
220	tagints.intlo	TSBTAG_INTLO
221
222hme_blk	HMEBLK_SIZE
223	hblk_next	HMEBLK_NEXT
224	hblk_tag	HMEBLK_TAG
225	hblk_misc	HMEBLK_MISC
226	hblk_hme	HMEBLK_HME1
227	hblk_nextpa	HMEBLK_NEXTPA
228
229mmu_ctx MMU_CTX_SIZE
230	mmu_gnum	MMU_CTX_GNUM
231	mmu_cnum	MMU_CTX_CNUM
232	mmu_nctxs	MMU_CTX_NCTXS
233
234sfmmu_ctx	SFMMU_MMU_CTX_SIZE SFMMU_MMU_CTX_SHIFT
235	gnum		SFMMU_MMU_GC_NUM
236
237user	USIZEBYTES
238	u_comm
239	u_signal
240
241_klwp	LWP_SIZE
242	lwp_thread
243	lwp_regs
244	lwp_fpu
245	lwp_arg
246	lwp_cursig
247	lwp_ru.sysc			LWP_RU_SYSC
248	lwp_state
249	lwp_mstate.ms_start		LWP_MS_START
250	lwp_mstate.ms_prev		LWP_MS_PREV
251	lwp_mstate.ms_state_start	LWP_STATE_START
252	lwp_mstate.ms_acct		LWP_MS_ACCT
253	lwp_pcb.pcb_flags		PCB_FLAGS
254	lwp_pcb.pcb_trap0addr		PCB_TRAP0
255	lwp_pcb.pcb_step		PCB_STEP
256	lwp_pcb.pcb_tracepc		PCB_TRACEPC
257
258mstate	MSTATE_SIZE
259	ms_start
260	ms_prev
261	ms_term
262	ms_state_start
263	ms_acct
264
265\#define	LWP_ACCT_USER	(LWP_MS_ACCT + (LMS_USER * LWP_MS_ACCT_INCR))
266\#define	LWP_ACCT_SYSTEM (LWP_MS_ACCT + (LMS_SYSTEM * LWP_MS_ACCT_INCR))
267
268rwindow32	RWIN32SIZE	RWIN32SHIFT
269	rw_local	RW32_LOCAL
270	rw_in		RW32_IN
271
272rwindow64	RWIN64SIZE	RWIN64SHIFT
273	rw_local	RW64_LOCAL
274	rw_in		RW64_IN
275
276machpcb	MPCBSIZE
277	mpcb_regs
278	mpcb_wbuf
279	mpcb_spbuf
280	mpcb_wbcnt
281	mpcb_rwin
282	mpcb_rsp
283	mpcb_flags
284	mpcb_thread
285	mpcb_wstate
286	mpcb_pa		MPCB_PA
287	mpcb_wbuf_pa
288
289\#define	MPCB_RWIN0	(MPCB_RWIN + (0 * MPCB_RWIN_INCR))
290\#define	MPCB_RWIN1	(MPCB_RWIN + (1 * MPCB_RWIN_INCR))
291\#define	MPCB_RSP0	(MPCB_RSP + (0 * MPCB_RSP_INCR))
292\#define	MPCB_RSP1	(MPCB_RSP + (1 * MPCB_RSP_INCR))
293
294kfpu_t	KFPUSIZE
295	fpu_fr.fpu_regs		FPU_REGS
296	fpu_fsr
297	fpu_fprs
298	fpu_q
299	fpu_qcnt
300	fpu_en
301
302\#define	FPU_GSR		KFPUSIZE
303
304regs	REGSIZE
305	r_tstate	TSTATE_OFF
306	r_g1		G1_OFF
307	r_g2		G2_OFF
308	r_g3		G3_OFF
309	r_g4		G4_OFF
310	r_g5		G5_OFF
311	r_g6		G6_OFF
312	r_g7		G7_OFF
313	r_o0		O0_OFF
314	r_o1		O1_OFF
315	r_o2		O2_OFF
316	r_o3		O3_OFF
317	r_o4		O4_OFF
318	r_o5		O5_OFF
319	r_o6		O6_OFF
320	r_o7		O7_OFF
321	r_pc		PC_OFF
322	r_npc		NPC_OFF
323	r_y		Y_OFF
324
325\ XXX - doesn't preserve case up above
326\#define	nPC_OFF		NPC_OFF
327
328autovec		AUTOVECSIZE
329	av_vector
330	av_intarg
331
332cpu	CPUSIZE
333	cpu_id
334	cpu_flags
335	cpu_thread
336	cpu_thread_lock
337	cpu_kprunrun
338	cpu_lwp
339	cpu_fpowner
340	cpu_idle_thread
341	cpu_intr_thread
342	cpu_intr_actv
343	cpu_base_spl
344	cpu_intr_stack
345	cpu_stats.sys.cpumigrate	CPU_STATS_SYS_CPUMIGRATE
346	cpu_stats.sys.intr		CPU_STATS_SYS_INTR
347	cpu_stats.sys.intrunpin		CPU_STATS_SYS_INTRUNPIN
348	cpu_stats.sys.intrblk		CPU_STATS_SYS_INTRBLK
349	cpu_stats.sys.syscall		CPU_STATS_SYS_SYSCALL
350	cpu_profile_pc
351	cpu_profile_upc
352	cpu_profile_pil
353	cpu_ftrace.ftd_state		CPU_FTRACE_STATE
354	cpu_mstate
355	cpu_intracct
356	cpu_cpcprofile_pc
357	cpu_cpcprofile_upc
358	cpu_m				CPU_MCPU
359	cpu_m.divisor			CPU_DIVISOR
360	cpu_m.intrstat			CPU_INTRSTAT
361	cpu_m.pil_high_start		CPU_PIL_HIGH_START
362	cpu_m.intr_tail			INTR_TAIL
363	cpu_m.intr_head			INTR_HEAD
364	cpu_m.tl1_hdlr			CPU_TL1_HDLR
365	cpu_m.intrcnt			CPU_INTRCNT
366	cpu_m.tmp1			CPU_TMP1
367	cpu_m.tmp2			CPU_TMP2
368	cpu_m.tmp3			CPU_TMP3
369	cpu_m.tmp4			CPU_TMP4
370	cpu_m.ofd			CPU_OFD
371	cpu_m.lfd			CPU_LFD
372	cpu_m.otd			CPU_OTD
373	cpu_m.mpcb			CPU_MPCB
374	cpu_m.cpu_private		CPU_PRIVATE
375	cpu_m.cpu_mmu_idx		CPU_MMU_IDX
376	cpu_m.cpu_mmu_ctxp            	CPU_MMU_CTXP
377	cpu_m.ptl1_state		CPU_PTL1
378
379cpu_core_t	CPU_CORE_SIZE	CPU_CORE_SHIFT
380	cpuc_dtrace_flags
381	cpuc_dtrace_illval
382
383cpuset_t	CPUSET_SIZE
384
385ptl1_state	PTL1_STATE_SIZE
386	ptl1_regs
387	ptl1_entry_count
388	ptl1_stktop
389
390ptl1_trapregs
391	ptl1_tl
392	ptl1_tt
393	ptl1_tstate
394	ptl1_tpc
395	ptl1_tnpc
396
397lgrp_ld		LGRP_LD_SIZE
398	lpl_loadavg
399	lpl_ncpu
400	lpl_lgrpid
401
402intr_vec IV_SIZE
403	iv_inum
404	iv_pil
405	iv_flags
406	iv_pad
407	iv_handler
408	iv_arg1
409	iv_arg2
410	iv_payload_buf
411	iv_vec_next
412	iv_pil_next
413
414dmv_disp DMV_DISP_SIZE DMV_DISP_SHIFT
415	dmv_func
416	dmv_arg
417
418spin_mutex SM_SIZE
419	m_spinlock
420
421i_ndi_err	NDI_ERR_SIZE
422	err_ena
423	err_status
424	err_ontrap
425
426ddi_acc_impl	DDI_ACC_IMPL_SIZE
427	ahi_common
428	ahi_get8
429	ahi_get16
430	ahi_get32
431	ahi_get64
432	ahi_put8
433	ahi_put16
434	ahi_put32
435	ahi_put64
436	ahi_rep_get8
437	ahi_rep_get16
438	ahi_rep_get32
439	ahi_rep_get64
440	ahi_rep_put8
441	ahi_rep_put16
442	ahi_rep_put32
443	ahi_rep_put64
444	ahi_fault_check
445	ahi_fault
446	ahi_err
447
448stdata	STDATA_SIZE
449	sd_lock
450
451queue	 Q_SIZE
452	q_flag
453	q_next
454	q_stream
455	q_syncq
456	q_qinfo
457
458qinit	QI_SIZE
459	qi_putp
460
461syncq	SQ_SIZE
462	sq_flags
463	sq_count
464	sq_lock
465	sq_wait
466	sq_exitwait
467
468bus_ops		BUS_OPS_SIZE
469	bus_dma_map		OPS_MAP
470	bus_dma_allochdl	OPS_ALLOCHDL
471	bus_dma_freehdl		OPS_FREEHDL
472	bus_dma_bindhdl		OPS_BINDHDL
473	bus_dma_unbindhdl	OPS_UNBINDHDL
474	bus_dma_flush		OPS_FLUSH
475	bus_dma_win		OPS_WIN
476	bus_dma_ctl		OPS_MCTL
477	bus_ctl			OPS_CTL
478
479dev_ops		DEV_OPS_SIZE
480	devo_bus_ops	DEVI_BUS_OPS
481
482dev_info	DEVI_SIZE
483	devi_ops	DEVI_DEV_OPS
484	devi_bus_dma_win
485	devi_bus_dma_allochdl
486	devi_bus_dma_freehdl
487	devi_bus_dma_bindhdl
488	devi_bus_dma_unbindhdl
489	devi_bus_dma_flush
490	devi_bus_dma_unbindfunc
491	devi_bus_ctl
492	devi_bus_dma_map
493	devi_bus_dma_ctl
494
495kstat_io
496	wtime		KSTAT_IO_WTIME
497	wlentime	KSTAT_IO_WLENTIME
498	wlastupdate	KSTAT_IO_WLASTUPDATE
499	rtime		KSTAT_IO_RTIME
500	rlentime	KSTAT_IO_RLENTIME
501	rlastupdate	KSTAT_IO_RLASTUPDATE
502	wcnt		KSTAT_IO_WCNT
503	rcnt		KSTAT_IO_RCNT
504
505ddi_dma_impl
506	dmai_rflags	DMA_HANDLE_RFLAGS
507	dmai_rdip	DMA_HANDLE_RDIP
508
509on_trap_data
510	ot_prot
511	ot_trap
512	ot_trampoline
513	ot_jmpbuf
514	ot_prev
515	ot_handle
516	ot_pad1
517
518fpustat_kstat	FPUSTAT_KSTAT_SIZE
519	fpu_unfinished_traps.value	FPUSTAT_UNFIN_KSTAT
520
521fpuinfo_kstat	FPUINFO_KSTAT_SIZE
522	fpu_sim_fitos.value		FPUINFO_FITOS_KSTAT
523
524mod_stub_info	MODS_SIZE
525	mods_func_adr	MODS_INSTFCN
526	mods_errfcn	MODS_RETFCN
527	mods_flag	MODS_FLAG
528
529copyops
530	cp_copyin
531	cp_xcopyin
532	cp_copyout
533	cp_xcopyout
534	cp_copyinstr
535	cp_copyoutstr
536	cp_fuword8
537	cp_fuword16
538	cp_fuword32
539	cp_fuword64
540	cp_suword8
541	cp_suword16
542	cp_suword32
543	cp_suword64
544	cp_physio
545
546brand	BRAND_SIZE
547	b_machops
548
549brand_proc_data_t
550	spd_handler
551