Hi, > > The explanation is simple. Unlike most devices, the ccw devices aren't > > portable. In particular both css.c and css.h includes "cpu.h", and > > virtio-ccw-gpu.c includes "qemu/osdep.h". Furthermore osdep.h contains: > > #ifdef NEED_CPU_H > > #include CONFIG_TARGET > > #else > > #include "exec/poison.h" > > #endif > > so if we don't have NEED_CPU_H, among others CONFIG_KVM is poisoned, and > > CONFIG_KVM is used in "css.h". Frankly, I can't tell under what > > circumstances > > does css need "cpu.h". > > s390_crw_mchk() and s390_io_interrupt() are in cpu.h. Nowadays, they > use the flic to inject interrupts; but their earlier implementations > had a dummy cpu state. > > I'm wondering whether s390_flic.h is a better place for functions > injecting floating interrupts, now that we don't have the non-flic > support anymore.
Sounds like the easiest way forward. Alternatively add support for target-specific modules (which we don't really have right now). (modular-izing virtio-gpu-ccw makes sense indeed, virtio-gpu-pci is a module for pretty much the same reasons). take care, Gerd