ancillary_data
ancillary_data *ancillaryData = ancillary_data::FromData(data);
ancillary_data *ancillaryData = from->data_list.Head();
struct ancillary_data : DoublyLinkedListLinkImpl<ancillary_data> {
ancillary_data *ancillaryData;
ancillaryData = ancillary_data::FromData(previousData);
return (char*)this + _ALIGN(sizeof(ancillary_data));
ancillary_data *ancillaryData = from->data_list.Head();
void *dataBuffer = malloc(_ALIGN(sizeof(ancillary_data)) + ancillaryData->header.len);
ancillary_data *clone = new(dataBuffer) ancillary_data;
static ancillary_data* FromData(void* data)
return (ancillary_data*)((char*)data - _ALIGN(sizeof(ancillary_data)));
typedef DoublyLinkedList<ancillary_data> ancillary_data_list;
while (ancillary_data* data = container->data_list.RemoveHead()) {
void *dataBuffer = malloc(_ALIGN(sizeof(ancillary_data)) + header->len);
ancillary_data *ancillaryData = new(dataBuffer) ancillary_data;
buffer->ancillary_data = NULL;
delete_ancillary_data_container(buffer->ancillary_data);
ancillary_data_container* ancillary_data;
((net_buffer_private*)buffer)->ancillary_data = container;
return ((net_buffer_private*)buffer)->ancillary_data;
if (from->ancillary_data == NULL)
if (to->ancillary_data == NULL) {
to->ancillary_data = from->ancillary_data;
from->ancillary_data = NULL;
return next_ancillary_data(to->ancillary_data, NULL, NULL);
void* data = move_ancillary_data(from->ancillary_data,
to->ancillary_data);
delete_ancillary_data_container(from->ancillary_data);
from->ancillary_data = NULL;
new(&buffer->ancillary_data) ancillary_data_list;
struct ancillary_data : DoublyLinkedListLinkImpl<ancillary_data> {
void *dataBuffer = malloc(_ALIGN(sizeof(ancillary_data)) + header->len);
return (char*)this + _ALIGN(sizeof(ancillary_data));
ancillary_data *ancillaryData = new(dataBuffer) ancillary_data;
buffer->ancillary_data.Add(ancillaryData);
static ancillary_data* FromData(void* data)
ancillary_data *ancillaryData = ancillary_data::FromData(data);
buffer->ancillary_data.Remove(ancillaryData);
return (ancillary_data*)((char*)data - _ALIGN(sizeof(ancillary_data)));
ancillary_data *ancillaryData = from->ancillary_data.Head();
to->ancillary_data.MoveFrom(&from->ancillary_data);
ancillary_data *ancillaryData;
ancillaryData = buffer->ancillary_data.Head();
ancillaryData = ancillary_data::FromData(previousData);
ancillaryData = buffer->ancillary_data.GetNext(ancillaryData);
typedef DoublyLinkedList<ancillary_data> ancillary_data_list;
ancillary_data_list ancillary_data;