Annotation of lucent/sys/src/libmach/k.c, revision 1.1

1.1     ! root        1: /*
        !             2:  * sparc definition
        !             3:  */
        !             4: #include <u.h>
        !             5: #include <bio.h>
        !             6: #include "/sparc/include/ureg.h"
        !             7: #include <mach.h>
        !             8: 
        !             9: #define USER_REG(x)    (0x1000-((32+6)*4)+(ulong)(x))
        !            10: #define        FP_REG(x)       (0x0000+4+(x))
        !            11: #define        SCALLOFF        (0x0000+4+168)
        !            12: 
        !            13: #define        REGOFF(x)       (USER_REG(&((struct Ureg *) 0)->x))
        !            14: 
        !            15: #define R1             REGOFF(r1)
        !            16: #define R7             REGOFF(r7)
        !            17: #define PC             REGOFF(pc)
        !            18: #define        R15             REGOFF(r15)
        !            19: 
        !            20: #define        MAXREG  (3+31+2+1+32)
        !            21: #define        MINREG  1
        !            22: 
        !            23: Reglist sparcreglist[] = {
        !            24:        {"Y",           REGOFF(y),      RINT|RRDONLY, 'X'},
        !            25:        {"TBR",         REGOFF(tbr),    RINT|RRDONLY, 'X'},
        !            26:        {"PSR",         REGOFF(psr),    RINT|RRDONLY, 'X'},
        !            27:        {"PC",          REGOFF(pc),     RINT, 'X'},
        !            28:        {"R1",          REGOFF(r1),     RINT, 'X'},
        !            29:        {"R2",          REGOFF(r2),     RINT, 'X'},
        !            30:        {"R3",          REGOFF(r3),     RINT, 'X'},
        !            31:        {"R4",          REGOFF(r4),     RINT, 'X'},
        !            32:        {"R5",          REGOFF(r5),     RINT, 'X'},
        !            33:        {"R6",          REGOFF(r6),     RINT, 'X'},
        !            34:        {"R7",          REGOFF(r7),     RINT, 'X'},
        !            35:        {"R8",          REGOFF(r8),     RINT, 'X'},
        !            36:        {"R9",          REGOFF(r9),     RINT, 'X'},
        !            37:        {"R10",         REGOFF(r10),    RINT, 'X'},
        !            38:        {"R11",         REGOFF(r11),    RINT, 'X'},
        !            39:        {"R12",         REGOFF(r12),    RINT, 'X'},
        !            40:        {"R13",         REGOFF(r13),    RINT, 'X'},
        !            41:        {"R14",         REGOFF(r14),    RINT, 'X'},
        !            42:        {"R15",         REGOFF(r15),    RINT, 'X'},
        !            43:        {"R16",         REGOFF(r16),    RINT, 'X'},
        !            44:        {"R17",         REGOFF(r17),    RINT, 'X'},
        !            45:        {"R18",         REGOFF(r18),    RINT, 'X'},
        !            46:        {"R19",         REGOFF(r19),    RINT, 'X'},
        !            47:        {"R20",         REGOFF(r20),    RINT, 'X'},
        !            48:        {"R21",         REGOFF(r21),    RINT, 'X'},
        !            49:        {"R22",         REGOFF(r22),    RINT, 'X'},
        !            50:        {"R23",         REGOFF(r23),    RINT, 'X'},
        !            51:        {"R24",         REGOFF(r24),    RINT, 'X'},
        !            52:        {"R25",         REGOFF(r25),    RINT, 'X'},
        !            53:        {"R26",         REGOFF(r26),    RINT, 'X'},
        !            54:        {"R27",         REGOFF(r27),    RINT, 'X'},
        !            55:        {"R28",         REGOFF(r28),    RINT, 'X'},
        !            56:        {"R29",         REGOFF(r29),    RINT, 'X'},
        !            57:        {"R30",         REGOFF(r30),    RINT, 'X'},
        !            58:        {"R31",         REGOFF(r31),    RINT, 'X'},
        !            59:        {"NPC",         REGOFF(npc),    RINT, 'X'},
        !            60: 
        !            61:        {"FSR",         FP_REG(0x00),   RINT, 'X'},
        !            62:        {"F0",          FP_REG(0x04),   RFLT, 'F'},
        !            63:        {"F1",          FP_REG(0x08),   RFLT, 'f'},
        !            64:        {"F2",          FP_REG(0x0C),   RFLT, 'F'},
        !            65:        {"F3",          FP_REG(0x10),   RFLT, 'f'},
        !            66:        {"F4",          FP_REG(0x14),   RFLT, 'F'},
        !            67:        {"F5",          FP_REG(0x18),   RFLT, 'f'},
        !            68:        {"F6",          FP_REG(0x1C),   RFLT, 'F'},
        !            69:        {"F7",          FP_REG(0x20),   RFLT, 'f'},
        !            70:        {"F8",          FP_REG(0x24),   RFLT, 'F'},
        !            71:        {"F9",          FP_REG(0x28),   RFLT, 'f'},
        !            72:        {"F10",         FP_REG(0x2C),   RFLT, 'F'},
        !            73:        {"F11",         FP_REG(0x30),   RFLT, 'f'},
        !            74:        {"F12",         FP_REG(0x34),   RFLT, 'F'},
        !            75:        {"F13",         FP_REG(0x38),   RFLT, 'f'},
        !            76:        {"F14",         FP_REG(0x3C),   RFLT, 'F'},
        !            77:        {"F15",         FP_REG(0x40),   RFLT, 'f'},
        !            78:        {"F16",         FP_REG(0x44),   RFLT, 'F'},
        !            79:        {"F17",         FP_REG(0x48),   RFLT, 'f'},
        !            80:        {"F18",         FP_REG(0x4C),   RFLT, 'F'},
        !            81:        {"F19",         FP_REG(0x50),   RFLT, 'f'},
        !            82:        {"F20",         FP_REG(0x54),   RFLT, 'F'},
        !            83:        {"F21",         FP_REG(0x58),   RFLT, 'f'},
        !            84:        {"F22",         FP_REG(0x5C),   RFLT, 'F'},
        !            85:        {"F23",         FP_REG(0x60),   RFLT, 'f'},
        !            86:        {"F24",         FP_REG(0x64),   RFLT, 'F'},
        !            87:        {"F25",         FP_REG(0x68),   RFLT, 'f'},
        !            88:        {"F26",         FP_REG(0x6C),   RFLT, 'F'},
        !            89:        {"F27",         FP_REG(0x70),   RFLT, 'f'},
        !            90:        {"F28",         FP_REG(0x74),   RFLT, 'F'},
        !            91:        {"F29",         FP_REG(0x78),   RFLT, 'f'},
        !            92:        {"F30",         FP_REG(0x7C),   RFLT, 'F'},
        !            93:        {"F31",         FP_REG(0x80),   RFLT, 'f'},
        !            94:        {  0 }
        !            95: };
        !            96: 
        !            97: /*
        !            98:  * sparc has same stack format as mips
        !            99:  */
        !           100: Mach msparc =
        !           101: {
        !           102:        "sparc",
        !           103:        MSPARC,         /* machine type */
        !           104:        sparcreglist,   /* register list */
        !           105:        MINREG,         /* minimum register */
        !           106:        MAXREG,         /* maximum register */
        !           107:        "PC",
        !           108:        "R1",
        !           109:        "R15",
        !           110:        R7,             
        !           111:        0x1000,         /* page size */
        !           112:        0xE0000000,     /* kernel base */
        !           113:        0,              /* kernel text mask */
        !           114:        0,              /* offset of ksp in /proc/proc */
        !           115:        4,              /* correction to ksp value */
        !           116:        4,              /* offset of kpc in /proc/proc */
        !           117:        0,              /* correction to kpc value */
        !           118:        SCALLOFF,       /* offset in ublk of sys call # */
        !           119:        4,              /* quantization of pc */
        !           120:        "setSB",        /* static base register name */
        !           121:        0,              /* value */
        !           122:        4,              /* szaddr */
        !           123:        4,              /* szreg */
        !           124:        4,              /* szfloat */
        !           125:        8,              /* szdouble */
        !           126: };

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.