sys_change_vcore() (XCC)
[akaros.git] / user / parlib / syscall.c
index 6004fd0..31b64f0 100644 (file)
@@ -128,7 +128,23 @@ int sys_halt_core(unsigned int usec)
        return ros_syscall(SYS_halt_core, usec, 0, 0, 0, 0, 0);
 }
 
-int sys_init_arsc()
+void* sys_init_arsc()
 {
-       return ros_syscall(SYS_init_arsc, 0, 0, 0, 0, 0, 0);
+       return (void*)ros_syscall(SYS_init_arsc, 0, 0, 0, 0, 0, 0);
+}
+
+int sys_block(unsigned int usec)
+{
+       return ros_syscall(SYS_block, usec, 0, 0, 0, 0, 0);
+}
+
+/* enable_my_notif tells the kernel whether or not it is okay to turn on notifs
+ * when our calling vcore 'yields'.  This controls whether or not the vcore will
+ * get started from vcore_entry() or not, and whether or not remote cores need
+ * to sys_change_vcore to preempt-recover the calling vcore.  Only set this to
+ * FALSE if you are unable to handle starting fresh at vcore_entry().  One
+ * example of this is in mcs_pdr_locks */
+void sys_change_vcore(uint32_t vcoreid, bool enable_my_notif)
+{
+       ros_syscall(SYS_change_vcore, vcoreid, enable_my_notif, 0, 0, 0, 0);
 }