aboutsummaryrefslogtreecommitdiffstats
path: root/src/syscalls.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/syscalls.c')
-rw-r--r--src/syscalls.c62
1 files changed, 62 insertions, 0 deletions
diff --git a/src/syscalls.c b/src/syscalls.c
new file mode 100644
index 0000000..a42fc62
--- /dev/null
+++ b/src/syscalls.c
@@ -0,0 +1,62 @@
1/* To get syscall() we need to define _GNU_SOURCE
2 * in modern glibc versions.
3 */
4#define _GNU_SOURCE
5#include <unistd.h>
6
7#include "litmus.h"
8
9#include "syscalls.h"
10
11struct np_flag;
12
13/* Litmus syscalls definitions */
14#define __NR_sched_setpolicy 320
15#define __NR_sched_getpolicy 321
16#define __NR_set_rt_mode 322
17#define __NR_set_rt_task_param 323
18#define __NR_get_rt_task_param 324
19#define __NR_sleep_next_period 326
20#define __NR_scheduler_setup 327
21#define __NR_register_np_flag 328
22#define __NR_signal_exit_np 329
23#define __NR_od_openx 330
24#define __NR_od_close 331
25#define __NR_pi_down 332
26#define __NR_pi_up 333
27#define __NR_srp_down 334
28#define __NR_srp_up 335
29#define __NR_reg_task_srp_sem 336
30#define __NR_get_job_no 337
31#define __NR_wait_for_job_release 338
32#define __NR_set_service_levels 339
33#define __NR_get_cur_service_level 340
34#define __NR_reg_ics_cb 341
35#define __NR_start_wcs 342
36#define __NR_task_mode 343
37
38/* Syscall stub for setting RT mode and scheduling options */
39_syscall0(spolicy, sched_getpolicy);
40_syscall1(int, set_rt_mode, int, arg1);
41_syscall2(int, set_rt_task_param, pid_t, pid, rt_param_t*, arg1);
42_syscall2(int, get_rt_task_param, pid_t, pid, rt_param_t*, arg1);
43_syscall0(int, sleep_next_period);
44_syscall2(int, scheduler_setup, int, cmd, void*, param);
45_syscall1(int, register_np_flag, struct np_flag*, flag);
46_syscall0(int, signal_exit_np);
47
48_syscall4(int, od_openx, int, fd, obj_type_t, type, int, obj_id,
49 void*, config);
50_syscall1(int, od_close, int, od);
51_syscall1(int, pi_down, int, od);
52_syscall1(int, pi_up, int, od);
53_syscall1(int, srp_down, int, od);
54_syscall1(int, srp_up, int, od);
55_syscall1(int, reg_task_srp_sem, int, od);
56
57_syscall1(int, get_job_no, unsigned int*, job_no);
58_syscall1(int, wait_for_job_release, unsigned int, job_no);
59
60_syscall1(int, start_wcs, int, od);
61_syscall1(int, reg_ics_cb, struct ics_cb*, ics_cb);
62_syscall1(int, task_mode, int, target_mode);