[timer] Formalise the timer API
[people/asdlkf/gpxe.git] / src / include / unistd.h
1 #ifndef _UNISTD_H
2 #define _UNISTD_H
3
4 #include <stddef.h>
5 #include <stdarg.h>
6
7 extern int execv ( const char *command, char * const argv[] );
8
9 /**
10  * Execute command
11  *
12  * @v command           Command name
13  * @v arg ...           Argument list (starting with argv[0])
14  * @ret rc              Command exit status
15  *
16  * This is a front end to execv().
17  */
18 #define execl( command, arg, ... ) ( {                                  \
19                 char * const argv[] = { (arg), ## __VA_ARGS__ };        \
20                 int rc = execv ( (command), argv );                     \
21                 rc;                                                     \
22         } )
23
24 /* Pick up udelay() */
25 #include <gpxe/timer.h>
26
27 /*
28  * sleep() prototype is defined by POSIX.1.  usleep() prototype is
29  * defined by 4.3BSD.  udelay() and mdelay() prototypes are chosen to
30  * be reasonably sensible.
31  *
32  */
33
34 extern unsigned int sleep ( unsigned int seconds );
35 extern void mdelay ( unsigned long msecs );
36
37 static inline __always_inline void usleep ( unsigned long usecs ) {
38         udelay ( usecs );
39 }
40
41 #endif /* _UNISTD_H */