CDC Badge OS
Firmware for the CDC Badge v1.0 hardware security key
Loading...
Searching...
No Matches
cdc::core Namespace Reference

Namespaces

namespace  cp437
namespace  hash

Classes

class  AttestationKeyService
class  CpuStats
 On-demand aggregate CPU-load read-out from FreeRTOS run-time stats. More...
class  GcmContext
 RAII wrapper around mbedtls_gcm_context. Non-copyable, non-movable. More...
struct  Event
class  EventBus
struct  TropicWipeResult
class  IChallengeResponder
 Challenge-response provider interface. More...
class  IKeyboardProvider
struct  ModuleMenuItem
 Menu item registered by a module. More...
struct  LockScreenContextItem
 Lock screen context menu item registered by a module. More...
class  IModule
 Module interface that extends IService with module-specific features. More...
class  IService
class  ModuleBase
 Base implementation that handles common module lifecycle boilerplate. More...
class  ModuleRegistry
class  PinManager
struct  CapsFreeDeleter
 Deleter for buffers allocated via heap_caps_malloc. More...
struct  CStdFreeDeleter
 Deleter for buffers allocated via malloc/realloc. More...
struct  FileCloseDeleter
 Deleter for FILE* opened with std::fopen. More...
class  NvsScope
 RAII wrapper for an NVS handle. More...
class  MutexGuard
 RAII wrapper for a FreeRTOS semaphore / mutex. More...
class  RecursiveMutexGuard
 Scoped guard for a FreeRTOS recursive mutex. More...
class  ServiceRegistry
class  SlotManager
 Manages logical-to-physical RMEM slot mapping for module storage layers. More...
class  SystemLock
 Global lockdown latch. More...
class  TropicSlotMap
class  TropicStorage
struct  UsbHidCallbacks
struct  UsbInterfaceSpec
class  UsbManager
struct  SlotMapEntry

Typedefs

using EventHandler = void(*)(const Event&)
using ModuleInitFunc = void(*)()
template<typename T>
using PsramUniquePtr = std::unique_ptr<T[], CapsFreeDeleter>
template<typename T>
using CStdUniquePtr = std::unique_ptr<T, CStdFreeDeleter>
 unique_ptr for buffers allocated via realloc/malloc (e.g. esp_http_client body chunks).
using FilePtr = std::unique_ptr<std::FILE, FileCloseDeleter>
 unique_ptr for FILE* handles. Destructor calls std::fclose.

Enumerations

enum class  EventType : uint8_t {
  KEY_PRESSED , KEY_RELEASED , KEY_LONG_PRESS , POWER_USB_CONNECTED ,
  POWER_USB_DISCONNECTED , POWER_CHARGING , POWER_BATTERY_LOW , POWER_BATTERY_CRITICAL ,
  SYSTEM_UNLOCK , SYSTEM_LOCK , SYSTEM_SLEEP , SYSTEM_WAKE ,
  SYSTEM_SLEEP_INCOMING , BLE_CONNECTED , BLE_DISCONNECTED , BLE_PAIRING_REQUEST ,
  BLE_CONSENT_REQUEST , BLE_EXCHANGE_COMPLETE , TIMER_TICK , MODULE_EVENT ,
  MODULE_ERROR , EVENT_COUNT
}
enum class  MenuLocation : uint8_t {
  MAIN_MENU , TOOLS_MENU , SETTINGS_MENU , BLUETOOTH_MENU ,
  WIFI_MENU , EXPERT_MENU
}
 Menu location for module registration. More...
enum class  ServiceState : uint8_t {
  UNINITIALIZED , INITIALIZED , STARTED , STOPPED ,
  ERROR
}
enum class  ModuleStartFailure { SlotError , UsbBudgetFull , Generic }
 Classified cause of a failed startModule() call. More...
enum class  ServiceType { KEYBOARD , CHALLENGE_RESPONDER , CLIPBOARD , NOTIFICATION }
enum class  LockdownReason : uint8_t {
  NONE = 0 , TR01_ALARM_MODE , TR01_UNREACHABLE , TR01_INIT_FAILED ,
  NVS_UNREADABLE
}
 Reason the system entered lockdown. More...
enum class  UsbHidInterface : uint8_t { Fido = 0 , Keyboard = 1 , Ccid = 2 }
enum class  UsbInterfaceClass : uint8_t { Hid = 0 , Ccid = 1 }

Functions

void writeBe32 (uint8_t *out, uint32_t v)
 Writes a 32-bit value to a buffer in big-endian order.
uint32_t readBe32 (const uint8_t *in)
 Reads a 32-bit value from a buffer in big-endian order.
void writeBe16 (uint8_t *out, uint16_t v)
 Writes a 16-bit value to a buffer in big-endian order.
uint16_t readBe16 (const uint8_t *in)
 Reads a 16-bit value from a buffer in big-endian order.
bool aesGcm256Seal (const uint8_t key[32], const uint8_t *iv, size_t ivLen, const uint8_t *aad, size_t aadLen, const uint8_t *pt, size_t ptLen, uint8_t *ctOut, uint8_t tagOut[16])
 Encrypts pt with AES-256-GCM and produces a 16-byte tag.
bool aesGcm256Open (const uint8_t key[32], const uint8_t *iv, size_t ivLen, const uint8_t *aad, size_t aadLen, const uint8_t *ct, size_t ctLen, const uint8_t tag[16], uint8_t *ptOut)
 Authenticates and decrypts ct with AES-256-GCM.
TropicWipeResult wipeTropic (hal::ISecureElement *se, uint16_t progressEvery=0, void(*onRmemProgress)(uint16_t current, uint16_t total)=nullptr)
 Iterates every TROPIC01 ECC slot (0..ECC_SLOT_COUNT-1) and R-Memory slot (0..RMEM_SLOT_COUNT-1), deleting whatever is currently populated. Sets sessionReady=false and returns immediately if no active SE session is available.
esp_err_t wipeNvs ()
 Erases the NVS partition and re-initializes it blank.
void selfDestruct ()
 Triggers a full factory wipe on the next boot and restarts.
IKeyboardProvidergetKeyboard ()
template<typename T>
PsramUniquePtr< T > psramAlloc (std::size_t count) noexcept
 Allocate count elements of T in PSRAM (8-bit capable region).
FilePtr openFile (const char *path, const char *mode) noexcept
 Open a FILE* and wrap it in a FilePtr.
const char * skipSpaces (const char *s)
 Advances over leading ASCII whitespace in a C string.
const char * nextToken (const char *s, char *out, size_t outSize)
 Extracts one whitespace-delimited token from a string.
void unescapeSpaces (char *s)
 Replaces every \ escape sequence with a single space character in-place.
static void removeNameFromList (const char *list, const char *name, char *dest, size_t capacity)
 Removes a name from a comma-separated list, in place.
static bool addNameToList (char *list, const char *name, size_t capacity)
 Appends a name to a comma-separated list, in place.
static bool verify_payload_signature (hal::ISecureElement *se, const uint8_t *payload, size_t payload_len, const uint8_t *sig, size_t sig_len)
 Loads serialized PIN/KDF state from secure-element R-Memory.
static const char * serviceTypeName (ServiceType type)
 Converts a service type enum to a log-friendly string.

Variables

constexpr const char * kBootProfileNs = "boot_profile"
constexpr const char * kBootProfileKey = "profile"
static constexpr const char * MODULES_NVS_NAMESPACE = "modules"
 NVS garbage collection for removed modules.
static constexpr const char * MODULES_NVS_KEY = "list"
static constexpr const char * MODULES_NVS_KEY_DISABLED = "disabled"
static constexpr size_t MAX_MODULE_LIST_SIZE = 256
static const SlotMapEntry kSlotMap []
static constexpr size_t kSlotMapCount = sizeof(kSlotMap) / sizeof(kSlotMap[0])
static constexpr uint8_t CACHE_VERSION = 1
static constexpr const char * NVS_NAMESPACE = "tr01_meta"
static constexpr const char * NVS_KEY_HEADER = "hdr"

Typedef Documentation

◆ CStdUniquePtr

template<typename T>
using cdc::core::CStdUniquePtr = std::unique_ptr<T, CStdFreeDeleter>

unique_ptr for buffers allocated via realloc/malloc (e.g. esp_http_client body chunks).

Definition at line 68 of file Raii.h.

◆ EventHandler

using cdc::core::EventHandler = void(*)(const Event&)

Event handler function type

Definition at line 66 of file EventBus.h.

◆ FilePtr

using cdc::core::FilePtr = std::unique_ptr<std::FILE, FileCloseDeleter>

unique_ptr for FILE* handles. Destructor calls std::fclose.

Definition at line 79 of file Raii.h.

◆ ModuleInitFunc

using cdc::core::ModuleInitFunc = void(*)()

Module Registry - manages all registered modules

Provides:

  • Module registration and lifecycle management
  • Menu item collection from all modules
  • Event dispatch to modules (unlock, lock, USB, tick)

Definition at line 18 of file ModuleRegistry.h.

◆ PsramUniquePtr

template<typename T>
using cdc::core::PsramUniquePtr = std::unique_ptr<T[], CapsFreeDeleter>

PSRAM-backed unique_ptr for byte/struct arrays. Use psramAlloc<T>(n) to construct; default-constructed instance owns nothing.

Definition at line 44 of file Raii.h.

Enumeration Type Documentation

◆ EventType

enum class cdc::core::EventType : uint8_t
strong

Event types for system-wide communication

Enumerator
KEY_PRESSED 
KEY_RELEASED 
KEY_LONG_PRESS 
POWER_USB_CONNECTED 
POWER_USB_DISCONNECTED 
POWER_CHARGING 
POWER_BATTERY_LOW 
POWER_BATTERY_CRITICAL 
SYSTEM_UNLOCK 
SYSTEM_LOCK 
SYSTEM_SLEEP 
SYSTEM_WAKE 
SYSTEM_SLEEP_INCOMING 
BLE_CONNECTED 
BLE_DISCONNECTED 
BLE_PAIRING_REQUEST 
BLE_CONSENT_REQUEST 
BLE_EXCHANGE_COMPLETE 
TIMER_TICK 
MODULE_EVENT 
MODULE_ERROR 
EVENT_COUNT 

Definition at line 11 of file EventBus.h.

◆ LockdownReason

enum class cdc::core::LockdownReason : uint8_t
strong

Reason the system entered lockdown.

Enumerator
NONE 
TR01_ALARM_MODE 

TROPIC01 reported ALARM bit (tamper/protocol violation).

TR01_UNREACHABLE 

TROPIC01 not responding (MISO stuck at 0x00 / 0xFF).

TR01_INIT_FAILED 

TROPIC01 could not be initialized at boot.

NVS_UNREADABLE 

NVS partition cannot be read for an unexpected reason.

Definition at line 11 of file SystemLock.h.

◆ MenuLocation

enum class cdc::core::MenuLocation : uint8_t
strong

Menu location for module registration.

Enumerator
MAIN_MENU 
TOOLS_MENU 
SETTINGS_MENU 
BLUETOOTH_MENU 
WIFI_MENU 
EXPERT_MENU 

Definition at line 17 of file IModule.h.

◆ ModuleStartFailure

enum class cdc::core::ModuleStartFailure
strong

Classified cause of a failed startModule() call.

Enumerator
SlotError 

Module reported a slot-map error.

UsbBudgetFull 

HID interface budget is exhausted.

Generic 

Start failed for an unspecified reason.

Definition at line 23 of file ModuleRegistry.h.

◆ ServiceState

enum class cdc::core::ServiceState : uint8_t
strong

Service lifecycle states

Enumerator
UNINITIALIZED 
INITIALIZED 
STARTED 
STOPPED 
ERROR 

Definition at line 10 of file IService.h.

◆ ServiceType

enum class cdc::core::ServiceType
strong

Well-known service types for typed service discovery. Use these with provide<T>() and request<T>() for type-safe inter-module communication.

Enumerator
KEYBOARD 
CHALLENGE_RESPONDER 
CLIPBOARD 
NOTIFICATION 

Definition at line 12 of file ServiceRegistry.h.

◆ UsbHidInterface

enum class cdc::core::UsbHidInterface : uint8_t
strong
Enumerator
Fido 
Keyboard 
Ccid 

Definition at line 8 of file UsbManager.h.

◆ UsbInterfaceClass

enum class cdc::core::UsbInterfaceClass : uint8_t
strong
Enumerator
Hid 
Ccid 

Definition at line 14 of file UsbManager.h.

Function Documentation

◆ addNameToList()

bool cdc::core::addNameToList ( char * list,
const char * name,
size_t capacity )
static

Appends a name to a comma-separated list, in place.

Adds name to list, inserting a leading comma when the list is non-empty. No action is taken when the resulting string would exceed capacity.

Parameters
listIn/out buffer holding the comma-separated list.
nameName to append.
capacitySize of list in bytes including the null terminator.
Returns
true on success, false if the list is full.

Definition at line 715 of file ModuleRegistry.cpp.

References name.

Referenced by cdc::core::ModuleRegistry::setModuleEnabled().

◆ aesGcm256Open()

bool cdc::core::aesGcm256Open ( const uint8_t key[32],
const uint8_t * iv,
size_t ivLen,
const uint8_t * aad,
size_t aadLen,
const uint8_t * ct,
size_t ctLen,
const uint8_t tag[16],
uint8_t * ptOut )
inline

Authenticates and decrypts ct with AES-256-GCM.

Parameters
key32-byte AES key.
ivInitialization vector / nonce.
ivLenIV length in bytes (12 for the canonical GCM nonce).
aadAdditional authenticated data (may be nullptr if aadLen is 0).
aadLenAAD length in bytes.
ctCiphertext input.
ctLenCiphertext length in bytes.
tag16-byte authentication tag.
ptOutPlaintext output buffer of at least ctLen bytes.
Returns
true on success, false on tag mismatch or any mbedTLS error.

Definition at line 79 of file Crypto.h.

References cdc::core::GcmContext::get().

Referenced by host_aes_gcm_decrypt(), and load_slot_decrypted().

◆ aesGcm256Seal()

bool cdc::core::aesGcm256Seal ( const uint8_t key[32],
const uint8_t * iv,
size_t ivLen,
const uint8_t * aad,
size_t aadLen,
const uint8_t * pt,
size_t ptLen,
uint8_t * ctOut,
uint8_t tagOut[16] )
inline

Encrypts pt with AES-256-GCM and produces a 16-byte tag.

Parameters
key32-byte AES key.
ivInitialization vector / nonce.
ivLenIV length in bytes (12 for the canonical GCM nonce).
aadAdditional authenticated data (may be nullptr if aadLen is 0).
aadLenAAD length in bytes.
ptPlaintext input.
ptLenPlaintext length in bytes.
ctOutCiphertext output buffer of at least ptLen bytes.
tagOut16-byte authentication tag output.
Returns
true on success, false on any mbedTLS error.

Definition at line 48 of file Crypto.h.

References cdc::core::GcmContext::get().

Referenced by host_aes_gcm_encrypt(), and save_slot_encrypted().

◆ getKeyboard()

IKeyboardProvider * cdc::core::getKeyboard ( )

◆ nextToken()

const char * cdc::core::nextToken ( const char * s,
char * out,
size_t outSize )
inline

Extracts one whitespace-delimited token from a string.

Supports \ (backslash-space) as an escaped literal space inside a token, so tokens may contain space characters when escaped.

Parameters
sInput cursor position.
outOutput token buffer (will be null-terminated on success).
outSizeOutput buffer capacity.
Returns
Pointer to the next unread input position, or nullptr when no token exists.

Definition at line 31 of file StringUtils.h.

References skipSpaces().

◆ openFile()

FilePtr cdc::core::openFile ( const char * path,
const char * mode )
inlinenoexcept

◆ psramAlloc()

template<typename T>
PsramUniquePtr< T > cdc::core::psramAlloc ( std::size_t count)
noexcept

◆ readBe16()

uint16_t cdc::core::readBe16 ( const uint8_t * in)
inline

Reads a 16-bit value from a buffer in big-endian order.

Parameters
inSource buffer of at least two bytes.
Returns
Decoded value.

Definition at line 51 of file Bytes.h.

◆ readBe32()

uint32_t cdc::core::readBe32 ( const uint8_t * in)
inline

Reads a 32-bit value from a buffer in big-endian order.

Parameters
inSource buffer of at least four bytes.
Returns
Decoded value.

Definition at line 29 of file Bytes.h.

◆ removeNameFromList()

void cdc::core::removeNameFromList ( const char * list,
const char * name,
char * dest,
size_t capacity )
static

Removes a name from a comma-separated list, in place.

Iterates through tokens of the input list and writes back the result with any token equal to name filtered out. Other tokens keep their original order. The destination must have capacity for at least capacity bytes (including the terminating null) and may alias list.

Parameters
listSource comma-separated list (must be null-terminated).
nameToken to remove (case-sensitive, exact match).
destDestination buffer to receive the filtered list.
capacitySize of dest in bytes including the null terminator.

Definition at line 666 of file ModuleRegistry.cpp.

References name.

Referenced by cdc::core::ModuleRegistry::setModuleEnabled().

◆ selfDestruct()

void cdc::core::selfDestruct ( )

Triggers a full factory wipe on the next boot and restarts.

Erases the build-profile marker (kBootProfileNs / kBootProfileKey) from NVS, commits, then reboots. The boot path detects the absent marker and wipes all NVS plus every TROPIC01 ECC/R-Memory slot before reseeding it. The function does not return.

Definition at line 60 of file FactoryReset.cpp.

References kBootProfileKey, and kBootProfileNs.

Referenced by cdc::ui::onPinVerify().

◆ serviceTypeName()

const char * cdc::core::serviceTypeName ( ServiceType type)
static

Converts a service type enum to a log-friendly string.

Parameters
typeService type to convert.
Returns
Constant string representation of the service type.

Definition at line 14 of file ServiceRegistry.cpp.

References CHALLENGE_RESPONDER, CLIPBOARD, KEYBOARD, and NOTIFICATION.

◆ skipSpaces()

const char * cdc::core::skipSpaces ( const char * s)
inline

Advances over leading ASCII whitespace in a C string.

Parameters
sInput string pointer.
Returns
Pointer to first non-whitespace character, or nullptr when input is null.

Definition at line 13 of file StringUtils.h.

Referenced by nextToken().

◆ unescapeSpaces()

void cdc::core::unescapeSpaces ( char * s)
inline

Replaces every \ escape sequence with a single space character in-place.

Parameters
sMutable null-terminated string buffer.

Definition at line 61 of file StringUtils.h.

Referenced by cdc::mod_password::cmd_password_add(), and cdc::mod_password::cmd_password_edit().

◆ verify_payload_signature()

bool cdc::core::verify_payload_signature ( hal::ISecureElement * se,
const uint8_t * payload,
size_t payload_len,
const uint8_t * sig,
size_t sig_len )
static

Loads serialized PIN/KDF state from secure-element R-Memory.

Returns
true on successful load and format validation.

Verifies the ECDSA-P256 attestation signature appended to a stored PIN payload. The signature is produced over the first PAYLOAD_SIZE bytes with the chip-bound key in ECC slot 0 (AttestationKeyService).

If the chip-bound public key has changed (slot 0 was regenerated, e.g. by an attacker who managed to rewrite that slot via the pairing key), the verification will fail and the caller will trigger a re-init with fresh defaults. The signature itself uses random-k ECDSA, so re-saving the same payload produces a different signature — that is fine, only verification matters here.

Definition at line 126 of file PinManager.cpp.

References cdc::core::PinManager::ATTESTATION_ECC_SLOT, curve, cdc::hal::ISecureElement::eccGetPublicKey(), LOG_W, cdc::hal::OK, cdc::hal::P256, SHA256_DIGEST_SIZE, and TAG.

◆ wipeNvs()

esp_err_t cdc::core::wipeNvs ( )

Erases the NVS partition and re-initializes it blank.

Returns
ESP_OK on success, propagated error otherwise.

Definition at line 46 of file FactoryReset.cpp.

References LOG_E, and TAG.

Referenced by checkBuildProfileAndWipeNvs(), and cdc::serial::cmdNvsClear().

◆ wipeTropic()

TropicWipeResult cdc::core::wipeTropic ( hal::ISecureElement * se,
uint16_t progressEvery = 0,
void(* onRmemProgress )(uint16_t current, uint16_t total) = nullptr )

Iterates every TROPIC01 ECC slot (0..ECC_SLOT_COUNT-1) and R-Memory slot (0..RMEM_SLOT_COUNT-1), deleting whatever is currently populated. Sets sessionReady=false and returns immediately if no active SE session is available.

Parameters
seSecure element instance.
progressEveryWhen non-zero, onRmemProgress is invoked every progressEvery R-Memory slots and once on completion. Ignored when onRmemProgress is null.
onRmemProgressOptional progress callback receiving (current, total).
Returns
Wipe statistics.

Definition at line 11 of file FactoryReset.cpp.

References cdc::hal::ISecureElement::ECC_SLOT_COUNT, cdc::hal::ISecureElement::eccDelete(), cdc::core::TropicWipeResult::eccDeleted, cdc::hal::ISecureElement::eccSlotUsed(), cdc::hal::ISecureElement::isSessionActive(), LOG_E, cdc::hal::OK, cdc::hal::ISecureElement::RMEM_SLOT_COUNT, cdc::core::TropicWipeResult::rmemDeleted, cdc::hal::ISecureElement::rmemErase(), cdc::hal::ISecureElement::rmemSlotUsed(), cdc::core::TropicWipeResult::sessionReady, and TAG.

Referenced by cdc::serial::cmdTr01Wipe(), and wipeTropicForFactoryReset().

◆ writeBe16()

void cdc::core::writeBe16 ( uint8_t * out,
uint16_t v )
inline

Writes a 16-bit value to a buffer in big-endian order.

Parameters
outDestination buffer of at least two bytes.
vValue to encode.

Definition at line 41 of file Bytes.h.

◆ writeBe32()

void cdc::core::writeBe32 ( uint8_t * out,
uint32_t v )
inline

Writes a 32-bit value to a buffer in big-endian order.

Parameters
outDestination buffer of at least four bytes.
vValue to encode.

Definition at line 17 of file Bytes.h.

Referenced by u2f_authenticate().

Variable Documentation

◆ CACHE_VERSION

uint8_t cdc::core::CACHE_VERSION = 1
staticconstexpr

Definition at line 13 of file TropicStorage.cpp.

Referenced by cdc::core::TropicStorage::init().

◆ kBootProfileKey

const char* cdc::core::kBootProfileKey = "profile"
inlineconstexpr

Definition at line 14 of file FactoryReset.h.

Referenced by checkBuildProfileAndWipeNvs(), seedBuildProfile(), and selfDestruct().

◆ kBootProfileNs

const char* cdc::core::kBootProfileNs = "boot_profile"
inlineconstexpr

NVS namespace and key of the build-profile marker. The boot path (main.cpp) seeds this key after a completed factory wipe and treats its absence on the next boot as a trigger to wipe NVS and TROPIC01. Shared so the self-destruct trigger erases exactly the key the boot path reads.

Definition at line 13 of file FactoryReset.h.

Referenced by checkBuildProfileAndWipeNvs(), seedBuildProfile(), and selfDestruct().

◆ kSlotMap

const SlotMapEntry cdc::core::kSlotMap[]
static
Initial value:
= {
{ TropicSlotMap::SlotType::ECC, "mod_gpg", static_cast<uint8_t>(2), static_cast<uint16_t>(1), static_cast<uint16_t>(3) }, { TropicSlotMap::SlotType::ECC, "mod_ca", static_cast<uint8_t>(3), static_cast<uint16_t>(4), static_cast<uint16_t>(4) }, { TropicSlotMap::SlotType::ECC, "mod_fido2", static_cast<uint8_t>(4), static_cast<uint16_t>(5), static_cast<uint16_t>(30) }, { TropicSlotMap::SlotType::ECC, "mod_plugins", static_cast<uint8_t>(7), static_cast<uint16_t>(31), static_cast<uint16_t>(31) },
{ TropicSlotMap::SlotType::RMEM, "mod_gpg", static_cast<uint8_t>(2), static_cast<uint16_t>(1), static_cast<uint16_t>(3) }, { TropicSlotMap::SlotType::RMEM, "mod_ca", static_cast<uint8_t>(3), static_cast<uint16_t>(4), static_cast<uint16_t>(4) }, { TropicSlotMap::SlotType::RMEM, "mod_fido2", static_cast<uint8_t>(4), static_cast<uint16_t>(5), static_cast<uint16_t>(31) }, { TropicSlotMap::SlotType::RMEM, "mod_2fa", static_cast<uint8_t>(5), static_cast<uint16_t>(32), static_cast<uint16_t>(131) }, { TropicSlotMap::SlotType::RMEM, "mod_password", static_cast<uint8_t>(6), static_cast<uint16_t>(132), static_cast<uint16_t>(500) }, { TropicSlotMap::SlotType::RMEM, "mod_plugins", static_cast<uint8_t>(7), static_cast<uint16_t>(501), static_cast<uint16_t>(511) },
}

Definition at line 26 of file TropicSlotMap.cpp.

Referenced by cdc::core::TropicSlotMap::computeMapSignature(), cdc::core::TropicSlotMap::forEachRange(), cdc::core::TropicSlotMap::getRangeByModuleId(), and cdc::core::TropicSlotMap::getRangeByName().

◆ kSlotMapCount

◆ MAX_MODULE_LIST_SIZE

size_t cdc::core::MAX_MODULE_LIST_SIZE = 256
staticconstexpr

Definition at line 436 of file ModuleRegistry.cpp.

◆ MODULES_NVS_KEY

const char* cdc::core::MODULES_NVS_KEY = "list"
staticconstexpr

Definition at line 434 of file ModuleRegistry.cpp.

◆ MODULES_NVS_KEY_DISABLED

const char* cdc::core::MODULES_NVS_KEY_DISABLED = "disabled"
staticconstexpr

Definition at line 435 of file ModuleRegistry.cpp.

◆ MODULES_NVS_NAMESPACE

const char* cdc::core::MODULES_NVS_NAMESPACE = "modules"
staticconstexpr

NVS garbage collection for removed modules.

Definition at line 433 of file ModuleRegistry.cpp.

◆ NVS_KEY_HEADER

const char* cdc::core::NVS_KEY_HEADER = "hdr"
staticconstexpr

Definition at line 15 of file TropicStorage.cpp.

◆ NVS_NAMESPACE

const char* cdc::core::NVS_NAMESPACE = "tr01_meta"
staticconstexpr

Definition at line 14 of file TropicStorage.cpp.