extern uint16_t mpz_get_be16(const mpz_t op);
enum byteorder;
-extern void *mpz_export_data(void *data, const mpz_t op,
- enum byteorder byteorder,
- unsigned int len);
-extern void mpz_import_data(mpz_t rop, const void *data,
- enum byteorder byteorder,
- unsigned int len);
-extern void mpz_switch_byteorder(mpz_t rop, unsigned int len);
+extern void *__mpz_export_data(void *data, const mpz_t op,
+ enum byteorder byteorder, unsigned int len);
+extern void __mpz_import_data(mpz_t rop, const void *data,
+ enum byteorder byteorder, unsigned int len);
+extern void __mpz_switch_byteorder(mpz_t rop, unsigned int len);
+
+#include <assert.h>
+#include <datatype.h>
+
+#define mpz_export_data(data, op, byteorder, len) \
+{ \
+ assert(len > 0); \
+ __mpz_export_data(data, op, byteorder, len); \
+}
+
+#define mpz_import_data(rop, data, byteorder, len) \
+{ \
+ assert(len > 0); \
+ __mpz_import_data(rop, data, byteorder, len); \
+}
+
+#define mpz_switch_byteorder(rop, len) \
+{ \
+ assert(len > 0); \
+ __mpz_switch_byteorder(rop, len); \
+}
#endif /* NFTABLES_GMPUTIL_H */
return mpz_get_type(uint16_t, MPZ_BIG_ENDIAN, op);
}
-void *mpz_export_data(void *data, const mpz_t op,
- enum byteorder byteorder,
- unsigned int len)
+void *__mpz_export_data(void *data, const mpz_t op, enum byteorder byteorder,
+ unsigned int len)
{
enum mpz_word_order order;
enum mpz_byte_order endian;
return data;
}
-void mpz_import_data(mpz_t rop, const void *data,
- enum byteorder byteorder,
- unsigned int len)
+void __mpz_import_data(mpz_t rop, const void *data, enum byteorder byteorder,
+ unsigned int len)
{
enum mpz_word_order order;
enum mpz_byte_order endian;
mpz_import(rop, len, order, 1, endian, 0, data);
}
-void mpz_switch_byteorder(mpz_t rop, unsigned int len)
+void __mpz_switch_byteorder(mpz_t rop, unsigned int len)
{
char data[len];
- mpz_export_data(data, rop, BYTEORDER_BIG_ENDIAN, len);
- mpz_import_data(rop, data, BYTEORDER_HOST_ENDIAN, len);
+ __mpz_export_data(data, rop, BYTEORDER_BIG_ENDIAN, len);
+ __mpz_import_data(rop, data, BYTEORDER_HOST_ENDIAN, len);
}
#ifndef HAVE_LIBGMP