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

📄 lists.h

📁 An complete pmp solution for mattel juicebox player. Using crossworks for arm.
💻 H
字号:
#ifndef LISTS_H
#define LISTS_H

#include "stdint.h"
#include "malloc.h"
#include "qsort.h"
#include "string.h"

#define dIncludeStaticList
//#define dIncludeLinkedList
#define dIncludeStringList

//===================================================================
//                        Static list
//-------------------------------------------------------------------
#ifdef dIncludeStaticList
//i32 wCompare (void *a, void *b);
typedef struct xTStaticList
  {
  u32 *pxItems;
  u32 ulLength;
  u32 ulMaxLength;
  i16 (*wCompare)(void*, void*);
  } xTStaticList;

//-------------------------------------------------------------------
void wStaticListAdd (xTStaticList *pxList, void *pvValue);
void wStaticSortedListAdd (xTStaticList *pxList, void *pvValue);
void wStaticListRemove (xTStaticList *pxList, u32 ulPosition);
void wStaticSortedListRemove (xTStaticList *pxList, u32 ulPosition);
void wStaticListSort (xTStaticList *pxList);
#endif
//===================================================================
//                        Linked list
//-------------------------------------------------------------------
#ifdef dIncludeLinkedList
typedef struct xTListItem
  {
  void *pvValue;
  void *pvNext;
  void *pvPrevious;
  }xTListItem;

typedef struct xTLinkedList
  {
  u32 ulLength;
  xTListItem *pxListStart;
  xTListItem *pxListEnd;
  }xTLinkedList;

void wListAdd (xTLinkedList *pxList, void *pvValue);
void wListRemove (xTLinkedList *pxList, xTListItem *xItem);
#endif
//===================================================================
//                          String List
//-------------------------------------------------------------------
#ifdef dIncludeStringList
#ifndef dIncludeStaticList
#define dIncludeStaticList
#endif
//#define wCompare(a, b) srtcmp((char*)a, (char*)b)
//-------------------------------------------------------------------
typedef struct xTStringList
  {
  u32 *pxItems;
  u32 ulLength;
  u32 ulMaxLength;
  i16 (*wCompare)(void*, void*);
  }xTStringList;

void wStringListAdd (xTStringList *pxList, char *pvValue);
void wStringSortedListAdd (xTStringList *pxList, char *pvValue);
void wStringListRemove (xTStringList *pxList, u32 ulPosition);
void wStringSortedListRemove (xTStringList *pxList, u32 ulPosition);
void wStringListSort (xTStringList *pxList);
void wStringListClear(xTStringList *pxList);
void wStringListReadFromBuffer (xTStringList *pxList, u32 ulBufferLength, u08 *sBuffer);

#endif
//-------------------------------------------------------------------
#endif

⌨️ 快捷键说明

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