| /* |
| * Mount an MTD device as a character device. |
| */ |
| |
| #include <errno.h> |
| #include <fcntl.h> |
| #include <sys/mount.h> |
| #include <sys/stat.h> |
| #include <stdio.h> |
| #include <stdlib.h> |
| #include <string.h> |
| #include <unistd.h> |
| #include <inttypes.h> |
| |
| #include "kinit.h" |
| #include "do_mounts.h" |
| |
| int mount_mtd_root(int argc, char *argv[], const char *root_dev_name, |
| const char *type, unsigned long flags) |
| { |
| const char *data = get_arg(argc, argv, "rootflags="); |
| |
| if (!type) |
| type = "jffs2"; |
| |
| DEBUG(("Trying to mount MTD %s as root (%s filesystem)\n", |
| root_dev_name, type)); |
| |
| if (mount(root_dev_name, "/root", type, flags, data)) { |
| int err = errno; |
| fprintf(stderr, |
| "%s: Unable to mount MTD %s (%s filesystem) " |
| "as root: %s\n", |
| progname, root_dev_name, type, strerror(err)); |
| return -err; |
| } else { |
| fprintf(stderr, "%s: Mounted root (%s filesystem)%s.\n", |
| progname, type, (flags & MS_RDONLY) ? " readonly" : ""); |
| return 0; |
| } |
| |
| } |