1999-01-19 Fernando Nasser <fnasser@totem.to.cygnus.com>
[deliverable/binutils-gdb.git] / gdb / dcache.c
index f110a0c0b4f528b8edbfbd416fa17cafc30e061d..a97a940a4a68293c35dc94d4b01e8e01d0f545aa 100644 (file)
@@ -1,7 +1,7 @@
 /* Caching code.  Typically used by remote back ends for
    caching remote memory.
 
-   Copyright 1992, 1993, 1995 Free Software Foundation, Inc.
+   Copyright 1992, 1993, 1995, 1998 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -23,7 +23,7 @@
 #include "dcache.h"
 #include "gdbcmd.h"
 #include "gdb_string.h"
-
+#include "gdbcore.h"
 
 /* 
    The data cache could lead to incorrect results because it doesn't know
 struct dcache_block
 {
   struct dcache_block *p;      /* next in list */
-  unsigned int addr;           /* Address for which data is recorded.  */
+  CORE_ADDR addr;              /* Address for which data is recorded.  */
   char data[LINE_SIZE];                /* bytes at given address */
   unsigned char state[LINE_SIZE]; /* what state the data is in */
 
@@ -148,14 +148,14 @@ struct dcache_struct
   int cache_has_stuff;
 } ;
 
-static int
-dcache_poke_byte PARAMS ((DCACHE *dcache, CORE_ADDR addr, char *ptr));
+static int dcache_poke_byte PARAMS ((DCACHE *dcache, CORE_ADDR addr, 
+                                     char *ptr));
 
-static int
-dcache_peek_byte PARAMS ((DCACHE *dcache, CORE_ADDR addr, char *ptr));
+static int dcache_peek_byte PARAMS ((DCACHE *dcache, CORE_ADDR addr, 
+                                     char *ptr));
 
-static struct dcache_block *
-dcache_hit PARAMS ((DCACHE *dcache, unsigned int addr));
+static struct dcache_block *dcache_hit PARAMS ((DCACHE *dcache, 
+                                                CORE_ADDR addr));
 
 static int dcache_write_line PARAMS ((DCACHE *dcache,struct dcache_block *db));
 
@@ -165,12 +165,13 @@ static int dcache_writeback PARAMS ((DCACHE *dcache));
 
 static void dcache_info PARAMS ((char *exp, int tty));
 
+void _initialize_dcache PARAMS ((void));
+
 int remote_dcache = 0;
 
 DCACHE *last_cache; /* Used by info dcache */
 
 
-
 /* Free all the data cache blocks, thus discarding all cached data.  */
 
 void
@@ -207,7 +208,7 @@ dcache_flush (dcache)
 static struct dcache_block *
 dcache_hit (dcache, addr)
      DCACHE *dcache;
-     unsigned int addr;
+     CORE_ADDR addr;
 {
   register struct dcache_block *db;
 
@@ -338,7 +339,7 @@ dcache_peek_byte (dcache, addr, ptr)
     else
       db = dcache_alloc (dcache);
       immediate_quit++;
-           db->addr = MASK (addr);
+      db->addr = MASK (addr);
       while (done < LINE_SIZE) 
        {
          int try =
@@ -478,8 +479,8 @@ dcache_xfer_memory (dcache, memaddr, myaddr, len, should_write)
 
   if (remote_dcache) 
     {
-      int (*xfunc) ()
-       = should_write ? dcache_poke_byte : dcache_peek_byte;
+      int (*xfunc) PARAMS ((DCACHE *dcache, CORE_ADDR addr, char *ptr));
+      xfunc = should_write ? dcache_poke_byte : dcache_peek_byte;
 
       for (i = 0; i < len; i++)
        {
@@ -491,8 +492,8 @@ dcache_xfer_memory (dcache, memaddr, myaddr, len, should_write)
     }
   else 
     {
-      int (*xfunc) () 
-       = should_write ? dcache->write_memory : dcache->read_memory;
+      memxferfunc xfunc;
+      xfunc = should_write ? dcache->write_memory : dcache->read_memory;
 
       if (dcache->cache_has_stuff)
        dcache_flush (dcache);
This page took 0.025267 seconds and 4 git commands to generate.