OpenCores
URL https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk

Subversion Repositories openrisc_me

[/] [openrisc/] [trunk/] [gnu-src/] [gdb-6.8/] [gdb/] [command.h] - Blame information for rev 299

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 24 jeremybenn
/* Header file for command-reading library command.c.
2
 
3
   Copyright (C) 1986, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1999, 2000,
4
   2002, 2004, 2007, 2008 Free Software Foundation, Inc.
5
 
6
   This program is free software; you can redistribute it and/or modify
7
   it under the terms of the GNU General Public License as published by
8
   the Free Software Foundation; either version 3 of the License, or
9
   (at your option) any later version.
10
 
11
   This program is distributed in the hope that it will be useful,
12
   but WITHOUT ANY WARRANTY; without even the implied warranty of
13
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
   GNU General Public License for more details.
15
 
16
   You should have received a copy of the GNU General Public License
17
   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
18
 
19
#if !defined (COMMAND_H)
20
#define COMMAND_H 1
21
 
22
/* Command classes are top-level categories into which commands are broken
23
   down for "help" purposes.
24
   Notes on classes: class_alias is for alias commands which are not
25
   abbreviations of the original command.  class-pseudo is for
26
   commands which are not really commands nor help topics ("stop").  */
27
 
28
enum command_class
29
{
30
  /* Special args to help_list */
31
  class_deprecated = -3, all_classes = -2, all_commands = -1,
32
  /* Classes of commands */
33
  no_class = -1, class_run = 0, class_vars, class_stack,
34
  class_files, class_support, class_info, class_breakpoint, class_trace,
35
  class_alias, class_obscure, class_user, class_maintenance,
36
  class_pseudo, class_tui, class_xdb
37
};
38
 
39
/* FIXME: cagney/2002-03-17: Once cmd_type() has been removed, ``enum
40
   cmd_types'' can be moved from "command.h" to "cli-decode.h".  */
41
/* Not a set/show command.  Note that some commands which begin with
42
   "set" or "show" might be in this category, if their syntax does
43
   not fall into one of the following categories.  */
44
typedef enum cmd_types
45
  {
46
    not_set_cmd,
47
    set_cmd,
48
    show_cmd
49
  }
50
cmd_types;
51
 
52
/* Types of "set" or "show" command.  */
53
typedef enum var_types
54
  {
55
    /* "on" or "off".  *VAR is an integer which is nonzero for on,
56
       zero for off.  */
57
    var_boolean,
58
 
59
    /* "on" / "true" / "enable" or "off" / "false" / "disable" or
60
       "auto.  *VAR is an ``enum auto_boolean''.  NOTE: In general a
61
       custom show command will need to be implemented - one that for
62
       "auto" prints both the "auto" and the current auto-selected
63
       value. */
64
    var_auto_boolean,
65
 
66
    /* Unsigned Integer.  *VAR is an unsigned int.  The user can type 0
67
       to mean "unlimited", which is stored in *VAR as UINT_MAX.  */
68
    var_uinteger,
69
 
70
    /* Like var_uinteger but signed.  *VAR is an int.  The user can type 0
71
       to mean "unlimited", which is stored in *VAR as INT_MAX.  */
72
    var_integer,
73
 
74
    /* String which the user enters with escapes (e.g. the user types \n and
75
       it is a real newline in the stored string).
76
       *VAR is a malloc'd string, or NULL if the string is empty.  */
77
    var_string,
78
    /* String which stores what the user types verbatim.
79
       *VAR is a malloc'd string, or NULL if the string is empty.  */
80
    var_string_noescape,
81
    /* String which stores a filename.  (*VAR) is a malloc'd string,
82
       or "" if the string was empty.  */
83
    var_optional_filename,
84
    /* String which stores a filename.  (*VAR) is a malloc'd
85
       string.  */
86
    var_filename,
87
    /* ZeroableInteger.  *VAR is an int.  Like Unsigned Integer except
88
       that zero really means zero.  */
89
    var_zinteger,
90
    /* Enumerated type.  Can only have one of the specified values.  *VAR is a
91
       char pointer to the name of the element that we find.  */
92
    var_enum
93
  }
94
var_types;
95
 
96
/* This structure records one command'd definition.  */
97
struct cmd_list_element;
98
 
99
/* Forward-declarations of the entry-points of cli/cli-decode.c.  */
100
 
101
extern struct cmd_list_element *add_cmd (char *, enum command_class,
102
                                         void (*fun) (char *, int), char *,
103
                                         struct cmd_list_element **);
104
 
105
extern struct cmd_list_element *add_alias_cmd (char *, char *,
106
                                               enum command_class, int,
107
                                               struct cmd_list_element **);
108
 
109
extern struct cmd_list_element *add_prefix_cmd (char *, enum command_class,
110
                                                void (*fun) (char *, int),
111
                                                char *,
112
                                                struct cmd_list_element **,
113
                                                char *, int,
114
                                                struct cmd_list_element **);
115
 
116
extern struct cmd_list_element *add_abbrev_prefix_cmd (char *,
117
                                                       enum command_class,
118
                                                       void (*fun) (char *,
119
                                                                    int),
120
                                                       char *,
121
                                                       struct cmd_list_element
122
                                                       **, char *, int,
123
                                                       struct cmd_list_element
124
                                                       **);
125
 
126
/* Set the commands corresponding callback.  */
127
 
128
typedef void cmd_cfunc_ftype (char *args, int from_tty);
129
extern void set_cmd_cfunc (struct cmd_list_element *cmd,
130
                           cmd_cfunc_ftype *cfunc);
131
 
132
typedef void cmd_sfunc_ftype (char *args, int from_tty,
133
                              struct cmd_list_element *c);
134
extern void set_cmd_sfunc (struct cmd_list_element *cmd,
135
                           cmd_sfunc_ftype *sfunc);
136
 
137
extern void set_cmd_completer (struct cmd_list_element *cmd,
138
                               char **(*completer) (char *text, char *word));
139
 
140
/* HACK: cagney/2002-02-23: Code, mostly in tracepoints.c, grubs
141
   around in cmd objects to test the value of the commands sfunc().  */
142
extern int cmd_cfunc_eq (struct cmd_list_element *cmd,
143
                         void (*cfunc) (char *args, int from_tty));
144
 
145
/* Each command object has a local context attached to it. .  */
146
extern void set_cmd_context (struct cmd_list_element *cmd, void *context);
147
extern void *get_cmd_context (struct cmd_list_element *cmd);
148
 
149
 
150
/* Execute CMD's pre/post hook.  Throw an error if the command fails.
151
   If already executing this pre/post hook, or there is no pre/post
152
   hook, the call is silently ignored.  */
153
extern void execute_cmd_pre_hook (struct cmd_list_element *cmd);
154
extern void execute_cmd_post_hook (struct cmd_list_element *cmd);
155
 
156
/* Return the type of the command.  */
157
extern enum cmd_types cmd_type (struct cmd_list_element *cmd);
158
 
159
 
160
extern struct cmd_list_element *lookup_cmd (char **,
161
                                            struct cmd_list_element *, char *,
162
                                            int, int);
163
 
164
extern struct cmd_list_element *lookup_cmd_1 (char **,
165
                                              struct cmd_list_element *,
166
                                              struct cmd_list_element **,
167
                                              int);
168
 
169
extern struct cmd_list_element *
170
  deprecate_cmd (struct cmd_list_element *, char * );
171
 
172
extern void
173
  deprecated_cmd_warning (char **);
174
 
175
extern int
176
  lookup_cmd_composition (char *text,
177
                        struct cmd_list_element **alias,
178
                        struct cmd_list_element **prefix_cmd,
179
                        struct cmd_list_element **cmd);
180
 
181
extern struct cmd_list_element *add_com (char *, enum command_class,
182
                                         void (*fun) (char *, int), char *);
183
 
184
extern struct cmd_list_element *add_com_alias (char *, char *,
185
                                               enum command_class, int);
186
 
187
extern struct cmd_list_element *add_info (char *, void (*fun) (char *, int),
188
                                          char *);
189
 
190
extern struct cmd_list_element *add_info_alias (char *, char *, int);
191
 
192
extern char **complete_on_cmdlist (struct cmd_list_element *, char *, char *);
193
 
194
extern char **complete_on_enum (const char *enumlist[], char *, char *);
195
 
196
extern void delete_cmd (char *, struct cmd_list_element **);
197
 
198
extern void help_cmd (char *, struct ui_file *);
199
 
200
extern void help_list (struct cmd_list_element *, char *,
201
                       enum command_class, struct ui_file *);
202
 
203
extern void help_cmd_list (struct cmd_list_element *, enum command_class,
204
                           char *, int, struct ui_file *);
205
 
206
/* NOTE: cagney/2005-02-21: Since every set command should be paired
207
   with a corresponding show command (i.e., add_setshow_*) this call
208
   should not be needed.  Unfortunatly some are not (e.g.,
209
   "maintenance <variable> <value>") and those need to be fixed.  */
210
extern struct cmd_list_element *deprecated_add_set_cmd (char *name, enum
211
                                                        command_class class,
212
                                                        var_types var_type, void *var,
213
                                                        char *doc,
214
                                                        struct cmd_list_element **list);
215
 
216
/* Method for show a set/show variable's VALUE on FILE.  If this
217
   method isn't supplied deprecated_show_value_hack() is called (which
218
   is not good).  */
219
typedef void (show_value_ftype) (struct ui_file *file,
220
                                 int from_tty,
221
                                 struct cmd_list_element *cmd,
222
                                 const char *value);
223
/* NOTE: i18n: This function is not i18n friendly.  Callers should
224
   instead print the value out directly.  */
225
extern show_value_ftype deprecated_show_value_hack;
226
 
227
extern void add_setshow_enum_cmd (char *name,
228
                                  enum command_class class,
229
                                  const char *enumlist[],
230
                                  const char **var,
231
                                  const char *set_doc,
232
                                  const char *show_doc,
233
                                  const char *help_doc,
234
                                  cmd_sfunc_ftype *set_func,
235
                                  show_value_ftype *show_func,
236
                                  struct cmd_list_element **set_list,
237
                                  struct cmd_list_element **show_list);
238
 
239
extern void add_setshow_auto_boolean_cmd (char *name,
240
                                          enum command_class class,
241
                                          enum auto_boolean *var,
242
                                          const char *set_doc,
243
                                          const char *show_doc,
244
                                          const char *help_doc,
245
                                          cmd_sfunc_ftype *set_func,
246
                                          show_value_ftype *show_func,
247
                                          struct cmd_list_element **set_list,
248
                                          struct cmd_list_element **show_list);
249
 
250
extern void add_setshow_boolean_cmd (char *name,
251
                                     enum command_class class,
252
                                     int *var,
253
                                     const char *set_doc, const char *show_doc,
254
                                     const char *help_doc,
255
                                     cmd_sfunc_ftype *set_func,
256
                                     show_value_ftype *show_func,
257
                                     struct cmd_list_element **set_list,
258
                                     struct cmd_list_element **show_list);
259
 
260
extern void add_setshow_filename_cmd (char *name,
261
                                      enum command_class class,
262
                                      char **var,
263
                                      const char *set_doc,
264
                                      const char *show_doc,
265
                                      const char *help_doc,
266
                                      cmd_sfunc_ftype *set_func,
267
                                      show_value_ftype *show_func,
268
                                      struct cmd_list_element **set_list,
269
                                      struct cmd_list_element **show_list);
270
 
271
extern void add_setshow_string_cmd (char *name,
272
                                    enum command_class class,
273
                                    char **var,
274
                                    const char *set_doc,
275
                                    const char *show_doc,
276
                                    const char *help_doc,
277
                                    cmd_sfunc_ftype *set_func,
278
                                    show_value_ftype *show_func,
279
                                    struct cmd_list_element **set_list,
280
                                    struct cmd_list_element **show_list);
281
 
282
extern void add_setshow_string_noescape_cmd (char *name,
283
                                             enum command_class class,
284
                                             char **var,
285
                                             const char *set_doc,
286
                                             const char *show_doc,
287
                                             const char *help_doc,
288
                                             cmd_sfunc_ftype *set_func,
289
                                             show_value_ftype *show_func,
290
                                             struct cmd_list_element **set_list,
291
                                             struct cmd_list_element **show_list);
292
 
293
extern void add_setshow_optional_filename_cmd (char *name,
294
                                               enum command_class class,
295
                                               char **var,
296
                                               const char *set_doc,
297
                                               const char *show_doc,
298
                                               const char *help_doc,
299
                                               cmd_sfunc_ftype *set_func,
300
                                               show_value_ftype *show_func,
301
                                               struct cmd_list_element **set_list,
302
                                               struct cmd_list_element **show_list);
303
 
304
extern void add_setshow_integer_cmd (char *name,
305
                                     enum command_class class,
306
                                     int *var,
307
                                     const char *set_doc,
308
                                     const char *show_doc,
309
                                     const char *help_doc,
310
                                     cmd_sfunc_ftype *set_func,
311
                                     show_value_ftype *show_func,
312
                                     struct cmd_list_element **set_list,
313
                                     struct cmd_list_element **show_list);
314
 
315
extern void add_setshow_uinteger_cmd (char *name,
316
                                      enum command_class class,
317
                                      unsigned int *var,
318
                                      const char *set_doc,
319
                                      const char *show_doc,
320
                                      const char *help_doc,
321
                                      cmd_sfunc_ftype *set_func,
322
                                      show_value_ftype *show_func,
323
                                      struct cmd_list_element **set_list,
324
                                      struct cmd_list_element **show_list);
325
 
326
extern void add_setshow_zinteger_cmd (char *name,
327
                                      enum command_class class,
328
                                      int *var,
329
                                      const char *set_doc,
330
                                      const char *show_doc,
331
                                      const char *help_doc,
332
                                      cmd_sfunc_ftype *set_func,
333
                                      show_value_ftype *show_func,
334
                                      struct cmd_list_element **set_list,
335
                                      struct cmd_list_element **show_list);
336
 
337
/* Do a "show" command for each thing on a command list.  */
338
 
339
extern void cmd_show_list (struct cmd_list_element *, int, char *);
340
 
341
extern NORETURN void error_no_arg (char *) ATTR_NORETURN;
342
 
343
extern void dont_repeat (void);
344
 
345
/* Used to mark commands that don't do anything.  If we just leave the
346
   function field NULL, the command is interpreted as a help topic, or
347
   as a class of commands.  */
348
 
349
extern void not_just_help_class_command (char *, int);
350
 
351
/* check function pointer */
352
extern int cmd_func_p (struct cmd_list_element *cmd);
353
 
354
/* call the command function */
355
extern void cmd_func (struct cmd_list_element *cmd, char *args, int from_tty);
356
 
357
#endif /* !defined (COMMAND_H) */

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.