diff options
| author | Nick Brassel <nick@tzarc.org> | 2023-02-28 11:22:29 +1100 |
|---|---|---|
| committer | Nick Brassel <nick@tzarc.org> | 2023-02-28 11:22:29 +1100 |
| commit | bacec14073b2e897d5a52caf12de5a6a1f7b4078 (patch) | |
| tree | d4e3e57aac1a829a191831efd2e62c8a43217885 /platforms/synchronization_util.h | |
| parent | d70e9b8659a7fbbd7069fd542bd07e67e04327a1 (diff) | |
| parent | b865b9e1706ad28ae4882bd2e0331e98808295fa (diff) | |
Merge remote-tracking branch 'upstream/develop'
Diffstat (limited to 'platforms/synchronization_util.h')
| -rw-r--r-- | platforms/synchronization_util.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/platforms/synchronization_util.h b/platforms/synchronization_util.h index 59933945c3..4969eff478 100644 --- a/platforms/synchronization_util.h +++ b/platforms/synchronization_util.h @@ -29,6 +29,12 @@ inline void split_shared_memory_unlock(void){}; prefix##_unlock(); \ } +/* Generate an out-of-line implementation in case the inline functions defined + * by the above macro don't actually get inlined. */ +#define QMK_IMPLEMENT_AUTOUNLOCK_HELPERS(prefix) \ + extern inline unsigned prefix##_autounlock_lock_helper(void); \ + extern inline void prefix##_autounlock_unlock_helper(unsigned* unused_guard); + /* Convinience macro the automatically generate the correct RAII-style * lock_autounlock function macro */ #define QMK_DECLARE_AUTOUNLOCK_CALL(prefix) unsigned prefix##_guard __attribute__((unused, cleanup(prefix##_autounlock_unlock_helper))) = prefix##_autounlock_lock_helper |
