1 /* @(#) $Id: ./src/headers/list_op.h, 2011/09/08 dcid Exp $
4 /* Copyright (C) 2009 Trend Micro Inc.
7 * This program is a free software; you can redistribute it
8 * and/or modify it under the terms of the GNU General Public
9 * License (version 2) as published by the FSF - Free Software
19 typedef struct _OSListNode
21 struct _OSListNode *next;
22 struct _OSListNode *prev;
27 typedef struct _OSList
29 OSListNode *first_node;
30 OSListNode *last_node;
36 void (*free_data_function)(void *data);
40 OSList *OSList_Create();
42 int OSList_SetMaxSize(OSList *list, int max_size);
43 int OSList_SetFreeDataPointer(OSList *list, void *free_data_function);
45 OSListNode *OSList_GetFirstNode(OSList *);
46 OSListNode *OSList_GetLastNode(OSList *);
47 OSListNode *OSList_GetPrevNode(OSList *);
48 OSListNode *OSList_GetNextNode(OSList *);
49 OSListNode *OSList_GetCurrentlyNode(OSList *list);
51 void OSList_DeleteCurrentlyNode(OSList *list);
52 void OSList_DeleteThisNode(OSList *list, OSListNode *thisnode);
53 void OSList_DeleteOldestNode(OSList *list);
55 int OSList_AddData(OSList *list, void *data);