diff options
author | j_mayer <j_mayer@c046a42c-6fe2-441c-8c8c-71466251a162> | 2007-09-27 01:14:15 +0000 |
---|---|---|
committer | j_mayer <j_mayer@c046a42c-6fe2-441c-8c8c-71466251a162> | 2007-09-27 01:14:15 +0000 |
commit | 92a343da3f50db3130f988b14650eb09e9748d11 (patch) | |
tree | 0ff53b19e5f3d2c4c6bf10755ba617172f1fb76e /linux-user | |
parent | b8d3f5d1264260db42e1d64c9d7c537df0aa31ce (diff) |
New ppc64-linux-user target.
Allow use of PowerPC 970 for debugging (softmmu would not run, for now).
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3246 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'linux-user')
-rw-r--r-- | linux-user/elfload.c | 1 | ||||
-rw-r--r-- | linux-user/ppc64/syscall.h | 20 | ||||
-rw-r--r-- | linux-user/qemu.h | 1 |
3 files changed, 12 insertions, 10 deletions
diff --git a/linux-user/elfload.c b/linux-user/elfload.c index b87119e934..2a43338125 100644 --- a/linux-user/elfload.c +++ b/linux-user/elfload.c @@ -1315,6 +1315,7 @@ int load_elf_binary(struct linux_binprm * bprm, struct target_pt_regs * regs, interp_load_addr, (interpreter_type == INTERPRETER_AOUT ? 0 : 1), info); + info->load_addr = reloc_func_desc; info->start_brk = info->brk = elf_brk; info->end_code = end_code; info->start_code = start_code; diff --git a/linux-user/ppc64/syscall.h b/linux-user/ppc64/syscall.h index 6920616410..c47e58a95f 100644 --- a/linux-user/ppc64/syscall.h +++ b/linux-user/ppc64/syscall.h @@ -65,18 +65,21 @@ struct target_revectored_struct { #define TARGET_SHMGET 23 #define TARGET_SHMCTL 24 +#if 0 // To make it compile, even if the definition in syscall.c is bugged struct target_msgbuf { int mtype; char mtext[1]; }; +#endif struct target_ipc_kludge { unsigned int msgp; /* Really (struct msgbuf *) */ int msgtyp; }; +#if 0 // To make it compile, even if the definition in syscall.c is bugged struct target_ipc_perm { - int key; + int __key; unsigned short uid; unsigned short gid; unsigned short cuid; @@ -84,7 +87,9 @@ struct target_ipc_perm { unsigned short mode; unsigned short seq; }; +#endif +#if 0 // To make it compile, even if the definition in syscall.c is bugged struct target_msqid_ds { struct target_ipc_perm msg_perm; unsigned int msg_first; /* really struct target_msg* */ @@ -100,7 +105,9 @@ struct target_msqid_ds { unsigned short msg_lspid; unsigned short msg_lrpid; }; +#endif +#if 0 // To make it compile, even if the definition in syscall.c is bugged struct target_shmid_ds { struct target_ipc_perm shm_perm; int shm_segsz; @@ -114,17 +121,10 @@ struct target_shmid_ds { unsigned long *shm_pages; void *attaches; /* really struct shm_desc * */ }; +#endif #define TARGET_IPC_RMID 0 #define TARGET_IPC_SET 1 #define TARGET_IPC_STAT 2 -union target_semun { - int val; - unsigned int buf; /* really struct semid_ds * */ - unsigned int array; /* really unsigned short * */ - unsigned int __buf; /* really struct seminfo * */ - unsigned int __pad; /* really void* */ -}; - -#define UNAME_MACHINE "ppc" +#define UNAME_MACHINE "ppc64" diff --git a/linux-user/qemu.h b/linux-user/qemu.h index 8c03ad1902..4b857f3d14 100644 --- a/linux-user/qemu.h +++ b/linux-user/qemu.h @@ -16,6 +16,7 @@ * task_struct fields in the kernel */ struct image_info { + target_ulong load_addr; unsigned long start_code; unsigned long end_code; unsigned long start_data; |