move POSIX spawn, exec and child tracking into posixsrv, keep process transactions alive across reconnects and preserve stable PIDs across image replacement, flesh out spawn with ordered file actions, process-group selection and signal inheritance, implement execve with bootstrap validation and rollback before retiring the old process, add vfork children that share the native process while keeping separate POSIX descriptor and signal state, replace local spawn bookkeeping with child reaping, nonblocking and process-group waits and orphan cleanup, add signal dispositions, per-thread masks, pending delivery, process/group signalling and alarms, translate native exceptions into POSIX signals and inherit masks when creating threads, make pipe waits interruptible and raise SIGPIPE for broken pipes, pass arguments and environment into main and add getenv/environ, add direct user APC notifications that can run without an alertable wait, add current-thread capabilities and resume-and-wait, let accepted IPC endpoints open restricted peer process capabilities and preserve caller security during spawn and exec, make process preparation reusable and improve DLL lookup across current, executable and fallback directories, move keyboard repeat into RSSRV so PS/2 and USB share one repeat policy, fix video presentation, report launch failure stages and status codes, mooaaar tests.

This commit is contained in:
maksw committed 2026-09-23 09:39:42 +02:00
1 parent 73abd6f90d
commit 899225f551
57 files changed
+8817 -1216

No files matched your search

+47 -1
View File
@@ -1,8 +1,54 @@
// POSIX signal type declarations reserved for the next runtime phase.
// POSIX signal declarations for the nt-lite POSIX personality.
#pragma once
#include <stdint.h>
#include <sys/types.h>
#include <ntlite_posix_api.h>
#include <ntlite/posix_signal.h>
typedef uint64_t sigset_t;
typedef int sig_atomic_t;
typedef void (*sighandler_t)(int);
#define SIGHUP NTL_POSIX_SIGNAL_HUP
#define SIGINT NTL_POSIX_SIGNAL_INT
#define SIGQUIT NTL_POSIX_SIGNAL_QUIT
#define SIGILL NTL_POSIX_SIGNAL_ILL
#define SIGABRT NTL_POSIX_SIGNAL_ABRT
#define SIGFPE NTL_POSIX_SIGNAL_FPE
#define SIGKILL NTL_POSIX_SIGNAL_KILL
#define SIGSEGV NTL_POSIX_SIGNAL_SEGV
#define SIGPIPE NTL_POSIX_SIGNAL_PIPE
#define SIGALRM NTL_POSIX_SIGNAL_ALRM
#define SIGTERM NTL_POSIX_SIGNAL_TERM
#define SIGUSR1 NTL_POSIX_SIGNAL_USR1
#define SIGUSR2 NTL_POSIX_SIGNAL_USR2
#define SIGCHLD NTL_POSIX_SIGNAL_CHLD
#define SIG_DFL ((sighandler_t)0)
#define SIG_IGN ((sighandler_t)1)
#define SIG_ERR ((sighandler_t)-1)
#define SIG_BLOCK 1
#define SIG_UNBLOCK 2
#define SIG_SETMASK 3
struct sigaction {
sighandler_t sa_handler;
sigset_t sa_mask;
int sa_flags;
};
NTL_POSIX_API int sigemptyset(sigset_t* set);
NTL_POSIX_API int sigfillset(sigset_t* set);
NTL_POSIX_API int sigaddset(sigset_t* set, int signalNumber);
NTL_POSIX_API int sigdelset(sigset_t* set, int signalNumber);
NTL_POSIX_API int sigismember(const sigset_t* set, int signalNumber);
NTL_POSIX_API int sigaction(int signalNumber, const struct sigaction* action, struct sigaction* oldAction);
NTL_POSIX_API int sigprocmask(int how, const sigset_t* set, sigset_t* oldSet);
NTL_POSIX_API int sigpending(sigset_t* set);
NTL_POSIX_API int sigsuspend(const sigset_t* set);
NTL_POSIX_API int kill(pid_t pid, int signalNumber);
NTL_POSIX_API sighandler_t signal(int signalNumber, sighandler_t handler);
NTL_POSIX_API int raise(int signalNumber);