diff options
author | Anton Blanchard <anton@samba.org> | 2005-07-07 20:56:15 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2005-07-07 21:23:37 -0400 |
commit | 79c2cc7b6d2cc31cff6a3d8e966a890f0a0d5f7a (patch) | |
tree | 8fba99fc6e39e35fd0416d0ce5d5593944241153 | |
parent | 4416f3968a23e25a257d679227a89710447760ab (diff) |
[PATCH] ppc64: add ioprio syscalls
- Clean up sys32_getpriority comment.
- Add ioprio syscalls, and sign extend 32bit versions.
Signed-off-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-rw-r--r-- | arch/ppc64/kernel/misc.S | 6 | ||||
-rw-r--r-- | arch/ppc64/kernel/sys_ppc32.c | 27 | ||||
-rw-r--r-- | include/asm-ppc64/unistd.h | 4 |
3 files changed, 25 insertions, 12 deletions
diff --git a/arch/ppc64/kernel/misc.S b/arch/ppc64/kernel/misc.S index f3dea0c5a88c..59f4f9973818 100644 --- a/arch/ppc64/kernel/misc.S +++ b/arch/ppc64/kernel/misc.S | |||
@@ -1124,9 +1124,11 @@ _GLOBAL(sys_call_table32) | |||
1124 | .llong .compat_sys_mq_getsetattr | 1124 | .llong .compat_sys_mq_getsetattr |
1125 | .llong .compat_sys_kexec_load | 1125 | .llong .compat_sys_kexec_load |
1126 | .llong .sys32_add_key | 1126 | .llong .sys32_add_key |
1127 | .llong .sys32_request_key | 1127 | .llong .sys32_request_key /* 270 */ |
1128 | .llong .compat_sys_keyctl | 1128 | .llong .compat_sys_keyctl |
1129 | .llong .compat_sys_waitid | 1129 | .llong .compat_sys_waitid |
1130 | .llong .sys32_ioprio_set | ||
1131 | .llong .sys32_ioprio_get | ||
1130 | 1132 | ||
1131 | .balign 8 | 1133 | .balign 8 |
1132 | _GLOBAL(sys_call_table) | 1134 | _GLOBAL(sys_call_table) |
@@ -1403,3 +1405,5 @@ _GLOBAL(sys_call_table) | |||
1403 | .llong .sys_request_key /* 270 */ | 1405 | .llong .sys_request_key /* 270 */ |
1404 | .llong .sys_keyctl | 1406 | .llong .sys_keyctl |
1405 | .llong .sys_waitid | 1407 | .llong .sys_waitid |
1408 | .llong .sys_ioprio_set | ||
1409 | .llong .sys_ioprio_get | ||
diff --git a/arch/ppc64/kernel/sys_ppc32.c b/arch/ppc64/kernel/sys_ppc32.c index 9bd16cef0ed4..206619080e66 100644 --- a/arch/ppc64/kernel/sys_ppc32.c +++ b/arch/ppc64/kernel/sys_ppc32.c | |||
@@ -822,16 +822,6 @@ asmlinkage long sys32_getpgid(u32 pid) | |||
822 | } | 822 | } |
823 | 823 | ||
824 | 824 | ||
825 | /* Note: it is necessary to treat which and who as unsigned ints, | ||
826 | * with the corresponding cast to a signed int to insure that the | ||
827 | * proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode) | ||
828 | * and the register representation of a signed int (msr in 64-bit mode) is performed. | ||
829 | */ | ||
830 | asmlinkage long sys32_getpriority(u32 which, u32 who) | ||
831 | { | ||
832 | return sys_getpriority((int)which, (int)who); | ||
833 | } | ||
834 | |||
835 | 825 | ||
836 | /* Note: it is necessary to treat pid as an unsigned int, | 826 | /* Note: it is necessary to treat pid as an unsigned int, |
837 | * with the corresponding cast to a signed int to insure that the | 827 | * with the corresponding cast to a signed int to insure that the |
@@ -1023,6 +1013,11 @@ asmlinkage long sys32_setpgid(u32 pid, u32 pgid) | |||
1023 | return sys_setpgid((int)pid, (int)pgid); | 1013 | return sys_setpgid((int)pid, (int)pgid); |
1024 | } | 1014 | } |
1025 | 1015 | ||
1016 | long sys32_getpriority(u32 which, u32 who) | ||
1017 | { | ||
1018 | /* sign extend which and who */ | ||
1019 | return sys_getpriority((int)which, (int)who); | ||
1020 | } | ||
1026 | 1021 | ||
1027 | long sys32_setpriority(u32 which, u32 who, u32 niceval) | 1022 | long sys32_setpriority(u32 which, u32 who, u32 niceval) |
1028 | { | 1023 | { |
@@ -1030,6 +1025,18 @@ long sys32_setpriority(u32 which, u32 who, u32 niceval) | |||
1030 | return sys_setpriority((int)which, (int)who, (int)niceval); | 1025 | return sys_setpriority((int)which, (int)who, (int)niceval); |
1031 | } | 1026 | } |
1032 | 1027 | ||
1028 | long sys32_ioprio_get(u32 which, u32 who) | ||
1029 | { | ||
1030 | /* sign extend which and who */ | ||
1031 | return sys_ioprio_get((int)which, (int)who); | ||
1032 | } | ||
1033 | |||
1034 | long sys32_ioprio_set(u32 which, u32 who, u32 ioprio) | ||
1035 | { | ||
1036 | /* sign extend which, who and ioprio */ | ||
1037 | return sys_ioprio_set((int)which, (int)who, (int)ioprio); | ||
1038 | } | ||
1039 | |||
1033 | /* Note: it is necessary to treat newmask as an unsigned int, | 1040 | /* Note: it is necessary to treat newmask as an unsigned int, |
1034 | * with the corresponding cast to a signed int to insure that the | 1041 | * with the corresponding cast to a signed int to insure that the |
1035 | * proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode) | 1042 | * proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode) |
diff --git a/include/asm-ppc64/unistd.h b/include/asm-ppc64/unistd.h index 605d91e011ec..53fc662d8009 100644 --- a/include/asm-ppc64/unistd.h +++ b/include/asm-ppc64/unistd.h | |||
@@ -283,8 +283,10 @@ | |||
283 | #define __NR_request_key 270 | 283 | #define __NR_request_key 270 |
284 | #define __NR_keyctl 271 | 284 | #define __NR_keyctl 271 |
285 | #define __NR_waitid 272 | 285 | #define __NR_waitid 272 |
286 | #define __NR_ioprio_set 273 | ||
287 | #define __NR_ioprio_get 274 | ||
286 | 288 | ||
287 | #define __NR_syscalls 273 | 289 | #define __NR_syscalls 275 |
288 | #ifdef __KERNEL__ | 290 | #ifdef __KERNEL__ |
289 | #define NR_syscalls __NR_syscalls | 291 | #define NR_syscalls __NR_syscalls |
290 | #endif | 292 | #endif |