]> git.ipfire.org Git - thirdparty/squid.git/blame - src/mem/forward.h
Source Format Enforcement (#1234)
[thirdparty/squid.git] / src / mem / forward.h
CommitLineData
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 18class StoreEntry;
62ee09ca 19
9663db1c 20/// Memory Management
ed6e9fb9 21namespace Mem
62e76326 22{
09c020f2
AJ
23class Meter;
24class PoolMeter;
a7508376 25class PoolStats;
09c020f2 26
f53969cc 27void Init();
f53969cc
SM
28void Stats(StoreEntry *);
29void CleanIdlePools(void *unused);
30void Report(std::ostream &);
a7508376 31void PoolReport(const PoolStats *, const PoolMeter *, std::ostream &);
528b2c61 32};
33
43d1bbe4
FC
34extern const size_t squidSystemPageSize;
35
8ad10d96 36/// \deprecated use MEMPROXY_CLASS instead.
6f5dc9e4
FC
37typedef void FREE(void *);
38
169a73ce
AJ
39/// Types of memory pool which do not yet use MEMPROXY_CLASS() API
40typedef 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
55void memClean(void);
56void memInitModule(void);
57void memCleanModule(void);
58void memConfigure(void);
a8ef0b3f 59/// Allocate one element from the typed pool
8a648e8d
FC
60void *memAllocate(mem_type);
61void *memAllocString(size_t net_size, size_t * gross_size);
62void *memAllocBuf(size_t net_size, size_t * gross_size);
c3b51d64 63void *memAllocRigid(size_t net_size);
8a648e8d 64void *memReallocBuf(void *buf, size_t net_size, size_t * gross_size);
a8ef0b3f 65/// Free a element allocated by memAllocate()
8a648e8d
FC
66void memFree(void *, int type);
67void memFreeString(size_t size, void *);
68void memFreeBuf(size_t size, void *);
c3b51d64 69void memFreeRigid(void *, size_t net_size);
8a648e8d
FC
70FREE *memFreeBufFunc(size_t size);
71int memInUse(mem_type);
3b08e399 72void memDataInit(mem_type, const char *, size_t, int, bool doZero = true);
8a648e8d 73void memCheckInit(void);
8b082ed9 74size_t memStringCount();
8a89c28f 75
ed6e9fb9 76#endif /* _SQUID_SRC_MEM_FORWARD_H */
f53969cc 77