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