Commit 0c257437b25731d4f44985e4b30b7317f2845b4a
1 parent
993fbfdb
Introduce is_default field for QEMUMachine
f80f9ec9 changed the order that machines are registered which had the effect of changing the default machine. This changeset introduces a new is_default field so that machine types can declare that they are the default for an architecture. Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Showing
11 changed files
with
24 additions
and
3 deletions
hw/boards.h
| @@ -16,11 +16,11 @@ typedef struct QEMUMachine { | @@ -16,11 +16,11 @@ typedef struct QEMUMachine { | ||
| 16 | QEMUMachineInitFunc *init; | 16 | QEMUMachineInitFunc *init; |
| 17 | int use_scsi; | 17 | int use_scsi; |
| 18 | int max_cpus; | 18 | int max_cpus; |
| 19 | + int is_default; | ||
| 19 | struct QEMUMachine *next; | 20 | struct QEMUMachine *next; |
| 20 | } QEMUMachine; | 21 | } QEMUMachine; |
| 21 | 22 | ||
| 22 | int qemu_register_machine(QEMUMachine *m); | 23 | int qemu_register_machine(QEMUMachine *m); |
| 23 | -void register_machines(void); | ||
| 24 | 24 | ||
| 25 | extern QEMUMachine *current_machine; | 25 | extern QEMUMachine *current_machine; |
| 26 | 26 |
hw/etraxfs.c
| @@ -162,6 +162,7 @@ static QEMUMachine bareetraxfs_machine = { | @@ -162,6 +162,7 @@ static QEMUMachine bareetraxfs_machine = { | ||
| 162 | .name = "bareetraxfs", | 162 | .name = "bareetraxfs", |
| 163 | .desc = "Bare ETRAX FS board", | 163 | .desc = "Bare ETRAX FS board", |
| 164 | .init = bareetraxfs_init, | 164 | .init = bareetraxfs_init, |
| 165 | + .is_default = 1, | ||
| 165 | }; | 166 | }; |
| 166 | 167 | ||
| 167 | static void bareetraxfs_machine_init(void) | 168 | static void bareetraxfs_machine_init(void) |
hw/integratorcp.c
| @@ -512,6 +512,7 @@ static QEMUMachine integratorcp_machine = { | @@ -512,6 +512,7 @@ static QEMUMachine integratorcp_machine = { | ||
| 512 | .name = "integratorcp", | 512 | .name = "integratorcp", |
| 513 | .desc = "ARM Integrator/CP (ARM926EJ-S)", | 513 | .desc = "ARM Integrator/CP (ARM926EJ-S)", |
| 514 | .init = integratorcp_init, | 514 | .init = integratorcp_init, |
| 515 | + .is_default = 1, | ||
| 515 | }; | 516 | }; |
| 516 | 517 | ||
| 517 | static void integratorcp_machine_init(void) | 518 | static void integratorcp_machine_init(void) |
hw/mcf5208.c
| @@ -290,6 +290,7 @@ static QEMUMachine mcf5208evb_machine = { | @@ -290,6 +290,7 @@ static QEMUMachine mcf5208evb_machine = { | ||
| 290 | .name = "mcf5208evb", | 290 | .name = "mcf5208evb", |
| 291 | .desc = "MCF5206EVB", | 291 | .desc = "MCF5206EVB", |
| 292 | .init = mcf5208evb_init, | 292 | .init = mcf5208evb_init, |
| 293 | + .is_default = 1, | ||
| 293 | }; | 294 | }; |
| 294 | 295 | ||
| 295 | static void mcf5208evb_machine_init(void) | 296 | static void mcf5208evb_machine_init(void) |
hw/mips_malta.c
| @@ -953,6 +953,7 @@ static QEMUMachine mips_malta_machine = { | @@ -953,6 +953,7 @@ static QEMUMachine mips_malta_machine = { | ||
| 953 | .name = "malta", | 953 | .name = "malta", |
| 954 | .desc = "MIPS Malta Core LV", | 954 | .desc = "MIPS Malta Core LV", |
| 955 | .init = mips_malta_init, | 955 | .init = mips_malta_init, |
| 956 | + .is_default = 1, | ||
| 956 | }; | 957 | }; |
| 957 | 958 | ||
| 958 | static void mips_malta_machine_init(void) | 959 | static void mips_malta_machine_init(void) |
hw/pc.c
| @@ -1189,6 +1189,7 @@ static QEMUMachine pc_machine = { | @@ -1189,6 +1189,7 @@ static QEMUMachine pc_machine = { | ||
| 1189 | .desc = "Standard PC", | 1189 | .desc = "Standard PC", |
| 1190 | .init = pc_init_pci, | 1190 | .init = pc_init_pci, |
| 1191 | .max_cpus = 255, | 1191 | .max_cpus = 255, |
| 1192 | + .is_default = 1, | ||
| 1192 | }; | 1193 | }; |
| 1193 | 1194 | ||
| 1194 | static QEMUMachine isapc_machine = { | 1195 | static QEMUMachine isapc_machine = { |
hw/ppc_oldworld.c
| @@ -386,6 +386,7 @@ static QEMUMachine heathrow_machine = { | @@ -386,6 +386,7 @@ static QEMUMachine heathrow_machine = { | ||
| 386 | .desc = "Heathrow based PowerMAC", | 386 | .desc = "Heathrow based PowerMAC", |
| 387 | .init = ppc_heathrow_init, | 387 | .init = ppc_heathrow_init, |
| 388 | .max_cpus = MAX_CPUS, | 388 | .max_cpus = MAX_CPUS, |
| 389 | + .is_default = 1, | ||
| 389 | }; | 390 | }; |
| 390 | 391 | ||
| 391 | static void heathrow_machine_init(void) | 392 | static void heathrow_machine_init(void) |
hw/shix.c
| @@ -92,6 +92,7 @@ static QEMUMachine shix_machine = { | @@ -92,6 +92,7 @@ static QEMUMachine shix_machine = { | ||
| 92 | .name = "shix", | 92 | .name = "shix", |
| 93 | .desc = "shix card", | 93 | .desc = "shix card", |
| 94 | .init = shix_init, | 94 | .init = shix_init, |
| 95 | + .is_default = 1, | ||
| 95 | }; | 96 | }; |
| 96 | 97 | ||
| 97 | static void shix_machine_init(void) | 98 | static void shix_machine_init(void) |
hw/sun4m.c
| @@ -1037,6 +1037,7 @@ static QEMUMachine ss5_machine = { | @@ -1037,6 +1037,7 @@ static QEMUMachine ss5_machine = { | ||
| 1037 | .desc = "Sun4m platform, SPARCstation 5", | 1037 | .desc = "Sun4m platform, SPARCstation 5", |
| 1038 | .init = ss5_init, | 1038 | .init = ss5_init, |
| 1039 | .use_scsi = 1, | 1039 | .use_scsi = 1, |
| 1040 | + .is_default = 1, | ||
| 1040 | }; | 1041 | }; |
| 1041 | 1042 | ||
| 1042 | static QEMUMachine ss10_machine = { | 1043 | static QEMUMachine ss10_machine = { |
hw/sun4u.c
| @@ -594,6 +594,7 @@ static QEMUMachine sun4u_machine = { | @@ -594,6 +594,7 @@ static QEMUMachine sun4u_machine = { | ||
| 594 | .desc = "Sun4u platform", | 594 | .desc = "Sun4u platform", |
| 595 | .init = sun4u_init, | 595 | .init = sun4u_init, |
| 596 | .max_cpus = 1, // XXX for now | 596 | .max_cpus = 1, // XXX for now |
| 597 | + .is_default = 1, | ||
| 597 | }; | 598 | }; |
| 598 | 599 | ||
| 599 | static QEMUMachine sun4v_machine = { | 600 | static QEMUMachine sun4v_machine = { |
vl.c
| @@ -3497,6 +3497,18 @@ static QEMUMachine *find_machine(const char *name) | @@ -3497,6 +3497,18 @@ static QEMUMachine *find_machine(const char *name) | ||
| 3497 | return NULL; | 3497 | return NULL; |
| 3498 | } | 3498 | } |
| 3499 | 3499 | ||
| 3500 | +static QEMUMachine *find_default_machine(void) | ||
| 3501 | +{ | ||
| 3502 | + QEMUMachine *m; | ||
| 3503 | + | ||
| 3504 | + for(m = first_machine; m != NULL; m = m->next) { | ||
| 3505 | + if (m->is_default) { | ||
| 3506 | + return m; | ||
| 3507 | + } | ||
| 3508 | + } | ||
| 3509 | + return NULL; | ||
| 3510 | +} | ||
| 3511 | + | ||
| 3500 | /***********************************************************/ | 3512 | /***********************************************************/ |
| 3501 | /* main execution loop */ | 3513 | /* main execution loop */ |
| 3502 | 3514 | ||
| @@ -4876,7 +4888,7 @@ int main(int argc, char **argv, char **envp) | @@ -4876,7 +4888,7 @@ int main(int argc, char **argv, char **envp) | ||
| 4876 | #endif | 4888 | #endif |
| 4877 | 4889 | ||
| 4878 | module_call_init(MODULE_INIT_MACHINE); | 4890 | module_call_init(MODULE_INIT_MACHINE); |
| 4879 | - machine = first_machine; | 4891 | + machine = find_default_machine(); |
| 4880 | cpu_model = NULL; | 4892 | cpu_model = NULL; |
| 4881 | initrd_filename = NULL; | 4893 | initrd_filename = NULL; |
| 4882 | ram_size = 0; | 4894 | ram_size = 0; |
| @@ -4967,7 +4979,7 @@ int main(int argc, char **argv, char **envp) | @@ -4967,7 +4979,7 @@ int main(int argc, char **argv, char **envp) | ||
| 4967 | for(m = first_machine; m != NULL; m = m->next) { | 4979 | for(m = first_machine; m != NULL; m = m->next) { |
| 4968 | printf("%-10s %s%s\n", | 4980 | printf("%-10s %s%s\n", |
| 4969 | m->name, m->desc, | 4981 | m->name, m->desc, |
| 4970 | - m == first_machine ? " (default)" : ""); | 4982 | + m->is_default ? " (default)" : ""); |
| 4971 | } | 4983 | } |
| 4972 | exit(*optarg != '?'); | 4984 | exit(*optarg != '?'); |
| 4973 | } | 4985 | } |