diff --git a/src/kernel/interrupts/interrupts.c b/src/kernel/interrupts/interrupts.c index a1c03fe..5c20693 100644 --- a/src/kernel/interrupts/interrupts.c +++ b/src/kernel/interrupts/interrupts.c @@ -35,16 +35,13 @@ foreach (interruptSubscriptions[0], ServiceFunction *, provider, { Service *service = (Service *)currentSyscall->service; scheduleFunction( - provider, NULL, intNo, errorCode, eip, + provider, currentSyscall->respondingTo, intNo, errorCode, eip, U32(getPhysicalAddress( ((Service *)currentSyscall->service)->pagingInfo.pageDirectory, ebp)), service->nameHash, getServiceId(service)); }) ; - if (currentSyscall->respondingTo) { - listAdd(&callsToProcess, currentSyscall->respondingTo); - } free(currentSyscall); } diff --git a/src/kernel/interrupts/interrupts.c b/src/kernel/interrupts/interrupts.c index a1c03fe..5c20693 100644 --- a/src/kernel/interrupts/interrupts.c +++ b/src/kernel/interrupts/interrupts.c @@ -35,16 +35,13 @@ foreach (interruptSubscriptions[0], ServiceFunction *, provider, { Service *service = (Service *)currentSyscall->service; scheduleFunction( - provider, NULL, intNo, errorCode, eip, + provider, currentSyscall->respondingTo, intNo, errorCode, eip, U32(getPhysicalAddress( ((Service *)currentSyscall->service)->pagingInfo.pageDirectory, ebp)), service->nameHash, getServiceId(service)); }) ; - if (currentSyscall->respondingTo) { - listAdd(&callsToProcess, currentSyscall->respondingTo); - } free(currentSyscall); } diff --git a/src/userland/shell/main.c b/src/userland/shell/main.c index 0793cc4..baa99e7 100644 --- a/src/userland/shell/main.c +++ b/src/userland/shell/main.c @@ -8,9 +8,11 @@ bool printInput = true; void onNewLine() { - printf("\nInput: %s\n> ", inputBuffer); + printf("\n"); + loadFromInitrd(inputBuffer); inputBufferPosition = 0; inputBuffer[inputBufferPosition] = '\0'; + printf("\n> "); } void onKeyInput(uint32_t keycode, uint32_t stringId) {