blob: 7630920488b7a6c1e0894511edeb0e44c03f8047 [file] [log] [blame]
/*
* 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;
}
}