# 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"])

# These are the headers for the firmware API.  To avoid circular dependencies, these do not depend
# on anything in iwlwifi other than platform/.
cc_library(
    name = "api",
    hdrs = [
        "acpi.h",
        "api/alive.h",
        "api/binding.h",
        "api/cmdhdr.h",
        "api/coex.h",
        "api/commands.h",
        "api/config.h",
        "api/context.h",
        "api/d3.h",
        "api/datapath.h",
        "api/dbg-tlv.h",
        "api/debug.h",
        "api/filter.h",
        "api/led.h",
        "api/mac-cfg.h",
        "api/mac.h",
        "api/nan.h",
        "api/nvm-reg.h",
        "api/offload.h",
        "api/paging.h",
        "api/phy-ctxt.h",
        "api/phy.h",
        "api/power.h",
        "api/rs.h",
        "api/rx.h",
        "api/scan.h",
        "api/sf.h",
        "api/soc.h",
        "api/sta.h",
        "api/stats.h",
        "api/tdls.h",
        "api/testing.h",
        "api/time-event.h",
        "api/tof.h",
        "api/tx.h",
        "api/txq.h",
        "error-dump.h",
        "file.h",
        "img.h",
        ],
    deps = [
        "//src/iwlwifi/platform:platform",
        "@fuchsia_sdk//pkg/ddk",
        "@fuchsia_sdk//fidl/fuchsia_wlan_ieee80211:fuchsia_wlan_ieee80211_banjo_cc",
        ],
)

cc_library(
    name = "fw",
    srcs = [
        "dbg.c",
        "init.c",
        "notif-wait.c",
        "paging.c",
        "smem.c",
        ],
    hdrs = [
        "dbg.h",
        "notif-wait.h",
        "runtime.h",
        "debugfs.h",
        ],
    deps = [
        ":api",
        "//src/iwlwifi:core",
        "//src/iwlwifi/platform:platform",
#    "//zircon/system/public",
#    "//zircon/system/ulib/sync",
        ],
)