1 /*
2  * timer_delete.c - delete a per-process timer.
3  */
4 
5 #include <errno.h>
6 #include <stdlib.h>
7 #include <time.h>
8 #include <sys/syscall.h>
9 
10 #include "kernel-posix-timers.h"
11 
12 #ifdef __NR_timer_delete
13 
14 #define __NR___syscall_timer_delete __NR_timer_delete
15 static __inline__ _syscall1(int, __syscall_timer_delete, kernel_timer_t, ktimerid);
16 
17 /* Delete a per-process timer */
timer_delete(timer_t timerid)18 int timer_delete(timer_t timerid)
19 {
20 	int res;
21 	struct timer *kt = (struct timer *)timerid;
22 
23 	/* Delete the kernel timer object */
24 	res = __syscall_timer_delete(kt->ktimerid);
25 	if (res == 0) {
26 		free(kt);	/* Free the memory */
27 		return 0;
28 	}
29 
30 	return -1;
31 }
32 
33 #endif
34