Annotation of mstools/posix/samples/psxarc/links.c, revision 1.1.1.1

1.1       root        1: #include <sys/stat.h>
                      2: #include <string.h>
                      3: #include <stdlib.h>
                      4: #include "links.h"
                      5: 
                      6: static LIST_ENTRY LinkList;
                      7: 
                      8: void
                      9: InitLinkList(void)
                     10: {
                     11:        InitializeListHead(&LinkList);
                     12: }
                     13: 
                     14: PLINKFILE
                     15: GetLinkByIno(ino_t ino)
                     16: {
                     17:        PLINKFILE p;
                     18: 
                     19:        for (p = (void *)LinkList.Flink; p != (void *)&LinkList;
                     20:                p = (void *)p->links.Flink) {
                     21:                if (p->ino == ino) {
                     22:                        return p;
                     23:                }
                     24:        }
                     25:        return NULL;
                     26: }
                     27: 
                     28: PLINKFILE
                     29: GetLinkByName(char *pchName)
                     30: {
                     31:        PLINKFILE p;
                     32: 
                     33:        for (p = (PLINKFILE)LinkList.Flink; p != (PLINKFILE)&LinkList;
                     34:                p = (void *)p->links.Flink) {
                     35:                if (0 == strcmp(p->name, pchName)) {
                     36:                        return p;
                     37:                }
                     38:        }
                     39:        return NULL;
                     40: }
                     41: 
                     42: void
                     43: AddLinkList(struct stat *pstat, char *pchName)
                     44: {
                     45:        PLINKFILE pl;
                     46:        char *pch;
                     47: 
                     48:        pl = malloc(sizeof(*pl));
                     49:        if (NULL == pl) {
                     50:                return;
                     51:        }
                     52:        pch = strdup(pchName);
                     53:        if (NULL == pch) {
                     54:                free(pl);
                     55:                return;
                     56:        }
                     57:        
                     58:        pl->nlink = pstat->st_nlink;
                     59:        pl->name = pch;
                     60:        pl->dev = pstat->st_dev;
                     61:        pl->ino = pstat->st_ino;
                     62: 
                     63:        InsertTailList(&LinkList, &pl->links);
                     64: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.