Ignore:
Timestamp:
Dec 20, 2016, 4:07:32 PM (7 years ago)
Author:
Bruno Cornec
Message:

New 3?3 banch for incorporation of latest busybox 1.25. Changing minor version to handle potential incompatibilities.

Location:
branches/3.3
Files:
1 edited
1 copied

Legend:

Unmodified
Added
Removed
  • branches/3.3/mindi-busybox/include/bb_archive.h

    r3233 r3621  
    7878
    7979    /* 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
    8083#define PAX_NEXT_FILE 0
    8184#define PAX_GLOBAL    1
     
    9699#if ENABLE_CPIO || ENABLE_RPM2CPIO || ENABLE_RPM
    97100    uoff_t cpio__blocks;
     101    struct bb_uidgid_t cpio__owner;
    98102    struct hardlinks_t *cpio__hardlinks_to_create;
    99103    struct hardlinks_t *cpio__created_hardlinks;
     
    123127#define ARCHIVE_O_TRUNC             (1 << 8)
    124128#define ARCHIVE_REMEMBER_NAMES      (1 << 9)
     129#if ENABLE_RPM
     130#define ARCHIVE_REPLACE_VIA_RENAME  (1 << 10)
     131#endif
    125132
    126133
     
    157164
    158165
     166extern const char cpio_TRAILER[];
     167
    159168
    160169archive_handle_t *init_handle(void) FAST_FUNC;
     
    182191char get_header_tar_bz2(archive_handle_t *archive_handle) FAST_FUNC;
    183192char get_header_tar_lzma(archive_handle_t *archive_handle) FAST_FUNC;
     193char get_header_tar_xz(archive_handle_t *archive_handle) FAST_FUNC;
    184194
    185195void seek_by_jump(int fd, off_t amount) FAST_FUNC;
     
    201211
    202212/* 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 */
     213typedef 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
    205227    off_t    bytes_out;
    206228    off_t    bytes_in;  /* used in unzip code only: needs to know packed size */
    207229    uint32_t crc32;
    208230    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
     233void init_transformer_state(transformer_state_t *xstate) FAST_FUNC;
     234ssize_t transformer_write(transformer_state_t *xstate, const void *buf, size_t bufsize) FAST_FUNC;
     235ssize_t xtransformer_write(transformer_state_t *xstate, const void *buf, size_t bufsize) FAST_FUNC;
     236int check_signature16(transformer_state_t *xstate, unsigned magic16) FAST_FUNC;
     237
     238IF_DESKTOP(long long) int inflate_unzip(transformer_state_t *xstate) FAST_FUNC;
     239IF_DESKTOP(long long) int unpack_Z_stream(transformer_state_t *xstate) FAST_FUNC;
     240IF_DESKTOP(long long) int unpack_gz_stream(transformer_state_t *xstate) FAST_FUNC;
     241IF_DESKTOP(long long) int unpack_bz2_stream(transformer_state_t *xstate) FAST_FUNC;
     242IF_DESKTOP(long long) int unpack_lzma_stream(transformer_state_t *xstate) FAST_FUNC;
     243IF_DESKTOP(long long) int unpack_xz_stream(transformer_state_t *xstate) FAST_FUNC;
    220244
    221245char* append_ext(char *filename, const char *expected_ext) FAST_FUNC;
    222246int 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),
    224248        char* FAST_FUNC (*make_new_name)(char *filename, const char *expected_ext),
    225249        const char *expected_ext
     
    228252void check_errors_in_children(int signo);
    229253#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)
     254void fork_transformer(int fd,
     255    int signature_skipped,
     256    IF_DESKTOP(long long) int FAST_FUNC (*transformer)(transformer_state_t *xstate)
    233257) 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))
    236260#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 */
     261void 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 */
    240264#endif
    241265
Note: See TracChangeset for help on using the changeset viewer.