anchor.diff:                   ;; Mark read-only.
                    (setf (sys.int::memref-unsigned-byte-64 pte 0) (logand (sys.int::memref-unsigned-byte-64 pte 0)
                                                                           (lognot +page-table-write+))))))))
  -    ;; Flush TLB.
  -    (setf (sys.int::%cr3) (sys.int::%cr3))))
  +    (flush-tlb)))
   
   (defun wait-for-page (address)
     #+(or)(debug-print-line "WFP " address)
  
positive.code:             (setf (sys.int::memref-unsigned-byte-64 cr3 other-pml4e) (logior (sys.int::memref-unsigned-byte-64 cr3 pml4e)
                                                                               (logand (sys.int::memref-unsigned-byte-64 cr3 other-pml4e)
                                                                                       +page-table-accessed+)))))))
      ;; Flush TLB.
      (setf (sys.int::%cr3) (sys.int::%cr3)))
    t)
  
  (defun wait-for-page-via-interrupt (interrupt-frame address)
  
negative.code:         (when (and pte (logtest +page-table-present+ (sys.int::memref-unsigned-byte-64 pte 0)))
            (release-vm-page (ash (sys.int::memref-unsigned-byte-64 pte 0) -12))
            (setf (sys.int::memref-unsigned-byte-64 pte 0) 0))))
      (flush-tlb)))
  
  (defun protect-memory-range (base length flags)
    (assert (zerop (logand (logior base length) #xFFF)) () "Range not page aligned.")
  