// 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.

#include <lib/ddk/binding_priv.h>

#if !defined(countof) && defined(__cplusplus)
#include <iterator>
#define countof(x) std::size(x)
#endif

// clang-format off
#define ZIRCON_DRIVER(Driver, Ops, VendorName, Version) \
  ZIRCON_DRIVER_BEGIN_PRIV_V1(Driver, Ops, VendorName, Version, {bind_count}) {binding} \
  ZIRCON_DRIVER_END_PRIV_V1(Driver)
