anchor.diff:                 boundary.
   CACHE-MODE   - Select between :WRITE-BACK, :WRITE-THROUGH, :WRITE-COMBINING, and
                  :UNCACHED caching modes. Defaults to :WRITE-BACK.
  +ERRORP       - If true, then a normal Lisp error will be signalled if memory
  +               can't be allocated. If false, NIL will be returned on allocation
  +               failure instead.
   
   LENGTH is always internally rounded up to the nearest whole page and returned
   physical memory will always be page-aligned.
  
positive.code:   (update-persistent-sg-vec virtual-address sg-vec)
    (values))
  
  (defun alloc-sg-vec (length &key contiguous 32-bit)
    (cond ((or (<= length #x1000)
               contiguous)
           ;; This sg-vec will consist of a single entry, simple.
  
negative.code:                           (return))
                          (when (eql attempt 1)
                            ;; Can't get any smaller than this.
                            (when errorp
                              (error "Unable to allocate dma buffer of length ~D" length))
                            (return-from alloc-sg-vec nil))
                          (setf attempt (ceiling attempt 2)))
                       (decf n-frames-remaining attempt)
                       (incf n-entries)
  