xref: /illumos-gate/usr/src/cmd/bhyve/qemu_fwcfg.h (revision 32640292339b07090f10ce34d455f98711077343)
1*32640292SAndy Fiddaman /*-
2*32640292SAndy Fiddaman  * SPDX-License-Identifier: BSD-2-Clause
3*32640292SAndy Fiddaman  *
4*32640292SAndy Fiddaman  * Copyright (c) 2021 Beckhoff Automation GmbH & Co. KG
5*32640292SAndy Fiddaman  * Author: Corvin Köhne <c.koehne@beckhoff.com>
6*32640292SAndy Fiddaman  */
7*32640292SAndy Fiddaman 
8*32640292SAndy Fiddaman #ifndef __QEMU_FWCFG_H__
9*32640292SAndy Fiddaman #define	__QEMU_FWCFG_H__
10*32640292SAndy Fiddaman 
11*32640292SAndy Fiddaman #pragma once
12*32640292SAndy Fiddaman 
13*32640292SAndy Fiddaman #include <vmmapi.h>
14*32640292SAndy Fiddaman 
15*32640292SAndy Fiddaman #define QEMU_FWCFG_MAX_ARCHS 0x2
16*32640292SAndy Fiddaman #define QEMU_FWCFG_MAX_ENTRIES 0x4000
17*32640292SAndy Fiddaman #define QEMU_FWCFG_MAX_NAME 56
18*32640292SAndy Fiddaman 
19*32640292SAndy Fiddaman #define QEMU_FWCFG_FILE_TABLE_LOADER "etc/table-loader"
20*32640292SAndy Fiddaman 
21*32640292SAndy Fiddaman struct qemu_fwcfg_item {
22*32640292SAndy Fiddaman 	uint32_t size;
23*32640292SAndy Fiddaman 	uint8_t *data;
24*32640292SAndy Fiddaman };
25*32640292SAndy Fiddaman 
26*32640292SAndy Fiddaman int qemu_fwcfg_add_file(const char *name,
27*32640292SAndy Fiddaman     const uint32_t size, void *const data);
28*32640292SAndy Fiddaman int qemu_fwcfg_init(struct vmctx *const ctx);
29*32640292SAndy Fiddaman int qemu_fwcfg_parse_cmdline_arg(const char *opt);
30*32640292SAndy Fiddaman 
31*32640292SAndy Fiddaman #endif /* !__QEMU_FWCFG_H__ */
32