Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/*
Copyright (c) 1992 Microsoft Corporation
Module Name:
intrlckd.c
Abstract:
This module contains the routines that should have been in the EX package. This manipulates inter-locked operations on flags and such.
Author:
Jameel Hyder (microsoft!jameelh)
Revision History: 5 Sep 1992 Initial Version
Notes: Tab stop: 4 --*/
#define FILENUM FILE_INTRLCKD
#include <afp.h>
/*** AfpInterlockedSetDword
* * Set specified bits using the spin-lock to provide an interlocked operation. */ VOID FASTCALL AfpInterlockedSetDword( IN PDWORD pSrc, IN DWORD Mask, IN PAFP_SPIN_LOCK pSpinLock ) { KIRQL OldIrql;
ACQUIRE_SPIN_LOCK(pSpinLock, &OldIrql);
*pSrc |= Mask;
RELEASE_SPIN_LOCK(pSpinLock, OldIrql); }
/*** AfpInterlockedClearDword
* * Clear specified bits using the spin-lock to provide an * interlocked operation. */ VOID FASTCALL AfpInterlockedClearDword( IN PDWORD pSrc, IN DWORD Mask, IN PAFP_SPIN_LOCK pSpinLock ) { KIRQL OldIrql;
ACQUIRE_SPIN_LOCK(pSpinLock, &OldIrql);
*pSrc &= ~Mask;
RELEASE_SPIN_LOCK(pSpinLock, OldIrql); }
/*** AfpInterlockedSetNClearDword
* * Set and Clear specified bits using the spin-lock to provide an * interlocked operation. */ VOID FASTCALL AfpInterlockedSetNClearDword( IN PDWORD pSrc, IN DWORD SetMask, IN DWORD ClrMask, IN PAFP_SPIN_LOCK pSpinLock ) { KIRQL OldIrql;
ACQUIRE_SPIN_LOCK(pSpinLock, &OldIrql);
*pSrc |= SetMask; *pSrc &= ~ClrMask;
RELEASE_SPIN_LOCK(pSpinLock, OldIrql); }
|