Annotation of cci/d/entry/evthandlers.s, revision 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:        rei
        !            56:  #/*
        !            57:  #     *console terminal receive interrupt
        !            58:  #*/
        !            59: 
        !            60: SCBVEC(cnrint):
        !            61:        halt
        !            62:  #/*
        !            63:  #     *console terminal transmit interrupt
        !            64:  #*/
        !            65: 
        !            66: SCBVEC(cnxint):
        !            67:        halt
        !            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.