| // 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. |
| |
| #ifndef SRC_DEVICES_BIN_DRIVER_MANAGER_FIDL_H_ |
| #define SRC_DEVICES_BIN_DRIVER_MANAGER_FIDL_H_ |
| |
| #include <lib/zx/channel.h> |
| #include <lib/zx/vmo.h> |
| |
| class CompositeDevice; |
| class DriverHost; |
| class Device; |
| |
| // Methods for composing FIDL RPCs to the driver_hosts |
| zx_status_t dh_send_create_device(Device* dev, const fbl::RefPtr<DriverHost>& dh, |
| zx::channel coordinator_rpc, zx::channel device_controller_rpc, |
| zx::vmo driver, const char* args, zx::handle rpc_proxy); |
| zx_status_t dh_send_create_device_stub(Device* dev, const fbl::RefPtr<DriverHost>& dh, |
| zx::channel coordinator_rpc, |
| zx::channel device_controller_rpc, uint32_t protocol_id); |
| zx_status_t dh_send_bind_driver(Device* dev, const char* libname, zx::vmo driver, |
| fit::function<void(zx_status_t, zx::channel)> cb); |
| zx_status_t dh_send_connect_proxy(const Device* dev, zx::channel proxy); |
| zx_status_t dh_send_init(Device* dev); |
| zx_status_t dh_send_suspend(Device* dev, uint32_t flags); |
| zx_status_t dh_send_resume(Device* dev, uint32_t target_system_state); |
| zx_status_t dh_send_unbind(Device* dev); |
| zx_status_t dh_send_complete_removal(Device* dev, fit::function<void()> cb); |
| zx_status_t dh_send_complete_compatibility_tests(const Device* dev, zx_status_t test_status_); |
| zx_status_t dh_send_create_composite_device(const fbl::RefPtr<DriverHost>& dh, |
| const Device* composite_dev, |
| const CompositeDevice& composite, |
| const std::pair<std::string_view, uint64_t>* fragments, |
| zx::channel coordinator_rpc, |
| zx::channel device_controller_rpc); |
| |
| #endif // SRC_DEVICES_BIN_DRIVER_MANAGER_FIDL_H_ |