| // Copyright 2020 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.hardware.network; |
| |
| /// An instance of a network device exposed on devfs. |
| // NOTE(brunodalbo) This protocol exists to sidestep the fact that the DDK doesn't allow devices to |
| // own their channels. The Device framework implicitly composes fuchsia.device/Controller on |
| // channels obtained through devfs, and the "composed" implementation is always provided by the |
| // framework itself. At the time of this writing it is unclear what is going to replace that or |
| // when, only that there is a desire to improve the pattern. The expectation is that pattern will be |
| // improved with Unified Services (https://fxbug.dev/8035) and Drivers as Components |
| // (https://fxbug.dev/33183). |
| protocol DeviceInstance { |
| /// Connects to the [`Device`] implementation. |
| /// |
| /// + request `device` device handle. |
| GetDevice(request<Device> device); |
| }; |