summaryrefslogtreecommitdiffstats
path: root/src/mapi/mapi/entry_x86-64_tls.h
Commit message (Collapse)AuthorAgeFilesLines
* build: Move src/mapi/mapi/* to src/mapi/Matt Turner2013-04-151-126/+0
| | | | | | Tested-by: Emil Velikov <[email protected]> Reviewed-and-Tested-by: Andreas Boll <[email protected]> Reviewed-by: Jordan Justen <[email protected]>
* mapi: Fix tls with shared/es-glapi on x86-64Benjamin Franzke2011-06-131-1/+3
| | | | | | | | | | | x86_64_entry_start needs to be declared static in the C code, in order to have the correct address in entry_get_public (seems not to be needed on x86). The compiler needs to lookup a local not a global object. Otherwise addresses needed for _glapi_proc_address will be computed from some random offset (0x6400229a61058b48 in my case).
* mapi: Add support for bridge mode.Chia-I Wu2011-01-201-9/+13
| | | | | | | | | | | In bridge mode, mapi no longer implements glapi.h. It becomes a user of glapi.h. Imagine an app that uses both libGL.so and libGLESv2.so. There will be two copies of glapi in the app's memory. It is possible that _glapi_get_dispatch does not return what _glapi_set_dispatch set, if they access different copies of the global variables. The solution to this situation to build either one of the libraries as a bridge to the other. Or build both libraries as bridges to another shared glapi library.
* mapi: u_current_table may be renamed.Chia-I Wu2011-01-201-2/+2
| | | | | | When MAPI_MODE_GLAPI is defined, u_current_table is renamed to _glapi_Dispatch or _glapi_tls_Dispatch. The ASM dispatchers should not use hardcoded name.
* mapi: Add and use entry_get_public.Chia-I Wu2010-12-241-0/+10
| | | | | | | | | | | Given a dispatch slot, entry_get_public returns the address of the corresponding public entry point. There may be more than one of them. But since they are all equivalent, it is fine to return any one of them. With entry_get_public, the address of any public entry point can be calculated at runtime when an assembly dispatcher is used. There is no need to have a mapping table in such case. This omits the unnecessary relocations from the binary.
* mapi: Clean up u_current interface.Chia-I Wu2010-12-181-2/+2
| | | | | Try not to use macros to make u_current.h appear to be glapi.h. Use u_current.h to implement glapi.h instead whenever possible.
* mapi: Add ABI-tag note.Chia-I Wu2010-12-181-0/+13
| | | | TLS requires kernel >= 2.4.20. Per glapi.
* mapi: Fix compiler warnings.Chia-I Wu2010-09-301-1/+1
| | | | Do not use "void *" in arithmetics.
* mapi: Prefix functions in u_current.h by u_current.Chia-I Wu2010-08-211-2/+2
| | | | | | | That is, replace the old _glapi_* names by new names that start with u_current_. When MAPI_GLAPI_CURRENT is defined, u_current.h defines rename macros to restore the old names. That is done for ABI compatibility.
* mapi: Add x86-64 dispatcher.Chia-I Wu2010-05-071-0/+97