Go to the documentation of this file.
38 #ifndef __ARCH_X86_BIOS_ACPI_HH__
39 #define __ARCH_X86_BIOS_ACPI_HH__
43 #include <type_traits>
48 #include "debug/ACPI.hh"
49 #include "params/X86ACPIMadt.hh"
50 #include "params/X86ACPIMadtIOAPIC.hh"
51 #include "params/X86ACPIMadtIntSourceOverride.hh"
52 #include "params/X86ACPIMadtLAPIC.hh"
53 #include "params/X86ACPIMadtLAPICOverride.hh"
54 #include "params/X86ACPIMadtNMI.hh"
55 #include "params/X86ACPIMadtRecord.hh"
56 #include "params/X86ACPIRSDP.hh"
57 #include "params/X86ACPIRSDT.hh"
58 #include "params/X86ACPISysDescTable.hh"
59 #include "params/X86ACPIXSDT.hh"
105 uint8_t checksum = 0;
108 uint32_t rsdtAddress = 0;
110 static_assert(std::is_trivially_copyable_v<MemR0>,
111 "Type not suitable for memcpy.");
117 uint64_t xsdtAddress = 0;
118 uint8_t extendedChecksum = 0;
119 uint8_t _reserved[3] = {};
121 static_assert(std::is_trivially_copyable_v<Mem>,
122 "Type not suitable for memcpy,");
136 PARAMS(X86ACPISysDescTable);
144 uint8_t checksum = 0;
146 char oemTableID[8] = {};
147 uint32_t oemRevision = 0;
148 uint32_t creatorID = 0;
149 uint32_t creatorRevision = 0;
151 static_assert(std::is_trivially_copyable_v<Mem>,
152 "Type not suitable for memcpy.");
185 RXSDT(
const Params&
p,
const char* _signature, uint8_t _revision);
211 PARAMS(X86ACPIMadtRecord);
218 static_assert(std::is_trivially_copyable_v<Mem>,
219 "Type not suitable for memcpy.");
244 uint8_t acpiProcessorId = 0;
248 static_assert(std::is_trivially_copyable_v<Mem>,
249 "Type not suitable for memcpy.");
260 PARAMS(X86ACPIMadtIOAPIC);
264 uint8_t ioApicId = 0;
265 uint8_t _reserved = 0;
266 uint32_t ioApicAddress = 0;
267 uint32_t intBase = 0;
269 static_assert(std::is_trivially_copyable_v<Mem>,
270 "Type not suitable for memcpy.");
281 PARAMS(X86ACPIMadtIntSourceOverride);
285 uint8_t busSource = 0;
286 uint8_t irqSource = 0;
287 uint32_t globalSystemInterrupt = 0;
290 static_assert(std::is_trivially_copyable_v<Mem>,
291 "Type not suitable for memcpy.");
306 uint8_t acpiProcessorId = 0;
310 static_assert(std::is_trivially_copyable_v<Mem>,
311 "Type not suitable for memcpy.");
322 PARAMS(X86ACPIMadtLAPICOverride);
326 uint16_t _reserved = 0;
327 uint64_t localAPICAddress = 0;
329 static_assert(std::is_trivially_copyable_v<Mem>,
330 "Type not suitable for memcpy.");
345 uint32_t localAPICAddress = 0;
348 static_assert(std::is_trivially_copyable_v<Mem>,
349 "Type not suitable for memcpy.");
367 #endif // __ARCH_X86_BIOS_E820_HH__
void prepareBuf(std::vector< uint8_t > &mem) const override
SysDescTable(const Params &p, const char *_signature, uint8_t _revision)
LinearAllocator(Addr begin, Addr end=0)
std::vector< uint8_t > prepare() const
Addr alloc(std::size_t size, unsigned align) override
Addr writeBuf(PortProxy &phys_proxy, Allocator &alloc, std::vector< uint8_t > &mem) const override
std::vector< Record * > records
Bitfield< 23, 16 > revision
virtual void prepareBuf(std::vector< uint8_t > &mem) const =0
static const char signature[]
PARAMS(X86ACPIMadtLAPICOverride)
RXSDT(const Params &p, const char *_signature, uint8_t _revision)
void align(const scfx_rep &lhs, const scfx_rep &rhs, int &new_wp, int &len_mant, scfx_mant_ref &lhs_mant, scfx_mant_ref &rhs_mant)
PARAMS(X86ACPIMadtRecord)
Addr write(PortProxy &phys_proxy, Allocator &alloc) const
Addr write(PortProxy &phys_proxy, Allocator &alloc) const
virtual Addr alloc(std::size_t size, unsigned align=1)=0
void prepareBuf(std::vector< uint8_t > &mem) const override
PARAMS(X86ACPISysDescTable)
This object is a proxy for a port or other object which implements the functional response protocol,...
Abstract superclass for simulation objects.
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
void prepareBuf(std::vector< uint8_t > &mem) const override
LAPICOverride(const Params &p)
std::vector< SysDescTable * > entries
Record(const Params &p, uint8_t _type)
virtual Addr writeBuf(PortProxy &phys_proxy, Allocator &alloc, std::vector< uint8_t > &mem) const =0
void prepareBuf(std::vector< uint8_t > &mem) const override
Addr writeBuf(PortProxy &phys_proxy, Allocator &alloc, std::vector< uint8_t > &mem) const override
IntSourceOverride(const Params &p)
Reference material can be found at the JEDEC website: UFS standard http://www.jedec....
PARAMS(X86ACPIMadtIntSourceOverride)
PARAMS(X86ACPIMadtIOAPIC)
void prepareBuf(std::vector< uint8_t > &mem) const override
Generated on Sun Jul 30 2023 01:56:50 for gem5 by doxygen 1.8.17