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