1/*
2 * Copyright 2008, Ingo Weinhold, ingo_weinhold@gmx.de.
3 * Distributed under the terms of the MIT License.
4 */
5#ifndef NET_ANCILLARY_DATA_H
6#define NET_ANCILLARY_DATA_H
7
8#include <net_stack.h>
9
10
11struct ancillary_data_container;
12
13ancillary_data_container* create_ancillary_data_container();
14void delete_ancillary_data_container(ancillary_data_container* container);
15
16status_t add_ancillary_data(ancillary_data_container* container,
17			const ancillary_data_header* header, const void* data,
18			void (*destructor)(const ancillary_data_header*, void*),
19			void** _allocatedData);
20status_t remove_ancillary_data(ancillary_data_container* container, void* data,
21			bool destroy);
22void* move_ancillary_data(ancillary_data_container* from,
23			ancillary_data_container* to);
24
25void* next_ancillary_data(ancillary_data_container* container,
26			void* previousData, ancillary_data_header* _header);
27
28
29#endif	// NET_ANCILLARY_DATA_H
30