{
if (!exec_heap)
exec_heap = mmInit( 0, EXEC_HEAP_SIZE );
-
+
if (!exec_mem)
- exec_mem = (unsigned char *) mmap(0, EXEC_HEAP_SIZE,
- PROT_EXEC | PROT_READ | PROT_WRITE,
+ exec_mem = (unsigned char *) mmap(0, EXEC_HEAP_SIZE,
+ PROT_EXEC | PROT_READ | PROT_WRITE,
MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
}
addr = exec_mem + block->ofs;
_glthread_UNLOCK_MUTEX(exec_mutex);
-
+
return addr;
}
-
-void
+
+void
_mesa_exec_free(void *addr)
{
_glthread_LOCK_MUTEX(exec_mutex);
if (exec_heap) {
PMemBlock block = mmFindBlock(exec_heap, (unsigned char *)addr - exec_mem);
-
+
if (block)
mmFreeMem(block);
}
return _mesa_malloc( size );
}
-
-void
+
+void
_mesa_exec_free(void *addr)
{
_mesa_free(addr);