Hi, I'm AlmuHS, the Hurd SMP developer Last week, we had talking in IRC about how to parse IRQs from MADT table. I write you to notice the progress in this topic.
At first, I've added a new case for IRQ Override Entry in the APIC parser code, and finished the most of IRQ Override parsing from MADT table. You can check the progress here: https://github.com/AlmuHS/GNUMach_SMP/blob/smp-new/i386/i386at/acpi_parse_apic.c#L560-L564 Some things, as the initialization to a defined value, is missing yet. I added this defines, but I'm not sure about how to use them in the code. #define APIC_IRQ_OVERRIDE_ACTIVE_LOW 2 #define APIC_IRQ_OVERRIDE_LEVEL_TRIGGERED 8 At second thing, I've also did other code modifications: to improve the code style, I've moved the APIC structures to a sources file, and I've implemented a set of functions to manipulate these following an OOP-like model. Now, all operations and access to APIC structures must be done using these functions. You can see this new "library" here: https://github.com/AlmuHS/GNUMach_SMP/blob/smp-new/i386/i386/apic.c I've also done some little changes in APIC header, renaming some structures to better names https://github.com/AlmuHS/GNUMach_SMP/blob/smp-new/i386/i386/apic.h You can see all the changes in the commits log in my GitHub repository If the development goes well, the first patch can be ready in a weeks. https://github.com/AlmuHS/GNUMach_SMP/commits/smp-new Check my code and take me your opinions about this. Thanks, and I wait your response