diff options
author | Alexis211 <alexis211@gmail.com> | 2009-11-25 17:07:31 +0100 |
---|---|---|
committer | Alexis211 <alexis211@gmail.com> | 2009-11-25 17:07:31 +0100 |
commit | f367fe4e5a7712bafc121ce5c228f15e90fc5c93 (patch) | |
tree | 3bf0de2cc3b471547158c4b53b1b15f1595c1e49 /Source/Kernel/Shell | |
parent | f3ffe96d679742af95afa29e0cf612c6935eedd0 (diff) | |
download | Melon-f367fe4e5a7712bafc121ce5c228f15e90fc5c93.tar.gz Melon-f367fe4e5a7712bafc121ce5c228f15e90fc5c93.zip |
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
Diffstat (limited to 'Source/Kernel/Shell')
-rw-r--r-- | Source/Kernel/Shell/KernelShell-fs.class.cpp | 18 | ||||
-rw-r--r-- | Source/Kernel/Shell/KernelShell.class.cpp | 1 | ||||
-rw-r--r-- | Source/Kernel/Shell/KernelShell.class.h | 1 |
3 files changed, 20 insertions, 0 deletions
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<String>& args) { } } } + +void KernelShell::hexdump(Vector<String>& 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<String>& args); void wf(Vector<String>& args); void run(Vector<String>& args); + void hexdump(Vector<String>& args); //in KernelShell-sys void devices(Vector<String>& args); |