gdb/target-dcache.c - gdb
Global variables defined
Functions defined
Source code
- #include "defs.h"
- #include "target-dcache.h"
- #include "gdbcmd.h"
- #include "progspace.h"
- static const struct address_space_data *target_dcache_aspace_key;
- static void
- target_dcache_cleanup (struct address_space *aspace, void *arg)
- {
- dcache_free (arg);
- }
- int
- target_dcache_init_p (void)
- {
- DCACHE *dcache = address_space_data (current_program_space->aspace,
- target_dcache_aspace_key);
- return (dcache != NULL);
- }
- void
- target_dcache_invalidate (void)
- {
- DCACHE *dcache = address_space_data (current_program_space->aspace,
- target_dcache_aspace_key);
- if (dcache != NULL)
- dcache_invalidate (dcache);
- }
- DCACHE *
- target_dcache_get (void)
- {
- DCACHE *dcache = address_space_data (current_program_space->aspace,
- target_dcache_aspace_key);
- return dcache;
- }
- DCACHE *
- target_dcache_get_or_init (void)
- {
- DCACHE *dcache = address_space_data (current_program_space->aspace,
- target_dcache_aspace_key);
- if (dcache == NULL)
- {
- dcache = dcache_init ();
- set_address_space_data (current_program_space->aspace,
- target_dcache_aspace_key, dcache);
- }
- return dcache;
- }
- static int stack_cache_enabled_1 = 1;
- static int stack_cache_enabled = 1;
- static void
- set_stack_cache (char *args, int from_tty, struct cmd_list_element *c)
- {
- if (stack_cache_enabled != stack_cache_enabled_1)
- target_dcache_invalidate ();
- stack_cache_enabled = stack_cache_enabled_1;
- }
- static void
- show_stack_cache (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);
- }
- int
- stack_cache_enabled_p (void)
- {
- return stack_cache_enabled;
- }
- static int code_cache_enabled_1 = 1;
- static int code_cache_enabled = 1;
- static void
- set_code_cache (char *args, int from_tty, struct cmd_list_element *c)
- {
- if (code_cache_enabled != code_cache_enabled_1)
- target_dcache_invalidate ();
- code_cache_enabled = code_cache_enabled_1;
- }
- static void
- show_code_cache (struct ui_file *file, int from_tty,
- struct cmd_list_element *c, const char *value)
- {
- fprintf_filtered (file, _("Cache use for code accesses is %s.\n"), value);
- }
- int
- code_cache_enabled_p (void)
- {
- return code_cache_enabled;
- }
- extern initialize_file_ftype _initialize_target_dcache;
- void
- _initialize_target_dcache (void)
- {
- add_setshow_boolean_cmd ("stack-cache", class_support,
- &stack_cache_enabled_1, _("\
- Set cache use for stack access."), _("\
- Show cache use for stack access."), _("\
- When on, use the target memory 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,
- show_stack_cache,
- &setlist, &showlist);
- add_setshow_boolean_cmd ("code-cache", class_support,
- &code_cache_enabled_1, _("\
- Set cache use for code segment access."), _("\
- Show cache use for code segment access."), _("\
- When on, use the target memory cache for all code segment accesses,\n\
- regardless of any configured memory regions. This improves remote\n\
- performance significantly. By default, caching for code segment\n\
- access is on."),
- set_code_cache,
- show_code_cache,
- &setlist, &showlist);
- target_dcache_aspace_key
- = register_address_space_data_with_cleanup (NULL,
- target_dcache_cleanup);
- }