xref: /freebsd-src/usr.sbin/bhyve/qemu_fwcfg.h (revision 4d846d260e2b9a3d4d0a701462568268cbfe7a5b)
19b99de77SCorvin Köhne /*-
2*4d846d26SWarner Losh  * SPDX-License-Identifier: BSD-2-Clause
39b99de77SCorvin Köhne  *
49b99de77SCorvin Köhne  * Copyright (c) 2021 Beckhoff Automation GmbH & Co. KG
59b99de77SCorvin Köhne  * Author: Corvin Köhne <c.koehne@beckhoff.com>
69b99de77SCorvin Köhne  */
79b99de77SCorvin Köhne 
89b99de77SCorvin Köhne #pragma once
99b99de77SCorvin Köhne 
109b99de77SCorvin Köhne #include <vmmapi.h>
119b99de77SCorvin Köhne 
12b11081dcSCorvin Köhne #define QEMU_FWCFG_MAX_ARCHS 0x2
13b11081dcSCorvin Köhne #define QEMU_FWCFG_MAX_ENTRIES 0x4000
1434f804e5SCorvin Köhne #define QEMU_FWCFG_MAX_NAME 56
15b11081dcSCorvin Köhne 
167959d80dSCorvin Köhne #define QEMU_FWCFG_FILE_TABLE_LOADER "etc/table-loader"
177959d80dSCorvin Köhne 
18b11081dcSCorvin Köhne struct qemu_fwcfg_item {
19b11081dcSCorvin Köhne 	uint32_t size;
20b11081dcSCorvin Köhne 	uint8_t *data;
21b11081dcSCorvin Köhne };
22b11081dcSCorvin Köhne 
2361482760SJohn Baldwin int qemu_fwcfg_add_file(const char *name,
246f9ebb3dSCorvin Köhne     const uint32_t size, void *const data);
259b99de77SCorvin Köhne int qemu_fwcfg_init(struct vmctx *const ctx);
26ca14781cSCorvin Köhne int qemu_fwcfg_parse_cmdline_arg(const char *opt);
27