/* Memory attributes support, for GDB.
- Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ Copyright (C) 2001-2020 Free Software Foundation, Inc.
This file is part of GDB.
#include "target-dcache.h"
#include "value.h"
#include "language.h"
-#include "vec.h"
#include "breakpoint.h"
#include "cli/cli-utils.h"
#include <algorithm>
+#include "gdbarch.h"
static std::vector<mem_region> user_mem_region_list, target_mem_region_list;
static std::vector<mem_region> *mem_region_list = &target_mem_region_list;
/* If this flag is set, gdb will assume that memory ranges not
specified by the memory map have type MEM_NONE, and will
emit errors on all accesses to that memory. */
-static int inaccessible_by_default = 1;
+static bool inaccessible_by_default = true;
static void
show_inaccessible_by_default (struct ui_file *file, int from_tty,
static void
require_user_regions (int from_tty)
{
- struct mem_region *m;
- int ix, length;
-
/* If we're already using a user-provided list, nothing to do. */
if (!mem_use_target ())
return;
int ix = std::distance (user_mem_region_list.begin (), it);
/* Check for an overlapping memory region. We only need to check
- in the vicinity - at most one before and one after the
+ in the vincinity - at most one before and one after the
insertion point. */
for (int i = ix - 1; i < ix + 1; i++)
{
lookup_mem_region (CORE_ADDR addr)
{
static struct mem_region region (0, 0);
- struct mem_region *m;
CORE_ADDR lo;
CORE_ADDR hi;
- int ix;
require_target_regions ();
\f
static void
-info_mem_command (char *args, int from_tty)
+info_mem_command (const char *args, int from_tty)
{
if (mem_use_target ())
printf_filtered (_("Using memory regions provided by the target.\n"));
#endif
printf_filtered ("\n");
-
- gdb_flush (gdb_stdout);
}
}
\f
if (args == NULL || *args == '\0')
{
- struct mem_region *m;
- int ix;
-
for (mem_region &m : *mem_region_list)
m.enabled_p = false;
}
static void
mem_delete (int num)
{
- struct mem_region *m;
- int ix;
-
if (!mem_region_list)
{
printf_unfiltered (_("No memory region number %d.\n"), num);
_initialize_mem (void)
{
add_com ("mem", class_vars, mem_command, _("\
-Define attributes for memory region or reset memory region handling to\n\
-target-based.\n\
+Define attributes for memory region or reset memory region handling to "
+"target-based.\n\
Usage: mem auto\n\
- mem <lo addr> <hi addr> [<mode> <width> <cache>],\n\
-where <mode> may be rw (read/write), ro (read-only) or wo (write-only),\n\
- <width> may be 8, 16, 32, or 64, and\n\
- <cache> may be cache or nocache"));
+ mem LOW HIGH [MODE WIDTH CACHE],\n\
+where MODE may be rw (read/write), ro (read-only) or wo (write-only),\n\
+ WIDTH may be 8, 16, 32, or 64, and\n\
+ CACHE may be cache or nocache"));
add_cmd ("mem", class_vars, enable_mem_command, _("\
Enable memory region.\n\
-Arguments are the code numbers of the memory regions to enable.\n\
-Usage: enable mem <code number>...\n\
-Do \"info mem\" to see current list of code numbers."), &enablelist);
+Arguments are the IDs of the memory regions to enable.\n\
+Usage: enable mem [ID]...\n\
+Do \"info mem\" to see current list of IDs."), &enablelist);
add_cmd ("mem", class_vars, disable_mem_command, _("\
Disable memory region.\n\
-Arguments are the code numbers of the memory regions to disable.\n\
-Usage: disable mem <code number>...\n\
-Do \"info mem\" to see current list of code numbers."), &disablelist);
+Arguments are the IDs of the memory regions to disable.\n\
+Usage: disable mem [ID]...\n\
+Do \"info mem\" to see current list of IDs."), &disablelist);
add_cmd ("mem", class_vars, delete_mem_command, _("\
Delete memory region.\n\
-Arguments are the code numbers of the memory regions to delete.\n\
-Usage: delete mem <code number>...\n\
-Do \"info mem\" to see current list of code numbers."), &deletelist);
+Arguments are the IDs of the memory regions to delete.\n\
+Usage: delete mem [ID]...\n\
+Do \"info mem\" to see current list of IDs."), &deletelist);
add_info ("mem", info_mem_command,
- _("Memory region attributes"));
+ _("Memory region attributes."));
add_prefix_cmd ("mem", class_vars, dummy_cmd, _("\
-Memory regions settings"),
+Memory regions settings."),
&mem_set_cmdlist, "set mem ",
0/* allow-unknown */, &setlist);
add_prefix_cmd ("mem", class_vars, dummy_cmd, _("\
-Memory regions settings"),
+Memory regions settings."),
&mem_show_cmdlist, "show mem ",
0/* allow-unknown */, &showlist);