diff options
Diffstat (limited to 'db2/mutex/sco.cc')
-rw-r--r-- | db2/mutex/sco.cc | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/db2/mutex/sco.cc b/db2/mutex/sco.cc new file mode 100644 index 0000000..7c165a2 --- /dev/null +++ b/db2/mutex/sco.cc @@ -0,0 +1,24 @@ +/* + * @(#)x86.uslc + * + * UnixWare has threads in libthread, but OpenServer doesn't (yet). + * + * For cc/x86, 0 is clear, 1 is set. + */ + +#if defined(__USLC__) +asm int +_tsl_set(void *tsl) +{ +%mem tsl + movl tsl, %ecx + movl $1, %eax + lock + xchgb (%ecx),%al + xorl $1,%eax +} +#endif + +#define TSL_SET(tsl) _tsl_set(tsl) +#define TSL_UNSET(tsl) (*(tsl) = 0) +#define TSL_INIT(tsl) TSL_UNSET(tsl) |