react-native-update 10.34.3 → 10.34.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/harmony/pushy/src/main/cpp/HDiffPatch/CHANGELOG.md +34 -172
- package/harmony/pushy/src/main/cpp/HDiffPatch/LICENSE +4 -4
- package/harmony/pushy/src/main/cpp/HDiffPatch/Makefile +63 -379
- package/harmony/pushy/src/main/cpp/HDiffPatch/README.md +170 -415
- package/harmony/pushy/src/main/cpp/HDiffPatch/_atosize.h +10 -54
- package/harmony/pushy/src/main/cpp/HDiffPatch/_clock_for_demo.h +1 -13
- package/harmony/pushy/src/main/cpp/HDiffPatch/builds/android_ndk_jni_mk/Android.mk +18 -171
- package/harmony/pushy/src/main/cpp/HDiffPatch/builds/android_ndk_jni_mk/Application.mk +4 -5
- package/harmony/pushy/src/main/cpp/HDiffPatch/builds/android_ndk_jni_mk/hpatch.c +7 -38
- package/harmony/pushy/src/main/cpp/HDiffPatch/builds/android_ndk_jni_mk/hpatch.h +4 -15
- package/harmony/pushy/src/main/cpp/HDiffPatch/builds/android_ndk_jni_mk/hpatch_jni.c +12 -22
- package/harmony/pushy/src/main/cpp/HDiffPatch/builds/android_ndk_jni_mk/java/com/github/sisong/HPatch.java +4 -22
- package/harmony/pushy/src/main/cpp/HDiffPatch/builds/codeblocks/HDiffPatch.workspace +8 -0
- package/harmony/pushy/src/main/cpp/HDiffPatch/builds/codeblocks/HDiffZ.cbp +219 -0
- package/harmony/pushy/src/main/cpp/HDiffPatch/builds/codeblocks/HPatchZ.cbp +156 -0
- package/harmony/pushy/src/main/cpp/HDiffPatch/builds/codeblocks/unitTest.cbp +65 -0
- package/harmony/pushy/src/main/cpp/HDiffPatch/builds/vc/HDiffPatch.sln +105 -155
- package/harmony/pushy/src/main/cpp/HDiffPatch/builds/vc/HDiffZ.vcxproj +236 -363
- package/harmony/pushy/src/main/cpp/HDiffPatch/builds/vc/HDiffZ.vcxproj.user +3 -0
- package/harmony/pushy/src/main/cpp/HDiffPatch/builds/vc/HPatchZ.vcxproj +317 -347
- package/harmony/pushy/src/main/cpp/HDiffPatch/builds/vc/HPatchZ.vcxproj.user +3 -0
- package/harmony/pushy/src/main/cpp/HDiffPatch/builds/vc/unitTest.vcxproj +181 -295
- package/harmony/pushy/src/main/cpp/HDiffPatch/builds/vc/unitTest.vcxproj.user +3 -0
- package/harmony/pushy/src/main/cpp/HDiffPatch/builds/xcode/HDiffPatch.xcworkspace/contents.xcworkspacedata +0 -9
- package/harmony/pushy/src/main/cpp/HDiffPatch/builds/xcode/bestParams.xcodeproj/project.pbxproj +14 -53
- package/harmony/pushy/src/main/cpp/HDiffPatch/builds/xcode/hdiffz.xcodeproj/project.pbxproj +32 -162
- package/harmony/pushy/src/main/cpp/HDiffPatch/builds/xcode/hpatchz.xcodeproj/project.pbxproj +22 -89
- package/harmony/pushy/src/main/cpp/HDiffPatch/builds/xcode/lzma.xcodeproj/project.pbxproj +13 -237
- package/harmony/pushy/src/main/cpp/HDiffPatch/builds/xcode/testHashClash.xcodeproj/project.pbxproj +2 -2
- package/harmony/pushy/src/main/cpp/HDiffPatch/builds/xcode/unitTest.xcodeproj/project.pbxproj +14 -194
- package/harmony/pushy/src/main/cpp/HDiffPatch/builds/xcode/zstd.xcodeproj/project.pbxproj +10 -30
- package/harmony/pushy/src/main/cpp/HDiffPatch/checksum_plugin_demo.h +3 -458
- package/harmony/pushy/src/main/cpp/HDiffPatch/compress_parallel.cpp +71 -106
- package/harmony/pushy/src/main/cpp/HDiffPatch/compress_parallel.h +3 -3
- package/harmony/pushy/src/main/cpp/HDiffPatch/compress_plugin_demo.h +110 -484
- package/harmony/pushy/src/main/cpp/HDiffPatch/decompress_plugin_demo.h +193 -835
- package/harmony/pushy/src/main/cpp/HDiffPatch/dirDiffPatch/dir_diff/dir_diff.cpp +50 -99
- package/harmony/pushy/src/main/cpp/HDiffPatch/dirDiffPatch/dir_diff/dir_diff.h +4 -18
- package/harmony/pushy/src/main/cpp/HDiffPatch/dirDiffPatch/dir_diff/dir_diff_tools.cpp +8 -147
- package/harmony/pushy/src/main/cpp/HDiffPatch/dirDiffPatch/dir_diff/dir_diff_tools.h +6 -18
- package/harmony/pushy/src/main/cpp/HDiffPatch/dirDiffPatch/dir_diff/dir_manifest.cpp +25 -7
- package/harmony/pushy/src/main/cpp/HDiffPatch/dirDiffPatch/dir_diff/file_for_dirDiff.h +113 -5
- package/harmony/pushy/src/main/cpp/HDiffPatch/dirDiffPatch/dir_patch/dir_patch.c +97 -163
- package/harmony/pushy/src/main/cpp/HDiffPatch/dirDiffPatch/dir_patch/dir_patch.h +39 -49
- package/harmony/pushy/src/main/cpp/HDiffPatch/dirDiffPatch/dir_patch/dir_patch_tools.c +15 -15
- package/harmony/pushy/src/main/cpp/HDiffPatch/dirDiffPatch/dir_patch/dir_patch_tools.h +2 -18
- package/harmony/pushy/src/main/cpp/HDiffPatch/dirDiffPatch/dir_patch/dir_patch_types.h +4 -8
- package/harmony/pushy/src/main/cpp/HDiffPatch/dirDiffPatch/dir_patch/new_dir_output.c +57 -72
- package/harmony/pushy/src/main/cpp/HDiffPatch/dirDiffPatch/dir_patch/new_dir_output.h +13 -18
- package/harmony/pushy/src/main/cpp/HDiffPatch/dirDiffPatch/dir_patch/new_stream.c +1 -1
- package/harmony/pushy/src/main/cpp/HDiffPatch/dirDiffPatch/dir_patch/new_stream.h +2 -2
- package/harmony/pushy/src/main/cpp/HDiffPatch/dirDiffPatch/dir_patch/ref_stream.c +2 -2
- package/harmony/pushy/src/main/cpp/HDiffPatch/dirDiffPatch/dir_patch/ref_stream.h +2 -2
- package/harmony/pushy/src/main/cpp/HDiffPatch/dirDiffPatch/dir_patch/res_handle_limit.c +2 -2
- package/harmony/pushy/src/main/cpp/HDiffPatch/dirDiffPatch/dir_patch/res_handle_limit.h +1 -1
- package/harmony/pushy/src/main/cpp/HDiffPatch/file_for_patch.c +100 -311
- package/harmony/pushy/src/main/cpp/HDiffPatch/file_for_patch.h +72 -53
- package/harmony/pushy/src/main/cpp/HDiffPatch/hdiffz.cpp +487 -888
- package/harmony/pushy/src/main/cpp/HDiffPatch/hpatch_dir_listener.h +28 -45
- package/harmony/pushy/src/main/cpp/HDiffPatch/hpatchz.c +247 -812
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HDiff/diff.cpp +544 -1265
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HDiff/diff.h +38 -123
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HDiff/diff_types.h +0 -115
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HDiff/private_diff/bytes_rle.cpp +102 -272
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HDiff/private_diff/bytes_rle.h +12 -22
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HDiff/private_diff/compress_detect.cpp +4 -18
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HDiff/private_diff/compress_detect.h +5 -7
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HDiff/private_diff/libdivsufsort/{divsufsort.cpp → divsufsort.c} +8 -5
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HDiff/private_diff/libdivsufsort/divsufsort.c.inc.h +164 -91
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HDiff/private_diff/libdivsufsort/divsufsort.h +102 -5
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HDiff/private_diff/libdivsufsort/divsufsort64.c +13 -0
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HDiff/private_diff/libdivsufsort/divsufsort64.h +97 -1
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HDiff/private_diff/libdivsufsort/divsufsort_private.h +44 -23
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HDiff/private_diff/libdivsufsort/sssort.c.inc.h +89 -54
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HDiff/private_diff/libdivsufsort/trsort.c.inc.h +55 -48
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HDiff/private_diff/libdivsufsort/utils.c.inc.h +381 -0
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HDiff/private_diff/limit_mem_diff/adler_roll.c +47 -110
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HDiff/private_diff/limit_mem_diff/adler_roll.h +4 -11
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HDiff/private_diff/limit_mem_diff/bloom_filter.h +26 -53
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HDiff/private_diff/limit_mem_diff/covers.h +25 -103
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HDiff/private_diff/limit_mem_diff/digest_matcher.cpp +130 -271
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HDiff/private_diff/limit_mem_diff/digest_matcher.h +7 -17
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HDiff/private_diff/limit_mem_diff/stream_serialize.cpp +37 -628
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HDiff/private_diff/limit_mem_diff/stream_serialize.h +43 -203
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HDiff/private_diff/mem_buf.h +10 -14
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HDiff/private_diff/pack_uint.h +7 -22
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HDiff/private_diff/suffix_string.cpp +46 -132
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HDiff/private_diff/suffix_string.h +9 -48
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HPatch/patch.c +299 -650
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HPatch/patch.h +82 -120
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HPatch/patch_private.h +7 -87
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HPatch/patch_types.h +9 -119
- package/harmony/pushy/src/main/cpp/HDiffPatch/libParallel/parallel_channel.cpp +6 -2
- package/harmony/pushy/src/main/cpp/HDiffPatch/libParallel/parallel_channel.h +15 -192
- package/harmony/pushy/src/main/cpp/HDiffPatch/libParallel/parallel_import.cpp +367 -0
- package/harmony/pushy/src/main/cpp/HDiffPatch/libParallel/parallel_import.h +56 -31
- package/harmony/pushy/src/main/cpp/HDiffPatch/test/_private_searchBestParams.cpp +1 -1
- package/harmony/pushy/src/main/cpp/HDiffPatch/test/hpatchz_test.cpp +1 -0
- package/harmony/pushy/src/main/cpp/HDiffPatch/test/testHashClash.cpp +31 -225
- package/harmony/pushy/src/main/cpp/HDiffPatch/test/unit_test.cpp +94 -566
- package/harmony/pushy/src/main/cpp/lzma/Asm/x86/7zAsm.asm +28 -222
- package/harmony/pushy/src/main/cpp/lzma/Asm/x86/7zCrcOpt.asm +117 -228
- package/harmony/pushy/src/main/cpp/lzma/Asm/x86/AesOpt.asm +173 -678
- package/harmony/pushy/src/main/cpp/lzma/Asm/x86/LzmaDecOpt.asm +22 -103
- package/harmony/pushy/src/main/cpp/lzma/Asm/x86/XzCrc64Opt.asm +167 -485
- package/harmony/pushy/src/main/cpp/lzma/C/7z.h +6 -8
- package/harmony/pushy/src/main/cpp/lzma/C/7zAlloc.c +30 -39
- package/harmony/pushy/src/main/cpp/lzma/C/7zAlloc.h +3 -3
- package/harmony/pushy/src/main/cpp/lzma/C/7zArcIn.c +217 -232
- package/harmony/pushy/src/main/cpp/lzma/C/7zBuf.h +3 -3
- package/harmony/pushy/src/main/cpp/lzma/C/7zCrc.c +68 -404
- package/harmony/pushy/src/main/cpp/lzma/C/7zCrc.h +6 -9
- package/harmony/pushy/src/main/cpp/lzma/C/7zCrcOpt.c +79 -163
- package/harmony/pushy/src/main/cpp/lzma/C/7zDec.c +78 -160
- package/harmony/pushy/src/main/cpp/lzma/C/7zFile.c +58 -215
- package/harmony/pushy/src/main/cpp/lzma/C/7zFile.h +6 -15
- package/harmony/pushy/src/main/cpp/lzma/C/7zStream.c +23 -46
- package/harmony/pushy/src/main/cpp/lzma/C/7zTypes.h +89 -311
- package/harmony/pushy/src/main/cpp/lzma/C/7zVersion.h +5 -5
- package/harmony/pushy/src/main/cpp/lzma/C/Aes.c +68 -191
- package/harmony/pushy/src/main/cpp/lzma/C/Aes.h +8 -30
- package/harmony/pushy/src/main/cpp/lzma/C/AesOpt.c +108 -926
- package/harmony/pushy/src/main/cpp/lzma/C/Alloc.c +96 -246
- package/harmony/pushy/src/main/cpp/lzma/C/Alloc.h +8 -33
- package/harmony/pushy/src/main/cpp/lzma/C/Bcj2.c +144 -177
- package/harmony/pushy/src/main/cpp/lzma/C/Bcj2.h +42 -228
- package/harmony/pushy/src/main/cpp/lzma/C/Bcj2Enc.c +182 -377
- package/harmony/pushy/src/main/cpp/lzma/C/Bra.c +143 -622
- package/harmony/pushy/src/main/cpp/lzma/C/Bra.h +40 -81
- package/harmony/pushy/src/main/cpp/lzma/C/Bra86.c +58 -163
- package/harmony/pushy/src/main/cpp/lzma/C/BraIA64.c +48 -9
- package/harmony/pushy/src/main/cpp/lzma/C/Compiler.h +15 -228
- package/harmony/pushy/src/main/cpp/lzma/C/CpuArch.c +133 -885
- package/harmony/pushy/src/main/cpp/lzma/C/CpuArch.h +78 -428
- package/harmony/pushy/src/main/cpp/lzma/C/Delta.c +31 -136
- package/harmony/pushy/src/main/cpp/lzma/C/Delta.h +3 -3
- package/harmony/pushy/src/main/cpp/lzma/C/DllSecur.c +62 -53
- package/harmony/pushy/src/main/cpp/lzma/C/DllSecur.h +5 -5
- package/harmony/pushy/src/main/cpp/lzma/C/LzFind.c +495 -1114
- package/harmony/pushy/src/main/cpp/lzma/C/LzFind.h +25 -64
- package/harmony/pushy/src/main/cpp/lzma/C/LzFindMt.c +400 -969
- package/harmony/pushy/src/main/cpp/lzma/C/LzFindMt.h +24 -37
- package/harmony/pushy/src/main/cpp/lzma/C/LzHash.h +48 -25
- package/harmony/pushy/src/main/cpp/lzma/C/Lzma2Dec.c +7 -12
- package/harmony/pushy/src/main/cpp/lzma/C/Lzma2Dec.h +7 -8
- package/harmony/pushy/src/main/cpp/lzma/C/Lzma2DecMt.c +83 -96
- package/harmony/pushy/src/main/cpp/lzma/C/Lzma2DecMt.h +9 -11
- package/harmony/pushy/src/main/cpp/lzma/C/Lzma2Enc.c +92 -96
- package/harmony/pushy/src/main/cpp/lzma/C/Lzma2Enc.h +9 -12
- package/harmony/pushy/src/main/cpp/lzma/C/Lzma86.h +3 -3
- package/harmony/pushy/src/main/cpp/lzma/C/Lzma86Dec.c +4 -3
- package/harmony/pushy/src/main/cpp/lzma/C/Lzma86Enc.c +6 -3
- package/harmony/pushy/src/main/cpp/lzma/C/LzmaDec.c +206 -384
- package/harmony/pushy/src/main/cpp/lzma/C/LzmaDec.h +8 -11
- package/harmony/pushy/src/main/cpp/lzma/C/LzmaEnc.c +315 -489
- package/harmony/pushy/src/main/cpp/lzma/C/LzmaEnc.h +9 -18
- package/harmony/pushy/src/main/cpp/lzma/C/LzmaLib.c +3 -5
- package/harmony/pushy/src/main/cpp/lzma/C/LzmaLib.h +14 -21
- package/harmony/pushy/src/main/cpp/lzma/C/MtCoder.c +87 -90
- package/harmony/pushy/src/main/cpp/lzma/C/MtCoder.h +25 -28
- package/harmony/pushy/src/main/cpp/lzma/C/MtDec.c +88 -74
- package/harmony/pushy/src/main/cpp/lzma/C/MtDec.h +20 -21
- package/harmony/pushy/src/main/cpp/lzma/C/Ppmd.h +34 -118
- package/harmony/pushy/src/main/cpp/lzma/C/Ppmd7.c +293 -712
- package/harmony/pushy/src/main/cpp/lzma/C/Ppmd7.h +70 -109
- package/harmony/pushy/src/main/cpp/lzma/C/Ppmd7Dec.c +116 -237
- package/harmony/pushy/src/main/cpp/lzma/C/Ppmd7Enc.c +95 -245
- package/harmony/pushy/src/main/cpp/lzma/C/Precomp.h +5 -122
- package/harmony/pushy/src/main/cpp/lzma/C/RotateDefs.h +4 -24
- package/harmony/pushy/src/main/cpp/lzma/C/Sha256.c +143 -387
- package/harmony/pushy/src/main/cpp/lzma/C/Sha256.h +7 -67
- package/harmony/pushy/src/main/cpp/lzma/C/Sort.c +114 -241
- package/harmony/pushy/src/main/cpp/lzma/C/Sort.h +7 -4
- package/harmony/pushy/src/main/cpp/lzma/C/Threads.c +14 -731
- package/harmony/pushy/src/main/cpp/lzma/C/Threads.h +14 -204
- package/harmony/pushy/src/main/cpp/lzma/C/ThreadsP.c +396 -0
- package/harmony/pushy/src/main/cpp/lzma/C/ThreadsP.h +31 -0
- package/harmony/pushy/src/main/cpp/lzma/C/Util/7z/7z.dsp +2 -10
- package/harmony/pushy/src/main/cpp/lzma/C/Util/7z/7zMain.c +79 -282
- package/harmony/pushy/src/main/cpp/lzma/C/Util/7z/Precomp.h +7 -10
- package/harmony/pushy/src/main/cpp/lzma/C/Util/7z/makefile +3 -7
- package/harmony/pushy/src/main/cpp/lzma/C/Util/7z/makefile.gcc +75 -32
- package/harmony/pushy/src/main/cpp/lzma/C/Util/Lzma/LzmaUtil.c +56 -111
- package/harmony/pushy/src/main/cpp/lzma/C/Util/Lzma/LzmaUtil.dsp +0 -24
- package/harmony/pushy/src/main/cpp/lzma/C/Util/Lzma/makefile +0 -2
- package/harmony/pushy/src/main/cpp/lzma/C/Util/Lzma/makefile.gcc +41 -18
- package/harmony/pushy/src/main/cpp/lzma/C/Util/LzmaLib/LzmaLib.dsp +2 -30
- package/harmony/pushy/src/main/cpp/lzma/C/Util/LzmaLib/LzmaLibExports.c +6 -7
- package/harmony/pushy/src/main/cpp/lzma/C/Util/LzmaLib/makefile +2 -27
- package/harmony/pushy/src/main/cpp/lzma/C/Util/SfxSetup/Precomp.h +7 -10
- package/harmony/pushy/src/main/cpp/lzma/C/Util/SfxSetup/SfxSetup.c +22 -39
- package/harmony/pushy/src/main/cpp/lzma/C/Util/SfxSetup/makefile +2 -9
- package/harmony/pushy/src/main/cpp/lzma/C/Util/SfxSetup/makefile_con +1 -3
- package/harmony/pushy/src/main/cpp/lzma/C/Xz.c +3 -5
- package/harmony/pushy/src/main/cpp/lzma/C/Xz.h +47 -129
- package/harmony/pushy/src/main/cpp/lzma/C/XzCrc64.c +43 -97
- package/harmony/pushy/src/main/cpp/lzma/C/XzCrc64.h +8 -8
- package/harmony/pushy/src/main/cpp/lzma/C/XzCrc64Opt.c +36 -228
- package/harmony/pushy/src/main/cpp/lzma/C/XzDec.c +295 -405
- package/harmony/pushy/src/main/cpp/lzma/C/XzEnc.c +139 -194
- package/harmony/pushy/src/main/cpp/lzma/C/XzEnc.h +11 -15
- package/harmony/pushy/src/main/cpp/lzma/C/XzIn.c +134 -200
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/7zip.mak +6 -6
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Aes.mak +1 -4
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/7z/7zCompressionMode.h +13 -29
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/7z/7zDecode.cpp +90 -120
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/7z/7zDecode.h +6 -9
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/7z/7zEncode.cpp +140 -183
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/7z/7zEncode.h +20 -23
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/7z/7zExtract.cpp +57 -78
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/7z/7zFolderInStream.cpp +44 -169
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/7z/7zFolderInStream.h +17 -57
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/7z/7zHandler.cpp +109 -141
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/7z/7zHandler.h +57 -54
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/7z/7zHandlerOut.cpp +116 -336
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/7z/7zHeader.cpp +1 -1
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/7z/7zHeader.h +9 -17
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/7z/7zIn.cpp +136 -234
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/7z/7zIn.h +26 -35
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/7z/7zItem.h +5 -10
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/7z/7zOut.cpp +155 -280
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/7z/7zOut.h +40 -51
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/7z/7zProperties.cpp +59 -67
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/7z/7zProperties.h +2 -6
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/7z/7zRegister.cpp +2 -8
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/7z/7zSpecStream.cpp +3 -12
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/7z/7zSpecStream.h +9 -23
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/7z/7zUpdate.cpp +387 -975
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/7z/7zUpdate.h +16 -44
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/7z/StdAfx.h +2 -5
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/Archive.def +0 -2
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/Archive2.def +0 -2
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/ArchiveExports.cpp +8 -15
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/Common/CoderMixer2.cpp +87 -106
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/Common/CoderMixer2.h +57 -57
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/Common/DummyOutStream.cpp +1 -1
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/Common/DummyOutStream.h +8 -6
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/Common/HandlerOut.cpp +43 -126
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/Common/HandlerOut.h +18 -77
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/Common/InStreamWithCRC.cpp +9 -20
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/Common/InStreamWithCRC.h +23 -20
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/Common/ItemNameUtils.cpp +9 -61
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/Common/ItemNameUtils.h +3 -8
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/Common/MultiStream.cpp +27 -29
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/Common/MultiStream.h +26 -23
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/Common/OutStreamWithCRC.cpp +2 -2
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/Common/OutStreamWithCRC.h +8 -6
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/Common/ParseProperties.h +2 -2
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/Common/StdAfx.h +2 -5
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/DllExports2.cpp +10 -63
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/IArchive.h +173 -319
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/LzmaHandler.cpp +113 -92
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/SplitHandler.cpp +53 -47
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/StdAfx.h +2 -5
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/XzHandler.cpp +208 -352
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/XzHandler.h +2 -2
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Asm.mak +3 -6
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/Alone7z/Alone.dsp +47 -227
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/Alone7z/StdAfx.h +2 -5
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/Alone7z/makefile +5 -19
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/Format7zExtractR/StdAfx.h +2 -5
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/Format7zExtractR/makefile +2 -4
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/Format7zR/StdAfx.h +2 -5
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/Format7zR/makefile +1 -6
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/LzmaCon/LzmaAlone.cpp +53 -71
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/LzmaCon/LzmaCon.dsp +22 -85
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/LzmaCon/StdAfx.h +2 -5
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/LzmaCon/makefile +4 -13
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/LzmaCon/makefile.gcc +166 -102
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/SFXCon/SFXCon.dsp +4 -109
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/SFXCon/SfxCon.cpp +30 -69
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/SFXCon/StdAfx.h +2 -5
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/SFXCon/makefile +7 -10
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/SFXCon/resource.rc +1 -5
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/SFXSetup/ExtractCallbackSfx.cpp +16 -16
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/SFXSetup/ExtractCallbackSfx.h +12 -9
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/SFXSetup/ExtractEngine.cpp +9 -7
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/SFXSetup/ExtractEngine.h +2 -2
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/SFXSetup/SFXSetup.dsp +5 -74
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/SFXSetup/SfxSetup.cpp +51 -58
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/SFXSetup/StdAfx.h +10 -3
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/SFXSetup/makefile +5 -9
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/SFXWin/SFXWin.dsp +6 -92
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/SFXWin/SfxWin.cpp +19 -46
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/SFXWin/StdAfx.h +11 -3
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/SFXWin/makefile +5 -11
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/SFXWin/resource.rc +0 -5
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/CWrappers.cpp +28 -136
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/CWrappers.h +5 -67
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/CreateCoder.cpp +62 -74
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/CreateCoder.h +24 -32
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/FilePathAutoRename.cpp +7 -7
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/FilePathAutoRename.h +2 -2
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/FileStreams.cpp +100 -548
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/FileStreams.h +86 -125
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/FilterCoder.cpp +116 -258
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/FilterCoder.h +76 -72
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/InBuffer.cpp +15 -34
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/InBuffer.h +9 -38
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/InOutTempBuffer.cpp +82 -192
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/InOutTempBuffer.h +28 -25
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/LimitedStreams.cpp +52 -78
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/LimitedStreams.h +83 -52
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/LockedStream.h +2 -2
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/MethodId.h +2 -2
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/MethodProps.cpp +67 -323
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/MethodProps.h +38 -123
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/OffsetStream.cpp +8 -6
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/OffsetStream.h +13 -9
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/OutBuffer.cpp +12 -12
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/OutBuffer.h +7 -74
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/ProgressUtils.cpp +5 -5
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/ProgressUtils.h +13 -11
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/PropId.cpp +1 -10
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/RegisterArc.h +14 -16
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/RegisterCodec.h +16 -16
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/StdAfx.h +2 -5
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/StreamBinder.cpp +50 -45
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/StreamBinder.h +21 -39
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/StreamObjects.cpp +42 -47
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/StreamObjects.h +53 -42
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/StreamUtils.cpp +4 -49
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/StreamUtils.h +2 -20
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/UniqBlocks.cpp +4 -4
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/UniqBlocks.h +5 -20
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/VirtThread.cpp +9 -8
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/VirtThread.h +5 -5
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/Bcj2Coder.cpp +355 -556
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/Bcj2Coder.h +59 -66
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/Bcj2Register.cpp +2 -2
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/BcjCoder.cpp +6 -6
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/BcjCoder.h +13 -19
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/BcjRegister.cpp +2 -2
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/BranchMisc.cpp +5 -88
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/BranchMisc.h +18 -42
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/BranchRegister.cpp +16 -33
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/ByteSwap.cpp +53 -52
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/CodecExports.cpp +30 -64
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/CopyCoder.cpp +22 -55
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/CopyCoder.h +26 -11
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/DeltaFilter.cpp +28 -26
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/Lzma2Decoder.cpp +28 -30
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/Lzma2Decoder.h +54 -45
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/Lzma2Encoder.cpp +12 -24
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/Lzma2Encoder.h +22 -10
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/Lzma2Register.cpp +1 -1
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/LzmaDecoder.cpp +26 -33
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/LzmaDecoder.h +51 -51
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/LzmaEncoder.cpp +40 -232
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/LzmaEncoder.h +14 -13
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/LzmaRegister.cpp +1 -1
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/PpmdDecoder.cpp +35 -84
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/PpmdDecoder.h +41 -42
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/PpmdEncoder.cpp +25 -66
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/PpmdEncoder.h +17 -8
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/PpmdRegister.cpp +1 -1
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/StdAfx.h +2 -5
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/XzDecoder.cpp +12 -13
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/XzDecoder.h +32 -26
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/XzEncoder.cpp +16 -14
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/XzEncoder.h +20 -9
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Crc.mak +1 -1
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Crc64.mak +1 -1
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Crypto/7zAes.cpp +32 -67
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Crypto/7zAes.h +18 -30
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Crypto/7zAesRegister.cpp +3 -3
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Crypto/MyAes.cpp +43 -208
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Crypto/MyAes.h +25 -90
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Crypto/MyAesReg.cpp +4 -17
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Crypto/RandGen.cpp +21 -29
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Crypto/RandGen.h +3 -4
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Crypto/StdAfx.h +2 -5
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/GuiCommon.rc +3 -38
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Guid.txt +3 -26
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/ICoder.h +172 -253
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/IDecl.h +7 -55
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/IPassword.h +12 -43
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/IProgress.h +9 -10
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/IStream.h +50 -133
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/LzmaDec.mak +2 -4
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/MyVersionInfo.rc +1 -1
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/PropID.h +2 -53
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Client7z/Client7z.cpp +177 -329
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Client7z/Client7z.dsp +1 -97
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Client7z/StdAfx.h +2 -5
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Client7z/makefile +1 -2
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/ArchiveCommandLine.cpp +183 -687
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/ArchiveCommandLine.h +15 -49
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/ArchiveExtractCallback.cpp +913 -2275
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/ArchiveExtractCallback.h +115 -353
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/ArchiveName.cpp +106 -127
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/ArchiveName.h +3 -9
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/ArchiveOpenCallback.cpp +35 -272
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/ArchiveOpenCallback.h +64 -134
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/Bench.cpp +1200 -2608
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/Bench.h +20 -64
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/DefaultName.cpp +1 -1
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/DefaultName.h +2 -2
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/DirItem.h +36 -253
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/EnumDirItems.cpp +233 -774
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/EnumDirItems.h +6 -2
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/ExitCode.h +2 -2
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/Extract.cpp +63 -156
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/Extract.h +10 -23
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/ExtractMode.h +2 -12
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/ExtractingFilePath.cpp +6 -22
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/ExtractingFilePath.h +4 -4
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/HashCalc.cpp +65 -1991
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/HashCalc.h +29 -241
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/IFileExtractCallback.h +47 -45
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/LoadCodecs.cpp +179 -442
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/LoadCodecs.h +89 -147
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/OpenArchive.cpp +380 -529
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/OpenArchive.h +42 -75
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/PropIDUtils.cpp +86 -163
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/PropIDUtils.h +5 -5
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/Property.h +2 -2
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/SetProperties.cpp +15 -23
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/SetProperties.h +2 -2
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/SortUtils.h +2 -2
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/StdAfx.h +2 -5
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/TempFiles.cpp +1 -2
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/TempFiles.h +2 -5
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/Update.cpp +368 -595
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/Update.h +47 -68
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/UpdateAction.h +2 -2
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/UpdateCallback.cpp +146 -444
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/UpdateCallback.h +68 -103
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/UpdatePair.cpp +42 -111
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/UpdatePair.h +2 -2
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/UpdateProduce.cpp +3 -7
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/UpdateProduce.h +6 -11
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/WorkDir.cpp +35 -25
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/WorkDir.h +4 -8
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/ZipRegistry.h +9 -91
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Console/BenchCon.cpp +4 -4
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Console/BenchCon.h +2 -2
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Console/Console.mak +1 -4
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Console/Console.manifest +0 -3
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Console/ConsoleClose.cpp +19 -48
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Console/ConsoleClose.h +12 -18
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Console/ExtractCallbackConsole.cpp +41 -162
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Console/ExtractCallbackConsole.h +41 -88
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Console/HashCon.cpp +81 -140
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Console/HashCon.h +17 -27
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Console/List.cpp +124 -182
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Console/List.h +7 -22
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Console/Main.cpp +109 -590
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Console/MainAr.cpp +2 -62
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Console/OpenCallbackConsole.cpp +3 -3
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Console/OpenCallbackConsole.h +10 -17
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Console/PercentPrinter.cpp +10 -13
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Console/PercentPrinter.h +9 -13
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Console/StdAfx.h +2 -5
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Console/UpdateCallbackConsole.cpp +24 -320
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Console/UpdateCallbackConsole.h +26 -50
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Console/UserInputUtils.cpp +5 -13
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Console/UserInputUtils.h +2 -2
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Console/makefile +2 -6
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Explorer/MyMessages.cpp +6 -12
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Explorer/MyMessages.h +4 -4
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/BrowseDialog.cpp +195 -302
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/BrowseDialog.h +4 -15
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/ComboDialog.cpp +2 -2
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/ComboDialog.h +6 -6
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/DialogSize.h +2 -2
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/ExtractCallback.cpp +181 -416
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/ExtractCallback.h +197 -216
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/FormatUtils.h +2 -2
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/LangUtils.h +5 -13
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/MyWindowsNew.h +5 -48
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/OverwriteDialog.cpp +49 -215
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/OverwriteDialog.h +30 -50
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/OverwriteDialog.rc +1 -3
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/OverwriteDialogRes.h +3 -5
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/PasswordDialog.cpp +5 -5
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/PasswordDialog.h +6 -6
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/PasswordDialog.rc +0 -4
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/ProgressDialog.cpp +10 -15
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/ProgressDialog.h +17 -18
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/ProgressDialog2.cpp +130 -276
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/ProgressDialog2.h +52 -56
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/ProgressDialog2Res.h +1 -2
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/ProgressDialog2a.rc +3 -8
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/PropertyName.h +2 -2
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/PropertyNameRes.h +0 -9
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/SysIconUtils.cpp +89 -185
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/SysIconUtils.h +20 -23
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/resource.h +1 -23
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/resourceGui.h +0 -10
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/GUI/Extract.rc +4 -4
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/GUI/ExtractDialog.cpp +33 -36
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/GUI/ExtractDialog.h +15 -15
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/GUI/ExtractGUI.cpp +22 -39
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/GUI/ExtractGUI.h +3 -4
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/GUI/HashGUI.h +2 -2
- package/harmony/pushy/src/main/cpp/lzma/CPP/Build.mak +13 -109
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/AutoPtr.h +14 -25
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/CRC.cpp +1 -1
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/C_FileIO.cpp +90 -1
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/C_FileIO.h +49 -2
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/ComTry.h +2 -2
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/CommandLineParser.cpp +7 -41
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/CommandLineParser.h +3 -3
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/Common.h +29 -14
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/CrcReg.cpp +45 -24
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/Defs.h +2 -3
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/DynamicBuffer.h +5 -17
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/IntToString.cpp +110 -132
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/IntToString.h +9 -35
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/Lang.h +5 -12
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/ListFileUtils.cpp +31 -49
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/ListFileUtils.h +4 -4
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/MyBuffer.h +21 -59
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/MyBuffer2.h +10 -95
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/MyCom.h +81 -497
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/MyException.h +2 -2
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/MyGuidDef.h +9 -18
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/MyInitGuid.h +5 -17
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/MyLinux.h +2 -35
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/MyString.cpp +164 -347
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/MyString.h +35 -246
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/MyTypes.h +8 -11
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/MyUnknown.h +11 -2
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/MyVector.h +94 -184
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/MyWindows.cpp +11 -158
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/MyWindows.h +54 -148
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/NewHandler.cpp +27 -204
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/NewHandler.h +5 -38
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/Sha256Reg.cpp +16 -43
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/StdAfx.h +2 -2
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/StdInStream.cpp +11 -20
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/StdInStream.h +5 -13
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/StdOutStream.cpp +39 -124
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/StdOutStream.h +11 -27
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/StringConvert.cpp +15 -458
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/StringConvert.h +2 -24
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/StringToInt.cpp +89 -99
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/StringToInt.h +2 -19
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/TextConfig.cpp +11 -10
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/TextConfig.h +2 -2
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/UTFConvert.cpp +102 -677
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/UTFConvert.h +5 -377
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/Wildcard.cpp +84 -197
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/Wildcard.h +25 -107
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/XzCrc64Reg.cpp +14 -11
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/COM.h +8 -24
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/CommonDialog.cpp +113 -197
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/CommonDialog.h +12 -32
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/Control/ComboBox.cpp +4 -4
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/Control/ComboBox.h +10 -22
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/Control/CommandBar.h +6 -6
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/Control/Dialog.cpp +47 -242
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/Control/Dialog.h +51 -94
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/Control/Edit.h +2 -2
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/Control/ImageList.h +4 -4
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/Control/ListView.cpp +26 -33
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/Control/ListView.h +22 -32
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/Control/ProgressBar.h +13 -13
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/Control/PropertyPage.cpp +34 -56
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/Control/PropertyPage.h +9 -9
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/Control/ReBar.h +3 -3
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/Control/Static.h +2 -2
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/Control/StatusBar.h +5 -5
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/Control/StdAfx.h +2 -5
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/Control/ToolBar.h +3 -3
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/Control/Trackbar.h +2 -2
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/Control/Window2.cpp +6 -8
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/Control/Window2.h +7 -9
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/DLL.cpp +8 -77
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/DLL.h +10 -55
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/Defs.h +4 -4
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/ErrorMsg.cpp +2 -69
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/ErrorMsg.h +2 -3
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/FileDir.cpp +80 -728
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/FileDir.h +7 -62
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/FileFind.cpp +56 -756
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/FileFind.h +19 -205
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/FileIO.cpp +47 -569
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/FileIO.h +28 -283
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/FileLink.cpp +112 -369
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/FileMapping.h +3 -3
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/FileName.cpp +113 -185
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/FileName.h +14 -41
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/FileSystem.cpp +10 -66
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/FileSystem.h +2 -6
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/Handle.h +4 -6
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/MemoryLock.cpp +14 -29
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/MemoryLock.h +2 -2
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/NtCheck.h +2 -14
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/PropVariant.cpp +56 -102
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/PropVariant.h +9 -68
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/PropVariantConv.cpp +14 -150
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/PropVariantConv.h +3 -13
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/Registry.cpp +128 -212
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/Registry.h +20 -32
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/ResourceString.cpp +4 -4
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/ResourceString.h +2 -3
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/SecurityUtils.cpp +18 -23
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/SecurityUtils.h +56 -39
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/Shell.cpp +58 -539
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/Shell.h +14 -49
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/StdAfx.h +2 -5
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/Synchronization.cpp +0 -77
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/Synchronization.h +18 -240
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/System.cpp +38 -317
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/System.h +5 -154
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/Thread.h +10 -18
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/TimeUtils.cpp +37 -291
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/TimeUtils.h +10 -124
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/Window.cpp +7 -7
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/Window.h +19 -98
- package/harmony/pushy/src/main/cpp/lzma/CS/7zip/Compress/LzmaAlone/LzmaAlone.csproj +90 -0
- package/harmony/pushy/src/main/cpp/lzma/DOC/Methods.txt +2 -6
- package/harmony/pushy/src/main/cpp/lzma/DOC/lzma-history.txt +0 -205
- package/harmony/pushy/src/main/cpp/lzma/DOC/lzma-sdk.txt +13 -93
- package/harmony/pushy/src/main/cpp/lzma/DOC/lzma.txt +13 -30
- package/harmony/pushy/src/main/cpp/lzma/bin/7zS2.sfx +0 -0
- package/harmony/pushy/src/main/cpp/lzma/bin/7zS2con.sfx +0 -0
- package/harmony/pushy/src/main/cpp/lzma/bin/7zSD.sfx +0 -0
- package/harmony/pushy/src/main/cpp/lzma/bin/7zdec.exe +0 -0
- package/harmony/pushy/src/main/cpp/lzma/bin/7zr.exe +0 -0
- package/harmony/pushy/src/main/cpp/lzma/bin/lzma.exe +0 -0
- package/harmony/pushy/src/main/cpp/lzma/bin/x64/7zr.exe +0 -0
- package/package.json +1 -1
- package/harmony/pushy/src/main/cpp/HDiffPatch/README_cn.md +0 -547
- package/harmony/pushy/src/main/cpp/HDiffPatch/_hextobytes.h +0 -112
- package/harmony/pushy/src/main/cpp/HDiffPatch/bsdiff_wrapper/bsdiff_wrapper.cpp +0 -389
- package/harmony/pushy/src/main/cpp/HDiffPatch/bsdiff_wrapper/bsdiff_wrapper.h +0 -73
- package/harmony/pushy/src/main/cpp/HDiffPatch/bsdiff_wrapper/bspatch_wrapper.c +0 -266
- package/harmony/pushy/src/main/cpp/HDiffPatch/bsdiff_wrapper/bspatch_wrapper.h +0 -58
- package/harmony/pushy/src/main/cpp/HDiffPatch/builds/android_ndk_jni_mk/build_libs_patchers.bat +0 -1
- package/harmony/pushy/src/main/cpp/HDiffPatch/builds/android_ndk_jni_mk/build_libs_patchers.sh +0 -1
- package/harmony/pushy/src/main/cpp/HDiffPatch/builds/vc/bzip2.vcxproj +0 -228
- package/harmony/pushy/src/main/cpp/HDiffPatch/builds/vc/hpatchz_test.vcxproj +0 -215
- package/harmony/pushy/src/main/cpp/HDiffPatch/builds/vc/libdeflate.vcxproj +0 -256
- package/harmony/pushy/src/main/cpp/HDiffPatch/builds/vc/longPathAware.exe.manifest +0 -7
- package/harmony/pushy/src/main/cpp/HDiffPatch/builds/vc/lzma.vcxproj +0 -271
- package/harmony/pushy/src/main/cpp/HDiffPatch/builds/vc/testHashClash.vcxproj +0 -228
- package/harmony/pushy/src/main/cpp/HDiffPatch/builds/vc/zlib.vcxproj +0 -242
- package/harmony/pushy/src/main/cpp/HDiffPatch/builds/vc/zstd.vcxproj +0 -287
- package/harmony/pushy/src/main/cpp/HDiffPatch/builds/xcode/HDiffPatch.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings +0 -8
- package/harmony/pushy/src/main/cpp/HDiffPatch/builds/xcode/libdeflate.xcodeproj/project.pbxproj +0 -286
- package/harmony/pushy/src/main/cpp/HDiffPatch/builds/xcode/zlib.xcodeproj/project.pbxproj +0 -308
- package/harmony/pushy/src/main/cpp/HDiffPatch/builds/xcode_iOS_hpatchz/hpatch_objc/hpatch_objc.h +0 -33
- package/harmony/pushy/src/main/cpp/HDiffPatch/builds/xcode_iOS_hpatchz/hpatch_objc/hpatch_objc.m +0 -33
- package/harmony/pushy/src/main/cpp/HDiffPatch/builds/xcode_iOS_hpatchz/hpatchz.xcodeproj/project.pbxproj +0 -774
- package/harmony/pushy/src/main/cpp/HDiffPatch/hdiffz_import_patch.c +0 -31
- package/harmony/pushy/src/main/cpp/HDiffPatch/hdiffz_import_patch.h +0 -42
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HDiff/diff_for_hpatch_lite.h +0 -74
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HDiff/match_block.cpp +0 -478
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HDiff/match_block.h +0 -222
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HDiff/private_diff/libdivsufsort/divsufsort64.cpp +0 -14
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HDiff/private_diff/match_inplace.cpp +0 -168
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HDiff/private_diff/match_inplace.h +0 -44
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HDiff/private_diff/qsort_parallel.h +0 -125
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HPatch/hpatch_mt/_hcache_old_mt.c +0 -243
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HPatch/hpatch_mt/_hcache_old_mt.h +0 -51
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HPatch/hpatch_mt/_hinput_mt.c +0 -153
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HPatch/hpatch_mt/_hinput_mt.h +0 -54
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HPatch/hpatch_mt/_houtput_mt.c +0 -158
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HPatch/hpatch_mt/_houtput_mt.h +0 -49
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HPatch/hpatch_mt/_hpatch_mt.c +0 -294
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HPatch/hpatch_mt/_hpatch_mt.h +0 -59
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HPatch/hpatch_mt/_patch_private_mt.h +0 -217
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HPatch/hpatch_mt/hpatch_mt.c +0 -349
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HPatch/hpatch_mt/hpatch_mt.h +0 -110
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HPatchLite/hpatch_lite.c +0 -366
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HPatchLite/hpatch_lite.h +0 -91
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HPatchLite/hpatch_lite_input_cache.h +0 -31
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HPatchLite/hpatch_lite_types.h +0 -106
- package/harmony/pushy/src/main/cpp/HDiffPatch/libParallel/parallel_import_c.c +0 -497
- package/harmony/pushy/src/main/cpp/HDiffPatch/libParallel/parallel_import_c.h +0 -106
- package/harmony/pushy/src/main/cpp/HDiffPatch/libhsync/sign_diff/_match_in_old_sign.cpp +0 -254
- package/harmony/pushy/src/main/cpp/HDiffPatch/libhsync/sign_diff/_match_in_old_sign.h +0 -39
- package/harmony/pushy/src/main/cpp/HDiffPatch/libhsync/sign_diff/_sign_diff_type.h +0 -37
- package/harmony/pushy/src/main/cpp/HDiffPatch/libhsync/sign_diff/sign_diff.cpp +0 -62
- package/harmony/pushy/src/main/cpp/HDiffPatch/libhsync/sign_diff/sign_diff.h +0 -44
- package/harmony/pushy/src/main/cpp/HDiffPatch/libhsync/sync_client/dict_decompress_plugin.h +0 -156
- package/harmony/pushy/src/main/cpp/HDiffPatch/libhsync/sync_client/dir_sync_client.cpp +0 -440
- package/harmony/pushy/src/main/cpp/HDiffPatch/libhsync/sync_client/dir_sync_client.h +0 -88
- package/harmony/pushy/src/main/cpp/HDiffPatch/libhsync/sync_client/match_in_old.cpp +0 -332
- package/harmony/pushy/src/main/cpp/HDiffPatch/libhsync/sync_client/match_in_old.h +0 -48
- package/harmony/pushy/src/main/cpp/HDiffPatch/libhsync/sync_client/match_in_types.h +0 -198
- package/harmony/pushy/src/main/cpp/HDiffPatch/libhsync/sync_client/sync_client.cpp +0 -697
- package/harmony/pushy/src/main/cpp/HDiffPatch/libhsync/sync_client/sync_client.h +0 -74
- package/harmony/pushy/src/main/cpp/HDiffPatch/libhsync/sync_client/sync_client_private.h +0 -262
- package/harmony/pushy/src/main/cpp/HDiffPatch/libhsync/sync_client/sync_client_type.h +0 -174
- package/harmony/pushy/src/main/cpp/HDiffPatch/libhsync/sync_client/sync_client_type_private.h +0 -174
- package/harmony/pushy/src/main/cpp/HDiffPatch/libhsync/sync_client/sync_diff_data.cpp +0 -252
- package/harmony/pushy/src/main/cpp/HDiffPatch/libhsync/sync_client/sync_diff_data.h +0 -67
- package/harmony/pushy/src/main/cpp/HDiffPatch/libhsync/sync_client/sync_info_client.cpp +0 -680
- package/harmony/pushy/src/main/cpp/HDiffPatch/libhsync/sync_client/sync_info_client.h +0 -137
- package/harmony/pushy/src/main/cpp/HDiffPatch/libhsync/sync_make/dict_compress_plugin.h +0 -83
- package/harmony/pushy/src/main/cpp/HDiffPatch/libhsync/sync_make/dir_sync_make.cpp +0 -125
- package/harmony/pushy/src/main/cpp/HDiffPatch/libhsync/sync_make/dir_sync_make.h +0 -56
- package/harmony/pushy/src/main/cpp/HDiffPatch/libhsync/sync_make/hsynz_plugin.h +0 -55
- package/harmony/pushy/src/main/cpp/HDiffPatch/libhsync/sync_make/match_in_new.cpp +0 -147
- package/harmony/pushy/src/main/cpp/HDiffPatch/libhsync/sync_make/match_in_new.h +0 -38
- package/harmony/pushy/src/main/cpp/HDiffPatch/libhsync/sync_make/sync_info_make.cpp +0 -354
- package/harmony/pushy/src/main/cpp/HDiffPatch/libhsync/sync_make/sync_info_make.h +0 -76
- package/harmony/pushy/src/main/cpp/HDiffPatch/libhsync/sync_make/sync_make.cpp +0 -521
- package/harmony/pushy/src/main/cpp/HDiffPatch/libhsync/sync_make/sync_make.h +0 -69
- package/harmony/pushy/src/main/cpp/HDiffPatch/libhsync/sync_make/sync_make_hash_clash.h +0 -122
- package/harmony/pushy/src/main/cpp/HDiffPatch/libhsync/sync_make/sync_make_private.h +0 -66
- package/harmony/pushy/src/main/cpp/HDiffPatch/libhsync/zsync_client_wrapper/zsync_client_type.h +0 -36
- package/harmony/pushy/src/main/cpp/HDiffPatch/libhsync/zsync_client_wrapper/zsync_client_type_private.h +0 -81
- package/harmony/pushy/src/main/cpp/HDiffPatch/libhsync/zsync_client_wrapper/zsync_client_wrapper.cpp +0 -247
- package/harmony/pushy/src/main/cpp/HDiffPatch/libhsync/zsync_client_wrapper/zsync_client_wrapper.h +0 -71
- package/harmony/pushy/src/main/cpp/HDiffPatch/libhsync/zsync_client_wrapper/zsync_info_client.cpp +0 -351
- package/harmony/pushy/src/main/cpp/HDiffPatch/libhsync/zsync_client_wrapper/zsync_info_client.h +0 -42
- package/harmony/pushy/src/main/cpp/HDiffPatch/libhsync/zsync_client_wrapper/zsync_match_in_old.cpp +0 -124
- package/harmony/pushy/src/main/cpp/HDiffPatch/libhsync/zsync_client_wrapper/zsync_match_in_old.h +0 -38
- package/harmony/pushy/src/main/cpp/HDiffPatch/libhsync/zsync_make_wrapper/zsync_info_make.cpp +0 -203
- package/harmony/pushy/src/main/cpp/HDiffPatch/libhsync/zsync_make_wrapper/zsync_info_make.h +0 -55
- package/harmony/pushy/src/main/cpp/HDiffPatch/libhsync/zsync_make_wrapper/zsync_make_wrapper.cpp +0 -79
- package/harmony/pushy/src/main/cpp/HDiffPatch/libhsync/zsync_make_wrapper/zsync_make_wrapper.h +0 -66
- package/harmony/pushy/src/main/cpp/HDiffPatch/vcdiff_wrapper/vcdiff_wrapper.cpp +0 -628
- package/harmony/pushy/src/main/cpp/HDiffPatch/vcdiff_wrapper/vcdiff_wrapper.h +0 -95
- package/harmony/pushy/src/main/cpp/HDiffPatch/vcdiff_wrapper/vcpatch_code_table.h +0 -78
- package/harmony/pushy/src/main/cpp/HDiffPatch/vcdiff_wrapper/vcpatch_wrapper.c +0 -950
- package/harmony/pushy/src/main/cpp/HDiffPatch/vcdiff_wrapper/vcpatch_wrapper.h +0 -72
- package/harmony/pushy/src/main/cpp/lzma/Asm/arm64/7zAsm.S +0 -181
- package/harmony/pushy/src/main/cpp/lzma/Asm/arm64/LzmaDecOpt.S +0 -1487
- package/harmony/pushy/src/main/cpp/lzma/Asm/x86/LzFindOpt.asm +0 -540
- package/harmony/pushy/src/main/cpp/lzma/Asm/x86/Sha256Opt.asm +0 -275
- package/harmony/pushy/src/main/cpp/lzma/Asm/x86/Sort.asm +0 -860
- package/harmony/pushy/src/main/cpp/lzma/C/7zWindows.h +0 -101
- package/harmony/pushy/src/main/cpp/lzma/C/7zip_gcc_c.mak +0 -360
- package/harmony/pushy/src/main/cpp/lzma/C/Asm_c.mak +0 -12
- package/harmony/pushy/src/main/cpp/lzma/C/LzFindOpt.c +0 -578
- package/harmony/pushy/src/main/cpp/lzma/C/Sha256Opt.c +0 -451
- package/harmony/pushy/src/main/cpp/lzma/C/SwapBytes.c +0 -835
- package/harmony/pushy/src/main/cpp/lzma/C/SwapBytes.h +0 -17
- package/harmony/pushy/src/main/cpp/lzma/C/Util/Lzma/Precomp.h +0 -13
- package/harmony/pushy/src/main/cpp/lzma/C/Util/LzmaLib/Precomp.c +0 -4
- package/harmony/pushy/src/main/cpp/lzma/C/Util/LzmaLib/Precomp.h +0 -13
- package/harmony/pushy/src/main/cpp/lzma/C/var_clang.mak +0 -11
- package/harmony/pushy/src/main/cpp/lzma/C/var_clang_arm64.mak +0 -12
- package/harmony/pushy/src/main/cpp/lzma/C/var_clang_x64.mak +0 -11
- package/harmony/pushy/src/main/cpp/lzma/C/var_clang_x86.mak +0 -11
- package/harmony/pushy/src/main/cpp/lzma/C/var_gcc.mak +0 -12
- package/harmony/pushy/src/main/cpp/lzma/C/var_gcc_arm64.mak +0 -12
- package/harmony/pushy/src/main/cpp/lzma/C/var_gcc_x64.mak +0 -10
- package/harmony/pushy/src/main/cpp/lzma/C/var_gcc_x86.mak +0 -10
- package/harmony/pushy/src/main/cpp/lzma/C/var_mac_arm64.mak +0 -11
- package/harmony/pushy/src/main/cpp/lzma/C/var_mac_x64.mak +0 -11
- package/harmony/pushy/src/main/cpp/lzma/C/warn_clang.mak +0 -1
- package/harmony/pushy/src/main/cpp/lzma/C/warn_clang_mac.mak +0 -1
- package/harmony/pushy/src/main/cpp/lzma/C/warn_gcc.mak +0 -51
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/7zip_gcc.mak +0 -1370
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/Alone7z/makefile.gcc +0 -279
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/SFXCon/makefile.gcc +0 -215
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/MultiOutStream.cpp +0 -855
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/MultiOutStream.h +0 -160
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/LzFindOpt.mak +0 -7
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/LzmaDec_gcc.mak +0 -14
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Sha256.mak +0 -13
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Sort.mak +0 -6
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Client7z/makefile.gcc +0 -72
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Console/makefile.gcc +0 -187
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/MemDialog.cpp +0 -218
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/MemDialog.h +0 -48
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/MemDialogRes.h +0 -13
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/StdAfx.h +0 -67
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/GUI/7zG.exe.manifest +0 -23
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/cmpl_clang.mak +0 -3
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/cmpl_clang_arm64.mak +0 -3
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/cmpl_clang_x64.mak +0 -3
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/cmpl_clang_x86.mak +0 -3
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/cmpl_gcc.mak +0 -3
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/cmpl_gcc_arm64.mak +0 -3
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/cmpl_gcc_x64.mak +0 -3
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/cmpl_gcc_x86.mak +0 -3
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/cmpl_mac_arm64.mak +0 -3
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/cmpl_mac_x64.mak +0 -3
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/var_clang.mak +0 -11
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/var_clang_arm64.mak +0 -19
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/var_clang_x64.mak +0 -11
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/var_clang_x86.mak +0 -11
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/var_gcc.mak +0 -12
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/var_gcc_arm64.mak +0 -12
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/var_gcc_x64.mak +0 -11
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/var_gcc_x86.mak +0 -10
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/var_mac_arm64.mak +0 -13
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/var_mac_x64.mak +0 -11
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/warn_clang.mak +0 -3
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/warn_clang_mac.mak +0 -9
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/warn_gcc.mak +0 -55
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/Common0.h +0 -330
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/DynLimBuf.cpp +0 -93
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/DynLimBuf.h +0 -41
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/LzFindPrepare.cpp +0 -7
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/Sha256Prepare.cpp +0 -7
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/Clipboard.cpp +0 -130
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/Clipboard.h +0 -28
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/MemoryGlobal.cpp +0 -36
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/MemoryGlobal.h +0 -55
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/SystemInfo.cpp +0 -1251
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/SystemInfo.h +0 -19
|
@@ -1,357 +1,144 @@
|
|
|
1
1
|
/* CpuArch.c -- CPU specific code
|
|
2
|
-
Igor Pavlov : Public domain */
|
|
2
|
+
2018-02-18: Igor Pavlov : Public domain */
|
|
3
3
|
|
|
4
4
|
#include "Precomp.h"
|
|
5
5
|
|
|
6
|
-
// #include <stdio.h>
|
|
7
|
-
|
|
8
6
|
#include "CpuArch.h"
|
|
9
7
|
|
|
10
8
|
#ifdef MY_CPU_X86_OR_AMD64
|
|
11
9
|
|
|
12
|
-
#
|
|
13
|
-
#
|
|
14
|
-
#define NEED_CHECK_FOR_CPUID
|
|
10
|
+
#if (defined(_MSC_VER) && !defined(MY_CPU_AMD64)) || defined(__GNUC__)
|
|
11
|
+
#define USE_ASM
|
|
15
12
|
#endif
|
|
16
13
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
that is used only with some specific (function) parameter values.
|
|
20
|
-
most functions use only (subFunction==0).
|
|
21
|
-
*/
|
|
22
|
-
/*
|
|
23
|
-
__cpuid(): MSVC and GCC/CLANG use same function/macro name
|
|
24
|
-
but parameters are different.
|
|
25
|
-
We use MSVC __cpuid() parameters style for our z7_x86_cpuid() function.
|
|
26
|
-
*/
|
|
27
|
-
|
|
28
|
-
#if defined(__GNUC__) /* && (__GNUC__ >= 10) */ \
|
|
29
|
-
|| defined(__clang__) /* && (__clang_major__ >= 10) */
|
|
30
|
-
|
|
31
|
-
/* there was some CLANG/GCC compilers that have issues with
|
|
32
|
-
rbx(ebx) handling in asm blocks in -fPIC mode (__PIC__ is defined).
|
|
33
|
-
compiler's <cpuid.h> contains the macro __cpuid() that is similar to our code.
|
|
34
|
-
The history of __cpuid() changes in CLANG/GCC:
|
|
35
|
-
GCC:
|
|
36
|
-
2007: it preserved ebx for (__PIC__ && __i386__)
|
|
37
|
-
2013: it preserved rbx and ebx for __PIC__
|
|
38
|
-
2014: it doesn't preserves rbx and ebx anymore
|
|
39
|
-
we suppose that (__GNUC__ >= 5) fixed that __PIC__ ebx/rbx problem.
|
|
40
|
-
CLANG:
|
|
41
|
-
2014+: it preserves rbx, but only for 64-bit code. No __PIC__ check.
|
|
42
|
-
Why CLANG cares about 64-bit mode only, and doesn't care about ebx (in 32-bit)?
|
|
43
|
-
Do we need __PIC__ test for CLANG or we must care about rbx even if
|
|
44
|
-
__PIC__ is not defined?
|
|
45
|
-
*/
|
|
46
|
-
|
|
47
|
-
#define ASM_LN "\n"
|
|
48
|
-
|
|
49
|
-
#if defined(MY_CPU_AMD64) && defined(__PIC__) \
|
|
50
|
-
&& ((defined (__GNUC__) && (__GNUC__ < 5)) || defined(__clang__))
|
|
51
|
-
|
|
52
|
-
/* "=&r" selects free register. It can select even rbx, if that register is free.
|
|
53
|
-
"=&D" for (RDI) also works, but the code can be larger with "=&D"
|
|
54
|
-
"2"(subFun) : 2 is (zero-based) index in the output constraint list "=c" (ECX). */
|
|
55
|
-
|
|
56
|
-
#define x86_cpuid_MACRO_2(p, func, subFunc) { \
|
|
57
|
-
__asm__ __volatile__ ( \
|
|
58
|
-
ASM_LN "mov %%rbx, %q1" \
|
|
59
|
-
ASM_LN "cpuid" \
|
|
60
|
-
ASM_LN "xchg %%rbx, %q1" \
|
|
61
|
-
: "=a" ((p)[0]), "=&r" ((p)[1]), "=c" ((p)[2]), "=d" ((p)[3]) : "0" (func), "2"(subFunc)); }
|
|
62
|
-
|
|
63
|
-
#elif defined(MY_CPU_X86) && defined(__PIC__) \
|
|
64
|
-
&& ((defined (__GNUC__) && (__GNUC__ < 5)) || defined(__clang__))
|
|
65
|
-
|
|
66
|
-
#define x86_cpuid_MACRO_2(p, func, subFunc) { \
|
|
67
|
-
__asm__ __volatile__ ( \
|
|
68
|
-
ASM_LN "mov %%ebx, %k1" \
|
|
69
|
-
ASM_LN "cpuid" \
|
|
70
|
-
ASM_LN "xchg %%ebx, %k1" \
|
|
71
|
-
: "=a" ((p)[0]), "=&r" ((p)[1]), "=c" ((p)[2]), "=d" ((p)[3]) : "0" (func), "2"(subFunc)); }
|
|
72
|
-
|
|
73
|
-
#else
|
|
74
|
-
|
|
75
|
-
#define x86_cpuid_MACRO_2(p, func, subFunc) { \
|
|
76
|
-
__asm__ __volatile__ ( \
|
|
77
|
-
ASM_LN "cpuid" \
|
|
78
|
-
: "=a" ((p)[0]), "=b" ((p)[1]), "=c" ((p)[2]), "=d" ((p)[3]) : "0" (func), "2"(subFunc)); }
|
|
79
|
-
|
|
14
|
+
#if !defined(USE_ASM) && _MSC_VER >= 1500
|
|
15
|
+
#include <intrin.h>
|
|
80
16
|
#endif
|
|
81
17
|
|
|
82
|
-
#
|
|
83
|
-
|
|
84
|
-
void Z7_FASTCALL z7_x86_cpuid(UInt32 p[4], UInt32 func)
|
|
85
|
-
{
|
|
86
|
-
x86_cpuid_MACRO(p, func)
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
static
|
|
90
|
-
void Z7_FASTCALL z7_x86_cpuid_subFunc(UInt32 p[4], UInt32 func, UInt32 subFunc)
|
|
91
|
-
{
|
|
92
|
-
x86_cpuid_MACRO_2(p, func, subFunc)
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
Z7_NO_INLINE
|
|
97
|
-
UInt32 Z7_FASTCALL z7_x86_cpuid_GetMaxFunc(void)
|
|
18
|
+
#if defined(USE_ASM) && !defined(MY_CPU_AMD64)
|
|
19
|
+
static UInt32 CheckFlag(UInt32 flag)
|
|
98
20
|
{
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
21
|
+
#ifdef _MSC_VER
|
|
22
|
+
__asm pushfd;
|
|
23
|
+
__asm pop EAX;
|
|
24
|
+
__asm mov EDX, EAX;
|
|
25
|
+
__asm xor EAX, flag;
|
|
26
|
+
__asm push EAX;
|
|
27
|
+
__asm popfd;
|
|
28
|
+
__asm pushfd;
|
|
29
|
+
__asm pop EAX;
|
|
30
|
+
__asm xor EAX, EDX;
|
|
31
|
+
__asm push EDX;
|
|
32
|
+
__asm popfd;
|
|
33
|
+
__asm and flag, EAX;
|
|
34
|
+
#else
|
|
102
35
|
__asm__ __volatile__ (
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
: "=&r" (a) // "=a"
|
|
118
|
-
: "i" (EFALGS_CPUID_BIT)
|
|
119
|
-
);
|
|
120
|
-
if ((a & (1 << EFALGS_CPUID_BIT)) == 0)
|
|
121
|
-
return 0;
|
|
122
|
-
#endif
|
|
123
|
-
{
|
|
124
|
-
UInt32 p[4];
|
|
125
|
-
x86_cpuid_MACRO(p, 0)
|
|
126
|
-
return p[0];
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
#undef ASM_LN
|
|
131
|
-
|
|
132
|
-
#elif !defined(_MSC_VER)
|
|
133
|
-
|
|
134
|
-
/*
|
|
135
|
-
// for gcc/clang and other: we can try to use __cpuid macro:
|
|
136
|
-
#include <cpuid.h>
|
|
137
|
-
void Z7_FASTCALL z7_x86_cpuid(UInt32 p[4], UInt32 func)
|
|
138
|
-
{
|
|
139
|
-
__cpuid(func, p[0], p[1], p[2], p[3]);
|
|
140
|
-
}
|
|
141
|
-
UInt32 Z7_FASTCALL z7_x86_cpuid_GetMaxFunc(void)
|
|
142
|
-
{
|
|
143
|
-
return (UInt32)__get_cpuid_max(0, NULL);
|
|
144
|
-
}
|
|
145
|
-
*/
|
|
146
|
-
// for unsupported cpuid:
|
|
147
|
-
void Z7_FASTCALL z7_x86_cpuid(UInt32 p[4], UInt32 func)
|
|
148
|
-
{
|
|
149
|
-
UNUSED_VAR(func)
|
|
150
|
-
p[0] = p[1] = p[2] = p[3] = 0;
|
|
151
|
-
}
|
|
152
|
-
UInt32 Z7_FASTCALL z7_x86_cpuid_GetMaxFunc(void)
|
|
153
|
-
{
|
|
154
|
-
return 0;
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
#else // _MSC_VER
|
|
158
|
-
|
|
159
|
-
#if !defined(MY_CPU_AMD64)
|
|
160
|
-
|
|
161
|
-
UInt32 __declspec(naked) Z7_FASTCALL z7_x86_cpuid_GetMaxFunc(void)
|
|
162
|
-
{
|
|
163
|
-
#if defined(NEED_CHECK_FOR_CPUID)
|
|
164
|
-
#define EFALGS_CPUID_BIT 21
|
|
165
|
-
__asm pushfd
|
|
166
|
-
__asm pushfd
|
|
167
|
-
/*
|
|
168
|
-
__asm pop eax
|
|
169
|
-
// __asm mov edx, eax
|
|
170
|
-
__asm btc eax, EFALGS_CPUID_BIT
|
|
171
|
-
__asm push eax
|
|
172
|
-
*/
|
|
173
|
-
__asm btc dword ptr [esp], EFALGS_CPUID_BIT
|
|
174
|
-
__asm popfd
|
|
175
|
-
__asm pushfd
|
|
176
|
-
__asm pop eax
|
|
177
|
-
// __asm xor eax, edx
|
|
178
|
-
__asm xor eax, [esp]
|
|
179
|
-
// __asm push edx
|
|
180
|
-
__asm popfd
|
|
181
|
-
__asm and eax, (1 shl EFALGS_CPUID_BIT)
|
|
182
|
-
__asm jz end_func
|
|
36
|
+
"pushf\n\t"
|
|
37
|
+
"pop %%EAX\n\t"
|
|
38
|
+
"movl %%EAX,%%EDX\n\t"
|
|
39
|
+
"xorl %0,%%EAX\n\t"
|
|
40
|
+
"push %%EAX\n\t"
|
|
41
|
+
"popf\n\t"
|
|
42
|
+
"pushf\n\t"
|
|
43
|
+
"pop %%EAX\n\t"
|
|
44
|
+
"xorl %%EDX,%%EAX\n\t"
|
|
45
|
+
"push %%EDX\n\t"
|
|
46
|
+
"popf\n\t"
|
|
47
|
+
"andl %%EAX, %0\n\t":
|
|
48
|
+
"=c" (flag) : "c" (flag) :
|
|
49
|
+
"%eax", "%edx");
|
|
183
50
|
#endif
|
|
184
|
-
|
|
185
|
-
__asm xor eax, eax // func
|
|
186
|
-
__asm xor ecx, ecx // subFunction (optional) for (func == 0)
|
|
187
|
-
__asm cpuid
|
|
188
|
-
__asm pop ebx
|
|
189
|
-
#if defined(NEED_CHECK_FOR_CPUID)
|
|
190
|
-
end_func:
|
|
191
|
-
#endif
|
|
192
|
-
__asm ret 0
|
|
51
|
+
return flag;
|
|
193
52
|
}
|
|
53
|
+
#define CHECK_CPUID_IS_SUPPORTED if (CheckFlag(1 << 18) == 0 || CheckFlag(1 << 21) == 0) return False;
|
|
54
|
+
#else
|
|
55
|
+
#define CHECK_CPUID_IS_SUPPORTED
|
|
56
|
+
#endif
|
|
194
57
|
|
|
195
|
-
void
|
|
58
|
+
void MyCPUID(UInt32 function, UInt32 *a, UInt32 *b, UInt32 *c, UInt32 *d)
|
|
196
59
|
{
|
|
197
|
-
|
|
198
|
-
UNUSED_VAR(func)
|
|
199
|
-
__asm push ebx
|
|
200
|
-
__asm push edi
|
|
201
|
-
__asm mov edi, ecx // p
|
|
202
|
-
__asm mov eax, edx // func
|
|
203
|
-
__asm xor ecx, ecx // subfunction (optional) for (func == 0)
|
|
204
|
-
__asm cpuid
|
|
205
|
-
__asm mov [edi ], eax
|
|
206
|
-
__asm mov [edi + 4], ebx
|
|
207
|
-
__asm mov [edi + 8], ecx
|
|
208
|
-
__asm mov [edi + 12], edx
|
|
209
|
-
__asm pop edi
|
|
210
|
-
__asm pop ebx
|
|
211
|
-
__asm ret 0
|
|
212
|
-
}
|
|
60
|
+
#ifdef USE_ASM
|
|
213
61
|
|
|
214
|
-
|
|
215
|
-
void __declspec(naked) Z7_FASTCALL z7_x86_cpuid_subFunc(UInt32 p[4], UInt32 func, UInt32 subFunc)
|
|
216
|
-
{
|
|
217
|
-
UNUSED_VAR(p)
|
|
218
|
-
UNUSED_VAR(func)
|
|
219
|
-
UNUSED_VAR(subFunc)
|
|
220
|
-
__asm push ebx
|
|
221
|
-
__asm push edi
|
|
222
|
-
__asm mov edi, ecx // p
|
|
223
|
-
__asm mov eax, edx // func
|
|
224
|
-
__asm mov ecx, [esp + 12] // subFunc
|
|
225
|
-
__asm cpuid
|
|
226
|
-
__asm mov [edi ], eax
|
|
227
|
-
__asm mov [edi + 4], ebx
|
|
228
|
-
__asm mov [edi + 8], ecx
|
|
229
|
-
__asm mov [edi + 12], edx
|
|
230
|
-
__asm pop edi
|
|
231
|
-
__asm pop ebx
|
|
232
|
-
__asm ret 4
|
|
233
|
-
}
|
|
62
|
+
#ifdef _MSC_VER
|
|
234
63
|
|
|
235
|
-
|
|
64
|
+
UInt32 a2, b2, c2, d2;
|
|
65
|
+
__asm xor EBX, EBX;
|
|
66
|
+
__asm xor ECX, ECX;
|
|
67
|
+
__asm xor EDX, EDX;
|
|
68
|
+
__asm mov EAX, function;
|
|
69
|
+
__asm cpuid;
|
|
70
|
+
__asm mov a2, EAX;
|
|
71
|
+
__asm mov b2, EBX;
|
|
72
|
+
__asm mov c2, ECX;
|
|
73
|
+
__asm mov d2, EDX;
|
|
236
74
|
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
75
|
+
*a = a2;
|
|
76
|
+
*b = b2;
|
|
77
|
+
*c = c2;
|
|
78
|
+
*d = d2;
|
|
240
79
|
|
|
241
|
-
|
|
242
|
-
void Z7_FASTCALL z7_x86_cpuid_subFunc(UInt32 p[4], UInt32 func, UInt32 subFunc)
|
|
243
|
-
{
|
|
244
|
-
__cpuidex((int *)p, func, subFunc);
|
|
245
|
-
}
|
|
80
|
+
#else
|
|
246
81
|
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
#define MY_cpuidex(info, func, func2) MY_cpuidex_HACK(func2, func, info)
|
|
269
|
-
#pragma message("======== MY_cpuidex_HACK WAS USED ========")
|
|
270
|
-
static
|
|
271
|
-
void Z7_FASTCALL z7_x86_cpuid_subFunc(UInt32 p[4], UInt32 func, UInt32 subFunc)
|
|
272
|
-
{
|
|
273
|
-
MY_cpuidex_HACK(subFunc, func, (Int32 *)p);
|
|
274
|
-
}
|
|
275
|
-
#endif // _MSC_VER >= 1600
|
|
276
|
-
|
|
277
|
-
#if !defined(MY_CPU_AMD64)
|
|
278
|
-
/* inlining for __cpuid() in MSVC x86 (32-bit) produces big ineffective code,
|
|
279
|
-
so we disable inlining here */
|
|
280
|
-
Z7_NO_INLINE
|
|
281
|
-
#endif
|
|
282
|
-
void Z7_FASTCALL z7_x86_cpuid(UInt32 p[4], UInt32 func)
|
|
283
|
-
{
|
|
284
|
-
MY_cpuidex((Int32 *)p, (Int32)func, 0);
|
|
285
|
-
}
|
|
286
|
-
|
|
287
|
-
Z7_NO_INLINE
|
|
288
|
-
UInt32 Z7_FASTCALL z7_x86_cpuid_GetMaxFunc(void)
|
|
289
|
-
{
|
|
290
|
-
Int32 a[4];
|
|
291
|
-
MY_cpuidex(a, 0, 0);
|
|
292
|
-
return a[0];
|
|
293
|
-
}
|
|
82
|
+
__asm__ __volatile__ (
|
|
83
|
+
#if defined(MY_CPU_AMD64) && defined(__PIC__)
|
|
84
|
+
"mov %%rbx, %%rdi;"
|
|
85
|
+
"cpuid;"
|
|
86
|
+
"xchg %%rbx, %%rdi;"
|
|
87
|
+
: "=a" (*a) ,
|
|
88
|
+
"=D" (*b) ,
|
|
89
|
+
#elif defined(MY_CPU_X86) && defined(__PIC__)
|
|
90
|
+
"mov %%ebx, %%edi;"
|
|
91
|
+
"cpuid;"
|
|
92
|
+
"xchgl %%ebx, %%edi;"
|
|
93
|
+
: "=a" (*a) ,
|
|
94
|
+
"=D" (*b) ,
|
|
95
|
+
#else
|
|
96
|
+
"cpuid"
|
|
97
|
+
: "=a" (*a) ,
|
|
98
|
+
"=b" (*b) ,
|
|
99
|
+
#endif
|
|
100
|
+
"=c" (*c) ,
|
|
101
|
+
"=d" (*d)
|
|
102
|
+
: "0" (function)) ;
|
|
294
103
|
|
|
295
|
-
#endif
|
|
296
|
-
|
|
104
|
+
#endif
|
|
105
|
+
|
|
106
|
+
#else
|
|
297
107
|
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
108
|
+
int CPUInfo[4];
|
|
109
|
+
__cpuid(CPUInfo, function);
|
|
110
|
+
*a = CPUInfo[0];
|
|
111
|
+
*b = CPUInfo[1];
|
|
112
|
+
*c = CPUInfo[2];
|
|
113
|
+
*d = CPUInfo[3];
|
|
304
114
|
|
|
115
|
+
#endif
|
|
116
|
+
}
|
|
305
117
|
|
|
306
|
-
|
|
307
|
-
BoolInt x86cpuid_Func_1(UInt32 *p)
|
|
118
|
+
BoolInt x86cpuid_CheckAndRead(Cx86cpuid *p)
|
|
308
119
|
{
|
|
309
120
|
CHECK_CPUID_IS_SUPPORTED
|
|
310
|
-
|
|
121
|
+
MyCPUID(0, &p->maxFunc, &p->vendor[0], &p->vendor[2], &p->vendor[1]);
|
|
122
|
+
MyCPUID(1, &p->ver, &p->b, &p->c, &p->d);
|
|
311
123
|
return True;
|
|
312
124
|
}
|
|
313
125
|
|
|
314
|
-
|
|
315
|
-
static const UInt32 kVendors[][1] =
|
|
126
|
+
static const UInt32 kVendors[][3] =
|
|
316
127
|
{
|
|
317
|
-
{ 0x756E6547
|
|
318
|
-
{ 0x68747541
|
|
319
|
-
{ 0x746E6543
|
|
128
|
+
{ 0x756E6547, 0x49656E69, 0x6C65746E},
|
|
129
|
+
{ 0x68747541, 0x69746E65, 0x444D4163},
|
|
130
|
+
{ 0x746E6543, 0x48727561, 0x736C7561}
|
|
320
131
|
};
|
|
321
|
-
*/
|
|
322
|
-
|
|
323
|
-
/*
|
|
324
|
-
typedef struct
|
|
325
|
-
{
|
|
326
|
-
UInt32 maxFunc;
|
|
327
|
-
UInt32 vendor[3];
|
|
328
|
-
UInt32 ver;
|
|
329
|
-
UInt32 b;
|
|
330
|
-
UInt32 c;
|
|
331
|
-
UInt32 d;
|
|
332
|
-
} Cx86cpuid;
|
|
333
|
-
|
|
334
|
-
enum
|
|
335
|
-
{
|
|
336
|
-
CPU_FIRM_INTEL,
|
|
337
|
-
CPU_FIRM_AMD,
|
|
338
|
-
CPU_FIRM_VIA
|
|
339
|
-
};
|
|
340
|
-
int x86cpuid_GetFirm(const Cx86cpuid *p);
|
|
341
|
-
#define x86cpuid_ver_GetFamily(ver) (((ver >> 16) & 0xff0) | ((ver >> 8) & 0xf))
|
|
342
|
-
#define x86cpuid_ver_GetModel(ver) (((ver >> 12) & 0xf0) | ((ver >> 4) & 0xf))
|
|
343
|
-
#define x86cpuid_ver_GetStepping(ver) (ver & 0xf)
|
|
344
132
|
|
|
345
133
|
int x86cpuid_GetFirm(const Cx86cpuid *p)
|
|
346
134
|
{
|
|
347
135
|
unsigned i;
|
|
348
|
-
for (i = 0; i < sizeof(kVendors) / sizeof(kVendors[
|
|
136
|
+
for (i = 0; i < sizeof(kVendors) / sizeof(kVendors[i]); i++)
|
|
349
137
|
{
|
|
350
138
|
const UInt32 *v = kVendors[i];
|
|
351
|
-
if (v[0] == p->vendor[0]
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
)
|
|
139
|
+
if (v[0] == p->vendor[0] &&
|
|
140
|
+
v[1] == p->vendor[1] &&
|
|
141
|
+
v[2] == p->vendor[2])
|
|
355
142
|
return (int)i;
|
|
356
143
|
}
|
|
357
144
|
return -1;
|
|
@@ -360,611 +147,72 @@ int x86cpuid_GetFirm(const Cx86cpuid *p)
|
|
|
360
147
|
BoolInt CPU_Is_InOrder()
|
|
361
148
|
{
|
|
362
149
|
Cx86cpuid p;
|
|
150
|
+
int firm;
|
|
363
151
|
UInt32 family, model;
|
|
364
152
|
if (!x86cpuid_CheckAndRead(&p))
|
|
365
153
|
return True;
|
|
366
154
|
|
|
367
|
-
family =
|
|
368
|
-
model =
|
|
155
|
+
family = x86cpuid_GetFamily(p.ver);
|
|
156
|
+
model = x86cpuid_GetModel(p.ver);
|
|
157
|
+
|
|
158
|
+
firm = x86cpuid_GetFirm(&p);
|
|
369
159
|
|
|
370
|
-
switch (
|
|
160
|
+
switch (firm)
|
|
371
161
|
{
|
|
372
162
|
case CPU_FIRM_INTEL: return (family < 6 || (family == 6 && (
|
|
373
|
-
|
|
374
|
-
model == 0x1C
|
|
375
|
-
|| model == 0x26
|
|
376
|
-
|| model == 0x27
|
|
377
|
-
|| model == 0x35
|
|
378
|
-
|| model == 0x36
|
|
163
|
+
/* In-Order Atom CPU */
|
|
164
|
+
model == 0x1C /* 45 nm, N4xx, D4xx, N5xx, D5xx, 230, 330 */
|
|
165
|
+
|| model == 0x26 /* 45 nm, Z6xx */
|
|
166
|
+
|| model == 0x27 /* 32 nm, Z2460 */
|
|
167
|
+
|| model == 0x35 /* 32 nm, Z2760 */
|
|
168
|
+
|| model == 0x36 /* 32 nm, N2xxx, D2xxx */
|
|
379
169
|
)));
|
|
380
170
|
case CPU_FIRM_AMD: return (family < 5 || (family == 5 && (model < 6 || model == 0xA)));
|
|
381
171
|
case CPU_FIRM_VIA: return (family < 6 || (family == 6 && model < 0xF));
|
|
382
172
|
}
|
|
383
|
-
return
|
|
173
|
+
return True;
|
|
384
174
|
}
|
|
385
|
-
*/
|
|
386
|
-
|
|
387
|
-
#ifdef _WIN32
|
|
388
|
-
#include "7zWindows.h"
|
|
389
|
-
#endif
|
|
390
175
|
|
|
391
176
|
#if !defined(MY_CPU_AMD64) && defined(_WIN32)
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
that OS supports SSE register storing/restoring on context switches.
|
|
395
|
-
So we need some OS-specific function to check that it's safe to use SSE registers.
|
|
396
|
-
*/
|
|
397
|
-
|
|
398
|
-
Z7_FORCE_INLINE
|
|
399
|
-
static BoolInt CPU_Sys_Is_SSE_Supported(void)
|
|
177
|
+
#include <windows.h>
|
|
178
|
+
static BoolInt CPU_Sys_Is_SSE_Supported()
|
|
400
179
|
{
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
We suppose that any Windows version since
|
|
407
|
-
Windows2000 (major == 5) supports SSE registers */
|
|
408
|
-
return (Byte)GetVersion() >= 5;
|
|
409
|
-
#if defined(_MSC_VER)
|
|
410
|
-
#pragma warning(pop)
|
|
411
|
-
#endif
|
|
180
|
+
OSVERSIONINFO vi;
|
|
181
|
+
vi.dwOSVersionInfoSize = sizeof(vi);
|
|
182
|
+
if (!GetVersionEx(&vi))
|
|
183
|
+
return False;
|
|
184
|
+
return (vi.dwMajorVersion >= 5);
|
|
412
185
|
}
|
|
413
186
|
#define CHECK_SYS_SSE_SUPPORT if (!CPU_Sys_Is_SSE_Supported()) return False;
|
|
414
187
|
#else
|
|
415
188
|
#define CHECK_SYS_SSE_SUPPORT
|
|
416
189
|
#endif
|
|
417
190
|
|
|
418
|
-
|
|
419
|
-
#if !defined(MY_CPU_AMD64)
|
|
420
|
-
|
|
421
|
-
BoolInt CPU_IsSupported_CMOV(void)
|
|
422
|
-
{
|
|
423
|
-
UInt32 a[4];
|
|
424
|
-
if (!x86cpuid_Func_1(&a[0]))
|
|
425
|
-
return 0;
|
|
426
|
-
return (BoolInt)(a[3] >> 15) & 1;
|
|
427
|
-
}
|
|
428
|
-
|
|
429
|
-
BoolInt CPU_IsSupported_SSE(void)
|
|
430
|
-
{
|
|
431
|
-
UInt32 a[4];
|
|
432
|
-
CHECK_SYS_SSE_SUPPORT
|
|
433
|
-
if (!x86cpuid_Func_1(&a[0]))
|
|
434
|
-
return 0;
|
|
435
|
-
return (BoolInt)(a[3] >> 25) & 1;
|
|
436
|
-
}
|
|
437
|
-
|
|
438
|
-
BoolInt CPU_IsSupported_SSE2(void)
|
|
439
|
-
{
|
|
440
|
-
UInt32 a[4];
|
|
441
|
-
CHECK_SYS_SSE_SUPPORT
|
|
442
|
-
if (!x86cpuid_Func_1(&a[0]))
|
|
443
|
-
return 0;
|
|
444
|
-
return (BoolInt)(a[3] >> 26) & 1;
|
|
445
|
-
}
|
|
446
|
-
|
|
447
|
-
#endif
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
static UInt32 x86cpuid_Func_1_ECX(void)
|
|
451
|
-
{
|
|
452
|
-
UInt32 a[4];
|
|
453
|
-
CHECK_SYS_SSE_SUPPORT
|
|
454
|
-
if (!x86cpuid_Func_1(&a[0]))
|
|
455
|
-
return 0;
|
|
456
|
-
return a[2];
|
|
457
|
-
}
|
|
458
|
-
|
|
459
|
-
BoolInt CPU_IsSupported_AES(void)
|
|
460
|
-
{
|
|
461
|
-
return (BoolInt)(x86cpuid_Func_1_ECX() >> 25) & 1;
|
|
462
|
-
}
|
|
463
|
-
|
|
464
|
-
BoolInt CPU_IsSupported_SSSE3(void)
|
|
465
|
-
{
|
|
466
|
-
return (BoolInt)(x86cpuid_Func_1_ECX() >> 9) & 1;
|
|
467
|
-
}
|
|
468
|
-
|
|
469
|
-
BoolInt CPU_IsSupported_SSE41(void)
|
|
470
|
-
{
|
|
471
|
-
return (BoolInt)(x86cpuid_Func_1_ECX() >> 19) & 1;
|
|
472
|
-
}
|
|
473
|
-
|
|
474
|
-
BoolInt CPU_IsSupported_SHA(void)
|
|
191
|
+
BoolInt CPU_Is_Aes_Supported()
|
|
475
192
|
{
|
|
193
|
+
Cx86cpuid p;
|
|
476
194
|
CHECK_SYS_SSE_SUPPORT
|
|
477
|
-
|
|
478
|
-
if (z7_x86_cpuid_GetMaxFunc() < 7)
|
|
479
|
-
return False;
|
|
480
|
-
{
|
|
481
|
-
UInt32 d[4];
|
|
482
|
-
z7_x86_cpuid(d, 7);
|
|
483
|
-
return (BoolInt)(d[1] >> 29) & 1;
|
|
484
|
-
}
|
|
485
|
-
}
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
BoolInt CPU_IsSupported_SHA512(void)
|
|
489
|
-
{
|
|
490
|
-
if (!CPU_IsSupported_AVX2()) return False; // maybe CPU_IsSupported_AVX() is enough here
|
|
491
|
-
|
|
492
|
-
if (z7_x86_cpuid_GetMaxFunc() < 7)
|
|
493
|
-
return False;
|
|
494
|
-
{
|
|
495
|
-
UInt32 d[4];
|
|
496
|
-
z7_x86_cpuid_subFunc(d, 7, 0);
|
|
497
|
-
if (d[0] < 1) // d[0] - is max supported subleaf value
|
|
498
|
-
return False;
|
|
499
|
-
z7_x86_cpuid_subFunc(d, 7, 1);
|
|
500
|
-
return (BoolInt)(d[0]) & 1;
|
|
501
|
-
}
|
|
502
|
-
}
|
|
503
|
-
|
|
504
|
-
/*
|
|
505
|
-
MSVC: _xgetbv() intrinsic is available since VS2010SP1.
|
|
506
|
-
MSVC also defines (_XCR_XFEATURE_ENABLED_MASK) macro in
|
|
507
|
-
<immintrin.h> that we can use or check.
|
|
508
|
-
For any 32-bit x86 we can use asm code in MSVC,
|
|
509
|
-
but MSVC asm code is huge after compilation.
|
|
510
|
-
So _xgetbv() is better
|
|
511
|
-
|
|
512
|
-
ICC: _xgetbv() intrinsic is available (in what version of ICC?)
|
|
513
|
-
ICC defines (__GNUC___) and it supports gnu assembler
|
|
514
|
-
also ICC supports MASM style code with -use-msasm switch.
|
|
515
|
-
but ICC doesn't support __attribute__((__target__))
|
|
516
|
-
|
|
517
|
-
GCC/CLANG 9:
|
|
518
|
-
_xgetbv() is macro that works via __builtin_ia32_xgetbv()
|
|
519
|
-
and we need __attribute__((__target__("xsave")).
|
|
520
|
-
But with __target__("xsave") the function will be not
|
|
521
|
-
inlined to function that has no __target__("xsave") attribute.
|
|
522
|
-
If we want _xgetbv() call inlining, then we should use asm version
|
|
523
|
-
instead of calling _xgetbv().
|
|
524
|
-
Note:intrinsic is broke before GCC 8.2:
|
|
525
|
-
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85684
|
|
526
|
-
*/
|
|
527
|
-
|
|
528
|
-
#if defined(__INTEL_COMPILER) && (__INTEL_COMPILER >= 1100) \
|
|
529
|
-
|| defined(_MSC_VER) && (_MSC_VER >= 1600) && (_MSC_FULL_VER >= 160040219) \
|
|
530
|
-
|| defined(__GNUC__) && (__GNUC__ >= 9) \
|
|
531
|
-
|| defined(__clang__) && (__clang_major__ >= 9)
|
|
532
|
-
// we define ATTRIB_XGETBV, if we want to use predefined _xgetbv() from compiler
|
|
533
|
-
#if defined(__INTEL_COMPILER)
|
|
534
|
-
#define ATTRIB_XGETBV
|
|
535
|
-
#elif defined(__GNUC__) || defined(__clang__)
|
|
536
|
-
// we don't define ATTRIB_XGETBV here, because asm version is better for inlining.
|
|
537
|
-
// #define ATTRIB_XGETBV __attribute__((__target__("xsave")))
|
|
538
|
-
#else
|
|
539
|
-
#define ATTRIB_XGETBV
|
|
540
|
-
#endif
|
|
541
|
-
#endif
|
|
542
|
-
|
|
543
|
-
#if defined(ATTRIB_XGETBV)
|
|
544
|
-
#include <immintrin.h>
|
|
545
|
-
#endif
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
// XFEATURE_ENABLED_MASK/XCR0
|
|
549
|
-
#define MY_XCR_XFEATURE_ENABLED_MASK 0
|
|
550
|
-
|
|
551
|
-
#if defined(ATTRIB_XGETBV)
|
|
552
|
-
ATTRIB_XGETBV
|
|
553
|
-
#endif
|
|
554
|
-
static UInt64 x86_xgetbv_0(UInt32 num)
|
|
555
|
-
{
|
|
556
|
-
#if defined(ATTRIB_XGETBV)
|
|
557
|
-
{
|
|
558
|
-
return
|
|
559
|
-
#if (defined(_MSC_VER))
|
|
560
|
-
_xgetbv(num);
|
|
561
|
-
#else
|
|
562
|
-
__builtin_ia32_xgetbv(
|
|
563
|
-
#if !defined(__clang__)
|
|
564
|
-
(int)
|
|
565
|
-
#endif
|
|
566
|
-
num);
|
|
567
|
-
#endif
|
|
568
|
-
}
|
|
569
|
-
|
|
570
|
-
#elif defined(__GNUC__) || defined(__clang__) || defined(__SUNPRO_CC)
|
|
571
|
-
|
|
572
|
-
UInt32 a, d;
|
|
573
|
-
#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4))
|
|
574
|
-
__asm__
|
|
575
|
-
(
|
|
576
|
-
"xgetbv"
|
|
577
|
-
: "=a"(a), "=d"(d) : "c"(num) : "cc"
|
|
578
|
-
);
|
|
579
|
-
#else // is old gcc
|
|
580
|
-
__asm__
|
|
581
|
-
(
|
|
582
|
-
".byte 0x0f, 0x01, 0xd0" "\n\t"
|
|
583
|
-
: "=a"(a), "=d"(d) : "c"(num) : "cc"
|
|
584
|
-
);
|
|
585
|
-
#endif
|
|
586
|
-
return ((UInt64)d << 32) | a;
|
|
587
|
-
// return a;
|
|
588
|
-
|
|
589
|
-
#elif defined(_MSC_VER) && !defined(MY_CPU_AMD64)
|
|
590
|
-
|
|
591
|
-
UInt32 a, d;
|
|
592
|
-
__asm {
|
|
593
|
-
push eax
|
|
594
|
-
push edx
|
|
595
|
-
push ecx
|
|
596
|
-
mov ecx, num;
|
|
597
|
-
// xor ecx, ecx // = MY_XCR_XFEATURE_ENABLED_MASK
|
|
598
|
-
_emit 0x0f
|
|
599
|
-
_emit 0x01
|
|
600
|
-
_emit 0xd0
|
|
601
|
-
mov a, eax
|
|
602
|
-
mov d, edx
|
|
603
|
-
pop ecx
|
|
604
|
-
pop edx
|
|
605
|
-
pop eax
|
|
606
|
-
}
|
|
607
|
-
return ((UInt64)d << 32) | a;
|
|
608
|
-
// return a;
|
|
609
|
-
|
|
610
|
-
#else // it's unknown compiler
|
|
611
|
-
// #error "Need xgetbv function"
|
|
612
|
-
UNUSED_VAR(num)
|
|
613
|
-
// for MSVC-X64 we could call external function from external file.
|
|
614
|
-
/* Actually we had checked OSXSAVE/AVX in cpuid before.
|
|
615
|
-
So it's expected that OS supports at least AVX and below. */
|
|
616
|
-
// if (num != MY_XCR_XFEATURE_ENABLED_MASK) return 0; // if not XCR0
|
|
617
|
-
return
|
|
618
|
-
// (1 << 0) | // x87
|
|
619
|
-
(1 << 1) // SSE
|
|
620
|
-
| (1 << 2); // AVX
|
|
621
|
-
|
|
622
|
-
#endif
|
|
623
|
-
}
|
|
624
|
-
|
|
625
|
-
#ifdef _WIN32
|
|
626
|
-
/*
|
|
627
|
-
Windows versions do not know about new ISA extensions that
|
|
628
|
-
can be introduced. But we still can use new extensions,
|
|
629
|
-
even if Windows doesn't report about supporting them,
|
|
630
|
-
But we can use new extensions, only if Windows knows about new ISA extension
|
|
631
|
-
that changes the number or size of registers: SSE, AVX/XSAVE, AVX512
|
|
632
|
-
So it's enough to check
|
|
633
|
-
MY_PF_AVX_INSTRUCTIONS_AVAILABLE
|
|
634
|
-
instead of
|
|
635
|
-
MY_PF_AVX2_INSTRUCTIONS_AVAILABLE
|
|
636
|
-
*/
|
|
637
|
-
#define MY_PF_XSAVE_ENABLED 17
|
|
638
|
-
// #define MY_PF_SSSE3_INSTRUCTIONS_AVAILABLE 36
|
|
639
|
-
// #define MY_PF_SSE4_1_INSTRUCTIONS_AVAILABLE 37
|
|
640
|
-
// #define MY_PF_SSE4_2_INSTRUCTIONS_AVAILABLE 38
|
|
641
|
-
// #define MY_PF_AVX_INSTRUCTIONS_AVAILABLE 39
|
|
642
|
-
// #define MY_PF_AVX2_INSTRUCTIONS_AVAILABLE 40
|
|
643
|
-
// #define MY_PF_AVX512F_INSTRUCTIONS_AVAILABLE 41
|
|
644
|
-
#endif
|
|
645
|
-
|
|
646
|
-
BoolInt CPU_IsSupported_AVX(void)
|
|
647
|
-
{
|
|
648
|
-
#ifdef _WIN32
|
|
649
|
-
if (!IsProcessorFeaturePresent(MY_PF_XSAVE_ENABLED))
|
|
650
|
-
return False;
|
|
651
|
-
/* PF_AVX_INSTRUCTIONS_AVAILABLE probably is supported starting from
|
|
652
|
-
some latest Win10 revisions. But we need AVX in older Windows also.
|
|
653
|
-
So we don't use the following check: */
|
|
654
|
-
/*
|
|
655
|
-
if (!IsProcessorFeaturePresent(MY_PF_AVX_INSTRUCTIONS_AVAILABLE))
|
|
656
|
-
return False;
|
|
657
|
-
*/
|
|
658
|
-
#endif
|
|
659
|
-
|
|
660
|
-
/*
|
|
661
|
-
OS must use new special XSAVE/XRSTOR instructions to save
|
|
662
|
-
AVX registers when it required for context switching.
|
|
663
|
-
At OS statring:
|
|
664
|
-
OS sets CR4.OSXSAVE flag to signal the processor that OS supports the XSAVE extensions.
|
|
665
|
-
Also OS sets bitmask in XCR0 register that defines what
|
|
666
|
-
registers will be processed by XSAVE instruction:
|
|
667
|
-
XCR0.SSE[bit 0] - x87 registers and state
|
|
668
|
-
XCR0.SSE[bit 1] - SSE registers and state
|
|
669
|
-
XCR0.AVX[bit 2] - AVX registers and state
|
|
670
|
-
CR4.OSXSAVE is reflected to CPUID.1:ECX.OSXSAVE[bit 27].
|
|
671
|
-
So we can read that bit in user-space.
|
|
672
|
-
XCR0 is available for reading in user-space by new XGETBV instruction.
|
|
673
|
-
*/
|
|
674
|
-
{
|
|
675
|
-
const UInt32 c = x86cpuid_Func_1_ECX();
|
|
676
|
-
if (0 == (1
|
|
677
|
-
& (c >> 28) // AVX instructions are supported by hardware
|
|
678
|
-
& (c >> 27))) // OSXSAVE bit: XSAVE and related instructions are enabled by OS.
|
|
679
|
-
return False;
|
|
680
|
-
}
|
|
681
|
-
|
|
682
|
-
/* also we can check
|
|
683
|
-
CPUID.1:ECX.XSAVE [bit 26] : that shows that
|
|
684
|
-
XSAVE, XRESTOR, XSETBV, XGETBV instructions are supported by hardware.
|
|
685
|
-
But that check is redundant, because if OSXSAVE bit is set, then XSAVE is also set */
|
|
686
|
-
|
|
687
|
-
/* If OS have enabled XSAVE extension instructions (OSXSAVE == 1),
|
|
688
|
-
in most cases we expect that OS also will support storing/restoring
|
|
689
|
-
for AVX and SSE states at least.
|
|
690
|
-
But to be ensure for that we call user-space instruction
|
|
691
|
-
XGETBV(0) to get XCR0 value that contains bitmask that defines
|
|
692
|
-
what exact states(registers) OS have enabled for storing/restoring.
|
|
693
|
-
*/
|
|
694
|
-
|
|
695
|
-
{
|
|
696
|
-
const UInt32 bm = (UInt32)x86_xgetbv_0(MY_XCR_XFEATURE_ENABLED_MASK);
|
|
697
|
-
// printf("\n=== XGetBV=0x%x\n", bm);
|
|
698
|
-
return 1
|
|
699
|
-
& (BoolInt)(bm >> 1) // SSE state is supported (set by OS) for storing/restoring
|
|
700
|
-
& (BoolInt)(bm >> 2); // AVX state is supported (set by OS) for storing/restoring
|
|
701
|
-
}
|
|
702
|
-
// since Win7SP1: we can use GetEnabledXStateFeatures();
|
|
703
|
-
}
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
BoolInt CPU_IsSupported_AVX2(void)
|
|
707
|
-
{
|
|
708
|
-
if (!CPU_IsSupported_AVX())
|
|
709
|
-
return False;
|
|
710
|
-
if (z7_x86_cpuid_GetMaxFunc() < 7)
|
|
195
|
+
if (!x86cpuid_CheckAndRead(&p))
|
|
711
196
|
return False;
|
|
712
|
-
|
|
713
|
-
UInt32 d[4];
|
|
714
|
-
z7_x86_cpuid(d, 7);
|
|
715
|
-
// printf("\ncpuid(7): ebx=%8x ecx=%8x\n", d[1], d[2]);
|
|
716
|
-
return 1
|
|
717
|
-
& (BoolInt)(d[1] >> 5); // avx2
|
|
718
|
-
}
|
|
197
|
+
return (p.c >> 25) & 1;
|
|
719
198
|
}
|
|
720
199
|
|
|
721
|
-
|
|
722
|
-
BoolInt CPU_IsSupported_AVX512F_AVX512VL(void)
|
|
200
|
+
BoolInt CPU_IsSupported_PageGB()
|
|
723
201
|
{
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
if (z7_x86_cpuid_GetMaxFunc() < 7)
|
|
202
|
+
Cx86cpuid cpuid;
|
|
203
|
+
if (!x86cpuid_CheckAndRead(&cpuid))
|
|
727
204
|
return False;
|
|
728
205
|
{
|
|
729
|
-
UInt32 d[4];
|
|
730
|
-
|
|
731
|
-
z7_x86_cpuid(d, 7);
|
|
732
|
-
// printf("\ncpuid(7): ebx=%8x ecx=%8x\n", d[1], d[2]);
|
|
733
|
-
v = 1
|
|
734
|
-
& (BoolInt)(d[1] >> 16) // avx512f
|
|
735
|
-
& (BoolInt)(d[1] >> 31); // avx512vl
|
|
736
|
-
if (!v)
|
|
737
|
-
return False;
|
|
738
|
-
}
|
|
739
|
-
{
|
|
740
|
-
const UInt32 bm = (UInt32)x86_xgetbv_0(MY_XCR_XFEATURE_ENABLED_MASK);
|
|
741
|
-
// printf("\n=== XGetBV=0x%x\n", bm);
|
|
742
|
-
return 1
|
|
743
|
-
& (BoolInt)(bm >> 5) // OPMASK
|
|
744
|
-
& (BoolInt)(bm >> 6) // ZMM upper 256-bit
|
|
745
|
-
& (BoolInt)(bm >> 7); // ZMM16 ... ZMM31
|
|
746
|
-
}
|
|
747
|
-
}
|
|
748
|
-
#endif
|
|
749
|
-
|
|
750
|
-
BoolInt CPU_IsSupported_VAES_AVX2(void)
|
|
751
|
-
{
|
|
752
|
-
if (!CPU_IsSupported_AVX())
|
|
753
|
-
return False;
|
|
754
|
-
if (z7_x86_cpuid_GetMaxFunc() < 7)
|
|
755
|
-
return False;
|
|
756
|
-
{
|
|
757
|
-
UInt32 d[4];
|
|
758
|
-
z7_x86_cpuid(d, 7);
|
|
759
|
-
// printf("\ncpuid(7): ebx=%8x ecx=%8x\n", d[1], d[2]);
|
|
760
|
-
return 1
|
|
761
|
-
& (BoolInt)(d[1] >> 5) // avx2
|
|
762
|
-
// & (d[1] >> 31) // avx512vl
|
|
763
|
-
& (BoolInt)(d[2] >> 9); // vaes // VEX-256/EVEX
|
|
764
|
-
}
|
|
765
|
-
}
|
|
766
|
-
|
|
767
|
-
BoolInt CPU_IsSupported_PageGB(void)
|
|
768
|
-
{
|
|
769
|
-
CHECK_CPUID_IS_SUPPORTED
|
|
770
|
-
{
|
|
771
|
-
UInt32 d[4];
|
|
772
|
-
z7_x86_cpuid(d, 0x80000000);
|
|
206
|
+
UInt32 d[4] = { 0 };
|
|
207
|
+
MyCPUID(0x80000000, &d[0], &d[1], &d[2], &d[3]);
|
|
773
208
|
if (d[0] < 0x80000001)
|
|
774
209
|
return False;
|
|
775
|
-
z7_x86_cpuid(d, 0x80000001);
|
|
776
|
-
return (BoolInt)(d[3] >> 26) & 1;
|
|
777
210
|
}
|
|
778
|
-
}
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
#elif defined(MY_CPU_ARM_OR_ARM64)
|
|
782
|
-
|
|
783
|
-
#ifdef _WIN32
|
|
784
|
-
|
|
785
|
-
#include "7zWindows.h"
|
|
786
|
-
|
|
787
|
-
BoolInt CPU_IsSupported_CRC32(void) { return IsProcessorFeaturePresent(PF_ARM_V8_CRC32_INSTRUCTIONS_AVAILABLE) ? 1 : 0; }
|
|
788
|
-
BoolInt CPU_IsSupported_CRYPTO(void) { return IsProcessorFeaturePresent(PF_ARM_V8_CRYPTO_INSTRUCTIONS_AVAILABLE) ? 1 : 0; }
|
|
789
|
-
BoolInt CPU_IsSupported_NEON(void) { return IsProcessorFeaturePresent(PF_ARM_NEON_INSTRUCTIONS_AVAILABLE) ? 1 : 0; }
|
|
790
|
-
|
|
791
|
-
#else
|
|
792
|
-
|
|
793
|
-
#if defined(__APPLE__)
|
|
794
|
-
|
|
795
|
-
/*
|
|
796
|
-
#include <stdio.h>
|
|
797
|
-
#include <string.h>
|
|
798
|
-
static void Print_sysctlbyname(const char *name)
|
|
799
|
-
{
|
|
800
|
-
size_t bufSize = 256;
|
|
801
|
-
char buf[256];
|
|
802
|
-
int res = sysctlbyname(name, &buf, &bufSize, NULL, 0);
|
|
803
211
|
{
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
printf(" %2x", (unsigned)(Byte)buf[i]);
|
|
808
|
-
|
|
212
|
+
UInt32 d[4] = { 0 };
|
|
213
|
+
MyCPUID(0x80000001, &d[0], &d[1], &d[2], &d[3]);
|
|
214
|
+
return (d[3] >> 26) & 1;
|
|
809
215
|
}
|
|
810
216
|
}
|
|
811
|
-
*/
|
|
812
|
-
/*
|
|
813
|
-
Print_sysctlbyname("hw.pagesize");
|
|
814
|
-
Print_sysctlbyname("machdep.cpu.brand_string");
|
|
815
|
-
*/
|
|
816
|
-
|
|
817
|
-
static BoolInt z7_sysctlbyname_Get_BoolInt(const char *name)
|
|
818
|
-
{
|
|
819
|
-
UInt32 val = 0;
|
|
820
|
-
if (z7_sysctlbyname_Get_UInt32(name, &val) == 0 && val == 1)
|
|
821
|
-
return 1;
|
|
822
|
-
return 0;
|
|
823
|
-
}
|
|
824
|
-
|
|
825
|
-
BoolInt CPU_IsSupported_CRC32(void)
|
|
826
|
-
{
|
|
827
|
-
return z7_sysctlbyname_Get_BoolInt("hw.optional.armv8_crc32");
|
|
828
|
-
}
|
|
829
|
-
|
|
830
|
-
BoolInt CPU_IsSupported_NEON(void)
|
|
831
|
-
{
|
|
832
|
-
return z7_sysctlbyname_Get_BoolInt("hw.optional.neon");
|
|
833
|
-
}
|
|
834
|
-
|
|
835
|
-
BoolInt CPU_IsSupported_SHA512(void)
|
|
836
|
-
{
|
|
837
|
-
return z7_sysctlbyname_Get_BoolInt("hw.optional.armv8_2_sha512");
|
|
838
|
-
}
|
|
839
|
-
|
|
840
|
-
/*
|
|
841
|
-
BoolInt CPU_IsSupported_SHA3(void)
|
|
842
|
-
{
|
|
843
|
-
return z7_sysctlbyname_Get_BoolInt("hw.optional.armv8_2_sha3");
|
|
844
|
-
}
|
|
845
|
-
*/
|
|
846
|
-
|
|
847
|
-
#ifdef MY_CPU_ARM64
|
|
848
|
-
#define APPLE_CRYPTO_SUPPORT_VAL 1
|
|
849
|
-
#else
|
|
850
|
-
#define APPLE_CRYPTO_SUPPORT_VAL 0
|
|
851
|
-
#endif
|
|
852
|
-
|
|
853
|
-
BoolInt CPU_IsSupported_SHA1(void) { return APPLE_CRYPTO_SUPPORT_VAL; }
|
|
854
|
-
BoolInt CPU_IsSupported_SHA2(void) { return APPLE_CRYPTO_SUPPORT_VAL; }
|
|
855
|
-
BoolInt CPU_IsSupported_AES (void) { return APPLE_CRYPTO_SUPPORT_VAL; }
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
#else // __APPLE__
|
|
859
|
-
|
|
860
|
-
#if defined(__GLIBC__) && (__GLIBC__ * 100 + __GLIBC_MINOR__ >= 216)
|
|
861
|
-
#define Z7_GETAUXV_AVAILABLE
|
|
862
|
-
#else
|
|
863
|
-
// #pragma message("=== is not NEW GLIBC === ")
|
|
864
|
-
#if defined __has_include
|
|
865
|
-
#if __has_include (<sys/auxv.h>)
|
|
866
|
-
// #pragma message("=== sys/auxv.h is avail=== ")
|
|
867
|
-
#define Z7_GETAUXV_AVAILABLE
|
|
868
|
-
#endif
|
|
869
|
-
#endif
|
|
870
|
-
#endif
|
|
871
|
-
|
|
872
|
-
#ifdef Z7_GETAUXV_AVAILABLE
|
|
873
|
-
// #pragma message("=== Z7_GETAUXV_AVAILABLE === ")
|
|
874
|
-
#include <sys/auxv.h>
|
|
875
|
-
#define USE_HWCAP
|
|
876
|
-
#endif
|
|
877
|
-
|
|
878
|
-
#ifdef USE_HWCAP
|
|
879
|
-
|
|
880
|
-
#if defined(__FreeBSD__)
|
|
881
|
-
static unsigned long MY_getauxval(int aux)
|
|
882
|
-
{
|
|
883
|
-
unsigned long val;
|
|
884
|
-
if (elf_aux_info(aux, &val, sizeof(val)))
|
|
885
|
-
return 0;
|
|
886
|
-
return val;
|
|
887
|
-
}
|
|
888
|
-
#else
|
|
889
|
-
#define MY_getauxval getauxval
|
|
890
|
-
#if defined __has_include
|
|
891
|
-
#if __has_include (<asm/hwcap.h>)
|
|
892
|
-
#include <asm/hwcap.h>
|
|
893
|
-
#endif
|
|
894
|
-
#endif
|
|
895
|
-
#endif
|
|
896
|
-
|
|
897
|
-
#define MY_HWCAP_CHECK_FUNC_2(name1, name2) \
|
|
898
|
-
BoolInt CPU_IsSupported_ ## name1(void) { return (MY_getauxval(AT_HWCAP) & (HWCAP_ ## name2)); }
|
|
899
|
-
|
|
900
|
-
#ifdef MY_CPU_ARM64
|
|
901
|
-
#define MY_HWCAP_CHECK_FUNC(name) \
|
|
902
|
-
MY_HWCAP_CHECK_FUNC_2(name, name)
|
|
903
|
-
#if 1 || defined(__ARM_NEON)
|
|
904
|
-
BoolInt CPU_IsSupported_NEON(void) { return True; }
|
|
905
|
-
#else
|
|
906
|
-
MY_HWCAP_CHECK_FUNC_2(NEON, ASIMD)
|
|
907
|
-
#endif
|
|
908
|
-
// MY_HWCAP_CHECK_FUNC (ASIMD)
|
|
909
|
-
#elif defined(MY_CPU_ARM)
|
|
910
|
-
#define MY_HWCAP_CHECK_FUNC(name) \
|
|
911
|
-
BoolInt CPU_IsSupported_ ## name(void) { return (MY_getauxval(AT_HWCAP2) & (HWCAP2_ ## name)); }
|
|
912
|
-
MY_HWCAP_CHECK_FUNC_2(NEON, NEON)
|
|
913
|
-
#endif
|
|
914
|
-
|
|
915
|
-
#else // USE_HWCAP
|
|
916
|
-
|
|
917
|
-
#define MY_HWCAP_CHECK_FUNC(name) \
|
|
918
|
-
BoolInt CPU_IsSupported_ ## name(void) { return 0; }
|
|
919
|
-
#if defined(__ARM_NEON)
|
|
920
|
-
BoolInt CPU_IsSupported_NEON(void) { return True; }
|
|
921
|
-
#else
|
|
922
|
-
MY_HWCAP_CHECK_FUNC(NEON)
|
|
923
|
-
#endif
|
|
924
|
-
|
|
925
|
-
#endif // USE_HWCAP
|
|
926
|
-
|
|
927
|
-
MY_HWCAP_CHECK_FUNC (CRC32)
|
|
928
|
-
MY_HWCAP_CHECK_FUNC (SHA1)
|
|
929
|
-
MY_HWCAP_CHECK_FUNC (SHA2)
|
|
930
|
-
MY_HWCAP_CHECK_FUNC (AES)
|
|
931
|
-
#ifdef MY_CPU_ARM64
|
|
932
|
-
// <hwcap.h> supports HWCAP_SHA512 and HWCAP_SHA3 since 2017.
|
|
933
|
-
// we define them here, if they are not defined
|
|
934
|
-
#ifndef HWCAP_SHA3
|
|
935
|
-
// #define HWCAP_SHA3 (1 << 17)
|
|
936
|
-
#endif
|
|
937
|
-
#ifndef HWCAP_SHA512
|
|
938
|
-
// #pragma message("=== HWCAP_SHA512 define === ")
|
|
939
|
-
#define HWCAP_SHA512 (1 << 21)
|
|
940
|
-
#endif
|
|
941
|
-
MY_HWCAP_CHECK_FUNC (SHA512)
|
|
942
|
-
// MY_HWCAP_CHECK_FUNC (SHA3)
|
|
943
|
-
#endif
|
|
944
|
-
|
|
945
|
-
#endif // __APPLE__
|
|
946
|
-
#endif // _WIN32
|
|
947
|
-
|
|
948
|
-
#endif // MY_CPU_ARM_OR_ARM64
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
#ifdef __APPLE__
|
|
953
|
-
|
|
954
|
-
#include <sys/sysctl.h>
|
|
955
|
-
|
|
956
|
-
int z7_sysctlbyname_Get(const char *name, void *buf, size_t *bufSize)
|
|
957
|
-
{
|
|
958
|
-
return sysctlbyname(name, buf, bufSize, NULL, 0);
|
|
959
|
-
}
|
|
960
|
-
|
|
961
|
-
int z7_sysctlbyname_Get_UInt32(const char *name, UInt32 *val)
|
|
962
|
-
{
|
|
963
|
-
size_t bufSize = sizeof(*val);
|
|
964
|
-
const int res = z7_sysctlbyname_Get(name, val, &bufSize);
|
|
965
|
-
if (res == 0 && bufSize != sizeof(*val))
|
|
966
|
-
return EFAULT;
|
|
967
|
-
return res;
|
|
968
|
-
}
|
|
969
217
|
|
|
970
218
|
#endif
|