qemu: PCI device, disk and host network hot-add / hot-remove (Marcelo Tosatti)
[qemu] / hw / boards.h
1 /* Declarations for use by board files for creating devices.  */
2
3 #ifndef HW_BOARDS_H
4 #define HW_BOARDS_H
5
6 typedef void QEMUMachineInitFunc(ram_addr_t ram_size, int vga_ram_size,
7                                  const char *boot_device,
8                                  const char *kernel_filename,
9                                  const char *kernel_cmdline,
10                                  const char *initrd_filename,
11                                  const char *cpu_model);
12
13 typedef struct QEMUMachine {
14     const char *name;
15     const char *desc;
16     QEMUMachineInitFunc *init;
17 #define RAMSIZE_FIXED   (1 << 0)
18     ram_addr_t ram_require;
19     int nodisk_ok;
20     int use_scsi;
21     int max_cpus;
22     struct QEMUMachine *next;
23 } QEMUMachine;
24
25 int qemu_register_machine(QEMUMachine *m);
26 void register_machines(void);
27
28 extern QEMUMachine *current_machine;
29
30 /* Axis ETRAX.  */
31 extern QEMUMachine bareetraxfs_machine;
32 extern QEMUMachine axisdev88_machine;
33
34 /* pc.c */
35 extern QEMUMachine pc_machine;
36 extern QEMUMachine isapc_machine;
37
38 /* ppc.c */
39 extern QEMUMachine prep_machine;
40 extern QEMUMachine core99_machine;
41 extern QEMUMachine heathrow_machine;
42 extern QEMUMachine ref405ep_machine;
43 extern QEMUMachine taihu_machine;
44 extern QEMUMachine bamboo_machine;
45
46 /* mips_r4k.c */
47 extern QEMUMachine mips_machine;
48
49 /* mips_jazz.c */
50 extern QEMUMachine mips_magnum_machine;
51 extern QEMUMachine mips_pica61_machine;
52
53 /* mips_malta.c */
54 extern QEMUMachine mips_malta_machine;
55
56 /* mips_mipssim.c */
57 extern QEMUMachine mips_mipssim_machine;
58
59 /* shix.c */
60 extern QEMUMachine shix_machine;
61
62 /* r2d.c */
63 extern QEMUMachine r2d_machine;
64
65 /* sun4m.c */
66 extern QEMUMachine ss5_machine, ss10_machine, ss600mp_machine, ss20_machine;
67 extern QEMUMachine voyager_machine, ss_lx_machine, ss4_machine, scls_machine;
68 extern QEMUMachine sbook_machine;
69 extern QEMUMachine ss2_machine;
70 extern QEMUMachine ss1000_machine, ss2000_machine;
71
72 /* sun4u.c */
73 extern QEMUMachine sun4u_machine;
74 extern QEMUMachine sun4v_machine;
75 extern QEMUMachine niagara_machine;
76
77 /* integratorcp.c */
78 extern QEMUMachine integratorcp_machine;
79
80 /* versatilepb.c */
81 extern QEMUMachine versatilepb_machine;
82 extern QEMUMachine versatileab_machine;
83
84 /* realview.c */
85 extern QEMUMachine realview_machine;
86
87 /* spitz.c */
88 extern QEMUMachine akitapda_machine;
89 extern QEMUMachine spitzpda_machine;
90 extern QEMUMachine borzoipda_machine;
91 extern QEMUMachine terrierpda_machine;
92
93 /* omap_sx1.c */
94 extern QEMUMachine sx1_machine_v1;
95 extern QEMUMachine sx1_machine_v2;
96
97 /* palm.c */
98 extern QEMUMachine palmte_machine;
99
100 /* nseries.c */
101 extern QEMUMachine n800_machine;
102 extern QEMUMachine n810_machine;
103
104 /* gumstix.c */
105 extern QEMUMachine connex_machine;
106 extern QEMUMachine verdex_machine;
107
108 /* stellaris.c */
109 extern QEMUMachine lm3s811evb_machine;
110 extern QEMUMachine lm3s6965evb_machine;
111
112 /* an5206.c */
113 extern QEMUMachine an5206_machine;
114
115 /* mcf5208.c */
116 extern QEMUMachine mcf5208evb_machine;
117
118 /* dummy_m68k.c */
119 extern QEMUMachine dummy_m68k_machine;
120
121 /* mainstone.c */
122 extern QEMUMachine mainstone2_machine;
123
124 /* musicpal.c */
125 extern QEMUMachine musicpal_machine;
126
127 /* tosa.c */
128 extern QEMUMachine tosapda_machine;
129
130 #endif