/** @file
  Macros for accessing QEMU's CPU hotplug register block.

  Copyright (C) 2019, Red Hat, Inc.

  SPDX-License-Identifier: BSD-2-Clause-Patent

  @par Specification Reference:

  - "docs/specs/acpi_cpu_hotplug.txt" in the QEMU source tree.

    The original (now "legacy") CPU hotplug interface appeared in QEMU v1.5.0.
    The new ("modern") hotplug interface appeared in QEMU v2.7.0.

    The macros in this header file map to the minimal subset of the modern
    interface that OVMF needs.
**/

#ifndef QEMU_CPU_HOTPLUG_H_
#define QEMU_CPU_HOTPLUG_H_

#include <Base.h>

//
// Each register offset is:
// - relative to the board-dependent IO base address of the register block,
// - named QEMU_CPUHP_(R|W|RW)_*, according to the possible access modes of the
//   register,
// - followed by distinguished bitmasks or values in the register.
//
#define QEMU_CPUHP_R_CMD_DATA2  0x0

#define QEMU_CPUHP_R_CPU_STAT      0x4
#define QEMU_CPUHP_STAT_ENABLED    BIT0
#define QEMU_CPUHP_STAT_INSERT     BIT1
#define QEMU_CPUHP_STAT_REMOVE     BIT2
#define QEMU_CPUHP_STAT_EJECT      BIT3
#define QEMU_CPUHP_STAT_FW_REMOVE  BIT4

#define QEMU_CPUHP_RW_CMD_DATA  0x8

#define QEMU_CPUHP_W_CPU_SEL  0x0

#define QEMU_CPUHP_W_CMD            0x5
#define QEMU_CPUHP_CMD_GET_PENDING  0x0
#define QEMU_CPUHP_CMD_GET_ARCH_ID  0x3

#endif // QEMU_CPU_HOTPLUG_H_
