1 // Paravirtualization support.
3 // Copyright (C) 2009 Red Hat Inc.
6 // Gleb Natapov <gnatapov@redhat.com>
8 // This file may be distributed under the terms of the GNU LGPLv3 license.
17 qemu_cfg_select(u16 f)
19 outw(f, PORT_QEMU_CFG_CTL);
23 qemu_cfg_read(u8 *buf, int len)
26 *(buf++) = inb(PORT_QEMU_CFG_DATA);
30 qemu_cfg_read_entry(void *buf, int e, int len)
33 qemu_cfg_read(buf, len);
36 void qemu_cfg_port_probe(void)
46 qemu_cfg_select(QEMU_CFG_SIGNATURE);
48 for (i = 0; i < 4; i++)
49 if (inb(PORT_QEMU_CFG_DATA) != sig[i]) {
53 dprintf(4, "qemu_cfg_present=%d\n", qemu_cfg_present);
56 void qemu_cfg_get_uuid(u8 *uuid)
58 if (!qemu_cfg_present)
61 qemu_cfg_read_entry(uuid, QEMU_CFG_UUID, 16);
64 int qemu_cfg_show_boot_menu(void)
67 if (!qemu_cfg_present)
70 qemu_cfg_read_entry(&v, QEMU_CFG_BOOT_MENU, sizeof(v));
75 u16 qemu_cfg_acpi_additional_tables(void)
79 if (!qemu_cfg_present)
82 qemu_cfg_read_entry(&cnt, QEMU_CFG_ACPI_TABLES, sizeof(cnt));
87 u16 qemu_cfg_next_acpi_table_len(void)
91 qemu_cfg_read((u8*)&len, sizeof(len));
96 void* qemu_cfg_next_acpi_table_load(void *addr, u16 len)
98 qemu_cfg_read(addr, len);