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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-stable/] [gdb-7.2/] [gdb/] [command.h] - Blame information for rev 866

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

Line No. Rev Author Line
1 330 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, 2009, 2010 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_bookmark, class_obscure, class_maintenance,
36
  class_pseudo, class_tui, class_user, 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
    /* ZeroableUnsignedInteger.  *VAR is an unsigned int.  Zero really
91
       means zero.  */
92
    var_zuinteger,
93
    /* Enumerated type.  Can only have one of the specified values.  *VAR is a
94
       char pointer to the name of the element that we find.  */
95
    var_enum
96
  }
97
var_types;
98
 
99
/* This structure records one command'd definition.  */
100
struct cmd_list_element;
101
 
102
/* Forward-declarations of the entry-points of cli/cli-decode.c.  */
103
 
104
extern struct cmd_list_element *add_cmd (char *, enum command_class,
105
                                         void (*fun) (char *, int), char *,
106
                                         struct cmd_list_element **);
107
 
108
extern struct cmd_list_element *add_alias_cmd (char *, char *,
109
                                               enum command_class, int,
110
                                               struct cmd_list_element **);
111
 
112
extern struct cmd_list_element *add_prefix_cmd (char *, enum command_class,
113
                                                void (*fun) (char *, int),
114
                                                char *,
115
                                                struct cmd_list_element **,
116
                                                char *, int,
117
                                                struct cmd_list_element **);
118
 
119
extern struct cmd_list_element *add_abbrev_prefix_cmd (char *,
120
                                                       enum command_class,
121
                                                       void (*fun) (char *,
122
                                                                    int),
123
                                                       char *,
124
                                                       struct cmd_list_element
125
                                                       **, char *, int,
126
                                                       struct cmd_list_element
127
                                                       **);
128
 
129
/* Set the commands corresponding callback.  */
130
 
131
typedef void cmd_cfunc_ftype (char *args, int from_tty);
132
extern void set_cmd_cfunc (struct cmd_list_element *cmd,
133
                           cmd_cfunc_ftype *cfunc);
134
 
135
typedef void cmd_sfunc_ftype (char *args, int from_tty,
136
                              struct cmd_list_element *c);
137
extern void set_cmd_sfunc (struct cmd_list_element *cmd,
138
                           cmd_sfunc_ftype *sfunc);
139
 
140
extern void set_cmd_completer (struct cmd_list_element *cmd,
141
                               char **(*completer) (struct cmd_list_element *cmd,
142
                                                    char *text, char *word));
143
 
144
/* HACK: cagney/2002-02-23: Code, mostly in tracepoints.c, grubs
145
   around in cmd objects to test the value of the commands sfunc().  */
146
extern int cmd_cfunc_eq (struct cmd_list_element *cmd,
147
                         void (*cfunc) (char *args, int from_tty));
148
 
149
/* Each command object has a local context attached to it. .  */
150
extern void set_cmd_context (struct cmd_list_element *cmd, void *context);
151
extern void *get_cmd_context (struct cmd_list_element *cmd);
152
 
153
 
154
/* Execute CMD's pre/post hook.  Throw an error if the command fails.
155
   If already executing this pre/post hook, or there is no pre/post
156
   hook, the call is silently ignored.  */
157
extern void execute_cmd_pre_hook (struct cmd_list_element *cmd);
158
extern void execute_cmd_post_hook (struct cmd_list_element *cmd);
159
 
160
/* Return the type of the command.  */
161
extern enum cmd_types cmd_type (struct cmd_list_element *cmd);
162
 
163
 
164
extern struct cmd_list_element *lookup_cmd (char **,
165
                                            struct cmd_list_element *, char *,
166
                                            int, int);
167
 
168
extern struct cmd_list_element *lookup_cmd_1 (char **,
169
                                              struct cmd_list_element *,
170
                                              struct cmd_list_element **,
171
                                              int);
172
 
173
extern struct cmd_list_element *
174
  deprecate_cmd (struct cmd_list_element *, char * );
175
 
176
extern void
177
  deprecated_cmd_warning (char **);
178
 
179
extern int
180
  lookup_cmd_composition (char *text,
181
                        struct cmd_list_element **alias,
182
                        struct cmd_list_element **prefix_cmd,
183
                        struct cmd_list_element **cmd);
184
 
185
extern struct cmd_list_element *add_com (char *, enum command_class,
186
                                         void (*fun) (char *, int), char *);
187
 
188
extern struct cmd_list_element *add_com_alias (char *, char *,
189
                                               enum command_class, int);
190
 
191
extern struct cmd_list_element *add_info (char *, void (*fun) (char *, int),
192
                                          char *);
193
 
194
extern struct cmd_list_element *add_info_alias (char *, char *, int);
195
 
196
extern char **complete_on_cmdlist (struct cmd_list_element *, char *, char *);
197
 
198
extern char **complete_on_enum (const char *enumlist[], char *, char *);
199
 
200
extern void help_cmd (char *, struct ui_file *);
201
 
202
extern void help_list (struct cmd_list_element *, char *,
203
                       enum command_class, struct ui_file *);
204
 
205
extern void help_cmd_list (struct cmd_list_element *, enum command_class,
206
                           char *, int, struct ui_file *);
207
 
208
/* Method for show a set/show variable's VALUE on FILE.  If this
209
   method isn't supplied deprecated_show_value_hack() is called (which
210
   is not good).  */
211
typedef void (show_value_ftype) (struct ui_file *file,
212
                                 int from_tty,
213
                                 struct cmd_list_element *cmd,
214
                                 const char *value);
215
/* NOTE: i18n: This function is not i18n friendly.  Callers should
216
   instead print the value out directly.  */
217
extern show_value_ftype deprecated_show_value_hack;
218
 
219
extern void add_setshow_enum_cmd (char *name,
220
                                  enum command_class class,
221
                                  const char *enumlist[],
222
                                  const char **var,
223
                                  const char *set_doc,
224
                                  const char *show_doc,
225
                                  const char *help_doc,
226
                                  cmd_sfunc_ftype *set_func,
227
                                  show_value_ftype *show_func,
228
                                  struct cmd_list_element **set_list,
229
                                  struct cmd_list_element **show_list);
230
 
231
extern void add_setshow_auto_boolean_cmd (char *name,
232
                                          enum command_class class,
233
                                          enum auto_boolean *var,
234
                                          const char *set_doc,
235
                                          const char *show_doc,
236
                                          const char *help_doc,
237
                                          cmd_sfunc_ftype *set_func,
238
                                          show_value_ftype *show_func,
239
                                          struct cmd_list_element **set_list,
240
                                          struct cmd_list_element **show_list);
241
 
242
extern void add_setshow_boolean_cmd (char *name,
243
                                     enum command_class class,
244
                                     int *var,
245
                                     const char *set_doc, const char *show_doc,
246
                                     const char *help_doc,
247
                                     cmd_sfunc_ftype *set_func,
248
                                     show_value_ftype *show_func,
249
                                     struct cmd_list_element **set_list,
250
                                     struct cmd_list_element **show_list);
251
 
252
extern void add_setshow_filename_cmd (char *name,
253
                                      enum command_class class,
254
                                      char **var,
255
                                      const char *set_doc,
256
                                      const char *show_doc,
257
                                      const char *help_doc,
258
                                      cmd_sfunc_ftype *set_func,
259
                                      show_value_ftype *show_func,
260
                                      struct cmd_list_element **set_list,
261
                                      struct cmd_list_element **show_list);
262
 
263
extern void add_setshow_string_cmd (char *name,
264
                                    enum command_class class,
265
                                    char **var,
266
                                    const char *set_doc,
267
                                    const char *show_doc,
268
                                    const char *help_doc,
269
                                    cmd_sfunc_ftype *set_func,
270
                                    show_value_ftype *show_func,
271
                                    struct cmd_list_element **set_list,
272
                                    struct cmd_list_element **show_list);
273
 
274
extern void add_setshow_string_noescape_cmd (char *name,
275
                                             enum command_class class,
276
                                             char **var,
277
                                             const char *set_doc,
278
                                             const char *show_doc,
279
                                             const char *help_doc,
280
                                             cmd_sfunc_ftype *set_func,
281
                                             show_value_ftype *show_func,
282
                                             struct cmd_list_element **set_list,
283
                                             struct cmd_list_element **show_list);
284
 
285
extern void add_setshow_optional_filename_cmd (char *name,
286
                                               enum command_class class,
287
                                               char **var,
288
                                               const char *set_doc,
289
                                               const char *show_doc,
290
                                               const char *help_doc,
291
                                               cmd_sfunc_ftype *set_func,
292
                                               show_value_ftype *show_func,
293
                                               struct cmd_list_element **set_list,
294
                                               struct cmd_list_element **show_list);
295
 
296
extern void add_setshow_integer_cmd (char *name,
297
                                     enum command_class class,
298
                                     int *var,
299
                                     const char *set_doc,
300
                                     const char *show_doc,
301
                                     const char *help_doc,
302
                                     cmd_sfunc_ftype *set_func,
303
                                     show_value_ftype *show_func,
304
                                     struct cmd_list_element **set_list,
305
                                     struct cmd_list_element **show_list);
306
 
307
extern void add_setshow_uinteger_cmd (char *name,
308
                                      enum command_class class,
309
                                      unsigned int *var,
310
                                      const char *set_doc,
311
                                      const char *show_doc,
312
                                      const char *help_doc,
313
                                      cmd_sfunc_ftype *set_func,
314
                                      show_value_ftype *show_func,
315
                                      struct cmd_list_element **set_list,
316
                                      struct cmd_list_element **show_list);
317
 
318
extern void add_setshow_zinteger_cmd (char *name,
319
                                      enum command_class class,
320
                                      int *var,
321
                                      const char *set_doc,
322
                                      const char *show_doc,
323
                                      const char *help_doc,
324
                                      cmd_sfunc_ftype *set_func,
325
                                      show_value_ftype *show_func,
326
                                      struct cmd_list_element **set_list,
327
                                      struct cmd_list_element **show_list);
328
 
329
extern void add_setshow_zuinteger_cmd (char *name,
330
                                       enum command_class class,
331
                                       unsigned int *var,
332
                                       const char *set_doc,
333
                                       const char *show_doc,
334
                                       const char *help_doc,
335
                                       cmd_sfunc_ftype *set_func,
336
                                       show_value_ftype *show_func,
337
                                       struct cmd_list_element **set_list,
338
                                       struct cmd_list_element **show_list);
339
 
340
/* Do a "show" command for each thing on a command list.  */
341
 
342
extern void cmd_show_list (struct cmd_list_element *, int, char *);
343
 
344
/* Used everywhere whenever at least one parameter is required and
345
   none is specified. */
346
 
347
extern void error_no_arg (char *) ATTRIBUTE_NORETURN;
348
 
349
extern void dont_repeat (void);
350
 
351
/* Used to mark commands that don't do anything.  If we just leave the
352
   function field NULL, the command is interpreted as a help topic, or
353
   as a class of commands.  */
354
 
355
extern void not_just_help_class_command (char *, int);
356
 
357
/* check function pointer */
358
extern int cmd_func_p (struct cmd_list_element *cmd);
359
 
360
/* call the command function */
361
extern void cmd_func (struct cmd_list_element *cmd, char *args, int from_tty);
362
 
363
#endif /* !defined (COMMAND_H) */

powered by: WebSVN 2.1.0

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