nshlib: Tighten up some conditional logic

This commit is contained in:
Gregory Nutt 2017-10-26 16:07:42 -06:00
parent 40d9701ea0
commit 62f7838c5e
3 changed files with 43 additions and 12 deletions

View File

@ -641,6 +641,30 @@
# undef NSH_HAVE_CPULOAD
#endif
#if !defined(CONFIG_FS_PROCFS) || (defined(CONFIG_FS_PROCFS_EXCLUDE_BLOCKS) && \
defined(CONFIG_FS_PROCFS_EXCLUDE_USAGE))
# undef CONFIG_NSH_DISABLE_DF /* 'df' depends on fs procfs */
# define CONFIG_NSH_DISABLE_DF 1
#endif
#if defined(CONFIG_FS_PROCFS) || !defined(CONFIG_NSH_DISABLE_DF)
# define HAVE_DF_HUMANREADBLE 1
# define HAVE_DF_BLOCKOUTPUT 1
# if defined(CONFIG_FS_PROCFS_EXCLUDE_USAGE)
# undefine HAVE_DF_HUMANREADBLE
# endif
# if defined(CONFIG_FS_PROCFS_EXCLUDE_BLOCKS)
# undefine HAVE_DF_BLOCKOUTPUT
# endif
#endif
#if defined(CONFIG_FS_PROCFS) || !defined(CONFIG_NSH_DISABLE_MOUNT)
# define HAVE_MOUNT_LIST 1
# if defined(CONFIG_FS_PROCFS_EXCLUDE_MOUNT)
# undefine HAVE_MOUNT_LIST
# endif
#endif
/* Suppress unused file utilities */
#define NSH_HAVE_CATFILE 1
@ -656,10 +680,11 @@
# undef NSH_HAVE_TRIMDIR
#endif
/* nsh_catfile used by cat, ifconfig, ifup/down */
/* nsh_catfile used by cat, ifconfig, ifup/down, df, and mount */
#if defined(CONFIG_NSH_DISABLE_CAT) && defined(CONFIG_NSH_DISABLE_IFCONFIG) && \
defined(CONFIG_NSH_DISABLE_IFUPDOWN)
defined(CONFIG_NSH_DISABLE_IFUPDOWN) && defined(CONFIG_NSH_DISABLE_DF) && \
(defined(CONFIG_NSH_DISABLE_MOUNT) || !defined(HAVE_MOUNT_LIST))
# undef NSH_HAVE_CATFILE
#endif

View File

@ -171,7 +171,11 @@ static const struct cmdmap_s g_cmdmap[] =
#if CONFIG_NFILE_DESCRIPTORS > 0 && !defined(CONFIG_DISABLE_MOUNTPOINT) && \
defined(CONFIG_FS_READABLE) && !defined(CONFIG_NSH_DISABLE_DF)
#ifdef NSH_HAVE_CATFILE
#if defined(HAVE_DF_HUMANREADBLE) && defined(HAVE_DF_BLOCKOUTPUT)
{ "df", cmd_df, 1, 2, "[-h]" },
#else
{ "df", cmd_df, 1, 1, NULL },
#endif
#endif
#endif
@ -339,8 +343,10 @@ static const struct cmdmap_s g_cmdmap[] =
#if !defined(CONFIG_DISABLE_MOUNTPOINT) && CONFIG_NFILE_DESCRIPTORS > 0 && defined(CONFIG_FS_READABLE)
#ifndef CONFIG_NSH_DISABLE_MOUNT
#ifdef NSH_HAVE_CATFILE
#if defined(NSH_HAVE_CATFILE) && defined(HAVE_MOUNT_LIST)
{ "mount", cmd_mount, 1, 7, "[-t <fstype> [-o <options>] [<block-device>] <mount-point>]" },
#else
{ "mount", cmd_mount, 4, 7, "-t <fstype> [-o <options>] [<block-device>] <mount-point>" },
#endif
#endif
#endif

View File

@ -71,24 +71,24 @@
#ifdef NSH_HAVE_CATFILE
int cmd_df(FAR struct nsh_vtbl_s *vtbl, int argc, char **argv)
{
#if defined(HAVE_DF_HUMANREADBLE) && defined(HAVE_DF_BLOCKOUTPUT)
if (argc > 1 && strcmp(argv[1], "-h") == 0)
#endif
#ifdef HAVE_DF_HUMANREADBLE
{
#ifndef CONFIG_FS_PROCFS_EXCLUDE_BLOCKS
return nsh_catfile(vtbl, argv[0],
CONFIG_NSH_PROC_MOUNTPOINT "/fs/usage");
#else
return ERROR; /* REVISIT, some feedback would be good */
#endif
}
#endif
#if defined(HAVE_DF_HUMANREADBLE) && defined(HAVE_DF_BLOCKOUTPUT)
else
#endif
#ifdef HAVE_DF_BLOCKOUTPUT
{
#ifndef CONFIG_FS_PROCFS_EXCLUDE_USAGE
return nsh_catfile(vtbl, argv[0],
CONFIG_NSH_PROC_MOUNTPOINT "/fs/blocks");
#else
return ERROR; /* REVISIT, some feedback would be good */
#endif
}
#endif
}
#endif
#endif
@ -113,7 +113,7 @@ int cmd_mount(FAR struct nsh_vtbl_s *vtbl, int argc, char **argv)
/* The mount command behaves differently if no parameters are provided. */
#if defined(NSH_HAVE_CATFILE) && !defined(CONFIG_FS_PROCFS_EXCLUDE_MOUNT)
#if defined(NSH_HAVE_CATFILE) && defined(HAVE_MOUNT_LIST)
if (argc < 2)
{
return nsh_catfile(vtbl, argv[0],