;;; -*- Mode:LISP; Package:FILE-SYSTEM; Base:10 -*- (defun MAKE-SCROLLABLE-MAP-DESCRIPTION (file &aux map (item-list (list nil))) (setq map (file-map file)) (nconc item-list (make-item (format nil "~&~S maps out the following blocks:" map))) (nconc item-list (make-item (format nil "~2@TIndex~3@TLocation~7@TSize~3@TStatus"))) (let ((nbits 0)) (dotimes (i (map-nblocks map)) (nconc item-list (make-item (format nil "~6O: ~10O ~10O ~[Free~;Reserved~;Used~;Bad~]" i (map-block-location map i) (map-block-size map i) (aref page-usage-table (map-block-location map i))))) (incf nbits (map-block-size map i))) (nconc item-list (make-item (format nil "Total of ~D block~:P, ~D bit~:P." (map-nblocks map) nbits)))) item-list) (defun MAKE-ITEM (string) (list (tv:scroll-parse-item string))) (defun SAFE-PATHNAME-EQUAL (path1 path2) (and (typep path1 'lm-pathname) (typep path2 'lm-pathname) (pathname-equal path1 path2))) ;(DEFUN DESCRIBE-MAP (MAP &OPTIONAL (STREAM STANDARD-OUTPUT)) ; (FORMAT STREAM "~&~S maps out the following blocks:~@ ;~2@TIndex~3@TLocation~7@TSize~3@TStatus~%" MAP) ; (LET ((NBITS 0)) ; (DOTIMES (I (MAP-NBLOCKS MAP)) ; (FORMAT STREAM "~6O: ~10O ~10O ~[Free~;Reserved~;Used~;Bad~]~%" ; I (MAP-BLOCK-LOCATION MAP I) (MAP-BLOCK-SIZE MAP I) ; (setq *dbg-status* (AREF PAGE-USAGE-TABLE (MAP-BLOCK-LOCATION MAP I)))) ; (INCF NBITS (MAP-BLOCK-SIZE MAP I))) ; (FORMAT STREAM "~%Total of ~D block~:P, ~D bit~:P.~%" ; (MAP-NBLOCKS MAP) ; NBITS))) ;(DEFUN DESCRIBE-MAP (MAP &OPTIONAL (STREAM STANDARD-OUTPUT)) ; (FORMAT STREAM "~&~S maps out the following blocks:~@ ;~2@TIndex~3@TLocation~7@TSize~3@TStatus~%" MAP) ; (LET ((NBITS 0)) ; (DOTIMES (I (MAP-NBLOCKS MAP)) ; (FORMAT STREAM "~6O: ~10O ~10O ~[Free~;Reserved~;Used~;Bad~]~%" ; I (MAP-BLOCK-LOCATION MAP I) (MAP-BLOCK-SIZE MAP I) ; (AREF PAGE-USAGE-TABLE (MAP-BLOCK-LOCATION MAP I))) ; (INCF NBITS (MAP-BLOCK-SIZE MAP I))) ; (FORMAT STREAM "~%Total of ~D block~:P, ~D bit~:P.~%" ; (MAP-NBLOCKS MAP) ; NBITS)))