sphlib

sph_simd.h

Go to the documentation of this file.
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