📄 mp.h
字号:
// See MultiProcessor Specification Version 1.[14]struct mp { // floating pointer uchar signature[4]; // "_MP_" void *physaddr; // phys addr of MP config table uchar length; // 1 uchar specrev; // [14] uchar checksum; // all bytes must add up to 0 uchar type; // MP system config type uchar imcrp; uchar reserved[3];};struct mpconf { // configuration table header uchar signature[4]; // "PCMP" ushort length; // total table length uchar version; // [14] uchar checksum; // all bytes must add up to 0 uchar product[20]; // product id uint *oemtable; // OEM table pointer ushort oemlength; // OEM table length ushort entry; // entry count uint *lapicaddr; // address of local APIC ushort xlength; // extended table length uchar xchecksum; // extended table checksum uchar reserved;};struct mpproc { // processor table entry uchar type; // entry type (0) uchar apicid; // local APIC id uchar version; // local APIC verison uchar flags; // CPU flags #define MPBOOT 0x02 // This proc is the bootstrap processor. uchar signature[4]; // CPU signature uint feature; // feature flags from CPUID instruction uchar reserved[8];};struct mpioapic { // I/O APIC table entry uchar type; // entry type (2) uchar apicno; // I/O APIC id uchar version; // I/O APIC version uchar flags; // I/O APIC flags uint *addr; // I/O APIC address};// Table entry types#define MPPROC 0x00 // One per processor#define MPBUS 0x01 // One per bus#define MPIOAPIC 0x02 // One per I/O APIC#define MPIOINTR 0x03 // One per bus interrupt source#define MPLINTR 0x04 // One per system interrupt source
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -