]> rtime.felk.cvut.cz Git - l4.git/blob - l4/pkg/valgrind/src/valgrind-3.6.0-svn/coregrind/l4re/allocator
update
[l4.git] / l4 / pkg / valgrind / src / valgrind-3.6.0-svn / coregrind / l4re / allocator
1 // vim: ft=cpp et
2
3 /*
4  * This file is part of the Valgrind port to L4Re.
5  *
6  * (c) 2009-2010 Aaron Pohle <apohle@os.inf.tu-dresden.de>,
7  *               Bjoern Doebel <doebel@os.inf.tu-dresden.de>
8  *     economic rights: Technische Universitaet Dresden (Germany)
9  */
10
11 void *operator new(unsigned size) L4_NOTHROW
12 {
13     VG_(debugLog)(5, "vcap", "op new(size = %u)\n", size);
14
15     return VG_(malloc)((char *)"op::new", size);
16 }
17
18
19 void *operator new(unsigned size, void *addr) L4_NOTHROW
20 {
21     return addr;
22 }
23
24
25 void operator delete(void *p) L4_NOTHROW
26 {
27     VG_(free)(p);
28 }
29
30
31 namespace Vcap
32 {
33 /* VG_(malloc)/VG_(free)-based allocator for cxx:: data types */
34 template <typename TYPE>
35 class Valgrind_allocator
36 {
37     public:
38         enum { can_free = true };
39
40         Valgrind_allocator() throw() { }
41         Valgrind_allocator(Valgrind_allocator const &) throw() { }
42
43         ~Valgrind_allocator() throw() { }
44
45         TYPE *alloc() throw()
46         {
47             return static_cast<TYPE*>(VG_(malloc)((HChar*)"vg::alloc", sizeof(TYPE)));
48         }
49
50         //void free(TYPE* ptr) throw()
51         void free(void* ptr) throw()
52         {
53             VG_(free)(ptr);
54         }
55 };
56 }