diff options
author | lenz@mysql.com <> | 2002-07-15 13:33:56 +0200 |
---|---|---|
committer | lenz@mysql.com <> | 2002-07-15 13:33:56 +0200 |
commit | 8c827e2800e91197245b5c49c79bd84fcebfb2d5 (patch) | |
tree | 6ea8f94adc277510ee95c6b505ea9aaeba4364d1 /bdb/include | |
parent | f07ddef788350fdbc7ce242bd590af2e361999bb (diff) | |
download | mariadb-git-8c827e2800e91197245b5c49c79bd84fcebfb2d5.tar.gz |
Added some patches provided by SuSE to fix build problems on
ppc64 and x86-64, fixed a compile bug when building with TCP wrapper
support on Linux
Diffstat (limited to 'bdb/include')
-rw-r--r-- | bdb/include/mutex.h | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/bdb/include/mutex.h b/bdb/include/mutex.h index a8a41451012..4c1b265355d 100644 --- a/bdb/include/mutex.h +++ b/bdb/include/mutex.h @@ -611,6 +611,28 @@ typedef unsigned char tsl_t; #endif #endif +#ifdef HAVE_MUTEX_X86_64_GCC_ASSEMBLY +typedef unsigned char tsl_t; + +#ifdef LOAD_ACTUAL_MUTEX_CODE +/* + * For gcc/x86, 0 is clear, 1 is set. + */ +#define MUTEX_SET(tsl) ({ \ + register tsl_t *__l = (tsl); \ + int __r; \ + asm volatile("mov $1,%%rax; lock; xchgb %1,%%al; xor $1,%%rax"\ + : "=&a" (__r), "=m" (*__l) \ + : "1" (*__l) \ + ); \ + __r & 1; \ +}) + +#define MUTEX_UNSET(tsl) (*(tsl) = 0) +#define MUTEX_INIT(tsl) MUTEX_UNSET(tsl) +#endif +#endif + /* * Mutex alignment defaults to one byte. * |