mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 20:57:35 +00:00
Kernel: Simplify MP table parser a little bit more
Get rid of the ConfigurationTableEntryLength enum and just look at the sizeof() for each entry type.
This commit is contained in:
parent
7379c589c7
commit
b8af5cd8da
2 changed files with 8 additions and 19 deletions
|
@ -73,30 +73,30 @@ void MultiProcessorParser::parse_configuration_table()
|
||||||
#endif
|
#endif
|
||||||
switch (entry->entry_type) {
|
switch (entry->entry_type) {
|
||||||
case ((u8)MultiProcessor::ConfigurationTableEntryType::Processor):
|
case ((u8)MultiProcessor::ConfigurationTableEntryType::Processor):
|
||||||
entry = (MultiProcessor::EntryHeader*)(u32)entry + (u8)MultiProcessor::ConfigurationTableEntryLength::Processor;
|
entry = (MultiProcessor::EntryHeader*)(FlatPtr)entry + sizeof(MultiProcessor::ProcessorEntry);
|
||||||
break;
|
break;
|
||||||
case ((u8)MultiProcessor::ConfigurationTableEntryType::Bus):
|
case ((u8)MultiProcessor::ConfigurationTableEntryType::Bus):
|
||||||
m_bus_entries.append(*(const MultiProcessor::BusEntry*)entry);
|
m_bus_entries.append(*(const MultiProcessor::BusEntry*)entry);
|
||||||
entry = (MultiProcessor::EntryHeader*)(u32)entry + (u8)MultiProcessor::ConfigurationTableEntryLength::Bus;
|
entry = (MultiProcessor::EntryHeader*)(FlatPtr)entry + sizeof(MultiProcessor::BusEntry);
|
||||||
break;
|
break;
|
||||||
case ((u8)MultiProcessor::ConfigurationTableEntryType::IOAPIC):
|
case ((u8)MultiProcessor::ConfigurationTableEntryType::IOAPIC):
|
||||||
entry = (MultiProcessor::EntryHeader*)(u32)entry + (u8)MultiProcessor::ConfigurationTableEntryLength::IOAPIC;
|
entry = (MultiProcessor::EntryHeader*)(FlatPtr)entry + sizeof(MultiProcessor::IOAPICEntry);
|
||||||
break;
|
break;
|
||||||
case ((u8)MultiProcessor::ConfigurationTableEntryType::IO_Interrupt_Assignment):
|
case ((u8)MultiProcessor::ConfigurationTableEntryType::IO_Interrupt_Assignment):
|
||||||
m_io_interrupt_assignment_entries.append(*(const MultiProcessor::IOInterruptAssignmentEntry*)entry);
|
m_io_interrupt_assignment_entries.append(*(const MultiProcessor::IOInterruptAssignmentEntry*)entry);
|
||||||
entry = (MultiProcessor::EntryHeader*)(u32)entry + (u8)MultiProcessor::ConfigurationTableEntryLength::IO_Interrupt_Assignment;
|
entry = (MultiProcessor::EntryHeader*)(FlatPtr)entry + sizeof(MultiProcessor::IOInterruptAssignmentEntry);
|
||||||
break;
|
break;
|
||||||
case ((u8)MultiProcessor::ConfigurationTableEntryType::Local_Interrupt_Assignment):
|
case ((u8)MultiProcessor::ConfigurationTableEntryType::Local_Interrupt_Assignment):
|
||||||
entry = (MultiProcessor::EntryHeader*)(u32)entry + (u8)MultiProcessor::ConfigurationTableEntryLength::Local_Interrupt_Assignment;
|
entry = (MultiProcessor::EntryHeader*)(FlatPtr)entry + sizeof(MultiProcessor::LocalInterruptAssignmentEntry);
|
||||||
break;
|
break;
|
||||||
case ((u8)MultiProcessor::ConfigurationTableEntryType::SystemAddressSpaceMapping):
|
case ((u8)MultiProcessor::ConfigurationTableEntryType::SystemAddressSpaceMapping):
|
||||||
entry = (MultiProcessor::EntryHeader*)(u32)entry + (u8)MultiProcessor::ConfigurationTableEntryLength::SystemAddressSpaceMapping;
|
entry = (MultiProcessor::EntryHeader*)(FlatPtr)entry + sizeof(MultiProcessor::SystemAddressSpaceMappingEntry);
|
||||||
break;
|
break;
|
||||||
case ((u8)MultiProcessor::ConfigurationTableEntryType::BusHierarchyDescriptor):
|
case ((u8)MultiProcessor::ConfigurationTableEntryType::BusHierarchyDescriptor):
|
||||||
entry = (MultiProcessor::EntryHeader*)(u32)entry + (u8)MultiProcessor::ConfigurationTableEntryLength::BusHierarchyDescriptor;
|
entry = (MultiProcessor::EntryHeader*)(FlatPtr)entry + sizeof(MultiProcessor::BusHierarchyDescriptorEntry);
|
||||||
break;
|
break;
|
||||||
case ((u8)MultiProcessor::ConfigurationTableEntryType::CompatibilityBusAddressSpaceModifier):
|
case ((u8)MultiProcessor::ConfigurationTableEntryType::CompatibilityBusAddressSpaceModifier):
|
||||||
entry = (MultiProcessor::EntryHeader*)(u32)entry + (u8)MultiProcessor::ConfigurationTableEntryLength::CompatibilityBusAddressSpaceModifier;
|
entry = (MultiProcessor::EntryHeader*)(FlatPtr)entry + sizeof(MultiProcessor::CompatibilityBusAddressSpaceModifierEntry);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
ASSERT_NOT_REACHED();
|
ASSERT_NOT_REACHED();
|
||||||
|
|
|
@ -78,17 +78,6 @@ enum class ConfigurationTableEntryType {
|
||||||
CompatibilityBusAddressSpaceModifier = 130
|
CompatibilityBusAddressSpaceModifier = 130
|
||||||
};
|
};
|
||||||
|
|
||||||
enum class ConfigurationTableEntryLength {
|
|
||||||
Processor = 20,
|
|
||||||
Bus = 8,
|
|
||||||
IOAPIC = 8,
|
|
||||||
IO_Interrupt_Assignment = 8,
|
|
||||||
Local_Interrupt_Assignment = 8,
|
|
||||||
SystemAddressSpaceMapping = 20,
|
|
||||||
BusHierarchyDescriptor = 8,
|
|
||||||
CompatibilityBusAddressSpaceModifier = 8
|
|
||||||
};
|
|
||||||
|
|
||||||
struct [[gnu::packed]] ExtEntryHeader
|
struct [[gnu::packed]] ExtEntryHeader
|
||||||
{
|
{
|
||||||
u8 entry_type;
|
u8 entry_type;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue