source: MondoRescue/branches/2.2.9/mondo/src/include/mr_list.h@ 3320

Last change on this file since 3320 was 3320, checked in by Bruno Cornec, 9 years ago
  • Re-add (thanks git BTW) the 2.2.9 branch which had been destroyed in the move to 3.0
  • Property svn:eol-style set to native
File size: 1.5 KB
Line 
1/*
2 * $Id$
3 *
4 * Header file of mr_list.c: a set of function manipulating lists
5 * Provided under the GPL v2
6 */
7
8#ifndef MR_LIST_H
9#define MR_LIST_H
10
11/* Data structure */
12struct mr_list {
13 /**
14 * Pointers to first and last components of the list
15 */
16 struct mr_list_elt *first;
17 struct mr_list_elt *last;
18};
19
20struct mr_list_elt {
21
22 /* Content of the element in the list */
23 void *data;
24
25 /* Function to unallocate memory contained in data */
26 void (*mr_free_data)(void *data);
27
28 /* The neighbours (pointers to next and previous) */
29 struct mr_list_elt *next;
30 struct mr_list_elt *prev;
31};
32
33
34/* functions (public methods) */
35
36struct mr_list *mr_list_alloc(void);
37struct mr_list_elt *mr_list_alloc_elt(void *data, void (*mr_free_data)(void *data));
38void mr_list_free(struct mr_list *list);
39void mr_list_free_elt(struct mr_list_elt *elt);
40int mr_list_length(struct mr_list *list);
41void mr_list_add_elt_first(struct mr_list *list, struct mr_list_elt *elt);
42void mr_list_add_elt_last(struct mr_list *list, struct mr_list_elt *elt);
43void mr_list_add_elt_after(struct mr_list *list, struct mr_list_elt *ref, struct mr_list_elt *elt);
44void mr_list_add_elt_before(struct mr_list *list, struct mr_list_elt *ref, struct mr_list_elt *elt);
45void mr_list_del_elt_first(struct mr_list *list);
46void mr_list_del_elt_last(struct mr_list *list);
47void mr_list_del_elt_after(struct mr_list *list, struct mr_list_elt *ref);
48void mr_list_del_elt_before(struct mr_list *list, struct mr_list_elt *ref);
49
50#endif /* MR_LIST_H */
Note: See TracBrowser for help on using the repository browser.