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