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