aboutsummaryrefslogtreecommitdiffstats
path: root/src/syscalls.c
diff options
context:
space:
mode:
authorBjoern B. Brandenburg <bbb@cs.unc.edu>2008-02-03 01:09:48 -0500
committerBjoern B. Brandenburg <bbb@cs.unc.edu>2008-02-03 01:09:48 -0500
commit2d507260ee723f8302c5c97a9bda1cf00f30ec99 (patch)
tree033231fa56c53c67916cbc1f1a05d9560ef1d4ab /src/syscalls.c
parent526afdfb333ca29170fd210b08860ac2a4c141ed (diff)
many changes
- use declarations from kernel - get rid of stuipd system call macros
Diffstat (limited to 'src/syscalls.c')
-rw-r--r--src/syscalls.c126
1 files changed, 80 insertions, 46 deletions
diff --git a/src/syscalls.c b/src/syscalls.c
index 0924818..40f5f7f 100644
--- a/src/syscalls.c
+++ b/src/syscalls.c
@@ -8,53 +8,87 @@
8 8
9#include "litmus.h" 9#include "litmus.h"
10 10
11#include "syscalls.h"
12
13struct np_flag; 11struct np_flag;
14 12
15/* Litmus syscalls definitions */
16#define __NR_sched_setpolicy 320
17#define __NR_sched_getpolicy 321
18#define __NR_set_rt_mode 322
19#define __NR_set_rt_task_param 323
20#define __NR_get_rt_task_param 324
21#define __NR_sleep_next_period 326
22#define __NR_scheduler_setup 327
23#define __NR_register_np_flag 328
24#define __NR_signal_exit_np 329
25#define __NR_od_openx 330
26#define __NR_od_close 331
27#define __NR_pi_down 332
28#define __NR_pi_up 333
29#define __NR_srp_down 334
30#define __NR_srp_up 335
31#define __NR_reg_task_srp_sem 336
32#define __NR_get_job_no 337
33#define __NR_wait_for_job_release 338
34#define __NR_set_service_levels 339
35#define __NR_get_cur_service_level 340
36#define __NR_reg_ics_cb 341
37#define __NR_start_wcs 342
38#define __NR_task_mode 343
39
40/* Syscall stub for setting RT mode and scheduling options */ 13/* Syscall stub for setting RT mode and scheduling options */
41 14
42_syscall0(pid_t, gettid); 15pid_t gettid(void)
43 16{
44_syscall2(int, set_rt_task_param, pid_t, pid, rt_param_t*, arg1); 17 return syscall(__NR_gettid);
45_syscall2(int, get_rt_task_param, pid_t, pid, rt_param_t*, arg1); 18}
46_syscall0(int, sleep_next_period); 19
47_syscall1(int, register_np_flag, struct np_flag*, flag); 20int set_rt_task_param(pid_t pid, struct rt_task *param)
48_syscall0(int, signal_exit_np); 21{
49 22 return syscall(__NR_set_rt_task_param, pid, param);
50_syscall4(int, od_openx, int, fd, obj_type_t, type, int, obj_id, 23}
51 void*, config); 24
52_syscall1(int, od_close, int, od); 25int get_rt_task_param(pid_t pid, struct rt_task *param)
53_syscall1(int, pi_down, int, od); 26{
54_syscall1(int, pi_up, int, od); 27 return syscall(__NR_get_rt_task_param, pid, param);
55_syscall1(int, srp_down, int, od); 28}
56_syscall1(int, srp_up, int, od); 29
57_syscall1(int, reg_task_srp_sem, int, od); 30int sleep_next_period(void)
58_syscall1(int, get_job_no, unsigned int*, job_no); 31{
59_syscall1(int, wait_for_job_release, unsigned int, job_no); 32 return syscall(__NR_sleep_next_period);
60_syscall1(int, task_mode, int, target_mode); 33}
34
35int register_np_flag(struct np_flag *flag)
36{
37 return syscall(__NR_register_np_flag, flag);
38}
39
40int signal_exit_np(void)
41{
42 return syscall(__NR_exit_np);
43}
44
45int od_openx(int fd, obj_type_t type, int obj_id, void *config)
46{
47 return syscall(__NR_od_open, fd, type, obj_id, config);
48}
49
50int od_close(int od)
51{
52 return syscall(__NR_od_close, od);
53}
54
55int pi_down(int od)
56{
57 return syscall(__NR_pi_down, od);
58}
59
60int pi_up(int od)
61{
62 return syscall(__NR_pi_up, od);
63}
64
65int srp_down(int od)
66{
67 return syscall(__NR_srp_down, od);
68}
69
70int srp_up(int od)
71{
72 return syscall(__NR_srp_up, od);
73}
74
75int reg_task_srp_sem(int od)
76{
77 return syscall(__NR_reg_task_srp_sem, od);
78}
79
80int get_job_no(unsigned int *job_no)
81{
82 return syscall(__NR_query_job_no, job_no);
83}
84
85int wait_for_job_release(unsigned int job_no)
86{
87 return syscall(__NR_wait_for_job_release, job_no);
88}
89
90int task_mode(int target_mode)
91{
92 return syscall(__NR_task_mode, target_mode);
93}
94