Exemple #1
0
        /// <summary>
        /// Setups the free memory.
        /// </summary>
        private static void SetupFreeMemory()
        {
            uint cnt = 0;

            if (!Multiboot.IsMultiboot())
            {
                return;
            }

            for (uint index = 0; index < Multiboot.MemoryMapCount; index++)
            {
                uint value = (uint)Multiboot.GetMemoryMapType(index);

                Mosa.HelloWorld.Screen.SetCursor(22, index);
                Mosa.HelloWorld.Screen.Write(value);

                ulong start = Multiboot.GetMemoryMapBase(index);
                ulong size  = Multiboot.GetMemoryMapLength(index);

                if (value == 1)
                {
                    AddFreeMemory(cnt++, (uint)start, (uint)size);
                }
            }
        }