summaryrefslogtreecommitdiffstats
path: root/commands/mem.c
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2008-08-01 08:59:27 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2008-08-01 08:59:27 +0200
commitf295acb556da2b7a5e3b270ea8d34ea058fe7dc9 (patch)
treea8e939e1133401ddd493f4f1fb0dfcd3257abd23 /commands/mem.c
parentec1b86784d4c08f8f0897161e142745080625698 (diff)
downloadbarebox-f295acb556da2b7a5e3b270ea8d34ea058fe7dc9.tar.gz
barebox-f295acb556da2b7a5e3b270ea8d34ea058fe7dc9.tar.xz
lseek: return -1 for errors and check for that return value
We cannot check for < 0 in lseek, otherwise we get problems with files > 0x7fffffff Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'commands/mem.c')
-rw-r--r--commands/mem.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/commands/mem.c b/commands/mem.c
index f7b9e4bb60..dfafda3c95 100644
--- a/commands/mem.c
+++ b/commands/mem.c
@@ -110,7 +110,7 @@ int memory_display(char *addr, ulong offs, ulong nbytes, int size)
return 0;
}
-int open_and_lseek(const char *filename, int mode, ulong pos)
+int open_and_lseek(const char *filename, int mode, off_t pos)
{
int fd, ret;
@@ -122,9 +122,9 @@ int open_and_lseek(const char *filename, int mode, ulong pos)
if (!pos)
return fd;
-
+printf("lseek to 0x%08x\n", pos);
ret = lseek(fd, pos, SEEK_SET);
- if (ret < 0) {
+ if (ret == -1) {
perror("lseek");
close(fd);
return ret;
@@ -532,7 +532,7 @@ static struct driver_d mem_drv = {
.close = dev_close_default,
.read = mem_read,
.write = mem_write,
- .lseek = dev_lseek_default,
+ .lseek = dev_lseek_default,
};
static struct driver_d ram_drv = {
@@ -542,7 +542,7 @@ static struct driver_d ram_drv = {
.close = dev_close_default,
.read = mem_read,
.write = mem_write,
- .lseek = dev_lseek_default,
+ .lseek = dev_lseek_default,
.type = DEVICE_TYPE_DRAM,
};