blob: 96660bacd644c03a4937cf5f678e0eeb26687495 [file] [log] [blame]
# 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("vm") {
sources = [
"anonymous_page_requester.cc",
"bootalloc.cc",
"bootreserve.cc",
"evictor.cc",
"kstack.cc",
"loan_sweeper.cc",
"page.cc",
"page_queues.cc",
"page_source.cc",
"page_state.cc",
"physical_page_borrowing_config.cc",
"physical_page_provider.cc",
"physmap.cc",
"pinned_vm_object.cc",
"pmm.cc",
"pmm_arena.cc",
"pmm_checker.cc",
"pmm_node.cc",
"ppb_command.cc",
"scanner.cc",
"stack_owned_loaned_pages_interval.cc",
"vm.cc",
"vm_address_region.cc",
"vm_address_region_or_mapping.cc",
"vm_aspace.cc",
"vm_cow_pages.cc",
"vm_mapping.cc",
"vm_object.cc",
"vm_object_paged.cc",
"vm_object_physical.cc",
"vm_page_list.cc",
"vmm.cc",
]
deps = [
"//zircon/kernel/lib/boot-options",
"//zircon/kernel/lib/console",
"//zircon/kernel/lib/counters",
"//zircon/kernel/lib/fbl",
"//zircon/kernel/lib/heap/cmpctmalloc:cmpctmalloc_headers",
"//zircon/kernel/lib/init",
"//zircon/kernel/lib/ktl",
"//zircon/kernel/lib/ktrace",
"//zircon/kernel/lib/user_copy",
"//zircon/kernel/lib/userabi",
"//zircon/system/ulib/pretty",
# TODO: testonly
":tests",
]
public_deps = [
# <vm/vm_page_list.h> has #include <ktl/unique_ptr.h>.
"//zircon/kernel/lib/ktl:headers",
# <vm/vm_object.h> has #include <fbl/name.h>.
"//zircon/kernel/lib/fbl:headers",
# <vm/vm_object.h> has #include <lib/user_copy/user_ptr.h>.
"//zircon/kernel/lib/user_copy:headers",
# <vm/vm_aspace.h> has #include <lib/crypto/prng.h>
"//zircon/kernel/lib/crypto:headers",
# "pmm_arena.h" has #include <lib/zx/status.h>.
"//zircon/system/ulib/zxc:headers",
]
# GCC figures out some cases where we have a global variable that's used as a
# RefPtr and so appears like it might be passed to delete. We always leak
# the reference so it will never actually be called, but the compiler can't
# figure that out statically so we must disable its warning.
configs += [ ":suppress-nonheap-warning" ]
}
config("suppress-nonheap-warning") {
visibility = [ ":*" ]
if (is_gcc) {
cflags = [ "-Wno-free-nonheap-object" ]
}
}
source_set("tests") {
sources = [
"unittests/aspace_unittest.cc",
"unittests/evictor_unittest.cc",
"unittests/pmm_unittest.cc",
"unittests/test_helper.cc",
"unittests/vmo_unittest.cc",
"unittests/vmpl_unittest.cc",
]
deps = [ "//zircon/kernel/lib/unittest" ]
}