Update of /project/movitz/cvsroot/movitz/losp In directory common-lisp.net:/tmp/cvs-serv32699
Modified Files: los0.lisp Log Message: Some cleanup regarding the segment-descriptor-table.
Date: Thu Aug 11 23:33:09 2005 Author: ffjeld
Index: movitz/losp/los0.lisp diff -u movitz/losp/los0.lisp:1.46 movitz/losp/los0.lisp:1.47 --- movitz/losp/los0.lisp:1.46 Fri Jun 10 00:21:08 2005 +++ movitz/losp/los0.lisp Thu Aug 11 23:33:08 2005 @@ -9,7 +9,7 @@ ;;;; Created at: Fri Dec 1 18:08:32 2000 ;;;; Distribution: See the accompanying file COPYING. ;;;; -;;;; $Id: los0.lisp,v 1.46 2005/06/09 22:21:08 ffjeld Exp $ +;;;; $Id: los0.lisp,v 1.47 2005/08/11 21:33:08 ffjeld Exp $ ;;;; ;;;;------------------------------------------------------------------
@@ -29,9 +29,10 @@ (require :lib/net/dhcp) (require :lib/repl)
-;; (require :ll-testing) (require :lib/threading)
+;; (require :lice-0.1/all) + (defpackage muerte.init (:nicknames #:los0) (:use #:common-lisp @@ -134,6 +135,7 @@ (format t "error: ~S ~S" c x)))) (error "This is an error. ~S" foo))))
+ (defun fooo (v w) (tagbody (print (block blurgh @@ -1317,9 +1319,24 @@
(defvar *segment-descriptor-table*)
+(defun format-segment-table (table &key (start 0) (end (truncate (length table) 2))) + (loop for i from start below end + as selector = (* i 8) + do (format t "~&~3X: base: #x~8,'0X, limit: #x~5,'0X, type-s-dpl-p: ~8,'0b, avl-x-db-g: ~4,'0b~%" + selector + (* 4 (segment-descriptor-base-location table selector)) + (segment-descriptor-limit table selector) + (segment-descriptor-type-s-dpl-p table selector) + (segment-descriptor-avl-x-db-g table selector))) + (values)) + +(defun memdump (start length) + (loop for addr upfrom start repeat length + collect (memref-int addr :type :unsigned-byte8)))
(defun genesis () ;; (install-shallow-binding) + (setf *debugger-function* #'los0-debugger) (let ((extended-memsize 0)) ;; Find out how much extended memory we have (setf (io-port #x70 :unsigned-byte8) #x18) @@ -1330,15 +1347,14 @@
(idt-init)
-;;; (setf *segment-descriptor-table* ; Ensure we have a GDT with 16 entries, in static-space. -;;; (muerte::install-global-segment-table -;;; (muerte::dump-global-segment-table :entries 16))) - + (setf *segment-descriptor-table* ; Ensure we have a GDT with 16 entries, in static-space. + (setf (global-segment-descriptor-table) + (muerte::dump-global-segment-table :entries 16))) + (install-los0-consing :kb-size 500) #+ignore (install-los0-consing :kb-size (max 50 (truncate (- extended-memsize 2048) 2))))
- (setf *debugger-function* #'los0-debugger) (clos-bootstrap) (setf *package* (find-package "INIT")) ;; (install-shallow-binding)