/* * ===================================================================================== * * Filename: bitmap.h * * Description: * * Version: 1.0 * Created: 23/02/24 07:42:05 PM IST * Revision: none * Compiler: gcc * * Author: YOUR NAME (), * Organization: * * ===================================================================================== */ #ifndef __BITMAP_H_ #define __BITMAP_H_ #ifndef __BIT_ARRAY__ #include "bitarr.h" #endif #ifndef __BITS__ #include "bitsop.h" #endif #include #include #include #define ITERATE_BITMAP_BEGIN(bitmap_ptr ,bit_state) \ { \ char *ptr = bitmap_ptr->array; \ unsigned sz = bitmap_ptr->size; \ unsigned n_blocks = sz/8; \ unsigned residual_bit = sz%8; \ for(int byte_block = 0 ; byte_block < n_blocks ; byte_block++ ){ \ ptr = ptr + byte_block; \ for( int idx = 7 ; idx >= (byte_block == n_blocks-1)?8-residual_bit:0 ; idx-- ){ \ if( (*ptr)&(1<