1 /*	$NetBSD: ntp_string.h,v 1.1.1.1 2009/12/13 16:54:53 kardel Exp $	*/
2 
3 /*
4  * Define string ops: strchr strrchr memcmp memmove memset
5  */
6 
7 #ifndef  _ntp_string_h
8 #define  _ntp_string_h
9 
10 #ifdef HAVE_CONFIG_H
11 #include <config.h>
12 #endif
13 
14 #ifdef HAVE_MEMORY_H
15 # include <memory.h>
16 #endif
17 
18 #ifdef HAVE_STRING_H
19 # include <string.h>
20 #endif
21 
22 #ifdef HAVE_BSTRING_H
23 # include <bstring.h>
24 #endif
25 
26 #ifndef STDC_HEADERS
27 # ifndef HAVE_STRCHR
28 #  include <strings.h>
29 #  define strchr index
30 #  define strrchr rindex
31 # endif
32 # ifndef __GNUC__
33 char *strchr(), *strrchr();
34 # endif
35 # ifndef HAVE_MEMCPY
36 #  define NTP_NEED_BOPS
37 # endif
38 #endif /* STDC_HEADERS */
39 
40 #ifdef NTP_NEED_BOPS
41 
42 #ifdef HAVE_STRINGS_H
43 # include <strings.h>		/* bcmp, bcopy, bzero */
44 #endif
45 
46 void	ntp_memset	(char *, int, int);
47 
48 #define memcmp(a, b, c)		bcmp(a, b, (int)(c))
49 #define memmove(t, f, c)	bcopy(f, t, (int)(c))
50 #define memcpy(t, f, c)		bcopy(f, t, (int)(c))
51 #define memset(a, x, c)		if (0 == (x)) \
52 					bzero(a, (int)(c)); \
53 				else \
54 					ntp_memset((char *)(a), x, c)
55 #endif /*  NTP_NEED_BOPS */
56 
57 #endif /* _ntp_string_h */
58