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