diff options
Diffstat (limited to 'qemu/include/hw/boards.h')
-rw-r--r-- | qemu/include/hw/boards.h | 195 |
1 files changed, 0 insertions, 195 deletions
diff --git a/qemu/include/hw/boards.h b/qemu/include/hw/boards.h deleted file mode 100644 index 8d4fe56b5..000000000 --- a/qemu/include/hw/boards.h +++ /dev/null @@ -1,195 +0,0 @@ -/* Declarations for use by board files for creating devices. */ - -#ifndef HW_BOARDS_H -#define HW_BOARDS_H - -#include "sysemu/blockdev.h" -#include "sysemu/accel.h" -#include "hw/qdev.h" -#include "qom/object.h" -#include "qom/cpu.h" - -void memory_region_allocate_system_memory(MemoryRegion *mr, Object *owner, - const char *name, - uint64_t ram_size); - -#define TYPE_MACHINE_SUFFIX "-machine" - -/* Machine class name that needs to be used for class-name-based machine - * type lookup to work. - */ -#define MACHINE_TYPE_NAME(machinename) (machinename TYPE_MACHINE_SUFFIX) - -#define TYPE_MACHINE "machine" -#undef MACHINE /* BSD defines it and QEMU does not use it */ -#define MACHINE(obj) \ - OBJECT_CHECK(MachineState, (obj), TYPE_MACHINE) -#define MACHINE_GET_CLASS(obj) \ - OBJECT_GET_CLASS(MachineClass, (obj), TYPE_MACHINE) -#define MACHINE_CLASS(klass) \ - OBJECT_CLASS_CHECK(MachineClass, (klass), TYPE_MACHINE) - -MachineClass *find_default_machine(void); -extern MachineState *current_machine; - -bool machine_usb(MachineState *machine); -bool machine_kernel_irqchip_allowed(MachineState *machine); -bool machine_kernel_irqchip_required(MachineState *machine); -bool machine_kernel_irqchip_split(MachineState *machine); -int machine_kvm_shadow_mem(MachineState *machine); -int machine_phandle_start(MachineState *machine); -bool machine_dump_guest_core(MachineState *machine); -bool machine_mem_merge(MachineState *machine); - -/** - * CPUArchId: - * @arch_id - architecture-dependent CPU ID of present or possible CPU - * @cpu - pointer to corresponding CPU object if it's present on NULL otherwise - */ -typedef struct { - uint64_t arch_id; - struct CPUState *cpu; -} CPUArchId; - -/** - * CPUArchIdList: - * @len - number of @CPUArchId items in @cpus array - * @cpus - array of present or possible CPUs for current machine configuration - */ -typedef struct { - int len; - CPUArchId cpus[0]; -} CPUArchIdList; - -/** - * MachineClass: - * @get_hotplug_handler: this function is called during bus-less - * device hotplug. If defined it returns pointer to an instance - * of HotplugHandler object, which handles hotplug operation - * for a given @dev. It may return NULL if @dev doesn't require - * any actions to be performed by hotplug handler. - * @cpu_index_to_socket_id: - * used to provide @cpu_index to socket number mapping, allowing - * a machine to group CPU threads belonging to the same socket/package - * Returns: socket number given cpu_index belongs to. - * @hw_version: - * Value of QEMU_VERSION when the machine was added to QEMU. - * Set only by old machines because they need to keep - * compatibility on code that exposed QEMU_VERSION to guests in - * the past (and now use qemu_hw_version()). - * @possible_cpu_arch_ids: - * Returns an array of @CPUArchId architecture-dependent CPU IDs - * which includes CPU IDs for present and possible to hotplug CPUs. - * Caller is responsible for freeing returned list. - */ -struct MachineClass { - /*< private >*/ - ObjectClass parent_class; - /*< public >*/ - - const char *family; /* NULL iff @name identifies a standalone machtype */ - const char *name; - const char *alias; - const char *desc; - - void (*init)(MachineState *state); - void (*reset)(void); - void (*hot_add_cpu)(const int64_t id, Error **errp); - int (*kvm_type)(const char *arg); - - BlockInterfaceType block_default_type; - int units_per_default_bus; - int max_cpus; - unsigned int no_serial:1, - no_parallel:1, - use_virtcon:1, - use_sclp:1, - no_floppy:1, - no_cdrom:1, - no_sdcard:1, - has_dynamic_sysbus:1, - pci_allow_0_address:1, - legacy_fw_cfg_order:1; - int is_default; - const char *default_machine_opts; - const char *default_boot_order; - const char *default_display; - GlobalProperty *compat_props; - const char *hw_version; - ram_addr_t default_ram_size; - bool option_rom_has_mr; - bool rom_file_has_mr; - - HotplugHandler *(*get_hotplug_handler)(MachineState *machine, - DeviceState *dev); - unsigned (*cpu_index_to_socket_id)(unsigned cpu_index); - CPUArchIdList *(*possible_cpu_arch_ids)(MachineState *machine); -}; - -/** - * MachineState: - */ -struct MachineState { - /*< private >*/ - Object parent_obj; - Notifier sysbus_notifier; - - /*< public >*/ - - char *accel; - bool kernel_irqchip_allowed; - bool kernel_irqchip_required; - bool kernel_irqchip_split; - int kvm_shadow_mem; - char *dtb; - char *dumpdtb; - int phandle_start; - char *dt_compatible; - bool dump_guest_core; - bool mem_merge; - bool usb; - bool usb_disabled; - bool igd_gfx_passthru; - char *firmware; - bool iommu; - bool suppress_vmdesc; - bool enforce_config_section; - - ram_addr_t ram_size; - ram_addr_t maxram_size; - uint64_t ram_slots; - const char *boot_order; - char *kernel_filename; - char *kernel_cmdline; - char *initrd_filename; - const char *cpu_model; - AccelState *accelerator; -}; - -#define DEFINE_MACHINE(namestr, machine_initfn) \ - static void machine_initfn##_class_init(ObjectClass *oc, void *data) \ - { \ - MachineClass *mc = MACHINE_CLASS(oc); \ - machine_initfn(mc); \ - } \ - static const TypeInfo machine_initfn##_typeinfo = { \ - .name = MACHINE_TYPE_NAME(namestr), \ - .parent = TYPE_MACHINE, \ - .class_init = machine_initfn##_class_init, \ - }; \ - static void machine_initfn##_register_types(void) \ - { \ - type_register_static(&machine_initfn##_typeinfo); \ - } \ - type_init(machine_initfn##_register_types) - -#define SET_MACHINE_COMPAT(m, COMPAT) \ - do { \ - static GlobalProperty props[] = { \ - COMPAT \ - { /* end of list */ } \ - }; \ - (m)->compat_props = props; \ - } while (0) - -#endif |