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