diff kernel/src/syscall.c3 @ 359:b4ac28efcdf4

Reorganize files
author Windel Bouwman
date Fri, 14 Mar 2014 15:41:55 +0100
parents kernel/syscall.c3@2e7f55319858
children 6ae782a085e0
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/kernel/src/syscall.c3	Fri Mar 14 15:41:55 2014 +0100
@@ -0,0 +1,62 @@
+module syscall;
+
+/*
+    This module handles all the system calls from user space.
+*/
+
+import arch;
+import scheduler;
+import process;
+
+
+const int SendMsg = 1;
+const int ReceiveMsg = 2;
+const int Reboot = 3;
+
+
+// System call handlers. System calls are made from user space.
+function void handle_system_call(int callId, int a, int b)
+{
+    // Main entry, check what to do here
+    if (callId == 1)
+    {
+        handle_send_msg();
+        var process.process_t* proc;
+        proc = process.byId(a);
+        // proc.setMessage();
+        // scheduler.current.setState(Sleep);
+    }
+    else 
+    {
+        if (callId == 2)
+        {
+            handle_recv_msg();
+        }
+        else 
+        {
+            if (callId == 3)
+            {
+                //arch.reboot();
+            }
+            else
+            {
+                return 2;
+            }
+        }
+    }
+
+    return 0;
+}
+
+// Handle send message syscall
+function void handle_send_msg()
+{
+}
+
+function void handle_recv_msg()
+{
+    // Block until we have a message
+    //currentProc->setState(Sleep);
+    //scheduler.executeNext();
+}
+