x86: Make parts of what is currently the 32-bit specific structures common

This commit is contained in:
Adrian Danis 2015-07-02 14:53:29 +10:00
parent 78e2457e91
commit fbb4affde7
2 changed files with 77 additions and 74 deletions

View file

@ -200,25 +200,6 @@ block vm_attributes {
field ia32PWTBit 1
}
block ia32_pat_msr {
padding 5
field pa7 3
padding 5
field pa6 3
padding 5
field pa5 3
padding 5
field pa4 3
padding 5
field pa3 3
padding 5
field pa2 3
padding 5
field pa1 3
padding 5
field pa0 3
}
---- IA32 specific object types
-- GDT entries (Segment Desciptors)
@ -444,58 +425,3 @@ block pte {
field read_write 1
field present 1
}
-- Local APIC
block apic_base_msr {
field_high base_addr 20
field enabled 1
padding 2
field is_bsp 1
padding 8
}
block apic_version {
padding 8
field max_lvt_entry 8
padding 8
field version 8
}
block apic_svr {
padding 22
field focus_processor_chk 1
field enabled 1
field spurious_vector 8
}
block apic_lvt {
padding 13
field timer_mode 2
field masked 1
field trigger_mode 1
field remote_irr 1
field pin_polarity 1
field delivery_status 1
padding 1
field delivery_mode 3
field vector 8
}
block apic_icr1 {
padding 12
field dest_shorthand 2
padding 2
field trigger_mode 1
field level 1
padding 1
field delivery_status 1
field dest_mode 1
field delivery_mode 3
field vector 8
}
block apic_icr2 {
field dest 8
padding 24
}

View file

@ -9,3 +9,80 @@
--
#include <mode/object/structures.bf>
base 32
block ia32_pat_msr {
padding 5
field pa7 3
padding 5
field pa6 3
padding 5
field pa5 3
padding 5
field pa4 3
padding 5
field pa3 3
padding 5
field pa2 3
padding 5
field pa1 3
padding 5
field pa0 3
}
-- Local APIC
block apic_base_msr {
field_high base_addr 20
field enabled 1
padding 2
field is_bsp 1
padding 8
}
block apic_version {
padding 8
field max_lvt_entry 8
padding 8
field version 8
}
block apic_svr {
padding 22
field focus_processor_chk 1
field enabled 1
field spurious_vector 8
}
block apic_lvt {
padding 13
field timer_mode 2
field masked 1
field trigger_mode 1
field remote_irr 1
field pin_polarity 1
field delivery_status 1
padding 1
field delivery_mode 3
field vector 8
}
block apic_icr1 {
padding 12
field dest_shorthand 2
padding 2
field trigger_mode 1
field level 1
padding 1
field delivery_status 1
field dest_mode 1
field delivery_mode 3
field vector 8
}
block apic_icr2 {
field dest 8
padding 24
}