Merge branch 'pal-signal-docs' into 'master'

Add docs for PalSignal

See merge request redox-os/relibc!1169
This commit is contained in:
Mathew John Roberts
2026-04-09 07:52:50 +01:00
+14
View File
@@ -8,31 +8,45 @@ use crate::{
},
};
/// Platform abstraction of signal-related functionality.
pub trait PalSignal: Pal {
/// Platform implementation of [`getitimer()`](crate::header::sys_time::getitimer) from [`sys/time.h`](crate::header::sys_time).
fn getitimer(which: c_int, out: &mut itimerval) -> Result<()>;
/// Platform implementation of [`kill()`](crate::header::signal::kill) from [`signal.h`](crate::header::signal).
fn kill(pid: pid_t, sig: c_int) -> Result<()>;
/// Platform implementation of [`sigqueue()`](crate::header::signal::sigqueue) from [`signal.h`](crate::header::signal).
fn sigqueue(pid: pid_t, sig: c_int, val: sigval) -> Result<()>;
/// Platform implementation of [`killpg()`](crate::header::signal::killpg) from [`signal.h`](crate::header::signal).
fn killpg(pgrp: pid_t, sig: c_int) -> Result<()>;
/// Platform implementation of [`raise()`](crate::header::signal::raise) from [`signal.h`](crate::header::signal).
fn raise(sig: c_int) -> Result<()>;
/// Platform implementation of [`setitimer()`](crate::header::sys_time::setitimer) from [`sys/time.h`](crate::header::sys_time).
fn setitimer(which: c_int, new: &itimerval, old: Option<&mut itimerval>) -> Result<()>;
/// Platform implementation of [`alarm()`](crate::header::unistd::alarm) from [`unistd.h`](crate::header::unistd).
fn alarm(seconds: c_uint) -> c_uint;
/// Platform implementation of [`sigaction()`](crate::header::signal::sigaction()) from [`signal.h`](crate::header::signal).
fn sigaction(sig: c_int, act: Option<&sigaction>, oact: Option<&mut sigaction>) -> Result<()>;
/// Platform implementation of [`sigaltstack()`](crate::header::signal::sigaltstack()) from [`signal.h`](crate::header::signal).
unsafe fn sigaltstack(ss: Option<&stack_t>, old_ss: Option<&mut stack_t>) -> Result<()>;
/// Platform implementation of [`sigpending()`](crate::header::signal::sigpending) from [`signal.h`](crate::header::signal).
fn sigpending(set: &mut sigset_t) -> Result<()>;
/// Platform implementation of [`sigprocmask()`](crate::header::signal::sigprocmask) from [`signal.h`](crate::header::signal).
fn sigprocmask(how: c_int, set: Option<&sigset_t>, oset: Option<&mut sigset_t>) -> Result<()>;
/// Platform implementation of [`sigsuspend()`](crate::header::signal::sigsuspend) from [`signal.h`](crate::header::signal).
fn sigsuspend(mask: &sigset_t) -> Errno; // always fails
/// Platform implementation of [`sigtimedwait()`](crate::header::signal::sigtimedwait) from [`signal.h`](crate::header::signal).
fn sigtimedwait(
set: &sigset_t,
sig: Option<&mut siginfo_t>,