mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-05-28 08:12:28 +00:00
Initial import
This commit is contained in:
commit
c91b3c5006
14915 changed files with 590219 additions and 0 deletions
25
third_party/dlmalloc/malloc_set_footprint_limit.c
vendored
Normal file
25
third_party/dlmalloc/malloc_set_footprint_limit.c
vendored
Normal file
|
@ -0,0 +1,25 @@
|
|||
#include "libc/limits.h"
|
||||
#include "libc/mem/mem.h"
|
||||
#include "third_party/dlmalloc/dlmalloc.h"
|
||||
|
||||
/**
|
||||
* Sets the maximum number of bytes to obtain from the system, causing
|
||||
* failure returns from malloc and related functions upon attempts to
|
||||
* exceed this value. The argument value may be subject to page rounding
|
||||
* to an enforceable limit; this actual value is returned. Using an
|
||||
* argument of the maximum possible size_t effectively disables checks.
|
||||
* If the argument is less than or equal to the current
|
||||
* malloc_footprint, then all future allocations that require additional
|
||||
* system memory will fail. However, invocation cannot retroactively
|
||||
* deallocate existing used memory.
|
||||
*/
|
||||
size_t malloc_set_footprint_limit(size_t bytes) {
|
||||
size_t result; /* invert sense of 0 */
|
||||
if (bytes == 0) result = granularity_align(1); /* Use minimal size */
|
||||
if (bytes == SIZE_MAX) {
|
||||
result = 0; /* disable */
|
||||
} else {
|
||||
result = granularity_align(bytes);
|
||||
}
|
||||
return gm->footprint_limit = result;
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue