Newer
Older
void NameServer(){
int TIDSeq[HASH_SIZE];
char Names[HASH_SIZE][NAME_LENGTH_MAX+1];
// initialize Names
int i = 0;
for(;i<257;i++){
Names[i][NAME_LENGTH_MAX] = 0;
}
HT HashTable;
HashTable.TidSequence = TIDSeq;
HashTable.NameSequence = Names;
HashTable.size = HASH_SIZE;
Buffer SendQ;
int storage[MAX_NUM_BUFFER];
SendQ.Storage = (void *)(storage);
SendQ.size = MAX_NUM_BUFFER;
SendQ.Head = 0;
SendQ.Tail = 0;
SendQ.Length = 0;
// some sort of while loop to receive and reply
}
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)
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;
}
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;