Revision 540635ba linux-user/syscall_defs.h
b/linux-user/syscall_defs.h | ||
---|---|---|
307 | 307 |
#define TARGET_SA_NODEFER 0x40000000 |
308 | 308 |
#define TARGET_SA_RESTART 0x10000000 |
309 | 309 |
#define TARGET_SA_RESETHAND 0x80000000 |
310 |
#if !defined(TARGET_MIPSN32) && !defined(TARGET_MIPS64) |
|
310 | 311 |
#define TARGET_SA_RESTORER 0x04000000 /* Only for o32 */ |
312 |
#endif |
|
311 | 313 |
#else |
312 | 314 |
#define TARGET_SA_NOCLDSTOP 0x00000001 |
313 | 315 |
#define TARGET_SA_NOCLDWAIT 0x00000002 /* not supported yet */ |
... | ... | |
447 | 449 |
#if defined(TARGET_MIPS) |
448 | 450 |
|
449 | 451 |
struct target_sigaction { |
450 |
target_ulong sa_flags; |
|
452 |
uint32_t sa_flags; |
|
453 |
#if defined(TARGET_MIPSN32) |
|
454 |
uint32_t _sa_handler; |
|
455 |
#else |
|
451 | 456 |
target_ulong _sa_handler; |
457 |
#endif |
|
452 | 458 |
target_sigset_t sa_mask; |
453 | 459 |
}; |
454 | 460 |
|
... | ... | |
860 | 866 |
#define TARGET_MAP_EXECUTABLE 0x4000 /* mark it as an executable */ |
861 | 867 |
#define TARGET_MAP_LOCKED 0x8000 /* pages are locked */ |
862 | 868 |
#define TARGET_MAP_NORESERVE 0x0400 /* don't check for reservations */ |
869 |
#define TARGET_MAP_POPULATE 0x10000 /* populate (prefault) pagetables */ |
|
870 |
#define TARGET_MAP_NONBLOCK 0x20000 /* do not block on IO */ |
|
863 | 871 |
#else |
864 | 872 |
#define TARGET_MAP_ANONYMOUS 0x20 /* don't use a file */ |
865 | 873 |
#define TARGET_MAP_GROWSDOWN 0x0100 /* stack-like segment */ |
... | ... | |
872 | 880 |
#define TARGET_MAP_LOCKED 0x2000 /* pages are locked */ |
873 | 881 |
#define TARGET_MAP_NORESERVE 0x4000 /* don't check for reservations */ |
874 | 882 |
#endif |
883 |
#define TARGET_MAP_POPULATE 0x8000 /* populate (prefault) pagetables */ |
|
884 |
#define TARGET_MAP_NONBLOCK 0x10000 /* do not block on IO */ |
|
875 | 885 |
#endif |
876 | 886 |
|
877 | 887 |
#if defined(TARGET_I386) || defined(TARGET_ARM) |
... | ... | |
1184 | 1194 |
unsigned long long st_ino; |
1185 | 1195 |
} __attribute__((packed)); |
1186 | 1196 |
|
1197 |
#elif defined(TARGET_MIPS64) |
|
1198 |
|
|
1199 |
/* The memory layout is the same as of struct stat64 of the 32-bit kernel. */ |
|
1200 |
struct target_stat { |
|
1201 |
unsigned int st_dev; |
|
1202 |
unsigned int st_pad0[3]; /* Reserved for st_dev expansion */ |
|
1203 |
|
|
1204 |
target_ulong st_ino; |
|
1205 |
|
|
1206 |
unsigned int st_mode; |
|
1207 |
unsigned int st_nlink; |
|
1208 |
|
|
1209 |
int st_uid; |
|
1210 |
int st_gid; |
|
1211 |
|
|
1212 |
unsigned int st_rdev; |
|
1213 |
unsigned int st_pad1[3]; /* Reserved for st_rdev expansion */ |
|
1214 |
|
|
1215 |
target_ulong st_size; |
|
1216 |
|
|
1217 |
/* |
|
1218 |
* Actually this should be timestruc_t st_atime, st_mtime and st_ctime |
|
1219 |
* but we don't have it under Linux. |
|
1220 |
*/ |
|
1221 |
unsigned int target_st_atime; |
|
1222 |
unsigned int target_st_atime_nsec; |
|
1223 |
|
|
1224 |
unsigned int target_st_mtime; |
|
1225 |
unsigned int target_st_mtime_nsec; |
|
1226 |
|
|
1227 |
unsigned int target_st_ctime; |
|
1228 |
unsigned int target_st_ctime_nsec; |
|
1229 |
|
|
1230 |
unsigned int st_blksize; |
|
1231 |
unsigned int st_pad2; |
|
1232 |
|
|
1233 |
target_ulong st_blocks; |
|
1234 |
}; |
|
1235 |
|
|
1236 |
#elif defined(TARGET_MIPSN32) |
|
1237 |
|
|
1238 |
struct target_stat { |
|
1239 |
unsigned st_dev; |
|
1240 |
int st_pad1[3]; /* Reserved for network id */ |
|
1241 |
unsigned int st_ino; |
|
1242 |
unsigned int st_mode; |
|
1243 |
unsigned int st_nlink; |
|
1244 |
int st_uid; |
|
1245 |
int st_gid; |
|
1246 |
unsigned st_rdev; |
|
1247 |
unsigned int st_pad2[2]; |
|
1248 |
unsigned int st_size; |
|
1249 |
unsigned int st_pad3; |
|
1250 |
/* |
|
1251 |
* Actually this should be timestruc_t st_atime, st_mtime and st_ctime |
|
1252 |
* but we don't have it under Linux. |
|
1253 |
*/ |
|
1254 |
unsigned int target_st_atime; |
|
1255 |
unsigned int target_st_atime_nsec; |
|
1256 |
unsigned int target_st_mtime; |
|
1257 |
unsigned int target_st_mtime_nsec; |
|
1258 |
unsigned int target_st_ctime; |
|
1259 |
unsigned int target_st_ctime_nsec; |
|
1260 |
unsigned int st_blksize; |
|
1261 |
unsigned int st_blocks; |
|
1262 |
unsigned int st_pad4[14]; |
|
1263 |
}; |
|
1264 |
|
|
1265 |
/* |
|
1266 |
* This matches struct stat64 in glibc2.1, hence the absolutely insane |
|
1267 |
* amounts of padding around dev_t's. The memory layout is the same as of |
|
1268 |
* struct stat of the 64-bit kernel. |
|
1269 |
*/ |
|
1270 |
|
|
1271 |
struct target_stat64 { |
|
1272 |
unsigned int st_dev; |
|
1273 |
unsigned int st_pad0[3]; /* Reserved for st_dev expansion */ |
|
1274 |
|
|
1275 |
target_ulong st_ino; |
|
1276 |
|
|
1277 |
unsigned int st_mode; |
|
1278 |
unsigned int st_nlink; |
|
1279 |
|
|
1280 |
int st_uid; |
|
1281 |
int st_gid; |
|
1282 |
|
|
1283 |
unsigned int st_rdev; |
|
1284 |
unsigned int st_pad1[3]; /* Reserved for st_rdev expansion */ |
|
1285 |
|
|
1286 |
int st_size; |
|
1287 |
|
|
1288 |
/* |
|
1289 |
* Actually this should be timestruc_t st_atime, st_mtime and st_ctime |
|
1290 |
* but we don't have it under Linux. |
|
1291 |
*/ |
|
1292 |
int target_st_atime; |
|
1293 |
unsigned int target_st_atime_nsec; /* Reserved for st_atime expansion */ |
|
1294 |
|
|
1295 |
int target_st_mtime; |
|
1296 |
unsigned int target_st_mtime_nsec; /* Reserved for st_mtime expansion */ |
|
1297 |
|
|
1298 |
int target_st_ctime; |
|
1299 |
unsigned int target_st_ctime_nsec; /* Reserved for st_ctime expansion */ |
|
1300 |
|
|
1301 |
unsigned int st_blksize; |
|
1302 |
unsigned int st_pad2; |
|
1303 |
|
|
1304 |
int st_blocks; |
|
1305 |
}; |
|
1306 |
|
|
1187 | 1307 |
#elif defined(TARGET_MIPS) |
1188 | 1308 |
|
1189 | 1309 |
struct target_stat { |
... | ... | |
1366 | 1486 |
} target_fsid_t; |
1367 | 1487 |
|
1368 | 1488 |
#ifdef TARGET_MIPS |
1489 |
#ifdef TARGET_MIPSN32 |
|
1490 |
struct target_statfs { |
|
1491 |
int32_t f_type; |
|
1492 |
int32_t f_bsize; |
|
1493 |
int32_t f_frsize; /* Fragment size - unsupported */ |
|
1494 |
int32_t f_blocks; |
|
1495 |
int32_t f_bfree; |
|
1496 |
int32_t f_files; |
|
1497 |
int32_t f_ffree; |
|
1498 |
int32_t f_bavail; |
|
1499 |
|
|
1500 |
/* Linux specials */ |
|
1501 |
target_fsid_t f_fsid; |
|
1502 |
int32_t f_namelen; |
|
1503 |
int32_t f_spare[6]; |
|
1504 |
}; |
|
1505 |
#else |
|
1369 | 1506 |
struct target_statfs { |
1370 | 1507 |
target_long f_type; |
1371 | 1508 |
target_long f_bsize; |
... | ... | |
1381 | 1518 |
target_long f_namelen; |
1382 | 1519 |
target_long f_spare[6]; |
1383 | 1520 |
}; |
1521 |
#endif |
|
1384 | 1522 |
|
1385 | 1523 |
struct target_statfs64 { |
1386 | 1524 |
uint32_t f_type; |
Also available in: Unified diff