// This file was extracted from the TCG Published
// Trusted Platform Module Library
// Part 4: Supporting Routines
// Family "2.0"
// Level 00 Revision 01.16
// October 30, 2014
#include "InternalRoutines.h"
//
//
// Functions
//
// BitIsSet()
//
// This function is used to check the setting of a bit in an array of bits.
//
// Return Value Meaning
//
// TRUE bit is set
// FALSE bit is not set
//
BOOL
BitIsSet(
unsigned int bitNum, // IN: number of the bit in 'bArray'
BYTE *bArray, // IN: array containing the bit
unsigned int arraySize // IN: size in bytes of 'bArray'
)
{
pAssert(arraySize > (bitNum >> 3));
return((bArray[bitNum >> 3] & (1 << (bitNum & 7))) != 0);
}
//
//
// BitSet()
//
// This function will set the indicated bit in bArray.
//
void
BitSet(
unsigned int bitNum, // IN: number of the bit in 'bArray'
BYTE *bArray, // IN: array containing the bit
unsigned int arraySize // IN: size in bytes of 'bArray'
)
{
pAssert(arraySize > bitNum/8);
bArray[bitNum >> 3] |= (1 << (bitNum & 7));
}
//
//
// BitClear()
//
// This function will clear the indicated bit in bArray.
//
void
BitClear(
unsigned int bitNum, // IN: number of the bit in 'bArray'.
BYTE *bArray, // IN: array containing the bit
unsigned int arraySize // IN: size in bytes of 'bArray'
)
{
pAssert(arraySize > bitNum/8);
bArray[bitNum >> 3] &= ~(1 << (bitNum & 7));
}