[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [patch] implement alpha getxuid and getxgid syscalls
From: |
Aurelien Jarno |
Subject: |
Re: [Qemu-devel] [patch] implement alpha getxuid and getxgid syscalls |
Date: |
Fri, 14 Nov 2008 18:21:48 +0100 |
User-agent: |
Mutt/1.5.18 (2008-05-17) |
On Wed, Nov 12, 2008 at 04:39:14PM -0500, Vince Weaver wrote:
> Hello
>
> this patch implemented the setxuid and setxgid syscalls for Alpha.
> These syscalls return two values, both uid/euid and gid/egid.
> In addition to returning the first value in $v0, the additional
> value is returned in the $a4 register.
>
> The syscalls are used instead of the separate syscalls for those values
> used on other architectures (this is probably because Alpha Linux started
> out syscall compatible with DEC/OSF/Tru64).
>
> With this patch, the perlbmk benchmarks from Spec2000 run properly.
Applied, thanks.
> Vince
>
> Index: linux-user/syscall.c
> ===================================================================
> --- linux-user/syscall.c (revision 5663)
> +++ linux-user/syscall.c (working copy)
> @@ -5529,6 +5529,30 @@
> ret = get_errno(getuid());
> break;
> #endif
> +
> +#if defined(TARGET_NR_getxuid) && defined(TARGET_ALPHA)
> + /* Alpha specific */
> + case TARGET_NR_getxuid:
> + {
> + uid_t euid;
> + euid=geteuid();
> + ((CPUAlphaState *)cpu_env)->ir[IR_A4]=euid;
> + }
> + ret = get_errno(getuid());
> + break;
> +#endif
> +#if defined(TARGET_NR_getxgid) && defined(TARGET_ALPHA)
> + /* Alpha specific */
> + case TARGET_NR_getxgid:
> + {
> + uid_t egid;
> + egid=getegid();
> + ((CPUAlphaState *)cpu_env)->ir[IR_A4]=egid;
> + }
> + ret = get_errno(getgid());
> + break;
> +#endif
> +
> #ifdef TARGET_NR_getgid32
> case TARGET_NR_getgid32:
> ret = get_errno(getgid());
>
>
>
>
--
.''`. Aurelien Jarno | GPG: 1024D/F1BCDB73
: :' : Debian developer | Electrical Engineer
`. `' address@hidden | address@hidden
`- people.debian.org/~aurel32 | www.aurel32.net