X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gdb%2Fcommand.h;h=67be0915f267fa97756d5231ea28a8219f7fc3c4;hb=b2e818b70d26c7336ef4798b7beb97916ef044ac;hp=75462e5d64545b3a4c4d5ce33d6d498191ce9665;hpb=e707bbc264cdc57ff14c3058637ac6a20e8db8bd;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/command.h b/gdb/command.h index 75462e5d64..67be0915f2 100644 --- a/gdb/command.h +++ b/gdb/command.h @@ -1,7 +1,7 @@ /* Header file for command-reading library command.c. - Copyright 1986, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1999, - 2000, 2002 Free Software Foundation, Inc. + Copyright (C) 1986, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1999, 2000, + 2002, 2004, 2007 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -15,8 +15,8 @@ You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place - Suite 330, - Boston, MA 02111-1307, USA. */ + Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. */ #if !defined (COMMAND_H) #define COMMAND_H 1 @@ -30,7 +30,7 @@ enum command_class { /* Special args to help_list */ - class_deprecated, all_classes = -2, all_commands = -1, + class_deprecated = -3, all_classes = -2, all_commands = -1, /* Classes of commands */ no_class = -1, class_run = 0, class_vars, class_stack, class_files, class_support, class_info, class_breakpoint, class_trace, @@ -80,8 +80,11 @@ typedef enum var_types /* String which stores what the user types verbatim. *VAR is a malloc'd string, or NULL if the string is empty. */ var_string_noescape, - /* String which stores a filename. - *VAR is a malloc'd string, or NULL if the string is empty. */ + /* String which stores a filename. (*VAR) is a malloc'd string, + or "" if the string was empty. */ + var_optional_filename, + /* String which stores a filename. (*VAR) is a malloc'd + string. */ var_filename, /* ZeroableInteger. *VAR is an int. Like Unsigned Integer except that zero really means zero. */ @@ -153,14 +156,6 @@ extern void execute_cmd_pre_hook (struct cmd_list_element *cmd); extern void execute_cmd_post_hook (struct cmd_list_element *cmd); /* Return the type of the command. */ -/* NOTE: cagney/2002-03-17: The add_show_from_set() function clones - the set command passed as a parameter. The clone operation will - include (BUG?) any ``set'' command callback, if present. Commands - like ``info set'' call all the ``show'' command callbacks. - Unfortunatly, for ``show'' commands cloned from ``set'', this - includes callbacks belonging to ``set'' commands. Making this - worse, this only occures if add_show_from_set() is called after - add_cmd_sfunc() (BUG?). */ extern enum cmd_types cmd_type (struct cmd_list_element *cmd); @@ -210,38 +205,136 @@ extern void help_list (struct cmd_list_element *, char *, extern void help_cmd_list (struct cmd_list_element *, enum command_class, char *, int, struct ui_file *); -extern struct cmd_list_element *add_set_cmd (char *name, enum - command_class class, - var_types var_type, void *var, - char *doc, - struct cmd_list_element **list); - -extern struct cmd_list_element *add_set_enum_cmd (char *name, - enum command_class class, - const char *enumlist[], - const char **var, - char *doc, - struct cmd_list_element **list); - -extern struct cmd_list_element *add_set_auto_boolean_cmd (char *name, - enum command_class class, - enum auto_boolean *var, - char *doc, - struct cmd_list_element **list); +/* NOTE: cagney/2005-02-21: Since every set command should be paired + with a corresponding show command (i.e., add_setshow_*) this call + should not be needed. Unfortunatly some are not (e.g., + "maintenance ") and those need to be fixed. */ +extern struct cmd_list_element *deprecated_add_set_cmd (char *name, enum + command_class class, + var_types var_type, void *var, + char *doc, + struct cmd_list_element **list); + +/* Method for show a set/show variable's VALUE on FILE. If this + method isn't supplied deprecated_show_value_hack() is called (which + is not good). */ +typedef void (show_value_ftype) (struct ui_file *file, + int from_tty, + struct cmd_list_element *cmd, + const char *value); +/* NOTE: i18n: This function is not i18n friendly. Callers should + instead print the value out directly. */ +extern show_value_ftype deprecated_show_value_hack; + +extern void add_setshow_enum_cmd (char *name, + enum command_class class, + const char *enumlist[], + const char **var, + const char *set_doc, + const char *show_doc, + const char *help_doc, + cmd_sfunc_ftype *set_func, + show_value_ftype *show_func, + struct cmd_list_element **set_list, + struct cmd_list_element **show_list); + +extern void add_setshow_auto_boolean_cmd (char *name, + enum command_class class, + enum auto_boolean *var, + const char *set_doc, + const char *show_doc, + const char *help_doc, + cmd_sfunc_ftype *set_func, + show_value_ftype *show_func, + struct cmd_list_element **set_list, + struct cmd_list_element **show_list); extern void add_setshow_boolean_cmd (char *name, enum command_class class, int *var, - char *set_doc, - char *show_doc, + const char *set_doc, const char *show_doc, + const char *help_doc, cmd_sfunc_ftype *set_func, - cmd_sfunc_ftype *show_func, + show_value_ftype *show_func, struct cmd_list_element **set_list, struct cmd_list_element **show_list); -extern struct cmd_list_element *add_show_from_set (struct cmd_list_element *, - struct cmd_list_element - **); +extern void add_setshow_filename_cmd (char *name, + enum command_class class, + char **var, + const char *set_doc, + const char *show_doc, + const char *help_doc, + cmd_sfunc_ftype *set_func, + show_value_ftype *show_func, + struct cmd_list_element **set_list, + struct cmd_list_element **show_list); + +extern void add_setshow_string_cmd (char *name, + enum command_class class, + char **var, + const char *set_doc, + const char *show_doc, + const char *help_doc, + cmd_sfunc_ftype *set_func, + show_value_ftype *show_func, + struct cmd_list_element **set_list, + struct cmd_list_element **show_list); + +extern void add_setshow_string_noescape_cmd (char *name, + enum command_class class, + char **var, + const char *set_doc, + const char *show_doc, + const char *help_doc, + cmd_sfunc_ftype *set_func, + show_value_ftype *show_func, + struct cmd_list_element **set_list, + struct cmd_list_element **show_list); + +extern void add_setshow_optional_filename_cmd (char *name, + enum command_class class, + char **var, + const char *set_doc, + const char *show_doc, + const char *help_doc, + cmd_sfunc_ftype *set_func, + show_value_ftype *show_func, + struct cmd_list_element **set_list, + struct cmd_list_element **show_list); + +extern void add_setshow_integer_cmd (char *name, + enum command_class class, + int *var, + const char *set_doc, + const char *show_doc, + const char *help_doc, + cmd_sfunc_ftype *set_func, + show_value_ftype *show_func, + struct cmd_list_element **set_list, + struct cmd_list_element **show_list); + +extern void add_setshow_uinteger_cmd (char *name, + enum command_class class, + unsigned int *var, + const char *set_doc, + const char *show_doc, + const char *help_doc, + cmd_sfunc_ftype *set_func, + show_value_ftype *show_func, + struct cmd_list_element **set_list, + struct cmd_list_element **show_list); + +extern void add_setshow_zinteger_cmd (char *name, + enum command_class class, + int *var, + const char *set_doc, + const char *show_doc, + const char *help_doc, + cmd_sfunc_ftype *set_func, + show_value_ftype *show_func, + struct cmd_list_element **set_list, + struct cmd_list_element **show_list); /* Do a "show" command for each thing on a command list. */ @@ -257,4 +350,10 @@ extern void dont_repeat (void); extern void not_just_help_class_command (char *, int); +/* check function pointer */ +extern int cmd_func_p (struct cmd_list_element *cmd); + +/* call the command function */ +extern void cmd_func (struct cmd_list_element *cmd, char *args, int from_tty); + #endif /* !defined (COMMAND_H) */