From 115ffcb10a45bca233fa6e22f674d8db8982b7df Mon Sep 17 00:00:00 2001 From: Miodrag Milanovic Date: Sat, 12 Sep 2015 10:12:14 +0200 Subject: Moved netlist from emu to lib (nw) --- src/lib/netlist/plib/palloc.c | 58 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 src/lib/netlist/plib/palloc.c (limited to 'src/lib/netlist/plib/palloc.c') diff --git a/src/lib/netlist/plib/palloc.c b/src/lib/netlist/plib/palloc.c new file mode 100644 index 00000000000..9b0ee555cbb --- /dev/null +++ b/src/lib/netlist/plib/palloc.c @@ -0,0 +1,58 @@ +// license:GPL-2.0+ +// copyright-holders:Couriersud +/* + * palloc.c + * + */ + +#include + +#include "pconfig.h" +#include "palloc.h" +//============================================================ +// Exceptions +//============================================================ + +pexception::pexception(const pstring &text) +{ + m_text = text; + fprintf(stderr, "%s\n", m_text.cstr()); +} + +#if (PSTANDALONE) +#include +#include + +class pmemory_pool +{ +public: + pmemory_pool() {} +}; + +static pmemory_pool sppool; + +pmemory_pool *ppool = &sppool; + +void* operator new(std::size_t size, pmemory_pool *pool) throw (std::bad_alloc) +{ + //printf("here new\n"); + return palloc_raw(size);; +} + +void operator delete(void *ptr, pmemory_pool *pool) +{ + //printf("here delete\n"); + if (ptr != NULL) + pfree_raw(ptr); +} + +void *palloc_raw(const size_t size) +{ + return _mm_malloc(size, 64); +} + +void pfree_raw(void *p) +{ + _mm_free(p); +} +#endif -- cgit v1.2.3