blob: 5356810bd7e758369fda84af123c28d9c15d7486 [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
Christoph Hellwigbaed7fc2010-03-10 15:21:18 -080041#ifdef __32bit_syscall_numbers__
42#define __ARCH_WANT_SYS_IPC
43#else
Stephen Rothwell9acee192008-11-26 00:51:32 -080044#define __ARCH_WANT_COMPAT_SYS_TIME
Catalin Marinas8f9c0112012-09-19 12:01:52 +010045#define __ARCH_WANT_COMPAT_SYS_SENDFILE
Stephen Rothwell9acee192008-11-26 00:51:32 -080046#endif
47
48/*
49 * "Conditional" syscalls
50 *
51 * What we want is __attribute__((weak,alias("sys_ni_syscall"))),
52 * but it doesn't work on all toolchains, so we just do it by hand
53 */
54#define cond_syscall(x) asm(".weak\t" #x "\n\t.set\t" #x ",sys_ni_syscall")
55
Stephen Rothwell9acee192008-11-26 00:51:32 -080056#endif /* _SPARC_UNISTD_H */