xref: /illumos-gate/usr/src/tools/smatch/src/compat.h (revision c85f09cc)
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 
14 /*
15  * Our "blob" allocator works on chunks that are multiples
16  * of this size (the underlying allocator may be a mmap that
17  * cannot handle smaller chunks, for example, so trying to
18  * allocate blobs that aren't aligned is not going to work).
19  */
20 #define CHUNK 32768
21 
22 void *blob_alloc(unsigned long size);
23 void blob_free(void *addr, unsigned long size);
24 long double string_to_ld(const char *nptr, char **endptr);
25 
26 #endif
27