Line data Source code
1 1 : /**
2 : * @file queues/xxhash.h
3 : *
4 : * @brief Fast Hash Algorithm
5 : *
6 : * xxHash - Fast Hash algorithm
7 : *
8 : * This functions are used to compute hashes of the payload of events
9 : * when the `--enable-extra-checks` option is specified. This allows
10 : * to check whether an event handler has modified the content of an
11 : * event during processing. This is a serious bug in models which is
12 : * very hard to spot. Indeed, since events are replayed in optimistic
13 : * simulation, altering the content of an event will lead to undefined
14 : * simulation results when an event is executed again due to a rollback,
15 : * silent execution, or state reconstruction fo CCGS.
16 : *
17 : * @copyright
18 : * Copyright (C) 2012-2014, Yann Collet.
19 : *
20 : * BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php)
21 : *
22 : * Redistribution and use in source and binary forms, with or without
23 : * modification, are permitted provided that the following conditions are
24 : * met:
25 : *
26 : * * Redistributions of source code must retain the above copyright
27 : * notice, this list of conditions and the following disclaimer.
28 : * * Redistributions iqueues/n binary form must reproduce the above
29 : * copyright notice, this list of conditions and the following disclaimer
30 : * in the documentation and/or other materials provided with the
31 : * distribution.
32 : *
33 : * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
34 : * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
35 : * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
36 : * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
37 : * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
38 : * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
39 : * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
40 : * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
41 : * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
42 : * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
43 : * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
44 : *
45 : * @author Yann Collet
46 : *
47 : * You can contact the author at :
48 : * - xxHash source repository : http://code.google.com/p/xxhash/
49 : * - public discussion board : https://groups.google.com/forum/#!forum/lz4c
50 : */
51 :
52 : #pragma once
53 :
54 : #ifdef EXTRA_CHECKS
55 :
56 : #include <stddef.h> /* size_t */
57 :
58 0 : typedef enum { XXH_OK = 0, XXH_ERROR } XXH_errorcode;
59 0 : typedef struct {
60 0 : long long ll[6];
61 : } XXH32_state_t;
62 0 : typedef struct {
63 0 : long long ll[11];
64 : } XXH64_state_t;
65 :
66 0 : unsigned int XXH32(const void *input, size_t length, unsigned seed);
67 0 : unsigned long long XXH64(const void *input, size_t length, unsigned long long seed);
68 :
69 : #endif
|