+/** This function will dissect a sequence of bytes that describe a bitmask.
+ @param tree the tree to append this item to
+ @param tvb the tv buffer of the current data
+ @param offset start of data in tvb
+ @param hf_hdr an 8/16/24/32 bit integer that describes the bitmask to be dissected.
+ This field will form an expansion under which the individual fields of the
+ bitmask is dissected and displayed.
+ This field must be of the type FT_[U]INT{8|16|24|32}.
+ @param ett subtree index
+ @param fields an array of pointers to int that lists all the fields of the
+ bitmask. These fields can be either of the type FT_BOOLEAN for flags
+ or another integer of the same type/size as hf_hdr with a mask specified.
+ This array is terminated by a NULL entry.
+ FT_BOOLEAN bits that are set to 1 will have the name added to the expansion.
+ FT_integer fields that have a value_string attached will have the
+ matched string displayed on the expansion line.
+ @param little_endian big or little endian byte representation
+ @return the newly created item */
+extern proto_item *
+proto_tree_add_bitmask(proto_tree *tree, tvbuff_t *tvb, guint offset,
+ int hf_hdr, gint ett, const int **fields, gboolean little_endian);
+
+/** Add a text with a subtree of bitfields.
+ @param tree the tree to append this item to
+ @param tvb the tv buffer of the current data
+ @param offset start of data in tvb
+ @param name field name (NULL if bitfield contents should be used)
+ @param fallback field name if none of bitfields were usable
+ @param ett subtree index
+ @param fields NULL-terminated array of bitfield indexes
+ @param little_endian big or little endian byte representation
+ @return the newly created item */
+extern proto_item *
+proto_tree_add_bitmask_text(proto_tree *tree, tvbuff_t *tvb, guint offset, guint len,
+ const char *name, const char *fallback,
+ gint ett, const int **fields, gboolean little_endian, int flags);
+
+#define BMT_NO_APPEND 0x01 /**< Don't change the title at all */
+#define BMT_NO_INT 0x02 /**< Don't add integral (non-boolean) fields to title */
+#define BMT_NO_FALSE 0x04 /**< Don't add booleans unless they're TRUE */
+#define BMT_NO_TFS 0x08 /**< Don't use true_false_string while formatting booleans */
+
+/** Add bits to a proto_tree, using the text label registered to that item.
+ The item is extracted from the tvbuff handed to it.
+ @param tree the tree to append this item to
+ @param hfindex field index. Fields for use with this function should have bitmask==0.
+ @param tvb the tv buffer of the current data
+ @param bit_offset start of data in tvb expressed in bits
+ @param no_of_bits length of data in tvb expressed in bits
+ @param little_endian big or little endian byte representation
+ @return the newly created item */
+extern proto_item *
+proto_tree_add_bits_item(proto_tree *tree, int hf_index, tvbuff_t *tvb, gint bit_offset, gint no_of_bits, gboolean little_endian);
+
+/** Add bits to a proto_tree, using the text label registered to that item.
+ The item is extracted from the tvbuff handed to it.
+ @param tree the tree to append this item to
+ @param hfindex field index. Fields for use with this function should have bitmask==0.
+ @param tvb the tv buffer of the current data
+ @param bit_offset start of data in tvb expressed in bits
+ @param no_of_bits length of data in tvb expressed in bits
+ @param return_value if a pointer is passed here the value is returned.
+ @param little_endian big or little endian byte representation
+ @return the newly created item */
+extern proto_item *
+proto_tree_add_bits_ret_val(proto_tree *tree, int hf_index, tvbuff_t *tvb, gint bit_offset, gint no_of_bits, guint64 *return_value, gboolean little_endian);
+
+/** Check if given string is a valid field name
+ @param field_name the field name to check
+ @return 0 if valid, else first illegal character */
+extern guchar
+proto_check_field_name(const gchar *field_name);
+
+
+/** Check if given string is a valid field name
+ @param field_id the field id used for custom column
+ @param result the buffer to fill with the field string
+ @param expr the filter expression
+ @param aize the size of the string buffer */
+const gchar *
+proto_custom_set(proto_tree* tree, int field_id,
+ gchar *result,
+ gchar *expr, int size );
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+