clean up and standardize types across the codebase, unify atomic operations, improve UTF-8 handling throughout the system, remove obsolete input and named queue interfaces, redesign process preparation and creation, tighten IPC and service boundaries, improve error handling and reliability, minor documentation cleanup, fix doom surfaces, fix panic in ini parsing.
This commit is contained in:
1 parent
899225f551
commit
c0ad63c27f
226 files changed
+6562
-4147
No files matched your search
@@ -1,5 +1,6 @@
|
||||
// POSIX signal policy and user-mode dispatch over generic thread APC delivery.
|
||||
|
||||
#include <stdbool.h>
|
||||
#include <stdint.h>
|
||||
#include <string.h>
|
||||
#include <signal.h>
|
||||
@@ -33,13 +34,13 @@ static KSTATUS PosixSignalCallServer(NTL_POSIX_REQUEST* request, NTL_POSIX_REPLY
|
||||
}
|
||||
|
||||
// Applies one caught/default/ignored signal on the current POSIX thread.
|
||||
static int PosixSignalDeliver(POSIX_THREAD_STATE* thread, int signalNumber) {
|
||||
if (!thread || !thread->NativeProcess || !NtlPosixSignalValid(signalNumber)) return 0;
|
||||
static bool PosixSignalDeliver(POSIX_THREAD_STATE* thread, int signalNumber) {
|
||||
if (!thread || !thread->NativeProcess || !NtlPosixSignalValid(signalNumber)) return false;
|
||||
uint64_t bit = PosixSignalBit(signalNumber);
|
||||
uint64_t effectiveMask = thread->SignalBlocked | thread->SignalHandlerBlocked;
|
||||
if (signalNumber != SIGKILL && (effectiveMask & bit) != 0) {
|
||||
thread->SignalPending |= bit;
|
||||
return 0;
|
||||
return false;
|
||||
}
|
||||
|
||||
thread->SignalPending &= ~bit;
|
||||
@@ -49,10 +50,10 @@ static int PosixSignalDeliver(POSIX_THREAD_STATE* thread, int signalNumber) {
|
||||
|
||||
if (handlerValue == (uintptr_t)SIG_IGN ||
|
||||
(handlerValue == (uintptr_t)SIG_DFL && signalNumber == SIGCHLD))
|
||||
return 0;
|
||||
return false;
|
||||
if (handlerValue == (uintptr_t)SIG_DFL) {
|
||||
_exit(128 + signalNumber);
|
||||
return 1;
|
||||
return true;
|
||||
}
|
||||
|
||||
uint64_t previousHandlerMask = thread->SignalHandlerBlocked;
|
||||
@@ -65,7 +66,7 @@ static int PosixSignalDeliver(POSIX_THREAD_STATE* thread, int signalNumber) {
|
||||
((sighandler_t)handlerValue)(signalNumber);
|
||||
thread->SignalHandlerBlocked = previousHandlerMask;
|
||||
PosixSignalDispatchLocalPending(thread);
|
||||
return 1;
|
||||
return true;
|
||||
}
|
||||
|
||||
// Maps one personality-neutral native exception class to a POSIX signal.
|
||||
@@ -95,7 +96,7 @@ static int PosixSignalForNativeException(uint32_t code) {
|
||||
}
|
||||
|
||||
// Translates selected native faults at the POSIX personality boundary.
|
||||
static int PosixSignalNativeException(SYS_EXCEPTION_RECORD* record,
|
||||
static uint32_t PosixSignalNativeException(SYS_EXCEPTION_RECORD* record,
|
||||
SYS_USER_CONTEXT* context,
|
||||
void* userContext) {
|
||||
(void)context;
|
||||
|
||||
Reference in new issue
Block a user