Syscall tests for PATH_MAX
[akaros.git] / user / ndblib / ndbhf.h
1 /* 
2  * This file is part of the UCB release of Plan 9. It is subject to the license
3  * terms in the LICENSE file found in the top-level directory of this
4  * distribution and at http://akaros.cs.berkeley.edu/files/Plan9License. No
5  * part of the UCB release of Plan 9, including this file, may be copied,
6  * modified, propagated, or distributed except according to the terms contained
7  * in the LICENSE file.
8  */
9 /* a hash file */
10
11 struct ndbhf
12 {
13         struct ndbhf    *next;
14
15         int     fd;
16         uint32_t        dbmtime;        /* mtime of data base */
17         int     hlen;           /* length (in entries) of hash table */
18         char    attr[Ndbalen];  /* attribute hashed */
19
20         uint8_t buf[256];       /* hash file buffer */
21         long    off;            /* offset of first byte of buffer */
22         int     len;            /* length of valid data in buffer */
23 };
24
25 char*           _ndbparsetuple(char*, struct ndbtuple**);
26 struct ndbtuple*        _ndbparseline(char*);
27
28 #define ISWHITE(x) ((x) == ' ' || (x) == '\t' || (x) == '\r')
29 #define EATWHITE(x) while(ISWHITE(*(x)))(x)++
30
31 extern struct ndbtuple *_ndbtfree;
32
33 /* caches */
34 void    _ndbcacheflush(struct ndb *db);
35 int     _ndbcachesearch(struct ndb *db, struct ndbs *s, char *attr, char *val,
36                            struct ndbtuple **t);
37 struct ndbtuple* _ndbcacheadd(struct ndb *db, struct ndbs *s, char *attr, char *val,
38                               struct ndbtuple *t);