# Copyright 2019 The Fuchsia Authors
#
# Use of this source code is governed by a MIT-style
# license that can be found in the LICENSE file or at
# https://opensource.org/licenses/MIT

import("//build/zircon/migrated_targets.gni")

zx_library("hypervisor") {
  kernel = true
  sources = [
    "cpu.cc",
    "guest_physical_address_space.cc",
    "hypervisor_unittest.cc",
    "ktrace.cc",
    "trap_map.cc",
  ]
  deps = [
    "//zircon/kernel/arch/$zircon_cpu/hypervisor",
    "//zircon/kernel/lib/fbl",
    "//zircon/kernel/lib/ktl",
    "//zircon/kernel/lib/ktrace",
    "//zircon/kernel/lib/unittest",
    "//zircon/system/ulib/bitmap",
  ]
  public_deps = [
    # <hypervisor/trap_map.h> has #include <object/port_dispatcher.h>.
    "//zircon/kernel/object:headers",

    # <hypervisor/id_allocator.h> has #include <bitmap/raw-bitmap.h>.
    "//zircon/system/ulib/bitmap:headers",

    # <hypervisor/guest_physical_address_space.h> has #include <vm/vm_aspace.h>.
    "//zircon/kernel/vm:headers",

    # <hypervisor/interrupt_tracker.h> has #include <lib/ktrace.h>.
    "//zircon/kernel/lib/ktrace:headers",
  ]
}
