ReactOS 0.4.16-dev-1946-g52006dd
memaccess.h File Reference
#include <intrin.h>
Include dependency graph for memaccess.h:

Go to the source code of this file.

Macros

#define KeMemoryBarrierWithoutFence()   _ReadWriteBarrier()
 
#define ReadLongPtrAcquire   ReadAcquire
 
#define ReadLongPtrNoFence   ReadNoFence
 
#define ReadLongPtrRaw   ReadRaw
 
#define WriteLongPtrRelease   WriteRelease
 
#define WriteLongPtrNoFence   WriteNoFence
 
#define WriteLongPtrRaw   WriteRaw
 
#define ReadULongPtrAcquire   ReadULongAcquire
 
#define ReadULongPtrNoFence   ReadULongNoFence
 
#define ReadULongPtrRaw   ReadULongRaw
 
#define WriteULongPtrRelease   WriteULongRelease
 
#define WriteULongPtrNoFence   WriteULongNoFence
 
#define WriteULongPtrRaw   WriteULongRaw
 
#define ReadSizeTAcquire   ReadULongPtrAcquire
 
#define ReadSizeTNoFence   ReadULongPtrNoFence
 
#define ReadSizeTRaw   ReadULongPtrRaw
 
#define WriteSizeTRelease   WriteULongPtrRelease
 
#define WriteSizeTNoFence   WriteULongPtrNoFence
 
#define WriteSizeTRaw   WriteULongPtrRaw
 

Functions

 $if (0) $endif() __forceinline char ReadRaw8(_In_ _Interlocked_operand_ char const volatile *Source)
 
__forceinline void WriteRaw8 (_Out_ _Interlocked_operand_ char volatile *Destination, _In_ char Value)
 
__forceinline short ReadRaw16 (_In_ _Interlocked_operand_ short const volatile *Source)
 
__forceinline void WriteRaw16 (_Out_ _Interlocked_operand_ short volatile *Destination, _In_ short Value)
 
__forceinline long ReadRaw (_In_ _Interlocked_operand_ long const volatile *Source)
 
__forceinline void WriteRaw (_Out_ _Interlocked_operand_ long volatile *Destination, _In_ long Value)
 
__forceinline __int64 ReadRaw64 (_In_ _Interlocked_operand_ __int64 const volatile *Source)
 
__forceinline void WriteRaw64 (_Out_ _Interlocked_operand_ __int64 volatile *Destination, _In_ __int64 Value)
 
__forceinline char ReadNoFence8 (_In_ _Interlocked_operand_ char const volatile *Source)
 
__forceinline void WriteNoFence8 (_Out_ _Interlocked_operand_ char volatile *Destination, _In_ char Value)
 
__forceinline short ReadNoFence16 (_In_ _Interlocked_operand_ short const volatile *Source)
 
__forceinline void WriteNoFence16 (_Out_ _Interlocked_operand_ short volatile *Destination, _In_ short Value)
 
__forceinline long ReadNoFence (_In_ _Interlocked_operand_ long const volatile *Source)
 
__forceinline void WriteNoFence (_Out_ _Interlocked_operand_ long volatile *Destination, _In_ long Value)
 
__forceinline __int64 ReadNoFence64 (_In_ _Interlocked_operand_ __int64 const volatile *Source)
 
__forceinline void WriteNoFence64 (_Out_ _Interlocked_operand_ __int64 volatile *Destination, _In_ __int64 Value)
 
__forceinline char ReadAcquire8 (_In_ _Interlocked_operand_ char const volatile *Source)
 
__forceinline void WriteRelease8 (_Out_ _Interlocked_operand_ char volatile *Destination, _In_ char Value)
 
__forceinline short ReadAcquire16 (_In_ _Interlocked_operand_ short const volatile *Source)
 
__forceinline void WriteRelease16 (_Out_ _Interlocked_operand_ short volatile *Destination, _In_ short Value)
 
__forceinline long ReadAcquire (_In_ _Interlocked_operand_ long const volatile *Source)
 
__forceinline void WriteRelease (_Out_ _Interlocked_operand_ long volatile *Destination, _In_ long Value)
 
__forceinline __int64 ReadAcquire64 (_In_ _Interlocked_operand_ __int64 const volatile *Source)
 
__forceinline void WriteRelease64 (_Out_ _Interlocked_operand_ __int64 volatile *Destination, _In_ __int64 Value)
 
__forceinline unsigned char ReadUCharAcquire (_In_ _Interlocked_operand_ unsigned char const volatile *Source)
 
__forceinline unsigned char ReadUCharNoFence (_In_ _Interlocked_operand_ unsigned char const volatile *Source)
 
__forceinline unsigned char ReadUCharRaw (_In_ _Interlocked_operand_ unsigned char const volatile *Source)
 
__forceinline void WriteUCharRelease (_Out_ _Interlocked_operand_ unsigned char volatile *Destination, _In_ unsigned char Value)
 
__forceinline void WriteUCharNoFence (_Out_ _Interlocked_operand_ unsigned char volatile *Destination, _In_ unsigned char Value)
 
__forceinline void WriteUCharRaw (_Out_ _Interlocked_operand_ unsigned char volatile *Destination, _In_ unsigned char Value)
 
__forceinline BOOLEAN ReadBooleanAcquire (_In_ _Interlocked_operand_ BOOLEAN const volatile *Source)
 
__forceinline unsigned char ReadBooleanNoFence (_In_ _Interlocked_operand_ BOOLEAN const volatile *Source)
 
__forceinline void WriteBooleanRelease (_Out_ _Interlocked_operand_ BOOLEAN volatile *Destination, _In_ BOOLEAN Value)
 
__forceinline void WriteBooleanNoFence (_Out_ _Interlocked_operand_ BOOLEAN volatile *Destination, _In_ BOOLEAN Value)
 
__forceinline unsigned short ReadUShortAcquire (_In_ _Interlocked_operand_ unsigned short const volatile *Source)
 
__forceinline unsigned short ReadUShortNoFence (_In_ _Interlocked_operand_ unsigned short const volatile *Source)
 
__forceinline unsigned short ReadUShortRaw (_In_ _Interlocked_operand_ unsigned short const volatile *Source)
 
__forceinline void WriteUShortRelease (_Out_ _Interlocked_operand_ unsigned short volatile *Destination, _In_ unsigned short Value)
 
__forceinline void WriteUShortNoFence (_Out_ _Interlocked_operand_ unsigned short volatile *Destination, _In_ unsigned short Value)
 
__forceinline void WriteUShortRaw (_Out_ _Interlocked_operand_ unsigned short volatile *Destination, _In_ unsigned short Value)
 
__forceinline unsigned long ReadULongAcquire (_In_ _Interlocked_operand_ unsigned long const volatile *Source)
 
__forceinline unsigned long ReadULongNoFence (_In_ _Interlocked_operand_ unsigned long const volatile *Source)
 
__forceinline unsigned long ReadULongRaw (_In_ _Interlocked_operand_ unsigned long const volatile *Source)
 
__forceinline void WriteULongRelease (_Out_ _Interlocked_operand_ unsigned long volatile *Destination, _In_ unsigned long Value)
 
__forceinline void WriteULongNoFence (_Out_ _Interlocked_operand_ unsigned long volatile *Destination, _In_ unsigned long Value)
 
__forceinline void WriteULongRaw (_Out_ _Interlocked_operand_ unsigned long volatile *Destination, _In_ unsigned long Value)
 
__forceinline unsigned __int64 ReadULong64Acquire (_In_ _Interlocked_operand_ unsigned __int64 const volatile *Source)
 
__forceinline unsigned __int64 ReadULong64NoFence (_In_ _Interlocked_operand_ unsigned __int64 const volatile *Source)
 
__forceinline unsigned __int64 ReadULong64Raw (_In_ _Interlocked_operand_ unsigned __int64 const volatile *Source)
 
__forceinline void WriteULong64Release (_Out_ _Interlocked_operand_ unsigned __int64 volatile *Destination, _In_ unsigned __int64 Value)
 
__forceinline void WriteULong64NoFence (_Out_ _Interlocked_operand_ unsigned __int64 volatile *Destination, _In_ unsigned __int64 Value)
 
__forceinline void WriteULong64Raw (_Out_ _Interlocked_operand_ unsigned __int64 volatile *Destination, _In_ unsigned __int64 Value)
 
__forceinline voidReadPointerAcquire (_In_ _Interlocked_operand_ void *const volatile *Source)
 
__forceinline voidReadPointerNoFence (_In_ _Interlocked_operand_ void *const volatile *Source)
 
__forceinline voidReadPointerRaw (_In_ _Interlocked_operand_ void *const volatile *Source)
 
__forceinline void WritePointerRelease (_Out_ _Interlocked_operand_ void *volatile *Destination, _In_ void *Value)
 
__forceinline void WritePointerNoFence (_Out_ _Interlocked_operand_ void *volatile *Destination, _In_opt_ void *Value)
 
__forceinline void WritePointerRaw (_Out_ _Interlocked_operand_ void *volatile *Destination, _In_opt_ void *Value)
 

Macro Definition Documentation

◆ KeMemoryBarrierWithoutFence

#define KeMemoryBarrierWithoutFence ( )    _ReadWriteBarrier()

◆ ReadLongPtrAcquire

#define ReadLongPtrAcquire   ReadAcquire

Definition at line 646 of file memaccess.h.

◆ ReadLongPtrNoFence

#define ReadLongPtrNoFence   ReadNoFence

Definition at line 647 of file memaccess.h.

◆ ReadLongPtrRaw

#define ReadLongPtrRaw   ReadRaw

Definition at line 648 of file memaccess.h.

◆ ReadSizeTAcquire

#define ReadSizeTAcquire   ReadULongPtrAcquire

Definition at line 661 of file memaccess.h.

◆ ReadSizeTNoFence

#define ReadSizeTNoFence   ReadULongPtrNoFence

Definition at line 662 of file memaccess.h.

◆ ReadSizeTRaw

#define ReadSizeTRaw   ReadULongPtrRaw

Definition at line 663 of file memaccess.h.

◆ ReadULongPtrAcquire

#define ReadULongPtrAcquire   ReadULongAcquire

Definition at line 652 of file memaccess.h.

◆ ReadULongPtrNoFence

#define ReadULongPtrNoFence   ReadULongNoFence

Definition at line 653 of file memaccess.h.

◆ ReadULongPtrRaw

#define ReadULongPtrRaw   ReadULongRaw

Definition at line 654 of file memaccess.h.

◆ WriteLongPtrNoFence

#define WriteLongPtrNoFence   WriteNoFence

Definition at line 650 of file memaccess.h.

◆ WriteLongPtrRaw

#define WriteLongPtrRaw   WriteRaw

Definition at line 651 of file memaccess.h.

◆ WriteLongPtrRelease

#define WriteLongPtrRelease   WriteRelease

Definition at line 649 of file memaccess.h.

◆ WriteSizeTNoFence

#define WriteSizeTNoFence   WriteULongPtrNoFence

Definition at line 665 of file memaccess.h.

◆ WriteSizeTRaw

#define WriteSizeTRaw   WriteULongPtrRaw

Definition at line 666 of file memaccess.h.

◆ WriteSizeTRelease

#define WriteSizeTRelease   WriteULongPtrRelease

Definition at line 664 of file memaccess.h.

◆ WriteULongPtrNoFence

#define WriteULongPtrNoFence   WriteULongNoFence

Definition at line 656 of file memaccess.h.

◆ WriteULongPtrRaw

#define WriteULongPtrRaw   WriteULongRaw

Definition at line 657 of file memaccess.h.

◆ WriteULongPtrRelease

#define WriteULongPtrRelease   WriteULongRelease

Definition at line 655 of file memaccess.h.

Function Documentation

◆ $if()

$if ( ) const volatile

Definition at line 1 of file memaccess.h.

34{
35 long Barrier;
36 _InterlockedOr(&Barrier, 0);
37}
38#define PrefetchForWrite(p)
39#define ReadForWriteAccess(p) (*(p))
40#elif defined(_M_AMD64)
41#define MemoryBarrier __faststorefence
42#define PrefetchForWrite(p) _m_prefetchw(p)
43#define ReadForWriteAccess(p) (_m_prefetchw(p), *(p))
44#elif defined(_M_ARM)
45# define MemoryBarrier() __dmb(_ARM_BARRIER_SY)
46# define _AcquireBarrier() __dmb(_ARM_BARRIER_ISH)
47# define _ReleaseBarrier() __dmb(_ARM_BARRIER_ISH)
48# define _DataSynchronizationBarrier() __dsb(_ARM_BARRIER_SY)
49# define _InstructionSynchronizationBarrier() __isb(_ARM_BARRIER_SY)
50#elif defined(_M_ARM64)
51# define MemoryBarrier() __dmb(_ARM64_BARRIER_SY)
52# define _AcquireBarrier() __dmb(_ARM64_BARRIER_ISH)
53# define _ReleaseBarrier() __dmb(_ARM64_BARRIER_ISH)
54# define _DataSynchronizationBarrier() __dsb(_ARM64_BARRIER_SY)
55# define _InstructionSynchronizationBarrier() __isb(_ARM64_BARRIER_SY)
56#else
57#error Unsupported architecture
58#endif /* _M_ARM */
59
60#if defined(_M_IX86) || defined(_M_AMD64)
61#define __iso_volatile_load8(p) (*(volatile char*)(p))
62#define __iso_volatile_load16(p) (*(volatile short*)(p))
63#define __iso_volatile_load32(p) (*(volatile int*)(p))
64#define __iso_volatile_load64(p) (*(volatile __int64*)(p))
65#define __iso_volatile_store8(p,v) (*(volatile char*)(p) = (v))
66#define __iso_volatile_store16(p,v) (*(volatile short*)(p) = (v))
67#define __iso_volatile_store32(p,v) (*(volatile int*)(p) = (v))
68#define __iso_volatile_store64(p,v) (*(volatile __int64*)(p) = (v))
69#endif
70
71__forceinline
72char
73ReadRaw8 (
74 _In_ _Interlocked_operand_ char const volatile *Source)
75{
76 return *(char *)Source;
77}
long _InterlockedOr(_Interlocked_operand_ long volatile *_Value, long _Mask)
_In_ UINT _In_ UINT _In_ PNDIS_PACKET Source
Definition: ndis.h:3169
#define _In_
Definition: no_sal2.h:158
#define _Interlocked_operand_
Definition: no_sal2.h:410

◆ ReadAcquire()

__forceinline long ReadAcquire ( _In_ _Interlocked_operand_ long const volatile Source)

Definition at line 250 of file memaccess.h.

252{
253 long Value = __iso_volatile_load32((const volatile int*)Source);
254 _AcquireBarrier();
255 return Value;
256}
__int32 __iso_volatile_load32(const volatile __int32 *)
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _Out_opt_ PUSHORT _Inout_opt_ PUNICODE_STRING Value
Definition: wdfregistry.h:413

Referenced by GetOverlappedResultEx(), ReadPointerAcquire(), and ReadULongAcquire().

◆ ReadAcquire16()

__forceinline short ReadAcquire16 ( _In_ _Interlocked_operand_ short const volatile Source)

Definition at line 230 of file memaccess.h.

232{
234 _AcquireBarrier();
235 return Value;
236}
__int16 __iso_volatile_load16(const volatile __int16 *)

Referenced by ReadUShortAcquire().

◆ ReadAcquire64()

__forceinline __int64 ReadAcquire64 ( _In_ _Interlocked_operand_ __int64 const volatile Source)

Definition at line 270 of file memaccess.h.

272{
274 _AcquireBarrier();
275 return Value;
276}
#define __int64
Definition: basetyps.h:16
__int64 __iso_volatile_load64(const volatile __int64 *)

Referenced by ReadULong64Acquire().

◆ ReadAcquire8()

__forceinline char ReadAcquire8 ( _In_ _Interlocked_operand_ char const volatile Source)

Definition at line 210 of file memaccess.h.

212{
214 _AcquireBarrier();
215 return Value;
216}
__int8 __iso_volatile_load8(const volatile __int8 *)

Referenced by ReadBooleanAcquire(), and ReadUCharAcquire().

◆ ReadBooleanAcquire()

__forceinline BOOLEAN ReadBooleanAcquire ( _In_ _Interlocked_operand_ BOOLEAN const volatile Source)

Definition at line 342 of file memaccess.h.

344{
345 return (BOOLEAN)ReadAcquire8((char*)Source);
346}
unsigned char BOOLEAN
__forceinline char ReadAcquire8(_In_ _Interlocked_operand_ char const volatile *Source)
Definition: memaccess.h:210

◆ ReadBooleanNoFence()

__forceinline unsigned char ReadBooleanNoFence ( _In_ _Interlocked_operand_ BOOLEAN const volatile Source)

Definition at line 350 of file memaccess.h.

352{
353 return (BOOLEAN)ReadNoFence8((char*)Source);
354}
__forceinline char ReadNoFence8(_In_ _Interlocked_operand_ char const volatile *Source)
Definition: memaccess.h:141

◆ ReadNoFence()

__forceinline long ReadNoFence ( _In_ _Interlocked_operand_ long const volatile Source)

Definition at line 175 of file memaccess.h.

177{
178 return __iso_volatile_load32((const volatile int*)Source);
179}

Referenced by ReadPointerNoFence(), and ReadULongNoFence().

◆ ReadNoFence16()

__forceinline short ReadNoFence16 ( _In_ _Interlocked_operand_ short const volatile Source)

Definition at line 158 of file memaccess.h.

160{
162}

Referenced by ReadUShortNoFence().

◆ ReadNoFence64()

__forceinline __int64 ReadNoFence64 ( _In_ _Interlocked_operand_ __int64 const volatile Source)

Definition at line 192 of file memaccess.h.

194{
196}

Referenced by ReadULong64NoFence().

◆ ReadNoFence8()

__forceinline char ReadNoFence8 ( _In_ _Interlocked_operand_ char const volatile Source)

Definition at line 141 of file memaccess.h.

143{
145}

Referenced by ReadBooleanNoFence(), and ReadUCharNoFence().

◆ ReadPointerAcquire()

__forceinline void * ReadPointerAcquire ( _In_ _Interlocked_operand_ void *const volatile Source)

Definition at line 597 of file memaccess.h.

599{
600 return (void*)ReadAcquire((long*)Source);
601}
__forceinline long ReadAcquire(_In_ _Interlocked_operand_ long const volatile *Source)
Definition: memaccess.h:250

◆ ReadPointerNoFence()

__forceinline void * ReadPointerNoFence ( _In_ _Interlocked_operand_ void *const volatile Source)

Definition at line 605 of file memaccess.h.

607{
608 return (void*)ReadNoFence((long*)Source);
609}
__forceinline long ReadNoFence(_In_ _Interlocked_operand_ long const volatile *Source)
Definition: memaccess.h:175

◆ ReadPointerRaw()

__forceinline void * ReadPointerRaw ( _In_ _Interlocked_operand_ void *const volatile Source)

Definition at line 613 of file memaccess.h.

615{
616 return (void*)ReadRaw((long*)Source);
617}
__forceinline long ReadRaw(_In_ _Interlocked_operand_ long const volatile *Source)
Definition: memaccess.h:107

◆ ReadRaw()

__forceinline long ReadRaw ( _In_ _Interlocked_operand_ long const volatile Source)

Definition at line 107 of file memaccess.h.

109{
110 return *(long *)Source;
111}

Referenced by ReadPointerRaw(), and ReadULongRaw().

◆ ReadRaw16()

__forceinline short ReadRaw16 ( _In_ _Interlocked_operand_ short const volatile Source)

Definition at line 90 of file memaccess.h.

92{
93 return *(short *)Source;
94}

Referenced by ReadUShortRaw().

◆ ReadRaw64()

__forceinline __int64 ReadRaw64 ( _In_ _Interlocked_operand_ __int64 const volatile Source)

Definition at line 124 of file memaccess.h.

126{
127 return *(__int64 *)Source;
128}

Referenced by ReadULong64Raw().

◆ ReadUCharAcquire()

__forceinline unsigned char ReadUCharAcquire ( _In_ _Interlocked_operand_ unsigned char const volatile Source)

Definition at line 291 of file memaccess.h.

293{
294 return (unsigned char)ReadAcquire8((char*)Source);
295}

◆ ReadUCharNoFence()

__forceinline unsigned char ReadUCharNoFence ( _In_ _Interlocked_operand_ unsigned char const volatile Source)

Definition at line 299 of file memaccess.h.

301{
302 return (unsigned char)ReadNoFence8((char*)Source);
303}

◆ ReadUCharRaw()

__forceinline unsigned char ReadUCharRaw ( _In_ _Interlocked_operand_ unsigned char const volatile Source)

Definition at line 307 of file memaccess.h.

309{
310 return (unsigned char)ReadRaw8((char*)Source);
311}

◆ ReadULong64Acquire()

__forceinline unsigned __int64 ReadULong64Acquire ( _In_ _Interlocked_operand_ unsigned __int64 const volatile Source)

Definition at line 478 of file memaccess.h.

480{
481 return (unsigned __int64)ReadAcquire64((__int64*)Source);
482}
__forceinline __int64 ReadAcquire64(_In_ _Interlocked_operand_ __int64 const volatile *Source)
Definition: memaccess.h:270

◆ ReadULong64NoFence()

__forceinline unsigned __int64 ReadULong64NoFence ( _In_ _Interlocked_operand_ unsigned __int64 const volatile Source)

Definition at line 486 of file memaccess.h.

488{
489 return (unsigned __int64)ReadNoFence64((__int64*)Source);
490}
__forceinline __int64 ReadNoFence64(_In_ _Interlocked_operand_ __int64 const volatile *Source)
Definition: memaccess.h:192

Referenced by TransferPktComplete().

◆ ReadULong64Raw()

__forceinline unsigned __int64 ReadULong64Raw ( _In_ _Interlocked_operand_ unsigned __int64 const volatile Source)

Definition at line 494 of file memaccess.h.

496{
497 return (unsigned __int64)ReadRaw64((__int64*)Source);
498}
__forceinline __int64 ReadRaw64(_In_ _Interlocked_operand_ __int64 const volatile *Source)
Definition: memaccess.h:124

◆ ReadULongAcquire()

__forceinline unsigned long ReadULongAcquire ( _In_ _Interlocked_operand_ unsigned long const volatile Source)

Definition at line 427 of file memaccess.h.

429{
430 return (unsigned long)ReadAcquire((long*)Source);
431}

◆ ReadULongNoFence()

__forceinline unsigned long ReadULongNoFence ( _In_ _Interlocked_operand_ unsigned long const volatile Source)

Definition at line 435 of file memaccess.h.

437{
438 return (unsigned long)ReadNoFence((long*)Source);
439}

◆ ReadULongRaw()

__forceinline unsigned long ReadULongRaw ( _In_ _Interlocked_operand_ unsigned long const volatile Source)

Definition at line 443 of file memaccess.h.

445{
446 return (unsigned long)ReadRaw((long*)Source);
447}

◆ ReadUShortAcquire()

__forceinline unsigned short ReadUShortAcquire ( _In_ _Interlocked_operand_ unsigned short const volatile Source)

Definition at line 376 of file memaccess.h.

378{
379 return (unsigned short)ReadAcquire16((short*)Source);
380}
__forceinline short ReadAcquire16(_In_ _Interlocked_operand_ short const volatile *Source)
Definition: memaccess.h:230

◆ ReadUShortNoFence()

__forceinline unsigned short ReadUShortNoFence ( _In_ _Interlocked_operand_ unsigned short const volatile Source)

Definition at line 384 of file memaccess.h.

386{
387 return (unsigned short)ReadNoFence16((short*)Source);
388}
__forceinline short ReadNoFence16(_In_ _Interlocked_operand_ short const volatile *Source)
Definition: memaccess.h:158

◆ ReadUShortRaw()

__forceinline unsigned short ReadUShortRaw ( _In_ _Interlocked_operand_ unsigned short const volatile Source)

Definition at line 392 of file memaccess.h.

394{
395 return (unsigned short)ReadRaw16((short*)Source);
396}
__forceinline short ReadRaw16(_In_ _Interlocked_operand_ short const volatile *Source)
Definition: memaccess.h:90

◆ WriteBooleanNoFence()

__forceinline void WriteBooleanNoFence ( _Out_ _Interlocked_operand_ BOOLEAN volatile Destination,
_In_ BOOLEAN  Value 
)

Definition at line 367 of file memaccess.h.

370{
371 WriteNoFence8((char*)Destination, (char)Value);
372}
__forceinline void WriteNoFence8(_Out_ _Interlocked_operand_ char volatile *Destination, _In_ char Value)
Definition: memaccess.h:149
_In_ PUNICODE_STRING _Inout_ PUNICODE_STRING Destination
Definition: rtlfuncs.h:3051

◆ WriteBooleanRelease()

__forceinline void WriteBooleanRelease ( _Out_ _Interlocked_operand_ BOOLEAN volatile Destination,
_In_ BOOLEAN  Value 
)

Definition at line 358 of file memaccess.h.

361{
362 WriteRelease8((char*)Destination, (char)Value);
363}
__forceinline void WriteRelease8(_Out_ _Interlocked_operand_ char volatile *Destination, _In_ char Value)
Definition: memaccess.h:220

◆ WriteNoFence()

__forceinline void WriteNoFence ( _Out_ _Interlocked_operand_ long volatile Destination,
_In_ long  Value 
)

Definition at line 183 of file memaccess.h.

186{
188}
void __iso_volatile_store32(volatile __int32 *, __int32)

Referenced by WritePointerNoFence(), and WriteULongNoFence().

◆ WriteNoFence16()

__forceinline void WriteNoFence16 ( _Out_ _Interlocked_operand_ short volatile Destination,
_In_ short  Value 
)

Definition at line 166 of file memaccess.h.

169{
171}
void __iso_volatile_store16(volatile __int16 *, __int16)

Referenced by WriteUShortNoFence().

◆ WriteNoFence64()

__forceinline void WriteNoFence64 ( _Out_ _Interlocked_operand_ __int64 volatile Destination,
_In_ __int64  Value 
)

Definition at line 200 of file memaccess.h.

203{
205}
void __iso_volatile_store64(volatile __int64 *, __int64)

Referenced by WriteULong64NoFence().

◆ WriteNoFence8()

__forceinline void WriteNoFence8 ( _Out_ _Interlocked_operand_ char volatile Destination,
_In_ char  Value 
)

Definition at line 149 of file memaccess.h.

152{
154}
void __iso_volatile_store8(volatile __int8 *, __int8)

Referenced by WriteBooleanNoFence(), and WriteUCharNoFence().

◆ WritePointerNoFence()

__forceinline void WritePointerNoFence ( _Out_ _Interlocked_operand_ void *volatile Destination,
_In_opt_ void Value 
)

Definition at line 630 of file memaccess.h.

633{
634 WriteNoFence((long*)Destination, (long)Value);
635}
__forceinline void WriteNoFence(_Out_ _Interlocked_operand_ long volatile *Destination, _In_ long Value)
Definition: memaccess.h:183

◆ WritePointerRaw()

__forceinline void WritePointerRaw ( _Out_ _Interlocked_operand_ void *volatile Destination,
_In_opt_ void Value 
)

Definition at line 639 of file memaccess.h.

642{
643 WriteRaw((long*)Destination, (long)Value);
644}
__forceinline void WriteRaw(_Out_ _Interlocked_operand_ long volatile *Destination, _In_ long Value)
Definition: memaccess.h:115

◆ WritePointerRelease()

__forceinline void WritePointerRelease ( _Out_ _Interlocked_operand_ void *volatile Destination,
_In_ void Value 
)

Definition at line 621 of file memaccess.h.

624{
625 WriteRelease((long*)Destination, (long)Value);
626}
__forceinline void WriteRelease(_Out_ _Interlocked_operand_ long volatile *Destination, _In_ long Value)
Definition: memaccess.h:260

◆ WriteRaw()

__forceinline void WriteRaw ( _Out_ _Interlocked_operand_ long volatile Destination,
_In_ long  Value 
)

Definition at line 115 of file memaccess.h.

118{
119 *(long *)Destination = Value;
120}

Referenced by WritePointerRaw(), and WriteULongRaw().

◆ WriteRaw16()

__forceinline void WriteRaw16 ( _Out_ _Interlocked_operand_ short volatile Destination,
_In_ short  Value 
)

Definition at line 98 of file memaccess.h.

101{
102 *(short *)Destination = Value;
103}

Referenced by WriteUShortRaw().

◆ WriteRaw64()

__forceinline void WriteRaw64 ( _Out_ _Interlocked_operand_ __int64 volatile Destination,
_In_ __int64  Value 
)

Definition at line 132 of file memaccess.h.

135{
137}

Referenced by WriteULong64Raw().

◆ WriteRaw8()

__forceinline void WriteRaw8 ( _Out_ _Interlocked_operand_ char volatile Destination,
_In_ char  Value 
)

Definition at line 81 of file memaccess.h.

84{
85 *(char *)Destination = Value;
86}

Referenced by WriteUCharRaw().

◆ WriteRelease()

__forceinline void WriteRelease ( _Out_ _Interlocked_operand_ long volatile Destination,
_In_ long  Value 
)

Definition at line 260 of file memaccess.h.

263{
264 _ReleaseBarrier();
266}

Referenced by WritePointerRelease(), and WriteULongRelease().

◆ WriteRelease16()

__forceinline void WriteRelease16 ( _Out_ _Interlocked_operand_ short volatile Destination,
_In_ short  Value 
)

Definition at line 240 of file memaccess.h.

243{
244 _ReleaseBarrier();
246}

Referenced by WriteUShortRelease().

◆ WriteRelease64()

__forceinline void WriteRelease64 ( _Out_ _Interlocked_operand_ __int64 volatile Destination,
_In_ __int64  Value 
)

Definition at line 280 of file memaccess.h.

283{
284 _ReleaseBarrier();
286}

Referenced by WriteULong64Release().

◆ WriteRelease8()

__forceinline void WriteRelease8 ( _Out_ _Interlocked_operand_ char volatile Destination,
_In_ char  Value 
)

Definition at line 220 of file memaccess.h.

223{
224 _ReleaseBarrier();
226}

Referenced by WriteBooleanRelease(), and WriteUCharRelease().

◆ WriteUCharNoFence()

__forceinline void WriteUCharNoFence ( _Out_ _Interlocked_operand_ unsigned char volatile Destination,
_In_ unsigned char  Value 
)

Definition at line 324 of file memaccess.h.

327{
328 WriteNoFence8((char*)Destination, (char)Value);
329}

◆ WriteUCharRaw()

__forceinline void WriteUCharRaw ( _Out_ _Interlocked_operand_ unsigned char volatile Destination,
_In_ unsigned char  Value 
)

Definition at line 333 of file memaccess.h.

336{
337 WriteRaw8((char*)Destination, (char)Value);
338}
__forceinline void WriteRaw8(_Out_ _Interlocked_operand_ char volatile *Destination, _In_ char Value)
Definition: memaccess.h:81

◆ WriteUCharRelease()

__forceinline void WriteUCharRelease ( _Out_ _Interlocked_operand_ unsigned char volatile Destination,
_In_ unsigned char  Value 
)

Definition at line 315 of file memaccess.h.

318{
319 WriteRelease8((char*)Destination, (char)Value);
320}

◆ WriteULong64NoFence()

__forceinline void WriteULong64NoFence ( _Out_ _Interlocked_operand_ unsigned __int64 volatile Destination,
_In_ unsigned __int64  Value 
)

Definition at line 511 of file memaccess.h.

514{
516}
__forceinline void WriteNoFence64(_Out_ _Interlocked_operand_ __int64 volatile *Destination, _In_ __int64 Value)
Definition: memaccess.h:200

Referenced by TransferPktComplete().

◆ WriteULong64Raw()

__forceinline void WriteULong64Raw ( _Out_ _Interlocked_operand_ unsigned __int64 volatile Destination,
_In_ unsigned __int64  Value 
)

Definition at line 520 of file memaccess.h.

523{
525}
__forceinline void WriteRaw64(_Out_ _Interlocked_operand_ __int64 volatile *Destination, _In_ __int64 Value)
Definition: memaccess.h:132

◆ WriteULong64Release()

__forceinline void WriteULong64Release ( _Out_ _Interlocked_operand_ unsigned __int64 volatile Destination,
_In_ unsigned __int64  Value 
)

Definition at line 502 of file memaccess.h.

505{
507}
__forceinline void WriteRelease64(_Out_ _Interlocked_operand_ __int64 volatile *Destination, _In_ __int64 Value)
Definition: memaccess.h:280

◆ WriteULongNoFence()

__forceinline void WriteULongNoFence ( _Out_ _Interlocked_operand_ unsigned long volatile Destination,
_In_ unsigned long  Value 
)

Definition at line 460 of file memaccess.h.

463{
464 WriteNoFence((long*)Destination, (long)Value);
465}

◆ WriteULongRaw()

__forceinline void WriteULongRaw ( _Out_ _Interlocked_operand_ unsigned long volatile Destination,
_In_ unsigned long  Value 
)

Definition at line 469 of file memaccess.h.

472{
473 WriteRaw((long*)Destination, (long)Value);
474}

◆ WriteULongRelease()

__forceinline void WriteULongRelease ( _Out_ _Interlocked_operand_ unsigned long volatile Destination,
_In_ unsigned long  Value 
)

Definition at line 451 of file memaccess.h.

454{
455 WriteRelease((long*)Destination, (long)Value);
456}

◆ WriteUShortNoFence()

__forceinline void WriteUShortNoFence ( _Out_ _Interlocked_operand_ unsigned short volatile Destination,
_In_ unsigned short  Value 
)

Definition at line 409 of file memaccess.h.

412{
413 WriteNoFence16((short*)Destination, (short)Value);
414}
__forceinline void WriteNoFence16(_Out_ _Interlocked_operand_ short volatile *Destination, _In_ short Value)
Definition: memaccess.h:166

◆ WriteUShortRaw()

__forceinline void WriteUShortRaw ( _Out_ _Interlocked_operand_ unsigned short volatile Destination,
_In_ unsigned short  Value 
)

Definition at line 418 of file memaccess.h.

421{
422 WriteRaw16((short*)Destination, (short)Value);
423}
__forceinline void WriteRaw16(_Out_ _Interlocked_operand_ short volatile *Destination, _In_ short Value)
Definition: memaccess.h:98

◆ WriteUShortRelease()

__forceinline void WriteUShortRelease ( _Out_ _Interlocked_operand_ unsigned short volatile Destination,
_In_ unsigned short  Value 
)

Definition at line 400 of file memaccess.h.

403{
404 WriteRelease16((short*)Destination, (short)Value);
405}
__forceinline void WriteRelease16(_Out_ _Interlocked_operand_ short volatile *Destination, _In_ short Value)
Definition: memaccess.h:240