12 static constexpr uint32_t FirstLpi = 8192;
13 static constexpr size_t MaxMappings = 16;
17 uint64_t redistributorPhysical);
19 uint64_t messageAddress()
const;
20 bool mapDevice(
size_t slot, uint32_t deviceId, uint32_t lpi);
21 bool mapDeviceGroup(
const size_t* slots,
size_t count, uint32_t deviceId);
22 bool mappingActive(
size_t slot)
const;
23 bool unmapDevice(
size_t slot);
24 bool setEnabled(uint32_t lpi,
bool enabled);
34 bool allocateAligned(
MemoryRegion& region,
size_t size,
size_t alignment, uint64_t& physical,
35 uint8_t*& virtualAddress);
36 bool setupBaser(uint32_t type,
MemoryRegion& region,
size_t requiredEntries);
37 bool send(uint64_t word0, uint64_t word1, uint64_t word2);
48 Mapping m_Mappings[MaxMappings];
50 uintptr_t m_Redistributor;
51 uint64_t m_PhysicalBase;
53 uint8_t* m_CommandVirtual;
54 uint8_t* m_PropertyVirtual;
55 size_t m_CommandWrite;
57 uint32_t m_DeviceLimit;