summaryrefslogtreecommitdiffstatshomepage
path: root/src/lib/netlist/plib/putil.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/netlist/plib/putil.h')
-rw-r--r--src/lib/netlist/plib/putil.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/lib/netlist/plib/putil.h b/src/lib/netlist/plib/putil.h
index 3ddf4a81f5a..cc2b000b10d 100644
--- a/src/lib/netlist/plib/putil.h
+++ b/src/lib/netlist/plib/putil.h
@@ -287,6 +287,19 @@ namespace plib
const std::string &token,
std::size_t maxsplit);
+ // ----------------------------------------------------------------------------------------
+ // simple hash
+ // ----------------------------------------------------------------------------------------
+
+ template <typename T>
+ std::size_t hash(const T *buf, std::size_t size)
+ {
+ std::size_t result = 5381;
+ for (const T* p = buf; p != buf + size; p++)
+ result = ((result << 5) + result ) ^ (result >> (32 - 5)) ^ static_cast<std::size_t>(*p);
+ return result;
+ }
+
//============================================================
// penum - strongly typed enumeration
//============================================================