summaryrefslogtreecommitdiff
path: root/components/utilities/libadt/Kconfig
diff options
context:
space:
mode:
Diffstat (limited to 'components/utilities/libadt/Kconfig')
-rw-r--r--components/utilities/libadt/Kconfig65
1 files changed, 65 insertions, 0 deletions
diff --git a/components/utilities/libadt/Kconfig b/components/utilities/libadt/Kconfig
index bb421cf8b0..6665f7e7d2 100644
--- a/components/utilities/libadt/Kconfig
+++ b/components/utilities/libadt/Kconfig
@@ -2,23 +2,88 @@ menuconfig RT_USING_ADT
bool "Enable ADT(abstract data type)"
default y if ARCH_MM_MMU
default n
+ help
+ ADT(abstract data type) are a set of general interfaces that encapsulate commonly used data structures.
+
+ ADT's Core Functions and Components:
+ AVL Tree (RT_USING_ADT_AVL)
+ Bitmap (RT_USING_ADT_BITMAP)
+ Hash Table (RT_USING_ADT_HASHMAP)
+ Reference Counting API (RT_USING_ADT_REF)
+
+ Features and Advantages of ADT:
+ Abstract Interface: Hides the implementation details of data structures; only a unified interface needs to be called.
+ Customizability: Reduces system resource consumption through Kconfig configuration.
+ Generality: Applicable to various scenarios.
+
+ Once enabled, you can use the AVL tree, bitmap, hash table, and reference counting APIs.
config RT_USING_ADT_AVL
bool "AVL tree"
depends on RT_USING_ADT
default y
+ help
+ An AVL tree (RT_USING_ADT_AVL) is a self-balancing binary search tree.
+
+ Core capabilities:
+ Supports efficient insertion, deletion, and search operations;
+ Data is naturally ordered, facilitating range queries.
+
+ Typical scenarios:
+ Task priority sorting;
+ Log timestamp indexing;
+ Ordered management of dynamic configuration items.
+
+ Once enabled, AVL trees can be used (ADT must be enabled).
config RT_USING_ADT_BITMAP
bool "Bitmap"
depends on RT_USING_ADT
default y
+ help
+ A bitmap (RT_USING_ADT_BITMAP) represents a set of states using consecutive binary bits.
+
+ Core capabilities:
+ Extreme memory efficiency;
+ Fast set, clear, and query operations based on bitwise operations.
+
+ Typical scenarios:
+ Resource allocation flags;
+ Permission switches;
+ State set management.
+
+ Once enabled, bitmaps can be used (ADT must be enabled).
config RT_USING_ADT_HASHMAP
bool "HashMap"
depends on RT_USING_ADT
default y
+ help
+ Hash Table (RT_USING_ADT_HASHMAP) is a storage structure based on key-value mapping.
+
+ Core capabilities:
+ Average lookup, insertion, and deletion times are close to O(1);
+ Supports custom hash functions and key comparison rules, adapting to different key types.
+
+ Typical scenarios:
+ Scenarios requiring fast object lookup using unique identifiers;
+ String key-value pair configuration;
+ High-frequency query scenarios.
+
+ Once enabled, HashMap can be used (ADT must be enabled).
config RT_USING_ADT_REF
bool "Reference API"
depends on RT_USING_ADT
default y
+ help
+ The Reference Counting API (RT_USING_ADT_REF) is a mechanism for managing object lifecycles through a counter.
+
+ Core capabilities:
+ Simplifies the release logic of shared resources across multiple modules;
+ automatically maintains the lifecycle without requiring manual tracking of object users.
+
+ Typical scenarios:
+ Multi-threaded/multi-module shared resources.
+
+ Once enabled, Reference API can be used (ADT must be enabled).