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

visibility = [ "//src/iwlwifi/*" ]

source_set("pcie") {
  sources = [
    "drv.c",
    "internal.h",
    "rx.c",
    "trans-gen2.c",
    "trans.c",
    "tx.c",
  ]
  public = [ "entry.h" ]
  deps = [
    "//garnet/lib/wlan/protocol:protocol",
    "//sdk/banjo/fuchsia.hardware.pci:fuchsia.hardware.pci_banjo_c",
    "//src/iwlwifi:core",
    "//src/iwlwifi/fw",
    "//src/devices/pci/lib/device-protocol-pci",
    "//src/lib/ddk",
    "//zircon/system/ulib/backtrace-request",
    "//zircon/system/ulib/sync",
    "//zircon/system/ulib/zircon-internal",
  ]
  public_deps = [
    "//src/iwlwifi/platform",
    "//zircon/system/public",
  ]
  friend =
      [ "//src/iwlwifi/test:*" ]

  # TODO(https://fxbug.dev/58162): delete the below and fix compiler warnings
  configs += [ "//build/config:Wno-conversion" ]
}
