Skip to content

Commit 38d3336

Browse files
committed
xbox: Move xbox machine property creation to class init handler
1 parent e00aa20 commit 38d3336

File tree

1 file changed

+66
-63
lines changed

1 file changed

+66
-63
lines changed

hw/xbox/xbox.c

Lines changed: 66 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -347,37 +347,14 @@ void xbox_init_common(MachineState *machine,
347347
}
348348
}
349349

350-
static void xbox_machine_options(MachineClass *m)
351-
{
352-
PCMachineClass *pcmc = PC_MACHINE_CLASS(m);
353-
m->desc = "Microsoft Xbox";
354-
m->max_cpus = 1;
355-
m->option_rom_has_mr = true;
356-
m->rom_file_has_mr = false;
357-
m->no_floppy = 1,
358-
m->no_cdrom = 1,
359-
m->no_sdcard = 1,
360-
m->default_cpu_type = X86_CPU_TYPE_NAME("pentium3");
361-
m->is_default = true;
362-
m->default_nic = "nvnet";
363-
364-
pcmc->pci_enabled = true;
365-
pcmc->has_acpi_build = false;
366-
pcmc->smbios_defaults = false;
367-
pcmc->gigabyte_align = false;
368-
pcmc->smbios_legacy_mode = true;
369-
pcmc->has_reserved_memory = false;
370-
}
371-
372350
static char *machine_get_bootrom(Object *obj, Error **errp)
373351
{
374352
XboxMachineState *ms = XBOX_MACHINE(obj);
375353

376354
return g_strdup(ms->bootrom);
377355
}
378356

379-
static void machine_set_bootrom(Object *obj, const char *value,
380-
Error **errp)
357+
static void machine_set_bootrom(Object *obj, const char *value, Error **errp)
381358
{
382359
XboxMachineState *ms = XBOX_MACHINE(obj);
383360

@@ -392,8 +369,7 @@ static char *machine_get_avpack(Object *obj, Error **errp)
392369
return g_strdup(ms->avpack);
393370
}
394371

395-
static void machine_set_avpack(Object *obj, const char *value,
396-
Error **errp)
372+
static void machine_set_avpack(Object *obj, const char *value, Error **errp)
397373
{
398374
XboxMachineState *ms = XBOX_MACHINE(obj);
399375

@@ -407,8 +383,7 @@ static void machine_set_avpack(Object *obj, const char *value,
407383
ms->avpack = g_strdup(value);
408384
}
409385

410-
static void machine_set_short_animation(Object *obj, bool value,
411-
Error **errp)
386+
static void machine_set_short_animation(Object *obj, bool value, Error **errp)
412387
{
413388
XboxMachineState *ms = XBOX_MACHINE(obj);
414389

@@ -429,7 +404,7 @@ static char *machine_get_smc_version(Object *obj, Error **errp)
429404
}
430405

431406
static void machine_set_smc_version(Object *obj, const char *value,
432-
Error **errp)
407+
Error **errp)
433408
{
434409
XboxMachineState *ms = XBOX_MACHINE(obj);
435410

@@ -451,55 +426,83 @@ static char *machine_get_video_encoder(Object *obj, Error **errp)
451426
}
452427

453428
static void machine_set_video_encoder(Object *obj, const char *value,
454-
Error **errp)
429+
Error **errp)
455430
{
456431
XboxMachineState *ms = XBOX_MACHINE(obj);
457432

458-
if (strcmp(value, "conexant") != 0 &&
459-
strcmp(value, "focus") != 0 &&
460-
strcmp(value, "xcalibur") != 0
461-
) {
462-
error_setg(errp, "-machine video_encoder=%s: unsupported option", value);
463-
error_append_hint(errp, "Valid options are: conexant (default), focus, xcalibur\n");
464-
return;
433+
if (strcmp(value, "conexant") != 0 && strcmp(value, "focus") != 0 &&
434+
strcmp(value, "xcalibur") != 0) {
435+
error_setg(errp, "-machine video_encoder=%s: unsupported option",
436+
value);
437+
error_append_hint(
438+
errp, "Valid options are: conexant (default), focus, xcalibur\n");
439+
return;
465440
}
466441

467442
g_free(ms->video_encoder);
468443
ms->video_encoder = g_strdup(value);
469444
}
470445

446+
static void xbox_machine_options(MachineClass *m)
447+
{
448+
ObjectClass *oc = OBJECT_CLASS(m);
449+
450+
PCMachineClass *pcmc = PC_MACHINE_CLASS(m);
451+
m->desc = "Microsoft Xbox";
452+
m->max_cpus = 1;
453+
m->option_rom_has_mr = true;
454+
m->rom_file_has_mr = false;
455+
m->no_floppy = 1,
456+
m->no_cdrom = 1,
457+
m->no_sdcard = 1,
458+
m->default_cpu_type = X86_CPU_TYPE_NAME("pentium3");
459+
m->is_default = true;
460+
m->default_nic = "nvnet";
461+
462+
pcmc->pci_enabled = true;
463+
pcmc->has_acpi_build = false;
464+
pcmc->smbios_defaults = false;
465+
pcmc->gigabyte_align = false;
466+
pcmc->smbios_legacy_mode = true;
467+
pcmc->has_reserved_memory = false;
468+
469+
object_class_property_add_str(oc, "bootrom", machine_get_bootrom,
470+
machine_set_bootrom);
471+
object_class_property_set_description(oc, "bootrom", "Xbox bootrom file");
472+
473+
object_class_property_add_str(oc, "avpack", machine_get_avpack,
474+
machine_set_avpack);
475+
object_class_property_set_description(
476+
oc, "avpack",
477+
"Xbox video connector: composite, scart, svideo, vga, rfu, hdtv "
478+
"(default), none");
479+
480+
object_class_property_add_bool(oc, "short-animation",
481+
machine_get_short_animation,
482+
machine_set_short_animation);
483+
object_class_property_set_description(oc, "short-animation",
484+
"Skip Xbox boot animation");
485+
486+
object_class_property_add_str(oc, "smc-version", machine_get_smc_version,
487+
machine_set_smc_version);
488+
object_class_property_set_description(
489+
oc, "smc-version", "Set the SMC version number, default is P01");
490+
491+
object_class_property_add_str(oc, "video-encoder",
492+
machine_get_video_encoder,
493+
machine_set_video_encoder);
494+
object_class_property_set_description(
495+
oc, "video-encoder",
496+
"Set the encoder presented to the OS: conexant (default), focus, "
497+
"xcalibur");
498+
}
499+
471500
static inline void xbox_machine_initfn(Object *obj)
472501
{
473-
object_property_add_str(obj, "bootrom", machine_get_bootrom,
474-
machine_set_bootrom);
475-
object_property_set_description(obj, "bootrom",
476-
"Xbox bootrom file");
477-
478-
object_property_add_str(obj, "avpack", machine_get_avpack,
479-
machine_set_avpack);
480-
object_property_set_description(obj, "avpack",
481-
"Xbox video connector: composite, scart, svideo, vga, rfu, hdtv (default), none");
482502
object_property_set_str(obj, "avpack", "hdtv", &error_fatal);
483-
484-
object_property_add_bool(obj, "short-animation",
485-
machine_get_short_animation,
486-
machine_set_short_animation);
487-
object_property_set_description(obj, "short-animation",
488-
"Skip Xbox boot animation");
489503
object_property_set_bool(obj, "short-animation", false, &error_fatal);
490-
491-
object_property_add_str(obj, "smc-version", machine_get_smc_version,
492-
machine_set_smc_version);
493-
object_property_set_description(obj, "smc-version",
494-
"Set the SMC version number, default is P01");
495504
object_property_set_str(obj, "smc-version", "P01", &error_fatal);
496-
497-
object_property_add_str(obj, "video-encoder", machine_get_video_encoder,
498-
machine_set_video_encoder);
499-
object_property_set_description(obj, "video-encoder",
500-
"Set the encoder presented to the OS: conexant (default), focus, xcalibur");
501505
object_property_set_str(obj, "video-encoder", "conexant", &error_fatal);
502-
503506
}
504507

505508
static void xbox_machine_class_init(ObjectClass *oc, void *data)

0 commit comments

Comments
 (0)