f81a094283
This command looks through the currently running processes and kills the those that match the selection criteria. This way system can send signal to processes by name and without knowing the IDs. Example (kill application hello): pkill -15 hello The command can be turned off by NSH_DISABLE_PKILL option and depends on FS_PROCFS. Signed-off-by: Michal Lenc <michallenc@seznam.cz>
1274 lines
35 KiB
Plaintext
1274 lines
35 KiB
Plaintext
#
|
|
# For a description of the syntax of this configuration file,
|
|
# see the file kconfig-language.txt in the NuttX tools repository.
|
|
#
|
|
|
|
menu "NSH Library"
|
|
|
|
config NSH_LIBRARY
|
|
bool "NSH Library"
|
|
default n
|
|
select NETUTILS_NETLIB if NET
|
|
select BOARDCTL if (!NSH_DISABLE_MKRD && !DISABLE_MOUNTPOINT) || NSH_ARCHINIT
|
|
select BOARDCTL_MKRD if !NSH_DISABLE_MKRD && !DISABLE_MOUNTPOINT
|
|
---help---
|
|
Build the NSH support library. This is used, for example, by
|
|
system/nsh in order to implement the full NuttShell (NSH).
|
|
|
|
if NSH_LIBRARY
|
|
|
|
menuconfig NSH_MOTD
|
|
bool "Message of the Day (MOTD)"
|
|
default n
|
|
---help---
|
|
Support a user-provided Message of the Day (MOTD) that will be
|
|
presented each time new NSH session is opened.
|
|
|
|
if NSH_MOTD
|
|
|
|
config NSH_PLATFORM_MOTD
|
|
bool "Platform MOTD"
|
|
default n
|
|
---help---
|
|
If this option is selected, the NSH will call into platform-specific
|
|
logic in order to get the MOTD. The function prototype for this
|
|
call is:
|
|
|
|
void platform_motd(FAR char *buffer, size_t buflen);
|
|
|
|
Where buffer is the location to return the MOTD and buflen is the
|
|
length of that buffer. The maximum size of the buffer is determined
|
|
by NSH_FILEIOSIZE. An appropriate location for the
|
|
implementation of platform_motd would be within apps/platform/<board>.
|
|
|
|
One newline will be inserted after the platform-supplied message.
|
|
|
|
platform_motd() is prototyped and described in apps/include/nshlib/nshlib.h
|
|
which may be included like:
|
|
|
|
#include "nshlib/nshlib.h"
|
|
|
|
config NSH_MOTD_STRING
|
|
string "MOTD String"
|
|
default "No MOTD string provided"
|
|
depends on !NSH_PLATFORM_MOTD
|
|
---help---
|
|
If NSH_MOTD is selected, but NSH_PLATFORM_MOTD is not, then a fixed
|
|
MOTD string will be used. That string is provided by this selection.
|
|
|
|
One newline will be inserted after supplied MOTD message.
|
|
|
|
endif # NSH_MOTD
|
|
|
|
menu "Command Line Configuration"
|
|
|
|
config NSH_PROMPT_STRING
|
|
string "Prompt String"
|
|
default "nsh> "
|
|
---help---
|
|
Provide the shell prompt string with size limit NSH_PROMPT_MAX.
|
|
default is "nsh> ".
|
|
|
|
config NSH_PROMPT_MAX
|
|
int "Maximum Size of Prompt String"
|
|
default NAME_MAX
|
|
---help---
|
|
The maximum size of shell prompt string, including ending null.
|
|
|
|
config NSH_PROMPT_ENV
|
|
string "Prompt String Environment Variable"
|
|
default "PS1"
|
|
depends on !DISABLE_ENVIRON
|
|
---help---
|
|
The environment variable name containing prompt string.
|
|
Only used when NSH_PROMPT_STRING is empty.
|
|
|
|
config NSH_PROMPT_SUFFIX
|
|
string "Suffix used to derive fallback prompt string"
|
|
default "> "
|
|
---help---
|
|
When NSH_PROMPT_STRING is empty, the environment variable defined
|
|
by NSH_PROMPT_ENV or hostname will be used to derive the prompt
|
|
at runtime. This suffix is a part of the final prompt that serves
|
|
to clearly separate prompt from user inputs.
|
|
|
|
config NSH_DISABLE_ECHOBACK
|
|
bool "Disable echoback"
|
|
default n
|
|
---help---
|
|
If this option is selected, the NSH disables echoback.
|
|
|
|
choice
|
|
prompt "Command Line Editor"
|
|
default NSH_READLINE if DEFAULT_SMALL
|
|
default NSH_CLE if !DEFAULT_SMALL
|
|
|
|
config NSH_READLINE
|
|
bool "Minimal readline()"
|
|
select SYSTEM_READLINE
|
|
select READLINE_HAVE_EXTMATCH
|
|
---help---
|
|
Selects the minimal implementation of readline(). This minimal
|
|
implementation provides on backspace for command line editing.
|
|
|
|
config NSH_CLE
|
|
bool "Command Line Editor"
|
|
select SYSTEM_CLE
|
|
---help---
|
|
Selects the more extensive, EMACS-like command line editor.
|
|
Select this option only if (1) you don't mind a modest increase
|
|
in the FLASH footprint, and (2) you work with a terminal that
|
|
supports extensive VT100 editing commands.
|
|
|
|
Selecting this option will add probably 1.5-2KB to the FLASH
|
|
footprint.
|
|
|
|
endchoice
|
|
|
|
config NSH_LINELEN
|
|
int "Max command line length"
|
|
default 64 if DEFAULT_SMALL
|
|
default 80 if !DEFAULT_SMALL
|
|
---help---
|
|
The maximum length of one command line and of one output line.
|
|
Default: 64/80
|
|
|
|
config NSH_DISABLE_SEMICOLON
|
|
bool "Disable multiple commands per line"
|
|
default DEFAULT_SMALL
|
|
---help---
|
|
By default, you can enter multiple NSH commands on a line with each
|
|
command separated by a semicolon. You can disable this feature to
|
|
save a little memory on FLASH challenged platforms.
|
|
|
|
config NSH_QUOTE
|
|
bool "Enable back-slash quoting of characters"
|
|
default !DEFAULT_SMALL && NSH_ARGCAT
|
|
---help---
|
|
Force special characters like back-quotes, quotation marks, and the
|
|
back-slash character itself to be treat like normal text.
|
|
|
|
This feature is only implemented properly for the case where
|
|
CONFIG_NSH_ARGCAT is also selected.
|
|
|
|
config NSH_CMDPARMS
|
|
bool "Enable commands as parameters"
|
|
default !DEFAULT_SMALL && NSH_QUOTE
|
|
depends on !DISABLE_MOUNTPOINT
|
|
depends on FS_TMPFS
|
|
---help---
|
|
If selected, then the output from commands, from file applications, and
|
|
from NSH built-in commands can be used as arguments to other
|
|
commands. The entity to be executed is identified by enclosing the
|
|
command line in back quotes. For example,
|
|
|
|
set FOO `myprogram $BAR`
|
|
|
|
Will execute the program named myprogram passing it the value of the
|
|
environment variable BAR. The value of the environment variable FOO
|
|
is then set output of myprogram on stdout.
|
|
|
|
Because this feature commits significant resources, it is disabled by
|
|
default.
|
|
|
|
This features requires TMPFS mounted at /tmp and NSH_QUOTE enabled.
|
|
|
|
config NSH_MAXARGUMENTS
|
|
int "Maximum number of command arguments"
|
|
default 7
|
|
---help---
|
|
The maximum number of NSH command arguments.
|
|
Default: 7
|
|
|
|
config NSH_ARGCAT
|
|
bool "Concatenation of argument strings"
|
|
default !DEFAULT_SMALL
|
|
---help---
|
|
Support concatenation of strings with environment variables or command
|
|
output. For example:
|
|
|
|
set FOO XYZ
|
|
set BAR 123
|
|
set FOOBAR ABC_${FOO}_${BAR}
|
|
|
|
would set the environment variable FOO to XYZ, BAR to 123 and FOOBAR
|
|
to ABC_XYZ_123. If NSH_ARGCAT is not selected, then a slightly small
|
|
FLASH footprint results but then also only simple environment
|
|
variables like $FOO can be used on the command line.
|
|
|
|
config NSH_NESTDEPTH
|
|
int "Maximum command nesting"
|
|
default 3
|
|
---help---
|
|
The maximum number of nested if-then[-else]-fi sequences that
|
|
are permissible. Default: 3
|
|
|
|
config NSH_DISABLEBG
|
|
bool "Disable background commands"
|
|
default DEFAULT_SMALL
|
|
---help---
|
|
This can be set to 'y' to suppress support for background
|
|
commands. This setting disables the 'nice' command prefix and
|
|
the '&' command suffix. This would only be set on systems
|
|
where a minimal footprint is a necessity and background command
|
|
execution is not.
|
|
|
|
config NSH_ALIAS
|
|
bool "Enable alias support"
|
|
default !DEFAULT_SMALL
|
|
---help---
|
|
Enable alias support for nsh. This enables command substitution from
|
|
a table of alias strings for individual commands. The maximum amount
|
|
of alias strings is configurable with NSH_ALIAS_MAX_AMOUNT.
|
|
|
|
if NSH_ALIAS
|
|
|
|
config NSH_ALIAS_MAX_AMOUNT
|
|
int "Maximum amount of aliases"
|
|
default 1
|
|
---help---
|
|
Set the maximum amount of alias entries.
|
|
|
|
endif # NSH_ALIAS
|
|
|
|
endmenu # Command Line Configuration
|
|
|
|
config NSH_BUILTIN_APPS
|
|
bool "Enable built-in applications"
|
|
default n
|
|
depends on BUILTIN
|
|
---help---
|
|
Support external registered, "built-in" applications that can be
|
|
executed from the NSH command line (see apps/README.txt for
|
|
more information). This options requires support for builtin
|
|
applications (BUILTIN).
|
|
|
|
config NSH_FILE_APPS
|
|
bool "Enable execution of program files"
|
|
default n
|
|
depends on LIBC_EXECFUNCS
|
|
---help---
|
|
Support execution of program files residing within a file
|
|
system. This options requires support for the posix_spawn()
|
|
interface (LIBC_EXECFUNCS).
|
|
|
|
config NSH_SYMTAB
|
|
bool "Register symbol table"
|
|
default n
|
|
depends on LIBC_EXECFUNCS && BOARDCTL && !EXECFUNCS_HAVE_SYMTAB
|
|
select BOARDCTL_APP_SYMTAB
|
|
---help---
|
|
Enable logic to automatically register an application symbol table
|
|
as part of NSH initialization. If enabled, then application logic
|
|
must provide the following:
|
|
|
|
const struct symtab_s g_exports[];
|
|
const int g_nexports;
|
|
|
|
Where g_exports is the name of the exported application symbol table
|
|
and g_nexports holds the number of entries in the application symbol
|
|
table.
|
|
|
|
This is done very early in the NSH initialization sequence.
|
|
|
|
Why might you want to do this? There is really only one reason: You
|
|
would like to have the symbol tables in place early so that programs
|
|
started by NSH, perhaps via an initialization script, will have all
|
|
of the necessary symbols in place. Otherwise, you probably do *not*
|
|
want this option!
|
|
|
|
if NSH_SYMTAB
|
|
|
|
config NSH_SYMTAB_ARRAYNAME
|
|
string "Symbol table used by exec[l|v]"
|
|
default "g_exports"
|
|
---help---
|
|
The exec[l|v] and posix_spawn() functions needs to have (1) a
|
|
symbol table that provides the list of symbols exported by the base
|
|
code, and (2) the number of symbols in that table. This selection
|
|
provides the name of that symbol table.
|
|
|
|
config NSH_SYMTAB_COUNTNAME
|
|
string "Variable holding the number of symbols"
|
|
default "g_nexports"
|
|
---help---
|
|
The exec[l|v] and posix_spawn() functions needs to have (1) a
|
|
symbol table that provides the list of symbols exported by the base
|
|
code, and (2) the number of symbols in that table. This selection
|
|
provides the name of 'int' variable that holds the number of symbol
|
|
in the table.
|
|
|
|
endif # NSH_SYMTAB
|
|
|
|
menu "Disable Individual commands"
|
|
|
|
config NSH_DISABLE_ADDROUTE
|
|
bool "Disable addroute"
|
|
default DEFAULT_SMALL
|
|
depends on NET_ROUTE
|
|
|
|
config NSH_DISABLE_ARP
|
|
bool "Disable arp"
|
|
default DEFAULT_SMALL
|
|
depends on NET_ARP
|
|
|
|
config NSH_DISABLE_BASE64DEC
|
|
bool "Disable base64dec"
|
|
default DEFAULT_SMALL
|
|
depends on NETUTILS_CODECS && CODECS_BASE64
|
|
|
|
config NSH_DISABLE_BASE64ENC
|
|
bool "Disable base64enc"
|
|
default DEFAULT_SMALL
|
|
depends on NETUTILS_CODECS && CODECS_BASE64
|
|
|
|
config NSH_DISABLE_BASENAME
|
|
bool "Disable basename"
|
|
default DEFAULT_SMALL || NSH_DISABLESCRIPT
|
|
|
|
config NSH_DISABLE_CAT
|
|
bool "Disable cat"
|
|
default DEFAULT_SMALL
|
|
|
|
config NSH_DISABLE_CD
|
|
bool "Disable cd"
|
|
default DEFAULT_SMALL
|
|
|
|
config NSH_DISABLE_CP
|
|
bool "Disable cp"
|
|
default DEFAULT_SMALL
|
|
|
|
config NSH_DISABLE_CMP
|
|
bool "Disable cmp"
|
|
default DEFAULT_SMALL
|
|
|
|
config NSH_DISABLE_DATE
|
|
bool "Disable date"
|
|
default DEFAULT_SMALL || !RTC
|
|
|
|
config NSH_DISABLE_DD
|
|
bool "Disable dd"
|
|
default DEFAULT_SMALL
|
|
|
|
config NSH_DISABLE_DF
|
|
bool "Disable df"
|
|
default DEFAULT_SMALL
|
|
|
|
config NSH_DISABLE_DELROUTE
|
|
bool "Disable delroute"
|
|
default DEFAULT_SMALL
|
|
depends on NET_ROUTE
|
|
|
|
config NSH_DISABLE_DIRNAME
|
|
bool "Disable dirname"
|
|
default DEFAULT_SMALL || NSH_DISABLESCRIPT
|
|
|
|
config NSH_DISABLE_DMESG
|
|
bool "Disable dmesg"
|
|
default DEFAULT_SMALL
|
|
|
|
config NSH_DISABLE_ECHO
|
|
bool "Disable echo"
|
|
default DEFAULT_SMALL
|
|
|
|
config NSH_DISABLE_ENV
|
|
bool "Disable env"
|
|
default DEFAULT_SMALL
|
|
|
|
config NSH_DISABLE_EXEC
|
|
bool "Disable exec"
|
|
default DEFAULT_SMALL
|
|
|
|
config NSH_DISABLE_EXIT
|
|
bool "Disable exit"
|
|
default DEFAULT_SMALL && !NSH_TELNET
|
|
|
|
config NSH_DISABLE_EXPR
|
|
bool "Disable expr"
|
|
default DEFAULT_SMALL
|
|
|
|
config NSH_DISABLE_EXPORT
|
|
bool "Disable export"
|
|
default DEFAULT_SMALL
|
|
|
|
config NSH_DISABLE_FDINFO
|
|
bool "Disable fdinfo"
|
|
default DEFAULT_SMALL
|
|
depends on FS_PROCFS
|
|
|
|
config NSH_DISABLE_FREE
|
|
bool "Disable free"
|
|
default DEFAULT_SMALL
|
|
|
|
config NSH_DISABLE_GET
|
|
bool "Disable get"
|
|
default DEFAULT_SMALL
|
|
|
|
config NSH_DISABLE_HELP
|
|
bool "Disable help"
|
|
default n
|
|
|
|
config NSH_DISABLE_ERROR_PRINT
|
|
bool "Disable NSH Error Printing"
|
|
default DEFAULT_SMALL
|
|
|
|
config NSH_DISABLE_HEXDUMP
|
|
bool "Disable hexdump"
|
|
default DEFAULT_SMALL
|
|
|
|
config NSH_DISABLE_IFCONFIG
|
|
bool "Disable ifconfig"
|
|
default DEFAULT_SMALL || !FS_PROCFS || FS_PROCFS_EXCLUDE_NET
|
|
|
|
config NSH_DISABLE_IFUPDOWN
|
|
bool "Disable ifup/down"
|
|
default DEFAULT_SMALL || !FS_PROCFS || FS_PROCFS_EXCLUDE_NET
|
|
|
|
config NSH_DISABLE_KILL
|
|
bool "Disable kill"
|
|
default DEFAULT_SMALL
|
|
|
|
config NSH_DISABLE_PKILL
|
|
bool "Disable pkill"
|
|
default DEFAULT_SMALL
|
|
depends on FS_PROCFS
|
|
|
|
config NSH_DISABLE_LOSETUP
|
|
bool "Disable losetup"
|
|
default DEFAULT_SMALL
|
|
|
|
config NSH_DISABLE_LOSMART
|
|
bool "Disable losmart"
|
|
default DEFAULT_SMALL || !MTD_SMART
|
|
|
|
config NSH_DISABLE_LOMTD
|
|
bool "Disable lomtd"
|
|
default DEFAULT_SMALL || !MTD_LOOP
|
|
|
|
config NSH_DISABLE_LN
|
|
bool "Disable ln"
|
|
default DEFAULT_SMALL
|
|
depends on PSEUDOFS_SOFTLINKS
|
|
|
|
config NSH_DISABLE_LS
|
|
bool "Disable ls"
|
|
default DEFAULT_SMALL
|
|
|
|
config NSH_DISABLE_MB
|
|
bool "Disable mb"
|
|
default y
|
|
|
|
config NSH_DISABLE_MD5
|
|
bool "Disable md5"
|
|
default DEFAULT_SMALL
|
|
depends on NETUTILS_CODECS && CODECS_HASH_MD5
|
|
|
|
config NSH_DISABLE_MKDIR
|
|
bool "Disable mkdir"
|
|
default DEFAULT_SMALL
|
|
|
|
config NSH_DISABLE_MKFATFS
|
|
bool "Disable mkfatfs"
|
|
default DEFAULT_SMALL
|
|
depends on FSUTILS_MKFATFS
|
|
|
|
config NSH_DISABLE_MKFIFO
|
|
bool "Disable mkfifo"
|
|
default DEFAULT_SMALL
|
|
depends on PIPES
|
|
|
|
config NSH_DISABLE_MKRD
|
|
bool "Disable mkrd"
|
|
default DEFAULT_SMALL
|
|
|
|
config NSH_DISABLE_MKSMARTFS
|
|
bool "Disable mksmartfs"
|
|
default DEFAULT_SMALL
|
|
depends on FS_SMARTFS && FSUTILS_MKSMARTFS
|
|
|
|
config NSH_DISABLE_MH
|
|
bool "Disable mh"
|
|
default y
|
|
|
|
config NSH_DISABLE_MODCMDS
|
|
bool "Disable modules commands (insmod, rmmod, lsmod)"
|
|
default DEFAULT_SMALL
|
|
depends on MODULE
|
|
|
|
config NSH_DISABLE_MOUNT
|
|
bool "Disable mount"
|
|
default DEFAULT_SMALL
|
|
|
|
config NSH_DISABLE_MV
|
|
bool "Disable mv"
|
|
default DEFAULT_SMALL
|
|
|
|
config NSH_DISABLE_MW
|
|
bool "Disable mw"
|
|
default y
|
|
|
|
config NSH_DISABLE_NSFMOUNT
|
|
bool "Disable nfsmount"
|
|
default DEFAULT_SMALL
|
|
depends on NFS
|
|
|
|
config NSH_DISABLE_NSLOOKUP
|
|
bool "Disable nslookup"
|
|
default DEFAULT_SMALL
|
|
depends on LIBC_NETDB
|
|
|
|
config NSH_DISABLE_PASSWD
|
|
bool "Disable passwd"
|
|
default DEFAULT_SMALL
|
|
depends on NSH_LOGIN_PASSWD && !FSUTILS_PASSWD_READONLY
|
|
|
|
config NSH_DISABLE_PIDOF
|
|
bool "Disable pidof"
|
|
default DEFAULT_SMALL
|
|
depends on FS_PROCFS
|
|
|
|
config NSH_DISABLE_PMCONFIG
|
|
bool "Disable pmconfig"
|
|
default DEFAULT_SMALL
|
|
depends on PM
|
|
|
|
config NSH_DISABLE_POWEROFF
|
|
bool "Disable poweroff"
|
|
default DEFAULT_SMALL
|
|
depends on BOARDCTL_POWEROFF
|
|
|
|
config NSH_DISABLE_PRINTF
|
|
bool "Disable printf"
|
|
default DEFAULT_SMALL
|
|
|
|
config NSH_DISABLE_PS
|
|
bool "Disable ps"
|
|
default DEFAULT_SMALL || !FS_PROCFS || FS_PROCFS_EXCLUDE_PROCESS
|
|
|
|
config NSH_DISABLE_PSHEAPUSAGE
|
|
bool "Disable ps heap usage"
|
|
depends on DEBUG_MM && !NSH_DISABLE_PS
|
|
default DEFAULT_SMALL
|
|
|
|
config NSH_DISABLE_PSSTACKUSAGE
|
|
bool "Disable ps stack usage"
|
|
depends on STACK_COLORATION && !NSH_DISABLE_PS
|
|
default DEFAULT_SMALL
|
|
---help---
|
|
Disable to save space and not pull in floating point routines
|
|
|
|
config NSH_DISABLE_PUT
|
|
bool "Disable put"
|
|
default DEFAULT_SMALL
|
|
|
|
config NSH_DISABLE_PWD
|
|
bool "Disable pwd"
|
|
default DEFAULT_SMALL
|
|
|
|
config NSH_DISABLE_READLINK
|
|
bool "Disable readlink"
|
|
default DEFAULT_SMALL
|
|
depends on PSEUDOFS_SOFTLINKS
|
|
|
|
config NSH_DISABLE_SWITCHBOOT
|
|
bool "Switch boot partition"
|
|
default DEFAULT_SMALL
|
|
depends on BOARDCTL_SWITCH_BOOT
|
|
|
|
config NSH_DISABLE_BOOT
|
|
bool "Disable boot"
|
|
default DEFAULT_SMALL
|
|
depends on BOARDCTL_BOOT_IMAGE
|
|
|
|
config NSH_DISABLE_REBOOT
|
|
bool "Disable reboot"
|
|
default DEFAULT_SMALL
|
|
depends on BOARDCTL_RESET
|
|
|
|
config NSH_DISABLE_RM
|
|
bool "Disable rm"
|
|
default DEFAULT_SMALL
|
|
|
|
config NSH_DISABLE_RMDIR
|
|
bool "Disable rmdir"
|
|
default DEFAULT_SMALL
|
|
|
|
config NSH_DISABLE_ROUTE
|
|
bool "Disable delroute"
|
|
depends on FS_PROCFS && NET_ROUTE && !FS_PROCFS_EXCLUDE_NET && !FS_PROCFS_EXCLUDE_ROUTE
|
|
default DEFAULT_SMALL
|
|
|
|
config NSH_DISABLE_RPMSG
|
|
bool "Disable rpmsg"
|
|
default DEFAULT_SMALL
|
|
depends on RPMSG
|
|
|
|
config NSH_DISABLE_RPTUN
|
|
bool "Disable rptun"
|
|
default DEFAULT_SMALL
|
|
depends on RPTUN && !NSH_DISABLE_RPMSG
|
|
|
|
config NSH_DISABLE_SET
|
|
bool "Disable set"
|
|
default DEFAULT_SMALL
|
|
|
|
config NSH_DISABLE_SOURCE
|
|
bool "Disable source"
|
|
default DEFAULT_SMALL
|
|
|
|
config NSH_DISABLE_SHUTDOWN
|
|
bool "Disable shutdown"
|
|
default DEFAULT_SMALL || !BOARD_POWEROFF || !BOARD_RESET
|
|
depends on BOARDCTL_POWEROFF || BOARDCTL_RESET
|
|
|
|
config NSH_DISABLE_SLEEP
|
|
bool "Disable sleep"
|
|
default DEFAULT_SMALL
|
|
|
|
config NSH_DISABLE_TIME
|
|
bool "Disable time"
|
|
default DEFAULT_SMALL
|
|
|
|
config NSH_DISABLE_TIMEDATECTL
|
|
bool "Disable timedatectl"
|
|
default DEFAULT_SMALL || !LIBC_LOCALTIME || !RTC
|
|
|
|
config NSH_DISABLE_TEST
|
|
bool "Disable test"
|
|
default DEFAULT_SMALL
|
|
|
|
config NSH_DISABLE_TRUNCATE
|
|
bool "Disable truncate"
|
|
default DEFAULT_SMALL
|
|
|
|
config NSH_DISABLE_UMOUNT
|
|
bool "Disable umount"
|
|
default DEFAULT_SMALL
|
|
|
|
config NSH_DISABLE_UNAME
|
|
bool "Disable uname"
|
|
default DEFAULT_SMALL
|
|
|
|
config NSH_DISABLE_UNSET
|
|
bool "Disable unset"
|
|
default DEFAULT_SMALL
|
|
|
|
config NSH_DISABLE_UPTIME
|
|
bool "Disable uptime"
|
|
default DEFAULT_SMALL
|
|
|
|
config NSH_DISABLE_URLDECODE
|
|
bool "Disable urldecode"
|
|
default DEFAULT_SMALL
|
|
depends on NETUTILS_CODECS && CODECS_URLCODE
|
|
|
|
config NSH_DISABLE_URLENCODE
|
|
bool "Disable urlencode"
|
|
default DEFAULT_SMALL
|
|
depends on NETUTILS_CODECS && CODECS_URLCODE
|
|
|
|
config NSH_DISABLE_USERADD
|
|
bool "Disable useradd"
|
|
default DEFAULT_SMALL
|
|
depends on NSH_LOGIN_PASSWD && !FSUTILS_PASSWD_READONLY
|
|
|
|
config NSH_DISABLE_USERDEL
|
|
bool "Disable userdel"
|
|
default DEFAULT_SMALL
|
|
depends on NSH_LOGIN_PASSWD && !FSUTILS_PASSWD_READONLY
|
|
|
|
config NSH_DISABLE_USLEEP
|
|
bool "Disable usleep"
|
|
default DEFAULT_SMALL
|
|
|
|
config NSH_DISABLE_WGET
|
|
bool "Disable wget"
|
|
default DEFAULT_SMALL
|
|
|
|
config NSH_DISABLE_XD
|
|
bool "Disable xd"
|
|
default DEFAULT_SMALL
|
|
|
|
config NSH_DISABLE_RESET_CAUSE
|
|
bool "Disable reset cause"
|
|
default DEFAULT_SMALL
|
|
depends on BOARDCTL_RESET_CAUSE
|
|
|
|
config NSH_DISABLE_IRQ_AFFINITY
|
|
bool "Disable command of irq affinity"
|
|
default DEFAULT_SMALL
|
|
depends on BOARDCTL_IRQ_AFFINITY
|
|
|
|
endmenu
|
|
|
|
if MMCSD
|
|
|
|
config NSH_MMCSDMINOR
|
|
int "MMC/SD minor device number"
|
|
default 0
|
|
---help---
|
|
If the architecture supports an MMC/SD slot and if the NSH
|
|
architecture specific logic is present, this option will provide
|
|
the MMC/SD minor number, i.e., the MMC/SD block driver will
|
|
be registered as /dev/mmcsdN where N is the minor number.
|
|
Default is zero.
|
|
|
|
config NSH_MMCSDSLOTNO
|
|
int "MMC/SD slot number"
|
|
default 0
|
|
---help---
|
|
If board-specific NSH start-up supports more than one MMC/SD slot, then this setting
|
|
should be provided to indicate which slot should be used. Default: 0.
|
|
|
|
config NSH_MMCSDSPIPORTNO
|
|
int "MMC/SD SPI device number"
|
|
default 0
|
|
depends on MMCSD_SPI
|
|
---help---
|
|
If board-specif NSH start-up logic will mount an SPI-based MMC/SD volume, then this
|
|
setting may be needed to tell the board logic which SPI bus to use. Default: 0
|
|
(meaning is board-specific).
|
|
|
|
endif # MMCSD
|
|
|
|
menu "Configure Command Options"
|
|
|
|
config NSH_VARS
|
|
bool "NSH variables"
|
|
default n
|
|
---help---
|
|
By default, there are no internal NSH variables. NSH will use OS
|
|
environment variables for all variable storage. If this option, NSH
|
|
will also support local NSH variables. These variables are, for the
|
|
most part, transparent and work just like the OS environment
|
|
variables. The difference is that when you create new tasks, all of
|
|
environment variables are inherited by the created tasks. NSH local
|
|
variables are not.
|
|
|
|
If this option is enabled (and CONFIG_DISABLE_ENVIRON is not), then a
|
|
new command called 'export' is enabled. The export command works very
|
|
must like the set command except that is operates on environment
|
|
variables. When CONFIG_NSH_VARS is enabled, there are changes in the
|
|
behavior of certains commands
|
|
|
|
============== =========================== ===========================
|
|
CMD w/o CONFIG_NSH_VARS w/CONFIG_NSH_VARS
|
|
============== =========================== ===========================
|
|
set <a> <b> Set environment var a to b Set NSH var a to b
|
|
unset <a> Unsets environment var a Unsets both environment var
|
|
and NSH var a
|
|
export <a> <b> Causes an error Unsets NSH var a. Sets
|
|
environment var a to b.
|
|
export <a> Causes an error Sets environment var a to
|
|
NSH var b (or ""). Unsets
|
|
local var a.
|
|
env Lists all environment Lists all environment
|
|
variables variables
|
|
============== =========================== ===========================
|
|
|
|
config NSH_CMDOPT_DD_STATS
|
|
bool "dd: Support transfer statistics"
|
|
default n
|
|
depends on !NSH_DISABLE_DD
|
|
|
|
config NSH_CODECS_BUFSIZE
|
|
int "File buffer size used by CODEC commands"
|
|
default 128
|
|
|
|
config NSH_CMDOPT_HEXDUMP
|
|
bool "hexdump: Enable 'skip' and 'count' parameters"
|
|
default !DEFAULT_SMALL
|
|
depends on !NSH_DISABLE_HEXDUMP
|
|
|
|
config NSH_PROC_MOUNTPOINT
|
|
string "procfs mountpoint"
|
|
default "/proc"
|
|
depends on FS_PROCFS
|
|
|
|
endmenu
|
|
|
|
config NSH_FILEIOSIZE
|
|
int "NSH I/O buffer size"
|
|
default 512 if DEFAULT_SMALL
|
|
default 1024 if !DEFAULT_SMALL
|
|
---help---
|
|
Size of a static I/O buffer used for file access (ignored if
|
|
there is no filesystem). Default is 512/1024.
|
|
|
|
config NSH_STRERROR
|
|
bool "Use strerror()"
|
|
default n
|
|
depends on LIBC_STRERROR
|
|
---help---
|
|
strerror(errno) makes more readable output but strerror() is
|
|
very large and will not be used unless this setting is 'y'
|
|
This setting depends upon the strerror() having been enabled
|
|
with LIBC_STRERROR.
|
|
|
|
menu "Scripting Support"
|
|
|
|
config NSH_DISABLESCRIPT
|
|
bool "Disable script support"
|
|
default DEFAULT_SMALL
|
|
---help---
|
|
This can be set to 'y' to suppress support for scripting. This
|
|
setting disables the 'sh', 'test', and '[' commands and the
|
|
if-then[-else]-fi construct. This would only be set on systems
|
|
where a minimal footprint is a necessity and scripting is not.
|
|
|
|
if !NSH_DISABLESCRIPT
|
|
|
|
config NSH_DISABLE_ITEF
|
|
bool "Disable if-then-else-fi"
|
|
default DEFAULT_SMALL
|
|
---help---
|
|
This can be set to 'y' to suppress support for if-then-else-fi
|
|
sequences in scripts. This would only be set on systems where
|
|
some minimal scripting is required but if-then-else-fi is not.
|
|
|
|
config NSH_DISABLE_LOOPS
|
|
bool "Disable loops"
|
|
default DEFAULT_SMALL
|
|
---help---
|
|
This can be set to 'y' to suppress support for while-do-done and
|
|
until-do-done sequences in scripts. This would only be set on
|
|
systems where some minimal scripting is required but looping
|
|
is not.
|
|
|
|
config NSH_ROMFSRC
|
|
bool "Support ROMFS login script"
|
|
default n
|
|
---help---
|
|
The ROMFS start-up script will be executed exactly once. For
|
|
simple, persistence consoles (like a serial console). But with
|
|
other other kinds of consoles, there may be multiple, transient
|
|
sessions (such as Telnet and USB consoles). In these cases, you
|
|
may need another script that is executed at the beginning of each
|
|
session. Selecting this option enables support for such a login
|
|
script
|
|
|
|
config NSH_SYSINITSCRIPT
|
|
string "Relative path to sysinit script"
|
|
default "init.d/rc.sysinit"
|
|
---help---
|
|
This is the relative path to the sysinit script within the mountpoint.
|
|
The default is init.d/rc.sysinit. This is a relative path and must not
|
|
start with '/'.
|
|
|
|
config NSH_INITSCRIPT
|
|
string "Relative path to startup script"
|
|
default "init.d/rcS"
|
|
---help---
|
|
This is the relative path to the startup script within the mountpoint.
|
|
The default is init.d/rcS. This is a relative path and must not
|
|
start with '/'.
|
|
|
|
config NSH_RCSCRIPT
|
|
string "Relative path to login script"
|
|
default ".nshrc"
|
|
depends on NSH_ROMFSRC
|
|
---help---
|
|
This is the relative path to the login script within the mountpoint.
|
|
The default is .nshrc. This is a relative path and must not
|
|
start with '/'.
|
|
|
|
config NSH_SCRIPT_REDIRECT_PATH
|
|
string "rcS redirect output"
|
|
default ""
|
|
---help---
|
|
This option can redirect rcS output.such as /dev/log or other.
|
|
|
|
endif # !NSH_DISABLESCRIPT
|
|
|
|
endmenu # Scripting Support
|
|
|
|
menu "Console Configuration"
|
|
|
|
config NSH_CONSOLE
|
|
bool "Use console"
|
|
default y
|
|
---help---
|
|
If NSH_CONSOLE is set to 'y', then a character driver
|
|
console front-end is selected (/dev/console).
|
|
|
|
Normally, the serial console device is a UART and RS-232
|
|
interface. However, if USBDEV is defined, then a USB
|
|
serial device may, instead, be used if the one of
|
|
the following are defined:
|
|
|
|
PL2303 and PL2303_CONSOLE - Set up the Prolifics PL2303
|
|
emulation as a console device at /dev/console.
|
|
|
|
CDCACM and CDCACM_CONSOLE - Set up the CDC/ACM serial
|
|
device as a console device at dev/console.
|
|
|
|
NSH_USBCONSOLE and NSH_USBCONDEV - Sets up some other USB
|
|
serial device as the NSH console (not necessarily dev/console).
|
|
|
|
config NSH_USBCONSOLE
|
|
bool "Use a USB serial console"
|
|
default n
|
|
depends on BOARDCTL && NSH_CONSOLE && USBDEV && (CDCACM || PL2303)
|
|
select BOARDCTL_USBDEVCTRL
|
|
---help---
|
|
If defined, then the an arbitrary USB serial device may be used
|
|
to as the NSH console. In this case, NSH_USBCONDEV must be defined
|
|
to indicate which USB serial device to use as the console.
|
|
|
|
if NSH_USBCONSOLE
|
|
|
|
config NSH_USBCONDEV
|
|
string "USB serial console device"
|
|
default "/dev/ttyACM0" if CDCACM
|
|
default "/dev/ttyUSB0" if !CDCACM
|
|
---help---
|
|
If NSH_USBCONSOLE is set to 'y', then NSH_USBCONDEV must
|
|
also be set to select the USB device used to support the
|
|
NSH console. This should be set to the quoted name of a
|
|
read-/write-able USB driver. Default: "/dev/ttyACM0".
|
|
|
|
config USBDEV_MINOR
|
|
int "USB serial console device minor number"
|
|
default 0
|
|
---help---
|
|
If there are more than one USB devices, then a USB device
|
|
minor number may also need to be provided. Default: 0
|
|
|
|
endif # NSH_USBCONSOLE
|
|
|
|
config NSH_ALTCONDEV
|
|
bool "Alternative console device"
|
|
default n
|
|
depends on NSH_CONSOLE && !NSH_USBCONSOLE && !NSH_TELNET
|
|
---help---
|
|
If CONFIG_NSH_CONSOLE is set to y, then CONFIG_NSH_ALTCONDEV may
|
|
also be selected to enable use of an alternate character device
|
|
to support the NSH console. If CONFIG_NSH_ALTCONDEV is selected,
|
|
then NSH_ALTSTDIN, NSH_ALTSTDOUT and NSH_ALTSTDERR must be set
|
|
to select the serial devices used to support the NSH console.
|
|
This may be useful, for example, to separate the NSH command
|
|
line from the system console when the system console is used to
|
|
provide debug output.
|
|
|
|
Default: stdin, stderr and stdout (probably "/dev/console")
|
|
|
|
NOTE 1: When any other device other than /dev/console is used
|
|
for a user interface, (1) linefeeds (\n) will not be expanded to
|
|
carriage return / linefeeds (\r\n). You will need to set
|
|
your terminal program to account for this. And (2) input is
|
|
not automatically echoed so you will have to turn local echo on.
|
|
|
|
NOTE 2: This option forces the console of all sessions to use
|
|
NSH_ALTSTD(IN/OUT/ERR). Hence, this option only makes sense for
|
|
a system that supports only a single session. This option is,
|
|
in particular, incompatible with Telnet sessions because each
|
|
Telnet session must use a different console device.
|
|
|
|
if NSH_ALTCONDEV
|
|
|
|
config NSH_ALTSTDIN
|
|
string "Alternative console \"stdin\" device name"
|
|
default "/dev/console"
|
|
---help---
|
|
If CONFIG_NSH_CONSOLE is set to y, then CONFIG_NSH_ALTCONDEV may
|
|
also be selected to enable use of an alternate character device
|
|
to support the NSH console. If CONFIG_NSH_ALTCONDEV is selected,
|
|
then NSH_ALTSTDIN must be set to select the "stdin" device to
|
|
support the NSH console. This should be set to the quoted name
|
|
of a readable character driver such as:
|
|
|
|
NSH_ALTSTDIN="/dev/ttyS1".
|
|
|
|
This way the input will come from "/dev/ttyS1".
|
|
|
|
config NSH_ALTSTDOUT
|
|
string "Alternative console \"stdout\" device name"
|
|
default "/dev/console" if !SLCD_CONSOLE
|
|
default "/dev/slcd0" if SLCD_CONSOLE
|
|
---help---
|
|
If CONFIG_NSH_CONSOLE is set to y, then CONFIG_NSH_ALTCONDEV may
|
|
also be selected to enable use of an alternate character device
|
|
to support the NSH console. If CONFIG_NSH_ALTCONDEV is selected,
|
|
then NSH_ALTSTDOUT must be set to select the "stdout" device to
|
|
support the NSH console. This should be set to the quoted name
|
|
of a write-able character driver such as:
|
|
|
|
NSH_ALTSTDIN="/dev/ttyS1".
|
|
|
|
This way the standard output will go to "/dev/ttyS1".
|
|
|
|
config NSH_ALTSTDERR
|
|
string "Alternative console \"stderr\" device name"
|
|
default "/dev/console" if !SLCD_CONSOLE
|
|
default "/dev/slcd0" if SLCD_CONSOLE
|
|
---help---
|
|
If CONFIG_NSH_CONSOLE is set to y, then CONFIG_NSH_ALTCONDEV may
|
|
also be selected to enable use of an alternate character device
|
|
to support the NSH console. If CONFIG_NSH_ALTCONDEV is selected,
|
|
then NSH_ALTSTDERR must be set to select the "stderr" device to
|
|
support the NSH console. This should be set to the quoted name
|
|
of a write-able character driver such as:
|
|
|
|
NSH_ALTSTDIN="/dev/ttyS1".
|
|
|
|
This way the standard error output will go to "/dev/ttyS1".
|
|
|
|
endif # NSH_ALTCONDEV
|
|
|
|
config NSH_USBKBD
|
|
bool "Use USB keyboard input"
|
|
default n
|
|
depends on NSH_CONSOLE && USBHOST_HIDKBD && !NSH_USBCONSOLE
|
|
---help---
|
|
Normally NSH uses the same device for stdin, stdout, and stderr. By
|
|
default, that device is /dev/console. If this option is selected,
|
|
then NSH will use a USB HID keyboard for stdin. In this case, the
|
|
keyboard is connected directly to the target (via a USB host
|
|
interface) and the data from the keyboard will drive NSH. NSH
|
|
output (stdout and stderr) will still go to /dev/console.
|
|
|
|
if NSH_USBKBD
|
|
|
|
config NSH_USBKBD_DEVNAME
|
|
string "USB keyboard device"
|
|
default "/dev/kbda"
|
|
---help---
|
|
If NSH_USBKBD is set to 'y', then NSH_USBKBD_DEVNAME must also be
|
|
set to select the USB keyboard device used to support the NSH
|
|
console input. This should be set to the quoted name of a read-
|
|
able keyboard driver. Default: "/dev/kbda".
|
|
|
|
endif #NSH_USBKBD
|
|
endmenu # Console Configuration
|
|
|
|
menu "USB Device Trace Support"
|
|
depends on USBDEV && (DEBUG_FEATURES || USBDEV_TRACE)
|
|
|
|
config NSH_USBDEV_TRACE
|
|
bool "Enable Builtin USB Trace Support"
|
|
default n
|
|
---help---
|
|
Enable builtin USB trace support in NSH. If selected, buffered USB
|
|
trace data will be presented each time a command is provided to NSH.
|
|
The USB trace data will be sent to the console unless CONFIG_DEBUG_FEATURES
|
|
set or unless you are using a USB console. In those cases, the trace
|
|
data will go to the SYSLOG device.
|
|
|
|
If not enabled, the USB trace support can be provided by external
|
|
logic such as nuttx/drivers/usbmonitor.
|
|
|
|
if NSH_USBDEV_TRACE
|
|
|
|
config NSH_USBDEV_TRACEINIT
|
|
bool "Show initialization events"
|
|
default n
|
|
---help---
|
|
Show initialization events
|
|
|
|
config NSH_USBDEV_TRACECLASS
|
|
bool "Show class driver events"
|
|
default n
|
|
---help---
|
|
Show class driver events
|
|
|
|
config NSH_USBDEV_TRACETRANSFERS
|
|
bool "Show data transfer events"
|
|
default n
|
|
---help---
|
|
Show data transfer events
|
|
|
|
config NSH_USBDEV_TRACECONTROLLER
|
|
bool "Show controller events"
|
|
default n
|
|
---help---
|
|
Show controller events
|
|
|
|
config NSH_USBDEV_TRACEINTERRUPTS
|
|
bool "Show interrupt-related events"
|
|
default n
|
|
---help---
|
|
Show interrupt-related events
|
|
|
|
endif # NSH_USBDEV_TRACE
|
|
endmenu # USB Device Trace Support
|
|
|
|
config NSH_ARCHINIT
|
|
bool "Have architecture-specific initialization"
|
|
default n
|
|
select BOARDCTL
|
|
---help---
|
|
Set if your board provides architecture specific initialization
|
|
via the board-interface function boardctl(). The boardctl()
|
|
function will be called early in NSH initialization to allow
|
|
board logic to do such things as configure MMC/SD slots.
|
|
|
|
menu "Networking Configuration"
|
|
depends on NET
|
|
|
|
config NSH_NETINIT
|
|
bool "Network initialization"
|
|
default y
|
|
depends on NET
|
|
select NETUTILS_NETINIT
|
|
---help---
|
|
This option enables/disables all network initialization in NSH.
|
|
|
|
if !NSH_DISABLE_WGET
|
|
config NSH_WGET_BUFF_SIZE
|
|
int "wget buffer size"
|
|
default 512
|
|
---help---
|
|
Buffer size for wget command
|
|
endif # NSH_DISABLE_WGET
|
|
|
|
endmenu # Networking Configuration"
|
|
|
|
menu "Telnet Configuration"
|
|
|
|
config NSH_TELNET
|
|
bool "Use Telnet console"
|
|
default !DEFAULT_SMALL
|
|
depends on SYSTEM_TELNETD
|
|
---help---
|
|
If NSH_TELNET is set to 'y', then a TELENET
|
|
server front-end is selected. When this option is provided,
|
|
you may log into NuttX remotely using telnet in order to
|
|
access NSH.
|
|
|
|
config NSH_DISABLE_TELNETSTART
|
|
bool "Disable to start telnetd"
|
|
default DEFAULT_SMALL
|
|
depends on NSH_TELNET
|
|
---help---
|
|
Determines if the nsh starts telnetd automatically
|
|
|
|
endmenu # Telnet Configuration
|
|
|
|
config NSH_LOGIN
|
|
bool
|
|
default n
|
|
|
|
config NSH_CONSOLE_LOGIN
|
|
bool "Console Login"
|
|
default n
|
|
select NSH_LOGIN
|
|
---help---
|
|
If defined, then the console user will be required to provide a
|
|
username and password to start the NSH shell.
|
|
|
|
config NSH_TELNET_LOGIN
|
|
bool "Telnet Login"
|
|
default n
|
|
depends on NSH_TELNET
|
|
select NSH_LOGIN
|
|
---help---
|
|
If defined, then the Telnet user will be required to provide a
|
|
username and password to start the NSH shell.
|
|
|
|
if NSH_LOGIN
|
|
|
|
choice
|
|
prompt "Verification method"
|
|
default NSH_LOGIN_PASSWD if FSUTILS_PASSWD
|
|
default NSH_LOGIN_FIXED if !FSUTILS_PASSWD
|
|
|
|
config NSH_LOGIN_FIXED
|
|
bool "Fixed username/password"
|
|
---help---
|
|
Verify user credentials by matching to fixed username and password
|
|
strings
|
|
|
|
config NSH_LOGIN_PLATFORM
|
|
bool "Platform username/password"
|
|
---help---
|
|
Call a platform-specific function to perform the verification of
|
|
user credentials. In this case, the platform-specific logic must
|
|
provide a function with the following prototype:
|
|
|
|
int platform_user_verify(FAR const char *username, FAR const char *password);
|
|
|
|
which is prototyped an described in apps/include/nshlib/nshlib.h and
|
|
which may be included like:
|
|
|
|
#include "nshlib/nshlib.h"
|
|
|
|
An appropriate place to implement this function might be in the
|
|
directory apps/platform/<board>.
|
|
|
|
config NSH_LOGIN_PASSWD
|
|
bool "Encrypted password file"
|
|
depends on FSUTILS_PASSWD
|
|
---help---
|
|
Use the content of an encrypted password file to verify user
|
|
credentials. This option requires that you have selected
|
|
CONFIG_FSUTILS_PASSWD to enable the access methods of
|
|
apps/fsutils/passwd.
|
|
|
|
endchoice # Verification method
|
|
|
|
config NSH_LOGIN_USERNAME
|
|
string "Login username"
|
|
default "admin"
|
|
depends on !NSH_LOGIN_PASSWD
|
|
---help---
|
|
Login user name. Default: "admin"
|
|
|
|
config NSH_LOGIN_PASSWORD
|
|
string "Login password"
|
|
default "Administrator"
|
|
depends on !NSH_LOGIN_PASSWD
|
|
---help---
|
|
Login password: Default: "Administrator"
|
|
|
|
config NSH_LOGIN_FAILDELAY
|
|
int "Login failure delay"
|
|
default 0
|
|
---help---
|
|
Login failure delay in milliseconds. The system will pause this
|
|
amount of time after each failed login attempt in order to
|
|
discourage people from cracking the password by brute force. The
|
|
value zero may be supplied to disable the delay.
|
|
|
|
config NSH_LOGIN_FAILCOUNT
|
|
int "Login retry count"
|
|
default 3
|
|
---help---
|
|
Number of login retry attempts.
|
|
|
|
config NSH_PLATFORM_CHALLENGE
|
|
bool "Platform challenge"
|
|
default n
|
|
depends on NSH_LOGIN_PLATFORM
|
|
---help---
|
|
If this option is selected, the NSH will call into platform-specific
|
|
logic in order to get the challenge. The function prototype for this
|
|
call is:
|
|
|
|
void platform_challenge(FAR char *buffer, size_t buflen);
|
|
|
|
Where buffer is the location to return the challenge and buflen is the
|
|
length of that buffer. The maximum size of the buffer is determined
|
|
by NSH_FILEIOSIZE. An appropriate location for the
|
|
implementation of platform_challenge would be within apps/platform/<board>.
|
|
|
|
One newline will be inserted after the platform-supplied message.
|
|
|
|
platform_challenge() is prototyped and described in apps/include/nshlib/nshlib.h
|
|
which may be included like:
|
|
|
|
#include "nshlib/nshlib.h"
|
|
|
|
config NSH_PLATFORM_SKIP_LOGIN
|
|
bool "Platform skip login"
|
|
default n
|
|
---help---
|
|
If this option is selected, the NSH will call into platform-specific
|
|
logic in order to skip login. The function prototype for this
|
|
call is:
|
|
|
|
int platform_skip_login(void);
|
|
|
|
endif # NSH_LOGIN
|
|
endif # NSH_LIBRARY
|
|
endmenu # NSH Library
|