git.ucc.asn.au
/
tpg
/
acess2.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
c8bd079
)
DiskTool - Autodetection of filesystems and better debugging
author
John Hodge
<
[email protected]
>
Sat, 14 Jul 2012 12:26:40 +0000
(20:26 +0800)
committer
John Hodge
<
[email protected]
>
Sat, 14 Jul 2012 12:26:40 +0000
(20:26 +0800)
AcessNative/acesskernel_src/nativefs.c
patch
|
blob
|
history
Tools/DiskTool/src/Makefile
patch
|
blob
|
history
Tools/DiskTool/src/actions.c
patch
|
blob
|
history
Tools/DiskTool/src/logging.c
patch
|
blob
|
history
Tools/DiskTool/src/main.c
patch
|
blob
|
history
diff --git
a/AcessNative/acesskernel_src/nativefs.c
b/AcessNative/acesskernel_src/nativefs.c
index
e51f286
..
7c20b69
100644
(file)
--- a/
AcessNative/acesskernel_src/nativefs.c
+++ b/
AcessNative/acesskernel_src/nativefs.c
@@
-48,9
+48,9
@@
tVFS_NodeType gNativeFS_DirNodeType = {
.Close = NativeFS_Close
\r
};
\r
tVFS_Driver gNativeFS_Driver = {
\r
.Close = NativeFS_Close
\r
};
\r
tVFS_Driver gNativeFS_Driver = {
\r
-
"nativefs", 0
,
\r
-
NativeFS_Mount, NativeFS_Unm
ount,
\r
- NULL,
\r
+
.Name = "nativefs"
,
\r
+
.InitDevice = NativeFS_M
ount,
\r
+ .Unmount = NativeFS_Unmount
\r
};
\r
\r
// === CODE ===
\r
};
\r
\r
// === CODE ===
\r
diff --git
a/Tools/DiskTool/src/Makefile
b/Tools/DiskTool/src/Makefile
index
b232567
..
a1282ac
100644
(file)
--- a/
Tools/DiskTool/src/Makefile
+++ b/
Tools/DiskTool/src/Makefile
@@
-19,7
+19,7
@@
K_OBJ += vfs/nodecache.o vfs/mount.o vfs/memfile.o # vfs/select.o
K_OBJ += vfs/fs/root.o vfs/fs/devfs.o
K_OBJ += drvutil_disk.o drv/proc.o
# Modules
K_OBJ += vfs/fs/root.o vfs/fs/devfs.o
K_OBJ += drvutil_disk.o drv/proc.o
# Modules
-MODULES := Storage/LVM Filesystems/FAT Filesystems/Ext2
+MODULES := Storage/LVM Filesystems/FAT Filesystems/Ext2
Filesystems/NTFS
# Local kernel soruces (same as above, but located in same directory as Makefile)
L_OBJ = vfs_handles.o threads.o nativefs.o time.o actions.o
# Native Sources (compiled as usual)
# Local kernel soruces (same as above, but located in same directory as Makefile)
L_OBJ = vfs_handles.o threads.o nativefs.o time.o actions.o
# Native Sources (compiled as usual)
diff --git
a/Tools/DiskTool/src/actions.c
b/Tools/DiskTool/src/actions.c
index
377608d
..
d1fb703
100644
(file)
--- a/
Tools/DiskTool/src/actions.c
+++ b/
Tools/DiskTool/src/actions.c
@@
-65,10
+65,13
@@
void DiskTool_Cleanup(void)
int DiskTool_RegisterLVM(const char *Identifier, const char *Path)
{
int fd = DiskTool_int_TranslateOpen(Path, VFS_OPENFLAG_READ|VFS_OPENFLAG_WRITE);
int DiskTool_RegisterLVM(const char *Identifier, const char *Path)
{
int fd = DiskTool_int_TranslateOpen(Path, VFS_OPENFLAG_READ|VFS_OPENFLAG_WRITE);
- if(fd == -1)
+ if(fd == -1) {
+ Log_Notice("DiskTool", "Can't open '%s' for LVM %s", Path, Identifier);
return -1;
return -1;
+ }
VFS_Seek(fd, 0, SEEK_END);
LVM_AddVolume( &gDiskTool_VolumeType, Identifier, (void*)(tVAddr)fd, 512, VFS_Tell(fd)/512);
VFS_Seek(fd, 0, SEEK_END);
LVM_AddVolume( &gDiskTool_VolumeType, Identifier, (void*)(tVAddr)fd, 512, VFS_Tell(fd)/512);
+ Log_Debug("DiskTool", "Registered '%s' for LVM %s", Path, Identifier);
return 0;
}
return 0;
}
@@
-89,7
+92,7
@@
int DiskTool_MountImage(const char *Identifier, const char *Path)
// Call mount
VFS_MkDir(mountpoint);
// TODO: Detect filesystem?
// Call mount
VFS_MkDir(mountpoint);
// TODO: Detect filesystem?
- return VFS_Mount(tpath, mountpoint, "
fat
", "");
+ return VFS_Mount(tpath, mountpoint, "", "");
}
int DiskTool_Copy(const char *Source, const char *Destination)
}
int DiskTool_Copy(const char *Source, const char *Destination)
@@
-145,13
+148,11
@@
int DiskTool_ListDirectory(const char *Directory)
int DiskTool_LVM_Read(void *Handle, Uint64 Block, size_t BlockCount, void *Dest)
{
int DiskTool_LVM_Read(void *Handle, Uint64 Block, size_t BlockCount, void *Dest)
{
- VFS_ReadAt( (int)(tVAddr)Handle, Block*512, BlockCount*512, Dest);
- return 0;
+ return VFS_ReadAt( (int)(tVAddr)Handle, Block*512, BlockCount*512, Dest) / 512;
}
int DiskTool_LVM_Write(void *Handle, Uint64 Block, size_t BlockCount, const void *Dest)
{
}
int DiskTool_LVM_Write(void *Handle, Uint64 Block, size_t BlockCount, const void *Dest)
{
- VFS_WriteAt( (int)(tVAddr)Handle, Block*512, BlockCount*512, Dest);
- return 0;
+ return VFS_WriteAt( (int)(tVAddr)Handle, Block*512, BlockCount*512, Dest) / 512;
}
void DiskTool_LVM_Cleanup(void *Handle)
{
}
void DiskTool_LVM_Cleanup(void *Handle)
{
diff --git
a/Tools/DiskTool/src/logging.c
b/Tools/DiskTool/src/logging.c
index
fde9055
..
2b03c6f
100644
(file)
--- a/
Tools/DiskTool/src/logging.c
+++ b/
Tools/DiskTool/src/logging.c
@@
-7,6
+7,7
@@
#include <stdint.h>
#include <acess_logging.h>
#include <ctype.h>
#include <stdint.h>
#include <acess_logging.h>
#include <ctype.h>
+#include <inttypes.h>
#define LOGHDR(col,type) fprintf(stderr, "\e["col"m[%-8.8s]"type" ", Ident)
#define LOGTAIL() fprintf(stderr, "\e[0m\n")
#define LOGHDR(col,type) fprintf(stderr, "\e["col"m[%-8.8s]"type" ", Ident)
#define LOGTAIL() fprintf(stderr, "\e[0m\n")
@@
-22,7
+23,7
@@
// === CODE ===
void Log_KernelPanic(const char *Ident, const char *Message, ...) {
PUTERR("35", "k")
// === CODE ===
void Log_KernelPanic(const char *Ident, const char *Message, ...) {
PUTERR("35", "k")
-
exit(-1
);
+
abort(
);
}
void Log_Panic(const char *Ident, const char *Message, ...)
PUTERR("34", "p")
}
void Log_Panic(const char *Ident, const char *Message, ...)
PUTERR("34", "p")
@@
-116,6
+117,9
@@
void Debug_TraceEnter(const char *Function, const char *Format, ...)
case 'x':
fprintf(stderr, "0x%x", va_arg(args,unsigned int));
break;
case 'x':
fprintf(stderr, "0x%x", va_arg(args,unsigned int));
break;
+ case 'X':
+ fprintf(stderr, "0x%"PRIx64, va_arg(args,uint64_t));
+ break;
default:
va_arg(args,uintptr_t);
fprintf(stderr, "?");
default:
va_arg(args,uintptr_t);
fprintf(stderr, "?");
@@
-177,6
+181,9
@@
void Debug_TraceLeave(const char *Function, char Type, ...)
case 'x':
fprintf(stderr, " 0x%x", va_arg(args, unsigned int));
break;
case 'x':
fprintf(stderr, " 0x%x", va_arg(args, unsigned int));
break;
+ case 'X':
+ fprintf(stderr, " 0x%"PRIx64, va_arg(args,uint64_t));
+ break;
case 's':
fprintf(stderr, " \"%s\"", va_arg(args, const char *));
break;
case 's':
fprintf(stderr, " \"%s\"", va_arg(args, const char *));
break;
diff --git
a/Tools/DiskTool/src/main.c
b/Tools/DiskTool/src/main.c
index
823bb2b
..
c3c4166
100644
(file)
--- a/
Tools/DiskTool/src/main.c
+++ b/
Tools/DiskTool/src/main.c
@@
-68,6
+68,8
@@
int main(int argc, char *argv[])
i += 2;
continue ;
}
i += 2;
continue ;
}
+
+ fprintf(stderr, "Unknown command '%s'\n", argv[i]);
}
DiskTool_Cleanup();
}
DiskTool_Cleanup();
UCC
git Repository :: git.ucc.asn.au