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); |
oldbitbit position to be mapped
olddefines domain of map
newdefines range of map
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.