VirtualBox

source: vbox/trunk/src/libs/liblzma-5.4.1/lzma/fastpos_tablegen.c

最後變更 在這個檔案是 98730,由 vboxsync 提交於 2 年 前

libs/liblzma-5.4.1: Export to OSE, bugref:10254

  • 屬性 svn:eol-style 設為 native
  • 屬性 svn:keywords 設為 Author Date Id Revision
檔案大小: 1.2 KB
 
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 <inttypes.h>
15#include <stdio.h>
16#include "fastpos.h"
17
18
19int
20main(void)
21{
22 uint8_t fastpos[1 << FASTPOS_BITS];
23
24 const uint8_t fast_slots = 2 * FASTPOS_BITS;
25 uint32_t c = 2;
26
27 fastpos[0] = 0;
28 fastpos[1] = 1;
29
30 for (uint8_t slot_fast = 2; slot_fast < fast_slots; ++slot_fast) {
31 const uint32_t k = 1 << ((slot_fast >> 1) - 1);
32 for (uint32_t j = 0; j < k; ++j, ++c)
33 fastpos[c] = slot_fast;
34 }
35
36 printf("/* This file has been automatically generated "
37 "by fastpos_tablegen.c. */\n\n"
38 "#include \"common.h\"\n"
39 "#include \"fastpos.h\"\n\n"
40 "const uint8_t lzma_fastpos[1 << FASTPOS_BITS] = {");
41
42 for (size_t i = 0; i < (1 << FASTPOS_BITS); ++i) {
43 if (i % 16 == 0)
44 printf("\n\t");
45
46 printf("%3u", (unsigned int)(fastpos[i]));
47
48 if (i != (1 << FASTPOS_BITS) - 1)
49 printf(",");
50 }
51
52 printf("\n};\n");
53
54 return 0;
55}
注意: 瀏覽 TracBrowser 來幫助您使用儲存庫瀏覽器

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette