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