15 #include <wireshark.h>
75 #define FT_IS_INT32(ft) \
81 #define FT_IS_INT64(ft) \
82 ((ft) == FT_INT40 || \
87 #define FT_IS_INT(ft) (FT_IS_INT32(ft) || FT_IS_INT64(ft))
89 #define FT_IS_UINT32(ft) \
92 (ft) == FT_UINT16 || \
93 (ft) == FT_UINT24 || \
94 (ft) == FT_UINT32 || \
97 #define FT_IS_UINT64(ft) \
98 ((ft) == FT_UINT40 || \
99 (ft) == FT_UINT48 || \
100 (ft) == FT_UINT56 || \
103 #define FT_IS_UINT(ft) (FT_IS_UINT32(ft) || FT_IS_UINT64(ft))
105 #define FT_IS_INTEGER(ft) (FT_IS_INT(ft) || FT_IS_UINT(ft))
107 #define FT_IS_FLOATING(ft) ((ft) == FT_FLOAT || (ft) == FT_DOUBLE)
109 #define FT_IS_TIME(ft) \
110 ((ft) == FT_ABSOLUTE_TIME || (ft) == FT_RELATIVE_TIME)
112 #define FT_IS_STRING(ft) \
113 ((ft) == FT_STRING || (ft) == FT_STRINGZ || (ft) == FT_STRINGZPAD || \
114 (ft) == FT_STRINGZTRUNC || (ft) == FT_UINT_STRING)
117 #define FT_ETHER_LEN 6
118 #define FT_GUID_LEN 16
119 #define FT_IPv4_LEN 4
120 #define FT_IPv6_LEN 16
121 #define FT_IPXNET_LEN 4
122 #define FT_EUI64_LEN 8
123 #define FT_AX25_ADDR_LEN 7
124 #define FT_VINES_ADDR_LEN 6
125 #define FT_FCWWN_LEN 8
126 #define FT_VARINT_MAX_LEN 10
128 typedef enum ftenum ftenum_t;
130 enum ft_framenum_type {
133 FT_FRAMENUM_RESPONSE,
136 FT_FRAMENUM_RETRANS_PREV,
137 FT_FRAMENUM_RETRANS_NEXT,
138 FT_FRAMENUM_NUM_TYPES
141 typedef enum ft_framenum_type ft_framenum_type_t;
161 typedef bool ft_bool_t;
172 typedef enum ftrepr ftrepr_t;
176 ftypes_initialize(
void);
179 ftypes_register_pseudofields(
void);
186 ftype_similar_types(
const enum ftenum ftype_a,
const enum ftenum ftype_b);
191 ftype_name(ftenum_t ftype);
198 ftype_pretty_name(ftenum_t ftype);
202 ftype_wire_size(ftenum_t ftype);
205 ftype_can_length(
enum ftenum ftype);
209 ftype_can_slice(
enum ftenum ftype);
213 ftype_can_eq(
enum ftenum ftype);
217 ftype_can_cmp(
enum ftenum ftype);
220 ftype_can_bitwise_and(
enum ftenum ftype);
223 ftype_can_unary_minus(
enum ftenum ftype);
226 ftype_can_add(
enum ftenum ftype);
229 ftype_can_subtract(
enum ftenum ftype);
232 ftype_can_multiply(
enum ftenum ftype);
235 ftype_can_divide(
enum ftenum ftype);
238 ftype_can_modulo(
enum ftenum ftype);
242 ftype_can_contains(
enum ftenum ftype);
246 ftype_can_matches(
enum ftenum ftype);
250 ftype_can_is_zero(
enum ftenum ftype);
254 ftype_can_is_negative(
enum ftenum ftype);
258 ftype_can_val_to_sinteger(
enum ftenum ftype);
262 ftype_can_val_to_uinteger(
enum ftenum ftype);
266 ftype_can_val_to_sinteger64(
enum ftenum ftype);
270 ftype_can_val_to_uinteger64(
enum ftenum ftype);
293 fvalue_new(ftenum_t ftype);
299 fvalue_init(
fvalue_t *fv, ftenum_t ftype);
309 fvalue_from_literal(ftenum_t ftype,
const char *s,
bool allow_partial_value,
char **err_msg);
313 fvalue_from_string(ftenum_t ftype,
const char *s,
size_t len,
char **err_msg);
316 fvalue_from_charconst(ftenum_t ftype,
unsigned long number,
char **err_msg);
329 #define fvalue_to_debug_repr(scope, fv) \
330 fvalue_to_string_repr(scope, fv, FTREPR_DFILTER, 0)
332 WS_DLL_PUBLIC
enum ft_result
333 fvalue_to_uinteger(
const fvalue_t *fv, uint32_t *repr);
335 WS_DLL_PUBLIC
enum ft_result
336 fvalue_to_sinteger(
const fvalue_t *fv, int32_t *repr);
338 WS_DLL_PUBLIC
enum ft_result
339 fvalue_to_uinteger64(
const fvalue_t *fv, uint64_t *repr);
341 WS_DLL_PUBLIC
enum ft_result
342 fvalue_to_sinteger64(
const fvalue_t *fv, int64_t *repr);
344 WS_DLL_PUBLIC ftenum_t
348 fvalue_type_name(
const fvalue_t *fv);
352 fvalue_set_bytes(
fvalue_t *fv, GBytes *value);
355 fvalue_set_byte_array(
fvalue_t *fv, GByteArray *value);
358 fvalue_set_bytes_data(
fvalue_t *fv,
const void *data,
size_t size);
361 fvalue_set_fcwwn(
fvalue_t *fv,
const uint8_t *value);
364 fvalue_set_ax25(
fvalue_t *fv,
const uint8_t *value);
367 fvalue_set_vines(
fvalue_t *fv,
const uint8_t *value);
370 fvalue_set_ether(
fvalue_t *fv,
const uint8_t *value);
379 fvalue_set_string(
fvalue_t *fv,
const char *value);
385 fvalue_set_protocol(
fvalue_t *fv,
tvbuff_t *value,
const char *name,
int length);
388 fvalue_set_uinteger(
fvalue_t *fv, uint32_t value);
391 fvalue_set_sinteger(
fvalue_t *fv, int32_t value);
394 fvalue_set_uinteger64(
fvalue_t *fv, uint64_t value);
397 fvalue_set_sinteger64(
fvalue_t *fv, int64_t value);
400 fvalue_set_floating(
fvalue_t *fv,
double value);
412 fvalue_get_bytes_size(
fvalue_t *fv);
417 fvalue_get_bytes_data(
fvalue_t *fv);
439 WS_DLL_PUBLIC uint32_t
442 WS_DLL_PUBLIC int32_t
447 fvalue_get_uinteger64(
fvalue_t *fv);
451 fvalue_get_sinteger64(
fvalue_t *fv);
487 fvalue_is_negative(
const fvalue_t *a);
499 fvalue_unary_minus(
const fvalue_t *fv,
char **err_msg);
Definition: guid-utils.h:22
Definition: ftypes-int.h:91
Definition: ftypes-int.h:17
Definition: wmem_allocator.h:27
Definition: wmem_strbuf.h:42
Definition: tvbuff-int.h:35