summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke T. Shumaker <lukeshu@lukeshu.com>2025-02-24 22:54:55 -0700
committerLuke T. Shumaker <lukeshu@lukeshu.com>2025-02-26 16:10:14 -0700
commit66efca9146357621118d565359b91326d1a96d0a (patch)
treebe6d84949d484cf03d56834863c7bd9ffb820587
parentf78a2bdb6942280053ae99a4c7121d90fb847eb8 (diff)
libmisc: private.h: Add IS_IMPLEMENTATION_FOR(name) for use with LM_IF
-rw-r--r--libhw/rp2040_include/libhw/rp2040_hwspi.h5
-rw-r--r--libmisc/include/libmisc/private.h7
2 files changed, 7 insertions, 5 deletions
diff --git a/libhw/rp2040_include/libhw/rp2040_hwspi.h b/libhw/rp2040_include/libhw/rp2040_hwspi.h
index b1abe0c..53a7b03 100644
--- a/libhw/rp2040_include/libhw/rp2040_hwspi.h
+++ b/libhw/rp2040_include/libhw/rp2040_hwspi.h
@@ -20,8 +20,9 @@ enum rp2040_hwspi_instance {
struct rp2040_hwspi {
BEGIN_PRIVATE(LIBHW_RP2040_HWSPI_H)
- void /*spi_inst_t*/ *inst;
- uint pin_cs;
+ LM_IF(IS_IMPLEMENTATION_FOR(LIBHW_RP2040_HWSPI_H))(spi_inst_t)(void) *inst;
+
+ uint pin_cs;
END_PRIVATE(LIBHW_RP2040_HWSPI_H)
};
LO_IMPLEMENTATION_H(spi, struct rp2040_hwspi, rp2040_hwspi)
diff --git a/libmisc/include/libmisc/private.h b/libmisc/include/libmisc/private.h
index 1db7915..c5382a7 100644
--- a/libmisc/include/libmisc/private.h
+++ b/libmisc/include/libmisc/private.h
@@ -1,6 +1,6 @@
/* libmisc/private.h - Utilities to hide struct fields
*
- * Copyright (C) 2024 Luke T. Shumaker <lukeshu@lukeshu.com>
+ * Copyright (C) 2024-2025 Luke T. Shumaker <lukeshu@lukeshu.com>
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
@@ -10,7 +10,8 @@
#include <libmisc/macro.h>
#define YES LM_SENTINEL()
-#define BEGIN_PRIVATE(name) LM_IF(LM_IS_SENTINEL(IMPLEMENTATION_FOR_##name))()(struct {)
-#define END_PRIVATE(name) LM_IF(LM_IS_SENTINEL(IMPLEMENTATION_FOR_##name))()(} LM_CAT2_(_HIDDEN_, __COUNTER__);)
+#define IS_IMPLEMENTATION_FOR(name) LM_IS_SENTINEL(IMPLEMENTATION_FOR_##name)
+#define BEGIN_PRIVATE(name) LM_IF(IS_IMPLEMENTATION_FOR(name))()(struct {)
+#define END_PRIVATE(name) LM_IF(IS_IMPLEMENTATION_FOR(name))()(} LM_CAT2_(_HIDDEN_, __COUNTER__);)
#endif /* _LIBMISC_PRIVATE_H_ */