X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Kernel%2Farch%2Fx86%2Fmm_phys.c;h=1b79650bd6e75ac47b1a0ed55a37524669e483de;hb=77ed20ce9d7e25654215980d0f89e63b8dd366f0;hp=82c45c37e1380dbb93a12129055b5c3da8b1d9eb;hpb=03b6bf4d927e84b6be07ebe7181254faf896f267;p=tpg%2Facess2.git diff --git a/Kernel/arch/x86/mm_phys.c b/Kernel/arch/x86/mm_phys.c index 82c45c37..1b79650b 100644 --- a/Kernel/arch/x86/mm_phys.c +++ b/Kernel/arch/x86/mm_phys.c @@ -102,7 +102,6 @@ tPAddr MM_AllocPhys() } for(b=0;gaSuperBitmap[a]&(1<0;c++); // Mark page used if(gaPageReferences) @@ -117,8 +116,47 @@ tPAddr MM_AllocPhys() // Release Spinlock RELEASE( &giPhysAlloc ); - //LOG("Allocated 0x%x\n", ret); - //LOG("ret = %x", ret); + + return ret; +} + +/** + * \fn tPAddr MM_AllocPhysRange(int Pages) + * \brief Allocate a range of physical pages + * \param Pages Number of pages to allocate + */ +tPAddr MM_AllocPhysRange(int Pages) +{ + int num = giPageCount / 32 / 32; + int a, b, c; + Uint32 ret; + + LOCK( &giPhysAlloc ); + + // Find free page + for(a=0;gaSuperBitmap[a]==-1&&a