15796c8dcSSimon Schubert /* Header file for command-reading library command.c. 25796c8dcSSimon Schubert 3*a45ae5f8SJohn Marino Copyright (C) 1986, 1989-1995, 1999-2000, 2002, 2004, 2007-2012 Free 4*a45ae5f8SJohn Marino Software Foundation, Inc. 55796c8dcSSimon Schubert 65796c8dcSSimon Schubert This program is free software; you can redistribute it and/or modify 75796c8dcSSimon Schubert it under the terms of the GNU General Public License as published by 85796c8dcSSimon Schubert the Free Software Foundation; either version 3 of the License, or 95796c8dcSSimon Schubert (at your option) any later version. 105796c8dcSSimon Schubert 115796c8dcSSimon Schubert This program is distributed in the hope that it will be useful, 125796c8dcSSimon Schubert but WITHOUT ANY WARRANTY; without even the implied warranty of 135796c8dcSSimon Schubert MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 145796c8dcSSimon Schubert GNU General Public License for more details. 155796c8dcSSimon Schubert 165796c8dcSSimon Schubert You should have received a copy of the GNU General Public License 175796c8dcSSimon Schubert along with this program. If not, see <http://www.gnu.org/licenses/>. */ 185796c8dcSSimon Schubert 195796c8dcSSimon Schubert #if !defined (COMMAND_H) 205796c8dcSSimon Schubert #define COMMAND_H 1 215796c8dcSSimon Schubert 22c50c785cSJohn Marino /* Command classes are top-level categories into which commands are 23c50c785cSJohn Marino broken down for "help" purposes. 24c50c785cSJohn Marino 255796c8dcSSimon Schubert Notes on classes: class_alias is for alias commands which are not 265796c8dcSSimon Schubert abbreviations of the original command. class-pseudo is for 275796c8dcSSimon Schubert commands which are not really commands nor help topics ("stop"). */ 285796c8dcSSimon Schubert 295796c8dcSSimon Schubert enum command_class 305796c8dcSSimon Schubert { 315796c8dcSSimon Schubert /* Special args to help_list */ 325796c8dcSSimon Schubert class_deprecated = -3, all_classes = -2, all_commands = -1, 335796c8dcSSimon Schubert /* Classes of commands */ 34c50c785cSJohn Marino no_class = -1, class_run = 0, class_vars, class_stack, class_files, 35c50c785cSJohn Marino class_support, class_info, class_breakpoint, class_trace, 36cf7f2e2dSJohn Marino class_alias, class_bookmark, class_obscure, class_maintenance, 37c50c785cSJohn Marino class_pseudo, class_tui, class_user, class_xdb, 38c50c785cSJohn Marino no_set_class /* Used for "show" commands that have no corresponding 39c50c785cSJohn Marino "set" command. */ 405796c8dcSSimon Schubert }; 415796c8dcSSimon Schubert 425796c8dcSSimon Schubert /* FIXME: cagney/2002-03-17: Once cmd_type() has been removed, ``enum 435796c8dcSSimon Schubert cmd_types'' can be moved from "command.h" to "cli-decode.h". */ 445796c8dcSSimon Schubert /* Not a set/show command. Note that some commands which begin with 455796c8dcSSimon Schubert "set" or "show" might be in this category, if their syntax does 465796c8dcSSimon Schubert not fall into one of the following categories. */ 475796c8dcSSimon Schubert typedef enum cmd_types 485796c8dcSSimon Schubert { 495796c8dcSSimon Schubert not_set_cmd, 505796c8dcSSimon Schubert set_cmd, 515796c8dcSSimon Schubert show_cmd 525796c8dcSSimon Schubert } 535796c8dcSSimon Schubert cmd_types; 545796c8dcSSimon Schubert 555796c8dcSSimon Schubert /* Types of "set" or "show" command. */ 565796c8dcSSimon Schubert typedef enum var_types 575796c8dcSSimon Schubert { 585796c8dcSSimon Schubert /* "on" or "off". *VAR is an integer which is nonzero for on, 595796c8dcSSimon Schubert zero for off. */ 605796c8dcSSimon Schubert var_boolean, 615796c8dcSSimon Schubert 625796c8dcSSimon Schubert /* "on" / "true" / "enable" or "off" / "false" / "disable" or 635796c8dcSSimon Schubert "auto. *VAR is an ``enum auto_boolean''. NOTE: In general a 645796c8dcSSimon Schubert custom show command will need to be implemented - one that for 655796c8dcSSimon Schubert "auto" prints both the "auto" and the current auto-selected 665796c8dcSSimon Schubert value. */ 675796c8dcSSimon Schubert var_auto_boolean, 685796c8dcSSimon Schubert 69c50c785cSJohn Marino /* Unsigned Integer. *VAR is an unsigned int. The user can type 70c50c785cSJohn Marino 0 to mean "unlimited", which is stored in *VAR as UINT_MAX. */ 715796c8dcSSimon Schubert var_uinteger, 725796c8dcSSimon Schubert 73c50c785cSJohn Marino /* Like var_uinteger but signed. *VAR is an int. The user can 74c50c785cSJohn Marino type 0 to mean "unlimited", which is stored in *VAR as 75c50c785cSJohn Marino INT_MAX. */ 765796c8dcSSimon Schubert var_integer, 775796c8dcSSimon Schubert 78c50c785cSJohn Marino /* String which the user enters with escapes (e.g. the user types 79c50c785cSJohn Marino \n and it is a real newline in the stored string). 805796c8dcSSimon Schubert *VAR is a malloc'd string, or NULL if the string is empty. */ 815796c8dcSSimon Schubert var_string, 825796c8dcSSimon Schubert /* String which stores what the user types verbatim. 835796c8dcSSimon Schubert *VAR is a malloc'd string, or NULL if the string is empty. */ 845796c8dcSSimon Schubert var_string_noescape, 855796c8dcSSimon Schubert /* String which stores a filename. (*VAR) is a malloc'd string, 865796c8dcSSimon Schubert or "" if the string was empty. */ 875796c8dcSSimon Schubert var_optional_filename, 885796c8dcSSimon Schubert /* String which stores a filename. (*VAR) is a malloc'd 895796c8dcSSimon Schubert string. */ 905796c8dcSSimon Schubert var_filename, 915796c8dcSSimon Schubert /* ZeroableInteger. *VAR is an int. Like Unsigned Integer except 925796c8dcSSimon Schubert that zero really means zero. */ 935796c8dcSSimon Schubert var_zinteger, 945796c8dcSSimon Schubert /* ZeroableUnsignedInteger. *VAR is an unsigned int. Zero really 955796c8dcSSimon Schubert means zero. */ 965796c8dcSSimon Schubert var_zuinteger, 97c50c785cSJohn Marino /* Enumerated type. Can only have one of the specified values. 98c50c785cSJohn Marino *VAR is a char pointer to the name of the element that we 99c50c785cSJohn Marino find. */ 1005796c8dcSSimon Schubert var_enum 1015796c8dcSSimon Schubert } 1025796c8dcSSimon Schubert var_types; 1035796c8dcSSimon Schubert 1045796c8dcSSimon Schubert /* This structure records one command'd definition. */ 1055796c8dcSSimon Schubert struct cmd_list_element; 1065796c8dcSSimon Schubert 1075796c8dcSSimon Schubert /* Forward-declarations of the entry-points of cli/cli-decode.c. */ 1085796c8dcSSimon Schubert 109*a45ae5f8SJohn Marino extern int valid_user_defined_cmd_name_p (const char *name); 110*a45ae5f8SJohn Marino 1115796c8dcSSimon Schubert extern struct cmd_list_element *add_cmd (char *, enum command_class, 1125796c8dcSSimon Schubert void (*fun) (char *, int), char *, 1135796c8dcSSimon Schubert struct cmd_list_element **); 1145796c8dcSSimon Schubert 1155796c8dcSSimon Schubert extern struct cmd_list_element *add_alias_cmd (char *, char *, 1165796c8dcSSimon Schubert enum command_class, int, 1175796c8dcSSimon Schubert struct cmd_list_element **); 1185796c8dcSSimon Schubert 1195796c8dcSSimon Schubert extern struct cmd_list_element *add_prefix_cmd (char *, enum command_class, 1205796c8dcSSimon Schubert void (*fun) (char *, int), 1215796c8dcSSimon Schubert char *, 1225796c8dcSSimon Schubert struct cmd_list_element **, 1235796c8dcSSimon Schubert char *, int, 1245796c8dcSSimon Schubert struct cmd_list_element **); 1255796c8dcSSimon Schubert 1265796c8dcSSimon Schubert extern struct cmd_list_element *add_abbrev_prefix_cmd (char *, 1275796c8dcSSimon Schubert enum command_class, 1285796c8dcSSimon Schubert void (*fun) (char *, 1295796c8dcSSimon Schubert int), 1305796c8dcSSimon Schubert char *, 1315796c8dcSSimon Schubert struct cmd_list_element 1325796c8dcSSimon Schubert **, char *, int, 1335796c8dcSSimon Schubert struct cmd_list_element 1345796c8dcSSimon Schubert **); 1355796c8dcSSimon Schubert 1365796c8dcSSimon Schubert /* Set the commands corresponding callback. */ 1375796c8dcSSimon Schubert 1385796c8dcSSimon Schubert typedef void cmd_cfunc_ftype (char *args, int from_tty); 1395796c8dcSSimon Schubert extern void set_cmd_cfunc (struct cmd_list_element *cmd, 1405796c8dcSSimon Schubert cmd_cfunc_ftype *cfunc); 1415796c8dcSSimon Schubert 1425796c8dcSSimon Schubert typedef void cmd_sfunc_ftype (char *args, int from_tty, 1435796c8dcSSimon Schubert struct cmd_list_element *c); 1445796c8dcSSimon Schubert extern void set_cmd_sfunc (struct cmd_list_element *cmd, 1455796c8dcSSimon Schubert cmd_sfunc_ftype *sfunc); 1465796c8dcSSimon Schubert 147c50c785cSJohn Marino extern void set_cmd_completer (struct cmd_list_element *, 148c50c785cSJohn Marino char **(*completer) (struct cmd_list_element *, 149c50c785cSJohn Marino char *, char *)); 1505796c8dcSSimon Schubert 1515796c8dcSSimon Schubert /* HACK: cagney/2002-02-23: Code, mostly in tracepoints.c, grubs 1525796c8dcSSimon Schubert around in cmd objects to test the value of the commands sfunc(). */ 1535796c8dcSSimon Schubert extern int cmd_cfunc_eq (struct cmd_list_element *cmd, 1545796c8dcSSimon Schubert void (*cfunc) (char *args, int from_tty)); 1555796c8dcSSimon Schubert 156c50c785cSJohn Marino /* Each command object has a local context attached to it. */ 157c50c785cSJohn Marino extern void set_cmd_context (struct cmd_list_element *cmd, 158c50c785cSJohn Marino void *context); 1595796c8dcSSimon Schubert extern void *get_cmd_context (struct cmd_list_element *cmd); 1605796c8dcSSimon Schubert 1615796c8dcSSimon Schubert 1625796c8dcSSimon Schubert /* Execute CMD's pre/post hook. Throw an error if the command fails. 1635796c8dcSSimon Schubert If already executing this pre/post hook, or there is no pre/post 1645796c8dcSSimon Schubert hook, the call is silently ignored. */ 1655796c8dcSSimon Schubert extern void execute_cmd_pre_hook (struct cmd_list_element *cmd); 1665796c8dcSSimon Schubert extern void execute_cmd_post_hook (struct cmd_list_element *cmd); 1675796c8dcSSimon Schubert 1685796c8dcSSimon Schubert /* Return the type of the command. */ 1695796c8dcSSimon Schubert extern enum cmd_types cmd_type (struct cmd_list_element *cmd); 1705796c8dcSSimon Schubert 1715796c8dcSSimon Schubert 1725796c8dcSSimon Schubert extern struct cmd_list_element *lookup_cmd (char **, 1735796c8dcSSimon Schubert struct cmd_list_element *, char *, 1745796c8dcSSimon Schubert int, int); 1755796c8dcSSimon Schubert 1765796c8dcSSimon Schubert extern struct cmd_list_element *lookup_cmd_1 (char **, 1775796c8dcSSimon Schubert struct cmd_list_element *, 1785796c8dcSSimon Schubert struct cmd_list_element **, 1795796c8dcSSimon Schubert int); 1805796c8dcSSimon Schubert 181c50c785cSJohn Marino extern struct cmd_list_element *deprecate_cmd (struct cmd_list_element *, 182c50c785cSJohn Marino char * ); 1835796c8dcSSimon Schubert 184c50c785cSJohn Marino extern void deprecated_cmd_warning (char **); 1855796c8dcSSimon Schubert 186c50c785cSJohn Marino extern int lookup_cmd_composition (char *text, 1875796c8dcSSimon Schubert struct cmd_list_element **alias, 1885796c8dcSSimon Schubert struct cmd_list_element **prefix_cmd, 1895796c8dcSSimon Schubert struct cmd_list_element **cmd); 1905796c8dcSSimon Schubert 1915796c8dcSSimon Schubert extern struct cmd_list_element *add_com (char *, enum command_class, 192c50c785cSJohn Marino void (*fun) (char *, int), 193c50c785cSJohn Marino char *); 1945796c8dcSSimon Schubert 1955796c8dcSSimon Schubert extern struct cmd_list_element *add_com_alias (char *, char *, 1965796c8dcSSimon Schubert enum command_class, int); 1975796c8dcSSimon Schubert 198c50c785cSJohn Marino extern struct cmd_list_element *add_info (char *, 199c50c785cSJohn Marino void (*fun) (char *, int), 2005796c8dcSSimon Schubert char *); 2015796c8dcSSimon Schubert 2025796c8dcSSimon Schubert extern struct cmd_list_element *add_info_alias (char *, char *, int); 2035796c8dcSSimon Schubert 204c50c785cSJohn Marino extern char **complete_on_cmdlist (struct cmd_list_element *, 205c50c785cSJohn Marino char *, char *); 2065796c8dcSSimon Schubert 207c50c785cSJohn Marino extern char **complete_on_enum (const char *enumlist[], 208c50c785cSJohn Marino char *, char *); 2095796c8dcSSimon Schubert 2105796c8dcSSimon Schubert extern void help_cmd (char *, struct ui_file *); 2115796c8dcSSimon Schubert 2125796c8dcSSimon Schubert extern void help_list (struct cmd_list_element *, char *, 2135796c8dcSSimon Schubert enum command_class, struct ui_file *); 2145796c8dcSSimon Schubert 215c50c785cSJohn Marino extern void help_cmd_list (struct cmd_list_element *, 216c50c785cSJohn Marino enum command_class, 2175796c8dcSSimon Schubert char *, int, struct ui_file *); 2185796c8dcSSimon Schubert 2195796c8dcSSimon Schubert /* Method for show a set/show variable's VALUE on FILE. If this 2205796c8dcSSimon Schubert method isn't supplied deprecated_show_value_hack() is called (which 2215796c8dcSSimon Schubert is not good). */ 2225796c8dcSSimon Schubert typedef void (show_value_ftype) (struct ui_file *file, 2235796c8dcSSimon Schubert int from_tty, 2245796c8dcSSimon Schubert struct cmd_list_element *cmd, 2255796c8dcSSimon Schubert const char *value); 2265796c8dcSSimon Schubert /* NOTE: i18n: This function is not i18n friendly. Callers should 2275796c8dcSSimon Schubert instead print the value out directly. */ 2285796c8dcSSimon Schubert extern show_value_ftype deprecated_show_value_hack; 2295796c8dcSSimon Schubert 2305796c8dcSSimon Schubert extern void add_setshow_enum_cmd (char *name, 2315796c8dcSSimon Schubert enum command_class class, 2325796c8dcSSimon Schubert const char *enumlist[], 2335796c8dcSSimon Schubert const char **var, 2345796c8dcSSimon Schubert const char *set_doc, 2355796c8dcSSimon Schubert const char *show_doc, 2365796c8dcSSimon Schubert const char *help_doc, 2375796c8dcSSimon Schubert cmd_sfunc_ftype *set_func, 2385796c8dcSSimon Schubert show_value_ftype *show_func, 2395796c8dcSSimon Schubert struct cmd_list_element **set_list, 2405796c8dcSSimon Schubert struct cmd_list_element **show_list); 2415796c8dcSSimon Schubert 2425796c8dcSSimon Schubert extern void add_setshow_auto_boolean_cmd (char *name, 2435796c8dcSSimon Schubert enum command_class class, 2445796c8dcSSimon Schubert enum auto_boolean *var, 2455796c8dcSSimon Schubert const char *set_doc, 2465796c8dcSSimon Schubert const char *show_doc, 2475796c8dcSSimon Schubert const char *help_doc, 2485796c8dcSSimon Schubert cmd_sfunc_ftype *set_func, 2495796c8dcSSimon Schubert show_value_ftype *show_func, 2505796c8dcSSimon Schubert struct cmd_list_element **set_list, 2515796c8dcSSimon Schubert struct cmd_list_element **show_list); 2525796c8dcSSimon Schubert 2535796c8dcSSimon Schubert extern void add_setshow_boolean_cmd (char *name, 2545796c8dcSSimon Schubert enum command_class class, 2555796c8dcSSimon Schubert int *var, 2565796c8dcSSimon Schubert const char *set_doc, const char *show_doc, 2575796c8dcSSimon Schubert const char *help_doc, 2585796c8dcSSimon Schubert cmd_sfunc_ftype *set_func, 2595796c8dcSSimon Schubert show_value_ftype *show_func, 2605796c8dcSSimon Schubert struct cmd_list_element **set_list, 2615796c8dcSSimon Schubert struct cmd_list_element **show_list); 2625796c8dcSSimon Schubert 2635796c8dcSSimon Schubert extern void add_setshow_filename_cmd (char *name, 2645796c8dcSSimon Schubert enum command_class class, 2655796c8dcSSimon Schubert char **var, 2665796c8dcSSimon Schubert const char *set_doc, 2675796c8dcSSimon Schubert const char *show_doc, 2685796c8dcSSimon Schubert const char *help_doc, 2695796c8dcSSimon Schubert cmd_sfunc_ftype *set_func, 2705796c8dcSSimon Schubert show_value_ftype *show_func, 2715796c8dcSSimon Schubert struct cmd_list_element **set_list, 2725796c8dcSSimon Schubert struct cmd_list_element **show_list); 2735796c8dcSSimon Schubert 2745796c8dcSSimon Schubert extern void add_setshow_string_cmd (char *name, 2755796c8dcSSimon Schubert enum command_class class, 2765796c8dcSSimon Schubert char **var, 2775796c8dcSSimon Schubert const char *set_doc, 2785796c8dcSSimon Schubert const char *show_doc, 2795796c8dcSSimon Schubert const char *help_doc, 2805796c8dcSSimon Schubert cmd_sfunc_ftype *set_func, 2815796c8dcSSimon Schubert show_value_ftype *show_func, 2825796c8dcSSimon Schubert struct cmd_list_element **set_list, 2835796c8dcSSimon Schubert struct cmd_list_element **show_list); 2845796c8dcSSimon Schubert 2855796c8dcSSimon Schubert extern void add_setshow_string_noescape_cmd (char *name, 2865796c8dcSSimon Schubert enum command_class class, 2875796c8dcSSimon Schubert char **var, 2885796c8dcSSimon Schubert const char *set_doc, 2895796c8dcSSimon Schubert const char *show_doc, 2905796c8dcSSimon Schubert const char *help_doc, 2915796c8dcSSimon Schubert cmd_sfunc_ftype *set_func, 2925796c8dcSSimon Schubert show_value_ftype *show_func, 2935796c8dcSSimon Schubert struct cmd_list_element **set_list, 2945796c8dcSSimon Schubert struct cmd_list_element **show_list); 2955796c8dcSSimon Schubert 2965796c8dcSSimon Schubert extern void add_setshow_optional_filename_cmd (char *name, 2975796c8dcSSimon Schubert enum command_class class, 2985796c8dcSSimon Schubert char **var, 2995796c8dcSSimon Schubert const char *set_doc, 3005796c8dcSSimon Schubert const char *show_doc, 3015796c8dcSSimon Schubert const char *help_doc, 3025796c8dcSSimon Schubert cmd_sfunc_ftype *set_func, 3035796c8dcSSimon Schubert show_value_ftype *show_func, 3045796c8dcSSimon Schubert struct cmd_list_element **set_list, 3055796c8dcSSimon Schubert struct cmd_list_element **show_list); 3065796c8dcSSimon Schubert 3075796c8dcSSimon Schubert extern void add_setshow_integer_cmd (char *name, 3085796c8dcSSimon Schubert enum command_class class, 3095796c8dcSSimon Schubert int *var, 3105796c8dcSSimon Schubert const char *set_doc, 3115796c8dcSSimon Schubert const char *show_doc, 3125796c8dcSSimon Schubert const char *help_doc, 3135796c8dcSSimon Schubert cmd_sfunc_ftype *set_func, 3145796c8dcSSimon Schubert show_value_ftype *show_func, 3155796c8dcSSimon Schubert struct cmd_list_element **set_list, 3165796c8dcSSimon Schubert struct cmd_list_element **show_list); 3175796c8dcSSimon Schubert 3185796c8dcSSimon Schubert extern void add_setshow_uinteger_cmd (char *name, 3195796c8dcSSimon Schubert enum command_class class, 3205796c8dcSSimon Schubert unsigned int *var, 3215796c8dcSSimon Schubert const char *set_doc, 3225796c8dcSSimon Schubert const char *show_doc, 3235796c8dcSSimon Schubert const char *help_doc, 3245796c8dcSSimon Schubert cmd_sfunc_ftype *set_func, 3255796c8dcSSimon Schubert show_value_ftype *show_func, 3265796c8dcSSimon Schubert struct cmd_list_element **set_list, 3275796c8dcSSimon Schubert struct cmd_list_element **show_list); 3285796c8dcSSimon Schubert 3295796c8dcSSimon Schubert extern void add_setshow_zinteger_cmd (char *name, 3305796c8dcSSimon Schubert enum command_class class, 3315796c8dcSSimon Schubert int *var, 3325796c8dcSSimon Schubert const char *set_doc, 3335796c8dcSSimon Schubert const char *show_doc, 3345796c8dcSSimon Schubert const char *help_doc, 3355796c8dcSSimon Schubert cmd_sfunc_ftype *set_func, 3365796c8dcSSimon Schubert show_value_ftype *show_func, 3375796c8dcSSimon Schubert struct cmd_list_element **set_list, 3385796c8dcSSimon Schubert struct cmd_list_element **show_list); 3395796c8dcSSimon Schubert 3405796c8dcSSimon Schubert extern void add_setshow_zuinteger_cmd (char *name, 3415796c8dcSSimon Schubert enum command_class class, 3425796c8dcSSimon Schubert unsigned int *var, 3435796c8dcSSimon Schubert const char *set_doc, 3445796c8dcSSimon Schubert const char *show_doc, 3455796c8dcSSimon Schubert const char *help_doc, 3465796c8dcSSimon Schubert cmd_sfunc_ftype *set_func, 3475796c8dcSSimon Schubert show_value_ftype *show_func, 3485796c8dcSSimon Schubert struct cmd_list_element **set_list, 3495796c8dcSSimon Schubert struct cmd_list_element **show_list); 3505796c8dcSSimon Schubert 3515796c8dcSSimon Schubert /* Do a "show" command for each thing on a command list. */ 3525796c8dcSSimon Schubert 3535796c8dcSSimon Schubert extern void cmd_show_list (struct cmd_list_element *, int, char *); 3545796c8dcSSimon Schubert 355cf7f2e2dSJohn Marino /* Used everywhere whenever at least one parameter is required and 356cf7f2e2dSJohn Marino none is specified. */ 357cf7f2e2dSJohn Marino 358cf7f2e2dSJohn Marino extern void error_no_arg (char *) ATTRIBUTE_NORETURN; 3595796c8dcSSimon Schubert 3605796c8dcSSimon Schubert extern void dont_repeat (void); 3615796c8dcSSimon Schubert 362c50c785cSJohn Marino extern struct cleanup *prevent_dont_repeat (void); 363c50c785cSJohn Marino 3645796c8dcSSimon Schubert /* Used to mark commands that don't do anything. If we just leave the 3655796c8dcSSimon Schubert function field NULL, the command is interpreted as a help topic, or 3665796c8dcSSimon Schubert as a class of commands. */ 3675796c8dcSSimon Schubert 3685796c8dcSSimon Schubert extern void not_just_help_class_command (char *, int); 3695796c8dcSSimon Schubert 370c50c785cSJohn Marino /* Check function pointer. */ 3715796c8dcSSimon Schubert extern int cmd_func_p (struct cmd_list_element *cmd); 3725796c8dcSSimon Schubert 373c50c785cSJohn Marino /* Call the command function. */ 374c50c785cSJohn Marino extern void cmd_func (struct cmd_list_element *cmd, 375c50c785cSJohn Marino char *args, int from_tty); 3765796c8dcSSimon Schubert 3775796c8dcSSimon Schubert #endif /* !defined (COMMAND_H) */ 378