diff --git a/src/userland/hlib/main.c b/src/userland/hlib/main.c index e30d166..d47964b 100644 --- a/src/userland/hlib/main.c +++ b/src/userland/hlib/main.c @@ -24,7 +24,12 @@ uint32_t loadFromInitrd(char *name) { uintptr_t id = insertString(name); - return syscall(SYS_LOAD_INITRD, id, 1, 0, 0); + uint32_t service = syscall(SYS_GET_SERVICE, id, 0, 0, 0); + if (!service) { + return syscall(SYS_LOAD_INITRD, id, 1, 0, 0); + } + request(service, 0, 0, 0); + return service; } uint32_t loadFromInitrdUninitialized(char *name) {