| Wireshark 4.7.0 The Wireshark network protocol analyzer

Loading...
Searching...
No Matches
Classes | Macros | Typedefs | Functions
uat-int.h File Reference
`#include <glib.h>`
`#include "uat.h"`
`#include "ws_symbol_export.h"`

Go to the source code of this file.

## Classes
struct | _fld_data_t
struct | epan_uat

## Macros
#define | UAT_UPDATE(uat) do { *((uat)->user_ptr) = (void*)((uat)->user_data->data); *((uat)->nrows_p) = (uat)->user_data->len; } while(0)
#define | UAT_INDEX_PTR(uat, idx) (uat->raw_data->data + (uat->record_size * (idx)))
#define | UAT_USER_INDEX_PTR(uat, idx) (uat->user_data->data + (uat->record_size * (idx)))

## Typedefs
typedef struct _uat_fld_rep_t | uat_fld_rep_t
typedef struct _uat_rep_t | uat_rep_t
typedef void(* | uat_rep_fld_free_cb_t) (uat_fld_rep_t *)
typedef void(* | uat_rep_free_cb_t) (uat_rep_t *)
typedef struct _fld_data_t | fld_data_t

## Functions
WS_DLL_PUBLIC char * | uat_get_actual_filename (uat_t *uat, bool for_writing, const char *app_env_var_prefix)
WS_DLL_PUBLIC void * | uat_add_record (uat_t *uat, const void *orig_rec_ptr, bool valid_rec)
WS_DLL_PUBLIC void | uat_update_record (uat_t *uat, const void *record, bool valid_rec)
WS_DLL_PUBLIC void | uat_swap (uat_t *uat, unsigned idx_a, unsigned idx_b)
WS_DLL_PUBLIC void | uat_insert_record_idx (uat_t *uat, unsigned rec_idx, const void *src_record)
WS_DLL_PUBLIC void | uat_remove_record_idx (uat_t *uat, unsigned rec_idx)
WS_DLL_PUBLIC void | uat_remove_record_range (uat_t *uat, unsigned rec_idx, unsigned count)
WS_DLL_PUBLIC void | uat_move_index (uat_t *uat, unsigned old_idx, unsigned new_idx)
WS_DLL_PUBLIC void | uat_clear (uat_t *uat)
WS_DLL_PUBLIC bool | uat_save (uat_t *uat, const char *app_env_var_prefix, char **error)
void | uat_load_all (const char *app_env_var_prefix)
WS_DLL_PUBLIC char * | uat_fld_tostr (void *rec, uat_field_t *f)
WS_DLL_PUBLIC char * | uat_record_tostr (const uat_t *uat, void *rec)

## Detailed Description

User Accessible Tables Maintain an array of user accessible data structures Internal interface

(c) 2007, Luis E. Garcia Ontanon luis@.nosp@m.onta.nosp@m.non.o.nosp@m.rg

Wireshark - Network traffic analyzer By Gerald Combs geral.nosp@m.d@wi.nosp@m.resha.nosp@m.rk.o.nosp@m.rg Copyright 2001 Gerald Combs

SPDX-License-Identifier: GPL-2.0-or-later

## Macro Definition Documentation

## ◆ UAT_INDEX_PTR

#define UAT_INDEX_PTR | ( |  | uat,
|  |  | idx
| ) |  | (uat->raw_data->data + (uat->record_size * (idx)))

Get a record from the array of all UAT entries, whether they are semantically valid or not. This memory must only be used internally in the UAT core and must not be exposed to dissectors.

## ◆ UAT_UPDATE

#define UAT_UPDATE | ( |  | uat | ) | do { *((uat)->user_ptr) = (void*)((uat)->user_data->data); *((uat)->nrows_p) = (uat)->user_data->len; } while(0)

Exposes the array of valid records to the UAT consumer (dissectors), updating the contents of 'data_ptr' and 'num_items_ptr' (see 'uat_new').

## ◆ UAT_USER_INDEX_PTR

#define UAT_USER_INDEX_PTR | ( |  | uat,
|  |  | idx
| ) |  | (uat->user_data->data + (uat->record_size * (idx)))

Get a record from the array of all valid entries. These records will be shared with UAT consumers (dissectors).

## Function Documentation

## ◆ uat_add_record()

WS_DLL_PUBLIC void * uat_add_record | ( | uat_t * | uat,
|  | const void * | orig_rec_ptr,
|  | bool | valid_rec
| ) |  |

Clones the given record and stores it internally in the UAT. If it is considered a valid record, then it will also be cloned and stored in the externally visible list.

## ◆ uat_clear()

WS_DLL_PUBLIC void uat_clear | ( | uat_t * | uat | ) |

Removes and destroys all records from the UAT.

## ◆ uat_fld_tostr()

WS_DLL_PUBLIC char * uat_fld_tostr | ( | void * | rec,
|  | uat_field_t * | f
| ) |  |

Dump given UAT record to string in form which can be later loaded with uat_load_str(). XXX - In fact this only dumps a single field. To produce the format for uat_load_str(), join all the fields as CSV records, escaping and double- quoting field types other than PT_TXTMOD_HEXBYTES. Perhaps we should have a function that dumps the entire record.

## ◆ uat_insert_record_idx()

WS_DLL_PUBLIC void uat_insert_record_idx | ( | uat_t * | uat,
|  | unsigned | rec_idx,
|  | const void * | src_record
| ) |  |

Inserts the record at the given index in the internal record list.

## ◆ uat_load_all()

void uat_load_all | ( | const char * | app_env_var_prefix | ) |

Loads the records for all registered UATs from file.

## ◆ uat_move_index()

WS_DLL_PUBLIC void uat_move_index | ( | uat_t * | uat,
|  | unsigned | old_idx,
|  | unsigned | new_idx
| ) |  |

Moves the entry from the old position to the new one

## ◆ uat_record_tostr()

WS_DLL_PUBLIC char * uat_record_tostr | ( | const uat_t * | uat,
|  | void * | rec
| ) |  |

Dump UAT record entries to string in form which can be later loaded with uat_load_str(). Returns a g_malloced string.

## ◆ uat_remove_record_idx()

WS_DLL_PUBLIC void uat_remove_record_idx | ( | uat_t * | uat,
|  | unsigned | rec_idx
| ) |  |

Removes the record with the given index from the internal record list. If the UAT has a free_cb it is called for the removed record.

## ◆ uat_remove_record_range()

WS_DLL_PUBLIC void uat_remove_record_range | ( | uat_t * | uat,
|  | unsigned | rec_idx,
|  | unsigned | count
| ) |  |

Removes the given number of records starting with the given index from the internal record list. If the UAT has a free_cb it is called for the removed records.

## ◆ uat_save()

WS_DLL_PUBLIC bool uat_save | ( | uat_t * | uat,
|  | const char * | app_env_var_prefix,
|  | char ** | error
| ) |  |

Saves the records from an UAT to file. Returns true on success and false on failure, storing the reason in 'error' (which must be freed using g_free).

## ◆ uat_swap()

WS_DLL_PUBLIC void uat_swap | ( | uat_t * | uat,
|  | unsigned | idx_a,
|  | unsigned | idx_b
| ) |  |

Changes the order of two internal UAT records.

## ◆ uat_update_record()

WS_DLL_PUBLIC void uat_update_record | ( | uat_t * | uat,
|  | const void * | record,
|  | bool | valid_rec
| ) |  |

Marks the internal record in the UAT as valid or invalid. The record must exist in the UAT.