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.
 
 
 
 
 
 

64 lines
955 B

#include <sys/stat.h>
#include <string.h>
#include <stdlib.h>
#include "links.h"
static LIST_ENTRY LinkList;
void
InitLinkList(void)
{
InitializeListHead(&LinkList);
}
PLINKFILE
GetLinkByIno(ino_t ino)
{
PLINKFILE p;
for (p = (void *)LinkList.Flink; p != (void *)&LinkList;
p = (void *)p->links.Flink) {
if (p->ino == ino) {
return p;
}
}
return NULL;
}
PLINKFILE
GetLinkByName(char *pchName)
{
PLINKFILE p;
for (p = (PLINKFILE)LinkList.Flink; p != (PLINKFILE)&LinkList;
p = (void *)p->links.Flink) {
if (0 == strcmp(p->name, pchName)) {
return p;
}
}
return NULL;
}
void
AddLinkList(struct stat *pstat, char *pchName)
{
PLINKFILE pl;
char *pch;
pl = malloc(sizeof(*pl));
if (NULL == pl) {
return;
}
pch = strdup(pchName);
if (NULL == pch) {
free(pl);
return;
}
pl->nlink = pstat->st_nlink;
pl->name = pch;
pl->dev = pstat->st_dev;
pl->ino = pstat->st_ino;
InsertTailList(&LinkList, &pl->links);
}