Subversion Repositories HelenOS

Compare Revisions

Ignore whitespace Rev 1029 → Rev 1030

//uspace/trunk/ns/ns.c
0,0 → 1,46
#include <ipc.h>
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <ns.h>
#include <errno.h>
 
static int service;
 
int main(int argc, char **argv)
{
ipc_call_t call;
ipc_callid_t callid;
ipcarg_t retval, arg1, arg2;
 
printf("Name service started.\n");
while (1) {
callid = ipc_wait_for_call(&call, 0);
printf("Received call from: %P..%Q\n", &call.taskid,call.taskid);
switch (IPC_GET_METHOD(call.data)) {
case IPC_M_CONNECTTOME:
printf("Somebody wants to connect with phoneid %d...accepting\n", IPC_GET_ARG3(call.data));
service = IPC_GET_ARG3(call.data);
retval = 0;
break;
case NS_PING:
printf("Ping...%P %P\n", IPC_GET_ARG1(call.data),
IPC_GET_ARG2(call.data));
retval = 0;
arg1 = 0xdead;
arg2 = 0xbeef;
break;
case NS_PING_SVC:
printf("Pinging service %d\n", service);
ipc_call_sync(service, NS_PING, 0xbeef, 0);
printf("Got pong\n");
break;
default:
printf("Unknown method: %d\n", IPC_GET_METHOD(call.data));
retval = ENOENT;
break;
}
ipc_answer(callid, retval, arg1, arg2);
}
}