648
Elie De Brauwer <eliedebrauwer@gmail.com>
parents:
diff
changeset
|
1 /* vi: set sw=4 ts=4:
|
Elie De Brauwer <eliedebrauwer@gmail.com>
parents:
diff
changeset
|
2 *
|
Elie De Brauwer <eliedebrauwer@gmail.com>
parents:
diff
changeset
|
3 * usleep.c - Wait for a number of microseconds.
|
Elie De Brauwer <eliedebrauwer@gmail.com>
parents:
diff
changeset
|
4 *
|
Elie De Brauwer <eliedebrauwer@gmail.com>
parents:
diff
changeset
|
5 * Copyright 2012 Elie De Brauwer <eliedebrauwer@gmail.com>
|
Elie De Brauwer <eliedebrauwer@gmail.com>
parents:
diff
changeset
|
6
|
Elie De Brauwer <eliedebrauwer@gmail.com>
parents:
diff
changeset
|
7 USE_USLEEP(NEWTOY(usleep, "<1", TOYFLAG_BIN))
|
Elie De Brauwer <eliedebrauwer@gmail.com>
parents:
diff
changeset
|
8
|
Elie De Brauwer <eliedebrauwer@gmail.com>
parents:
diff
changeset
|
9 config USLEEP
|
Elie De Brauwer <eliedebrauwer@gmail.com>
parents:
diff
changeset
|
10 bool "usleep"
|
Elie De Brauwer <eliedebrauwer@gmail.com>
parents:
diff
changeset
|
11 default y
|
Elie De Brauwer <eliedebrauwer@gmail.com>
parents:
diff
changeset
|
12 help
|
Elie De Brauwer <eliedebrauwer@gmail.com>
parents:
diff
changeset
|
13 usage: usleep MICROSECONDS
|
Elie De Brauwer <eliedebrauwer@gmail.com>
parents:
diff
changeset
|
14
|
Elie De Brauwer <eliedebrauwer@gmail.com>
parents:
diff
changeset
|
15 Pause for MICROSECONDS microseconds.
|
Elie De Brauwer <eliedebrauwer@gmail.com>
parents:
diff
changeset
|
16
|
Elie De Brauwer <eliedebrauwer@gmail.com>
parents:
diff
changeset
|
17 */
|
Elie De Brauwer <eliedebrauwer@gmail.com>
parents:
diff
changeset
|
18
|
Elie De Brauwer <eliedebrauwer@gmail.com>
parents:
diff
changeset
|
19 #include "toys.h"
|
Elie De Brauwer <eliedebrauwer@gmail.com>
parents:
diff
changeset
|
20
|
Elie De Brauwer <eliedebrauwer@gmail.com>
parents:
diff
changeset
|
21 void usleep_main(void)
|
Elie De Brauwer <eliedebrauwer@gmail.com>
parents:
diff
changeset
|
22 {
|
Elie De Brauwer <eliedebrauwer@gmail.com>
parents:
diff
changeset
|
23 struct timespec tv;
|
Elie De Brauwer <eliedebrauwer@gmail.com>
parents:
diff
changeset
|
24 long delay = atol(*toys.optargs);
|
Elie De Brauwer <eliedebrauwer@gmail.com>
parents:
diff
changeset
|
25
|
Elie De Brauwer <eliedebrauwer@gmail.com>
parents:
diff
changeset
|
26 tv.tv_sec = delay/1000000;
|
Elie De Brauwer <eliedebrauwer@gmail.com>
parents:
diff
changeset
|
27 tv.tv_nsec = (delay%1000000) * 1000;
|
Elie De Brauwer <eliedebrauwer@gmail.com>
parents:
diff
changeset
|
28 toys.exitval = !!nanosleep(&tv, NULL);
|
Elie De Brauwer <eliedebrauwer@gmail.com>
parents:
diff
changeset
|
29
|
Elie De Brauwer <eliedebrauwer@gmail.com>
parents:
diff
changeset
|
30 }
|