A new call to vm lets processes yield a part of their memory to vm, together with an id, getting newly allocated memory in return. vm is allowed to forget about it if it runs out of memory. processes can ask for it back using the same id. (These two operations are normally combined in a single call.) It can be used as a as-big-as-memory-will-allow block cache for filesystems, which is how mfs now uses it.
20 lines
287 B
C
20 lines
287 B
C
|
|
#ifndef _YIELDED_H
|
|
#define _YIELDED_H 1
|
|
|
|
#include <minix/type.h>
|
|
|
|
typedef struct yielded {
|
|
u64_t id;
|
|
phys_bytes addr, len;
|
|
endpoint_t owner;
|
|
|
|
/* LRU fields */
|
|
struct yielded *younger, *older;
|
|
|
|
/* AVL fields */
|
|
struct yielded *less, *greater;
|
|
int factor;
|
|
} yielded_t;
|
|
|
|
#endif
|