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 */
13struct stream;
14struct 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
24void *blob_alloc(unsigned long size);
25void blob_free(void *addr, unsigned long size);
26long double string_to_ld(const char *nptr, char **endptr);
27
28#endif
29