Rev 195 | Rev 310 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 195 | Rev 268 | ||
---|---|---|---|
Line 112... | Line 112... | ||
112 | struct madt_apic_header *end = (struct madt_apic_header *) (((__u8 *) acpi_madt) + acpi_madt->header.length); |
112 | struct madt_apic_header *end = (struct madt_apic_header *) (((__u8 *) acpi_madt) + acpi_madt->header.length); |
113 | struct madt_apic_header *h = &acpi_madt->apic_header[0]; |
113 | struct madt_apic_header *h = &acpi_madt->apic_header[0]; |
114 | __u8 prev_type = 0; /* used to detect inconsecutive entries */ |
114 | __u8 prev_type = 0; /* used to detect inconsecutive entries */ |
115 | 115 | ||
116 | 116 | ||
117 | l_apic = (__u32 *) acpi_madt->l_apic_address; |
117 | l_apic = (__u32 *) (__native) acpi_madt->l_apic_address; |
118 | 118 | ||
119 | while (h < end) { |
119 | while (h < end) { |
120 | switch (h->type) { |
120 | switch (h->type) { |
121 | case MADT_L_APIC: |
121 | case MADT_L_APIC: |
122 | madt_l_apic_entry((struct madt_l_apic *) h, prev_type); |
122 | madt_l_apic_entry((struct madt_l_apic *) h, prev_type); |
Line 174... | Line 174... | ||
174 | if (madt_io_apic_entry_cnt && prev_type != MADT_IO_APIC) |
174 | if (madt_io_apic_entry_cnt && prev_type != MADT_IO_APIC) |
175 | panic("%s entries are not consecuitve\n", entry[MADT_IO_APIC]); |
175 | panic("%s entries are not consecuitve\n", entry[MADT_IO_APIC]); |
176 | 176 | ||
177 | if (!madt_io_apic_entry_cnt++) { |
177 | if (!madt_io_apic_entry_cnt++) { |
178 | madt_io_apic_entries = ioa; |
178 | madt_io_apic_entries = ioa; |
179 | io_apic = (__u32 *) ioa->io_apic_address; |
179 | io_apic = (__u32 *) (__native) ioa->io_apic_address; |
180 | } |
180 | } |
181 | else { |
181 | else { |
182 | /* currently not supported */ |
182 | /* currently not supported */ |
183 | return; |
183 | return; |
184 | } |
184 | } |