Changeset 3621 in MondoRescue for branches/3.3/mindi-busybox/include/bb_archive.h
- Timestamp:
- Dec 20, 2016, 4:07:32 PM (7 years ago)
- Location:
- branches/3.3
- Files:
-
- 1 edited
- 1 copied
Legend:
- Unmodified
- Added
- Removed
-
branches/3.3/mindi-busybox/include/bb_archive.h
r3233 r3621 78 78 79 79 /* Archiver specific. Can make it a union if it ever gets big */ 80 #if ENABLE_FEATURE_TAR_LONG_OPTIONS 81 unsigned tar__strip_components; 82 #endif 80 83 #define PAX_NEXT_FILE 0 81 84 #define PAX_GLOBAL 1 … … 96 99 #if ENABLE_CPIO || ENABLE_RPM2CPIO || ENABLE_RPM 97 100 uoff_t cpio__blocks; 101 struct bb_uidgid_t cpio__owner; 98 102 struct hardlinks_t *cpio__hardlinks_to_create; 99 103 struct hardlinks_t *cpio__created_hardlinks; … … 123 127 #define ARCHIVE_O_TRUNC (1 << 8) 124 128 #define ARCHIVE_REMEMBER_NAMES (1 << 9) 129 #if ENABLE_RPM 130 #define ARCHIVE_REPLACE_VIA_RENAME (1 << 10) 131 #endif 125 132 126 133 … … 157 164 158 165 166 extern const char cpio_TRAILER[]; 167 159 168 160 169 archive_handle_t *init_handle(void) FAST_FUNC; … … 182 191 char get_header_tar_bz2(archive_handle_t *archive_handle) FAST_FUNC; 183 192 char get_header_tar_lzma(archive_handle_t *archive_handle) FAST_FUNC; 193 char get_header_tar_xz(archive_handle_t *archive_handle) FAST_FUNC; 184 194 185 195 void seek_by_jump(int fd, off_t amount) FAST_FUNC; … … 201 211 202 212 /* Meaning and direction (input/output) of the fields are transformer-specific */ 203 typedef struct transformer_aux_data_t { 204 smallint check_signature; /* most often referenced member */ 213 typedef struct transformer_state_t { 214 smallint signature_skipped; /* most often referenced member */ 215 216 IF_DESKTOP(long long) int FAST_FUNC (*xformer)(struct transformer_state_t *xstate); 217 USE_FOR_NOMMU(const char *xformer_prog;) 218 219 /* Source */ 220 int src_fd; 221 /* Output */ 222 int dst_fd; 223 size_t mem_output_size_max; /* if non-zero, decompress to RAM instead of fd */ 224 size_t mem_output_size; 225 char *mem_output_buf; 226 205 227 off_t bytes_out; 206 228 off_t bytes_in; /* used in unzip code only: needs to know packed size */ 207 229 uint32_t crc32; 208 230 time_t mtime; /* gunzip code may set this on exit */ 209 } transformer_aux_data_t; 210 211 void init_transformer_aux_data(transformer_aux_data_t *aux) FAST_FUNC; 212 int FAST_FUNC check_signature16(transformer_aux_data_t *aux, int src_fd, unsigned magic16) FAST_FUNC; 213 214 IF_DESKTOP(long long) int inflate_unzip(transformer_aux_data_t *aux, int src_fd, int dst_fd) FAST_FUNC; 215 IF_DESKTOP(long long) int unpack_Z_stream(transformer_aux_data_t *aux, int src_fd, int dst_fd) FAST_FUNC; 216 IF_DESKTOP(long long) int unpack_gz_stream(transformer_aux_data_t *aux, int src_fd, int dst_fd) FAST_FUNC; 217 IF_DESKTOP(long long) int unpack_bz2_stream(transformer_aux_data_t *aux, int src_fd, int dst_fd) FAST_FUNC; 218 IF_DESKTOP(long long) int unpack_lzma_stream(transformer_aux_data_t *aux, int src_fd, int dst_fd) FAST_FUNC; 219 IF_DESKTOP(long long) int unpack_xz_stream(transformer_aux_data_t *aux, int src_fd, int dst_fd) FAST_FUNC; 231 } transformer_state_t; 232 233 void init_transformer_state(transformer_state_t *xstate) FAST_FUNC; 234 ssize_t transformer_write(transformer_state_t *xstate, const void *buf, size_t bufsize) FAST_FUNC; 235 ssize_t xtransformer_write(transformer_state_t *xstate, const void *buf, size_t bufsize) FAST_FUNC; 236 int check_signature16(transformer_state_t *xstate, unsigned magic16) FAST_FUNC; 237 238 IF_DESKTOP(long long) int inflate_unzip(transformer_state_t *xstate) FAST_FUNC; 239 IF_DESKTOP(long long) int unpack_Z_stream(transformer_state_t *xstate) FAST_FUNC; 240 IF_DESKTOP(long long) int unpack_gz_stream(transformer_state_t *xstate) FAST_FUNC; 241 IF_DESKTOP(long long) int unpack_bz2_stream(transformer_state_t *xstate) FAST_FUNC; 242 IF_DESKTOP(long long) int unpack_lzma_stream(transformer_state_t *xstate) FAST_FUNC; 243 IF_DESKTOP(long long) int unpack_xz_stream(transformer_state_t *xstate) FAST_FUNC; 220 244 221 245 char* append_ext(char *filename, const char *expected_ext) FAST_FUNC; 222 246 int bbunpack(char **argv, 223 IF_DESKTOP(long long) int FAST_FUNC (*unpacker)(transformer_ aux_data_t *aux),247 IF_DESKTOP(long long) int FAST_FUNC (*unpacker)(transformer_state_t *xstate), 224 248 char* FAST_FUNC (*make_new_name)(char *filename, const char *expected_ext), 225 249 const char *expected_ext … … 228 252 void check_errors_in_children(int signo); 229 253 #if BB_MMU 230 void open_transformer(int fd,231 int check_signature,232 IF_DESKTOP(long long) int FAST_FUNC (*transformer)(transformer_ aux_data_t *aux, int src_fd, int dst_fd)254 void fork_transformer(int fd, 255 int signature_skipped, 256 IF_DESKTOP(long long) int FAST_FUNC (*transformer)(transformer_state_t *xstate) 233 257 ) FAST_FUNC; 234 #define open_transformer_with_sig(fd, transformer, transform_prog) open_transformer((fd), 1, (transformer))235 #define open_transformer_with_no_sig(fd, transformer) open_transformer((fd), 0, (transformer))258 #define fork_transformer_with_sig(fd, transformer, transform_prog) fork_transformer((fd), 0, (transformer)) 259 #define fork_transformer_with_no_sig(fd, transformer) fork_transformer((fd), 1, (transformer)) 236 260 #else 237 void open_transformer(int fd, const char *transform_prog) FAST_FUNC;238 #define open_transformer_with_sig(fd, transformer, transform_prog) open_transformer((fd), (transform_prog))239 /* open_transformer_with_no_sig() does not exist on NOMMU */261 void fork_transformer(int fd, const char *transform_prog) FAST_FUNC; 262 #define fork_transformer_with_sig(fd, transformer, transform_prog) fork_transformer((fd), (transform_prog)) 263 /* fork_transformer_with_no_sig() does not exist on NOMMU */ 240 264 #endif 241 265
Note:
See TracChangeset
for help on using the changeset viewer.