# Copyright (c) 2023 Antmicro
# SPDX-License-Identifier: Apache-2.0

# Ext2 file system

config FILE_SYSTEM_EXT2
	bool "Ext2 file system support"
	depends on FILE_SYSTEM_LIB_LINK
	help
	  Enable Ext2 file system support.

module = EXT2
module-str = Ext2
source "subsys/logging/Kconfig.template.log_config"

if FILE_SYSTEM_EXT2

menu "Ext2 file system Settings"
	visible if FILE_SYSTEM_EXT2

config EXT2_MAX_FILES
	int "Maximum number of opened inodes"
	default 10

config EXT2_MAX_BLOCK_SIZE
	int "Maximum size of supported block"
	range 1024 4096
	default 4096
	help
	  This flag is used to determine size of internal structures that
	  are used to store fetched blocks.

config EXT2_MAX_BLOCK_COUNT
	int "Maximum number of blocks that might be used"
	default 10
	help
	  This flag is used to determine size of internal structures that
	  are used to store fetched blocks.

config EXT2_DISK_STARTING_SECTOR
	int "Ext2 starting sector"
	default 0
	help
	  The current Ext2 implementation does not support GUID Partition Table. The starting sector
	  of the file system must be specified by this option.

config EXT2_SUPERBLOCK_ALIGNMENT
	int "Ext2 superblock alignment"
	default 1
	help
	  Some SD host controllers require alignment of their data buffers
	  in order for DMA to work correctly. Devices should change default of
	  this value if they require alignment. This represents the alignment
	  of struct ext2_disk_superblock in bytes.

DT_COMPAT_ZEPHYR_FSTAB_EXT2 := zephyr,fstab,ext2
config EXT2_FSTAB_AUTOMOUNT
	bool "Support for fstab auto-mounting"
	depends on $(dt_compat_enabled,$(DT_COMPAT_ZEPHYR_FSTAB_EXT2))
	default y
	help
	  Enable automatic mounting of Ext2 file system at boot time.

endmenu
endif
