diff --git a/source/Cosmos.Kernel.FileSystems/Cosmos.FileSystem.csproj b/source/Cosmos.Kernel.FileSystems/Cosmos.FileSystem.csproj index 53a9901fc..f9cbcb7fe 100644 --- a/source/Cosmos.Kernel.FileSystems/Cosmos.FileSystem.csproj +++ b/source/Cosmos.Kernel.FileSystems/Cosmos.FileSystem.csproj @@ -27,6 +27,7 @@ DEBUG;TRACE prompt 4 + true pdbonly @@ -46,6 +47,17 @@ + + + + + + + + + + + diff --git a/source/Cosmos/Cosmos.Kernel/Old/FileSystem/Ext2.Structs.cs b/source/Cosmos.Kernel.FileSystems/Old/Ext2.Structs.cs similarity index 100% rename from source/Cosmos/Cosmos.Kernel/Old/FileSystem/Ext2.Structs.cs rename to source/Cosmos.Kernel.FileSystems/Old/Ext2.Structs.cs diff --git a/source/Cosmos/Cosmos.Kernel/Old/FileSystem/Ext2.cs b/source/Cosmos.Kernel.FileSystems/Old/Ext2.cs similarity index 74% rename from source/Cosmos/Cosmos.Kernel/Old/FileSystem/Ext2.cs rename to source/Cosmos.Kernel.FileSystems/Old/Ext2.cs index ea127879c..83760523c 100644 --- a/source/Cosmos/Cosmos.Kernel/Old/FileSystem/Ext2.cs +++ b/source/Cosmos.Kernel.FileSystems/Old/Ext2.cs @@ -64,8 +64,9 @@ namespace Cosmos.Kernel.FileSystem { return -1; } int xBytesToRead = count; - byte* xBuffer = (byte*)Heap.MemAlloc(mFilesystem.mBlockSize); - while (xBytesToRead > 0) { + //byte* xBuffer = (byte*)Heap.MemAlloc(mFilesystem.mBlockSize); + byte* xBuffer = null; + while (xBytesToRead > 0) { if (!mFilesystem.ReadINodeContents(&xINode, xBlock, xBuffer)) { return -2; } @@ -112,9 +113,9 @@ namespace Cosmos.Kernel.FileSystem { fixed (byte* xByteBuff = &xBytes[0]) { var xByteBuffAsSuperBlock = (SuperBlock*)xByteBuff; mSuperBlock = xByteBuffAsSuperBlock[0]; - DebugUtil.SendExt2_SuperBlock("", mSuperBlock); +// DebugUtil.SendExt2_SuperBlock("", mSuperBlock); mBlockSize = (uint)(1024 << (byte)(mSuperBlock.LogBlockSize)); - DebugUtil.SendDoubleNumber("Numbers", "", mSuperBlock.INodesCount, 32, mSuperBlock.INodesPerGroup, 32); +// DebugUtil.SendDoubleNumber("Numbers", "", mSuperBlock.INodesCount, 32, mSuperBlock.INodesPerGroup, 32); mGroupsCount = mSuperBlock.INodesCount / mSuperBlock.INodesPerGroup; mGroupDescriptorsPerBlock = (uint)(mBlockSize / sizeof(GroupDescriptor)); if (!ReadGroupDescriptorsOfBlock()) { @@ -129,7 +130,7 @@ namespace Cosmos.Kernel.FileSystem { mGroupDescriptors = new GroupDescriptor[mGroupsCount]; GroupDescriptor* xDescriptorPtr=(GroupDescriptor*)0; for (int i = 0; i < mGroupsCount; i++) { - DebugUtil.SendNumber("Ext2", "ReadGroupDescriptorsOfBlock, I", (uint)i, 16); +// DebugUtil.SendNumber("Ext2", "ReadGroupDescriptorsOfBlock, I", (uint)i, 16); uint xATABlock = (uint)(mBlockSize / mBackend.BlockSize); xATABlock += (uint)(i / mGroupDescriptorsPerBlock); if ((i % 16) == 0) { @@ -138,10 +139,10 @@ namespace Cosmos.Kernel.FileSystem { xDescriptorPtr = (GroupDescriptor*)xDescriptorPtr2; } } - GroupDescriptor* xItem = (GroupDescriptor*)Heap.MemAlloc((uint)sizeof(GroupDescriptor)); - CopyPointers((byte*)&xDescriptorPtr[i % mGroupDescriptorsPerBlock], (byte*)xItem, (uint)sizeof(GroupDescriptor)); - mGroupDescriptors[i] = *xItem; - DebugUtil.SendExt2_GroupDescriptor("ReadGroupDescriptorsOfBlock", xATABlock, i, 0, xDescriptorPtr[i % mGroupDescriptorsPerBlock]); + //GroupDescriptor* xItem = (GroupDescriptor*)Heap.MemAlloc((uint)sizeof(GroupDescriptor)); + //CopyPointers((byte*)&xDescriptorPtr[i % mGroupDescriptorsPerBlock], (byte*)xItem, (uint)sizeof(GroupDescriptor)); + //mGroupDescriptors[i] = *xItem; +// DebugUtil.SendExt2_GroupDescriptor("ReadGroupDescriptorsOfBlock", xATABlock, i, 0, xDescriptorPtr[i % mGroupDescriptorsPerBlock]); } return true; } @@ -241,28 +242,30 @@ namespace Cosmos.Kernel.FileSystem { } private unsafe bool ReadINode(uint aINodeNumber, out INode aINode) { - DebugUtil.SendNumber("Ext2", "reading INode", aINodeNumber, 32); - aINodeNumber--; - uint xGroup = aINodeNumber / mSuperBlock.INodesPerGroup; - DebugUtil.SendNumber("Ext2", "xGroup", xGroup, 32); - uint xIndex = (aINodeNumber % mSuperBlock.INodesPerGroup) * mSuperBlock.INodeSize; - DebugUtil.SendNumber("Ext2", "xIndex", xIndex, 32); - uint xOffset = xIndex % mBlockSize; - DebugUtil.SendNumber("Ext2", "xOffset", xOffset, 32); - uint xLogBlockNumber = mGroupDescriptors[xGroup].INodeTable; - DebugUtil.SendNumber("Ext2", "InodeBitmap", mGroupDescriptors[xGroup].INodeBitmap, 32); - DebugUtil.SendNumber("Ext2", "xLogBlockNumber(1)", xLogBlockNumber, 32); - xLogBlockNumber += (xIndex / mBlockSize); - DebugUtil.SendNumber("Ext2", "xLogBlockNumber(2)", xLogBlockNumber, 32); - uint xPhBlockNumber = (xLogBlockNumber * mBlockSize) / mBackend.BlockSize; - xPhBlockNumber += xIndex / mBackend.BlockSize; - xIndex %= mBackend.BlockSize; - var xBytes = mBackend.ReadBlock(xPhBlockNumber); - DebugUtil.SendNumber("Ext2", "BlockOffset", xIndex, 32); - fixed (byte* xINodePtr = &xBytes[xIndex]) { - aINode = *(INode*)xINodePtr; - } - return true; + //DebugUtil.SendNumber("Ext2", "reading INode", aINodeNumber, 32); + //aINodeNumber--; + //uint xGroup = aINodeNumber / mSuperBlock.INodesPerGroup; + //DebugUtil.SendNumber("Ext2", "xGroup", xGroup, 32); + //uint xIndex = (aINodeNumber % mSuperBlock.INodesPerGroup) * mSuperBlock.INodeSize; + //DebugUtil.SendNumber("Ext2", "xIndex", xIndex, 32); + //uint xOffset = xIndex % mBlockSize; + //DebugUtil.SendNumber("Ext2", "xOffset", xOffset, 32); + //uint xLogBlockNumber = mGroupDescriptors[xGroup].INodeTable; + //DebugUtil.SendNumber("Ext2", "InodeBitmap", mGroupDescriptors[xGroup].INodeBitmap, 32); + //DebugUtil.SendNumber("Ext2", "xLogBlockNumber(1)", xLogBlockNumber, 32); + //xLogBlockNumber += (xIndex / mBlockSize); + //DebugUtil.SendNumber("Ext2", "xLogBlockNumber(2)", xLogBlockNumber, 32); + //uint xPhBlockNumber = (xLogBlockNumber * mBlockSize) / mBackend.BlockSize; + uint xPhBlockNumber = 0; + //xPhBlockNumber += xIndex / mBackend.BlockSize; + //xIndex %= mBackend.BlockSize; + var xBytes = mBackend.ReadBlock(xPhBlockNumber); + //DebugUtil.SendNumber("Ext2", "BlockOffset", xIndex, 32); + //fixed (byte* xINodePtr = &xBytes[xIndex]) { + fixed (byte* xINodePtr = &xBytes[0]) { + aINode = *(INode*)xINodePtr; + } + return true; } /// @@ -331,30 +334,31 @@ namespace Cosmos.Kernel.FileSystem { if (xSize > mBackend.BlockSize) { xSize = mBackend.BlockSize; } - DebugUtil.SendNumber("Ext2", "ReadFile, Block1", xINode.Block1, 32); - byte* xBuff = (byte*)Heap.MemAlloc(mBlockSize); +// DebugUtil.SendNumber("Ext2", "ReadFile, Block1", xINode.Block1, 32); + //byte* xBuff = (byte*)Heap.MemAlloc(mBlockSize); try { - if (!ReadINodeContents(&xINode, 0, xBuff)) { + //if (!ReadINodeContents(&xINode, 0, xBuff)) { return null; - } + //} byte[] xResult = new byte[xSize]; for (int i = 0; i < xSize; i++) { - xResult[i] = xBuff[i]; + //xResult[i] = xBuff[i]; } return xResult; } finally { - Heap.MemFree((uint)xBuff); + //Heap.MemFree((uint)xBuff); } } private bool GetINodeByName(string[] aPath, out INode aINode) { - ushort* xBuffer = (ushort*)Heap.MemAlloc(mBackend.BlockSize); - byte* xExt2BlockBuffer = (byte*)Heap.MemAlloc(mBlockSize); - INode xCurrentINode = new INode(); + //ushort* xBuffer = (ushort*)Heap.MemAlloc(mBackend.BlockSize); + //byte* xExt2BlockBuffer = (byte*)Heap.MemAlloc(mBlockSize); + byte* xExt2BlockBuffer = null; + INode xCurrentINode = new INode(); aINode = xCurrentINode; if (!ReadINode(EXT2_ROOT_INO, out xCurrentINode)) { - Heap.MemFree((uint)xBuffer); - Heap.MemFree((uint)xExt2BlockBuffer); +// Heap.MemFree((uint)xBuffer); +// Heap.MemFree((uint)xExt2BlockBuffer); return false; } bool xCurrentINodeChanged = true; @@ -365,20 +369,20 @@ namespace Cosmos.Kernel.FileSystem { Console.WriteLine(""); if (!xCurrentINodeChanged) { Console.WriteLine("Terminating for loop, CurrentINode didn't change"); - Heap.MemFree((uint)xBuffer); - Heap.MemFree((uint)xExt2BlockBuffer); +// Heap.MemFree((uint)xBuffer); +// Heap.MemFree((uint)xExt2BlockBuffer); return false; } xCurrentINodeChanged = false; if (!ReadINodeContents(&xCurrentINode, 0, xExt2BlockBuffer)) { - Heap.MemFree((uint)xBuffer); - Heap.MemFree((uint)xExt2BlockBuffer); +// Heap.MemFree((uint)xBuffer); +// Heap.MemFree((uint)xExt2BlockBuffer); return false; } DirectoryEntry* xEntryPtr = (DirectoryEntry*)xExt2BlockBuffer; uint xTotalSize = mBlockSize; while (xTotalSize != 0) { - DebugUtil.SendExt2_DirectoryEntry(xEntryPtr); +// DebugUtil.SendExt2_DirectoryEntry(xEntryPtr); uint xPtrAddress = (uint)xEntryPtr; char[] xName = new char[xEntryPtr->NameLength]; byte* xNamePtr = &xEntryPtr->FirstNameChar; @@ -388,8 +392,8 @@ namespace Cosmos.Kernel.FileSystem { xInspectedINodeCount++; if (EqualsName(aPath[i], xName)) { if (!ReadINode(xEntryPtr->INodeNumber, out xCurrentINode)) { - Heap.MemFree((uint)xBuffer); - Heap.MemFree((uint)xExt2BlockBuffer); +// Heap.MemFree((uint)xBuffer); + //Heap.MemFree((uint)xExt2BlockBuffer); return false; } xCurrentINodeChanged = true; @@ -408,23 +412,24 @@ namespace Cosmos.Kernel.FileSystem { public string[] GetDirectoryEntries(string[] aPath) { List xResult = new List(32); INode xINode; - byte* xExt2BlockBuffer = (byte*)Heap.MemAlloc(mBlockSize); - if (!GetINodeByName(aPath, out xINode)) { + //byte* xExt2BlockBuffer = (byte*)Heap.MemAlloc(mBlockSize); + byte* xExt2BlockBuffer = null; + if (!GetINodeByName(aPath, out xINode)) { throw new Exception("Couldn't find path!"); } if ((xINode.Mode & INodeModeEnum.Directory) == 0) { Console.WriteLine("Ext2|GetDirectoryEntries, No directory after for loop"); return null; } - if (!ReadINodeContents(&xINode, 0, xExt2BlockBuffer)) { - Heap.MemFree((uint)xExt2BlockBuffer); +// if (!ReadINodeContents(&xINode, 0, xExt2BlockBuffer)) { +// Heap.MemFree((uint)xExt2BlockBuffer); return null; - } +// } DirectoryEntry* xEntry = (DirectoryEntry*)xExt2BlockBuffer; uint xSize = mBlockSize; - DebugUtil.SendMessage("Ext2", "GetDirectoryEntries"); +// DebugUtil.SendMessage("Ext2", "GetDirectoryEntries"); while (xSize != 0) { - DebugUtil.SendExt2_DirectoryEntry(xEntry); +// DebugUtil.SendExt2_DirectoryEntry(xEntry); uint xPtrAddress = (uint)xEntry; char[] xName = new char[xEntry->NameLength]; byte* xNamePtr = &xEntry->FirstNameChar; @@ -437,7 +442,7 @@ namespace Cosmos.Kernel.FileSystem { xSize -= xEntry->RecordLength; xEntry = (DirectoryEntry*)xPtrAddress; } - Heap.MemFree((uint)xExt2BlockBuffer); +// Heap.MemFree((uint)xExt2BlockBuffer); return xResult.ToArray(); } diff --git a/source/Cosmos/Cosmos.Kernel/Old/FileSystem/Ext2Old.Structs.cs b/source/Cosmos.Kernel.FileSystems/Old/Ext2Old.Structs.cs similarity index 100% rename from source/Cosmos/Cosmos.Kernel/Old/FileSystem/Ext2Old.Structs.cs rename to source/Cosmos.Kernel.FileSystems/Old/Ext2Old.Structs.cs diff --git a/source/Cosmos/Cosmos.Kernel/Old/FileSystem/Ext2Old.cs b/source/Cosmos.Kernel.FileSystems/Old/Ext2Old.cs similarity index 93% rename from source/Cosmos/Cosmos.Kernel/Old/FileSystem/Ext2Old.cs rename to source/Cosmos.Kernel.FileSystems/Old/Ext2Old.cs index 8d342889d..40f172b7e 100644 --- a/source/Cosmos/Cosmos.Kernel/Old/FileSystem/Ext2Old.cs +++ b/source/Cosmos.Kernel.FileSystems/Old/Ext2Old.cs @@ -24,8 +24,9 @@ namespace Cosmos.Kernel.FileSystem { } public static unsafe void PrintAllFilesAndDirectories(byte aController, byte aDrive) { - ushort* xBuffer = (ushort*)Heap.MemAlloc(512); - if (!Hardware.Storage.ATAOld.ReadDataNew(aController, aDrive, 2, xBuffer)) { + //ushort* xBuffer = (ushort*)Heap.MemAlloc(512); + ushort* xBuffer = null; + if (!Hardware.Storage.ATAOld.ReadDataNew(aController, aDrive, 2, xBuffer)) { Console.WriteLine("[Ext2|SuperBlock] Error while reading SuperBlock data"); return; } @@ -82,7 +83,7 @@ namespace Cosmos.Kernel.FileSystem { xName[c] = (char)xNamePtr[c]; } string s = new String(xName); - DebugUtil.SendMessage("Ext2, DirectoryEntryName", s); +// DebugUtil.SendMessage("Ext2, DirectoryEntryName", s); //} xPtrAddress += xEntryPtr->RecordLength; xTotalSize -= xEntryPtr->RecordLength; @@ -94,12 +95,13 @@ namespace Cosmos.Kernel.FileSystem { } } - DebugUtil.SendNumber("Ext2", "Used INode count", xCount, 32); +// DebugUtil.SendNumber("Ext2", "Used INode count", xCount, 32); } public static unsafe byte[] ReadFile(byte aController, byte aDrive, string[] xPath) { - ushort* xBuffer = (ushort*)Heap.MemAlloc(512); - if (!Hardware.Storage.ATAOld.ReadDataNew(aController, aDrive, 2, xBuffer)) { + //ushort* xBuffer = (ushort*)Heap.MemAlloc(512); + ushort* xBuffer = null; + if (!Hardware.Storage.ATAOld.ReadDataNew(aController, aDrive, 2, xBuffer)) { Console.WriteLine("[Ext2|SuperBlock] Error while reading SuperBlock data"); return null; } @@ -135,7 +137,7 @@ namespace Cosmos.Kernel.FileSystem { Hardware.Storage.ATAOld.WriteNumber(xCurrentINode, 32); Console.WriteLine(""); - DebugUtil.SendNumber("Ext2", "Current INode", xCurrentINode, 32); +// DebugUtil.SendNumber("Ext2", "Current INode", xCurrentINode, 32); for (uint g = 0; g < xGroupDescriptors.Length; g++) { GroupDescriptor xGroupDescriptor = xGroupDescriptors[g]; if (!Hardware.Storage.ATAOld.ReadDataNew(aController, aDrive, (int)((xGroupDescriptor.INodeBitmap) * 8), xBuffer)) { diff --git a/source/Cosmos/Cosmos.Kernel/Old/FileSystem/Fat16.cs b/source/Cosmos.Kernel.FileSystems/Old/Fat16.cs similarity index 100% rename from source/Cosmos/Cosmos.Kernel/Old/FileSystem/Fat16.cs rename to source/Cosmos.Kernel.FileSystems/Old/Fat16.cs diff --git a/source/Cosmos/Cosmos.Kernel/Old/FileSystem/File.cs b/source/Cosmos.Kernel.FileSystems/Old/File.cs similarity index 100% rename from source/Cosmos/Cosmos.Kernel/Old/FileSystem/File.cs rename to source/Cosmos.Kernel.FileSystems/Old/File.cs diff --git a/source/Cosmos/Cosmos.Kernel/Old/FileSystem/FileSystem.cs b/source/Cosmos.Kernel.FileSystems/Old/FileSystem.cs similarity index 100% rename from source/Cosmos/Cosmos.Kernel/Old/FileSystem/FileSystem.cs rename to source/Cosmos.Kernel.FileSystems/Old/FileSystem.cs diff --git a/source/Cosmos/Cosmos.Kernel/Old/FileSystem/FileSystem2.cs b/source/Cosmos.Kernel.FileSystems/Old/FileSystem2.cs similarity index 100% rename from source/Cosmos/Cosmos.Kernel/Old/FileSystem/FileSystem2.cs rename to source/Cosmos.Kernel.FileSystems/Old/FileSystem2.cs diff --git a/source/Cosmos/Cosmos.Kernel/Old/FileSystem/ISO9660.cs b/source/Cosmos.Kernel.FileSystems/Old/ISO9660.cs similarity index 100% rename from source/Cosmos/Cosmos.Kernel/Old/FileSystem/ISO9660.cs rename to source/Cosmos.Kernel.FileSystems/Old/ISO9660.cs diff --git a/source/Cosmos/Cosmos.Kernel/Old/FileSystem/Path.cs b/source/Cosmos.Kernel.FileSystems/Old/Path.cs similarity index 100% rename from source/Cosmos/Cosmos.Kernel/Old/FileSystem/Path.cs rename to source/Cosmos.Kernel.FileSystems/Old/Path.cs diff --git a/source/Cosmos/Cosmos.Kernel/Old/FileSystem/TestsMatthijs.cs b/source/Cosmos.Kernel.FileSystems/Old/TestsMatthijs.cs similarity index 100% rename from source/Cosmos/Cosmos.Kernel/Old/FileSystem/TestsMatthijs.cs rename to source/Cosmos.Kernel.FileSystems/Old/TestsMatthijs.cs diff --git a/source/Cosmos/Cosmos.Kernel/Cosmos.Kernel.csproj b/source/Cosmos/Cosmos.Kernel/Cosmos.Kernel.csproj index d42770de7..a030d2602 100644 --- a/source/Cosmos/Cosmos.Kernel/Cosmos.Kernel.csproj +++ b/source/Cosmos/Cosmos.Kernel/Cosmos.Kernel.csproj @@ -47,15 +47,10 @@ - - - - - - + - + @@ -74,12 +69,6 @@ - - - - - - diff --git a/source/Cosmos/Cosmos.Kernel/Debug.cs b/source/Cosmos/Cosmos.Kernel/Debug.cs new file mode 100644 index 000000000..26c533a45 --- /dev/null +++ b/source/Cosmos/Cosmos.Kernel/Debug.cs @@ -0,0 +1,771 @@ + +namespace Cosmos.Kernel { + public static class DebugUtil { + public static void Initialize() { + Hardware.DebugUtil.Initialize(); + } + + private static void StartLogging() { + Hardware.DebugUtil.StartLogging(); + } + + private static void EndLogging() { + Hardware.DebugUtil.EndLogging(); + } + + public static void SendNumber(string aModule, string aDescription, uint aNumber, byte aBits) { + StartLogging(); + Hardware.DebugUtil.WriteSerialString("\r\n"); + EndLogging(); + } + + public static void SendTestCase(string testcase) { + StartLogging(); + Hardware.DebugUtil.WriteSerialString("\r\n"); + EndLogging(); + } + + public static void SendTestAssert(bool condition, string message) { + StartLogging(); + Hardware.DebugUtil.WriteSerialString("\r\n"); + EndLogging(); + } + + public static void SendDoubleNumber(string aModule, string aDescription, uint aNumber, byte aBits, uint aNumber2, byte aBits2) { + StartLogging(); + Hardware.DebugUtil.WriteSerialString("\r\n"); + EndLogging(); + } + + public static void SendMessage(string aModule, string aData) { + StartLogging(); + Hardware.DebugUtil.WriteSerialString("\r\n"); + EndLogging(); + } + + public static void SendKeyboardEvent(uint aScanCode, bool aReleased) { + StartLogging(); + Hardware.DebugUtil.WriteSerialString("\r\n"); + EndLogging(); + } + + public static void SendError(string aModule, string aData) { + StartLogging(); + Hardware.DebugUtil.WriteSerialString("\r\n"); + EndLogging(); + } + + public static void SendError(string aModule, string aDescription, uint aData, byte aBits) { + StartLogging(); + Hardware.DebugUtil.WriteSerialString("\r\n"); + EndLogging(); + } + + public static void SendWarning(string aModule, string aData) { + StartLogging(); + Hardware.DebugUtil.WriteSerialString("\r\n"); + EndLogging(); + } + + public static void SendMM_Alloc(uint aStartAddr, uint aLength) { + StartLogging(); + Hardware.DebugUtil.WriteSerialString("\r\n"); + EndLogging(); + } + + public static void SendMM_Init(uint aStartAddr, uint aLength) { + StartLogging(); + Hardware.DebugUtil.WriteSerialString("\r\n"); + EndLogging(); + } + + public static void SendMM_Free(uint aStartAddr, uint aLength) { + StartLogging(); + Hardware.DebugUtil.WriteSerialString("\r\n"); + EndLogging(); + } + + //internal static void SendExt2_GroupDescriptor(string aDescription, uint aBlock, int aIndex, uint aAddresss, FileSystem.Ext2.GroupDescriptor aDescriptor) { + // StartLogging(); + // Hardware.DebugUtil.WriteSerialString("\r\n"); + // EndLogging(); + //} + + //internal static unsafe void SendExt2_SuperBlock(string aDescription, FileSystem.Ext2.SuperBlock aSuperBlock) { + // StartLogging(); + // Hardware.DebugUtil.WriteSerialString("\r\n"); + // EndLogging(); + //} + + //internal static void SendExt2_INodeMode(uint aIdentifier, ushort aMode) { + // StartLogging(); + // Hardware.DebugUtil.WriteSerialString("\r\n"); + // EndLogging(); + //} + + //internal static unsafe void SendExt2_INode(uint aIdentifier, FileSystem.Ext2.INode* aINode) { + // StartLogging(); + // Hardware.DebugUtil.WriteSerialString("Mode, 16); + // Hardware.DebugUtil.WriteSerialString("\" UID=\""); + // Hardware.DebugUtil.WriteNumber(aINode->UID, 16); + // Hardware.DebugUtil.WriteSerialString("\" Size=\""); + // Hardware.DebugUtil.WriteNumber(aINode->Size, 32); + // Hardware.DebugUtil.WriteSerialString("\" ATime=\""); + // Hardware.DebugUtil.WriteNumber(aINode->ATime, 32); + // Hardware.DebugUtil.WriteSerialString("\" CTime=\""); + // Hardware.DebugUtil.WriteNumber(aINode->CTime, 32); + // Hardware.DebugUtil.WriteSerialString("\" MTime=\""); + // Hardware.DebugUtil.WriteNumber(aINode->MTime, 32); + // Hardware.DebugUtil.WriteSerialString("\" DTime=\""); + // Hardware.DebugUtil.WriteNumber(aINode->DTime, 32); + // Hardware.DebugUtil.WriteSerialString("\" GID=\""); + // Hardware.DebugUtil.WriteNumber(aINode->GID, 16); + // Hardware.DebugUtil.WriteSerialString("\" LinksCount=\""); + // Hardware.DebugUtil.WriteNumber(aINode->LinksCount, 16); + // Hardware.DebugUtil.WriteSerialString("\" Blocks=\""); + // Hardware.DebugUtil.WriteNumber(aINode->Blocks, 32); + // Hardware.DebugUtil.WriteSerialString("\" Flags=\""); + // Hardware.DebugUtil.WriteNumber(aINode->Flags, 32); + // Hardware.DebugUtil.WriteSerialString("\" OSD1=\""); + // Hardware.DebugUtil.WriteNumber(aINode->OSD1, 32); + // Hardware.DebugUtil.WriteSerialString("\" Block1=\""); + // Hardware.DebugUtil.WriteNumber(aINode->Block1, 32); + // Hardware.DebugUtil.WriteSerialString("\" Block2=\""); + // Hardware.DebugUtil.WriteNumber(aINode->Block2, 32); + // Hardware.DebugUtil.WriteSerialString("\" Block3=\""); + // Hardware.DebugUtil.WriteNumber(aINode->Block3, 32); + // Hardware.DebugUtil.WriteSerialString("\" Block4=\""); + // Hardware.DebugUtil.WriteNumber(aINode->Block4, 32); + // Hardware.DebugUtil.WriteSerialString("\" Block5=\""); + // Hardware.DebugUtil.WriteNumber(aINode->Block5, 32); + // Hardware.DebugUtil.WriteSerialString("\" Block6=\""); + // Hardware.DebugUtil.WriteNumber(aINode->Block6, 32); + // Hardware.DebugUtil.WriteSerialString("\" Block7=\""); + // Hardware.DebugUtil.WriteNumber(aINode->Block7, 32); + // Hardware.DebugUtil.WriteSerialString("\" Block8=\""); + // Hardware.DebugUtil.WriteNumber(aINode->Block8, 32); + // Hardware.DebugUtil.WriteSerialString("\" Block9=\""); + // Hardware.DebugUtil.WriteNumber(aINode->Block9, 32); + // Hardware.DebugUtil.WriteSerialString("\" Block10=\""); + // Hardware.DebugUtil.WriteNumber(aINode->Block10, 32); + // Hardware.DebugUtil.WriteSerialString("\" Block11=\""); + // Hardware.DebugUtil.WriteNumber(aINode->Block11, 32); + // Hardware.DebugUtil.WriteSerialString("\" Block12=\""); + // Hardware.DebugUtil.WriteNumber(aINode->Block12, 32); + // Hardware.DebugUtil.WriteSerialString("\" Block13=\""); + // Hardware.DebugUtil.WriteNumber(aINode->Block13, 32); + // Hardware.DebugUtil.WriteSerialString("\" Block14=\""); + // Hardware.DebugUtil.WriteNumber(aINode->Block14, 32); + // Hardware.DebugUtil.WriteSerialString("\" Block15=\""); + // Hardware.DebugUtil.WriteNumber(aINode->Block15, 32); + // Hardware.DebugUtil.WriteSerialString("\" Generation=\""); + // Hardware.DebugUtil.WriteNumber(aINode->Generation, 32); + // Hardware.DebugUtil.WriteSerialString("\" FileACL=\""); + // Hardware.DebugUtil.WriteNumber(aINode->FileACL, 32); + // Hardware.DebugUtil.WriteSerialString("\" DirACL=\""); + // Hardware.DebugUtil.WriteNumber(aINode->DirACL, 32); + // Hardware.DebugUtil.WriteSerialString("\" FAddr=\""); + // Hardware.DebugUtil.WriteNumber(aINode->FAddr, 32); + // Hardware.DebugUtil.WriteSerialString("\" OSD2_1=\""); + // Hardware.DebugUtil.WriteNumber(aINode->OSD2_1, 32); + // Hardware.DebugUtil.WriteSerialString("\" OSD2_2=\""); + // Hardware.DebugUtil.WriteNumber(aINode->OSD2_2, 32); + // Hardware.DebugUtil.WriteSerialString("\" OSD2_3=\""); + // Hardware.DebugUtil.WriteNumber(aINode->OSD2_3, 32); + // Hardware.DebugUtil.WriteSerialString("\"/>\r\n"); + // EndLogging(); + //} + + //internal static unsafe void SendExt2_DirectoryEntry(FileSystem.Ext2.DirectoryEntry* aEntryPtr) { + // StartLogging(); + // Hardware.DebugUtil.WriteSerialString("INodeNumber, 32); + // Hardware.DebugUtil.WriteSerialString("\" RecordLength=\""); + // Hardware.DebugUtil.WriteNumber(aEntryPtr->RecordLength, 16); + // Hardware.DebugUtil.WriteSerialString("\" NameLength=\""); + // Hardware.DebugUtil.WriteNumber(aEntryPtr->NameLength, 8); + // Hardware.DebugUtil.WriteSerialString("\" FileType=\""); + // Hardware.DebugUtil.WriteNumber(aEntryPtr->FileType, 8); + // Hardware.DebugUtil.WriteSerialString("\" Name=\"0x"); + // byte* xNameByte = &aEntryPtr->FirstNameChar; + // for (int i = 0; i < aEntryPtr->NameLength; i++) { + // Hardware.DebugUtil.WriteNumber(xNameByte[i], 8, false); + // } + // Hardware.DebugUtil.WriteSerialString("\"/>\r\n"); + // EndLogging(); + //} + + internal static void SendByteStream(string aModule, string aDescription, byte[] aContents) { + StartLogging(); + Hardware.DebugUtil.WriteSerialString("\r\n"); + } + + internal static unsafe void SendBytes(string aModule, string aDescription, byte* aContents, uint aIndex, uint aCount) { + StartLogging(); + Hardware.DebugUtil.WriteSerialString("\r\n"); + } + } +} \ No newline at end of file diff --git a/source/Cosmos/Cosmos.Kernel/Old/Debug.cs b/source/Cosmos/Cosmos.Kernel/Old/Debug.cs deleted file mode 100644 index 0ed44ced4..000000000 --- a/source/Cosmos/Cosmos.Kernel/Old/Debug.cs +++ /dev/null @@ -1,771 +0,0 @@ - -namespace Cosmos.Kernel { - public static class DebugUtil { - public static void Initialize() { - Hardware.DebugUtil.Initialize(); - } - - private static void StartLogging() { - Hardware.DebugUtil.StartLogging(); - } - - private static void EndLogging() { - Hardware.DebugUtil.EndLogging(); - } - - public static void SendNumber(string aModule, string aDescription, uint aNumber, byte aBits) { - StartLogging(); - Hardware.DebugUtil.WriteSerialString("\r\n"); - EndLogging(); - } - - public static void SendTestCase(string testcase) { - StartLogging(); - Hardware.DebugUtil.WriteSerialString("\r\n"); - EndLogging(); - } - - public static void SendTestAssert(bool condition, string message) { - StartLogging(); - Hardware.DebugUtil.WriteSerialString("\r\n"); - EndLogging(); - } - - public static void SendDoubleNumber(string aModule, string aDescription, uint aNumber, byte aBits, uint aNumber2, byte aBits2) { - StartLogging(); - Hardware.DebugUtil.WriteSerialString("\r\n"); - EndLogging(); - } - - public static void SendMessage(string aModule, string aData) { - StartLogging(); - Hardware.DebugUtil.WriteSerialString("\r\n"); - EndLogging(); - } - - public static void SendKeyboardEvent(uint aScanCode, bool aReleased) { - StartLogging(); - Hardware.DebugUtil.WriteSerialString("\r\n"); - EndLogging(); - } - - public static void SendError(string aModule, string aData) { - StartLogging(); - Hardware.DebugUtil.WriteSerialString("\r\n"); - EndLogging(); - } - - public static void SendError(string aModule, string aDescription, uint aData, byte aBits) { - StartLogging(); - Hardware.DebugUtil.WriteSerialString("\r\n"); - EndLogging(); - } - - public static void SendWarning(string aModule, string aData) { - StartLogging(); - Hardware.DebugUtil.WriteSerialString("\r\n"); - EndLogging(); - } - - public static void SendMM_Alloc(uint aStartAddr, uint aLength) { - StartLogging(); - Hardware.DebugUtil.WriteSerialString("\r\n"); - EndLogging(); - } - - public static void SendMM_Init(uint aStartAddr, uint aLength) { - StartLogging(); - Hardware.DebugUtil.WriteSerialString("\r\n"); - EndLogging(); - } - - public static void SendMM_Free(uint aStartAddr, uint aLength) { - StartLogging(); - Hardware.DebugUtil.WriteSerialString("\r\n"); - EndLogging(); - } - - internal static void SendExt2_GroupDescriptor(string aDescription, uint aBlock, int aIndex, uint aAddresss, FileSystem.Ext2.GroupDescriptor aDescriptor) { - StartLogging(); - Hardware.DebugUtil.WriteSerialString("\r\n"); - EndLogging(); - } - - internal static unsafe void SendExt2_SuperBlock(string aDescription, FileSystem.Ext2.SuperBlock aSuperBlock) { - StartLogging(); - Hardware.DebugUtil.WriteSerialString("\r\n"); - EndLogging(); - } - - internal static void SendExt2_INodeMode(uint aIdentifier, ushort aMode) { - StartLogging(); - Hardware.DebugUtil.WriteSerialString("\r\n"); - EndLogging(); - } - - internal static unsafe void SendExt2_INode(uint aIdentifier, FileSystem.Ext2.INode* aINode) { - StartLogging(); - Hardware.DebugUtil.WriteSerialString("Mode, 16); - Hardware.DebugUtil.WriteSerialString("\" UID=\""); - Hardware.DebugUtil.WriteNumber(aINode->UID, 16); - Hardware.DebugUtil.WriteSerialString("\" Size=\""); - Hardware.DebugUtil.WriteNumber(aINode->Size, 32); - Hardware.DebugUtil.WriteSerialString("\" ATime=\""); - Hardware.DebugUtil.WriteNumber(aINode->ATime, 32); - Hardware.DebugUtil.WriteSerialString("\" CTime=\""); - Hardware.DebugUtil.WriteNumber(aINode->CTime, 32); - Hardware.DebugUtil.WriteSerialString("\" MTime=\""); - Hardware.DebugUtil.WriteNumber(aINode->MTime, 32); - Hardware.DebugUtil.WriteSerialString("\" DTime=\""); - Hardware.DebugUtil.WriteNumber(aINode->DTime, 32); - Hardware.DebugUtil.WriteSerialString("\" GID=\""); - Hardware.DebugUtil.WriteNumber(aINode->GID, 16); - Hardware.DebugUtil.WriteSerialString("\" LinksCount=\""); - Hardware.DebugUtil.WriteNumber(aINode->LinksCount, 16); - Hardware.DebugUtil.WriteSerialString("\" Blocks=\""); - Hardware.DebugUtil.WriteNumber(aINode->Blocks, 32); - Hardware.DebugUtil.WriteSerialString("\" Flags=\""); - Hardware.DebugUtil.WriteNumber(aINode->Flags, 32); - Hardware.DebugUtil.WriteSerialString("\" OSD1=\""); - Hardware.DebugUtil.WriteNumber(aINode->OSD1, 32); - Hardware.DebugUtil.WriteSerialString("\" Block1=\""); - Hardware.DebugUtil.WriteNumber(aINode->Block1, 32); - Hardware.DebugUtil.WriteSerialString("\" Block2=\""); - Hardware.DebugUtil.WriteNumber(aINode->Block2, 32); - Hardware.DebugUtil.WriteSerialString("\" Block3=\""); - Hardware.DebugUtil.WriteNumber(aINode->Block3, 32); - Hardware.DebugUtil.WriteSerialString("\" Block4=\""); - Hardware.DebugUtil.WriteNumber(aINode->Block4, 32); - Hardware.DebugUtil.WriteSerialString("\" Block5=\""); - Hardware.DebugUtil.WriteNumber(aINode->Block5, 32); - Hardware.DebugUtil.WriteSerialString("\" Block6=\""); - Hardware.DebugUtil.WriteNumber(aINode->Block6, 32); - Hardware.DebugUtil.WriteSerialString("\" Block7=\""); - Hardware.DebugUtil.WriteNumber(aINode->Block7, 32); - Hardware.DebugUtil.WriteSerialString("\" Block8=\""); - Hardware.DebugUtil.WriteNumber(aINode->Block8, 32); - Hardware.DebugUtil.WriteSerialString("\" Block9=\""); - Hardware.DebugUtil.WriteNumber(aINode->Block9, 32); - Hardware.DebugUtil.WriteSerialString("\" Block10=\""); - Hardware.DebugUtil.WriteNumber(aINode->Block10, 32); - Hardware.DebugUtil.WriteSerialString("\" Block11=\""); - Hardware.DebugUtil.WriteNumber(aINode->Block11, 32); - Hardware.DebugUtil.WriteSerialString("\" Block12=\""); - Hardware.DebugUtil.WriteNumber(aINode->Block12, 32); - Hardware.DebugUtil.WriteSerialString("\" Block13=\""); - Hardware.DebugUtil.WriteNumber(aINode->Block13, 32); - Hardware.DebugUtil.WriteSerialString("\" Block14=\""); - Hardware.DebugUtil.WriteNumber(aINode->Block14, 32); - Hardware.DebugUtil.WriteSerialString("\" Block15=\""); - Hardware.DebugUtil.WriteNumber(aINode->Block15, 32); - Hardware.DebugUtil.WriteSerialString("\" Generation=\""); - Hardware.DebugUtil.WriteNumber(aINode->Generation, 32); - Hardware.DebugUtil.WriteSerialString("\" FileACL=\""); - Hardware.DebugUtil.WriteNumber(aINode->FileACL, 32); - Hardware.DebugUtil.WriteSerialString("\" DirACL=\""); - Hardware.DebugUtil.WriteNumber(aINode->DirACL, 32); - Hardware.DebugUtil.WriteSerialString("\" FAddr=\""); - Hardware.DebugUtil.WriteNumber(aINode->FAddr, 32); - Hardware.DebugUtil.WriteSerialString("\" OSD2_1=\""); - Hardware.DebugUtil.WriteNumber(aINode->OSD2_1, 32); - Hardware.DebugUtil.WriteSerialString("\" OSD2_2=\""); - Hardware.DebugUtil.WriteNumber(aINode->OSD2_2, 32); - Hardware.DebugUtil.WriteSerialString("\" OSD2_3=\""); - Hardware.DebugUtil.WriteNumber(aINode->OSD2_3, 32); - Hardware.DebugUtil.WriteSerialString("\"/>\r\n"); - EndLogging(); - } - - internal static unsafe void SendExt2_DirectoryEntry(FileSystem.Ext2.DirectoryEntry* aEntryPtr) { - StartLogging(); - Hardware.DebugUtil.WriteSerialString("INodeNumber, 32); - Hardware.DebugUtil.WriteSerialString("\" RecordLength=\""); - Hardware.DebugUtil.WriteNumber(aEntryPtr->RecordLength, 16); - Hardware.DebugUtil.WriteSerialString("\" NameLength=\""); - Hardware.DebugUtil.WriteNumber(aEntryPtr->NameLength, 8); - Hardware.DebugUtil.WriteSerialString("\" FileType=\""); - Hardware.DebugUtil.WriteNumber(aEntryPtr->FileType, 8); - Hardware.DebugUtil.WriteSerialString("\" Name=\"0x"); - byte* xNameByte = &aEntryPtr->FirstNameChar; - for (int i = 0; i < aEntryPtr->NameLength; i++) { - Hardware.DebugUtil.WriteNumber(xNameByte[i], 8, false); - } - Hardware.DebugUtil.WriteSerialString("\"/>\r\n"); - EndLogging(); - } - - internal static void SendByteStream(string aModule, string aDescription, byte[] aContents) { - StartLogging(); - Hardware.DebugUtil.WriteSerialString("\r\n"); - } - - internal static unsafe void SendBytes(string aModule, string aDescription, byte* aContents, uint aIndex, uint aCount) { - StartLogging(); - Hardware.DebugUtil.WriteSerialString("\r\n"); - } - } -} \ No newline at end of file diff --git a/source/Cosmos/Cosmos.Kernel/Old/TextScreen-Old.cs b/source/Cosmos/Cosmos.Kernel/TextScreen-Old.cs similarity index 100% rename from source/Cosmos/Cosmos.Kernel/Old/TextScreen-Old.cs rename to source/Cosmos/Cosmos.Kernel/TextScreen-Old.cs diff --git a/source/Cosmos/Cosmos.Shell.Console/Commands/DirCommand.cs b/source/Cosmos/Cosmos.Shell.Console/Commands/DirCommand.cs index 03fab076b..f43a3496c 100644 --- a/source/Cosmos/Cosmos.Shell.Console/Commands/DirCommand.cs +++ b/source/Cosmos/Cosmos.Shell.Console/Commands/DirCommand.cs @@ -23,20 +23,20 @@ namespace Cosmos.Shell.Console.Commands { var xDevice = Hardware.Device.Devices[i]; if (xDevice.Type == Cosmos.Hardware.Device.DeviceType.Storage) { var xBlockDevice = (Hardware.BlockDevice)xDevice; - Cosmos.Kernel.FileSystem.Ext2 xExt2 = new Cosmos.Kernel.FileSystem.Ext2(xBlockDevice); + //Cosmos.Kernel.FileSystem.Ext2 xExt2 = new Cosmos.Kernel.FileSystem.Ext2(xBlockDevice); - if (!xExt2.Initialize()) { - System.Console.WriteLine("Error while initializing Ext2 Filesystem!"); - } else { - System.Console.WriteLine("ATA and Ext2 successfully initialized!"); - // System.Diagnostics.Debugger.Break(); - string[] files = xExt2.GetDirectoryEntries(new string[0]); - if (files == null) { - System.Console.WriteLine("Error while getting DirectoryEntries"); - } - for (int f = 0; f < files.Length; f++) - System.Console.WriteLine(files[f]); - } + //if (!xExt2.Initialize()) { + // System.Console.WriteLine("Error while initializing Ext2 Filesystem!"); + //} else { + // System.Console.WriteLine("ATA and Ext2 successfully initialized!"); + // // System.Diagnostics.Debugger.Break(); + // string[] files = xExt2.GetDirectoryEntries(new string[0]); + // if (files == null) { + // System.Console.WriteLine("Error while getting DirectoryEntries"); + // } + // for (int f = 0; f < files.Length; f++) + // System.Console.WriteLine(files[f]); + //} return; } System.Console.Write("Device Type: ");