Add parlib/common.h
authorBarret Rhoden <brho@cs.berkeley.edu>
Tue, 18 Aug 2015 19:10:43 +0000 (15:10 -0400)
committerBarret Rhoden <brho@cs.berkeley.edu>
Mon, 28 Sep 2015 19:14:00 +0000 (15:14 -0400)
Wrapper for ros/common.h, plus it has a few things of its own.  We need
to be somewhat careful about what goes in ros/common.h; I've had issues
in the past with things that aren't namespaced well that conflict with
various pieces of user-level software.

22 files changed:
user/benchutil/include/alarm.h
user/iplib/include/iplib.h
user/parlib/asynccall.c
user/parlib/debug.c
user/parlib/debugfmt.c
user/parlib/include/common.h [new file with mode: 0644]
user/parlib/include/event.h
user/parlib/include/parlib.h
user/parlib/include/printf-ext.h
user/parlib/include/riscv/arch.h
user/parlib/include/riscv/atomic.h
user/parlib/include/riscv/vcore.h
user/parlib/include/ros_debug.h
user/parlib/include/slab.h
user/parlib/include/x86/arch.h
user/parlib/include/x86/atomic.h
user/parlib/include/x86/vcore32.h
user/parlib/include/x86/vcore64.h
user/parlib/timing.c
user/pthread/futex.c
user/vmm/coreboot_table.c
user/vmm/include/coreboot_tables.h

index 27766b3..04d391a 100644 (file)
@@ -32,7 +32,7 @@
 #ifndef BENCHUTIL_ALARM_H
 #define BENCHUTIL_ALARM_H
 
-#include <ros/common.h>
+#include <parlib/common.h>
 #include <sys/queue.h>
 #include <parlib/spinlock.h>
 #include <parlib/event.h>
index e3828bd..29b0a77 100755 (executable)
@@ -9,7 +9,7 @@
 #ifndef IPLIB_IPLIB_H
 #define IPLIB_IPLIB_H
 
-#include <ros/common.h>
+#include <parlib/common.h>
 
 __BEGIN_DECLS
 
index eb0840a..29b3ef1 100644 (file)
@@ -1,6 +1,6 @@
 #include <stdlib.h>
 
-#include <ros/common.h>
+#include <parlib/common.h>
 #include <ros/syscall.h>
 #include <ros/ring_syscall.h>
 #include <ros/sysevent.h>
index 0110359..8ea471f 100644 (file)
@@ -5,7 +5,7 @@
 // It is very important that it always go to the console, especially when
 // debugging file descriptor code!
 
-#include <ros/common.h>
+#include <parlib/common.h>
 #include <parlib/parlib.h>
 #include <stdio.h>
 #include <parlib/spinlock.h>
index e98d749..d6f1a2a 100644 (file)
@@ -1,4 +1,4 @@
-#include <ros/common.h>
+#include <parlib/common.h>
 #include <ros/errno.h>
 #include <string.h>
 #include <parlib/ros_debug.h>
diff --git a/user/parlib/include/common.h b/user/parlib/include/common.h
new file mode 100644 (file)
index 0000000..cd4b9fc
--- /dev/null
@@ -0,0 +1,14 @@
+/* Copyright (c) 2015 Google Inc.
+ * Barret Rhoden <brho@cs.berkeley.edu>
+ * See LICENSE for details.
+ *
+ * Common helpers for Akaros user programs. */
+
+#ifndef PARLIB_COMMON_H
+#define PARLIB_COMMON_H
+
+#include <ros/common.h>
+
+#define IS_PWR2(x) ((x) && !((x) & (x - 1)))
+
+#endif /* PARLIB_COMMON_H */
index fd76a59..71db0b7 100644 (file)
@@ -10,7 +10,7 @@
 #define PARLIB_EVENT_H
 
 #include <ros/event.h>
-#include <ros/common.h>
+#include <parlib/common.h>
 
 __BEGIN_DECLS
 
index cbb53d4..3625a16 100644 (file)
@@ -9,7 +9,7 @@
 
 #ifndef __ASSEMBLER__
 
-#include <ros/common.h>
+#include <parlib/common.h>
 #include <ros/memlayout.h>
 #include <ros/syscall.h>
 #include <ros/procinfo.h>
index 70d6ff1..091e9ef 100644 (file)
@@ -12,7 +12,7 @@
 #ifndef PARLIB_PRINTF_EXT_H
 #define PARLIB_PRINTF_EXT_H
 
-#include <ros/common.h>
+#include <parlib/common.h>
 #include <printf.h>
 
 __BEGIN_DECLS
index 44a1b8a..b1eb40f 100644 (file)
@@ -1,7 +1,7 @@
 #ifndef PARLIB_ARCH_H
 #define PARLIB_ARCH_H
 
-#include <ros/common.h>
+#include <parlib/common.h>
 #include <ros/trapframe.h>
 #include <ros/arch/arch.h>
 
index 36f7ba3..a55dad6 100644 (file)
@@ -1,7 +1,7 @@
 #ifndef PARLIB_ARCH_ATOMIC_H
 #define PARLIB_ARCH_ATOMIC_H
 
-#include <ros/common.h>
+#include <parlib/common.h>
 #include <ros/atomic.h>
 #include <ros/arch/membar.h>
 
index 52748aa..664fdb9 100644 (file)
@@ -1,7 +1,7 @@
 #ifndef PARLIB_ARCH_VCORE_H
 #define PARLIB_ARCH_VCORE_H
 
-#include <ros/common.h>
+#include <parlib/common.h>
 #include <ros/trapframe.h>
 #include <parlib/arch/arch.h>
 #include <ros/syscall.h>
index fabb53a..ca13c46 100644 (file)
@@ -1,7 +1,7 @@
 #ifndef PARLIB_ROS_DEBUG_H
 #define PARLIB_ROS_DEBUG_H
 
-#include <ros/common.h>
+#include <parlib/common.h>
 #include <stdio.h>
 #include <stdarg.h>
 
index c35a1bf..2cdd434 100644 (file)
@@ -30,7 +30,7 @@
 #ifndef PARLIB_SLAB_H
 #define PARLIB_SLAB_H
 
-#include <ros/common.h>
+#include <parlib/common.h>
 #include <ros/arch/mmu.h>
 #include <sys/queue.h>
 #include <parlib/arch/atomic.h>
index ac957ab..ce242f0 100644 (file)
@@ -3,7 +3,7 @@
 
 #include <ros/trapframe.h>
 #include <ros/arch/mmu.h>
-#include <ros/common.h>
+#include <parlib/common.h>
 #include <string.h>
 
 __BEGIN_DECLS
index e7925d4..5390121 100644 (file)
@@ -1,7 +1,7 @@
 #ifndef PARLIB_ARCH_ATOMIC_H
 #define PARLIB_ARCH_ATOMIC_H
 
-#include <ros/common.h>
+#include <parlib/common.h>
 #include <ros/atomic.h>
 
 __BEGIN_DECLS
index 9d17509..0330744 100644 (file)
@@ -5,7 +5,7 @@
 #error "Do not include include vcore32.h directly"
 #endif
 
-#include <ros/common.h>
+#include <parlib/common.h>
 #include <ros/trapframe.h>
 #include <ros/procdata.h>
 #include <ros/syscall.h>
index 51bdc39..2a2e7ce 100644 (file)
@@ -5,7 +5,7 @@
 #error "Do not include include vcore32.h directly"
 #endif
 
-#include <ros/common.h>
+#include <parlib/common.h>
 #include <ros/trapframe.h>
 #include <ros/procdata.h>
 #include <ros/syscall.h>
index 33e40ce..983d862 100644 (file)
@@ -1,4 +1,4 @@
-#include <ros/common.h>
+#include <parlib/common.h>
 #include <ros/procinfo.h>
 #include <parlib/arch/arch.h>
 #include <stdio.h>
index 0ad9fd8..48042be 100644 (file)
@@ -1,4 +1,4 @@
-#include <ros/common.h>
+#include <parlib/common.h>
 #include <futex.h>
 #include <sys/queue.h>
 #include <pthread.h>
index c7427ed..9b13d6f 100644 (file)
@@ -19,7 +19,7 @@
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
  * MA 02110-1301 USA
  */
-#include <ros/common.h>
+#include <parlib/common.h>
 
 #include <stdio.h>
 #include <stdarg.h>
index 73490a0..fe2e4a0 100644 (file)
@@ -2,7 +2,7 @@
 #define COREBOOT_TABLES_H
 
 #include <stdint.h>
-#include <ros/common.h>
+#include <parlib/common.h>
 
 // NOTE: the first part of this file is for producers of tables.
 // It is used when we are starting a guest.