aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2022-11-12 01:15:32 +0700
committerMike Frysinger <vapier@gentoo.org>2022-12-22 19:29:24 -0500
commit63fd5b5ddad9c715531168d5863853017a1f02d3 (patch)
tree0ede0e8d44166303d4b451dfc30e096e82e5d505 /include
parent20fea6638f1785b241c39454dcb707234a675524 (diff)
downloadfsf-binutils-gdb-63fd5b5ddad9c715531168d5863853017a1f02d3.zip
fsf-binutils-gdb-63fd5b5ddad9c715531168d5863853017a1f02d3.tar.gz
fsf-binutils-gdb-63fd5b5ddad9c715531168d5863853017a1f02d3.tar.bz2
sim: switch sim_{read,write} APIs to 64-bit all the time [PR sim/7504]
We've been using SIM_ADDR which has always been 32-bit. This means the upper 32-bit address range in 64-bit sims is inaccessible. Use 64-bit addresses all the time since we want the APIs to be stable regardless of the active arch backend (which can be 32 or 64-bit). The length is also 64-bit because it's completely feasible to have a program that is larger than 4 GiB in size/image/runtime. Forcing the caller to manually chunk those accesses up into 4 GiB at a time doesn't seem useful to anyone. Bug: https://sourceware.org/PR7504
Diffstat (limited to 'include')
-rw-r--r--include/sim/sim.h6
1 files changed, 4 insertions, 2 deletions
diff --git a/include/sim/sim.h b/include/sim/sim.h
index 20a667c..468a63b 100644
--- a/include/sim/sim.h
+++ b/include/sim/sim.h
@@ -20,6 +20,8 @@
#ifndef SIM_SIM_H
#define SIM_SIM_H 1
+#include <stdint.h>
+
#ifdef __cplusplus
extern "C" {
#endif
@@ -163,14 +165,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, void *buf, int length);
+uint64_t sim_read (SIM_DESC sd, uint64_t mem, void *buf, uint64_t 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 void *buf, int length);
+uint64_t sim_write (SIM_DESC sd, uint64_t mem, const void *buf, uint64_t length);
/* Fetch register REGNO storing its raw (target endian) value in the