plan9port

fork of plan9port with libvec, libstr and libsdb
Log | Files | Refs | README | LICENSE

commit 52006c82447f374388721bc8eeadd5d463cb95b2
parent 6a4599d779d306a292f2437f99b5d7df6a41b313
Author: rsc <devnull@localhost>
Date:   Thu, 12 May 2005 14:03:57 +0000

add vtlognames

Diffstat:
Msrc/libventi/log.c | 35+++++++++++++++++++++++++++++++++++
1 file changed, 35 insertions(+), 0 deletions(-)

diff --git a/src/libventi/log.c b/src/libventi/log.c @@ -30,6 +30,41 @@ hash(char *s) return h; } +char** +vtlognames(int *pn) +{ + int i, nname, size; + VtLog *l; + char **s, *a, *e; + + qlock(&vl.lk); + size = 0; + nname = 0; + for(i=0; i<nelem(vl.hash); i++) + for(l=vl.hash[i]; l; l=l->next){ + nname++; + size += strlen(l->name)+1; + } + + s = vtmalloc(nname*sizeof(char*)+size); + a = (char*)(s+nname); + e = (char*)s+nname*sizeof(char*)+size; + + size = 0; + nname = 0; + for(i=0; i<nelem(vl.hash); i++) + for(l=vl.hash[i]; l; l=l->next){ + strcpy(a, l->name); + s[nname++] = a; + a += strlen(a)+1; + } + *pn = nname; + assert(a == e); + qunlock(&vl.lk); + + return s; +} + VtLog* vtlogopen(char *name, uint size) {