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