17
17
*****************************************************************************/
19
/*******************************************************************//**
23
Created 4/26/2006 Osku Salerma
24
************************************************************************/
19
26
#include "ut0list.h"
21
28
#include "ut0list.ic"
24
/********************************************************************
31
/****************************************************************//**
28
36
ib_list_create(void)
29
37
/*=================*/
32
39
ib_list_t* list = mem_alloc(sizeof(ib_list_t));
41
/********************************************************************
48
/****************************************************************//**
42
49
Create a new list using the given heap. ib_list_free MUST NOT BE CALLED for
43
lists created with this function. */
50
lists created with this function.
46
54
ib_list_create_heap(
47
55
/*================*/
49
mem_heap_t* heap) /* in: memory heap to use */
56
mem_heap_t* heap) /*!< in: memory heap to use */
51
58
ib_list_t* list = mem_heap_alloc(heap, sizeof(ib_list_t));
77
/********************************************************************
78
Add the data to the start of the list. */
84
/****************************************************************//**
85
Add the data to the start of the list.
86
@return new list node */
83
/* out: new list node*/
84
ib_list_t* list, /* in: list */
85
void* data, /* in: data */
86
mem_heap_t* heap) /* in: memory heap to use */
91
ib_list_t* list, /*!< in: list */
92
void* data, /*!< in: data */
93
mem_heap_t* heap) /*!< in: memory heap to use */
88
95
return(ib_list_add_after(list, ib_list_get_first(list), data, heap));
91
/********************************************************************
92
Add the data to the end of the list. */
98
/****************************************************************//**
99
Add the data to the end of the list.
100
@return new list node */
97
/* out: new list node*/
98
ib_list_t* list, /* in: list */
99
void* data, /* in: data */
100
mem_heap_t* heap) /* in: memory heap to use */
105
ib_list_t* list, /*!< in: list */
106
void* data, /*!< in: data */
107
mem_heap_t* heap) /*!< in: memory heap to use */
102
109
return(ib_list_add_after(list, ib_list_get_last(list), data, heap));
105
/********************************************************************
106
Add the data after the indicated node. */
112
/****************************************************************//**
113
Add the data after the indicated node.
114
@return new list node */
109
117
ib_list_add_after(
110
118
/*==============*/
111
/* out: new list node*/
112
ib_list_t* list, /* in: list */
113
ib_list_node_t* prev_node, /* in: node preceding new node (can
119
ib_list_t* list, /*!< in: list */
120
ib_list_node_t* prev_node, /*!< in: node preceding new node (can
115
void* data, /* in: data */
116
mem_heap_t* heap) /* in: memory heap to use */
122
void* data, /*!< in: data */
123
mem_heap_t* heap) /*!< in: memory heap to use */
118
125
ib_list_node_t* node = mem_heap_alloc(heap, sizeof(ib_list_node_t));
159
/********************************************************************
166
/****************************************************************//**
160
167
Remove the node from the list. */
165
ib_list_t* list, /* in: list */
166
ib_list_node_t* node) /* in: node to remove */
172
ib_list_t* list, /*!< in: list */
173
ib_list_node_t* node) /*!< in: node to remove */
168
175
if (node->prev) {
169
176
node->prev->next = node->next;