xref: /plan9/sys/src/cmd/aquarela/smbfns.h (revision 86a363cef6b6fa09d9392d8587eef2e5ef8d657e)
18ccd4a63SDavid du Colombier ushort smbnhgets(uchar *);
28ccd4a63SDavid du Colombier ulong smbnhgetl(uchar *);
38ccd4a63SDavid du Colombier vlong smbnhgetv(uchar *);
48ccd4a63SDavid du Colombier void smbhnputs(uchar *, ushort);
58ccd4a63SDavid du Colombier void smbhnputl(uchar *, ulong);
68ccd4a63SDavid du Colombier void smbhnputv(uchar *, vlong);
78ccd4a63SDavid du Colombier 
88ccd4a63SDavid du Colombier SMBPROCESSFN smbnegotiate;
98ccd4a63SDavid du Colombier SMBPROCESSFN smbcomsessionsetupandx;
108ccd4a63SDavid du Colombier SMBPROCESSFN smbcomtreeconnectandx;
118ccd4a63SDavid du Colombier SMBPROCESSFN smbcomtransaction;
128ccd4a63SDavid du Colombier SMBPROCESSFN smbcomcheckdirectory;
138ccd4a63SDavid du Colombier SMBPROCESSFN smbcomtransaction2;
148ccd4a63SDavid du Colombier SMBPROCESSFN smbcomecho;
158ccd4a63SDavid du Colombier SMBPROCESSFN smbcomopenandx;
16*86a363ceSDavid du Colombier SMBPROCESSFN smbcomcreate;
178ccd4a63SDavid du Colombier SMBPROCESSFN smbcomopen;
188ccd4a63SDavid du Colombier SMBPROCESSFN smbcomclose;
198ccd4a63SDavid du Colombier SMBPROCESSFN smbcomreadandx;
20*86a363ceSDavid du Colombier SMBPROCESSFN smbcomwriteandx;
218ccd4a63SDavid du Colombier SMBPROCESSFN smbcomqueryinformation;
228ccd4a63SDavid du Colombier SMBPROCESSFN smbcomfindclose2;
238ccd4a63SDavid du Colombier SMBPROCESSFN smbcomtreedisconnect;
248ccd4a63SDavid du Colombier SMBPROCESSFN smbcomqueryinformation2;
258ccd4a63SDavid du Colombier SMBPROCESSFN smbcomdelete;
268ccd4a63SDavid du Colombier SMBPROCESSFN smbcomflush;
278ccd4a63SDavid du Colombier SMBPROCESSFN smbcomwrite;
288ccd4a63SDavid du Colombier SMBPROCESSFN smbcomsetinformation2;
298ccd4a63SDavid du Colombier SMBPROCESSFN smbcomcreatedirectory;
308ccd4a63SDavid du Colombier SMBPROCESSFN smbcomdeletedirectory;
318ccd4a63SDavid du Colombier SMBPROCESSFN smbcomrename;
328ccd4a63SDavid du Colombier SMBPROCESSFN smbcomlockingandx;
338ccd4a63SDavid du Colombier SMBPROCESSFN smbcomsetinformation;
348ccd4a63SDavid du Colombier SMBPROCESSFN smbcomntcreateandx;
358ccd4a63SDavid du Colombier 
368ccd4a63SDavid du Colombier void *smbemalloc(ulong size);
378ccd4a63SDavid du Colombier void *smbemallocz(ulong size, int clear);
388ccd4a63SDavid du Colombier void smberealloc(void **pp, ulong size);
398ccd4a63SDavid du Colombier char *smbestrdup(char *s);
408ccd4a63SDavid du Colombier void smbfree(void **pp);
418ccd4a63SDavid du Colombier 
428ccd4a63SDavid du Colombier int smbcheckwordcount(char *name, SmbHeader *h, ushort wordcount);
438ccd4a63SDavid du Colombier int smbcheckwordandbytecount(char *name, SmbHeader *h, ushort wordcount, uchar **bdatap, uchar **edatap);
448ccd4a63SDavid du Colombier int smbsendunicode(SmbPeerInfo *i);
458ccd4a63SDavid du Colombier 
468ccd4a63SDavid du Colombier char *smbstringdup(SmbHeader *h, uchar *base, uchar **bdatap, uchar *edata);
478ccd4a63SDavid du Colombier char *smbstrdup(uchar **bdatap, uchar *edata);
488ccd4a63SDavid du Colombier char *smbstrinline(uchar **bdatap, uchar *edata);
498ccd4a63SDavid du Colombier int smbstrlen(char *string);
508ccd4a63SDavid du Colombier int smbstringlen(SmbPeerInfo *i, char *string);
518ccd4a63SDavid du Colombier void smbstringprint(char **p, char *fmt, ...);
528ccd4a63SDavid du Colombier 
538ccd4a63SDavid du Colombier int smbucs2len(char *string);
548ccd4a63SDavid du Colombier int smbstringput(SmbPeerInfo *p, ulong flags, uchar *buf, ushort n, ushort maxlen, char *string);
558ccd4a63SDavid du Colombier int smbstrput(ulong flags, uchar *buf, ushort n, ushort maxlen, char *string);
568ccd4a63SDavid du Colombier int smbstrnput(uchar *buf, ushort n, ushort maxlen, char *string, ushort size, int upcase);
578ccd4a63SDavid du Colombier int smbucs2put(ulong flags, uchar *buf, ushort n, ushort maxlen, char *string);
588ccd4a63SDavid du Colombier 
598ccd4a63SDavid du Colombier void smbresponseinit(SmbSession *s, ushort maxlen);
608ccd4a63SDavid du Colombier int smbresponsealignl2(SmbSession *s, int l2a);
618ccd4a63SDavid du Colombier ushort smbresponseoffset(SmbSession *s);
628ccd4a63SDavid du Colombier int smbresponseputheader(SmbSession *s, SmbHeader *h, uchar errclass, ushort error);
638ccd4a63SDavid du Colombier int smbresponseputandxheader(SmbSession *s, SmbHeader *h, ushort andxcommand, ulong *andxoffsetfixup);
648ccd4a63SDavid du Colombier int smbresponseputb(SmbSession *s, uchar b);
658ccd4a63SDavid du Colombier int smbresponseputs(SmbSession *s, ushort s);
668ccd4a63SDavid du Colombier int smbresponseputl(SmbSession *s, ulong l);
678ccd4a63SDavid du Colombier int smbresponseoffsetputs(SmbSession *s, ushort offset, ushort s);
688ccd4a63SDavid du Colombier int smbresponseputstring(SmbSession *s, int mustalign, char *string);
698ccd4a63SDavid du Colombier int smbresponseputstr(SmbSession *s, char *string);
708ccd4a63SDavid du Colombier SmbProcessResult smbresponsesend(SmbSession *s);
718ccd4a63SDavid du Colombier int smbresponseputerror(SmbSession *s, SmbHeader *h, uchar errclass, ushort error);
728ccd4a63SDavid du Colombier int smbresponseskip(SmbSession *s, ushort amount);
738ccd4a63SDavid du Colombier ushort smbresponsespace(SmbSession *s);
748ccd4a63SDavid du Colombier void smbresponsereset(SmbSession *s);
758ccd4a63SDavid du Colombier int smbresponsecpy(SmbSession *s, uchar *data, ushort datalen);
768ccd4a63SDavid du Colombier 
778ccd4a63SDavid du Colombier void smbtreedisconnect(SmbSession *s, SmbTree *t);
788ccd4a63SDavid du Colombier void smbtreedisconnectbyid(SmbSession *s, ushort id);
798ccd4a63SDavid du Colombier SmbTree *smbtreeconnect(SmbSession *s, SmbService *serv);
808ccd4a63SDavid du Colombier int smbchaincommand(SmbSession *s, SmbHeader *h, ulong andxfixupoffset, uchar cmd, ushort offset, SmbBuffer *b);
818ccd4a63SDavid du Colombier 
828ccd4a63SDavid du Colombier SmbService *smbservicefind(SmbSession *s, char *path, char *service, uchar *errclassp, ushort *errorp);
838ccd4a63SDavid du Colombier void smbserviceput(SmbService *serv);
848ccd4a63SDavid du Colombier void smbserviceget(SmbService *serv);
858ccd4a63SDavid du Colombier 
868ccd4a63SDavid du Colombier int smbrap2(SmbSession *s);
878ccd4a63SDavid du Colombier 
888ccd4a63SDavid du Colombier void smbglobalsguess(int client);
898ccd4a63SDavid du Colombier 
908ccd4a63SDavid du Colombier SmbBuffer *smbbuffernew(ulong maxlen);
918ccd4a63SDavid du Colombier void smbbufferfree(SmbBuffer **bp);
928ccd4a63SDavid du Colombier SmbBuffer *smbbufferinit(void *base, void *bdata, ulong blen);
938ccd4a63SDavid du Colombier ulong smbbufferwriteoffset(SmbBuffer *s);
948ccd4a63SDavid du Colombier ulong smbbufferwritemaxoffset(SmbBuffer *s);
958ccd4a63SDavid du Colombier ulong smbbufferreadoffset(SmbBuffer *s);
968ccd4a63SDavid du Colombier void *smbbufferwritepointer(SmbBuffer *s);
978ccd4a63SDavid du Colombier void *smbbufferreadpointer(SmbBuffer *s);
988ccd4a63SDavid du Colombier int smbbufferputheader(SmbBuffer *s, SmbHeader *h, SmbPeerInfo *p);
998ccd4a63SDavid du Colombier int smbbufferputandxheader(SmbBuffer *s, SmbHeader *h, SmbPeerInfo *p, uchar andxcommand, ulong *andxoffsetfixup);
1008ccd4a63SDavid du Colombier int smbbufferputb(SmbBuffer *s, uchar b);
1018ccd4a63SDavid du Colombier int smbbufferputs(SmbBuffer *s, ushort s);
1028ccd4a63SDavid du Colombier int smbbufferputl(SmbBuffer *s, ulong l);
1038ccd4a63SDavid du Colombier int smbbufferoffsetputs(SmbBuffer *s, ulong offset, ushort s);
1048ccd4a63SDavid du Colombier int smbbufferputstring(SmbBuffer *b, SmbPeerInfo *p, ulong flags, char *string);
1058ccd4a63SDavid du Colombier int smbbufferpututstring(SmbBuffer *b, SmbPeerInfo *p, int mustalign, char *string);
1068ccd4a63SDavid du Colombier int smbbufferputucs2(SmbBuffer *b, int mustalign, char *string);
1078ccd4a63SDavid du Colombier int smbbufferputstr(SmbBuffer *s, char *string);
1088ccd4a63SDavid du Colombier int smbbufferputstrn(SmbBuffer *s, char *string, int len, int upcase);
1098ccd4a63SDavid du Colombier int smbbufferputerror(SmbBuffer *s, SmbHeader *h, SmbPeerInfo *p, uchar errclass, ushort error);
1108ccd4a63SDavid du Colombier int smbbufferskip(SmbBuffer *s, ulong amount);
1118ccd4a63SDavid du Colombier ulong smbbufferspace(SmbBuffer *s);
1128ccd4a63SDavid du Colombier void smbbufferreset(SmbBuffer *s);
1138ccd4a63SDavid du Colombier int smbbufferputbytes(SmbBuffer *s, void *data, ulong datalen);
1148ccd4a63SDavid du Colombier int smbbuffergetbytes(SmbBuffer *b, void *buf, ulong len);
1158ccd4a63SDavid du Colombier void smbbuffersetreadlen(SmbBuffer *b, ulong len);
1168ccd4a63SDavid du Colombier int smbbuffertrimreadlen(SmbBuffer *b, ulong len);
1178ccd4a63SDavid du Colombier ulong smbbufferwritespace(SmbBuffer *b);
1188ccd4a63SDavid du Colombier int smbbuffergets(SmbBuffer *b, ushort *sp);
1198ccd4a63SDavid du Colombier int smbbuffergetstr(SmbBuffer *b, ulong flags, char **sp);
1208ccd4a63SDavid du Colombier int smbbuffergetstrinline(SmbBuffer *b, char **sp);
1218ccd4a63SDavid du Colombier int smbbuffergetstrn(SmbBuffer *b, ushort size, char **sp);
1228ccd4a63SDavid du Colombier int smbbuffergetstring(SmbBuffer *b, SmbHeader *h, ulong flags, char **sp);
1238ccd4a63SDavid du Colombier int smbbuffergetucs2(SmbBuffer *b, ulong flags, char **sp);
1248ccd4a63SDavid du Colombier void *smbbufferpointer(SmbBuffer *b, ulong offset);
1258ccd4a63SDavid du Colombier int smbbuffergetb(SmbBuffer *b, uchar *bp);
1268ccd4a63SDavid du Colombier int smbbuffergetl(SmbBuffer *b, ulong *lp);
1278ccd4a63SDavid du Colombier int smbbuffergetv(SmbBuffer *b, vlong *vp);
1288ccd4a63SDavid du Colombier ulong smbbufferreadspace(SmbBuffer *b);
1298ccd4a63SDavid du Colombier void smbbufferwritelimit(SmbBuffer *b, ulong limit);
1308ccd4a63SDavid du Colombier int smbbufferreadskipto(SmbBuffer *b, ulong offset);
1318ccd4a63SDavid du Colombier int smbbufferpushreadlimit(SmbBuffer *b, ulong offset);
1328ccd4a63SDavid du Colombier int smbbufferpopreadlimit(SmbBuffer *b);
1338ccd4a63SDavid du Colombier int smbbufferalignl2(SmbBuffer *b, int al2);
1348ccd4a63SDavid du Colombier int smbbufferwritebackup(SmbBuffer *b, ulong offset);
1358ccd4a63SDavid du Colombier int smbbufferreadbackup(SmbBuffer *b, ulong offset);
1368ccd4a63SDavid du Colombier int smbbufferfixuprelatives(SmbBuffer *b, ulong fixupoffset);
1378ccd4a63SDavid du Colombier int smbbufferfixuprelativel(SmbBuffer *b, ulong fixupoffset);
1388ccd4a63SDavid du Colombier int smbbufferfixuprelativeinclusivel(SmbBuffer *b, ulong fixupoffset);
1398ccd4a63SDavid du Colombier int smbbufferfixupabsolutes(SmbBuffer *b, ulong fixupoffset);
1408ccd4a63SDavid du Colombier int smbbufferfixupabsolutel(SmbBuffer *b, ulong fixupoffset);
1418ccd4a63SDavid du Colombier int smbbufferfixupl(SmbBuffer *b, ulong fixupoffset, ulong val);
1428ccd4a63SDavid du Colombier int smbbufferputv(SmbBuffer *b, vlong v);
1438ccd4a63SDavid du Colombier int smbbufferputack(SmbBuffer *b, SmbHeader *h, SmbPeerInfo *p);
1448ccd4a63SDavid du Colombier int smbbufferfill(SmbBuffer *b, uchar c, ulong len);
1458ccd4a63SDavid du Colombier int smbbufferoffsetgetb(SmbBuffer *b, ulong offset, uchar *bp);
1468ccd4a63SDavid du Colombier int smbbuffercopy(SmbBuffer *to, SmbBuffer *from, ulong amount);
1478ccd4a63SDavid du Colombier int smbbufferoffsetcopystr(SmbBuffer *b, ulong offset, char *buf, int buflen, int *lenp);
1488ccd4a63SDavid du Colombier 
1498ccd4a63SDavid du Colombier SmbClient *smbconnect(char *to, char *share, char **errmsgp);
1508ccd4a63SDavid du Colombier void smbclientfree(SmbClient *s);
1518ccd4a63SDavid du Colombier int smbsuccess(SmbHeader *h, char **errmsgp);
1528ccd4a63SDavid du Colombier 
1538ccd4a63SDavid du Colombier int smbtransactiondecodeprimary(SmbTransaction *t, SmbHeader *h, uchar *pdata, SmbBuffer *b, char **errmsgp);
1548ccd4a63SDavid du Colombier int smbtransactiondecodeprimary2(SmbTransaction *t, SmbHeader *h, uchar *pdata, SmbBuffer *b, char **errmsgp);
1558ccd4a63SDavid du Colombier void smbtransactionfree(SmbTransaction *t);
1568ccd4a63SDavid du Colombier int smbtransactionencoderesponse(SmbTransaction *t, SmbHeader *h, SmbPeerInfo *p, SmbBuffer *ob, char **errmsgp);
1578ccd4a63SDavid du Colombier int smbtransactionencoderesponse2(SmbTransaction *t, SmbHeader *h, SmbPeerInfo *p, SmbBuffer *ob, char **errmsgp);
1588ccd4a63SDavid du Colombier int smbtransactionencodeprimary(SmbTransaction *t, SmbHeader *h, SmbPeerInfo *p, SmbBuffer *ob,
1598ccd4a63SDavid du Colombier 	uchar *wordcountp, ushort *bytecountp, char **errmsgp);
1608ccd4a63SDavid du Colombier int smbtransactionencodeprimary2(SmbTransaction *t, SmbHeader *h, SmbPeerInfo *p, SmbBuffer *ob,
1618ccd4a63SDavid du Colombier 	uchar *wordcountp, ushort *bytecountp, char **errmsgp);
1628ccd4a63SDavid du Colombier int smbtransactiondecoderesponse(SmbTransaction *t, SmbHeader *h, uchar *pdata, SmbBuffer *b, char **errmsgp);
1638ccd4a63SDavid du Colombier int smbtransactiondecoderesponse2(SmbTransaction *t, SmbHeader *h, uchar *pdata, SmbBuffer *b, char **errmsgp);
1648ccd4a63SDavid du Colombier int smbtransactionclientsend(void *magic, SmbBuffer *ob, char **errmsgp);
1658ccd4a63SDavid du Colombier int smbtransactionclientreceive(void *magic, SmbBuffer *ib, char **errmsgp);
1668ccd4a63SDavid du Colombier 
1678ccd4a63SDavid du Colombier int smbtransactionexecute(SmbTransaction *t, SmbHeader *h, SmbPeerInfo *p,
1688ccd4a63SDavid du Colombier 	SmbBuffer *ob, SmbTransactionMethod *method, void *magic, SmbHeader *rh, char **errmsgp);
1698ccd4a63SDavid du Colombier int smbtransactionrespond(SmbTransaction *t, SmbHeader *h, SmbPeerInfo *p, SmbBuffer *ob,
1708ccd4a63SDavid du Colombier 	SmbTransactionMethod *method, void *magic, char **errmsgp);
1718ccd4a63SDavid du Colombier 
1728ccd4a63SDavid du Colombier SmbProcessResult smbtrans2findfirst2(SmbSession *s, SmbHeader *h);
1738ccd4a63SDavid du Colombier SmbProcessResult smbtrans2findnext2(SmbSession *s, SmbHeader *h);
1748ccd4a63SDavid du Colombier SmbProcessResult smbtrans2queryfileinformation(SmbSession *s, SmbHeader *h);
1758ccd4a63SDavid du Colombier SmbProcessResult smbtrans2queryfsinformation(SmbSession *s, SmbHeader *h);
1768ccd4a63SDavid du Colombier SmbProcessResult smbtrans2querypathinformation(SmbSession *s, SmbHeader *h);
1778ccd4a63SDavid du Colombier SmbProcessResult smbtrans2setfileinformation(SmbSession *s, SmbHeader *h);
178*86a363ceSDavid du Colombier SmbProcessResult smbtrans2setpathinformation(SmbSession *s, SmbHeader *h);
1798ccd4a63SDavid du Colombier 
1808ccd4a63SDavid du Colombier SmbIdMap *smbidmapnew(void);
1818ccd4a63SDavid du Colombier long smbidmapadd(SmbIdMap *m, void *p);
1828ccd4a63SDavid du Colombier void smbidmapremovebyid(SmbIdMap *m, long id);
1838ccd4a63SDavid du Colombier void smbidmapremove(SmbIdMap *m, void *thing);
1848ccd4a63SDavid du Colombier void smbidmapfree(SmbIdMap **mp, SMBIDMAPAPPLYFN *free, void *magic);
1858ccd4a63SDavid du Colombier void smbidmapapply(SmbIdMap *mp, SMBIDMAPAPPLYFN *free, void *magic);
1868ccd4a63SDavid du Colombier void *smbidmapfind(SmbIdMap *m, long id);
1878ccd4a63SDavid du Colombier void smbidmapremoveif(SmbIdMap *m, int (*f)(void *p, void *arg), void *arg);
1888ccd4a63SDavid du Colombier 
1898ccd4a63SDavid du Colombier void smbsearchfree(SmbSearch **searchp);
1908ccd4a63SDavid du Colombier void smbsearchclose(SmbSession *s, SmbSearch *search);
1918ccd4a63SDavid du Colombier void smbsearchclosebyid(SmbSession *s, ushort sid);
1928ccd4a63SDavid du Colombier 
1938ccd4a63SDavid du Colombier void smbseterror(SmbSession *s, uchar errclass, ushort error);
1948ccd4a63SDavid du Colombier 
1958ccd4a63SDavid du Colombier void smbplan9time2datetime(ulong time, int tzoff, ushort *datep, ushort *timep);
1968ccd4a63SDavid du Colombier ulong smbdatetime2plan9time(ushort date, ushort time, int tzoff);
1978ccd4a63SDavid du Colombier vlong smbplan9time2time(ulong time);
1988ccd4a63SDavid du Colombier ulong smbplan9time2utime(ulong time, int tzoff);
1998ccd4a63SDavid du Colombier ulong smbutime2plan9time(ulong time, int tzoff);
2008ccd4a63SDavid du Colombier ulong smbtime2plan9time(vlong);
2018ccd4a63SDavid du Colombier void smbpathcanon(char *path);
2028ccd4a63SDavid du Colombier void smbpathsplit(char *path, char **dirp, char **namep);
2038ccd4a63SDavid du Colombier 
2048ccd4a63SDavid du Colombier ushort smbplan9mode2dosattr(ulong mode);
2058ccd4a63SDavid du Colombier ulong smbdosattr2plan9wstatmode(ulong oldmode, ushort attr);
2068ccd4a63SDavid du Colombier ulong smbdosattr2plan9mode(ushort attr);
2078ccd4a63SDavid du Colombier 
2088ccd4a63SDavid du Colombier ulong smbplan9length2size32(vlong size);
2098ccd4a63SDavid du Colombier 
2108ccd4a63SDavid du Colombier void smbfileclose(SmbSession *s, SmbFile *f);
2118ccd4a63SDavid du Colombier 
2128ccd4a63SDavid du Colombier void smbloglock(void);
2138ccd4a63SDavid du Colombier void smblogunlock(void);
2148ccd4a63SDavid du Colombier int smblogvprint(int cmd, char *fmt, va_list ap);
215*86a363ceSDavid du Colombier int translogprint(int cmd, char *fmt, ...);
2168ccd4a63SDavid du Colombier int smblogprint(int cmd, char *fmt, ...);
2178ccd4a63SDavid du Colombier int smblogprintif(int v, char *fmt, ...);
2188ccd4a63SDavid du Colombier void smblogdata(int cmd, int (*print)(int cmd, char *fmt, ...), void *p, long data, long limit);
2198ccd4a63SDavid du Colombier 
2208ccd4a63SDavid du Colombier SmbSharedFile *smbsharedfileget(Dir *d, int p9mode, int *sharep);
2218ccd4a63SDavid du Colombier void smbsharedfileput(SmbFile *f, SmbSharedFile *sf, int share);
2228ccd4a63SDavid du Colombier int smbsharedfilelock(SmbSharedFile *sf, SmbSession *s, ushort pid, vlong base, vlong limit);
2238ccd4a63SDavid du Colombier int smbsharedfileunlock(SmbSharedFile *sf, SmbSession *s, ushort pid, vlong base, vlong limit);
2248ccd4a63SDavid du Colombier 
2258ccd4a63SDavid du Colombier vlong smbl2roundupvlong(vlong v, int l2);
2268ccd4a63SDavid du Colombier 
2278ccd4a63SDavid du Colombier int smblistencifs(SMBCIFSACCEPTFN *accept);
2288ccd4a63SDavid du Colombier 
2298ccd4a63SDavid du Colombier int smbnetserverenum2(SmbClient *c, ulong stype, char *domain, int *entriesp, SmbRapServerInfo1 **sip, char **errmsgp);
2308ccd4a63SDavid du Colombier 
2318ccd4a63SDavid du Colombier int smbbuffergetheader(SmbBuffer *b, SmbHeader *h, uchar **parametersp, ushort *bytecountp);
2328ccd4a63SDavid du Colombier int smbbuffergetandcheckheader(SmbBuffer *b, SmbHeader *h, uchar command, int response,
2338ccd4a63SDavid du Colombier 	uchar **pdatap, ushort *bytecountp, char **errmsgp);
2348ccd4a63SDavid du Colombier int smbcheckheader(SmbHeader *h, uchar command, int response, char **errmsgp);
2358ccd4a63SDavid du Colombier int smbcheckheaderdirection(SmbHeader *h, int response, char **errmsgp);
2368ccd4a63SDavid du Colombier 
2378ccd4a63SDavid du Colombier SmbDirCache *smbmkdircache(SmbTree *t, char *path);
2388ccd4a63SDavid du Colombier void smbdircachefree(SmbDirCache **cp);
2398ccd4a63SDavid du Colombier 
2408ccd4a63SDavid du Colombier int smbmatch(char *name, Reprog *rep);
2418ccd4a63SDavid du Colombier Reprog *smbmkrep(char *pattern);
2428ccd4a63SDavid du Colombier 
2438ccd4a63SDavid du Colombier int smbclientopen(SmbClient *c, ushort mode, char *name, uchar *errclassp, ushort *errorp, ushort *fid, ushort *attrp,
2448ccd4a63SDavid du Colombier ulong *mtimep, ulong *sizep, ushort *accessallowedp, char **errmsgp);
2458ccd4a63SDavid du Colombier 
2468ccd4a63SDavid du Colombier Rune smbruneconvert(Rune r, ulong flags);
2478ccd4a63SDavid du Colombier 
2488ccd4a63SDavid du Colombier int smbslut(SmbSlut *table, char *name);
2498ccd4a63SDavid du Colombier char *smbrevslut(SmbSlut *table, int val);
2508ccd4a63SDavid du Colombier 
2518ccd4a63SDavid du Colombier SmbProcessResult smbtruncatefile(SmbSession *s, SmbFile *f, vlong offset);
2528ccd4a63SDavid du Colombier 
2538ccd4a63SDavid du Colombier #ifdef LEAK
2548ccd4a63SDavid du Colombier #define smbemallocz(n, z) mallocz(n, z)
2558ccd4a63SDavid du Colombier #define smbemalloc(n) malloc(n)
2568ccd4a63SDavid du Colombier #define smbestrdup(p) strcpy(malloc(strlen(p) + 1), p)
2578ccd4a63SDavid du Colombier #endif
2588ccd4a63SDavid du Colombier 
2598ccd4a63SDavid du Colombier int smbremovefile(SmbTree *t, char *dir, char *name);
2608ccd4a63SDavid du Colombier int smbbrowsesendhostannouncement(char *name, ulong periodms, ulong type, char *comment, char **errmsgp);
261