vcpu_state: fix build errors with -std=gnu++20

Issue #4872
Issue #4871
Fixes #4878
This commit is contained in:
Christian Helmuth 2023-05-16 13:33:26 +02:00
parent 058990de48
commit bfecea9001

View File

@ -47,6 +47,8 @@ class Genode::Vcpu_state
public: public:
Vcpu_state() = default;
template <typename T> template <typename T>
class Register : Noncopyable class Register : Noncopyable
{ {
@ -94,85 +96,85 @@ class Genode::Vcpu_state
addr_t base; addr_t base;
}; };
Register<addr_t> ax; Register<addr_t> ax { };
Register<addr_t> cx; Register<addr_t> cx { };
Register<addr_t> dx; Register<addr_t> dx { };
Register<addr_t> bx; Register<addr_t> bx { };
Register<addr_t> bp; Register<addr_t> bp { };
Register<addr_t> si; Register<addr_t> si { };
Register<addr_t> di; Register<addr_t> di { };
Register<addr_t> sp; Register<addr_t> sp { };
Register<addr_t> ip; Register<addr_t> ip { };
Register<addr_t> ip_len; Register<addr_t> ip_len { };
Register<addr_t> flags; Register<addr_t> flags { };
Register<Segment> es; Register<Segment> es { };
Register<Segment> ds; Register<Segment> ds { };
Register<Segment> fs; Register<Segment> fs { };
Register<Segment> gs; Register<Segment> gs { };
Register<Segment> cs; Register<Segment> cs { };
Register<Segment> ss; Register<Segment> ss { };
Register<Segment> tr; Register<Segment> tr { };
Register<Segment> ldtr; Register<Segment> ldtr { };
Register<Range> gdtr; Register<Range> gdtr { };
Register<Range> idtr; Register<Range> idtr { };
Register<addr_t> cr0; Register<addr_t> cr0 { };
Register<addr_t> cr2; Register<addr_t> cr2 { };
Register<addr_t> cr3; Register<addr_t> cr3 { };
Register<addr_t> cr4; Register<addr_t> cr4 { };
Register<addr_t> dr7; Register<addr_t> dr7 { };
Register<addr_t> sysenter_ip; Register<addr_t> sysenter_ip { };
Register<addr_t> sysenter_sp; Register<addr_t> sysenter_sp { };
Register<addr_t> sysenter_cs; Register<addr_t> sysenter_cs { };
Register<uint64_t> qual_primary; Register<uint64_t> qual_primary { };
Register<uint64_t> qual_secondary; Register<uint64_t> qual_secondary { };
Register<uint32_t> ctrl_primary; Register<uint32_t> ctrl_primary { };
Register<uint32_t> ctrl_secondary; Register<uint32_t> ctrl_secondary { };
Register<uint32_t> inj_info; Register<uint32_t> inj_info { };
Register<uint32_t> inj_error; Register<uint32_t> inj_error { };
Register<uint32_t> intr_state; Register<uint32_t> intr_state { };
Register<uint32_t> actv_state; Register<uint32_t> actv_state { };
Register<uint64_t> tsc; Register<uint64_t> tsc { };
Register<uint64_t> tsc_offset; Register<uint64_t> tsc_offset { };
Register<uint64_t> tsc_aux; Register<uint64_t> tsc_aux { };
Register<addr_t> efer; Register<addr_t> efer { };
Register<uint64_t> pdpte_0; Register<uint64_t> pdpte_0 { };
Register<uint64_t> pdpte_1; Register<uint64_t> pdpte_1 { };
Register<uint64_t> pdpte_2; Register<uint64_t> pdpte_2 { };
Register<uint64_t> pdpte_3; Register<uint64_t> pdpte_3 { };
Register<uint64_t> r8; Register<uint64_t> r8 { };
Register<uint64_t> r9; Register<uint64_t> r9 { };
Register<uint64_t> r10; Register<uint64_t> r10 { };
Register<uint64_t> r11; Register<uint64_t> r11 { };
Register<uint64_t> r12; Register<uint64_t> r12 { };
Register<uint64_t> r13; Register<uint64_t> r13 { };
Register<uint64_t> r14; Register<uint64_t> r14 { };
Register<uint64_t> r15; Register<uint64_t> r15 { };
Register<uint64_t> star; Register<uint64_t> star { };
Register<uint64_t> lstar; Register<uint64_t> lstar { };
Register<uint64_t> cstar; Register<uint64_t> cstar { };
Register<uint64_t> fmask; Register<uint64_t> fmask { };
Register<uint64_t> kernel_gs_base; Register<uint64_t> kernel_gs_base { };
Register<uint32_t> tpr; Register<uint32_t> tpr { };
Register<uint32_t> tpr_threshold; Register<uint32_t> tpr_threshold { };
unsigned exit_reason; unsigned exit_reason { };
class Fpu : Noncopyable class Fpu : Noncopyable
{ {
@ -216,7 +218,7 @@ class Genode::Vcpu_state
} }
}; };
Fpu fpu __attribute__((aligned(16))); Fpu fpu __attribute__((aligned(16))) { };
/* /*
* Registers transfered by hypervisor from guest on VM exit are charged. * Registers transfered by hypervisor from guest on VM exit are charged.