pty and signal header cleanup

This commit is contained in:
auronandace
2026-02-28 14:36:46 +00:00
parent fccd849d22
commit d76417587c
4 changed files with 31 additions and 30 deletions
+5 -6
View File
@@ -36,9 +36,9 @@ pub static mut HOST_STAYOPEN: c_int = 0;
#[unsafe(no_mangle)]
pub unsafe extern "C" fn endhostent() {
if unsafe { HOSTDB } >= 0 {
if let Ok(()) = Sys::close(unsafe { HOSTDB }) {}; // TODO handle error
}
if unsafe { HOSTDB } >= 0
&& let Ok(()) = Sys::close(unsafe { HOSTDB })
{} // TODO handle error
unsafe { HOSTDB = -1 };
}
@@ -47,9 +47,8 @@ pub unsafe extern "C" fn sethostent(stayopen: c_int) {
unsafe { HOST_STAYOPEN = stayopen };
if unsafe { HOSTDB } < 0 {
unsafe { HOSTDB = Sys::open(c"/etc/hosts".into(), O_RDONLY, 0).or_minus_one_errno() }
} else {
if Sys::lseek(unsafe { HOSTDB }, 0, SEEK_SET).is_ok() {}; // TODO handle error
}
} else if Sys::lseek(unsafe { HOSTDB }, 0, SEEK_SET).is_ok() {
} // TODO handle error
unsafe { H_POS = 0 };
}
+9 -7
View File
@@ -72,13 +72,13 @@ pub unsafe extern "C" fn forkpty(
let mut set = signal::sigset_t::default();
let mut oldset = signal::sigset_t::default();
if unsafe { openpty(&mut m, &mut s, name, tio, ws) } < 0 {
if unsafe { openpty(&raw mut m, &raw mut s, name, tio, ws) } < 0 {
return -1;
}
unsafe { signal::sigfillset(&mut set) };
unsafe { signal::pthread_sigmask(signal::SIG_BLOCK, &set, &mut oldset) };
unsafe { pthread::pthread_setcancelstate(pthread::PTHREAD_CANCEL_DISABLE, &mut cs) };
unsafe { signal::sigfillset(&raw mut set) };
unsafe { signal::pthread_sigmask(signal::SIG_BLOCK, &raw const set, &raw mut oldset) };
unsafe { pthread::pthread_setcancelstate(pthread::PTHREAD_CANCEL_DISABLE, &raw mut cs) };
if unsafe { unistd::pipe2(p.as_mut_ptr(), fcntl::O_CLOEXEC) } != 0 {
unistd::close(s);
@@ -99,7 +99,9 @@ pub unsafe extern "C" fn forkpty(
}
unistd::close(p[1]);
unsafe { pthread::pthread_setcancelstate(cs, ptr::null_mut()) };
unsafe { signal::pthread_sigmask(signal::SIG_SETMASK, &oldset, ptr::null_mut()) };
unsafe {
signal::pthread_sigmask(signal::SIG_SETMASK, &raw const oldset, ptr::null_mut())
};
return 0;
}
@@ -115,7 +117,7 @@ pub unsafe extern "C" fn forkpty(
} > 0
{
let mut status = 0;
unsafe { sys_wait::waitpid(pid, &mut status, 0) };
unsafe { sys_wait::waitpid(pid, &raw mut status, 0) };
pid = -1;
platform::ERRNO.set(ec);
}
@@ -127,6 +129,6 @@ pub unsafe extern "C" fn forkpty(
unistd::close(m);
}
unsafe { pthread::pthread_setcancelstate(cs, ptr::null_mut()) };
unsafe { signal::pthread_sigmask(signal::SIG_SETMASK, &oldset, ptr::null_mut()) };
unsafe { signal::pthread_sigmask(signal::SIG_SETMASK, &raw const oldset, ptr::null_mut()) };
pid
}
+16 -16
View File
@@ -285,10 +285,10 @@ pub unsafe extern "C" fn sighold(sig: c_int) -> c_int {
let mut pset = mem::MaybeUninit::<sigset_t>::uninit();
unsafe { sigemptyset(pset.as_mut_ptr()) };
let mut set = unsafe { pset.assume_init() };
if unsafe { sigaddset(&mut set, sig) } < 0 {
if unsafe { sigaddset(&raw mut set, sig) } < 0 {
return -1;
}
unsafe { sigprocmask(SIG_BLOCK, &set, ptr::null_mut()) }
unsafe { sigprocmask(SIG_BLOCK, &raw const set, ptr::null_mut()) }
}
/// See <https://pubs.opengroup.org/onlinepubs/9699919799/functions/sighold.html>.
@@ -299,11 +299,11 @@ pub unsafe extern "C" fn sighold(sig: c_int) -> c_int {
#[unsafe(no_mangle)]
pub extern "C" fn sigignore(sig: c_int) -> c_int {
let mut psa = mem::MaybeUninit::<sigaction>::uninit();
unsafe { sigemptyset(&mut (*psa.as_mut_ptr()).sa_mask) };
unsafe { sigemptyset(&raw mut (*psa.as_mut_ptr()).sa_mask) };
let mut sa = unsafe { psa.assume_init() };
sa.sa_handler = unsafe { mem::transmute(SIG_IGN) };
sa.sa_flags = 0;
unsafe { sigaction(sig, &sa, ptr::null_mut()) }
unsafe { sigaction(sig, &raw const sa, ptr::null_mut()) }
}
/// See <https://pubs.opengroup.org/onlinepubs/9699919799/functions/siginterrupt.html>.
@@ -320,7 +320,7 @@ pub extern "C" fn siginterrupt(sig: c_int, flag: c_int) -> c_int {
sa.sa_flags |= SA_RESTART as c_int;
}
unsafe { sigaction(sig, &sa, ptr::null_mut()) }
unsafe { sigaction(sig, &raw const sa, ptr::null_mut()) }
}
/// See <https://pubs.opengroup.org/onlinepubs/9799919799/functions/sigismember.html>.
@@ -354,7 +354,7 @@ pub extern "C" fn signal(
sa_mask: sigset_t::default(),
};
let mut old_sa = mem::MaybeUninit::uninit();
if unsafe { sigaction(sig, &sa, old_sa.as_mut_ptr()) } < 0 {
if unsafe { sigaction(sig, &raw const sa, old_sa.as_mut_ptr()) } < 0 {
mem::forget(old_sa);
return unsafe { mem::transmute(SIG_ERR) };
}
@@ -371,10 +371,10 @@ pub unsafe extern "C" fn sigpause(sig: c_int) -> c_int {
let mut pset = mem::MaybeUninit::<sigset_t>::uninit();
unsafe { sigprocmask(0, ptr::null_mut(), pset.as_mut_ptr()) };
let mut set = unsafe { pset.assume_init() };
if unsafe { sigdelset(&mut set, sig) } == -1 {
if unsafe { sigdelset(&raw mut set, sig) } == -1 {
return -1;
}
unsafe { sigsuspend(&set) }
unsafe { sigsuspend(&raw const set) }
}
/// See <https://pubs.opengroup.org/onlinepubs/9799919799/functions/sigpending.html>.
@@ -429,10 +429,10 @@ pub unsafe extern "C" fn sigrelse(sig: c_int) -> c_int {
let mut pset = mem::MaybeUninit::<sigset_t>::uninit();
unsafe { sigemptyset(pset.as_mut_ptr()) };
let mut set = unsafe { pset.assume_init() };
if unsafe { sigaddset(&mut set, sig) } < 0 {
if unsafe { sigaddset(&raw mut set, sig) } < 0 {
return -1;
}
unsafe { sigprocmask(SIG_UNBLOCK, &set, ptr::null_mut()) }
unsafe { sigprocmask(SIG_UNBLOCK, &raw const set, ptr::null_mut()) }
}
/// See <https://pubs.opengroup.org/onlinepubs/9699919799/functions/sighold.html>.
@@ -451,7 +451,7 @@ pub unsafe extern "C" fn sigset(
let sig_err: Option<extern "C" fn(c_int)> = unsafe { mem::transmute(SIG_ERR) };
unsafe { sigemptyset(pset.as_mut_ptr()) };
let mut set = unsafe { pset.assume_init() };
if unsafe { sigaddset(&mut set, sig) } < 0 {
if unsafe { sigaddset(&raw mut set, sig) } < 0 {
return sig_err;
} else {
let is_equal = {
@@ -463,7 +463,7 @@ pub unsafe extern "C" fn sigset(
};
if is_equal {
if unsafe { sigaction(sig, ptr::null_mut(), old_sa.as_mut_ptr()) } < 0
|| unsafe { sigprocmask(SIG_BLOCK, &set, &mut set) } < 0
|| unsafe { sigprocmask(SIG_BLOCK, &raw const set, &raw mut set) } < 0
{
mem::forget(old_sa);
return sig_err;
@@ -475,16 +475,16 @@ pub unsafe extern "C" fn sigset(
sa_restorer: None, // set by platform if applicable
sa_mask: sigset_t::default(),
};
unsafe { sigemptyset(&mut sa.sa_mask) };
if unsafe { sigaction(sig, &sa, old_sa.as_mut_ptr()) } < 0
|| unsafe { sigprocmask(SIG_UNBLOCK, &set, &mut set) } < 0
unsafe { sigemptyset(&raw mut sa.sa_mask) };
if unsafe { sigaction(sig, &raw const sa, old_sa.as_mut_ptr()) } < 0
|| unsafe { sigprocmask(SIG_UNBLOCK, &raw const set, &raw mut set) } < 0
{
mem::forget(old_sa);
return sig_err;
}
}
}
if unsafe { sigismember(&set, sig) } == 1 {
if unsafe { sigismember(&raw const set, sig) } == 1 {
return sig_hold;
}
unsafe { old_sa.assume_init().sa_handler }
+1 -1
View File
@@ -153,7 +153,7 @@ macro_rules! strto_impl {
let mut idx = 0;
// skip any whitespace at the beginning of the string
while ctype::isspace(unsafe { *$s.offset(idx) } as c_int) != 0 {
while ctype::isspace(c_int::from(unsafe { *$s.offset(idx) })) != 0 {
idx += 1;
}