mkernel 0.0.2
Micro-kernel framework, everything as a module
oom.h
Go to the documentation of this file.
1
17#ifndef __OOM_H__
18#define __OOM_H__
19
20#ifdef HAVE_CONFIG_H
21#include "config.h"
22#endif
23
24#ifndef RAMLIMIT_HARD
25#define RAMLIMIT_HARD (7*1024*1024)
26#endif
27#ifndef RAMLIMIT_SOFT
28#define RAMLIMIT_SOFT (5*1024*1024)
29#endif
30
31#include <stddef.h> /* size_t */
32
33/* void myfunction() {
34 * void* ptr;
35 * ptr = NULL;
36 * // Keep at most 100 bytes available
37 * OOM_BEGIN(0.1);
38 * ptr=malloc(2000);
39 * OOM_END;
40 * if (NULL == ptr)
41 * fprintf(stderr,"malloc failed\n");
42 * else
43 * free(ptr);
44 * }
45 *
46 * size_t ramlimit;
47 * ramlimit=64*1024*1024;
48 * printf ("Limit memory usage to %uMB : ",ramlimit/1024/1024);
49 * ramlimit = oomtest_setup(ramlimit);
50 * printf ("%uB (%uMB)\n",ramlimit,ramlimit/1024/1024);
51 *
52 * // not constrained (only by the 64MB ramlimit)
53 * myfunction();
54 *
55 * // OOM activation to eat all memory
56 * oomtest_enable(64*1024*1024);
57 * myfunction();
58 */
59
90size_t oomtest_config(const size_t hardlimit);
91
120extern size_t (*oomtest_enable)(const size_t softlimit);
121
145extern size_t (*oomtest_disable)();
146
176extern size_t (*oomtest_fill)(const size_t minHeap, const size_t minStack);
177
193extern void (*oomtest_free)();
194
195extern unsigned char oomtest_enabled();
196
197#endif /*__OOM_H__ */
void(* oomtest_free)()
Ends a single simple OOM test.
Definition: oom.c:100
size_t(* oomtest_disable)()
Stops the current oomtest.
Definition: oom.c:138
size_t(* oomtest_fill)(const size_t minHeap, const size_t minStack)
Starts an almost OOM single and simple test.
Definition: oom.c:84
size_t(* oomtest_enable)(const size_t softlimit)
Starts a new oomtest environment or reconfigure the soft limit.
Definition: oom.c:120
unsigned char oomtest_enabled()
Definition: oom.c:422
size_t oomtest_config(const size_t hardlimit)
Sets the oomtest helpers hard rlimit and enables the oomtest helper features.
Definition: oom.c:367