From 98528dbc4af880a24a7aa3ccfdbc59856865dc7e Mon Sep 17 00:00:00 2001 From: Nathan Giddings Date: Tue, 7 Nov 2023 12:36:59 -0600 Subject: [PATCH] Created x86/mp.h --- include/x86/mp.h | 53 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 include/x86/mp.h diff --git a/include/x86/mp.h b/include/x86/mp.h new file mode 100644 index 0000000..7d31065 --- /dev/null +++ b/include/x86/mp.h @@ -0,0 +1,53 @@ +#include + +#define MP_SIGNATURE (uint32_t) 0x5F504D5F + +struct mp_floating_pointer +{ + /** + * @brief The ASCII string "_MP_" indicates the presence of the pointer structure. + * + */ + uint32_t signature; + + /** + * @brief The physical address of the MP configuration table. All zeroes if + * the table does not exist. + * + */ + uint32_t physical_addr; + + /** + * @brief The length of the floating pointer structure in 16-byte units. + * Should contain the value '0x01'. + * + */ + uint8_t length; + + /** + * @brief The version number of the MP specification supported. + * + */ + uint8_t spec_rev; + + /** + * @brief A checksum of the pointer structure. + * + */ + uint8_t checksum; + + /** + * @brief When zero, the configuration table is present. Otherwise, the + * value indicates a default configuration. + * + */ + uint8_t config_type; + + uint8_t undef : 7; + + /** + * @brief + * + */ + uint8_t imcrp : 1; +} __attribute__ ((packed)); \ No newline at end of file