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

 
int WhoIs(char* Name) {
    NSReqMsg SendMsg, ReplyMsg; 
    int Status;
    AP Args;
    register int r0 asm ("r0");
    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);

    asm volatile ("swi 5\n\t");

    Status = r0;

    if (Status == sizeof(NSMsg)) return ReplyMsg.TaskID; // TODO FIXME TODO
    else return NAMESERVER_TID_INVALID;
}
antnh6@gmail.com's avatar
antnh6@gmail.com committed


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

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

    asm volatile ("swi 5\n\t");
    
    Status = r0;

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