X-Git-Url: https://git.efficios.com/?a=blobdiff_plain;f=gdb%2Ftarget-dcache.c;h=0226d6727808810c861af6d5d1d78d5fa65e7fe7;hb=2eb821570037e8836d61ab3dcb9331c21f8a64d9;hp=fe5e56a1a31428661f3c8f516c6549b64505c979;hpb=61baf725eca99af2569262d10aca03dcde2698f6;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/target-dcache.c b/gdb/target-dcache.c index fe5e56a1a3..0226d67278 100644 --- a/gdb/target-dcache.c +++ b/gdb/target-dcache.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1992-2017 Free Software Foundation, Inc. +/* Copyright (C) 1992-2020 Free Software Foundation, Inc. This file is part of GDB. @@ -23,16 +23,8 @@ /* The target dcache is kept per-address-space. This key lets us associate the cache with the address space. */ -static const struct address_space_data *target_dcache_aspace_key; - -/* Clean up dcache, represented by ARG, which is associated with - ASPACE. */ - -static void -target_dcache_cleanup (struct address_space *aspace, void *arg) -{ - dcache_free ((DCACHE *) arg); -} +static const struct address_space_key + target_dcache_aspace_key; /* Target dcache is initialized or not. */ @@ -40,8 +32,7 @@ int target_dcache_init_p (void) { DCACHE *dcache - = (DCACHE *) address_space_data (current_program_space->aspace, - target_dcache_aspace_key); + = target_dcache_aspace_key.get (current_program_space->aspace); return (dcache != NULL); } @@ -52,8 +43,7 @@ void target_dcache_invalidate (void) { DCACHE *dcache - = (DCACHE *) address_space_data (current_program_space->aspace, - target_dcache_aspace_key); + = target_dcache_aspace_key.get (current_program_space->aspace); if (dcache != NULL) dcache_invalidate (dcache); @@ -65,11 +55,7 @@ target_dcache_invalidate (void) DCACHE * target_dcache_get (void) { - DCACHE *dcache - = (DCACHE *) address_space_data (current_program_space->aspace, - target_dcache_aspace_key); - - return dcache; + return target_dcache_aspace_key.get (current_program_space->aspace); } /* Return the target dcache. If it is not initialized yet, initialize @@ -79,21 +65,19 @@ DCACHE * target_dcache_get_or_init (void) { DCACHE *dcache - = (DCACHE *) address_space_data (current_program_space->aspace, - target_dcache_aspace_key); + = target_dcache_aspace_key.get (current_program_space->aspace); if (dcache == NULL) { dcache = dcache_init (); - set_address_space_data (current_program_space->aspace, - target_dcache_aspace_key, dcache); + target_dcache_aspace_key.set (current_program_space->aspace, dcache); } return dcache; } /* The option sets this. */ -static int stack_cache_enabled_1 = 1; +static bool stack_cache_enabled_1 = true; /* And set_stack_cache updates this. The reason for the separation is so that we don't flush the cache for on->on transitions. */ @@ -105,7 +89,7 @@ static int stack_cache_enabled = 1; except cleanliness. */ static void -set_stack_cache (char *args, int from_tty, struct cmd_list_element *c) +set_stack_cache (const char *args, int from_tty, struct cmd_list_element *c) { if (stack_cache_enabled != stack_cache_enabled_1) target_dcache_invalidate (); @@ -130,7 +114,7 @@ stack_cache_enabled_p (void) /* The option sets this. */ -static int code_cache_enabled_1 = 1; +static bool code_cache_enabled_1 = true; /* And set_code_cache updates this. The reason for the separation is so that we don't flush the cache for @@ -143,7 +127,7 @@ static int code_cache_enabled = 1; except cleanliness. */ static void -set_code_cache (char *args, int from_tty, struct cmd_list_element *c) +set_code_cache (const char *args, int from_tty, struct cmd_list_element *c) { if (code_cache_enabled != code_cache_enabled_1) target_dcache_invalidate (); @@ -168,11 +152,9 @@ code_cache_enabled_p (void) return code_cache_enabled; } -/* -Wmissing-prototypes */ -extern initialize_file_ftype _initialize_target_dcache; - +void _initialize_target_dcache (); void -_initialize_target_dcache (void) +_initialize_target_dcache () { add_setshow_boolean_cmd ("stack-cache", class_support, &stack_cache_enabled_1, _("\ @@ -196,8 +178,4 @@ 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); }