From 02d7fc9a69a66cbb434c775453d9d7ebcbd98709 Mon Sep 17 00:00:00 2001 From: Josh Holtrop Date: Sun, 7 Sep 2003 22:00:00 -0400 Subject: [PATCH] Import backup from 2003-09-07 --- kernel.c | 2 +- mm.c | 29 ++++++++++++++++------------- vhs.c => vfs.c | 0 3 files changed, 17 insertions(+), 14 deletions(-) rename vhs.c => vfs.c (100%) diff --git a/kernel.c b/kernel.c index f58fcd6..45d7c2f 100644 --- a/kernel.c +++ b/kernel.c @@ -31,7 +31,7 @@ void k_init() outportb(0x43, 0x34); outportb(0x40, 0x9c); //lsb outportb(0x40, 0x2e); //msb -// video_init((ModeInfoBlock *) 0x90306); + video_init((ModeInfoBlock *) 0x90306); mm_init(); int a; for (a=0; a<512; a++) diff --git a/mm.c b/mm.c index 53bd308..9d9c0ef 100644 --- a/mm.c +++ b/mm.c @@ -26,7 +26,7 @@ void mm_init() } if (first_pageblock == 0) //no pageblock page set up yet, so set it up here { - first_pageblock = (pageblock *) maps[a].base.lowdword; + first_pageblock = (pageblock *) maps[a].base.lowdword ; maps[a].base.lowdword += 4096; maps[a].limit.lowdword -= 4096; mm_init_pageblockpage(first_pageblock); @@ -163,18 +163,21 @@ int mm_pfree(void *ptr) pageblock *pbc = first_pageblock; for (;;) { - if ((pbc->base + (pbc->length * 4096)) == pb->base) //pbc ends where pb starts - { - pbc->length += pb->length; //extend pbc's length by pb's length - pb->flags = MM_PB_NP; //mark pb as an unused entry - return 0; - } - if ((pb->base + (pb->length * 4096)) == pbc->base) //pb ends where pb starts - { - pb->length += pbc->length; - pbc->flags = MM_PB_NP; - return 0; - } + if (pbc->flags == MM_PB_AVAIL) + { + if ((pbc->base + (pbc->length * 4096)) == pb->base) //pbc ends where pb starts + { + pbc->length += pb->length; //extend pbc's length by pb's length + pb->flags = MM_PB_NP; //mark pb as an unused entry + return 0; + } + if ((pb->base + (pb->length * 4096)) == pbc->base) //pb ends where pb starts + { + pb->length += pbc->length; + pbc->flags = MM_PB_NP; + return 0; + } + } if (pbc->link == 0) //no entry found to consolidate... return 0; pbc = (pageblock *) pbc->link; //next entry to test diff --git a/vhs.c b/vfs.c similarity index 100% rename from vhs.c rename to vfs.c