* mem.c (sys_mremap): Decode fifth argument.
* linux/*/syscallent.h: Update the number of mremap syscall arguments.
{ 1, 0, sys_sched_get_priority_min,"sched_get_priority_min"}, /* 160 */
{ 2, 0, sys_sched_rr_get_interval,"sched_rr_get_interval"}, /* 161 */
{ 2, 0, sys_nanosleep, "nanosleep" }, /* 162 */
- { 4, 0, sys_mremap, "mremap" }, /* 163 */
+ { 5, 0, sys_mremap, "mremap" }, /* 163 */
{ 3, 0, sys_setresuid, "setresuid" }, /* 164 */
{ 3, 0, sys_getresuid, "getresuid" }, /* 165 */
{ 5, 0, printargs, "vm86" }, /* 166 */
{ 3, TD, sys_ioctl, "ioctl" }, /* 54 */
{ 3, TD, sys_fcntl, "fcntl" }, /* 55 */
{ 2, 0, sys_setpgid, "setpgid" }, /* 56 */
- { 4, 0, sys_mremap, "mremap" }, /* 57 */
+ { 5, 0, sys_mremap, "mremap" }, /* 57 */
{ 3, 0, sys_setresuid, "setresuid" }, /* 58 */
{ 3, 0, sys_getresuid, "getresuid" }, /* 59 */
{ 2, 0, sys_setreuid, "setreuid" }, /* 60 */
{ 1, 0, sys_sched_get_priority_min, "sched_get_priority_min" }, /* 160 */
{ 2, 0, sys_sched_rr_get_interval, "sched_rr_get_interval" }, /* 161 */
{ 2, 0, sys_nanosleep, "nanosleep" }, /* 162 */
- { 4, 0, sys_mremap, "mremap" }, /* 163 */
+ { 5, 0, sys_mremap, "mremap" }, /* 163 */
{ 3, 0, sys_setresuid, "setresuid" }, /* 164 */
{ 3, 0, sys_getresuid, "getresuid" }, /* 165 */
{ 5, 0, printargs, "vm86" }, /* 166 */
{ 1, 0, sys_sched_get_priority_min,"sched_get_priority_min"}, /* 160 */
{ 2, 0, sys_sched_rr_get_interval,"sched_rr_get_interval"}, /* 161 */
{ 2, 0, sys_nanosleep, "nanosleep" }, /* 162 */
- { 4, 0, sys_mremap, "mremap" }, /* 163 */
+ { 5, 0, sys_mremap, "mremap" }, /* 163 */
{ 3, 0, sys_setresuid, "setresuid" }, /* 164 */
{ 3, 0, sys_setresuid, "getresuid" }, /* 165 */
{ 2, TS, sys_sigaltstack, "sigaltstack" }, /* 166 */
{ 1, 0, sys_sched_get_priority_min,"sched_get_priority_min"}, /* 160 */
{ 2, 0, sys_sched_rr_get_interval,"sched_rr_get_interval"}, /* 161 */
{ 2, 0, sys_nanosleep, "nanosleep" }, /* 162 */
- { 4, 0, sys_mremap, "mremap" }, /* 163 */
+ { 5, 0, sys_mremap, "mremap" }, /* 163 */
{ 3, 0, sys_setresuid, "setresuid" }, /* 164 */
{ 3, 0, sys_getresuid, "getresuid" }, /* 165 */
{ 5, 0, printargs, "vm86" }, /* 166 */
{ 2, 0, sys_mlock, "mlock" }, /* 1153 */
{ 1, 0, sys_mlockall, "mlockall" }, /* 1154 */
{ 3, 0, sys_mprotect, "mprotect" }, /* 1155 */
- { 4, 0, sys_mremap, "mremap" }, /* 1156 */
+ { 5, 0, sys_mremap, "mremap" }, /* 1156 */
{ 3, 0, sys_msync, "msync" }, /* 1157 */
{ 2, 0, sys_munlock, "munlock" }, /* 1158 */
{ 0, 0, sys_munlockall, "munlockall" }, /* 1159 */
{ 1, 0, sys_sched_get_priority_min,"sched_get_priority_min"}, /* 160 */
{ 2, 0, sys_sched_rr_get_interval,"sched_rr_get_interval"}, /* 161 */
{ 2, 0, sys_nanosleep, "nanosleep" }, /* 162 */
- { 4, 0, sys_mremap, "mremap" }, /* 163 */
+ { 5, 0, sys_mremap, "mremap" }, /* 163 */
{ 3, 0, sys_setresuid, "setresuid" }, /* 164 */
{ 3, 0, sys_getresuid, "getresuid" }, /* 165 */
{ 5, 0, printargs, "getpagesize" }, /* 166 */
{ 1, 0, sys_sched_get_priority_min,"sched_get_priority_min"}, /* 4164 */
{ 2, 0, sys_sched_rr_get_interval,"sched_rr_get_interval"}, /* 4165 */
{ 2, 0, sys_nanosleep, "nanosleep" }, /* 4166 */
- { 4, 0, sys_mremap, "mremap" }, /* 4167 */
+ { 5, 0, sys_mremap, "mremap" }, /* 4167 */
{ 3, TN, sys_accept, "accept" }, /* 4168 */
{ 3, TN, sys_bind, "bind" }, /* 4169 */
{ 3, TN, sys_connect, "connect" }, /* 4170 */
{ 1, 0, sys_pipe, "pipe" }, /* 5021 */
{ 5, 0, sys_select, "_newselect" }, /* 5022 */
{ 0, 0, sys_sched_yield, "sched_yield" }, /* 5023 */
- { 4, 0, sys_mremap, "mremap" }, /* 5024 */
+ { 5, 0, sys_mremap, "mremap" }, /* 5024 */
{ 3, 0, sys_msync, "msync" }, /* 5025 */
{ 3, 0, printargs, "mincore" }, /* 5026 */
{ 3, 0, sys_madvise, "madvise" }, /* 5027 */
{ 1, 0, sys_pipe, "pipe" }, /* 6021 */
{ 5, 0, sys_select, "_newselect" }, /* 6022 */
{ 0, 0, sys_sched_yield, "sched_yield" }, /* 6023 */
- { 4, 0, sys_mremap, "mremap" }, /* 6024 */
+ { 5, 0, sys_mremap, "mremap" }, /* 6024 */
{ 3, 0, sys_msync, "msync" }, /* 6025 */
{ 3, 0, printargs, "mincore" }, /* 6026 */
{ 3, 0, sys_madvise, "madvise" }, /* 6027 */
{ 1, 0, sys_sched_get_priority_min,"sched_get_priority_min"}, /* 160 */
{ 2, 0, sys_sched_rr_get_interval,"sched_rr_get_interval"}, /* 161 */
{ 2, 0, sys_nanosleep, "nanosleep" }, /* 162 */
- { 4, 0, sys_mremap, "mremap" }, /* 163 */
+ { 5, 0, sys_mremap, "mremap" }, /* 163 */
{ 3, 0, sys_setresuid, "setresuid" }, /* 164 */
{ 3, 0, sys_getresuid, "getresuid" }, /* 165 */
{ 5, 0, sys_query_module, "query_module" }, /* 166 */
{ 1, 0, sys_sched_get_priority_min,"sched_get_priority_min"}, /* 160 */
{ 2, 0, sys_sched_rr_get_interval,"sched_rr_get_interval"}, /* 161 */
{ 2, 0, sys_nanosleep, "nanosleep" }, /* 162 */
- { 4, 0, sys_mremap, "mremap" }, /* 163 */
+ { 5, 0, sys_mremap, "mremap" }, /* 163 */
{ 3, 0, sys_setresuid, "setresuid" }, /* 164 */
{ 3, 0, sys_getresuid, "getresuid" }, /* 165 */
{ -1, 0, printargs, "SYS_166" }, /* 166 */
{ 1, 0, sys_sched_get_priority_min,"sched_get_priority_min"}, /* 160 */
{ 2, 0, sys_sched_rr_get_interval,"sched_rr_get_interval"}, /* 161 */
{ 2, 0, sys_nanosleep, "nanosleep" }, /* 162 */
- { 4, 0, sys_mremap, "mremap" }, /* 163 */
+ { 5, 0, sys_mremap, "mremap" }, /* 163 */
{ -1, 0, printargs, "SYS_164" }, /* 164 */
{ -1, 0, printargs, "SYS_165" }, /* 165 */
{ -1, 0, printargs, "SYS_166" }, /* 166 */
{ 1, 0, sys_sched_get_priority_min,"sched_get_priority_min"}, /* 160 */
{ 2, 0, sys_sched_rr_get_interval,"sched_rr_get_interval"}, /* 161 */
{ 2, 0, sys_nanosleep, "nanosleep" }, /* 162 */
- { 4, 0, sys_mremap, "mremap" }, /* 163 */
+ { 5, 0, sys_mremap, "mremap" }, /* 163 */
{ 3, 0, sys_setresuid, "setresuid" }, /* 164 */
{ 3, 0, sys_getresuid, "getresuid" }, /* 165 */
{ 5, 0, printargs, "vm86" }, /* 166 */
{ 1, 0, sys_sched_get_priority_min,"sched_get_priority_min"}, /* 160 */
{ 2, 0, sys_sched_rr_get_interval,"sched_rr_get_interval"}, /* 161 */
{ 2, 0, sys_nanosleep, "nanosleep" }, /* 162 */
- { 4, 0, sys_mremap, "mremap" }, /* 163 */
+ { 5, 0, sys_mremap, "mremap" }, /* 163 */
{ 3, 0, sys_setresuid, "setresuid" }, /* 164 */
{ 3, 0, sys_getresuid, "getresuid" }, /* 165 */
{ 5, 0, printargs, "SYS_166" }, /* 166 */
{ 1,0,sys_sched_get_priority_min,"sched_get_priority_min"},/* 247 */
{ 2, 0,sys_sched_rr_get_interval,"sched_rr_get_interval"},/* 248 */
{ 2, 0, sys_nanosleep, "nanosleep" }, /* 249 */
- { 4, 0, sys_mremap, "mremap" }, /* 250 */
+ { 5, 0, sys_mremap, "mremap" }, /* 250 */
{ 1, 0, sys_sysctl, "_sysctl" }, /* 251 */
{ 1, 0, sys_getsid, "getsid" }, /* 252 */
{ 1, TD, sys_fdatasync, "fdatasync" }, /* 253 */
{ 1, TD, sys_pipe, "pipe" }, /* 22 */
{ 5, TD, sys_select, "select" }, /* 23 */
{ 0, 0, sys_sched_yield, "sched_yield"}, /* 24 */
- { 4, 0, sys_mremap, "mremap" }, /* 25 */
+ { 5, 0, sys_mremap, "mremap" }, /* 25 */
{ 3, 0, sys_msync, "msync" }, /* 26 */
{ 3, 0, sys_mincore, "mincore" }, /* 27 */
{ 3, 0, sys_madvise, "madvise" }, /* 28 */
};
int
-sys_mremap(tcp)
-struct tcb *tcp;
+sys_mremap(struct tcb *tcp)
{
if (entering(tcp)) {
tprintf("%#lx, %lu, %lu, ", tcp->u_arg[0], tcp->u_arg[1],
tcp->u_arg[2]);
printflags(mremap_flags, tcp->u_arg[3], "MREMAP_???");
+#ifdef MREMAP_FIXED
+ if ((tcp->u_arg[3] & (MREMAP_MAYMOVE | MREMAP_FIXED)) ==
+ (MREMAP_MAYMOVE | MREMAP_FIXED))
+ tprintf(", %#lx", tcp->u_arg[4]);
+#endif
}
return RVAL_HEX;
}