From 81a5d53bc566fe2c678577cb3f3e5cadd0711753 Mon Sep 17 00:00:00 2001 From: fusion32 Date: Tue, 10 Jun 2025 19:19:09 -0300 Subject: finish `info.cc` --- src/util.cc | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'src/util.cc') diff --git a/src/util.cc b/src/util.cc index 0982cd7..4a3523b 100644 --- a/src/util.cc +++ b/src/util.cc @@ -167,6 +167,31 @@ char *findLast(char *s, char c){ return Last; } +// BitSet Utility +// ============================================================================= +bool CheckBitIndex(int BitSetBytes, int Index){ + return Index >= 0 && Index < (BitSetBytes * 8); +} + +bool CheckBit(uint8 *BitSet, int Index){ + int ByteIndex = (int)(Index / 8); + uint8 BitMask = (uint8)(1 << (Index % 8)); + return (BitSet[ByteIndex] & BitMask) != 0; +} + +void SetBit(uint8 *BitSet, int Index){ + int ByteIndex = (int)(Index / 8); + uint8 BitMask = (uint8)(1 << (Index % 8)); + BitSet[ByteIndex] |= BitMask; +} + +void ClearBit(uint8 *BitSet, int Index){ + int ByteIndex = (int)(Index / 8); + uint8 BitMask = (uint8)(1 << (Index % 8)); + BitSet[ByteIndex] &= ~BitMask; +} + + // TReadStream // ============================================================================= bool TReadStream::readFlag(void){ -- cgit v1.2.3