1 #include "lib9.h" 2 #include "logfs.h" 3 #include "local.h" 4 5 enum { 6 PATHMOD = 127 7 }; 8 9 static int 10 compare(Path *f, ulong path) 11 { 12 return f->path == path; 13 } 14 15 static int 16 allocsize(void *key) 17 { 18 USED(key); 19 return sizeof(Path); 20 } 21 22 char * 23 logfspathmapnew(PathMap **pathmapp) 24 { 25 return logfsmapnew(PATHMOD, logfshashulong, (int (*)(void *, void *))compare, allocsize, nil, pathmapp); 26 } 27 28 char * 29 logfspathmapnewentry(PathMap *m, ulong path, Entry *e, Path **pathmapp) 30 { 31 char *errmsg; 32 errmsg = logfsmapnewentry(m, (void *)path, pathmapp); 33 if(errmsg) 34 return errmsg; 35 if(*pathmapp == nil) 36 return nil; 37 (*pathmapp)->path = path; 38 (*pathmapp)->entry = e; 39 return nil; 40 } 41 42 Entry * 43 logfspathmapfinde(PathMap *m, ulong path) 44 { 45 Path *p; 46 p = logfspathmapfindentry(m, path); 47 return p ? p->entry : nil; 48 } 49