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