aboutsummaryrefslogtreecommitdiff
path: root/sys/amd64/include/smp.h
diff options
context:
space:
mode:
Diffstat (limited to 'sys/amd64/include/smp.h')
-rw-r--r--sys/amd64/include/smp.h48
1 files changed, 48 insertions, 0 deletions
diff --git a/sys/amd64/include/smp.h b/sys/amd64/include/smp.h
new file mode 100644
index 000000000000..8fbd89da0e57
--- /dev/null
+++ b/sys/amd64/include/smp.h
@@ -0,0 +1,48 @@
+/*-
+ * ----------------------------------------------------------------------------
+ * "THE BEER-WARE LICENSE" (Revision 42):
+ * <phk@FreeBSD.org> wrote this file. As long as you retain this notice you
+ * can do whatever you want with this stuff. If we meet some day, and you think
+ * this stuff is worth it, you can buy me a beer in return. Poul-Henning Kamp
+ * ----------------------------------------------------------------------------
+ *
+ * $FreeBSD$
+ *
+ */
+
+#ifndef _MACHINE_SMP_H_
+#define _MACHINE_SMP_H_
+
+#ifdef _KERNEL
+
+#ifdef SMP
+
+#ifndef LOCORE
+
+#include <x86/x86_smp.h>
+
+/* global symbols in mpboot.S */
+extern char mptramp_start[];
+extern u_int32_t mptramp_pagetables;
+
+/* IPI handlers */
+inthand_t
+ IDTVEC(justreturn), /* interrupt CPU with minimum overhead */
+ IDTVEC(justreturn1_pti),
+ IDTVEC(invlop_pti),
+ IDTVEC(invlop),
+ IDTVEC(ipi_intr_bitmap_handler_pti),
+ IDTVEC(ipi_swi_pti),
+ IDTVEC(cpustop_pti),
+ IDTVEC(cpususpend_pti),
+ IDTVEC(rendezvous_pti);
+
+void invlop_handler(void);
+int native_start_all_aps(void);
+void mp_bootaddress(vm_paddr_t *, unsigned int *);
+
+#endif /* !LOCORE */
+#endif /* SMP */
+
+#endif /* _KERNEL */
+#endif /* _MACHINE_SMP_H_ */