|
|
@@ -46,29 +46,3 @@ asmlinkage void syscall_print(void *dummy,...)
|
|
|
((regs->pc)&0xffffff)-2,regs->orig_er0,regs->er1,regs->er2,regs->er3,regs->er0);
|
|
|
}
|
|
|
#endif
|
|
|
-
|
|
|
-/*
|
|
|
- * Do a system call from kernel instead of calling sys_execve so we
|
|
|
- * end up with proper pt_regs.
|
|
|
- */
|
|
|
-asmlinkage
|
|
|
-int kernel_execve(const char *filename,
|
|
|
- const char *const argv[],
|
|
|
- const char *const envp[])
|
|
|
-{
|
|
|
- register long res __asm__("er0");
|
|
|
- register const char *const *_c __asm__("er3") = envp;
|
|
|
- register const char *const *_b __asm__("er2") = argv;
|
|
|
- register const char * _a __asm__("er1") = filename;
|
|
|
- __asm__ __volatile__ ("mov.l %1,er0\n\t"
|
|
|
- "trapa #0\n\t"
|
|
|
- : "=r" (res)
|
|
|
- : "g" (__NR_execve),
|
|
|
- "g" (_a),
|
|
|
- "g" (_b),
|
|
|
- "g" (_c)
|
|
|
- : "cc", "memory");
|
|
|
- return res;
|
|
|
-}
|
|
|
-
|
|
|
-
|