aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorj_mayer <j_mayer@c046a42c-6fe2-441c-8c8c-71466251a162>2007-12-10 08:24:59 +0000
committerj_mayer <j_mayer@c046a42c-6fe2-441c-8c8c-71466251a162>2007-12-10 08:24:59 +0000
commite32448e059adc8e6b31df483a679b399bc990e5a (patch)
treecba858e97b3d8ba420e1489642ae6255c223ce07
parente9b34b3741c541aba1bb80b20755f03bdf167cd0 (diff)
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
-rw-r--r--linux-user/ppc/syscall.h30
-rw-r--r--linux-user/ppc/target_signal.h2
-rw-r--r--linux-user/socket.h9
-rw-r--r--linux-user/syscall_defs.h37
4 files changed, 45 insertions, 33 deletions
diff --git a/linux-user/ppc/syscall.h b/linux-user/ppc/syscall.h
index f98d2bca5a..2035dfbfdb 100644
--- a/linux-user/ppc/syscall.h
+++ b/linux-user/ppc/syscall.h
@@ -26,20 +26,24 @@
#define __USER_DS (1)
struct target_pt_regs {
- unsigned long gpr[32];
- unsigned long nip;
- unsigned long msr;
- unsigned long orig_gpr3; /* Used for restarting system calls */
- unsigned long ctr;
- unsigned long link;
- unsigned long xer;
- unsigned long ccr;
- unsigned long mq; /* 601 only (not used at present) */
+ abi_ulong gpr[32];
+ abi_ulong nip;
+ abi_ulong msr;
+ abi_ulong orig_gpr3; /* Used for restarting system calls */
+ abi_ulong ctr;
+ abi_ulong link;
+ abi_ulong xer;
+ abi_ulong ccr;
+#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. */
- unsigned long trap; /* Reason for being here */
- unsigned long dar; /* Fault registers */
- unsigned long dsisr;
- unsigned long result; /* Result of a system call */
+ abi_ulong trap; /* Reason for being here */
+ abi_ulong dar; /* Fault registers */
+ abi_ulong dsisr;
+ abi_ulong result; /* Result of a system call */
};
/* ioctls */
diff --git a/linux-user/ppc/target_signal.h b/linux-user/ppc/target_signal.h
index defae809a9..a93b5cf1df 100644
--- a/linux-user/ppc/target_signal.h
+++ b/linux-user/ppc/target_signal.h
@@ -7,7 +7,7 @@
typedef struct target_sigaltstack {
abi_ulong ss_sp;
- abi_long ss_flags;
+ int ss_flags;
abi_ulong ss_size;
} target_stack_t;
diff --git a/linux-user/socket.h b/linux-user/socket.h
index f13ca45e3e..93d47823d8 100644
--- a/linux-user/socket.h
+++ b/linux-user/socket.h
@@ -109,12 +109,21 @@
#define TARGET_SO_LINGER 13
#define TARGET_SO_BSDCOMPAT 14
/* 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_PEERCRED 17
#define TARGET_SO_RCVLOWAT 18
#define TARGET_SO_SNDLOWAT 19
#define TARGET_SO_RCVTIMEO 20
#define TARGET_SO_SNDTIMEO 21
+#endif
/* Security levels - as per NRL IPv6 - don't actually do anything */
#define TARGET_SO_SECURITY_AUTHENTICATION 22
diff --git a/linux-user/syscall_defs.h b/linux-user/syscall_defs.h
index 64bc94f226..de4691223d 100644
--- a/linux-user/syscall_defs.h
+++ b/linux-user/syscall_defs.h
@@ -1086,10 +1086,10 @@ struct target_stat64 {
#elif defined(TARGET_PPC)
struct target_stat {
- unsigned short st_dev;
+ abi_ulong st_dev;
abi_ulong st_ino;
#if defined(TARGET_PPC64) && !defined(TARGET_ABI32)
- unsigned short st_nlink;
+ abi_ulong st_nlink;
unsigned int st_mode;
#else
unsigned int st_mode;
@@ -1097,16 +1097,16 @@ struct target_stat {
#endif
unsigned int st_uid;
unsigned int st_gid;
- unsigned short st_rdev;
+ abi_ulong st_rdev;
abi_ulong st_size;
abi_ulong st_blksize;
abi_ulong st_blocks;
abi_ulong target_st_atime;
- abi_ulong __unused1;
+ abi_ulong target_st_atime_nsec;
abi_ulong target_st_mtime;
- abi_ulong __unused2;
+ abi_ulong target_st_mtime_nsec;
abi_ulong target_st_ctime;
- abi_ulong __unused3;
+ abi_ulong target_st_ctime_nsec;
abi_ulong __unused4;
abi_ulong __unused5;
#if defined(TARGET_PPC64) && !defined(TARGET_ABI32)
@@ -1122,19 +1122,18 @@ struct target_stat64 {
unsigned int st_uid;
unsigned int st_gid;
unsigned long long st_rdev;
- long long pad0;
- long long st_size;
- abi_ulong st_blksize;
- abi_ulong pad1;
- long long st_blocks; /* Number 512-byte blocks allocated. */
- abi_ulong target_st_atime;
- abi_ulong target_st_atime_nsec;
- abi_ulong target_st_mtime;
- abi_ulong target_st_mtime_nsec;
- abi_ulong target_st_ctime;
- abi_ulong target_st_ctime_nsec;
- abi_ulong __unused4;
- abi_ulong __unused5;
+ unsigned short pad0;
+ long long st_size;
+ int st_blksize;
+ long long st_blocks; /* Number 512-byte blocks allocated. */
+ int target_st_atime;
+ unsigned int target_st_atime_nsec;
+ int target_st_mtime;
+ unsigned int target_st_mtime_nsec;
+ int target_st_ctime;
+ unsigned int target_st_ctime_nsec;
+ unsigned int __unused4;
+ unsigned int __unused5;
};
#elif defined(TARGET_M68K)