Annotation of lucent/sys/src/libmach/k.c, revision 1.1.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.