class Builder

Defined at line 167 of file ../../src/devices/driver-lab/cpp/include/lib/driver_lab/driver_lab.h

Builder for configuring and instantiating an `EmbeddedServer` inside a C++

DFv2 driver.

Public Methods

void Builder (const Builder & )

Defined at line 175 of file ../../src/devices/driver-lab/cpp/include/lib/driver_lab/driver_lab.h

Builder & operator= (const Builder & )

Defined at line 176 of file ../../src/devices/driver-lab/cpp/include/lib/driver_lab/driver_lab.h

void Builder (std::string_view node_identity)

-----------------------------------------------------------------------------

Builder

-----------------------------------------------------------------------------

Defined at line 178 of file ../../src/devices/driver-lab/cpp/driver_lab.cc

void ~Builder ()

Defined at line 181 of file ../../src/devices/driver-lab/cpp/driver_lab.cc

void Builder (Builder && other)

Defined at line 188 of file ../../src/devices/driver-lab/cpp/driver_lab.cc

template <typename MmioLike>
zx::result<uint32_t> AddMmioBuffer (std::string_view name, const MmioLike & mmio)

Convenience overload for `fdf::MmioBuffer` / `fdf::MmioView`-shaped types

exposing `get_vmo()`, `get_offset()`, and `get_size()`.

Defined at line 192 of file ../../src/devices/driver-lab/cpp/include/lib/driver_lab/driver_lab.h

Builder & operator= (Builder && other)

Defined at line 192 of file ../../src/devices/driver-lab/cpp/driver_lab.cc

zx::result<uint32_t> AddStateVmoBank (std::string_view name, const StateVmoBank & bank, std::initializer_list<uint64_t> writable_knob_offsets)

Defined at line 201 of file ../../src/devices/driver-lab/cpp/include/lib/driver_lab/driver_lab.h

Builder & SetEnabled (bool enabled)

Explicitly enables or disables the embedded server.

Defined at line 203 of file ../../src/devices/driver-lab/cpp/driver_lab.cc

Builder & SetAllowMutatingSessions (bool allow)

Configures whether mutating sessions are permitted on this embedded server.

Defined at line 208 of file ../../src/devices/driver-lab/cpp/driver_lab.cc

Builder & SetWritableRegisters (uint32_t resource_id, std::initializer_list<uint64_t> offsets)

Defined at line 211 of file ../../src/devices/driver-lab/cpp/include/lib/driver_lab/driver_lab.h

zx::result<uint32_t> AddMmioVmo (std::string_view name, zx::unowned_vmo vmo, size_t offset, size_t size)

Shares a driver MMIO VMO with the embedded server. `vmo` is duplicated

internally with `ZX_RIGHT_SAME_RIGHTS`; the caller retains ownership.

Defined at line 213 of file ../../src/devices/driver-lab/cpp/driver_lab.cc

Builder & SetMaskedWritableRegisters (uint32_t resource_id, std::initializer_list<MaskedRegister> registers)

Defined at line 227 of file ../../src/devices/driver-lab/cpp/include/lib/driver_lab/driver_lab.h

zx::result<uint32_t> AddStateVmoBank (std::string_view name, const StateVmoBank & bank, cpp20::span<const uint64_t> writable_knob_offsets)

Registers a `StateVmoBank` and optionally marks 32-bit knob offsets as

host-writable under mutating sessions.

Defined at line 227 of file ../../src/devices/driver-lab/cpp/driver_lab.cc

Builder & SetHardDeniedRanges (uint32_t resource_id, std::initializer_list<ByteRange> ranges)

Defined at line 236 of file ../../src/devices/driver-lab/cpp/include/lib/driver_lab/driver_lab.h

Builder & SetWritableRegisters (uint32_t resource_id, cpp20::span<const uint64_t> offsets)

Configures the permitted 32-bit writable register offsets on `resource_id`.

Defined at line 239 of file ../../src/devices/driver-lab/cpp/driver_lab.cc

Builder & SetMaskedWritableRegisters (uint32_t resource_id, cpp20::span<const MaskedRegister> registers)

Configures 32-bit writable registers on `resource_id` that each permit

host changes only to the bits in `allow_mask`. Use this for control

registers that also hold reset or run/stop bits.

Like `SetWritableRegisters()`, this replaces any writable registers

previously configured on `resource_id`. To mix full-width and masked

registers on one resource, give the full-width ones a mask of

`0xffffffff`.

Defined at line 244 of file ../../src/devices/driver-lab/cpp/driver_lab.cc

Builder & SetHardDeniedRanges (uint32_t resource_id, cpp20::span<const ByteRange> ranges)

Configures the hard-denied byte ranges (`[start, end)`) on `resource_id`.

Defined at line 259 of file ../../src/devices/driver-lab/cpp/driver_lab.cc

uint32_t AddInterrupt (std::string_view name)

Registers a named interrupt resource for event tapping and returns its

assigned resource ID.

Defined at line 273 of file ../../src/devices/driver-lab/cpp/driver_lab.cc

Builder & SetQuiesceHook (fit::function<void (bool)> hook)

Registers a synchronous quiesce hook invoked when a mutating host session

acquires (`paused = true`) or releases (`paused = false`) the mutation

lease.

Defined at line 284 of file ../../src/devices/driver-lab/cpp/driver_lab.cc

zx::result<EmbeddedServer> Build ()

Validates registered resources and builds the `EmbeddedServer`.

Defined at line 290 of file ../../src/devices/driver-lab/cpp/driver_lab.cc