diff options
| author | Isaac Dunham <idunham@lavabit.com> | 2013-07-26 13:27:27 -0500 | 
|---|---|---|
| committer | Isaac Dunham <idunham@lavabit.com> | 2013-07-26 13:27:27 -0500 | 
| commit | 0c2509957b6291fb136eca4a5c278466045ce31d (patch) | |
| tree | 3e1ee0de0fcf5be418cbfb73e6eda4f4e2c7028d | |
| parent | 49f8d6f5e000e6c6be43f215406d6633195d7774 (diff) | |
| download | toybox-0c2509957b6291fb136eca4a5c278466045ce31d.tar.gz | |
This removes xz_mode.
Mostly outdated comments and unused function parameters/struct members.
| -rw-r--r-- | toys/pending/xzcat.c | 103 | 
1 files changed, 23 insertions, 80 deletions
| diff --git a/toys/pending/xzcat.c b/toys/pending/xzcat.c index a90a4a90..951ead00 100644 --- a/toys/pending/xzcat.c +++ b/toys/pending/xzcat.c @@ -23,27 +23,9 @@ config XZCAT  // BEGIN xz.h  /** - * enum xz_mode - Operation mode - * - * @XZ_DYNALLOC:            Multi-call mode. The LZMA2 dictionary is - *                          allocated once the required size has been - *                          parsed from the stream headers. If the - *                          allocation fails, xz_dec_run() will return - *                          XZ_MEM_ERROR. - * - * xzcat uses only XZ_DEC_DYNALLOC, though xz-embedded supports  - * XZ_DEC_SINGLE and XZ_DEC_PREALLOC - */ -enum xz_mode { -  XZ_DYNALLOC -}; - -/**   * enum xz_ret - Return codes   * @XZ_OK:                  Everything is OK so far. More input or more - *                          output space is required to continue. This - *                          return code is possible only in multi-call mode - *                          (XZ_PREALLOC or XZ_DYNALLOC). + *                          output space is required to continue.   * @XZ_STREAM_END:          Operation finished successfully.   * @XZ_UNSUPPORTED_CHECK:   Integrity check type is not supported. Decoding   *                          is still possible in multi-call mode by simply @@ -53,17 +35,12 @@ enum xz_mode {   *                          which is not used in the kernel. Unsupported   *                          check types return XZ_OPTIONS_ERROR if   *                          XZ_DEC_ANY_CHECK was not defined at build time. - * @XZ_MEM_ERROR:           Allocating memory failed. This return code is - *                          possible only if the decoder was initialized - *                          with XZ_DYNALLOC. The amount of memory that was - *                          tried to be allocated was no more than the + * @XZ_MEM_ERROR:           Allocating memory failed. The amount of memory  + *                          that was tried to be allocated was no more than the   *                          dict_max argument given to xz_dec_init().   * @XZ_MEMLIMIT_ERROR:      A bigger LZMA2 dictionary would be needed than   *                          allowed by the dict_max argument given to - *                          xz_dec_init(). This return value is possible - *                          only in multi-call mode (XZ_PREALLOC or - *                          XZ_DYNALLOC); the single-call mode (XZ_SINGLE) - *                          ignores the dict_max argument. + *                          xz_dec_init().   * @XZ_FORMAT_ERROR:        File format was not recognized (wrong magic   *                          bytes).   * @XZ_OPTIONS_ERROR:       This implementation doesn't support the requested @@ -75,18 +52,12 @@ enum xz_mode {   *                          different between multi-call and single-call   *                          mode; more information below.   * - * In multi-call mode, XZ_BUF_ERROR is returned when two consecutive calls - * to XZ code cannot consume any input and cannot produce any new output. - * This happens when there is no new input available, or the output buffer - * is full while at least one output byte is still pending. Assuming your - * code is not buggy, you can get this error only when decoding a compressed - * stream that is truncated or otherwise corrupt. - * - * In single-call mode, XZ_BUF_ERROR is returned only when the output buffer - * is too small or the compressed input is corrupt in a way that makes the - * decoder produce more output than the caller expected. When it is - * (relatively) clear that the compressed input is truncated, XZ_DATA_ERROR - * is used instead of XZ_BUF_ERROR. + * XZ_BUF_ERROR is returned when two consecutive calls to XZ code cannot  + * consume any input and cannot produce any new output. This happens when + * there is no new input available, or the output buffer is full while at + * least one output byte is still pending. Assuming your code is not buggy, + * you can get this error only when decoding a compressed stream that is  + * truncated or otherwise corrupt.   */  enum xz_ret {    XZ_OK, @@ -135,8 +106,7 @@ struct xz_dec;   * xz_dec_init() - Allocate and initialize a XZ decoder state   * @mode:       Operation mode   * @dict_max:   Maximum size of the LZMA2 dictionary (history buffer) for - *              multi-call decoding. This is ignored in single-call mode - *              (mode == XZ_SINGLE). LZMA2 dictionary is always 2^n bytes + *              multi-call decoding. LZMA2 dictionary is always 2^n bytes   *              or 2^n + 2^(n-1) bytes (the latter sizes are less common   *              in practice), so other values for dict_max don't make sense.   *              In the kernel, dictionary sizes of 64 KiB, 128 KiB, 256 KiB, @@ -144,7 +114,6 @@ struct xz_dec;   *              except for kernel and initramfs images where a bigger   *              dictionary can be fine and useful.   * - * Multi-call mode with dynamically allocated dictionary (XZ_DYNALLOC):   * dict_max specifies the maximum allowed dictionary size that xz_dec_run()   * may allocate once it has parsed the dictionary size from the stream   * headers. This way excessive allocations can be avoided while still @@ -155,7 +124,7 @@ struct xz_dec;   * ready to be used with xz_dec_run(). If memory allocation fails,   * xz_dec_init() returns NULL.   */ -struct xz_dec *xz_dec_init(enum xz_mode mode, uint32_t dict_max); +struct xz_dec *xz_dec_init(uint32_t dict_max);  /**   * xz_dec_run() - Run the XZ decoder @@ -250,7 +219,7 @@ void do_xzcat(int fd, char *name)     * Support up to 64 MiB dictionary. The actually needed memory     * is allocated once the headers have been parsed.     */ -  s = xz_dec_init(XZ_DYNALLOC, 1 << 26); +  s = xz_dec_init(1 << 26);    if (s == NULL) {      msg = "Memory allocation failed\n";      goto error; @@ -406,8 +375,6 @@ static inline void put_unaligned_be32(uint32_t val, uint8_t *buf)  #	define get_le32 get_unaligned_le32  #endif -#define XZ_DEC_DYNALLOC -  /*   * If any of the BCJ filter decoders are wanted, define XZ_DEC_BCJ.   * XZ_DEC_BCJ is used to enable generic support for BCJ decoders. @@ -425,8 +392,7 @@ static inline void put_unaligned_be32(uint32_t val, uint8_t *buf)   * Allocate memory for LZMA2 decoder. xz_dec_lzma2_reset() must be used   * before calling xz_dec_lzma2_run().   */ -struct xz_dec_lzma2 *xz_dec_lzma2_create(enum xz_mode mode, -               uint32_t dict_max); +struct xz_dec_lzma2 *xz_dec_lzma2_create(uint32_t dict_max);  /*   * Decode the LZMA2 properties (one byte) and reset the decoder. Return @@ -1239,13 +1205,11 @@ static inline uint32_t lzma_get_dist_state(uint32_t len)   * These are always true:   *    start <= pos <= full <= end   *    pos <= limit <= end - * - * In multi-call mode, also these are true:   *    end == size   *    size <= size_max   *    allocated <= size   * - * Most of these variables are size_t to support single-call mode, + * Most of these variables are size_t as a relic of single-call mode,   * in which the dictionary variables address the actual output   * buffer directly.   */ @@ -1268,11 +1232,7 @@ struct dictionary {    /* Write limit; we don't write to buf[limit] or later bytes. */    size_t limit; -  /* -   * End of the dictionary buffer. In multi-call mode, this is -   * the same as the dictionary size. In single-call mode, this -   * indicates the size of the output buffer. -   */ +  /* End of the dictionary buffer. This is the same as the dictionary size. */    size_t end;    /* @@ -1283,20 +1243,14 @@ struct dictionary {    uint32_t size;    /* -   * Maximum allowed dictionary size in multi-call mode. -   * This is ignored in single-call mode. +   * Maximum allowed dictionary size.     */    uint32_t size_max;    /*     * Amount of memory currently allocated for the dictionary. -   * This is used only with XZ_DYNALLOC. (With XZ_PREALLOC, -   * size_max is always the same as the allocated size.)     */    uint32_t allocated; - -  /* Operation mode */ -  enum xz_mode mode;  };  /* Range decoder */ @@ -1487,11 +1441,8 @@ struct xz_dec_lzma2 {   * Dictionary *   **************/ -/* - * Reset the dictionary state. When in single-call mode, set up the beginning - * of the dictionary to point to the actual output buffer. - */ -static void dict_reset(struct dictionary *dict, struct xz_buf *b) +/* Reset the dictionary state. */ +static void dict_reset(struct dictionary *dict)  {    dict->start = 0;    dict->pos = 0; @@ -2171,7 +2122,7 @@ enum xz_ret xz_dec_lzma2_run(struct xz_dec_lzma2 *s,        if (tmp >= 0xE0 || tmp == 0x01) {          s->lzma2.need_props = 1;          s->lzma2.need_dict_reset = 0; -        dict_reset(&s->dict, b); +        dict_reset(&s->dict);        } else if (s->lzma2.need_dict_reset) {          return XZ_DATA_ERROR;        } @@ -2297,16 +2248,13 @@ enum xz_ret xz_dec_lzma2_run(struct xz_dec_lzma2 *s,    return XZ_OK;  } -struct xz_dec_lzma2 *xz_dec_lzma2_create(enum xz_mode mode, -               uint32_t dict_max) +struct xz_dec_lzma2 *xz_dec_lzma2_create(uint32_t dict_max)  {    struct xz_dec_lzma2 *s = malloc(sizeof(*s));    if (s == NULL)      return NULL; -  s->dict.mode = mode;    s->dict.size_max = dict_max; -    s->dict.buf = NULL;    s->dict.allocated = 0; @@ -2439,9 +2387,6 @@ struct xz_dec {    /* Type of the integrity check calculated from uncompressed data */    enum xz_check check_type; -  /* Operation mode */ -  enum xz_mode mode; -    /*     * True if the next call to xz_dec_run() is allowed to return     * XZ_BUF_ERROR. @@ -3144,21 +3089,19 @@ enum xz_ret xz_dec_run(struct xz_dec *s, struct xz_buf *b)    return ret;  } -struct xz_dec *xz_dec_init(enum xz_mode mode, uint32_t dict_max) +struct xz_dec *xz_dec_init(uint32_t dict_max)  {    struct xz_dec *s = malloc(sizeof(*s));    if (!s)      return NULL; -  s->mode = mode; -  #ifdef XZ_DEC_BCJ    s->bcj = malloc(sizeof(*s->bcj));    if (!s->bcj)      goto error_bcj;  #endif -  s->lzma2 = xz_dec_lzma2_create(mode, dict_max); +  s->lzma2 = xz_dec_lzma2_create(dict_max);    if (s->lzma2 == NULL)      goto error_lzma2; | 
