Windows NT 4.0 source code leak
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

46 lines
1.2 KiB

4 years ago
  1. /* list.h */
  2. #define MAXLISTS 500
  3. // this means that total of all seqs and tracks <= 500
  4. #define NULLLIST ((DWORD)-1)
  5. typedef DWORD ListHandle;
  6. typedef struct Node
  7. {
  8. struct Node *next; // ptr to next element in list
  9. HLOCAL handle; // handle to self
  10. BYTE data[]; // where the data goes
  11. } Node;
  12. // below: size of stuff preceeding data in "Node" structure (for mem alloc)
  13. #define NODEHDRSIZE sizeof(Node)
  14. typedef struct l
  15. {
  16. DWORD nodeSize;
  17. BOOL fLocked;
  18. Node *firstNode;
  19. } List;
  20. PUBLIC ListHandle FAR PASCAL List_Create(DWORD nodeSize, DWORD flags);
  21. PUBLIC NPSTR FAR PASCAL List_Allocate(ListHandle lh);
  22. PUBLIC void FAR PASCAL List_Deallocate(ListHandle lh, NPSTR node);
  23. PUBLIC VOID FAR PASCAL List_Destroy(ListHandle lh);
  24. PUBLIC VOID FAR PASCAL List_Attach_Tail(ListHandle lh, NPSTR node);
  25. PUBLIC NPSTR FAR PASCAL List_Get_First(ListHandle lh);
  26. PUBLIC NPSTR FAR PASCAL List_Get_Next(ListHandle lh, VOID* node);
  27. #ifdef DEBUG
  28. PUBLIC VOID FAR PASCAL List_Lock(ListHandle lh);
  29. PUBLIC VOID FAR PASCAL List_Unlock(ListHandle lh);
  30. #else
  31. #define List_Lock(lh)
  32. #define List_Unlock(lh)
  33. #endif