mirror of
https://github.com/torvalds/linux.git
synced 2024-12-22 10:56:40 +00:00
529d235a0e
We currently have a "special" syscall for switching endianness. This is syscall number 0x1ebe, which is handled explicitly in the 64-bit syscall exception entry. That has a few problems, firstly the syscall number is outside of the usual range, which confuses various tools. For example strace doesn't recognise the syscall at all. Secondly it's handled explicitly as a special case in the syscall exception entry, which is complicated enough without it. As a first step toward removing the special syscall, we need to add a regular syscall that implements the same functionality. The logic is simple, it simply toggles the MSR_LE bit in the userspace MSR. This is the same as the special syscall, with the caveat that the special syscall clobbers fewer registers. This version clobbers r9-r12, XER, CTR, and CR0-1,5-7. Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
60 lines
1.6 KiB
C
60 lines
1.6 KiB
C
/*
|
|
* This file contains the system call numbers.
|
|
*
|
|
* This program is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU General Public License
|
|
* as published by the Free Software Foundation; either version
|
|
* 2 of the License, or (at your option) any later version.
|
|
*/
|
|
#ifndef _ASM_POWERPC_UNISTD_H_
|
|
#define _ASM_POWERPC_UNISTD_H_
|
|
|
|
#include <uapi/asm/unistd.h>
|
|
|
|
|
|
#define __NR_syscalls 364
|
|
|
|
#define __NR__exit __NR_exit
|
|
#define NR_syscalls __NR_syscalls
|
|
|
|
#ifndef __ASSEMBLY__
|
|
|
|
#include <linux/types.h>
|
|
#include <linux/compiler.h>
|
|
#include <linux/linkage.h>
|
|
|
|
#define __ARCH_WANT_OLD_READDIR
|
|
#define __ARCH_WANT_STAT64
|
|
#define __ARCH_WANT_SYS_ALARM
|
|
#define __ARCH_WANT_SYS_GETHOSTNAME
|
|
#define __ARCH_WANT_SYS_IPC
|
|
#define __ARCH_WANT_SYS_PAUSE
|
|
#define __ARCH_WANT_SYS_SIGNAL
|
|
#define __ARCH_WANT_SYS_TIME
|
|
#define __ARCH_WANT_SYS_UTIME
|
|
#define __ARCH_WANT_SYS_WAITPID
|
|
#define __ARCH_WANT_SYS_SOCKETCALL
|
|
#define __ARCH_WANT_SYS_FADVISE64
|
|
#define __ARCH_WANT_SYS_GETPGRP
|
|
#define __ARCH_WANT_SYS_LLSEEK
|
|
#define __ARCH_WANT_SYS_NICE
|
|
#define __ARCH_WANT_SYS_OLD_GETRLIMIT
|
|
#define __ARCH_WANT_SYS_OLD_UNAME
|
|
#define __ARCH_WANT_SYS_OLDUMOUNT
|
|
#define __ARCH_WANT_SYS_SIGPENDING
|
|
#define __ARCH_WANT_SYS_SIGPROCMASK
|
|
#ifdef CONFIG_PPC32
|
|
#define __ARCH_WANT_OLD_STAT
|
|
#endif
|
|
#ifdef CONFIG_PPC64
|
|
#define __ARCH_WANT_COMPAT_SYS_TIME
|
|
#define __ARCH_WANT_SYS_NEWFSTATAT
|
|
#define __ARCH_WANT_COMPAT_SYS_SENDFILE
|
|
#endif
|
|
#define __ARCH_WANT_SYS_FORK
|
|
#define __ARCH_WANT_SYS_VFORK
|
|
#define __ARCH_WANT_SYS_CLONE
|
|
|
|
#endif /* __ASSEMBLY__ */
|
|
#endif /* _ASM_POWERPC_UNISTD_H_ */
|