#include <mps.h>
Collaboration diagram for Zygoma::ia32::MPS::FloatingPointer:
This structire is located through an autodiscovery process detailed in mps_page_autodicovery. If it is not found through that process, the hardware is not MPS compliant and the boottime autodiscovery must fall back to legacy detection schemes.
Public Member Functions | |
ConfigTableHeader * | configTableHeader () const |
Gets a pointer to the MP configuration table. | |
u08 | configType () const |
Gets the MP system configuration type. | |
bool | imcrIsPresent () const |
Indicates if the IMCR (interrupt mode configuration register) is present or not. | |
Static Public Member Functions | |
static const FloatingPointer * | locateMPFP () |
Tries to locate the Multiprocessor Spec Floating Pointer structure. | |
Static Public Attributes | |
static const int | kSIGNATURE_LENGTH = 4 |
static const u08 | kSIGNATURE [kSIGNATURE_LENGTH] |
The signature of a MPFP. | |
static const FloatingPointer * | kNOT_FOUND = 0 |
The value returned when locateMPFP fails. |
|
Gets a pointer to the MP configuration table.
|
|
Gets the MP system configuration type. A non-zero value indicates one of the MPS default configurations, a zero value indicates the configuration table is present and will describe the actual configuration. |
|
Indicates if the IMCR (interrupt mode configuration register) is present or not. If present, the system can be put into PIC mode, otherwise it would be using Virtual Wire Mode by default (see the documentation in apic.h). |
|
Tries to locate the Multiprocessor Spec Floating Pointer structure. This function performs autodiscovery of the MPS Floating Pointer structure, which is used to determine whether the system uses a default or a custom MPS configuration. If there is no MPFP table found at all, the system does not support the Intel MultiProcessor Specification. This version doesn't check the EBDA, since I can't figure out what it's supposed to do.
Here is the call graph for this function: |
|
The value returned when locateMPFP fails.
|
|
Initial value: { '_', 'M', 'P', '_' }
|
|
|