xref: /kvmtool/include/kvm/kvm-config.h (revision 9b46ebc561d3cc3bb54a350e4eed94d24562f347)
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 
89d655190SAlexandru Elisei #include <linux/sizes.h>
99d655190SAlexandru Elisei 
10b54cb31cSSasha Levin #define DEFAULT_KVM_DEV		"/dev/kvm"
11b54cb31cSSasha Levin #define DEFAULT_CONSOLE		"serial"
12b54cb31cSSasha Levin #define DEFAULT_NETWORK		"user"
13b54cb31cSSasha Levin #define DEFAULT_HOST_ADDR	"192.168.33.1"
14b54cb31cSSasha Levin #define DEFAULT_GUEST_ADDR	"192.168.33.15"
15b54cb31cSSasha Levin #define DEFAULT_GUEST_MAC	"02:15:15:15:15:15"
16b54cb31cSSasha Levin #define DEFAULT_HOST_MAC	"02:01:01:01:01:01"
17b54cb31cSSasha Levin #define DEFAULT_SCRIPT		"none"
18b54cb31cSSasha Levin #define DEFAULT_SANDBOX_FILENAME "guest/sandbox.sh"
19b54cb31cSSasha Levin 
209d655190SAlexandru Elisei #define MIN_RAM_SIZE		SZ_64M
21b54cb31cSSasha Levin 
22b54cb31cSSasha Levin struct kvm_config {
23ff7ba6faSWill Deacon 	struct kvm_config_arch arch;
24b54cb31cSSasha Levin 	struct disk_image_params disk_image[MAX_DISK_IMAGES];
256078a454SJean-Philippe Brucker 	struct vfio_device_params *vfio_devices;
268b91a182SAlexandru Elisei 	u64 ram_addr;		/* Guest memory physical base address, in bytes */
279d655190SAlexandru Elisei 	u64 ram_size;		/* Guest memory size, in bytes */
28b54cb31cSSasha Levin 	u8 num_net_devices;
296078a454SJean-Philippe Brucker 	u8 num_vfio_devices;
30117d6495STianjia Zhang 	u64 vsock_cid;
31b54cb31cSSasha Levin 	bool virtio_rng;
325613ae26SAlexandru Elisei 	bool nodefaults;
332651ea58SSasha Levin 	int active_console;
343b55dcdeSSasha Levin 	int debug_iodelay;
3500ebbe96SSasha Levin 	int nrcpus;
36b54cb31cSSasha Levin 	const char *kernel_cmdline;
37b54cb31cSSasha Levin 	const char *kernel_filename;
38b54cb31cSSasha Levin 	const char *vmlinux_filename;
39b54cb31cSSasha Levin 	const char *initrd_filename;
40b54cb31cSSasha Levin 	const char *firmware_filename;
4125cf3198SRaphael Gault 	const char *flash_filename;
42b54cb31cSSasha Levin 	const char *console;
43b54cb31cSSasha Levin 	const char *dev;
44b54cb31cSSasha Levin 	const char *network;
45b54cb31cSSasha Levin 	const char *host_ip;
46b54cb31cSSasha Levin 	const char *guest_ip;
47b54cb31cSSasha Levin 	const char *guest_mac;
48b54cb31cSSasha Levin 	const char *host_mac;
49b54cb31cSSasha Levin 	const char *script;
50b54cb31cSSasha Levin 	const char *guest_name;
51b54cb31cSSasha Levin 	const char *sandbox;
52b54cb31cSSasha Levin 	const char *hugetlbfs_path;
53b54cb31cSSasha Levin 	const char *custom_rootfs_name;
54084a1356SSasha Levin 	const char *real_cmdline;
55b54cb31cSSasha Levin 	struct virtio_net_params *net_params;
56b54cb31cSSasha Levin 	bool single_step;
57b54cb31cSSasha Levin 	bool vnc;
587bcceb95SPekka Enberg 	bool gtk;
59b54cb31cSSasha Levin 	bool sdl;
60b54cb31cSSasha Levin 	bool balloon;
61b54cb31cSSasha Levin 	bool using_rootfs;
62b54cb31cSSasha Levin 	bool custom_rootfs;
63b54cb31cSSasha Levin 	bool no_net;
64b54cb31cSSasha Levin 	bool no_dhcp;
655765977dSSasha Levin 	bool ioport_debug;
66e830cce7SSasha Levin 	bool mmio_debug;
67*9b46ebc5SRajnesh Kanwal 	int virtio_transport;
68b54cb31cSSasha Levin };
69b54cb31cSSasha Levin 
70b54cb31cSSasha Levin #endif
71