9470f6b5e11719100cdb2fef604888d5ca4fd384Phill Cunnington\ offsets.in: input file to produce assym.h using the stabs program
9470f6b5e11719100cdb2fef604888d5ca4fd384Phill Cunnington\ Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
9470f6b5e11719100cdb2fef604888d5ca4fd384Phill Cunnington\ Copyright 2012 Garrett D'Amore <garett@damore.org>. All rights reserved.
9470f6b5e11719100cdb2fef604888d5ca4fd384Phill Cunnington\ CDDL HEADER START
9470f6b5e11719100cdb2fef604888d5ca4fd384Phill Cunnington\ The contents of this file are subject to the terms of the
9470f6b5e11719100cdb2fef604888d5ca4fd384Phill Cunnington\ Common Development and Distribution License (the "License").
9470f6b5e11719100cdb2fef604888d5ca4fd384Phill Cunnington\ You may not use this file except in compliance with the License.
9470f6b5e11719100cdb2fef604888d5ca4fd384Phill Cunnington\ You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9470f6b5e11719100cdb2fef604888d5ca4fd384Phill Cunnington\ or http://www.opensolaris.org/os/licensing.
9470f6b5e11719100cdb2fef604888d5ca4fd384Phill Cunnington\ See the License for the specific language governing permissions
a5e5f882b965bd225310fef6487ad9a2e8674a73Tom Rumsey\ and limitations under the License.
9470f6b5e11719100cdb2fef604888d5ca4fd384Phill Cunnington\ When distributing Covered Code, include this CDDL HEADER in each
9470f6b5e11719100cdb2fef604888d5ca4fd384Phill Cunnington\ file and include the License file at usr/src/OPENSOLARIS.LICENSE.
9470f6b5e11719100cdb2fef604888d5ca4fd384Phill Cunnington\ If applicable, add the following below this CDDL HEADER, with the
a5e5f882b965bd225310fef6487ad9a2e8674a73Tom Rumsey\ fields enclosed by brackets "[]" replaced with your own identifying
a5e5f882b965bd225310fef6487ad9a2e8674a73Tom Rumsey\ information: Portions Copyright [yyyy] [name of copyright owner]
9470f6b5e11719100cdb2fef604888d5ca4fd384Phill Cunnington\ CDDL HEADER END
9470f6b5e11719100cdb2fef604888d5ca4fd384Phill Cunnington\ A blank line is required between structure/union/intrinsic names.
9470f6b5e11719100cdb2fef604888d5ca4fd384Phill Cunnington\ The general form is:
9470f6b5e11719100cdb2fef604888d5ca4fd384Phill Cunnington\ name size_define [shift_define]
a5e5f882b965bd225310fef6487ad9a2e8674a73Tom Rumsey\ member_name [offset_define]
a5e5f882b965bd225310fef6487ad9a2e8674a73Tom Rumsey\ {blank line}
9470f6b5e11719100cdb2fef604888d5ca4fd384Phill Cunnington\ If offset_define is not specified then the member_name is
9470f6b5e11719100cdb2fef604888d5ca4fd384Phill Cunnington\ converted to all caps and used instead. If the size of an item is
a5e5f882b965bd225310fef6487ad9a2e8674a73Tom Rumsey\ a power of two then an optional shift count may be output using
9470f6b5e11719100cdb2fef604888d5ca4fd384Phill Cunnington\ shift_define as the name but only if shift_define was specified.
9470f6b5e11719100cdb2fef604888d5ca4fd384Phill Cunnington\ Arrays cause stabs to automatically output the per-array-item increment
9470f6b5e11719100cdb2fef604888d5ca4fd384Phill Cunnington\ in addition to the base address:
a5e5f882b965bd225310fef6487ad9a2e8674a73Tom Rumsey\ foo FOO_SIZE
a5e5f882b965bd225310fef6487ad9a2e8674a73Tom Rumsey\ array FOO_ARRAY
a5e5f882b965bd225310fef6487ad9a2e8674a73Tom Rumsey\ results in:
9470f6b5e11719100cdb2fef604888d5ca4fd384Phill Cunnington\ #define FOO_ARRAY 0x0
9470f6b5e11719100cdb2fef604888d5ca4fd384Phill Cunnington\ #define FOO_ARRAY_INCR 0x4
a5e5f882b965bd225310fef6487ad9a2e8674a73Tom Rumsey\ which allows \#define's to be used to specify array items:
9470f6b5e11719100cdb2fef604888d5ca4fd384Phill Cunnington\ #define FOO_0 (FOO_ARRAY + (0 * FOO_ARRAY_INCR))
9470f6b5e11719100cdb2fef604888d5ca4fd384Phill Cunnington\ #define FOO_1 (FOO_ARRAY + (1 * FOO_ARRAY_INCR))
a5e5f882b965bd225310fef6487ad9a2e8674a73Tom Rumsey\ #define FOO_n (FOO_ARRAY + (n * FOO_ARRAY_INCR))
a5e5f882b965bd225310fef6487ad9a2e8674a73Tom Rumsey\ There are several examples below (search for _INCR).
a5e5f882b965bd225310fef6487ad9a2e8674a73Tom Rumsey\ There is currently no manner in which to identify "anonymous"
9470f6b5e11719100cdb2fef604888d5ca4fd384Phill Cunnington\ structures or unions so if they are to be used in assembly code
a5e5f882b965bd225310fef6487ad9a2e8674a73Tom Rumsey\ they must be given names.
a5e5f882b965bd225310fef6487ad9a2e8674a73Tom Rumsey\ When specifying the offsets of nested structures/unions each nested
9470f6b5e11719100cdb2fef604888d5ca4fd384Phill Cunnington\ structure or union must be listed separately then use the
a5e5f882b965bd225310fef6487ad9a2e8674a73Tom Rumsey\ "\#define" escapes to add the offsets from the base structure/union
a5e5f882b965bd225310fef6487ad9a2e8674a73Tom Rumsey\ and all of the nested structures/unions together. See the many
a5e5f882b965bd225310fef6487ad9a2e8674a73Tom Rumsey\ examples already in this file.
9470f6b5e11719100cdb2fef604888d5ca4fd384Phill Cunnington#ifndef _GENASSYM
a5e5f882b965bd225310fef6487ad9a2e8674a73Tom Rumsey#define _GENASSYM
9470f6b5e11719100cdb2fef604888d5ca4fd384Phill Cunnington#define SIZES 1
9470f6b5e11719100cdb2fef604888d5ca4fd384Phill Cunningtongreg_t GREGSIZE
9470f6b5e11719100cdb2fef604888d5ca4fd384Phill Cunningtonuintptr_t LWP_ARG_SZ
a5e5f882b965bd225310fef6487ad9a2e8674a73Tom Rumseyproc PROCSIZE
a5e5f882b965bd225310fef6487ad9a2e8674a73Tom Rumsey p_fixalignment
a5e5f882b965bd225310fef6487ad9a2e8674a73Tom Rumsey p_brand_data
9470f6b5e11719100cdb2fef604888d5ca4fd384Phill Cunnington\#define P_UTRAP4 (UT_ILLTRAP_INSTRUCTION * CPTRSIZE)
9470f6b5e11719100cdb2fef604888d5ca4fd384Phill Cunnington\#define P_UTRAP7 (UT_FP_DISABLED * CPTRSIZE)
9470f6b5e11719100cdb2fef604888d5ca4fd384Phill Cunnington\#define P_UTRAP8 (UT_FP_EXCEPTION_IEEE_754 * CPTRSIZE)
9470f6b5e11719100cdb2fef604888d5ca4fd384Phill Cunnington\#define P_UTRAP10 (UT_TAG_OVERFLOW * CPTRSIZE)
9470f6b5e11719100cdb2fef604888d5ca4fd384Phill Cunnington\#define P_UTRAP11 (UT_DIVISION_BY_ZERO * CPTRSIZE)
9470f6b5e11719100cdb2fef604888d5ca4fd384Phill Cunnington\#define P_UTRAP15 (UT_MEM_ADDRESS_NOT_ALIGNED * CPTRSIZE)
a5e5f882b965bd225310fef6487ad9a2e8674a73Tom Rumsey\#define P_UTRAP16 (UT_PRIVILEGED_ACTION * CPTRSIZE)
bac066aba91585304ce46b92b923c344ab8d2150Phill Cunnington pid_id PID_PIDID
bac066aba91585304ce46b92b923c344ab8d2150Phill Cunnington_label_t LABEL_SIZE
bac066aba91585304ce46b92b923c344ab8d2150Phill Cunnington val LABEL_VAL
9470f6b5e11719100cdb2fef604888d5ca4fd384Phill Cunnington_kthread THREAD_SIZE
a5e5f882b965bd225310fef6487ad9a2e8674a73Tom Rumsey t_stk T_STACK
a5e5f882b965bd225310fef6487ad9a2e8674a73Tom Rumsey t_flag T_FLAGS
tagints.inthi TSBTAG_INTHI
tagints.intlo TSBTAG_INTLO
lwp_ru.sysc LWP_RU_SYSC
lwp_mstate.ms_start LWP_MS_START
lwp_mstate.ms_prev LWP_MS_PREV
lwp_mstate.ms_state_start LWP_STATE_START
lwp_mstate.ms_acct LWP_MS_ACCT
lwp_pcb.pcb_flags PCB_FLAGS
lwp_pcb.pcb_trap0addr PCB_TRAP0
lwp_pcb.pcb_step PCB_STEP
lwp_pcb.pcb_tracepc PCB_TRACEPC
fpu_fr.fpu_regs FPU_REGS
cpu_stats.sys.cpumigrate CPU_STATS_SYS_CPUMIGRATE
cpu_stats.sys.intr CPU_STATS_SYS_INTR
cpu_stats.sys.intrunpin CPU_STATS_SYS_INTRUNPIN
cpu_stats.sys.intrblk CPU_STATS_SYS_INTRBLK
cpu_stats.sys.syscall CPU_STATS_SYS_SYSCALL
cpu_ftrace.ftd_state CPU_FTRACE_STATE
cpu_m.divisor CPU_DIVISOR
cpu_m.intrstat CPU_INTRSTAT
cpu_m.pil_high_start CPU_PIL_HIGH_START
cpu_m.intr_tail INTR_TAIL
cpu_m.intr_head INTR_HEAD
cpu_m.tl1_hdlr CPU_TL1_HDLR
cpu_m.intrcnt CPU_INTRCNT
cpu_m.tmp1 CPU_TMP1
cpu_m.tmp2 CPU_TMP2
cpu_m.tmp3 CPU_TMP3
cpu_m.tmp4 CPU_TMP4
cpu_m.ofd CPU_OFD
cpu_m.lfd CPU_LFD
cpu_m.otd CPU_OTD
cpu_m.mpcb CPU_MPCB
cpu_m.cpu_private CPU_PRIVATE
cpu_m.cpu_mmu_idx CPU_MMU_IDX
cpu_m.cpu_mmu_ctxp CPU_MMU_CTXP
cpu_m.ptl1_state CPU_PTL1
fpu_unfinished_traps.value FPUSTAT_UNFIN_KSTAT
fpu_sim_fitos.value FPUINFO_FITOS_KSTAT