genode/repos/libports/src/lib/libc/rlimit.cc
2018-05-30 12:26:20 +02:00

58 lines
1.1 KiB
C++

/*
* \brief C-library back end
* \author Norman Feske
* \date 2008-11-11
*/
/*
* Copyright (C) 2008-2017 Genode Labs GmbH
*
* This file is part of the Genode OS framework, which is distributed
* under the terms of the GNU Affero General Public License version 3.
*/
/* Genode includes */
#include <base/log.h>
#include <libc-plugin/fd_alloc.h>
/* libc includes */
#include <sys/limits.h>
#include <sys/time.h>
#include <sys/resource.h>
#include <stdio.h>
extern "C" int __attribute__((weak)) getrlimit(int resource, struct rlimit *rlim)
{
/*
* The pthread init code on Linux calls getrlimit
* for resource 3 (RLIMIT_STACK). In this case, we
* return unlimited.
*/
if (resource == 3) {
rlim->rlim_cur = ~0;
rlim->rlim_max = ~0;
return 0;
}
/*
* Maximal size of address space
*/
if (resource == RLIMIT_AS) {
rlim->rlim_cur = LONG_MAX;
rlim->rlim_max = LONG_MAX;
return 0;
}
/*
* Maximum number of file descriptors
*/
if (resource == RLIMIT_NOFILE) {
rlim->rlim_cur = MAX_NUM_FDS;
rlim->rlim_max = MAX_NUM_FDS;
return 0;
}
return 0;
}