]>
Commit | Line | Data |
---|---|---|
528b2c61 | 1 | /* |
b8ae064d | 2 | * Copyright (C) 1996-2023 The Squid Software Foundation and contributors |
528b2c61 | 3 | * |
bbc27441 AJ |
4 | * Squid software is distributed under GPLv2+ license and includes |
5 | * contributions from numerous individuals and organizations. | |
6 | * Please see the COPYING and CONTRIBUTORS files for details. | |
528b2c61 | 7 | */ |
bbc27441 AJ |
8 | |
9 | /* DEBUG: section 13 High Level Memory Pool Management */ | |
10 | ||
ed6e9fb9 AJ |
11 | #ifndef _SQUID_SRC_MEM_FORWARD_H |
12 | #define _SQUID_SRC_MEM_FORWARD_H | |
528b2c61 | 13 | |
ed6e9fb9 | 14 | #include "mem/AllocatorProxy.h" |
8a89c28f | 15 | |
427854fb | 16 | #include <iosfwd> |
27e059d4 | 17 | |
e1f7507e | 18 | class StoreEntry; |
62ee09ca | 19 | |
9663db1c | 20 | /// Memory Management |
ed6e9fb9 | 21 | namespace Mem |
62e76326 | 22 | { |
09c020f2 AJ |
23 | class Meter; |
24 | class PoolMeter; | |
a7508376 | 25 | class PoolStats; |
09c020f2 | 26 | |
f53969cc | 27 | void Init(); |
f53969cc SM |
28 | void Stats(StoreEntry *); |
29 | void CleanIdlePools(void *unused); | |
30 | void Report(std::ostream &); | |
a7508376 | 31 | void PoolReport(const PoolStats *, const PoolMeter *, std::ostream &); |
528b2c61 | 32 | }; |
33 | ||
43d1bbe4 FC |
34 | extern const size_t squidSystemPageSize; |
35 | ||
8ad10d96 | 36 | /// \deprecated use MEMPROXY_CLASS instead. |
6f5dc9e4 FC |
37 | typedef void FREE(void *); |
38 | ||
169a73ce AJ |
39 | /// Types of memory pool which do not yet use MEMPROXY_CLASS() API |
40 | typedef enum { | |
41 | MEM_NONE, | |
42 | MEM_2K_BUF, | |
43 | MEM_4K_BUF, | |
44 | MEM_8K_BUF, | |
45 | MEM_16K_BUF, | |
46 | MEM_32K_BUF, | |
47 | MEM_64K_BUF, | |
169a73ce AJ |
48 | MEM_DREAD_CTRL, |
49 | MEM_DWRITE_Q, | |
169a73ce | 50 | MEM_MD5_DIGEST, |
169a73ce AJ |
51 | MEM_MAX |
52 | } mem_type; | |
53 | ||
a8ef0b3f | 54 | /// Main cleanup handler. |
8a648e8d FC |
55 | void memClean(void); |
56 | void memInitModule(void); | |
57 | void memCleanModule(void); | |
58 | void memConfigure(void); | |
a8ef0b3f | 59 | /// Allocate one element from the typed pool |
8a648e8d FC |
60 | void *memAllocate(mem_type); |
61 | void *memAllocString(size_t net_size, size_t * gross_size); | |
62 | void *memAllocBuf(size_t net_size, size_t * gross_size); | |
c3b51d64 | 63 | void *memAllocRigid(size_t net_size); |
8a648e8d | 64 | void *memReallocBuf(void *buf, size_t net_size, size_t * gross_size); |
a8ef0b3f | 65 | /// Free a element allocated by memAllocate() |
8a648e8d FC |
66 | void memFree(void *, int type); |
67 | void memFreeString(size_t size, void *); | |
68 | void memFreeBuf(size_t size, void *); | |
c3b51d64 | 69 | void memFreeRigid(void *, size_t net_size); |
8a648e8d FC |
70 | FREE *memFreeBufFunc(size_t size); |
71 | int memInUse(mem_type); | |
3b08e399 | 72 | void memDataInit(mem_type, const char *, size_t, int, bool doZero = true); |
8a648e8d | 73 | void memCheckInit(void); |
8b082ed9 | 74 | size_t memStringCount(); |
8a89c28f | 75 | |
ed6e9fb9 | 76 | #endif /* _SQUID_SRC_MEM_FORWARD_H */ |
f53969cc | 77 |