pointer_math: ALIGN is not bytes, but offsetof() and PAGE_SIZE are
[smatch.git] / compat.h
blob9814ae3e89be51be3cb6085e72f0ebba56f35d07
1 #ifndef COMPAT_H
2 #define COMPAT_H
4 /*
5 * Various systems get these things wrong. So
6 * we create a small compat library for them.
8 * - zeroed anonymous mmap
9 * Missing in MinGW
10 * - "string to long double" (C99 strtold())
11 * Missing in Solaris and MinGW
13 struct stream;
14 struct stat;
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).
22 #define CHUNK 32768
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);
28 #endif