mirror of
				https://github.com/smaeul/u-boot.git
				synced 2025-10-31 20:18:18 +00:00 
			
		
		
		
	- remove trailing white space, trailing empty lines, C++ comments, etc.
  - split cmd_boot.c (separate cmd_bdinfo.c and cmd_load.c)
* Patches by Kenneth Johansson, 25 Jun 2003:
  - major rework of command structure
    (work done mostly by Michal Cendrowski and Joakim Kristiansen)
		
	
			
		
			
				
	
	
		
			78 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			78 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| #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_ */
 |