So you maintain two lists - one of free items, the first entry pointed to by
FreeList and the other at pArray[0].Entry.Next, right? A comment or two
wouldn't hurt, too - it would make it easier to review the code.
>+typedef struct _INDEX_LIST_ENTRY
>+{
>+ SIZE_T Next;
>+ SIZE_T Prev;
>+
>+} INDEX_LIST_ENTRY;
Not sure what the INDEX_LIST_ENTRY structure does for you since you never use
it except to make your notation Entry.Next rather than simply Next.
>>+static void *IndexListRemoveFirst(INDEX_LIST *pIndexList)
>+{
>+ return IndexListRemove(pIndexList, pIndexList->pArray[0].Entry.Next);
>+}
Doesn't this remove the last entry added to the index, not the first?
Serialization must be provided by the caller?
-Fab
_______________________________________________
ofw mailing list
[email protected]
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ofw