xref: /illumos-gate/usr/src/tools/smatch/src/compat.h (revision 856f710c9dc323b39da5935194d7928ffb99b67f)
1 #ifndef COMPAT_H
2 #define COMPAT_H
3 
4 /*
5  * Various systems get these things wrong. So
6  * we create a small compat library for them.
7  *
8  *  - zeroed anonymous mmap
9  *	Missing in MinGW
10  *  - "string to long double" (C99 strtold())
11  *	Missing in Solaris and MinGW
12  */
13 struct stream;
14 struct stat;
15 
16 /*
17  * Our "blob" allocator works on chunks that are multiples
18  * of this size (the underlying allocator may be a mmap that
19  * cannot handle smaller chunks, for example, so trying to
20  * allocate blobs that aren't aligned is not going to work).
21  */
22 #define CHUNK 32768
23 
24 void *blob_alloc(unsigned long size);
25 void blob_free(void *addr, unsigned long size);
26 long double string_to_ld(const char *nptr, char **endptr);
27 
28 #endif
29