#
# Copyright (c) 2016 Intel Corporation
#
# SPDX-License-Identifier: Apache-2.0
#

# Hidden. Automatically selected by file systems or FCB that need it
config FS_FLASH_STORAGE_PARTITION
	bool
	default n

menu "File Systems"

config FILE_SYSTEM
	bool "File system support"
	default n
	help
	  Enables support for file system.

config SYS_LOG_FS_LEVEL
	int
	prompt "File System log level"
	depends on SYS_LOG
	default 0
	help
	  Sets log level for File System drivers.
	  Levels are:
	  - 0 OFF, do not write
	  - 1 ERROR, only write SYS_LOG_ERR
	  - 2 WARNING, write SYS_LOG_WRN in addition to previous level
	  - 3 INFO, write SYS_LOG_INF in addition to previous levels
	  - 4 DEBUG, write SYS_LOG_DBG in addition to previous levels

if FILE_SYSTEM

config FAT_FILESYSTEM_ELM
	bool "ELM FAT File System"
	select DISK_ACCESS
	help
	  Use the ELM FAT File system implementation.

config FILE_SYSTEM_NFFS
	bool "NFFS file system support"
	select FLASH_PAGE_LAYOUT
	select FS_FLASH_STORAGE_PARTITION
	help
	  Enables NFFS file system support.
	  Note: NFFS requires 1-byte unaligned access to flash thus it
	  will not work on devices that support only aligned flash access.

config FILE_SYSTEM_SHELL
	bool "Enable file system shell"
	depends on CONSOLE_SHELL
	help
	  This shell provides basic browsing of the contents of the
	  file system.

menu "FatFs Settings"
	visible if FAT_FILESYSTEM_ELM

config FS_FATFS_NUM_FILES
	int "Maximum number of opened files"
	default 4

config FS_FATFS_NUM_DIRS
	int "Maximum number of opened directories"
	default 4
endmenu

menu "NFFS Settings"
	visible if FILE_SYSTEM_NFFS

config FS_NFFS_FLASH_DEV_NAME
	string
	prompt "Flash device name to be used"

config FS_NFFS_NUM_INODES
	int "Maximum number of inodes"
	range 1 32768
	default 100

config FS_NFFS_NUM_BLOCKS
	int "Maximum number of blocks"
	range 1 32768
	default 100

config FS_NFFS_NUM_FILES
	int "Maximum number of opened files"
	range 1 256
	default 4

config FS_NFFS_NUM_DIRS
	int "Maximum number of opened directories"
	range 1 256
	default 4

config FS_NFFS_NUM_CACHE_INODES
	int "Number of cached files' inodes"
	range 1 512
	default 4

config FS_NFFS_NUM_CACHE_BLOCKS
	int "Number of cached blocks"
	range 1 512
	default 64

source "ext/fs/nffs/Kconfig"

endmenu

endif # FILE_SYSTEM

source "subsys/fs/fcb/Kconfig"
source "subsys/fs/nvs/Kconfig"

endmenu
