mapi: Add and use entry_get_public.
authorChia-I Wu <olv@lunarg.com>
Fri, 24 Dec 2010 07:06:41 +0000 (15:06 +0800)
committerChia-I Wu <olv@lunarg.com>
Fri, 24 Dec 2010 09:33:49 +0000 (17:33 +0800)
commite6a7ef3ca6d7f1843a7ea3f873c8f16fe9efc48e
tree2d7e3bc66b180e579967357be6867f0371cd53b4
parent897bff67734ec9ab213191386cdf09ddd051aebb
mapi: Add and use entry_get_public.

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.
src/mapi/mapi/entry.c
src/mapi/mapi/entry.h
src/mapi/mapi/entry_x86-64_tls.h
src/mapi/mapi/entry_x86_tls.h
src/mapi/mapi/entry_x86_tsd.h
src/mapi/mapi/mapi_abi.py
src/mapi/mapi/stub.c