Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,8 @@ SHARED_LIB= $(SHARED_LIB_PREFIX)lautoc$(SHARED_LIB_SUFFIX)
STATIC_LIB= $(STATIC_LIB_PREFIX)lautoc$(STATIC_LIB_SUFFIX)

ifeq ($(findstring Linux,$(PLATFORM)),Linux)
LUA_INCLUDE_DIR?= -I/usr/include/lua5.2/
LUA_LIBRARY?= -llua5.2
LUA_INCLUDE_DIR?= -I/usr/include/lua/
LUA_LIBRARY?= -llua
LAC_CFLAGS+= -fPIC
LAC_LDFLAGS+= -fPIC
SHARED_LIB_PREFIX:=lib
Expand All @@ -29,8 +29,8 @@ ifeq ($(findstring Linux,$(PLATFORM)),Linux)
STATIC_LIB_SUFFIX:=.a
EXE_SUFFIX:=
else ifeq ($(findstring Darwin,$(PLATFORM)),Darwin)
LUA_INCLUDE_DIR?= -I/usr/include/lua5.2/
LUA_LIBRARY?= -llua5.2
LUA_INCLUDE_DIR?= -I/usr/local/include
LUA_LIBRARY?= -llua
LAC_CFLAGS+= -fPIC
LAC_LDFLAGS+= -fPIC
SHARED_LIB_PREFIX:=lib
Expand All @@ -53,7 +53,7 @@ endif
all: $(SHARED_LIB) $(STATIC_LIB)

$(SHARED_LIB): $(LAC)
$(CC) $^ $(CFLAGS) $(LAC_CFLAGS) $(LAC_CPPFLAGS) $(LDFLAGS) $(LAC_LDFLAGS) $(LAC_LIBS) -shared -o $@
$(CC) $^ $(CFLAGS) $(LAC_CFLAGS) $(LAC_CPPFLAGS) $(LDFLAGS) $(LAC_LDFLAGS) $(LAC_LIBS) -shared -o $@

$(STATIC_LIB): $(LAC)
$(CC) $^ $(CFLAGS) $(LAC_CFLAGS) $(LAC_CPPFLAGS) -c
Expand All @@ -64,7 +64,7 @@ $(STATIC_LIB): $(LAC)
examples: $(EXAMPLES_OUT)

examples/example_%$(EXE_SUFFIX): examples/example_%.c $(LAC)
$(CC) $^ $(CFLAGS) $(LAC_CFLAGS) $(LAC_CPPFLAGS) $(LDFLAGS) $(LAC_LDFLAGS) $(LAC_LIBS) -o $@
$(CC) $^ $(CFLAGS) $(LAC_CFLAGS) $(LAC_CPPFLAGS) $(LDFLAGS) $(LAC_LDFLAGS) $(LAC_LIBS) -o $@

# Clean

Expand Down
4 changes: 4 additions & 0 deletions lautoc.h
Original file line number Diff line number Diff line change
Expand Up @@ -203,7 +203,11 @@ enum {
LUAA_ARGUMENT_STACK_SIZE = 2048
};

#ifdef __clang__
typedef void (^luaA_Func)(void*, void*);
#else
typedef void (*luaA_Func)(void*, void*);
#endif

int luaA_call(lua_State* L, void* func_ptr);
int luaA_call_name(lua_State* L, const char* func_name);
Expand Down
81 changes: 45 additions & 36 deletions lautocall.h
Original file line number Diff line number Diff line change
Expand Up @@ -241,7 +241,7 @@ struct __luaA_wrap_##func { static void __luaA_##func(char* out, char* args) { \
arg9_t a9 = *(arg9_t*)(args+sizeof(arg0_t)+sizeof(arg1_t)+sizeof(arg2_t)+sizeof(arg3_t)+sizeof(arg4_t)+sizeof(arg5_t)+sizeof(arg6_t)+sizeof(arg7_t)+sizeof(arg8_t)); \
func(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9); }; }


#define luaA_function_register0(L, func, ret_t) \
luaA_function_register_type(L, func, (luaA_Func)__luaA_wrap_##func::__luaA_##func, #func, luaA_type(L, ret_t), 0)

Expand All @@ -256,91 +256,100 @@ struct __luaA_wrap_##func { static void __luaA_##func(char* out, char* args) { \

#define luaA_function_register4(L, func, ret_t, arg0_t, arg1_t, arg2_t, arg3_t) \
luaA_function_register_type(L, func, (luaA_Func)__luaA_wrap_##func::__luaA_##func, #func, luaA_type(L, ret_t), 4, luaA_type(L, arg0_t), luaA_type(L, arg1_t), luaA_type(L, arg2_t), luaA_type(L, arg3_t))

#define luaA_function_register5(L, func, ret_t, arg0_t, arg1_t, arg2_t, arg3_t, arg4_t) \
luaA_function_register_type(L, func, (luaA_Func)__luaA_wrap_##func::__luaA_##func, #func, luaA_type(L, ret_t), 5, luaA_type(L, arg0_t), luaA_type(L, arg1_t), luaA_type(L, arg2_t), luaA_type(L, arg3_t), luaA_type(L, arg4_t))

#define luaA_function_register6(L, func, ret_t, arg0_t, arg1_t, arg2_t, arg3_t, arg4_t, arg5_t) \
luaA_function_register_type(L, func, (luaA_Func)__luaA_wrap_##func::__luaA_##func, #func, luaA_type(L, ret_t), 6, luaA_type(L, arg0_t), luaA_type(L, arg1_t), luaA_type(L, arg2_t), luaA_type(L, arg3_t), luaA_type(L, arg4_t), luaA_type(L, arg5_t))

#define luaA_function_register7(L, func, ret_t, arg0_t, arg1_t, arg2_t, arg3_t, arg4_t, arg5_t, arg6_t) \
luaA_function_register_type(L, func, (luaA_Func)__luaA_wrap_##func::__luaA_##func, #func, luaA_type(L, ret_t), 7, luaA_type(L, arg0_t), luaA_type(L, arg1_t), luaA_type(L, arg2_t), luaA_type(L, arg3_t), luaA_type(L, arg4_t), luaA_type(L, arg5_t), luaA_type(L, arg6_t))

#define luaA_function_register8(L, func, ret_t, arg0_t, arg1_t, arg2_t, arg3_t, arg4_t, arg5_t, arg6_t, arg7_t) \
luaA_function_register_type(L, func, (luaA_Func)__luaA_wrap_##func::__luaA_##func, #func, luaA_type(L, ret_t), 8, luaA_type(L, arg0_t), luaA_type(L, arg1_t), luaA_type(L, arg2_t), luaA_type(L, arg3_t), luaA_type(L, arg4_t), luaA_type(L, arg5_t), luaA_type(L, arg6_t), luaA_type(L, arg7_t))

#define luaA_function_register9(L, func, ret_t, arg0_t, arg1_t, arg2_t, arg3_t, arg4_t, arg5_t, arg6_t, arg7_t, arg8_t) \
luaA_function_register_type(L, func, (luaA_Func)__luaA_wrap_##func::__luaA_##func, #func, luaA_type(L, ret_t), 9, luaA_type(L, arg0_t), luaA_type(L, arg1_t), luaA_type(L, arg2_t), luaA_type(L, arg3_t), luaA_type(L, arg4_t), luaA_type(L, arg5_t), luaA_type(L, arg6_t), luaA_type(L, arg7_t), luaA_type(L, arg8_t))

#define luaA_function_register10(L, func, ret_t, arg0_t, arg1_t, arg2_t, arg3_t, arg4_t, arg5_t, arg6_t, arg7_t, arg8_t, arg9_t) \
luaA_function_register_type(L, func, (luaA_Func)__luaA_wrap_##func::__luaA_##func, #func, luaA_type(L, ret_t), 10, luaA_type(L, arg0_t), luaA_type(L, arg1_t), luaA_type(L, arg2_t), luaA_type(L, arg3_t), luaA_type(L, arg4_t), luaA_type(L, arg5_t), luaA_type(L, arg6_t), luaA_type(L, arg7_t), luaA_type(L, arg8_t), luaA_type(L, arg9_t))



#else


#ifdef __clang__
#define __luaA_func_s void(^
#define __luaA_func_e )(void*, void*) = ^
#else
#define __luaA_func_s void
#define __luaA_func_e
#endif


#define luaA_function_declare0(func, ret_t) \
void __luaA_##func(void* out, void* args) { \
__luaA_func_s __luaA_##func __luaA_func_e(void* out, void* args) { \
*(ret_t*)out = func(); }

#define luaA_function_declare0_void(func, ret_t) \
void __luaA_##func(void* out, void* args) { \
__luaA_func_s __luaA_##func __luaA_func_e(void* out, void* args) { \
func(); }

#define luaA_function_declare1(func, ret_t, arg0_t) \
void __luaA_##func(void* out, void* args) { \
__luaA_func_s __luaA_##func __luaA_func_e(void* out, void* args) { \
arg0_t a0 = *(arg0_t*)args; \
*(ret_t*)out = func(a0); }

#define luaA_function_declare1_void(func, ret_t, arg0_t) \
void __luaA_##func(void* out, void* args) { \
__luaA_func_s __luaA_##func __luaA_func_e(void* out, void* args) { \
arg0_t a0 = *(arg0_t*)args; \
func(a0); }

#define luaA_function_declare2(func, ret_t, arg0_t, arg1_t) \
void __luaA_##func(void* out, void* args) { \
__luaA_func_s __luaA_##func __luaA_func_e(void* out, void* args) { \
arg0_t a0 = *(arg0_t*)args; \
arg1_t a1 = *(arg1_t*)(args+sizeof(arg0_t)); \
*(ret_t*)out = func(a0, a1); }

#define luaA_function_declare2_void(func, ret_t, arg0_t, arg1_t) \
void __luaA_##func(void* out, void* args) { \
__luaA_func_s __luaA_##func __luaA_func_e(void* out, void* args) { \
arg0_t a0 = *(arg0_t*)args; \
arg1_t a1 = *(arg1_t*)(args+sizeof(arg0_t)); \
func(a0, a1); }

#define luaA_function_declare3(func, ret_t, arg0_t, arg1_t, arg2_t) \
void __luaA_##func(void* out, void* args) { \
__luaA_func_s __luaA_##func __luaA_func_e(void* out, void* args) { \
arg0_t a0 = *(arg0_t*)args; \
arg1_t a1 = *(arg1_t*)(args+sizeof(arg0_t)); \
arg2_t a2 = *(arg2_t*)(args+sizeof(arg0_t)+sizeof(arg1_t)); \
*(ret_t*)out = func(a0, a1, a2); }

#define luaA_function_declare3_void(func, ret_t, arg0_t, arg1_t, arg2_t) \
void __luaA_##func(void* out, void* args) { \
__luaA_func_s __luaA_##func __luaA_func_e(void* out, void* args) { \
arg0_t a0 = *(arg0_t*)args; \
arg1_t a1 = *(arg1_t*)(args+sizeof(arg0_t)); \
arg2_t a2 = *(arg2_t*)(args+sizeof(arg0_t)+sizeof(arg1_t)); \
func(a0, a1, a2); }

#define luaA_function_declare4(func, ret_t, arg0_t, arg1_t, arg2_t, arg3_t) \
void __luaA_##func(void* out, void* args) { \
__luaA_func_s __luaA_##func __luaA_func_e(void* out, void* args) { \
arg0_t a0 = *(arg0_t*)args; \
arg1_t a1 = *(arg1_t*)(args+sizeof(arg0_t)); \
arg2_t a2 = *(arg2_t*)(args+sizeof(arg0_t)+sizeof(arg1_t)); \
arg3_t a3 = *(arg3_t*)(args+sizeof(arg0_t)+sizeof(arg1_t)+sizeof(arg2_t)); \
*(ret_t*)out = func(a0, a1, a2, a3); }

#define luaA_function_declare4_void(func, ret_t, arg0_t, arg1_t, arg2_t, arg3_t) \
void __luaA_##func(void* out, void* args) { \
__luaA_func_s __luaA_##func __luaA_func_e(void* out, void* args) { \
arg0_t a0 = *(arg0_t*)args; \
arg1_t a1 = *(arg1_t*)(args+sizeof(arg0_t)); \
arg2_t a2 = *(arg2_t*)(args+sizeof(arg0_t)+sizeof(arg1_t)); \
arg3_t a3 = *(arg3_t*)(args+sizeof(arg0_t)+sizeof(arg1_t)+sizeof(arg2_t)); \
func(a0, a1, a2, a3); }

#define luaA_function_declare5(func, ret_t, arg0_t, arg1_t, arg2_t, arg3_t, arg4_t) \
void __luaA_##func(void* out, void* args) { \
__luaA_func_s __luaA_##func __luaA_func_e(void* out, void* args) { \
arg0_t a0 = *(arg0_t*)args; \
arg1_t a1 = *(arg1_t*)(args+sizeof(arg0_t)); \
arg2_t a2 = *(arg2_t*)(args+sizeof(arg0_t)+sizeof(arg1_t)); \
Expand All @@ -349,7 +358,7 @@ void __luaA_##func(void* out, void* args) { \
*(ret_t*)out = func(a0, a1, a2, a3, a4); }

#define luaA_function_declare5_void(func, ret_t, arg0_t, arg1_t, arg2_t, arg3_t, arg4_t) \
void __luaA_##func(void* out, void* args) { \
__luaA_func_s __luaA_##func __luaA_func_e(void* out, void* args) { \
arg0_t a0 = *(arg0_t*)args; \
arg1_t a1 = *(arg1_t*)(args+sizeof(arg0_t)); \
arg2_t a2 = *(arg2_t*)(args+sizeof(arg0_t)+sizeof(arg1_t)); \
Expand All @@ -358,7 +367,7 @@ void __luaA_##func(void* out, void* args) { \
func(a0, a1, a2, a3, a4); }

#define luaA_function_declare6(func, ret_t, arg0_t, arg1_t, arg2_t, arg3_t, arg4_t, arg5_t) \
void __luaA_##func(void* out, void* args) { \
__luaA_func_s __luaA_##func __luaA_func_e(void* out, void* args) { \
arg0_t a0 = *(arg0_t*)args; \
arg1_t a1 = *(arg1_t*)(args+sizeof(arg0_t)); \
arg2_t a2 = *(arg2_t*)(args+sizeof(arg0_t)+sizeof(arg1_t)); \
Expand All @@ -368,7 +377,7 @@ void __luaA_##func(void* out, void* args) { \
*(ret_t*)out = func(a0, a1, a2, a3, a4, a5); }

#define luaA_function_declare6_void(func, ret_t, arg0_t, arg1_t, arg2_t, arg3_t, arg4_t, arg5_t) \
void __luaA_##func(void* out, void* args) { \
__luaA_func_s __luaA_##func __luaA_func_e(void* out, void* args) { \
arg0_t a0 = *(arg0_t*)args; \
arg1_t a1 = *(arg1_t*)(args+sizeof(arg0_t)); \
arg2_t a2 = *(arg2_t*)(args+sizeof(arg0_t)+sizeof(arg1_t)); \
Expand All @@ -378,7 +387,7 @@ void __luaA_##func(void* out, void* args) { \
func(a0, a1, a2, a3, a4, a5); }

#define luaA_function_declare7(func, ret_t, arg0_t, arg1_t, arg2_t, arg3_t, arg4_t, arg5_t, arg6_t) \
void __luaA_##func(void* out, void* args) { \
__luaA_func_s __luaA_##func __luaA_func_e(void* out, void* args) { \
arg0_t a0 = *(arg0_t*)args; \
arg1_t a1 = *(arg1_t*)(args+sizeof(arg0_t)); \
arg2_t a2 = *(arg2_t*)(args+sizeof(arg0_t)+sizeof(arg1_t)); \
Expand All @@ -389,7 +398,7 @@ void __luaA_##func(void* out, void* args) { \
*(ret_t*)out = func(a0, a1, a2, a3, a4, a5, a6); }

#define luaA_function_declare7_void(func, ret_t, arg0_t, arg1_t, arg2_t, arg3_t, arg4_t, arg5_t, arg6_t) \
void __luaA_##func(void* out, void* args) { \
__luaA_func_s __luaA_##func __luaA_func_e(void* out, void* args) { \
arg0_t a0 = *(arg0_t*)args; \
arg1_t a1 = *(arg1_t*)(args+sizeof(arg0_t)); \
arg2_t a2 = *(arg2_t*)(args+sizeof(arg0_t)+sizeof(arg1_t)); \
Expand All @@ -400,7 +409,7 @@ void __luaA_##func(void* out, void* args) { \
func(a0, a1, a2, a3, a4, a5, a6); }

#define luaA_function_declare8(func, ret_t, arg0_t, arg1_t, arg2_t, arg3_t, arg4_t, arg5_t, arg6_t, arg7_t) \
void __luaA_##func(void* out, void* args) { \
__luaA_func_s __luaA_##func __luaA_func_e(void* out, void* args) { \
arg0_t a0 = *(arg0_t*)args; \
arg1_t a1 = *(arg1_t*)(args+sizeof(arg0_t)); \
arg2_t a2 = *(arg2_t*)(args+sizeof(arg0_t)+sizeof(arg1_t)); \
Expand All @@ -412,7 +421,7 @@ void __luaA_##func(void* out, void* args) { \
*(ret_t*)out = func(a0, a1, a2, a3, a4, a5, a6, a7); }

#define luaA_function_declare8_void(func, ret_t, arg0_t, arg1_t, arg2_t, arg3_t, arg4_t, arg5_t, arg6_t, arg7_t) \
void __luaA_##func(void* out, void* args) { \
__luaA_func_s __luaA_##func __luaA_func_e(void* out, void* args) { \
arg0_t a0 = *(arg0_t*)args; \
arg1_t a1 = *(arg1_t*)(args+sizeof(arg0_t)); \
arg2_t a2 = *(arg2_t*)(args+sizeof(arg0_t)+sizeof(arg1_t)); \
Expand All @@ -424,7 +433,7 @@ void __luaA_##func(void* out, void* args) { \
func(a0, a1, a2, a3, a4, a5, a6, a7); }

#define luaA_function_declare9(func, ret_t, arg0_t, arg1_t, arg2_t, arg3_t, arg4_t, arg5_t, arg6_t, arg7_t, arg8_t) \
void __luaA_##func(void* out, void* args) { \
__luaA_func_s __luaA_##func __luaA_func_e(void* out, void* args) { \
arg0_t a0 = *(arg0_t*)args; \
arg1_t a1 = *(arg1_t*)(args+sizeof(arg0_t)); \
arg2_t a2 = *(arg2_t*)(args+sizeof(arg0_t)+sizeof(arg1_t)); \
Expand All @@ -437,7 +446,7 @@ void __luaA_##func(void* out, void* args) { \
*(ret_t*)out = func(a0, a1, a2, a3, a4, a5, a6, a7, a8); }

#define luaA_function_declare9_void(func, ret_t, arg0_t, arg1_t, arg2_t, arg3_t, arg4_t, arg5_t, arg6_t, arg7_t, arg8_t) \
void __luaA_##func(void* out, void* args) { \
__luaA_func_s __luaA_##func __luaA_func_e(void* out, void* args) { \
arg0_t a0 = *(arg0_t*)args; \
arg1_t a1 = *(arg1_t*)(args+sizeof(arg0_t)); \
arg2_t a2 = *(arg2_t*)(args+sizeof(arg0_t)+sizeof(arg1_t)); \
Expand All @@ -450,7 +459,7 @@ void __luaA_##func(void* out, void* args) { \
func(a0, a1, a2, a3, a4, a5, a6, a7, a8); }

#define luaA_function_declare10(func, ret_t, arg0_t, arg1_t, arg2_t, arg3_t, arg4_t, arg5_t, arg6_t, arg7_t, arg8_t, arg9_t) \
void __luaA_##func(void* out, void* args) { \
__luaA_func_s __luaA_##func __luaA_func_e(void* out, void* args) { \
arg0_t a0 = *(arg0_t*)args; \
arg1_t a1 = *(arg1_t*)(args+sizeof(arg0_t)); \
arg2_t a2 = *(arg2_t*)(args+sizeof(arg0_t)+sizeof(arg1_t)); \
Expand All @@ -464,7 +473,7 @@ void __luaA_##func(void* out, void* args) { \
*(ret_t*)out = func(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9); }

#define luaA_function_declare10_void(func, ret_t, arg0_t, arg1_t, arg2_t, arg3_t, arg4_t, arg5_t, arg6_t, arg7_t, arg8_t, arg9_t) \
void __luaA_##func(void* out, void* args) { \
__luaA_func_s __luaA_##func __luaA_func_e(void* out, void* args) { \
arg0_t a0 = *(arg0_t*)args; \
arg1_t a1 = *(arg1_t*)(args+sizeof(arg0_t)); \
arg2_t a2 = *(arg2_t*)(args+sizeof(arg0_t)+sizeof(arg1_t)); \
Expand All @@ -477,7 +486,7 @@ void __luaA_##func(void* out, void* args) { \
arg9_t a9 = *(arg9_t*)(args+sizeof(arg0_t)+sizeof(arg1_t)+sizeof(arg2_t)+sizeof(arg3_t)+sizeof(arg4_t)+sizeof(arg5_t)+sizeof(arg6_t)+sizeof(arg7_t)+sizeof(arg8_t)); \
func(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9); }


#define luaA_function_register0(L, func, ret_t) \
luaA_function_register_type(L, func, __luaA_##func, #func, luaA_type(L, ret_t), 0)

Expand All @@ -492,26 +501,26 @@ void __luaA_##func(void* out, void* args) { \

#define luaA_function_register4(L, func, ret_t, arg0_t, arg1_t, arg2_t, arg3_t) \
luaA_function_register_type(L, func, __luaA_##func, #func, luaA_type(L, ret_t), 4, luaA_type(L, arg0_t), luaA_type(L, arg1_t), luaA_type(L, arg2_t), luaA_type(L, arg3_t))

#define luaA_function_register5(L, func, ret_t, arg0_t, arg1_t, arg2_t, arg3_t, arg4_t) \
luaA_function_register_type(L, func, __luaA_##func, #func, luaA_type(L, ret_t), 5, luaA_type(L, arg0_t), luaA_type(L, arg1_t), luaA_type(L, arg2_t), luaA_type(L, arg3_t), luaA_type(L, arg4_t))

#define luaA_function_register6(L, func, ret_t, arg0_t, arg1_t, arg2_t, arg3_t, arg4_t, arg5_t) \
luaA_function_register_type(L, func, __luaA_##func, #func, luaA_type(L, ret_t), 6, luaA_type(L, arg0_t), luaA_type(L, arg1_t), luaA_type(L, arg2_t), luaA_type(L, arg3_t), luaA_type(L, arg4_t), luaA_type(L, arg5_t))

#define luaA_function_register7(L, func, ret_t, arg0_t, arg1_t, arg2_t, arg3_t, arg4_t, arg5_t, arg6_t) \
luaA_function_register_type(L, func, __luaA_##func, #func, luaA_type(L, ret_t), 7, luaA_type(L, arg0_t), luaA_type(L, arg1_t), luaA_type(L, arg2_t), luaA_type(L, arg3_t), luaA_type(L, arg4_t), luaA_type(L, arg5_t), luaA_type(L, arg6_t))

#define luaA_function_register8(L, func, ret_t, arg0_t, arg1_t, arg2_t, arg3_t, arg4_t, arg5_t, arg6_t, arg7_t) \
luaA_function_register_type(L, func, __luaA_##func, #func, luaA_type(L, ret_t), 8, luaA_type(L, arg0_t), luaA_type(L, arg1_t), luaA_type(L, arg2_t), luaA_type(L, arg3_t), luaA_type(L, arg4_t), luaA_type(L, arg5_t), luaA_type(L, arg6_t), luaA_type(L, arg7_t))

#define luaA_function_register9(L, func, ret_t, arg0_t, arg1_t, arg2_t, arg3_t, arg4_t, arg5_t, arg6_t, arg7_t, arg8_t) \
luaA_function_register_type(L, func, __luaA_##func, #func, luaA_type(L, ret_t), 9, luaA_type(L, arg0_t), luaA_type(L, arg1_t), luaA_type(L, arg2_t), luaA_type(L, arg3_t), luaA_type(L, arg4_t), luaA_type(L, arg5_t), luaA_type(L, arg6_t), luaA_type(L, arg7_t), luaA_type(L, arg8_t))

#define luaA_function_register10(L, func, ret_t, arg0_t, arg1_t, arg2_t, arg3_t, arg4_t, arg5_t, arg6_t, arg7_t, arg8_t, arg9_t) \
luaA_function_register_type(L, func, __luaA_##func, #func, luaA_type(L, ret_t), 10, luaA_type(L, arg0_t), luaA_type(L, arg1_t), luaA_type(L, arg2_t), luaA_type(L, arg3_t), luaA_type(L, arg4_t), luaA_type(L, arg5_t), luaA_type(L, arg6_t), luaA_type(L, arg7_t), luaA_type(L, arg8_t), luaA_type(L, arg9_t))


#endif

#endif