Lines Matching defs:state

244 	/* use a local state for memcpy() to avoid strict-aliasing warnings */
245 struct xxh32_state state;
247 memset(&state, 0, sizeof(state));
248 state.v1 = seed + PRIME32_1 + PRIME32_2;
249 state.v2 = seed + PRIME32_2;
250 state.v3 = seed + 0;
251 state.v4 = seed - PRIME32_1;
252 memcpy(statePtr, &state, sizeof(state));
258 /* use a local state for memcpy() to avoid strict-aliasing warnings */
259 struct xxh64_state state;
261 memset(&state, 0, sizeof(state));
262 state.v1 = seed + PRIME64_1 + PRIME64_2;
263 state.v2 = seed + PRIME64_2;
264 state.v3 = seed + 0;
265 state.v4 = seed - PRIME64_1;
266 memcpy(statePtr, &state, sizeof(state));
270 int xxh32_update(struct xxh32_state *state, const void *input, const size_t len)
278 state->total_len_32 += (uint32_t)len;
279 state->large_len |= (len >= 16) | (state->total_len_32 >= 16);
281 if (state->memsize + len < 16) { /* fill in tmp buffer */
282 memcpy((uint8_t *)(state->mem32) + state->memsize, input, len);
283 state->memsize += (uint32_t)len;
287 if (state->memsize) { /* some data left from previous update */
288 const uint32_t *p32 = state->mem32;
290 memcpy((uint8_t *)(state->mem32) + state->memsize, input,
291 16 - state->memsize);
293 state->v1 = xxh32_round(state->v1, get_unaligned_le32(p32));
295 state->v2 = xxh32_round(state->v2, get_unaligned_le32(p32));
297 state->v3 = xxh32_round(state->v3, get_unaligned_le32(p32));
299 state->v4 = xxh32_round(state->v4, get_unaligned_le32(p32));
302 p += 16-state->memsize;
303 state->memsize = 0;
308 uint32_t v1 = state->v1;
309 uint32_t v2 = state->v2;
310 uint32_t v3 = state->v3;
311 uint32_t v4 = state->v4;
324 state->v1 = v1;
325 state->v2 = v2;
326 state->v3 = v3;
327 state->v4 = v4;
331 memcpy(state->mem32, p, (size_t)(b_end-p));
332 state->memsize = (uint32_t)(b_end-p);
339 uint32_t xxh32_digest(const struct xxh32_state *state)
341 const uint8_t *p = (const uint8_t *)state->mem32;
342 const uint8_t *const b_end = (const uint8_t *)(state->mem32) +
343 state->memsize;
346 if (state->large_len) {
347 h32 = xxh_rotl32(state->v1, 1) + xxh_rotl32(state->v2, 7) +
348 xxh_rotl32(state->v3, 12) + xxh_rotl32(state->v4, 18);
350 h32 = state->v3 /* == seed */ + PRIME32_5;
353 h32 += state->total_len_32;
377 int xxh64_update(struct xxh64_state *state, const void *input, const size_t len)
385 state->total_len += len;
387 if (state->memsize + len < 32) { /* fill in tmp buffer */
388 memcpy(((uint8_t *)state->mem64) + state->memsize, input, len);
389 state->memsize += (uint32_t)len;
393 if (state->memsize) { /* tmp buffer is full */
394 uint64_t *p64 = state->mem64;
396 memcpy(((uint8_t *)p64) + state->memsize, input,
397 32 - state->memsize);
399 state->v1 = xxh64_round(state->v1, get_unaligned_le64(p64));
401 state->v2 = xxh64_round(state->v2, get_unaligned_le64(p64));
403 state->v3 = xxh64_round(state->v3, get_unaligned_le64(p64));
405 state->v4 = xxh64_round(state->v4, get_unaligned_le64(p64));
407 p += 32 - state->memsize;
408 state->memsize = 0;
413 uint64_t v1 = state->v1;
414 uint64_t v2 = state->v2;
415 uint64_t v3 = state->v3;
416 uint64_t v4 = state->v4;
429 state->v1 = v1;
430 state->v2 = v2;
431 state->v3 = v3;
432 state->v4 = v4;
436 memcpy(state->mem64, p, (size_t)(b_end-p));
437 state->memsize = (uint32_t)(b_end - p);
444 uint64_t xxh64_digest(const struct xxh64_state *state)
446 const uint8_t *p = (const uint8_t *)state->mem64;
447 const uint8_t *const b_end = (const uint8_t *)state->mem64 +
448 state->memsize;
451 if (state->total_len >= 32) {
452 const uint64_t v1 = state->v1;
453 const uint64_t v2 = state->v2;
454 const uint64_t v3 = state->v3;
455 const uint64_t v4 = state->v4;
464 h64 = state->v3 + PRIME64_5;
467 h64 += (uint64_t)state->total_len;