1/* 2 * Copyright (C) 2004-2006 Atmel Corporation 3 * 4 * This program is free software; you can redistribute it and/or modify 5 * it under the terms of the GNU General Public License version 2 as 6 * published by the Free Software Foundation. 7 */ 8#include <linux/unistd.h> 9 10int kernel_execve(const char *file, 11 const char *const *argv, 12 const char *const *envp) 13{ 14 register long scno asm("r8") = __NR_execve; 15 register long sc1 asm("r12") = (long)file; 16 register long sc2 asm("r11") = (long)argv; 17 register long sc3 asm("r10") = (long)envp; 18 19 asm volatile("scall" 20 : "=r"(sc1) 21 : "r"(scno), "0"(sc1), "r"(sc2), "r"(sc3) 22 : "cc", "memory"); 23 return sc1; 24} 25