Switches kernel trap.h #include order
authorBarret Rhoden <brho@cs.berkeley.edu>
Thu, 11 Apr 2013 16:33:35 +0000 (09:33 -0700)
committerBarret Rhoden <brho@cs.berkeley.edu>
Thu, 11 Apr 2013 16:40:37 +0000 (09:40 -0700)
All places (other than asm) should include trap.h, not arch/trap.h, such
that the main kernel include is the 'gateway' header to all trap
functionality, just like ros/trapframe.h, atomic.h, etc.

I can see pros and cons of doing it this way vs the older way (arch
first), but I'm leaning towards arch-second unless someone has a really
good reason not to (even knowing that we'll have to be careful where we
 #include the arch file, like in atomic.h).

20 files changed:
kern/arch/i686/arch.h
kern/arch/i686/env.c
kern/arch/i686/process.c
kern/arch/i686/trap.h
kern/arch/riscv/arch.h
kern/arch/riscv/env.c
kern/arch/riscv/fpu.c
kern/arch/riscv/process.c
kern/arch/riscv/time.c
kern/arch/riscv/trap.c
kern/arch/riscv/trap.h
kern/arch/sparc/env.c
kern/arch/sparc/fpu.c
kern/arch/sparc/process.c
kern/arch/sparc/time.c
kern/arch/sparc/trap.c
kern/arch/sparc/trap.h
kern/include/env.h
kern/include/trap.h
kern/src/testing.c

index 99efed8..d854a1f 100644 (file)
@@ -4,7 +4,6 @@
 #include <ros/arch/arch.h>
 #include <ros/common.h>
 #include <arch/x86.h>
-#include <arch/trap.h>
 #include <arch/apic.h>
 
 /* Arch Constants */
index 10aad41..7c48e45 100644 (file)
@@ -3,7 +3,7 @@
 #pragma nosharc
 #endif
 
-#include <arch/trap.h>
+#include <trap.h>
 #include <env.h>
 #include <assert.h>
 #include <pmap.h>
index fb80a28..c5164c3 100644 (file)
@@ -1,5 +1,5 @@
 #include <arch/arch.h>
-#include <arch/trap.h>
+#include <trap.h>
 #include <process.h>
 #include <pmap.h>
 #include <smp.h>
index fd8bf7f..2108b96 100644 (file)
 
 #ifndef __ASSEMBLER__
 
+#ifndef ROS_KERN_TRAP_H
+#error "Do not include include arch/trap.h directly"
+#endif
+
 #include <ros/common.h>
 #include <arch/mmu.h>
 #include <ros/trapframe.h>
index 240b03b..9e46274 100644 (file)
@@ -6,7 +6,6 @@
 #include <ros/common.h>
 #include <ros/arch/membar.h>
 #include <arch/riscv.h>
-#include <arch/trap.h>
 #include <arch/time.h>
 
 /* Arch Constants */
index a2ed60a..a9466d7 100644 (file)
@@ -1,4 +1,4 @@
-#include <arch/trap.h>
+#include <trap.h>
 #include <env.h>
 #include <assert.h>
 #include <arch/arch.h>
index e314278..d9c9745 100644 (file)
@@ -1,4 +1,4 @@
-#include <arch/trap.h>
+#include <trap.h>
 #include <smp.h>
 #include <umem.h>
 #include <arch/softfloat.h>
index 1bd28e8..a4a0a29 100644 (file)
@@ -1,5 +1,5 @@
 #include <arch/arch.h>
-#include <arch/trap.h>
+#include <trap.h>
 #include <process.h>
 #include <pmap.h>
 #include <smp.h>
index da9b215..ba7654c 100644 (file)
@@ -1,6 +1,6 @@
 #include <arch/time.h>
 #include <ros/common.h>
-#include <arch/trap.h>
+#include <trap.h>
 #include <arch/arch.h>
 #include <stdio.h>
 #include <assert.h>
index efa00f2..460400a 100644 (file)
@@ -1,6 +1,6 @@
 #include <arch/arch.h>
 #include <assert.h>
-#include <arch/trap.h>
+#include <trap.h>
 #include <arch/console.h>
 #include <console.h>
 #include <string.h>
index 1e0f9ef..53c63c9 100644 (file)
@@ -9,6 +9,10 @@
 
 #ifndef __ASSEMBLER__
 
+#ifndef ROS_KERN_TRAP_H
+#error "Do not include include arch/trap.h directly"
+#endif
+
 #include <ros/trapframe.h>
 #include <arch/arch.h>
 
index 6e199d2..ee13489 100644 (file)
@@ -7,7 +7,7 @@
 #pragma noasync
 #endif
 
-#include <arch/trap.h>
+#include <trap.h>
 #include <env.h>
 #include <assert.h>
 #include <arch/arch.h>
index 4314e72..c6f98b0 100644 (file)
@@ -1,6 +1,6 @@
 #include <arch/sparcfpu.h>
 #include <arch/arch.h>
-#include <arch/trap.h>
+#include <trap.h>
 #include <umem.h>
 #include <pmap.h>
 #include <smp.h>
index 452957b..5a23224 100644 (file)
@@ -1,5 +1,5 @@
 #include <arch/arch.h>
-#include <arch/trap.h>
+#include <trap.h>
 #include <process.h>
 #include <frontend.h>
 #include <pmap.h>
index 329d218..eb99334 100644 (file)
@@ -1,6 +1,6 @@
 #include <arch/time.h>
 #include <ros/common.h>
-#include <arch/trap.h>
+#include <trap.h>
 #include <arch/arch.h>
 #include <stdio.h>
 #include <assert.h>
index 6f4fe11..bb26e75 100644 (file)
@@ -1,6 +1,6 @@
 #include <arch/arch.h>
 #include <assert.h>
-#include <arch/trap.h>
+#include <trap.h>
 #include <string.h>
 #include <process.h>
 #include <syscall.h>
index 1e82a3d..fce3ee8 100644 (file)
@@ -6,6 +6,10 @@
 
 #ifndef __ASSEMBLER__
 
+#ifndef ROS_KERN_TRAP_H
+#error "Do not include include arch/trap.h directly"
+#endif
+
 #include <ros/common.h>
 #include <ros/trapframe.h>
 #include <arch/ros/arch.h>
index 9bba2e2..d5636ea 100644 (file)
@@ -12,7 +12,7 @@
 #include <ros/procdata.h>
 #include <ros/procinfo.h>
 #include <ros/resource.h>
-#include <arch/trap.h>
+#include <trap.h>
 #include <ros/common.h>
 #include <arch/arch.h>
 #include <sys/queue.h>
index 11d8cb7..2ae093a 100644 (file)
@@ -2,14 +2,12 @@
 
 #ifndef ROS_KERN_TRAP_H
 #define ROS_KERN_TRAP_H
-#ifndef ROS_KERNEL
-# error "This is an ROS kernel header; user programs should not #include it"
-#endif
 
+#include <ros/trapframe.h>
 #include <arch/arch.h>
 #include <arch/mmu.h>
-#include <arch/trap.h>
 #include <sys/queue.h>
+#include <arch/trap.h>
 
 // func ptr for interrupt service routines
 typedef void ( *poly_isr_t)(trapframe_t* tf, TV(t) data);
@@ -40,8 +38,8 @@ void timer_interrupt(struct trapframe *tf, void *data);
 void sysenter_init(void);
 extern void sysenter_handler();
 
-void save_fp_state(struct ancillary_state *silly);
-void restore_fp_state(struct ancillary_state *silly);
+extern inline void save_fp_state(struct ancillary_state *silly);
+extern inline void restore_fp_state(struct ancillary_state *silly);
 /* Set stacktop for the current core to be the stack the kernel will start on
  * when trapping/interrupting from userspace */
 void set_stack_top(uintptr_t stacktop);
index e83ec17..70755a0 100644 (file)
@@ -19,7 +19,7 @@
 #include <string.h>
 #include <testing.h>
 #include <trap.h>
-#include <arch/trap.h>
+#include <trap.h>
 #include <process.h>
 #include <syscall.h>
 #include <time.h>