## table of contents

BITMAP_BITREMAP(9) | Basic Kernel Library Functions | BITMAP_BITREMAP(9) |

# NAME¶

bitmap_bitremap - Apply map defined by a pair of bitmaps to a single bit

# SYNOPSIS¶

**int bitmap_bitremap(int ***oldbit***,
const unsigned long * ***old***,
const unsigned long * ***new***,
int ***bits***);**

# ARGUMENTS¶

*oldbit*

*old*

*new*

*bits*

# DESCRIPTION¶

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.

# COPYRIGHT¶

January 2017 | Kernel Hackers Manual 4.8. |