Aracılığıyla paylaş


_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ü

Ayrıca bkz.

Derleyici iç bilgileri
x86 Derleyicisi ile Çakışma