1 /*
2  * Copyright (C) 1996-2021 The Squid Software Foundation and contributors
3  *
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.
7  */
8 
9 #include "squid.h"
10 
11 #define STUB_API "mem/libmem.la"
12 #include "STUB.h"
13 
14 #include "mem/AllocatorProxy.h"
alloc()15 void *Mem::AllocatorProxy::alloc() {return xmalloc(64*1024);}
freeOne(void * address)16 void Mem::AllocatorProxy::freeOne(void *address) {xfree(address);}
inUseCount() const17 int Mem::AllocatorProxy::inUseCount() const {return 0;}
18 //static MemPoolMeter tmpMemPoolMeter;
19 //MemPoolMeter const &Mem::AllocatorProxy::getMeter() const STUB_RETVAL(tmpMemPoolMeter)
getStats(MemPoolStats * stats)20 int Mem::AllocatorProxy::getStats(MemPoolStats * stats) STUB_RETVAL(0)
21 
22 #include "mem/forward.h"
23 void Mem::Init() STUB_NOP
24 void Mem::Report() STUB_NOP
25 void Mem::Stats(StoreEntry *) STUB_NOP
26 void CleanIdlePools(void *) STUB_NOP
27 void Report(std::ostream &) STUB_NOP
28 void PoolReport(const MemPoolStats *, const MemPoolMeter *, std::ostream &) STUB_NOP
29 //const size_t squidSystemPageSize = 4096;
30 void memClean(void) STUB
31 void memInitModule(void) STUB
32 void memCleanModule(void) STUB
33 void memConfigure(void) STUB
34 
35 void * memAllocate(mem_type type)
36 {
37     // let's waste plenty of memory. This should cover any possible need
38     return xmalloc(64*1024);
39 }
40 
memAllocString(size_t net_size,size_t * gross_size)41 void *memAllocString(size_t net_size, size_t * gross_size) {return memAllocBuf(net_size, gross_size);}
42 
43 void *
memAllocBuf(size_t net_size,size_t * gross_size)44 memAllocBuf(size_t net_size, size_t * gross_size)
45 {
46     *gross_size=net_size;
47     return xcalloc(1, net_size);
48 }
49 
50 /* net_size is the new size, *gross size is the old gross size, to be changed to
51  * the new gross size as a side-effect.
52  */
53 void *
memReallocBuf(void * oldbuf,size_t net_size,size_t * gross_size)54 memReallocBuf(void *oldbuf, size_t net_size, size_t * gross_size)
55 {
56     void *rv=xrealloc(oldbuf,net_size);
57 //    if (net_size > *gross_size)
58 //        memset(rv+net_size,0,net_size-*gross_size);
59     *gross_size=net_size;
60     return rv;
61 }
62 
memFree(void * p,int)63 void memFree(void *p, int) {xfree(p);}
memFreeString(size_t,void * buf)64 void memFreeString(size_t, void *buf) {xfree(buf);}
memFreeBuf(size_t,void * buf)65 void memFreeBuf(size_t, void *buf) {xfree(buf);}
cxx_xfree(void * ptr)66 static void cxx_xfree(void * ptr) {xfree(ptr);}
memFreeBufFunc(size_t)67 FREE *memFreeBufFunc(size_t) {return cxx_xfree;}
68 int memInUse(mem_type) STUB_RETVAL(0)
69 void memDataInit(mem_type, const char *, size_t, int, bool) STUB_NOP
70 void memCheckInit(void) STUB_NOP
71 
72 #include "mem/Pool.h"
73 MemPoolMeter::MemPoolMeter() STUB_NOP
74 void MemPoolMeter::flush() STUB
75 static MemPools tmpMemPools;
GetInstance()76 MemPools &MemPools::GetInstance() {return tmpMemPools;}
MemPools()77 MemPools::MemPools() :
78     pools(nullptr),
79     mem_idle_limit(0),
80     poolCount(0),
81     defaultIsChunked(false)
82 {}
83 void MemPools::flushMeters() STUB
84 MemImplementingAllocator * MemPools::create(const char *label, size_t obj_size) STUB_RETVAL(NULL);
85 void MemPools::setIdleLimit(ssize_t new_idle_limit) STUB
86 ssize_t MemPools::idleLimit() const STUB_RETVAL(0)
87 void MemPools::clean(time_t maxage) STUB
88 void MemPools::setDefaultPoolChunking(bool const &) STUB
89 
90 //MemAllocator::MemAllocator(char const *aLabel);
91 char const *MemAllocator::objectType() const STUB_RETVAL(NULL)
92 int MemAllocator::inUseCount() STUB_RETVAL(0)
93 size_t MemAllocator::RoundedSize(size_t minSize) STUB_RETVAL(minSize)
94 
95 //MemImplementingAllocator::MemImplementingAllocator(char const *aLabel, size_t aSize) STUB_NOP
96 //MemImplementingAllocator::~MemImplementingAllocator();
97 MemPoolMeter const &MemImplementingAllocator::getMeter() const STUB_RETSTATREF(MemPoolMeter)
98 MemPoolMeter &MemImplementingAllocator::getMeter() STUB_RETSTATREF(MemPoolMeter)
99 void MemImplementingAllocator::flushMetersFull() STUB
100 void MemImplementingAllocator::flushMeters() STUB
101 void *MemImplementingAllocator::alloc() STUB_RETVAL(NULL)
102 void MemImplementingAllocator::freeOne(void *) STUB
103 
104 MemPoolIterator * memPoolIterate(void) STUB_RETVAL(NULL)
105 MemImplementingAllocator * memPoolIterateNext(MemPoolIterator * iter) STUB_RETVAL(NULL)
106 void memPoolIterateDone(MemPoolIterator ** iter) STUB
107 int memPoolGetGlobalStats(MemPoolGlobalStats * stats) STUB_RETVAL(0)
108 int memPoolsTotalAllocated(void) STUB_RETVAL(0)
109 
110