anchor.diff:  (defconstant +pci-bridge-secondary-status+  #x1E)
   
   (defconstant +pci-command-bus-master+ 2)
  +(defconstant +pci-command-interrupt-disable+ 10)
  +
  +(defconstant +pci-status-interrupt-status+ 3)
  +(defconstant +pci-status-capabilities-list+ 4)
  +
  +(defconstant +pci-capability-id-msi+ #x05)
   
   (sys.int::defglobal *pci-config-lock*)
   
  
positive.code:         (if position
              (values vname dname (svref subsystems (1+ position)))
              (values vname dname nil))))))
  
negative.code:   (setf *pci-devices* '()
          *pci-late-probe-devices* '())
    (add-deferred-boot-action 'pci-late-probe))
  
  (defun dump-pci-device-config-space (device)
    (let* ((vendor-id (pci-config/16 device +pci-config-vendorid+))
           (device-id (pci-config/16 device +pci-config-deviceid+))
           (base-class-code (pci-base-class device))
           (sub-class-code (pci-sub-class device))
           (programming-interface (pci-programming-interface device))
           (header-type (ldb (byte 7 0) (pci-config/8 device +pci-config-hdr-type+))))
      (multiple-value-bind (bus device-nr function)
          (pci-device-location device)
        (multiple-value-bind (vendor-name device-name)
            (pci-find-device-name vendor-id device-id)
          (debug-print-line "PCI:" bus ":" device-nr ":" function
                            " " vendor-id ":" device-id
                            " " vendor-name " - " device-name
                            " " base-class-code ":" sub-class-code ":" programming-interface
                            " " (pci-config/8 device +pci-config-revid+)
                            " " header-type)))
      (when (logbitp +pci-status-capabilities-list+
                     (pci-config/16 device +pci-config-status+))
        (loop
           with cap = (pci-config/8 device +pci-config-capabilities+)
           do
             (setf cap (logand cap (lognot 3))) ; Bottom 2 bits must be masked off.
             (when (zerop cap)
               (return))
             (let ((id (pci-config/8 device cap)))
               (case id
                 (#.+pci-capability-id-msi+
                  (debug-print-line "    " cap ": MSI " (pci-config/16 device (+ cap 2))))
                 (t
                  (debug-print-line "    " cap ": Unknown capability " id)))
               (setf cap (pci-config/8 device (1+ cap))))))))
  
  (defun pci-detect ()
    (setf (sys.int::io-port/32 +pci-config-address+) #x80000000)
  