annotate toys/other/usleep.c @ 656:6df4ccc0acbe

Regularize command headers, update links to standards documents.
author Rob Landley <rob@landley.net>
date Sat, 25 Aug 2012 18:08:51 -0500
parents 2986aa63a021
children 786841fdb1e0
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
648
131571cf708c Adding usleep
Elie De Brauwer <eliedebrauwer@gmail.com>
parents:
diff changeset
1 /* vi: set sw=4 ts=4:
131571cf708c Adding usleep
Elie De Brauwer <eliedebrauwer@gmail.com>
parents:
diff changeset
2 *
131571cf708c Adding usleep
Elie De Brauwer <eliedebrauwer@gmail.com>
parents:
diff changeset
3 * usleep.c - Wait for a number of microseconds.
131571cf708c Adding usleep
Elie De Brauwer <eliedebrauwer@gmail.com>
parents:
diff changeset
4 *
131571cf708c Adding usleep
Elie De Brauwer <eliedebrauwer@gmail.com>
parents:
diff changeset
5 * Copyright 2012 Elie De Brauwer <eliedebrauwer@gmail.com>
131571cf708c Adding usleep
Elie De Brauwer <eliedebrauwer@gmail.com>
parents:
diff changeset
6
131571cf708c Adding usleep
Elie De Brauwer <eliedebrauwer@gmail.com>
parents:
diff changeset
7 USE_USLEEP(NEWTOY(usleep, "<1", TOYFLAG_BIN))
131571cf708c Adding usleep
Elie De Brauwer <eliedebrauwer@gmail.com>
parents:
diff changeset
8
131571cf708c Adding usleep
Elie De Brauwer <eliedebrauwer@gmail.com>
parents:
diff changeset
9 config USLEEP
131571cf708c Adding usleep
Elie De Brauwer <eliedebrauwer@gmail.com>
parents:
diff changeset
10 bool "usleep"
131571cf708c Adding usleep
Elie De Brauwer <eliedebrauwer@gmail.com>
parents:
diff changeset
11 default y
131571cf708c Adding usleep
Elie De Brauwer <eliedebrauwer@gmail.com>
parents:
diff changeset
12 help
131571cf708c Adding usleep
Elie De Brauwer <eliedebrauwer@gmail.com>
parents:
diff changeset
13 usage: usleep MICROSECONDS
131571cf708c Adding usleep
Elie De Brauwer <eliedebrauwer@gmail.com>
parents:
diff changeset
14
131571cf708c Adding usleep
Elie De Brauwer <eliedebrauwer@gmail.com>
parents:
diff changeset
15 Pause for MICROSECONDS microseconds.
131571cf708c Adding usleep
Elie De Brauwer <eliedebrauwer@gmail.com>
parents:
diff changeset
16
131571cf708c Adding usleep
Elie De Brauwer <eliedebrauwer@gmail.com>
parents:
diff changeset
17 */
131571cf708c Adding usleep
Elie De Brauwer <eliedebrauwer@gmail.com>
parents:
diff changeset
18
131571cf708c Adding usleep
Elie De Brauwer <eliedebrauwer@gmail.com>
parents:
diff changeset
19 #include "toys.h"
131571cf708c Adding usleep
Elie De Brauwer <eliedebrauwer@gmail.com>
parents:
diff changeset
20
131571cf708c Adding usleep
Elie De Brauwer <eliedebrauwer@gmail.com>
parents:
diff changeset
21 void usleep_main(void)
131571cf708c Adding usleep
Elie De Brauwer <eliedebrauwer@gmail.com>
parents:
diff changeset
22 {
131571cf708c Adding usleep
Elie De Brauwer <eliedebrauwer@gmail.com>
parents:
diff changeset
23 struct timespec tv;
131571cf708c Adding usleep
Elie De Brauwer <eliedebrauwer@gmail.com>
parents:
diff changeset
24 long delay = atol(*toys.optargs);
131571cf708c Adding usleep
Elie De Brauwer <eliedebrauwer@gmail.com>
parents:
diff changeset
25
131571cf708c Adding usleep
Elie De Brauwer <eliedebrauwer@gmail.com>
parents:
diff changeset
26 tv.tv_sec = delay/1000000;
131571cf708c Adding usleep
Elie De Brauwer <eliedebrauwer@gmail.com>
parents:
diff changeset
27 tv.tv_nsec = (delay%1000000) * 1000;
131571cf708c Adding usleep
Elie De Brauwer <eliedebrauwer@gmail.com>
parents:
diff changeset
28 toys.exitval = !!nanosleep(&tv, NULL);
131571cf708c Adding usleep
Elie De Brauwer <eliedebrauwer@gmail.com>
parents:
diff changeset
29
131571cf708c Adding usleep
Elie De Brauwer <eliedebrauwer@gmail.com>
parents:
diff changeset
30 }