Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. =================================================================== RCS file: /ftp/cvs/cvsroot/src/sys/uvm/uvm.h,v rcsdiff: /ftp/cvs/cvsroot/src/sys/uvm/uvm.h,v: warning: Unknown phrases like `commitid ...;' are present. retrieving revision 1.15 retrieving revision 1.15.4.4 diff -u -p -r1.15 -r1.15.4.4 --- src/sys/uvm/uvm.h 1999/03/26 17:34:15 1.15 +++ src/sys/uvm/uvm.h 1999/07/04 01:57:20 1.15.4.4 @@ -1,4 +1,4 @@ -/* $NetBSD: uvm.h,v 1.15 1999/03/26 17:34:15 chs Exp $ */ +/* $NetBSD: uvm.h,v 1.15.4.4 1999/07/04 01:57:20 chs Exp $ */ /* * @@ -76,6 +76,7 @@ struct uvm { /* vm_page related parameters */ + /* vm_page queues */ struct pglist page_free[VM_NFREELIST]; /* unallocated pages */ struct pglist page_active; /* allocated pages, in use */ @@ -83,10 +84,17 @@ struct uvm { struct pglist page_inactive_obj;/* pages inactive (reclaim or free) */ simple_lock_data_t pageqlock; /* lock for active/inactive page q */ simple_lock_data_t fpageqlock; /* lock for free page q */ + /* page daemon trigger */ int pagedaemon; /* daemon sleeps on this */ struct proc *pagedaemon_proc; /* daemon's pid */ simple_lock_data_t pagedaemon_lock; + + /* aiodone daemon trigger */ + int aiodoned; /* daemon sleeps on this */ + struct proc *aiodoned_proc; /* daemon's pid */ + simple_lock_data_t aiodoned_lock; + /* page hash */ struct pglist *page_hash; /* page hash table (vp/off->page) */ int page_nhash; /* number of buckets */ @@ -102,7 +110,7 @@ struct uvm { simple_lock_data_t kentry_lock; /* aio_done is locked by uvm.pagedaemon_lock and splbio! */ - struct uvm_aiohead aio_done; /* done async i/o reqs */ + TAILQ_HEAD(, buf) aio_done; /* done async i/o reqs */ /* pager VM area bounds */ vaddr_t pager_sva; /* start of pager VA area */ @@ -115,14 +123,14 @@ struct uvm { struct uvm_object *kernel_object; }; -extern struct uvm uvm; - /* * historys */ +#ifdef _KERNEL UVMHIST_DECL(maphist); UVMHIST_DECL(pdhist); +#endif /* _KERNEL */ /* * vm_map_entry etype bits: @@ -138,6 +146,19 @@ UVMHIST_DECL(pdhist); #define UVM_ET_ISCOPYONWRITE(E) (((E)->etype & UVM_ET_COPYONWRITE) != 0) #define UVM_ET_ISNEEDSCOPY(E) (((E)->etype & UVM_ET_NEEDSCOPY) != 0) + +#ifdef _KERNEL + +extern struct uvm uvm; + +/* + * historys + */ + +UVMHIST_DECL(maphist); +UVMHIST_DECL(pdhist); +UVMHIST_DECL(ubchist); + /* * macros */ @@ -148,29 +169,22 @@ UVMHIST_DECL(pdhist); */ #if defined(MULTIPROCESSOR) || defined(LOCKDEBUG) - #define UVM_UNLOCK_AND_WAIT(event,lock,intr,msg, timo) \ thread_sleep_msg(event,lock,intr,msg, timo) #else - #define UVM_UNLOCK_AND_WAIT(event,lock,intr,msg, timo) \ thread_sleep_msg(event,NULL,intr,msg, timo) - -#endif +#endif /* MULTIPROCESSOR || LOCKDEBUG */ /* * UVM_PAGE_OWN: track page ownership (only if UVM_PAGE_TRKOWN) */ #if defined(UVM_PAGE_TRKOWN) - #define UVM_PAGE_OWN(PG, TAG) uvm_page_own(PG, TAG) - -#else /* UVM_PAGE_TRKOWN */ - +#else #define UVM_PAGE_OWN(PG, TAG) /* nothing */ - #endif /* UVM_PAGE_TRKOWN */ /* @@ -183,4 +197,6 @@ UVMHIST_DECL(pdhist); #include #include +#endif /* _KERNEL */ + #endif /* _UVM_UVM_H_ */