Sdílet prostřednictvím


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 Záhlaví
_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

Viz také

Vnitřní funkce kompilátoru
Konflikty s kompilátorem x86