Source code of Windows XP (NT5)
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.

39 lines
948 B

  1. #include <sys/types.h>
  2. typedef struct _LIST_ENTRY {
  3. struct _LIST_ENTRY *Flink;
  4. struct _LIST_ENTRY *Blink;
  5. } LIST_ENTRY, *PLIST_ENTRY;
  6. typedef struct _LINKFILE {
  7. LIST_ENTRY links;
  8. int nlink;
  9. char *name;
  10. dev_t dev;
  11. ino_t ino;
  12. } LINKFILE, *PLINKFILE;
  13. #define InsertTailList(ListHead, Entry) \
  14. (Entry)->Flink = (ListHead);\
  15. (Entry)->Blink = (ListHead)->Blink;\
  16. (ListHead)->Blink->Flink = (Entry);\
  17. (ListHead)->Blink = (Entry)
  18. #define RemoveEntryList(Entry) {\
  19. PLIST_ENTRY _EX_Entry;\
  20. _EX_Entry = (Entry);\
  21. _EX_Entry->Blink->Flink = _EX_Entry->Flink;\
  22. _EX_Entry->Flink->Blink = _EX_Entry->Blink;\
  23. }
  24. #define InitializeListHead(ListHead) \
  25. ((ListHead)->Flink = (ListHead)->Blink = (ListHead))
  26. #define IsListEmpty(ListHead) \
  27. ((ListHead)->Flink == (ListHead))
  28. extern PLINKFILE GetLinkByName(char *);
  29. extern PLINKFILE GetLinkByIno(ino_t);
  30. struct stat;
  31. extern void AddLinkList(struct stat *, char *);
  32. extern void InitLinkList(void);