_interlockedbittestandset systeminternen Funktionen
Microsoft-spezifisch
Generieren Sie eine Anweisung, um ein Bit b
der Adresse a
zu untersuchen und den aktuellen Wert zurückzugeben, bevor Sie sie auf 1 festlegen.
Syntax
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_acq(
__int64 *a,
__int64 b
);
unsigned char _interlockedbittestandset64_nf(
__int64 *a,
__int64 b
);
unsigned char _interlockedbittestandset64_rel(
__int64 *a,
__int64 b
);
unsigned char _interlockedbittestandset64_HLEAcquire(
__int64 *a,
__int64 b
);
unsigned char _interlockedbittestandset64_HLERelease(
__int64 *a,
__int64 b
);
Parameter
a
[in] Ein Zeiger auf den zu untersuchenden Speicher.
b
[in] Die zu testde Bitposition.
Rückgabewert
Der Wert des Bits an der Position b
, bevor es festgelegt wird.
Anforderungen
Intrinsic | Aufbau | Header |
---|---|---|
_interlockedbittestandset |
x86, ARM, x64, ARM64 | <intrin.h> |
_interlockedbittestandset_acq , _interlockedbittestandset_nf _interlockedbittestandset_rel |
ARM, ARM64 | <intrin.h> |
_interlockedbittestandset64_acq , _interlockedbittestandset64_nf _interlockedbittestandset64_rel |
ARM64 | <intrin.h> |
_interlockedbittestandset_HLEAcquire , _interlockedbittestandset_HLERelease |
x86, x64 | <immintrin.h> |
_interlockedbittestandset64 |
x64, ARM64 | <intrin.h> |
_interlockedbittestandset64_HLEAcquire , _interlockedbittestandset64_HLERelease |
x64 | <immintrin.h> |
Hinweise
Bei x86- und x64-Prozessoren verwenden diese systeminternen Elemente die lock bts
Anweisung, um das angegebene Bit auf 1 zu lesen und festzulegen. Der Vorgang ist atomarisch.
Verwenden Sie auf ARM- und ARM64-Prozessoren die systeminternen Mit _acq
- und _rel
Suffixe zum Abrufen und Freigeben der Semantik, z. B. am Anfang und Ende eines kritischen Abschnitts. Die systeminternen ARM-Dateien mit einem _nf
Suffix ("kein Zaun") wirken nicht als Speicherbarriere.
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 Elemente für Prozessoren aufgerufen werden, die HLE nicht unterstützen, wird der Hinweis ignoriert.
Diese Routinen sind nur als systeminterne Funktionen verfügbar.
Ende Microsoft-spezifisch