Wireshark mailing list archives

Re: Boolean Field Registration Qurey


From: Bill Meier <wmeier () newsguy com>
Date: Thu, 15 Apr 2010 15:42:35 -0400

Jakub Zawadzki wrote:
Hi,

On Thu, Apr 15, 2010 at 02:48:41PM +0800, Tamás Reg?s wrote:
In README.developer it says the general rules:
     static hf_register_info hf[] = {
             { &hf_PROTOABBREV_FIELDABBREV,
                     { "FIELDNAME", "PROTOABBREV.FIELDABBREV",
                     FIELDTYPE, FIELDBASE, FIELDCONVERT, BITMASK,
                     "FIELDDESCR", HFILL }
             }
     };

In proto.h the FIELDBASE declared as enum:
typedef enum {
     BASE_NONE,      /**< none */
     BASE_DEC,       /**< decimal */
     BASE_HEX,       /**< hexadecimal */
     BASE_OCT,       /**< octal */
     BASE_DEC_HEX,   /**< decimal (hexadecimal) */
     BASE_HEX_DEC,   /**< hexadecimal (decimal) */
     BASE_CUSTOM     /**< call custom routine (in ->strings) to format */
} base_display_e;

If you are using FT_BOOLEAN, it's no longer BASE_* enum, but number of field bits.

From proto.h:
  int display;        /**< one of BASE_, or number of field bits for FT_BOOLEAN */



To clarify slightly:

The 'display'comment should actually be something like
"... or number of field bits for FT_BOOLEAN if BITMASK is non-zero".

 From README.developer

"For FT_BOOLEAN fields that are also bitfields (i.e. 'bitmask' is 
non-zero), 'display' is used to tell the proto_tree how wide the parent 
bitfield is."

"With integers this is not needed since the type of integer itself
(FT_UINT8, FT_UINT16, FT_UINT24, FT_UINT32, etc.) tells the proto_tree 
how wide the parent bitfield is.".

and

"Additionally, BASE_NONE is used for 'display' as a NULL-value. That is, 
for non-integers other than FT_ABSOLUTE_TIME fields, and non-bitfield
FT_BOOLEANs, you'll want to use BASE_NONE in the 'display' field.  You 
may not use BASE_NONE for integers.


I've updated the comment in proto.h.

___________________________________________________________________________
Sent via:    Wireshark-dev mailing list <wireshark-dev () wireshark org>
Archives:    http://www.wireshark.org/lists/wireshark-dev
Unsubscribe: https://wireshark.org/mailman/options/wireshark-dev
             mailto:wireshark-dev-request () wireshark org?subject=unsubscribe


Current thread: