diff options
author | Alexander Shiyan <shc_work@mail.ru> | 2012-06-09 11:34:25 +0400 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2012-06-30 12:46:01 +0200 |
commit | 0e4fdcc81b8f47b613b8d3d61005bc920a2ebcad (patch) | |
tree | 49626c7bd3704bdc16d7ed942bb5c4c322f1a80d /commands/stddev.c | |
parent | a6e358b2f5b219fda18a7bc9348cb969043c19d5 (diff) | |
download | barebox-0e4fdcc81b8f47b613b8d3d61005bc920a2ebcad.tar.gz barebox-0e4fdcc81b8f47b613b8d3d61005bc920a2ebcad.tar.xz |
Move /dev/zero to separate unit
This patch allows to present "/dev/zero" always in system and not
depending of mem-command. Standard files allow to test other memory
devices, not only "mem", such as NOR, NAND, MCI-devices e.t.c.
Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'commands/stddev.c')
-rw-r--r-- | commands/stddev.c | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/commands/stddev.c b/commands/stddev.c new file mode 100644 index 0000000000..18fea94074 --- /dev/null +++ b/commands/stddev.c @@ -0,0 +1,51 @@ +/* + * Copyright (c) 2011 Sascha Hauer <s.hauer@pengutronix.de>, Pengutronix + * + * See file CREDITS for list of people who contributed to this + * project. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * MA 02111-1307 USA + */ + +#include <common.h> +#include <init.h> + +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); |