class GuestLifecycle

Defined at line 8446 of file fidling/gen/sdk/fidl/fuchsia.virtualization/fuchsia.virtualization/hlcpp/fuchsia/virtualization/cpp/fidl.h

The guest control plane allowing for creating, starting, and stopping the guest.

Public Members

static const char[] Name_

Public Methods

void ~GuestLifecycle ()
void Create (::fuchsia::virtualization::GuestConfig guest_config, CreateCallback callback)

Create a VMM configured with the provided config. This instantiates all devices and loads

the kernel without starting the VCPU or device dispatch loops.

Possible errors:

- ALREADY_RUNNING: A VMM instance is already running, and must be stopped before being

recreated.

All other errors are related to VMM initialization.

void Bind (::fidl::InterfaceRequest< ::fuchsia::virtualization::Guest> guest)

Binds to the Guest protocol for an initialized guest.

This operation must be called between `Create` and `Stop`, otherwise the provided channel

will be immediately closed.

void Run (RunCallback callback)

Start the primary VCPU and any dispatch loop. This will not return until the VMM stops

running. On a clean shutdown (either guest or client initiated) this will return success.

Possible errors:

- ALREADY_RUNING: The VMM has already been started.

- NOT_CREATED: Run was called before the VMM was created.

- CONTROLLER_FORCED_HALT: Stop was called on a running VMM.

- VCPU_START_FAILURE: Failed to start the primary VCPU.

- VCPU_RUNTIME_FAILURE: A VCPU encountered a fatal error while running the guest.

void Stop (StopCallback callback)

Stop a running VMM. Returns once the dispatch loops have stopped. After Stop returns,

Create and then Run can be called again.