1/* 2** Copyright 2004, Axel D��rfler, axeld@pinc-software.de. All rights reserved. 3** Distributed under the terms of the MIT License. 4*/ 5 6 7#include <errno.h> 8#include <unistd.h> 9#include <sys/time.h> 10 11#include <errno_private.h> 12#include <syscalls.h> 13 14 15uint 16alarm(unsigned int sec) 17{ 18 struct itimerval value, oldValue; 19 20 value.it_interval.tv_sec = value.it_interval.tv_usec = 0; 21 value.it_value.tv_sec = sec; 22 value.it_value.tv_usec = 0; 23 if (setitimer(ITIMER_REAL, &value, &oldValue) < 0) 24 return -1; 25 26 if (oldValue.it_value.tv_usec) 27 oldValue.it_value.tv_sec++; 28 29 return oldValue.it_value.tv_sec; 30} 31 32