mirror of
https://github.com/aaru-dps/libaaruformat.git
synced 2025-12-16 19:24:40 +00:00
Add SIMD implementations of CRC64.
This commit is contained in:
@@ -33,6 +33,7 @@
|
||||
#ifndef LIBAARUFORMAT_DECLS_H
|
||||
#define LIBAARUFORMAT_DECLS_H
|
||||
|
||||
#include "simd.h"
|
||||
#ifdef __cplusplus
|
||||
#define EXTERNC extern "C"
|
||||
#else
|
||||
@@ -78,17 +79,12 @@ AARU_EXPORT int AARU_CALL aaruf_close(void* context);
|
||||
|
||||
AARU_EXPORT int32_t AARU_CALL aaruf_read_media_tag(void* context, uint8_t* data, int32_t tag, uint32_t* length);
|
||||
|
||||
AARU_EXPORT void* AARU_CALL aaruf_crc64_init(uint64_t polynomial, uint64_t seed);
|
||||
|
||||
AARU_EXPORT void* AARU_CALL aaruf_crc64_init_ecma(void);
|
||||
|
||||
AARU_EXPORT void AARU_CALL aaruf_crc64_update(void* context, const uint8_t* data, size_t len);
|
||||
|
||||
AARU_EXPORT uint64_t AARU_CALL aaruf_crc64_final(void* context);
|
||||
|
||||
AARU_EXPORT uint64_t AARU_CALL aaruf_crc64_data(const uint8_t* data, size_t len, uint64_t polynomial, uint64_t seed);
|
||||
|
||||
AARU_EXPORT uint64_t AARU_CALL aaruf_crc64_data_ecma(const uint8_t* data, size_t len);
|
||||
AARU_EXPORT crc64_ctx* AARU_CALL aaruf_crc64_init();
|
||||
AARU_EXPORT int AARU_CALL aaruf_crc64_update(crc64_ctx* ctx, const uint8_t* data, uint32_t len);
|
||||
AARU_EXPORT int AARU_CALL aaruf_crc64_final(crc64_ctx* ctx, uint64_t* crc);
|
||||
AARU_EXPORT void AARU_CALL aaruf_crc64_free(crc64_ctx* ctx);
|
||||
AARU_EXPORT void AARU_CALL aaruf_crc64_slicing(uint64_t* previous_crc, const uint8_t* data, uint32_t len);
|
||||
AARU_EXPORT uint64_t AARU_CALL aaruf_crc64_data(const uint8_t* data, uint32_t len);
|
||||
|
||||
AARU_EXPORT int32_t AARU_CALL aaruf_read_sector(void* context, uint64_t sectorAddress, uint8_t* data, uint32_t* length);
|
||||
|
||||
@@ -152,15 +148,19 @@ AARU_LOCAL int32_t AARU_CALL aaruf_get_xml_mediatype(int32_t type);
|
||||
#if defined(__x86_64__) || defined(__amd64) || defined(_M_AMD64) || defined(_M_X64) || defined(__I386__) || \
|
||||
defined(__i386__) || defined(__THW_INTEL) || defined(_M_IX86)
|
||||
|
||||
AARU_LOCAL int have_clmul();
|
||||
AARU_LOCAL int have_ssse3();
|
||||
AARU_LOCAL int have_avx2();
|
||||
AARU_EXPORT int have_clmul();
|
||||
AARU_EXPORT int have_ssse3();
|
||||
AARU_EXPORT int have_avx2();
|
||||
|
||||
AARU_EXPORT CLMUL uint64_t AARU_CALL aaruf_crc64_clmul(uint64_t crc, const uint8_t* data, long length);
|
||||
#endif
|
||||
|
||||
#if defined(__aarch64__) || defined(_M_ARM64) || defined(__arm__) || defined(_M_ARM)
|
||||
AARU_LOCAL int have_neon();
|
||||
AARU_LOCAL int have_arm_crc32();
|
||||
AARU_LOCAL int have_arm_crypto();
|
||||
AARU_EXPORT int have_neon();
|
||||
AARU_EXPORT int have_arm_crc32();
|
||||
AARU_EXPORT int have_arm_crypto();
|
||||
|
||||
AARU_EXPORT TARGET_WITH_SIMD uint64_t AARU_CALL crc64_vmull(uint64_t previous_crc, const uint8_t* data, long len);
|
||||
#endif
|
||||
|
||||
#endif // LIBAARUFORMAT_DECLS_H
|
||||
|
||||
Reference in New Issue
Block a user