From 2daf8b32c747e43adc18ed7619afc18321f4d3ed Mon Sep 17 00:00:00 2001 From: Ulf Wohlers Date: Thu, 24 Jul 2003 19:13:58 +0000 Subject: [PATCH] Added MEM_AllocatedPages. Get amount of allocated pages of handle Imported-from: https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk@1148 --- include/mem.h | 1 + src/hardware/memory.cpp | 10 +++++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/include/mem.h b/include/mem.h index 61d53312..509a4416 100644 --- a/include/mem.h +++ b/include/mem.h @@ -38,6 +38,7 @@ HostPt MEM_GetBlockPage(void); Bitu MEM_FreeTotal(void); //Free 4 kb pages Bitu MEM_FreeLargest(void); //Largest free 4 kb pages block Bitu MEM_TotalPages(void); //Total amount of 4 kb pages +Bitu MEM_AllocatedPages(MemHandle handle); // amount of allocated pages of handle MemHandle MEM_AllocatePages(Bitu pages,bool sequence); PhysPt MEM_AllocatePage(void); void MEM_ReleasePages(MemHandle handle); diff --git a/src/hardware/memory.cpp b/src/hardware/memory.cpp index d10e41cc..94e5b51a 100644 --- a/src/hardware/memory.cpp +++ b/src/hardware/memory.cpp @@ -468,7 +468,6 @@ Bitu MEM_FreeLargest(void) { return largest; } - Bitu MEM_FreeTotal(void) { Bitu free=0; Bitu index=XMS_START; @@ -479,6 +478,15 @@ Bitu MEM_FreeTotal(void) { return free; } +Bitu MEM_AllocatedPages(MemHandle handle) +{ + Bitu pages = 0; + while (handle>0) { + pages++; + handle=memory.entries[handle].next_handle; + } + return pages; +} //TODO Maybe some protection for this whole allocation scheme