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