diff options
author | Luke T. Shumaker <lukeshu@lukeshu.com> | 2025-02-24 22:54:55 -0700 |
---|---|---|
committer | Luke T. Shumaker <lukeshu@lukeshu.com> | 2025-02-26 16:10:14 -0700 |
commit | 66efca9146357621118d565359b91326d1a96d0a (patch) | |
tree | be6d84949d484cf03d56834863c7bd9ffb820587 | |
parent | f78a2bdb6942280053ae99a4c7121d90fb847eb8 (diff) |
libmisc: private.h: Add IS_IMPLEMENTATION_FOR(name) for use with LM_IF
-rw-r--r-- | libhw/rp2040_include/libhw/rp2040_hwspi.h | 5 | ||||
-rw-r--r-- | libmisc/include/libmisc/private.h | 7 |
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_ */ |