;;; MAP-ALLOCATED-OBJECTS
#!+gencgc
(progn
- (define-alien-type nil
+ (define-alien-type (struct page)
(struct page
- (flags unsigned-int)
- (gen int)
- (bytes-used int)
- (start long)))
+ (start long)
+ (bytes-used (unsigned 16))
+ (flags (unsigned 8))
+ (gen (signed 8))))
(declaim (inline find-page-index))
(define-alien-routine "find_page_index" long (index long))
(define-alien-variable "page_table"
(declare (type system-area-pointer start end))
(declare (optimize (speed 3) (safety 0)))
(let ((current start)
- (skip-tests-until-addr 0))
+ #!+gencgc (skip-tests-until-addr 0))
(labels ((maybe-finish-mapping ()
(unless (sap< current end)
(aver (sap= current end))
;; bitfields?
(let ((alloc-flag (ldb (byte 3 2)
(slot page 'flags)))
- (bytes-used (slot page 'bytes-used)))
+ (bytes-used (slot page 'bytes-used)))
;; If the page is not free and the current
;; pointer is still below the allocation offset
;; of the page