Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Faylor <me@cgf.cx>2011-12-04 03:55:21 +0400
committerChristopher Faylor <me@cgf.cx>2011-12-04 03:55:21 +0400
commit69864e48cb0ef1efd1ac29a80b34bbc9c604533b (patch)
tree87b2250459f355787a02bdb49b3db3f8e0dcd09b /winsup/cygwin/mmap.cc
parent645575574342c4f50a6d9ea68306278c11e114c6 (diff)
* mmap.cc (mlock): Add standard syscall return value debugging output.
(munlock): Ditto. (posix_madvise): Ditto. * signal.cc: Remove obsolete sigcatchers stuff throughout. (sigaction_worker): Add function name parameter and use it to show standard syscall return value debugging output. Also add fault protection. (sigaction): Accommodate extra argument to sigaction_worker. (siginterrupt): Ditto. * syscalls.cc (read): Remove obsolete sigcatchers stuff. (readv): Ditto.
Diffstat (limited to 'winsup/cygwin/mmap.cc')
-rw-r--r--winsup/cygwin/mmap.cc30
1 files changed, 20 insertions, 10 deletions
diff --git a/winsup/cygwin/mmap.cc b/winsup/cygwin/mmap.cc
index 97f0dad6f..2bd72610f 100644
--- a/winsup/cygwin/mmap.cc
+++ b/winsup/cygwin/mmap.cc
@@ -1394,6 +1394,7 @@ mlock (const void *addr, size_t len)
}
while (status == STATUS_WORKING_SET_QUOTA);
+ syscall_printf ("%R = mlock(%p, %u)", ret, addr, len);
return ret;
}
@@ -1413,28 +1414,37 @@ munlock (const void *addr, size_t len)
else
ret = 0;
+ syscall_printf ("%R = munlock(%p, %u)", ret, addr, len);
return ret;
}
extern "C" int
posix_madvise (void *addr, size_t len, int advice)
{
+ int ret;
/* Check parameters. */
if (advice < POSIX_MADV_NORMAL || advice > POSIX_MADV_DONTNEED
|| !len)
- return EINVAL;
-
- /* Check requested memory area. */
- MEMORY_BASIC_INFORMATION m;
- char *p = (char *) addr;
- char *endp = p + len;
- while (p < endp)
+ ret = EINVAL;
+ else
{
- if (!VirtualQuery (p, &m, sizeof m) || m.State == MEM_FREE)
- return ENOMEM;
- p = (char *) m.BaseAddress + m.RegionSize;
+ /* Check requested memory area. */
+ MEMORY_BASIC_INFORMATION m;
+ char *p = (char *) addr;
+ char *endp = p + len;
+ while (p < endp)
+ {
+ if (!VirtualQuery (p, &m, sizeof m) || m.State == MEM_FREE)
+ {
+ ret = ENOMEM;
+ break;
+ }
+ p = (char *) m.BaseAddress + m.RegionSize;
+ }
+ ret = 0;
}
+ syscall_printf ("%d = posix_madvise(%p, %u, %d)", ret, addr, len, advice);
/* Eventually do nothing. */
return 0;
}