gvisorgvisor.dev/gvisor/pkg/bitmap Index | Files

package bitmap

import "gvisor.dev/gvisor/pkg/bitmap"

Package bitmap provides the implementation of bitmap.

Index

Constants

const MaxBitEntryLimit uint32 = math.MaxInt32

MaxBitEntryLimit defines the upper limit on how many bit entries are supported by this Bitmap implementation.

Types

type Bitmap

type Bitmap struct {
	// contains filtered or unexported fields
}

Bitmap implements an efficient bitmap.

+stateify savable

func New

func New(size uint32) Bitmap

New create a new empty Bitmap.

func (*Bitmap) Add

func (b *Bitmap) Add(i uint32)

Add add i to the Bitmap.

func (*Bitmap) ClearRange

func (b *Bitmap) ClearRange(begin, end uint32)

ClearRange clear bits within range (begin and end) for the Bitmap. begin is inclusive and end is exclusive.

func (*Bitmap) Clone

func (b *Bitmap) Clone() Bitmap

Clone the Bitmap.

func (*Bitmap) FirstOne

func (b *Bitmap) FirstOne(start uint32) (bit uint32, err error)

FirstOne returns the first set bit from the range [start, )

func (*Bitmap) FirstZero

func (b *Bitmap) FirstZero(start uint32) (bit uint32, err error)

FirstZero returns the first unset bit from the range [start, ).

func (*Bitmap) FlipRange

func (b *Bitmap) FlipRange(begin, end uint32)

FlipRange flip bits within range (begin and end) for the Bitmap. begin is inclusive and end is exclusive.

func (*Bitmap) ForEach

func (b *Bitmap) ForEach(start, end uint32, f func(idx uint32) bool)

ForEach calls `f` for each set bit in the range [start, end).

If f returns false, ForEach stops the iteration.

func (*Bitmap) GetNumOnes

func (b *Bitmap) GetNumOnes() uint32

GetNumOnes return the number of ones in the Bitmap.

func (*Bitmap) Grow

func (b *Bitmap) Grow(toGrow uint32) error

Grow grows the bitmap by at least toGrow bits.

func (*Bitmap) IsEmpty

func (b *Bitmap) IsEmpty() bool

IsEmpty verifies whether the Bitmap is empty.

func (*Bitmap) Maximum

func (b *Bitmap) Maximum() uint32

Maximum return the largest value in the Bitmap.

func (*Bitmap) Minimum

func (b *Bitmap) Minimum() uint32

Minimum return the smallest value in the Bitmap.

func (*Bitmap) Remove

func (b *Bitmap) Remove(i uint32)

Remove i from the Bitmap.

func (*Bitmap) Reset

func (b *Bitmap) Reset()

Reset zeroes the entire bitmap.

func (*Bitmap) Size

func (b *Bitmap) Size() int

Size returns the total number of bits in the bitmap.

func (*Bitmap) ToSlice

func (b *Bitmap) ToSlice() []uint32

ToSlice transform the Bitmap into slice. For example, a bitmap of [0, 1, 0, 1] will return the slice [1, 3].

Source Files

bitmap.go

Version
v0.0.0-20250605235530-a6711d1e1dc6 (latest)
Published
Jun 5, 2025
Platform
linux/amd64
Imports
3 packages
Last checked
4 hours ago

Tools for package owners.