1/* 2 * Copyright 2004-2005, 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 15useconds_t 16ualarm(useconds_t usec, useconds_t interval) 17{ 18 struct itimerval value, oldValue; 19 20 value.it_value.tv_sec = usec / 1000000; 21 value.it_value.tv_usec = usec % 1000000; 22 value.it_interval.tv_sec = interval / 1000000; 23 value.it_interval.tv_usec = interval % 1000000; 24 25 if (setitimer(ITIMER_REAL, &value, &oldValue) < 0) 26 return -1; 27 28 return (oldValue.it_value.tv_sec * 1000000) + oldValue.it_value.tv_usec; 29} 30