Skip to content
Snippets Groups Projects
Verified Commit 7fcf5a1a authored by Jacob Lorentzon's avatar Jacob Lorentzon :speech_balloon:
Browse files

Ignore special bits when selecting signal.

parent a2ab86d2
No related branches found
No related tags found
No related merge requests found
...@@ -3,6 +3,7 @@ use core::sync::atomic::AtomicU8; ...@@ -3,6 +3,7 @@ use core::sync::atomic::AtomicU8;
use syscall::data::Sigcontrol; use syscall::data::Sigcontrol;
use syscall::error::*; use syscall::error::*;
use syscall::flag::*;
use crate::proc::{fork_inner, FdGuard}; use crate::proc::{fork_inner, FdGuard};
use crate::signal::{inner_c, RtSigarea}; use crate::signal::{inner_c, RtSigarea};
...@@ -136,6 +137,7 @@ asmfunction!(__relibc_internal_sigentry: [" ...@@ -136,6 +137,7 @@ asmfunction!(__relibc_internal_sigentry: ["
mov rcx, rdx mov rcx, rdx
shr rcx, 32 shr rcx, 32
and edx, ecx and edx, ecx
and edx, {SIGW0_PENDING_MASK}
bsf edx, edx bsf edx, edx
jnz 2f jnz 2f
...@@ -144,6 +146,7 @@ asmfunction!(__relibc_internal_sigentry: [" ...@@ -144,6 +146,7 @@ asmfunction!(__relibc_internal_sigentry: ["
mov rcx, rdx mov rcx, rdx
shr rcx, 32 shr rcx, 32
and edx, ecx and edx, ecx
and edx, {SIGW1_PENDING_MASK}
bsf edx, edx bsf edx, edx
jnz 4f jnz 4f
add edx, 32 add edx, 32
...@@ -265,6 +268,10 @@ asmfunction!(__relibc_internal_sigentry: [" ...@@ -265,6 +268,10 @@ asmfunction!(__relibc_internal_sigentry: ["
tcb_sa_off = const offset_of!(crate::Tcb, os_specific) + offset_of!(RtSigarea, arch), tcb_sa_off = const offset_of!(crate::Tcb, os_specific) + offset_of!(RtSigarea, arch),
tcb_sc_off = const offset_of!(crate::Tcb, os_specific) + offset_of!(RtSigarea, control), tcb_sc_off = const offset_of!(crate::Tcb, os_specific) + offset_of!(RtSigarea, control),
supports_xsave = sym SUPPORTS_XSAVE, supports_xsave = sym SUPPORTS_XSAVE,
SIGW0_PENDING_MASK = const !(
SIGW0_TSTP_IS_STOP_BIT | SIGW0_TTIN_IS_STOP_BIT | SIGW0_TTOU_IS_STOP_BIT | SIGW0_NOCLDSTOP_BIT | SIGW0_UNUSED1 | SIGW0_UNUSED2
),
SIGW1_PENDING_MASK = const !0,
]); ]);
static SUPPORTS_XSAVE: AtomicU8 = AtomicU8::new(0); // FIXME static SUPPORTS_XSAVE: AtomicU8 = AtomicU8::new(0); // FIXME
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment