2 Simple wrapper functions and utility functions that access QEMU's modern CPU
3 hotplug register block.
5 These functions manipulate some of the registers described in
6 "docs/specs/acpi_cpu_hotplug.txt" in the QEMU source. IO Ports are accessed
7 via EFI_MM_CPU_IO_PROTOCOL. If a protocol call fails, these functions don't
10 Copyright (c) 2020, Red Hat, Inc.
12 SPDX-License-Identifier: BSD-2-Clause-Patent
18 #include <Protocol/MmCpuIo.h> // EFI_MM_CPU_IO_PROTOCOL
19 #include <Uefi/UefiBaseType.h> // EFI_STATUS
21 #include "ApicId.h" // APIC_ID
24 QemuCpuhpReadCommandData2 (
25 IN CONST EFI_MM_CPU_IO_PROTOCOL
*MmCpuIo
29 QemuCpuhpReadCpuStatus (
30 IN CONST EFI_MM_CPU_IO_PROTOCOL
*MmCpuIo
34 QemuCpuhpReadCommandData (
35 IN CONST EFI_MM_CPU_IO_PROTOCOL
*MmCpuIo
39 QemuCpuhpWriteCpuSelector (
40 IN CONST EFI_MM_CPU_IO_PROTOCOL
*MmCpuIo
,
45 QemuCpuhpWriteCommand (
46 IN CONST EFI_MM_CPU_IO_PROTOCOL
*MmCpuIo
,
51 QemuCpuhpCollectApicIds (
52 IN CONST EFI_MM_CPU_IO_PROTOCOL
*MmCpuIo
,
53 IN UINT32 PossibleCpuCount
,
54 IN UINT32 ApicIdCount
,
55 OUT APIC_ID
*PluggedApicIds
,
56 OUT UINT32
*PluggedCount
,
57 OUT APIC_ID
*ToUnplugApicIds
,
58 OUT UINT32
*ToUnplugCount
61 #endif // QEMU_CPUHP_H_