duct taped posix.dll (just like microsoft), new cursor, more info in the fault handlers, processes now have a parse-it-yourself cmdline, add SYS_WAIT_THREAD and SYS_GET_PROCESS_PID, writing still doesn't work
This commit is contained in:
1 parent
a37f5b1581
commit
b5c831f593
26 files changed
+1107
-56
No files matched your search
@@ -50,7 +50,7 @@ extern uint32_t SysCreateThread(uint64_t entry, uint64_t arg,
|
||||
uint32_t priority, uint32_t* tidOut);
|
||||
extern uint32_t SysGetCurrentTid(void);
|
||||
extern uint32_t SysGetCurrentPid(void);
|
||||
extern uint32_t SysCreateProcess(const char* path, uint32_t* handleOut);
|
||||
extern uint32_t SysCreateProcess(const char* path, uint32_t* handleOut, const char* cmdline);
|
||||
extern uint32_t SysWaitForProcess(uint32_t handle);
|
||||
extern uint32_t SysGetProcessExitCode(uint32_t handle, int* exitCodeOut);
|
||||
extern char SysKbReadChar(void);
|
||||
@@ -608,9 +608,12 @@ __declspec(dllexport) BOOL CreateProcessA(
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
// Build the cmdline: prefer lpCommandLine if given, otherwise fall back to path
|
||||
const char* cmdline = lpCommandLine ? lpCommandLine : targetPath;
|
||||
|
||||
uint32_t kh = 0;
|
||||
// Call the syscall.dll stub
|
||||
uint32_t s = SysCreateProcess(targetPath, &kh);
|
||||
uint32_t s = SysCreateProcess(targetPath, &kh, cmdline);
|
||||
if (s != 0 || kh == 0) {
|
||||
gLastError = 2; // ERROR_FILE_NOT_FOUND
|
||||
return FALSE;
|
||||
|
||||
Reference in new issue
Block a user