Update of /cvsroot/blob/blob/src/blob
In directory usw-pr-cvs1:/tmp/cvs-serv3418
Modified Files:
system3.c
Log Message:
- test command for tar archive library. Will eventually go into
libcommands.a
Index: system3.c
===================================================================
RCS file: /cvsroot/blob/blob/src/blob/system3.c,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -d -r1.12 -r1.13
--- system3.c 24 Apr 2002 14:34:26 -0000 1.12
+++ system3.c 26 Apr 2002 18:26:38 -0000 1.13
@@ -48,6 +48,7 @@
#include <blob/sa1111.h>
#include <blob/pcmcia.h>
#include <blob/ide.h>
+#include <blob/tar.h>
/**********************************************************************
* defines
@@ -435,6 +436,62 @@
serial_write('\n');
}
}
+
+int tar_cmd( int argc, char *argv[] )
+{
+ int ret = 0;
+ u32 start = 0;
+ u32 dest = 0;
+ tar_arch_t my_arch;
+ struct mem arch_adr;
+
+ tar_dbg_set( 100 );
+
+ if ( argc<3 ) ERR( -EINVAL );
+
+ ret = strtou32(argv[2], &start);
+ if ( ret < 0 ) ERR( -EINVAL );
+
+ arch_adr.start = (unsigned char *)start;
+ ret = tar_init( &my_arch, mem_block_get, mem_block_reset, &arch_adr );
+ if ( ret ) {
+ printf( "tar_init: %d\n", ret );
+ goto DONE;
+ }
+
+ switch (argv[1][0]) {
+ case 't':
+ case 'T':
+ ret = tar_tell( &my_arch );
+ if ( ret ) {
+ printf( "tar_tell: %d\n", ret );
+ goto DONE;
+ }
+ break;
+ case 'x':
+ case 'X':
+ if ( argc<4 ) ERR( -EINVAL );
+
+ ret = strtou32(argv[4], &dest);
+ if ( ret < 0 ) ERR( -EINVAL );
+
+ _DBG( "dest=%p\n", (unsigned char *)dest );
+ _DBG( "filename=%s\n", argv[3] );
+
+ ret = tar_xtract( &my_arch, argv[3], (unsigned char *)dest );
+ if ( ret ) {
+ printf( "tar_xtract: %d\n", ret );
+ goto DONE;
+ }
+ dumpmem( dest, 0x200 );
+ break;
+ }
+
+DONE:
+ return ret;
+}
+static char tar_help[] = "tar [t|x] src [filename dest]\n";
+__commandlist(tar_cmd, "tar", tar_help);
/*****************************************************************
* manually reference flash and download commands until they
|