Move read/write_fsr so they're visible to userland
authorAndrew Waterman <waterman@cs.berkeley.edu>
Tue, 23 Apr 2013 12:17:38 +0000 (05:17 -0700)
committerAndrew Waterman <waterman@cs.berkeley.edu>
Tue, 23 Apr 2013 12:17:38 +0000 (05:17 -0700)
kern/arch/riscv/riscv.h
kern/arch/riscv/ros/arch.h
user/parlib/include/riscv/arch.h

index d534909..c23c962 100644 (file)
@@ -35,18 +35,4 @@ clear_ipi()
        mtpcr(PCR_CLR_IPI, 0);
 }
 
-static __inline uint32_t
-read_fsr(void)
-{
-       uint32_t fsr;
-       asm volatile ("mffsr %0" : "=r"(fsr));
-       return fsr;
-}
-
-static __inline void
-write_fsr(uint32_t fsr)
-{
-       asm volatile ("mtfsr %0" :: "r"(fsr));
-}
-
 #endif
index f5968d6..a193e62 100644 (file)
@@ -3,4 +3,20 @@
 
 #define MAX_NUM_CPUS                           16 // it's safe to change this as needed
 
+#ifndef __ASSEMBLER__
+
+static __inline unsigned int read_fsr(void)
+{
+       unsigned int fsr;
+       asm volatile ("mffsr %0" : "=r"(fsr));
+       return fsr;
+}
+
+static __inline void write_fsr(unsigned int fsr)
+{
+       asm volatile ("mtfsr %0" :: "r"(fsr));
+}
+
+#endif /* !__ASSEMBLER__ */
+
 #endif
index 056aa8d..0a23589 100644 (file)
@@ -3,6 +3,7 @@
 
 #include <ros/common.h>
 #include <ros/trapframe.h>
+#include <ros/arch/arch.h>
 
 #define internal_function