1c17d4999f108d86c468cf4b11b08f915c282ce12Chia-I Wu/* 2c17d4999f108d86c468cf4b11b08f915c282ce12Chia-I Wu * Mesa 3-D graphics library 3c17d4999f108d86c468cf4b11b08f915c282ce12Chia-I Wu * Version: 7.9 4c17d4999f108d86c468cf4b11b08f915c282ce12Chia-I Wu * 5c17d4999f108d86c468cf4b11b08f915c282ce12Chia-I Wu * Copyright (C) 2010 LunarG Inc. 6c17d4999f108d86c468cf4b11b08f915c282ce12Chia-I Wu * 7c17d4999f108d86c468cf4b11b08f915c282ce12Chia-I Wu * Permission is hereby granted, free of charge, to any person obtaining a 8c17d4999f108d86c468cf4b11b08f915c282ce12Chia-I Wu * copy of this software and associated documentation files (the "Software"), 9c17d4999f108d86c468cf4b11b08f915c282ce12Chia-I Wu * to deal in the Software without restriction, including without limitation 10c17d4999f108d86c468cf4b11b08f915c282ce12Chia-I Wu * the rights to use, copy, modify, merge, publish, distribute, sublicense, 11c17d4999f108d86c468cf4b11b08f915c282ce12Chia-I Wu * and/or sell copies of the Software, and to permit persons to whom the 12c17d4999f108d86c468cf4b11b08f915c282ce12Chia-I Wu * Software is furnished to do so, subject to the following conditions: 13c17d4999f108d86c468cf4b11b08f915c282ce12Chia-I Wu * 14c17d4999f108d86c468cf4b11b08f915c282ce12Chia-I Wu * The above copyright notice and this permission notice shall be included 15c17d4999f108d86c468cf4b11b08f915c282ce12Chia-I Wu * in all copies or substantial portions of the Software. 16c17d4999f108d86c468cf4b11b08f915c282ce12Chia-I Wu * 17c17d4999f108d86c468cf4b11b08f915c282ce12Chia-I Wu * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18c17d4999f108d86c468cf4b11b08f915c282ce12Chia-I Wu * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19c17d4999f108d86c468cf4b11b08f915c282ce12Chia-I Wu * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 20c17d4999f108d86c468cf4b11b08f915c282ce12Chia-I Wu * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21c17d4999f108d86c468cf4b11b08f915c282ce12Chia-I Wu * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 22c17d4999f108d86c468cf4b11b08f915c282ce12Chia-I Wu * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 23c17d4999f108d86c468cf4b11b08f915c282ce12Chia-I Wu * DEALINGS IN THE SOFTWARE. 24c17d4999f108d86c468cf4b11b08f915c282ce12Chia-I Wu * 25c17d4999f108d86c468cf4b11b08f915c282ce12Chia-I Wu * Authors: 26c17d4999f108d86c468cf4b11b08f915c282ce12Chia-I Wu * Chia-I Wu <olv@lunarg.com> 27c17d4999f108d86c468cf4b11b08f915c282ce12Chia-I Wu */ 28c17d4999f108d86c468cf4b11b08f915c282ce12Chia-I Wu 29c17d4999f108d86c468cf4b11b08f915c282ce12Chia-I Wu#include "glapi/glapi.h" 30c17d4999f108d86c468cf4b11b08f915c282ce12Chia-I Wu#include "mapi/u_current.h" 31c17d4999f108d86c468cf4b11b08f915c282ce12Chia-I Wu 32c17d4999f108d86c468cf4b11b08f915c282ce12Chia-I Wu/* 33c17d4999f108d86c468cf4b11b08f915c282ce12Chia-I Wu * Global variables, _glapi_get_context, and _glapi_get_dispatch are defined in 34c17d4999f108d86c468cf4b11b08f915c282ce12Chia-I Wu * u_current.c. 35c17d4999f108d86c468cf4b11b08f915c282ce12Chia-I Wu */ 36c17d4999f108d86c468cf4b11b08f915c282ce12Chia-I Wu 37c17d4999f108d86c468cf4b11b08f915c282ce12Chia-I Wu#ifdef GLX_USE_TLS 38c17d4999f108d86c468cf4b11b08f915c282ce12Chia-I Wu/* not used, but defined for compatibility */ 39c17d4999f108d86c468cf4b11b08f915c282ce12Chia-I Wuconst struct _glapi_table *_glapi_Dispatch; 40c17d4999f108d86c468cf4b11b08f915c282ce12Chia-I Wuconst void *_glapi_Context; 41c17d4999f108d86c468cf4b11b08f915c282ce12Chia-I Wu#endif /* GLX_USE_TLS */ 42c17d4999f108d86c468cf4b11b08f915c282ce12Chia-I Wu 43c17d4999f108d86c468cf4b11b08f915c282ce12Chia-I Wuvoid 44c17d4999f108d86c468cf4b11b08f915c282ce12Chia-I Wu_glapi_destroy_multithread(void) 45c17d4999f108d86c468cf4b11b08f915c282ce12Chia-I Wu{ 46c17d4999f108d86c468cf4b11b08f915c282ce12Chia-I Wu u_current_destroy(); 47c17d4999f108d86c468cf4b11b08f915c282ce12Chia-I Wu} 48c17d4999f108d86c468cf4b11b08f915c282ce12Chia-I Wu 49c17d4999f108d86c468cf4b11b08f915c282ce12Chia-I Wuvoid 50c17d4999f108d86c468cf4b11b08f915c282ce12Chia-I Wu_glapi_check_multithread(void) 51c17d4999f108d86c468cf4b11b08f915c282ce12Chia-I Wu{ 52c17d4999f108d86c468cf4b11b08f915c282ce12Chia-I Wu u_current_init(); 53c17d4999f108d86c468cf4b11b08f915c282ce12Chia-I Wu} 54c17d4999f108d86c468cf4b11b08f915c282ce12Chia-I Wu 55c17d4999f108d86c468cf4b11b08f915c282ce12Chia-I Wuvoid 56c17d4999f108d86c468cf4b11b08f915c282ce12Chia-I Wu_glapi_set_context(void *context) 57c17d4999f108d86c468cf4b11b08f915c282ce12Chia-I Wu{ 58c17d4999f108d86c468cf4b11b08f915c282ce12Chia-I Wu u_current_set_user((const void *) context); 59c17d4999f108d86c468cf4b11b08f915c282ce12Chia-I Wu} 60c17d4999f108d86c468cf4b11b08f915c282ce12Chia-I Wu 61c17d4999f108d86c468cf4b11b08f915c282ce12Chia-I Wuvoid 62c17d4999f108d86c468cf4b11b08f915c282ce12Chia-I Wu_glapi_set_dispatch(struct _glapi_table *dispatch) 63c17d4999f108d86c468cf4b11b08f915c282ce12Chia-I Wu{ 64c17d4999f108d86c468cf4b11b08f915c282ce12Chia-I Wu u_current_set((const struct mapi_table *) dispatch); 65c17d4999f108d86c468cf4b11b08f915c282ce12Chia-I Wu} 66