xref: /aosp_15_r20/external/pigweed/pw_kvs/pw_kvs_private/config.h (revision 61c4878ac05f98d0ceed94b57d316916de578985)
1 // Copyright 2020 The Pigweed Authors
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License"); you may not
4 // use this file except in compliance with the License. You may obtain a copy of
5 // the License at
6 //
7 //     https://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
11 // WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
12 // License for the specific language governing permissions and limitations under
13 // the License.
14 
15 // Utilities for building std::byte arrays from strings or integer values.
16 #pragma once
17 
18 #include <cstddef>
19 
20 /// @def PW_KVS_LOG_LEVEL
21 ///
22 /// Which log level to use for `pw_kvs` logs.
23 #ifndef PW_KVS_LOG_LEVEL
24 #define PW_KVS_LOG_LEVEL PW_LOG_LEVEL_INFO
25 #endif  // PW_KVS_LOG_LEVEL
26 
27 /// @def PW_KVS_MAX_FLASH_ALIGNMENT
28 ///
29 /// The maximum flash alignment supported.
30 #ifndef PW_KVS_MAX_FLASH_ALIGNMENT
31 #define PW_KVS_MAX_FLASH_ALIGNMENT 256UL
32 #endif  // PW_KVS_MAX_FLASH_ALIGNMENT
33 
34 static_assert((PW_KVS_MAX_FLASH_ALIGNMENT >= 16UL),
35               "Max flash alignment is required to be at least 16");
36 
37 /// @def PW_KVS_REMOVE_DELETED_KEYS_IN_HEAVY_MAINTENANCE
38 ///
39 /// Whether to remove deleted keys in heavy maintanence. This feature costs
40 /// some code size (>1KB) and is only necessary if arbitrary key names are
41 /// used. Without this feature, deleted key entries can fill the KVS, making it
42 /// impossible to add more keys, even though most keys are deleted.
43 #ifndef PW_KVS_REMOVE_DELETED_KEYS_IN_HEAVY_MAINTENANCE
44 #define PW_KVS_REMOVE_DELETED_KEYS_IN_HEAVY_MAINTENANCE 1
45 #endif  // PW_KVS_REMOVE_DELETED_KEYS_IN_HEAVY_MAINTENANCE
46 
47 namespace pw::kvs {
48 
49 inline constexpr size_t kMaxFlashAlignment = PW_KVS_MAX_FLASH_ALIGNMENT;
50 
51 }  // namespace pw::kvs
52