From 4e7505eb8d06e71eee699e91cd974ba8a1a5717f Mon Sep 17 00:00:00 2001 From: Sascha Hauer Date: Thu, 5 Jul 2007 18:01:38 +0200 Subject: [PATCH] svn_rev_269 --- common/cmd_fs.c | 131 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 131 insertions(+) create mode 100644 common/cmd_fs.c diff --git a/common/cmd_fs.c b/common/cmd_fs.c new file mode 100644 index 000000000..17a52e641 --- /dev/null +++ b/common/cmd_fs.c @@ -0,0 +1,131 @@ +#include +#include +#include +#include +#include +#include +#include + +int do_ls (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) +{ + int ret; + + ret = ls(argv[1]); + if (ret) { + perror("ls"); + return 1; + } + + return 0; +} + +U_BOOT_CMD( + ls, 2, 0, do_ls, + "ls - list a file or directory\n", + " list files on path" +); + +int do_mkdir (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) +{ + int ret; + + ret = mkdir(argv[1]); + if (ret) { + perror("mkdir"); + return 1; + } + + return 0; +} + +U_BOOT_CMD( + mkdir, 2, 0, do_mkdir, + "mkdir - create a new directory\n", + "" +); + +static int do_mount (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) +{ + struct device_d *dev; + int ret = 0; + + if (argc != 4) { + printf ("Usage:\n%s\n", cmdtp->usage); + return 1; + } + + dev = get_device_by_id(argv[1]); + + if ((ret = mount(dev, argv[2], argv[3]))) { + perror("mount"); + return 1; + } + return 0; +} + +U_BOOT_CMD( + mount, 4, 0, do_mount, + "mount - mount a filesystem to a device\n", + " add a filesystem of type 'type' on the given device" +); + +static int do_umount (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) +{ + int ret = 0; + + if (argc != 2) { + printf ("Usage:\n%s\n", cmdtp->usage); + return 1; + } + + if ((ret = umount(argv[1]))) { + perror("umount"); + return 1; + } + return 0; + +} + +U_BOOT_CMD( + umount, 2, 0, do_umount, + "umount - umount a filesystem\n", + " add a filesystem of type 'type' on the given device" +); + +/* --------- Testing --------- */ + +static int do_cat ( cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) +{ + int ret; + int fd, i; + char *buf = malloc(1024); + + fd = open(argv[1], 0); + if (fd < 0) { + perror("open"); + return 1; + } + + while((ret = read(fd, buf, 1024)) > 0) { + for(i = 0; i < ret; i++) { + if (isprint(buf[i])) + putc(buf[i]); + else + putc('.'); + } + if(ctrlc()) + return 1; + } + + close(fd); + + return 0; +} + +U_BOOT_CMD( + cat, 2, 0, do_cat, + "cat - bla bla\n", + " list files on device" +); +/* --------- /Testing --------- */ +