mirror of
https://github.com/RGBCube/serenity
synced 2025-05-24 05:55:06 +00:00
Kernel+LibC: Don't hardcode the maximum signal number everywhere
This commit is contained in:
parent
a39a341e26
commit
e79f0e2ee9
4 changed files with 9 additions and 9 deletions
|
@ -738,7 +738,7 @@ void Process::die()
|
||||||
void Process::terminate_due_to_signal(u8 signal)
|
void Process::terminate_due_to_signal(u8 signal)
|
||||||
{
|
{
|
||||||
VERIFY_INTERRUPTS_DISABLED();
|
VERIFY_INTERRUPTS_DISABLED();
|
||||||
VERIFY(signal < 32);
|
VERIFY(signal < NSIG);
|
||||||
VERIFY(&Process::current() == this);
|
VERIFY(&Process::current() == this);
|
||||||
dbgln("Terminating {} due to signal {}", *this, signal);
|
dbgln("Terminating {} due to signal {}", *this, signal);
|
||||||
{
|
{
|
||||||
|
|
|
@ -54,7 +54,7 @@ ErrorOr<FlatPtr> Process::sys$sigaction(int signum, Userspace<sigaction const*>
|
||||||
{
|
{
|
||||||
VERIFY_PROCESS_BIG_LOCK_ACQUIRED(this)
|
VERIFY_PROCESS_BIG_LOCK_ACQUIRED(this)
|
||||||
TRY(require_promise(Pledge::sigaction));
|
TRY(require_promise(Pledge::sigaction));
|
||||||
if (signum < 1 || signum >= 32 || signum == SIGKILL || signum == SIGSTOP)
|
if (signum < 1 || signum >= NSIG || signum == SIGKILL || signum == SIGSTOP)
|
||||||
return EINVAL;
|
return EINVAL;
|
||||||
|
|
||||||
InterruptDisabler disabler; // FIXME: This should use a narrower lock. Maybe a way to ignore signals temporarily?
|
InterruptDisabler disabler; // FIXME: This should use a narrower lock. Maybe a way to ignore signals temporarily?
|
||||||
|
|
|
@ -156,7 +156,7 @@ ErrorOr<FlatPtr> Process::sys$kill_thread(pid_t tid, int signal)
|
||||||
VERIFY_PROCESS_BIG_LOCK_ACQUIRED(this)
|
VERIFY_PROCESS_BIG_LOCK_ACQUIRED(this)
|
||||||
TRY(require_promise(Pledge::thread));
|
TRY(require_promise(Pledge::thread));
|
||||||
|
|
||||||
if (signal < 0 || signal >= 32)
|
if (signal < 0 || signal >= NSIG)
|
||||||
return EINVAL;
|
return EINVAL;
|
||||||
|
|
||||||
auto thread = Thread::from_tid(tid);
|
auto thread = Thread::from_tid(tid);
|
||||||
|
|
|
@ -720,7 +720,7 @@ u32 Thread::pending_signals_for_state() const
|
||||||
|
|
||||||
void Thread::send_signal(u8 signal, [[maybe_unused]] Process* sender)
|
void Thread::send_signal(u8 signal, [[maybe_unused]] Process* sender)
|
||||||
{
|
{
|
||||||
VERIFY(signal < 32);
|
VERIFY(signal < NSIG);
|
||||||
VERIFY(process().is_user_process());
|
VERIFY(process().is_user_process());
|
||||||
SpinlockLocker scheduler_lock(g_scheduler_lock);
|
SpinlockLocker scheduler_lock(g_scheduler_lock);
|
||||||
|
|
||||||
|
@ -827,7 +827,7 @@ DispatchSignalResult Thread::dispatch_one_pending_signal()
|
||||||
return DispatchSignalResult::Continue;
|
return DispatchSignalResult::Continue;
|
||||||
|
|
||||||
u8 signal = 1;
|
u8 signal = 1;
|
||||||
for (; signal < 32; ++signal) {
|
for (; signal < NSIG; ++signal) {
|
||||||
if ((signal_candidates & (1 << (signal - 1))) != 0) {
|
if ((signal_candidates & (1 << (signal - 1))) != 0) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -902,7 +902,7 @@ static DefaultSignalAction default_signal_action(u8 signal)
|
||||||
|
|
||||||
bool Thread::should_ignore_signal(u8 signal) const
|
bool Thread::should_ignore_signal(u8 signal) const
|
||||||
{
|
{
|
||||||
VERIFY(signal < 32);
|
VERIFY(signal < NSIG);
|
||||||
auto const& action = m_process->m_signal_action_data[signal];
|
auto const& action = m_process->m_signal_action_data[signal];
|
||||||
if (action.handler_or_sigaction.is_null())
|
if (action.handler_or_sigaction.is_null())
|
||||||
return default_signal_action(signal) == DefaultSignalAction::Ignore;
|
return default_signal_action(signal) == DefaultSignalAction::Ignore;
|
||||||
|
@ -911,14 +911,14 @@ bool Thread::should_ignore_signal(u8 signal) const
|
||||||
|
|
||||||
bool Thread::has_signal_handler(u8 signal) const
|
bool Thread::has_signal_handler(u8 signal) const
|
||||||
{
|
{
|
||||||
VERIFY(signal < 32);
|
VERIFY(signal < NSIG);
|
||||||
auto const& action = m_process->m_signal_action_data[signal];
|
auto const& action = m_process->m_signal_action_data[signal];
|
||||||
return !action.handler_or_sigaction.is_null();
|
return !action.handler_or_sigaction.is_null();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Thread::is_signal_masked(u8 signal) const
|
bool Thread::is_signal_masked(u8 signal) const
|
||||||
{
|
{
|
||||||
VERIFY(signal < 32);
|
VERIFY(signal < NSIG);
|
||||||
return (1 << (signal - 1)) & m_signal_mask;
|
return (1 << (signal - 1)) & m_signal_mask;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -969,7 +969,7 @@ DispatchSignalResult Thread::dispatch_signal(u8 signal)
|
||||||
{
|
{
|
||||||
VERIFY_INTERRUPTS_DISABLED();
|
VERIFY_INTERRUPTS_DISABLED();
|
||||||
VERIFY(g_scheduler_lock.is_locked_by_current_processor());
|
VERIFY(g_scheduler_lock.is_locked_by_current_processor());
|
||||||
VERIFY(signal > 0 && signal <= 32);
|
VERIFY(signal > 0 && signal <= NSIG);
|
||||||
VERIFY(process().is_user_process());
|
VERIFY(process().is_user_process());
|
||||||
VERIFY(this == Thread::current());
|
VERIFY(this == Thread::current());
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue