_interlockedbittestandreset _interlockedbittestandreset64
Specifické pro Microsoft
Generuje instrukce, která nastavuje bit b adresy a na nulu a vrátí původní hodnotu.
unsigned char _interlockedbittestandreset(
long *a,
long b
);
unsigned char _interlockedbittestandreset_acq(
long *a,
long b
);
unsigned char _interlockedbittestandreset_HLEAcquire(
long *a,
long b
);
unsigned char _interlockedbittestandreset_HLERelease(
long *a,
long b
);
unsigned char _interlockedbittestandreset_nf(
long *a,
long b
);
unsigned char _interlockedbittestandreset_rel(
long *a,
long b
);
unsigned char _interlockedbittestandreset64(
__int64 *a,
__int64 b
);
unsigned char _interlockedbittestandreset64_HLEAcquire(
__int64 *a,
__int64 b
);
unsigned char _interlockedbittestandreset64_HLERelease(
__int64 *a,
__int64 b
);
Parametry
[in] a
Ukazatel paměti k prověření.[in] b
Pozice bit k testování.
Vrácená hodnota
Původní hodnotu bit na pozici určené b.
Požadavky
Vnitřní |
Architektura |
Záhlaví |
---|---|---|
_interlockedbittestandreset |
x 86, ARM, x64 |
< intrin.h > |
_interlockedbittestandreset_acq, _interlockedbittestandreset_nf, _interlockedbittestandreset_rel |
ARM |
< intrin.h > |
_interlockedbittestandreset_HLEAcquire, _interlockedbittestandreset_HLERelease |
x86, x64 |
< immintrin.h > |
_interlockedbittestandreset64 |
x64 |
< intrin.h > |
_interlockedbittestandreset64_HLEAcquire, _interlockedbittestandreset64_HLERelease |
x64 |
< immintrin.h > |
Poznámky
V x 86 a x64 procesory, vnitřní tyto objekty používají lock btr pokyn, který načte a nastaví zadaný bit na nulu v atomická operace.
V ARM procesorů, použijte vnitřní objekty s _acq a _rel přípony pro získání a verze sémantiku, například na začátku a na konci kritické sekce.Vnitřní ARM s _nf příponu ("žádné ohraničení") není fungovat jako překážku paměti.
Na procesory Intel, které podporují hardwaru uzamčení Elision (HLE) pokyny, vnitřní objekty s _HLEAcquire a _HLERelease přípony zahrnout nápovědu pro procesor, který mohou urychlit výkonu tím, že eliminuje krok zápisu uzamčení hardwaru.Pokud tyto vnitřní objekty jsou volány na procesory, které nepodporují HLE, je pokyn ignorován.
Tyto rutiny jsou pouze k dispozici jako vnitřní objekty.