diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2009-07-30 16:09:28 +0200 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2009-07-30 16:09:28 +0200 |
commit | d3e15e7eed461e5ffb7b9f7d90c992e577c3c441 (patch) | |
tree | 9ed577f800d0095be173ef0e79d4579a1c372bf0 /commands/mem.c | |
parent | 9e3f6a8bbc47af8738e0fb7bf0799a1c2478c51d (diff) | |
download | barebox-d3e15e7eed461e5ffb7b9f7d90c992e577c3c441.tar.gz barebox-d3e15e7eed461e5ffb7b9f7d90c992e577c3c441.tar.xz |
implement /dev/zero
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'commands/mem.c')
-rw-r--r-- | commands/mem.c | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/commands/mem.c b/commands/mem.c index ee09ed0303..2f91ff3cea 100644 --- a/commands/mem.c +++ b/commands/mem.c @@ -576,3 +576,31 @@ static int mem_init(void) device_initcall(mem_init); +static ssize_t zero_read(struct cdev *cdev, void *buf, size_t count, ulong offset, ulong flags) +{ + memset(buf, 0, count); + return count; +} + +static struct file_operations zeroops = { + .read = zero_read, + .lseek = dev_lseek_default, +}; + +static int zero_init(void) +{ + struct cdev *cdev; + + cdev = xzalloc(sizeof (*cdev)); + + cdev->name = "zero"; + cdev->size = ~0; + cdev->ops = &zeroops; + + devfs_create(cdev); + + return 0; +} + +device_initcall(zero_init); + |