summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorSuriyan Ramasami <suriyan.r@gmail.com>2014-11-17 22:39:37 (GMT)
committerTom Rini <trini@ti.com>2014-11-23 11:49:04 (GMT)
commit96b1046d1c68352677aa888cc110951a68daf155 (patch)
treec5dc5804e2aa8bd4876a3057e5eb0bdeccaf9a43 /arch
parent9f12cd0e062614e19734b2ab37842d387457c5e5 (diff)
downloadu-boot-96b1046d1c68352677aa888cc110951a68daf155.tar.xz
sandbox: Prepare API change for files greater than 2GB
Change the internal sandbox functions to use loff_t for file offsets. Signed-off-by: Suriyan Ramasami <suriyan.r@gmail.com> Acked-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'arch')
-rw-r--r--arch/sandbox/cpu/os.c13
-rw-r--r--arch/sandbox/cpu/state.c8
2 files changed, 11 insertions, 10 deletions
diff --git a/arch/sandbox/cpu/os.c b/arch/sandbox/cpu/os.c
index 1c4aa3f..31c9344 100644
--- a/arch/sandbox/cpu/os.c
+++ b/arch/sandbox/cpu/os.c
@@ -385,7 +385,7 @@ const char *os_dirent_get_typename(enum os_dirent_t type)
return os_dirent_typename[OS_FILET_UNKNOWN];
}
-ssize_t os_get_filesize(const char *fname)
+int os_get_filesize(const char *fname, loff_t *size)
{
struct stat buf;
int ret;
@@ -393,7 +393,8 @@ ssize_t os_get_filesize(const char *fname)
ret = stat(fname, &buf);
if (ret)
return ret;
- return buf.st_size;
+ *size = buf.st_size;
+ return 0;
}
void os_putc(int ch)
@@ -427,11 +428,11 @@ int os_read_ram_buf(const char *fname)
{
struct sandbox_state *state = state_get_current();
int fd, ret;
- int size;
+ loff_t size;
- size = os_get_filesize(fname);
- if (size < 0)
- return -ENOENT;
+ ret = os_get_filesize(fname, &size);
+ if (ret < 0)
+ return ret;
if (size != state->ram_size)
return -ENOSPC;
fd = open(fname, O_RDONLY);
diff --git a/arch/sandbox/cpu/state.c b/arch/sandbox/cpu/state.c
index 59adad6..ba73b7e 100644
--- a/arch/sandbox/cpu/state.c
+++ b/arch/sandbox/cpu/state.c
@@ -49,14 +49,14 @@ static int state_ensure_space(int extra_size)
static int state_read_file(struct sandbox_state *state, const char *fname)
{
- int size;
+ loff_t size;
int ret;
int fd;
- size = os_get_filesize(fname);
- if (size < 0) {
+ ret = os_get_filesize(fname, &size);
+ if (ret < 0) {
printf("Cannot find sandbox state file '%s'\n", fname);
- return -ENOENT;
+ return ret;
}
state->state_fdt = os_malloc(size);
if (!state->state_fdt) {