mirror of
https://github.com/apache/nuttx-apps.git
synced 2026-08-01 20:29:00 +00:00
mtdconfig: support ram_mtdconfig device && lomtdconfig device
For nvs test in qemu Signed-off-by: guohao15 <guohao15@xiaomi.com>
This commit is contained in:
parent
a454cf4d94
commit
197401975a
2 changed files with 42 additions and 38 deletions
|
|
@ -322,9 +322,15 @@ static const struct cmdmap_s g_cmdmap[] =
|
|||
|
||||
#ifndef CONFIG_DISABLE_MOUNTPOINT
|
||||
# if defined(CONFIG_MTD_LOOP) && !defined(CONFIG_NSH_DISABLE_LOMTD)
|
||||
# ifdef CONFIG_MTD_CONFIG
|
||||
CMD_MAP("lomtd", cmd_lomtd, 3, 10,
|
||||
"[-d <dev-path>] | [[-o <offset>] [-e <erase-size>] "
|
||||
"[-b <sect-size>] [-c <configdata>] <dev-path> <file-path>]]"),
|
||||
# else
|
||||
CMD_MAP("lomtd", cmd_lomtd, 3, 9,
|
||||
"[-d <dev-path>] | [[-o <offset>] [-e <erase-size>] "
|
||||
"[-b <sect-size>] <dev-path> <file-path>]]"),
|
||||
# endif
|
||||
# endif
|
||||
#endif
|
||||
|
||||
|
|
|
|||
|
|
@ -965,8 +965,8 @@ errout:
|
|||
* Name: cmd_losetup
|
||||
****************************************************************************/
|
||||
|
||||
#ifndef CONFIG_DISABLE_MOUNTPOINT
|
||||
# if defined(CONFIG_DEV_LOOP) && !defined(CONFIG_NSH_DISABLE_LOSETUP)
|
||||
#if !defined(CONFIG_DISABLE_MOUNTPOINT) && defined(CONFIG_DEV_LOOP) && \
|
||||
!defined(CONFIG_NSH_DISABLE_LOSETUP)
|
||||
int cmd_losetup(FAR struct nsh_vtbl_s *vtbl, int argc, FAR char **argv)
|
||||
{
|
||||
FAR char *loopdev = NULL;
|
||||
|
|
@ -1120,14 +1120,13 @@ errout_with_paths:
|
|||
return ret;
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/****************************************************************************
|
||||
* Name: cmd_losmart
|
||||
****************************************************************************/
|
||||
|
||||
#ifndef CONFIG_DISABLE_MOUNTPOINT
|
||||
# if defined(CONFIG_SMART_DEV_LOOP) && !defined(CONFIG_NSH_DISABLE_LOSMART)
|
||||
#if !defined(CONFIG_DISABLE_MOUNTPOINT) && defined(CONFIG_SMART_DEV_LOOP) && \
|
||||
!defined(CONFIG_NSH_DISABLE_LOSMART)
|
||||
int cmd_losmart(FAR struct nsh_vtbl_s *vtbl, int argc, FAR char **argv)
|
||||
{
|
||||
FAR char *loopdev = NULL;
|
||||
|
|
@ -1292,14 +1291,13 @@ errout_with_paths:
|
|||
return ret;
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/****************************************************************************
|
||||
* Name: cmd_lomtd
|
||||
****************************************************************************/
|
||||
|
||||
#ifndef CONFIG_DISABLE_MOUNTPOINT
|
||||
# if defined(CONFIG_MTD_LOOP) && !defined(CONFIG_NSH_DISABLE_LOMTD)
|
||||
#if !defined(CONFIG_DISABLE_MOUNTPOINT) && defined(CONFIG_MTD_LOOP) && \
|
||||
!defined(CONFIG_NSH_DISABLE_LOMTD)
|
||||
int cmd_lomtd(FAR struct nsh_vtbl_s *vtbl, int argc, FAR char **argv)
|
||||
{
|
||||
FAR char *loopdev = NULL;
|
||||
|
|
@ -1310,6 +1308,9 @@ int cmd_lomtd(FAR struct nsh_vtbl_s *vtbl, int argc, FAR char **argv)
|
|||
int sectsize = -1;
|
||||
off_t offset = 0;
|
||||
bool badarg = false;
|
||||
# ifdef CONFIG_MTD_CONFIG
|
||||
int configdata = 0;
|
||||
# endif
|
||||
int ret = ERROR;
|
||||
int option;
|
||||
int fd;
|
||||
|
|
@ -1317,14 +1318,17 @@ int cmd_lomtd(FAR struct nsh_vtbl_s *vtbl, int argc, FAR char **argv)
|
|||
/* Get the lomtd options: Two forms are supported:
|
||||
*
|
||||
* lomtd -d <loop-device>
|
||||
* lomtd [-o <offset>] [-e erasesize] [-b sectsize]
|
||||
* lomtd [-o <offset>] [-e erasesize] [-b sectsize] [-c configdata]
|
||||
* <loop-device> <filename>
|
||||
*
|
||||
* NOTE that the -o and -r options are accepted with the -d option, but
|
||||
* will be ignored.
|
||||
*/
|
||||
|
||||
# ifdef CONFIG_MTD_CONFIG
|
||||
while ((option = getopt(argc, argv, "d:o:e:b:c:")) != ERROR)
|
||||
# else
|
||||
while ((option = getopt(argc, argv, "d:o:e:b:")) != ERROR)
|
||||
# endif
|
||||
{
|
||||
switch (option)
|
||||
{
|
||||
|
|
@ -1345,6 +1349,12 @@ int cmd_lomtd(FAR struct nsh_vtbl_s *vtbl, int argc, FAR char **argv)
|
|||
sectsize = atoi(optarg);
|
||||
break;
|
||||
|
||||
# ifdef CONFIG_MTD_CONFIG
|
||||
case 'c':
|
||||
configdata = atoi(optarg);
|
||||
break;
|
||||
# endif
|
||||
|
||||
case '?':
|
||||
default:
|
||||
nsh_error(vtbl, g_fmtarginvalid, argv[0]);
|
||||
|
|
@ -1420,11 +1430,14 @@ int cmd_lomtd(FAR struct nsh_vtbl_s *vtbl, int argc, FAR char **argv)
|
|||
{
|
||||
/* Set up the loop device */
|
||||
|
||||
setup.devname = loopdev; /* The loop block device to be created */
|
||||
setup.filename = filepath; /* The file or character device to use */
|
||||
setup.sectsize = sectsize; /* The sector size to use with the block device */
|
||||
setup.erasesize = erasesize; /* The sector size to use with the block device */
|
||||
setup.offset = offset; /* An offset that may be applied to the device */
|
||||
setup.devname = loopdev; /* The loop block device to be created */
|
||||
setup.filename = filepath; /* The file or character device to use */
|
||||
setup.sectsize = sectsize; /* The sector size to use with the block device */
|
||||
setup.erasesize = erasesize; /* The sector size to use with the block device */
|
||||
setup.offset = offset; /* An offset that may be applied to the device */
|
||||
# ifdef CONFIG_MTD_CONFIG
|
||||
setup.configdata = configdata; /* Is a loop mtdconfig device */
|
||||
# endif
|
||||
|
||||
ret = ioctl(fd, MTD_LOOPIOC_SETUP,
|
||||
(unsigned long)((uintptr_t)&setup));
|
||||
|
|
@ -1455,7 +1468,6 @@ errout_with_paths:
|
|||
|
||||
return ret;
|
||||
}
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/****************************************************************************
|
||||
|
|
@ -1661,8 +1673,7 @@ int cmd_ls(FAR struct nsh_vtbl_s *vtbl, int argc, FAR char **argv)
|
|||
* Name: cmd_mkdir
|
||||
****************************************************************************/
|
||||
|
||||
#ifdef NSH_HAVE_DIROPTS
|
||||
#ifndef CONFIG_NSH_DISABLE_MKDIR
|
||||
#if defined(NSH_HAVE_DIROPTS) && !defined(CONFIG_NSH_DISABLE_MKDIR)
|
||||
int cmd_mkdir(FAR struct nsh_vtbl_s *vtbl, int argc, FAR char **argv)
|
||||
{
|
||||
FAR char *fullpath = NULL;
|
||||
|
|
@ -1722,14 +1733,13 @@ int cmd_mkdir(FAR struct nsh_vtbl_s *vtbl, int argc, FAR char **argv)
|
|||
return ret;
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/****************************************************************************
|
||||
* Name: cmd_mkfatfs
|
||||
****************************************************************************/
|
||||
|
||||
#if !defined(CONFIG_DISABLE_MOUNTPOINT) && defined(CONFIG_FSUTILS_MKFATFS)
|
||||
#ifndef CONFIG_NSH_DISABLE_MKFATFS
|
||||
#if !defined(CONFIG_DISABLE_MOUNTPOINT) && defined(CONFIG_FSUTILS_MKFATFS) && \
|
||||
!defined(CONFIG_NSH_DISABLE_MKFATFS)
|
||||
int cmd_mkfatfs(FAR struct nsh_vtbl_s *vtbl, int argc, FAR char **argv)
|
||||
{
|
||||
struct fat_format_s fmt = FAT_FORMAT_INITIALIZER;
|
||||
|
|
@ -1825,7 +1835,6 @@ int cmd_mkfatfs(FAR struct nsh_vtbl_s *vtbl, int argc, FAR char **argv)
|
|||
return ret;
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/****************************************************************************
|
||||
* Name: cmd_mkfifo
|
||||
|
|
@ -1962,8 +1971,7 @@ errout_with_fmt:
|
|||
****************************************************************************/
|
||||
|
||||
#if !defined(CONFIG_DISABLE_MOUNTPOINT) && defined(CONFIG_FS_SMARTFS) && \
|
||||
defined(CONFIG_FSUTILS_MKSMARTFS)
|
||||
#ifndef CONFIG_NSH_DISABLE_MKSMARTFS
|
||||
defined(CONFIG_FSUTILS_MKSMARTFS) && !defined(CONFIG_NSH_DISABLE_MKSMARTFS)
|
||||
int cmd_mksmartfs(FAR struct nsh_vtbl_s *vtbl, int argc, FAR char **argv)
|
||||
{
|
||||
FAR char *fullpath = NULL;
|
||||
|
|
@ -2048,14 +2056,12 @@ int cmd_mksmartfs(FAR struct nsh_vtbl_s *vtbl, int argc, FAR char **argv)
|
|||
return ret;
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/****************************************************************************
|
||||
* Name: cmd_mv
|
||||
****************************************************************************/
|
||||
|
||||
#ifdef NSH_HAVE_DIROPTS
|
||||
#ifndef CONFIG_NSH_DISABLE_MV
|
||||
#if defined(NSH_HAVE_DIROPTS) && !defined(CONFIG_NSH_DISABLE_MV)
|
||||
int cmd_mv(FAR struct nsh_vtbl_s *vtbl, int argc, FAR char **argv)
|
||||
{
|
||||
UNUSED(argc);
|
||||
|
|
@ -2098,7 +2104,6 @@ errout_with_oldpath:
|
|||
return ret;
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/****************************************************************************
|
||||
* Name: cmd_readlink
|
||||
|
|
@ -2141,9 +2146,7 @@ int cmd_readlink(FAR struct nsh_vtbl_s *vtbl, int argc, FAR char **argv)
|
|||
* Name: cmd_rm
|
||||
****************************************************************************/
|
||||
|
||||
#ifdef NSH_HAVE_DIROPTS
|
||||
#ifndef CONFIG_NSH_DISABLE_RM
|
||||
|
||||
#if defined(NSH_HAVE_DIROPTS) && !defined(CONFIG_NSH_DISABLE_RM)
|
||||
static int unlink_recursive(FAR char *path, FAR struct stat *stat)
|
||||
{
|
||||
struct dirent *d;
|
||||
|
|
@ -2273,14 +2276,12 @@ int cmd_rm(FAR struct nsh_vtbl_s *vtbl, int argc, FAR char **argv)
|
|||
return ret;
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/****************************************************************************
|
||||
* Name: cmd_rmdir
|
||||
****************************************************************************/
|
||||
|
||||
#ifdef NSH_HAVE_DIROPTS
|
||||
#ifndef CONFIG_NSH_DISABLE_RMDIR
|
||||
#if defined(NSH_HAVE_DIROPTS) && !defined(CONFIG_NSH_DISABLE_RMDIR)
|
||||
int cmd_rmdir(FAR struct nsh_vtbl_s *vtbl, int argc, FAR char **argv)
|
||||
{
|
||||
UNUSED(argc);
|
||||
|
|
@ -2302,7 +2303,6 @@ int cmd_rmdir(FAR struct nsh_vtbl_s *vtbl, int argc, FAR char **argv)
|
|||
return ret;
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/****************************************************************************
|
||||
* Name: cmd_source
|
||||
|
|
@ -2431,8 +2431,7 @@ errout:
|
|||
* Name: cmd_truncate
|
||||
****************************************************************************/
|
||||
|
||||
#ifndef CONFIG_DISABLE_MOUNTPOINT
|
||||
#ifndef CONFIG_NSH_DISABLE_TRUNCATE
|
||||
#if !defined(CONFIG_DISABLE_MOUNTPOINT) && !defined(CONFIG_NSH_DISABLE_TRUNCATE)
|
||||
int cmd_truncate(FAR struct nsh_vtbl_s *vtbl, int argc, FAR char **argv)
|
||||
{
|
||||
UNUSED(argc);
|
||||
|
|
@ -2536,7 +2535,6 @@ int cmd_truncate(FAR struct nsh_vtbl_s *vtbl, int argc, FAR char **argv)
|
|||
return ret;
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/****************************************************************************
|
||||
* Name: cmd_fdinfo
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue