blob: 0ecea6ed943e3a5b525e90711ef80a5cdbc16f57 [file] [log] [blame]
Stephen Rothwell9acee192008-11-26 00:51:32 -08001/*
2 * System calls under the Sparc.
3 *
4 * Don't be scared by the ugly clobbers, it is the only way I can
5 * think of right now to force the arguments into fixed registers
6 * before the trap into the system call with gcc 'asm' statements.
7 *
8 * Copyright (C) 1995, 2007 David S. Miller (davem@davemloft.net)
9 *
10 * SunOS compatibility based upon preliminary work which is:
11 *
12 * Copyright (C) 1995 Adrian M. Rodriguez (adrian@remus.rutgers.edu)
13 */
David Howells54579822012-10-09 09:47:43 +010014#ifndef _SPARC_UNISTD_H
15#define _SPARC_UNISTD_H
Stephen Rothwell9acee192008-11-26 00:51:32 -080016
David Howells54579822012-10-09 09:47:43 +010017#include <uapi/asm/unistd.h>
18
Stephen Rothwell9acee192008-11-26 00:51:32 -080019#ifdef __32bit_syscall_numbers__
Sam Ravnborga439fe52008-07-27 23:00:59 +020020#else
Stephen Rothwell9acee192008-11-26 00:51:32 -080021#define __NR_time 231 /* Linux sparc32 */
Sam Ravnborga439fe52008-07-27 23:00:59 +020022#endif
Stephen Rothwell9acee192008-11-26 00:51:32 -080023#define __ARCH_WANT_OLD_READDIR
24#define __ARCH_WANT_STAT64
25#define __ARCH_WANT_SYS_ALARM
26#define __ARCH_WANT_SYS_GETHOSTNAME
27#define __ARCH_WANT_SYS_PAUSE
28#define __ARCH_WANT_SYS_SGETMASK
29#define __ARCH_WANT_SYS_SIGNAL
30#define __ARCH_WANT_SYS_TIME
31#define __ARCH_WANT_SYS_UTIME
32#define __ARCH_WANT_SYS_WAITPID
33#define __ARCH_WANT_SYS_SOCKETCALL
34#define __ARCH_WANT_SYS_FADVISE64
35#define __ARCH_WANT_SYS_GETPGRP
36#define __ARCH_WANT_SYS_LLSEEK
37#define __ARCH_WANT_SYS_NICE
38#define __ARCH_WANT_SYS_OLDUMOUNT
39#define __ARCH_WANT_SYS_SIGPENDING
40#define __ARCH_WANT_SYS_SIGPROCMASK
41#define __ARCH_WANT_SYS_RT_SIGSUSPEND
Christoph Hellwigbaed7fc2010-03-10 15:21:18 -080042#ifdef __32bit_syscall_numbers__
43#define __ARCH_WANT_SYS_IPC
44#else
Stephen Rothwell9acee192008-11-26 00:51:32 -080045#define __ARCH_WANT_COMPAT_SYS_TIME
46#define __ARCH_WANT_COMPAT_SYS_RT_SIGSUSPEND
Catalin Marinas8f9c0112012-09-19 12:01:52 +010047#define __ARCH_WANT_COMPAT_SYS_SENDFILE
Stephen Rothwell9acee192008-11-26 00:51:32 -080048#endif
49
50/*
51 * "Conditional" syscalls
52 *
53 * What we want is __attribute__((weak,alias("sys_ni_syscall"))),
54 * but it doesn't work on all toolchains, so we just do it by hand
55 */
56#define cond_syscall(x) asm(".weak\t" #x "\n\t.set\t" #x ",sys_ni_syscall")
57
Stephen Rothwell9acee192008-11-26 00:51:32 -080058#endif /* _SPARC_UNISTD_H */