OLD | NEW |
| (Empty) |
1 /* | |
2 * Copyright (c) 2004-2010 Alex Pankratov. All rights reserved. | |
3 * | |
4 * Hierarchical memory allocator, 1.2.1 | |
5 * http://swapped.cc/halloc | |
6 */ | |
7 | |
8 /* | |
9 * The program is distributed under terms of BSD license. | |
10 * You can obtain the copy of the license by visiting: | |
11 * | |
12 * http://www.opensource.org/licenses/bsd-license.php | |
13 */ | |
14 | |
15 #ifndef _LIBP_MACROS_H_ | |
16 #define _LIBP_MACROS_H_ | |
17 | |
18 #include <stddef.h> /* offsetof */ | |
19 | |
20 /* | |
21 restore pointer to the structure by a pointer to its field | |
22 */ | |
23 #define structof(p,t,f) ((t*)(- (ptrdiff_t) offsetof(t,f) + (char*)(p))) | |
24 | |
25 /* | |
26 * redefine for the target compiler | |
27 */ | |
28 #ifdef _WIN32 | |
29 #define static_inline static __inline | |
30 #else | |
31 #define static_inline static __inline__ | |
32 #endif | |
33 | |
34 | |
35 #endif | |
36 | |
OLD | NEW |