Пример #1
0
//---------------------------------------------------------------------------
void kbitarray_clean_bit(t_kbitarray *self, off_t bit_index) {
	unsigned char mask;

	/* create a mask to zero out desired bit */
	mask = BIT_IN_CHAR(bit_index);
	mask = ~mask;

	self->bitarray[BIT_CHAR(bit_index)] &= mask;
}
Пример #2
0
/***************************************************************************
*   Function   : BitArraySetBit
*   Description: This function sets the specified bit to 1 in the bit array
*                passed as a parameter.
*   Parameters : ba - pointer to bit array
*                bit - bit to set
*   Effects    : The specified bit in the bit array is set to 1.
*   Returned   : NONE
***************************************************************************/
void BitArraySetBit(bit_array_t *ba, unsigned int bit)
{
    if (ba == NULL)
    {
        return;         /* no bit to set */
    }

    if (ba->numBits <= bit)
    {
        return;         /* bit out of range */
    }

    ba->array[BIT_CHAR(bit)] |= BIT_IN_CHAR(bit);
}
Пример #3
0
/***************************************************************************
*   Function   : BitArrayClearBit
*   Description: This function sets the specified bit to 0 in the bit array
*                passed as a parameter.
*   Parameters : ba - pointer to bit array
*                bit - bit to clear
*   Effects    : The specified bit in the bit array is set to 0.
*   Returned   : NONE
***************************************************************************/
void BitArrayClearBit(bit_array_t *ba, unsigned int bit)
{
    unsigned char mask;

    if (ba == NULL)
    {
        return;         /* no bit to clear */
    }

    if (ba->numBits <= bit)
    {
        return;         /* bit out of range */
    }

    /* create a mask to zero out desired bit */
    mask =  BIT_IN_CHAR(bit);
    mask = ~mask;

    ba->array[BIT_CHAR(bit)] &= mask;
}
Пример #4
0
int GetBitCount (BYTE *pTicketBet, WORD bits_in_universe)
{
    int  bits_enabled;
    int  bit;
    BOOL status;

    status = FALSE;
    bits_enabled = 0;

    // How many bits are enabled in an universe of universe_size elements?
    for ( bit = 0; bit < bits_in_universe; bit++ )
    {
        status = (pTicketBet[BIT_CHAR(bit)] & BIT_IN_CHAR(bit)) != 0;

        if ( status )
        {
            bits_enabled++;
        }
    }

    return bits_enabled;
}
Пример #5
0
//---------------------------------------------------------------------------
void kbitarray_set_bit(t_kbitarray *self, off_t bit_index) {
	self->bitarray[BIT_CHAR(bit_index)] |= BIT_IN_CHAR(bit_index);
}
Пример #6
0
//---------------------------------------------------------------------------
bool kbitarray_test_bit(t_kbitarray *self, off_t bit_index) {
	return ((self->bitarray[BIT_CHAR(bit_index)] & BIT_IN_CHAR(bit_index)) != 0);
}
Пример #7
0
/***************************************************************************
*   Function   : BitArrayTestBit
*   Description: This function tests the specified bit in the bit array
*                passed as a parameter.  A non-zero will be returned if the
*                tested bit is set.
*   Parameters : ba - pointer to bit array
*                bit - bit to test
*   Effects    : None
*   Returned   : Non-zero if bit is set, otherwise 0.  This function does
*                not check the input.  Tests on invalid input will produce
*                unknown results.
***************************************************************************/
int BitArrayTestBit(bit_array_t *ba, unsigned int bit)
{
    return((ba->array[BIT_CHAR(bit)] & BIT_IN_CHAR(bit)) != 0);
}