sphlib
|
00001 /* $Id: sph_simd.h 154 2010-04-26 17:00:24Z tp $ */ 00036 #ifndef SPH_SIMD_H__ 00037 #define SPH_SIMD_H__ 00038 00039 #include <stddef.h> 00040 #include "sph_types.h" 00041 00045 #define SPH_SIZE_simd224 224 00046 00050 #define SPH_SIZE_simd256 256 00051 00055 #define SPH_SIZE_simd384 384 00056 00060 #define SPH_SIZE_simd512 512 00061 00073 typedef struct { 00074 #ifndef DOXYGEN_IGNORE 00075 unsigned char buf[64]; /* first field, for alignment */ 00076 size_t ptr; 00077 sph_u32 state[16]; 00078 sph_u32 count_low, count_high; 00079 #endif 00080 } sph_simd_small_context; 00081 00093 typedef struct { 00094 #ifndef DOXYGEN_IGNORE 00095 unsigned char buf[128]; /* first field, for alignment */ 00096 size_t ptr; 00097 sph_u32 state[32]; 00098 sph_u32 count_low, count_high; 00099 #endif 00100 } sph_simd_big_context; 00101 00105 typedef sph_simd_small_context sph_simd224_context; 00106 00110 typedef sph_simd_small_context sph_simd256_context; 00111 00115 typedef sph_simd_big_context sph_simd384_context; 00116 00120 typedef sph_simd_big_context sph_simd512_context; 00121 00128 void sph_simd224_init(void *cc); 00129 00138 void sph_simd224(void *cc, const void *data, size_t len); 00139 00149 void sph_simd224_close(void *cc, void *dst); 00150 00164 void sph_simd224_addbits_and_close( 00165 void *cc, unsigned ub, unsigned n, void *dst); 00166 00173 void sph_simd256_init(void *cc); 00174 00183 void sph_simd256(void *cc, const void *data, size_t len); 00184 00194 void sph_simd256_close(void *cc, void *dst); 00195 00209 void sph_simd256_addbits_and_close( 00210 void *cc, unsigned ub, unsigned n, void *dst); 00211 00218 void sph_simd384_init(void *cc); 00219 00228 void sph_simd384(void *cc, const void *data, size_t len); 00229 00239 void sph_simd384_close(void *cc, void *dst); 00240 00254 void sph_simd384_addbits_and_close( 00255 void *cc, unsigned ub, unsigned n, void *dst); 00256 00263 void sph_simd512_init(void *cc); 00264 00273 void sph_simd512(void *cc, const void *data, size_t len); 00274 00284 void sph_simd512_close(void *cc, void *dst); 00285 00299 void sph_simd512_addbits_and_close( 00300 void *cc, unsigned ub, unsigned n, void *dst); 00301 00302 #endif