Skip to main content

strat9_kernel/process/
mod.rs

1//! Process and Task Management
2//!
3//! Implements the core structures for process management in Strat9-OS:
4//! - Task structure with state management
5//! - Process abstraction
6//! - Basic scheduler functionality
7
8#[cfg(feature = "selftest")]
9pub mod abi_layout_test;
10#[cfg(feature = "selftest")]
11pub mod demand_paging_test;
12pub mod elf;
13#[cfg(feature = "selftest")]
14pub mod errno_test;
15#[cfg(feature = "selftest")]
16pub mod fork_test;
17#[cfg(feature = "selftest")]
18pub mod futex_test;
19#[cfg(feature = "selftest")]
20pub mod mmap_test;
21#[cfg(feature = "selftest")]
22pub mod pipe_test;
23#[cfg(feature = "selftest")]
24pub mod posix_signal_test;
25pub mod process;
26#[cfg(feature = "selftest")]
27pub mod process_id_test;
28pub mod sched_classes;
29pub mod scheduler;
30#[cfg(feature = "selftest")]
31pub mod scheduler_test;
32#[cfg(feature = "selftest")]
33pub mod selftest;
34pub mod signal;
35pub mod task;
36pub mod test;
37#[cfg(feature = "selftest")]
38pub mod time_test;
39pub mod timer;
40pub mod usertest;
41#[cfg(feature = "selftest")]
42pub mod vfs_ops_test;
43#[cfg(feature = "selftest")]
44pub mod vfs_stat_test;
45
46// Backward-compatible alias while references migrate from `sched` to `sched_classes`.
47pub use sched_classes as sched;
48
49pub use scheduler::{
50    add_task, block_current_task, class_table as scheduler_class_table, clear_task_wake_deadline,
51    configure_class_table, cpu_usage_snapshot, create_session, current_pgid, current_pid,
52    current_sid, current_task_clone, current_task_id, current_tid, get_all_tasks, get_parent_id,
53    get_parent_pid, get_pgid_by_pid, get_sid_by_pid, get_task_by_id, get_task_by_pid,
54    get_task_id_by_pid, get_task_id_by_tid, get_task_ids_in_pgid, init_scheduler, kill_task,
55    log_state as log_scheduler_state, note_try_lock_fail, reset_scheduler_metrics, resume_task,
56    schedule, schedule_on_cpu, scheduler_metrics_snapshot, set_process_group,
57    set_task_sched_policy, set_task_wake_deadline, set_verbose as set_scheduler_verbose,
58    state_snapshot as scheduler_state_snapshot, suspend_task, try_wait_child,
59    verbose_enabled as scheduler_verbose_enabled, wake_task, yield_task, CpuUsageSnapshot,
60    SchedulerMetricsSnapshot, SchedulerStateSnapshot, WaitChildResult,
61};
62pub use signal::{has_pending_signals, send_signal, Signal, SignalSet};
63pub use task::{Pid, Task, TaskId, TaskPriority, TaskState, Tid};