[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 6/6] linux-user: Use qemu_getauxval for AT_EXECFD
From: |
Richard Henderson |
Subject: |
[Qemu-devel] [PULL 6/6] linux-user: Use qemu_getauxval for AT_EXECFD |
Date: |
Sat, 30 Nov 2013 09:42:34 +1300 |
Reviewed-by: Peter Maydell <address@hidden>
Signed-off-by: Richard Henderson <address@hidden>
---
linux-user/main.c | 32 ++++++--------------------------
1 file changed, 6 insertions(+), 26 deletions(-)
diff --git a/linux-user/main.c b/linux-user/main.c
index 50db755..54f71fe 100644
--- a/linux-user/main.c
+++ b/linux-user/main.c
@@ -3663,26 +3663,6 @@ static int parse_args(int argc, char **argv)
return optind;
}
-static int get_execfd(char **envp)
-{
- typedef struct {
- long a_type;
- long a_val;
- } auxv_t;
- auxv_t *auxv;
-
- while (*envp++ != NULL) {
- ;
- }
-
- for (auxv = (auxv_t *)envp; auxv->a_type != AT_NULL; auxv++) {
- if (auxv->a_type == AT_EXECFD) {
- return auxv->a_val;
- }
- }
- return -1;
-}
-
int main(int argc, char **argv, char **envp)
{
struct target_pt_regs regs1, *regs = ®s1;
@@ -3876,13 +3856,13 @@ int main(int argc, char **argv, char **envp)
env->opaque = ts;
task_settid(ts);
- execfd = get_execfd(envp);
- if (execfd < 0) {
+ execfd = qemu_getauxval(AT_EXECFD);
+ if (execfd == 0) {
execfd = open(filename, O_RDONLY);
- }
- if (execfd < 0) {
- printf("Error while loading %s: %s\n", filename, strerror(-execfd));
- _exit(1);
+ if (execfd < 0) {
+ printf("Error while loading %s: %s\n", filename, strerror(errno));
+ _exit(1);
+ }
}
ret = loader_exec(execfd, filename, target_argv, target_environ, regs,
--
1.8.3.1
- [Qemu-devel] [PULL 0/6] getauxval improvements, Richard Henderson, 2013/11/29
- [Qemu-devel] [PULL 1/6] osdep: Create qemu_getauxval and qemu_init_auxval, Richard Henderson, 2013/11/29
- [Qemu-devel] [PULL 2/6] tcg-ppc64: Use qemu_getauxval, Richard Henderson, 2013/11/29
- [Qemu-devel] [PULL 3/6] tcg-arm: Use qemu_getauxval, Richard Henderson, 2013/11/29
- [Qemu-devel] [PULL 4/6] tcg-s390: Use qemu_getauxval in query_facilities, Richard Henderson, 2013/11/29
- [Qemu-devel] [PULL 5/6] util: Use qemu_getauxval in linux qemu_cache_utils_init, Richard Henderson, 2013/11/29
- [Qemu-devel] [PULL 6/6] linux-user: Use qemu_getauxval for AT_EXECFD,
Richard Henderson <=