summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/defs.h21
1 files changed, 20 insertions, 1 deletions
diff --git a/src/defs.h b/src/defs.h
index f6a7f91..a7a678d 100644
--- a/src/defs.h
+++ b/src/defs.h
@@ -22,6 +22,25 @@
goto l;\
}} while (0);
+#if entry_field_size == 16
+# ifdef entry_field_signed
+ typedef int16_t field;
+# else
+ typedef uint16_t field;
+# endif
+#elif entry_field_size == 32
+# ifdef entry_field_signed
+ typedef int32_t field;
+# else
+ typedef uint32_t field;
+# endif
+#else
+# ifdef entry_field_signed
+ typedef int64_t field;
+# else
+ typedef uint64_t field;
+# endif
+#endif
#define get(in) (in->settings->access == cached ? in->get_next_element_cache(in) : in->get_next_element_direct(in))
#define put(in, data) (in->settings->access == cached ? in->place_next_element_cache(in, data) : in->place_next_element_direct(in, data))
@@ -44,7 +63,7 @@ union cachewrap {
/* for array implementation */
struct entry {
- uint64_t val;
+ field val;
};
/* for linked list implementation */