anchor.diff:      ;; Start command 1.
       (setf (ahci-port-register ahci port +ahci-register-PxCI+) 1)
       ;; Wait for it... Wait for it...
  -    (sup:event-wait irq-latch)))
  +    (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.
  
positive.code:       (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))
          (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+))
  
negative.code:   command-list
    received-fis
    command-table
    irq-latch
    irq-timeout-timer
    irq-watcher
    atapi-p
    cdb-size
    lba48-capable
  