+static
+guint g_uint64p_hash(gconstpointer key)
+{
+ uint64_t v = *(uint64_t *) key;
+
+ if (sizeof(gconstpointer) == sizeof(uint64_t)) {
+ return g_direct_hash((gconstpointer) (unsigned long) v);
+ } else {
+ return g_direct_hash((gconstpointer) (unsigned long) (v >> 32))
+ ^ g_direct_hash((gconstpointer) (unsigned long) v);
+ }
+}
+
+static
+gboolean g_uint64p_equal(gconstpointer a, gconstpointer b)
+{
+ uint64_t va = *(uint64_t *) a;
+ uint64_t vb = *(uint64_t *) b;
+
+ if (va != vb)
+ return FALSE;
+ return TRUE;
+}
+