view kernel/syscall.c3 @ 338:8eb4a6fe8fc8

Added testcase with emulator
author Windel Bouwman
date Fri, 21 Feb 2014 13:31:29 +0100
parents 2e7f55319858
children
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();
}