| #ifndef COMPAT_H |
| #define COMPAT_H |
| |
| /* |
| * Various systems get these things wrong. So |
| * we create a small compat library for them. |
| * |
| * - zeroed anonymous mmap |
| * Missing in MinGW |
| * - "string to long double" (C99 strtold()) |
| * Missing in Solaris and MinGW |
| */ |
| struct stream; |
| struct stat; |
| |
| /* |
| * Our "blob" allocator works on chunks that are multiples |
| * of this size (the underlying allocator may be a mmap that |
| * cannot handle smaller chunks, for example, so trying to |
| * allocate blobs that aren't aligned is not going to work). |
| */ |
| #define CHUNK 32768 |
| |
| void *blob_alloc(unsigned long size); |
| void blob_free(void *addr, unsigned long size); |
| long double string_to_ld(const char *nptr, char **endptr); |
| |
| #endif |