diff options
Diffstat (limited to 'sandbox/linux/seccomp/allocator.h')
-rw-r--r-- | sandbox/linux/seccomp/allocator.h | 88 |
1 files changed, 0 insertions, 88 deletions
diff --git a/sandbox/linux/seccomp/allocator.h b/sandbox/linux/seccomp/allocator.h deleted file mode 100644 index 29e0065..0000000 --- a/sandbox/linux/seccomp/allocator.h +++ /dev/null @@ -1,88 +0,0 @@ -// Copyright (c) 2010 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// Implement a very basic memory allocator that make direct system calls -// instead of relying on libc. -// This allocator is not thread-safe. - -#ifndef ALLOCATOR_H__ -#define ALLOCATOR_H__ - -#include <cstddef> - -namespace playground { - -class SystemAllocatorHelper { - protected: - static void *sys_allocate(size_t size); - static void sys_deallocate(void* p, size_t size); -}; - -template <class T> -class SystemAllocator : SystemAllocatorHelper { - public: - typedef T value_type; - typedef T* pointer; - typedef const T* const_pointer; - typedef T& reference; - typedef const T& const_reference; - typedef size_t size_type; - typedef std::ptrdiff_t difference_type; - - template <class U> - struct rebind { - typedef SystemAllocator<U> other; - }; - - pointer address(reference value) const { - return &value; - } - - const_pointer address(const_reference value) const { - return &value; - } - - SystemAllocator() throw() { } - SystemAllocator(const SystemAllocator& src) throw() { } - template <class U> SystemAllocator(const SystemAllocator<U>& src) throw() { } - ~SystemAllocator() throw() { } - - size_type max_size() const throw() { - return (1 << 30) / sizeof(T); - } - - pointer allocate(size_type num, const void* = 0) { - if (num > max_size()) { - return NULL; - } - return (pointer)sys_allocate(num * sizeof(T)); - } - - void construct(pointer p, const T& value) { - new(reinterpret_cast<void *>(p))T(value); - } - - void destroy(pointer p) { - p->~T(); - } - - void deallocate(pointer p, size_type num) { - sys_deallocate(p, num * sizeof(T)); - } -}; - -template <class T1, class T2> -bool operator== (const SystemAllocator<T1>&, const SystemAllocator<T2>&) - throw() { - return true; -} -template <class T1, class T2> -bool operator!= (const SystemAllocator<T1>&, const SystemAllocator<T2>&) - throw() { - return false; -} - -} // namespace - -#endif // ALLOCATOR_H__ |