Artifact 99fa55d924f7d245edf089548b22d1e2ee1aacdd0f8e569b0254b0efaf2841cc:
- File
src/runtime/library.xml
— part of check-in
[eeba79d088]
at
2020-12-27 18:50:37
on branch trunk
— Add a generator for the linklib
This will eventually also generate the glue code and the function list
and make sfdc & cvinclude.pl entirely obsolete. It will also reduce the
maintenance burden because once everything is generated from
library.xml, there is a single file in which a function needs to be
added / changed instead of 5. (user: js, size: 17306) [annotate] [blame] [check-ins using] [more...]
<amiga-library version='1.0' base='ObjFWRTBase'> <include>ObjFWRT.h</include> <include>private.h</include> <!-- The following function is only for the linklib. --> <function name='objc_init' return-type='bool'> <argument name='version' type='unsigned int' m68k-reg='d0'/> <argument name='libc' type='struct objc_libc *' m68k-reg='a0'/> </function> <function name='__objc_exec_class'> <argument name='module' type='struct objc_module *_Nonnull' m68k-reg='a0'/> </function> <function name='objc_msg_lookup' return-type='IMP _Nonnull'> <argument name='object' type='id _Nullable' m68k-reg='a0'/> <argument name='selector' type='SEL _Nonnull' m68k-reg='a1'/> </function> <function name='objc_msg_lookup_stret' return-type='IMP _Nonnull'> <argument name='object' type='id _Nullable' m68k-reg='a0'/> <argument name='selector' type='SEL _Nonnull' m68k-reg='a1'/> </function> <function name='objc_msg_lookup_super' return-type='IMP _Nonnull'> <argument name='super' type='struct objc_super *_Nonnull' m68k-reg='a0'/> <argument name='selector' type='SEL _Nonnull' m68k-reg='a1'/> </function> <function name='objc_msg_lookup_super_stret' return-type='IMP _Nonnull'> <argument name='super' type='struct objc_super *_Nonnull' m68k-reg='a0'/> <argument name='selector' type='SEL _Nonnull' m68k-reg='a1'/> </function> <function name='objc_lookUpClass' return-type='Class _Nullable'> <argument name='name' type='const char *_Nonnull' m68k-reg='a0'/> </function> <function name='objc_getClass' return-type='Class _Nullable'> <argument name='name' type='const char *_Nonnull' m68k-reg='a0'/> </function> <function name='objc_getRequiredClass' return-type='Class _Nonnull'> <argument name='name' type='const char *_Nonnull' m68k-reg='a0'/> </function> <function name='objc_lookup_class' return-type='Class _Nullable'> <argument name='name' type='const char *_Nonnull' m68k-reg='a0'/> </function> <function name='objc_get_class' return-type='Class _Nonnull'> <argument name='name' type='const char *_Nonnull' m68k-reg='a0'/> </function> <function name='objc_exception_throw' noreturn='1'> <argument name='object' type='id _Nonnull' m68k-reg='a0'/> </function> <function name='objc_sync_enter' return-type='int'> <argument name='object' type='id _Nullable' m68k-reg='a0'/> </function> <function name='objc_sync_exit' return-type='int'> <argument name='object' type='id _Nullable' m68k-reg='a0'/> </function> <function name='objc_getProperty' return-type='id _Nullable'> <argument name='self' type='id _Nonnull' m68k-reg='a0'/> <argument name='_cmd' type='SEL _Nonnull' m68k-reg='a1'/> <argument name='offset' type='ptrdiff_t' m68k-reg='d0'/> <argument name='atomic' type='bool' m68k-reg='d1'/> </function> <function name='objc_setProperty'> <argument name='self' type='id _Nonnull' m68k-reg='a0'/> <argument name='_cmd' type='SEL _Nonnull' m68k-reg='a1'/> <argument name='offset' type='ptrdiff_t' m68k-reg='d0'/> <argument name='value' type='id _Nullable' m68k-reg='a2'/> <argument name='atomic' type='bool' m68k-reg='d1'/> <argument name='copy' type='signed char' m68k-reg='d2'/> </function> <function name='objc_getPropertyStruct'> <argument name='dest' type='void *_Nonnull' m68k-reg='a0'/> <argument name='src' type='const void *_Nonnull' m68k-reg='a1'/> <argument name='size' type='ptrdiff_t' m68k-reg='d0'/> <argument name='atomic' type='bool' m68k-reg='d1'/> <argument name='strong' type='bool' m68k-reg='d2'/> </function> <function name='objc_setPropertyStruct'> <argument name='dest' type='void *_Nonnull' m68k-reg='a0'/> <argument name='src' type='const void *_Nonnull' m68k-reg='a1'/> <argument name='size' type='ptrdiff_t' m68k-reg='d0'/> <argument name='atomic' type='bool' m68k-reg='d1'/> <argument name='strong' type='bool' m68k-reg='d2'/> </function> <function name='objc_enumerationMutation'> <argument name='object' type='id _Nonnull' m68k-reg='a0'/> </function> <function name='__gnu_objc_personality' return-type='int'> <argument name='version' type='int' m68k-reg='d0'/> <argument name='actions' type='int' m68k-reg='d1'/> <argument name='exClass' type='uint64_t *_Nonnull' m68k-reg='d2'/> <argument name='ex' type='void *_Nonnull' m68k-reg='a0'/> <argument name='ctx' type='void *_Nonnull' m68k-reg='a1'/> </function> <function name='objc_retain' return-type='id _Nullable'> <argument name='object' type='id _Nullable' m68k-reg='a0'/> </function> <function name='objc_retainBlock' return-type='id _Nullable'> <argument name='block' type='id _Nullable' m68k-reg='a0'/> </function> <function name='objc_retainAutorelease' return-type='id _Nullable'> <argument name='object' type='id _Nullable' m68k-reg='a0'/> </function> <function name='objc_release'> <argument name='object' type='id _Nullable' m68k-reg='a0'/> </function> <function name='objc_autorelease' return-type='id _Nullable'> <argument name='object' type='id _Nullable' m68k-reg='a0'/> </function> <function name='objc_autoreleaseReturnValue' return-type='id _Nullable'> <argument name='object' type='id _Nullable' m68k-reg='a0'/> </function> <function name='objc_retainAutoreleaseReturnValue' return-type='id _Nullable'> <argument name='object' type='id _Nullable' m68k-reg='a0'/> </function> <function name='objc_retainAutoreleasedReturnValue' return-type='id _Nullable'> <argument name='object' type='id _Nullable' m68k-reg='a0'/> </function> <function name='objc_storeStrong' return-type='id _Nullable'> <argument name='object' type='id _Nullable *_Nonnull' m68k-reg='a0'/> <argument name='value' type='id _Nullable' m68k-reg='a1'/> </function> <function name='objc_storeWeak' return-type='id _Nullable'> <argument name='object' type='id _Nullable *_Nonnull' m68k-reg='a0'/> <argument name='value' type='id _Nullable' m68k-reg='a1'/> </function> <function name='objc_loadWeakRetained' return-type='id _Nullable'> <argument name='object' type='id _Nullable *_Nonnull' m68k-reg='a0'/> </function> <function name='objc_initWeak' return-type='id _Nullable'> <argument name='object' type='id _Nullable *_Nonnull' m68k-reg='a0'/> <argument name='value' type='id _Nullable' m68k-reg='a1'/> </function> <function name='objc_destroyWeak'> <argument name='object' type='id _Nullable *_Nonnull' m68k-reg='a0'/> </function> <function name='objc_loadWeak' return-type='id _Nullable'> <argument name='object' type='id _Nullable *_Nonnull' m68k-reg='a0'/> </function> <function name='objc_copyWeak'> <argument name='dest' type='id _Nullable *_Nonnull' m68k-reg='a0'/> <argument name='src' type='id _Nullable *_Nonnull' m68k-reg='a1'/> </function> <function name='objc_moveWeak'> <argument name='dest' type='id _Nullable *_Nonnull' m68k-reg='a0'/> <argument name='src' type='id _Nullable *_Nonnull' m68k-reg='a1'/> </function> <function name='sel_registerName' return-type='SEL _Nonnull'> <argument name='name' type='const char *_Nonnull' m68k-reg='a0'/> </function> <function name='sel_getName' return-type='const char *_Nonnull'> <argument name='selector' type='SEL _Nonnull' m68k-reg='a0'/> </function> <function name='sel_isEqual' return-type='bool'> <argument name='selector1' type='SEL _Nonnull' m68k-reg='a0'/> <argument name='selector2' type='SEL _Nonnull' m68k-reg='a1'/> </function> <function name='objc_allocateClassPair' return-type='Class _Nonnull'> <argument name='superclass' type='Class _Nullable' m68k-reg='a0'/> <argument name='name' type='const char *_Nonnull' m68k-reg='a1'/> <argument name='extraBytes' type='size_t' m68k-reg='d0'/> </function> <function name='objc_registerClassPair'> <argument name='class' type='Class _Nonnull' m68k-reg='a0'/> </function> <function name='objc_getClassList' return-type='unsigned int'> <argument name='buffer' type='Class _Nonnull *_Nullable' m68k-reg='a0'/> <argument name='count' type='unsigned int' m68k-reg='d0'/> </function> <function name='objc_copyClassList' return-type='Class _Nonnull *_Nonnull'> <argument name='length' type='unsigned int *_Nullable' m68k-reg='a0'/> </function> <function name='class_isMetaClass' return-type='bool'> <argument name='class' type='Class _Nullable' m68k-reg='a0'/> </function> <function name='class_getName' return-type='const char *_Nullable'> <argument name='class' type='Class _Nullable' m68k-reg='a0'/> </function> <function name='class_getSuperclass' return-type='Class _Nullable'> <argument name='class' type='Class _Nullable' m68k-reg='a0'/> </function> <function name='class_getInstanceSize' return-type='unsigned long'> <argument name='class' type='Class _Nullable' m68k-reg='a0'/> </function> <function name='class_respondsToSelector' return-type='bool'> <argument name='class' type='Class _Nullable' m68k-reg='a0'/> <argument name='selector' type='SEL _Nonnull' m68k-reg='a1'/> </function> <function name='class_conformsToProtocol' return-type='bool'> <argument name='class' type='Class _Nullable' m68k-reg='a0'/> <argument name='p' type='Protocol *_Nonnull' m68k-reg='a1'/> </function> <function name='class_getMethodImplementation' return-type='IMP _Nullable'> <argument name='class' type='Class _Nullable' m68k-reg='a0'/> <argument name='selector' type='SEL _Nonnull' m68k-reg='a1'/> </function> <function name='class_getMethodImplementation_stret' return-type='IMP _Nullable'> <argument name='class' type='Class _Nullable' m68k-reg='a0'/> <argument name='selector' type='SEL _Nonnull' m68k-reg='a1'/> </function> <function name='class_getInstanceMethod' return-type='Method _Nullable'> <argument name='class' type='Class _Nullable' m68k-reg='a0'/> <argument name='selector' type='SEL _Nonnull' m68k-reg='a1'/> </function> <function name='class_addMethod' return-type='bool'> <argument name='class' type='Class _Nonnull' m68k-reg='a0'/> <argument name='selector' type='SEL _Nonnull' m68k-reg='a1'/> <argument name='implementation' type='IMP _Nonnull' m68k-reg='a2'/> <argument name='typeEncoding' type='const char *_Nullable' m68k-reg='a3'/> </function> <function name='class_replaceMethod' return-type='IMP _Nullable'> <argument name='class' type='Class _Nonnull' m68k-reg='a0'/> <argument name='selector' type='SEL _Nonnull' m68k-reg='a1'/> <argument name='implementation' type='IMP _Nonnull' m68k-reg='a2'/> <argument name='typeEncoding' type='const char *_Nullable' m68k-reg='a3'/> </function> <function name='object_getClass' return-type='Class _Nullable'> <argument name='object' type='id _Nullable' m68k-reg='a0'/> </function> <function name='object_setClass' return-type='Class _Nullable'> <argument name='object' type='id _Nullable' m68k-reg='a0'/> <argument name='class' type='Class _Nonnull' m68k-reg='a1'/> </function> <function name='object_getClassName' return-type='const char *_Nullable'> <argument name='object' type='id _Nullable' m68k-reg='a0'/> </function> <function name='protocol_getName' return-type='const char *_Nonnull'> <argument name='protocol' type='Protocol *_Nonnull' m68k-reg='a0'/> </function> <function name='protocol_isEqual' return-type='bool'> <argument name='protocol1' type='Protocol *_Nonnull' m68k-reg='a0'/> <argument name='protocol2' type='Protocol *_Nonnull' m68k-reg='a1'/> </function> <function name='protocol_conformsToProtocol' return-type='bool'> <argument name='protocol1' type='Protocol *_Nonnull' m68k-reg='a0'/> <argument name='protocol2' type='Protocol *_Nonnull' m68k-reg='a1'/> </function> <function name='objc_setUncaughtExceptionHandler' return-type='_Nullable objc_uncaught_exception_handler_t'> <argument name='handler' type='objc_uncaught_exception_handler_t _Nullable' m68k-reg='a0'/> </function> <function name='objc_setForwardHandler'> <argument name='forward' type='IMP _Nullable' m68k-reg='a0'/> <argument name='stretForward' type='IMP _Nullable' m68k-reg='a1'/> </function> <function name='objc_setEnumerationMutationHandler'> <argument name='hadler' type='objc_enumeration_mutation_handler_t _Nullable' m68k-reg='a0'/> </function> <function name='objc_constructInstance' return-type='id _Nullable'> <argument name='class' type='Class _Nullable' m68k-reg='a0'/> <argument name='bytes' type='void *_Nullable' m68k-reg='a1'/> </function> <function name='objc_exit'/> <function name='class_copyIvarList' return-type='Ivar _Nullable *_Nullable'> <argument name='class' type='Class _Nullable' m68k-reg='a0'/> <argument name='outCount' type='unsigned int *_Nullable' m68k-reg='a1'/> </function> <function name='ivar_getName' return-type='const char *_Nonnull'> <argument name='ivar' type='Ivar _Nonnull' m68k-reg='a0'/> </function> <function name='ivar_getTypeEncoding' return-type='const char *_Nonnull'> <argument name='ivar' type='Ivar _Nonnull' m68k-reg='a0'/> </function> <function name='ivar_getOffset' return-type='ptrdiff_t'> <argument name='ivar' type='Ivar _Nonnull' m68k-reg='a0'/> </function> <function name='class_copyMethodList' return-type='Method _Nullable *_Nullable'> <argument name='class' type='Class _Nullable' m68k-reg='a0'/> <argument name='outCount' type='unsigned int *_Nullable' m68k-reg='a1'/> </function> <function name='method_getName' return-type='SEL _Nonnull'> <argument name='method' type='Method _Nonnull' m68k-reg='a0'/> </function> <function name='method_getTypeEncoding' return-type='const char *_Nullable'> <argument name='method' type='Method _Nonnull' m68k-reg='a0'/> </function> <function name='class_copyPropertyList' return-type='objc_property_t _Nullable *_Nullable'> <argument name='class' type='Class _Nullable' m68k-reg='a0'/> <argument name='outCount' type='unsigned int *_Nullable' m68k-reg='a1'/> </function> <function name='property_getName' return-type='const char *_Nonnull'> <argument name='property' type='objc_property_t _Nonnull' m68k-reg='a0'/> </function> <function name='property_copyAttributeValue' return-type='char *_Nullable'> <argument name='property' type='objc_property_t _Nonnull' m68k-reg='a0'/> <argument name='name' type='const char *_Nonnull' m68k-reg='a1'/> </function> <function name='objc_destructInstance' return-type='void *_Nullable'> <argument name='object' type='id _Nullable' m68k-reg='a0'/> </function> <function name='objc_autoreleasePoolPush' return-type='void *_Null_unspecified'> </function> <function name='objc_autoreleasePoolPop'> <argument name='pool' type='void *_Null_unspecified' m68k-reg='a0'/> </function> <function name='_objc_rootAutorelease' return-type='id _Nullable'> <argument name='object' type='id _Nullable' m68k-reg='a0'/> </function> <!-- The following functions are private! Don't use! --> <function name='objc_hashtable_new' return-type='struct objc_hashtable *_Nonnull'> <argument name='hash' type='objc_hashtable_hash_func' m68k-reg='a0'/> <argument name='equal' type='objc_hashtable_equal_func' m68k-reg='a1'/> <argument name='size' type='uint32_t' m68k-reg='d0'/> </function> <function name='objc_hashtable_set'> <argument name='table' type='struct objc_hashtable *_Nonnull' m68k-reg='a0'/> <argument name='key' type='const void *_Nonnull' m68k-reg='a1'/> <argument name='object' type='const void *_Nonnull' m68k-reg='a2'/> </function> <function name='objc_hashtable_get' return-type='void *_Nullable'> <argument name='table' type='struct objc_hashtable *_Nonnull' m68k-reg='a0'/> <argument name='key' type='const void *_Nonnull' m68k-reg='a1'/> </function> <function name='objc_hashtable_delete'> <argument name='table' type='struct objc_hashtable *_Nonnull' m68k-reg='a0'/> <argument name='key' type='const void *_Nonnull' m68k-reg='a1'/> </function> <function name='objc_hashtable_free'> <argument name='table' type='struct objc_hashtable *_Nonnull' m68k-reg='a0'/> </function> <!-- Public functions again --> <function name='objc_setTaggedPointerSecret'> <argument name='secret' type='uintptr_t' m68k-reg='d0'/> </function> <function name='objc_registerTaggedPointerClass' return-type='int'> <argument name='class' type='Class _Nonnull' m68k-reg='a0'/> </function> <function name='object_isTaggedPointer' return-type='bool'> <argument name='object' type='id _Nullable' m68k-reg='a0'/> </function> <function name='object_getTaggedPointerValue' return-type='uintptr_t'> <argument name='object' type='id _Nonnull' m68k-reg='a0'/> </function> <function name='objc_createTaggedPointer' return-type='id _Nullable'> <argument name='class' type='int' m68k-reg='d0'/> <argument name='value' type='uintptr_t' m68k-reg='d1'/> </function> </amiga-library>