libnl 2.0

Abstract Data

Core

General

struct nl_data * nl_data_alloc (void *buf, size_t size)
 Allocate a new abstract data object.
struct nl_data * nl_data_alloc_attr (struct nlattr *nla)
 Allocate abstract data object based on netlink attribute.
struct nl_data * nl_data_clone (struct nl_data *src)
 Clone an abstract data object.
int nl_data_append (struct nl_data *data, 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 (struct nl_data *data)
 Get data buffer of abstract data object.
size_t nl_data_get_size (struct nl_data *data)
 Get size of data buffer of abstract data object.

Misc

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

Function Documentation

struct nl_data* nl_data_alloc ( void *  buf,
size_t  size 
) [read]
Parameters:
bufData buffer containing the actual data.
sizeSize 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 38 of file data.c.

Referenced by nl_data_alloc_attr(), and nl_data_clone().

struct nl_data* nl_data_alloc_attr ( struct nlattr *  nla) [read]
Parameters:
nlaNetlink 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 72 of file data.c.

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

struct nl_data* nl_data_clone ( struct nl_data *  src) [read]
Parameters:
srcAbstract data object
Returns:
Cloned object or NULL

Definition at line 83 of file data.c.

References nl_data_alloc().

int nl_data_append ( struct nl_data *  data,
void *  buf,
size_t  size 
)
Parameters:
dataAbstract data object.
bufData buffer containing the data to be appended.
sizeSize 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 99 of file data.c.

Referenced by rtnl_u32_add_key().

void nl_data_free ( struct nl_data *  data)
Parameters:
dataAbstract data object.

Definition at line 124 of file data.c.

void* nl_data_get ( struct nl_data *  data)
Parameters:
dataAbstract data object.
Returns:
Data buffer or NULL if empty.

Definition at line 144 of file data.c.

Referenced by nl_data_cmp(), and nla_put_data().

size_t nl_data_get_size ( struct nl_data *  data)
Parameters:
dataAbstract data object.
Returns:
Size of data buffer.

Definition at line 154 of file data.c.

Referenced by nl_data_cmp(), and nla_put_data().

int nl_data_cmp ( struct nl_data *  a,
struct nl_data *  b 
)
Parameters:
aAbstract data object.
bAnother 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 174 of file data.c.

References nl_data_get(), and nl_data_get_size().