vnitřní funkce _interlockedbittestandreset
Specifické pro Microsoft
Vygeneruje instrukce pro nastavení bitu b
adresy a
na nulu a vrácení původní hodnoty.
Syntaxe
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_acq(
__int64 *a,
__int64 b
);
unsigned char _interlockedbittestandreset64_nf(
__int64 *a,
__int64 b
);
unsigned char _interlockedbittestandreset64_rel(
__int64 *a,
__int64 b
);
unsigned char _interlockedbittestandreset64_HLEAcquire(
__int64 *a,
__int64 b
);
unsigned char _interlockedbittestandreset64_HLERelease(
__int64 *a,
__int64 b
);
Parametry
a
[v] Ukazatel na paměť, který chcete prozkoumat.
b
[v] Pozice bitu, která se má testovat.
Vrácená hodnota
Původní hodnota bitu na pozici určenou parametrem b
.
Požadavky
Vnitřní | Architektura | Hlavička |
---|---|---|
_interlockedbittestandreset |
x86, ARM, x64, ARM64 | <intrin.h> |
_interlockedbittestandreset_acq , , _interlockedbittestandreset_nf _interlockedbittestandreset_rel |
ARM, ARM64 | <intrin.h> |
_interlockedbittestandreset64_acq , , _interlockedbittestandreset64_nf _interlockedbittestandreset64_rel |
ARM64 | <intrin.h> |
_interlockedbittestandreset_HLEAcquire , _interlockedbittestandreset_HLERelease |
x86, x64 | <immintrin.h> |
_interlockedbittestandreset64 |
x64, ARM64 | <intrin.h> |
_interlockedbittestandreset64_HLEAcquire , _interlockedbittestandreset64_HLERelease |
x64 | <immintrin.h> |
Poznámky
Na procesorech x86 a x64 tyto vnitřní prvky používají lock btr
instrukce, které čtou a nastaví zadaný bit na nulu v atomické operaci.
Na procesorech ARM použijte vnitřní objekty s příponami _acq
a získejte a _rel
uvolněte sémantiku, například na začátku a na konci kritické části. Vnitřní objekty ARM s příponou _nf
(bez plotu) nefungují jako paměťová bariéra.
Na procesorech Intel, které podporují instrukce hardwarového zámku Elision (HLE), vnitřní objekty s _HLEAcquire
příponou a _HLERelease
přípony obsahují nápovědu k procesoru, který může zrychlit výkon odstraněním kroku zápisu zámku v hardwaru. Pokud jsou tyto vnitřní objekty volány u procesorů, které nepodporují funkci HLE, tip se ignoruje.
Tyto rutiny jsou k dispozici pouze jako vnitřní objekty.
END Microsoft Specific