Commit e32448e059adc8e6b31df483a679b399bc990e5a
1 parent
e9b34b37
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
Showing
4 changed files
with
45 additions
and
33 deletions
linux-user/ppc/syscall.h
| ... | ... | @@ -26,20 +26,24 @@ |
| 26 | 26 | #define __USER_DS (1) |
| 27 | 27 | |
| 28 | 28 | struct target_pt_regs { |
| 29 | - unsigned long gpr[32]; | |
| 30 | - unsigned long nip; | |
| 31 | - unsigned long msr; | |
| 32 | - unsigned long orig_gpr3; /* Used for restarting system calls */ | |
| 33 | - unsigned long ctr; | |
| 34 | - unsigned long link; | |
| 35 | - unsigned long xer; | |
| 36 | - unsigned long ccr; | |
| 37 | - unsigned long mq; /* 601 only (not used at present) */ | |
| 29 | + abi_ulong gpr[32]; | |
| 30 | + abi_ulong nip; | |
| 31 | + abi_ulong msr; | |
| 32 | + abi_ulong orig_gpr3; /* Used for restarting system calls */ | |
| 33 | + abi_ulong ctr; | |
| 34 | + abi_ulong link; | |
| 35 | + abi_ulong xer; | |
| 36 | + abi_ulong ccr; | |
| 37 | +#if defined(TARGET_PPC64) && !defined(TARGET_ABI32) | |
| 38 | + abi_ulong softe; | |
| 39 | +#else | |
| 40 | + abi_ulong mq; /* 601 only (not used at present) */ | |
| 41 | +#endif | |
| 38 | 42 | /* Used on APUS to hold IPL value. */ |
| 39 | - unsigned long trap; /* Reason for being here */ | |
| 40 | - unsigned long dar; /* Fault registers */ | |
| 41 | - unsigned long dsisr; | |
| 42 | - unsigned long result; /* Result of a system call */ | |
| 43 | + abi_ulong trap; /* Reason for being here */ | |
| 44 | + abi_ulong dar; /* Fault registers */ | |
| 45 | + abi_ulong dsisr; | |
| 46 | + abi_ulong result; /* Result of a system call */ | |
| 43 | 47 | }; |
| 44 | 48 | |
| 45 | 49 | /* ioctls */ | ... | ... |
linux-user/ppc/target_signal.h
linux-user/socket.h
| ... | ... | @@ -109,12 +109,21 @@ |
| 109 | 109 | #define TARGET_SO_LINGER 13 |
| 110 | 110 | #define TARGET_SO_BSDCOMPAT 14 |
| 111 | 111 | /* To add :#define TARGET_SO_REUSEPORT 15 */ |
| 112 | +#if defined(TARGET_PPC) | |
| 113 | + #define TARGET_SO_RCVLOWAT 16 | |
| 114 | + #define TARGET_SO_SNDLOWAT 17 | |
| 115 | + #define TARGET_SO_RCVTIMEO 18 | |
| 116 | + #define TARGET_SO_SNDTIMEO 19 | |
| 117 | + #define TARGET_SO_PASSCRED 20 | |
| 118 | + #define TARGET_SO_PEERCRED 21 | |
| 119 | +#else | |
| 112 | 120 | #define TARGET_SO_PASSCRED 16 |
| 113 | 121 | #define TARGET_SO_PEERCRED 17 |
| 114 | 122 | #define TARGET_SO_RCVLOWAT 18 |
| 115 | 123 | #define TARGET_SO_SNDLOWAT 19 |
| 116 | 124 | #define TARGET_SO_RCVTIMEO 20 |
| 117 | 125 | #define TARGET_SO_SNDTIMEO 21 |
| 126 | +#endif | |
| 118 | 127 | |
| 119 | 128 | /* Security levels - as per NRL IPv6 - don't actually do anything */ |
| 120 | 129 | #define TARGET_SO_SECURITY_AUTHENTICATION 22 | ... | ... |
linux-user/syscall_defs.h
| ... | ... | @@ -1086,10 +1086,10 @@ struct target_stat64 { |
| 1086 | 1086 | #elif defined(TARGET_PPC) |
| 1087 | 1087 | |
| 1088 | 1088 | struct target_stat { |
| 1089 | - unsigned short st_dev; | |
| 1089 | + abi_ulong st_dev; | |
| 1090 | 1090 | abi_ulong st_ino; |
| 1091 | 1091 | #if defined(TARGET_PPC64) && !defined(TARGET_ABI32) |
| 1092 | - unsigned short st_nlink; | |
| 1092 | + abi_ulong st_nlink; | |
| 1093 | 1093 | unsigned int st_mode; |
| 1094 | 1094 | #else |
| 1095 | 1095 | unsigned int st_mode; |
| ... | ... | @@ -1097,16 +1097,16 @@ struct target_stat { |
| 1097 | 1097 | #endif |
| 1098 | 1098 | unsigned int st_uid; |
| 1099 | 1099 | unsigned int st_gid; |
| 1100 | - unsigned short st_rdev; | |
| 1100 | + abi_ulong st_rdev; | |
| 1101 | 1101 | abi_ulong st_size; |
| 1102 | 1102 | abi_ulong st_blksize; |
| 1103 | 1103 | abi_ulong st_blocks; |
| 1104 | 1104 | abi_ulong target_st_atime; |
| 1105 | - abi_ulong __unused1; | |
| 1105 | + abi_ulong target_st_atime_nsec; | |
| 1106 | 1106 | abi_ulong target_st_mtime; |
| 1107 | - abi_ulong __unused2; | |
| 1107 | + abi_ulong target_st_mtime_nsec; | |
| 1108 | 1108 | abi_ulong target_st_ctime; |
| 1109 | - abi_ulong __unused3; | |
| 1109 | + abi_ulong target_st_ctime_nsec; | |
| 1110 | 1110 | abi_ulong __unused4; |
| 1111 | 1111 | abi_ulong __unused5; |
| 1112 | 1112 | #if defined(TARGET_PPC64) && !defined(TARGET_ABI32) |
| ... | ... | @@ -1122,19 +1122,18 @@ struct target_stat64 { |
| 1122 | 1122 | unsigned int st_uid; |
| 1123 | 1123 | unsigned int st_gid; |
| 1124 | 1124 | unsigned long long st_rdev; |
| 1125 | - long long pad0; | |
| 1126 | - long long st_size; | |
| 1127 | - abi_ulong st_blksize; | |
| 1128 | - abi_ulong pad1; | |
| 1129 | - long long st_blocks; /* Number 512-byte blocks allocated. */ | |
| 1130 | - abi_ulong target_st_atime; | |
| 1131 | - abi_ulong target_st_atime_nsec; | |
| 1132 | - abi_ulong target_st_mtime; | |
| 1133 | - abi_ulong target_st_mtime_nsec; | |
| 1134 | - abi_ulong target_st_ctime; | |
| 1135 | - abi_ulong target_st_ctime_nsec; | |
| 1136 | - abi_ulong __unused4; | |
| 1137 | - abi_ulong __unused5; | |
| 1125 | + unsigned short pad0; | |
| 1126 | + long long st_size; | |
| 1127 | + int st_blksize; | |
| 1128 | + long long st_blocks; /* Number 512-byte blocks allocated. */ | |
| 1129 | + int target_st_atime; | |
| 1130 | + unsigned int target_st_atime_nsec; | |
| 1131 | + int target_st_mtime; | |
| 1132 | + unsigned int target_st_mtime_nsec; | |
| 1133 | + int target_st_ctime; | |
| 1134 | + unsigned int target_st_ctime_nsec; | |
| 1135 | + unsigned int __unused4; | |
| 1136 | + unsigned int __unused5; | |
| 1138 | 1137 | }; |
| 1139 | 1138 | |
| 1140 | 1139 | #elif defined(TARGET_M68K) | ... | ... |