mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-20 12:00:06 +00:00
25 lines
383 B
C++
25 lines
383 B
C++
|
/*
|
||
|
* @(#)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)
|