blob: 74d298cd44bcd9696a7ee6907b156c7c6cd61bd2 [file] [log] [blame]
# Copyright 2019 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("$zx/public/gn/host_tool_action.gni")
import("abigen.gni")
source_set("syscalls") {
sources = [
"channel.cpp",
"ddk.cpp",
"ddk_${zircon_cpu}.cpp",
"ddk_pci.cpp",
"debug.cpp",
"exceptions.cpp",
"fifo.cpp",
"futex.cpp",
"handle_ops.cpp",
"hypervisor.cpp",
"object.cpp",
"object_wait.cpp",
"pager.cpp",
"port.cpp",
"profile.cpp",
"resource.cpp",
"socket.cpp",
"system.cpp",
"system_${zircon_cpu}.cpp",
"task.cpp",
"test.cpp",
"timer.cpp",
"vmar.cpp",
"vmo.cpp",
"zircon.cpp",
]
deps = [
":dispatch",
":syscall-abi",
"$zx/kernel/dev/udisplay",
"$zx/kernel/lib/console",
"$zx/kernel/lib/counters",
"$zx/kernel/lib/crypto",
"$zx/kernel/lib/fbl",
"$zx/kernel/lib/gfxconsole",
"$zx/kernel/lib/ktrace",
"$zx/kernel/lib/mtrace",
"$zx/kernel/lib/pci",
"$zx/kernel/lib/user_copy",
"$zx/kernel/object",
"$zx/system/ulib/explicit-memory",
"$zx/system/ulib/libzbi",
"$zx/system/ulib/region-alloc",
]
if (current_cpu == "x64") {
deps += [ "$zx/kernel/platform/pc" ]
}
}
# Only this file depends on vdso-valid-sysret.h.
source_set("dispatch") {
sources = [
"syscalls.cpp",
]
deps = [
":syscall-abi",
"$zx/kernel/lib/vdso:headers",
]
}
group("syscall-abi") {
visibility = [
":*",
"$zx/kernel/arch/$zircon_cpu:*",
"$zx/system/ulib/zircon:*",
"$zx/system/utest/core/bad-syscall:*",
]
public_configs = [ ":syscall-abi.config" ]
deps = [
":syscall-abi.generate",
]
}
config("syscall-abi.config") {
visibility = [ ":syscall-abi" ]
include_dirs = [ target_gen_dir ]
}
host_tool_action("generate_syscalls.abigen") {
tool = "$zx/system/host/banjo:compiler"
sources = [
"$zx/system/public/zircon/syscalls.banjo",
]
outputs = [
"$root_gen_dir/syscalls.abigen",
]
args = [
"--backend",
"Abigen",
"--output",
rebase_path(outputs[0]),
"--files",
rebase_path(sources[0]),
]
}
abigen("syscall-abi.generate") {
visibility = [ ":syscall-abi" ]
# TODO(mcgrathr): Rename these from <zircon/...> to <lib/syscalls/...>?
gen = [
{
args = [ "-numbers" ]
outputs = [
"$target_gen_dir/zircon/zx-syscall-numbers.h",
]
},
{
args = [ "-kernel-header" ]
outputs = [
"$target_gen_dir/zircon/syscall-definitions.h",
]
},
{
args = [ "-kernel-wrappers" ]
outputs = [
"$target_gen_dir/zircon/syscall-kernel-wrappers.inc",
]
},
{
args = [ "-kernel-branch" ]
outputs = [
"$target_gen_dir/zircon/syscall-kernel-branches.S",
]
},
{
args = [ "-json" ]
outputs = [
"$target_gen_dir/zircon/definitions.json",
]
},
]
}