X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;ds=sidebyside;f=gdb%2Fmi%2Fmi-parse.h;h=dbc7be204727a011c5e90ab3f4ee3cc844fd46be;hb=refs%2Fheads%2Fconcurrent-displaced-stepping-2020-04-01;hp=6d0f53c9fecbc8815339c7882646ab43d6f2f035;hpb=305aeedc41771066e7283a798b108c95b027997e;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/mi/mi-parse.h b/gdb/mi/mi-parse.h index 6d0f53c9fe..dbc7be2047 100644 --- a/gdb/mi/mi-parse.h +++ b/gdb/mi/mi-parse.h @@ -1,5 +1,5 @@ /* MI Command Set - MI Command Parser. - Copyright (C) 2000, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. + Copyright (C) 2000-2020 Free Software Foundation, Inc. Contributed by Cygnus Solutions (a Red Hat company). This file is part of GDB. @@ -17,18 +17,21 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ -#ifndef MI_PARSE_H -#define MI_PARSE_H +#ifndef MI_MI_PARSE_H +#define MI_MI_PARSE_H -#include +#include "gdbsupport/run-time-clock.h" +#include +#include "mi-cmds.h" /* For enum print_values. */ /* MI parser */ /* Timestamps for current command and last asynchronous command. */ -struct mi_timestamp { - struct timeval wallclock; - struct timeval utime; - struct timeval stime; +struct mi_timestamp +{ + std::chrono::steady_clock::time_point wallclock; + user_cpu_time_clock::time_point utime; + system_cpu_time_clock::time_point stime; }; enum mi_command_type @@ -38,6 +41,11 @@ enum mi_command_type struct mi_parse { + mi_parse (); + ~mi_parse (); + + DISABLE_COPY_AND_ASSIGN (mi_parse); + enum mi_command_type op; char *command; char *token; @@ -50,6 +58,10 @@ struct mi_parse int thread_group; /* At present, the same as inferior number. */ int thread; int frame; + + /* The language that should be used to evaluate the MI command. + Ignored if set to language_unknown. */ + enum language language; }; /* Attempts to parse CMD returning a ``struct mi_parse''. If CMD is @@ -60,10 +72,11 @@ struct mi_parse the TOKEN field of the resultant mi_parse object, to be freed by mi_parse_free. */ -extern struct mi_parse *mi_parse (char *cmd, char **token); +extern std::unique_ptr mi_parse (const char *cmd, + char **token); -/* Free a command returned by mi_parse_command. */ +/* Parse a string argument into a print_values value. */ -extern void mi_parse_free (struct mi_parse *cmd); +enum print_values mi_parse_print_values (const char *name); -#endif +#endif /* MI_MI_PARSE_H */