diff options
| author | Bjoern Brandenburg <bbb@mpi-sws.org> | 2015-12-18 04:20:16 -0500 |
|---|---|---|
| committer | Bjoern Brandenburg <bbb@mpi-sws.org> | 2016-03-20 14:30:33 -0400 |
| commit | 8c9a8402595eb86d039da74d8bb884cb77368049 (patch) | |
| tree | e63a326a9018713763e930bb5ed972f380d127f0 | |
| parent | c1e58e8d55c4162a6b603c52eaa46783e6f6d9da (diff) | |
LITMUS^RT syscall: expose sys_reservation_create() via ioctl()
| -rw-r--r-- | include/litmus/ctrlpage.h | 6 | ||||
| -rw-r--r-- | litmus/ctrldev.c | 6 |
2 files changed, 12 insertions, 0 deletions
diff --git a/include/litmus/ctrlpage.h b/include/litmus/ctrlpage.h index 41ca94a36005..f7b03e1aedd6 100644 --- a/include/litmus/ctrlpage.h +++ b/include/litmus/ctrlpage.h | |||
| @@ -64,6 +64,7 @@ typedef enum { | |||
| 64 | LRT_null_call = 2006, | 64 | LRT_null_call = 2006, |
| 65 | LRT_set_rt_task_param, | 65 | LRT_set_rt_task_param, |
| 66 | LRT_get_rt_task_param, | 66 | LRT_get_rt_task_param, |
| 67 | LRT_reservation_create, | ||
| 67 | LRT_complete_job, | 68 | LRT_complete_job, |
| 68 | LRT_od_open, | 69 | LRT_od_open, |
| 69 | LRT_od_close, | 70 | LRT_od_close, |
| @@ -82,6 +83,11 @@ union litmus_syscall_args { | |||
| 82 | } get_set_task_param; | 83 | } get_set_task_param; |
| 83 | 84 | ||
| 84 | struct { | 85 | struct { |
| 86 | uint32_t type; | ||
| 87 | void __user *config; | ||
| 88 | } reservation_create; | ||
| 89 | |||
| 90 | struct { | ||
| 85 | uint32_t fd; | 91 | uint32_t fd; |
| 86 | uint32_t obj_type; | 92 | uint32_t obj_type; |
| 87 | uint32_t obj_id; | 93 | uint32_t obj_id; |
diff --git a/litmus/ctrldev.c b/litmus/ctrldev.c index 3c8bbdb7c782..716215874803 100644 --- a/litmus/ctrldev.c +++ b/litmus/ctrldev.c | |||
| @@ -122,6 +122,7 @@ static int litmus_ctrl_mmap(struct file* filp, struct vm_area_struct* vma) | |||
| 122 | 122 | ||
| 123 | asmlinkage long sys_set_rt_task_param(pid_t pid, struct rt_task __user * param); | 123 | asmlinkage long sys_set_rt_task_param(pid_t pid, struct rt_task __user * param); |
| 124 | asmlinkage long sys_get_rt_task_param(pid_t pid, struct rt_task __user * param); | 124 | asmlinkage long sys_get_rt_task_param(pid_t pid, struct rt_task __user * param); |
| 125 | asmlinkage long sys_reservation_create(int type, void __user *config); | ||
| 125 | asmlinkage long sys_get_current_budget(lt_t __user * _expended, lt_t __user *_remaining); | 126 | asmlinkage long sys_get_current_budget(lt_t __user * _expended, lt_t __user *_remaining); |
| 126 | asmlinkage long sys_null_call(cycles_t __user *ts); | 127 | asmlinkage long sys_null_call(cycles_t __user *ts); |
| 127 | asmlinkage long sys_od_open(int fd, int type, int obj_id, void* __user config); | 128 | asmlinkage long sys_od_open(int fd, int type, int obj_id, void* __user config); |
| @@ -150,6 +151,7 @@ static long litmus_ctrl_ioctl(struct file *filp, | |||
| 150 | switch (cmd) { | 151 | switch (cmd) { |
| 151 | case LRT_set_rt_task_param: | 152 | case LRT_set_rt_task_param: |
| 152 | case LRT_get_rt_task_param: | 153 | case LRT_get_rt_task_param: |
| 154 | case LRT_reservation_create: | ||
| 153 | case LRT_get_current_budget: | 155 | case LRT_get_current_budget: |
| 154 | case LRT_od_open: | 156 | case LRT_od_open: |
| 155 | /* multiple arguments => need to get args via pointer */ | 157 | /* multiple arguments => need to get args via pointer */ |
| @@ -168,6 +170,10 @@ static long litmus_ctrl_ioctl(struct file *filp, | |||
| 168 | return sys_get_rt_task_param( | 170 | return sys_get_rt_task_param( |
| 169 | syscall_args.get_set_task_param.pid, | 171 | syscall_args.get_set_task_param.pid, |
| 170 | syscall_args.get_set_task_param.param); | 172 | syscall_args.get_set_task_param.param); |
| 173 | case LRT_reservation_create: | ||
| 174 | return sys_reservation_create( | ||
| 175 | syscall_args.reservation_create.type, | ||
| 176 | syscall_args.reservation_create.config); | ||
| 171 | case LRT_get_current_budget: | 177 | case LRT_get_current_budget: |
| 172 | return sys_get_current_budget( | 178 | return sys_get_current_budget( |
| 173 | syscall_args.get_current_budget.expended, | 179 | syscall_args.get_current_budget.expended, |
