1*61fc27e0SAlexander Bulekov /* 2*61fc27e0SAlexander Bulekov * Generic Virtual-Device Fuzzing Target Configs 3*61fc27e0SAlexander Bulekov * 4*61fc27e0SAlexander Bulekov * Copyright Red Hat Inc., 2020 5*61fc27e0SAlexander Bulekov * 6*61fc27e0SAlexander Bulekov * Authors: 7*61fc27e0SAlexander Bulekov * Alexander Bulekov <alxndr@bu.edu> 8*61fc27e0SAlexander Bulekov * 9*61fc27e0SAlexander Bulekov * This work is licensed under the terms of the GNU GPL, version 2 or later. 10*61fc27e0SAlexander Bulekov * See the COPYING file in the top-level directory. 11*61fc27e0SAlexander Bulekov */ 12*61fc27e0SAlexander Bulekov 13*61fc27e0SAlexander Bulekov #ifndef GENERIC_FUZZ_CONFIGS_H 14*61fc27e0SAlexander Bulekov #define GENERIC_FUZZ_CONFIGS_H 15*61fc27e0SAlexander Bulekov 16*61fc27e0SAlexander Bulekov #include "qemu/osdep.h" 17*61fc27e0SAlexander Bulekov 18*61fc27e0SAlexander Bulekov typedef struct generic_fuzz_config { 19*61fc27e0SAlexander Bulekov const char *name, *args, *objects; 20*61fc27e0SAlexander Bulekov } generic_fuzz_config; 21*61fc27e0SAlexander Bulekov 22*61fc27e0SAlexander Bulekov const generic_fuzz_config predefined_configs[] = { 23*61fc27e0SAlexander Bulekov { 24*61fc27e0SAlexander Bulekov .name = "virtio-net-pci-slirp", 25*61fc27e0SAlexander Bulekov .args = "-M q35 -nodefaults " 26*61fc27e0SAlexander Bulekov "-device virtio-net,netdev=net0 -netdev user,id=net0", 27*61fc27e0SAlexander Bulekov .objects = "virtio*", 28*61fc27e0SAlexander Bulekov },{ 29*61fc27e0SAlexander Bulekov .name = "virtio-blk", 30*61fc27e0SAlexander Bulekov .args = "-machine q35 -device virtio-blk,drive=disk0 " 31*61fc27e0SAlexander Bulekov "-drive file=null-co://,id=disk0,if=none,format=raw", 32*61fc27e0SAlexander Bulekov .objects = "virtio*", 33*61fc27e0SAlexander Bulekov },{ 34*61fc27e0SAlexander Bulekov .name = "virtio-scsi", 35*61fc27e0SAlexander Bulekov .args = "-machine q35 -device virtio-scsi,num_queues=8 " 36*61fc27e0SAlexander Bulekov "-device scsi-hd,drive=disk0 " 37*61fc27e0SAlexander Bulekov "-drive file=null-co://,id=disk0,if=none,format=raw", 38*61fc27e0SAlexander Bulekov .objects = "scsi* virtio*", 39*61fc27e0SAlexander Bulekov },{ 40*61fc27e0SAlexander Bulekov .name = "virtio-gpu", 41*61fc27e0SAlexander Bulekov .args = "-machine q35 -nodefaults -device virtio-gpu", 42*61fc27e0SAlexander Bulekov .objects = "virtio*", 43*61fc27e0SAlexander Bulekov },{ 44*61fc27e0SAlexander Bulekov .name = "virtio-vga", 45*61fc27e0SAlexander Bulekov .args = "-machine q35 -nodefaults -device virtio-vga", 46*61fc27e0SAlexander Bulekov .objects = "virtio*", 47*61fc27e0SAlexander Bulekov },{ 48*61fc27e0SAlexander Bulekov .name = "virtio-rng", 49*61fc27e0SAlexander Bulekov .args = "-machine q35 -nodefaults -device virtio-rng", 50*61fc27e0SAlexander Bulekov .objects = "virtio*", 51*61fc27e0SAlexander Bulekov },{ 52*61fc27e0SAlexander Bulekov .name = "virtio-balloon", 53*61fc27e0SAlexander Bulekov .args = "-machine q35 -nodefaults -device virtio-balloon", 54*61fc27e0SAlexander Bulekov .objects = "virtio*", 55*61fc27e0SAlexander Bulekov },{ 56*61fc27e0SAlexander Bulekov .name = "virtio-serial", 57*61fc27e0SAlexander Bulekov .args = "-machine q35 -nodefaults -device virtio-serial", 58*61fc27e0SAlexander Bulekov .objects = "virtio*", 59*61fc27e0SAlexander Bulekov },{ 60*61fc27e0SAlexander Bulekov .name = "virtio-mouse", 61*61fc27e0SAlexander Bulekov .args = "-machine q35 -nodefaults -device virtio-mouse", 62*61fc27e0SAlexander Bulekov .objects = "virtio*", 63*61fc27e0SAlexander Bulekov },{ 64*61fc27e0SAlexander Bulekov .name = "e1000", 65*61fc27e0SAlexander Bulekov .args = "-M q35 -nodefaults " 66*61fc27e0SAlexander Bulekov "-device e1000,netdev=net0 -netdev user,id=net0", 67*61fc27e0SAlexander Bulekov .objects = "e1000", 68*61fc27e0SAlexander Bulekov },{ 69*61fc27e0SAlexander Bulekov .name = "e1000e", 70*61fc27e0SAlexander Bulekov .args = "-M q35 -nodefaults " 71*61fc27e0SAlexander Bulekov "-device e1000e,netdev=net0 -netdev user,id=net0", 72*61fc27e0SAlexander Bulekov .objects = "e1000e", 73*61fc27e0SAlexander Bulekov },{ 74*61fc27e0SAlexander Bulekov .name = "cirrus-vga", 75*61fc27e0SAlexander Bulekov .args = "-machine q35 -nodefaults -device cirrus-vga", 76*61fc27e0SAlexander Bulekov .objects = "cirrus*", 77*61fc27e0SAlexander Bulekov },{ 78*61fc27e0SAlexander Bulekov .name = "bochs-display", 79*61fc27e0SAlexander Bulekov .args = "-machine q35 -nodefaults -device bochs-display", 80*61fc27e0SAlexander Bulekov .objects = "bochs*", 81*61fc27e0SAlexander Bulekov },{ 82*61fc27e0SAlexander Bulekov .name = "intel-hda", 83*61fc27e0SAlexander Bulekov .args = "-machine q35 -nodefaults -device intel-hda,id=hda0 " 84*61fc27e0SAlexander Bulekov "-device hda-output,bus=hda0.0 -device hda-micro,bus=hda0.0 " 85*61fc27e0SAlexander Bulekov "-device hda-duplex,bus=hda0.0", 86*61fc27e0SAlexander Bulekov .objects = "intel-hda", 87*61fc27e0SAlexander Bulekov },{ 88*61fc27e0SAlexander Bulekov .name = "ide-hd", 89*61fc27e0SAlexander Bulekov .args = "-machine q35 -nodefaults " 90*61fc27e0SAlexander Bulekov "-drive file=null-co://,if=none,format=raw,id=disk0 " 91*61fc27e0SAlexander Bulekov "-device ide-hd,drive=disk0", 92*61fc27e0SAlexander Bulekov .objects = "ahci*", 93*61fc27e0SAlexander Bulekov },{ 94*61fc27e0SAlexander Bulekov .name = "floppy", 95*61fc27e0SAlexander Bulekov .args = "-machine pc -nodefaults -device floppy,id=floppy0 " 96*61fc27e0SAlexander Bulekov "-drive id=disk0,file=null-co://,file.read-zeroes=on,if=none " 97*61fc27e0SAlexander Bulekov "-device floppy,drive=disk0,drive-type=288", 98*61fc27e0SAlexander Bulekov .objects = "fd* floppy*", 99*61fc27e0SAlexander Bulekov },{ 100*61fc27e0SAlexander Bulekov .name = "xhci", 101*61fc27e0SAlexander Bulekov .args = "-machine q35 -nodefaults " 102*61fc27e0SAlexander Bulekov "-drive file=null-co://,if=none,format=raw,id=disk0 " 103*61fc27e0SAlexander Bulekov "-device qemu-xhci,id=xhci -device usb-tablet,bus=xhci.0 " 104*61fc27e0SAlexander Bulekov "-device usb-bot -device usb-storage,drive=disk0 " 105*61fc27e0SAlexander Bulekov "-chardev null,id=cd0 -chardev null,id=cd1 " 106*61fc27e0SAlexander Bulekov "-device usb-braille,chardev=cd0 -device usb-ccid -device usb-ccid " 107*61fc27e0SAlexander Bulekov "-device usb-kbd -device usb-mouse -device usb-serial,chardev=cd1 " 108*61fc27e0SAlexander Bulekov "-device usb-tablet -device usb-wacom-tablet -device usb-audio", 109*61fc27e0SAlexander Bulekov .objects = "*usb* *uhci* *xhci*", 110*61fc27e0SAlexander Bulekov },{ 111*61fc27e0SAlexander Bulekov .name = "pc-i440fx", 112*61fc27e0SAlexander Bulekov .args = "-machine pc", 113*61fc27e0SAlexander Bulekov .objects = "*", 114*61fc27e0SAlexander Bulekov },{ 115*61fc27e0SAlexander Bulekov .name = "pc-q35", 116*61fc27e0SAlexander Bulekov .args = "-machine q35", 117*61fc27e0SAlexander Bulekov .objects = "*", 118*61fc27e0SAlexander Bulekov } 119*61fc27e0SAlexander Bulekov }; 120*61fc27e0SAlexander Bulekov 121*61fc27e0SAlexander Bulekov #endif 122