Changeset 1995 for Whitix/trunk

Show
Ignore:
Timestamp:
04/02/09 21:04:40 (3 years ago)
Author:
mwhitworth
Message:

Add BitTestAndClear function.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • Whitix/trunk/include/locks.h

    r1812 r1995  
    2727        asm volatile("" 
    2828                "btsl %1, %0" 
    29                 :"=m"(ADDR) 
     29                :"+m"(ADDR) 
    3030                :"Ir"(bit)); 
    3131} 
     
    5252} 
    5353 
     54static inline int BitTestAndClear(volatile void* address, int bit) 
     55{ 
     56        int oldBit; 
     57         
     58        asm volatile("" 
     59                "btr %2, %1\n\t" 
     60                "sbb %0, %0" 
     61                : "=r"(oldBit), "=m"(ADDR) 
     62                : "Ir"(bit) : "memory"); 
     63                 
     64        return oldBit; 
     65} 
     66 
    5467#endif