|
@@ -1404,3 +1404,52 @@ SYSCALL_DEFINE3(osf_writev, unsigned long, fd,
|
|
|
}
|
|
|
|
|
|
#endif
|
|
|
+
|
|
|
+SYSCALL_DEFINE2(osf_getpriority, int, which, int, who)
|
|
|
+{
|
|
|
+ int prio = sys_getpriority(which, who);
|
|
|
+ if (prio >= 0) {
|
|
|
+ /* Return value is the unbiased priority, i.e. 20 - prio.
|
|
|
+ This does result in negative return values, so signal
|
|
|
+ no error */
|
|
|
+ force_successful_syscall_return();
|
|
|
+ prio = 20 - prio;
|
|
|
+ }
|
|
|
+ return prio;
|
|
|
+}
|
|
|
+
|
|
|
+SYSCALL_DEFINE0(getxuid)
|
|
|
+{
|
|
|
+ current_pt_regs()->r20 = sys_geteuid();
|
|
|
+ return sys_getuid();
|
|
|
+}
|
|
|
+
|
|
|
+SYSCALL_DEFINE0(getxgid)
|
|
|
+{
|
|
|
+ current_pt_regs()->r20 = sys_getegid();
|
|
|
+ return sys_getgid();
|
|
|
+}
|
|
|
+
|
|
|
+SYSCALL_DEFINE0(getxpid)
|
|
|
+{
|
|
|
+ current_pt_regs()->r20 = sys_getppid();
|
|
|
+ return sys_getpid();
|
|
|
+}
|
|
|
+
|
|
|
+SYSCALL_DEFINE0(alpha_pipe)
|
|
|
+{
|
|
|
+ int fd[2];
|
|
|
+ int res = do_pipe_flags(fd, 0);
|
|
|
+ if (!res) {
|
|
|
+ /* The return values are in $0 and $20. */
|
|
|
+ current_pt_regs()->r20 = fd[1];
|
|
|
+ res = fd[0];
|
|
|
+ }
|
|
|
+ return res;
|
|
|
+}
|
|
|
+
|
|
|
+SYSCALL_DEFINE1(sethae, unsigned long, val)
|
|
|
+{
|
|
|
+ current_pt_regs()->hae = val;
|
|
|
+ return 0;
|
|
|
+}
|