kernel: export freepages() function so it can be used in mmurelease()

This commit is contained in:
cinap_lenrek 2019-05-01 10:07:39 +02:00
parent a6ee23a739
commit b452f8857f
2 changed files with 11 additions and 5 deletions

View file

@ -82,15 +82,14 @@ pagechaindone(void)
wakeup(&palloc.pwait[1]);
}
static void
void
freepages(Page *head, Page *tail, ulong np)
{
lock(&palloc);
assert(palloc.Lock.p == up);
tail->next = palloc.head;
palloc.head = head;
palloc.freecount += np;
pagechaindone();
unlock(&palloc);
}
ulong
@ -142,8 +141,11 @@ pagereclaim(Image *i, ulong pages)
unlock(i);
putimage(i);
if(np > 0)
if(np > 0){
lock(&palloc);
freepages(fh, ft, np);
unlock(&palloc);
}
return np;
}
@ -238,8 +240,11 @@ putpage(Page *p)
decref(p);
return;
}
if(decref(p) == 0)
if(decref(p) == 0){
lock(&palloc);
freepages(p, p, 1);
unlock(&palloc);
}
}
void

View file

@ -117,6 +117,7 @@ void free(void*);
void freeb(Block*);
void freeblist(Block*);
int freebroken(void);
void freepages(Page*, Page*, ulong);
void freepte(Segment*, Pte*);
void getcolor(ulong, ulong*, ulong*, ulong*);
uintptr getmalloctag(void*);