Skip to content
Snippets Groups Projects
nameserver.c 1.13 KiB
Newer Older
antnh6@gmail.com's avatar
antnh6@gmail.com committed
#include <nameserver.h>
#include <tools.h>


int ActualWhoIS(AP* Args){
  asm volatile ("swi 9\n\t");
  register int r0 asm ("r0");
  int R = r0;
  return R;
}

int WhoIs(char* Name) {
    NSReqMsg SendMsg, ReplyMsg; 
    int Status;
    AP Args;
    SendMsg.MsgType = WhoIs; 
    stringCopy(SendMsg.Msg, Name, NS_MESSAGE_MAX_LENGTH);
    
    Args.arg0 = SendMsg;
    Args.arg1 = sizeof(NSMsg);
    Args.arg2 = ReplyMsg;
    Args.arg3 = sizeof(NSMsg);

    Status = ActualWhoIS(&Args)

    if (Status == sizeof(NSMsg)) return ReplyMsg.TaskID; // TODO FIXME TODO
    else return NAMESERVER_TID_INVALID;
}
int ActualRegAS(AP* Args){
  asm volatile ("swi 10\n\t");
  register int r0 asm ("r0");
  int R = r0;
  return R;
}
antnh6@gmail.com's avatar
antnh6@gmail.com committed

int RegisterAs (char* Name) {
    NSReqMsg SendMsg, ReplyMsg; 
    int Status;
    AP Args;

    SendMsg.MsgType = RegisterAs; 
    stringCopy(SendMsg.Msg, Name, NS_MESSAGE_MAX_LENGTH);
    
    Args.arg0 = SendMsg;
    Args.arg1 = sizeof(NSMsg);
    Args.arg2 = ReplyMsg;
    Args.arg3 = sizeof(NSMsg);

    Status = ActualRegAS(&Args);

    if (Status == sizeof(NSMsg)) return SUCCESS;
    else return NAMESERVER_TID_INVALID;