bitfield.h.j2: keep a single version for the target byte order
[deliverable/barectf.git] / barectf / templates / c / bitfield.h.j2
index 0ec078405852346a526c6275e0c927697267a7ee..05d507ba3bb140a3b373b0a4599e53e2a484ac7f 100644 (file)
@@ -27,6 +27,8 @@
 #ifndef _{{ ucprefix }}BITFIELD_H
 #define _{{ ucprefix }}BITFIELD_H
 
+#include <stdint.h>
+
 /*
  * BabelTrace
  *
@@ -96,6 +98,9 @@ do {                                                                  \
  * Also, consecutive bitfields are placed from higher to lower bits.
  */
 
+{% if cfg.target_byte_order == barectf_config.ByteOrder.LITTLE_ENDIAN %}
+/* Target byte order: little-endian */
+
 #define _bt_bitfield_write_le(_ptr, type, _start, _length, _vtype, _v) \
 do {                                                                   \
        _vtype __v = (_v);                                              \
@@ -155,6 +160,11 @@ do {                                                                       \
                __ptr[this_unit] = (type) __v;                          \
 } while (0)
 
+#define bt_bitfield_write_le(ptr, _start, _length, _vtype, _v) \
+       _bt_bitfield_write_le(ptr, uint8_t, _start, _length, _vtype, _v)
+{% else %}
+/* Target byte order: big-endian */
+
 #define _bt_bitfield_write_be(_ptr, type, _start, _length, _vtype, _v) \
 do {                                                                   \
        _vtype __v = (_v);                                              \
@@ -214,18 +224,8 @@ do {                                                                       \
                __ptr[this_unit] = (type) __v;                          \
 } while (0)
 
-{% if cfg.target_byte_order == barectf_config.ByteOrder.LITTLE_ENDIAN %}
-/* Target byte order: little-endian */
-#define bt_bitfield_write_le(ptr, type, _start, _length, _vtype, _v) \
-       _bt_bitfield_write_le(ptr, type, _start, _length, _vtype, _v)
-#define bt_bitfield_write_be(ptr, type, _start, _length, _vtype, _v) \
-       _bt_bitfield_write_be(ptr, unsigned char, _start, _length, _vtype, _v)
-{% else %}
-/* Target byte order: big-endian */
-#define bt_bitfield_write_le(ptr, type, _start, _length, _vtype, _v) \
-       _bt_bitfield_write_le(ptr, unsigned char, _start, _length, _vtype, _v)
-#define bt_bitfield_write_be(ptr, type, _start, _length, _vtype, _v) \
-       _bt_bitfield_write_be(ptr, type, _start, _length, _vtype, _v)
+#define bt_bitfield_write_be(ptr, _start, _length, _vtype, _v) \
+       _bt_bitfield_write_be(ptr, uint8_t, _start, _length, _vtype, _v)
 {% endif %}
 
 #endif /* _{{ ucprefix }}BITFIELD_H */
This page took 0.040738 seconds and 4 git commands to generate.