Statistics
| Branch: | Revision:

root / include / hw / boards.h @ 5e954943

History | View | Annotate | Download (1.3 kB)

1 87ecb68b pbrook
/* Declarations for use by board files for creating devices.  */
2 87ecb68b pbrook
3 87ecb68b pbrook
#ifndef HW_BOARDS_H
4 87ecb68b pbrook
#define HW_BOARDS_H
5 87ecb68b pbrook
6 9c17d615 Paolo Bonzini
#include "sysemu/blockdev.h"
7 83c9f4ca Paolo Bonzini
#include "hw/qdev.h"
8 b6b61144 Gerd Hoffmann
9 e689f7c6 Markus Armbruster
typedef struct QEMUMachine QEMUMachine;
10 e689f7c6 Markus Armbruster
11 5f072e1f Eduardo Habkost
typedef struct QEMUMachineInitArgs {
12 e689f7c6 Markus Armbruster
    const QEMUMachine *machine;
13 5f072e1f Eduardo Habkost
    ram_addr_t ram_size;
14 c1654732 Markus Armbruster
    const char *boot_order;
15 5f072e1f Eduardo Habkost
    const char *kernel_filename;
16 5f072e1f Eduardo Habkost
    const char *kernel_cmdline;
17 5f072e1f Eduardo Habkost
    const char *initrd_filename;
18 5f072e1f Eduardo Habkost
    const char *cpu_model;
19 5f072e1f Eduardo Habkost
} QEMUMachineInitArgs;
20 5f072e1f Eduardo Habkost
21 5f072e1f Eduardo Habkost
typedef void QEMUMachineInitFunc(QEMUMachineInitArgs *args);
22 87ecb68b pbrook
23 be522029 David Gibson
typedef void QEMUMachineResetFunc(void);
24 be522029 David Gibson
25 b4fc7b43 Igor Mammedov
typedef void QEMUMachineHotAddCPUFunc(const int64_t id, Error **errp);
26 b4fc7b43 Igor Mammedov
27 e689f7c6 Markus Armbruster
struct QEMUMachine {
28 87ecb68b pbrook
    const char *name;
29 3f6599e6 Mark McLoughlin
    const char *alias;
30 87ecb68b pbrook
    const char *desc;
31 87ecb68b pbrook
    QEMUMachineInitFunc *init;
32 be522029 David Gibson
    QEMUMachineResetFunc *reset;
33 b4fc7b43 Igor Mammedov
    QEMUMachineHotAddCPUFunc *hot_add_cpu;
34 2d0d2837 Christian Borntraeger
    BlockInterfaceType block_default_type;
35 b2097003 aliguori
    int max_cpus;
36 2fe0ee97 Blue Swirl
    unsigned int no_serial:1,
37 986c5f78 Gerd Hoffmann
        no_parallel:1,
38 986c5f78 Gerd Hoffmann
        use_virtcon:1,
39 3ef669e1 Alexander Graf
        use_sclp:1,
40 ac33f8fa Gerd Hoffmann
        no_floppy:1,
41 ac33f8fa Gerd Hoffmann
        no_cdrom:1,
42 ac33f8fa Gerd Hoffmann
        no_sdcard:1;
43 0c257437 Anthony Liguori
    int is_default;
44 67b724e6 Anthony PERARD
    const char *default_machine_opts;
45 c1654732 Markus Armbruster
    const char *default_boot_order;
46 458fb679 Gerd Hoffmann
    GlobalProperty *compat_props;
47 87ecb68b pbrook
    struct QEMUMachine *next;
48 93bfef4c Crístian Viana
    const char *hw_version;
49 e689f7c6 Markus Armbruster
};
50 87ecb68b pbrook
51 87ecb68b pbrook
int qemu_register_machine(QEMUMachine *m);
52 2c8cffa5 Jordan Justen
QEMUMachine *find_default_machine(void);
53 87ecb68b pbrook
54 6f338c34 aliguori
extern QEMUMachine *current_machine;
55 6f338c34 aliguori
56 87ecb68b pbrook
#endif