1# Copyright 2021 The Hafnium Authors.
2#
3# Use of this source code is governed by a BSD-style
4# license that can be found in the LICENSE file or at
5# https://opensource.org/licenses/BSD-3-Clause.
6
7import("//build/toolchain/platform.gni")
8
9source_set("absent") {
10  public_configs = [ "//src/arch/${plat_arch}:config" ]
11  sources = [ "absent.c" ]
12}
13
14config("hypervisor_config") {
15  include_dirs = [ "inc" ]
16}
17
18source_set("hypervisor") {
19  public_configs = [
20    "//src/arch/${plat_arch}:config",
21    "//src/arch/${plat_arch}:arch_config",
22    ":hypervisor_config",
23  ]
24  deps = [ "//vmlib/${plat_arch}:smc_call" ]
25  sources = [
26    "hypervisor/cpu_cycles.c",
27    "hypervisor/direct_messaging.c",
28    "hypervisor/ffa_memory.c",
29    "hypervisor/indirect_messaging.c",
30    "hypervisor/init.c",
31    "hypervisor/interrupts.c",
32    "hypervisor/notifications.c",
33    "hypervisor/setup_and_discovery.c",
34    "hypervisor/vm.c",
35  ]
36}
37
38source_set("spmc") {
39  public_configs = [
40    "//src/arch/${plat_arch}:config",
41    "//src/arch/${plat_arch}:arch_config",
42  ]
43
44  deps = [ "//vmlib/${plat_arch}:smc_call" ]
45
46  sources = [
47    "//src/arch/aarch64/hypervisor/simd.c",
48    "spmc/cpu_cycles.c",
49    "spmc/direct_messaging.c",
50    "spmc/ffa_memory.c",
51    "spmc/indirect_messaging.c",
52    "spmc/init.c",
53    "spmc/interrupts.c",
54    "spmc/notifications.c",
55    "spmc/setup_and_discovery.c",
56    "spmc/vm.c",
57  ]
58}
59