xref: /freebsd/contrib/ntp/include/lib_strbuf.h (revision 2b15cb3d0922bd70ea592f0da9b4a5b167f4d53f)
1*2b15cb3dSCy Schubert /*
2*2b15cb3dSCy Schubert  * lib_strbuf.h - definitions for routines which use the common string buffers
3*2b15cb3dSCy Schubert  */
4*2b15cb3dSCy Schubert #ifndef LIB_STRBUF_H
5*2b15cb3dSCy Schubert #define LIB_STRBUF_H
6*2b15cb3dSCy Schubert 
7*2b15cb3dSCy Schubert #include <ntp_types.h>
8*2b15cb3dSCy Schubert #include <ntp_malloc.h>			/* for ZERO() */
9*2b15cb3dSCy Schubert 
10*2b15cb3dSCy Schubert /*
11*2b15cb3dSCy Schubert  * Sizes of things
12*2b15cb3dSCy Schubert  */
13*2b15cb3dSCy Schubert #define LIB_NUMBUF	16
14*2b15cb3dSCy Schubert #define	LIB_BUFLENGTH	128
15*2b15cb3dSCy Schubert 
16*2b15cb3dSCy Schubert typedef char libbufstr[LIB_BUFLENGTH];
17*2b15cb3dSCy Schubert extern libbufstr lib_stringbuf[LIB_NUMBUF];
18*2b15cb3dSCy Schubert extern int lib_nextbuf;
19*2b15cb3dSCy Schubert extern int lib_inited;
20*2b15cb3dSCy Schubert 
21*2b15cb3dSCy Schubert 
22*2b15cb3dSCy Schubert /*
23*2b15cb3dSCy Schubert  * Macro to get a pointer to the next buffer
24*2b15cb3dSCy Schubert  */
25*2b15cb3dSCy Schubert #define	LIB_GETBUF(bufp)					\
26*2b15cb3dSCy Schubert 	do {							\
27*2b15cb3dSCy Schubert 		ZERO(lib_stringbuf[lib_nextbuf]);		\
28*2b15cb3dSCy Schubert 		(bufp) = &lib_stringbuf[lib_nextbuf++][0];	\
29*2b15cb3dSCy Schubert 		lib_nextbuf %= COUNTOF(lib_stringbuf);		\
30*2b15cb3dSCy Schubert 	} while (FALSE)
31*2b15cb3dSCy Schubert 
32*2b15cb3dSCy Schubert #endif	/* LIB_STRBUF_H */
33