anchor.diff:        (setf (svref (ahci-ports ahci) i) nil)
         (when (logbitp i (ahci-global-register ahci +ahci-register-PI+))
           (sup:debug-print-line "Port " i)
  -        (setf (svref (ahci-ports ahci) i) (make-ahci-port :ahci ahci
  -                                                          :id i))
  +        (let* ((port (make-ahci-port :ahci ahci :id i))
  +               (irq-latch (sup:make-event :name port))
  +               (irq-timeout-timer (sup:make-timer :name port))
  +               (irq-watcher (sup:make-watcher :name port)))
  +          (setf (svref (ahci-ports ahci) i) port)
  +          ;; Set up a watcher with a timer to deal with timeouts waiting for IRQs
  +          (setf (ahci-port-irq-latch port) irq-latch
  +                (ahci-port-irq-timeout-timer port) irq-timeout-timer
  +                (ahci-port-irq-watcher port) irq-watcher)
  +          (sup:watcher-add-object irq-latch irq-watcher)
  +          (sup:watcher-add-object irq-timeout-timer irq-watcher))
           (ahci-initialize-port ahci i)))
       ;; Port interrupts cleared, now clear HBA interrupts.
       (setf (ahci-global-register ahci +ahci-register-IS+) (ahci-global-register ahci +ahci-register-IS+))
  
positive.code:   command-list
    received-fis
    command-table
    (irq-latch (sup:make-event :name "AHCI Port IRQ Notifier"))
    atapi-p
    cdb-size
    lba48-capable
  
negative.code:     ;; Start command 1.
      (setf (ahci-port-register ahci port +ahci-register-PxCI+) 1)
      ;; Wait for it... Wait for it...
      (sup:timer-arm 30 irq-timeout-timer)
      (sup:watcher-wait irq-watcher)
      (when (not (sup:event-state irq-latch))
        (sup:ensure (sup:timer-expired-p irq-timeout-timer))
        ;; FIXME: Do something better than this.
        (sup:debug-print-line "*** AHCI-RUN-COMMAND TIMEOUT EXPIRED! ***"))
      ;; -absolute is non-consing
      (sup:timer-disarm-absolute irq-timeout-timer)))
  
  (defun ahci-initialize-port (ahci port)
    ;; Disable Command List processing and FIS RX.
  