• R/O
  • SSH
  • HTTPS

nos: 提交


Commit MetaInfo

修訂359 (tree)
時間2009-10-22 18:47:37
作者uchan_nos

Log Message

起動時に測定した物理メモリサイズをグローバル変数に格納するようにした
空きメモリの容量を取得できるようにした

Change Summary

差異

--- bitnos5/trunk/kernel/boot.cpp (revision 358)
+++ bitnos5/trunk/kernel/boot.cpp (revision 359)
@@ -120,12 +120,11 @@
120120 IDT::Init();
121121
122122 // メモリ容量の取得
123- uint32_t memsize;
124- memsize = GetPhysicalMemoryCapacity(0x01200000, 0xc0000000);
123+ physicalMemorySize = GetPhysicalMemoryCapacity(0x01200000, 0xc0000000);
125124
126125 // メモリ管理情報は0x00300000 - 0x003c0000 (768KB)
127126 //memman.Init(0x01200000, memsize, (MemInfo*)0x00300000);
128- memman.Init(0x01200000, memsize - 0x01200000);
127+ memman.Init(0x01200000, physicalMemorySize - 0x01200000);
129128
130129 // メッセージキュー
131130 Queue<Message> queueMain(128);
@@ -223,7 +222,7 @@
223222 // タスクスケジューリング開始
224223 taskman->StartScheduling();
225224
226- Debug::WriteLine("mem = %d MB", memsize >> 20);
225+ Debug::WriteLine("mem = %d MB", physicalMemorySize >> 20);
227226
228227 /*
229228 for (int i = 0; i <= shtman->top; i++) {
--- bitnos5/trunk/kernel/memory.cpp (revision 358)
+++ bitnos5/trunk/kernel/memory.cpp (revision 359)
@@ -439,6 +439,17 @@
439439 }
440440 }
441441
442+uint32_t MemoryManager::GetFreeSize()
443+{
444+ MemInfo* mi = freeBegin;
445+ uint32_t sum = 0;
446+ while (mi != 0) {
447+ sum += mi->size;
448+ mi = mi->next;
449+ }
450+ return sum;
451+}
452+
442453 uint32_t MemoryManager::Floor(uint32_t value)
443454 {
444455 // 切捨て
@@ -551,4 +562,5 @@
551562 return s1;
552563 }
553564
565+uint32_t physicalMemorySize;
554566
--- bitnos5/trunk/include/bitnos/memory.h (revision 358)
+++ bitnos5/trunk/include/bitnos/memory.h (revision 359)
@@ -122,6 +122,9 @@
122122 // メモリ開放
123123 void Free(void* ptr);
124124
125+ // 空き領域取得
126+ uint32_t GetFreeSize();
127+
125128 private:
126129 // Alignmentの切り上げ
127130 uint32_t Floor(uint32_t value);
@@ -140,4 +143,6 @@
140143
141144 extern MemoryManager memman;
142145
146+extern uint32_t physicalMemorySize;
147+
143148 #endif /* MEMORY_H_ */
Show on old repository browser