summaryrefslogtreecommitdiff
path: root/src/helper/command.h
Commit message (Collapse)AuthorAgeFilesLines
* command_context_t -> struct command_contextZachary T Welch2009-11-131-19/+19
| | | | Remove misleading typedef and redundant suffix from struct command_context.
* command_handler_t: make cmd an indirect parameterZachary T Welch2009-11-131-3/+3
| | | | | This patch removes 'cmd' from the list of direct parameters, moving that pointer to args[-1] (by way of the new CMD_NAME macro).
* command_handler_t: make args parameter constZachary T Welch2009-11-131-1/+1
| | | | | This patch prevents command handlers from modifying the strings passed in the 'args' array.
* command_handler_t: make cmd parameter constZachary T Welch2009-11-131-1/+1
| | | | | Prevents the command name from being modified in command handlers. Again, this has cascading effects, but the patches are fairly minimal.
* command_handler_t: make argc unsignedZachary T Welch2009-11-131-1/+1
| | | | | | The number of command arguments will always be 0 or more, so use the right type in handlers. This has a cascading effect up through the layers, but the new COMMAND_HANDLER macros prevented total chaos.
* add CMD_NAME macro for command handlersZachary T Welch2009-11-131-0/+6
| | | | | By introducing the CMD_NAME macro, this parameter may be integrated as args[-1] in command.[ch], without touching any other call sites.
* add command_handler_t typeZachary T Welch2009-11-131-4/+5
| | | | | | This patch adds new typedefs for command handler callback functions. Users of this type signature were updated to use these new types. It uses the new __COMMAND_HANDLER macro to prevent duplication.
* add COMMAND_HANDLER and COMMAND_HELPER macrosZachary T Welch2009-11-131-0/+42
| | | | | | | | | | | | | | | | | The COMMAND_HANDLER and COMMAND_HELPER macros allow commands to be defined in a manner that decouples them from the exact order and type of their parameters. Once converted, incremental changes to the command handler type can be addressed in incremental patches that do not need to touch the entire tree. These macros' implementation, __COMMAND_HANDLER, is used to define the new command_handler_t type, and additional patches will use it to derive new macros to define extended command types (e.g. flash, nand, pld). The CALL_COMMAND_HANDLER provides a means of calling helpers or nested handlers from withing a command handler. This patch uses C99 varadic macro expansion. Please report compilers that cannot handle this code.
* add command_output_handler_tZachary T Welch2009-11-131-3/+8
| | | | | Add a typedef for command output handler function type, simplifying the appearance of functions that use it and eliminating duplicate code.
* add command_name helperZachary T Welch2009-11-111-0/+10
| | | | | | | The command_name function returns a malloced string for a given command and its parents. This can be used to display a message to the user, but it is used internally to handle registration and syntax errors. This helps permit arbitrary command nesting.
* script_debug(): improve typesZachary T Welch2009-11-111-1/+2
| | | | Use unsigned type for number of arguments.
* src/helper: wrap and clean headers.Zachary T Welch2009-11-091-15/+26
| | | | | Remove all useless 'extern' keywords from function prototypes. Wraps long lines for readability.
* Add macro for parsing numeric command arguments.Zachary T Welch2009-11-051-0/+21
| | | | | | | | This helper eliminates significant amount of redundant code in command handler functions throughout the system. It wraps the lower-level parse_* macros to implement a policy for reporting parse errors to the active command context (cmd_ctx). If errors do occur, this macro causes the calling function to abort with the proper return code.
* corrective fix for MinGW GNU C99 printf complianceRedirect 'Slash' NIL2009-10-191-3/+4
| | | | | | | | | | | | | | Compilation on cygwin, using gcc v3 with option -mno-cygwin, currently produces a large number of the following warnings: warning: `gnu_printf' is an unrecognized format function type These have been introduced with the recent MinGW GNU C99 printf compliance patch, as gnu_printf was only introduced with gcc v4.4 and is not recognized with earlier versions. The attached fix adds gcc version detection to the previous patch to avoid the problem.
* More MinGW C99 printf complianceRedirect 'Slash' NIL2009-10-171-3/+11
| | | | | | | | Passing "--std=gun99" is unfortunately not sufficient to make current MinGW compilers conform with respect to checking printf format strings. (The C runtime seems not to have problems.) Fix by using a "gnu_printf" format specifier not "printf".
* Andreas Fritiofson <andreas.fritiofson@gmail.com> UTF8 fixesoharboe2009-07-171-1/+1
| | | | git-svn-id: svn://svn.berlios.de/openocd/trunk@2549 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* Change parse_type macros to be sed-friendly.zwelch2009-06-171-9/+9
| | | | git-svn-id: svn://svn.berlios.de/openocd/trunk@2259 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* Add argument parsing errors in command.h, use in parse_type routines.zwelch2009-06-171-0/+3
| | | | git-svn-id: svn://svn.berlios.de/openocd/trunk@2258 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* Move definition of parse_type helpers to command.c:zwelch2009-06-171-22/+12
| | | | | | | | - Add declarations in header file. - Improve wrapper implementations to check for underflow. git-svn-id: svn://svn.berlios.de/openocd/trunk@2257 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* Add improved support for parsing signed integers.zwelch2009-06-171-0/+10
| | | | git-svn-id: svn://svn.berlios.de/openocd/trunk@2255 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* Update parse_type macro definitions to allow re-use with signed types.zwelch2009-06-171-3/+6
| | | | git-svn-id: svn://svn.berlios.de/openocd/trunk@2254 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* David Brownell <david-b@pacbell.net>:zwelch2009-06-121-0/+2
| | | | | | | | | | | | | Currently the "debug_level 3" command tracing ignores commands that could return values to TCL scripts (by plugging in to a slightly lower level of the interpreter stack). Fix that by abstracting the tracing command and starting to make some of those previously-untraced commands use this new mechanism. git-svn-id: svn://svn.berlios.de/openocd/trunk@2224 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* Add new parse_uinttype wrappers for strtoul in src/helper/command.[ch].zwelch2009-06-121-0/+16
| | | | | | | - Used to improve command argument parsing of unsigned integers values. git-svn-id: svn://svn.berlios.de/openocd/trunk@2206 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* David Brownell <david-b@pacbell.net>:zwelch2009-06-111-3/+3
| | | | | | | | | | Minor bugfix: command_print_sameline() is what the headers declare; make the code match. Minor improvement: make the printf format params always be const. git-svn-id: svn://svn.berlios.de/openocd/trunk@2205 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* David Brownell <david-b@pacbell.net>: This patch adds annotations tozwelch2009-05-211-3/+7
| | | | | | | | | | the key command_*() helper functions, fixng the bugs that turned up. Several of these bugs were from misuse of PRIi64; that's for 64-bit integers, NOT for "long long" or "u64" (which work best with %lld). git-svn-id: svn://svn.berlios.de/openocd/trunk@1873 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* Less wrong handling of JIM_EMBEDDED, follow Jim Tcl doc's and only use ↵oharboe2009-05-151-1/+0
| | | | | | JIM_EMBEDDED in a single .c file. Still broken w/-fno-common(i.e. Mac OS). git-svn-id: svn://svn.berlios.de/openocd/trunk@1794 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* revert to 1775. 1790 causes SEGFAULT w/Cygwin.oharboe2009-05-151-0/+1
| | | | git-svn-id: svn://svn.berlios.de/openocd/trunk@1793 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* Remove JIM_EMBEDDED symbol; not appropriate or necessary.zwelch2009-05-141-1/+0
| | | | git-svn-id: svn://svn.berlios.de/openocd/trunk@1790 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* Include types.h in command.h to make stdint.h available through it.zwelch2009-05-131-0/+2
| | | | git-svn-id: svn://svn.berlios.de/openocd/trunk@1775 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* Audit and eliminate redundant helper #include directives.zwelch2009-05-111-10/+9
| | | | git-svn-id: svn://svn.berlios.de/openocd/trunk@1706 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* Added telnet_async command to enable/disable asynchronousoharboe2008-10-311-3/+5
| | | | | | messages. git-svn-id: svn://svn.berlios.de/openocd/trunk@1117 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* - added myself to copyright on files i remember adding large contributions ↵ntfreak2008-09-201-1/+1
| | | | | | | | | for over the years - cleaned up headers to match rest of code - added missing svn props for previously added files git-svn-id: svn://svn.berlios.de/openocd/trunk@987 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* Johannes Stezenbach <js@sig21.net> fix warningsoharboe2008-08-181-1/+1
| | | | git-svn-id: svn://svn.berlios.de/openocd/trunk@929 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* David Kuehling <dvdkhlng@gmx.de> - added jim-eventloop.coharboe2008-08-071-0/+2
| | | | git-svn-id: svn://svn.berlios.de/openocd/trunk@898 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* Duane Ellis: fix warningsoharboe2008-08-051-1/+1
| | | | git-svn-id: svn://svn.berlios.de/openocd/trunk@890 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* added yours sincerely for files where I feel that I've made non-trivial ↵oharboe2008-07-251-0/+3
| | | | | | contributions. git-svn-id: svn://svn.berlios.de/openocd/trunk@872 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* cross compile fixoharboe2008-07-211-1/+1
| | | | git-svn-id: svn://svn.berlios.de/openocd/trunk@848 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* - fix incorrectly registered function openocd_array2memntfreak2008-07-181-2/+0
| | | | | | | | | - removed unused variables - reformatted lpc288x.[ch] - fixed helper/Makefile.am dependencies - add correct svn props to added files git-svn-id: svn://svn.berlios.de/openocd/trunk@829 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* Charles Hardin <ckhardin@gmail.com> move tcl stuff nearer to where it belongs.oharboe2008-07-181-0/+15
| | | | git-svn-id: svn://svn.berlios.de/openocd/trunk@824 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* Charles Hardin <ckhardin@gmail.com> and Øyvind Harboeoharboe2008-07-171-1/+2
| | | | | | | | | This patch just uses the command.c interface to create tcl commands for the root level commands and avoids a bit of the "TCL" bleed into the rest of the openocd code. Multilevel commands also supported. git-svn-id: svn://svn.berlios.de/openocd/trunk@818 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* help is now implemented in startup.tcl/helpoharboe2008-07-111-1/+0
| | | | git-svn-id: svn://svn.berlios.de/openocd/trunk@797 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* - retired variable stuff. oharboe2008-07-111-1/+0
| | | | | | | | - drscan is now a low level tcl command: execute DR scan <device> <num_bits> <value> <num_bits1> <value2> - removed obsolete partial command text support git-svn-id: svn://svn.berlios.de/openocd/trunk@791 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* .cfg files are now executed as Jim Tcl. Commands that terminate script ↵oharboe2008-07-111-1/+0
| | | | | | w/error message. git-svn-id: svn://svn.berlios.de/openocd/trunk@790 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* - command_run_line will only search once for the command, and execute if foundntfreak2008-07-071-0/+1
| | | | git-svn-id: svn://svn.berlios.de/openocd/trunk@766 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* - fixed build issues with win32ntfreak2008-07-061-10/+1
| | | | | | | - fixed build warnings for last commit - set svn props for last commit git-svn-id: svn://svn.berlios.de/openocd/trunk@760 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* src/helper/configuration.hoharboe2008-07-061-2/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Log output handlers now get a "const char *line" - Added "const" to parameter. src/helper/command.c src/helper/command.h - New function: 'command_output_text()' - Log output handlers now get a "const char *line" src/helper/options.c - Log output handlers now get a "const char *line" src/server/telnet_server.c - DO not transmit NULL bytes via TELNET. - Log output handlers now get a "const char *line" src/server/gdb_server.c - Log output handlers now get a "const char *line" *** THIS INCLUDES PORTIONS OF A PATCH FROM Oyvind sent previously to the mailing list for TCL users try src/target/target.c *** THIS INCLUDES PORTIONS OF A PATCH FROM Oyvind sent previously to the mailing list for TCL users try src/target/target.h *** THIS INCLUDES PORTIONS OF A PATCH FROM Oyvind sent previously to the mailing list for TCL users try src/openocd.c - **MAJOR** Work: New TCL/Jim function: mem2array - **MAJOR** Work: Redirect Tcl/Jim stdio output to remote users. - Previously: TCL output did not go to GDB. - Previously: TCL output did not go to TELNET - Previously: TCL output only goes to control console. - This fixes that problem. + Created callbacks: +openocd_jim_fwrite() +openocd_jim_fread() +openocd_jim_vfprintf() +openocd_jim_fflush() +openocd_jim_fgets() src/Makefile.am - New TCL files. - Future note: This should be more automated. As the list of 'tcl' files grows maintaning this list will suck. src/Jim.c - ** THIS INCLUDES A PREVIOUS PATCH I SENT EARLIER ** - that impliments many [format] specifies JIM did not support. - Jim_FormatString() - **MAJOR** work. - Previously only supported "%s" "%d" and "%c" - And what support existed had bugs. - NEW: *MANY* formating parameters are now supported. - TODO: The "precision" specifier is not supported. ** NEW ** This patch. - Jim_StringToWide() test if no conversion occured. - Jim_StringToIndex() test if no conversion occured. - Jim_StringToDouble() test if no conversion occured. ** NEW ** This Patch. Major Work. - Previously output from JIM did not get sent to GDB - Ditto: Output to Telnet session. - Above items are now fixed - By introducing callbacks new function pointers in the "interp" structure. - Helpers that call the callbacks. - New function: Jim_fprintf() - New function: Jim_vfprintf() - New function: Jim_fwrite() - New function: Jim_fread() - New function: Jim_fflush() - New function: Jim_fgets() By default: the output is to STDIO as previous. The "openocd.c" - redirects the output as needed. - Jim_Panic() - Send panic to both STDERR and the interps specified STDERR output as a 2nd choice. - Now JIM's "stdin/stdout/stderr" paramters are "void *" and are no longer "FILE *". src/Jim.h - **MAJOR** - New JIM STDIO callbacks in the "interp" structure. - change: "stdin/stdout/stderr" are now "void *" cookies. - New JIM stdio helper functions. git-svn-id: svn://svn.berlios.de/openocd/trunk@755 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* utility fn.oharboe2008-07-041-0/+1
| | | | git-svn-id: svn://svn.berlios.de/openocd/trunk@742 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* hooks to enable experimentation with scripting language support. Reduces ↵oharboe2008-06-271-0/+1
| | | | | | patch size, but has no effect on OpenOCD otherwise. git-svn-id: svn://svn.berlios.de/openocd/trunk@733 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* Edgar Grimberg plugged a leak found w/Valgrind.oharboe2008-05-071-0/+1
| | | | git-svn-id: svn://svn.berlios.de/openocd/trunk@646 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* added fast option.oharboe2008-04-231-0/+3
| | | | git-svn-id: svn://svn.berlios.de/openocd/trunk@604 b42882b7-edfa-0310-969c-e2dbd0fdcd60