-clib_error_t *vlib_pci_map_resource (vlib_pci_device_t * dev, u32 resource,
- void **result);
-
-clib_error_t *vlib_pci_map_resource_fixed (vlib_pci_device_t * dev,
- u32 resource, u8 * addr,
- void **result);
-
-vlib_pci_device_t *vlib_get_pci_device (vlib_pci_addr_t * addr);
-/* Free's device. */
-void vlib_pci_free_device (vlib_pci_device_t * dev);
+clib_error_t *vlib_pci_device_open (vlib_main_t * vm, vlib_pci_addr_t * addr,
+ pci_device_id_t ids[],
+ vlib_pci_dev_handle_t * handle);
+void vlib_pci_device_close (vlib_main_t * vm, vlib_pci_dev_handle_t h);
+clib_error_t *vlib_pci_map_region (vlib_main_t * vm, vlib_pci_dev_handle_t h,
+ u32 resource, void **result);
+clib_error_t *vlib_pci_map_region_fixed (vlib_main_t * vm,
+ vlib_pci_dev_handle_t h,
+ u32 resource, u8 * addr,
+ void **result);
+clib_error_t *vlib_pci_io_region (vlib_main_t * vm, vlib_pci_dev_handle_t h,
+ u32 resource);
+clib_error_t *vlib_pci_register_intx_handler (vlib_main_t * vm,
+ vlib_pci_dev_handle_t h,
+ pci_intx_handler_function_t *
+ intx_handler);
+clib_error_t *vlib_pci_register_msix_handler (vlib_main_t * vm,
+ vlib_pci_dev_handle_t h,
+ u32 start, u32 count,
+ pci_msix_handler_function_t *
+ msix_handler);
+clib_error_t *vlib_pci_enable_msix_irq (vlib_main_t * vm,
+ vlib_pci_dev_handle_t h, u16 start,
+ u16 count);
+clib_error_t *vlib_pci_disable_msix_irq (vlib_main_t * vm,
+ vlib_pci_dev_handle_t h, u16 start,
+ u16 count);
+clib_error_t *vlib_pci_map_dma (vlib_main_t * vm, vlib_pci_dev_handle_t h,
+ void *ptr);
+
+int vlib_pci_supports_virtual_addr_dma (vlib_main_t * vm,
+ vlib_pci_dev_handle_t h);