[GOLD] Fix powerpc64 optimization of TOC accesses
[deliverable/binutils-gdb.git] / gdb / command.h
index 2a190d449d56c11bb51335a5e42026f7f4758118..32ee73af62c88f97f3a012a9537581b733e61b7a 100644 (file)
@@ -21,6 +21,8 @@
 #include "gdb_vecs.h"
 #include "common/scoped_restore.h"
 
+struct completion_tracker;
+
 /* This file defines the public interface for any code wanting to
    create commands.  */
 
@@ -115,6 +117,7 @@ var_types;
 struct cmd_list_element;
 
 typedef void cmd_cfunc_ftype (char *args, int from_tty);
+typedef void cmd_const_cfunc_ftype (const char *args, int from_tty);
 
 /* This structure specifies notifications to be suppressed by a cli
    command interpreter.  */
@@ -138,6 +141,19 @@ extern struct cmd_list_element *add_cmd (const char *, enum command_class,
                                         const char *,
                                         struct cmd_list_element **);
 
+/* Const-correct variant of the above.  */
+
+extern struct cmd_list_element *add_cmd (const char *, enum command_class,
+                                        cmd_const_cfunc_ftype *fun,
+                                        const char *,
+                                        struct cmd_list_element **);
+
+/* Like add_cmd, but no command function is specified.  */
+
+extern struct cmd_list_element *add_cmd (const char *, enum command_class,
+                                        const char *,
+                                        struct cmd_list_element **);
+
 extern struct cmd_list_element *add_alias_cmd (const char *, const char *,
                                               enum command_class, int,
                                               struct cmd_list_element **);
@@ -149,7 +165,7 @@ extern struct cmd_list_element *add_alias_cmd (const char *,
 
 
 extern struct cmd_list_element *add_prefix_cmd (const char *, enum command_class,
-                                               cmd_cfunc_ftype *fun,
+                                               cmd_const_cfunc_ftype *fun,
                                                const char *,
                                                struct cmd_list_element **,
                                                const char *, int,
@@ -169,12 +185,17 @@ extern struct cmd_list_element *add_abbrev_prefix_cmd (const char *,
 extern void set_cmd_cfunc (struct cmd_list_element *cmd,
                           cmd_cfunc_ftype *cfunc);
 
+/* Const-correct variant of the above.  */
+
+extern void set_cmd_cfunc (struct cmd_list_element *cmd,
+                          cmd_const_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,
                           cmd_sfunc_ftype *sfunc);
 
-/* A completion routine.  Return a list of possible completions.
+/* A completion routine.  Add possible completions to tracker.
 
    TEXT is the text beyond what was matched for the command itself
    (leading whitespace is skipped).  It stops where we are supposed to
@@ -183,11 +204,13 @@ extern void set_cmd_sfunc (struct cmd_list_element *cmd,
    relative to this position.  For example, suppose TEXT is "foo" and
    we want to complete to "foobar".  If WORD is "oo", return "oobar";
    if WORD is "baz/foo", return "baz/foobar".  */
-typedef VEC (char_ptr) *completer_ftype (struct cmd_list_element *,
-                                        const char *text, const char *word);
+typedef void completer_ftype (struct cmd_list_element *,
+                             completion_tracker &tracker,
+                             const char *text, const char *word);
 
 /* Same, but for set_cmd_completer_handle_brkchars.  */
 typedef void completer_handle_brkchars_ftype (struct cmd_list_element *,
+                                             completion_tracker &tracker,
                                              const char *text, const char *word);
 
 extern void set_cmd_completer (struct cmd_list_element *, completer_ftype *);
@@ -201,6 +224,8 @@ extern void set_cmd_completer_handle_brkchars (struct cmd_list_element *,
    around in cmd objects to test the value of the commands sfunc().  */
 extern int cmd_cfunc_eq (struct cmd_list_element *cmd,
                         cmd_cfunc_ftype *cfun);
+extern int cmd_cfunc_eq (struct cmd_list_element *cmd,
+                        cmd_const_cfunc_ftype *cfun);
 
 /* Each command object has a local context attached to it.  */
 extern void set_cmd_context (struct cmd_list_element *cmd,
@@ -259,11 +284,13 @@ extern struct cmd_list_element *add_info (const char *,
 extern struct cmd_list_element *add_info_alias (const char *, const char *,
                                                int);
 
-extern VEC (char_ptr) *complete_on_cmdlist (struct cmd_list_element *,
-                                           const char *, const char *, int);
+extern void complete_on_cmdlist (struct cmd_list_element *,
+                                completion_tracker &tracker,
+                                const char *, const char *, int);
 
-extern VEC (char_ptr) *complete_on_enum (const char *const *enumlist,
-                                        const char *, const char *);
+extern void complete_on_enum (completion_tracker &tracker,
+                             const char *const *enumlist,
+                             const char *, const char *);
 
 /* Functions that implement commands about CLI commands.  */
 
@@ -432,7 +459,7 @@ extern scoped_restore_tmpl<int> prevent_dont_repeat (void);
    function field NULL, the command is interpreted as a help topic, or
    as a class of commands.  */
 
-extern void not_just_help_class_command (char *, int);
+extern void not_just_help_class_command (const char *, int);
 
 /* Check function pointer.  */
 extern int cmd_func_p (struct cmd_list_element *cmd);
This page took 0.025371 seconds and 4 git commands to generate.