Boot Linux faster!

Check our new training course

Boot Linux faster!

Check our new training course
and Creative Commons CC-BY-SA
lecture and lab materials

Bootlin logo

Elixir Cross Referencer

#
# Copyright (c) 2018 Nordic Semiconductor ASA
#
# SPDX-License-Identifier: Apache-2.0
#

menuconfig SETTINGS
	bool "Enable settings subsystem with non-volatile storage"
	# Only NFFS is currently supported as FS.
	# The reason in that FatFs doesn't implement the fs_rename() API
	depends on (FILE_SYSTEM && FILE_SYSTEM_NFFS) || (FCB && FLASH_PAGE_LAYOUT)
	help
	  The settings subsystem allows its users to serialize and
	  deserialize state in memory into and from non-volatile memory.
	  It supports several back-ends to store and load serialized data from
	  and it can do so atomically for all involved modules.

if SETTINGS
module = SETTINGS
module-str = settings
source "subsys/logging/Kconfig.template.log_config"
endif

# Hidden option to enable encoding length into settings entry
config SETTINGS_ENCODE_LEN
	depends on SETTINGS
	bool

config SETTINGS_USE_BASE64
	bool "encoding value using base64"
	depends on SETTINGS
	select BASE64
	help
	  Enables values encoding using Base64.

choice
	prompt "Storage back-end"
	default SETTINGS_FCB if FCB
	depends on SETTINGS
	help
	  Storage back-end to be used by the settings subsystem.

config SETTINGS_FCB
	bool "FCB"
	depends on FCB
	help
	  Use FCB as a settings storage back-end.

config SETTINGS_FS
	bool "File System"
	depends on FILE_SYSTEM
	select SETTINGS_ENCODE_LEN
	help
	  Use a file system as a settings storage back-end.
endchoice

config SETTINGS_FCB_NUM_AREAS
	int "Number of flash areas used by the settings subsystem"
	default 8
	depends on SETTINGS && SETTINGS_FCB
	help
	  Number of areas to allocate in the settings FCB. A smaller number is
	  used if the flash hardware cannot support this value.

config SETTINGS_FCB_MAGIC
	hex "FCB magic for the settings subsystem"
	default 0xc0ffeeee
	depends on SETTINGS && SETTINGS_FCB
	help
	  Magic 32-bit word for to identify valid settings area

config SETTINGS_FS_DIR
	string "Serialization directory"
	default "/settings"
	depends on SETTINGS && SETTINGS_FS
	help
	  Directory where the settings data is stored

config SETTINGS_FS_FILE
	string "Default settings file"
	default "/settings/run"
	depends on SETTINGS && SETTINGS_FS
	help
	  Full path to the default settings file.

config SETTINGS_FS_MAX_LINES
	int "Compression threshold"
	default 32
	depends on SETTINGS && SETTINGS_FS
	help
	  Limit how many items stored in a file before compressing