Annotation of qemu/roms/seabios/src/paravirt.h, revision 1.1

1.1     ! root        1: #ifndef __PV_H
        !             2: #define __PV_H
        !             3: 
        !             4: #include "util.h"
        !             5: 
        !             6: /* This CPUID returns the signature 'KVMKVMKVM' in ebx, ecx, and edx.  It
        !             7:  * should be used to determine that a VM is running under KVM.
        !             8:  */
        !             9: #define KVM_CPUID_SIGNATURE     0x40000000
        !            10: 
        !            11: static inline int kvm_para_available(void)
        !            12: {
        !            13:     unsigned int eax, ebx, ecx, edx;
        !            14:     char signature[13];
        !            15: 
        !            16:     cpuid(KVM_CPUID_SIGNATURE, &eax, &ebx, &ecx, &edx);
        !            17:     memcpy(signature + 0, &ebx, 4);
        !            18:     memcpy(signature + 4, &ecx, 4);
        !            19:     memcpy(signature + 8, &edx, 4);
        !            20:     signature[12] = 0;
        !            21: 
        !            22:     if (strcmp(signature, "KVMKVMKVM") == 0)
        !            23:         return 1;
        !            24: 
        !            25:     return 0;
        !            26: }
        !            27: 
        !            28: #define QEMU_CFG_SIGNATURE             0x00
        !            29: #define QEMU_CFG_ID                    0x01
        !            30: #define QEMU_CFG_UUID                  0x02
        !            31: #define QEMU_CFG_NUMA                  0x0d
        !            32: #define QEMU_CFG_BOOT_MENU             0x0e
        !            33: #define QEMU_CFG_MAX_CPUS              0x0f
        !            34: #define QEMU_CFG_FILE_DIR               0x19
        !            35: #define QEMU_CFG_ARCH_LOCAL            0x8000
        !            36: #define QEMU_CFG_ACPI_TABLES           (QEMU_CFG_ARCH_LOCAL + 0)
        !            37: #define QEMU_CFG_SMBIOS_ENTRIES                (QEMU_CFG_ARCH_LOCAL + 1)
        !            38: #define QEMU_CFG_IRQ0_OVERRIDE         (QEMU_CFG_ARCH_LOCAL + 2)
        !            39: 
        !            40: extern int qemu_cfg_present;
        !            41: 
        !            42: void qemu_cfg_port_probe(void);
        !            43: int qemu_cfg_show_boot_menu(void);
        !            44: void qemu_cfg_get_uuid(u8 *uuid);
        !            45: int qemu_cfg_irq0_override(void);
        !            46: u16 qemu_cfg_acpi_additional_tables(void);
        !            47: u16 qemu_cfg_next_acpi_table_len(void);
        !            48: void *qemu_cfg_next_acpi_table_load(void *addr, u16 len);
        !            49: u16 qemu_cfg_smbios_entries(void);
        !            50: size_t qemu_cfg_smbios_load_field(int type, size_t offset, void *addr);
        !            51: int qemu_cfg_smbios_load_external(int type, char **p, unsigned *nr_structs,
        !            52:                                   unsigned *max_struct_size, char *end);
        !            53: int qemu_cfg_get_numa_nodes(void);
        !            54: void qemu_cfg_get_numa_data(u64 *data, int n);
        !            55: u16 qemu_cfg_get_max_cpus(void);
        !            56: 
        !            57: typedef struct QemuCfgFile {
        !            58:     u32  size;        /* file size */
        !            59:     u16  select;      /* write this to 0x510 to read it */
        !            60:     u16  reserved;
        !            61:     char name[56];
        !            62: } QemuCfgFile;
        !            63: 
        !            64: u16 qemu_cfg_first_file(QemuCfgFile *entry);
        !            65: u16 qemu_cfg_next_file(QemuCfgFile *entry);
        !            66: u32 qemu_cfg_read_file(QemuCfgFile *entry, void *dst, u32 maxlen);
        !            67: 
        !            68: #endif

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.