blob: fe8517be65d31f4a05372cf95e2a9f6b70c6ca78 [file] [log] [blame]
// SwiftShader Software Renderer
//
// Copyright(c) 2005-2013 TransGaming Inc.
//
// All rights reserved. No part of this software may be copied, distributed, transmitted,
// transcribed, stored in a retrieval system, translated into any human or computer
// language by any means, or disclosed to third parties without the explicit written
// agreement of TransGaming Inc. Without such an agreement, no rights or licenses, express
// or implied, including but not limited to any patent rights, are granted to you.
//
#ifndef Memory_hpp
#define Memory_hpp
#include <stddef.h>
size_t memoryPageSize();
void *allocate(size_t bytes, int alignment = 16);
void *allocateZero(size_t bytes, int alignment = 16);
void deallocate(void *memory);
void *allocateExecutable(size_t bytes); // Allocates memory that can be made executable using markExecutable()
void markExecutable(void *memory, size_t bytes);
void deallocateExecutable(void *memory, size_t bytes);
void *allocate(size_t bytes, const char *function);
void *allocateZero(size_t bytes, const char *function);
void deallocate(void *memory, const char *function);
#ifndef NDEBUG
#define allocate(bytes) allocate((bytes), __FUNCTION__)
#define allocateZero(bytes) allocateZero((bytes), __FUNCTION__)
#define deallocate(memory) deallocate((memory), __FUNCTION__)
#endif
#endif // Memory_hpp