blob: cc64901cac0605b2ca9cf687ce35419ca1740727 [file] [log] [blame]
// Copyright 2018 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.
// WARNING: This file is machine generated by fidlc.
#pragma once
#include <ddk/protocol/intel-hda-dsp.h>
#include <fbl/type_support.h>
namespace ddk {
namespace internal {
DECLARE_HAS_MEMBER_FN_WITH_SIGNATURE(has_ihda_dsp_protocol_get_dev_info, IhdaDspGetDevInfo,
void (C::*)(zx_pcie_device_info_t* out_out));
DECLARE_HAS_MEMBER_FN_WITH_SIGNATURE(has_ihda_dsp_protocol_get_mmio, IhdaDspGetMmio,
zx_status_t (C::*)(zx_handle_t* out_vmo, size_t* out_size));
DECLARE_HAS_MEMBER_FN_WITH_SIGNATURE(has_ihda_dsp_protocol_get_bti, IhdaDspGetBti,
zx_status_t (C::*)(zx_handle_t* out_bti));
DECLARE_HAS_MEMBER_FN_WITH_SIGNATURE(has_ihda_dsp_protocol_enable, IhdaDspEnable, void (C::*)());
DECLARE_HAS_MEMBER_FN_WITH_SIGNATURE(has_ihda_dsp_protocol_disable, IhdaDspDisable, void (C::*)());
DECLARE_HAS_MEMBER_FN_WITH_SIGNATURE(has_ihda_dsp_protocol_irq_enable, IhdaDspIrqEnable,
zx_status_t (C::*)(const ihda_dsp_irq_t* callback));
DECLARE_HAS_MEMBER_FN_WITH_SIGNATURE(has_ihda_dsp_protocol_irq_disable, IhdaDspIrqDisable,
void (C::*)());
template <typename D>
constexpr void CheckIhdaDspProtocolSubclass() {
static_assert(internal::has_ihda_dsp_protocol_get_dev_info<D>::value,
"IhdaDspProtocol subclasses must implement "
"void IhdaDspGetDevInfo(zx_pcie_device_info_t* out_out");
static_assert(internal::has_ihda_dsp_protocol_get_mmio<D>::value,
"IhdaDspProtocol subclasses must implement "
"zx_status_t IhdaDspGetMmio(zx_handle_t* out_vmo, size_t* out_size");
static_assert(internal::has_ihda_dsp_protocol_get_bti<D>::value,
"IhdaDspProtocol subclasses must implement "
"zx_status_t IhdaDspGetBti(zx_handle_t* out_bti");
static_assert(internal::has_ihda_dsp_protocol_enable<D>::value,
"IhdaDspProtocol subclasses must implement "
"void IhdaDspEnable(");
static_assert(internal::has_ihda_dsp_protocol_disable<D>::value,
"IhdaDspProtocol subclasses must implement "
"void IhdaDspDisable(");
static_assert(internal::has_ihda_dsp_protocol_irq_enable<D>::value,
"IhdaDspProtocol subclasses must implement "
"zx_status_t IhdaDspIrqEnable(const ihda_dsp_irq_t* callback");
static_assert(internal::has_ihda_dsp_protocol_irq_disable<D>::value,
"IhdaDspProtocol subclasses must implement "
"void IhdaDspIrqDisable(");
}
} // namespace internal
} // namespace ddk