blob: a110e2d10907bc357312e45961c6e44fc4abcc3b [file] [log] [blame]
# Copyright 2023 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.
load("@rules_license//rules:license.bzl", "license")
package(
default_applicable_licenses = ["//:license_fuchsia"],
default_visibility = ["//visibility:public"],
)
license(
name = "license_fuchsia",
package_name = "magma (Fuchsia)",
license_text = "LICENSE",
)
cc_library(
name = "all",
visibility = ["//visibility:public"],
deps = [
":driver_macros",
":macros",
":msd",
":platform",
":register_io",
":sys_driver",
":zircon",
":zircon_driver",
],
)
cc_library(
name = "includes",
includes = ["."],
visibility = ["//:__subpackages__"],
)
cc_library(
name = "msd",
srcs = ["include/lib/magma_service/msd.cc"],
hdrs = [
"include/lib/magma_service/msd.h",
"include/lib/magma_service/msd_defs.h",
],
includes = [
"include/",
],
visibility = ["//visibility:public"],
deps = [
"@fuchsia_sdk//pkg/async-cpp",
"@fuchsia_sdk//pkg/inspect",
"@fuchsia_sdk//pkg/magma_client",
],
)
cc_library(
name = "logger_syslog",
srcs = [
"lib/magma/platform/zircon/zircon_platform_logger_syslog.cc",
],
hdrs = [
"lib/magma/platform/platform_logger_provider.h",
],
visibility = ["//visibility:public"],
deps = [
":includes",
":macros",
":platform",
":zircon_driver",
"@fuchsia_sdk//fidl/fuchsia.logger:fuchsia.logger_cpp_wire",
"@fuchsia_sdk//pkg/syslog_structured_backend",
],
)
cc_library(
name = "platform",
hdrs = [
"lib/magma/platform/platform_buffer.h",
"lib/magma/platform/platform_handle.h",
"lib/magma/platform/platform_object.h",
"lib/magma/platform/platform_port.h",
"lib/magma/platform/platform_trace.h",
],
defines = ["MAGMA_ENABLE_TRACE_VTHREAD=1"],
visibility = ["//visibility:public"],
deps = [
":includes",
":macros",
"@fuchsia_sdk//pkg/magma_client",
"@fuchsia_sdk//pkg/trace",
"@fuchsia_sdk//pkg/trace-vthread",
],
)
cc_library(
name = "platform_driver",
hdrs = [
"lib/magma/platform/platform_barriers.h",
"lib/magma/platform/platform_bus_mapper.h",
"lib/magma/platform/platform_event.h",
"lib/magma/platform/platform_interrupt.h",
"lib/magma/platform/platform_mmio.h",
"lib/magma/platform/platform_semaphore.h",
"lib/magma/platform/platform_thread.h",
],
visibility = ["//visibility:public"],
deps = [
":includes",
":platform",
"@fuchsia_sdk//pkg/mmio-ptr",
],
)
cc_library(
name = "driver_macros",
srcs = [
"lib/magma_service/util/simple_allocator.cc",
],
hdrs = [
"lib/magma/util/thread.h",
"lib/magma_service/util/address_space_allocator.h",
"lib/magma_service/util/simple_allocator.h",
],
visibility = ["//visibility:public"],
deps = [
":includes",
":macros",
":platform_logger",
],
)
config_setting(
name = "debug_build",
values = {
"compilation_mode": "dbg",
},
)
cc_library(
name = "macros",
hdrs = [
"lib/magma/util/dlog.h",
"lib/magma/util/macros.h",
"lib/magma/util/short_macros.h",
"lib/magma/util/status.h",
"lib/magma/util/utils.h",
],
defines = [
"MAGMA_ENABLE_TRACING=1",
] + select({
":debug_build": [
"MAGMA_DEBUG_INTERNAL_USE_ONLY=1",
],
"//conditions:default": [
"MAGMA_DEBUG_INTERNAL_USE_ONLY=0",
],
}),
visibility = ["//visibility:public"],
deps = [
":includes",
":platform_logger",
],
)
cc_library(
name = "register_io",
srcs = [
"lib/magma_service/util/register_io.cc",
],
hdrs = [
"lib/magma_service/util/register_io.h",
],
visibility = ["//visibility:public"],
deps = [
":includes",
":platform",
":platform_driver",
],
)
cc_library(
name = "platform_logger",
hdrs = [
"lib/magma/platform/platform_logger.h",
],
visibility = ["//visibility:public"],
deps = [
":includes",
],
)
cc_library(
name = "zircon",
srcs = [
"lib/magma/platform/zircon/zircon_platform_buffer.cc",
"lib/magma/platform/zircon/zircon_platform_logger_dfv2.cc",
"lib/magma/platform/zircon/zircon_platform_port.cc",
"lib/magma/platform/zircon/zircon_platform_trace.cc",
],
hdrs = [
"lib/magma/platform/zircon/zircon_platform_buffer.h",
"lib/magma/platform/zircon/zircon_platform_handle.h",
"lib/magma/platform/zircon/zircon_platform_logger_dfv2.h",
"lib/magma/platform/zircon/zircon_platform_port.h",
"lib/magma/platform/zircon/zircon_platform_status.h",
],
visibility = ["//visibility:public"],
deps = [
":includes",
":macros",
":platform",
"@fuchsia_sdk//pkg/driver_logging_cpp",
],
)
cc_library(
name = "zircon_driver",
srcs = [
"lib/magma/platform/zircon/zircon_platform_bus_mapper.cc",
"lib/magma/platform/zircon/zircon_platform_event.cc",
"lib/magma/platform/zircon/zircon_platform_handle.cc",
"lib/magma/platform/zircon/zircon_platform_mmio.cc",
"lib/magma/platform/zircon/zircon_platform_object.cc",
"lib/magma/platform/zircon/zircon_platform_semaphore.cc",
"lib/magma/platform/zircon/zircon_platform_thread.cc",
"lib/magma/platform/zircon/zircon_vmo_semaphore.cc",
],
hdrs = [
"lib/magma/platform/zircon/zircon_platform_bus_mapper.h",
"lib/magma/platform/zircon/zircon_platform_event.h",
"lib/magma/platform/zircon/zircon_platform_interrupt.h",
"lib/magma/platform/zircon/zircon_platform_mmio.h",
"lib/magma/platform/zircon/zircon_platform_semaphore.h",
"lib/magma/platform/zircon/zircon_vmo_semaphore.h",
],
visibility = ["//visibility:public"],
deps = [
":includes",
":platform_driver",
":zircon",
"@fuchsia_sdk//pkg/mmio",
],
)
cc_library(
name = "sys_driver",
srcs = [
"lib/magma_service/sys_driver/dependency_injection_server.cc",
"lib/magma_service/sys_driver/magma_system_buffer.cc",
"lib/magma_service/sys_driver/magma_system_connection.cc",
"lib/magma_service/sys_driver/magma_system_context.cc",
"lib/magma_service/sys_driver/magma_system_device.cc",
"lib/magma_service/sys_driver/magma_system_semaphore.cc",
"lib/magma_service/sys_driver/performance_counters_server.cc",
"lib/magma_service/sys_driver/primary_fidl_server.cc",
],
hdrs = [
"lib/magma_service/sys_driver/dependency_injection_server.h",
"lib/magma_service/sys_driver/magma_driver_base.h",
"lib/magma_service/sys_driver/magma_system_buffer.h",
"lib/magma_service/sys_driver/magma_system_connection.h",
"lib/magma_service/sys_driver/magma_system_context.h",
"lib/magma_service/sys_driver/magma_system_device.h",
"lib/magma_service/sys_driver/magma_system_semaphore.h",
"lib/magma_service/sys_driver/performance_counters_server.h",
"lib/magma_service/sys_driver/primary_fidl_server.h",
],
visibility = ["//visibility:public"],
deps = [
":includes",
":platform",
":zircon",
"//:msd",
"@fuchsia_sdk//fidl/fuchsia.driver.framework:fuchsia.driver.framework_cpp",
"@fuchsia_sdk//fidl/fuchsia.gpu.magma:fuchsia.gpu.magma_cpp",
"@fuchsia_sdk//fidl/fuchsia.kernel:fuchsia.kernel_cpp",
"@fuchsia_sdk//pkg/async-loop-cpp",
"@fuchsia_sdk//pkg/driver_devfs_cpp",
"@fuchsia_sdk//pkg/driver_runtime_cpp",
"@fuchsia_sdk//pkg/driver_runtime_shared_lib",
"@fuchsia_sdk//pkg/inspect_component_cpp",
],
)
cc_library(
name = "mock",
srcs = [
"lib/magma_service/mock/mock_mmio.cc",
],
hdrs = [
"lib/magma_service/mock/mock_bus_mapper.h",
"lib/magma_service/mock/mock_mmio.h",
],
visibility = ["//visibility:public"],
deps = [
":includes",
":platform_driver",
"//lib/magma_service/test_util:msd_stubs",
],
)