OBJC_EXPORT NXUncaughtExceptionHandler *_NXUncaughtExceptionHandler; OBJC_EXPORT void _NXAddHandler( NXHandler *handler ); OBJC_EXPORT void _NXRemoveHandler( NXHandler *handler ); OBJC_EXPORT OBJC_EXPORT void NXSetExceptionRaiser(NXExceptionRaiser *proc); OBJC_EXPORT NXExceptionRaiser *NXGetExceptionRaiser(void); OBJC_EXPORT NXExceptionRaiser NXDefaultExceptionRaiser; OBJC_EXPORT void NXAllocErrorData(int size, void **data); OBJC_EXPORT void NXResetErrorData(void); OBJC_EXPORT NXHashTable *NXCreateHashTableFromZone (NXHashTablePrototype prototype, unsigned capacity, const void *info, void *z); OBJC_EXPORT NXHashTable *NXCreateHashTable (NXHashTablePrototype prototype, unsigned capacity, const void *info); OBJC_EXPORT void NXFreeHashTable (NXHashTable *table); OBJC_EXPORT void NXEmptyHashTable (NXHashTable *table); OBJC_EXPORT void NXResetHashTable (NXHashTable *table); OBJC_EXPORT BOOL NXCompareHashTables (NXHashTable *table1, NXHashTable *table2); OBJC_EXPORT NXHashTable *NXCopyHashTable (NXHashTable *table); OBJC_EXPORT unsigned NXCountHashTable (NXHashTable *table); OBJC_EXPORT int NXHashMember (NXHashTable *table, const void *data); OBJC_EXPORT void *NXHashGet (NXHashTable *table, const void *data); OBJC_EXPORT void *NXHashInsert (NXHashTable *table, const void *data); OBJC_EXPORT void *NXHashInsertIfAbsent (NXHashTable *table, const void *data); OBJC_EXPORT void *NXHashRemove (NXHashTable *table, const void *data); OBJC_EXPORT NXHashState NXInitHashState(NXHashTable *table); OBJC_EXPORT int NXNextHashState(NXHashTable *table, NXHashState *state, void **data); OBJC_EXPORT uintptr_t NXPtrHash(const void *info, const void *data); OBJC_EXPORT uintptr_t NXStrHash(const void *info, const void *data); OBJC_EXPORT int NXPtrIsEqual(const void *info, const void *data1, const void *data2); OBJC_EXPORT int NXStrIsEqual(const void *info, const void *data1, const void *data2); OBJC_EXPORT void NXNoEffectFree(const void *info, void *data); OBJC_EXPORT void NXReallyFree(const void *info, void *data); OBJC_EXPORT const NXHashTablePrototype NXPtrPrototype; OBJC_EXPORT const NXHashTablePrototype NXStrPrototype; OBJC_EXPORT const NXHashTablePrototype NXPtrStructKeyPrototype; OBJC_EXPORT const NXHashTablePrototype NXStrStructKeyPrototype; OBJC_EXPORT NXAtom NXUniqueString(const char *buffer); OBJC_EXPORT NXAtom NXUniqueStringWithLength(const char *buffer, int length); OBJC_EXPORT NXAtom NXUniqueStringNoCopy(const char *string); OBJC_EXPORT char *NXCopyStringBuffer(const char *buffer); OBJC_EXPORT char *NXCopyStringBufferFromZone(const char *buffer, void *z); OBJC_EXPORT NXHashTable *NXCreateHashTableFromZone (NXHashTablePrototype prototype, unsigned capacity, const void *info, void *z); OBJC_EXPORT NXHashTable *NXCreateHashTable (NXHashTablePrototype prototype, unsigned capacity, const void *info); OBJC_EXPORT void NXFreeHashTable (NXHashTable *table); OBJC_EXPORT void NXEmptyHashTable (NXHashTable *table); OBJC_EXPORT void NXResetHashTable (NXHashTable *table); OBJC_EXPORT BOOL NXCompareHashTables (NXHashTable *table1, NXHashTable *table2); OBJC_EXPORT NXHashTable *NXCopyHashTable (NXHashTable *table); OBJC_EXPORT unsigned NXCountHashTable (NXHashTable *table); OBJC_EXPORT int NXHashMember (NXHashTable *table, const void *data); OBJC_EXPORT void *NXHashGet (NXHashTable *table, const void *data); OBJC_EXPORT void *NXHashInsert (NXHashTable *table, const void *data); OBJC_EXPORT void *NXHashInsertIfAbsent (NXHashTable *table, const void *data); OBJC_EXPORT void *NXHashRemove (NXHashTable *table, const void *data); OBJC_EXPORT NXHashState NXInitHashState(NXHashTable *table); OBJC_EXPORT int NXNextHashState(NXHashTable *table, NXHashState *state, void **data); OBJC_EXPORT uintptr_t NXPtrHash(const void *info, const void *data); OBJC_EXPORT uintptr_t NXStrHash(const void *info, const void *data); OBJC_EXPORT int NXPtrIsEqual(const void *info, const void *data1, const void *data2); OBJC_EXPORT int NXStrIsEqual(const void *info, const void *data1, const void *data2); OBJC_EXPORT void NXNoEffectFree(const void *info, void *data); OBJC_EXPORT void NXReallyFree(const void *info, void *data); OBJC_EXPORT const NXHashTablePrototype NXPtrPrototype; OBJC_EXPORT const NXHashTablePrototype NXStrPrototype; OBJC_EXPORT const NXHashTablePrototype NXPtrStructKeyPrototype; OBJC_EXPORT const NXHashTablePrototype NXStrStructKeyPrototype; OBJC_EXPORT NXAtom NXUniqueString(const char *buffer); OBJC_EXPORT NXAtom NXUniqueStringWithLength(const char *buffer, int length); OBJC_EXPORT NXAtom NXUniqueStringNoCopy(const char *string); OBJC_EXPORT char *NXCopyStringBuffer(const char *buffer); OBJC_EXPORT char *NXCopyStringBufferFromZone(const char *buffer, void *z); OBJC_EXPORT id objc_msgSend(id self, SEL op, ...); OBJC_EXPORT id objc_msgSendSuper(struct objc_super *super, SEL op, ...); OBJC_EXPORT void objc_msgSend_stret(id self, SEL op, ...); OBJC_EXPORT void objc_msgSendSuper_stret(struct objc_super *super, SEL op, ...); OBJC_EXPORT id objc_msgSend_stret(id self, SEL op, ...); OBJC_EXPORT id objc_msgSendSuper_stret(struct objc_super *super, SEL op, ...); OBJC_EXPORT void objc_msgSend_stret(void * stretAddr, id self, SEL op, ...); OBJC_EXPORT void objc_msgSendSuper_stret(void * stretAddr, struct objc_super *super, SEL op, ...); OBJC_EXPORT double objc_msgSend_fpret(id self, SEL op, ...); OBJC_EXPORT long double objc_msgSend_fpret(id self, SEL op, ...); OBJC_EXPORT id method_invoke(id receiver, Method m, ...) OBJC_EXPORT void method_invoke_stret(id receiver, Method m, ...) OBJC_EXPORT id objc_msgSendv(id self, SEL op, size_t arg_size, marg_list arg_frame) OBJC2_UNAVAILABLE; OBJC_EXPORT void objc_msgSendv_stret(void *stretAddr, id self, SEL op, size_t arg_size, marg_list arg_frame) OBJC2_UNAVAILABLE; OBJC_EXPORT double objc_msgSendv_fpret(id self, SEL op, unsigned arg_size, marg_list arg_frame) OBJC2_UNAVAILABLE; #if !defined(OBJC_EXPORT) # define OBJC_EXPORT extern "C" # define OBJC_EXPORT extern OBJC_EXPORT void objc_collect(unsigned long options); OBJC_EXPORT BOOL objc_collectingEnabled(void); OBJC_EXPORT void objc_setCollectionThreshold(size_t threshold); OBJC_EXPORT void objc_setCollectionRatio(size_t ratio); OBJC_EXPORT void objc_startCollectorThread(void); OBJC_EXPORT BOOL objc_atomicCompareAndSwapGlobal(id predicate, id replacement, volatile id *objectLocation); OBJC_EXPORT BOOL objc_atomicCompareAndSwapGlobalBarrier(id predicate, id replacement, volatile id *objectLocation); OBJC_EXPORT BOOL objc_atomicCompareAndSwapInstanceVariable(id predicate, id replacement, volatile id *objectLocation); OBJC_EXPORT BOOL objc_atomicCompareAndSwapInstanceVariableBarrier(id predicate, id replacement, volatile id *objectLocation); OBJC_EXPORT id objc_assign_strongCast(id val, id *dest); OBJC_EXPORT id objc_assign_global(id val, id *dest); OBJC_EXPORT id objc_assign_ivar(id value, id dest, ptrdiff_t offset); OBJC_EXPORT void *objc_memmove_collectable(void *dst, const void *src, size_t size); OBJC_EXPORT id objc_read_weak(id *location); OBJC_EXPORT id objc_assign_weak(id value, id *location); OBJC_EXPORT void objc_finalizeOnMainThread(Class cls) OBJC_EXPORT BOOL objc_is_finalized(void *ptr); OBJC_EXPORT void objc_clear_stack(unsigned long options); OBJC_EXPORT BOOL objc_collecting_enabled(void); OBJC_EXPORT void objc_set_collection_threshold(size_t threshold); OBJC_EXPORT void objc_set_collection_ratio(size_t ratio); OBJC_EXPORT void objc_start_collector_thread(void); OBJC_EXPORT id objc_allocate_object(Class cls, int extra); OBJC_EXPORT void objc_collect_if_needed(unsigned long options); OBJC_EXPORT void objc_exception_throw(id exception); OBJC_EXPORT void objc_exception_try_enter(void *localExceptionData); OBJC_EXPORT void objc_exception_try_exit(void *localExceptionData); OBJC_EXPORT id objc_exception_extract(void *localExceptionData); OBJC_EXPORT int objc_exception_match(Class exceptionClass, id exception); OBJC_EXPORT void objc_exception_get_functions(objc_exception_functions_t *table); OBJC_EXPORT void objc_exception_set_functions(objc_exception_functions_t *table); OBJC_EXPORT void objc_exception_throw(id exception); OBJC_EXPORT void objc_exception_rethrow(void); OBJC_EXPORT id objc_begin_catch(void *exc_buf); OBJC_EXPORT void objc_end_catch(void); OBJC_EXPORT uintptr_t objc_addExceptionHandler(objc_exception_handler fn, void *context); OBJC_EXPORT void objc_removeExceptionHandler(uintptr_t token); OBJC_EXPORT objc_exception_preprocessor objc_setExceptionPreprocessor(objc_exception_preprocessor fn); OBJC_EXPORT objc_exception_matcher objc_setExceptionMatcher(objc_exception_matcher fn); OBJC_EXPORT objc_uncaught_exception_handler objc_setUncaughtExceptionHandler(objc_uncaught_exception_handler fn); OBJC_EXPORT long objc_loadModules ( OBJC_EXPORT int objc_loadModule ( OBJC_EXPORT long objc_unloadModules( OBJC_EXPORT int objc_sync_enter(id obj); OBJC_EXPORT int objc_sync_exit(id obj); OBJC_EXPORT int objc_sync_wait(id obj, long long milliSecondsMaxWait); OBJC_EXPORT int objc_sync_notify(id obj); OBJC_EXPORT int objc_sync_notifyAll(id obj); #import // for OBJC_EXPORT OBJC_EXPORT const char *sel_getName(SEL sel); OBJC_EXPORT SEL sel_registerName(const char *str); OBJC_EXPORT const char *object_getClassName(id obj); OBJC_EXPORT void *object_getIndexedIvars(id obj); OBJC_EXPORT BOOL sel_isMapped(SEL sel); OBJC_EXPORT SEL sel_getUid(const char *str); OBJC_EXPORT id object_copy(id obj, size_t size); OBJC_EXPORT id object_dispose(id obj); OBJC_EXPORT Class object_getClass(id obj) OBJC_EXPORT Class object_setClass(id obj, Class cls) OBJC_EXPORT const char *object_getClassName(id obj); OBJC_EXPORT void *object_getIndexedIvars(id obj); OBJC_EXPORT id object_getIvar(id obj, Ivar ivar) OBJC_EXPORT void object_setIvar(id obj, Ivar ivar, id value) OBJC_EXPORT Ivar object_setInstanceVariable(id obj, const char *name, void *value); OBJC_EXPORT Ivar object_getInstanceVariable(id obj, const char *name, void **outValue); OBJC_EXPORT id objc_getClass(const char *name); OBJC_EXPORT id objc_getMetaClass(const char *name); OBJC_EXPORT id objc_lookUpClass(const char *name); OBJC_EXPORT id objc_getRequiredClass(const char *name); OBJC_EXPORT Class objc_getFutureClass(const char *name) OBJC_EXPORT void objc_setFutureClass(Class cls, const char *name) OBJC_EXPORT int objc_getClassList(Class *buffer, int bufferCount); OBJC_EXPORT Protocol *objc_getProtocol(const char *name) OBJC_EXPORT Protocol **objc_copyProtocolList(unsigned int *outCount) OBJC_EXPORT const char *class_getName(Class cls) OBJC_EXPORT BOOL class_isMetaClass(Class cls) OBJC_EXPORT Class class_getSuperclass(Class cls) OBJC_EXPORT Class class_setSuperclass(Class cls, Class newSuper) OBJC_EXPORT int class_getVersion(Class cls); OBJC_EXPORT void class_setVersion(Class cls, int version); OBJC_EXPORT size_t class_getInstanceSize(Class cls) OBJC_EXPORT Ivar class_getInstanceVariable(Class cls, const char *name); OBJC_EXPORT Ivar class_getClassVariable(Class cls, const char *name) OBJC_EXPORT Ivar *class_copyIvarList(Class cls, unsigned int *outCount) OBJC_EXPORT Method class_getInstanceMethod(Class cls, SEL name); OBJC_EXPORT Method class_getClassMethod(Class cls, SEL name); OBJC_EXPORT IMP class_getMethodImplementation(Class cls, SEL name) OBJC_EXPORT IMP class_getMethodImplementation_stret(Class cls, SEL name) OBJC_EXPORT BOOL class_respondsToSelector(Class cls, SEL sel) OBJC_EXPORT Method *class_copyMethodList(Class cls, unsigned int *outCount) OBJC_EXPORT BOOL class_conformsToProtocol(Class cls, Protocol *protocol) OBJC_EXPORT Protocol **class_copyProtocolList(Class cls, unsigned int *outCount) OBJC_EXPORT objc_property_t class_getProperty(Class cls, const char *name) OBJC_EXPORT objc_property_t *class_copyPropertyList(Class cls, unsigned int *outCount) OBJC_EXPORT const char *class_getIvarLayout(Class cls) OBJC_EXPORT const char *class_getWeakIvarLayout(Class cls) OBJC_EXPORT id class_createInstance(Class cls, size_t extraBytes); OBJC_EXPORT Class objc_allocateClassPair(Class superclass, const char *name, OBJC_EXPORT void objc_registerClassPair(Class cls) OBJC_EXPORT Class objc_duplicateClass(Class original, const char *name, OBJC_EXPORT void objc_disposeClassPair(Class cls) OBJC_EXPORT BOOL class_addMethod(Class cls, SEL name, IMP imp, OBJC_EXPORT IMP class_replaceMethod(Class cls, SEL name, IMP imp, OBJC_EXPORT BOOL class_addIvar(Class cls, const char *name, size_t size, OBJC_EXPORT BOOL class_addProtocol(Class cls, Protocol *protocol) OBJC_EXPORT void class_setIvarLayout(Class cls, const char *layout) OBJC_EXPORT void class_setWeakIvarLayout(Class cls, const char *layout) OBJC_EXPORT SEL method_getName(Method m) OBJC_EXPORT IMP method_getImplementation(Method m) OBJC_EXPORT const char *method_getTypeEncoding(Method m) OBJC_EXPORT unsigned int method_getNumberOfArguments(Method m); OBJC_EXPORT char *method_copyReturnType(Method m) OBJC_EXPORT char *method_copyArgumentType(Method m, unsigned int index) OBJC_EXPORT void method_getReturnType(Method m, char *dst, size_t dst_len) OBJC_EXPORT void method_getArgumentType(Method m, unsigned int index, OBJC_EXPORT struct objc_method_description *method_getDescription(Method m) OBJC_EXPORT IMP method_setImplementation(Method m, IMP imp) OBJC_EXPORT void method_exchangeImplementations(Method m1, Method m2) OBJC_EXPORT const char *ivar_getName(Ivar v) OBJC_EXPORT const char *ivar_getTypeEncoding(Ivar v) OBJC_EXPORT ptrdiff_t ivar_getOffset(Ivar v) OBJC_EXPORT const char *property_getName(objc_property_t property) OBJC_EXPORT const char *property_getAttributes(objc_property_t property) OBJC_EXPORT BOOL protocol_conformsToProtocol(Protocol *proto, Protocol *other) OBJC_EXPORT BOOL protocol_isEqual(Protocol *proto, Protocol *other) OBJC_EXPORT const char *protocol_getName(Protocol *p) OBJC_EXPORT struct objc_method_description protocol_getMethodDescription(Protocol *p, SEL aSel, BOOL isRequiredMethod, BOOL isInstanceMethod) OBJC_EXPORT struct objc_method_description *protocol_copyMethodDescriptionList(Protocol *p, BOOL isRequiredMethod, BOOL isInstanceMethod, unsigned int *outCount) OBJC_EXPORT objc_property_t protocol_getProperty(Protocol *proto, const char *name, BOOL isRequiredProperty, BOOL isInstanceProperty) OBJC_EXPORT objc_property_t *protocol_copyPropertyList(Protocol *proto, unsigned int *outCount) OBJC_EXPORT Protocol **protocol_copyProtocolList(Protocol *proto, unsigned int *outCount) OBJC_EXPORT const char **objc_copyImageNames(unsigned int *outCount) OBJC_EXPORT const char *class_getImageName(Class cls) OBJC_EXPORT const char **objc_copyClassNamesForImage(const char *image, OBJC_EXPORT const char *sel_getName(SEL sel); OBJC_EXPORT SEL sel_getUid(const char *str); OBJC_EXPORT SEL sel_registerName(const char *str); OBJC_EXPORT BOOL sel_isEqual(SEL lhs, SEL rhs) OBJC_EXPORT void objc_enumerationMutation(id) OBJC_EXPORT void objc_setEnumerationMutationHandler(void (*handler)(id)) OBJC_EXPORT void objc_setForwardHandler(void *fwd, void *fwd_stret) OBJC_EXPORT BOOL sel_isMapped(SEL sel) OBJC2_UNAVAILABLE; OBJC_EXPORT id object_copyFromZone(id anObject, size_t nBytes, void *z) OBJC2_UNAVAILABLE; OBJC_EXPORT id object_realloc(id anObject, size_t nBytes) OBJC2_UNAVAILABLE; OBJC_EXPORT id object_reallocFromZone(id anObject, size_t nBytes, void *z) OBJC2_UNAVAILABLE; OBJC_EXPORT void *objc_getClasses(void) OBJC2_UNAVAILABLE; OBJC_EXPORT void objc_addClass(Class myClass) OBJC2_UNAVAILABLE; OBJC_EXPORT void objc_setClassHandler(int (*)(const char *)) OBJC2_UNAVAILABLE; OBJC_EXPORT void objc_setMultithreaded (BOOL flag) OBJC2_UNAVAILABLE; OBJC_EXPORT id class_createInstanceFromZone(Class, size_t idxIvars, void *z) OBJC2_UNAVAILABLE; OBJC_EXPORT void class_addMethods(Class, struct objc_method_list *) OBJC2_UNAVAILABLE; OBJC_EXPORT void class_removeMethods(Class, struct objc_method_list *) OBJC2_UNAVAILABLE; OBJC_EXPORT Class class_poseAs(Class imposter, Class original) OBJC2_UNAVAILABLE; OBJC_EXPORT unsigned int method_getSizeOfArguments(Method m) OBJC2_UNAVAILABLE; OBJC_EXPORT unsigned method_getArgumentInfo(struct objc_method *m, int arg, const char **type, int *offset) OBJC2_UNAVAILABLE; OBJC_EXPORT BOOL class_respondsToMethod(Class, SEL) OBJC2_UNAVAILABLE; OBJC_EXPORT IMP class_lookupMethod(Class, SEL) OBJC2_UNAVAILABLE; OBJC_EXPORT Class objc_getOrigClass(const char *name) OBJC2_UNAVAILABLE; OBJC_EXPORT struct objc_method_list *class_nextMethodList(Class, void **) OBJC2_UNAVAILABLE; OBJC_EXPORT id (*_alloc)(Class, size_t) OBJC2_UNAVAILABLE; OBJC_EXPORT id (*_copy)(id, size_t) OBJC2_UNAVAILABLE; OBJC_EXPORT id (*_realloc)(id, size_t) OBJC2_UNAVAILABLE; OBJC_EXPORT id (*_dealloc)(id) OBJC2_UNAVAILABLE; OBJC_EXPORT id (*_zoneAlloc)(Class, size_t, void *) OBJC2_UNAVAILABLE; OBJC_EXPORT id (*_zoneRealloc)(id, size_t, void *) OBJC2_UNAVAILABLE; OBJC_EXPORT id (*_zoneCopy)(id, size_t, void *) OBJC2_UNAVAILABLE; OBJC_EXPORT void (*_error)(id, const char *, va_list) OBJC2_UNAVAILABLE;