Je suis plusieurs didacticiels et références essayant de configurer mon noyau. J'ai rencontré un code peu familier dans un tutoriel qui ne l'explique pas du tout. Il est le code que je suis dit mappe le 16 IRQs (0-15)
aux ISR emplacements 32-47
:Configuration du mappage IRQ
void irq_remap(void)
{
outportb(0x20, 0x11);
outportb(0xA0, 0x11);
outportb(0x21, 0x20);
outportb(0xA1, 0x28);
outportb(0x21, 0x04);
outportb(0xA1, 0x02);
outportb(0x21, 0x01);
outportb(0xA1, 0x01);
outportb(0x21, 0x0);
outportb(0xA1, 0x0);
}
Le code pour outportb()
est la suivante, mais j'ai déjà une compréhension claire de ce que son fait:
void outPortB(unsigned short port, unsigned char data)
{
__asm__ __volatile__ ("outb %1, %0" : : "dN" (port), "a" (data));
}
I devrait mentionner que c'est sur l'architecture x86 en mode protégé. Ce code source fonctionne bien et je comprends ce qu'il fait, mais je ne comprends pas comment il le fait. Quelqu'un peut-il m'expliquer ce qui se passe ici, au cas où je devrais m'étendre là-dessus, je saurai ce que je fais?
Wow, c'est exactement ce dont j'avais besoin. Merci les régimes! –