/* Functions that are only for the linklib. */
bool objc_init(unsigned int, struct objc_libc *, FILE *, FILE *);
/* All other functions. */
void __objc_exec_class(void *);
IMP objc_msg_lookup(id, SEL);
IMP objc_msg_lookup_stret(id, SEL);
IMP objc_msg_lookup_super(struct objc_super *, SEL);
IMP objc_msg_lookup_super_stret(struct objc_super *, SEL);
Class objc_lookUpClass(const char *);
Class objc_getClass(const char *);
Class objc_getRequiredClass(const char *);
Class objc_lookup_class(const char *);
Class objc_get_class(const char *);
void objc_exception_throw(id);
int objc_sync_enter(id);
int objc_sync_exit(id);
id objc_getProperty(id, SEL, ptrdiff_t, bool);
void objc_setProperty(id, SEL, ptrdiff_t, id, bool, signed char);
void objc_getPropertyStruct(void *, const void *, ptrdiff_t, bool, bool);
void objc_setPropertyStruct(void *, const void *, ptrdiff_t, bool, bool);
void objc_enumerationMutation(id);
int __gnu_objc_personality_v0(int, int, uint64_t *, void *, void *);
id objc_retain(id);
id objc_retainBlock(id);
id objc_retainAutorelease(id);
void objc_release(id);
id objc_autorelease(id);
id objc_autoreleaseReturnValue(id);
id objc_retainAutoreleaseReturnValue(id);
id objc_retainAutoreleasedReturnValue(id);
id objc_storeStrong(id *, id);
id objc_storeWeak(id *, id);
id objc_loadWeakRetained(id *);
id objc_initWeak(id *, id);
void objc_destroyWeak(id *);
id objc_loadWeak(id *);
void objc_copyWeak(id *, id *);
void objc_moveWeak(id *, id *);
SEL sel_registerName(const char *);
const char *sel_getName(SEL);
bool sel_isEqual(SEL, SEL);
Class objc_allocateClassPair(Class, const char *, size_t);
void objc_registerClassPair(Class);
unsigned int objc_getClassList(Class *, unsigned int);
Class *objc_copyClassList(unsigned int *);
bool class_isMetaClass(Class);
const char *class_getName(Class);
Class class_getSuperclass(Class);
unsigned long class_getInstanceSize(Class);
bool class_respondsToSelector(Class, SEL);
bool class_conformsToProtocol(Class, Protocol *);
IMP class_getMethodImplementation(Class, SEL);
IMP class_getMethodImplementation_stret(Class, SEL);
const char *class_getMethodTypeEncoding(Class, SEL);
bool class_addMethod(Class class_, SEL selector, IMP, const char *);
IMP class_replaceMethod(Class, SEL, IMP, const char *);
Class object_getClass(id);
Class object_setClass(id, Class);
const char *object_getClassName(id);
const char *protocol_getName(Protocol *);
bool protocol_isEqual(Protocol *, Protocol *);
bool protocol_conformsToProtocol(Protocol *, Protocol *);
void objc_exit(void);
objc_uncaught_exception_handler_t objc_setUncaughtExceptionHandler(objc_uncaught_exception_handler_t);
void objc_setForwardHandler(IMP, IMP);
void objc_setEnumerationMutationHandler(objc_enumeration_mutation_handler_t);
void objc_zero_weak_references(id);
