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:
1 parent
73abd6f90d
commit
899225f551
57 files changed
+8817
-1216
No files matched your search
@@ -30,28 +30,28 @@ typedef struct POSIX_OPEN_DESCRIPTION {
|
||||
NTL_POSIX_SHARED_OPEN_DESCRIPTION* Shared;
|
||||
} POSIX_OPEN_DESCRIPTION;
|
||||
|
||||
// One process-local descriptor entry with descriptor-local flags.
|
||||
// One logical-process descriptor entry with descriptor-local flags.
|
||||
typedef struct POSIX_FD {
|
||||
POSIX_OPEN_DESCRIPTION* Description;
|
||||
int DescriptorFlags;
|
||||
} POSIX_FD;
|
||||
|
||||
struct POSIX_PROCESS_STATE;
|
||||
struct POSIX_LOGICAL_PROCESS_STATE;
|
||||
|
||||
// Initializes the process descriptor table from inherited state or fresh standard descriptors.
|
||||
uint32_t PosixFdInitializeProcess(struct POSIX_PROCESS_STATE* process, uint64_t inheritanceToken);
|
||||
// Initializes one logical process descriptor table from inherited state or fresh standard descriptors.
|
||||
uint32_t PosixFdInitializeLogicalProcess(struct POSIX_LOGICAL_PROCESS_STATE* process, uint64_t inheritanceToken);
|
||||
|
||||
// Captures the current descriptor table in one server-owned inheritance snapshot.
|
||||
KSTATUS PosixFdCreateInheritanceSnapshot(uint32_t flags, uint64_t* tokenOut);
|
||||
|
||||
// Arms one inheritance snapshot to the lifetime of the native child process.
|
||||
KSTATUS PosixFdArmInheritanceSnapshot(uint64_t token, SYS_HANDLE processHandle);
|
||||
|
||||
// Cancels one unclaimed inheritance snapshot owned by the current process.
|
||||
void PosixFdCancelInheritanceSnapshot(uint64_t token);
|
||||
|
||||
// Releases descriptor-table resources during failed process startup.
|
||||
void PosixFdDestroyProcess(struct POSIX_PROCESS_STATE* process);
|
||||
void PosixFdDestroyLogicalProcess(struct POSIX_LOGICAL_PROCESS_STATE* process);
|
||||
|
||||
// Releases only process-local wrappers after server-side exec holder ownership has committed.
|
||||
void PosixFdDestroyLogicalProcessLocal(struct POSIX_LOGICAL_PROCESS_STATE* process);
|
||||
|
||||
// Creates and installs one new open description at the lowest free descriptor >= 3.
|
||||
int PosixFdCreate(POSIX_FD_TYPE type, uint32_t khandle, int statusFlags);
|
||||
|
||||
Reference in new issue
Block a user