e688b15a85025743348c9fe8b68787281a59feda
[reactos.git] / reactos / ntoskrnl / include / internal / pool.h
1 #ifndef __INTERNAL_POOL_H
2 #define __INTERNAL_POOL_H
3
4 PVOID STDCALL ExAllocateNonPagedPoolWithTag (POOL_TYPE type,
5 ULONG size,
6 ULONG Tag,
7 PVOID Caller);
8
9 PVOID STDCALL ExAllocatePagedPoolWithTag (POOL_TYPE Type,
10 ULONG size,
11 ULONG Tag);
12 VOID STDCALL ExFreeNonPagedPool (PVOID block);
13
14 VOID STDCALL
15 ExFreePagedPool(IN PVOID Block);
16 VOID MmInitializePagedPool(VOID);
17
18 PVOID
19 STDCALL
20 MiAllocateSpecialPool (IN POOL_TYPE PoolType,
21 IN SIZE_T NumberOfBytes,
22 IN ULONG Tag,
23 IN ULONG Underrun
24 );
25
26 extern PVOID MmPagedPoolBase;
27 extern ULONG MmPagedPoolSize;
28
29 #define MM_PAGED_POOL_SIZE (100*1024*1024)
30 #define MM_NONPAGED_POOL_SIZE (100*1024*1024)
31
32 /*
33 * Paged and non-paged pools are 8-byte aligned
34 */
35 #define MM_POOL_ALIGNMENT 8
36
37 /*
38 * Maximum size of the kmalloc area (this is totally arbitary)
39 */
40 #define MM_KERNEL_MAP_SIZE (16*1024*1024)
41 #define MM_KERNEL_MAP_BASE (0xf0c00000)
42
43 /*
44 * FIXME - different architectures have different cache line sizes...
45 */
46 #define MM_CACHE_LINE_SIZE 32
47
48 #define MM_ROUND_UP(x,s) ((PVOID)(((ULONG_PTR)(x)+(s)-1) & ~((ULONG_PTR)(s)-1)))
49 #define MM_ROUND_DOWN(x,s) ((PVOID)(((ULONG_PTR)(x)) & ~((ULONG_PTR)(s)-1)))
50
51 #endif /* __INTERNAL_POOL_H */