From 697ca3e41f4ae5282b3d56e62438546a5957c128 Mon Sep 17 00:00:00 2001 From: "Dmitry V. Levin" Date: Sat, 24 Dec 2016 22:39:06 +0000 Subject: [PATCH] mem: change mmap arguments type from unsigned long to kernel_ureg_t * mem.c (print_mmap): Change the type of len, prot, and flags from unsigned long to kernel_ureg_t. Use printflags64 instead of printflags_long. Use printxval64 instead of printxval_long. (SYS_FUNC(old_mmap)): Check for current_klongsize instead of [AARCH64 || X86_64] to take X32 into account. (SYS_FUNC(mremap)): Use printflags64 instead of printflags_long. (SYS_FUNC(remap_file_pages)): Change the type of size, prot, pgoff, and flags from unsigned long to kernel_ureg_t. Use printflags64 instead of printflags_long. Use printxval64 instead of printxval_long. [POWERPC] (SYS_FUNC(subpage_prot)): Change the type of len and nmemb from unsigned long to kernel_ureg_t. --- mem.c | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/mem.c b/mem.c index 988638af..4c4377ea 100644 --- a/mem.c +++ b/mem.c @@ -58,20 +58,20 @@ static void print_mmap(struct tcb *tcp, kernel_ureg_t *u_arg, unsigned long long offset) { const kernel_ureg_t addr = u_arg[0]; - const unsigned long len = u_arg[1]; - const unsigned long prot = u_arg[2]; - const unsigned long flags = u_arg[3]; + const kernel_ureg_t len = u_arg[1]; + const kernel_ureg_t prot = u_arg[2]; + const kernel_ureg_t flags = u_arg[3]; const int fd = u_arg[4]; printaddr(addr); tprintf(", %lu, ", len); - printflags_long(mmap_prot, prot, "PROT_???"); + printflags64(mmap_prot, prot, "PROT_???"); tprints(", "); #ifdef MAP_TYPE - printxval_long(mmap_flags, flags & MAP_TYPE, "MAP_???"); + printxval64(mmap_flags, flags & MAP_TYPE, "MAP_???"); addflags(mmap_flags, flags & ~MAP_TYPE); #else - printflags_long(mmap_flags, flags, "MAP_???"); + printflags64(mmap_flags, flags, "MAP_???"); #endif tprints(", "); printfd(tcp, fd); @@ -94,7 +94,7 @@ print_mmap(struct tcb *tcp, kernel_ureg_t *u_arg, unsigned long long offset) SYS_FUNC(old_mmap) { kernel_ureg_t u_arg[6]; -# if defined AARCH64 || defined X86_64 +# ifndef current_klongsize /* We are here only in a 32-bit personality. */ unsigned int narrow_arg[6]; if (umove_or_printaddr(tcp, tcp->u_arg[0], &narrow_arg)) @@ -211,7 +211,7 @@ SYS_FUNC(mremap) { printaddr(tcp->u_arg[0]); tprintf(", %lu, %lu, ", tcp->u_arg[1], tcp->u_arg[2]); - printflags_long(mremap_flags, tcp->u_arg[3], "MREMAP_???"); + printflags64(mremap_flags, tcp->u_arg[3], "MREMAP_???"); #ifdef MREMAP_FIXED if ((tcp->u_arg[3] & (MREMAP_MAYMOVE | MREMAP_FIXED)) == (MREMAP_MAYMOVE | MREMAP_FIXED)) { @@ -313,20 +313,20 @@ SYS_FUNC(getpagesize) SYS_FUNC(remap_file_pages) { const kernel_ureg_t addr = tcp->u_arg[0]; - const unsigned long size = tcp->u_arg[1]; - const unsigned long prot = tcp->u_arg[2]; - const unsigned long pgoff = tcp->u_arg[3]; - const unsigned long flags = tcp->u_arg[4]; + const kernel_ureg_t size = tcp->u_arg[1]; + const kernel_ureg_t prot = tcp->u_arg[2]; + const kernel_ureg_t pgoff = tcp->u_arg[3]; + const kernel_ureg_t flags = tcp->u_arg[4]; printaddr(addr); tprintf(", %lu, ", size); - printflags_long(mmap_prot, prot, "PROT_???"); + printflags64(mmap_prot, prot, "PROT_???"); tprintf(", %lu, ", pgoff); #ifdef MAP_TYPE - printxval_long(mmap_flags, flags & MAP_TYPE, "MAP_???"); + printxval64(mmap_flags, flags & MAP_TYPE, "MAP_???"); addflags(mmap_flags, flags & ~MAP_TYPE); #else - printflags_long(mmap_flags, flags, "MAP_???"); + printflags64(mmap_flags, flags, "MAP_???"); #endif return RVAL_DECODED; @@ -344,8 +344,8 @@ print_protmap_entry(struct tcb *tcp, void *elem_buf, size_t elem_size, void *dat SYS_FUNC(subpage_prot) { kernel_ureg_t addr = tcp->u_arg[0]; - unsigned long len = tcp->u_arg[1]; - unsigned long nmemb = len >> 16; + kernel_ureg_t len = tcp->u_arg[1]; + kernel_ureg_t nmemb = len >> 16; kernel_ureg_t map = tcp->u_arg[2]; printaddr(addr); -- 2.40.0