diff options
author | Corinna Vinschen <corinna@vinschen.de> | 2001-08-28 22:48:23 +0000 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2001-08-28 22:48:23 +0000 |
commit | e4a17c6d11f4ea7cafe5c29daca3219d874d1f61 (patch) | |
tree | 683c08aaaf55dc6652cb04e0898f6d8c846487fa /winsup/cygwin/resource.cc | |
parent | a06a7fb451d268407656b22f5259a99069c53d40 (diff) | |
download | cygnal-e4a17c6d11f4ea7cafe5c29daca3219d874d1f61.tar.gz cygnal-e4a17c6d11f4ea7cafe5c29daca3219d874d1f61.tar.bz2 cygnal-e4a17c6d11f4ea7cafe5c29daca3219d874d1f61.zip |
* resource.cc (getrlimit): Return actual values on RLIMIT_STACK.
Diffstat (limited to 'winsup/cygwin/resource.cc')
-rw-r--r-- | winsup/cygwin/resource.cc | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/winsup/cygwin/resource.cc b/winsup/cygwin/resource.cc index 84ab9feaa..6361c4fd1 100644 --- a/winsup/cygwin/resource.cc +++ b/winsup/cygwin/resource.cc @@ -106,6 +106,8 @@ extern "C" int getrlimit (int resource, struct rlimit *rlp) { + MEMORY_BASIC_INFORMATION m; + if (check_null_invalid_struct_errno (rlp)) return -1; @@ -117,7 +119,16 @@ getrlimit (int resource, struct rlimit *rlp) case RLIMIT_CPU: case RLIMIT_FSIZE: case RLIMIT_DATA: + break; case RLIMIT_STACK: + if (!VirtualQuery ((LPCVOID) &m, &m, sizeof m)) + debug_printf ("couldn't get stack info, returning def.values. %E"); + else + { + rlp->rlim_cur = (DWORD) &m - (DWORD) m.AllocationBase; + rlp->rlim_max = (DWORD) m.BaseAddress + m.RegionSize + - (DWORD) m.AllocationBase; + } break; case RLIMIT_NOFILE: rlp->rlim_cur = getdtablesize (); |