diff --git a/src/mesa/main/execmem.c b/src/mesa/main/execmem.c deleted file mode 100644 index a3e76c5d0b0..00000000000 --- a/src/mesa/main/execmem.c +++ /dev/null @@ -1,155 +0,0 @@ -/* - * Mesa 3-D graphics library - * - * Copyright (C) 1999-2005 Brian Paul All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR - * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - */ - - -/** - * \file execmem.c - * Functions for allocating executable memory. - * - * \author Keith Whitwell - */ - - -#include -#include "main/glheader.h" -#include "execmem.h" -#include "c11/threads.h" - - -#if defined(__linux__) || defined(__OpenBSD__) || defined(__NetBSD__) || defined(__sun) || defined(__HAIKU__) - -/* - * Allocate a large block of memory which can hold code then dole it out - * in pieces by means of the generic memory manager code. -*/ - -#include -#include -#include "util/u_mm.h" - -#ifdef MESA_SELINUX -#include -#endif - - -#ifndef MAP_ANONYMOUS -#define MAP_ANONYMOUS MAP_ANON -#endif - - -#define EXEC_HEAP_SIZE (10*1024*1024) - -static mtx_t exec_mutex = _MTX_INITIALIZER_NP; - -static struct mem_block *exec_heap = NULL; -static unsigned char *exec_mem = NULL; - - -static int -init_heap(void) -{ -#ifdef MESA_SELINUX - if (is_selinux_enabled()) { - if (!security_get_boolean_active("allow_execmem") || - !security_get_boolean_pending("allow_execmem")) - return 0; - } -#endif - - if (!exec_heap) - exec_heap = u_mmInit( 0, EXEC_HEAP_SIZE ); - - if (!exec_mem) - exec_mem = mmap(NULL, EXEC_HEAP_SIZE, PROT_EXEC | PROT_READ | PROT_WRITE, - MAP_PRIVATE | MAP_ANONYMOUS, -1, 0); - - return (exec_mem != MAP_FAILED); -} - - -void * -_mesa_exec_malloc(unsigned size) -{ - struct mem_block *block = NULL; - void *addr = NULL; - - mtx_lock(&exec_mutex); - - if (!init_heap()) - goto bail; - - if (exec_heap) { - size = (size + 31) & ~31; - block = u_mmAllocMem(exec_heap, size, 5, 0); - } - - if (block) - addr = exec_mem + block->ofs; - else - printf("_mesa_exec_malloc failed\n"); - -bail: - mtx_unlock(&exec_mutex); - - return addr; -} - - -void -_mesa_exec_free(void *addr) -{ - mtx_lock(&exec_mutex); - - if (exec_heap) { - struct mem_block *block = u_mmFindBlock(exec_heap, (unsigned char *)addr - exec_mem); - - if (block) - u_mmFreeMem(block); - } - - mtx_unlock(&exec_mutex); -} - - -#else - -/* - * Just use regular memory. - */ - -void * -_mesa_exec_malloc(unsigned size) -{ - return malloc( size ); -} - - -void -_mesa_exec_free(void *addr) -{ - free(addr); -} - - -#endif diff --git a/src/mesa/main/execmem.h b/src/mesa/main/execmem.h deleted file mode 100644 index d98cad7135b..00000000000 --- a/src/mesa/main/execmem.h +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Mesa 3-D graphics library - * - * Copyright (C) 1999-2005 Brian Paul All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR - * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - */ - - -#ifndef EXECMEM_H -#define EXECMEM_H - -#include "glheader.h" - -extern void * -_mesa_exec_malloc(unsigned size); - -extern void -_mesa_exec_free(void *addr); - - -#endif /* EXECMEM_H */ diff --git a/src/mesa/meson.build b/src/mesa/meson.build index d7a8cb083b3..5a19c9a6ef8 100644 --- a/src/mesa/meson.build +++ b/src/mesa/meson.build @@ -96,7 +96,6 @@ files_libmesa = files( 'main/es1_conversion.h', 'main/eval.c', 'main/eval.h', - 'main/execmem.c', 'main/extensions.c', 'main/extensions.h', 'main/extensions_table.c',