diff options
Diffstat (limited to 'vm/vm_page.h')
-rw-r--r-- | vm/vm_page.h | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/vm/vm_page.h b/vm/vm_page.h index f7fa80a..6ca1c0c 100644 --- a/vm/vm_page.h +++ b/vm/vm_page.h @@ -93,6 +93,8 @@ struct vm_page { laundry:1, /* page is being cleaned now (P)*/ free:1, /* page is on free list (P) */ reference:1, /* page has been used (P) */ + external:1, /* page considered external (P) */ + extcounted:1, /* page counted in ext counts (P) */ :0; /* (force to 'long' boundary) */ #ifdef ns32000 int pad; /* extra space for ns32000 bit ops */ @@ -184,6 +186,17 @@ extern int vm_page_free_reserved; /* How many pages reserved to do pageout */ extern int vm_page_laundry_count; /* How many pages being laundered? */ +extern +int vm_page_external_limit; /* Max number of pages for external objects */ + +/* Only objects marked with the extcounted bit are included in this total. + Pages which we scan for possible pageout, but which are not actually + dirty, don't get considered against the external page limits any more + in this way. */ +extern +int vm_page_external_count; /* How many pages for external objects? */ + + decl_simple_lock_data(extern,vm_page_queue_lock)/* lock on active and inactive page queues */ @@ -209,9 +222,9 @@ extern vm_page_t vm_page_lookup( vm_offset_t offset); extern vm_page_t vm_page_grab_fictitious(void); extern void vm_page_release_fictitious(vm_page_t); -extern boolean_t vm_page_convert(vm_page_t); +extern boolean_t vm_page_convert(vm_page_t, boolean_t); extern void vm_page_more_fictitious(void); -extern vm_page_t vm_page_grab(void); +extern vm_page_t vm_page_grab(boolean_t); extern void vm_page_release(vm_page_t); extern void vm_page_wait(void (*)(void)); extern vm_page_t vm_page_alloc( |