Пишется эмулятор устройства, которое получает данные откуда-то из внешнего мира (но при этом не является сетевой картой). Приход данных не привязан ни к каким событиям в эмулируемой машине и сопровождается прерыванием. Как правильно программировать такие вещи в рамках qemu? Мне пока что не приходит в голову ничего лучше, чем создать отдельную нить, котоая будет слушать какой-то управляющий сокет и вызывать qemu_set_irq.