summaryrefslogtreecommitdiff
path: root/src/mapi/mapi/mapi_tmp.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/mapi/mapi/mapi_tmp.h')
-rw-r--r--src/mapi/mapi/mapi_tmp.h180
1 files changed, 1 insertions, 179 deletions
diff --git a/src/mapi/mapi/mapi_tmp.h b/src/mapi/mapi/mapi_tmp.h
index 79beca47d2..a1b067fb73 100644
--- a/src/mapi/mapi/mapi_tmp.h
+++ b/src/mapi/mapi/mapi_tmp.h
@@ -26,186 +26,8 @@
* Chia-I Wu <olv@lunarg.com>
*/
-#include "u_macros.h"
-
#ifndef MAPI_ABI_HEADER
#error "MAPI_ABI_HEADER must be defined"
#endif
-
-/**
- * Get API defines.
- */
-#ifdef MAPI_TMP_DEFINES
-# define MAPI_ABI_DEFINES
-# include MAPI_ABI_HEADER
-
-#ifndef MAPI_ABI_PREFIX
-#error "MAPI_ABI_PREFIX must be defined"
-#endif
-#ifndef MAPI_ABI_PUBLIC
-#error "MAPI_ABI_PUBLIC must be defined"
-#endif
-#ifndef MAPI_ABI_ATTR
-#error "MAPI_ABI_ATTR must be defined"
-#endif
-
-#undef MAPI_TMP_DEFINES
-#endif /* MAPI_TMP_DEFINES */
-
-
-/**
- * Generate fields of struct mapi_table.
- */
-#ifdef MAPI_TMP_TABLE
-# define MAPI_ABI_ENTRY(ret, name, params) \
- ret (MAPI_ABI_ATTR *name) params;
-# define MAPI_DYNAMIC_ENTRY(ret, name, params) \
- ret (MAPI_ABI_ATTR *name) params;
-# include MAPI_ABI_HEADER
-#undef MAPI_TMP_TABLE
-#endif /* MAPI_TMP_TABLE */
-
-
-/**
- * Declare public entries.
- */
-#ifdef MAPI_TMP_PUBLIC_DECLARES
-# define MAPI_ABI_ENTRY(ret, name, params) \
- MAPI_ABI_PUBLIC ret MAPI_ABI_ATTR U_CONCAT(MAPI_ABI_PREFIX, name) params;
-# define MAPI_ALIAS_ENTRY(alias, ret, name, params) \
- MAPI_ABI_ENTRY(ret, name, params);
-# define MAPI_ABI_ENTRY_HIDDEN(ret, name, params) \
- HIDDEN ret MAPI_ABI_ATTR U_CONCAT(MAPI_ABI_PREFIX, name) params;
-# define MAPI_ALIAS_ENTRY_HIDDEN(alias, ret, name, params) \
- MAPI_ABI_ENTRY_HIDDEN(ret, name, params)
-# include MAPI_ABI_HEADER
-#undef MAPI_TMP_PUBLIC_DECLARES
-#endif /* MAPI_TMP_PUBLIC_DECLARES */
-
-
-/**
- * Generate string pool and public stubs.
- */
-#ifdef MAPI_TMP_PUBLIC_STUBS
-/* define the string pool */
-static const char public_string_pool[] =
-# define MAPI_ABI_ENTRY(ret, name, params) \
- U_STRINGIFY(name) "\0"
-# define MAPI_ALIAS_ENTRY(alias, ret, name, params) \
- MAPI_ABI_ENTRY(ret, name, params)
-# include MAPI_ABI_HEADER
- ;
-/* define public_sorted_indices */
-# define MAPI_ABI_SORTED_INDICES public_sorted_indices
-# include MAPI_ABI_HEADER
-
-/* define public_stubs */
-static const struct mapi_stub public_stubs[] = {
-# define MAPI_ABI_ENTRY(ret, name, params) \
- { (mapi_func) U_CONCAT(MAPI_ABI_PREFIX, name), \
- MAPI_SLOT_ ## name, (void *) MAPI_POOL_ ## name },
-# define MAPI_ALIAS_ENTRY(alias, ret, name, params) \
- MAPI_ABI_ENTRY(ret, name, params)
-# include MAPI_ABI_HEADER
- { NULL, -1, (void *) -1 }
-};
-
-#undef MAPI_TMP_PUBLIC_STUBS
-#endif /* MAPI_TMP_PUBLIC_STUBS */
-
-
-/**
- * Generate public entries.
- */
-#ifdef MAPI_TMP_PUBLIC_ENTRIES
-# define MAPI_ABI_ENTRY(ret, name, params) \
- ret MAPI_ABI_ATTR U_CONCAT(MAPI_ABI_PREFIX, name) params
-# define MAPI_ABI_CODE(ret, name, args) \
- { \
- const struct mapi_table *tbl = u_current_get(); \
- tbl->name args; \
- }
-# define MAPI_ABI_CODE_RETURN(ret, name, args) \
- { \
- const struct mapi_table *tbl = u_current_get(); \
- return tbl->name args; \
- }
-# define MAPI_ALIAS_ENTRY(alias, ret, name, params) \
- MAPI_ABI_ENTRY(ret, name, params)
-# define MAPI_ALIAS_CODE(alias, ret, name, args) \
- MAPI_ABI_CODE(ret, alias, args)
-# define MAPI_ALIAS_CODE_RETURN(alias, ret, name, args) \
- MAPI_ABI_CODE_RETURN(ret, alias, args)
-# include MAPI_ABI_HEADER
-#undef MAPI_TMP_PUBLIC_ENTRIES
-#endif /* MAPI_TMP_PUBLIC_ENTRIES */
-
-
-/**
- * Generate noop entries.
- */
-#ifdef MAPI_TMP_NOOP_ARRAY
-#ifdef DEBUG
-# define MAPI_ABI_ENTRY(ret, name, params) \
- static ret MAPI_ABI_ATTR U_CONCAT(noop_, name) params
-# define MAPI_ABI_CODE(ret, name, args) \
- { \
- noop_warn(U_CONCAT_STR(MAPI_ABI_PREFIX, name)); \
- }
-# define MAPI_ABI_CODE_RETURN(ret, name, args) \
- { \
- noop_warn(U_CONCAT_STR(MAPI_ABI_PREFIX, name)); \
- return (ret) 0; \
- }
-# include MAPI_ABI_HEADER
-
-/* define the noop function array that may be casted to mapi_table */
-const mapi_func table_noop_array[] = {
-# define MAPI_ABI_ENTRY(ret, name, params) \
- (mapi_func) U_CONCAT(noop_, name),
-# define MAPI_DYNAMIC_ENTRY(ret, name, params) \
- (mapi_func) noop_generic,
-# include MAPI_ABI_HEADER
- (mapi_func) noop_generic
-};
-
-#else /* DEBUG */
-
-const mapi_func table_noop_array[] = {
-# define MAPI_ABI_ENTRY(ret, name, params) \
- (mapi_func) noop_generic,
-# define MAPI_DYNAMIC_ENTRY(ret, name, params) \
- (mapi_func) noop_generic,
-# include MAPI_ABI_HEADER
- (mapi_func) noop_generic
-};
-
-#endif /* DEBUG */
-#undef MAPI_TMP_NOOP_ARRAY
-#endif /* MAPI_TMP_NOOP_ARRAY */
-
-
-#ifdef MAPI_TMP_STUB_ASM_GCC
-# define STUB_ASM_ALIAS(func, to) \
- ".globl " func "\n" \
- ".set " func ", " to
-# define STUB_ASM_HIDE(func) \
- ".hidden " func
-
-# define MAPI_ABI_ENTRY(ret, name, params) \
- __asm__(STUB_ASM_ENTRY(U_CONCAT_STR(MAPI_ABI_PREFIX, name)));
-# define MAPI_ABI_CODE(ret, name, args) \
- __asm__(STUB_ASM_CODE(U_STRINGIFY(MAPI_SLOT_ ## name)));
-# define MAPI_ALIAS_ENTRY(alias, ret, name, params) \
- __asm__(STUB_ASM_ALIAS(U_CONCAT_STR(MAPI_ABI_PREFIX, name), \
- U_CONCAT_STR(MAPI_ABI_PREFIX, alias)));
-# define MAPI_ABI_ENTRY_HIDDEN(ret, name, params) \
- __asm__(STUB_ASM_HIDE(U_CONCAT_STR(MAPI_ABI_PREFIX, name))); \
- MAPI_ABI_ENTRY(ret, name, params);
-# define MAPI_ALIAS_ENTRY_HIDDEN(alias, ret, name, params) \
- __asm__(STUB_ASM_HIDE(U_CONCAT_STR(MAPI_ABI_PREFIX, name))); \
- MAPI_ALIAS_ENTRY(alias, ret, name, params);
-# include MAPI_ABI_HEADER
-#undef MAPI_TMP_STUB_ASM_GCC
-#endif /* MAPI_TMP_STUB_ASM_GCC */
+#include MAPI_ABI_HEADER