11da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/*
21da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * sys_parisc32.c: Conversion between 32bit and 64bit native syscalls.
31da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds *
41da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Copyright (C) 2000-2001 Hewlett Packard Company
51da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Copyright (C) 2000 John Marvin
61da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Copyright (C) 2001 Matthew Wilcox
7ab8a261ba5e2dd9206da640de5870cc31d568a7cHelge Deller * Copyright (C) 2014 Helge Deller <deller@gmx.de>
81da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds *
91da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * These routines maintain argument size conversion between 32bit and 64bit
101da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * environment. Based heavily on sys_ia32.c and sys_sparc32.c.
111da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds */
121da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
131da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#include <linux/compat.h>
141da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#include <linux/kernel.h>
151da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#include <linux/syscalls.h>
161da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
171da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
181da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsasmlinkage long sys32_unimplemented(int r26, int r25, int r24, int r23,
191da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	int r22, int r21, int r20)
201da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{
211da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    printk(KERN_ERR "%s(%d): Unimplemented 32 on 64 syscall #%d!\n",
221da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    	current->comm, current->pid, r20);
231da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    return -ENOSYS;
241da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds}
25ab8a261ba5e2dd9206da640de5870cc31d568a7cHelge Deller
26ab8a261ba5e2dd9206da640de5870cc31d568a7cHelge Dellerasmlinkage long sys32_fanotify_mark(compat_int_t fanotify_fd, compat_uint_t flags,
27ab8a261ba5e2dd9206da640de5870cc31d568a7cHelge Deller	compat_uint_t mask0, compat_uint_t mask1, compat_int_t dfd,
28ab8a261ba5e2dd9206da640de5870cc31d568a7cHelge Deller	const char  __user * pathname)
29ab8a261ba5e2dd9206da640de5870cc31d568a7cHelge Deller{
30ab8a261ba5e2dd9206da640de5870cc31d568a7cHelge Deller	return sys_fanotify_mark(fanotify_fd, flags,
31ab8a261ba5e2dd9206da640de5870cc31d568a7cHelge Deller			((__u64)mask1 << 32) | mask0,
32ab8a261ba5e2dd9206da640de5870cc31d568a7cHelge Deller			 dfd, pathname);
33ab8a261ba5e2dd9206da640de5870cc31d568a7cHelge Deller}
34