aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJaap Keuter <jaap.keuter@xs4all.nl>2020-01-11 00:03:39 +0100
committerJaap Keuter <jaap.keuter@xs4all.nl>2020-01-11 08:02:30 +0000
commitf9c2bdc413e01e70ac66494f012feb87c9ae8f6b (patch)
tree64a00488951e242aa8ca459543bc3ee52d9bea1a
parentf1a49e55b1fd951a5dac7d70bc0828607420cda9 (diff)
Implement all mapping macros for the new proto tree API
The new proto tree API uses mapping macros to map calls to the proto_tree_add_* functions. These were defined for the up til then in use functions. In the mean time functions have been added and workarounds for non mapped functions were used. This change adds the missing mapping macros so that now all proto_tree_add_* functions taking a hfi address are mapped properly. Also fix two dissectors that failed the mapping. Change-Id: I91d800439fe2c4487ca53c00c44d7aa46ce70e1d Reviewed-on: https://code.wireshark.org/review/35743 Petri-Dish: Jaap Keuter <jaap.keuter@xs4all.nl> Tested-by: Petri Dish Buildbot Reviewed-by: Jörg Mayer <jmayer@loplof.de> Reviewed-by: Jaap Keuter <jaap.keuter@xs4all.nl>
-rw-r--r--epan/dissectors/packet-gadu-gadu.c4
-rw-r--r--epan/dissectors/packet-netlink-net_dm.c2
-rw-r--r--epan/proto.h250
3 files changed, 224 insertions, 32 deletions
diff --git a/epan/dissectors/packet-gadu-gadu.c b/epan/dissectors/packet-gadu-gadu.c
index 2f6cb78b0d..e462d53be3 100644
--- a/epan/dissectors/packet-gadu-gadu.c
+++ b/epan/dissectors/packet-gadu-gadu.c
@@ -1428,14 +1428,14 @@ dissect_gadu_gadu_userlist_xml_compressed(tvbuff_t *tvb, packet_info *pinfo, pro
return offset;
if ((uncomp_tvb = tvb_child_uncompress(tvb, tvb, offset, remain))) {
- proto_tree_add_bytes_format_value(tree, &hfi_gadu_gadu_userlist, tvb, offset, remain, NULL, "[Decompression succeeded]");
+ proto_tree_add_bytes_format_value(tree, &hfi_gadu_gadu_userlist, tvb, offset, remain, NULL, "%s", "[Decompression succeeded]");
add_new_data_source(pinfo, uncomp_tvb, "Uncompressed userlist");
/* XXX add DTD (pinfo->match_string) */
call_dissector_only(xml_handle, uncomp_tvb, pinfo, tree, NULL);
} else
- proto_tree_add_bytes_format_value(tree, &hfi_gadu_gadu_userlist, tvb, offset, remain, NULL, "[Error: Decompression failed] (or no zlib)");
+ proto_tree_add_bytes_format_value(tree, &hfi_gadu_gadu_userlist, tvb, offset, remain, NULL, "%s", "[Error: Decompression failed] (or no zlib)");
offset += remain;
diff --git a/epan/dissectors/packet-netlink-net_dm.c b/epan/dissectors/packet-netlink-net_dm.c
index 3b463b3350..6d9392e5b2 100644
--- a/epan/dissectors/packet-netlink-net_dm.c
+++ b/epan/dissectors/packet-netlink-net_dm.c
@@ -312,7 +312,7 @@ dissect_net_dm_attrs(tvbuff_t *tvb, void *data, struct packet_netlink_data *nl_d
proto_tree_add_item(tree, &hfi_net_dm_alert_mode, tvb, offset, len, nl_data->encoding);
return 1;
case WS_NET_DM_ATTR_PC:
- proto_tree_add_item_ret_uint64(tree, hfi_net_dm_pc.id, tvb,
+ proto_tree_add_item_ret_uint64(tree, &hfi_net_dm_pc, tvb,
offset, 8, nl_data->encoding, &pc);
proto_item_append_text(tree, ": 0x%" G_GINT64_MODIFIER "x", pc);
return 1;
diff --git a/epan/proto.h b/epan/proto.h
index 0edb5785c7..510b4d4dd4 100644
--- a/epan/proto.h
+++ b/epan/proto.h
@@ -3219,71 +3219,263 @@ proto_custom_set(proto_tree* tree, GSList *field_id,
#define proto_tree_add_item_ret_length(tree, hfinfo, tvb, start, length, encoding, retval) \
proto_tree_add_item_new_ret_length(tree, hfinfo, tvb, start, length, encoding, retval)
-#define proto_tree_add_boolean(tree, hfinfo, tvb, start, length, value) \
- proto_tree_add_boolean(tree, (hfinfo)->id, tvb, start, length, value)
+#define proto_tree_add_item_ret_int(tree, hfinfo, tvb, start, length, encoding, retval) \
+ proto_tree_add_item_ret_int(tree, (hfinfo)->id, tvb, start, length, encoding, retval)
-#define proto_tree_add_boolean_format(tree, hfinfo, tvb, start, length, value, format, ...) \
- proto_tree_add_boolean_format(tree, (hfinfo)->id, tvb, start, length, value, format, __VA_ARGS__)
+#define proto_tree_add_item_ret_int64(tree, hfinfo, tvb, start, length, encoding, retval) \
+ proto_tree_add_item_ret_int64(tree, (hfinfo)->id, tvb, start, length, encoding, retval)
+
+#define proto_tree_add_item_ret_uint(tree, hfinfo, tvb, start, length, encoding, retval) \
+ proto_tree_add_item_ret_uint(tree, (hfinfo)->id, tvb, start, length, encoding, retval)
+
+#define proto_tree_add_item_ret_uint64(tree, hfinfo, tvb, start, length, encoding, retval) \
+ proto_tree_add_item_ret_uint64(tree, (hfinfo)->id, tvb, start, length, encoding, retval)
+
+#define proto_tree_add_item_ret_varint(tree, hfinfo, tvb, start, length, encoding, retvali, lenretval) \
+ proto_tree_add_item_ret_varint(tree, (hfinfo)->id, tvb, start, length, encoding, retval, lenretval)
+
+#define proto_tree_add_item_ret_boolean(tree, hfinfo, tvb, start, length, encoding, retval) \
+ proto_tree_add_item_ret_boolean(tree, (hfinfo)->id, tvb, start, length, encoding, retval)
+
+#define proto_tree_add_item_ret_string_and_length(tree, hfinfo, tvb, start, length, encoding, scope, retval, lenretval) \
+ proto_tree_add_item_ret_string_and_length(tree, (hfinfo)->id, tvb, start, length, encoding, scope, retval, lenretval)
+
+#define proto_tree_add_item_ret_string(tree, hfinfo, tvb, start, length, encoding, scope, retval) \
+ proto_tree_add_item_ret_string(tree, (hfinfo)->id, tvb, start, length, encoding, scope, retval)
+
+#define proto_tree_add_item_ret_display_string_and_length(tree, hfinfo, tvb, start, length, encoding, scope, retval, lenretval) \
+ proto_tree_add_item_ret_display_string_and_length(tree, (hfinfo)->id, tvb, start, length, encoding, scope, retval, lenretval)
+
+#define proto_tree_add_item_ret_display_string(tree, hfinfo, tvb, start, length, encoding, scope, retval) \
+ proto_tree_add_item_ret_display_string(tree, (hfinfo)->id, tvb, start, length, encoding, scope, retval)
+
+#define proto_tree_add_item_ret_time_string(tree, hfinfo, tvb, start, length, encoding, scope, retval) \
+ proto_tree_add_item_ret_time_string(tree, (hfinfo)->id, tvb, start, length, encoding, scope, retval)
+
+#define proto_tree_add_none_format(tree, hfinfo, tvb, start, length, format, ...) \
+ proto_tree_add_none_format(tree, (hfinfo)->id, tvb, start, length, format, __VA_ARGS__)
+
+#define proto_tree_add_bytes(tree, hfinfo, tvb, start, length, start_ptr) \
+ proto_tree_add_bytes(tree, (hfinfo)->id, tvb, start, length, start_ptr)
+
+#define proto_tree_add_bytes_with_length(tree, hfinfo, tvb, start, length, start_ptr, ptr_length) \
+ proto_tree_add_bytes_with_length(tree, (hfinfo)->id, tvb, start, length, start_ptr, ptr_length)
+
+#define proto_tree_add_bytes_item(tree, hfinfo, tvb, start, length, encoding, retval, endoff, err) \
+ proto_tree_add_bytes_item(tree, (hfinfo)->id, tvb, start, length, encoding, retval, endoff, err)
+
+#define proto_tree_add_bytes_format_value(tree, hfinfo, tvb, start, length, start_ptr, format, ...) \
+ proto_tree_add_bytes_format_value(tree, (hfinfo)->id, tvb, start, length, start_ptr, format, __VA_ARGS__)
+
+#define proto_tree_add_bytes_format(tree, hfinfo, tvb, start, length, start_ptr, format, ...) \
+ proto_tree_add_bytes_format(tree, (hfinfo)->id, tvb, start, length, start_ptr, format, __VA_ARGS__)
+
+#define proto_tree_add_time(tree, hfinfo, tvb, start, length, value_ptr) \
+ proto_tree_add_time(tree, (hfinfo)->id, tvb, start, length, value_ptr)
+
+#define proto_tree_add_time_item(tree, hfinfo, tvb, start, length, encoding, retval, endoff, err) \
+ proto_tree_add_time_item(tree, (hfinfo)->id, tvb, start, length, encoding, retval, endoff, err)
+
+#define proto_tree_add_time_format_value(tree, hfinfo, tvb, start, length, value_ptr, format, ...) \
+ proto_tree_add_time_format_value(tree, (hfinfo)->id, tvb, start, length, value_ptr, format, __VA_ARGS__)
+
+#define proto_tree_add_time_format(tree, hfinfo, tvb, start, length, value_ptr, format, ...) \
+ proto_tree_add_time_format(tree, (hfinfo)->id, tvb, start, length, value_ptr, format, __VA_ARGS__)
+
+#define proto_tree_add_ipxnet(tree, hfinfo, tvb, start, length, value) \
+ proto_tree_add_ipxnet(tree, (hfinfo)->id, tvb, start, length, value)
+
+#define proto_tree_add_ipxnet_format_value(tree, hfinfo, tvb, start, length, value, format, ...) \
+ proto_tree_add_ipxnet_format_value(tree, (hfinfo)->id, tvb, start, length, value, format, __VA_ARGS__)
+
+#define proto_tree_add_ipxnet_format(tree, hfinfo, tvb, start, length, value, format, ...) \
+ proto_tree_add_ipxnet_format(tree, (hfinfo)->id, tvb, start, length, value, format, __VA_ARGS__)
+
+#define proto_tree_add_ipv4(tree, hfinfo, tvb, start, length, value) \
+ proto_tree_add_ipv4(tree, (hfinfo)->id, tvb, start, length, value)
+
+#define proto_tree_add_ipv4_format_value(tree, hfinfo, tvb, start, length, value, format, ...) \
+ proto_tree_add_ipv4_format_value(tree, (hfinfo)->id, tvb, start, length, value, format, __VA_ARGS__)
+
+#define proto_tree_add_ipv4_format(tree, hfinfo, tvb, start, length, value, format, ...) \
+ proto_tree_add_ipv4_format(tree, (hfinfo)->id, tvb, start, length, value, format, __VA_ARGS__)
+
+#define proto_tree_add_ipv6(tree, hfinfo, tvb, start, length, value_ptr) \
+ proto_tree_add_ipv6(tree, (hfinfo)->id, tvb, start, length, value_ptr)
+
+#define proto_tree_add_ipv6_format_value(tree, hfinfo, tvb, start, length, value_ptr, format, ...) \
+ proto_tree_add_ipv6_format_value(tree, (hfinfo)->id, tvb, start, length, value_ptr, format, __VA_ARGS__)
+
+#define proto_tree_add_ipv6_format(tree, hfinfo, tvb, start, length, value_ptr, format, ...) \
+ proto_tree_add_ipv6_format(tree, (hfinfo)->id, tvb, start, length, value_ptr, format, __VA_ARGS__)
+
+#define proto_tree_add_ether(tree, hfinfo, tvb, start, length, value) \
+ proto_tree_add_ether(tree, (hfinfo)->id, tvb, start, length, value)
+
+#define proto_tree_add_ether_format_value(tree, hfinfo, tvb, start, length, value, format, ...) \
+ proto_tree_add_ether_format_value(tree, (hfinfo)->id, tvb, start, length, value, format, __VA_ARGS__)
+
+#define proto_tree_add_ether_format(tree, hfinfo, tvb, start, length, value, format, ...) \
+ proto_tree_add_ether_format(tree, (hfinfo)->id, tvb, start, length, value, format, __VA_ARGS__)
+
+#define proto_tree_add_guid(tree, hfinfo, tvb, start, length, value_ptr) \
+ proto_tree_add_guid(tree, (hfinfo)->id, tvb, start, length, value_ptr)
+
+#define proto_tree_add_guid_format_value(tree, hfinfo, tvb, start, length, value_ptr, format, ...) \
+ proto_tree_add_guid_format_value(tree, (hfinfo)->id, tvb, start, length, value_ptr, format, __VA_ARGS__)
+
+#define proto_tree_add_guid_format(tree, hfinfo, tvb, start, length, value_ptr, format, ...) \
+ proto_tree_add_guid_format(tree, (hfinfo)->id, tvb, start, length, value_ptr, format, __VA_ARGS__)
+
+#define proto_tree_add_oid(tree, hfinfo, tvb, start, length, value_ptr) \
+ proto_tree_add_oid(tree, (hfinfo)->id, tvb, start, length, value_ptr)
+
+#define proto_tree_add_oid_format_value(tree, hfinfo, tvb, start, length, value_ptr, format, ...) \
+ proto_tree_add_oid_format_value(tree, (hfinfo)->id, tvb, start, length, value_ptr, format, __VA_ARGS__)
+
+#define proto_tree_add_oid_format(tree, hfinfo, tvb, start, length, value_ptr, format, ...) \
+ proto_tree_add_oid_format(tree, (hfinfo)->id, tvb, start, length, value_ptr, format, __VA_ARGS__)
#define proto_tree_add_string(tree, hfinfo, tvb, start, length, value) \
proto_tree_add_string(tree, (hfinfo)->id, tvb, start, length, value)
+#define proto_tree_add_string_format_value(tree, hfinfo, tvb, start, length, value, format, ...) \
+ proto_tree_add_string_format_value(tree, (hfinfo)->id, tvb, start, length, value, format, __VA_ARGS__)
+
#define proto_tree_add_string_format(tree, hfinfo, tvb, start, length, value, format, ...) \
proto_tree_add_string_format(tree, (hfinfo)->id, tvb, start, length, value, format, __VA_ARGS__)
-#define proto_tree_add_item_ret_string(tree, hfinfo, tvb, start, length, encoding, scope, retval) \
- proto_tree_add_item_ret_string(tree, (hfinfo)->id, tvb, start, length, encoding, scope, retval)
+#define proto_tree_add_boolean(tree, hfinfo, tvb, start, length, value) \
+ proto_tree_add_boolean(tree, (hfinfo)->id, tvb, start, length, value)
-#define proto_tree_add_time(tree, hfinfo, tvb, start, length, value) \
- proto_tree_add_time(tree, (hfinfo)->id, tvb, start, length, value)
+#define proto_tree_add_boolean_format_value(tree, hfinfo, tvb, start, length, value, format, ...) \
+ proto_tree_add_boolean_format_value(tree, (hfinfo)->id, tvb, start, length, value, format, __VA_ARGS__)
-#define proto_tree_add_int(tree, hfinfo, tvb, start, length, value) \
- proto_tree_add_int(tree, (hfinfo)->id, tvb, start, length, value)
+#define proto_tree_add_boolean_format(tree, hfinfo, tvb, start, length, value, format, ...) \
+ proto_tree_add_boolean_format(tree, (hfinfo)->id, tvb, start, length, value, format, __VA_ARGS__)
-#define proto_tree_add_int_format(tree, hfinfo, tvb, start, length, value, format, ...) \
- proto_tree_add_int_format(tree, (hfinfo)->id, tvb, start, length, value, format, __VA_ARGS__)
+#define proto_tree_add_float(tree, hfinfo, tvb, start, length, value) \
+ proto_tree_add_float(tree, (hfinfo)->id, tvb, start, length, value)
+
+#define proto_tree_add_float_format_value(tree, hfinfo, tvb, start, length, value, format, ...) \
+ proto_tree_add_float_format_value(tree, (hfinfo)->id, tvb, start, length, value, format, __VA_ARGS__)
+
+#define proto_tree_add_float_format(tree, hfinfo, tvb, start, length, value, format, ...) \
+ proto_tree_add_float_format(tree, (hfinfo)->id, tvb, start, length, value, format, __VA_ARGS__)
+
+#define proto_tree_add_double(tree, hfinfo, tvb, start, length, value) \
+ proto_tree_add_double(tree, (hfinfo)->id, tvb, start, length, value)
+
+#define proto_tree_add_double_format_value(tree, hfinfo, tvb, start, length, value, format, ...) \
+ proto_tree_add_double_format_value(tree, (hfinfo)->id, tvb, start, length, value, format, __VA_ARGS__)
+
+#define proto_tree_add_double_format(tree, hfinfo, tvb, start, length, value, format, ...) \
+ proto_tree_add_double_format(tree, (hfinfo)->id, tvb, start, length, value, format, __VA_ARGS__)
#define proto_tree_add_uint(tree, hfinfo, tvb, start, length, value) \
proto_tree_add_uint(tree, (hfinfo)->id, tvb, start, length, value)
-#define proto_tree_add_uint_format(tree, hfinfo, tvb, start, length, value, format, ...) \
- proto_tree_add_uint_format(tree, (hfinfo)->id, tvb, start, length, value, format, __VA_ARGS__)
-
#define proto_tree_add_uint_format_value(tree, hfinfo, tvb, start, length, value, format, ...) \
proto_tree_add_uint_format_value(tree, (hfinfo)->id, tvb, start, length, value, format, __VA_ARGS__)
-#define proto_tree_add_item_ret_uint(tree, hfinfo, tvb, start, length, encoding, retval) \
- proto_tree_add_item_ret_uint(tree, (hfinfo)->id, tvb, start, length, encoding, retval)
+#define proto_tree_add_uint_format(tree, hfinfo, tvb, start, length, value, format, ...) \
+ proto_tree_add_uint_format(tree, (hfinfo)->id, tvb, start, length, value, format, __VA_ARGS__)
#define proto_tree_add_uint64(tree, hfinfo, tvb, start, length, value) \
proto_tree_add_uint64(tree, (hfinfo)->id, tvb, start, length, value)
-#define proto_tree_add_float(tree, hfinfo, tvb, start, length, value) \
- proto_tree_add_float(tree, (hfinfo)->id, tvb, start, length, value)
+#define proto_tree_add_uint64_format_value(tree, hfinfo, tvb, start, length, value, format, ...) \
+ proto_tree_add_uint64_format_value(tree, (hfinfo)->id, tvb, start, length, value, format, __VA_ARGS__)
-#define proto_tree_add_float_format_value(tree, hfinfo, tvb, start, length, value, format, ...) \
- proto_tree_add_float_format_value(tree, (hfinfo)->id, tvb, start, length, value, format, __VA_ARGS__)
+#define proto_tree_add_uint64_format(tree, hfinfo, tvb, start, length, value, format, ...) \
+ proto_tree_add_uint64_format(tree, (hfinfo)->id, tvb, start, length, value, format, __VA_ARGS__)
-#define proto_tree_add_double(tree, hfinfo, tvb, start, length, value) \
- proto_tree_add_double(tree, (hfinfo)->id, tvb, start, length, value)
+#define proto_tree_add_int(tree, hfinfo, tvb, start, length, value) \
+ proto_tree_add_int(tree, (hfinfo)->id, tvb, start, length, value)
+
+#define proto_tree_add_int_format_value(tree, hfinfo, tvb, start, length, value, format, ...) \
+ proto_tree_add_int_format_value(tree, (hfinfo)->id, tvb, start, length, value, format, __VA_ARGS__)
+
+#define proto_tree_add_int_format(tree, hfinfo, tvb, start, length, value, format, ...) \
+ proto_tree_add_int_format(tree, (hfinfo)->id, tvb, start, length, value, format, __VA_ARGS__)
+
+#define proto_tree_add_int64(tree, hfinfo, tvb, start, length, value) \
+ proto_tree_add_int64(tree, (hfinfo)->id, tvb, start, length, value)
+
+#define proto_tree_add_int64_format_value(tree, hfinfo, tvb, start, length, value, format, ...) \
+ proto_tree_add_int64_format_value(tree, (hfinfo)->id, tvb, start, length, value, format, __VA_ARGS__)
-#define proto_tree_add_bytes_format(tree, hfinfo, tvb, start, length, format, ...) \
- proto_tree_add_bytes_format(tree, (hfinfo)->id, tvb, start, length, format, __VA_ARGS__)
+#define proto_tree_add_int64_format(tree, hfinfo, tvb, start, length, value, format, ...) \
+ proto_tree_add_int64_format(tree, (hfinfo)->id, tvb, start, length, value, format, __VA_ARGS__)
-#define proto_tree_add_bytes_format_value(tree, hfinfo, tvb, start, length, format, ...) \
- proto_tree_add_bytes_format_value(tree, (hfinfo)->id, tvb, start, length, format, __VA_ARGS__)
+#define proto_tree_add_euint64(tree, hfinfo, tvb, start, length, value) \
+ proto_tree_add_euint64(tree, (hfinfo)->id, tvb, start, length, value)
+
+#define proto_tree_add_euint64_format_value(tree, hfinfo, tvb, start, length, value, format, ...) \
+ proto_tree_add_euint64_format_value(tree, (hfinfo)->id, tvb, start, length, value, format, __VA_ARGS__)
+
+#define proto_tree_add_euint64_format(tree, hfinfo, tvb, start, length, value, format, ...) \
+ proto_tree_add_euint64_format(tree, (hfinfo)->id, tvb, start, length, value, format, __VA_ARGS__)
#define proto_tree_add_bitmask(tree, tvb, start, hfinfo, ett, fields, encoding) \
proto_tree_add_bitmask(tree, tvb, start, (hfinfo)->id, ett, fields, encoding)
+#define proto_tree_add_bitmask_ret_uint64(tree, tvb, start, hfinfo, ett, fields, encoding, retval) \
+ proto_tree_add_bitmask_ret_uint64(tree, tvb, start, (hfinfo)->id, ett, fields, encoding, retval)
+
#define proto_tree_add_bitmask_with_flags(tree, tvb, start, hfinfo, ett, fields, encoding, flags) \
proto_tree_add_bitmask_with_flags(tree, tvb, start, (hfinfo)->id, ett, fields, encoding, flags)
#define proto_tree_add_bitmask_with_flags_ret_uint64(tree, tvb, start, hfinfo, ett, fields, encoding, flags, retval) \
proto_tree_add_bitmask_with_flags_ret_uint64(tree, tvb, start, (hfinfo)->id, ett, fields, encoding, flags, retval)
-#define proto_tree_add_none_format(tree, hfinfo, tvb, start, length, format, ...) \
- proto_tree_add_none_format(tree, (hfinfo)->id, tvb, start, length, format, __VA_ARGS__)
+#define proto_tree_add_bitmask_value(tree, tvb, start, hfinfo, ett, fields, value) \
+ proto_tree_add_bitmask_value(tree, tvb, start, (hfinfo)->id, ett, fields, value)
+
+#define proto_tree_add_bitmask_value_with_flags(tree, tvb, start, hfinfo, ett, fields, value, flags) \
+ proto_tree_add_bitmask_value_with_flags(tree, tvb, start, (hfinfo)->id, ett, fields, value, flags)
+
+#define proto_tree_add_bitmask_len(tree, tvb, start, len, hfinfo, ett, fields, exp, encoding) \
+ proto_tree_add_bitmask_len(tree, tvb, start, len, (hfinfo)->id, ett, fields, exp, encoding)
+
+#define proto_tree_add_bits_item(tree, hfinfo, tvb, start, no_of_bits, encoding) \
+ proto_tree_add_bits_item(tree, (hfinfo)->id, tvb, start, no_of_bits, encoding)
+
+#define proto_tree_add_split_bits_item_ret_val(tree, hfinfo, tvb, start, crumb_spec, retval) \
+ proto_tree_add_split_bits_item_ret_val(tree, (hfinfo)->id, tvb, start, crumb_spec, retval)
+
+#define proto_tree_add_split_bits_crumb(tree, hfinfo, tvb, start, crumb_spec, crumb_index) \
+ proto_tree_add_split_bits_crumb(tree, (hfinfo)->id, tvb, start, crumb_spec, crumb_index)
+
+#define proto_tree_add_bits_ret_val(tree, hfinfo, tvb, start, no_of_bits, retval, encoding) \
+ proto_tree_add_bits_ret_val(tree, (hfinfo)->id, tvb, start, no_of_bits, retval, encoding)
+
+#define proto_tree_add_uint_bits_format_value(tree, hfinfo, tvb, start, no_of_bits, value, format, ...) \
+ proto_tree_add_uint_bits_format_value(tree, (hfinfo)->id, tvb, start, no_of_bits, value, format, __VA_ARGS__)
+
+#define proto_tree_add_uint64_bits_format_value(tree, hfinfo, tvb, start, no_of_bits, value, format, ...) \
+ proto_tree_add_uint64_bits_format_value(tree, (hfinfo)->id, tvb, start, no_of_bits, value, format, __VA_ARGS__)
+
+#define proto_tree_add_boolean_bits_format_value(tree, hfinfo, tvb, start, no_of_bits, value, format, ...) \
+ proto_tree_add_boolean_bits_format_value(tree, (hfinfo)->id, tvb, start, no_of_bits, value, format, __VA_ARGS__)
+
+#define proto_tree_add_boolean_bits_format_value64(tree, hfinfo, tvb, start, no_of_bits, value, format, ...) \
+ proto_tree_add_boolean_bits_format_value64(tree, (hfinfo)->id, tvb, start, no_of_bits, value, format, __VA_ARGS__)
+
+#define proto_tree_add_int_bits_format_value(tree, hfinfo, tvb, start, no_of_bits, value, format, ...) \
+ proto_tree_add_int_bits_format_value(tree, (hfinfo)->id, tvb, start, no_of_bits, value, format, __VA_ARGS__)
+
+#define proto_tree_add_int64_bits_format_value(tree, hfinfo, tvb, start, no_of_bits, value, format, ...) \
+ proto_tree_add_int64_bits_format_value(tree, (hfinfo)->id, tvb, start, no_of_bits, value, format, __VA_ARGS__)
+
+#define proto_tree_add_float_bits_format_value(tree, hfinfo, tvb, start, no_of_bits, value, format, ...) \
+ proto_tree_add_float_bits_format_value(tree, (hfinfo)->id, tvb, start, no_of_bits, value, format, __VA_ARGS__)
+
+#define proto_tree_add_ts_23_038_7bits_item(tree, hfinfo, tvb, start, no_of_chars) \
+ proto_tree_add_ts_23_038_7bits(tree, (hfinfo)->id, tvb, start, no_of_chars)
+
+#define proto_tree_add_ascii_7bits_item(tree, hfinfo, tvb, start, no_of_chars) \
+ proto_tree_add_ascii_7bits(tree, (hfinfo)->id, tvb, start, no_of_chars)
#define proto_tree_add_checksum(tree, tvb, offset, hf_checksum, hf_checksum_status, \
bad_checksum_expert, pinfo, computed_checksum, encoding, flags) \