I know I was here a few weeks ago with this problem and I appricatate all the help I got then. But I'm back again because I now realise the only way I can achieve the results I'm looking for is by user a timer interrupt. I'd be very grateful if someone could tell me why this code won't compile:

#include <linux/sched.h>
#include <linux/signal.h>
#include <asm/irq.h>
#include <stdio.h>

void irq_handler(int irq, void *dev_id, struct pt_regs *regs)

int main()
    request_irq(IRQ_OST2, irq_handler, 0, "timer_isr_handler", NULL);

I get these errors/warnings:

/home/brendanm/gumstix/gumstix-buildroot/build_arm_nofpu/staging_dir/bin/arm-linux-gcc -c main.c
In file included from /home/brendanm/gumstix/gumstix-buildroot/build_arm_nofpu/staging_dir/bin-ccache/../lib/gcc/arm-linux-uclibcgnueabi/4.1.1/../../../../arm-linux-uclibcgnueabi/sys-include/asm/siginfo.h:5,
                 from /home/brendanm/gumstix/gumstix-buildroot/build_arm_nofpu/staging_dir/bin-ccache/../lib/gcc/arm-linux-uclibcgnueabi/4.1.1/../../../../arm-linux-uclibcgnueabi/sys-include/linux/signal.h:6,
                 from main.c:3:
/home/brendanm/gumstix/gumstix-buildroot/build_arm_nofpu/staging_dir/bin-ccache/../lib/gcc/arm-linux-uclibcgnueabi/4.1.1/../../../../arm-linux-uclibcgnueabi/sys-include/asm-generic/siginfo.h:58: error: size of array '_pad' is too large
main.c:6: warning: 'struct pt_regs' declared inside parameter list
main.c:6: warning: its scope is only this definition or declaration, which is probably not what you want

I've read piles of stuff on the net but I just can't figure it out. Thanks a heap if someone can help me out here.