# Copyright 2025 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("//build/components.gni")
import("//build/rust/rustc_library.gni")
import("//src/starnix/build/args.gni")

rustc_library("starnix_syscall_loop") {
  edition = "2024"
  with_unit_tests = true
  sources = [
    "src/lib.rs",
    "src/table.rs",
  ]

  deps = [
    ":restricted_trampoline",
    "//sdk/rust/zx",
    "//src/lib/debug/rust",
    "//src/lib/trace/rust:trace",
    "//src/starnix/kernel/core",
    "//src/starnix/lib/extended_pstate:lib",
    "//src/starnix/lib/starnix_logging",
    "//src/starnix/lib/starnix_registers",
    "//src/starnix/lib/starnix_sync",
    "//src/starnix/lib/starnix_syscalls",
    "//src/starnix/lib/starnix_uapi",
    "//third_party/rust_crates:anyhow",
    "//third_party/rust_crates:paste",
    "//third_party/rust_crates:zerocopy",
  ]

  configs += [ "//src/starnix/build:kernel_library_config" ]
}

static_library("restricted_trampoline") {
  sources = [ "src/trampoline_${current_cpu}.S" ]
  deps = [ "//src/starnix/lib/asm_utils" ]
}

fuchsia_unittest_package("starnix_syscall_loop_tests") {
  deps = [ ":starnix_syscall_loop_test" ]
  test_type = "starnix"
}

group("tests") {
  testonly = true
  deps = [ ":starnix_syscall_loop_tests" ]
}
