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)18int 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