Update of /cvsroot/blob/blob/include/blob
In directory usw-pr-cvs1:/tmp/cvs-serv16161
Modified Files:
tar.h
Log Message:
- use generic io framework
Index: tar.h
===================================================================
RCS file: /cvsroot/blob/blob/include/blob/tar.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- tar.h 26 Apr 2002 18:25:19 -0000 1.1
+++ tar.h 2 May 2002 15:23:01 -0000 1.2
@@ -233,35 +233,31 @@
/* End of Format description. */
-/* a function which knows how to get blocks for our archive */
-typedef int (*block_get_fn)( unsigned char buffer[512], void *priv_data );
-/* a function which "rewinds" to block 0 */
-typedef int (*block_reset_fn)( void *priv_data );
-
typedef struct {
- /* block getter functions & data */
- block_get_fn block_get;
- block_reset_fn block_reset;
- void *block_get_priv;
+ /* io driver to get data from */
+ io_driver_t *io_driver;
+ /* current block */
+ int block;
+
/* block buffer */
unsigned char buffer[512];
+
/* file infos */
+ int f_start_block;
char filename[255];
- unsigned long size;
- int blocks;
+ unsigned long f_size;
+ int f_blocks;
} tar_arch_t;
-struct mem {
- unsigned char *start;
- unsigned char *curr;
-};
-
-int mem_block_get( unsigned char *buffer, void *priv );
-int mem_block_reset( void *priv );
-
void tar_dbg_set( int lvl );
-int tar_init( tar_arch_t *arch, block_get_fn get, block_reset_fn reset, void *priv );
+int tar_init( tar_arch_t *arch, io_driver_t *io );
int tar_tell( tar_arch_t *arch );
int tar_xtract( tar_arch_t *arch, char *filename, char *dest );
+
+/**********************************************************************
+ * io driver for tar archives
+ */
+int tar_io_init( io_driver_t *io, tar_arch_t *arch );
+int tar_io_conf( io_driver_t *io, void *conf );
#endif
|