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 "hw/qdev.h" 8 9#define DEFAULT_MACHINE_OPTIONS \ 10 .boot_order = "cad" 11 12typedef struct QEMUMachineInitArgs { 13 ram_addr_t ram_size; 14 const char *boot_device; 15 const char *kernel_filename; 16 const char *kernel_cmdline; 17 const char *initrd_filename; 18 const char *cpu_model; 19} QEMUMachineInitArgs; 20 21typedef void QEMUMachineInitFunc(QEMUMachineInitArgs *args); 22 23typedef void QEMUMachineResetFunc(void); 24 25typedef void QEMUMachineHotAddCPUFunc(const int64_t id, Error **errp); 26 27typedef struct QEMUMachine { 28 const char *name; 29 const char *alias; 30 const char *desc; 31 QEMUMachineInitFunc *init; 32 QEMUMachineResetFunc *reset; 33 QEMUMachineHotAddCPUFunc *hot_add_cpu; 34 BlockInterfaceType block_default_type; 35 int max_cpus; 36 unsigned int no_serial:1, 37 no_parallel:1, 38 use_virtcon:1, 39 use_sclp:1, 40 no_floppy:1, 41 no_cdrom:1, 42 no_sdcard:1; 43 int is_default; 44 const char *default_machine_opts; 45 const char *boot_order; 46 GlobalProperty *compat_props; 47 struct QEMUMachine *next; 48 const char *hw_version; 49} QEMUMachine; 50 51int qemu_register_machine(QEMUMachine *m); 52QEMUMachine *find_default_machine(void); 53 54extern QEMUMachine *current_machine; 55 56#endif 57