static void pc_fw_add_pflash_drv(void) { QemuOpts *opts; QEMUMachine *machine; char *filename; if (bios_name == NULL) { bios_name = BIOS_FILENAME; } filename = qemu_find_file(QEMU_FILE_TYPE_BIOS, bios_name); if (!filename) { error_report("Can't open BIOS image %s", bios_name); exit(1); } opts = drive_add(IF_PFLASH, -1, filename, "readonly=on"); g_free(filename); if (opts == NULL) { return; } machine = find_default_machine(); if (machine == NULL) { return; } if (!drive_init(opts, machine->block_default_type)) { qemu_opts_del(opts); } }
static void pc_fw_add_pflash_drv(void) { QemuOpts *opts; QEMUMachine *machine; char *filename; if (bios_name == NULL) { bios_name = BIOS_FILENAME; } filename = qemu_find_file(QEMU_FILE_TYPE_BIOS, bios_name); opts = drive_add(IF_PFLASH, -1, filename, "readonly=on"); g_free(filename); if (opts == NULL) { return; } machine = find_default_machine(); if (machine == NULL) { return; } drive_init(opts, machine->use_scsi); }
int machine_initialize(struct uc_struct *uc) { MachineClass *machine_class; MachineState *current_machine; module_call_init(uc, MODULE_INIT_QOM); register_types_object(uc); machine_register_types(uc); container_register_types(uc); cpu_register_types(uc); qdev_register_types(uc); // Initialize arch specific. uc->init_arch(uc); module_call_init(uc, MODULE_INIT_MACHINE); // this will auto initialize all register objects above. machine_class = find_default_machine(uc, uc->arch); if (machine_class == NULL) { //fprintf(stderr, "No machine specified, and there is no default.\n" // "Use -machine help to list supported machines!\n"); return -2; } current_machine = MACHINE(uc, object_new(uc, object_class_get_name( OBJECT_CLASS(machine_class)))); current_machine->uc = uc; uc->cpu_exec_init_all(uc); machine_class->max_cpus = 1; configure_accelerator(current_machine); qemu_init_cpu_loop(uc); qemu_mutex_lock_iothread(uc); current_machine->cpu_model = NULL; return machine_class->init(uc, current_machine); }