#ifndef SMP_SYNC_INCLUDED #define SMP_SYNC_INCLUDED static inline void lock(uint8_t *lock) { asm("mov al, 1\n" "spinlock:\n" "lock xchgb [%0], al\n" "test al, al\n" "jnz spinlock\n" ::"r"(lock):"al"); } static inline void unlock(uint8_t *lock) { asm("lock andb [%0], 0"::"r"(lock)); } #endif