blob: f54dac9731d30a0bbe6cb28674e2452d4d81dbf8 [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/sdhci.h>
#include <fbl/type_support.h>
namespace ddk {
namespace internal {
DECLARE_HAS_MEMBER_FN_WITH_SIGNATURE(has_sdhci_protocol_get_interrupt, SdhciGetInterrupt,
zx_status_t (C::*)(zx_handle_t* out_irq));
DECLARE_HAS_MEMBER_FN_WITH_SIGNATURE(has_sdhci_protocol_get_mmio, SdhciGetMmio,
zx_status_t (C::*)(zx_handle_t* out_mmio));
DECLARE_HAS_MEMBER_FN_WITH_SIGNATURE(has_sdhci_protocol_get_bti, SdhciGetBti,
zx_status_t (C::*)(uint32_t index, zx_handle_t* out_bti));
DECLARE_HAS_MEMBER_FN_WITH_SIGNATURE(has_sdhci_protocol_get_base_clock, SdhciGetBaseClock,
uint32_t (C::*)());
DECLARE_HAS_MEMBER_FN_WITH_SIGNATURE(has_sdhci_protocol_get_quirks, SdhciGetQuirks,
uint64_t (C::*)());
DECLARE_HAS_MEMBER_FN_WITH_SIGNATURE(has_sdhci_protocol_hw_reset, SdhciHwReset, void (C::*)());
template <typename D>
constexpr void CheckSdhciProtocolSubclass() {
static_assert(internal::has_sdhci_protocol_get_interrupt<D>::value,
"SdhciProtocol subclasses must implement "
"zx_status_t SdhciGetInterrupt(zx_handle_t* out_irq");
static_assert(internal::has_sdhci_protocol_get_mmio<D>::value,
"SdhciProtocol subclasses must implement "
"zx_status_t SdhciGetMmio(zx_handle_t* out_mmio");
static_assert(internal::has_sdhci_protocol_get_bti<D>::value,
"SdhciProtocol subclasses must implement "
"zx_status_t SdhciGetBti(uint32_t index, zx_handle_t* out_bti");
static_assert(internal::has_sdhci_protocol_get_base_clock<D>::value,
"SdhciProtocol subclasses must implement "
"uint32_t SdhciGetBaseClock(");
static_assert(internal::has_sdhci_protocol_get_quirks<D>::value,
"SdhciProtocol subclasses must implement "
"uint64_t SdhciGetQuirks(");
static_assert(internal::has_sdhci_protocol_hw_reset<D>::value,
"SdhciProtocol subclasses must implement "
"void SdhciHwReset(");
}
} // namespace internal
} // namespace ddk