diff options
author | Yao Qi <yao@codesourcery.com> | 2013-10-31 16:50:15 +0800 |
---|---|---|
committer | Yao Qi <yao@codesourcery.com> | 2013-11-20 11:40:51 +0800 |
commit | 68c765e263432b1aa5f5a54edc358eba302be4ca (patch) | |
tree | 132882f55aaaad1d6b6b0373fa7b3862010cafc0 /gdb/target.c | |
parent | f2de978509eb51f85410eab04696725f0bccf9c3 (diff) | |
download | gdb-68c765e263432b1aa5f5a54edc358eba302be4ca.zip gdb-68c765e263432b1aa5f5a54edc358eba302be4ca.tar.gz gdb-68c765e263432b1aa5f5a54edc358eba302be4ca.tar.bz2 |
Move target-dcache out of target.c
This patch moves target_dcache related code out of target.c.
gdb:
2013-11-20 Yao Qi <yao@codesourcery.com>
* Makefile.in (SFILES):Add target-dcache.c.
(HFILES_NO_SRCDIR): Add target-dcache.h.
(COMMON_OBS): Add target-dcache.o.
* dcache.c: Remove inclusion to "target.h". Include
"target-dcache.h".
* memattr.c: Include "target-dcache.h".
* top.c: Likewise.
* tracepoint.c: Likewise.
* target.c: (stack_cache_enabled_p_1): Move to
target-dcache.c.
(stack_cache_enabled_p): Likewise.
(set_stack_cache_enabled_p): Likewise.
(show_stack_cache_enabled_p): Likewise.
(target_dcache, target_dcache_init_p): Likewise.
(target_dcache_invalidate): Likewise.
(target_dcache_get, target_dcache_get_or_init): Likewise.
(memory_xfer_partial_1): Call function stack_cache_enabled.
(initialize_target): Move code to target-dcache.c.
* target.h (target_dcache_invalidate): Move to
target-dcache.h.
(target_dcache_get): Likewise.
* target-dcache.c: New.
* target-dcache.h: New.
Diffstat (limited to 'gdb/target.c')
-rw-r--r-- | gdb/target.c | 86 |
1 files changed, 3 insertions, 83 deletions
diff --git a/gdb/target.c b/gdb/target.c index 2c0096e..5001643 100644 --- a/gdb/target.c +++ b/gdb/target.c @@ -23,6 +23,7 @@ #include <errno.h> #include <string.h> #include "target.h" +#include "target-dcache.h" #include "gdbcmd.h" #include "symtab.h" #include "inferior.h" @@ -206,76 +207,6 @@ show_targetdebug (struct ui_file *file, int from_tty, static void setup_target_debug (void); -/* The option sets this. */ -static int stack_cache_enabled_p_1 = 1; -/* And set_stack_cache_enabled_p updates this. - The reason for the separation is so that we don't flush the cache for - on->on transitions. */ -static int stack_cache_enabled_p = 1; - -/* This is called *after* the stack-cache has been set. - Flush the cache for off->on and on->off transitions. - There's no real need to flush the cache for on->off transitions, - except cleanliness. */ - -static void -set_stack_cache_enabled_p (char *args, int from_tty, - struct cmd_list_element *c) -{ - if (stack_cache_enabled_p != stack_cache_enabled_p_1) - target_dcache_invalidate (); - - stack_cache_enabled_p = stack_cache_enabled_p_1; -} - -static void -show_stack_cache_enabled_p (struct ui_file *file, int from_tty, - struct cmd_list_element *c, const char *value) -{ - fprintf_filtered (file, _("Cache use for stack accesses is %s.\n"), value); -} - -/* Cache of memory operations, to speed up remote access. */ -static DCACHE *target_dcache; - -/* Target dcache is initialized or not. */ - -static int -target_dcache_init_p (void) -{ - return (target_dcache != NULL); -} - -/* Invalidate the target dcache. */ - -void -target_dcache_invalidate (void) -{ - if (target_dcache_init_p ()) - dcache_invalidate (target_dcache); -} - -/* Return the target dcache. Return NULL if target dcache is not - initialized yet. */ - -DCACHE * -target_dcache_get (void) -{ - return target_dcache; -} - -/* Return the target dcache. If it is not initialized yet, initialize - it. */ - -static DCACHE * -target_dcache_get_or_init (void) -{ - if (!target_dcache_init_p ()) - target_dcache = dcache_init (); - - return target_dcache; -} - /* The user just typed 'target' without the name of a target. */ static void @@ -1616,7 +1547,7 @@ memory_xfer_partial_1 (struct target_ops *ops, enum target_object object, the collected memory range fails. */ && get_traceframe_number () == -1 && (region->attrib.cache - || (stack_cache_enabled_p && object == TARGET_OBJECT_STACK_MEMORY))) + || (stack_cache_enabled () && object == TARGET_OBJECT_STACK_MEMORY))) { DCACHE *dcache = target_dcache_get_or_init (); @@ -1669,7 +1600,7 @@ memory_xfer_partial_1 (struct target_ops *ops, enum target_object object, && writebuf != NULL && target_dcache_init_p () && !region->attrib.cache - && stack_cache_enabled_p + && stack_cache_enabled () && object != TARGET_OBJECT_STACK_MEMORY) { DCACHE *dcache = target_dcache_get (); @@ -5162,17 +5093,6 @@ Tells gdb whether to control the inferior in asynchronous mode."), &setlist, &showlist); - add_setshow_boolean_cmd ("stack-cache", class_support, - &stack_cache_enabled_p_1, _("\ -Set cache use for stack access."), _("\ -Show cache use for stack access."), _("\ -When on, use the data cache for all stack access, regardless of any\n\ -configured memory regions. This improves remote performance significantly.\n\ -By default, caching for stack access is on."), - set_stack_cache_enabled_p, - show_stack_cache_enabled_p, - &setlist, &showlist); - add_setshow_boolean_cmd ("may-write-registers", class_support, &may_write_registers_1, _("\ Set permission to write into registers."), _("\ |