@@ -2,80 +2,73 @@ ==basetype struct Library * ==libname objfw_rt_0_68k.library ==bias 30 ==public * Functions that are only for the linklib. -bool objc_init_m68k(unsigned int version, struct objc_libc *libc, FILE *stdout, FILE *stdin)(d0,a0,a1,a2) +bool objc_init(unsigned int version, struct objc_libc *libc, FILE *stdout, FILE *stderr)(d0,a0,a1,a2) * These have a built-in declaration in the compiler that does not use the * registers and thus always need glue. -void __objc_exec_class_m68k(void *_Nonnull module)(a0) -IMP _Nonnull objc_msg_lookup_m68k(id _Nullable object, SEL _Nonnull selector)(a0,a1) -IMP _Nonnull objc_msg_lookup_stret_m68k(id _Nullable object, SEL _Nonnull selector)(a0,a1) -IMP _Nonnull objc_msg_lookup_super_m68k(struct objc_super *_Nonnull super, SEL _Nonnull selector)(a0,a1) -IMP _Nonnull objc_msg_lookup_super_stret_m68k(struct objc_super *_Nonnull super, SEL _Nonnull selector)(a0,a1) -Class _Nullable objc_lookUpClass_m68k(const char *_Nonnull name)(a0) -Class _Nullable objc_getClass_m68k(const char *_Nonnull name)(a0) -Class _Nonnull objc_getRequiredClass_m68k(const char *_Nonnull name)(a0) -Class _Nullable objc_lookup_class_m68k(const char *_Nonnull name)(a0) -Class _Nonnull objc_get_class_m68k(const char *_Nonnull name)(a0) -void objc_exception_throw_m68k(id _Nonnull object)(a0) -int objc_sync_enter_m68k(id _Nullable object)(a0) -int objc_sync_exit_m68k(id _Nullable object)(a0) -id objc_getProperty_m68k(id _Nonnull self, SEL _Nonnull _cmd, ptrdiff_t offset, bool atomic)(a0,a1,d0,d1) -void objc_setProperty_m68k(id _Nonnull self, SEL _Nonnull _cmd, ptrdiff_t offset, id value, bool atomic, signed char copy)(a0,a1,d0,a2,d1,d2) -void objc_getPropertyStruct_m68k(void *_Nonnull dest, const void *_Nonnull src, ptrdiff_t size, bool atomic, bool strong)(a0,a1,d0,d1,d2) -void objc_setPropertyStruct_m68k(void *_Nonnull dest, const void *_Nonnull src, ptrdiff_t size, bool atomic, bool strong)(a0,a1,d0,d1,d2) -void objc_enumerationMutation_m68k(id _Nonnull object)(a0) -int __gnu_objc_personality_v0_m68k(int version, int actions, uint64_t *_Nonnull exClass, void *_Nonnull ex, void *_Nonnull ctx)(d0,d1,d2,a0,a1) -int __gnu_objc_personality_sj0_m68k(int version, int actions, uint64_t *_Nonnull exClass, void *_Nonnull ex, void *_Nonnull ctx)(d0,d1,d2,a0,a1) -id _Nullable objc_retain_m68k(id _Nullable object)(a0) -id _Nullable objc_retainBlock_m68k(id _Nullable block)(a0) -id _Nullable objc_retainAutorelease_m68k(id _Nullable object)(a0) -void objc_release_m68k(id _Nullable object)(a0) -id _Nullable objc_autorelease_m68k(id _Nullable object)(a0) -id _Nullable objc_autoreleaseReturnValue_m68k(id _Nullable object)(a0) -id _Nullable objc_retainAutoreleaseReturnValue_m68k(id _Nullable object)(a0) -id _Nullable objc_retainAutoreleasedReturnValue_m68k(id _Nullable object)(a0) -id _Nullable objc_storeStrong_m68k(id _Nullable *_Nonnull object, id _Nullable value)(a0,a1) -id _Nullable objc_storeWeak_m68k(id _Nullable *_Nonnull object, id _Nullable value)(a0,a1) -id _Nullable objc_loadWeakRetained_m68k(id _Nullable *_Nonnull object)(a0) -id _Nullable objc_initWeak_m68k(id _Nullable *_Nonnull object, id _Nullable value)(a0,a1) -void objc_destroyWeak_m68k(id _Nullable *_Nonnull object)(a0) -id _Nullable objc_loadWeak_m68k(id _Nullable *_Nonnull object)(a0) -void objc_copyWeak_m68k(id _Nullable *_Nonnull dest, id _Nullable *_Nonnull src)(a0,a1) -void objc_moveWeak_m68k(id _Nullable *_Nonnull dest, id _Nullable *_Nonnull src)(a0,a1) -* These only need glue on MorphOS. As none of them are functions that are used -* in hot paths, it's easier to also use the glue on AmigaOS 3, which also has -* the benefit of having all __saveds in a single place. -SEL _Nonnull sel_registerName_m68k(const char *_Nonnull name)(a0) -const char *_Nonnull sel_getName_m68k(SEL _Nonnull selector)(a0) -bool sel_isEqual_m68k(SEL _Nonnull selector1, SEL _Nonnull selector2)(a0,a1) -Class _Nonnull objc_allocateClassPair_m68k(Class _Nullable superclass, const char *_Nonnull name, size_t extraBytes)(a0,a1,d0) -void objc_registerClassPair_m68k(Class _Nonnull class_)(a0) -unsigned int objc_getClassList_m68k(Class _Nonnull *_Nullable buffer, unsigned int count)(a0,d0) -Class _Nonnull *_Nonnull objc_copyClassList_m68k(unsigned int *_Nullable length)(a0) -bool class_isMetaClass_m68k(Class _Nullable class_)(a0) -const char *_Nullable class_getName_m68k(Class _Nullable class_)(a0) -Class _Nullable class_getSuperclass_m68k(Class _Nullable class_)(a0) -unsigned long class_getInstanceSize_m68k(Class _Nullable class_)(a0) -bool class_respondsToSelector_m68k(Class _Nullable class_, SEL _Nonnull selector)(a0,a1) -bool class_conformsToProtocol_m68k(Class _Nullable class_, Protocol *_Nonnull p)(a0,a1) -IMP _Nullable class_getMethodImplementation_m68k(Class _Nullable class_, SEL _Nonnull selector)(a0,a1) -IMP _Nullable class_getMethodImplementation_stret_m68k(Class _Nullable class_, SEL _Nonnull selector)(a0,a1) -const char *_Nullable class_getMethodTypeEncoding_m68k(Class _Nullable class_, SEL _Nonnull selector)(a0,a1) -bool class_addMethod_m68k(Class _Nonnull class_, SEL _Nonnull selector, IMP _Nonnull implementation, const char *_Nullable typeEncoding)(a0,a1,a2,a3) -IMP _Nullable class_replaceMethod_m68k(Class _Nonnull class_, SEL _Nonnull selector, IMP _Nonnull implementation, const char *_Nullable typeEncoding)(a0,a1,a2,a3) -Class _Nullable object_getClass_m68k(id _Nullable object)(a0) -Class _Nullable object_setClass_m68k(id _Nullable object, Class _Nonnull class_)(a0,a1) -const char *_Nullable object_getClassName_m68k(id _Nullable object)(a0) -const char *_Nonnull protocol_getName_m68k(Protocol *_Nonnull protocol)(a0) -bool protocol_isEqual_m68k(Protocol *_Nonnull protocol1, Protocol *_Nonnull protocol2)(a0,a1) -bool protocol_conformsToProtocol_m68k(Protocol *_Nonnull protocol1, Protocol *_Nonnull protocol2)(a0,a1) -void objc_exit_m68k(void)() -_Nullable objc_uncaught_exception_handler_t objc_setUncaughtExceptionHandler_m68k(objc_uncaught_exception_handler_t _Nullable handler)(a0) -void objc_setForwardHandler_m68k(IMP _Nullable forward, IMP _Nullable stretForward)(a0,a1) -void objc_setEnumerationMutationHandler_m68k(objc_enumeration_mutation_handler_t _Nullable handler)(a0) -void objc_zero_weak_references_m68k(id _Nonnull value)(a0) -* SysV functions for MorphOS could be added here for performance. Having them -* in addition to the m68k functions allows m68k applications to call into the -* PPC library, while native code can use the SysV functions. +void __objc_exec_class(void *_Nonnull module)(a0) +IMP _Nonnull objc_msg_lookup(id _Nullable object, SEL _Nonnull selector)(a0,a1) +IMP _Nonnull objc_msg_lookup_stret(id _Nullable object, SEL _Nonnull selector)(a0,a1) +IMP _Nonnull objc_msg_lookup_super(struct objc_super *_Nonnull super, SEL _Nonnull selector)(a0,a1) +IMP _Nonnull objc_msg_lookup_super_stret(struct objc_super *_Nonnull super, SEL _Nonnull selector)(a0,a1) +Class _Nullable objc_lookUpClass(const char *_Nonnull name)(a0) +Class _Nullable objc_getClass(const char *_Nonnull name)(a0) +Class _Nonnull objc_getRequiredClass(const char *_Nonnull name)(a0) +Class _Nullable objc_lookup_class(const char *_Nonnull name)(a0) +Class _Nonnull objc_get_class(const char *_Nonnull name)(a0) +void objc_exception_throw(id _Nonnull object)(a0) +int objc_sync_enter(id _Nullable object)(a0) +int objc_sync_exit(id _Nullable object)(a0) +id objc_getProperty(id _Nonnull self, SEL _Nonnull _cmd, ptrdiff_t offset, bool atomic)(a0,a1,d0,d1) +void objc_setProperty(id _Nonnull self, SEL _Nonnull _cmd, ptrdiff_t offset, id value, bool atomic, signed char copy)(a0,a1,d0,a2,d1,d2) +void objc_getPropertyStruct(void *_Nonnull dest, const void *_Nonnull src, ptrdiff_t size, bool atomic, bool strong)(a0,a1,d0,d1,d2) +void objc_setPropertyStruct(void *_Nonnull dest, const void *_Nonnull src, ptrdiff_t size, bool atomic, bool strong)(a0,a1,d0,d1,d2) +void objc_enumerationMutation(id _Nonnull object)(a0) +int __gnu_objc_personality_v0(int version, int actions, uint64_t *_Nonnull exClass, void *_Nonnull ex, void *_Nonnull ctx)(d0,d1,d2,a0,a1) +id _Nullable objc_retain(id _Nullable object)(a0) +id _Nullable objc_retainBlock(id _Nullable block)(a0) +id _Nullable objc_retainAutorelease(id _Nullable object)(a0) +void objc_release(id _Nullable object)(a0) +id _Nullable objc_autorelease(id _Nullable object)(a0) +id _Nullable objc_autoreleaseReturnValue(id _Nullable object)(a0) +id _Nullable objc_retainAutoreleaseReturnValue(id _Nullable object)(a0) +id _Nullable objc_retainAutoreleasedReturnValue(id _Nullable object)(a0) +id _Nullable objc_storeStrong(id _Nullable *_Nonnull object, id _Nullable value)(a0,a1) +id _Nullable objc_storeWeak(id _Nullable *_Nonnull object, id _Nullable value)(a0,a1) +id _Nullable objc_loadWeakRetained(id _Nullable *_Nonnull object)(a0) +id _Nullable objc_initWeak(id _Nullable *_Nonnull object, id _Nullable value)(a0,a1) +void objc_destroyWeak(id _Nullable *_Nonnull object)(a0) +id _Nullable objc_loadWeak(id _Nullable *_Nonnull object)(a0) +void objc_copyWeak(id _Nullable *_Nonnull dest, id _Nullable *_Nonnull src)(a0,a1) +void objc_moveWeak(id _Nullable *_Nonnull dest, id _Nullable *_Nonnull src)(a0,a1) +SEL _Nonnull sel_registerName(const char *_Nonnull name)(a0) +const char *_Nonnull sel_getName(SEL _Nonnull selector)(a0) +bool sel_isEqual(SEL _Nonnull selector1, SEL _Nonnull selector2)(a0,a1) +Class _Nonnull objc_allocateClassPair(Class _Nullable superclass, const char *_Nonnull name, size_t extraBytes)(a0,a1,d0) +void objc_registerClassPair(Class _Nonnull class_)(a0) +unsigned int objc_getClassList(Class _Nonnull *_Nullable buffer, unsigned int count)(a0,d0) +Class _Nonnull *_Nonnull objc_copyClassList(unsigned int *_Nullable length)(a0) +bool class_isMetaClass(Class _Nullable class_)(a0) +const char *_Nullable class_getName(Class _Nullable class_)(a0) +Class _Nullable class_getSuperclass(Class _Nullable class_)(a0) +unsigned long class_getInstanceSize(Class _Nullable class_)(a0) +bool class_respondsToSelector(Class _Nullable class_, SEL _Nonnull selector)(a0,a1) +bool class_conformsToProtocol(Class _Nullable class_, Protocol *_Nonnull p)(a0,a1) +IMP _Nullable class_getMethodImplementation(Class _Nullable class_, SEL _Nonnull selector)(a0,a1) +IMP _Nullable class_getMethodImplementation_stret(Class _Nullable class_, SEL _Nonnull selector)(a0,a1) +const char *_Nullable class_getMethodTypeEncoding(Class _Nullable class_, SEL _Nonnull selector)(a0,a1) +bool class_addMethod(Class _Nonnull class_, SEL _Nonnull selector, IMP _Nonnull implementation, const char *_Nullable typeEncoding)(a0,a1,a2,a3) +IMP _Nullable class_replaceMethod(Class _Nonnull class_, SEL _Nonnull selector, IMP _Nonnull implementation, const char *_Nullable typeEncoding)(a0,a1,a2,a3) +Class _Nullable object_getClass(id _Nullable object)(a0) +Class _Nullable object_setClass(id _Nullable object, Class _Nonnull class_)(a0,a1) +const char *_Nullable object_getClassName(id _Nullable object)(a0) +const char *_Nonnull protocol_getName(Protocol *_Nonnull protocol)(a0) +bool protocol_isEqual(Protocol *_Nonnull protocol1, Protocol *_Nonnull protocol2)(a0,a1) +bool protocol_conformsToProtocol(Protocol *_Nonnull protocol1, Protocol *_Nonnull protocol2)(a0,a1) +void objc_exit(void)() +_Nullable objc_uncaught_exception_handler_t objc_setUncaughtExceptionHandler(objc_uncaught_exception_handler_t _Nullable handler)(a0) +void objc_setForwardHandler(IMP _Nullable forward, IMP _Nullable stretForward)(a0,a1) +void objc_setEnumerationMutationHandler(objc_enumeration_mutation_handler_t _Nullable handler)(a0) +void objc_zero_weak_references(id _Nonnull value)(a0) ==end