Subversion Repositories HelenOS-historic

Compare Revisions

Ignore whitespace Rev 1281 → Rev 1282

/uspace/trunk/ns/ns.c
4,7 → 4,16
#include <stdlib.h>
#include <ns.h>
#include <errno.h>
/*
irq_cmd_t msim_cmds[1] = {
{ CMD_MEM_READ_1, (void *)0xB0000000, 0 }
};
 
irq_code_t msim_kbd = {
1,
msim_cmds
};
*/
static int service;
 
int main(int argc, char **argv)
15,13 → 24,13
ipcarg_t retval, arg1, arg2;
 
printf("NS:Name service started.\n");
// ipc_register_irq(1);
// ipc_register_irq(2, &msim_kbd);
while (1) {
callid = ipc_wait_for_call(&call, 0);
printf("NS:Call phone=%lX..", call.phoneid);
switch (IPC_GET_METHOD(call)) {
case IPC_M_INTERRUPT:
printf("GOT INTERRUPT\n");
printf("GOT INTERRUPT: %c\n", IPC_GET_ARG2(call));
break;
case IPC_M_PHONE_HUNGUP:
printf("Phone hung up.\n");
58,7 → 67,9
retval = ENOENT;
break;
}
if (! (callid & IPC_CALLID_NOTIFICATION))
if (! (callid & IPC_CALLID_NOTIFICATION)) {
printf("Answerinh\n");
ipc_answer(callid, retval, arg1, arg2);
}
}
}
/uspace/trunk/libipc/include/ipc.h
30,6 → 30,7
#define __LIBIPC_IPC_H__
 
#include <kernel/ipc/ipc.h>
#include <kernel/ipc/irq.h>
#include <libc.h>
#include <types.h>
 
63,7 → 64,7
int ipc_connect_to_me(int phoneid, int arg1, int arg2, ipcarg_t *phone);
int ipc_connect_me_to(int phoneid, int arg1, int arg2);
int ipc_hangup(int phoneid);
int ipc_register_irq(int irq);
int ipc_register_irq(int irq, irq_code_t *code);
int ipc_unregister_irq(int irq);
 
#endif
/uspace/trunk/libipc/generic/ipc.c
262,9 → 262,9
return __SYSCALL1(SYS_IPC_HANGUP, phoneid);
}
 
int ipc_register_irq(int irq)
int ipc_register_irq(int irq, irq_code_t *ucode)
{
return __SYSCALL1(SYS_IPC_REGISTER_IRQ, irq);
return __SYSCALL2(SYS_IPC_REGISTER_IRQ, irq, (sysarg_t) ucode);
}
 
int ipc_unregister_irq(int irq)