Mercurial > lcfOS
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(); +} +