anchor.diff:    current-channel
     (irq-cvar (make-condition-variable "ATA IRQ Notifier"))
     irq-delivered
  -  hotunplug)
  +  hotunplug
  +  bounce-buffer)
   
   (defstruct (ata-device
                (:area :wired))
  
positive.code:   (setf *ata-devices* '()))
  
  (defun ata-pci-register (location)
    (let* ((prdt-page (allocate-physical-pages 1 "ATA PRDT page")))
      ;; Make sure to enable PCI bus mastering for this device.
      (setf (pci-config/16 location +pci-config-command+) (logior (pci-config/16 location +pci-config-command+)
                                                                  ;; Bit 2 is Bus Master bit.
  
negative.code: 
  (defun init-ata-controller (command-base control-base bus-master-register prdt-phys irq)
    (debug-print-line "New controller at " command-base " " control-base " " bus-master-register " " irq)
    (let* ((dma32-bounce-buffer (allocate-physical-pages 1 "ATA DMA bounce buffer" t))
           (controller (make-ata-controller :command command-base
                                            :control control-base
                                            :bus-master-register bus-master-register
                                            :prdt-phys prdt-phys
                                            :irq irq
                                            :bounce-buffer dma32-bounce-buffer)))
      ;; Disable IRQs on the controller and reset both drives.
      (setf (sys.int::io-port/8 (+ control-base +ata-register-device-control+))
            (logior +ata-srst+ +ata-nien+))
  