summaryrefslogtreecommitdiffstats
path: root/commands/mem.c
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2008-06-06 09:25:13 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2008-06-06 09:30:48 +0200
commitee6d36a5405305f3bbdb0457948c219731b3d9cc (patch)
tree0a328bd96f2cf2f190372b654515e509c694930a /commands/mem.c
parent3f73e61600f8fce0b6fa02e9a82124c1c89937c7 (diff)
downloadbarebox-ee6d36a5405305f3bbdb0457948c219731b3d9cc.tar.gz
barebox-ee6d36a5405305f3bbdb0457948c219731b3d9cc.tar.xz
- introduce ioctl call
- pass open/close/lseek through to drivers
Diffstat (limited to 'commands/mem.c')
-rw-r--r--commands/mem.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/commands/mem.c b/commands/mem.c
index be71ee4cec..f7b9e4bb60 100644
--- a/commands/mem.c
+++ b/commands/mem.c
@@ -120,6 +120,9 @@ int open_and_lseek(const char *filename, int mode, ulong pos)
return fd;
}
+ if (!pos)
+ return fd;
+
ret = lseek(fd, pos, SEEK_SET);
if (ret < 0) {
perror("lseek");
@@ -525,22 +528,31 @@ static struct device_d mem_dev = {
static struct driver_d mem_drv = {
.name = "mem",
.probe = dummy_probe,
+ .open = dev_open_default,
+ .close = dev_close_default,
.read = mem_read,
.write = mem_write,
+ .lseek = dev_lseek_default,
};
static struct driver_d ram_drv = {
.name = "ram",
.probe = dummy_probe,
+ .open = dev_open_default,
+ .close = dev_close_default,
.read = mem_read,
.write = mem_write,
+ .lseek = dev_lseek_default,
.type = DEVICE_TYPE_DRAM,
};
static struct driver_d rom_drv = {
.name = "rom",
.probe = dummy_probe,
+ .open = dev_open_default,
+ .close = dev_close_default,
.read = mem_read,
+ .lseek = dev_lseek_default,
};
static int mem_init(void)