+# define MASK64_L MASK64
+# define MASK64_B MASK64
+#endif
+
+/* --- Sizes --- */
+
+#define SZ_8 1
+#define SZ_16 2
+#define SZ_16_L 2
+#define SZ_16_B 2
+#define SZ_24 3
+#define SZ_24_L 3
+#define SZ_24_B 3
+#define SZ_32 4
+#define SZ_32_L 4
+#define SZ_32_B 4
+
+#ifdef HAVE_UINT64
+# define SZ_64 8
+# define SZ_64_L 8
+# define SZ_64_B 8
+#endif
+
+/* --- Type aliases --- */
+
+#define TY_U8 octet
+#define TY_U16 uint16
+#define TY_U16_L uint16
+#define TY_U16_B uint16
+#define TY_U24 uint24
+#define TY_U24_L uint24
+#define TY_U24_B uint24
+#define TY_U32 uint32
+#define TY_U32_L uint32
+#define TY_U32_B uint32
+
+#ifdef HAVE_UINT64
+# define TY_U64 uint64
+# define TY_U64_L uint64
+# define TY_U64_B uint64
+#endif
+
+/* --- List macros --- */
+
+#ifdef HAVE_UINT64
+# define DOUINTCONV(_) \
+ _(8, 8, 8) \
+ _(16, 16, 16) _(16, 16_L, 16l) _(16, 16_B, 16b) \
+ _(24, 24, 24) _(24, 24_L, 24l) _(24, 24_B, 24b) \
+ _(32, 32, 32) _(32, 32_L, 32l) _(32, 32_B, 32b) \
+ _(64, 64, 64) _(64, 64_L, 64l) _(64, 64_B, 64b)
+# define DOINTSZ(_) _(8) _(16) _(24) _(32) _(64)
+#else
+# define DOUINTCONV(_) \
+ _(8, 8, 8) \
+ _(16, 16, 16) _(16, 16_L, 16l) _(16, 16_B, 16b) \
+ _(24, 24, 24) _(24, 24_L, 24l) _(24, 24_B, 24b) \
+ _(32, 32, 32) _(32, 32_L, 32l) _(32, 32_B, 32b)
+# define DOINTSZ(_) _(8) _(16) _(24) _(32)