diff options
| author | Michael Brown | 2006-12-08 02:23:11 +0100 |
|---|---|---|
| committer | Michael Brown | 2006-12-08 02:23:11 +0100 |
| commit | f3d817d512f0f0a33f3476c11da657f7bbe3c2f5 (patch) | |
| tree | 009271f20f0808f79bf75243291e36b2e621aeaa /src/include | |
| parent | Added missing include of stdint.h (diff) | |
| download | ipxe-f3d817d512f0f0a33f3476c11da657f7bbe3c2f5.tar.gz ipxe-f3d817d512f0f0a33f3476c11da657f7bbe3c2f5.tar.xz ipxe-f3d817d512f0f0a33f3476c11da657f7bbe3c2f5.zip | |
Added execv() and system().
Diffstat (limited to 'src/include')
| -rw-r--r-- | src/include/gpxe/command.h | 22 | ||||
| -rw-r--r-- | src/include/stdlib.h | 1 | ||||
| -rw-r--r-- | src/include/unistd.h | 24 |
3 files changed, 47 insertions, 0 deletions
diff --git a/src/include/gpxe/command.h b/src/include/gpxe/command.h new file mode 100644 index 000000000..95f6c5ed5 --- /dev/null +++ b/src/include/gpxe/command.h @@ -0,0 +1,22 @@ +#ifndef _GPXE_COMMAND_H +#define _GPXE_COMMAND_H + +#include <gpxe/tables.h> + +/** A command-line command */ +struct command { + /** Name of the command */ + const char *name; + /** + * Function implementing the command + * + * @v argc Argument count + * @v argv Argument list + * @ret rc Return status code + */ + int ( * exec ) ( int argc, char **argv ); +}; + +#define __command __table ( commands, 01 ) + +#endif /* _GPXE_COMMAND_H */ diff --git a/src/include/stdlib.h b/src/include/stdlib.h index a7dd1d836..d71ee1ab2 100644 --- a/src/include/stdlib.h +++ b/src/include/stdlib.h @@ -5,6 +5,7 @@ extern unsigned long strtoul ( const char *p, char **endp, int base ); extern void * realloc ( void *old_ptr, size_t new_size ); extern void * malloc ( size_t size ); extern void free ( void *ptr ); +extern int system ( const char *command ); /** * Allocate cleared memory diff --git a/src/include/unistd.h b/src/include/unistd.h new file mode 100644 index 000000000..9dd51dcd7 --- /dev/null +++ b/src/include/unistd.h @@ -0,0 +1,24 @@ +#ifndef _UNISTD_H +#define _UNISTD_H + +#include <stddef.h> +#include <stdarg.h> + +extern int execv ( const char *command, char * const argv[] ); + +/** + * Execute command + * + * @v command Command name + * @v arg ... Argument list (starting with argv[0]) + * @ret rc Command exit status + * + * This is a front end to execv(). + */ +#define execl( command, arg, ... ) ( { \ + char * const argv[] = { (arg), ## __VA_ARGS__, NULL }; \ + int rc = execv ( (command), argv ); \ + rc; \ + } ) + +#endif /* _UNISTD_H */ |
