view runtime/block_alloc.h @ 139:a68e6828d896

Global stores and transactions are working. Definately leaks memory on retries. Probably a fair number of bugs to work out. However, a basic test program works.
author Mike Pavone <pavone@retrodev.com>
date Fri, 19 Nov 2010 04:04:14 -0500
parents 3e20ed8959c4
children
line wrap: on
line source

#ifndef BLOCK_ALLOC_H_
#define BLOCK_ALLOC_H_

#ifdef _WIN32
#define BLOCK_SIZE 1024*16
#include <windows.h>

#define block_alloc(size)      VirtualAlloc(NULL, size, MEM_COMMIT | MEM_RESERVE, PAGE_READWRITE);
#define block_free(block,size) VirtualFree(block, size, MEM_RELEASE)

#else
#define BLOCK_SIZE 1024*4
#include <sys/mman.h>

#define block_alloc(size)      mmap(NULL, size, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0)
#define block_free(block,size) munmap(block, size)

#endif

#endif //BLOCK_ALLOC_H_