/* Copyright 1993 Hewlett-Packard Development Company, L.P. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef EV5_ALPHA_DEFS_INCLUDED #define EV5_ALPHA_DEFS_INCLUDED 1 // from ev5_alpha_defs.mar from Lance's fetch directory // Lower-caseified and $ signs removed ... pb Nov/95 // .MACRO _ALPHADEFS // ALPHADEF_VER == 6 ; Flag the version number of this file. // .ENDM // .MACRO _PSDEF,_GBL // _DEFINI PS,_GBL //;+ //; PS Layout - PS //; Loc Size name function //; ------ ------ ______ ----------------------------------- //; <31:29> 3 SA stack alignment //; <31:13> 24 RES Reserved MBZ //; <12:8> 5 IPL Priority level //; <7> 1 VMM Virtual Mach Monitor //; <6:5> 2 RES Reserved MBZ //; <4:3> 2 CM Current Mode //; <2> 1 IP Interrupt Pending //; <1:0> 2 SW Software bits //;- #define ps_v_sw 0 #define ps_m_sw (3< 32 PFN Page Frame Number //; <31:16> 16 SOFT Bits reserved for software use //; <15> 1 UWE User write enable //; <14> 1 SWE Super write enable //; <13> 1 EWE Exec write enable //; <12> 1 KWE Kernel write enable //; <11> 1 URE User read enable //; <10> 1 SRE Super read enable //; <9> 1 ERE Exec read enable //; <8> 1 KRE Kernel read enable //; <7:6> 2 RES Reserved SBZ //; <5> 1 HPF Huge Page Flag //; <4> 1 ASM Wild card address space number match //; <3> 1 FOE Fault On execute //; <2> 1 FOW Fault On Write //; <1> 1 FOR Fault On Read //; <0> 1 V valid bit //;- // .MACRO _PTEDEF,_GBL // _DEFINI PTE,_GBL #define pte_v_pfn 32 #define pte_m_soft (0xFFFF0000) #define pte_v_soft 16 #define pte_m_uwe (0x8000) #define pte_v_uwe 15 #define pte_m_swe (0x4000) #define pte_v_swe 14 #define pte_m_ewe (0x2000) #define pte_v_ewe 13 #define pte_m_kwe (0x1000) #define pte_v_kwe 12 #define pte_m_ure (0x0800) #define pte_v_ure 11 #define pte_m_sre (0x0400) #define pte_v_sre 10 #define pte_m_ere (0x0200) #define pte_v_ere 9 #define pte_m_kre (0x0100) #define pte_v_kre 8 #define pte_m_hpf (0x0020) #define pte_v_hpf 5 #define pte_m_asm (0x0010) #define pte_v_asm 4 #define pte_m_foe (0x0008) #define pte_v_foe 3 #define pte_m_fow (0x0004) #define pte_v_fow 2 #define pte_m_for (0x0002) #define pte_v_for 1 #define pte_m_v (0x0001) #define pte_v_v 0 // _DEFEND PTE,_GBL,DEF // .ENDM //;+ //; VA layout - symbol prefix VA_ //; //; Loc Size name function //; ------ ------ ------- ----------------------------------- //; <42:33> 10 SEG1 First seg table offset for mapping //; <32:23> 10 SEG2 Second seg table offset for mapping //; <22:13> 10 SEG3 Third seg table offset for mapping //; <12:0> 13 OFFSET Byte within page //;- // .MACRO _VADEF,_GBL // _DEFINI VA,_GBL #define va_m_offset (0x000000001FFF) #define va_v_offset 0 #define va_m_seg3 (0x0000007FE000) #define va_v_seg3 13 #define va_m_seg2 (0x0001FF800000) #define va_v_seg2 23 #define va_m_seg1 (0x7FE00000000) #define va_v_seg1 33 // _DEFEND VA,_GBL,DEF // .ENDM //;+ //; PRIVILEGED CONTEXT BLOCK (PCB) //;- // .MACRO _PCBDEF,_GBL // _DEFINI PCB,_GBL #define pcb_q_ksp 0 #define pcb_q_esp 8 #define pcb_q_ssp 16 #define pcb_q_usp 24 #define pcb_q_ptbr 32 #define pcb_q_asn 40 #define pcb_q_ast 48 #define pcb_q_fen 56 #define pcb_q_cc 64 #define pcb_q_unq 72 #define pcb_q_sct 80 #define pcb_v_asten 0 #define pcb_m_asten (0x0f< ; Software completion // exs_v_inv <1> ; Ivalid operation // exs_v_dze <2> ; Div by zero // exs_v_fov <3> ; Floating point overflow // exs_v_unf <4> ; Floating point underflow // exs_v_ine <5> ; Floating point inexact // exs_v_iov <6> ; Floating convert to integer overflow #define exs_v_swc 0 #define exs_v_inv 1 #define exs_v_dze 2 #define exs_v_fov 3 #define exs_v_unf 4 #define exs_v_ine 5 #define exs_v_iov 6 #define exs_m_swc (1< ; machine check in progress // mces_v_sce <1> ; system correctable error // mces_v_pce <2> ; processor correctable error // mces_v_dpc <3> ; disable reporting of processor correctable errors // mces_v_dsc <4> ; disable reporting of system correctable errors #define mces_v_mchk 0 #define mces_v_sce 1 #define mces_v_pce 2 #define mces_v_dpc 3 #define mces_v_dsc 4 #define mces_m_mchk (1<