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