bitmap_bitremap — Apply map defined by a pair of bitmaps to a single bit
int bitmap_bitremap ( | int oldbit, |
| const unsigned long * old, | |
| const unsigned long * new, | |
int bits); |
int oldbitbit position to be mapped
const unsigned long * olddefines domain of map
const unsigned long * newdefines range of map
int bitsnumber of bits in each of these bitmaps
Let old and new define a mapping of bit positions, such that
whatever position is held by the n-th set bit in old is mapped
to the n-th set bit in new. In the more general case, allowing
for the possibility that the weight 'w' of new is less than the
weight of old, map the position of the n-th set bit in old to
the position of the m-th set bit in new, where m == n % w.
The positions of unset bits in old are mapped to themselves
(the identify map).
Apply the above specified mapping to bit position oldbit, returning
the new bit position.
For example, lets say that old has bits 4 through 7 set, and
new has bits 12 through 15 set. This defines the mapping of bit
position 4 to 12, 5 to 13, 6 to 14 and 7 to 15, and of all other
bit positions unchanged. So if say oldbit is 5, then this routine
returns 13.