11da177e4SLinus Torvalds /* 21da177e4SLinus Torvalds * sys_parisc32.c: Conversion between 32bit and 64bit native syscalls. 31da177e4SLinus Torvalds * 41da177e4SLinus Torvalds * Copyright (C) 2000-2001 Hewlett Packard Company 51da177e4SLinus Torvalds * Copyright (C) 2000 John Marvin 61da177e4SLinus Torvalds * Copyright (C) 2001 Matthew Wilcox 7*ab8a261bSHelge Deller * Copyright (C) 2014 Helge Deller <deller@gmx.de> 81da177e4SLinus Torvalds * 91da177e4SLinus Torvalds * These routines maintain argument size conversion between 32bit and 64bit 101da177e4SLinus Torvalds * environment. Based heavily on sys_ia32.c and sys_sparc32.c. 111da177e4SLinus Torvalds */ 121da177e4SLinus Torvalds 131da177e4SLinus Torvalds #include <linux/compat.h> 141da177e4SLinus Torvalds #include <linux/kernel.h> 151da177e4SLinus Torvalds #include <linux/sched.h> 161da177e4SLinus Torvalds #include <linux/fs.h> 171da177e4SLinus Torvalds #include <linux/mm.h> 181da177e4SLinus Torvalds #include <linux/file.h> 191da177e4SLinus Torvalds #include <linux/signal.h> 201da177e4SLinus Torvalds #include <linux/resource.h> 211da177e4SLinus Torvalds #include <linux/times.h> 221da177e4SLinus Torvalds #include <linux/time.h> 231da177e4SLinus Torvalds #include <linux/smp.h> 241da177e4SLinus Torvalds #include <linux/sem.h> 251da177e4SLinus Torvalds #include <linux/shm.h> 261da177e4SLinus Torvalds #include <linux/slab.h> 271da177e4SLinus Torvalds #include <linux/uio.h> 281da177e4SLinus Torvalds #include <linux/ncp_fs.h> 291da177e4SLinus Torvalds #include <linux/poll.h> 301da177e4SLinus Torvalds #include <linux/personality.h> 311da177e4SLinus Torvalds #include <linux/stat.h> 321da177e4SLinus Torvalds #include <linux/highmem.h> 331da177e4SLinus Torvalds #include <linux/highuid.h> 341da177e4SLinus Torvalds #include <linux/mman.h> 351da177e4SLinus Torvalds #include <linux/binfmts.h> 361da177e4SLinus Torvalds #include <linux/namei.h> 371da177e4SLinus Torvalds #include <linux/vfs.h> 381da177e4SLinus Torvalds #include <linux/ptrace.h> 391da177e4SLinus Torvalds #include <linux/swap.h> 401da177e4SLinus Torvalds #include <linux/syscalls.h> 411da177e4SLinus Torvalds 421da177e4SLinus Torvalds #include <asm/types.h> 431da177e4SLinus Torvalds #include <asm/uaccess.h> 441da177e4SLinus Torvalds #include <asm/mmu_context.h> 451da177e4SLinus Torvalds 461da177e4SLinus Torvalds #undef DEBUG 471da177e4SLinus Torvalds 481da177e4SLinus Torvalds #ifdef DEBUG 491da177e4SLinus Torvalds #define DBG(x) printk x 501da177e4SLinus Torvalds #else 511da177e4SLinus Torvalds #define DBG(x) 521da177e4SLinus Torvalds #endif 531da177e4SLinus Torvalds 541da177e4SLinus Torvalds asmlinkage long sys32_unimplemented(int r26, int r25, int r24, int r23, 551da177e4SLinus Torvalds int r22, int r21, int r20) 561da177e4SLinus Torvalds { 571da177e4SLinus Torvalds printk(KERN_ERR "%s(%d): Unimplemented 32 on 64 syscall #%d!\n", 581da177e4SLinus Torvalds current->comm, current->pid, r20); 591da177e4SLinus Torvalds return -ENOSYS; 601da177e4SLinus Torvalds } 61*ab8a261bSHelge Deller 62*ab8a261bSHelge Deller asmlinkage long sys32_fanotify_mark(compat_int_t fanotify_fd, compat_uint_t flags, 63*ab8a261bSHelge Deller compat_uint_t mask0, compat_uint_t mask1, compat_int_t dfd, 64*ab8a261bSHelge Deller const char __user * pathname) 65*ab8a261bSHelge Deller { 66*ab8a261bSHelge Deller return sys_fanotify_mark(fanotify_fd, flags, 67*ab8a261bSHelge Deller ((__u64)mask1 << 32) | mask0, 68*ab8a261bSHelge Deller dfd, pathname); 69*ab8a261bSHelge Deller } 70