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

import("//build/test.gni")
import("//build/testing/bootfs_test.gni")

source_set("iommu-x86") {
  sources = [
    "iommu-x86.cc",
    "iommu-x86.h",
  ]

  public_deps = [ ":iommu" ]
  deps = [
    "//sdk/lib/fit",
    "//src/lib/ddk",
    "//third_party/acpica",
    "//zircon/system/ulib/fbl",
    "//zircon/system/ulib/syslog:syslog-headers",
    "//zircon/system/ulib/zx",
    "//zircon/system/ulib/zxc",
  ]
}

source_set("iommu-arm") {
  sources = [
    "iommu-arm.cc",
    "iommu-arm.h",
  ]
  public_deps = [ ":iommu" ]
  deps = [ "//zircon/system/ulib/zx" ]
}

source_set("iommu") {
  sources = [ "iommu.h" ]

  public_deps = [
    "//zircon/system/ulib/zx",
    "//zircon/system/ulib/zxc",
  ]
}

test("iommu-test") {
  sources = [ "iommu-x86-test.cc" ]
  deps = [
    "//src/devices/lib/iommu:iommu-x86",
    "//src/devices/testing/no_ddk",
    "//src/lib/ddk",
    "//third_party/acpica",
    "//zircon/system/ulib/zxc",
    "//zircon/system/ulib/zxtest",
  ]
}

bootfs_test("iommu-bootfs-test") {
  name = "iommu-test"
  deps = [ ":iommu-test" ]
}
