1 --- src/dbinc/mutex_int.h.orig 2016-03-28 19:45:54 UTC 2 +++ src/dbinc/mutex_int.h 3 @@ -9,6 +9,7 @@ 4 #ifndef _DB_MUTEX_INT_H_ 5 #define _DB_MUTEX_INT_H_ 6 7 +#include <machine/atomic.h> 8 #include "dbinc/atomic.h" 9 10 #if defined(__cplusplus) 11 @@ -506,11 +507,11 @@ typedef unsigned int tsl_t; 12 #define MUTEX_UNSET(tsl) (*(volatile tsl_t *)(tsl) = 0) 13 #define MUTEX_INIT(tsl) (MUTEX_UNSET(tsl), 0) 14 #define MUTEX_MEMBAR(x) \ 15 - ({ __asm__ volatile ("dsb"); }) 16 + dsb(x) 17 #define MEMBAR_ENTER() \ 18 - ({ __asm__ volatile ("dsb"); }) 19 + dsb() 20 #define MEMBAR_EXIT() \ 21 - ({ __asm__ volatile ("dsb"); }) 22 + dsb() 23 #endif 24 #endif 25 26 @@ -652,7 +652,7 @@ MUTEX_SET(int *tsl) { 27 : "=&r" (__r), "+r" (tsl) 28 : 29 : "cr0", "memory"); 30 - return (int)tsl; 31 + return (tsl != 0); 32 } 33 34 static inline int 35