# 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 = "pcie",

  srcs = [
    "drv.c",
    "internal.h",
    "rx.c",
    "trans-gen2.c",
    "trans.c",
    "tx.c",
  ],
  hdrs = [ "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" ]
)