typedef struct { volatile unsigned int lock; } spinlock_t; void spin_lock(spinlock_t *lock) { /* assembly code */ } void spin_unlock(spinlock_t *lock) { /* assembly code */ } spinlock_t rtc_lock; int main(void) { rtc_lock; spin_lock(&rtc_lock); rtc_lock; spin_unlock(&rtc_lock); rtc_lock; }