libnl 3.5.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. More...
struct nl_data * | nl_data_alloc_attr (const struct nlattr *nla)
| Allocate abstract data object based on netlink attribute. More...
struct nl_data * | nl_data_clone (const struct nl_data *src)
| Clone an abstract data object. More...
int | nl_data_append (struct nl_data *data, const void *buf, size_t size)
| Append data to an abstract data object. More...
void | nl_data_free (struct nl_data *data)
| Free an abstract data object. More...

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

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

## 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 51 of file data.c.

Referenced by nl_data_alloc_attr(), and nl_data_clone().

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 85 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 96 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 112 of file data.c.

## ◆ nl_data_free()

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

Free an abstract data object.

Parameters

  data | Abstract data object.

Definition at line 135 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 155 of file data.c.

Referenced by nl_data_cmp(), nla_put_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 167 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 187 of file data.c.

References nl_data_get(), and nl_data_get_size().

Here is the call graph for this function: