From f367fe4e5a7712bafc121ce5c228f15e90fc5c93 Mon Sep 17 00:00:00 2001 From: Alexis211 Date: Wed, 25 Nov 2009 17:07:31 +0100 Subject: Fixed FATFS::read - Also added a HDD image, will be used later - Also modified a bit the fdc driver - Also added a hexdump function to kernel shell for dumping file contents --- Source/Kernel/Shell/KernelShell-fs.class.cpp | 18 ++++++++++++++++++ Source/Kernel/Shell/KernelShell.class.cpp | 1 + Source/Kernel/Shell/KernelShell.class.h | 1 + 3 files changed, 20 insertions(+) (limited to 'Source/Kernel/Shell') diff --git a/Source/Kernel/Shell/KernelShell-fs.class.cpp b/Source/Kernel/Shell/KernelShell-fs.class.cpp index fa2078d..c389d45 100644 --- a/Source/Kernel/Shell/KernelShell-fs.class.cpp +++ b/Source/Kernel/Shell/KernelShell-fs.class.cpp @@ -125,3 +125,21 @@ void KernelShell::run(Vector& args) { } } } + +void KernelShell::hexdump(Vector& args) { + if (args.size() == 1) { + *m_vt << "No file to hexdump.\n"; + } else { + for (u32int i = 1; i < args.size(); i++) { + File f(args[i], FM_READ, m_cwd); + if (f.valid()) { + u8int *buff = (u8int*)Mem::alloc(f.length()); + f.read(f.length(), buff); + m_vt->hexDump(buff, f.length()); + Mem::free(buff); + } else { + *m_vt << "Error reading from file " << args[i] << "\n"; + } + } + } +} diff --git a/Source/Kernel/Shell/KernelShell.class.cpp b/Source/Kernel/Shell/KernelShell.class.cpp index 9f9858b..f35b4dc 100644 --- a/Source/Kernel/Shell/KernelShell.class.cpp +++ b/Source/Kernel/Shell/KernelShell.class.cpp @@ -62,6 +62,7 @@ u32int KernelShell::run() { {"uptime", &KernelShell::uptime}, {"part", &KernelShell::part}, {"readblock", &KernelShell::readblock}, + {"hexdump", &KernelShell::hexdump}, {0, 0} }; diff --git a/Source/Kernel/Shell/KernelShell.class.h b/Source/Kernel/Shell/KernelShell.class.h index 4fa9c66..d3fd5e1 100644 --- a/Source/Kernel/Shell/KernelShell.class.h +++ b/Source/Kernel/Shell/KernelShell.class.h @@ -27,6 +27,7 @@ class KernelShell { void rm(Vector& args); void wf(Vector& args); void run(Vector& args); + void hexdump(Vector& args); //in KernelShell-sys void devices(Vector& args); -- cgit v1.2.3