~ubuntu-branches/ubuntu/trusty/cmake3/trusty-updates

« back to all changes in this revision

Viewing changes to Utilities/cmliblzma/liblzma/lzma/fastpos_tablegen.c

  • Committer: Package Import Robot
  • Author(s): Matthias Klose
  • Date: 2017-02-23 17:55:24 UTC
  • Revision ID: package-import@ubuntu.com-20170223175524-5nh7s4pu97fsa0t7
Tags: upstream-3.5.1
ImportĀ upstreamĀ versionĀ 3.5.1

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
///////////////////////////////////////////////////////////////////////////////
 
2
//
 
3
/// \file       fastpos_tablegen.c
 
4
/// \brief      Generates the lzma_fastpos[] lookup table
 
5
///
 
6
//  Authors:    Igor Pavlov
 
7
//              Lasse Collin
 
8
//
 
9
//  This file has been put into the public domain.
 
10
//  You can do whatever you want with this file.
 
11
//
 
12
///////////////////////////////////////////////////////////////////////////////
 
13
 
 
14
#include <sys/types.h>
 
15
#include <inttypes.h>
 
16
#include <stdio.h>
 
17
#include "fastpos.h"
 
18
 
 
19
 
 
20
int
 
21
main(void)
 
22
{
 
23
        uint8_t fastpos[1 << FASTPOS_BITS];
 
24
 
 
25
        const uint8_t fast_slots = 2 * FASTPOS_BITS;
 
26
        uint32_t c = 2;
 
27
 
 
28
        fastpos[0] = 0;
 
29
        fastpos[1] = 1;
 
30
 
 
31
        for (uint8_t slot_fast = 2; slot_fast < fast_slots; ++slot_fast) {
 
32
                const uint32_t k = 1 << ((slot_fast >> 1) - 1);
 
33
                for (uint32_t j = 0; j < k; ++j, ++c)
 
34
                        fastpos[c] = slot_fast;
 
35
        }
 
36
 
 
37
        printf("/* This file has been automatically generated "
 
38
                        "by fastpos_tablegen.c. */\n\n"
 
39
                        "#include \"common.h\"\n"
 
40
                        "#include \"fastpos.h\"\n\n"
 
41
                        "const uint8_t lzma_fastpos[1 << FASTPOS_BITS] = {");
 
42
 
 
43
        for (size_t i = 0; i < (1 << FASTPOS_BITS); ++i) {
 
44
                if (i % 16 == 0)
 
45
                        printf("\n\t");
 
46
 
 
47
                printf("%3u", (unsigned int)(fastpos[i]));
 
48
 
 
49
                if (i != (1 << FASTPOS_BITS) - 1)
 
50
                        printf(",");
 
51
        }
 
52
 
 
53
        printf("\n};\n");
 
54
 
 
55
        return 0;
 
56
}