From abff6d226a55f3453b085c0d920e02973b971743 Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Fri, 17 Dec 2010 14:49:40 +0000 Subject: 2010-12-17 Joel Sherrill Jennifer Averett Add RTEMS Scheduler Simulator. This is the shell scripting portion. * .cvsignore, ChangeLog, Makefile.am, schedsim_priority/.cvsignore, schedsim_priority/Makefile.am, schedsim_priority/config.c, schedsim_priority/printheir_executing.c, schedsim_priority/schedsim.cc, schedsim_priority/wrap_thread_dispatch.c, scripts/script01, scripts/script02, scripts/script03, scripts/script04, scripts/script05, scripts/script06, shared/.cvsignore, shared/Makefile.am, shared/commands.c, shared/getopt.c, shared/lookup_semaphore.c, shared/lookup_task.c, shared/main_clocktick.c, shared/main_echo.c, shared/main_executing.c, shared/main_heir.c, shared/main_help.c, shared/main_rtemsinit.c, shared/main_semcreate.c, shared/main_semdelete.c, shared/main_semflush.c, shared/main_semobtain.c, shared/main_semrelease.c, shared/main_taskcreate.c, shared/main_taskdelete.c, shared/main_taskmode.c, shared/main_taskpriority.c, shared/main_taskresume.c, shared/main_tasksuspend.c, shared/main_taskwakeafter.c, shared/schedsim_shell.h, shared/shell_cmdset.c, shared/shell_makeargs.c, shared/include/shell.h, shared/include/newlib/_ansi.h, shared/include/newlib/getopt.h: New files. --- tools/schedsim/shell/shared/shell_makeargs.c | 68 ++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 tools/schedsim/shell/shared/shell_makeargs.c (limited to 'tools/schedsim/shell/shared/shell_makeargs.c') diff --git a/tools/schedsim/shell/shared/shell_makeargs.c b/tools/schedsim/shell/shared/shell_makeargs.c new file mode 100644 index 0000000000..e959138249 --- /dev/null +++ b/tools/schedsim/shell/shared/shell_makeargs.c @@ -0,0 +1,68 @@ +/* + * Split string into argc/argv style argument list + * + * COPYRIGHT (c) 1989-2010. + * On-Line Applications Research Corporation (OAR). + * + * The license and distribution terms for this file may be + * found in the file LICENSE in this distribution or at + * http://www.rtems.com/license/LICENSE. + * + * $Id$ + */ + +#if HAVE_CONFIG_H +#include "config.h" +#endif + +#include +#include + +int rtems_shell_make_args( + char *commandLine, + int *argc_p, + char **argv_p, + int max_args +) +{ + int argc; + char *ch; + int status = 0; + + argc = 0; + ch = commandLine; + + while ( *ch ) { + + while ( isspace((unsigned char)*ch) ) ch++; + + if ( *ch == '\0' ) + break; + + if ( *ch == '"' ) { + argv_p[ argc ] = ++ch; + while ( ( *ch != '\0' ) && ( *ch != '"' ) ) ch++; + } else { + argv_p[ argc ] = ch; + while ( ( *ch != '\0' ) && ( !isspace((unsigned char)*ch) ) ) ch++; + } + + argc++; + + if ( *ch == '\0' ) + break; + + *ch++ = '\0'; + + if ( argc == (max_args-1) ) { + status = -1; + break; + } + + + } + argv_p[ argc ] = NULL; + *argc_p = argc; + return status; +} + -- cgit v1.2.3