]> git.proxmox.com Git - mirror_qemu.git/blob - include/hw/boards.h
kvm: Add a new machine option kvm-type
[mirror_qemu.git] / include / hw / boards.h
1 /* Declarations for use by board files for creating devices. */
2
3 #ifndef HW_BOARDS_H
4 #define HW_BOARDS_H
5
6 #include "sysemu/blockdev.h"
7 #include "sysemu/qemumachine.h"
8 #include "hw/qdev.h"
9
10 typedef struct QEMUMachineInitArgs {
11 const QEMUMachine *machine;
12 ram_addr_t ram_size;
13 const char *boot_order;
14 const char *kernel_filename;
15 const char *kernel_cmdline;
16 const char *initrd_filename;
17 const char *cpu_model;
18 } QEMUMachineInitArgs;
19
20 typedef void QEMUMachineInitFunc(QEMUMachineInitArgs *args);
21
22 typedef void QEMUMachineResetFunc(void);
23
24 typedef void QEMUMachineHotAddCPUFunc(const int64_t id, Error **errp);
25
26 typedef int QEMUMachineGetKvmtypeFunc(const char *arg);
27
28 struct QEMUMachine {
29 const char *name;
30 const char *alias;
31 const char *desc;
32 QEMUMachineInitFunc *init;
33 QEMUMachineResetFunc *reset;
34 QEMUMachineHotAddCPUFunc *hot_add_cpu;
35 QEMUMachineGetKvmtypeFunc *kvm_type;
36 BlockInterfaceType block_default_type;
37 int max_cpus;
38 unsigned int no_serial:1,
39 no_parallel:1,
40 use_virtcon:1,
41 use_sclp:1,
42 no_floppy:1,
43 no_cdrom:1,
44 no_sdcard:1;
45 int is_default;
46 const char *default_machine_opts;
47 const char *default_boot_order;
48 GlobalProperty *compat_props;
49 struct QEMUMachine *next;
50 const char *hw_version;
51 };
52
53 int qemu_register_machine(QEMUMachine *m);
54 QEMUMachine *find_default_machine(void);
55
56 extern QEMUMachine *current_machine;
57
58 #endif