1996-07-09 08:22:35 +02:00
|
|
|
/*-------------------------------------------------------------------------
|
|
|
|
*
|
1999-02-14 00:22:53 +01:00
|
|
|
* bit.c
|
1997-09-07 07:04:48 +02:00
|
|
|
* Standard bit array code.
|
1996-07-09 08:22:35 +02:00
|
|
|
*
|
|
|
|
* Copyright (c) 1994, Regents of the University of California
|
|
|
|
*
|
|
|
|
*
|
|
|
|
* IDENTIFICATION
|
1999-07-16 00:40:16 +02:00
|
|
|
* $Header: /cvsroot/pgsql/src/backend/lib/Attic/bit.c,v 1.7 1999/07/15 22:39:11 momjian Exp $
|
1996-07-09 08:22:35 +02:00
|
|
|
*
|
|
|
|
*-------------------------------------------------------------------------
|
|
|
|
*/
|
|
|
|
|
|
|
|
/*
|
|
|
|
* utils/memutils.h contains declarations of the functions in this file
|
|
|
|
*/
|
1996-11-06 09:27:16 +01:00
|
|
|
#include <postgres.h>
|
1996-10-31 11:26:33 +01:00
|
|
|
|
1996-11-06 09:27:16 +01:00
|
|
|
#include <utils/bit.h>
|
1996-07-09 08:22:35 +02:00
|
|
|
|
|
|
|
void
|
|
|
|
BitArraySetBit(BitArray bitArray, BitIndex bitIndex)
|
1997-09-07 07:04:48 +02:00
|
|
|
{
|
|
|
|
bitArray[bitIndex / BitsPerByte]
|
1996-07-09 08:22:35 +02:00
|
|
|
|= (1 << (BitsPerByte - (bitIndex % BitsPerByte) - 1));
|
1997-09-07 07:04:48 +02:00
|
|
|
return;
|
1996-07-09 08:22:35 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
void
|
|
|
|
BitArrayClearBit(BitArray bitArray, BitIndex bitIndex)
|
|
|
|
{
|
1997-09-07 07:04:48 +02:00
|
|
|
bitArray[bitIndex / BitsPerByte]
|
1996-07-09 08:22:35 +02:00
|
|
|
&= ~(1 << (BitsPerByte - (bitIndex % BitsPerByte) - 1));
|
1997-09-07 07:04:48 +02:00
|
|
|
return;
|
1996-07-09 08:22:35 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
bool
|
|
|
|
BitArrayBitIsSet(BitArray bitArray, BitIndex bitIndex)
|
1997-09-07 07:04:48 +02:00
|
|
|
{
|
|
|
|
return ((bool) (((bitArray[bitIndex / BitsPerByte] &
|
|
|
|
(1 << (BitsPerByte - (bitIndex % BitsPerByte)
|
|
|
|
- 1)
|
|
|
|
)
|
|
|
|
) != 0) ? 1 : 0));
|
1996-07-09 08:22:35 +02:00
|
|
|
}
|