#
# For a description of the syntax of this configuration file,
# see the file kconfig-language.txt in the NuttX tools repository.
#

config FS_HOSTFS
	bool "Host File System"
	default n
	depends on !DISABLE_MOUNTPOINT
	---help---
		The Host file system provides a mechanism to mount directories
		from the host OS during simulation mode.  The host directory
		to be "mounted" is specified during the mount command using
		the -o command line switch, such as:

			mount -t hostfs -o fs=/home/user/nuttx_root /host

		For non-NSH operation, the option "fs=home/user/nuttx_root" would
		be passed to the 'mount()' routine using the optional 'void *data'
		parameter.

		The backend implementation is arch-dependent.
		As of writing this, it's implemented for sim, arm and xtensa.

		Note: depending on the backend implementions, hostfs might
		only provide very restricted subset of filesystem operations.

		Sim: It's implemented with direct calls to the host OS API.
		It likely consumes a lot of stack than ordinary NuttX codebase.
		You likely need to make task stack sizes huge (e.g. 64KB) to
		avoid stack overrun.

		Arm, xtensa: It's implemented using a special CPU instruction
		to trigger a trap for a hypervisor.
		If you are using qemu, it has the `-semihosting` command line
		option to enable the handling of the trap.
		Theoretically, it can work for other environments as well.
		E.g. a real hardware + JTAG + OpenOCD.