[movitz-cvs] CVS update: movitz/losp/x86-pc/interrupt.lisp
Frode Vatvedt Fjeld
ffjeld at common-lisp.net
Tue Apr 6 10:37:53 UTC 2004
Update of /project/movitz/cvsroot/movitz/losp/x86-pc
In directory common-lisp.net:/tmp/cvs-serv8009
Modified Files:
interrupt.lisp
Log Message:
Added functions cli and sti, and minor edits.
Date: Tue Apr 6 06:37:52 2004
Author: ffjeld
Index: movitz/losp/x86-pc/interrupt.lisp
diff -u movitz/losp/x86-pc/interrupt.lisp:1.6 movitz/losp/x86-pc/interrupt.lisp:1.7
--- movitz/losp/x86-pc/interrupt.lisp:1.6 Sun Mar 28 08:35:45 2004
+++ movitz/losp/x86-pc/interrupt.lisp Tue Apr 6 06:37:52 2004
@@ -10,7 +10,7 @@
;;;; Author: Frode Vatvedt Fjeld <frodef at acm.org>
;;;; Created at: Fri May 4 18:08:50 2001
;;;;
-;;;; $Id: interrupt.lisp,v 1.6 2004/03/28 13:35:45 ffjeld Exp $
+;;;; $Id: interrupt.lisp,v 1.7 2004/04/06 10:37:52 ffjeld Exp $
;;;;
;;;;------------------------------------------------------------------
@@ -53,7 +53,7 @@
(setf (memref frame (* 4 (int-frame-index reg)) 0 type) x))
(define-primitive-function muerte::default-interrupt-trampoline ()
- "Default interrupt handler."
+ "Default first-stage interrupt handler."
#.(cl:list* 'with-inline-assembly '(:returns :nothing)
(cl:loop :for i :from 0 :to movitz::+idt-size+
:append (cl:if (cl:member i '(8 10 11 12 13 14 17))
@@ -80,7 +80,7 @@
;; 8: ebp
;; 4: esi
;; 0: edi
-
+
(:pushl (:esp 48)) ; EFLAGS
(:pushl :cs) ; push CS
(:call (:pc+ 0)) ; push EIP.
@@ -241,6 +241,8 @@
;; (print-dynamic-context); what's this?
(throw :debugger nil))
(112
+ (setf (%run-time-context-slot 'nursery-space)
+ (memref (%run-time-context-slot 'nursery-space) -6 3 :lisp))
(error "Out of memory. Please take out the garbage."))
(t (funcall (if (< 16 number 50) #'warn #'error)
"Exception occurred: ~D, EIP: ~@Z, EAX: ~@Z, ECX: ~@Z, ESI: ~@Z"
@@ -267,6 +269,13 @@
(setf (pic8259-irq-mask) #xfffe)
(with-inline-assembly (:returns :nothing) (:sti)))
+(defun cli ()
+ (with-inline-assembly (:returns :nothing)
+ (:cli)))
+
+(defun sti ()
+ (with-inline-assembly (:returns :nothing)
+ (:sti)))
(defun interrupt-handler (n)
(let ((vector (load-global-constant interrupt-handlers)))
More information about the Movitz-cvs
mailing list