From 5b94c3808140206d3b5204a3780f294d590cc458 Mon Sep 17 00:00:00 2001 From: Mike Frysinger Date: Wed, 26 Oct 2022 21:53:30 +0545 Subject: [PATCH] sim: common: change sim_read & sim_write to use void* buffers 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. --- include/sim/sim.h | 4 ++-- sim/arm/wrapper.c | 10 ++++++---- sim/avr/interp.c | 14 ++++++++------ sim/bfin/dv-bfin_dma.c | 6 +++--- sim/bfin/dv-bfin_mmu.c | 4 ++-- sim/bfin/interp.c | 28 ++++++++++++++-------------- sim/common/sim-hrw.c | 8 ++++---- sim/common/sim-utils.h | 2 +- sim/cris/sim-if.c | 2 +- sim/d10v/interp.c | 4 ++-- sim/erc32/interf.c | 10 ++++++---- sim/h8300/compile.c | 7 ++++--- sim/iq2000/iq2000.c | 6 ++---- sim/m32c/gdb-if.c | 4 ++-- sim/mips/interp.c | 30 +++++++++++++++--------------- sim/ppc/sim_calls.c | 4 ++-- sim/riscv/sim-main.c | 10 +++++----- sim/rl78/gdb-if.c | 4 ++-- sim/rx/gdb-if.c | 10 ++++++---- sim/sh/interp.c | 12 +++++++----- sim/v850/simops.c | 6 +++--- 21 files changed, 97 insertions(+), 88 deletions(-) diff --git a/include/sim/sim.h b/include/sim/sim.h index 8611cf01d57..ae8f19499ee 100644 --- a/include/sim/sim.h +++ b/include/sim/sim.h @@ -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 diff --git a/sim/arm/wrapper.c b/sim/arm/wrapper.c index c97bae89dad..38a1f27a3b0 100644 --- a/sim/arm/wrapper.c +++ b/sim/arm/wrapper.c @@ -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; } diff --git a/sim/avr/interp.c b/sim/avr/interp.c index 8efdffab8af..1b147c482d7 100644 --- a/sim/avr/interp.c +++ b/sim/avr/interp.c @@ -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--; } diff --git a/sim/bfin/dv-bfin_dma.c b/sim/bfin/dv-bfin_dma.c index b93a96090c3..52fcd615354 100644 --- a/sim/bfin/dv-bfin_dma.c +++ b/sim/bfin/dv-bfin_dma.c @@ -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); diff --git a/sim/bfin/dv-bfin_mmu.c b/sim/bfin/dv-bfin_mmu.c index b2ca30df02f..82320f4ea00 100644 --- a/sim/bfin/dv-bfin_mmu.c +++ b/sim/bfin/dv-bfin_mmu.c @@ -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: diff --git a/sim/bfin/interp.c b/sim/bfin/interp.c index 58bec8b9b30..f63690cfac4 100644 --- a/sim/bfin/interp.c +++ b/sim/bfin/interp.c @@ -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; diff --git a/sim/common/sim-hrw.c b/sim/common/sim-hrw.c index 01a4f213930..2596019e6e5 100644 --- a/sim/common/sim-hrw.c +++ b/sim/common/sim-hrw.c @@ -27,17 +27,17 @@ along with this program. If not, see . */ 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); } diff --git a/sim/common/sim-utils.h b/sim/common/sim-utils.h index c111854a94f..cd8aca9f401 100644 --- a/sim/common/sim-utils.h +++ b/sim/common/sim-utils.h @@ -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, diff --git a/sim/cris/sim-if.c b/sim/cris/sim-if.c index 75176d0c020..bedc0d08fc0 100644 --- a/sim/cris/sim-if.c +++ b/sim/cris/sim-if.c @@ -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); } diff --git a/sim/d10v/interp.c b/sim/d10v/interp.c index fde96aa70e3..c82bb4ce8c9 100644 --- a/sim/d10v/interp.c +++ b/sim/d10v/interp.c @@ -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); diff --git a/sim/erc32/interf.c b/sim/erc32/interf.c index aa3ffdc7ada..fc4336c5f6f 100644 --- a/sim/erc32/interf.c +++ b/sim/erc32/interf.c @@ -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; } diff --git a/sim/h8300/compile.c b/sim/h8300/compile.c index 5f64b4752f0..f49e83d6b19 100644 --- a/sim/h8300/compile.c +++ b/sim/h8300/compile.c @@ -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) diff --git a/sim/iq2000/iq2000.c b/sim/iq2000/iq2000.c index 2c01434c308..9b1f4bd0179 100644 --- a/sim/iq2000/iq2000.c +++ b/sim/iq2000/iq2000.c @@ -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)); diff --git a/sim/m32c/gdb-if.c b/sim/m32c/gdb-if.c index ffbdbd28d57..8bb8e9bb563 100644 --- a/sim/m32c/gdb-if.c +++ b/sim/m32c/gdb-if.c @@ -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); diff --git a/sim/mips/interp.c b/sim/mips/interp.c index e46e817eed9..28421b3a831 100644 --- a/sim/mips/interp.c +++ b/sim/mips/interp.c @@ -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; } diff --git a/sim/ppc/sim_calls.c b/sim/ppc/sim_calls.c index 3dcce19f628..6ca6c2ce2c2 100644 --- a/sim/ppc/sim_calls.c +++ b/sim/ppc/sim_calls.c @@ -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, diff --git a/sim/riscv/sim-main.c b/sim/riscv/sim-main.c index 0156f791d4b..5932c0de979 100644 --- a/sim/riscv/sim-main.c +++ b/sim/riscv/sim-main.c @@ -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); } diff --git a/sim/rl78/gdb-if.c b/sim/rl78/gdb-if.c index a27cc56f3c8..8129c0924dc 100644 --- a/sim/rl78/gdb-if.c +++ b/sim/rl78/gdb-if.c @@ -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); diff --git a/sim/rx/gdb-if.c b/sim/rx/gdb-if.c index ccc81c9756f..c116bdcf608 100644 --- a/sim/rx/gdb-if.c +++ b/sim/rx/gdb-if.c @@ -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; diff --git a/sim/sh/interp.c b/sim/sh/interp.c index b6f29880d74..6a33cce065a 100644 --- a/sim/sh/interp.c +++ b/sim/sh/interp.c @@ -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; } diff --git a/sim/v850/simops.c b/sim/v850/simops.c index f90a0f7573c..573ece54ec7 100644 --- a/sim/v850/simops.c +++ b/sim/v850/simops.c @@ -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 -- 2.30.2