Export two more hardware trap utilities for the error handler.
authorGuillermo J. Rozas <edu/mit/csail/zurich/gjr>
Thu, 28 Jun 1990 18:09:44 +0000 (18:09 +0000)
committerGuillermo J. Rozas <edu/mit/csail/zurich/gjr>
Thu, 28 Jun 1990 18:09:44 +0000 (18:09 +0000)
v7/src/runtime/conpar.scm
v7/src/runtime/runtime.pkg
v8/src/runtime/conpar.scm
v8/src/runtime/runtime.pkg

index e8e72ee125205fbd9adaebb5f6cce870127f69c1..f57b6abbdddea72b5972a742514facc59bde05cb 100644 (file)
@@ -1,6 +1,6 @@
 #| -*-Scheme-*-
 
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/runtime/conpar.scm,v 14.14 1990/06/28 16:36:12 jinx Exp $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/runtime/conpar.scm,v 14.15 1990/06/28 18:09:25 jinx Exp $
 
 Copyright (c) 1988, 1989, 1990 Massachusetts Institute of Technology
 
@@ -625,10 +625,18 @@ MIT in each case. |#
       offset
       (heuristic (stream-cdr stream) (1+ offset))))
 
+(define (hardware-trap-frame? frame)
+  (and (stack-frame? frame)
+       (eq? (stack-frame/type frame)
+           stack-frame-type/hardware-trap)))
+
+(define (hardware-trap-frame/code frame)
+  (guarantee-hardware-trap-frame frame)
+  (let ((code (stack-frame/ref frame hardware-trap/code-index)))
+    (and (pair? code) (cdr code))))    
+
 (define (guarantee-hardware-trap-frame frame)
-  (if (or (not (stack-frame? frame))
-         (not (eq? (stack-frame/type frame)
-                   stack-frame-type/hardware-trap)))
+  (if (not (hardware-trap-frame? frame))
       (error "guarantee-hardware-trap-frame: invalid" frame)))
 \f
 (define (hardware-trap-frame/print-registers frame)
index 6d59bd61d2e74d2bea9f2d26a2d5713e9881c7e2..42152bff96f88eb47b26f381c0ae5113a54f9d7e 100644 (file)
@@ -1,6 +1,6 @@
 #| -*-Scheme-*-
 
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/runtime/runtime.pkg,v 14.69 1990/06/22 01:04:42 cph Exp $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/runtime/runtime.pkg,v 14.70 1990/06/28 18:09:44 jinx Exp $
 
 Copyright (c) 1988, 1989, 1990 Massachusetts Institute of Technology
 
@@ -297,9 +297,11 @@ MIT in each case. |#
   (export ()
          continuation->stack-frame
          continuation/first-subproblem
+         hardware-trap-frame?
          hardware-trap-frame/describe
          hardware-trap-frame/print-registers
          hardware-trap-frame/print-stack
+         hardware-trap-frame/code
          microcode-return/code->type
          stack-frame->continuation
          stack-frame-type/code
index 50264df1a82afaf5564310f55d0a98fd0ab399c7..a0ed15bac7079ad3189fcc6e323d0f51b25ca1e4 100644 (file)
@@ -1,6 +1,6 @@
 #| -*-Scheme-*-
 
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v8/src/runtime/conpar.scm,v 14.14 1990/06/28 16:36:12 jinx Exp $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v8/src/runtime/conpar.scm,v 14.15 1990/06/28 18:09:25 jinx Exp $
 
 Copyright (c) 1988, 1989, 1990 Massachusetts Institute of Technology
 
@@ -625,10 +625,18 @@ MIT in each case. |#
       offset
       (heuristic (stream-cdr stream) (1+ offset))))
 
+(define (hardware-trap-frame? frame)
+  (and (stack-frame? frame)
+       (eq? (stack-frame/type frame)
+           stack-frame-type/hardware-trap)))
+
+(define (hardware-trap-frame/code frame)
+  (guarantee-hardware-trap-frame frame)
+  (let ((code (stack-frame/ref frame hardware-trap/code-index)))
+    (and (pair? code) (cdr code))))    
+
 (define (guarantee-hardware-trap-frame frame)
-  (if (or (not (stack-frame? frame))
-         (not (eq? (stack-frame/type frame)
-                   stack-frame-type/hardware-trap)))
+  (if (not (hardware-trap-frame? frame))
       (error "guarantee-hardware-trap-frame: invalid" frame)))
 \f
 (define (hardware-trap-frame/print-registers frame)
index b86049c44204a0eabe9827d783eaf53212aad4e3..1ee3f609f34e77ae10aeff7d9782147994b44b57 100644 (file)
@@ -1,6 +1,6 @@
 #| -*-Scheme-*-
 
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v8/src/runtime/runtime.pkg,v 14.69 1990/06/22 01:04:42 cph Exp $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v8/src/runtime/runtime.pkg,v 14.70 1990/06/28 18:09:44 jinx Exp $
 
 Copyright (c) 1988, 1989, 1990 Massachusetts Institute of Technology
 
@@ -297,9 +297,11 @@ MIT in each case. |#
   (export ()
          continuation->stack-frame
          continuation/first-subproblem
+         hardware-trap-frame?
          hardware-trap-frame/describe
          hardware-trap-frame/print-registers
          hardware-trap-frame/print-stack
+         hardware-trap-frame/code
          microcode-return/code->type
          stack-frame->continuation
          stack-frame-type/code