--- /dev/null
+/*
+ * Endianess conversion for int and short types
+ */
+#define BE32_TO_LE32(val) ({typeof (val) v= (val); \
+ (v>>24) | ((v>>8)&0xFF00) | (v<<24) | ((v<<8)&0xFF0000); } )
+#define BE16_TO_LE16(val) ({typeof (val) v= (val); (v>>8) | (v<<8); } )
+/*
+ * Define a protected, right typed, no side effects macro for min
+ */
+#define min(x, y) ({typeof (x) x_ = (x); typeof (y) y_ = (y); \
+ x_ < y_ ? x_ : y_;})
+/*
+ * debugging print definition
+ */
+#define report(fmt, args...) printf(fmt,##args)
+#ifdef DEBUG /* done only on debugging */
+#define debug report
+#else
+#define debug(fmt, arg...)
+#endif
+
+
+/*
+ * Just to print an hex dump of a buffer,
+ * ptr is the address, m is how many word per line
+ * and l how many lines
+ */
+#define PRINT_BUF(ptr, l, m) ({ \
+ int _i, _j; \
+ unsigned short *_ptr= (unsigned short *)(ptr); \
+ for (_i = 0; _i< (int) l; _i++) { \
+ printf("Val[%d]=", m * _i); \
+ for (_j = 0; _j < (int) m; _j++) { \
+ printf("%x ", *_ptr);\
+ _ptr++;\
+ }\
+ printf("\n"); \
+ }\
+})