Annotation of xinu/h/kernel.h, revision 1.1

1.1     ! root        1: /* kernel.h - halt, isodd, pause, min */
        !             2: 
        !             3: /* Symbolic constants used throughout Xinu */
        !             4: 
        !             5: #ifndef        ASM
        !             6: typedef        char            Bool;           /* Boolean type                 */
        !             7: typedef long           PStype[1];      /* type of PS save location     */
        !             8: #endif ASM
        !             9: 
        !            10: #define        FALSE           0               /* Boolean constants            */
        !            11: #define        TRUE            1
        !            12: #define        NULL            (char *)0       /* Null pointer for linked lists*/
        !            13: #define        NULLCH          '\0'            /* The null character           */
        !            14: #define        NULLSTR         ""              /* Pointer to empty string      */
        !            15: #define        SYSCALL         int             /* System call declaration      */
        !            16: #define        LOCAL           static          /* Local procedure declaration  */
        !            17: #define        COMMAND         int             /* Shell command declaration    */
        !            18: #define        BUILTIN         int             /* Shell builtin " "            */
        !            19: #define        INTPROC         int             /* Interrupt procedure  "       */
        !            20: #define        PROCESS         int             /* Process declaration          */
        !            21: #define        RESCHYES        1               /* tell ready to reschedule     */
        !            22: #define        RESCHNO         0               /* tell ready not to resch.     */
        !            23: #define        MINSHORT        0100000         /* minimum short integer        */
        !            24: #define        MAXSHORT        077777          /* maximum short integer        */
        !            25: #define        LOWBYTE         0377            /* mask for low-order 8 bits    */
        !            26: #define        LOW6            077             /* mask for low-order 6 bits    */
        !            27: #define        LOW16           0177777         /* mask for low-order 16 bits   */
        !            28:                                        /* Following are indexes of     */
        !            29:                                        /* saved values of registers    */
        !            30:                                        /* in the process table         */
        !            31:                                        /* register save area:          */
        !            32: #define        SPINDX          0               /*   kernel stack pointer       */
        !            33: #define        APINDX          16              /*   argument pointer           */
        !            34: #define        FPINDX          17              /*   frame pointer              */
        !            35: #define        PCINDX          18              /*   program counter            */
        !            36: #define        PSINDX          19              /*   program status longword    */
        !            37: #define P0BRINDX       20              /*   p0 base register           */
        !            38: #define        P0LRINDX        21              /*   p0 length register         */
        !            39: #define        P1BRINDX        22              /*   p1 base register           */
        !            40: #define        MINSTK          128             /* minimum process stack size   */
        !            41: #define        NULLSTK         1024            /* process 0 stack size         */
        !            42: #define        MAGIC           0xaaaaaaaa      /* unusual value for top of stk */
        !            43: 
        !            44: /* Universal return constants */
        !            45: 
        !            46: #define        OK               1              /* returned when system call ok */
        !            47: #define        SYSERR          -1              /* returned when sys. call fails*/
        !            48: #define        EOF             -2              /* returned for end-of-file     */
        !            49: #define        TIMEOUT         -3              /* returned  "  "  "  times out */
        !            50: #define        INTRMSG         -4              /* keyboard "intr" key pressed  */
        !            51:                                        /*  (usu. defined as ^B)        */
        !            52: 
        !            53: /* Initialization constants */
        !            54: 
        !            55: #define        INITSTK         1024            /* initial process stack        */
        !            56: #define        INITPRIO        20              /* initial process priority     */
        !            57: #define        INITNAME        "main"          /* initial process name         */
        !            58: #define        INITARGS        1,0             /* initial count/arguments      */
        !            59: #define        INITRET         userret         /* INITRET=process' return point*/
        !            60: #define        INITPS          0x00000000      /* initial process PSL:         */
        !            61:                                        /* integer oflow trap disabled, */
        !            62:                                        /* interrupts enabled           */
        !            63: #define        INITBR          0x80000000      /* P0 & P1 base register        */
        !            64: #define        INITLR          0x04000000      /* P0LR-> ASTLVL==none pending  */
        !            65: #define        INITREG         0               /* initial register contents    */
        !            66: #define        QUANTUM         10              /* clock ticks until preemption */
        !            67: 
        !            68: /* Miscellaneous utility inline functions */
        !            69: 
        !            70: #ifndef        ASM
        !            71: #define        isodd(x)        (01&(int)(x))
        !            72: #define pause()                asm("nop")      /* pause-like instruction       */
        !            73: #define        halt()          asm("jmp __halt")
        !            74: #define        min(a,b)        ((a) < (b) ? (a) : (b))
        !            75: #endif ASM
        !            76: 
        !            77: #ifndef ASM
        !            78: extern int     rdyhead, rdytail;
        !            79: extern int     preempt;
        !            80: #endif ASM

unix.superglobalmegacorp.com

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