class ZeroRange

Defined at line 230 of file ../../zircon/kernel/vm/include/vm/vm_page_list.h

The remaining bits of an interval type store any information specific to the type of interval

being tracked. The ZeroRange class is defined here to group together the encoding of these bits

specific to IntervalType::Zero.

Public Members

static const int kAlignBits
static const uint64_t kDirtyStateBits
static const int kDirtyStateShift
static const uint64_t kAwaitingCleanLengthShift

Public Methods

void ZeroRange (uint32_t val)

Defined at line 235 of file ../../zircon/kernel/vm/include/vm/vm_page_list.h

void ZeroRange (uint32_t val, DirtyState state)

Defined at line 250 of file ../../zircon/kernel/vm/include/vm/vm_page_list.h

uint32_t value ()

Defined at line 255 of file ../../zircon/kernel/vm/include/vm/vm_page_list.h

DirtyState GetDirtyState ()

Defined at line 262 of file ../../zircon/kernel/vm/include/vm/vm_page_list.h

void SetDirtyState (DirtyState state)

Defined at line 266 of file ../../zircon/kernel/vm/include/vm/vm_page_list.h

void SetAwaitingCleanLength (uint64_t len)

The AwaitingCleanLength will always be a page-aligned length, so we can mask out the low

kPageShift bits and store only the upper bits.

Defined at line 282 of file ../../zircon/kernel/vm/include/vm/vm_page_list.h

uint64_t GetAwaitingCleanLength ()

Defined at line 291 of file ../../zircon/kernel/vm/include/vm/vm_page_list.h

Enumerations

enum DirtyState
Name Value
Untracked 0
Clean 1
Dirty 2
NumStates 3

The various dirty states that a zero interval can be in. Refer to VmCowPages::DirtyState for

an explanation of the states. Note that an AwaitingClean state is not encoded in the interval

state bits. This information is instead stored using the AwaitingCleanLength for convenience,

where a non-zero length indicates that the interval is AwaitingClean. Doing this affords

more convenient splitting and merging of intervals.

Defined at line 243 of file ../../zircon/kernel/vm/include/vm/vm_page_list.h