Annotation of researchv9/jerq/include/muxpcbs.h, revision 1.1.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.