-#define PCI_REG_VENDER 0x0
-#define PCI_REG_DEV 0x1
-#define PCI_REG_HDRTYPE 0x7
-
-#define PCI_ADDRESS(bus, dev, funct, reg) \
+#define PCI_REG_VENDOR_DEV 0
+#define PCI_REG_STATUS_CMD 0x4
+#define PCI_REG_BAR(offset) (0x10 + (offset)*4)
+
+#define PCI_DEV_VENDOR(x) ((x)&0xffff)
+#define PCI_DEV_DEVID(x) ((x) >> 16)
+#define PCI_INTR_IRQ(x) ((x)&0xff)
+#define PCI_INTR_PIN(x) (((x)&0xff00) >> 8)
+#define PCI_DEV_CLASS(x) ((x) >> 8)
+#define PCI_DEV_REV(x) (((x)&0xff))
+#define PCI_BUS_NUM(x) ((x >> 16) & 0xff)
+#define PCI_SLOT_NUM(x) ((x >> 11) & 0x1f)
+#define PCI_FUNCT_NUM(x) ((x >> 8) & 0x7)
+
+#define PCI_ADDRESS(bus, dev, funct) \