_interlockedbittestandset iç işlevleri
Microsoft'a Özgü
Adresin a
bitini b
incelemek ve 1 olarak ayarlamadan önce geçerli değerini döndürmek için bir yönerge oluşturun.
Sözdizimi
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
);
Parametreler
a
[in] İncelenmesi gereken belleğe bir işaretçi.
b
[in] Test için bit konumu.
Dönüş değeri
Bitin ayardan önceki konumundaki b
değeri.
Gereksinimler
Içsel | Mimari | Üst bilgi |
---|---|---|
_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> |
Açıklamalar
x86 ve x64 işlemcilerde bu iç kodlar, belirtilen biti lock bts
okumak ve 1 olarak ayarlamak için yönergeyi kullanır. İşlem atomiktir.
ARM ve ARM64 işlemcilerde, kritik bölümün _acq
başında ve _rel
sonunda olduğu gibi alma ve bırakma semantiği için iç ve soneklerini kullanın. Bir ("çit yok") soneki olan _nf
ARM iç bilgileri bellek engeli görevi görmez.
Donanım Kilidi Elision (HLE) yönergelerini destekleyen Intel işlemcilerde ve _HLERelease
sonekleri ile _HLEAcquire
iç bilgiler, donanımda kilit yazma adımını ortadan kaldırarak performansı hızlandırabilecek işlemciye yönelik bir ipucu içerir. Bu iç öğeler HLE'yi desteklemeyen işlemcilerde çağrılırsa, ipucu yoksayılır.
Bu yordamlar yalnızca iç yordamlar olarak kullanılabilir.
END Microsoft'a Özgü