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 \ Copyright 2019 Joyent, Inc.
5 \
6 \ CDDL HEADER START
7 \
8 \ The contents of this file are subject to the terms of the
9 \ Common Development and Distribution License (the "License").
10 \ You may not use this file except in compliance with the License.
11 \
12 \ You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
13 \ or http://www.opensolaris.org/os/licensing.
14 \ See the License for the specific language governing permissions
15 \ and limitations under the License.
16 \
17 \ When distributing Covered Code, include this CDDL HEADER in each
18 \ file and include the License file at usr/src/OPENSOLARIS.LICENSE.
19 \ If applicable, add the following below this CDDL HEADER, with the
20 \ fields enclosed by brackets "[]" replaced with your own identifying
21 \ information: Portions Copyright [yyyy] [name of copyright owner]
22 \
23 \ CDDL HEADER END
24 \
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 offset_define is not specified then the member_name is
38 \ converted to all caps and used instead. If the size of an item is
39 \ a power of two then an optional shift count may be output using
40 \ shift_define as the name but only if shift_define was specified.
41 \
42 \ Arrays cause stabs to automatically output the per-array-item increment
43 \ in addition to the base address:
44 \
45 \ foo FOO_SIZE
46 \ array FOO_ARRAY
47 \
48 \ results in:
49 \
50 \ #define FOO_ARRAY 0x0
51 \ #define FOO_ARRAY_INCR 0x4
52 \
53 \ which allows \#define's to be used to specify array items:
54 \
55 \ #define FOO_0 (FOO_ARRAY + (0 * FOO_ARRAY_INCR))
56 \ #define FOO_1 (FOO_ARRAY + (1 * FOO_ARRAY_INCR))
57 \ ...
58 \ #define FOO_n (FOO_ARRAY + (n * FOO_ARRAY_INCR))
59 \
60 \ There are several examples below (search for _INCR).
61 \
62 \ There is currently no manner in which to identify "anonymous"
63 \ structures or unions so if they are to be used in assembly code
64 \ they must be given names.
65 \
66 \ When specifying the offsets of nested structures/unions each nested
67 \ structure or union must be listed separately then use the
68 \ "\#define" escapes to add the offsets from the base structure/union
69 \ and all of the nested structures/unions together. See the many
70 \ examples already in this file.
71
72 #ifndef _GENASSYM
73 #define _GENASSYM
74 #endif
75
76 #define SIZES 1
77
78 #include <sys/mutex_impl.h>
79 #include <sys/lockstat.h>
80 #include <sys/ddi_isa.h>
81 #include <sys/ivintr.h>
82 #include <sys/ddi_impldefs.h>
83 #include <vm/hat_sfmmu.h>
84 #include <sys/avintr.h>
85 #include <sys/strsubr.h>
86 #include <sys/dmv.h>
87 #include <sys/fpu/fpu_simulator.h>
88 #include <sys/ontrap.h>
89 #include <sys/lgrp.h>
90 #include <sys/ddifm_impl.h>
91 #include <sys/brand.h>
92
93 greg_t GREGSIZE
94
95 uintptr_t LWP_ARG_SZ
96
97 proc PROCSIZE
98 p_link
99 p_next
100 p_child
101 p_sibling
102 p_sig
103 p_wcode
104 p_flag
105 p_tlist
106 p_as
107 p_lockp
108 p_pidp
109 p_fixalignment
110 p_utraps
111 p_agenttp
112 p_brand
113 p_brand_data
114
115 \#define P_UTRAP4 (UT_ILLTRAP_INSTRUCTION * CPTRSIZE)
116 \#define P_UTRAP7 (UT_FP_DISABLED * CPTRSIZE)
117 \#define P_UTRAP8 (UT_FP_EXCEPTION_IEEE_754 * CPTRSIZE)
118 \#define P_UTRAP10 (UT_TAG_OVERFLOW * CPTRSIZE)
119 \#define P_UTRAP11 (UT_DIVISION_BY_ZERO * CPTRSIZE)
120 \#define P_UTRAP15 (UT_MEM_ADDRESS_NOT_ALIGNED * CPTRSIZE)
121 \#define P_UTRAP16 (UT_PRIVILEGED_ACTION * CPTRSIZE)
122
123 pid PID_SIZE
124 pid_id PID_PIDID
125
126 _label_t LABEL_SIZE
127 val LABEL_VAL
128
129 _kthread THREAD_SIZE
130 t_lock
131 t_lock_flush
132 t_lockp
133 t_oldspl
134 t_pri
135 t_lwp
136 t_procp
137 t_link
138 t_state
139 t_mstate
140 t_stk T_STACK
141 t_swap
142 t_flag T_FLAGS
143 t_ctx
144 t_pcb
145 t_lofault
146 t_onfault
147 t_ontrap
148 t_nomigrate
149 t_cpu
150 t_weakbound_cpu
151 t_lpl
152 t_bound_cpu
153 t_intr
154 t_forw
155 t_back
156 t_sig
157 t_tid
158 t_pre_sys
159 t_preempt
160 t_proc_flag
161 t_startpc
162 t_sysnum
163 _tu._t_post_sys_ast T_POST_SYS_AST
164 _tu._ts._t_astflag T_ASTFLAG
165 _tu._ts._t_sig_check T_SIG_CHECK
166 _tu._ts._t_post_sys T_POST_SYS
167 _tu._ts._t_trapret T_TRAPRET
168 t_preempt_lk
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