中断程序编写初级问题

先谢过各位!我们的数据采集卡模拟量采集用到中断编程,我查阅帮助,编了程序,没能实现。我按照帮助的例子编程,但是有几个部分不知道怎么实现,我的代码结构如下,主程序main()创建一个线程int_thread,用来初始化中断向量,并且循环等待SIGEV_INTR完成中断处理函数的后续工作,isr_handler负责相应中断并返还SIGEV_INTR信号,具体代码如下。

我的问题:
1,帮助中说isr_handler 要查看硬件是否引起中断,没有要返回NULL,这在ISA上有必要么?如果有怎么查看呢?
2,帮助中说isr_handler 要返回包含isr_handler的event结构体,来解锁int_thread中的中断等待,并说这个结构体已经在主函数中初始化了。我要怎么来实现初始化呢?我查过一些例
子,您看这样对不对
memset(&event, 0, sizeof(event));
event.sigev_notify = SIGEV_INTR;
这样是否就算是初始化了呢?如果可以,那么在isr_handler中return (&event)又怎么认识event结构体,要对event声明成全局结构体么?

部分代码:
main ()
{
pthread_create (NULL, NULL, int_thread, NULL);

}
void * int_thread (void *arg)
{
硬件初始化

InterruptAttach (IRQ7, isr_handler, NULL, 0, 0);/跳线设置中断等级为7/
while (1)
{
InterruptWait (NULL, NULL); /等待中断发生,信号SIGEV_INTR/
采集数据

}
}
isr_handler (void *arg, int id)
{
// look at the hardware to see if it caused the interrupt
// if not, simply return (NULL);

// return a pointer to an event structure (preinitialized
// by main) that contains SIGEV_INTR as its notification type.
// This causes the InterruptWait in “int_thread” to unblock.
return (&event);
}

用SIGEV_INTR_INIT(&event)初始化event并将其声名为全局变量,其它的代码应该可以的。