Annotation of xinu/h/kernel.h, revision 1.1.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.