summaryrefslogtreecommitdiffstats
path: root/testsuite/systemtap.syscall/mmap.c
diff options
context:
space:
mode:
authorDavid Smith <dsmith@redhat.com>2010-02-23 15:57:25 -0600
committerDavid Smith <dsmith@redhat.com>2010-02-23 15:57:25 -0600
commitd945a07eecee9851173365459d196bcd22c3e636 (patch)
treeacf0cf964c937f5a31216f3cfb38662252428851 /testsuite/systemtap.syscall/mmap.c
parent4d3c480990cdbbd3e0c405be03a195a040b4dc4a (diff)
downloadsystemtap-steved-d945a07eecee9851173365459d196bcd22c3e636.tar.gz
systemtap-steved-d945a07eecee9851173365459d196bcd22c3e636.tar.xz
systemtap-steved-d945a07eecee9851173365459d196bcd22c3e636.zip
Fixed PR 11269 by properly handling mmap syscall 'fd' argument.
* testsuite/systemtap.syscall/mmap.c (main): Added mprotect and mremap testing (along with testing of anonymous maps). * tapset/i386/syscalls.stp: In mmap probes, handle the fact that the kernel gets an unsigned long 'fd', but the user-side passes a signed int. * tapset/i386/nd_syscalls.stp: Ditto. * tapset/ia64/syscalls.stp: Ditto. * tapset/powerpc/nd_syscalls.stp: Ditto. * tapset/powerpc/syscalls.stp: Ditto. * tapset/x86_64/nd_syscalls.stp: Ditto. * tapset/x86_64/syscalls.stp: Ditto.
Diffstat (limited to 'testsuite/systemtap.syscall/mmap.c')
-rw-r--r--testsuite/systemtap.syscall/mmap.c21
1 files changed, 20 insertions, 1 deletions
diff --git a/testsuite/systemtap.syscall/mmap.c b/testsuite/systemtap.syscall/mmap.c
index a09888b4..bc788227 100644
--- a/testsuite/systemtap.syscall/mmap.c
+++ b/testsuite/systemtap.syscall/mmap.c
@@ -1,6 +1,7 @@
-/* COVERAGE: mmap2 munmap msync mlock mlockall munlock munlockall fstat open close */
+/* COVERAGE: mmap2 munmap msync mlock mlockall munlock munlockall mprotect mremap fstat open close */
#include <sys/types.h>
#include <sys/stat.h>
+#define __USE_GNU
#include <sys/mman.h>
#include <fcntl.h>
#include <unistd.h>
@@ -49,5 +50,23 @@ int main()
munmap(r, fs.st_size);
//staptest// munmap (XXXX, 1030) = 0
+ r = mmap(NULL, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0);
+ //staptest// mmap[2]* (XXXX, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = XXXX
+
+ mprotect(r, 4096, PROT_READ);
+ //staptest// mprotect (XXXX, 4096, PROT_READ) = 0
+
+ munmap(r, 12288);
+ //staptest// munmap (XXXX, 12288) = 0
+
+ r = mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0);
+ //staptest// mmap[2]* (XXXX, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = XXXX
+
+ r = mremap(r, 8192, 4096, 0);
+ //// mremap (XXXX, 8192, 4096, 0) = XXXX
+
+ munmap(r, 4096);
+ //// munmap (XXXX, 4096) = 0
+
return 0;
}