// 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.netemul.devmgr;

using fuchsia.io;

/// Provides an isolated devfs.
///
/// IsolatedDevmgr is a wrapper around a fuchsia.io.Directory node that is provided by
/// an isolated devmgr component instance (//src/lib/isolated_devmgr). It is exposed by
/// isolated devmgr instances launched by netemul and it represents the devfs that is
/// served by devmgr.
[Discoverable]
protocol IsolatedDevmgr {
    compose fuchsia.io.Directory;
};
