1 /* 2 * Mesa 3-D graphics library 3 * 4 * Copyright (C) 1999-2008 Brian Paul All Rights Reserved. 5 * 6 * Permission is hereby granted, free of charge, to any person obtaining a 7 * copy of this software and associated documentation files (the "Software"), 8 * to deal in the Software without restriction, including without limitation 9 * the rights to use, copy, modify, merge, publish, distribute, sublicense, 10 * and/or sell copies of the Software, and to permit persons to whom the 11 * Software is furnished to do so, subject to the following conditions: 12 * 13 * The above copyright notice and this permission notice shall be included 14 * in all copies or substantial portions of the Software. 15 * 16 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 17 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 19 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR 20 * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 21 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 22 * OTHER DEALINGS IN THE SOFTWARE. 23 */ 24 25 26 #ifndef _GLAPI_PRIV_H 27 #define _GLAPI_PRIV_H 28 29 30 #ifdef HAVE_DIX_CONFIG_H 31 #include <dix-config.h> 32 #include "glapi/mesa.h" 33 #else /* HAVE_DIX_CONFIG_H */ 34 #define GL_GLEXT_PROTOTYPES 35 #include "GL/gl.h" 36 #include "GL/glext.h" 37 38 #ifndef GL_OES_fixed_point 39 typedef int GLfixed; 40 #endif 41 typedef int GLclampx; 42 43 #ifndef GL_OES_EGL_image 44 typedef void *GLeglImageOES; 45 #endif 46 47 #endif /* HAVE_DIX_CONFIG_H */ 48 49 #include "glapi/glapi.h" 50 51 52 #ifdef __cplusplus 53 extern "C" { 54 #endif 55 56 /* entrypoint */ 57 58 extern void 59 init_glapi_relocs_once(void); 60 61 62 extern _glapi_proc 63 generate_entrypoint(unsigned int functionOffset); 64 65 66 extern void 67 fill_in_entrypoint_offset(_glapi_proc entrypoint, unsigned int offset); 68 69 70 extern _glapi_proc 71 get_entrypoint_address(unsigned int functionOffset); 72 73 74 /** 75 * Size (in bytes) of dispatch function (entrypoint). 76 */ 77 #if defined(USE_X86_ASM) 78 # if defined(GLX_USE_TLS) 79 # define DISPATCH_FUNCTION_SIZE 16 80 # else 81 # define DISPATCH_FUNCTION_SIZE 32 82 # endif 83 #endif 84 85 #if defined(USE_X64_64_ASM) 86 # if defined(GLX_USE_TLS) 87 # define DISPATCH_FUNCTION_SIZE 16 88 # endif 89 #endif 90 91 92 /** 93 * Number of extension functions which we can dynamically add at runtime. 94 * 95 * Number of extension functions is also subject to the size of backing exec 96 * mem we allocate. For the common case of dispatch stubs with size 16 bytes, 97 * the two limits will be hit simultaneously. For larger dispatch function 98 * sizes, MAX_EXTENSION_FUNCS is effectively reduced. 99 */ 100 #define MAX_EXTENSION_FUNCS 256 101 102 103 #ifdef __cplusplus 104 } 105 #endif 106 107 #endif 108