summaryrefslogtreecommitdiffstats
path: root/commands/fs.c
diff options
context:
space:
mode:
Diffstat (limited to 'commands/fs.c')
-rw-r--r--commands/fs.c391
1 files changed, 0 insertions, 391 deletions
diff --git a/commands/fs.c b/commands/fs.c
deleted file mode 100644
index 2eca365016..0000000000
--- a/commands/fs.c
+++ /dev/null
@@ -1,391 +0,0 @@
-#include <common.h>
-#include <command.h>
-#include <fs.h>
-#include <errno.h>
-#include <malloc.h>
-#include <linux/ctype.h>
-#include <getopt.h>
-#include <linux/stat.h>
-#include <xfuncs.h>
-
-static void ls_one(const char *path, struct stat *s)
-{
- char modestr[11];
- unsigned long namelen = strlen(path);
-
- mkmodestr(s->st_mode, modestr);
- printf("%s %8d %*.*s\n",modestr, s->st_size, namelen, namelen, path);
-}
-
-int ls(const char *path, ulong flags)
-{
- DIR *dir;
- struct dirent *d;
- char tmp[PATH_MAX];
- struct stat s;
-
- if (flags & LS_SHOWARG)
- printf("%s:\n", path);
-
- if (stat(path, &s)) {
- perror("stat");
- return errno;
- }
-
- if (!(s.st_mode & S_IFDIR)) {
- ls_one(path, &s);
- return 0;
- }
-
- dir = opendir(path);
- if (!dir)
- return errno;
-
- while ((d = readdir(dir))) {
- sprintf(tmp, "%s/%s", path, d->d_name);
- if (stat(tmp, &s))
- goto out;
- ls_one(d->d_name, &s);
- }
-
- closedir(dir);
-
- if (!(flags & LS_RECURSIVE))
- return 0;
-
- dir = opendir(path);
- if (!dir) {
- errno = -ENOENT;
- return -ENOENT;
- }
-
- while ((d = readdir(dir))) {
- sprintf(tmp, "%s/%s", path, d->d_name);
- normalise_path(tmp);
- if (stat(tmp, &s))
- goto out;
- if (!strcmp(d->d_name, "."))
- continue;
- if (!strcmp(d->d_name, ".."))
- continue;
- if (s.st_mode & S_IFDIR)
- ls(tmp, flags);
- }
-out:
- closedir(dir);
-
- return 0;
-}
-
-static int do_ls (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
-{
- int ret, opt;
- ulong flags = 0;
-
- getopt_reset();
-
- while((opt = getopt(argc, argv, "R")) > 0) {
- switch(opt) {
- case 'R':
- flags |= LS_RECURSIVE | LS_SHOWARG;
- break;
- }
- }
-
- if (argc - optind > 1)
- flags |= LS_SHOWARG;
-
- if (optind == argc) {
- ret = ls(getcwd(), flags);
- return ret ? 1 : 0;
- }
-
- while (optind < argc) {
- ret = ls(argv[optind], flags);
- if (ret) {
- perror("ls");
- return 1;
- }
- optind++;
- }
-
- return 0;
-}
-
-static __maybe_unused char cmd_ls_help[] =
-"Usage: ls [OPTION]... [FILE]...\n"
-"List information about the FILEs (the current directory by default).\n"
-" -R list subdirectories recursively\n";
-
-U_BOOT_CMD_START(ls)
- .maxargs = CONFIG_MAXARGS,
- .cmd = do_ls,
- .usage = "list a file or directory",
- U_BOOT_CMD_HELP(cmd_ls_help)
-U_BOOT_CMD_END
-
-static int do_cd (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
-{
- int ret;
-
- if (argc == 1)
- ret = chdir("/");
- else
- ret = chdir(argv[1]);
-
- if (ret) {
- perror("chdir");
- return 1;
- }
-
- return 0;
-}
-
-static __maybe_unused char cmd_cd_help[] =
-"Usage: cd [directory]\n"
-"change to directory. If called without argument, change to /\n";
-
-U_BOOT_CMD_START(cd)
- .maxargs = 2,
- .cmd = do_cd,
- .usage = "change working directory",
- U_BOOT_CMD_HELP(cmd_cd_help)
-U_BOOT_CMD_END
-
-static int do_pwd (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
-{
- printf("%s\n", getcwd());
- return 0;
-}
-
-U_BOOT_CMD_START(pwd)
- .maxargs = 2,
- .cmd = do_pwd,
- .usage = "print working directory",
-U_BOOT_CMD_END
-
-static int do_mkdir (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
-{
- int i = 1;
-
- if (argc < 2) {
- u_boot_cmd_usage(cmdtp);
- return 1;
- }
-
- while (i < argc) {
- if (mkdir(argv[i])) {
- printf("could not create %s: %s\n", argv[i], errno_str());
- return 1;
- }
- i++;
- }
-
- return 0;
-}
-
-static __maybe_unused char cmd_mkdir_help[] =
-"Usage: mkdir [directories]\n"
-"Create new directories\n";
-
-U_BOOT_CMD_START(mkdir)
- .maxargs = CONFIG_MAXARGS,
- .cmd = do_mkdir,
- .usage = "make directories",
- U_BOOT_CMD_HELP(cmd_mkdir_help)
-U_BOOT_CMD_END
-
-static int do_rm (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
-{
- int i = 1;
-
- if (argc < 2) {
- u_boot_cmd_usage(cmdtp);
- return 1;
- }
-
- while (i < argc) {
- if (unlink(argv[i])) {
- printf("could not remove %s: %s\n", argv[i], errno_str());
- return 1;
- }
- i++;
- }
-
- return 0;
-}
-
-static __maybe_unused char cmd_rm_help[] =
-"Usage: rm [FILES]\n"
-"Remove files\n";
-
-U_BOOT_CMD_START(rm)
- .maxargs = CONFIG_MAXARGS,
- .cmd = do_rm,
- .usage = "remove files",
- U_BOOT_CMD_HELP(cmd_rm_help)
-U_BOOT_CMD_END
-
-static int do_rmdir (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
-{
- int i = 1;
-
- if (argc < 2) {
- u_boot_cmd_usage(cmdtp);
- return 1;
- }
-
- while (i < argc) {
- if (rmdir(argv[i])) {
- printf("could not remove %s: %s\n", argv[i], errno_str());
- return 1;
- }
- i++;
- }
-
- return 0;
-}
-
-static __maybe_unused char cmd_rmdir_help[] =
-"Usage: rmdir [directories]\n"
-"Remove directories. The directories have to be empty.\n";
-
-U_BOOT_CMD_START(rmdir)
- .maxargs = CONFIG_MAXARGS,
- .cmd = do_rmdir,
- .usage = "remove directorie(s)",
- U_BOOT_CMD_HELP(cmd_rmdir_help)
-U_BOOT_CMD_END
-
-static int do_mount (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
-{
- int ret = 0;
- struct mtab_entry *entry = NULL;
-
- if (argc == 1) {
- do {
- entry = mtab_next_entry(entry);
- if (entry) {
- printf("%s on %s type %s\n",
- entry->parent_device ? entry->parent_device->id : "none",
- entry->path,
- entry->dev->name);
- }
- } while (entry);
- return 0;
- }
-
- if (argc != 4) {
- u_boot_cmd_usage(cmdtp);
- return 1;
- }
-
- if ((ret = mount(argv[1], argv[2], argv[3]))) {
- perror("mount");
- return 1;
- }
- return 0;
-}
-
-static __maybe_unused char cmd_mount_help[] =
-"Usage: mount: list mounted filesystems\n"
-"or: mount <device> <fstype> <mountpoint>\n"
-"\n"
-"Mount a filesystem of a given type to a mountpoint.\n"
-"<device> can be one of /dev/* or some arbitrary string if no\n"
-"device is needed for this driver (for example ramfs).\n"
-"<fstype> is the filesystem driver to use. Try the 'devinfo' command\n"
-"for a list of available drivers.\n"
-"<mountpoint> must be an empty directory descending directly from the\n"
-"root directory.\n";
-
-U_BOOT_CMD_START(mount)
- .maxargs = 4,
- .cmd = do_mount,
- .usage = "mount a filesystem to a device",
- U_BOOT_CMD_HELP(cmd_mount_help)
-U_BOOT_CMD_END
-
-static int do_umount (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
-{
- int ret = 0;
-
- if (argc != 2) {
- u_boot_cmd_usage(cmdtp);
- return 1;
- }
-
- if ((ret = umount(argv[1]))) {
- perror("umount");
- return 1;
- }
- return 0;
-}
-
-static __maybe_unused char cmd_umount_help[] =
-"Usage: umount <mountpoint>\n"
-"umount a filesystem mounted on a specific mountpoint\n";
-
-U_BOOT_CMD_START(umount)
- .maxargs = 2,
- .cmd = do_umount,
- .usage = "umount a filesystem",
- U_BOOT_CMD_HELP(cmd_umount_help)
-U_BOOT_CMD_END
-
-static int do_cat(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
-{
- int ret;
- int fd, i;
- char *buf;
- int err = 0;
- int args = 1;
-
- if (argc < 2) {
- perror("cat");
- return 1;
- }
-
- buf = xmalloc(1024);
-
- while (args < argc) {
- fd = open(argv[args], 0);
- if (fd < 0) {
- printf("could not open %s: %s\n", argv[args], errno_str());
- goto out;
- }
-
- while((ret = read(fd, buf, 1024)) > 0) {
- for(i = 0; i < ret; i++) {
- if (isprint(buf[i]) || buf[i] == '\n' || buf[i] == '\t')
- putc(buf[i]);
- else
- putc('.');
- }
- if(ctrlc()) {
- err = 1;
- close(fd);
- goto out;
- }
- }
- close(fd);
- args++;
- }
-
-out:
- free(buf);
-
- return err;
-}
-
-static __maybe_unused char cmd_cat_help[] =
-"Usage: cat [FILES]\n"
-"Concatenate files on stdout. Currently only printable characters\n"
-"and \\n and \\t are printed, but this should be optional\n";
-
-U_BOOT_CMD_START(cat)
- .maxargs = CONFIG_MAXARGS,
- .cmd = do_cat,
- .usage = "concatenate file(s)",
- U_BOOT_CMD_HELP(cmd_cat_help)
-U_BOOT_CMD_END