aboutsummaryrefslogtreecommitdiff
path: root/sys/include
diff options
context:
space:
mode:
authorIan Moffett <ian@osmora.org>2023-12-19 22:08:43 -0500
committerIan Moffett <ian@osmora.org>2023-12-19 22:08:43 -0500
commite07242e3a1589742772732c4e739f78bdab20a00 (patch)
treebe63a8cc66ce3388dc73ba1c441e816ae18ec5d3 /sys/include
parent4a6226af28a98501c05d961d8878c5e1091d0dee (diff)
kernel/amd64: lapic: Fixup LAPIC state tracking
This commit removes the lapic_set_base() function and certain globals from the Local APIC driver so it won't cause problems on hardware with many CPU sockets or that is just wacky. Signed-off-by: Ian Moffett <ian@osmora.org>
Diffstat (limited to 'sys/include')
-rw-r--r--sys/include/arch/amd64/cpu.h2
-rw-r--r--sys/include/arch/amd64/lapic.h1
-rw-r--r--sys/include/firmware/acpi/acpi.h3
3 files changed, 4 insertions, 2 deletions
diff --git a/sys/include/arch/amd64/cpu.h b/sys/include/arch/amd64/cpu.h
index 9645aac..ff294de 100644
--- a/sys/include/arch/amd64/cpu.h
+++ b/sys/include/arch/amd64/cpu.h
@@ -54,6 +54,8 @@ struct cpu_info {
/* AMD64 */
volatile size_t lapic_tmr_freq;
+ volatile void *lapic_base;
+ volatile bool has_x2apic;
volatile struct tss_entry *tss;
};
diff --git a/sys/include/arch/amd64/lapic.h b/sys/include/arch/amd64/lapic.h
index 11edfe4..1e7caf6 100644
--- a/sys/include/arch/amd64/lapic.h
+++ b/sys/include/arch/amd64/lapic.h
@@ -36,7 +36,6 @@
#define LAPIC_TMR_PERIODIC 0x01
void lapic_timer_init(size_t *freq_out);
-void lapic_set_base(void *mmio_base);
void lapic_init(void);
#endif /* !_AMD64_LAPIC_H_ */
diff --git a/sys/include/firmware/acpi/acpi.h b/sys/include/firmware/acpi/acpi.h
index 3352627..7d092e7 100644
--- a/sys/include/firmware/acpi/acpi.h
+++ b/sys/include/firmware/acpi/acpi.h
@@ -31,6 +31,7 @@
#define _ACPI_ACPI_H_
#include <firmware/acpi/tables.h>
+#include <machine/cpu.h>
#include <sys/types.h>
void acpi_init(void);
@@ -39,6 +40,6 @@ void *acpi_query(const char *query);
bool acpi_is_checksum_valid(struct acpi_header *hdr);
struct acpi_root_sdt *acpi_get_root_sdt(void);
size_t acpi_get_root_sdt_len(void);
-void acpi_parse_madt(void);
+void acpi_parse_madt(struct cpu_info *ci);
#endif /* !_ACPI_ACPI_H_ */