Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OS
U-Boot.Mirror
提交
bdb4a2f0
U
U-Boot.Mirror
项目概览
OS
/
U-Boot.Mirror
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
U
U-Boot.Mirror
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
bdb4a2f0
编写于
11月 03, 2002
作者:
W
wdenk
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Initial revision
上级
c542fb2e
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
77 addition
and
0 deletion
+77
-0
include/lists.h
include/lists.h
+77
-0
未找到文件。
include/lists.h
0 → 100644
浏览文件 @
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_ */
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录