diff options
Diffstat (limited to 'emu/Nt')
| -rw-r--r-- | emu/Nt/ie-os.c | 16 | ||||
| -rw-r--r-- | emu/Nt/os.c | 23 |
2 files changed, 12 insertions, 27 deletions
diff --git a/emu/Nt/ie-os.c b/emu/Nt/ie-os.c index ddf09b57..ee38f2ac 100644 --- a/emu/Nt/ie-os.c +++ b/emu/Nt/ie-os.c @@ -127,7 +127,7 @@ tramp(LPVOID p) return 0; } -int +void kproc(char *name, void (*func)(void*), void *arg, int flags) { DWORD h; @@ -137,10 +137,8 @@ kproc(char *name, void (*func)(void*), void *arg, int flags) Egrp *eg; p = newproc(); - if(p == nil){ - print("out of kernel processes\n"); - return -1; - } + if(p == nil) + panic("out of kernel processes"); if(flags & KPDUPPG) { pg = up->env->pgrp; @@ -178,12 +176,8 @@ kproc(char *name, void (*func)(void*), void *arg, int flags) unlock(&procs.l); p->pid = (int)CreateThread(0, 16384, tramp, p, 0, &h); - if(p->pid <= 0){ - pfree(p); - print("ran out of kernel processes\n"); - return -1; - } - return p->pid; + if(p->pid <= 0) + panic("ran out of kernel processes"); } #if(_WIN32_WINNT >= 0x0400) diff --git a/emu/Nt/os.c b/emu/Nt/os.c index ad6943be..c489d9e0 100644 --- a/emu/Nt/os.c +++ b/emu/Nt/os.c @@ -116,7 +116,7 @@ tramp(LPVOID p) return 0; } -int +void kproc(char *name, void (*func)(void*), void *arg, int flags) { DWORD h; @@ -126,16 +126,11 @@ kproc(char *name, void (*func)(void*), void *arg, int flags) Egrp *eg; p = newproc(); - if(p == nil){ - print("out of kernel processes\n"); - return -1; - } + if(p == nil) + panic("out of kernel processes"); p->os = CreateEvent(NULL, FALSE, FALSE, NULL); - if(p->os == NULL){ - pfree(p); - print("can't allocate os event\n"); - return -1; - } + if(p->os == NULL) + panic("can't allocate os event"); if(flags & KPDUPPG) { pg = up->env->pgrp; @@ -173,12 +168,8 @@ kproc(char *name, void (*func)(void*), void *arg, int flags) unlock(&procs.l); p->pid = (int)CreateThread(0, 16384, tramp, p, 0, &h); - if(p->pid <= 0){ - pfree(p); - print("ran out of kernel processes\n"); - return -1; - } - return p->pid; + if(p->pid <= 0) + panic("ran out of kernel processes"); } #if(_WIN32_WINNT >= 0x0400) |
