Glibc syscalls now block properly (XCC)
[akaros.git] / user / parlib / vcore.c
index 644d43f..6085e80 100644 (file)
@@ -163,6 +163,27 @@ vcore_init_fail:
        return -1;
 }
 
+/* this, plus tricking gcc into thinking this is -u (undefined), AND including
+ * the event_init in it, causes the linker to need to check parlib.a and see the
+ * strong symbol... */
+void force_parlib_symbols(void)
+{
+       vcore_event_init();
+       assert(0);
+}
+
+/* This gets called in glibc before calling the programs 'main'.  Need to set
+ * ourselves up so that thread0 is a uthread, and then register basic signals to
+ * go to vcore 0. */
+void vcore_event_init(void)
+{
+       /* set up our thread0 as a uthread */
+       uthread_slim_init();
+       /* TODO: register for other kevents/signals and whatnot (can probably reuse
+        * the simple ev_q).  Could also do this via explicit functions from the
+        * program. */
+}
+
 /* Helper, picks some sane defaults and changes the process into an MCP */
 void vcore_change_to_m(void)
 {