diff options
author | Bjoern B. Brandenburg <bbb@cs.unc.edu> | 2008-02-03 01:09:48 -0500 |
---|---|---|
committer | Bjoern B. Brandenburg <bbb@cs.unc.edu> | 2008-02-03 01:09:48 -0500 |
commit | 2d507260ee723f8302c5c97a9bda1cf00f30ec99 (patch) | |
tree | 033231fa56c53c67916cbc1f1a05d9560ef1d4ab /src/syscalls.c | |
parent | 526afdfb333ca29170fd210b08860ac2a4c141ed (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.c | 126 |
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 | |||
13 | struct np_flag; | 11 | struct 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); | 15 | pid_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); | 20 | int 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); | 25 | int 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); | 30 | int 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 | |||
35 | int register_np_flag(struct np_flag *flag) | ||
36 | { | ||
37 | return syscall(__NR_register_np_flag, flag); | ||
38 | } | ||
39 | |||
40 | int signal_exit_np(void) | ||
41 | { | ||
42 | return syscall(__NR_exit_np); | ||
43 | } | ||
44 | |||
45 | int 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 | |||
50 | int od_close(int od) | ||
51 | { | ||
52 | return syscall(__NR_od_close, od); | ||
53 | } | ||
54 | |||
55 | int pi_down(int od) | ||
56 | { | ||
57 | return syscall(__NR_pi_down, od); | ||
58 | } | ||
59 | |||
60 | int pi_up(int od) | ||
61 | { | ||
62 | return syscall(__NR_pi_up, od); | ||
63 | } | ||
64 | |||
65 | int srp_down(int od) | ||
66 | { | ||
67 | return syscall(__NR_srp_down, od); | ||
68 | } | ||
69 | |||
70 | int srp_up(int od) | ||
71 | { | ||
72 | return syscall(__NR_srp_up, od); | ||
73 | } | ||
74 | |||
75 | int reg_task_srp_sem(int od) | ||
76 | { | ||
77 | return syscall(__NR_reg_task_srp_sem, od); | ||
78 | } | ||
79 | |||
80 | int get_job_no(unsigned int *job_no) | ||
81 | { | ||
82 | return syscall(__NR_query_job_no, job_no); | ||
83 | } | ||
84 | |||
85 | int wait_for_job_release(unsigned int job_no) | ||
86 | { | ||
87 | return syscall(__NR_wait_for_job_release, job_no); | ||
88 | } | ||
89 | |||
90 | int task_mode(int target_mode) | ||
91 | { | ||
92 | return syscall(__NR_task_mode, target_mode); | ||
93 | } | ||
94 | |||