implement proper IRQL, DPCs, kernel and user APCs, alertable waits, async file I/O with cancellation, trap frames, selftests, a real driver/device model, native async FAT32, VFAT dotfile fixes, syscall ABI cleanup, async_apc and async_cancel tests, POSIX multi-volume paths, and pimp the readme.
This commit is contained in:
1 parent
f5fd7bdd75
commit
529f816166
75 files changed
+9969
-5675
No files matched your search
+5
-14
@@ -24,28 +24,19 @@ static void doom_print_wrapper(const char* msg)
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
// doom_malloc_fn / doom_free_fn
|
||||
// Prepend size tracking metadata to satisfy SysFree's size requirement.
|
||||
// ---------------------------------------------------------------------------
|
||||
static void* doom_malloc_wrapper(int size)
|
||||
{
|
||||
size_t total_size = size + sizeof(size_t);
|
||||
void* p = SysAlloc(total_size);
|
||||
void* p = SysAlloc(size);
|
||||
if (!p) SysExitProcess(1);
|
||||
|
||||
// Store total allocated size at the start of the block
|
||||
*(size_t*)p = total_size;
|
||||
|
||||
// Return pointer past the size prefix
|
||||
return (void*)((size_t*)p + 1);
|
||||
return p;
|
||||
}
|
||||
|
||||
static void doom_free_wrapper(void* ptr)
|
||||
{
|
||||
if (!ptr) return;
|
||||
|
||||
size_t* real_p = (size_t*)ptr - 1;
|
||||
size_t total_size = *real_p;
|
||||
SysFree(real_p, total_size);
|
||||
|
||||
SysFree(ptr);
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
@@ -314,7 +305,7 @@ static int build_argv_from_command_line(const char* cmdline, char* storage, size
|
||||
// ---------------------------------------------------------------------------
|
||||
int main(void)
|
||||
{
|
||||
const char* cmdline = SysGetCommandLine();
|
||||
const char* cmdline = SysGetPeb()->CommandLine;
|
||||
|
||||
SysWriteConsole("doom: starting\n", 15);
|
||||
|
||||
|
||||
Reference in new issue
Block a user