Annotation of researchv9/jerq/include/muxpcbs.h, revision 1.1

1.1     ! root        1: struct intrpcb {
        !             2:        int     initpsw;
        !             3:        int     (*initpc)();
        !             4:        int     initsp;
        !             5:        int     psw;
        !             6:        int     (*pc)();        /* don't ask */
        !             7:        int     sp;
        !             8:        int     lower;
        !             9:        int     upper;
        !            10:        int     ap;
        !            11:        int     fp;
        !            12:        int     reg[9];         /* 9 user registers */
        !            13:        int     blkmv;
        !            14: };
        !            15: 
        !            16: #define PCB_BASE       ((struct intrpcb *)0x71c050)
        !            17: 
        !            18: #define proc_pcb       (PCB_BASE[0])   /* process and interrupt exceptions */
        !            19: #define stack_pcb      (PCB_BASE[1])   /* stack exceptions */
        !            20: #define host_pcb       (PCB_BASE[2])   /* RS-232 input interrupts */
        !            21: #define out_pcb                (PCB_BASE[3])   /* RS-232 output interrupts */
        !            22: #define pioh_pcb       (PCB_BASE[4])   /* parallel interface */
        !            23: #define key_pcb                (PCB_BASE[5])   /* keyboard interrupts */
        !            24: #define msvid_pcb      (PCB_BASE[6])   /* mouse buttons and 60Hz vert. retrace */
        !            25: #define piol_pcb       (PCB_BASE[7])   /* stray interrupts */
        !            26: #define int_pcb                (PCB_BASE[8])   /* stray interrupts */
        !            27: #define main_pcb       (PCB_BASE[9])   /* muxterm itself (short-lived) */
        !            28: 
        !            29: #define intrentry(intr, entry)\
        !            30:                        asm("   .text");\
        !            31:                        asm("   .globl  intr");\
        !            32:                        asm("intr:");\
        !            33:                        asm("   call    &0,entry");\
        !            34:                        asm("   RETPS");
        !            35: 
        !            36: /*
        !            37:  * psw macros from queue.c.
        !            38:  */
        !            39: #define pswmax()       asm("   PUSHW   %psw    ");\
        !            40:                        asm("   ORW2    &0x1e000,%psw ");\
        !            41:                        asm("   TSTW    %r0     ")
        !            42: 
        !            43: #define pswback()      asm("   POPW    %psw    ");\
        !            44:                        asm("   TSTW    %r0     ")

unix.superglobalmegacorp.com

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