Bitdefender Hypervisor Memory Introspection
bitmask.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2020 Bitdefender
3  * SPDX-License-Identifier: Apache-2.0
4  */
5 #ifndef _BITMASK_H_
6 #define _BITMASK_H_
7 
8 #include "introtypes.h"
9 
15 typedef struct _BITMASK
16 {
17  size_t Length;
18  BYTE Bits[];
19 } BITMASK;
20 
21 
22 BITMASK *
24  _In_ size_t Size
25  );
26 
27 void
29  _Inout_ BITMASK **BitMask
30  );
31 
32 void
34  _Inout_ BITMASK *BitMask,
35  _In_ DWORD BitPos
36  );
37 
38 void
40  _Inout_ BITMASK *BitMask,
41  _In_ DWORD BitPos
42  );
43 
44 BYTE
46  _In_ BITMASK *BitMask,
47  _In_ DWORD BitPos
48  );
49 
50 BYTE
52  _Inout_ BITMASK *BitMask,
53  _In_ DWORD BitPos
54  );
55 
56 BYTE
58  _Inout_ BITMASK *BitMask,
59  _In_ DWORD BitPos
60  );
61 
62 DWORD
64  _In_ BITMASK *BitMask
65  );
66 
67 
68 #endif // _BITMASK_H_
BYTE Bits[]
The bit array.
Definition: bitmask.h:18
Represents a bit mask.
Definition: bitmask.h:15
uint8_t BYTE
Definition: intro_types.h:47
#define _In_
Definition: intro_sal.h:21
BYTE BitMaskTestAndSet(BITMASK *BitMask, DWORD BitPos)
Tests and sets a bit in a BITMASK.
Definition: bitmask.c:180
BYTE BitMaskTest(BITMASK *BitMask, DWORD BitPos)
Tests a bit in a BITMASK.
Definition: bitmask.c:151
BITMASK * BitMaskAlloc(size_t Size)
Creates a new BITMASK.
Definition: bitmask.c:56
BYTE BitMaskTestAndReset(BITMASK *BitMask, DWORD BitPos)
Tests and clears a bit in a BITMASK.
Definition: bitmask.c:214
#define _Inout_
Definition: intro_sal.h:20
void BitMaskSet(BITMASK *BitMask, DWORD BitPos)
Sets a bit in a BITMASK.
Definition: bitmask.c:97
size_t Length
The number of bits included.
Definition: bitmask.h:17
uint32_t DWORD
Definition: intro_types.h:49
void BitMaskClear(BITMASK *BitMask, DWORD BitPos)
Clears a bit in a BITMASK.
Definition: bitmask.c:124
DWORD BitMaskScanForward(BITMASK *BitMask)
Search for a set bit starting from the least significant bit.
Definition: bitmask.c:249
struct _BITMASK BITMASK
Represents a bit mask.
void BitMaskFree(BITMASK **BitMask)
Frees a BITMASK allocated by BitMaskAlloc.
Definition: bitmask.c:83