Рекурсивные макросы C

Я строю ядро, в котором у меня есть 192 обработчика IRQ. Мне нужно сопоставить обработчики IRQ "192" с системной глобальной IDT. Из них мне нужно отобразить обработчики в диапазоне 32-192 как IRQ устройства.

MapHandler(unsigned short int vector, unsigned long int functorAddress, IDT *);

Мои устройства-IRQ-обработчики в asm построены как -

%macro decl_IRQ 1
global __irqCallback%1
__irqCallback%1:
        PUSHAD
        PUSH DWORD 1
        CALL HandleDeviceIRQ
        ADD ESP, 4
        POPAD
        IRET
%endmacro

decl_IRQ 32
.
.
;// all the way to
decl_IRQ 192

Теперь мой вопрос: как мне сопоставить все эти 160 IRQ устройств, используя макросы? Должен ли я печатать

import_asm void __irqCallback32();// note that #define import_asm extern "C"
import_asm void __irqCallback33();
// ...
// ...
import_asm void __irqCallback192();

а затем также

MapHandler(...);// 160 times

Пожалуйста, дайте какой-нибудь итерационный метод MACRO, чтобы сделать все это?

0 ответов

Другие вопросы по тегам