Wireshark 4.7.0
The Wireshark network protocol analyzer
Loading...
Searching...
No Matches
range.h
Go to the documentation of this file.
1/* range.h
2 * Range routines
3 *
4 * Dick Gooris <gooris@lucent.com>
5 * Ulf Lamping <ulf.lamping@web.de>
6 *
7 * Wireshark - Network traffic analyzer
8 * By Gerald Combs <gerald@wireshark.org>
9 * Copyright 1998 Gerald Combs
10 *
11 * SPDX-License-Identifier: GPL-2.0-or-later
12 */
13#pragma once
14#include "ws_symbol_export.h"
15#include <epan/wmem_scopes.h>
16
17#ifdef __cplusplus
18extern "C" {
19#endif /* __cplusplus */
20
26#define MAX_SCTP_PORT 65535
27#define MAX_TCP_PORT 65535
28#define MAX_UDP_PORT 65535
29#define MAX_DCCP_PORT 65535
30
34typedef struct range_admin_tag {
35 uint32_t low;
36 uint32_t high;
38
39#define RANGE_ADMIN_T_INITIALIZER { 0, 0 }
42typedef struct epan_range {
43 unsigned nranges;
46
55
64WS_DLL_PUBLIC range_t *range_empty(wmem_allocator_t *scope);
65
66
92WS_DLL_PUBLIC convert_ret_t range_convert_str(wmem_allocator_t *scope, range_t **range, const char *es,
93 uint32_t max_value);
94
106WS_DLL_PUBLIC convert_ret_t range_convert_str_work(wmem_allocator_t *scope, range_t **range, const char *es,
107 uint32_t max_value, bool err_on_max);
108
115WS_DLL_PUBLIC bool value_is_in_range(const range_t *range, uint32_t val);
116
124WS_DLL_PUBLIC bool range_add_value(wmem_allocator_t *scope, range_t **range, uint32_t val);
125
133WS_DLL_PUBLIC bool range_remove_value(wmem_allocator_t *scope, range_t **range, uint32_t val);
134
140WS_DLL_PUBLIC bool ranges_are_equal(const range_t *a, const range_t *b);
141
149WS_DLL_PUBLIC void range_foreach(range_t *range, void (*callback)(uint32_t val, void *ptr), void *ptr);
150
154WS_DLL_PUBLIC char *range_convert_range(wmem_allocator_t *scope, const range_t *range);
155
162WS_DLL_PUBLIC range_t *range_copy(wmem_allocator_t *scope, const range_t *src);
163
164#ifdef __cplusplus
165}
166#endif /* __cplusplus */
WS_DLL_PUBLIC convert_ret_t range_convert_str(wmem_allocator_t *scope, range_t **range, const char *es, uint32_t max_value)
Converts a range string to a fast comparable array of ranges.
Definition range.c:71
WS_DLL_PUBLIC range_t * range_copy(wmem_allocator_t *scope, const range_t *src)
Definition range.c:430
struct range_admin_tag range_admin_t
Represents a single contiguous range of unsigned integer values with an inclusive lower and upper bou...
WS_DLL_PUBLIC range_t * range_empty(wmem_allocator_t *scope)
Creates an empty range_t structure.
Definition range.c:35
WS_DLL_PUBLIC char * range_convert_range(wmem_allocator_t *scope, const range_t *range)
Definition range.c:407
struct epan_range range_t
WS_DLL_PUBLIC bool range_add_value(wmem_allocator_t *scope, range_t **range, uint32_t val)
Definition range.c:275
convert_ret_t
Return value from range_convert_str().
Definition range.h:50
@ CVT_SYNTAX_ERROR
Definition range.h:52
@ CVT_NO_ERROR
Definition range.h:51
@ CVT_NUMBER_TOO_BIG
Definition range.h:53
WS_DLL_PUBLIC convert_ret_t range_convert_str_work(wmem_allocator_t *scope, range_t **range, const char *es, uint32_t max_value, bool err_on_max)
Internal worker for converting a textual range specification.
Definition range.c:82
WS_DLL_PUBLIC bool ranges_are_equal(const range_t *a, const range_t *b)
Definition range.c:367
WS_DLL_PUBLIC void range_foreach(range_t *range, void(*callback)(uint32_t val, void *ptr), void *ptr)
Definition range.c:393
WS_DLL_PUBLIC bool range_remove_value(wmem_allocator_t *scope, range_t **range, uint32_t val)
Definition range.c:312
WS_DLL_PUBLIC bool value_is_in_range(const range_t *range, uint32_t val)
Definition range.c:258
Internal memory allocator interface used by the wmem subsystem.
Definition wmem_allocator.h:34
Definition range.h:42
unsigned nranges
Definition range.h:43
range_admin_t ranges[]
Definition range.h:44
Represents a single contiguous range of unsigned integer values with an inclusive lower and upper bou...
Definition range.h:34
uint32_t high
Definition range.h:36
uint32_t low
Definition range.h:35