Changes to make sure after a fork a child process can safely return.

This copies the parent kernel stack to child only for the part where
the previous context is saved. Then the child registers are modified
so that it would begin execution from returning of the system call.
This commit is contained in:
Bahadir Balban
2008-08-21 16:21:08 +03:00
parent dada3e0b2c
commit 3ce220f062
7 changed files with 84 additions and 21 deletions

View File

@@ -58,7 +58,7 @@ void syscall_init()
}
/* Checks a syscall is legitimate and dispatches to appropriate handler. */
int syscall(struct syscall_args *regs, unsigned long swi_addr)
int syscall(syscall_context_t *regs, unsigned long swi_addr)
{
/* Check if genuine system call, coming from the syscall page */
if ((swi_addr & ARM_SYSCALL_PAGE) == ARM_SYSCALL_PAGE) {