On 04/22/19 21:50, Philippe Mathieu-Daudé wrote: > Add fw_cfg_arch_key_name() which returns the name of > an architecture-specific key. > > Signed-off-by: Philippe Mathieu-Daudé <phi...@redhat.com> > --- > MAINTAINERS | 1 + > hw/nvram/fw_cfg.c | 2 +- > include/hw/nvram/fw_cfg.h | 11 +++++++++++ > stubs/Makefile.objs | 1 + > stubs/fw_cfg.c | 21 +++++++++++++++++++++ > 5 files changed, 35 insertions(+), 1 deletion(-) > create mode 100644 stubs/fw_cfg.c > > diff --git a/MAINTAINERS b/MAINTAINERS > index 56139ac8ab0..444783bb652 100644 > --- a/MAINTAINERS > +++ b/MAINTAINERS > @@ -1675,6 +1675,7 @@ R: Gerd Hoffmann <kra...@redhat.com> > S: Supported > F: docs/specs/fw_cfg.txt > F: hw/nvram/fw_cfg.c > +F: stubs/fw_cfg.c > F: include/hw/nvram/fw_cfg.h > F: include/standard-headers/linux/qemu_fw_cfg.h > F: tests/libqos/fw_cfg.c > diff --git a/hw/nvram/fw_cfg.c b/hw/nvram/fw_cfg.c > index d374a970fea..b2dc0a80cbc 100644 > --- a/hw/nvram/fw_cfg.c > +++ b/hw/nvram/fw_cfg.c > @@ -100,7 +100,7 @@ static const char *key_name(uint16_t key) > }; > > if (key & FW_CFG_ARCH_LOCAL) { > - return NULL; > + return fw_cfg_arch_key_name(key); > } > if (key < FW_CFG_FILE_FIRST) { > return fw_cfg_wellknown_keys[key]; > diff --git a/include/hw/nvram/fw_cfg.h b/include/hw/nvram/fw_cfg.h > index f5a6895a740..828ad9dedc6 100644 > --- a/include/hw/nvram/fw_cfg.h > +++ b/include/hw/nvram/fw_cfg.h > @@ -226,4 +226,15 @@ FWCfgState *fw_cfg_init_mem_wide(hwaddr ctl_addr, > FWCfgState *fw_cfg_find(void); > bool fw_cfg_dma_enabled(void *opaque); > > +/** > + * fw_cfg_arch_key_name: > + * > + * @key: The uint16 selector key. > + * > + * Returns: The stringified architecture-specific name if the selector > + * refers to a well-known numerically defined item, or NULL on > + * key lookup failure. > + */
We might want to document that we expect FW_CFG_ARCH_LOCAL to be set in "key", but I really don't insist. Reviewed-by: Laszlo Ersek <ler...@redhat.com> Thanks Laszlo > +const char *fw_cfg_arch_key_name(uint16_t key); > + > #endif > diff --git a/stubs/Makefile.objs b/stubs/Makefile.objs > index 269dfa58326..73452ad2657 100644 > --- a/stubs/Makefile.objs > +++ b/stubs/Makefile.objs > @@ -39,3 +39,4 @@ stub-obj-y += xen-hvm.o > stub-obj-y += pci-host-piix.o > stub-obj-y += ram-block.o > stub-obj-y += ramfb.o > +stub-obj-y += fw_cfg.o > diff --git a/stubs/fw_cfg.c b/stubs/fw_cfg.c > new file mode 100644 > index 00000000000..bb1e3c8aa95 > --- /dev/null > +++ b/stubs/fw_cfg.c > @@ -0,0 +1,21 @@ > +/* > + * fw_cfg stubs > + * > + * Copyright (c) 2019 Red Hat, Inc. > + * > + * Author: > + * Philippe Mathieu-Daudé <phi...@redhat.com> > + * > + * SPDX-License-Identifier: GPL-2.0-or-later > + * > + * This work is licensed under the terms of the GNU GPL, version 2 or later. > + * See the COPYING file in the top-level directory. > + */ > + > +#include "qemu/osdep.h" > +#include "hw/nvram/fw_cfg.h" > + > +const char *fw_cfg_arch_key_name(uint16_t key) > +{ > + return NULL; > +} >