ubifs: Add generic fs support
Add generic fs support, so that commands like ls, load and test -e can be used on ubifs. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Reviewed-by: Heiko Schocher <hs@denx.de>
This commit is contained in:
parent
29cc5bcadf
commit
251cee0db2
27
disk/part.c
27
disk/part.c
@ -10,6 +10,7 @@
|
||||
#include <ide.h>
|
||||
#include <malloc.h>
|
||||
#include <part.h>
|
||||
#include <ubifs_uboot.h>
|
||||
|
||||
#undef PART_DEBUG
|
||||
|
||||
@ -511,6 +512,10 @@ int get_device_and_partition(const char *ifname, const char *dev_part_str,
|
||||
int part;
|
||||
disk_partition_t tmpinfo;
|
||||
|
||||
#if defined CONFIG_SANDBOX && defined CONFIG_CMD_UBIFS
|
||||
#error Only one of CONFIG_SANDBOX and CONFIG_CMD_UBIFS may be selected
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_SANDBOX
|
||||
/*
|
||||
* Special-case a pseudo block device "hostfs", to allow access to the
|
||||
@ -532,6 +537,28 @@ int get_device_and_partition(const char *ifname, const char *dev_part_str,
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_CMD_UBIFS
|
||||
/*
|
||||
* Special-case ubi, ubi goes through a mtd, rathen then through
|
||||
* a regular block device.
|
||||
*/
|
||||
if (0 == strcmp(ifname, "ubi")) {
|
||||
if (!ubifs_is_mounted()) {
|
||||
printf("UBIFS not mounted, use ubifsmount to mount volume first!\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
*dev_desc = NULL;
|
||||
memset(info, 0, sizeof(*info));
|
||||
strcpy((char *)info->type, BOOT_PART_TYPE);
|
||||
strcpy((char *)info->name, "UBI");
|
||||
#ifdef CONFIG_PARTITION_UUIDS
|
||||
info->uuid[0] = 0;
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
/* If no dev_part_str, use bootdevice environment variable */
|
||||
if (!dev_part_str || !strlen(dev_part_str) ||
|
||||
!strcmp(dev_part_str, "-"))
|
||||
|
16
fs/fs.c
16
fs/fs.c
@ -23,6 +23,7 @@
|
||||
#include <fat.h>
|
||||
#include <fs.h>
|
||||
#include <sandboxfs.h>
|
||||
#include <ubifs_uboot.h>
|
||||
#include <asm/io.h>
|
||||
#include <div64.h>
|
||||
#include <linux/math64.h>
|
||||
@ -156,6 +157,21 @@ static struct fstype_info fstypes[] = {
|
||||
.write = fs_write_sandbox,
|
||||
.uuid = fs_uuid_unsupported,
|
||||
},
|
||||
#endif
|
||||
#ifdef CONFIG_CMD_UBIFS
|
||||
{
|
||||
.fstype = FS_TYPE_UBIFS,
|
||||
.name = "ubifs",
|
||||
.null_dev_desc_ok = true,
|
||||
.probe = ubifs_set_blk_dev,
|
||||
.close = ubifs_close,
|
||||
.ls = ubifs_ls,
|
||||
.exists = ubifs_exists,
|
||||
.size = ubifs_size,
|
||||
.read = ubifs_read,
|
||||
.write = fs_write_unsupported,
|
||||
.uuid = fs_uuid_unsupported,
|
||||
},
|
||||
#endif
|
||||
{
|
||||
.fstype = FS_TYPE_ANY,
|
||||
|
@ -22,6 +22,7 @@
|
||||
#define FS_TYPE_FAT 1
|
||||
#define FS_TYPE_EXT 2
|
||||
#define FS_TYPE_SANDBOX 3
|
||||
#define FS_TYPE_UBIFS 4
|
||||
|
||||
/*
|
||||
* Tell the fs layer which block device an partition to use for future
|
||||
|
Loading…
Reference in New Issue
Block a user