[PATCH] commands: fix memset command
Sascha Hauer
s.hauer at pengutronix.de
Tue Jul 22 13:16:06 PDT 2014
On Tue, Jul 22, 2014 at 11:58:42AM +0200, Holger Schurig wrote:
> Before:
>
> barebox:/ memset -d /dev/fb0 -l 0 10 0xdeadbeef
> write: No space left on device
> barebox:/ md -s /dev/fb0
> 00000000: 0a0a0a0a 0a0a0a0a 0a0a0a0a 0a0a0a0a ................
> ...
>
> After:
>
> barebox:/ memset -d /dev/fb0 -l 0 10 0xdeadbeef
> barebox:/ md -s /dev/fb0
> 00000000: deadbeef deadbeef deadbeef deadbeef ................
> 00000010: deadbeef deadbeef deadbeef deadbeef ................
> 00000020: deadbeef deadbeef 00ffffff 00ffffff ................
> 00000030: 00ffffff 00ffffff 00ffffff 00ffffff ...............
Nice.
The documentation still has:
Fills the first COUNT bytes at offset ADDR with byte DATA
Should probably be something like:
Fills the first COUNT values at offset ADDR with DATA
Sascha
>
> Signed-off-by: Holger Schurig <holgerschurig at gmail.com>
> ---
> commands/memset.c | 14 ++------------
> 1 file changed, 2 insertions(+), 12 deletions(-)
>
> diff --git a/commands/memset.c b/commands/memset.c
> index f869306..4afe404 100644
> --- a/commands/memset.c
> +++ b/commands/memset.c
> @@ -39,7 +39,6 @@ static int do_memset(int argc, char *argv[])
> {
> loff_t s, c, n;
> int fd;
> - char *buf;
> int mode = O_RWSIZE_1;
> int ret = 1;
> char *file = "/dev/mem";
> @@ -59,28 +58,19 @@ static int do_memset(int argc, char *argv[])
> if (fd < 0)
> return 1;
>
> - buf = xmalloc(RW_BUF_SIZE);
> - memset(buf, c, RW_BUF_SIZE);
>
> - while (n > 0) {
> - int now;
> -
> - now = min((loff_t)RW_BUF_SIZE, n);
> -
> - ret = write(fd, buf, now);
> + while (c--) {
> + ret = write(fd, &n, mode >> O_RWSIZE_SHIFT);
> if (ret < 0) {
> perror("write");
> ret = 1;
> goto out;
> }
> -
> - n -= now;
> }
>
> ret = 0;
> out:
> close(fd);
> - free(buf);
>
> return ret;
> }
> --
> 1.7.10.4
>
>
> _______________________________________________
> barebox mailing list
> barebox at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/barebox
>
--
Pengutronix e.K. | |
Industrial Linux Solutions | http://www.pengutronix.de/ |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
More information about the barebox
mailing list