gdb: add target_ops::supports_displaced_step
[deliverable/binutils-gdb.git] / gdb / mi / mi-parse.h
index 59e57de5a7eec19f7e15a09b8086fe25eb058ef7..dbc7be204727a011c5e90ab3f4ee3cc844fd46be 100644 (file)
@@ -1,5 +1,5 @@
 /* MI Command Set - MI Command Parser.
-   Copyright (C) 2000, 2007-2012 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.
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
-#ifndef MI_PARSE_H
-#define MI_PARSE_H
+#ifndef MI_MI_PARSE_H
+#define MI_MI_PARSE_H
 
-#include <sys/time.h>
+#include "gdbsupport/run-time-clock.h"
+#include <chrono>
+#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<struct mi_parse> 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 */
This page took 0.024559 seconds and 4 git commands to generate.