libnl: Abstract Data

libnl 3.12.0

Abstract Data
Core Library (libnl) » Data Types

Abstract data type representing a binary data blob. More...

## General
struct nl_data * | nl_data_alloc (const void *buf, size_t size)
| Allocate a new abstract data object.
struct nl_data * | nl_data_alloc_attr (const struct nlattr *nla)
| Allocate abstract data object based on netlink attribute.
struct nl_data * | nl_data_clone (const struct nl_data *src)
| Clone an abstract data object.
int | nl_data_append (struct nl_data *data, const void *buf, size_t size)
| Append data to an abstract data object.
void | nl_data_free (struct nl_data *data)
| Free an abstract data object.

## Attribute Access
void * | nl_data_get (const struct nl_data *data)
| Get data buffer of abstract data object.
size_t | nl_data_get_size (const struct nl_data *data)
| Get size of data buffer of abstract data object.

## Misc
int | nl_data_cmp (const struct nl_data *a, const struct nl_data *b)
| Compare two abstract data objects.

## Detailed Description

Abstract data type representing a binary data blob.

Related sections in the development guide:

- Abstract Data (Netlink Core Library Development Guide)

## Header

#include <netlink/data.h>

## Function Documentation

## ◆ nl_data_alloc()

struct nl_data * nl_data_alloc | ( | const void * | buf,
|  | size_t | size )

Allocate a new abstract data object.

Parameters

  buf | Data buffer containing the actual data.
  size | Size of data buffer.

Allocates a new abstract data and copies the specified data buffer into the new handle.

Returns
  Newly allocated data handle or NULL

Definition at line 50 of file data.c.

Referenced by nl_data_alloc_attr(), nl_data_clone(), and rtnl_tc_data().

Here is the caller graph for this function:

## ◆ nl_data_alloc_attr()

struct nl_data * nl_data_alloc_attr | ( | const struct nlattr * | nla | ) |

Allocate abstract data object based on netlink attribute.

Parameters

  nla | Netlink attribute of unspecific type.

Allocates a new abstract data and copies the payload of the attribute to the abstract data object.

See also
  nla_data_alloc

Returns
  Newly allocated data handle or NULL

Definition at line 84 of file data.c.

References nl_data_alloc(), nla_data(), and nla_len().

Here is the call graph for this function:

## ◆ nl_data_clone()

struct nl_data * nl_data_clone | ( | const struct nl_data * | src | ) |

Clone an abstract data object.

Parameters

  src | Abstract data object

Returns
  Cloned object or NULL

Definition at line 95 of file data.c.

References nl_data_alloc().

Here is the call graph for this function:

## ◆ nl_data_append()

int nl_data_append | ( | struct nl_data * | data,
|  | const void * | buf,
|  | size_t | size )

Append data to an abstract data object.

Parameters

  data | Abstract data object.
  buf | Data buffer containing the data to be appended.
  size | Size of data to be apppended.

Reallocates an abstract data and copies the specified data buffer into the new handle.

Returns
  0 on success or a negative error code

Definition at line 111 of file data.c.

Referenced by rtnl_u32_add_key().

Here is the caller graph for this function:

## ◆ nl_data_free()

void nl_data_free | ( | struct nl_data * | data | ) |

Free an abstract data object.

Parameters

  data | Abstract data object.

Definition at line 134 of file data.c.

## ◆ nl_data_get()

void * nl_data_get | ( | const struct nl_data * | data | ) |

Get data buffer of abstract data object.

Parameters

  data | Abstract data object.

Returns
  Data buffer or NULL if empty.

Definition at line 154 of file data.c.

Referenced by nl_data_cmp(), nla_put_data(), rtnl_tc_data(), and rtnl_tc_data_peek().

Here is the caller graph for this function:

## ◆ nl_data_get_size()

size_t nl_data_get_size | ( | const struct nl_data * | data | ) |

Get size of data buffer of abstract data object.

Parameters

  data | Abstract data object.

Returns
  Size of data buffer.

Definition at line 166 of file data.c.

Referenced by nl_data_cmp(), and nla_put_data().

Here is the caller graph for this function:

## ◆ nl_data_cmp()

int nl_data_cmp | ( | const struct nl_data * | a,
|  | const struct nl_data * | b )

Compare two abstract data objects.

Parameters

  a | Abstract data object.
  b | Another abstract data object.

Returns
  An integer less than, equal to, or greater than zero if a is found, respectively, to be less than, to match, or be greater than b.

Definition at line 186 of file data.c.

References nl_data_get(), and nl_data_get_size().

Here is the call graph for this function: