Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
U
u-boot-2015.04
Manage
Activity
Members
Code
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Deploy
Releases
Container Registry
Model registry
Analyze
Contributor analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
vesta
u-boot-2015.04
Commits
bdb4a2f0
Commit
bdb4a2f0
authored
22 years ago
by
Wolfgang Denk
Browse files
Options
Downloads
Patches
Plain Diff
Initial revision
parent
c542fb2e
No related branches found
Branches containing commit
No related tags found
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
include/lists.h
+77
-0
77 additions, 0 deletions
include/lists.h
with
77 additions
and
0 deletions
include/lists.h
0 → 100644
+
77
−
0
View file @
bdb4a2f0
#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
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_ */
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment