Commit 20592ace authored by Andrew Vagin's avatar Andrew Vagin Committed by Pavel Emelyanov

syscall: use a correct type for timer_t

timer_t is (void *) in glibc, but timer_t is (int) in kernel.
When we call system calls, we need to use timer_t from kernl.

https://github.com/xemul/criu/issues/98Signed-off-by: 's avatarAndrew Vagin <avagin@virtuozzo.com>
Acked-by: 's avatarCyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: 's avatarPavel Emelyanov <xemul@parallels.com>
parent fc3dadfb
...@@ -80,11 +80,11 @@ gettid 178 224 (void) ...@@ -80,11 +80,11 @@ gettid 178 224 (void)
futex 98 240 (u32 *uaddr, int op, u32 val, struct timespec *utime, u32 *uaddr2, u32 val3) futex 98 240 (u32 *uaddr, int op, u32 val, struct timespec *utime, u32 *uaddr2, u32 val3)
set_tid_address 96 256 (int *tid_addr) set_tid_address 96 256 (int *tid_addr)
restart_syscall 128 0 (void) restart_syscall 128 0 (void)
timer_create 107 257 (clockid_t which_clock, struct sigevent *timer_event_spec, timer_t *created_timer_id) timer_create 107 257 (clockid_t which_clock, struct sigevent *timer_event_spec, kernel_timer_t *created_timer_id)
timer_settime 110 258 (timer_t timer_id, int flags, const struct itimerspec *new_setting, struct itimerspec *old_setting) timer_settime 110 258 (kernel_timer_t timer_id, int flags, const struct itimerspec *new_setting, struct itimerspec *old_setting)
timer_gettime 108 259 (int timer_id, const struct itimerspec *setting) timer_gettime 108 259 (int timer_id, const struct itimerspec *setting)
timer_getoverrun 109 260 (int timer_id) timer_getoverrun 109 260 (int timer_id)
timer_delete 111 261 (timer_t timer_id) timer_delete 111 261 (kernel_timer_t timer_id)
clock_gettime 113 263 (const clockid_t which_clock, const struct timespec *tp) clock_gettime 113 263 (const clockid_t which_clock, const struct timespec *tp)
exit_group 94 248 (int error_code) exit_group 94 248 (int error_code)
set_robust_list 99 338 (struct robust_list_head *head, size_t len) set_robust_list 99 338 (struct robust_list_head *head, size_t len)
......
...@@ -77,11 +77,11 @@ __NR_gettid 207 sys_gettid (void) ...@@ -77,11 +77,11 @@ __NR_gettid 207 sys_gettid (void)
__NR_futex 221 sys_futex (u32 *uaddr, int op, u32 val, struct timespec *utime, u32 *uaddr2, u32 val3) __NR_futex 221 sys_futex (u32 *uaddr, int op, u32 val, struct timespec *utime, u32 *uaddr2, u32 val3)
__NR_set_tid_address 232 sys_set_tid_address (int *tid_addr) __NR_set_tid_address 232 sys_set_tid_address (int *tid_addr)
__NR_restart_syscall 0 sys_restart_syscall (void) __NR_restart_syscall 0 sys_restart_syscall (void)
__NR_sys_timer_create 240 sys_timer_create (clockid_t which_clock, struct sigevent *timer_event_spec, timer_t *created_timer_id) __NR_sys_timer_create 240 sys_timer_create (clockid_t which_clock, struct sigevent *timer_event_spec, kernel_timer_t *created_timer_id)
__NR_sys_timer_settime 241 sys_timer_settime (timer_t timer_id, int flags, const struct itimerspec *new_setting, struct itimerspec *old_setting) __NR_sys_timer_settime 241 sys_timer_settime (kernel_timer_t timer_id, int flags, const struct itimerspec *new_setting, struct itimerspec *old_setting)
__NR_sys_timer_gettime 242 sys_timer_gettime (int timer_id, const struct itimerspec *setting) __NR_sys_timer_gettime 242 sys_timer_gettime (int timer_id, const struct itimerspec *setting)
__NR_sys_timer_getoverrun 243 sys_timer_getoverrun (int timer_id) __NR_sys_timer_getoverrun 243 sys_timer_getoverrun (int timer_id)
__NR_sys_timer_delete 244 sys_timer_delete (timer_t timer_id) __NR_sys_timer_delete 244 sys_timer_delete (kernel_timer_t timer_id)
__NR_clock_gettime 246 sys_clock_gettime (const clockid_t which_clock, const struct timespec *tp) __NR_clock_gettime 246 sys_clock_gettime (const clockid_t which_clock, const struct timespec *tp)
__NR_exit_group 234 sys_exit_group (int error_code) __NR_exit_group 234 sys_exit_group (int error_code)
__NR_waitid 272 sys_waitid (int which, pid_t pid, struct siginfo *infop, int options, struct rusage *ru) __NR_waitid 272 sys_waitid (int which, pid_t pid, struct siginfo *infop, int options, struct rusage *ru)
......
...@@ -69,11 +69,11 @@ __NR_io_setup 245 sys_io_setup (unsigned nr_reqs, aio_context_t *ctx32p) ...@@ -69,11 +69,11 @@ __NR_io_setup 245 sys_io_setup (unsigned nr_reqs, aio_context_t *ctx32p)
__NR_io_getevents 247 sys_io_getevents (aio_context_t ctx_id, long min_nr, long nr, struct io_event *events, struct timespec *timeout) __NR_io_getevents 247 sys_io_getevents (aio_context_t ctx_id, long min_nr, long nr, struct io_event *events, struct timespec *timeout)
__NR_exit_group 252 sys_exit_group (int error_code) __NR_exit_group 252 sys_exit_group (int error_code)
__NR_set_tid_address 258 sys_set_tid_address (int *tid_addr) __NR_set_tid_address 258 sys_set_tid_address (int *tid_addr)
__NR_timer_create 259 sys_timer_create (clockid_t which_clock, struct sigevent *timer_event_spec, timer_t *created_timer_id) __NR_timer_create 259 sys_timer_create (clockid_t which_clock, struct sigevent *timer_event_spec, kernel_timer_t *created_timer_id)
__NR_timer_settime 260 sys_timer_settime (timer_t timer_id, int flags, struct itimerspec *new, struct itimerspec *old) __NR_timer_settime 260 sys_timer_settime (kernel_timer_t timer_id, int flags, struct itimerspec *new, struct itimerspec *old)
__NR_timer_gettime 261 sys_timer_gettime (int timer_id, struct itimerspec *setting) __NR_timer_gettime 261 sys_timer_gettime (int timer_id, struct itimerspec *setting)
__NR_timer_getoverrun 262 sys_timer_getoverrun (int timer_id) __NR_timer_getoverrun 262 sys_timer_getoverrun (int timer_id)
__NR_timer_delete 263 sys_timer_delete (timer_t timer_id) __NR_timer_delete 263 sys_timer_delete (kernel_timer_t timer_id)
__NR_clock_gettime 265 sys_clock_gettime (int which_clock, struct timespec *tp) __NR_clock_gettime 265 sys_clock_gettime (int which_clock, struct timespec *tp)
__NR_seccomp 354 sys_seccomp (unsigned int op, unsigned int flags, const char *uargs) __NR_seccomp 354 sys_seccomp (unsigned int op, unsigned int flags, const char *uargs)
__NR_waitid 284 sys_waitid (int which, pid_t pid, struct siginfo *infop, int options, struct rusage *ru) __NR_waitid 284 sys_waitid (int which, pid_t pid, struct siginfo *infop, int options, struct rusage *ru)
......
...@@ -78,11 +78,11 @@ __NR_io_getevents 208 sys_io_getevents (aio_context_t ctx, long min_nr, long n ...@@ -78,11 +78,11 @@ __NR_io_getevents 208 sys_io_getevents (aio_context_t ctx, long min_nr, long n
__NR_get_thread_area 211 sys_get_thread_area (user_desc_t *info) __NR_get_thread_area 211 sys_get_thread_area (user_desc_t *info)
__NR_set_tid_address 218 sys_set_tid_address (int *tid_addr) __NR_set_tid_address 218 sys_set_tid_address (int *tid_addr)
__NR_restart_syscall 219 sys_restart_syscall (void) __NR_restart_syscall 219 sys_restart_syscall (void)
__NR_sys_timer_create 222 sys_timer_create (clockid_t which_clock, struct sigevent *timer_event_spec, timer_t *created_timer_id) __NR_sys_timer_create 222 sys_timer_create (clockid_t which_clock, struct sigevent *timer_event_spec, kernel_timer_t *created_timer_id)
__NR_sys_timer_settime 223 sys_timer_settime (timer_t timer_id, int flags, const struct itimerspec *new_setting, struct itimerspec *old_setting) __NR_sys_timer_settime 223 sys_timer_settime (kernel_timer_t timer_id, int flags, const struct itimerspec *new_setting, struct itimerspec *old_setting)
__NR_sys_timer_gettime 224 sys_timer_gettime (int timer_id, const struct itimerspec *setting) __NR_sys_timer_gettime 224 sys_timer_gettime (int timer_id, const struct itimerspec *setting)
__NR_sys_timer_getoverrun 225 sys_timer_getoverrun (int timer_id) __NR_sys_timer_getoverrun 225 sys_timer_getoverrun (int timer_id)
__NR_sys_timer_delete 226 sys_timer_delete (timer_t timer_id) __NR_sys_timer_delete 226 sys_timer_delete (kernel_timer_t timer_id)
__NR_clock_gettime 228 sys_clock_gettime (const clockid_t which_clock, const struct timespec *tp) __NR_clock_gettime 228 sys_clock_gettime (const clockid_t which_clock, const struct timespec *tp)
__NR_exit_group 231 sys_exit_group (int error_code) __NR_exit_group 231 sys_exit_group (int error_code)
__NR_openat 257 sys_openat (int dfd, const char *filename, int flags, int mode) __NR_openat 257 sys_openat (int dfd, const char *filename, int flags, int mode)
......
...@@ -82,4 +82,7 @@ struct krlimit { ...@@ -82,4 +82,7 @@ struct krlimit {
struct siginfo; struct siginfo;
/* Type of timers in the kernel. */
typedef int kernel_timer_t;
#endif /* __CR_SYSCALL_TYPES_H__ */ #endif /* __CR_SYSCALL_TYPES_H__ */
...@@ -688,7 +688,7 @@ static int timerfd_arm(struct task_restore_args *args) ...@@ -688,7 +688,7 @@ static int timerfd_arm(struct task_restore_args *args)
static int create_posix_timers(struct task_restore_args *args) static int create_posix_timers(struct task_restore_args *args)
{ {
int ret, i; int ret, i;
timer_t next_id; kernel_timer_t next_id;
struct sigevent sev; struct sigevent sev;
for (i = 0; i < args->posix_timers_n; i++) { for (i = 0; i < args->posix_timers_n; i++) {
...@@ -703,12 +703,12 @@ static int create_posix_timers(struct task_restore_args *args) ...@@ -703,12 +703,12 @@ static int create_posix_timers(struct task_restore_args *args)
return ret; return ret;
} }
if ((long)next_id == args->posix_timers[i].spt.it_id) if (next_id == args->posix_timers[i].spt.it_id)
break; break;
ret = sys_timer_delete(next_id); ret = sys_timer_delete(next_id);
if (ret < 0) { if (ret < 0) {
pr_err("Can't remove temporaty posix timer %lx\n", (long) next_id); pr_err("Can't remove temporaty posix timer 0x%x\n", next_id);
return ret; return ret;
} }
...@@ -729,7 +729,7 @@ static void restore_posix_timers(struct task_restore_args *args) ...@@ -729,7 +729,7 @@ static void restore_posix_timers(struct task_restore_args *args)
for (i = 0; i < args->posix_timers_n; i++) { for (i = 0; i < args->posix_timers_n; i++) {
rt = &args->posix_timers[i]; rt = &args->posix_timers[i];
sys_timer_settime((timer_t)rt->spt.it_id, 0, &rt->val, NULL); sys_timer_settime((kernel_timer_t)rt->spt.it_id, 0, &rt->val, NULL);
} }
} }
static void *bootstrap_start; static void *bootstrap_start;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment