Ensure vcore context code includes parlib/assert.h
authorBarret Rhoden <brho@cs.berkeley.edu>
Mon, 26 Oct 2015 21:13:15 +0000 (17:13 -0400)
committerBarret Rhoden <brho@cs.berkeley.edu>
Wed, 28 Oct 2015 16:05:13 +0000 (12:05 -0400)
Code that runs in vcore context should call parlib's assert.  Otherwise,
there is a chance glibc's assert will call glibc's printf, which may run
off the end of the stack and page fault.

By putting parlib/assert.h in common.h, any downstream headers, such as
vcore.h, event.t, and parlib.h, will pick up our assert().

Signed-off-by: Barret Rhoden <brho@cs.berkeley.edu>
user/benchutil/alarm.c
user/parlib/include/common.h
user/parlib/include/vcore.h
user/parlib/uthread.c
user/pthread/futex.c
user/pthread/pthread.c

index 1446527..f76c596 100644 (file)
@@ -26,7 +26,7 @@
 #include <sys/time.h>
 #include <benchutil/alarm.h>
 #include <stdio.h>
-#include <assert.h>
+#include <parlib/assert.h>
 #include <stdlib.h>
 #include <unistd.h>
 #include <sys/types.h>
index cd4b9fc..4b1d42a 100644 (file)
@@ -8,6 +8,7 @@
 #define PARLIB_COMMON_H
 
 #include <ros/common.h>
+#include <parlib/assert.h>
 
 #define IS_PWR2(x) ((x) && !((x) & (x - 1)))
 
index 526c653..00365b1 100644 (file)
@@ -6,6 +6,7 @@
 #include <sys/param.h>
 #include <string.h>
 #include <parlib/timing.h>
+#include <parlib/common.h>
 
 __BEGIN_DECLS
 
index 3967fa3..48538c9 100644 (file)
@@ -9,6 +9,7 @@
 #include <parlib/uthread.h>
 #include <parlib/event.h>
 #include <stdlib.h>
+#include <parlib/assert.h>
 
 /* SCPs have a default 2LS that only manages thread 0.  Any other 2LS, such as
  * pthreads, should override sched_ops in its init code. */
index 48042be..803a751 100644 (file)
@@ -3,7 +3,7 @@
 #include <sys/queue.h>
 #include <pthread.h>
 #include <parlib/parlib.h>
-#include <assert.h>
+#include <parlib/assert.h>
 #include <stdio.h>
 #include <errno.h>
 #include <parlib/slab.h>
index ec9a646..1bb0dc8 100644 (file)
@@ -7,7 +7,7 @@
 #include <parlib/mcs.h>
 #include <stdlib.h>
 #include <string.h>
-#include <assert.h>
+#include <parlib/assert.h>
 #include <stdio.h>
 #include <errno.h>
 #include <parlib/parlib.h>