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

config LIBC_LZF
	bool "LZF compression"
	default n
	---help---
		Enable the LZF compression library from Marc Alexander Lehmann

if LIBC_LZF

choice
	prompt "Compression options"
	default LIBC_LZF_SMALL
	---help---
		Trade-offs between faster and smaller compression.  These sections
		have no effect on decompression.

config LIBC_LZF_SMALL
	bool "Better compression"

config LIBC_LZF_FAST
	bool "Faster compression"

config LIBC_LZF_FASTEST
	bool "Fastest compression"

endchoice # Compression options

config LIBC_LZF_HLOG
	int "Log2 Hash table size"
	default 13
	range 1 22
	---help---
		Size of hashtable is (1 << HLOG) * sizeof (char *).  Decompression is
		independent of the hash table size the difference between 15 and 14 is
		very small for small blocks (and 14 is usually a bit faster).  For a
		low-memory/faster configuration, use HLOG == 13;  For best compression,
		use 15 or 16 (or more, up to 22).

		Memory usage for the hash table will be approximately:

			4 * (1 << CONFIG_LIBC_LZF_HLOG)

		For the default setting of 13, this is 32Kb.  A setting of 12 would
		be half that or about 16Kb.

		The application calling lzf_compress() must provide the hash table to
		the compressor and may allocate that memory in the most efficient way
		for the application.  The hash table is not necessary if your application
		only decompresses.

config LIBC_LZF_ALIGN
	bool "Strict alignment"
	default y
	---help---
		Unconditionally aligning does not cost very much, so do it if unsure.

endif # LIBC_LZF
