Changeset 1765 in MondoRescue for branches/2.2.5/mindi-busybox/include/unarchive.h
- Timestamp:
- Nov 4, 2007, 3:16:40 AM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2.2.5/mindi-busybox/include/unarchive.h
r821 r1765 11 11 #define ARCHIVE_NOPRESERVE_PERM 64 12 12 13 #include <sys/types.h> 14 #include <stdio.h> 15 #include "libbb.h" 16 17 typedef struct file_headers_s { 13 typedef struct file_header_t { 18 14 char *name; 19 char *link_ name;15 char *link_target; 20 16 off_t size; 21 17 uid_t uid; … … 26 22 } file_header_t; 27 23 28 typedef struct archive_handle_ s{29 /* define if the header and data component should processed */30 char (*filter)(struct archive_handle_ s*);24 typedef struct archive_handle_t { 25 /* define if the header and data component should be processed */ 26 char (*filter)(struct archive_handle_t *); 31 27 llist_t *accept; 32 28 /* List of files that have been rejected */ … … 42 38 43 39 /* process the data component, e.g. extract to filesystem */ 44 void (*action_data)(struct archive_handle_ s*);40 void (*action_data)(struct archive_handle_t *); 45 41 46 42 /* How to process any sub archive, e.g. get_header_tar_gz */ 47 char (*action_data_subarchive)(struct archive_handle_ s*);43 char (*action_data_subarchive)(struct archive_handle_t *); 48 44 49 45 /* Contains the handle to a sub archive */ 50 struct archive_handle_ s*sub_archive;46 struct archive_handle_t *sub_archive; 51 47 52 48 /* The raw stream as read from disk or stdin */ … … 57 53 58 54 /* Function that skips data: read_by_char or read_by_skip */ 59 void (*seek)(const struct archive_handle_ s *archive_handle, const unsigned intamount);55 void (*seek)(const struct archive_handle_t *archive_handle, const unsigned amount); 60 56 61 57 /* Temporary storage */ … … 66 62 67 63 } archive_handle_t; 64 68 65 69 66 extern archive_handle_t *init_handle(void); … … 85 82 extern void header_verbose_list(const file_header_t *file_header); 86 83 87 extern void check_header_gzip (int src_fd);84 extern void check_header_gzip_or_die(int src_fd); 88 85 89 86 extern char get_header_ar(archive_handle_t *archive_handle); … … 94 91 extern char get_header_tar_gz(archive_handle_t *archive_handle); 95 92 96 extern void seek_by_jump(const archive_handle_t *archive_handle, const unsigned intamount);97 extern void seek_by_ char(const archive_handle_t *archive_handle, const unsigned intamount);93 extern void seek_by_jump(const archive_handle_t *archive_handle, const unsigned amount); 94 extern void seek_by_read(const archive_handle_t *archive_handle, const unsigned amount); 98 95 99 extern void archive_xread_all(const archive_handle_t *archive_handle, void *buf, const size_t count);100 96 extern ssize_t archive_xread_all_eof(archive_handle_t *archive_handle, unsigned char *buf, size_t count); 101 97 102 98 extern void data_align(archive_handle_t *archive_handle, const unsigned short boundary); 103 99 extern const llist_t *find_list_entry(const llist_t *list, const char *filename); 100 extern const llist_t *find_list_entry2(const llist_t *list, const char *filename); 104 101 105 extern int uncompressStream(int src_fd, int dst_fd); 106 extern void inflate_init(unsigned int bufsize); 107 extern void inflate_cleanup(void); 108 extern int inflate_unzip(int in, int out); 109 extern int inflate_gunzip(int in, int out); 110 extern int unlzma(int src_fd, int dst_fd); 102 /* A bit of bunzip2 internals are exposed for compressed help support: */ 103 typedef struct bunzip_data bunzip_data; 104 int start_bunzip(bunzip_data **bdp, int in_fd, const unsigned char *inbuf, int len); 105 int read_bunzip(bunzip_data *bd, char *outbuf, int len); 106 void dealloc_bunzip(bunzip_data *bd); 111 107 112 extern int open_transformer(int src_fd, int (*transformer)(int src_fd, int dst_fd)); 108 typedef struct inflate_unzip_result { 109 off_t bytes_out; 110 uint32_t crc; 111 } inflate_unzip_result; 113 112 113 extern USE_DESKTOP(long long) int unpack_bz2_stream(int src_fd, int dst_fd); 114 extern USE_DESKTOP(long long) int inflate_unzip(inflate_unzip_result *res, unsigned bufsize, int src_fd, int dst_fd); 115 extern USE_DESKTOP(long long) int unpack_gz_stream(int src_fd, int dst_fd); 116 extern USE_DESKTOP(long long) int unpack_lzma_stream(int src_fd, int dst_fd); 117 118 #if BB_MMU 119 extern int open_transformer(int src_fd, 120 USE_DESKTOP(long long) int (*transformer)(int src_fd, int dst_fd)); 121 #define open_transformer(src_fd, transformer, transform_prog, ...) open_transformer(src_fd, transformer) 122 #else 123 extern int open_transformer(int src_fd, const char *transform_prog, ...); 124 #define open_transformer(src_fd, transformer, transform_prog, ...) open_transformer(src_fd, transform_prog, __VA_ARGS__) 125 #endif 114 126 115 127 #endif
Note:
See TracChangeset
for help on using the changeset viewer.