Да как бы все там же, в документации по API KOS
http://gamedev.allusion.net/docs/kos-cur...ic_8h.html
Пример:
PHP код:
static void g1_dma_done_irq(uint32 src) {
dbglog(DBG_INFO, "g1_dma_done_irq: 0x%08lx\n", src);
}
asic_evt_set_handler(ASIC_EVT_GD_DMA, g1_dma_done_irq);
asic_evt_enable(ASIC_EVT_GD_DMA, ASIC_IRQ_DEFAULT);
Но что-то я сейчас посмотрел, тебе придется что-то придумать с сисколом gdc_exec_server, так как чтобы твоя команда сработала, нужно дергать этот сискол в цикле и опрашивать состояние.
http://sourceforge.net/p/cadcdev/kallist...drom.c#l99
В принципе проще наверное было бы попробовать на тредах сделать, так как драйвер привода в KOS расчитан на это. Накладные расходы я думаю не должны быть существенными.
Создай отдельный тред для чтения диска и поставь там семафор. Когда нужны будут новые данные, посигналишь семафору и тред отработает свой цикл пока не встанет на семафоре опять (естественно цикл нужно сделать самому).