Systeminterne Funktionen „_interlockedbittestandset“
Microsoft-spezifisch
Erzeugen Sie eine Anweisung, die Bit b der Adresse a untersucht und den aktuellen Wert zurückgibt, bevor er auf 1 gesetzt wird.
unsigned char _interlockedbittestandset(
long *a,
long b
);
unsigned char _interlockedbittestandset_acq(
long *a,
long b
);
unsigned char _interlockedbittestandset_HLEAcquire(
long *a,
long b
);
unsigned char _interlockedbittestandset_HLERelease(
long *a,
long b
);
unsigned char _interlockedbittestandset_nf(
long *a,
long b
);
unsigned char _interlockedbittestandset_rel(
long *a,
long b
);
unsigned char _interlockedbittestandset64(
__int64 *a,
__int64 b
);
unsigned char _interlockedbittestandset64_HLEAcquire(
__int64 *a,
__int64 b
);
unsigned char _interlockedbittestandset64_HLERelease(
__int64 *a,
__int64 b
);
Parameter
[in] a
Ein Zeiger auf den zu untersuchenden Speicher.[in] b
Die zu testende Bitposition.
Rückgabewert
Der Wert des Bits an Position b, bevor er festgelegt wird.
Anforderungen
Systemintern |
Architektur |
Header |
---|---|---|
_interlockedbittestandset |
x86, ARM, x64 |
<intrin.h> |
_interlockedbittestandset_acq, _interlockedbittestandset_nf, _interlockedbittestandset_rel |
ARM |
<intrin.h> |
_interlockedbittestandset_HLEAcquire, _interlockedbittestandset_HLERelease |
x86, x64 |
<immintrin.h> |
_interlockedbittestandset64 |
x64 |
<intrin.h> |
_interlockedbittestandset64_HLEAcquire, _interlockedbittestandset64_HLERelease |
x64 |
<immintrin.h> |
Hinweise
Auf x86- und x64-Prozessoren verwenden diese systeminternen Funktionen die lock bts-Anweisungen zum Lesen und Festlegen des angegebenen Bits auf 1. Der Vorgang ist atomarisch.
Verwenden Sie auf ARM-Prozessoren die systeminternen Funktionen mit den Suffixen _acq und _rel, wenn Sie Semantiken zum Abrufen bzw. Freigeben benötigen, wie am Anfang und Ende eines kritischen Abschnitts. Die systeminternen ARM-Funktionen mit dem Suffix _nf („no fence“) dienen nicht als Arbeitsspeicherbarriere.
Auf Intel-Prozessoren, die Hardware Lock Elision (HLE)-Anweisungen unterstützen, enthalten die systeminternen Funktionen mit den Suffixen _HLEAcquire und _HLERelease einen Hinweis auf den Prozessor, der die Leistung durch Beseitigen einer Schreibsperre in der Hardware beschleunigen kann. Wenn diese systeminternen Funktionen auf Prozessoren aufgerufen werden, die HLE nicht unterstützen, wird der Hinweis ignoriert.
Diese Routinen sind nur als systeminterne Funktionen verfügbar.