view kernel/syscall.c3 @ 306:b145f8e6050b

Start on c3 rewrite
author Windel Bouwman
date Mon, 09 Dec 2013 19:00:21 +0100
parents 0615b5308710
children 2e7f55319858
line wrap: on
line source

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