#include <syscall.h>
#include <context-switch.h>
#include <bwio.h>

int Create (AP* Args) {
  //bwprintf(COM2,"Create: Arg location:%d\n\r",Args);
  asm volatile ("swi 0\n\t" );
//  bwprintf(COM2,"Back to Create\n\r");
  register int RetVal asm("r0");
  int Return = RetVal;
  return Return;
}

int MyTid() {
  int Address = (int )(&MyTid);
  //bwprintf(COM2,"MyTid Address: %d\n\r",Address);
  asm volatile ("swi 1\n\t");
  register int RetVal asm("r0");
  int R = RetVal;
  //bwprintf(COM2,"Back to MyTid, my tid is %d, My Address is %d\n\r",R);
  return RetVal;
}

int MyParentTid() {
    asm volatile ("swi 2\n\t");
    register int RetVal asm("r0");
    return RetVal;

}

void Pass() {
    asm volatile ("swi 3\n\t");
}

void Exit() {
  //bwprintf(COM2,"Before SWI exit\n\r");
  asm volatile ("swi 4\n\t");
}

int Send (int TaskID, void* Msg, int MsgLen, void* Reply, int ReplyLen) {

}

int Receive (int* TaskID, void* Msg, int MsgLen) {

}

int Reply (int TaskID, void* Reply, int ReplyLen) {

}