f78d8e74fd
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.
33 lines
551 B
C
33 lines
551 B
C
|
|
#include <minix/sys_config.h>
|
|
#include <sys/stat.h>
|
|
#include <a.out.h>
|
|
#include <tools.h>
|
|
|
|
#include "vm.h"
|
|
#include "vmproc.h"
|
|
|
|
#if _MAIN
|
|
#undef EXTERN
|
|
#define EXTERN
|
|
#endif
|
|
|
|
#define VMP_SYSTEM _NR_PROCS
|
|
#define VMP_EXECTMP _NR_PROCS+1
|
|
#define VMP_NR _NR_PROCS+2
|
|
|
|
EXTERN struct vmproc vmproc[VMP_NR];
|
|
|
|
#if SANITYCHECKS
|
|
EXTERN int nocheck;
|
|
EXTERN int incheck;
|
|
EXTERN long vm_sanitychecklevel;
|
|
#endif
|
|
|
|
/* total number of memory pages */
|
|
EXTERN int total_pages;
|
|
|
|
/* vm operation mode state and values */
|
|
EXTERN long vm_paged;
|
|
|
|
EXTERN int meminit_done;
|