# Copyright 2021 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.

package(default_visibility = ["//visibility:public"])

cc_library(
  name = "mvm",
  srcs = [
    "binding.c",
    "coex.c",
    "fw.c",
    "mac-ctxt.c",
    "mac80211.c",
    "nvm.c",
    "ops.c",
    "phy-ctxt.c",
    "power.c",
    "rateScaleMng.c",
    "rs-ng.c",
    "rx.c",
    "rxmq.c",
    "scan.c",
    "sta.c",
    "time-event.c",
    "tof.c",
    "tt.c",
    "tx.c",
    "utils.c",
  ],
  hdrs = [
    "API_rates.h",
    "_rateScaleMng.h",
    "apiGroupDatapath.h",
    "apiVersion.h",
    "constants.h",
    "fw-api.h",
    "mvm.h",
    "rs-ng.h",
    "rs.h",
    "sta.h",
    "time-event.h",
    "tof.h",
  ],
  deps = [
    "@fuchsia_sdk//fidl/fuchsia.hardware.wlan.phyinfo:fuchsia.hardware.wlan.phyinfo_banjo_cc",
    "@fuchsia_sdk//fidl/fuchsia.hardware.wlan.associnfo:fuchsia.hardware.wlan.associnfo_banjo_cc",
    "@fuchsia_sdk//fidl/fuchsia.hardware.wlanphyimpl:fuchsia.hardware.wlanphyimpl_banjo_cc",
    "@fuchsia_sdk//fidl/fuchsia.wlan.ieee80211:fuchsia.wlan.ieee80211_llcpp_cc",
    "//third_party/iwlwifi:core",
    "//third_party/iwlwifi/fw:fw",
    "//third_party/iwlwifi/fw:api",
    "//third_party/iwlwifi/platform:platform",
    "@fuchsia_sdk//pkg/ddk",
  ],
)
