aboutsummaryrefslogtreecommitdiff
path: root/sys/arm/include/smp.h
diff options
context:
space:
mode:
Diffstat (limited to 'sys/arm/include/smp.h')
-rw-r--r--sys/arm/include/smp.h35
1 files changed, 35 insertions, 0 deletions
diff --git a/sys/arm/include/smp.h b/sys/arm/include/smp.h
new file mode 100644
index 000000000000..4f1545872a4e
--- /dev/null
+++ b/sys/arm/include/smp.h
@@ -0,0 +1,35 @@
+/* $FreeBSD$ */
+
+#ifndef _MACHINE_SMP_H_
+#define _MACHINE_SMP_H_
+
+#include <sys/_cpuset.h>
+#include <machine/pcb.h>
+
+enum {
+ IPI_AST,
+ IPI_PREEMPT,
+ IPI_RENDEZVOUS,
+ IPI_STOP,
+ IPI_STOP_HARD = IPI_STOP, /* These are synonyms on arm. */
+ IPI_HARDCLOCK,
+ IPI_TLB, /* Not used now, but keep it reserved. */
+ IPI_CACHE, /* Not used now, but keep it reserved. */
+ INTR_IPI_COUNT
+};
+
+void init_secondary(int cpu);
+void mpentry(void);
+
+void ipi_all_but_self(u_int ipi);
+void ipi_cpu(int cpu, u_int ipi);
+void ipi_selected(cpuset_t cpus, u_int ipi);
+
+/* Platform interface */
+void platform_mp_setmaxid(void);
+void platform_mp_start_ap(void);
+
+/* global data in mp_machdep.c */
+extern struct pcb stoppcbs[];
+
+#endif /* !_MACHINE_SMP_H_ */