Start of work to move static variables into pages.

A little more clean up
More items on the TODO list (take one off, add 3 more).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@908 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Michael Phipps
2002-08-28 03:26:23 +00:00
parent 8a024de485
commit a608664c47
3 changed files with 20 additions and 8 deletions
+7 -6
View File
@@ -1,6 +1,7 @@
1) Need to make the paging daemon load the pages in, using semaphores.
2) See how unresolvable page faults and permissions errors are handled - need to properly handle
3) Tests are not done.
2) Make the caching and the VM (mmap) work together so that an mmap'ed file and a cached file will not race.
3) Change the architecture so that instead of multiple static globals, everything is stored in pages.
4) Tests are not done.
Test:
getNextAreaInfo
cloneArea
@@ -10,7 +11,7 @@
paging
disk caching
4) Improve locking (remains to be seen - works ok so far)
5) I use new and delete. I know that doesn't work in kernel land. Not too tough to change, though.
- Pooling is now used for everything but pages
6) There is no arch-level integration. This is to be tested (to death) in user land first. * == can not be done in user land.
5) Improve locking (remains to be seen - works ok so far)
6) See how unresolvable page faults and permissions errors are handled - need to properly handle
- This may have to come at HW integration time, since they will be app signals, etc...
7) There is no arch-level integration. This is to be tested (to death) in user land first. * == can not be done in user land.
+3 -2
View File
@@ -3,10 +3,11 @@
#include <vpagePool.h>
extern poolvpage vpagePool;
// TODO - we need to (somehow) make sure that the same vnodes here are shared with mmap.
// Maybe a vnode manager...
cacheManager::cacheManager(void) : area ()
{
myLock=create_sem(1,"Area Manager Semaphore"); // Should have team name in it.
myLock=create_sem(1,"Cache Manager Semaphore");
}
void *cacheManager::findBlock(vnode *target,bool readOnly)
+10
View File
@@ -26,4 +26,14 @@ enum addressSpec {EXACT,BASE,ANY,ANY_KERNEL,CLONE};
#define CACHE_BEGIN 0x90000000
#define CACHE_END 0xe0000000
struct vmHeaderBlock
{
poolarea areaPool;
poolvpage vpagePool;
poolvnode vnodePool;
pageManager pageMan(30); // Obviously this hard coded number is a hack...
swapFileManager swapMan;
cacheManager cacheMan;
};
#endif