/* Zero-CRT entry point — no standard headers, no C runtime * Manual kernel32 resolution via PEB walk * Boot: CUDA -> Power -> Janet -> Scheduler -> loop */ typedef unsigned long long uint64_t; typedef unsigned int uint32_t; typedef unsigned short uint16_t; typedef unsigned char uint8_t; typedef int int32_t; typedef unsigned long ULONG; typedef void* PVOID; typedef PVOID HANDLE; typedef uint32_t DWORD; typedef uint64_t ULONG_PTR; typedef int BOOL; typedef unsigned long long SIZE_T; typedef int (*LPTHREAD_START_ROUTINE)(PVOID); /* PE structures (inline) */ typedef struct { struct _LE* Flink; struct _LE* Blink; } LIST_ENTRY, *PLIST_ENTRY; typedef struct { uint16_t Length; uint16_t MaximumLength; wchar_t* Buffer; } UNICODE_STRING; typedef struct { LIST_ENTRY L1, L2, L3; PVOID DllBase; PVOID EntryPoint; ULONG SizeOfImage; UNICODE_STRING FullDllName; UNICODE_STRING BaseDllName; } LDR_DATA_TABLE_ENTRY, *PLDR_DATA_TABLE_ENTRY; typedef struct { ULONG Length; BOOL Init; HANDLE Ss; LIST_ENTRY L1; LIST_ENTRY L2; } PEB_LDR_DATA, *PPEB_LDR_DATA; typedef struct { uint8_t r[3]; uint8_t r2; PVOID r3[2]; PPEB_LDR_DATA Ldr; } PEB, *PPEB; typedef struct { uint16_t e_magic; uint8_t r[58]; int32_t e_lfanew; } IMAGE_DOS_HEADER; typedef struct { uint32_t r[4]; } IMAGE_DATA_DIRECTORY; typedef struct { uint16_t Magic; uint8_t r1[6]; uint32_t r2[7]; uint64_t r3; uint32_t r4[4]; uint16_t r5[6]; uint32_t r6[4]; uint64_t r7[4]; uint32_t r8[2]; IMAGE_DATA_DIRECTORY DD[16]; } IMAGE_OPTIONAL_HEADER64; typedef struct { uint32_t Sig; uint32_t r[5]; uint16_t SzOpt; uint16_t Chars; IMAGE_OPTIONAL_HEADER64 Opt; } IMAGE_NT_HEADERS64; typedef struct { uint32_t r[4]; uint32_t Name; uint32_t Base; uint32_t NFunc; uint32_t NNames; uint32_t AddrFunc; uint32_t AddrNames; uint32_t AddrOrd; } IMAGE_EXPORT_DIRECTORY; typedef void* (*VirtualAlloc_t)(void*,SIZE_T,DWORD,DWORD); typedef BOOL (*WriteConsoleA_t)(HANDLE,const void*,DWORD,DWORD*,void*); typedef HANDLE (*GetStdHandle_t)(DWORD); typedef void (*ExitProcess_t)(DWORD); static VirtualAlloc_t g_VirtualAlloc; static WriteConsoleA_t g_WriteConsoleA; static GetStdHandle_t g_GetStdHandle; static ExitProcess_t g_ExitProcess; /* Janet / scheduler types (mirrors sov_rtx.h) */ typedef struct { uint32_t type_tag; uint32_t length; uint32_t capacity; float data[32]; } sov_janet_array_t; typedef struct { uint32_t state; uint32_t batch_size; sov_janet_array_t janet; } sov_scheduler_t; extern int sov_cuda_init(void); extern void sov_power_handler_init(void); extern int sov_scheduler_init(sov_scheduler_t*); extern int sov_scheduler_step(sov_scheduler_t*, void*, void*); extern int sov_get_power_state(void); static PVOID peb_find(const wchar_t* tgt) { PVOID peb; __asm__ volatile("mov %%gs:0x60,%0":"=r"(peb)); PPEB_LDR_DATA ldr = ((PPEB)peb)->Ldr; LIST_ENTRY* h = &ldr->L2, *c = h->Flink; while (c != h) { PLDR_DATA_TABLE_ENTRY e = (PLDR_DATA_TABLE_ENTRY)((uint8_t*)c - 16); if (e->BaseDllName.Buffer) { int ok=1; const wchar_t* n=e->BaseDllName.Buffer; for (int i=0;iBaseDllName.Length/2;i++){ wchar_t a=n[i],b=tgt[i]; if(a>='A'&&a<='Z')a+=32; if(b>='A'&&b<='Z')b+=32; if(a!=b){ok=0;break;} } if(ok&&tgt[e->BaseDllName.Length/2]==0) return e->DllBase; } c = c->Flink; } return 0; } static PVOID pe_exp(PVOID base, const char* name) { if (!base) return 0; IMAGE_DOS_HEADER* dos = (IMAGE_DOS_HEADER*)base; if (dos->e_magic != 0x5A4D) return 0; IMAGE_NT_HEADERS64* nt = (IMAGE_NT_HEADERS64*)((uint8_t*)base + dos->e_lfanew); if (nt->Sig != 0x4550) return 0; uint32_t erva = nt->Opt.DD[0].r[0]; if (!erva) return 0; IMAGE_EXPORT_DIRECTORY* exp = (IMAGE_EXPORT_DIRECTORY*)((uint8_t*)base + erva); uint32_t* nms = (uint32_t*)((uint8_t*)base + exp->AddrNames); uint32_t* fns = (uint32_t*)((uint8_t*)base + exp->AddrFunc); uint16_t* ords = (uint16_t*)((uint8_t*)base + exp->AddrOrd); int lo=0, hi=(int)exp->NNames-1; while (lo<=hi) { int mid=(lo+hi)>>1; const char* mn=(const char*)((uint8_t*)base+nms[mid]); int cmp=0; for(int i=0;;i++){if(!mn[i]&&!name[i])break;if(mn[i]!=name[i]){cmp=(mn[i]