blob: f6f38d77897c7c10335784a4511468a0faa8ed2b [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.
#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_