fromHudsonOsf.h revision 8013
18012Ssaidi@eecs.umich.edu/* 28013Sbinkertn@umich.edu * Copyright 1993, 1994 Hewlett-Packard Development Company, L.P. 38013Sbinkertn@umich.edu * 48013Sbinkertn@umich.edu * Permission is hereby granted, free of charge, to any person 58013Sbinkertn@umich.edu * obtaining a copy of this software and associated documentation 68013Sbinkertn@umich.edu * files (the "Software"), to deal in the Software without 78013Sbinkertn@umich.edu * restriction, including without limitation the rights to use, copy, 88013Sbinkertn@umich.edu * modify, merge, publish, distribute, sublicense, and/or sell copies 98013Sbinkertn@umich.edu * of the Software, and to permit persons to whom the Software is 108013Sbinkertn@umich.edu * furnished to do so, subject to the following conditions: 118013Sbinkertn@umich.edu * 128013Sbinkertn@umich.edu * The above copyright notice and this permission notice shall be 138013Sbinkertn@umich.edu * included in all copies or substantial portions of the Software. 148013Sbinkertn@umich.edu * 158013Sbinkertn@umich.edu * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 168013Sbinkertn@umich.edu * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 178013Sbinkertn@umich.edu * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 188013Sbinkertn@umich.edu * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS 198013Sbinkertn@umich.edu * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN 208013Sbinkertn@umich.edu * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 218013Sbinkertn@umich.edu * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 228013Sbinkertn@umich.edu * SOFTWARE. 238013Sbinkertn@umich.edu */ 248012Ssaidi@eecs.umich.edu 257997Ssaidi@eecs.umich.edu#ifndef FROMHUDSONOSF_INCLUDED 267997Ssaidi@eecs.umich.edu#define FROMHUDSONOSF_INCLUDED 1 278013Sbinkertn@umich.edu 287997Ssaidi@eecs.umich.edu#define __OSF_LOADED 1 297997Ssaidi@eecs.umich.edu/* 307997Ssaidi@eecs.umich.edu** Seg0 and Seg1 Virtual Address (VA) Format 317997Ssaidi@eecs.umich.edu** 327997Ssaidi@eecs.umich.edu** Loc Size Name Function 337997Ssaidi@eecs.umich.edu** ----- ---- ---- --------------------------------- 347997Ssaidi@eecs.umich.edu** <42:33> 10 SEG1 First level page table offset 357997Ssaidi@eecs.umich.edu** <32:23> 10 SEG2 Second level page table offset 367997Ssaidi@eecs.umich.edu** <22:13> 10 SEG3 Third level page table offset 377997Ssaidi@eecs.umich.edu** <12:00> 13 OFFSET Byte within page offset 387997Ssaidi@eecs.umich.edu*/ 397997Ssaidi@eecs.umich.edu 407997Ssaidi@eecs.umich.edu#define VA_V_SEG1 33 417997Ssaidi@eecs.umich.edu#define VA_M_SEG1 (0x3FF<<VA_V_SEG1) 427997Ssaidi@eecs.umich.edu#define VA_V_SEG2 23 437997Ssaidi@eecs.umich.edu#define VA_M_SEG2 (0x3FF<<VA_V_SEG2) 447997Ssaidi@eecs.umich.edu#define VA_V_SEG3 13 457997Ssaidi@eecs.umich.edu#define VA_M_SEG3 (0x3FF<<VA_V_SEG3) 467997Ssaidi@eecs.umich.edu#define VA_V_OFFSET 0 477997Ssaidi@eecs.umich.edu#define VA_M_OFFSET 0x1FFF 487997Ssaidi@eecs.umich.edu 497997Ssaidi@eecs.umich.edu/* 507997Ssaidi@eecs.umich.edu** Virtual Address Options: 8K byte page size 517997Ssaidi@eecs.umich.edu*/ 527997Ssaidi@eecs.umich.edu 537997Ssaidi@eecs.umich.edu#define VA_S_SIZE 43 547997Ssaidi@eecs.umich.edu#define VA_S_OFF 13 557997Ssaidi@eecs.umich.edu#define va_s_off 13 567997Ssaidi@eecs.umich.edu#define VA_S_SEG 10 577997Ssaidi@eecs.umich.edu#define VA_S_PAGE_SIZE 8192 587997Ssaidi@eecs.umich.edu 597997Ssaidi@eecs.umich.edu/* 607997Ssaidi@eecs.umich.edu** Page Table Entry (PTE) Format 617997Ssaidi@eecs.umich.edu** 627997Ssaidi@eecs.umich.edu** Extent Size Name Function 637997Ssaidi@eecs.umich.edu** ------ ---- ---- --------------------------------- 647997Ssaidi@eecs.umich.edu** <63:32> 32 PFN Page Frame Number 657997Ssaidi@eecs.umich.edu** <31:16> 16 SW Reserved for software 667997Ssaidi@eecs.umich.edu** <15:14> 2 RSV0 Reserved for hardware SBZ 677997Ssaidi@eecs.umich.edu** <13> 1 UWE User Write Enable 687997Ssaidi@eecs.umich.edu** <12> 1 KWE Kernel Write Enable 697997Ssaidi@eecs.umich.edu** <11:10> 2 RSV1 Reserved for hardware SBZ 707997Ssaidi@eecs.umich.edu** <9> 1 URE User Read Enable 717997Ssaidi@eecs.umich.edu** <8> 1 KRE Kernel Read Enable 727997Ssaidi@eecs.umich.edu** <7> 1 RSV2 Reserved for hardware SBZ 737997Ssaidi@eecs.umich.edu** <6:5> 2 GH Granularity Hint 747997Ssaidi@eecs.umich.edu** <4> 1 ASM Address Space Match 757997Ssaidi@eecs.umich.edu** <3> 1 FOE Fault On Execute 767997Ssaidi@eecs.umich.edu** <2> 1 FOW Fault On Write 777997Ssaidi@eecs.umich.edu** <1> 1 FOR Fault On Read 787997Ssaidi@eecs.umich.edu** <0> 1 V Valid 797997Ssaidi@eecs.umich.edu*/ 807997Ssaidi@eecs.umich.edu 817997Ssaidi@eecs.umich.edu#define PTE_V_PFN 32 827997Ssaidi@eecs.umich.edu#define PTE_M_PFN 0xFFFFFFFF00000000 837997Ssaidi@eecs.umich.edu#define PTE_V_SW 16 847997Ssaidi@eecs.umich.edu#define PTE_M_SW 0x00000000FFFF0000 857997Ssaidi@eecs.umich.edu#define PTE_V_UWE 13 867997Ssaidi@eecs.umich.edu#define PTE_M_UWE (1<<PTE_V_UWE) 877997Ssaidi@eecs.umich.edu#define PTE_V_KWE 12 887997Ssaidi@eecs.umich.edu#define PTE_M_KWE (1<<PTE_V_KWE) 897997Ssaidi@eecs.umich.edu#define PTE_V_URE 9 907997Ssaidi@eecs.umich.edu#define PTE_M_URE (1<<PTE_V_URE) 917997Ssaidi@eecs.umich.edu#define PTE_V_KRE 8 927997Ssaidi@eecs.umich.edu#define PTE_M_KRE (1<<PTE_V_KRE) 937997Ssaidi@eecs.umich.edu#define PTE_V_GH 5 947997Ssaidi@eecs.umich.edu#define PTE_M_GH (3<<PTE_V_GH) 957997Ssaidi@eecs.umich.edu#define PTE_V_ASM 4 967997Ssaidi@eecs.umich.edu#define PTE_M_ASM (1<<PTE_V_ASM) 977997Ssaidi@eecs.umich.edu#define PTE_V_FOE 3 987997Ssaidi@eecs.umich.edu#define PTE_M_FOE (1<<PTE_V_FOE) 997997Ssaidi@eecs.umich.edu#define PTE_V_FOW 2 1007997Ssaidi@eecs.umich.edu#define PTE_M_FOW (1<<PTE_V_FOW) 1017997Ssaidi@eecs.umich.edu#define PTE_V_FOR 1 1027997Ssaidi@eecs.umich.edu#define PTE_M_FOR (1<<PTE_V_FOR) 1037997Ssaidi@eecs.umich.edu#define PTE_V_VALID 0 1047997Ssaidi@eecs.umich.edu#define PTE_M_VALID (1<<PTE_V_VALID) 1057997Ssaidi@eecs.umich.edu 1067997Ssaidi@eecs.umich.edu#define PTE_M_KSEG 0x1111 1077997Ssaidi@eecs.umich.edu#define PTE_M_PROT 0x3300 1087997Ssaidi@eecs.umich.edu#define pte_m_prot 0x3300 1097997Ssaidi@eecs.umich.edu 1107997Ssaidi@eecs.umich.edu/* 1117997Ssaidi@eecs.umich.edu** System Entry Instruction Fault (entIF) Constants: 1127997Ssaidi@eecs.umich.edu*/ 1137997Ssaidi@eecs.umich.edu 1147997Ssaidi@eecs.umich.edu#define IF_K_BPT 0x0 1157997Ssaidi@eecs.umich.edu#define IF_K_BUGCHK 0x1 1167997Ssaidi@eecs.umich.edu#define IF_K_GENTRAP 0x2 1177997Ssaidi@eecs.umich.edu#define IF_K_FEN 0x3 1187997Ssaidi@eecs.umich.edu#define IF_K_OPCDEC 0x4 1197997Ssaidi@eecs.umich.edu 1207997Ssaidi@eecs.umich.edu/* 1217997Ssaidi@eecs.umich.edu** System Entry Hardware Interrupt (entInt) Constants: 1227997Ssaidi@eecs.umich.edu*/ 1237997Ssaidi@eecs.umich.edu 1247997Ssaidi@eecs.umich.edu#define INT_K_IP 0x0 1257997Ssaidi@eecs.umich.edu#define INT_K_CLK 0x1 1267997Ssaidi@eecs.umich.edu#define INT_K_MCHK 0x2 1277997Ssaidi@eecs.umich.edu#define INT_K_DEV 0x3 1287997Ssaidi@eecs.umich.edu#define INT_K_PERF 0x4 1297997Ssaidi@eecs.umich.edu 1307997Ssaidi@eecs.umich.edu/* 1317997Ssaidi@eecs.umich.edu** System Entry MM Fault (entMM) Constants: 1327997Ssaidi@eecs.umich.edu*/ 1337997Ssaidi@eecs.umich.edu 1347997Ssaidi@eecs.umich.edu#define MM_K_TNV 0x0 1357997Ssaidi@eecs.umich.edu#define MM_K_ACV 0x1 1367997Ssaidi@eecs.umich.edu#define MM_K_FOR 0x2 1377997Ssaidi@eecs.umich.edu#define MM_K_FOE 0x3 1387997Ssaidi@eecs.umich.edu#define MM_K_FOW 0x4 1397997Ssaidi@eecs.umich.edu 1407997Ssaidi@eecs.umich.edu/* 1417997Ssaidi@eecs.umich.edu** Process Control Block (PCB) Offsets: 1427997Ssaidi@eecs.umich.edu*/ 1437997Ssaidi@eecs.umich.edu 1447997Ssaidi@eecs.umich.edu#define PCB_Q_KSP 0x0000 1457997Ssaidi@eecs.umich.edu#define PCB_Q_USP 0x0008 1467997Ssaidi@eecs.umich.edu#define PCB_Q_PTBR 0x0010 1477997Ssaidi@eecs.umich.edu#define PCB_L_PCC 0x0018 1487997Ssaidi@eecs.umich.edu#define PCB_L_ASN 0x001C 1497997Ssaidi@eecs.umich.edu#define PCB_Q_UNIQUE 0x0020 1507997Ssaidi@eecs.umich.edu#define PCB_Q_FEN 0x0028 1517997Ssaidi@eecs.umich.edu#define PCB_Q_RSV0 0x0030 1527997Ssaidi@eecs.umich.edu#define PCB_Q_RSV1 0x0038 1537997Ssaidi@eecs.umich.edu 1547997Ssaidi@eecs.umich.edu/* 1557997Ssaidi@eecs.umich.edu** Processor Status Register (PS) Bit Summary 1567997Ssaidi@eecs.umich.edu** 1577997Ssaidi@eecs.umich.edu** Extent Size Name Function 1587997Ssaidi@eecs.umich.edu** ------ ---- ---- --------------------------------- 1597997Ssaidi@eecs.umich.edu** <3> 1 CM Current Mode 1607997Ssaidi@eecs.umich.edu** <2:0> 3 IPL Interrupt Priority Level 1617997Ssaidi@eecs.umich.edu**/ 1627997Ssaidi@eecs.umich.edu 1637997Ssaidi@eecs.umich.edu#define PS_V_CM 3 1647997Ssaidi@eecs.umich.edu#define PS_M_CM (1<<PS_V_CM) 1657997Ssaidi@eecs.umich.edu#define PS_V_IPL 0 1667997Ssaidi@eecs.umich.edu#define PS_M_IPL (7<<PS_V_IPL) 1677997Ssaidi@eecs.umich.edu 1687997Ssaidi@eecs.umich.edu#define PS_K_KERN (0<<PS_V_CM) 1697997Ssaidi@eecs.umich.edu#define PS_K_USER (1<<PS_V_CM) 1707997Ssaidi@eecs.umich.edu 1717997Ssaidi@eecs.umich.edu#define IPL_K_ZERO 0x0 1727997Ssaidi@eecs.umich.edu#define IPL_K_SW0 0x1 1737997Ssaidi@eecs.umich.edu#define IPL_K_SW1 0x2 1747997Ssaidi@eecs.umich.edu#define IPL_K_DEV0 0x3 1757997Ssaidi@eecs.umich.edu#define IPL_K_DEV1 0x4 1767997Ssaidi@eecs.umich.edu#define IPL_K_CLK 0x5 1777997Ssaidi@eecs.umich.edu#define IPL_K_RT 0x6 1787997Ssaidi@eecs.umich.edu#define IPL_K_PERF 0x6 1797997Ssaidi@eecs.umich.edu#define IPL_K_PFAIL 0x6 1807997Ssaidi@eecs.umich.edu#define IPL_K_MCHK 0x7 1817997Ssaidi@eecs.umich.edu 1827997Ssaidi@eecs.umich.edu#define IPL_K_LOW 0x0 1837997Ssaidi@eecs.umich.edu#define IPL_K_HIGH 0x7 1847997Ssaidi@eecs.umich.edu 1857997Ssaidi@eecs.umich.edu/* 1867997Ssaidi@eecs.umich.edu** SCB Offset Definitions: 1877997Ssaidi@eecs.umich.edu*/ 1887997Ssaidi@eecs.umich.edu 1897997Ssaidi@eecs.umich.edu#define SCB_Q_FEN 0x0010 1907997Ssaidi@eecs.umich.edu#define SCB_Q_ACV 0x0080 1917997Ssaidi@eecs.umich.edu#define SCB_Q_TNV 0x0090 1927997Ssaidi@eecs.umich.edu#define SCB_Q_FOR 0x00A0 1937997Ssaidi@eecs.umich.edu#define SCB_Q_FOW 0x00B0 1947997Ssaidi@eecs.umich.edu#define SCB_Q_FOE 0x00C0 1957997Ssaidi@eecs.umich.edu#define SCB_Q_ARITH 0x0200 1967997Ssaidi@eecs.umich.edu#define SCB_Q_KAST 0x0240 1977997Ssaidi@eecs.umich.edu#define SCB_Q_EAST 0x0250 1987997Ssaidi@eecs.umich.edu#define SCB_Q_SAST 0x0260 1997997Ssaidi@eecs.umich.edu#define SCB_Q_UAST 0x0270 2007997Ssaidi@eecs.umich.edu#define SCB_Q_UNALIGN 0x0280 2017997Ssaidi@eecs.umich.edu#define SCB_Q_BPT 0x0400 2027997Ssaidi@eecs.umich.edu#define SCB_Q_BUGCHK 0x0410 2037997Ssaidi@eecs.umich.edu#define SCB_Q_OPCDEC 0x0420 2047997Ssaidi@eecs.umich.edu#define SCB_Q_ILLPAL 0x0430 2057997Ssaidi@eecs.umich.edu#define SCB_Q_TRAP 0x0440 2067997Ssaidi@eecs.umich.edu#define SCB_Q_CHMK 0x0480 2077997Ssaidi@eecs.umich.edu#define SCB_Q_CHME 0x0490 2087997Ssaidi@eecs.umich.edu#define SCB_Q_CHMS 0x04A0 2097997Ssaidi@eecs.umich.edu#define SCB_Q_CHMU 0x04B0 2107997Ssaidi@eecs.umich.edu#define SCB_Q_SW0 0x0500 2117997Ssaidi@eecs.umich.edu#define SCB_Q_SW1 0x0510 2127997Ssaidi@eecs.umich.edu#define SCB_Q_SW2 0x0520 2137997Ssaidi@eecs.umich.edu#define SCB_Q_SW3 0x0530 2147997Ssaidi@eecs.umich.edu#define SCB_Q_SW4 0x0540 2157997Ssaidi@eecs.umich.edu#define SCB_Q_SW5 0x0550 2167997Ssaidi@eecs.umich.edu#define SCB_Q_SW6 0x0560 2177997Ssaidi@eecs.umich.edu#define SCB_Q_SW7 0x0570 2187997Ssaidi@eecs.umich.edu#define SCB_Q_SW8 0x0580 2197997Ssaidi@eecs.umich.edu#define SCB_Q_SW9 0x0590 2207997Ssaidi@eecs.umich.edu#define SCB_Q_SW10 0x05A0 2217997Ssaidi@eecs.umich.edu#define SCB_Q_SW11 0x05B0 2227997Ssaidi@eecs.umich.edu#define SCB_Q_SW12 0x05C0 2237997Ssaidi@eecs.umich.edu#define SCB_Q_SW13 0x05D0 2247997Ssaidi@eecs.umich.edu#define SCB_Q_SW14 0x05E0 2257997Ssaidi@eecs.umich.edu#define SCB_Q_SW15 0x05F0 2267997Ssaidi@eecs.umich.edu#define SCB_Q_CLOCK 0x0600 2277997Ssaidi@eecs.umich.edu#define SCB_Q_INTER 0x0610 2287997Ssaidi@eecs.umich.edu#define SCB_Q_SYSERR 0x0620 2297997Ssaidi@eecs.umich.edu#define SCB_Q_PROCERR 0x0630 2307997Ssaidi@eecs.umich.edu#define SCB_Q_PWRFAIL 0x0640 2317997Ssaidi@eecs.umich.edu#define SCB_Q_PERFMON 0x0650 2327997Ssaidi@eecs.umich.edu#define SCB_Q_SYSMCHK 0x0660 2337997Ssaidi@eecs.umich.edu#define SCB_Q_PROCMCHK 0x0670 2347997Ssaidi@eecs.umich.edu#define SCB_Q_PASSREL 0x0680 2357997Ssaidi@eecs.umich.edu 2367997Ssaidi@eecs.umich.edu/* 2377997Ssaidi@eecs.umich.edu** Stack Frame (FRM) Offsets: 2387997Ssaidi@eecs.umich.edu** 2397997Ssaidi@eecs.umich.edu** There are two types of system entries for OSF/1 - those for the 2407997Ssaidi@eecs.umich.edu** callsys CALL_PAL function and those for exceptions and interrupts. 2417997Ssaidi@eecs.umich.edu** Both entry types use the same stack frame layout. The stack frame 2427997Ssaidi@eecs.umich.edu** contains space for the PC, the PS, the saved GP, and the saved 2437997Ssaidi@eecs.umich.edu** argument registers a0, a1, and a2. On entry, SP points to the 2447997Ssaidi@eecs.umich.edu** saved PS. 2457997Ssaidi@eecs.umich.edu*/ 2467997Ssaidi@eecs.umich.edu 2477997Ssaidi@eecs.umich.edu#define FRM_Q_PS 0x0000 2487997Ssaidi@eecs.umich.edu#define FRM_Q_PC 0x0008 2497997Ssaidi@eecs.umich.edu#define FRM_Q_GP 0x0010 2507997Ssaidi@eecs.umich.edu#define FRM_Q_A0 0x0018 2517997Ssaidi@eecs.umich.edu#define FRM_Q_A1 0x0020 2527997Ssaidi@eecs.umich.edu#define FRM_Q_A2 0x0028 2537997Ssaidi@eecs.umich.edu 2547997Ssaidi@eecs.umich.edu#define FRM_K_SIZE 48 2557997Ssaidi@eecs.umich.edu 2567997Ssaidi@eecs.umich.edu#define STACK_FRAME(tmp1,tmp2) \ 2577997Ssaidi@eecs.umich.edu sll ps, 63-PS_V_CM, p7; \ 2587997Ssaidi@eecs.umich.edu bge p7, 0f; \ 2597997Ssaidi@eecs.umich.edu bis zero, zero, ps; \ 2607997Ssaidi@eecs.umich.edu mtpr sp, ptUsp; \ 2617997Ssaidi@eecs.umich.edu mfpr sp, ptKsp; \ 2627997Ssaidi@eecs.umich.edu0: lda sp, 0-FRM_K_SIZE(sp); \ 2637997Ssaidi@eecs.umich.edu stq tmp1, FRM_Q_PS(sp); \ 2647997Ssaidi@eecs.umich.edu stq tmp2, FRM_Q_PC(sp); \ 2657997Ssaidi@eecs.umich.edu stq gp, FRM_Q_GP(sp); \ 2667997Ssaidi@eecs.umich.edu stq a0, FRM_Q_A0(sp); \ 2677997Ssaidi@eecs.umich.edu stq a1, FRM_Q_A1(sp); \ 2687997Ssaidi@eecs.umich.edu stq a2, FRM_Q_A2(sp) 2697997Ssaidi@eecs.umich.edu 2707997Ssaidi@eecs.umich.edu/* 2717997Ssaidi@eecs.umich.edu** Halt Codes: 2727997Ssaidi@eecs.umich.edu*/ 2737997Ssaidi@eecs.umich.edu 2747997Ssaidi@eecs.umich.edu#define HLT_K_RESET 0x0000 2757997Ssaidi@eecs.umich.edu#define HLT_K_HW_HALT 0x0001 2767997Ssaidi@eecs.umich.edu#define HLT_K_KSP_INVAL 0x0002 2777997Ssaidi@eecs.umich.edu#define HLT_K_SCBB_INVAL 0x0003 2787997Ssaidi@eecs.umich.edu#define HLT_K_PTBR_INVAL 0x0004 2797997Ssaidi@eecs.umich.edu#define HLT_K_SW_HALT 0x0005 2807997Ssaidi@eecs.umich.edu#define HLT_K_DBL_MCHK 0x0006 2817997Ssaidi@eecs.umich.edu#define HLT_K_MCHK_FROM_PAL 0x0007 2827997Ssaidi@eecs.umich.edu 2837997Ssaidi@eecs.umich.edu/* 2847997Ssaidi@eecs.umich.edu** Machine Check Codes: 2857997Ssaidi@eecs.umich.edu*/ 2867997Ssaidi@eecs.umich.edu 2877997Ssaidi@eecs.umich.edu#define MCHK_K_TPERR 0x0080 2887997Ssaidi@eecs.umich.edu#define MCHK_K_TCPERR 0x0082 2897997Ssaidi@eecs.umich.edu#define MCHK_K_HERR 0x0084 2907997Ssaidi@eecs.umich.edu#define MCHK_K_ECC_C 0x0086 2917997Ssaidi@eecs.umich.edu#define MCHK_K_ECC_NC 0x0088 2927997Ssaidi@eecs.umich.edu#define MCHK_K_UNKNOWN 0x008A 2937997Ssaidi@eecs.umich.edu#define MCHK_K_CACKSOFT 0x008C 2947997Ssaidi@eecs.umich.edu#define MCHK_K_BUGCHECK 0x008E 2957997Ssaidi@eecs.umich.edu#define MCHK_K_OS_BUGCHECK 0x0090 2967997Ssaidi@eecs.umich.edu#define MCHK_K_DCPERR 0x0092 2977997Ssaidi@eecs.umich.edu#define MCHK_K_ICPERR 0x0094 2987997Ssaidi@eecs.umich.edu#define MCHK_K_RETRY_IRD 0x0096 2997997Ssaidi@eecs.umich.edu#define MCHK_K_PROC_HERR 0x0098 3007997Ssaidi@eecs.umich.edu 3017997Ssaidi@eecs.umich.edu/* 3027997Ssaidi@eecs.umich.edu** System Machine Check Codes: 3037997Ssaidi@eecs.umich.edu*/ 3047997Ssaidi@eecs.umich.edu 3057997Ssaidi@eecs.umich.edu#define MCHK_K_READ_NXM 0x0200 3067997Ssaidi@eecs.umich.edu#define MCHK_K_SYS_HERR 0x0202 3077997Ssaidi@eecs.umich.edu 3087997Ssaidi@eecs.umich.edu/* 3097997Ssaidi@eecs.umich.edu** Machine Check Error Status Summary (MCES) Register Format 3107997Ssaidi@eecs.umich.edu** 3117997Ssaidi@eecs.umich.edu** Extent Size Name Function 3127997Ssaidi@eecs.umich.edu** ------ ---- ---- --------------------------------- 3137997Ssaidi@eecs.umich.edu** <0> 1 MIP Machine check in progress 3147997Ssaidi@eecs.umich.edu** <1> 1 SCE System correctable error in progress 3157997Ssaidi@eecs.umich.edu** <2> 1 PCE Processor correctable error in progress 3167997Ssaidi@eecs.umich.edu** <3> 1 DPC Disable PCE error reporting 3177997Ssaidi@eecs.umich.edu** <4> 1 DSC Disable SCE error reporting 3187997Ssaidi@eecs.umich.edu*/ 3197997Ssaidi@eecs.umich.edu 3207997Ssaidi@eecs.umich.edu#define MCES_V_MIP 0 3217997Ssaidi@eecs.umich.edu#define MCES_M_MIP (1<<MCES_V_MIP) 3227997Ssaidi@eecs.umich.edu#define MCES_V_SCE 1 3237997Ssaidi@eecs.umich.edu#define MCES_M_SCE (1<<MCES_V_SCE) 3247997Ssaidi@eecs.umich.edu#define MCES_V_PCE 2 3257997Ssaidi@eecs.umich.edu#define MCES_M_PCE (1<<MCES_V_PCE) 3267997Ssaidi@eecs.umich.edu#define MCES_V_DPC 3 3277997Ssaidi@eecs.umich.edu#define MCES_M_DPC (1<<MCES_V_DPC) 3287997Ssaidi@eecs.umich.edu#define MCES_V_DSC 4 3297997Ssaidi@eecs.umich.edu#define MCES_M_DSC (1<<MCES_V_DSC) 3307997Ssaidi@eecs.umich.edu 3317997Ssaidi@eecs.umich.edu#define MCES_M_ALL (MCES_M_MIP | MCES_M_SCE | MCES_M_PCE | MCES_M_DPC \ 3327997Ssaidi@eecs.umich.edu | MCES_M_DSC) 3337997Ssaidi@eecs.umich.edu 3347997Ssaidi@eecs.umich.edu/* 3357997Ssaidi@eecs.umich.edu** Who-Am-I (WHAMI) Register Format 3367997Ssaidi@eecs.umich.edu** 3377997Ssaidi@eecs.umich.edu** Extent Size Name Function 3387997Ssaidi@eecs.umich.edu** ------ ---- ---- --------------------------------- 3397997Ssaidi@eecs.umich.edu** <7:0> 8 ID Who-Am-I identifier 3407997Ssaidi@eecs.umich.edu** <15:8> 1 SWAP Swap PALcode flag - character 'S' 3417997Ssaidi@eecs.umich.edu*/ 3427997Ssaidi@eecs.umich.edu 3437997Ssaidi@eecs.umich.edu#define WHAMI_V_SWAP 8 3447997Ssaidi@eecs.umich.edu#define WHAMI_M_SWAP (1<<WHAMI_V_SWAP) 3457997Ssaidi@eecs.umich.edu#define WHAMI_V_ID 0 3467997Ssaidi@eecs.umich.edu#define WHAMI_M_ID 0xFF 3477997Ssaidi@eecs.umich.edu 3487997Ssaidi@eecs.umich.edu#define WHAMI_K_SWAP 0x53 /* Character 'S' */ 3497997Ssaidi@eecs.umich.edu 3507997Ssaidi@eecs.umich.edu/* 3517997Ssaidi@eecs.umich.edu** Conventional Register Usage Definitions 3527997Ssaidi@eecs.umich.edu** 3537997Ssaidi@eecs.umich.edu** Assembler temporary `at' is `AT' so it doesn't conflict with the 3547997Ssaidi@eecs.umich.edu** `.set at' assembler directive. 3557997Ssaidi@eecs.umich.edu*/ 3567997Ssaidi@eecs.umich.edu 3577997Ssaidi@eecs.umich.edu#define v0 $0 /* Function Return Value Register */ 3587997Ssaidi@eecs.umich.edu#define t0 $1 /* Scratch (Temporary) Registers ... */ 3597997Ssaidi@eecs.umich.edu#define t1 $2 3607997Ssaidi@eecs.umich.edu#define t2 $3 3617997Ssaidi@eecs.umich.edu#define t3 $4 3627997Ssaidi@eecs.umich.edu#define t4 $5 3637997Ssaidi@eecs.umich.edu#define t5 $6 3647997Ssaidi@eecs.umich.edu#define t6 $7 3657997Ssaidi@eecs.umich.edu#define t7 $8 3667997Ssaidi@eecs.umich.edu#define s0 $9 /* Saved (Non-Volatile) Registers ... */ 3677997Ssaidi@eecs.umich.edu#define s1 $10 3687997Ssaidi@eecs.umich.edu#define s2 $11 3697997Ssaidi@eecs.umich.edu#define s3 $12 3707997Ssaidi@eecs.umich.edu#define s4 $13 3717997Ssaidi@eecs.umich.edu#define s5 $14 3727997Ssaidi@eecs.umich.edu#define fp $15 /* Frame Pointer Register, Or S6 */ 3737997Ssaidi@eecs.umich.edu#define s6 $15 3747997Ssaidi@eecs.umich.edu#define a0 $16 /* Argument Registers ... */ 3757997Ssaidi@eecs.umich.edu#define a1 $17 3767997Ssaidi@eecs.umich.edu#define a2 $18 3777997Ssaidi@eecs.umich.edu#define a3 $19 3787997Ssaidi@eecs.umich.edu#define a4 $20 3797997Ssaidi@eecs.umich.edu#define a5 $21 3807997Ssaidi@eecs.umich.edu#define t8 $22 /* Scratch (Temporary) Registers ... */ 3817997Ssaidi@eecs.umich.edu#define t9 $23 3827997Ssaidi@eecs.umich.edu#define t10 $24 3837997Ssaidi@eecs.umich.edu#define t11 $25 3847997Ssaidi@eecs.umich.edu#define ra $26 /* Return Address Register */ 3857997Ssaidi@eecs.umich.edu#define pv $27 /* Procedure Value Register, Or T12 */ 3867997Ssaidi@eecs.umich.edu#define t12 $27 3877997Ssaidi@eecs.umich.edu#define AT $28 /* Assembler Temporary (Volatile) Register */ 3887997Ssaidi@eecs.umich.edu#define gp $29 /* Global Pointer Register */ 3897997Ssaidi@eecs.umich.edu#define sp $30 /* Stack Pointer Register */ 3907997Ssaidi@eecs.umich.edu#define zero $31 /* Zero Register */ 3917997Ssaidi@eecs.umich.edu 3927997Ssaidi@eecs.umich.edu/* 3937997Ssaidi@eecs.umich.edu** OSF/1 Unprivileged CALL_PAL Entry Offsets: 3947997Ssaidi@eecs.umich.edu** 3957997Ssaidi@eecs.umich.edu** Entry Name Offset (Hex) 3967997Ssaidi@eecs.umich.edu** 3977997Ssaidi@eecs.umich.edu** bpt 0080 3987997Ssaidi@eecs.umich.edu** bugchk 0081 3997997Ssaidi@eecs.umich.edu** callsys 0083 4007997Ssaidi@eecs.umich.edu** imb 0086 4017997Ssaidi@eecs.umich.edu** rdunique 009E 4027997Ssaidi@eecs.umich.edu** wrunique 009F 4037997Ssaidi@eecs.umich.edu** gentrap 00AA 4047997Ssaidi@eecs.umich.edu** dbgstop 00AD 4057997Ssaidi@eecs.umich.edu*/ 4067997Ssaidi@eecs.umich.edu 4077997Ssaidi@eecs.umich.edu#define UNPRIV 0x80 4087997Ssaidi@eecs.umich.edu#define PAL_BPT_ENTRY 0x80 4097997Ssaidi@eecs.umich.edu#define PAL_BUGCHK_ENTRY 0x81 4107997Ssaidi@eecs.umich.edu#define PAL_CALLSYS_ENTRY 0x83 4117997Ssaidi@eecs.umich.edu#define PAL_IMB_ENTRY 0x86 4127997Ssaidi@eecs.umich.edu#define PAL_RDUNIQUE_ENTRY 0x9E 4137997Ssaidi@eecs.umich.edu#define PAL_WRUNIQUE_ENTRY 0x9F 4147997Ssaidi@eecs.umich.edu#define PAL_GENTRAP_ENTRY 0xAA 4157997Ssaidi@eecs.umich.edu 4167997Ssaidi@eecs.umich.edu#if defined(KDEBUG) 4177997Ssaidi@eecs.umich.edu#define PAL_DBGSTOP_ENTRY 0xAD 4187997Ssaidi@eecs.umich.edu/* #define NUM_UNPRIV_CALL_PALS 10 */ 4197997Ssaidi@eecs.umich.edu#else 4207997Ssaidi@eecs.umich.edu/* #define NUM_UNPRIV_CALL_PALS 9 */ 4217997Ssaidi@eecs.umich.edu#endif /* KDEBUG */ 4227997Ssaidi@eecs.umich.edu 4237997Ssaidi@eecs.umich.edu/* 4247997Ssaidi@eecs.umich.edu** OSF/1 Privileged CALL_PAL Entry Offsets: 4257997Ssaidi@eecs.umich.edu** 4267997Ssaidi@eecs.umich.edu** Entry Name Offset (Hex) 4277997Ssaidi@eecs.umich.edu** 4287997Ssaidi@eecs.umich.edu** halt 0000 4297997Ssaidi@eecs.umich.edu** cflush 0001 4307997Ssaidi@eecs.umich.edu** draina 0002 4317997Ssaidi@eecs.umich.edu** cserve 0009 4327997Ssaidi@eecs.umich.edu** swppal 000A 4337997Ssaidi@eecs.umich.edu** rdmces 0010 4347997Ssaidi@eecs.umich.edu** wrmces 0011 4357997Ssaidi@eecs.umich.edu** wrfen 002B 4367997Ssaidi@eecs.umich.edu** wrvptptr 002D 4377997Ssaidi@eecs.umich.edu** swpctx 0030 4387997Ssaidi@eecs.umich.edu** wrval 0031 4397997Ssaidi@eecs.umich.edu** rdval 0032 4407997Ssaidi@eecs.umich.edu** tbi 0033 4417997Ssaidi@eecs.umich.edu** wrent 0034 4427997Ssaidi@eecs.umich.edu** swpipl 0035 4437997Ssaidi@eecs.umich.edu** rdps 0036 4447997Ssaidi@eecs.umich.edu** wrkgp 0037 4457997Ssaidi@eecs.umich.edu** wrusp 0038 4467997Ssaidi@eecs.umich.edu** rdusp 003A 4477997Ssaidi@eecs.umich.edu** whami 003C 4487997Ssaidi@eecs.umich.edu** retsys 003D 4497997Ssaidi@eecs.umich.edu** rti 003F 4507997Ssaidi@eecs.umich.edu*/ 4517997Ssaidi@eecs.umich.edu 4527997Ssaidi@eecs.umich.edu#define PAL_HALT_ENTRY 0x0000 4537997Ssaidi@eecs.umich.edu#define PAL_CFLUSH_ENTRY 0x0001 4547997Ssaidi@eecs.umich.edu#define PAL_DRAINA_ENTRY 0x0002 4557997Ssaidi@eecs.umich.edu#define PAL_CSERVE_ENTRY 0x0009 4567997Ssaidi@eecs.umich.edu#define PAL_SWPPAL_ENTRY 0x000A 4577997Ssaidi@eecs.umich.edu#define PAL_WRIPIR_ENTRY 0x000D 4587997Ssaidi@eecs.umich.edu#define PAL_RDMCES_ENTRY 0x0010 4597997Ssaidi@eecs.umich.edu#define PAL_WRMCES_ENTRY 0x0011 4607997Ssaidi@eecs.umich.edu#define PAL_WRFEN_ENTRY 0x002B 4617997Ssaidi@eecs.umich.edu#define PAL_WRVPTPTR_ENTRY 0x002D 4627997Ssaidi@eecs.umich.edu#define PAL_SWPCTX_ENTRY 0x0030 4637997Ssaidi@eecs.umich.edu#define PAL_WRVAL_ENTRY 0x0031 4647997Ssaidi@eecs.umich.edu#define PAL_RDVAL_ENTRY 0x0032 4657997Ssaidi@eecs.umich.edu#define PAL_TBI_ENTRY 0x0033 4667997Ssaidi@eecs.umich.edu#define PAL_WRENT_ENTRY 0x0034 4677997Ssaidi@eecs.umich.edu#define PAL_SWPIPL_ENTRY 0x0035 4687997Ssaidi@eecs.umich.edu#define PAL_RDPS_ENTRY 0x0036 4697997Ssaidi@eecs.umich.edu#define PAL_WRKGP_ENTRY 0x0037 4707997Ssaidi@eecs.umich.edu#define PAL_WRUSP_ENTRY 0x0038 4717997Ssaidi@eecs.umich.edu#define PAL_RDUSP_ENTRY 0x003A 4727997Ssaidi@eecs.umich.edu#define PAL_WHAMI_ENTRY 0x003C 4737997Ssaidi@eecs.umich.edu#define PAL_RETSYS_ENTRY 0x003D 4747997Ssaidi@eecs.umich.edu#define PAL_RTI_ENTRY 0x003F 4757997Ssaidi@eecs.umich.edu 4767997Ssaidi@eecs.umich.edu#define NUM_PRIV_CALL_PALS 23 4777997Ssaidi@eecs.umich.edu 4787997Ssaidi@eecs.umich.edu#endif 4797997Ssaidi@eecs.umich.edu 480