]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - arch/avr32/kernel/sys_avr32.c
block: extend queue_flag bitops
[linux-2.6-omap-h63xx.git] / arch / avr32 / kernel / sys_avr32.c
index 6ec5693da4488ce938d5c507848d4b81793caa3f..8e8911e55c8f27a9a55acfa7025b1d6322aba6b1 100644 (file)
 #include <asm/mman.h>
 #include <asm/uaccess.h>
 
-asmlinkage int sys_pipe(unsigned long __user *filedes)
-{
-       int fd[2];
-       int error;
-
-       error = do_pipe(fd);
-       if (!error) {
-               if (copy_to_user(filedes, fd, sizeof(fd)))
-                       error = -EFAULT;
-       }
-       return error;
-}
-
 asmlinkage long sys_mmap2(unsigned long addr, unsigned long len,
                          unsigned long prot, unsigned long flags,
                          unsigned long fd, off_t offset)
@@ -49,3 +36,17 @@ asmlinkage long sys_mmap2(unsigned long addr, unsigned long len,
                fput(file);
        return error;
 }
+
+int kernel_execve(const char *file, char **argv, char **envp)
+{
+       register long scno asm("r8") = __NR_execve;
+       register long sc1 asm("r12") = (long)file;
+       register long sc2 asm("r11") = (long)argv;
+       register long sc3 asm("r10") = (long)envp;
+
+       asm volatile("scall"
+                    : "=r"(sc1)
+                    : "r"(scno), "0"(sc1), "r"(sc2), "r"(sc3)
+                    : "cc", "memory");
+       return sc1;
+}