2005-01-05 Baurjan Ismagulov <ibr@ata.cs.hun.edu.tr>
[deliverable/binutils-gdb.git] / gdb / command.h
index db7a74025845cc984b940ceb3b23fb551ffd1992..899d0d6249b50bc45ba98e54143b7e29328feb57 100644 (file)
@@ -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.
+   2000, 2002, 2004 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
@@ -51,14 +51,6 @@ typedef enum cmd_types
   }
 cmd_types;
 
-/* Reasonable values for an AUTO_BOOLEAN variable. */
-enum cmd_auto_boolean
-{
-  CMD_AUTO_BOOLEAN_TRUE,
-  CMD_AUTO_BOOLEAN_FALSE,
-  CMD_AUTO_BOOLEAN_AUTO
-};
-
 /* Types of "set" or "show" command.  */
 typedef enum var_types
   {
@@ -67,9 +59,9 @@ typedef enum var_types
     var_boolean,
 
     /* "on" / "true" / "enable" or "off" / "false" / "disable" or
-       "auto.  *VAR is an ``enum cmd_auto_boolean''.  NOTE: In general
-       a custom show command will need to be implemented - one that
-       for "auto" prints both the "auto" and the current auto-selected
+       "auto.  *VAR is an ``enum auto_boolean''.  NOTE: In general a
+       custom show command will need to be implemented - one that for
+       "auto" prints both the "auto" and the current auto-selected
        value. */
     var_auto_boolean,
 
@@ -132,12 +124,14 @@ extern struct cmd_list_element *add_abbrev_prefix_cmd (char *,
 
 /* Set the commands corresponding callback.  */
 
+typedef void cmd_cfunc_ftype (char *args, int from_tty);
 extern void set_cmd_cfunc (struct cmd_list_element *cmd,
-                          void (*cfunc) (char *args, int from_tty));
+                          cmd_cfunc_ftype *cfunc);
 
+typedef void cmd_sfunc_ftype (char *args, int from_tty,
+                             struct cmd_list_element *c);
 extern void set_cmd_sfunc (struct cmd_list_element *cmd,
-                          void (*sfunc) (char *args, int from_tty,
-                                         struct cmd_list_element * c));
+                          cmd_sfunc_ftype *sfunc);
 
 extern void set_cmd_completer (struct cmd_list_element *cmd,
                               char **(*completer) (char *text, char *word));
@@ -159,14 +153,15 @@ 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?).  */
+/* NOTE: cagney/2002-03-17: The deprecated_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.  Unfortunately, for ``show'' commands cloned from
+   ``set'', this includes callbacks belonging to ``set'' commands.
+   Making this worse, this only occures if
+   deprecated_add_show_from_set() is called after add_cmd_sfunc()
+   (BUG?).  */
 extern enum cmd_types cmd_type (struct cmd_list_element *cmd);
 
 
@@ -228,22 +223,93 @@ extern struct cmd_list_element *add_set_enum_cmd (char *name,
                                                  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 cmd_auto_boolean *var,
-                                                         char *doc,
-                                                         struct cmd_list_element **list);
-
-extern struct cmd_list_element *add_set_boolean_cmd (char *name,
-                                                    enum command_class class,
-                                                    int *var,
-                                                    char *doc,
-                                                    struct cmd_list_element **list);
-
-extern struct cmd_list_element *add_show_from_set (struct cmd_list_element *,
-                                                  struct cmd_list_element
-                                                  **);
+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,
+                                 const char *print,
+                                 cmd_sfunc_ftype *set_func,
+                                 cmd_sfunc_ftype *show_func,
+                                 struct cmd_list_element **set_list,
+                                 struct cmd_list_element **show_list,
+                                 struct cmd_list_element **set_result,
+                                 struct cmd_list_element **show_result);
+
+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,
+                                         const char *print,
+                                         cmd_sfunc_ftype *set_func,
+                                         cmd_sfunc_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,
+                                    const char *set_doc, const char *show_doc,
+                                    const char *help_doc, const char *print,
+                                    cmd_sfunc_ftype *set_func,
+                                    cmd_sfunc_ftype *show_func,
+                                    struct cmd_list_element **set_list,
+                                    struct cmd_list_element **show_list);
+
+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,
+                                     const char *print,
+                                     cmd_sfunc_ftype *set_func,
+                                     cmd_sfunc_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,
+                                   const char *print,
+                                   cmd_sfunc_ftype *set_func,
+                                   cmd_sfunc_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,
+                                     const char *print,
+                                     cmd_sfunc_ftype *set_func,
+                                     cmd_sfunc_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,
+                                     const char *print,
+                                     cmd_sfunc_ftype *set_func,
+                                     cmd_sfunc_ftype *show_func,
+                                     struct cmd_list_element **set_list,
+                                     struct cmd_list_element **show_list);
+
+extern struct cmd_list_element *deprecated_add_show_from_set (struct cmd_list_element *,
+                                                             struct cmd_list_element **);
 
 /* Do a "show" command for each thing on a command list.  */
 
@@ -259,4 +325,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) */
This page took 0.034119 seconds and 4 git commands to generate.