summaryrefslogtreecommitdiff
path: root/src/pciaccess_private.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/pciaccess_private.h')
-rw-r--r--src/pciaccess_private.h22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/pciaccess_private.h b/src/pciaccess_private.h
index a9d8df0..77eb57b 100644
--- a/src/pciaccess_private.h
+++ b/src/pciaccess_private.h
@@ -62,6 +62,21 @@ struct pci_system_methods {
void (*enable)( struct pci_device *dev );
int (*boot_vga)( struct pci_device *dev );
int (*has_kernel_driver)( struct pci_device *dev );
+ struct pci_io_handle *(*open_device_io)( struct pci_io_handle *handle,
+ struct pci_device *dev, int bar,
+ pciaddr_t base, pciaddr_t size );
+ struct pci_io_handle *(*open_legacy_io)( struct pci_io_handle *handle,
+ struct pci_device *dev,
+ pciaddr_t base, pciaddr_t size );
+ void (*close_io)( struct pci_device *dev, struct pci_io_handle *handle );
+ uint32_t (*read32)( struct pci_io_handle *handle, uint32_t reg );
+ uint16_t (*read16)( struct pci_io_handle *handle, uint32_t reg );
+ uint8_t (*read8)( struct pci_io_handle *handle, uint32_t reg );
+ void (*write32)( struct pci_io_handle *handle, uint32_t reg,
+ uint32_t data );
+ void (*write16)( struct pci_io_handle *handle, uint32_t reg,
+ uint16_t data );
+ void (*write8)( struct pci_io_handle *handle, uint32_t reg, uint8_t data );
};
struct pci_device_mapping {
@@ -72,6 +87,12 @@ struct pci_device_mapping {
void *memory;
};
+struct pci_io_handle {
+ pciaddr_t base;
+ pciaddr_t size;
+ int fd;
+};
+
struct pci_device_private {
struct pci_device base;
const char * device_string;
@@ -146,3 +167,4 @@ extern int pci_system_netbsd_create( void );
extern int pci_system_openbsd_create( void );
extern void pci_system_openbsd_init_dev_mem( int );
extern int pci_system_solx_devfs_create( void );
+extern void pci_io_cleanup( void );