sim: common: change sim_read & sim_write to use void* buffers
authorMike Frysinger <vapier@gentoo.org>
Wed, 26 Oct 2022 16:08:30 +0000 (21:53 +0545)
committerMike Frysinger <vapier@gentoo.org>
Mon, 31 Oct 2022 15:39:39 +0000 (21:24 +0545)
When reading/writing arbitrary data to the system's memory, the unsigned
char pointer type doesn't make that much sense.  Switch it to void so we
align a bit with standard C library read/write functions, and to avoid
having to sprinkle casts everywhere.

21 files changed:
include/sim/sim.h
sim/arm/wrapper.c
sim/avr/interp.c
sim/bfin/dv-bfin_dma.c
sim/bfin/dv-bfin_mmu.c
sim/bfin/interp.c
sim/common/sim-hrw.c
sim/common/sim-utils.h
sim/cris/sim-if.c
sim/d10v/interp.c
sim/erc32/interf.c
sim/h8300/compile.c
sim/iq2000/iq2000.c
sim/m32c/gdb-if.c
sim/mips/interp.c
sim/ppc/sim_calls.c
sim/riscv/sim-main.c
sim/rl78/gdb-if.c
sim/rx/gdb-if.c
sim/sh/interp.c
sim/v850/simops.c

index 8611cf01d57fc94e05b50482a79a43e09339ea21..ae8f19499ee09e9da3cb07363a444c4cd3a368d2 100644 (file)
@@ -170,14 +170,14 @@ SIM_RC sim_create_inferior (SIM_DESC sd, struct bfd *abfd,
    at virtual address MEM and store in BUF.  Result is number of bytes
    read, or zero if error.  */
 
-int sim_read (SIM_DESC sd, SIM_ADDR mem, unsigned char *buf, int length);
+int sim_read (SIM_DESC sd, SIM_ADDR mem, void *buf, int length);
 
 
 /* Store LENGTH bytes from BUF into the simulated program's
    memory. Store bytes starting at virtual address MEM. Result is
    number of bytes write, or zero if error.  */
 
-int sim_write (SIM_DESC sd, SIM_ADDR mem, const unsigned char *buf, int length);
+int sim_write (SIM_DESC sd, SIM_ADDR mem, const void *buf, int length);
 
 
 /* Fetch register REGNO storing its raw (target endian) value in the
index c97bae89dadf0844f8f7b4c79db9d9299913a87e..38a1f27a3b01bf7e51e9f5756f7789be99edf3a9 100644 (file)
@@ -153,15 +153,16 @@ ARMul_ConsolePrint (ARMul_State * state,
 int
 sim_write (SIM_DESC sd ATTRIBUTE_UNUSED,
           SIM_ADDR addr,
-          const unsigned char * buffer,
+          const void * buffer,
           int size)
 {
   int i;
+  const unsigned char * data = buffer;
 
   init ();
 
   for (i = 0; i < size; i++)
-    ARMul_SafeWriteByte (state, addr + i, buffer[i]);
+    ARMul_SafeWriteByte (state, addr + i, data[i]);
 
   return size;
 }
@@ -169,15 +170,16 @@ sim_write (SIM_DESC sd ATTRIBUTE_UNUSED,
 int
 sim_read (SIM_DESC sd ATTRIBUTE_UNUSED,
          SIM_ADDR addr,
-         unsigned char * buffer,
+         void * buffer,
          int size)
 {
   int i;
+  unsigned char * data = buffer;
 
   init ();
 
   for (i = 0; i < size; i++)
-    buffer[i] = ARMul_SafeReadByte (state, addr + i);
+    data[i] = ARMul_SafeReadByte (state, addr + i);
 
   return size;
 }
index 8efdffab8af98e22adb4de0335bcadb37d51e13d..1b147c482d7b740e3383bd72eb8f4b59369be108 100644 (file)
@@ -1526,25 +1526,26 @@ sim_engine_run (SIM_DESC sd,
 }
 
 int
-sim_write (SIM_DESC sd, SIM_ADDR addr, const unsigned char *buffer, int size)
+sim_write (SIM_DESC sd, SIM_ADDR addr, const void *buffer, int size)
 {
   int osize = size;
 
   if (addr >= 0 && addr < SRAM_VADDR)
     {
+      const unsigned char *data = buffer;
       while (size > 0 && addr < (MAX_AVR_FLASH << 1))
        {
           word val = flash[addr >> 1].op;
 
           if (addr & 1)
-            val = (val & 0xff) | (buffer[0] << 8);
+            val = (val & 0xff) | (data[0] << 8);
           else
-            val = (val & 0xff00) | buffer[0];
+            val = (val & 0xff00) | data[0];
 
          flash[addr >> 1].op = val;
          flash[addr >> 1].code = OP_unknown;
          addr++;
-         buffer++;
+         data++;
          size--;
        }
       return osize - size;
@@ -1562,12 +1563,13 @@ sim_write (SIM_DESC sd, SIM_ADDR addr, const unsigned char *buffer, int size)
 }
 
 int
-sim_read (SIM_DESC sd, SIM_ADDR addr, unsigned char *buffer, int size)
+sim_read (SIM_DESC sd, SIM_ADDR addr, void *buffer, int size)
 {
   int osize = size;
 
   if (addr >= 0 && addr < SRAM_VADDR)
     {
+      unsigned char *data = buffer;
       while (size > 0 && addr < (MAX_AVR_FLASH << 1))
        {
           word val = flash[addr >> 1].op;
@@ -1575,7 +1577,7 @@ sim_read (SIM_DESC sd, SIM_ADDR addr, unsigned char *buffer, int size)
           if (addr & 1)
             val >>= 8;
 
-          *buffer++ = val;
+          *data++ = val;
          addr++;
          size--;
        }
index b93a96090c39e894ca68908985fa05527ffbd2f4..52fcd6153543341912ef0f51a0a566d9822fbb72 100644 (file)
@@ -138,17 +138,17 @@ bfin_dma_process_desc (struct hw *me, struct bfin_dma *dma)
     case DMAFLOW_ARRAY:
       if (ndsize == 0 || ndsize > 7)
        hw_abort (me, "DMA config error: DMAFLOW_ARRAY requires NDSIZE 1...7");
-      sim_read (hw_system (me), dma->curr_desc_ptr, (void *)flows, ndsize * 2);
+      sim_read (hw_system (me), dma->curr_desc_ptr, flows, ndsize * 2);
       break;
     case DMAFLOW_SMALL:
       if (ndsize == 0 || ndsize > 8)
        hw_abort (me, "DMA config error: DMAFLOW_SMALL requires NDSIZE 1...8");
-      sim_read (hw_system (me), dma->next_desc_ptr, (void *)flows, ndsize * 2);
+      sim_read (hw_system (me), dma->next_desc_ptr, flows, ndsize * 2);
       break;
     case DMAFLOW_LARGE:
       if (ndsize == 0 || ndsize > 9)
        hw_abort (me, "DMA config error: DMAFLOW_LARGE requires NDSIZE 1...9");
-      sim_read (hw_system (me), dma->next_desc_ptr, (void *)flows, ndsize * 2);
+      sim_read (hw_system (me), dma->next_desc_ptr, flows, ndsize * 2);
       break;
     default:
       hw_abort (me, "DMA config error: invalid DMAFLOW %#x", dma->config);
index b2ca30df02f9b394a7ef5f5abc8fd65d24b5324b..82320f4ea0032a6dfbdd4a9de3d6be27f777300e 100644 (file)
@@ -157,9 +157,9 @@ bfin_mmu_io_write_buffer (struct hw *me, const void *source,
            hw_abort (me, "DTEST_COMMAND bits undefined");
 
          if (value & TEST_WRITE)
-           sim_write (hw_system (me), addr, (void *)mmu->dtest_data, 8);
+           sim_write (hw_system (me), addr, mmu->dtest_data, 8);
          else
-           sim_read (hw_system (me), addr, (void *)mmu->dtest_data, 8);
+           sim_read (hw_system (me), addr, mmu->dtest_data, 8);
        }
       break;
     default:
index 58bec8b9b309f5496707046cf7b8f487663633dd..f63690cfac41f71de8bcda360e2a12532e714337 100644 (file)
@@ -703,7 +703,7 @@ sim_open (SIM_OPEN_KIND kind, host_callback *callback,
     {
       bu16 emuexcpt = 0x25;
       sim_do_commandf (sd, "memory-size 0x%x", BFIN_DEFAULT_MEM_SIZE);
-      sim_write (sd, 0, (void *)&emuexcpt, 2);
+      sim_write (sd, 0, &emuexcpt, 2);
     }
 
   /* Check for/establish the a reference program image.  */
@@ -791,7 +791,7 @@ bfin_fdpic_load (SIM_DESC sd, SIM_CPU *cpu, struct bfd *abfd, bu32 *sp,
   /* Push the Ehdr onto the stack.  */
   *sp -= sizeof (ehdr);
   elf_addrs[3] = *sp;
-  sim_write (sd, *sp, (void *)&ehdr, sizeof (ehdr));
+  sim_write (sd, *sp, &ehdr, sizeof (ehdr));
   if (STATE_OPEN_KIND (sd) == SIM_OPEN_DEBUG)
     sim_io_printf (sd, " Elf_Ehdr: %#x\n", *sp);
 
@@ -850,9 +850,9 @@ bfin_fdpic_load (SIM_DESC sd, SIM_CPU *cpu, struct bfd *abfd, bu32 *sp,
        max_load_addr = max (paddr + memsz, max_load_addr);
 
        *sp -= 12;
-       sim_write (sd, *sp+0, (void *)&paddr, 4); /* loadseg.addr  */
-       sim_write (sd, *sp+4, (void *)&vaddr, 4); /* loadseg.p_vaddr  */
-       sim_write (sd, *sp+8, (void *)&memsz, 4); /* loadseg.p_memsz  */
+       sim_write (sd, *sp+0, &paddr, 4); /* loadseg.addr  */
+       sim_write (sd, *sp+4, &vaddr, 4); /* loadseg.p_vaddr  */
+       sim_write (sd, *sp+8, &memsz, 4); /* loadseg.p_memsz  */
        ++nsegs;
       }
     else if (phdrs[i].p_type == PT_DYNAMIC)
@@ -885,7 +885,7 @@ bfin_fdpic_load (SIM_DESC sd, SIM_CPU *cpu, struct bfd *abfd, bu32 *sp,
   /* Push the summary loadmap info onto the stack last.  */
   *sp -= 4;
   sim_write (sd, *sp+0, null, 2); /* loadmap.version  */
-  sim_write (sd, *sp+2, (void *)&nsegs, 2); /* loadmap.nsegs  */
+  sim_write (sd, *sp+2, &nsegs, 2); /* loadmap.nsegs  */
 
   ret = true;
  skip_fdpic_init:
@@ -1012,10 +1012,10 @@ bfin_user_init (SIM_DESC sd, SIM_CPU *cpu, struct bfd *abfd,
   auxvt_size += 8; \
   sp -= 4; \
   auxvt = (val); \
-  sim_write (sd, sp, (void *)&auxvt, 4); \
+  sim_write (sd, sp, &auxvt, 4); \
   sp -= 4; \
   auxvt = (at); \
-  sim_write (sd, sp, (void *)&auxvt, 4)
+  sim_write (sd, sp, &auxvt, 4)
       unsigned int egid = getegid (), gid = getgid ();
       unsigned int euid = geteuid (), uid = getuid ();
       bu32 auxvt_size = 0;
@@ -1043,15 +1043,15 @@ bfin_user_init (SIM_DESC sd, SIM_CPU *cpu, struct bfd *abfd,
   SET_SPREG (sp);
 
   /* First push the argc value.  */
-  sim_write (sd, sp, (void *)&argc, 4);
+  sim_write (sd, sp, &argc, 4);
   sp += 4;
 
   /* Then the actual argv strings so we know where to point argv[].  */
   for (i = 0; i < argc; ++i)
     {
       unsigned len = strlen (argv[i]) + 1;
-      sim_write (sd, sp_flat, (void *)argv[i], len);
-      sim_write (sd, sp, (void *)&sp_flat, 4);
+      sim_write (sd, sp_flat, argv[i], len);
+      sim_write (sd, sp, &sp_flat, 4);
       sp_flat += len;
       sp += 4;
     }
@@ -1062,8 +1062,8 @@ bfin_user_init (SIM_DESC sd, SIM_CPU *cpu, struct bfd *abfd,
   for (i = 0; i < envc; ++i)
     {
       unsigned len = strlen (env[i]) + 1;
-      sim_write (sd, sp_flat, (void *)env[i], len);
-      sim_write (sd, sp, (void *)&sp_flat, 4);
+      sim_write (sd, sp_flat, env[i], len);
+      sim_write (sd, sp, &sp_flat, 4);
       sp_flat += len;
       sp += 4;
     }
@@ -1093,7 +1093,7 @@ bfin_os_init (SIM_DESC sd, SIM_CPU *cpu, char * const *argv)
       while (argv[i])
        {
          bu32 len = strlen (argv[i]);
-         sim_write (sd, cmdline, (void *)argv[i], len);
+         sim_write (sd, cmdline, argv[i], len);
          cmdline += len;
          sim_write (sd, cmdline, &byte, 1);
          ++cmdline;
index 01a4f213930b56dbfbad10603d54c12ed8923c1d..2596019e6e5c2abe4d829572808c2dfa8c0d0e79 100644 (file)
@@ -27,17 +27,17 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
    modeling real hardware */
 
 int
-sim_read (SIM_DESC sd, SIM_ADDR mem, unsigned char *buf, int length)
+sim_read (SIM_DESC sd, SIM_ADDR mem, void *buffer, int length)
 {
   SIM_ASSERT (STATE_MAGIC (sd) == SIM_MAGIC_NUMBER);
   return sim_core_read_buffer (sd, NULL, read_map,
-                              buf, mem, length);
+                              buffer, mem, length);
 }
 
 int
-sim_write (SIM_DESC sd, SIM_ADDR mem, const unsigned char *buf, int length)
+sim_write (SIM_DESC sd, SIM_ADDR mem, const void *buffer, int length)
 {
   SIM_ASSERT (STATE_MAGIC (sd) == SIM_MAGIC_NUMBER);
   return sim_core_write_buffer (sd, NULL, write_map,
-                               buf, mem, length);
+                               buffer, mem, length);
 }
index c111854a94f29f857eeafabe9cab5ba60a6274f2..cd8aca9f4016dce30c77779834e19e9949bc2624 100644 (file)
@@ -64,7 +64,7 @@ SIM_RC sim_analyze_program (SIM_DESC sd, const char *prog_name,
 
 typedef struct host_callback_struct host_callback;
 typedef int sim_write_fn (SIM_DESC sd, SIM_ADDR mem,
-                         const unsigned char *buf, int length);
+                         const void *buf, int length);
 struct bfd *sim_load_file (SIM_DESC sd, const char *myname,
                           host_callback *callback, const char *prog,
                           struct bfd *prog_bfd, int verbose_p,
index 75176d0c020d64cc43b77c4eccb7d7f7abd16db7..bedc0d08fc0f54de7b6498811bbda2b40b280126 100644 (file)
@@ -486,7 +486,7 @@ aux_ent_entry (struct bfd *ebfd)
    interp_load_addr offset.  */
 
 static int
-cris_write_interp (SIM_DESC sd, SIM_ADDR mem, const unsigned char *buf, int length)
+cris_write_interp (SIM_DESC sd, SIM_ADDR mem, const void *buf, int length)
 {
   return sim_write (sd, mem + interp_load_addr, buf, length);
 }
index fde96aa70e385669cd504005d7784878f9e55d84..c82bb4ce8c9c9cb1e9e432a1fe58a6b6130ff1b9 100644 (file)
@@ -706,7 +706,7 @@ xfer_mem (SIM_DESC sd,
 
 
 int
-sim_write (SIM_DESC sd, SIM_ADDR addr, const unsigned char *buffer, int size)
+sim_write (SIM_DESC sd, SIM_ADDR addr, const void *buffer, int size)
 {
   /* FIXME: this should be performing a virtual transfer */
   /* FIXME: We cast the const away, but it's safe because xfer_mem only reads
@@ -715,7 +715,7 @@ sim_write (SIM_DESC sd, SIM_ADDR addr, const unsigned char *buffer, int size)
 }
 
 int
-sim_read (SIM_DESC sd, SIM_ADDR addr, unsigned char *buffer, int size)
+sim_read (SIM_DESC sd, SIM_ADDR addr, void *buffer, int size)
 {
   /* FIXME: this should be performing a virtual transfer */
   return xfer_mem (sd, addr, buffer, size, 0);
index aa3ffdc7ada11f7c1ec6358b21998f7178ee63e8..fc4336c5f6f1d93175b0d7db427857471237348c 100644 (file)
@@ -329,23 +329,25 @@ sim_fetch_register(SIM_DESC sd, int regno, unsigned char *buf, int length)
 }
 
 int
-sim_write (SIM_DESC sd, SIM_ADDR mem, const unsigned char *buf, int length)
+sim_write (SIM_DESC sd, SIM_ADDR mem, const void *buffer, int length)
 {
     int i, len;
+    const unsigned char *data = buffer;
 
     for (i = 0; i < length; i++) {
-       sis_memory_write ((mem + i) ^ EBT, &buf[i], 1);
+       sis_memory_write ((mem + i) ^ EBT, &data[i], 1);
     }
     return length;
 }
 
 int
-sim_read (SIM_DESC sd, SIM_ADDR mem, unsigned char *buf, int length)
+sim_read (SIM_DESC sd, SIM_ADDR mem, void *buffer, int length)
 {
     int i, len;
+    unsigned char *data = buffer;
 
     for (i = 0; i < length; i++) {
-       sis_memory_read ((mem + i) ^ EBT, &buf[i], 1);
+       sis_memory_read ((mem + i) ^ EBT, &data[i], 1);
     }
     return length;
 }
index 5f64b4752f05e2776f8ba903f97a16ec3d3be7a5..f49e83d6b195164d7ffce3a32035bad359b335f6 100644 (file)
@@ -4442,9 +4442,10 @@ sim_engine_run (SIM_DESC sd,
 }
 
 int
-sim_write (SIM_DESC sd, SIM_ADDR addr, const unsigned char *buffer, int size)
+sim_write (SIM_DESC sd, SIM_ADDR addr, const void *buffer, int size)
 {
   int i;
+  const unsigned char *data = buffer;
 
   init_pointers (sd);
   if (addr < 0)
@@ -4453,7 +4454,7 @@ sim_write (SIM_DESC sd, SIM_ADDR addr, const unsigned char *buffer, int size)
     {
       if (addr < memory_size)
        {
-         h8_set_memory    (sd, addr + i, buffer[i]);
+         h8_set_memory (sd, addr + i, data[i]);
        }
       else
        break;
@@ -4462,7 +4463,7 @@ sim_write (SIM_DESC sd, SIM_ADDR addr, const unsigned char *buffer, int size)
 }
 
 int
-sim_read (SIM_DESC sd, SIM_ADDR addr, unsigned char *buffer, int size)
+sim_read (SIM_DESC sd, SIM_ADDR addr, void *buffer, int size)
 {
   init_pointers (sd);
   if (addr < 0)
index 2c01434c308c5e562c179f83b3c8dd77c48abc89..9b1f4bd0179282e647931d8ed7425d2b4a878ff4 100644 (file)
@@ -47,8 +47,7 @@ fetch_str (SIM_CPU *current_cpu, PCADDR pc, DI addr)
                           pc, read_map, CPU2DATA(addr + nr)) != 0)
     nr++;
   buf = NZALLOC (char, nr + 1);
-  sim_read (CPU_STATE (current_cpu), CPU2DATA(addr), (unsigned char *) buf,
-           nr);
+  sim_read (CPU_STATE (current_cpu), CPU2DATA(addr), buf, nr);
   return buf;
 }
 
@@ -83,8 +82,7 @@ do_syscall (SIM_CPU *current_cpu, PCADDR pc)
 
     case TARGET_NEWLIB_SYS_write:
       buf = zalloc (PARM3);
-      sim_read (CPU_STATE (current_cpu), CPU2DATA(PARM2),
-               (unsigned char *) buf, PARM3);
+      sim_read (CPU_STATE (current_cpu), CPU2DATA(PARM2), buf, PARM3);
       SET_H_GR (ret_reg,
                sim_io_write (CPU_STATE (current_cpu),
                              PARM1, buf, PARM3));
index ffbdbd28d575da13e42c3beb411acca9784bcd5a..8bb8e9bb56362d9a07b668361a089ae5d9052573 100644 (file)
@@ -159,7 +159,7 @@ sim_create_inferior (SIM_DESC sd, struct bfd * abfd,
 }
 
 int
-sim_read (SIM_DESC sd, SIM_ADDR mem, unsigned char *buf, int length)
+sim_read (SIM_DESC sd, SIM_ADDR mem, void *buf, int length)
 {
   check_desc (sd);
 
@@ -172,7 +172,7 @@ sim_read (SIM_DESC sd, SIM_ADDR mem, unsigned char *buf, int length)
 }
 
 int
-sim_write (SIM_DESC sd, SIM_ADDR mem, const unsigned char *buf, int length)
+sim_write (SIM_DESC sd, SIM_ADDR mem, const void *buf, int length)
 {
   check_desc (sd);
 
index e46e817eed9457c9d006330a72aee2ba4ddad8e5..28421b3a8318189a58e381d94639c1b82c68a28d 100644 (file)
@@ -722,7 +722,7 @@ sim_open (SIM_OPEN_KIND kind, host_callback *cb,
                             (((loop >> 2) & RSVD_INSTRUCTION_ARG_MASK)
                              << RSVD_INSTRUCTION_ARG_SHIFT));
          H2T (insn);
-         sim_write (sd, vaddr, (unsigned char *)&insn, sizeof (insn));
+         sim_write (sd, vaddr, &insn, sizeof (insn));
        }
     }
 
@@ -770,13 +770,13 @@ sim_open (SIM_OPEN_KIND kind, host_callback *cb,
        if (pmon_monitor_base != 0)
          {
            address_word vaddr = (pmon_monitor_base + (loop * 4));
-           sim_write (sd, vaddr, (unsigned char *)&value, sizeof (value));
+           sim_write (sd, vaddr, &value, sizeof (value));
          }
 
        if (lsipmon_monitor_base != 0)
          {
            address_word vaddr = (lsipmon_monitor_base + (loop * 4));
-           sim_write (sd, vaddr, (unsigned char *)&value, sizeof (value));
+           sim_write (sd, vaddr, &value, sizeof (value));
          }
       }
 
@@ -791,13 +791,13 @@ sim_open (SIM_OPEN_KIND kind, host_callback *cb,
                             HALT_INSTRUCTION /* BREAK */ };
       H2T (halt[0]);
       H2T (halt[1]);
-      sim_write (sd, 0x80000000, (unsigned char *) halt, sizeof (halt));
-      sim_write (sd, 0x80000180, (unsigned char *) halt, sizeof (halt));
-      sim_write (sd, 0x80000200, (unsigned char *) halt, sizeof (halt));
+      sim_write (sd, 0x80000000, halt, sizeof (halt));
+      sim_write (sd, 0x80000180, halt, sizeof (halt));
+      sim_write (sd, 0x80000200, halt, sizeof (halt));
       /* XXX: Write here unconditionally? */
-      sim_write (sd, 0xBFC00200, (unsigned char *) halt, sizeof (halt));
-      sim_write (sd, 0xBFC00380, (unsigned char *) halt, sizeof (halt));
-      sim_write (sd, 0xBFC00400, (unsigned char *) halt, sizeof (halt));
+      sim_write (sd, 0xBFC00200, halt, sizeof (halt));
+      sim_write (sd, 0xBFC00380, halt, sizeof (halt));
+      sim_write (sd, 0xBFC00400, halt, sizeof (halt));
     }
   }
 
@@ -1066,7 +1066,7 @@ fetch_str (SIM_DESC sd,
   while (sim_read (sd, addr + nr, &null, 1) == 1 && null != 0)
     nr++;
   buf = NZALLOC (char, nr + 1);
-  sim_read (sd, addr, (unsigned char *)buf, nr);
+  sim_read (sd, addr, buf, nr);
   return buf;
 }
 
@@ -1211,7 +1211,7 @@ sim_monitor (SIM_DESC sd,
        int nr = A2;
        char *buf = zalloc (nr);
        V0 = sim_io_read (sd, fd, buf, nr);
-       sim_write (sd, A1, (unsigned char *)buf, nr);
+       sim_write (sd, A1, buf, nr);
        free (buf);
       }
       break;
@@ -1221,7 +1221,7 @@ sim_monitor (SIM_DESC sd,
        int fd = A0;
        int nr = A2;
        char *buf = zalloc (nr);
-       sim_read (sd, A1, (unsigned char *)buf, nr);
+       sim_read (sd, A1, buf, nr);
        V0 = sim_io_write (sd, fd, buf, nr);
        if (fd == 1)
            sim_io_flush_stdout (sd);
@@ -1368,9 +1368,9 @@ sim_monitor (SIM_DESC sd,
 
        value = mem_size;
        H2T (value);
-       sim_write (sd, A0 + 0, (unsigned char *)&value, 4);
-       sim_write (sd, A0 + 4, (unsigned char *)&zero, 4);
-       sim_write (sd, A0 + 8, (unsigned char *)&zero, 4);
+       sim_write (sd, A0 + 0, &value, 4);
+       sim_write (sd, A0 + 4, &zero, 4);
+       sim_write (sd, A0 + 8, &zero, 4);
        /* sim_io_eprintf (sd, "sim: get_mem_info() deprecated\n"); */
        break;
       }
index 3dcce19f6283d05065a48f46fab207b0bf6046e0..6ca6c2ce2c244443259b4ebcffa7d40a8794791d 100644 (file)
@@ -125,7 +125,7 @@ sim_load (SIM_DESC sd, const char *prog, bfd *abfd, int from_tty)
 
 
 int
-sim_read (SIM_DESC sd, SIM_ADDR mem, unsigned char *buf, int length)
+sim_read (SIM_DESC sd, SIM_ADDR mem, void *buf, int length)
 {
   int result = psim_read_memory(simulator, MAX_NR_PROCESSORS,
                                buf, mem, length);
@@ -136,7 +136,7 @@ sim_read (SIM_DESC sd, SIM_ADDR mem, unsigned char *buf, int length)
 
 
 int
-sim_write (SIM_DESC sd, SIM_ADDR mem, const unsigned char *buf, int length)
+sim_write (SIM_DESC sd, SIM_ADDR mem, const void *buf, int length)
 {
   int result = psim_write_memory(simulator, MAX_NR_PROCESSORS,
                                 buf, mem, length,
index 0156f791d4b91fff57c4697d865ba91ae7c95a3a..5932c0de97900afe5c6451be043f4ae9f9f1d461 100644 (file)
@@ -1192,15 +1192,15 @@ initialize_env (SIM_DESC sd, const char * const *argv, const char * const *env)
   cpu->sp = sp;
 
   /* First push the argc value.  */
-  sim_write (sd, sp, (void *)&argc, sizeof (unsigned_word));
+  sim_write (sd, sp, &argc, sizeof (unsigned_word));
   sp += sizeof (unsigned_word);
 
   /* Then the actual argv strings so we know where to point argv[].  */
   for (i = 0; i < argc; ++i)
     {
       unsigned len = strlen (argv[i]) + 1;
-      sim_write (sd, sp_flat, (void *)argv[i], len);
-      sim_write (sd, sp, (void *)&sp_flat, sizeof (address_word));
+      sim_write (sd, sp_flat, argv[i], len);
+      sim_write (sd, sp, &sp_flat, sizeof (address_word));
       sp_flat += len;
       sp += sizeof (address_word);
     }
@@ -1211,8 +1211,8 @@ initialize_env (SIM_DESC sd, const char * const *argv, const char * const *env)
   for (i = 0; i < envc; ++i)
     {
       unsigned len = strlen (env[i]) + 1;
-      sim_write (sd, sp_flat, (void *)env[i], len);
-      sim_write (sd, sp, (void *)&sp_flat, sizeof (address_word));
+      sim_write (sd, sp_flat, env[i], len);
+      sim_write (sd, sp, &sp_flat, sizeof (address_word));
       sp_flat += len;
       sp += sizeof (address_word);
     }
index a27cc56f3c80ce5bdedff2e5e773df63bd3c051b..8129c0924dc923114e0cb79d37480136ae4ffbb4 100644 (file)
@@ -205,7 +205,7 @@ sim_create_inferior (SIM_DESC sd, struct bfd *abfd,
 /* Read memory.  */
 
 int
-sim_read (SIM_DESC sd, SIM_ADDR mem, unsigned char *buf, int length)
+sim_read (SIM_DESC sd, SIM_ADDR mem, void *buf, int length)
 {
   check_desc (sd);
 
@@ -221,7 +221,7 @@ sim_read (SIM_DESC sd, SIM_ADDR mem, unsigned char *buf, int length)
 /* Write memory.  */
 
 int
-sim_write (SIM_DESC sd, SIM_ADDR mem, const unsigned char *buf, int length)
+sim_write (SIM_DESC sd, SIM_ADDR mem, const void *buf, int length)
 {
   check_desc (sd);
 
index ccc81c9756fb6107b5ea8a7f836a89890d3529d5..c116bdcf608ba2bdac9f453e2cfb3fa794aac671 100644 (file)
@@ -226,9 +226,10 @@ sim_create_inferior (SIM_DESC sd, struct bfd *abfd,
 }
 
 int
-sim_read (SIM_DESC sd, SIM_ADDR mem, unsigned char *buf, int length)
+sim_read (SIM_DESC sd, SIM_ADDR mem, void *buffer, int length)
 {
   int i;
+  unsigned char *data = buffer;
 
   check_desc (sd);
 
@@ -241,7 +242,7 @@ sim_read (SIM_DESC sd, SIM_ADDR mem, unsigned char *buf, int length)
     {
       bfd_vma addr = mem + i;
       int do_swap = addr_in_swap_list (addr);
-      buf[i] = mem_get_qi (addr ^ (do_swap ? 3 : 0));
+      data[i] = mem_get_qi (addr ^ (do_swap ? 3 : 0));
 
       if (execution_error_get_last_error () != SIM_ERR_NONE)
        return i;
@@ -251,9 +252,10 @@ sim_read (SIM_DESC sd, SIM_ADDR mem, unsigned char *buf, int length)
 }
 
 int
-sim_write (SIM_DESC sd, SIM_ADDR mem, const unsigned char *buf, int length)
+sim_write (SIM_DESC sd, SIM_ADDR mem, const void *buffer, int length)
 {
   int i;
+  const unsigned char *data = buffer;
 
   check_desc (sd);
 
@@ -263,7 +265,7 @@ sim_write (SIM_DESC sd, SIM_ADDR mem, const unsigned char *buf, int length)
     {
       bfd_vma addr = mem + i;
       int do_swap = addr_in_swap_list (addr);
-      mem_put_qi (addr ^ (do_swap ? 3 : 0), buf[i]);
+      mem_put_qi (addr ^ (do_swap ? 3 : 0), data[i]);
 
       if (execution_error_get_last_error () != SIM_ERR_NONE)
        return i;
index b6f29880d74994a3bb31d1b156195a925e90b686..6a33cce065aafd901147f24d0de42b7e70fc9b62 100644 (file)
@@ -1049,7 +1049,7 @@ trap (SIM_DESC sd, int i, int *regs, unsigned char *insn_ptr,
              {
                /* Include the termination byte.  */
                int i = strlen (prog_argv[regs[5]]) + 1;
-               regs[0] = sim_write (0, regs[6], (void *) prog_argv[regs[5]], i);
+               regs[0] = sim_write (0, regs[6], prog_argv[regs[5]], i);
              }
            else
              regs[0] = -1;
@@ -1874,29 +1874,31 @@ sim_resume (SIM_DESC sd, int step, int siggnal)
 }
 
 int
-sim_write (SIM_DESC sd, SIM_ADDR addr, const unsigned char *buffer, int size)
+sim_write (SIM_DESC sd, SIM_ADDR addr, const void *buffer, int size)
 {
   int i;
+  const unsigned char *data = buffer;
 
   init_pointers ();
 
   for (i = 0; i < size; i++)
     {
-      saved_state.asregs.memory[(MMASKB & (addr + i)) ^ endianb] = buffer[i];
+      saved_state.asregs.memory[(MMASKB & (addr + i)) ^ endianb] = data[i];
     }
   return size;
 }
 
 int
-sim_read (SIM_DESC sd, SIM_ADDR addr, unsigned char *buffer, int size)
+sim_read (SIM_DESC sd, SIM_ADDR addr, void *buffer, int size)
 {
   int i;
+  unsigned char *data = buffer;
 
   init_pointers ();
 
   for (i = 0; i < size; i++)
     {
-      buffer[i] = saved_state.asregs.memory[(MMASKB & (addr + i)) ^ endianb];
+      data[i] = saved_state.asregs.memory[(MMASKB & (addr + i)) ^ endianb];
     }
   return size;
 }
index f90a0f7573cfb837d940a0f198f9e4755b652452..573ece54ec71b214ba4c1535442e6d1e218758bf 100644 (file)
@@ -398,7 +398,7 @@ fetch_str (SIM_DESC sd, address_word addr)
     nr++;
 
   buf = NZALLOC (char, nr + 1);
-  sim_read (simulator, addr, (unsigned char *) buf, nr);
+  sim_read (simulator, addr, buf, nr);
 
   return buf;
 }
@@ -1692,7 +1692,7 @@ OP_10007E0 (void)
          {
            char *buf = zalloc (PARM3);
            RETVAL = sim_io_read (simulator, PARM1, buf, PARM3);
-           sim_write (simulator, PARM2, (unsigned char *) buf, PARM3);
+           sim_write (simulator, PARM2, buf, PARM3);
            free (buf);
            if ((int) RETVAL < 0)
              RETERR = sim_io_get_errno (simulator);
@@ -1702,7 +1702,7 @@ OP_10007E0 (void)
        case TARGET_NEWLIB_V850_SYS_write:
          {
            char *buf = zalloc (PARM3);
-           sim_read (simulator, PARM2, (unsigned char *) buf, PARM3);
+           sim_read (simulator, PARM2, buf, PARM3);
            if (PARM1 == 1)
              RETVAL = sim_io_write_stdout (simulator, buf, PARM3);
            else