Annotation of mstools/posix/psxarc/links.c, revision 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.