120a18093SBenjamin Fair #pragma once
220a18093SBenjamin Fair 
320a18093SBenjamin Fair #include "pciaccess.hpp"
420a18093SBenjamin Fair 
520a18093SBenjamin Fair #include <gmock/gmock.h>
620a18093SBenjamin Fair 
720a18093SBenjamin Fair namespace host_tool
820a18093SBenjamin Fair {
920a18093SBenjamin Fair 
1020a18093SBenjamin Fair class PciAccessMock : public PciAccess
1120a18093SBenjamin Fair {
1220a18093SBenjamin Fair   public:
13*f450486fSWilly Tu     MOCK_METHOD(struct pci_device_iterator*, pci_id_match_iterator_create,
14*f450486fSWilly Tu                 (const struct pci_id_match*), (const, override));
15*f450486fSWilly Tu     MOCK_METHOD(void, pci_iterator_destroy, (struct pci_device_iterator*),
16*f450486fSWilly Tu                 (const, override));
17*f450486fSWilly Tu     MOCK_METHOD(void, pci_device_enable, (struct pci_device*),
18*f450486fSWilly Tu                 (const, override));
19*f450486fSWilly Tu     MOCK_METHOD(struct pci_device*, pci_device_next,
20*f450486fSWilly Tu                 (struct pci_device_iterator*), (const, override));
21*f450486fSWilly Tu     MOCK_METHOD(int, pci_device_probe, (struct pci_device*), (const, override));
22*f450486fSWilly Tu     MOCK_METHOD(int, pci_device_cfg_read_u8,
23*f450486fSWilly Tu                 (struct pci_device * dev, std::uint8_t* data, pciaddr_t offset),
24*f450486fSWilly Tu                 (const, override));
25*f450486fSWilly Tu     MOCK_METHOD(int, pci_device_cfg_write_u8,
26*f450486fSWilly Tu                 (struct pci_device * dev, std::uint8_t data, pciaddr_t offset),
27*f450486fSWilly Tu                 (const, override));
28*f450486fSWilly Tu     MOCK_METHOD(int, pci_device_map_range,
29*f450486fSWilly Tu                 (struct pci_device*, pciaddr_t, pciaddr_t, unsigned, void**),
30*f450486fSWilly Tu                 (const, override));
31*f450486fSWilly Tu     MOCK_METHOD(int, pci_device_unmap_range,
32*f450486fSWilly Tu                 (struct pci_device*, void*, pciaddr_t), (const, override));
3320a18093SBenjamin Fair };
3420a18093SBenjamin Fair 
3520a18093SBenjamin Fair } // namespace host_tool
36