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