Annotation of cci/d/ioex/evthandlers.s, revision 1.1.1.1

1.1       root        1: /*
                      2:  * Interrupt vector routines
                      3:  */ 
                      4: 
                      5: #define        SCBVEC(name)    .align 2  \
                      6:                        .globl _X/**/name \
                      7:                        _X/**/name
                      8: #define        PANIC(msg)      clrl _waittime \
                      9:                        pushab 1f \
                     10:                        calls $1*4+4,_panic \
                     11:                        halt  \
                     12:                        1: .asciz msg
                     13: #define        PRINTF(n,msg)   pushab 1f; calls $(n+1)*4+4,_printf; MSG(msg)
                     14: #define        MSG(msg)        1: .asciz msg
                     15: #define        PUSHR           pushl r5; pushl r4; pushl r3; pushl r2;\
                     16:                        pushl r1; pushl r0
                     17: 
                     18: #define        POPR            movl (sp)+,r0 \
                     19:                        movl (sp)+,r1 \
                     20:                        movl (sp)+,r2 \
                     21:                        movl (sp)+,r3 \
                     22:                        movl (sp)+,r4 \
                     23:                        movl (sp)+,r5
                     24: /*
                     25:        *unknown interrupt
                     26: */
                     27: 
                     28: SCBVEC(unknown):
                     29:        halt
                     30: /*
                     31:        
                     32:        *powerfail
                     33:        *psl & pc are saved on int stack.
                     34:        *This routine saves general registers,memory mgmt registers,
                     35:        *privileged registers, etc. in _dbuf & then executes halt.
                     36:        *
                     37:        *The restart location is saved at 0x00000c00. CPU 2 should
                     38:        *restart at the location specified after power is up.
                     39: 
                     40: */
                     41: 
                     42: SCBVEC(powerfail):
                     43: 
                     44:        /*save context and restart location*/   
                     45: 
                     46:        halt
                     47: 
                     48: /*
                     49:        
                     50:        *interval timer
                     51: 
                     52: */
                     53: 
                     54: SCBVEC(hardclock):
                     55:        halt
                     56: /*
                     57:        *console terminal receive interrupt
                     58: */
                     59: 
                     60: SCBVEC(cnrint):
                     61:        rei
                     62: /*
                     63:        *console terminal transmit interrupt
                     64: */
                     65: 
                     66: SCBVEC(cnxint):
                     67:        rei             /* Just REI back !! */
                     68:        halt
                     69: /*
                     70:        *software generated interrupts
                     71: */
                     72: 
                     73: SCBVEC(s15):
                     74:        halt
                     75: /*
                     76:        *software generated interrupts
                     77: */
                     78: 
                     79: SCBVEC(s14):
                     80:        halt
                     81: /*
                     82:        *software generated interrupts
                     83: */
                     84: 
                     85: SCBVEC(s13):
                     86:        halt
                     87: /*
                     88:        *software generated interrupts
                     89: */
                     90: 
                     91: SCBVEC(s12):
                     92:        halt
                     93: /*
                     94:        *software generated interrupts
                     95: */
                     96: 
                     97: SCBVEC(s11):
                     98:        halt
                     99: /*
                    100:        *software generated interrupts
                    101: */
                    102: 
                    103: SCBVEC(s10):
                    104:        halt
                    105: /*
                    106:        *software generated interrupts
                    107: */
                    108: 
                    109: SCBVEC(s9):
                    110:        halt
                    111: /*
                    112:        *software generated interrupts
                    113: */
                    114: 
                    115: SCBVEC(s8):
                    116:        halt
                    117: /*
                    118:        *software generated interrupts
                    119: */
                    120: 
                    121: SCBVEC(s7):
                    122:        halt
                    123: /*
                    124:        *software generated interrupts
                    125: */
                    126: 
                    127: SCBVEC(s6):
                    128:        halt
                    129: /*
                    130:        *software generated interrupts
                    131: */
                    132: 
                    133: SCBVEC(s5):
                    134:        halt
                    135: /*
                    136:        *software generated interrupts
                    137: */
                    138: 
                    139: SCBVEC(s4):
                    140:        halt
                    141: /*
                    142:        *software generated interrupts
                    143: */
                    144: 
                    145: SCBVEC(s3):
                    146:        halt
                    147: /*
                    148:        *software generated interrupts
                    149: */
                    150: 
                    151: SCBVEC(s2):
                    152:        halt
                    153: /*
                    154:        *software generated interrupts
                    155: */
                    156: 
                    157: SCBVEC(s1):
                    158:        halt
                    159: 
                    160: /*
                    161:        *io interrupt
                    162: */
                    163: 
                    164: SCBVEC(iovec14):
                    165:        halt
                    166: SCBVEC(iovec15):
                    167:        halt
                    168: SCBVEC(iovec16):
                    169:        halt
                    170: SCBVEC(iovec17):
                    171:        halt
                    172: 
                    173: /*     
                    174:        *EXCEPTIONS
                    175: */
                    176: 
                    177: /*
                    178: 
                    179:        *buserror
                    180:        *psl, pc, and errorcode are pushed onto int stack.
                    181:        *ipl is raised to 0x1d.
                    182:        *buserror could be due to:
                    183:        *non-existent memory
                    184:        *versabus timeout
                    185:        *uncorrectable memory
                    186:        *versabus error (BERR)
                    187:        *versabus parity error
                    188: 
                    189: */
                    190: SCBVEC(buserror):
                    191:        halt
                    192: 
                    193: /*
                    194:        *kernel stack not valid
                    195:        *happens only during the initiation of another exception or
                    196:        *interrupt.The process must be aborted.
                    197:        *pc & psl are pushed onto INTSTACK.
                    198:        * IPL is raised to 0x1f.
                    199:        *this routine calls _panic routine written in C which prints
                    200:        *the message & waits for the operator action.
                    201: */
                    202: 
                    203: SCBVEC(kspnotval):
                    204:        halt
                    205: /*     
                    206: * Trap and fault vector routines
                    207: */ 
                    208: #define        TRAP(a) pushl $a; brw alltraps
                    209: 
                    210: SCBVEC(prvinflt):
                    211:        halt
                    212: SCBVEC(resopflt):
                    213:        halt
                    214: SCBVEC(resadflt):
                    215:        halt
                    216: SCBVEC(bptflt):
                    217:        halt
                    218: SCBVEC(tracep):
                    219:        halt
                    220: SCBVEC(arithtrap):
                    221:        halt
                    222: SCBVEC(protflt):               /*access control violation*/
                    223:        halt
                    224: SCBVEC(transflt):
                    225:        halt
                    226: SCBVEC(alignflt):
                    227:        halt
                    228: 
                    229: alltraps:
                    230:        halt
                    231: /*     mfpr    $USP,-(sp)
                    232:        calls   $0*4+4,_trap
                    233:        mtpr    (sp)+,$USP
                    234:        incl    _cnt+V_TRAP
                    235: 
                    236:        movab   (sp),r12
                    237:        addl2   $12,r12
                    238:        movl    r12,sp          
                    239: 
                    240:        mtpr    $HIGH,$IPL
                    241:        rei
                    242: */
                    243: 
                    244: SCBVEC(kcall):                 /*kcall*/
                    245:        halt
                    246: /*
                    247:        pushl   $SYSCALL
                    248:        mfpr    $USP,-(sp)
                    249:        calls   $0*4+4,_syscall
                    250:        mtpr    (sp)+,$USP
                    251:        incl    _cnt+V_SYSCALL
                    252: 
                    253:        movab   (sp),r12
                    254:        addl2   $12,r12
                    255:        movl    r12,sp
                    256: 
                    257:        mtpr    $HIGH,$IPL
                    258:        rei
                    259: */
                    260: 
                    261: 

unix.superglobalmegacorp.com

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