blob: 2bf31822c9688f790742f0290cac5e718396ad33 [file]
# Licensed under the Apache-2.0 license
# SPDX-License-Identifier: Apache-2.0
load("@rules_rust//rust:defs.bzl", "rust_library")
load("//target/ast10x0:defs.bzl", "TARGET_COMPATIBLE_WITH")
# The single kernel-tagged server crate: wraps i2c_server::{dispatch,
# slave::dispatch_slave} in the Pigweed WaitGroup loop and adds the per-bus
# slave-RX notification latch + IRQ->USER wake. One IPC channel per bus.
# Slave/notification logic is verified on-target (QEMU), not host.
rust_library(
name = "i2c_server_runtime",
srcs = ["src/lib.rs"],
edition = "2024",
tags = ["kernel"],
target_compatible_with = TARGET_COMPATIBLE_WITH,
visibility = ["//visibility:public"],
deps = [
"//services/i2c/api:i2c_api",
"//services/i2c/server:i2c_server",
"@pigweed//pw_kernel/userspace",
"@pigweed//pw_log/rust:pw_log",
"@rust_crates//:zerocopy",
],
)