1// Copyright 2018 The Fuchsia Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5library fuchsia.device.manager;
6
7using zx;
8
9/// Interface for requesting devmgr perform miscellaneous actions.
10/// These methods are all work-arounds that should go away eventually.
11[Layout = "Simple"]
12interface ExternalController {
13    /// Execute the given string command.  This is mostly used for accessing debug
14    /// interfaces, but also as a backdoor for plumbing that has not been fully
15    /// solved.
16    1: ExecuteCommand(handle<socket>? log_socket, string:COMMAND_MAX? command)
17                      -> (zx.status status);
18
19    /// Opens a new virtual console and transfers a handle to it over |vc_receiver|.
20    2: OpenVirtcon(handle<channel> vc_receiver);
21
22    /// Perform an mexec with the given kernel and bootdata.
23    /// See ZX-2069 for the thoughts on deprecating mexec.
24    3: PerformMexec(handle<vmo> kernel, handle<vmo> bootdata);
25};
26