Windows NT 4.0 source code leak
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.
 
 
 
 
 
 

77 lines
2.3 KiB

/*******************************************************************/
/* Copyright(c) 1993 Microsoft Corporation */
/*******************************************************************/
//***
//
// Filename: utils.h
//
// Description: Contains miscellaneous utilities
//
// Author: Stefan Solomon (stefans) October 4, 1993.
//
// Revision History:
//
//***
#ifndef _UTILS_
#define _UTILS_
//*** General Spin Lock Utilities ***
#define INITIALIZE_SPIN_LOCK(lockp) \
NdisAllocateSpinLock(lockp)
#define DEINITIALIZE_SPIN_LOCK(lock) \
NdisFreeSpinLock(lock)
#define ACQUIRE_SPIN_LOCK(lockp) \
NdisAcquireSpinLock(lockp)
#define RELEASE_SPIN_LOCK(lockp) \
NdisReleaseSpinLock(lockp)
//*** Routing Table Spin Locks ***
#define ACQUIRE_RTSEGMENT_SPIN_LOCK(segment, oldirqlp) \
ExAcquireSpinLock(SegmentLocksTable + segment, oldirqlp)
#define RELEASE_RTSEGEMENT_SPIN_LOCK(segment, oldirqlp) \
ExReleaseSpinLock(SegmentLocksTable + segment, oldirqlp)
/*
* The following macros deal with on-the-wire short and long values
*
* On the wire format is big-endian i.e. a long value of 0x01020304 is
* represented as 01 02 03 04.
* Similarly a short value of 0x0102 is represented as 01 02.
*
* The host format is not assumed since it will vary from processor to
* processor.
*/
// Get a short from on-the-wire format to a USHORT in the host format
#define GETSHORT2USHORT(DstPtr, SrcPtr) \
*(PUSHORT)(DstPtr) = ((*((PUCHAR)(SrcPtr)+0) << 8) + \
(*((PUCHAR)(SrcPtr)+1) ))
// Get a long from on-the-wire format to a ULONG in the host format
#define GETLONG2ULONG(DstPtr, SrcPtr) \
*(PULONG)(DstPtr) = ((*((PUCHAR)(SrcPtr)+0) << 24) + \
(*((PUCHAR)(SrcPtr)+1) << 16) + \
(*((PUCHAR)(SrcPtr)+2) << 8) + \
(*((PUCHAR)(SrcPtr)+3) ))
// Put a USHORT from the host format to a short to on-the-wire format
#define PUTUSHORT2SHORT(DstPtr, Src) \
*((PUCHAR)(DstPtr)+0) = (UCHAR) ((USHORT)(Src) >> 8), \
*((PUCHAR)(DstPtr)+1) = (UCHAR)(Src)
// Put a ULONG from the host format to an array of 4 UCHARs on-the-wire format
#define PUTULONG2LONG(DstPtr, Src) \
*((PUCHAR)(DstPtr)+0) = (UCHAR) ((ULONG)(Src) >> 24), \
*((PUCHAR)(DstPtr)+1) = (UCHAR) ((ULONG)(Src) >> 16), \
*((PUCHAR)(DstPtr)+2) = (UCHAR) ((ULONG)(Src) >> 8), \
*((PUCHAR)(DstPtr)+3) = (UCHAR) (Src)
#endif // _UTILS_