1 /* 2 * sys_parisc32.c: Conversion between 32bit and 64bit native syscalls. 3 * 4 * Copyright (C) 2000-2001 Hewlett Packard Company 5 * Copyright (C) 2000 John Marvin 6 * Copyright (C) 2001 Matthew Wilcox 7 * Copyright (C) 2014 Helge Deller <[email protected]> 8 * 9 * These routines maintain argument size conversion between 32bit and 64bit 10 * environment. Based heavily on sys_ia32.c and sys_sparc32.c. 11 */ 12 13 #include <linux/compat.h> 14 #include <linux/kernel.h> 15 #include <linux/sched.h> 16 #include <linux/fs.h> 17 #include <linux/mm.h> 18 #include <linux/file.h> 19 #include <linux/signal.h> 20 #include <linux/resource.h> 21 #include <linux/times.h> 22 #include <linux/time.h> 23 #include <linux/smp.h> 24 #include <linux/sem.h> 25 #include <linux/shm.h> 26 #include <linux/slab.h> 27 #include <linux/uio.h> 28 #include <linux/ncp_fs.h> 29 #include <linux/poll.h> 30 #include <linux/personality.h> 31 #include <linux/stat.h> 32 #include <linux/highmem.h> 33 #include <linux/highuid.h> 34 #include <linux/mman.h> 35 #include <linux/binfmts.h> 36 #include <linux/namei.h> 37 #include <linux/vfs.h> 38 #include <linux/ptrace.h> 39 #include <linux/swap.h> 40 #include <linux/syscalls.h> 41 42 #include <asm/types.h> 43 #include <asm/uaccess.h> 44 #include <asm/mmu_context.h> 45 46 #undef DEBUG 47 48 #ifdef DEBUG 49 #define DBG(x) printk x 50 #else 51 #define DBG(x) 52 #endif 53 54 asmlinkage long sys32_unimplemented(int r26, int r25, int r24, int r23, 55 int r22, int r21, int r20) 56 { 57 printk(KERN_ERR "%s(%d): Unimplemented 32 on 64 syscall #%d!\n", 58 current->comm, current->pid, r20); 59 return -ENOSYS; 60 } 61 62 asmlinkage long sys32_fanotify_mark(compat_int_t fanotify_fd, compat_uint_t flags, 63 compat_uint_t mask0, compat_uint_t mask1, compat_int_t dfd, 64 const char __user * pathname) 65 { 66 return sys_fanotify_mark(fanotify_fd, flags, 67 ((__u64)mask1 << 32) | mask0, 68 dfd, pathname); 69 } 70