xref: /kvmtool/include/kvm/kvm-config.h (revision 117d64953228afa90b52f6e1b4873770643ffdc9)
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;
29*117d6495STianjia Zhang 	u64 vsock_cid;
30b54cb31cSSasha Levin 	bool virtio_rng;
312651ea58SSasha Levin 	int active_console;
323b55dcdeSSasha Levin 	int debug_iodelay;
3300ebbe96SSasha Levin 	int nrcpus;
34b54cb31cSSasha Levin 	const char *kernel_cmdline;
35b54cb31cSSasha Levin 	const char *kernel_filename;
36b54cb31cSSasha Levin 	const char *vmlinux_filename;
37b54cb31cSSasha Levin 	const char *initrd_filename;
38b54cb31cSSasha Levin 	const char *firmware_filename;
3925cf3198SRaphael Gault 	const char *flash_filename;
40b54cb31cSSasha Levin 	const char *console;
41b54cb31cSSasha Levin 	const char *dev;
42b54cb31cSSasha Levin 	const char *network;
43b54cb31cSSasha Levin 	const char *host_ip;
44b54cb31cSSasha Levin 	const char *guest_ip;
45b54cb31cSSasha Levin 	const char *guest_mac;
46b54cb31cSSasha Levin 	const char *host_mac;
47b54cb31cSSasha Levin 	const char *script;
48b54cb31cSSasha Levin 	const char *guest_name;
49b54cb31cSSasha Levin 	const char *sandbox;
50b54cb31cSSasha Levin 	const char *hugetlbfs_path;
51b54cb31cSSasha Levin 	const char *custom_rootfs_name;
52084a1356SSasha Levin 	const char *real_cmdline;
53b54cb31cSSasha Levin 	struct virtio_net_params *net_params;
54b54cb31cSSasha Levin 	bool single_step;
55b54cb31cSSasha Levin 	bool vnc;
567bcceb95SPekka Enberg 	bool gtk;
57b54cb31cSSasha Levin 	bool sdl;
58b54cb31cSSasha Levin 	bool balloon;
59b54cb31cSSasha Levin 	bool using_rootfs;
60b54cb31cSSasha Levin 	bool custom_rootfs;
61b54cb31cSSasha Levin 	bool no_net;
62b54cb31cSSasha Levin 	bool no_dhcp;
635765977dSSasha Levin 	bool ioport_debug;
64e830cce7SSasha Levin 	bool mmio_debug;
65b54cb31cSSasha Levin };
66b54cb31cSSasha Levin 
67b54cb31cSSasha Levin #endif
68