aboutsummaryrefslogtreecommitdiffstats
path: root/src/internals.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/internals.h')
-rw-r--r--src/internals.h30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/internals.h b/src/internals.h
new file mode 100644
index 0000000..ac74bd5
--- /dev/null
+++ b/src/internals.h
@@ -0,0 +1,30 @@
+/* See LICENSE file for copyright and license details. */
+#include "../zahl.h"
+
+#define BITS_PER_CHAR 32
+#define FLOOR_BITS_TO_CHARS(bits) ((bits) >> 5)
+#define CEILING_BITS_TO_CHARS(bits) (((bits) + (BITS_PER_CHAR - 1)) >> 5)
+#define BITS_IN_LAST_CHAR(bits) ((bits) & (BITS_PER_CHAR - 1))
+
+#define LIST_TEMPS\
+ X(libzahl_tmp_a)\
+ X(libzahl_tmp_b)\
+ X(libzahl_tmp_c)\
+ X(libzahl_tmp_d)\
+ X(libzahl_tmp_e)\
+ X(libzahl_tmp_f)\
+ X(libzahl_tmp_g)\
+ X(libzahl_tmp_i)\
+ X(libzahl_tmp_j)\
+ X(libzahl_tmp_k)\
+ X(libzahl_tmp_l)\
+ X(libzahl_tmp_m)
+
+#define X(x) extern z_t x;
+LIST_TEMPS
+#undef X
+
+extern jmp_buf libzahl_jmp_buf;
+extern int libzahl_set_up;
+
+#define FAILURE_JUMP() (longjmp(libzahl_jmp_buf, 1))