blob: 66c3492831c8dc76cede5e5cf23bf3b28aa8357b [file] [log] [blame]
// Copyright 2019 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
library fuchsia.device.manager;
using zx;
/// Provides administration services for the device manager service and the device tree it controls.
@discoverable
protocol Administrator {
// TODO(fxbug.dev/68529): Remove this API.
/// This is a temporary API until DriverManager can ensure that base drivers
/// will be shut down automatically before fshost exits. This will happen
/// once drivers-as-components is implemented.
/// In the meantime, this API should only be called by fshost, and it must
/// be called before fshost exits. This function iterates over the devices
/// and suspends any device whose driver lives in storage. This API must be
/// called by fshost before it shuts down. Otherwise the devices that live
/// in storage may page fault as it access memory that should be provided by
/// the exited fshost. This function will not return until the devices are
/// suspended. If there are no devices that live in storage, this function
/// will immediatetly return.
UnregisterSystemStorageForShutdown() -> (struct {
status zx.status;
});
};