# 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",
    ],
)
