⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lists.h

📁 F:worksip2440a board可启动u-boot-like.tar.gz F:worksip2440a board可启动u-boot-like.tar.gz
💻 H
字号:
#ifndef _LISTS_H_#define _LISTS_H_#define LIST_START    	-1      /* Handy Constants that substitute for item positions */#define LIST_END      	0       /* END_OF_LIST means one past current length of list when */				/* inserting. Otherwise it refers the last item in the list. */typedef struct    {    void            *ptr;    unsigned int    size;    } HandleRecord;typedef void **Handle;typedef int (*CompareFunction)(void *data1, void *data2) ;typedef struct ListStructTag    {    int signature;              /* debugging aid */    int percentIncrease;        /* %of current size to increase by when list is out of space */    int minNumItemsIncrease;    /* fixed number of items to increase by when list is out of space */    int listSize;               /* number of items than can fit in the currently allocated memory */    int itemSize;               /* the size of each item in the list (same for every item) */    int numItems;               /* number of items currently in the list */    unsigned char itemList[1];  /* resizable array of list elements */    } ListStruct;typedef struct ListStructTag **list_t;        /* The list abstract data type */typedef int ( * ListApplicationFunc)(int index, void *ptrToItem, void *callbackData);/* Basic List Operations */list_t	ListCreate(int elementSize);int     ListNumItems(list_t list);int     ListInsertItem(list_t list, void *ptrToItem, int itemPosition);int     ListInsertItems(list_t list, void *ptrToItems, int firstItemPosition, int numItemsToInsert);void    ListDispose(list_t list);void    *ListGetPtrToItem(list_t list, int itemPosition);void    ListRemoveItem(list_t list, void *itemDestination, int itemPosition);void    ListRemoveItems(list_t list, void *itemsDestination, int firstItemPosition, int numItemsToRemove);#if 0	/* rarely ever used; kept here for reference just in case ... */void    ListDisposePtrList(list_t list);void    ListGetItem(list_t list, void *itemDestination, int itemPosition);void    ListReplaceItem(list_t list, void *ptrToItem, int itemPosition);void    ListRemoveItem(list_t list, void *itemDestination, int itemPosition);void    ListGetItems(list_t list, void *itemsDestination, int firstItemPosition, int numItemsToGet);void    ListReplaceItems(list_t list, void *ptrToItems, int firstItemPosition, int numItemsToReplace);void    ListRemoveItems(list_t list, void *itemsDestination, int firstItemPosition, int numItemsToRemove);list_t  ListCopy(list_t originalList);int     ListAppend(list_t list1, list_t list2);void    ListClear(list_t list);int     ListEqual(list_t list1, list_t list2);int     ListInsertInOrder(list_t list, void *ptrToItem, CompareFunction compareFunction);void    *ListGetDataPtr(list_t list);int     ListApplyToEach(list_t list, int ascending, ListApplicationFunc funcToApply, void *callbackData);/* List Searching and Sorting */int     ListFindItem(list_t list, void *ptrToItem, int startingPosition, CompareFunction compareFunction);void    ListRemoveDuplicates(list_t list, CompareFunction compareFunction);int     ListBinSearch(list_t list, void *itemPtr, CompareFunction compareFunction);void    ListQuickSort(list_t list, CompareFunction compareFunction);void    ListHeapSort(list_t list, CompareFunction compareFunction);void    ListInsertionSort(list_t list, CompareFunction compareFunction);int     ListIsSorted(list_t list, CompareFunction compareFunction);/*  Advanced List Functions */void	ListSetAllocationPolicy(list_t list, int minItemsPerAlloc, int percentIncreasePerAlloc);void    ListCompact(list_t list);int     ListPreAllocate(list_t list, int numItems);int     ListGetItemSize(list_t list);int     GetIntListFromParmInfo(va_list parmInfo, int numIntegers, list_t *integerList);int     ListInsertAfterItem(list_t list, void *ptrToItem, void *ptrToItemToInsertAfter, CompareFunction compareFunction);int     ListInsertBeforeItem(list_t list, void *ptrToItem, void *ptrToItemToInsertBefore, CompareFunction compareFunction);#endif /* 0 */#endif	/* _LISTS_H_ */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -