|
|
1.1 ! root 1: #include <sys/types.h> ! 2: ! 3: typedef struct _LIST_ENTRY { ! 4: struct _LIST_ENTRY *Flink; ! 5: struct _LIST_ENTRY *Blink; ! 6: } LIST_ENTRY, *PLIST_ENTRY; ! 7: ! 8: typedef struct _LINKFILE { ! 9: LIST_ENTRY links; ! 10: int nlink; ! 11: char *name; ! 12: dev_t dev; ! 13: ino_t ino; ! 14: } LINKFILE, *PLINKFILE; ! 15: ! 16: #define InsertTailList(ListHead, Entry) \ ! 17: (Entry)->Flink = (ListHead);\ ! 18: (Entry)->Blink = (ListHead)->Blink;\ ! 19: (ListHead)->Blink->Flink = (Entry);\ ! 20: (ListHead)->Blink = (Entry) ! 21: ! 22: #define RemoveEntryList(Entry) {\ ! 23: PLIST_ENTRY _EX_Entry;\ ! 24: _EX_Entry = (Entry);\ ! 25: _EX_Entry->Blink->Flink = _EX_Entry->Flink;\ ! 26: _EX_Entry->Flink->Blink = _EX_Entry->Blink;\ ! 27: } ! 28: ! 29: #define InitializeListHead(ListHead) \ ! 30: ((ListHead)->Flink = (ListHead)->Blink = (ListHead)) ! 31: ! 32: #define IsListEmpty(ListHead) \ ! 33: ((ListHead)->Flink == (ListHead)) ! 34: ! 35: extern PLINKFILE GetLinkByName(char *); ! 36: extern PLINKFILE GetLinkByIno(ino_t); ! 37: struct stat; ! 38: extern void AddLinkList(struct stat *, char *); ! 39: extern void InitLinkList(void);
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.