Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | Download | RSS feed

  1. ┬ ¤Єюь ърЄрыюух эрїюфшЄё  єяЁю∙хээр  яхЁхяшёрээр  эр C ьэю■, diamond'юь, тхЁёш 
  2. LZMA-єяръют∙шър. ╬Ёшушэры№э√щ LZMA SDK 4.32  ты хЄё  copyright (c) 1999-2005
  3. Igor Pavlov, ьюцхЄ с√Є№ яюыєўхэ эр ёЄЁрэшЎх http://www.7-zip.org/sdk.html,
  4. ёюфхЁцшЄ, т ўрёЄэюёЄш, тхЁёшш шёїюфэюую ъюфр эр C++,C# ш Java фы  єяръютъш ш
  5. Ёрёяръютъш, ъюф LZMA-Ёрёяръютъш эр ANSI-C, юяшёрэшх ЇюЁьрЄр 7z.
  6.  
  7. ▌Єр тхЁёш  эх  ты хЄё  схчюярёэющ т ьэюуюяюЄюўэющ ёЁхфх, яюффхЁцштрхЄ Єюы№ъю
  8. bt4 match-finder, эхъюЄюЁ√х ярЁрьхЄЁ√ єяръютъш чрЇшъёшЁютрэ√ (тяЁюўхь, ¤Єю яЁш
  9. эхюсїюфшьюёЄш ыхуъю ьюфшЇшЎшЁютрЄ№), яюффхЁцштрхЄё  Єюы№ъю ёцрЄшх фрээ√ї т
  10. юяхЁрЄштэющ ярь Єш. (▌Єшї юуЁрэшўхэшщ эхЄ т юЁшушэры№эюь LZMA
  11. SDK.) ▌Єр тхЁёш  эх юс чрэр ъюьяшышЁютрЄ№ё  ы■с√ь ъюьяшы ЄюЁюь, шсю   шёяюы№чє■
  12. Єюы№ъю VC++, їюЄ  хфшэёЄтхээюх шчтхёЄэюх ьэх юЄъыюэхэшх юЄ ANSI C ёюёЄюшЄ т
  13. шёяюы№чютрэшш VC-ёяхЎшЇшўэющ фшЁхъЄшт√ #pragma intrinsic(memcpy), эхюсїюфшьющ,
  14. ўЄюс√ memcpy с√ыр тёЄЁюхэр яЁ ью т ъюф - т Ёхчєы№ЄрЄх сшсышюЄхър эх ёё√ырхЄё 
  15. эш эр юфэє шч ЇєэъЎшщ C run-time library. (╠эх ¤Єю эхюсїюфшью, яюёъюы№ъє
  16. сшсышюЄхър шёяюы№чєхЄё  т рёёхьсыхЁэющ яЁюуЁрььх MtApPack, эх шёяюы№чє■∙хщ
  17. RTL ш ъ Єюьє цх ёє∙хёЄтє■∙хщ ш фы  Windows, ш фы  Kolibri.)
  18.  
  19. ▌Єр сшсышюЄхър, ъръ ш юЁшушэры№э√щ LZMA SDK, ьюцхЄ с√Є№ шёяюы№чютрэр т фЁєушї
  20. яЁюуЁрььрї т ёююЄтхЄёЄтшш ё юфэющ шч ышЎхэчшщ (эр тр° т√сюЁ) GNU LGPL шыш
  21. GNU CPL. (╬Ёшушэры№э√щ SDK Єръцх фюяєёърхЄ шёяюы№чютрэшх юЁшушэры№эющ
  22. сшсышюЄхъш схч юуЁрэшўхэшщ яЁш єёыютшш шёяюы№чютрэш  юс·хъЄэ√ї Їрщыют схч
  23. ьюфшЇшърЎшш ъюфр, эр фрээє■ тхЁёш■ ¤Єю эх ЁрёяЁюёЄЁрэ хЄё .)
  24.  
  25. ▌ъёяюЁЄшЁє■Єё  фтх ЇєэъЎшш: т C++-ёЄшых юс· тыхэшх т√уы фшЄ Єръ:
  26. extern "C" __stdcall void lzma_set_dict_size(unsigned logdictsize);
  27. extern "C" __stdcall unsigned lzma_compress(
  28.         const void* source,
  29.         void* destination,
  30.         unsigned length,
  31.         void* workmem);
  32.  
  33. ╧хЁхф єяръютъющ ЄЁхсєхЄё  єёЄрэютшЄ№ ЁрчьхЁ ёыютрЁ  яхЁтющ шч ¤Єшї ЇєэъЎшщ,
  34. яЁшэшьр■∙хщ ыюурЁшЇь яю юёэютрэш■ 2 ¤Єюую чэрўхэш 
  35. (Є.х. dictsize == (1<<logdictsize)). ╠ръёшьры№э√щ ЁрчьхЁ сєЇхЁр Ёртхэ 256Mb,
  36. Єръ ўЄю ярЁрьхЄЁ logdictsize эх фюыцхэ яЁхтюёїюфшЄ№ 28. ┼ёыш ЁрчьхЁ сєЇхЁр
  37. сюы№°х ЁрчьхЁр тїюфэ√ї фрээ√ї, Єю Ёхчєы№ЄрЄ эх чртшёшЄ юЄ ЁрчьхЁр сєЇхЁр,
  38. Є.х. фы  фрээ√ї ЁрчьхЁюь 12345 срщЄ Ёхчєы№ЄрЄ√ ёцрЄш  ё сєЇхЁюь эр 16384 срщЄ ш
  39. эр 1 ьхурсрщЄ юфшэръют√.
  40. ╙яръютър яЁюшчтюфшЄё  т√чютюь тЄюЁющ шч ¤Єшї ЇєэъЎшщ. source - єърчрЄхы№ эр
  41. тїюфэ√х фрээ√х, destination - єърчрЄхы№ эр сєЇхЁ фы  єяръютрээ√ї фрээ√ї,
  42. length - фышэр тїюфэ√ї фрээ√ї, workmem - єърчрЄхы№ эр тЁхьхээє■ ярь Є№,
  43. шёяюы№чєхьє■ єяръют∙шъюь; фюыцэю с√Є№ т√фхыхэю эх ьхэхх 0x509000+dictsize*19/2
  44. срщЄ. ─ы  єяръютрээ√ї фрээ√ї т їєф°хь ёыєўрх фюёЄрЄюўэю 0x10 + length*9/8 срщЄ.
  45.