added testbios for V2
[coreboot.git] / util / vgabios / pci-userspace.h
diff --git a/util/vgabios/pci-userspace.h b/util/vgabios/pci-userspace.h
new file mode 100644 (file)
index 0000000..0944330
--- /dev/null
@@ -0,0 +1,55 @@
+#include "pci.h"
+
+typedef unsigned long pciaddr_t;
+typedef u8 byte;
+typedef u16 word;
+
+struct pci_dev {
+       struct pci_dev *next;   /* Next device in the chain */
+       word bus;               /* Higher byte can select host bridges */
+       byte dev, func;         /* Device and function */
+
+       /* These fields are set by pci_fill_info() */
+       int known_fields;       /* Set of info fields already known */
+       word vendor_id, device_id;      /* Identity of the device */
+       int irq;                /* IRQ number */
+       pciaddr_t base_addr[6]; /* Base addresses */
+       pciaddr_t size[6];      /* Region sizes */
+       pciaddr_t rom_base_addr;        /* Expansion ROM base address */
+       pciaddr_t rom_size;     /* Expansion ROM size */
+
+       /* Fields used internally: */
+       void *access;
+       void *methods;
+       byte *cache;            /* Cached information */
+       int cache_len;
+       int hdrtype;            /* Direct methods: header type */
+       void *aux;              /* Auxillary data */
+};
+
+
+struct pci_filter {
+       int bus, slot, func;    /* -1 = ANY */
+       int vendor, device;
+};
+
+
+#define PCITAG struct pci_filter *
+#define pciVideoPtr struct pci_dev *
+
+extern int pciNumBuses;
+
+int pciInit(void);
+int pciExit(void);
+
+
+PCITAG findPci(unsigned short bx);
+u32 pciSlotBX(pciVideoPtr pvp);
+
+void pciWriteLong(PCITAG tag, u32 idx, u32 data);
+void pciWriteWord(PCITAG tag, u32 idx, u16 data);
+void pciWriteByte(PCITAG tag, u32 idx, u8 data);
+
+u32 pciReadLong(PCITAG tag, u32 idx);
+u16 pciReadWord(PCITAG tag, u32 idx);
+u8 pciReadByte(PCITAG tag, u32 idx);