xref: /kvmtool/include/kvm/kvm-config.h (revision 25cf3198b589292cf14880c53873de9ff87e089d)
1b54cb31cSSasha Levin #ifndef KVM_CONFIG_H_
2b54cb31cSSasha Levin #define KVM_CONFIG_H_
3b54cb31cSSasha Levin 
4b54cb31cSSasha Levin #include "kvm/disk-image.h"
56078a454SJean-Philippe Brucker #include "kvm/vfio.h"
6ff7ba6faSWill Deacon #include "kvm/kvm-config-arch.h"
7b54cb31cSSasha Levin 
8b54cb31cSSasha Levin #define DEFAULT_KVM_DEV		"/dev/kvm"
9b54cb31cSSasha Levin #define DEFAULT_CONSOLE		"serial"
10b54cb31cSSasha Levin #define DEFAULT_NETWORK		"user"
11b54cb31cSSasha Levin #define DEFAULT_HOST_ADDR	"192.168.33.1"
12b54cb31cSSasha Levin #define DEFAULT_GUEST_ADDR	"192.168.33.15"
13b54cb31cSSasha Levin #define DEFAULT_GUEST_MAC	"02:15:15:15:15:15"
14b54cb31cSSasha Levin #define DEFAULT_HOST_MAC	"02:01:01:01:01:01"
15b54cb31cSSasha Levin #define DEFAULT_SCRIPT		"none"
16b54cb31cSSasha Levin #define DEFAULT_SANDBOX_FILENAME "guest/sandbox.sh"
17b54cb31cSSasha Levin 
18b54cb31cSSasha Levin #define MIN_RAM_SIZE_MB		(64ULL)
19b54cb31cSSasha Levin #define MIN_RAM_SIZE_BYTE	(MIN_RAM_SIZE_MB << MB_SHIFT)
20b54cb31cSSasha Levin 
21b54cb31cSSasha Levin struct kvm_config {
22ff7ba6faSWill Deacon 	struct kvm_config_arch arch;
23b54cb31cSSasha Levin 	struct disk_image_params disk_image[MAX_DISK_IMAGES];
246078a454SJean-Philippe Brucker 	struct vfio_device_params *vfio_devices;
25b54cb31cSSasha Levin 	u64 ram_size;
26b54cb31cSSasha Levin 	u8  image_count;
27b54cb31cSSasha Levin 	u8 num_net_devices;
286078a454SJean-Philippe Brucker 	u8 num_vfio_devices;
29b54cb31cSSasha Levin 	bool virtio_rng;
302651ea58SSasha Levin 	int active_console;
313b55dcdeSSasha Levin 	int debug_iodelay;
3200ebbe96SSasha Levin 	int nrcpus;
33b54cb31cSSasha Levin 	const char *kernel_cmdline;
34b54cb31cSSasha Levin 	const char *kernel_filename;
35b54cb31cSSasha Levin 	const char *vmlinux_filename;
36b54cb31cSSasha Levin 	const char *initrd_filename;
37b54cb31cSSasha Levin 	const char *firmware_filename;
38*25cf3198SRaphael Gault 	const char *flash_filename;
39b54cb31cSSasha Levin 	const char *console;
40b54cb31cSSasha Levin 	const char *dev;
41b54cb31cSSasha Levin 	const char *network;
42b54cb31cSSasha Levin 	const char *host_ip;
43b54cb31cSSasha Levin 	const char *guest_ip;
44b54cb31cSSasha Levin 	const char *guest_mac;
45b54cb31cSSasha Levin 	const char *host_mac;
46b54cb31cSSasha Levin 	const char *script;
47b54cb31cSSasha Levin 	const char *guest_name;
48b54cb31cSSasha Levin 	const char *sandbox;
49b54cb31cSSasha Levin 	const char *hugetlbfs_path;
50b54cb31cSSasha Levin 	const char *custom_rootfs_name;
51084a1356SSasha Levin 	const char *real_cmdline;
52b54cb31cSSasha Levin 	struct virtio_net_params *net_params;
53b54cb31cSSasha Levin 	bool single_step;
54b54cb31cSSasha Levin 	bool vnc;
557bcceb95SPekka Enberg 	bool gtk;
56b54cb31cSSasha Levin 	bool sdl;
57b54cb31cSSasha Levin 	bool balloon;
58b54cb31cSSasha Levin 	bool using_rootfs;
59b54cb31cSSasha Levin 	bool custom_rootfs;
60b54cb31cSSasha Levin 	bool no_net;
61b54cb31cSSasha Levin 	bool no_dhcp;
625765977dSSasha Levin 	bool ioport_debug;
63e830cce7SSasha Levin 	bool mmio_debug;
64b54cb31cSSasha Levin };
65b54cb31cSSasha Levin 
66b54cb31cSSasha Levin #endif
67