diff options
Diffstat (limited to 'qemu/roms/SLOF/slof/fs/exception.fs')
-rw-r--r-- | qemu/roms/SLOF/slof/fs/exception.fs | 154 |
1 files changed, 0 insertions, 154 deletions
diff --git a/qemu/roms/SLOF/slof/fs/exception.fs b/qemu/roms/SLOF/slof/fs/exception.fs deleted file mode 100644 index dbf11fb46..000000000 --- a/qemu/roms/SLOF/slof/fs/exception.fs +++ /dev/null @@ -1,154 +0,0 @@ -\ ***************************************************************************** -\ * Copyright (c) 2004, 2008 IBM Corporation -\ * All rights reserved. -\ * This program and the accompanying materials -\ * are made available under the terms of the BSD License -\ * which accompanies this distribution, and is available at -\ * http://www.opensource.org/licenses/bsd-license.php -\ * -\ * Contributors: -\ * IBM Corporation - initial implementation -\ ****************************************************************************/ - -STRUCT - cell FIELD >r0 cell FIELD >r1 cell FIELD >r2 cell FIELD >r3 - cell FIELD >r4 cell FIELD >r5 cell FIELD >r6 cell FIELD >r7 - cell FIELD >r8 cell FIELD >r9 cell FIELD >r10 cell FIELD >r11 - cell FIELD >r12 cell FIELD >r13 cell FIELD >r14 cell FIELD >r15 - cell FIELD >r16 cell FIELD >r17 cell FIELD >r18 cell FIELD >r19 - cell FIELD >r20 cell FIELD >r21 cell FIELD >r22 cell FIELD >r23 - cell FIELD >r24 cell FIELD >r25 cell FIELD >r26 cell FIELD >r27 - cell FIELD >r28 cell FIELD >r29 cell FIELD >r30 cell FIELD >r31 - cell FIELD >cr cell FIELD >xer cell FIELD >lr cell FIELD >ctr - cell FIELD >srr0 cell FIELD >srr1 cell FIELD >dar cell FIELD >dsisr -CONSTANT ciregs-size - - - -: .16 10 0.r 3 spaces ; -: .8 8 spaces 8 0.r 3 spaces ; -: .4regs cr 4 0 DO dup @ .16 8 cells+ LOOP drop ; -: .fixed-regs - cr ." R0 .. R7 R8 .. R15 R16 .. R23 R24 .. R31" - dup 8 0 DO dup .4regs cell+ LOOP drop -; - -: .special-regs - cr ." CR / XER LR / CTR SRR0 / SRR1 DAR / DSISR" - cr dup >cr @ .8 dup >lr @ .16 dup >srr0 @ .16 dup >dar @ .16 - cr dup >xer @ .16 dup >ctr @ .16 dup >srr1 @ .16 >dsisr @ .8 -; - -: .regs - cr .fixed-regs - cr .special-regs - cr cr -; - -: .hw-exception ( reason-code exception-nr -- ) - ." ( " dup . ." ) " - CASE - 200 OF ." Machine Check" ENDOF - 300 OF ." Data Storage" ENDOF - 380 OF ." Data Segment" ENDOF - 400 OF ." Instruction Storage" ENDOF - 480 OF ." Instruction Segment" ENDOF - 500 OF ." External" ENDOF - 600 OF ." Alignment" ENDOF - 700 OF ." Program" ENDOF - 800 OF ." Floating-point unavailable" ENDOF - 900 OF ." Decrementer" ENDOF - 980 OF ." Hypervisor Decrementer" ENDOF - C00 OF ." System Call" ENDOF - D00 OF ." Trace" ENDOF - F00 OF ." Performance Monitor" ENDOF - F20 OF ." VMX Unavailable" ENDOF - 1200 OF ." System Error" ENDOF - 1600 OF ." Maintenance" ENDOF - 1800 OF ." Thermal" ENDOF - dup OF ." Unknown" ENDOF - ENDCASE - ." Exception [ " . ." ]" -; - -: .sw-exception ( exception-nr -- ) - ." Exception [ " . ." ] triggered by boot firmware." -; - -\ this word gets also called for non-hardware exceptions. -: be-hw-exception ( [reason-code] exception-nr -- ) - cr cr - dup 0> IF .hw-exception ELSE .sw-exception THEN - cr eregs .regs -; -' be-hw-exception to hw-exception-handler - -: (boot-exception-handler) ( x1...xn exception-nr -- x1...xn) - dup IF - dup 0 > IF - negate cp 9 emit ." : " type - ELSE - CASE - -6d OF cr ." W3411: Client application returned." cr ENDOF - -6c OF cr ." E3400: It was not possible to boot from any device " - ." specified in the VPD." cr - ENDOF - -6b OF cr ." E3410: Boot list successfully read from VPD " - ." but no useful information received." cr - ENDOF - -6a OF cr ." E3420: Boot list could not be read from VPD." cr - ENDOF - -69 OF - cr ." E3406: Client application returned an error" - abort"-str @ count dup IF - ." : " type cr - ELSE - ." ." cr - 2drop - THEN - ENDOF - -68 OF cr ." E3405: No such device" cr ENDOF - -67 OF cr ." E3404: Not a bootable device!" cr ENDOF - -66 OF cr ." E3408: Failed to claim memory for the executable" cr - ENDOF - -65 OF cr ." E3407: Load failed" cr ENDOF - -64 OF cr ." E3403: Bad executable: " abort"-str @ count type cr - ENDOF - -63 OF cr ." E3409: Unknown FORTH Word" cr ENDOF - -2 OF cr ." E3401: Aborting boot, " abort"-str @ count type cr - ENDOF - dup OF ." E3402: Aborting boot, internal error" cr ENDOF - ENDCASE - THEN - ELSE - drop - THEN -; - -' (boot-exception-handler) to boot-exception-handler - -: throw-error ( error-code "error-string" -- ) - skipws 0a parse rot throw -; - -\ Enable external interrupt in msr - -: enable-ext-int ( -- ) - msr@ 8000 or msr! -; - -\ Disable external interrupt in msr - -: disable-ext-int ( -- ) - msr@ 8000 not and msr! -; - -\ Generate external interrupt through Internal Interrupt Controller of BE - -: gen-ext-int ( -- ) - 7fffffff dec! \ Reset decrementer - enable-ext-int \ Enable interrupt - FF 20000508418 rx! \ Interrupt priority mask - 10 20000508410 rx! \ Interrupt priority -; - |