class MmioBuffer

Defined at line 146 of file ../../sdk/lib/driver/mmio/cpp/mmio-buffer.h

MmioBuffer is wrapper around mmio_block_t.

Protected Members

 mmio_
const MmioBufferOps * ops_
const void * ctx_

Public Methods

MmioView View (zx_off_t off)

Provides a slice view into the mmio.

The returned slice object must not outlive this object.

Defined at line 56 of file ../../sdk/lib/driver/mmio/cpp/mmio-view.h

MmioView View (zx_off_t off, size_t size)

Defined at line 58 of file ../../sdk/lib/driver/mmio/cpp/mmio-view.h

void MmioBuffer (const MmioBuffer & )

DISALLOW_COPY_AND_ASSIGN_ALLOW_MOVE

Defined at line 152 of file ../../sdk/lib/driver/mmio/cpp/mmio-buffer.h

MmioBuffer & operator= (const MmioBuffer & )

Defined at line 153 of file ../../sdk/lib/driver/mmio/cpp/mmio-buffer.h

const MmioBufferOps * GetDefaultOps ()

Defined at line 155 of file ../../sdk/lib/driver/mmio/cpp/mmio-buffer.h

void MmioBuffer (mmio_buffer_t mmio, const MmioBufferOps * ops, const void * ctx)

Defined at line 157 of file ../../sdk/lib/driver/mmio/cpp/mmio-buffer.h

void ~MmioBuffer ()

Defined at line 163 of file ../../sdk/lib/driver/mmio/cpp/mmio-buffer.h

void MmioBuffer (MmioBuffer && other)

Defined at line 165 of file ../../sdk/lib/driver/mmio/cpp/mmio-buffer.h

MmioBuffer & operator= (MmioBuffer && other)

Defined at line 167 of file ../../sdk/lib/driver/mmio/cpp/mmio-buffer.h

mmio_buffer_t release ()

Defined at line 175 of file ../../sdk/lib/driver/mmio/cpp/mmio-buffer.h

zx::result<MmioBuffer> Create (zx_off_t offset, size_t size, zx::vmo vmo, uint32_t cache_policy)

Defined at line 181 of file ../../sdk/lib/driver/mmio/cpp/mmio-buffer.h

void reset ()

Defined at line 191 of file ../../sdk/lib/driver/mmio/cpp/mmio-buffer.h

MMIO_PTR void * get ()

Defined at line 196 of file ../../sdk/lib/driver/mmio/cpp/mmio-buffer.h

zx_off_t get_offset ()

Defined at line 197 of file ../../sdk/lib/driver/mmio/cpp/mmio-buffer.h

size_t get_size ()

Defined at line 198 of file ../../sdk/lib/driver/mmio/cpp/mmio-buffer.h

zx::unowned_vmo get_vmo ()

Defined at line 199 of file ../../sdk/lib/driver/mmio/cpp/mmio-buffer.h

zx_status_t Pin (const zx::bti & bti, std::optional<MmioPinnedBuffer> * pinned_buffer)

Defined at line 201 of file ../../sdk/lib/driver/mmio/cpp/mmio-buffer.h

zx::result<MmioPinnedBuffer> Pin (const zx::bti & bti)

Defined at line 210 of file ../../sdk/lib/driver/mmio/cpp/mmio-buffer.h

uint32_t ReadMasked32 (uint32_t mask, zx_off_t offs)

Defined at line 224 of file ../../sdk/lib/driver/mmio/cpp/mmio-buffer.h

void ModifyBits32 (uint32_t bits, uint32_t mask, zx_off_t offs)

Defined at line 228 of file ../../sdk/lib/driver/mmio/cpp/mmio-buffer.h

void ModifyBits32 (uint32_t val, uint32_t start, uint32_t width, zx_off_t offs)

Defined at line 232 of file ../../sdk/lib/driver/mmio/cpp/mmio-buffer.h

void SetBits32 (uint32_t bits, zx_off_t offs)

Defined at line 236 of file ../../sdk/lib/driver/mmio/cpp/mmio-buffer.h

void ClearBits32 (uint32_t bits, zx_off_t offs)

Defined at line 238 of file ../../sdk/lib/driver/mmio/cpp/mmio-buffer.h

void CopyFrom32 (const MmioBuffer & source, zx_off_t source_offs, zx_off_t dest_offs, size_t count)

Defined at line 240 of file ../../sdk/lib/driver/mmio/cpp/mmio-buffer.h

template <typename T>
T Read (zx_off_t offs)

Defined at line 246 of file ../../sdk/lib/driver/mmio/cpp/mmio-buffer.h

template <typename T>
T ReadMasked (T mask, zx_off_t offs)

Defined at line 261 of file ../../sdk/lib/driver/mmio/cpp/mmio-buffer.h

template <typename T>
void CopyFrom (const MmioBuffer & source, zx_off_t source_offs, zx_off_t dest_offs, size_t count)

Defined at line 266 of file ../../sdk/lib/driver/mmio/cpp/mmio-buffer.h

template <typename T>
void Write (T val, zx_off_t offs)

Defined at line 277 of file ../../sdk/lib/driver/mmio/cpp/mmio-buffer.h

template <typename T>
void ModifyBits (T bits, T mask, zx_off_t offs)

Defined at line 292 of file ../../sdk/lib/driver/mmio/cpp/mmio-buffer.h

template <typename T>
void SetBits (T bits, zx_off_t offs)

Defined at line 298 of file ../../sdk/lib/driver/mmio/cpp/mmio-buffer.h

template <typename T>
void ClearBits (T bits, zx_off_t offs)

Defined at line 303 of file ../../sdk/lib/driver/mmio/cpp/mmio-buffer.h

template <typename T>
T GetBits (size_t shift, size_t count, zx_off_t offs)

Defined at line 308 of file ../../sdk/lib/driver/mmio/cpp/mmio-buffer.h

template <typename T>
T GetBit (size_t shift, zx_off_t offs)

Defined at line 315 of file ../../sdk/lib/driver/mmio/cpp/mmio-buffer.h

template <typename T>
void ModifyBits (T bits, size_t shift, size_t count, zx_off_t offs)

Defined at line 320 of file ../../sdk/lib/driver/mmio/cpp/mmio-buffer.h

template <typename T>
void ModifyBit (bool val, size_t shift, zx_off_t offs)

Defined at line 327 of file ../../sdk/lib/driver/mmio/cpp/mmio-buffer.h

template <typename T>
void SetBit (size_t shift, zx_off_t offs)

Defined at line 332 of file ../../sdk/lib/driver/mmio/cpp/mmio-buffer.h

template <typename T>
void ClearBit (size_t shift, zx_off_t offs)

Defined at line 337 of file ../../sdk/lib/driver/mmio/cpp/mmio-buffer.h

uint8_t Read8 (zx_off_t offs)

Defined at line 341 of file ../../sdk/lib/driver/mmio/cpp/mmio-buffer.h

uint16_t Read16 (zx_off_t offs)

Defined at line 342 of file ../../sdk/lib/driver/mmio/cpp/mmio-buffer.h

uint32_t Read32 (zx_off_t offs)

Defined at line 343 of file ../../sdk/lib/driver/mmio/cpp/mmio-buffer.h

uint64_t Read64 (zx_off_t offs)

Defined at line 344 of file ../../sdk/lib/driver/mmio/cpp/mmio-buffer.h

void ReadBuffer (zx_off_t offs, void * buffer, size_t size)

Read `size` bytes from the MmioBuffer into `buffer`. There are no access width guarantees

when using this operation and must only be used with devices where arbitrary access widths are

supported.

Defined at line 349 of file ../../sdk/lib/driver/mmio/cpp/mmio-buffer.h

void Write8 (uint8_t val, zx_off_t offs)

Defined at line 353 of file ../../sdk/lib/driver/mmio/cpp/mmio-buffer.h

void Write16 (uint16_t val, zx_off_t offs)

Defined at line 354 of file ../../sdk/lib/driver/mmio/cpp/mmio-buffer.h

void Write32 (uint32_t val, zx_off_t offs)

Defined at line 355 of file ../../sdk/lib/driver/mmio/cpp/mmio-buffer.h

void Write64 (uint64_t val, zx_off_t offs)

Defined at line 356 of file ../../sdk/lib/driver/mmio/cpp/mmio-buffer.h

void WriteBuffer (zx_off_t offs, const void * buffer, size_t size)

Write `size` bytes from `buffer` into the MmioBuffer. There are no access width guarantees

when using this operation and must only be used with devices where arbitrary access widths are

supported.

Defined at line 361 of file ../../sdk/lib/driver/mmio/cpp/mmio-buffer.h

Friends

MmioBuffer MmioBuffer (MmioBuffer && bufferconst MmioBufferOps * opsconst void * ctx)