GDB (xrefs)
|
#include "defs.h"
#include "dcache.h"
#include "gdbcmd.h"
#include "gdbcore.h"
#include "target-dcache.h"
#include "inferior.h"
#include "splay-tree.h"
#include "gdbarch.h"
Go to the source code of this file.
Classes | |
struct | dcache_block |
struct | dcache_struct |
Macros | |
#define | DCACHE_DEFAULT_SIZE 4096 |
#define | DCACHE_DEFAULT_LINE_SIZE 64 |
#define | LINE_SIZE_MASK(dcache) ((dcache->line_size - 1)) |
#define | XFORM(dcache, x) ((x) & LINE_SIZE_MASK (dcache)) |
#define | MASK(dcache, x) ((x) & ~LINE_SIZE_MASK (dcache)) |
Typedefs | |
typedef void | block_func(struct dcache_block *block, void *param) |
Functions | |
static struct dcache_block * | dcache_hit (DCACHE *dcache, CORE_ADDR addr) |
static int | dcache_read_line (DCACHE *dcache, struct dcache_block *db) |
static struct dcache_block * | dcache_alloc (DCACHE *dcache, CORE_ADDR addr) |
static void | show_dcache_enabled_p (struct ui_file *file, int from_tty, struct cmd_list_element *c, const char *value) |
static void | append_block (struct dcache_block **blist, struct dcache_block *block) |
static void | remove_block (struct dcache_block **blist, struct dcache_block *block) |
static void | for_each_block (struct dcache_block **blist, block_func *func, void *param) |
static void | free_block (struct dcache_block *block, void *param) |
void | dcache_free (DCACHE *dcache) |
static void | invalidate_block (struct dcache_block *block, void *param) |
void | dcache_invalidate (DCACHE *dcache) |
static void | dcache_invalidate_line (DCACHE *dcache, CORE_ADDR addr) |
static int | dcache_peek_byte (DCACHE *dcache, CORE_ADDR addr, gdb_byte *ptr) |
static void | dcache_poke_byte (DCACHE *dcache, CORE_ADDR addr, const gdb_byte *ptr) |
static int | dcache_splay_tree_compare (splay_tree_key a, splay_tree_key b) |
DCACHE * | dcache_init (void) |
enum target_xfer_status | dcache_read_memory_partial (struct target_ops *ops, DCACHE *dcache, CORE_ADDR memaddr, gdb_byte *myaddr, ULONGEST len, ULONGEST *xfered_len) |
void | dcache_update (DCACHE *dcache, enum target_xfer_status status, CORE_ADDR memaddr, const gdb_byte *myaddr, ULONGEST len) |
static void | dcache_print_line (DCACHE *dcache, int index) |
static void | dcache_info_1 (DCACHE *dcache, const char *exp) |
static void | info_dcache_command (const char *exp, int tty) |
static void | set_dcache_size (const char *args, int from_tty, struct cmd_list_element *c) |
static void | set_dcache_line_size (const char *args, int from_tty, struct cmd_list_element *c) |
void | _initialize_dcache () |
Variables | |
static struct cmd_list_element * | dcache_set_list = NULL |
static struct cmd_list_element * | dcache_show_list = NULL |
static unsigned | dcache_size = DCACHE_DEFAULT_SIZE |
static unsigned | dcache_line_size = DCACHE_DEFAULT_LINE_SIZE |
static bool | dcache_enabled_p = false |
#define DCACHE_DEFAULT_LINE_SIZE 64 |
Definition at line 83 of file dcache.c.
Referenced by set_dcache_line_size().
#define DCACHE_DEFAULT_SIZE 4096 |
Definition at line 77 of file dcache.c.
Referenced by set_dcache_size().
#define MASK | ( | dcache, | |
x ) ((x) & ~LINE_SIZE_MASK (dcache)) |
Definition at line 91 of file dcache.c.
Referenced by dcache_alloc(), and dcache_hit().
#define XFORM | ( | dcache, | |
x ) ((x) & LINE_SIZE_MASK (dcache)) |
Definition at line 90 of file dcache.c.
Referenced by dcache_peek_byte(), and dcache_poke_byte().
typedef void block_func(struct dcache_block *block, void *param) |
void _initialize_dcache | ( | ) |
Definition at line 683 of file dcache.c.
Referenced by initialize_all_files().
|
static |
Definition at line 150 of file dcache.c.
Referenced by dcache_alloc(), dcache_invalidate_line(), and invalidate_block().
|
static |
Definition at line 357 of file dcache.c.
References dcache_block::addr, append_block(), dcache_block::data, dcache_size, dcache_struct::freelist, dcache_struct::line_size, MASK, dcache_struct::oldest, dcache_block::refs, remove_block(), dcache_struct::size, dcache_struct::tree, and xmalloc().
Referenced by dcache_peek_byte().
void dcache_free | ( | DCACHE * | dcache | ) |
Definition at line 224 of file dcache.c.
References for_each_block(), free_block(), dcache_struct::freelist, dcache_struct::oldest, dcache_struct::tree, and xfree().
Referenced by dcache_deleter::operator()().
|
static |
Definition at line 289 of file dcache.c.
References dcache_block::addr, MASK, dcache_block::refs, and dcache_struct::tree.
Referenced by dcache_invalidate_line(), dcache_peek_byte(), and dcache_poke_byte().
|
static |
Definition at line 595 of file dcache.c.
References dcache_block::addr, dcache_line_size, dcache_print_line(), dcache_size, gdb_printf(), dcache_struct::line_size, paddress(), dcache_struct::ptid, dcache_block::refs, target_gdbarch(), target_pid_to_str(), and dcache_struct::tree.
Referenced by info_dcache_command().
DCACHE * dcache_init | ( | void | ) |
Definition at line 448 of file dcache.c.
References dcache_line_size, dcache_splay_tree_compare(), dcache_struct::freelist, dcache_struct::line_size, dcache_struct::oldest, dcache_struct::proc_target, dcache_struct::ptid, dcache_struct::size, and dcache_struct::tree.
Referenced by target_dcache_get_or_init().
void dcache_invalidate | ( | DCACHE * | dcache | ) |
Definition at line 249 of file dcache.c.
References dcache_line_size, for_each_block(), free_block(), dcache_struct::freelist, invalidate_block(), dcache_struct::line_size, dcache_struct::oldest, dcache_struct::proc_target, dcache_struct::ptid, and dcache_struct::size.
Referenced by dcache_read_memory_partial(), and target_dcache_invalidate().
|
static |
Definition at line 272 of file dcache.c.
References dcache_block::addr, append_block(), dcache_hit(), dcache_struct::freelist, dcache_struct::oldest, remove_block(), dcache_struct::size, and dcache_struct::tree.
Referenced by dcache_read_memory_partial(), and dcache_update().
|
static |
Definition at line 400 of file dcache.c.
References dcache_block::addr, dcache_block::data, dcache_alloc(), dcache_hit(), dcache_read_line(), and XFORM.
Referenced by dcache_read_memory_partial().
|
static |
Definition at line 426 of file dcache.c.
References dcache_block::addr, dcache_block::data, dcache_hit(), and XFORM.
Referenced by dcache_update().
|
static |
Definition at line 549 of file dcache.c.
References dcache_block::addr, dcache_block::data, gdb_printf(), dcache_struct::line_size, paddress(), dcache_block::refs, target_gdbarch(), and dcache_struct::tree.
Referenced by dcache_info_1().
|
static |
Definition at line 309 of file dcache.c.
References dcache_block::addr, mem_region::attrib, dcache_block::data, mem_region::hi, dcache_struct::line_size, lookup_mem_region(), MEM_WO, mem_attrib::mode, and target_read_raw_memory().
Referenced by dcache_peek_byte().
enum target_xfer_status dcache_read_memory_partial | ( | struct target_ops * | ops, |
DCACHE * | dcache, | ||
CORE_ADDR | memaddr, | ||
gdb_byte * | myaddr, | ||
ULONGEST | len, | ||
ULONGEST * | xfered_len ) |
Definition at line 473 of file dcache.c.
References current_inferior(), dcache_invalidate(), dcache_invalidate_line(), dcache_peek_byte(), inferior_ptid, dcache_struct::proc_target, inferior::process_target(), dcache_struct::ptid, raw_memory_xfer_partial(), and TARGET_XFER_OK.
Referenced by memory_xfer_partial_1().
|
static |
Definition at line 435 of file dcache.c.
Referenced by dcache_init().
void dcache_update | ( | DCACHE * | dcache, |
enum target_xfer_status | status, | ||
CORE_ADDR | memaddr, | ||
const gdb_byte * | myaddr, | ||
ULONGEST | len ) |
Definition at line 529 of file dcache.c.
References dcache_invalidate_line(), dcache_poke_byte(), status, and TARGET_XFER_OK.
Referenced by raw_memory_xfer_partial().
|
static |
Definition at line 195 of file dcache.c.
References func, and dcache_block::next.
Referenced by dcache_free(), and dcache_invalidate().
|
static |
Definition at line 216 of file dcache.c.
References xfree().
Referenced by dcache_free(), and dcache_invalidate().
|
static |
Definition at line 650 of file dcache.c.
References dcache_info_1(), and target_dcache_get().
|
static |
Definition at line 238 of file dcache.c.
References append_block(), dcache_struct::freelist, and dcache_struct::tree.
Referenced by dcache_invalidate().
|
static |
Definition at line 172 of file dcache.c.
Referenced by dcache_alloc(), and dcache_invalidate_line().
|
static |
Definition at line 668 of file dcache.c.
References DCACHE_DEFAULT_LINE_SIZE, dcache_line_size, and target_dcache_invalidate().
|
static |
Definition at line 656 of file dcache.c.
References DCACHE_DEFAULT_SIZE, dcache_size, and target_dcache_invalidate().
|
static |
Definition at line 136 of file dcache.c.
References gdb_printf().
|
static |
Definition at line 84 of file dcache.c.
Referenced by dcache_info_1(), dcache_init(), dcache_invalidate(), and set_dcache_line_size().
|
static |
|
static |
|
static |
Definition at line 78 of file dcache.c.
Referenced by dcache_alloc(), dcache_info_1(), and set_dcache_size().