From d179f039d1e099f88f16bdf6cbe2f2cf5e051cd0 Mon Sep 17 00:00:00 2001 From: Gregg Date: Wed, 10 Jan 2024 22:05:26 -0600 Subject: [PATCH] Moved all PSRAM definitions into separate PSRAM.h file Now allows #include "HomeSpan.h" to be removed from TLV dependencies --- src/HomeSpan.h | 19 --------------- src/PSRAM.h | 63 ++++++++++++++++++++++++++++++++++++++++++++++++++ src/TLV8.cpp | 3 --- src/TLV8.h | 2 +- src/Utils.h | 12 +--------- 5 files changed, 65 insertions(+), 34 deletions(-) create mode 100644 src/PSRAM.h diff --git a/src/HomeSpan.h b/src/HomeSpan.h index 7dc224c..7e1e591 100644 --- a/src/HomeSpan.h +++ b/src/HomeSpan.h @@ -70,25 +70,6 @@ enum { /////////////////////////////// -template -struct Mallocator { - typedef T value_type; - Mallocator() = default; - template constexpr Mallocator(const Mallocator&) noexcept {} - [[nodiscard]] T* allocate(std::size_t n) { - if(n > std::size_t(-1) / sizeof(T)) throw std::bad_alloc(); - if(auto p = static_cast(HS_MALLOC(n*sizeof(T)))) return p; - throw std::bad_alloc(); - } - void deallocate(T* p, std::size_t) noexcept { std::free(p); } -}; -template -bool operator==(const Mallocator&, const Mallocator&) { return true; } -template -bool operator!=(const Mallocator&, const Mallocator&) { return false; } - -/////////////////////////////// - #define STATUS_UPDATE(LED_UPDATE,MESSAGE_UPDATE) {homeSpan.statusLED->LED_UPDATE;if(homeSpan.statusCallback)homeSpan.statusCallback(MESSAGE_UPDATE);} enum HS_STATUS { diff --git a/src/PSRAM.h b/src/PSRAM.h new file mode 100644 index 0000000..2738c29 --- /dev/null +++ b/src/PSRAM.h @@ -0,0 +1,63 @@ +/********************************************************************************* + * MIT License + * + * Copyright (c) 2020-2023 Gregg E. Berman + * + * https://github.com/HomeSpan/HomeSpan + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + ********************************************************************************/ + +#pragma once + +#include + +#ifndef HS_MALLOC + +#if defined(BOARD_HAS_PSRAM) +#define HS_MALLOC ps_malloc +#define HS_CALLOC ps_calloc +#define HS_REALLOC ps_realloc +#define ps_new(X) new(ps_malloc(sizeof(X)))X +#else +#define HS_MALLOC malloc +#define HS_CALLOC calloc +#define HS_REALLOC realloc +#define ps_new(X) new X +#endif + +template +struct Mallocator { + typedef T value_type; + Mallocator() = default; + template constexpr Mallocator(const Mallocator&) noexcept {} + [[nodiscard]] T* allocate(std::size_t n) { + if(n > std::size_t(-1) / sizeof(T)) throw std::bad_alloc(); + if(auto p = static_cast(HS_MALLOC(n*sizeof(T)))) return p; + throw std::bad_alloc(); + } + void deallocate(T* p, std::size_t) noexcept { std::free(p); } +}; +template +bool operator==(const Mallocator&, const Mallocator&) { return true; } +template +bool operator!=(const Mallocator&, const Mallocator&) { return false; } + +#endif diff --git a/src/TLV8.cpp b/src/TLV8.cpp index 8fcd24e..2d6d437 100644 --- a/src/TLV8.cpp +++ b/src/TLV8.cpp @@ -218,9 +218,6 @@ const char *TLV8::getName(uint8_t tag){ void TLV8::print(TLV8_it it1, TLV8_it it2){ - if(homeSpan.getLogLevel()<2) - return; - while(it1!=it2){ const char *name=getName((*it1).tag); if(name) diff --git a/src/TLV8.h b/src/TLV8.h index 3e86f86..cd50c45 100644 --- a/src/TLV8.h +++ b/src/TLV8.h @@ -31,7 +31,7 @@ #include #include -#include "HomeSpan.h" +#include "PSRAM.h" struct tlv8_t { uint8_t tag; diff --git a/src/Utils.h b/src/Utils.h index 756511d..bab6c9c 100644 --- a/src/Utils.h +++ b/src/Utils.h @@ -29,17 +29,7 @@ #include -#if defined(BOARD_HAS_PSRAM) -#define HS_MALLOC ps_malloc -#define HS_CALLOC ps_calloc -#define HS_REALLOC ps_realloc -#define ps_new(X) new(ps_malloc(sizeof(X)))X -#else -#define HS_MALLOC malloc -#define HS_CALLOC calloc -#define HS_REALLOC realloc -#define ps_new(X) new X -#endif +#include "PSRAM.h" namespace Utils {