Various linux-user structures and definitions fixes for PowerPC targets.

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3800 c046a42c-6fe2-441c-8c8c-71466251a162
This commit is contained in:
j_mayer 2007-12-10 08:24:59 +00:00
parent e9b34b3741
commit e32448e059
4 changed files with 45 additions and 33 deletions

View File

@ -26,20 +26,24 @@
#define __USER_DS (1) #define __USER_DS (1)
struct target_pt_regs { struct target_pt_regs {
unsigned long gpr[32]; abi_ulong gpr[32];
unsigned long nip; abi_ulong nip;
unsigned long msr; abi_ulong msr;
unsigned long orig_gpr3; /* Used for restarting system calls */ abi_ulong orig_gpr3; /* Used for restarting system calls */
unsigned long ctr; abi_ulong ctr;
unsigned long link; abi_ulong link;
unsigned long xer; abi_ulong xer;
unsigned long ccr; abi_ulong ccr;
unsigned long mq; /* 601 only (not used at present) */ #if defined(TARGET_PPC64) && !defined(TARGET_ABI32)
abi_ulong softe;
#else
abi_ulong mq; /* 601 only (not used at present) */
#endif
/* Used on APUS to hold IPL value. */ /* Used on APUS to hold IPL value. */
unsigned long trap; /* Reason for being here */ abi_ulong trap; /* Reason for being here */
unsigned long dar; /* Fault registers */ abi_ulong dar; /* Fault registers */
unsigned long dsisr; abi_ulong dsisr;
unsigned long result; /* Result of a system call */ abi_ulong result; /* Result of a system call */
}; };
/* ioctls */ /* ioctls */

View File

@ -7,7 +7,7 @@
typedef struct target_sigaltstack { typedef struct target_sigaltstack {
abi_ulong ss_sp; abi_ulong ss_sp;
abi_long ss_flags; int ss_flags;
abi_ulong ss_size; abi_ulong ss_size;
} target_stack_t; } target_stack_t;

View File

@ -109,12 +109,21 @@
#define TARGET_SO_LINGER 13 #define TARGET_SO_LINGER 13
#define TARGET_SO_BSDCOMPAT 14 #define TARGET_SO_BSDCOMPAT 14
/* To add :#define TARGET_SO_REUSEPORT 15 */ /* To add :#define TARGET_SO_REUSEPORT 15 */
#if defined(TARGET_PPC)
#define TARGET_SO_RCVLOWAT 16
#define TARGET_SO_SNDLOWAT 17
#define TARGET_SO_RCVTIMEO 18
#define TARGET_SO_SNDTIMEO 19
#define TARGET_SO_PASSCRED 20
#define TARGET_SO_PEERCRED 21
#else
#define TARGET_SO_PASSCRED 16 #define TARGET_SO_PASSCRED 16
#define TARGET_SO_PEERCRED 17 #define TARGET_SO_PEERCRED 17
#define TARGET_SO_RCVLOWAT 18 #define TARGET_SO_RCVLOWAT 18
#define TARGET_SO_SNDLOWAT 19 #define TARGET_SO_SNDLOWAT 19
#define TARGET_SO_RCVTIMEO 20 #define TARGET_SO_RCVTIMEO 20
#define TARGET_SO_SNDTIMEO 21 #define TARGET_SO_SNDTIMEO 21
#endif
/* Security levels - as per NRL IPv6 - don't actually do anything */ /* Security levels - as per NRL IPv6 - don't actually do anything */
#define TARGET_SO_SECURITY_AUTHENTICATION 22 #define TARGET_SO_SECURITY_AUTHENTICATION 22

View File

@ -1086,10 +1086,10 @@ struct target_stat64 {
#elif defined(TARGET_PPC) #elif defined(TARGET_PPC)
struct target_stat { struct target_stat {
unsigned short st_dev; abi_ulong st_dev;
abi_ulong st_ino; abi_ulong st_ino;
#if defined(TARGET_PPC64) && !defined(TARGET_ABI32) #if defined(TARGET_PPC64) && !defined(TARGET_ABI32)
unsigned short st_nlink; abi_ulong st_nlink;
unsigned int st_mode; unsigned int st_mode;
#else #else
unsigned int st_mode; unsigned int st_mode;
@ -1097,16 +1097,16 @@ struct target_stat {
#endif #endif
unsigned int st_uid; unsigned int st_uid;
unsigned int st_gid; unsigned int st_gid;
unsigned short st_rdev; abi_ulong st_rdev;
abi_ulong st_size; abi_ulong st_size;
abi_ulong st_blksize; abi_ulong st_blksize;
abi_ulong st_blocks; abi_ulong st_blocks;
abi_ulong target_st_atime; abi_ulong target_st_atime;
abi_ulong __unused1; abi_ulong target_st_atime_nsec;
abi_ulong target_st_mtime; abi_ulong target_st_mtime;
abi_ulong __unused2; abi_ulong target_st_mtime_nsec;
abi_ulong target_st_ctime; abi_ulong target_st_ctime;
abi_ulong __unused3; abi_ulong target_st_ctime_nsec;
abi_ulong __unused4; abi_ulong __unused4;
abi_ulong __unused5; abi_ulong __unused5;
#if defined(TARGET_PPC64) && !defined(TARGET_ABI32) #if defined(TARGET_PPC64) && !defined(TARGET_ABI32)
@ -1122,19 +1122,18 @@ struct target_stat64 {
unsigned int st_uid; unsigned int st_uid;
unsigned int st_gid; unsigned int st_gid;
unsigned long long st_rdev; unsigned long long st_rdev;
long long pad0; unsigned short pad0;
long long st_size; long long st_size;
abi_ulong st_blksize; int st_blksize;
abi_ulong pad1; long long st_blocks; /* Number 512-byte blocks allocated. */
long long st_blocks; /* Number 512-byte blocks allocated. */ int target_st_atime;
abi_ulong target_st_atime; unsigned int target_st_atime_nsec;
abi_ulong target_st_atime_nsec; int target_st_mtime;
abi_ulong target_st_mtime; unsigned int target_st_mtime_nsec;
abi_ulong target_st_mtime_nsec; int target_st_ctime;
abi_ulong target_st_ctime; unsigned int target_st_ctime_nsec;
abi_ulong target_st_ctime_nsec; unsigned int __unused4;
abi_ulong __unused4; unsigned int __unused5;
abi_ulong __unused5;
}; };
#elif defined(TARGET_M68K) #elif defined(TARGET_M68K)