gmp-utils: New API to simply use of GMP's integer/rational/float objects
[deliverable/binutils-gdb.git] / gdb / dcache.c
index cec1a81e301128a750367964d79b1edfc38242c6..9f7cc1a12d6479fa0b5361d2da2b850ba28c2061 100644 (file)
@@ -1,6 +1,6 @@
 /* Caching code for GDB, the GNU debugger.
 
-   Copyright (C) 1992-2017 Free Software Foundation, Inc.
+   Copyright (C) 1992-2020 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -24,6 +24,7 @@
 #include "target-dcache.h"
 #include "inferior.h"
 #include "splay-tree.h"
+#include "gdbarch.h"
 
 /* Commands with a prefix of `{set,show} dcache'.  */
 static struct cmd_list_element *dcache_set_list = NULL;
@@ -65,7 +66,7 @@ static struct cmd_list_element *dcache_show_list = NULL;
    is set, etc., then the chunk is skipped.  Those chunks are handled
    in target_xfer_memory() (or target_xfer_memory_partial()).
 
-   This doesn't occur very often.  The most common occurance is when
+   This doesn't occur very often.  The most common occurrence is when
    the last bit of the .text segment and the first bit of the .data
    segment fall within the same dcache page with a ro/cacheable memory
    region defined for the .text segment and a rw/non-cacheable memory
@@ -125,11 +126,7 @@ static int dcache_read_line (DCACHE *dcache, struct dcache_block *db);
 
 static struct dcache_block *dcache_alloc (DCACHE *dcache, CORE_ADDR addr);
 
-static void info_dcache_command (char *exp, int tty);
-
-void _initialize_dcache (void);
-
-static int dcache_enabled_p = 0; /* OBSOLETE */
+static bool dcache_enabled_p = false; /* OBSOLETE */
 
 static void
 show_dcache_enabled_p (struct ui_file *file, int from_tty,
@@ -327,7 +324,7 @@ dcache_read_line (DCACHE *dcache, struct dcache_block *db)
        reg_len = region->hi - memaddr;
 
       /* Skip non-readable regions.  The cache attribute can be ignored,
-         since we may be loading this for a stack access.  */
+        since we may be loading this for a stack access.  */
       if (region->attrib.mode == MEM_WO)
        {
          memaddr += reg_len;
@@ -404,7 +401,7 @@ dcache_peek_byte (DCACHE *dcache, CORE_ADDR addr, gdb_byte *ptr)
       db = dcache_alloc (dcache, addr);
 
       if (!dcache_read_line (dcache, db))
-         return 0;
+        return 0;
     }
 
   *ptr = db->data[XFORM (dcache, addr)];
@@ -476,7 +473,7 @@ dcache_read_memory_partial (struct target_ops *ops, DCACHE *dcache,
   /* If this is a different inferior from what we've recorded,
      flush the cache.  */
 
-  if (! ptid_equal (inferior_ptid, dcache->ptid))
+  if (inferior_ptid != dcache->ptid)
     {
       dcache_invalidate (dcache);
       dcache->ptid = inferior_ptid;
@@ -587,7 +584,7 @@ dcache_print_line (DCACHE *dcache, int index)
 /* Parse EXP and show the info about DCACHE.  */
 
 static void
-dcache_info_1 (DCACHE *dcache, char *exp)
+dcache_info_1 (DCACHE *dcache, const char *exp)
 {
   splay_tree_node n;
   int i, refcount;
@@ -599,8 +596,8 @@ dcache_info_1 (DCACHE *dcache, char *exp)
       i = strtol (exp, &linestart, 10);
       if (linestart == exp || i < 0)
        {
-         printf_filtered (_("Usage: info dcache [linenumber]\n"));
-          return;
+         printf_filtered (_("Usage: info dcache [LINENUMBER]\n"));
+         return;
        }
 
       dcache_print_line (dcache, i);
@@ -612,14 +609,14 @@ dcache_info_1 (DCACHE *dcache, char *exp)
                   dcache ? (unsigned) dcache->line_size
                   : dcache_line_size);
 
-  if (dcache == NULL || ptid_equal (dcache->ptid, null_ptid))
+  if (dcache == NULL || dcache->ptid == null_ptid)
     {
       printf_filtered (_("No data cache available.\n"));
       return;
     }
 
   printf_filtered (_("Contains data for %s\n"),
-                  target_pid_to_str (dcache->ptid));
+                  target_pid_to_str (dcache->ptid).c_str ());
 
   refcount = 0;
 
@@ -642,13 +639,13 @@ dcache_info_1 (DCACHE *dcache, char *exp)
 }
 
 static void
-info_dcache_command (char *exp, int tty)
+info_dcache_command (const char *exp, int tty)
 {
   dcache_info_1 (target_dcache_get (), exp);
 }
 
 static void
-set_dcache_size (char *args, int from_tty,
+set_dcache_size (const char *args, int from_tty,
                 struct cmd_list_element *c)
 {
   if (dcache_size == 0)
@@ -660,7 +657,7 @@ set_dcache_size (char *args, int from_tty,
 }
 
 static void
-set_dcache_line_size (char *args, int from_tty,
+set_dcache_line_size (const char *args, int from_tty,
                      struct cmd_list_element *c)
 {
   if (dcache_line_size < 2
@@ -673,22 +670,9 @@ set_dcache_line_size (char *args, int from_tty,
   target_dcache_invalidate ();
 }
 
-static void
-set_dcache_command (char *arg, int from_tty)
-{
-  printf_unfiltered (
-     "\"set dcache\" must be followed by the name of a subcommand.\n");
-  help_list (dcache_set_list, "set dcache ", all_commands, gdb_stdout);
-}
-
-static void
-show_dcache_command (char *args, int from_tty)
-{
-  cmd_show_list (dcache_show_list, from_tty, "");
-}
-
+void _initialize_dcache ();
 void
-_initialize_dcache (void)
+_initialize_dcache ()
 {
   add_setshow_boolean_cmd ("remotecache", class_support,
                           &dcache_enabled_p, _("\
@@ -705,16 +689,19 @@ exists only for compatibility reasons."),
   add_info ("dcache", info_dcache_command,
            _("\
 Print information on the dcache performance.\n\
+Usage: info dcache [LINENUMBER]\n\
 With no arguments, this command prints the cache configuration and a\n\
-summary of each line in the cache.  Use \"info dcache <lineno> to dump\"\n\
-the contents of a given line."));
+summary of each line in the cache.  With an argument, dump\"\n\
+the contents of the given line."));
 
-  add_prefix_cmd ("dcache", class_obscure, set_dcache_command, _("\
+  add_basic_prefix_cmd ("dcache", class_obscure, _("\
 Use this command to set number of lines in dcache and line-size."),
-                 &dcache_set_list, "set dcache ", /*allow_unknown*/0, &setlist);
-  add_prefix_cmd ("dcache", class_obscure, show_dcache_command, _("\
+                       &dcache_set_list, "set dcache ", /*allow_unknown*/0,
+                       &setlist);
+  add_show_prefix_cmd ("dcache", class_obscure, _("\
 Show dcachesettings."),
-                 &dcache_show_list, "show dcache ", /*allow_unknown*/0, &showlist);
+                      &dcache_show_list, "show dcache ", /*allow_unknown*/0,
+                      &showlist);
 
   add_setshow_zuinteger_cmd ("line-size", class_obscure,
                             &dcache_line_size, _("\
This page took 0.03113 seconds and 4 git commands to generate.