Annotation of cci/d/io/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:  #
                     56:  #     Timer interrupt
                     57:  #
                     58:        rei
                     59: 
                     60: SCBVEC(cnrint):
                     61:        halt
                     62:  #/*
                     63:  #     *console terminal transmit interrupt
                     64:  #*/
                     65: 
                     66: SCBVEC(cnxint):
                     67:        rei
                     68:  #/*
                     69:  #     *software generated interrupts
                     70:  #*/
                     71: 
                     72: SCBVEC(s15):
                     73:        halt
                     74:  #/*
                     75:  #     *software generated interrupts
                     76:  #*/
                     77: 
                     78: SCBVEC(s14):
                     79:        halt
                     80:  #/*
                     81:  #     *software generated interrupts
                     82:  #*/
                     83: 
                     84: SCBVEC(s13):
                     85:        halt
                     86:  #/*
                     87:  #     *software generated interrupts
                     88:  #*/
                     89: 
                     90: SCBVEC(s12):
                     91:        halt
                     92:  #/*
                     93:  #     *software generated interrupts
                     94:  #*/
                     95: 
                     96: SCBVEC(s11):
                     97:        halt
                     98:  #/*
                     99:  #     *software generated interrupts
                    100:  #*/
                    101: 
                    102: SCBVEC(s10):
                    103:        halt
                    104:  #/*
                    105:  #     *software generated interrupts
                    106:  #*/
                    107: 
                    108: SCBVEC(s9):
                    109:        halt
                    110:  #/*
                    111:  #     *software generated interrupts
                    112:  #*/
                    113: 
                    114: SCBVEC(s8):
                    115:        halt
                    116:  #/*
                    117:  #     *software generated interrupts
                    118:  #*/
                    119: 
                    120: SCBVEC(s7):
                    121:        halt
                    122:  #/*
                    123:  #     *software generated interrupts
                    124:  #*/
                    125: 
                    126: SCBVEC(s6):
                    127:        halt
                    128:  #/*
                    129:  #     *software generated interrupts
                    130:  #*/
                    131: 
                    132: SCBVEC(s5):
                    133:        halt
                    134:  #/*
                    135:  #     *software generated interrupts
                    136:  #*/
                    137: 
                    138: SCBVEC(s4):
                    139:        halt
                    140:  #/*
                    141:  #     *software generated interrupts
                    142:  #*/
                    143: 
                    144: SCBVEC(s3):
                    145:        halt
                    146:  #/*
                    147:  #     *software generated interrupts
                    148:  #*/
                    149: 
                    150: SCBVEC(s2):
                    151:        halt
                    152:  #/*
                    153:  #     *software generated interrupts
                    154:  #*/
                    155: 
                    156: SCBVEC(s1):
                    157:        halt
                    158: 
                    159:  #/*
                    160:  #     *io interrupt
                    161:  #*/
                    162: 
                    163: SCBVEC(iovec14):
                    164:        halt
                    165: SCBVEC(iovec15):
                    166:        halt
                    167: SCBVEC(iovec16):
                    168:        halt
                    169: SCBVEC(iovec17):
                    170:        halt
                    171: 
                    172:  #/*   
                    173:  #     *EXCEPTIONS
                    174:  #*/
                    175: 
                    176:  #/*
                    177:  #
                    178:  #     *buserror
                    179:  #     *psl, pc, and errorcode are pushed onto int stack.
                    180:  #     *ipl is raised to 0x1d.
                    181:  #     *buserror could be due to:
                    182:  #     *non-existent memory
                    183:  #     *versabus timeout
                    184:  #     *uncorrectable memory
                    185:  #     *versabus error (BERR)
                    186:  #     *versabus parity error
                    187:  #
                    188:  #*/
                    189: SCBVEC(buserror):
                    190:        halt
                    191: 
                    192:  #/*
                    193:  #     *kernel stack not valid
                    194:  #     *happens only during the initiation of another exception or
                    195:  #     *interrupt.The process must be aborted.
                    196:  #     *pc & psl are pushed onto INTSTACK.
                    197:  #     * IPL is raised to 0x1f.
                    198:  #     *this routine calls _panic routine written in C which prints
                    199:  #     *the message & waits for the operator action.
                    200:  #*/
                    201: 
                    202: SCBVEC(kspnotval):
                    203:        halt
                    204:  #/*   
                    205:  #* Trap and fault vector routines
                    206:  #*/ 
                    207: #define        TRAP(a) pushl $a; brw alltraps
                    208: 
                    209: SCBVEC(prvinflt):
                    210:        halt
                    211: SCBVEC(resopflt):
                    212:        halt
                    213: SCBVEC(resadflt):
                    214:        halt
                    215: SCBVEC(bptflt):
                    216:        halt
                    217: SCBVEC(tracep):
                    218:        halt
                    219: SCBVEC(arithtrap):
                    220:        halt
                    221: SCBVEC(protflt):               /*access control violation*/
                    222:        halt
                    223: SCBVEC(transflt):
                    224:        halt
                    225: SCBVEC(alignflt):
                    226:        halt
                    227: 
                    228: alltraps:
                    229:        halt
                    230:  #/*   mfpr    $USP,-(sp)
                    231:  #     calls   $0*4+4,_trap
                    232:  #     mtpr    (sp)+,$USP
                    233:  #     incl    _cnt+V_TRAP
                    234:  #
                    235:  #     movab   (sp),r12
                    236:  #     addl2   $12,r12
                    237:  #     movl    r12,sp          
                    238:  #
                    239:  #     mtpr    $HIGH,$IPL
                    240:  #     rei
                    241:  #*/
                    242: 
                    243: SCBVEC(kcall):                 /*kcall*/
                    244:        halt
                    245:  #/*
                    246:  #     pushl   $SYSCALL
                    247:  #     mfpr    $USP,-(sp)
                    248:  #     calls   $0*4+4,_syscall
                    249:  #     mtpr    (sp)+,$USP
                    250:  #     incl    _cnt+V_SYSCALL
                    251:  #
                    252:  #     movab   (sp),r12
                    253:  #     addl2   $12,r12
                    254:  #     movl    r12,sp
                    255:  #
                    256:  #     mtpr    $HIGH,$IPL
                    257:  #     rei
                    258:  #*/
                    259: 
                    260: 

unix.superglobalmegacorp.com

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