Note: just a PoC that the current SPI flash code is based on. Not meant to reject the getopt code Simon posted.
Signed-off-by: Mike Frysinger <vap...@gentoo.org> --- arch/sandbox/cpu/os.c | 13 +++++++++++++ arch/sandbox/cpu/start.c | 24 ++++++++++++++++++++++++ include/os.h | 2 ++ 3 files changed, 39 insertions(+), 0 deletions(-) diff --git a/arch/sandbox/cpu/os.c b/arch/sandbox/cpu/os.c index 6e257ff..1d3e54f 100644 --- a/arch/sandbox/cpu/os.c +++ b/arch/sandbox/cpu/os.c @@ -22,6 +22,7 @@ #include <errno.h> #include <fcntl.h> #include <stdlib.h> +#include <string.h> #include <termios.h> #include <time.h> #include <unistd.h> @@ -127,3 +128,15 @@ u64 os_get_nsec(void) return tv.tv_sec * 1000000000ULL + tv.tv_usec * 1000; #endif } + +extern char **sb_argv; +const char *os_getopt(const char *name, int has_arg) +{ + size_t i; + + for (i = 0; sb_argv[i]; ++i) + if (!strcmp(sb_argv[i], name)) + return sb_argv[i + !!has_arg]; + + return NULL; +} diff --git a/arch/sandbox/cpu/start.c b/arch/sandbox/cpu/start.c index a429e29..3508a35 100644 --- a/arch/sandbox/cpu/start.c +++ b/arch/sandbox/cpu/start.c @@ -20,9 +20,33 @@ */ #include <common.h> +#include <os.h> + +char **sb_argv; + +static const char usage[] = + "Usage: u-boot [options]\n" + "\n" + "Options: (note: not all options may be available)\n" + " -h, --help this message (imagine that)\n" +#ifdef CONFIG_SANDBOX_SPI + " --spi-<bus>-<cs> <spec> connect client to spi <bus> on <cs>\n" +# ifdef CONFIG_SPI_FLASH + " spec: sf:<file> treat <file> as spi flash\n" +# endif +#endif +; int main(int argc, char *argv[]) { + /* Save the argv for people to access */ + sb_argv = argv; + + if (os_getopt("-h", 0) || os_getopt("--help", 0)) { + serial_puts(usage); + return 0; + } + /* * Do pre- and post-relocation init, then start up U-Boot. This will * never return. diff --git a/include/os.h b/include/os.h index d182f40..cb88509 100644 --- a/include/os.h +++ b/include/os.h @@ -112,4 +112,6 @@ void os_usleep(unsigned long usec); */ u64 os_get_nsec(void); +const char *os_getopt(const char *name, int has_arg); + #endif -- 1.7.8.3 _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot