Annotation of researchv9/jerq/include/CC/jerqproc.h, revision 1.1

1.1     ! root        1: #include <CC/tty.h>
        !             2: #ifndef        PROC_H
        !             3: #define        PROC_H
        !             4: 
        !             5: extern int     NPROC;
        !             6: #define        STKSIZ  (4096-sizeof(struct _*))
        !             7: #define        CBSIZE  64      /* NPROC*CBSIZE <= queue.h/NCHARS */
        !             8: 
        !             9: #ifndef        QUEUE_H
        !            10: struct cbuf {  /* duplicated from queue.h for simplicity */
        !            11:        struct cbuf *next;
        !            12:        short   word;
        !            13: };
        !            14: struct clist {
        !            15:        struct cbuf *c_tail;
        !            16:        struct cbuf *c_head;
        !            17:        short   c_cc;
        !            18:        short   state;
        !            19: };
        !            20: #endif
        !            21: struct Pcb {
        !            22:        int     psw;
        !            23:        char    (*pc)();
        !            24:        int     sp;
        !            25:        int     lower;
        !            26:        int     upper;
        !            27:        int     ap;
        !            28:        int     fp;
        !            29:        int     reg[9];         /* 9 user registers */
        !            30:        int     blkmv;
        !            31: };
        !            32: struct Proc {
        !            33:        struct Pcb pcb;
        !            34:        char    *text;
        !            35:        char    *data;
        !            36:        char    *bss;
        !            37:        int     state;
        !            38:        Layer    * layer;
        !            39:        Rectangle rect; /* rectangle on screen */
        !            40:        struct clist kbdqueue;
        !            41:        char    **traploc;
        !            42:        int     *traptype;
        !            43:        int     nticks;
        !            44:        Texture * cursor;
        !            45:        short   inhibited;
        !            46:        short   nchars;
        !            47:        unsigned char   cbuf[CBSIZE*3];         /* circular buffer */
        !            48:        unsigned char   *cbufpin, *cbufpout;
        !            49:        struct Ttychars ttychars;               /* chars for tty driver emulation */
        !            50:        int     stack[STKSIZ/sizeof(int)];      /* int for alignment  */
        !            51:        struct Font *defaultfont;
        !            52: };
        !            53: 
        !            54: 
        !            55: #ifndef        MUX_H
        !            56: #      ifdef   TASK_C
        !            57:        struct Proc *newproc();
        !            58: #      else
        !            59:        extern struct Proc *newproc();
        !            60: #      endif
        !            61: extern struct Proc *P;
        !            62: extern struct Proc proctab[];
        !            63: #endif
        !            64: 
        !            65: #ifdef MUXTERM
        !            66: /*
        !            67:  * Data at start of user program
        !            68:  */
        !            69: struct udata {
        !            70:        Rectangle Drect;
        !            71:        Layer    * Jdisplayp;
        !            72:        int     argc;
        !            73:        char    **argv;
        !            74:        struct Mouse mouse;
        !            75: };
        !            76: /* states */
        !            77: #define        RUN             1       /* ready to be scheduled */
        !            78: #define        BUSY            2       /* active */
        !            79: #define        BLOCKED         4       /* blocked by user with ^S */
        !            80: #define        USER            8       /* a user-68ld'd process */
        !            81: #define        KBDLOCAL        16      /* has requested the KBD */
        !            82: #define        MOUSELOCAL      32      /* has requested the MOUSE */
        !            83: #define        GOTMOUSE        64      /* currently owns MOUSE */
        !            84: #define        WAKEUP          128     /* tell CONTROL to issue setrun(p) */
        !            85: #define        MOVED           256     /* layer got moved */
        !            86: #define        UNBLOCKED       512     /* Has been unblocked */
        !            87: #define        ZOMBIE          1024    /* proc died horribly; waiting for debugger */
        !            88: #define        RESHAPED        2048    /* layer got reshaped */
        !            89: #define        ZOMBOOT         4096    /* put in ZOMBIE state after booting */
        !            90: #define        ALARMREQD       8192    /* has requested an alarm */    
        !            91: 
        !            92: #define        setrun(p)       ((p)->state|=RUN)
        !            93: #define        setnorun(p)     ((p)->state&=~RUN)
        !            94: 
        !            95: #else
        !            96: #define        MOVED           256     /* layer got moved */
        !            97: #define        RESHAPED        2048    /* layer got reshaped */
        !            98: #endif MUXTERM
        !            99: #endif PROC_H

unix.superglobalmegacorp.com

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