3 /* Copyright (C) 2009 Trend Micro Inc.
6 * This program is a free software; you can redistribute it
7 * and/or modify it under the terms of the GNU General Public
8 * License (version 2) as published by the FSF - Free Software
18 typedef struct _OSListNode
20 struct _OSListNode *next;
21 struct _OSListNode *prev;
26 typedef struct _OSList
28 OSListNode *first_node;
29 OSListNode *last_node;
35 void (*free_data_function)(void *data);
39 OSList *OSList_Create();
41 int OSList_SetMaxSize(OSList *list, int max_size);
42 int OSList_SetFreeDataPointer(OSList *list, void *free_data_function);
44 OSListNode *OSList_GetFirstNode(OSList *);
45 OSListNode *OSList_GetLastNode(OSList *);
46 OSListNode *OSList_GetPrevNode(OSList *);
47 OSListNode *OSList_GetNextNode(OSList *);
48 OSListNode *OSList_GetCurrentlyNode(OSList *list);
50 void OSList_DeleteCurrentlyNode(OSList *list);
51 void OSList_DeleteThisNode(OSList *list, OSListNode *thisnode);
52 void OSList_DeleteOldestNode(OSList *list);
54 int OSList_AddData(OSList *list, void *data);