xref: /qemu/hw/i386/fw_cfg.c (revision bd3f680f66f429451efae2e5f0ace2fa8af199bf)
1*bd3f680fSPhilippe Mathieu-Daudé /*
2*bd3f680fSPhilippe Mathieu-Daudé  * QEMU fw_cfg helpers (X86 specific)
3*bd3f680fSPhilippe Mathieu-Daudé  *
4*bd3f680fSPhilippe Mathieu-Daudé  * Copyright (c) 2019 Red Hat, Inc.
5*bd3f680fSPhilippe Mathieu-Daudé  *
6*bd3f680fSPhilippe Mathieu-Daudé  * Author:
7*bd3f680fSPhilippe Mathieu-Daudé  *   Philippe Mathieu-Daudé <philmd@redhat.com>
8*bd3f680fSPhilippe Mathieu-Daudé  *
9*bd3f680fSPhilippe Mathieu-Daudé  * SPDX-License-Identifier: GPL-2.0-or-later
10*bd3f680fSPhilippe Mathieu-Daudé  *
11*bd3f680fSPhilippe Mathieu-Daudé  * This work is licensed under the terms of the GNU GPL, version 2 or later.
12*bd3f680fSPhilippe Mathieu-Daudé  * See the COPYING file in the top-level directory.
13*bd3f680fSPhilippe Mathieu-Daudé  */
14*bd3f680fSPhilippe Mathieu-Daudé 
15*bd3f680fSPhilippe Mathieu-Daudé #include "qemu/osdep.h"
16*bd3f680fSPhilippe Mathieu-Daudé #include "hw/i386/fw_cfg.h"
17*bd3f680fSPhilippe Mathieu-Daudé #include "hw/nvram/fw_cfg.h"
18*bd3f680fSPhilippe Mathieu-Daudé 
19*bd3f680fSPhilippe Mathieu-Daudé const char *fw_cfg_arch_key_name(uint16_t key)
20*bd3f680fSPhilippe Mathieu-Daudé {
21*bd3f680fSPhilippe Mathieu-Daudé     static const struct {
22*bd3f680fSPhilippe Mathieu-Daudé         uint16_t key;
23*bd3f680fSPhilippe Mathieu-Daudé         const char *name;
24*bd3f680fSPhilippe Mathieu-Daudé     } fw_cfg_arch_wellknown_keys[] = {
25*bd3f680fSPhilippe Mathieu-Daudé         {FW_CFG_ACPI_TABLES, "acpi_tables"},
26*bd3f680fSPhilippe Mathieu-Daudé         {FW_CFG_SMBIOS_ENTRIES, "smbios_entries"},
27*bd3f680fSPhilippe Mathieu-Daudé         {FW_CFG_IRQ0_OVERRIDE, "irq0_override"},
28*bd3f680fSPhilippe Mathieu-Daudé         {FW_CFG_E820_TABLE, "e820_table"},
29*bd3f680fSPhilippe Mathieu-Daudé         {FW_CFG_HPET, "hpet"},
30*bd3f680fSPhilippe Mathieu-Daudé     };
31*bd3f680fSPhilippe Mathieu-Daudé 
32*bd3f680fSPhilippe Mathieu-Daudé     for (size_t i = 0; i < ARRAY_SIZE(fw_cfg_arch_wellknown_keys); i++) {
33*bd3f680fSPhilippe Mathieu-Daudé         if (fw_cfg_arch_wellknown_keys[i].key == key) {
34*bd3f680fSPhilippe Mathieu-Daudé             return fw_cfg_arch_wellknown_keys[i].name;
35*bd3f680fSPhilippe Mathieu-Daudé         }
36*bd3f680fSPhilippe Mathieu-Daudé     }
37*bd3f680fSPhilippe Mathieu-Daudé     return NULL;
38*bd3f680fSPhilippe Mathieu-Daudé }
39