class DriverRunner

Defined at line 58 of file ../../src/devices/bin/driver_manager/driver_runner.h

Public Methods

void ShutdownAllDrivers (fit::callback<void ()> callback)

NodeManager interface

Shutdown hooks called by the shutdown manager

Defined at line 167 of file ../../src/devices/bin/driver_manager/driver_runner.h

void ShutdownPkgDrivers (fit::callback<void ()> callback)

Defined at line 174 of file ../../src/devices/bin/driver_manager/driver_runner.h

void SetOnRemovalTimeoutCallback (fit::callback<void ()> callback)

Defined at line 180 of file ../../src/devices/bin/driver_manager/driver_runner.h

bool IsTestShutdownDelayEnabled ()

Defined at line 190 of file ../../src/devices/bin/driver_manager/driver_runner.h

std::weak_ptr<std::mt19937> GetShutdownTestRng ()

Defined at line 191 of file ../../src/devices/bin/driver_manager/driver_runner.h

bool SuspendEnabled ()

Defined at line 235 of file ../../src/devices/bin/driver_manager/driver_runner.h

fidl::WireClient<fuchsia_driver_index::DriverIndex> & driver_index ()

Defined at line 240 of file ../../src/devices/bin/driver_manager/driver_runner.h

std::shared_ptr<Node> root_node ()

Defined at line 242 of file ../../src/devices/bin/driver_manager/driver_runner.h

fidl::Client<fuchsia_power_broker::Topology> & power_topology ()

Defined at line 244 of file ../../src/devices/bin/driver_manager/driver_runner.h

void BootupDoneForTesting ()

Only exposed for testing.

Defined at line 247 of file ../../src/devices/bin/driver_manager/driver_runner.h

CompositeNodeSpecManager & composite_node_spec_manager ()

Defined at line 248 of file ../../src/devices/bin/driver_manager/driver_runner.h

const BindManager & bind_manager ()

Defined at line 249 of file ../../src/devices/bin/driver_manager/driver_runner.h

driver_manager::Runner & runner_for_tests ()

Defined at line 250 of file ../../src/devices/bin/driver_manager/driver_runner.h

driver_manager::DriverHostRunner * driver_host_runner_for_tests ()

Defined at line 252 of file ../../src/devices/bin/driver_manager/driver_runner.h

const fbl::DoublyLinkedList<std::unique_ptr<DriverHostComponent>> & driver_hosts ()

Defined at line 257 of file ../../src/devices/bin/driver_manager/driver_runner.h

void DriverRunner (fidl::ClientEnd<fuchsia_component::Realm> realm, fidl::ClientEnd<fuchsia_component::Introspector> introspector, fidl::ClientEnd<fuchsia_component_sandbox::CapabilityStore> capability_store, fidl::ClientEnd<fuchsia_driver_index::DriverIndex> driver_index, inspect::ComponentInspector & inspect, LoaderServiceFactory loader_service_factory, async_dispatcher_t * dispatcher, bool enable_test_shutdown_delays, OfferInjector offer_injector, fidl::ClientEnd<fuchsia_power_broker::Topology> topology_client, std::optional<DynamicLinkerArgs> dynamic_linker_args, std::optional<fidl::ClientEnd<fuchsia_power_system::CpuElementManager>> cpu_element_mgr, bool wait_for_storage_token, std::optional<fidl::ClientEnd<fuchsia_hardware_power_statecontrol::Admin>> statecontrol_admin)

|Dynamic_linker_args| should be set if dynamic linking is available.

Defined at line 294 of file ../../src/devices/bin/driver_manager/driver_runner.cc

void AddSpec (AddSpecRequestView request, AddSpecCompleter::Sync & completer)

fidl::WireServer

<fuchsia

_driver_framework::CompositeNodeManager> interface

Defined at line 693 of file ../../src/devices/bin/driver_manager/driver_runner.cc

void AddNode (AddNodeRequestView request, AddNodeCompleter::Sync & completer)

fidl::WireServer

<fuchsia

_driver_framework::NodeManager> interface

Defined at line 1941 of file ../../src/devices/bin/driver_manager/driver_runner.cc

void handle_unknown_method (fidl::UnknownMethodMetadata<fuchsia_driver_framework::NodeManager> metadata, fidl::UnknownMethodCompleter::Sync & completer)

Defined at line 1964 of file ../../src/devices/bin/driver_manager/driver_runner.cc

void NewDriverAvailable (NewDriverAvailableCompleter::Sync & completer)

fidl::WireServer

<fuchsia

_driver_index::DriverNotifier>

Defined at line 1047 of file ../../src/devices/bin/driver_manager/driver_runner.cc

void FindDriverCrash (FindDriverCrashRequestView request, FindDriverCrashCompleter::Sync & completer)

fidl::WireServer

<fuchsia

_driver_crash::CrashIntrospect>

Defined at line 755 of file ../../src/devices/bin/driver_manager/driver_runner.cc

void handle_unknown_method (fidl::UnknownMethodMetadata<fuchsia_driver_framework::CompositeNodeManager> metadata, fidl::UnknownMethodCompleter::Sync & completer)

Defined at line 808 of file ../../src/devices/bin/driver_manager/driver_runner.cc

void Get (GetRequest & request, GetCompleter::Sync & completer)

fidl::WireServer

<fuchsia

_driver_token::NodeBusTopology>

Defined at line 825 of file ../../src/devices/bin/driver_manager/driver_runner.cc

void handle_unknown_method (fidl::UnknownMethodMetadata<fuchsia_driver_token::NodeBusTopology> metadata, fidl::UnknownMethodCompleter::Sync & completer)

Defined at line 857 of file ../../src/devices/bin/driver_manager/driver_runner.cc

void SetLevel (SetLevelRequestView request, SetLevelCompleter::Sync & completer)

Defined at line 667 of file ../../src/devices/bin/driver_manager/driver_runner.cc

void handle_unknown_method (fidl::UnknownMethodMetadata<fuchsia_power_broker::ElementRunner> metadata, fidl::UnknownMethodCompleter::Sync & completer)

Defined at line 674 of file ../../src/devices/bin/driver_manager/driver_runner.cc

void GetCpuDependencyToken (GetCpuDependencyTokenCompleter::Sync & completer)

Defined at line 934 of file ../../src/devices/bin/driver_manager/driver_runner.cc

void AddExecutionStateDependency (AddExecutionStateDependencyRequestView request, AddExecutionStateDependencyCompleter::Sync & completer)

Defined at line 975 of file ../../src/devices/bin/driver_manager/driver_runner.cc

void handle_unknown_method (fidl::UnknownMethodMetadata<fuchsia_power_system::CpuElementManager> metadata, fidl::UnknownMethodCompleter::Sync & completer)

Defined at line 994 of file ../../src/devices/bin/driver_manager/driver_runner.cc

void LogStackTrace (LogStackTraceRequestView request, LogStackTraceCompleter::Sync & completer)

fidl::WireServer

<fuchsia

_driver_token::Debug>

Defined at line 457 of file ../../src/devices/bin/driver_manager/driver_runner.cc

void GetHostKoid (GetHostKoidRequestView request, GetHostKoidCompleter::Sync & completer)

Defined at line 496 of file ../../src/devices/bin/driver_manager/driver_runner.cc

void handle_unknown_method (fidl::UnknownMethodMetadata<fuchsia_driver_token::Debug> metadata, fidl::UnknownMethodCompleter::Sync & completer)

Defined at line 545 of file ../../src/devices/bin/driver_manager/driver_runner.cc

void BindNodesForCompositeNodeSpec ()

CompositeManagerBridge interface

Defined at line 691 of file ../../src/devices/bin/driver_manager/driver_runner.cc

void AddSpecToDriverIndex (fuchsia_driver_framework::wire::CompositeNodeSpec group, AddToIndexCallback callback)

Defined at line 874 of file ../../src/devices/bin/driver_manager/driver_runner.cc

zx::result<> StartDriver (Node & node, std::string_view url, fuchsia_driver_framework::DriverPackageType package_type)

NodeManager interface

Create a driver component with `url` against a given `node`.

Defined at line 1056 of file ../../src/devices/bin/driver_manager/driver_runner.cc

void WaitForBootup (fit::callback<void ()> callback)

NodeManager interface

Waits for boot to complete before invoking the callback.

Defined at line 924 of file ../../src/devices/bin/driver_manager/driver_runner.cc

void RebindComposite (std::string spec, std::optional<std::string> driver_url, fit::callback<void (zx::result<>)> callback)

Defined at line 1110 of file ../../src/devices/bin/driver_manager/driver_runner.cc

void RebindCompositesWithDriver (const std::string & url, fit::callback<void (size_t)> complete_callback)

Defined at line 1117 of file ../../src/devices/bin/driver_manager/driver_runner.cc

void PublishComponentRunner (component::OutgoingDirectory & outgoing)

Defined at line 998 of file ../../src/devices/bin/driver_manager/driver_runner.cc

zx::result<> StartRootDriver (std::string_view url)

Defined at line 1027 of file ../../src/devices/bin/driver_manager/driver_runner.cc

void StartDevfsDriver (std::shared_ptr<driver_manager::Devfs> & devfs)

Register a proxy driver called 'Devfs-Driver' that will advertise services that correspond

to the protocols offered by devfs class paths. This call will start the driver

registration, but that registration will not be complete until the component framework

calls the AddChild callback. That callback will then update |devfs| with an outgoing

directory and a ComponentController. This function should only be called once when the

driver manager is starting, and will no longer be needed when devfs migration is complete.

Defined at line 1037 of file ../../src/devices/bin/driver_manager/driver_runner.cc

void TryBindAllAvailable (NodeBindingInfoResultCallback result_callback)

Goes through the orphan list and attempts the bind them again. Sends nodes that are still

orphaned back to the orphan list. Tracks the result of the bindings and then when finished

uses the result_callback to report the results.

Defined at line 1052 of file ../../src/devices/bin/driver_manager/driver_runner.cc

zx::result<uint32_t> RestartNodesColocatedWithDriverUrl (std::string_view url, fuchsia_driver_development::RestartRematchFlags rematch_flags)

Restarts all the nodes that are colocated with a driver with the given |url|.

Defined at line 1639 of file ../../src/devices/bin/driver_manager/driver_runner.cc

void RestartWithDictionary (fidl::StringView moniker, fuchsia_component_sandbox::wire::DictionaryRef dictionary, zx::eventpair reset_eventpair)

Defined at line 1723 of file ../../src/devices/bin/driver_manager/driver_runner.cc

void RestartWithDictionaryAndPowerDependencies (std::string moniker, fuchsia_component_sandbox::DictionaryRef dictionary, std::vector<fuchsia_power_broker::LevelDependency> power_dependencies, std::optional<zx::event> cpu_token_override, std::vector<fuchsia_driver_development::NodePowerTokenOverride> node_power_token_overrides, zx::eventpair release_fence)

Restarts driver components bound to the node identified by |moniker|, providing

custom power dependencies, CPU token override, and targeted child node power token overrides.

Releasing |release_fence| reverts all temporary overrides and restarts the drivers again.

Defined at line 1783 of file ../../src/devices/bin/driver_manager/driver_runner.cc

std::unordered_set<DriverHost *> DriverHostsWithDriverUrl (std::string_view url)

Defined at line 1897 of file ../../src/devices/bin/driver_manager/driver_runner.cc

fpromise::promise<inspect::Inspector> Inspect ()

TODO(https://fxbug.dev/42072971): Add information for composite node specs.

Defined at line 895 of file ../../src/devices/bin/driver_manager/driver_runner.cc

std::vector<fuchsia_driver_development::wire::CompositeNodeInfo> GetCompositeListInfo (fidl::AnyArena & arena)

Defined at line 914 of file ../../src/devices/bin/driver_manager/driver_runner.cc

std::optional<fuchsia_power_broker::DependencyToken> StorageElementToken ()

Defined at line 1489 of file ../../src/devices/bin/driver_manager/driver_runner.cc

void RebootSystem ()

Defined at line 1913 of file ../../src/devices/bin/driver_manager/driver_runner.cc

void CreateStoragePowerElement (fuchsia_power_broker::DependencyToken driver_token, fuchsia_power_broker::PowerLevel power_level, fit::callback<void ()> post_creation)

Defined at line 367 of file ../../src/devices/bin/driver_manager/driver_runner.cc

void PublishCpuElementManager (component::OutgoingDirectory & outgoing)

Defined at line 928 of file ../../src/devices/bin/driver_manager/driver_runner.cc

void FetchCpuToken ()

Asynchronously kicks off the process of fetching the Cpu token from SAG. The token is used to

make drivers' power elements depend on the Cpu element and allow them to prevent system

suspension.

Defined at line 1290 of file ../../src/devices/bin/driver_manager/driver_runner.cc

Records