summaryrefslogtreecommitdiff
path: root/sys/include
diff options
context:
space:
mode:
Diffstat (limited to 'sys/include')
-rw-r--r--sys/include/arch/aarch64/cpu.h2
-rw-r--r--sys/include/arch/amd64/cpu.h1
-rw-r--r--sys/include/arch/amd64/frameasm.h8
-rw-r--r--sys/include/dev/cons/consvar.h2
-rw-r--r--sys/include/sys/sched.h2
5 files changed, 13 insertions, 2 deletions
diff --git a/sys/include/arch/aarch64/cpu.h b/sys/include/arch/aarch64/cpu.h
index a6ccdec..2f62d95 100644
--- a/sys/include/arch/aarch64/cpu.h
+++ b/sys/include/arch/aarch64/cpu.h
@@ -40,6 +40,8 @@ struct cpu_info {
};
void cpu_startup(struct cpu_info *ci);
+void cpu_halt_others(void);
+
void mp_bootstrap_aps(struct cpu_info *ci);
struct cpu_info *this_cpu(void);
diff --git a/sys/include/arch/amd64/cpu.h b/sys/include/arch/amd64/cpu.h
index ce42416..dd753b7 100644
--- a/sys/include/arch/amd64/cpu.h
+++ b/sys/include/arch/amd64/cpu.h
@@ -49,6 +49,7 @@ struct cpu_info {
};
__dead void cpu_halt_all(void);
+void cpu_halt_others(void);
void cpu_startup(struct cpu_info *ci);
struct cpu_info *this_cpu(void);
diff --git a/sys/include/arch/amd64/frameasm.h b/sys/include/arch/amd64/frameasm.h
index 22217eb..c6316a5 100644
--- a/sys/include/arch/amd64/frameasm.h
+++ b/sys/include/arch/amd64/frameasm.h
@@ -121,6 +121,7 @@
*/
#define TRAPENTRY_EC(ENTLABEL, TRAPNO) \
ENTLABEL: ; \
+ cli ; \
testq $0x3, 16(%rsp) ; \
jz 1f ; \
lfence ; \
@@ -133,7 +134,8 @@
jz 2f ; \
lfence ; \
swapgs ; \
- 2: iretq
+ 2: sti ; \
+ iretq
/*
* Trap entry where no error code is on
@@ -141,6 +143,7 @@
*/
#define TRAPENTRY(ENTLABEL, TRAPNO) \
ENTLABEL: ; \
+ cli ; \
testq $0x3, 8(%rsp) ; \
jz 1f ; \
lfence ; \
@@ -153,6 +156,7 @@
jz 2f ; \
lfence ; \
swapgs ; \
- 2: iretq
+ 2: sti ; \
+ iretq
#endif /* !_MACHINE_FRAMEASM_H_ */
diff --git a/sys/include/dev/cons/consvar.h b/sys/include/dev/cons/consvar.h
index 483d5f1..253176b 100644
--- a/sys/include/dev/cons/consvar.h
+++ b/sys/include/dev/cons/consvar.h
@@ -32,6 +32,7 @@
#include <sys/types.h>
#include <sys/param.h>
+#include <sys/spinlock.h>
/* Buffer types */
#define CONS_BUF_INPUT 0
@@ -62,6 +63,7 @@ struct cons_input {
* keyboard input or console output.
*/
struct cons_buf {
+ struct spinlock lock;
union {
struct cons_input *ibuf;
struct cons_char *obuf;
diff --git a/sys/include/sys/sched.h b/sys/include/sys/sched.h
index 7f5e65f..80f4d1c 100644
--- a/sys/include/sys/sched.h
+++ b/sys/include/sys/sched.h
@@ -37,6 +37,8 @@
void sched_init(void);
void sched_yield(void);
+void sched_detach(struct proc *td);
+
__dead void sched_enter(void);
void sched_enqueue_td(struct proc *td);