make irq specifier to be provided when assigining irq
[lunaix-os.git] / lunaix-os / kernel / syscall.c
1 #include <lunaix/process.h>
2 #include <lunaix/kpreempt.h>
3
4 typedef reg_t (*syscall_fn)(reg_t p1, reg_t p2, reg_t p3, reg_t p4, reg_t p5);
5
6 reg_t
7 dispatch_syscall(void* syscall_fnptr, 
8                  reg_t p1, reg_t p2, reg_t p3, reg_t p4, reg_t p5)
9 {
10     reg_t ret_val;
11     
12     thread_stats_update_entering(true);
13     
14     set_preemption();
15     ret_val = ((syscall_fn)syscall_fnptr)(p1, p2, p3, p4, p5);
16     no_preemption();
17
18     return ret_val;
19 }