;;; -*- Mode:LISP; Package:SYSTEM-INTERNALS; Base:8 -*- ;;; definitions for QUANTUM-MAP stuff: ;;; allocations in the wired system tables area (which, out of randomness is named quantum-map) ;;; sizes are in pages (defconst %quantum-map-offset-in-tables 0) ; 32 pages (defconst %partition-table-offset-in-tables 32.) ; 1 page (defconst %quantum-swap-buffer-offset-in-tables 33.) ; 65 pages ;;; 24 pages free at 104 ;;; We need the quantum map before its area actually exists. It is temporarily put ;;; at this location, which is at the very end of the direct mapped bootstrap memory (defconst cold-wired-system-tables-base (* 800. 400)) ;last 100. pages of direct mapped memory ;;; fields of quantum map (defconst %%pq1-quantum-is-valid (byte 1 31.)) (defconst %%pq1-quantum-is-device (byte 1 30.)) (defconst %%pq1d-quantum-is-special-a-memory (byte 1 29.)) (defconst %%pq1d-page-fault-dispatch-field (byte 3 29.)) (defconst %%pq1d-quantum-nubus-words (byte 15. 0)) ;only 2^14 words in a quantum (defconst %%pq2d-quantum-l2mc-except-meta-bits (byte 8. 24.)) ;this and next are what (defconst %%pq2d-quantum-l2mpp (byte 24. 0)) ;to write in L2 map (defconst %%pq1m-page-out-copy-first (byte 1 29.)) (defconst %%pq1m-disk-swap-dispatch-field (byte 3 29.)) (defconst %%pq1m-page-offset (byte 20. 0)) ;field could occupy whole word but (defconst %%pq1m-all-but-page-offset (byte 12. 20.)) (defconst %%pq2m-boot-pages-allocated (byte 7 8.)) ;pages quantum occupies in LOD band (defconst %%pq2m-partition-number (byte 8. 0)) ;index into partition table. note: ;code assumes this starts at bit 0. ;;; other definitions used by quantum map code ;(defconst virtual-address-quantum-number (byte 11. 14.)) ;bits of an address which say which quantum ;;; use VMA-QUANTUM-BYTE instead. ;;; %address-space-quantum-size (defconst %%virtual-address-offset-in-quantum (byte 14. 0)) ;how many words into the quantum (defconst %%l2-map-control-all-but-meta-bits (byte 10. 6)) (defconst %%virtual-page-quantum-number (byte 11. 6)) (defconst %number-of-address-quanta (ash 1 12.)) ; 11 bits, 14-24 ;;; fields in the partition table (defconst %%pt1-valid (byte 1 31.)) ;this entry is valid (defconst %%pt1-unit-number (byte 3 28.)) ;;; eventually will need a bit which tells ALLOCATE-PAGE-SPACE-FOR-QUANTUM that this is a ;;; partition that it is allowed to use. (defconst %%pt1-paging-enable (byte 1 27.)) ;and here it is (defconst %%pt1-size (byte 27. 0)) (defconst %%pt2-offset (byte 31. 0)) ;the whole word for now