// SPDX-License-Identifier: GPL-2.0-only /* * Copyright (c) 2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved */ #ifndef ACPI_GENERIC_INITIATOR_H #define ACPI_GENERIC_INITIATOR_H #include "qom/object_interfaces.h" #define TYPE_ACPI_GENERIC_INITIATOR "acpi-generic-initiator" typedef struct AcpiGenericInitiator { /* private */ Object parent; /* public */ char *pci_dev; uint16_t node; } AcpiGenericInitiator; /* * ACPI 6.3: * Table 5-81 Flags – Generic Initiator Affinity Structure */ typedef enum { /* * If clear, the OSPM ignores the contents of the Generic * Initiator/Port Affinity Structure. This allows system firmware * to populate the SRAT with a static number of structures, but only * enable them as necessary. */ GEN_AFFINITY_ENABLED = (1 << 0), } GenericAffinityFlags; /* * ACPI 6.3: * Table 5-80 Device Handle - PCI */ typedef struct PCIDeviceHandle { uint16_t segment; uint16_t bdf; } PCIDeviceHandle; void build_srat_generic_pci_initiator(GArray *table_data); #endif