| # Copyright 2026 The Pigweed Authors |
| # |
| # Licensed under the Apache License, Version 2.0 (the "License"); you may not |
| # use this file except in compliance with the License. You may obtain a copy of |
| # the License at |
| # |
| # https://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT |
| # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the |
| # License for the specific language governing permissions and limitations under |
| # the License. |
| |
| load("@rules_rust//rust:defs.bzl", "rust_library") |
| load("//pw_kernel/tooling:multi_process_app.bzl", "multi_process_app") |
| load("//pw_kernel/tooling:rust_process.bzl", "rust_process") |
| |
| multi_process_app( |
| name = "process_termination", |
| processes = [ |
| ":main", |
| ":clean_exit", |
| ":forced_exit", |
| ":restart", |
| ":exception_exit", |
| ], |
| tags = ["kernel"], |
| visibility = ["//visibility:public"], |
| ) |
| |
| rust_process( |
| name = "main", |
| srcs = [ |
| "main.rs", |
| ], |
| codegen_crate_name = "main_codegen", |
| edition = "2024", |
| tags = ["kernel"], |
| visibility = ["//visibility:public"], |
| deps = [ |
| ":control_commands", |
| "//pw_kernel/lib/unittest:test_logger", |
| "//pw_kernel/syscall:syscall_user", |
| "//pw_kernel/userspace", |
| "//pw_status/rust:pw_status", |
| "//pw_time/rust:pw_time_core", |
| ], |
| ) |
| |
| rust_process( |
| name = "clean_exit", |
| srcs = [ |
| "clean_exit.rs", |
| ], |
| codegen_crate_name = "clean_exit_codegen", |
| edition = "2024", |
| tags = ["kernel"], |
| visibility = ["//visibility:public"], |
| deps = [ |
| "//pw_kernel/lib/unittest:test_logger", |
| "//pw_kernel/syscall:syscall_user", |
| "//pw_kernel/userspace", |
| "//pw_status/rust:pw_status", |
| ], |
| ) |
| |
| rust_process( |
| name = "forced_exit", |
| srcs = [ |
| "forced_exit.rs", |
| ], |
| codegen_crate_name = "forced_exit_codegen", |
| edition = "2024", |
| tags = ["kernel"], |
| visibility = ["//visibility:public"], |
| deps = [ |
| "//pw_kernel/lib/unittest:test_logger", |
| "//pw_kernel/syscall:syscall_user", |
| "//pw_kernel/userspace", |
| "//pw_status/rust:pw_status", |
| ], |
| ) |
| |
| rust_process( |
| name = "exception_exit", |
| srcs = [ |
| "exception_exit.rs", |
| ], |
| codegen_crate_name = "exception_exit_codegen", |
| edition = "2024", |
| tags = ["kernel"], |
| visibility = ["//visibility:public"], |
| deps = [ |
| "//pw_kernel/lib/unittest:test_logger", |
| "//pw_kernel/syscall:syscall_user", |
| "//pw_kernel/userspace", |
| "//pw_status/rust:pw_status", |
| ], |
| ) |
| |
| rust_process( |
| name = "restart", |
| srcs = [ |
| "restart.rs", |
| ], |
| codegen_crate_name = "restart_codegen", |
| edition = "2024", |
| tags = ["kernel"], |
| visibility = ["//visibility:public"], |
| deps = [ |
| ":control_commands", |
| "//pw_kernel/lib/unittest:test_logger", |
| "//pw_kernel/syscall:syscall_user", |
| "//pw_kernel/userspace", |
| "//pw_status/rust:pw_status", |
| ], |
| ) |
| |
| rust_library( |
| name = "control_commands", |
| srcs = ["control_commands.rs"], |
| edition = "2024", |
| tags = ["kernel"], |
| visibility = ["//visibility:public"], |
| deps = [ |
| "//pw_status/rust:pw_status", |
| ], |
| ) |