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 59