From: Stefan E. <se...@us...> - 2002-05-02 15:23:03
|
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 |