#ifndef _OBJC_ABI_H
#define _OBJC_ABI_H
#include <malloc/malloc.h>
#include <objc/objc.h>
#include <objc/runtime.h>
#include <objc/message.h>
OBJC_EXPORT void _objcInit(void)
__OSX_AVAILABLE_STARTING(__MAC_10_0, __IPHONE_2_0);
OBJC_EXPORT id objc_getProperty(id self, SEL _cmd, ptrdiff_t offset, BOOL atomic)
__OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0);
OBJC_EXPORT void objc_setProperty(id self, SEL _cmd, ptrdiff_t offset, id newValue, BOOL atomic, BOOL shouldCopy)
__OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0);
OBJC_EXPORT void objc_copyStruct(void *dest, const void *src, ptrdiff_t size, BOOL atomic, BOOL hasStrong)
__OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0);
#if __OBJC2__
OBJC_EXPORT IMP _objc_empty_vtable
__OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0);
#endif
OBJC_EXPORT struct objc_cache _objc_empty_cache
__OSX_AVAILABLE_STARTING(__MAC_10_0, __IPHONE_2_0);
#if __OBJC2__
OBJC_EXPORT id objc_msgSendSuper2(struct objc_super *super, SEL op, ...)
__OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0);
OBJC_EXPORT void objc_msgSendSuper2_stret(struct objc_super *super, SEL op,...)
__OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0);
OBJC_EXPORT id objc_msgSend_noarg(id self, SEL _cmd)
__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0);
#endif
#if __OBJC2__
OBJC_EXPORT id objc_msgSend_debug(id self, SEL op, ...)
__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0);
OBJC_EXPORT id objc_msgSendSuper2_debug(struct objc_super *super, SEL op, ...)
__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0);
OBJC_EXPORT void objc_msgSend_stret_debug(id self, SEL op, ...)
__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0);
OBJC_EXPORT void objc_msgSendSuper2_stret_debug(struct objc_super *super, SEL op,...)
__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0);
# if defined(__i386__)
OBJC_EXPORT double objc_msgSend_fpret_debug(id self, SEL op, ...)
__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0);
# elif defined(__x86_64__)
OBJC_EXPORT long double objc_msgSend_fpret_debug(id self, SEL op, ...)
__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0);
# if __STDC_VERSION__ >= 199901L
OBJC_EXPORT _Complex long double objc_msgSend_fp2ret_debug(id self, SEL op, ...)
__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0);
# else
OBJC_EXPORT void objc_msgSend_fp2ret_debug(id self, SEL op, ...)
__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0);
# endif
# endif
#endif
#if __OBJC2__ && defined(__x86_64__)
OBJC_EXPORT id objc_msgSend_fixup(id self, SEL op, ...)
__OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_NA);
OBJC_EXPORT void objc_msgSend_stret_fixup(id self, SEL op, ...)
__OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_NA);
OBJC_EXPORT id objc_msgSendSuper2_fixup(struct objc_super *super, SEL op, ...)
__OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_NA);
OBJC_EXPORT void objc_msgSendSuper2_stret_fixup(struct objc_super *super, SEL op,...)
__OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_NA);
OBJC_EXPORT long double objc_msgSend_fpret_fixup(id self, SEL op, ...)
__OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_NA);
# if __STDC_VERSION__ >= 199901L
OBJC_EXPORT _Complex long double objc_msgSend_fp2ret_fixup(id self, SEL op, ...)
__OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_NA);
# else
OBJC_EXPORT void objc_msgSend_fp2ret_fixup(id self, SEL op, ...)
__OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_NA);
# endif
#endif
#if __OBJC2__
#if !defined(__cplusplus)
OBJC_EXPORT const void *objc_ehtype_vtable[]
__OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0);
OBJC_EXPORT struct objc_typeinfo OBJC_EHTYPE_id
__OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0);
#endif
struct _Unwind_Exception;
struct _Unwind_Context;
OBJC_EXPORT int
__objc_personality_v0(int version,
int actions,
uint64_t exceptionClass,
struct _Unwind_Exception *exceptionObject,
struct _Unwind_Context *context)
__OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0);
#endif
OBJC_EXPORT id objc_retainBlock(id)
__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0);
#endif