~ubuntu-branches/ubuntu/oneiric/seabios/oneiric

« back to all changes in this revision

Viewing changes to .pc/debian-changes-0.6.0-0ubuntu2/src/paravirt.h

  • Committer: Bazaar Package Importer
  • Author(s): Serge Hallyn, Serge Hallyn, Dustin Kirkland
  • Date: 2011-02-14 14:38:50 UTC
  • mfrom: (1.1.2 upstream)
  • Revision ID: james.westby@ubuntu.com-20110214143850-cmzexufi3dlrt7ga
Tags: 0.6.1.2-0ubuntu1
[ Serge Hallyn ]
* upstream merge
  - updated debian/watch
  - remove all patches as they are applied upstream
  - removed debian-changes-0.6.0-0ubuntu2 - I'm not certain about this one,
    so it may re-introduce a regression

[ Dustin Kirkland ]
* debian/rules: fix lintian warnings, install changelog, make binary build
  arch indep
* debian/control: update standards version

Show diffs side-by-side

added added

removed removed

Lines of Context:
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
 
#define QEMU_CFG_E820_TABLE             (QEMU_CFG_ARCH_LOCAL + 3)
40
 
 
41
 
extern int qemu_cfg_present;
42
 
 
43
 
void qemu_cfg_port_probe(void);
44
 
int qemu_cfg_show_boot_menu(void);
45
 
void qemu_cfg_get_uuid(u8 *uuid);
46
 
int qemu_cfg_irq0_override(void);
47
 
u16 qemu_cfg_acpi_additional_tables(void);
48
 
u16 qemu_cfg_next_acpi_table_len(void);
49
 
void *qemu_cfg_next_acpi_table_load(void *addr, u16 len);
50
 
u16 qemu_cfg_smbios_entries(void);
51
 
size_t qemu_cfg_smbios_load_field(int type, size_t offset, void *addr);
52
 
int qemu_cfg_smbios_load_external(int type, char **p, unsigned *nr_structs,
53
 
                                  unsigned *max_struct_size, char *end);
54
 
int qemu_cfg_get_numa_nodes(void);
55
 
void qemu_cfg_get_numa_data(u64 *data, int n);
56
 
u16 qemu_cfg_get_max_cpus(void);
57
 
 
58
 
typedef struct QemuCfgFile {
59
 
    u32  size;        /* file size */
60
 
    u16  select;      /* write this to 0x510 to read it */
61
 
    u16  reserved;
62
 
    char name[56];
63
 
} QemuCfgFile;
64
 
 
65
 
struct e820_reservation {
66
 
    u64 address;
67
 
    u64 length;
68
 
    u32 type;
69
 
};
70
 
 
71
 
u32 qemu_cfg_next_prefix_file(const char *prefix, u32 prevselect);
72
 
u32 qemu_cfg_find_file(const char *name);
73
 
int qemu_cfg_size_file(u32 select);
74
 
int qemu_cfg_read_file(u32 select, void *dst, u32 maxlen);
75
 
 
76
 
// Wrappers that select cbfs or qemu_cfg file interface.
77
 
static inline u32 romfile_findprefix(const char *prefix, u32 previd) {
78
 
    if (CONFIG_COREBOOT)
79
 
        return (u32)cbfs_findprefix(prefix, (void*)previd);
80
 
    return qemu_cfg_next_prefix_file(prefix, previd);
81
 
}
82
 
static inline u32 romfile_find(const char *name) {
83
 
    if (CONFIG_COREBOOT)
84
 
        return (u32)cbfs_finddatafile(name);
85
 
    return qemu_cfg_find_file(name);
86
 
}
87
 
static inline u32 romfile_size(u32 fileid) {
88
 
    if (CONFIG_COREBOOT)
89
 
        return cbfs_datasize((void*)fileid);
90
 
    return qemu_cfg_size_file(fileid);
91
 
}
92
 
static inline int romfile_copy(u32 fileid, void *dst, u32 maxlen) {
93
 
    if (CONFIG_COREBOOT)
94
 
        return cbfs_copyfile((void*)fileid, dst, maxlen);
95
 
    return qemu_cfg_read_file(fileid, dst, maxlen);
96
 
}
97
 
 
98
 
u32 qemu_cfg_e820_entries(void);
99
 
void* qemu_cfg_e820_load_next(void *addr);
100
 
 
101
 
#endif