blob: ca473c0d7890a47ebc49727009e0ed36a96740f4 [file] [log] [blame]
Vadim Bendebury56797522015-05-20 10:32:25 -07001// This file was extracted from the TCG Published
2// Trusted Platform Module Library
3// Part 4: Supporting Routines
4// Family "2.0"
5// Level 00 Revision 01.16
6// October 30, 2014
7
8#include "InternalRoutines.h"
9//
10//
11// Functions
12//
13// BitIsSet()
14//
15// This function is used to check the setting of a bit in an array of bits.
16//
17// Return Value Meaning
18//
19// TRUE bit is set
20// FALSE bit is not set
21//
22BOOL
23BitIsSet(
24 unsigned int bitNum, // IN: number of the bit in 'bArray'
25 BYTE *bArray, // IN: array containing the bit
26 unsigned int arraySize // IN: size in bytes of 'bArray'
27 )
28{
29 pAssert(arraySize > (bitNum >> 3));
30 return((bArray[bitNum >> 3] & (1 << (bitNum & 7))) != 0);
31}
32//
33//
34// BitSet()
35//
36// This function will set the indicated bit in bArray.
37//
38void
39BitSet(
40 unsigned int bitNum, // IN: number of the bit in 'bArray'
41 BYTE *bArray, // IN: array containing the bit
42 unsigned int arraySize // IN: size in bytes of 'bArray'
43 )
44{
45 pAssert(arraySize > bitNum/8);
46 bArray[bitNum >> 3] |= (1 << (bitNum & 7));
47}
48//
49//
50// BitClear()
51//
52// This function will clear the indicated bit in bArray.
53//
54void
55BitClear(
56 unsigned int bitNum, // IN: number of the bit in 'bArray'.
57 BYTE *bArray, // IN: array containing the bit
58 unsigned int arraySize // IN: size in bytes of 'bArray'
59 )
60{
61 pAssert(arraySize > bitNum/8);
62 bArray[bitNum >> 3] &= ~(1 << (bitNum & 7));
63}