L4Re - L4 Runtime Environment
cxx::Bitmap_base Class Reference

Basic bitmap abstraction. More...

+ Inheritance diagram for cxx::Bitmap_base:
+ Collaboration diagram for cxx::Bitmap_base:

Data Structures

class  Bit
 A writeable bit in a bitmap. More...
 
class  Char
 Helper abstraction for a byte contained in the bitmap. More...
 
class  Word
 Helper abstraction for a word contained in the bitmap. More...
 

Public Member Functions

void bit (long bit, bool on) throw ()
 Set the value of bit bit to on. More...
 
void clear_bit (long bit) throw ()
 Clear bit bit. More...
 
void set_bit (long bit) throw ()
 Set bit bit. More...
 
word_type bit (long bit) const throw ()
 Get the truth value of a bit. More...
 
word_type operator[] (long bit) const throw ()
 Get the bit at index bit. More...
 
Bit operator[] (long bit) throw ()
 Get the lvalue for the bit at index bit. More...
 
long scan_zero (long max_bit, long start_bit=0) const throw ()
 Scan for the first zero bit. More...
 

Static Public Member Functions

static long words (long bits) throw ()
 Get the number of Words that are used for the bitmap. More...
 
static long chars (long bits) throw ()
 Get the number of chars that are used for the bitmap. More...
 

Protected Types

enum  { W_bits = sizeof(word_type) * 8, C_bits = 8 }
 
typedef unsigned long word_type
 Data type for each element of the bit buffer.
 

Static Protected Member Functions

static unsigned word_index (unsigned bit)
 Get the word index for the given bit. More...
 
static unsigned bit_index (unsigned bit)
 Get the bit index within word_type for the given bit. More...
 

Protected Attributes

word_type_bits
 Pointer to the buffer storing the bits.
 

Detailed Description

Basic bitmap abstraction.

This abstraction keeps a pointer to a memory area that is used as bitmap.

Definition at line 30 of file bitmap.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
protected
Enumerator
W_bits 

number of bits in word_type

C_bits 

number of bits in char

Definition at line 38 of file bitmap.

Member Function Documentation

◆ bit() [1/2]

void cxx::Bitmap_base::bit ( long  bit,
bool  on 
)
throw (
)
inline

Set the value of bit bit to on.

Parameters
bitthe number of the bit
onthe boolean value that shall be assigned to the bit.

Definition at line 211 of file bitmap.

◆ bit() [2/2]

unsigned long cxx::Bitmap_base::bit ( long  bit) const
throw (
)
inline

Get the truth value of a bit.

Parameters
bitthe number of the bit to read.
Returns
0 if bit is not set, != 0 if bit is set.

Definition at line 238 of file bitmap.

◆ bit_index()

static unsigned cxx::Bitmap_base::bit_index ( unsigned  bit)
inlinestaticprotected

Get the bit index within word_type for the given bit.

Parameters
bitthe bit index in the bitmap.
Returns
the bit index within word_type (bit % W_bits).

Definition at line 61 of file bitmap.

◆ chars()

static long cxx::Bitmap_base::chars ( long  bits)
throw (
)
inlinestatic

Get the number of chars that are used for the bitmap.

Definition at line 98 of file bitmap.

◆ clear_bit()

void cxx::Bitmap_base::clear_bit ( long  bit)
throw (
)
inline

Clear bit bit.

Parameters
bitthe number of the bit to clear.

Definition at line 220 of file bitmap.

◆ operator[]() [1/2]

word_type cxx::Bitmap_base::operator[] ( long  bit) const
throw (
)
inline

Get the bit at index bit.

Parameters
bitthe number of the bit to read.
Returns
0 if bit is not set, != 0 if bit is set.

Definition at line 143 of file bitmap.

◆ operator[]() [2/2]

Bit cxx::Bitmap_base::operator[] ( long  bit)
throw (
)
inline

Get the lvalue for the bit at index bit.

Parameters
bitthe number.
Returns
lvalue for bit

Definition at line 151 of file bitmap.

◆ scan_zero()

long cxx::Bitmap_base::scan_zero ( long  max_bit,
long  start_bit = 0 
) const
throw (
)
inline

Scan for the first zero bit.

Parameters
max_bitUpper bound (exclusive) for the scanning operation.
start_bitHint at the number of the first bit to look at. Zero bits below start_bit may or may not be taken into account by the implementation.
Return values
>=0 Number of first zero bit found.
-1All bits between start_bit and max_bit are set.

Definition at line 259 of file bitmap.

◆ set_bit()

void cxx::Bitmap_base::set_bit ( long  bit)
throw (
)
inline

Set bit bit.

Parameters
bitthe number of the bit to set,

Definition at line 229 of file bitmap.

◆ word_index()

static unsigned cxx::Bitmap_base::word_index ( unsigned  bit)
inlinestaticprotected

Get the word index for the given bit.

Parameters
bitthe index of the bit in question.
Returns
the index in Bitmap_base::_bits for the given bit (bit / W_bits).

Definition at line 54 of file bitmap.

◆ words()

static long cxx::Bitmap_base::words ( long  bits)
throw (
)
inlinestatic

Get the number of Words that are used for the bitmap.

Definition at line 81 of file bitmap.


The documentation for this class was generated from the following file: