diff options
| author | Andreas Schwab <schwab@suse.de> | 2006-04-27 09:46:42 -0400 |
|---|---|---|
| committer | Paul Mackerras <paulus@samba.org> | 2006-04-28 07:04:59 -0400 |
| commit | 2833c28aa0d0326780acfa61149a2a02dcb2c9b4 (patch) | |
| tree | d72d4efadf63dea4bdcbc100e8bfad9192f415a7 | |
| parent | 30aacebed0f0619f23ce84df7c59ad033ca08d77 (diff) | |
[PATCH] powerpc: Wire up *at syscalls
Wire up *at syscalls.
This patch has been tested on ppc64 (using glibc's testsuite, both 32bit
and 64bit), and compile-tested for ppc32 (I have currently no ppc32 system
available, but I expect no problems).
Signed-off-by: Andreas Schwab <schwab@suse.de>
Signed-off-by: Paul Mackerras <paulus@samba.org>
| -rw-r--r-- | arch/powerpc/kernel/systbl.S | 13 | ||||
| -rw-r--r-- | arch/powerpc/platforms/cell/spu_callbacks.c | 13 | ||||
| -rw-r--r-- | fs/stat.c | 2 | ||||
| -rw-r--r-- | include/asm-powerpc/unistd.h | 20 |
4 files changed, 46 insertions, 2 deletions
diff --git a/arch/powerpc/kernel/systbl.S b/arch/powerpc/kernel/systbl.S index 0b98eea73c5e..cf56a1d499ff 100644 --- a/arch/powerpc/kernel/systbl.S +++ b/arch/powerpc/kernel/systbl.S | |||
| @@ -325,6 +325,19 @@ SYSCALL(unshare) | |||
| 325 | SYSCALL(splice) | 325 | SYSCALL(splice) |
| 326 | SYSCALL(tee) | 326 | SYSCALL(tee) |
| 327 | SYSCALL(vmsplice) | 327 | SYSCALL(vmsplice) |
| 328 | COMPAT_SYS(openat) | ||
| 329 | SYSCALL(mkdirat) | ||
| 330 | SYSCALL(mknodat) | ||
| 331 | SYSCALL(fchownat) | ||
| 332 | COMPAT_SYS(futimesat) | ||
| 333 | SYSX(sys_newfstatat, sys_fstatat64, sys_fstatat64) | ||
| 334 | SYSCALL(unlinkat) | ||
| 335 | SYSCALL(renameat) | ||
| 336 | SYSCALL(linkat) | ||
| 337 | SYSCALL(symlinkat) | ||
| 338 | SYSCALL(readlinkat) | ||
| 339 | SYSCALL(fchmodat) | ||
| 340 | SYSCALL(faccessat) | ||
| 328 | 341 | ||
| 329 | /* | 342 | /* |
| 330 | * please add new calls to arch/powerpc/platforms/cell/spu_callbacks.c | 343 | * please add new calls to arch/powerpc/platforms/cell/spu_callbacks.c |
diff --git a/arch/powerpc/platforms/cell/spu_callbacks.c b/arch/powerpc/platforms/cell/spu_callbacks.c index b283380a2a18..95b36430aa0f 100644 --- a/arch/powerpc/platforms/cell/spu_callbacks.c +++ b/arch/powerpc/platforms/cell/spu_callbacks.c | |||
| @@ -319,6 +319,19 @@ void *spu_syscall_table[] = { | |||
| 319 | [__NR_splice] sys_splice, | 319 | [__NR_splice] sys_splice, |
| 320 | [__NR_tee] sys_tee, | 320 | [__NR_tee] sys_tee, |
| 321 | [__NR_vmsplice] sys_vmsplice, | 321 | [__NR_vmsplice] sys_vmsplice, |
| 322 | [__NR_openat] sys_openat, | ||
| 323 | [__NR_mkdirat] sys_mkdirat, | ||
| 324 | [__NR_mknodat] sys_mknodat, | ||
| 325 | [__NR_fchownat] sys_fchownat, | ||
| 326 | [__NR_futimesat] sys_futimesat, | ||
| 327 | [__NR_newfstatat] sys_newfstatat, | ||
| 328 | [__NR_unlinkat] sys_unlinkat, | ||
| 329 | [__NR_renameat] sys_renameat, | ||
| 330 | [__NR_linkat] sys_linkat, | ||
| 331 | [__NR_symlinkat] sys_symlinkat, | ||
| 332 | [__NR_readlinkat] sys_readlinkat, | ||
| 333 | [__NR_fchmodat] sys_fchmodat, | ||
| 334 | [__NR_faccessat] sys_faccessat, | ||
| 322 | }; | 335 | }; |
| 323 | 336 | ||
| 324 | long spu_sys_callback(struct spu_syscall_block *s) | 337 | long spu_sys_callback(struct spu_syscall_block *s) |
| @@ -261,7 +261,7 @@ asmlinkage long sys_newlstat(char __user *filename, struct stat __user *statbuf) | |||
| 261 | return error; | 261 | return error; |
| 262 | } | 262 | } |
| 263 | 263 | ||
| 264 | #ifndef __ARCH_WANT_STAT64 | 264 | #if !defined(__ARCH_WANT_STAT64) || defined(__ARCH_WANT_SYS_NEWFSTATAT) |
| 265 | asmlinkage long sys_newfstatat(int dfd, char __user *filename, | 265 | asmlinkage long sys_newfstatat(int dfd, char __user *filename, |
| 266 | struct stat __user *statbuf, int flag) | 266 | struct stat __user *statbuf, int flag) |
| 267 | { | 267 | { |
diff --git a/include/asm-powerpc/unistd.h b/include/asm-powerpc/unistd.h index 34325e292596..908acb44cb8a 100644 --- a/include/asm-powerpc/unistd.h +++ b/include/asm-powerpc/unistd.h | |||
| @@ -304,8 +304,25 @@ | |||
| 304 | #define __NR_splice 283 | 304 | #define __NR_splice 283 |
| 305 | #define __NR_tee 284 | 305 | #define __NR_tee 284 |
| 306 | #define __NR_vmsplice 285 | 306 | #define __NR_vmsplice 285 |
| 307 | #define __NR_openat 286 | ||
| 308 | #define __NR_mkdirat 287 | ||
| 309 | #define __NR_mknodat 288 | ||
| 310 | #define __NR_fchownat 289 | ||
| 311 | #define __NR_futimesat 290 | ||
| 312 | #ifdef __powerpc64__ | ||
| 313 | #define __NR_newfstatat 291 | ||
| 314 | #else | ||
| 315 | #define __NR_fstatat64 291 | ||
| 316 | #endif | ||
| 317 | #define __NR_unlinkat 292 | ||
| 318 | #define __NR_renameat 293 | ||
| 319 | #define __NR_linkat 294 | ||
| 320 | #define __NR_symlinkat 295 | ||
| 321 | #define __NR_readlinkat 296 | ||
| 322 | #define __NR_fchmodat 297 | ||
| 323 | #define __NR_faccessat 298 | ||
| 307 | 324 | ||
| 308 | #define __NR_syscalls 286 | 325 | #define __NR_syscalls 299 |
| 309 | 326 | ||
| 310 | #ifdef __KERNEL__ | 327 | #ifdef __KERNEL__ |
| 311 | #define __NR__exit __NR_exit | 328 | #define __NR__exit __NR_exit |
| @@ -458,6 +475,7 @@ type name(type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5, type6 arg6 | |||
| 458 | #ifdef CONFIG_PPC64 | 475 | #ifdef CONFIG_PPC64 |
| 459 | #define __ARCH_WANT_COMPAT_SYS_TIME | 476 | #define __ARCH_WANT_COMPAT_SYS_TIME |
| 460 | #define __ARCH_WANT_COMPAT_SYS_RT_SIGSUSPEND | 477 | #define __ARCH_WANT_COMPAT_SYS_RT_SIGSUSPEND |
| 478 | #define __ARCH_WANT_SYS_NEWFSTATAT | ||
| 461 | #endif | 479 | #endif |
| 462 | 480 | ||
| 463 | /* | 481 | /* |
