acpi_apic
acpi_apic *apic = (acpi_apic *)((uint8 *)madt + sizeof(acpi_madt));
acpi_apic *end = (acpi_apic *)((uint8 *)madt + madt->header.length);
apic = (acpi_apic *)((uint8 *)apic + apic->length);
desc = (acpi_apic*)((char*)desc + desc->length);
acpi_apic *desc = (acpi_apic*)(madt + 1);
while (desc != (acpi_apic*)((char*)madt + madt->header.length)) {
acpi_apic *apic = (acpi_apic *)((uint8 *)madt + sizeof(acpi_madt));
acpi_apic *end = (acpi_apic *)((uint8 *)madt + madt->header.length);
apic = (acpi_apic *)((uint8 *)apic + apic->length);