/* * Copyright (c) 2008-2025 Jonathan Schleifer <js@nil.im> * * All rights reserved. * * This program is free software: you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License version 3.0 only, * as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License * version 3.0 for more details. * * You should have received a copy of the GNU Lesser General Public License * version 3.0 along with this program. If not, see * <https://www.gnu.org/licenses/>. */ /* This file is automatically generated from amiga-library.xml */ #import "ObjFWRT.h" #import "private.h" extern bool glue_objc_init(struct objc_linklib_context *ctx); extern void glue___objc_exec_class(struct objc_module *_Nonnull module); extern int glue___gnu_objc_personality_v0(int version, int actions, uint64_t _Nonnull exClass, void *_Nonnull ex, void *_Nonnull ctx); extern void glue_class_registerAlias_np(Class _Nonnull class_, const char *_Nonnull name); extern IMP _Nonnull glue_objc_msg_lookup(id _Nullable object, SEL _Nonnull selector); extern IMP _Nonnull glue_objc_msg_lookup_stret(id _Nullable object, SEL _Nonnull selector); extern IMP _Nonnull glue_objc_msg_lookup_super(struct objc_super *_Nonnull super, SEL _Nonnull selector); extern IMP _Nonnull glue_objc_msg_lookup_super_stret(struct objc_super *_Nonnull super, SEL _Nonnull selector); extern Class _Nullable glue_objc_lookUpClass(const char *_Nonnull name); extern Class _Nullable glue_objc_getClass(const char *_Nonnull name); extern Class _Nonnull glue_objc_getRequiredClass(const char *_Nonnull name); extern Class _Nullable glue_objc_lookup_class(const char *_Nonnull name); extern Class _Nonnull glue_objc_get_class(const char *_Nonnull name); extern void glue_objc_exception_throw(id _Nonnull object); extern int glue_objc_sync_enter(id _Nullable object); extern int glue_objc_sync_exit(id _Nullable object); extern id _Nullable glue_objc_getProperty(id _Nonnull self, SEL _Nonnull _cmd, ptrdiff_t offset, bool atomic); extern void glue_objc_setProperty(id _Nonnull self, SEL _Nonnull _cmd, ptrdiff_t offset, id _Nullable value, bool atomic, signed char copy); extern void glue_objc_getPropertyStruct(void *_Nonnull dest, const void *_Nonnull src, ptrdiff_t size, bool atomic, bool strong); extern void glue_objc_setPropertyStruct(void *_Nonnull dest, const void *_Nonnull src, ptrdiff_t size, bool atomic, bool strong); extern void glue_objc_enumerationMutation(id _Nonnull object); extern id _Nullable glue_objc_retain(id _Nullable object); extern id _Nullable glue_objc_retainBlock(id _Nullable block); extern id _Nullable glue_objc_retainAutorelease(id _Nullable object); extern void glue_objc_release(id _Nullable object); extern id _Nullable glue_objc_autorelease(id _Nullable object); extern id _Nullable glue_objc_autoreleaseReturnValue(id _Nullable object); extern id _Nullable glue_objc_retainAutoreleaseReturnValue(id _Nullable object); extern id _Nullable glue_objc_retainAutoreleasedReturnValue(id _Nullable object); extern id _Nullable glue_objc_storeStrong(id _Nullable *_Nonnull object, id _Nullable value); extern id _Nullable glue_objc_storeWeak(id _Nullable *_Nonnull object, id _Nullable value); extern id _Nullable glue_objc_loadWeakRetained(id _Nullable *_Nonnull object); extern id _Nullable glue_objc_initWeak(id _Nullable *_Nonnull object, id _Nullable value); extern void glue_objc_destroyWeak(id _Nullable *_Nonnull object); extern id _Nullable glue_objc_loadWeak(id _Nullable *_Nonnull object); extern void glue_objc_copyWeak(id _Nullable *_Nonnull dest, id _Nullable *_Nonnull src); extern void glue_objc_moveWeak(id _Nullable *_Nonnull dest, id _Nullable *_Nonnull src); extern SEL _Nonnull glue_sel_registerName(const char *_Nonnull name); extern const char *_Nonnull glue_sel_getName(SEL _Nonnull selector); extern bool glue_sel_isEqual(SEL _Nonnull selector1, SEL _Nonnull selector2); extern Class _Nonnull glue_objc_allocateClassPair(Class _Nullable superclass, const char *_Nonnull name, size_t extraBytes); extern void glue_objc_registerClassPair(Class _Nonnull class_); extern unsigned int glue_objc_getClassList(Class _Nonnull *_Nullable buffer, unsigned int count); extern Class _Nonnull *_Nonnull glue_objc_copyClassList(unsigned int *_Nullable length); extern bool glue_class_isMetaClass(Class _Nullable class_); extern const char *_Nullable glue_class_getName(Class _Nullable class_); extern Class _Nullable glue_class_getSuperclass(Class _Nullable class_); extern unsigned long glue_class_getInstanceSize(Class _Nullable class_); extern bool glue_class_respondsToSelector(Class _Nullable class_, SEL _Nonnull selector); extern bool glue_class_conformsToProtocol(Class _Nullable class_, Protocol *_Nonnull p); extern IMP _Nullable glue_class_getMethodImplementation(Class _Nullable class_, SEL _Nonnull selector); extern IMP _Nullable glue_class_getMethodImplementation_stret(Class _Nullable class_, SEL _Nonnull selector); extern Method _Nullable glue_class_getInstanceMethod(Class _Nullable class_, SEL _Nonnull selector); extern bool glue_class_addMethod(Class _Nonnull class_, SEL _Nonnull selector, IMP _Nonnull implementation, const char *_Nullable typeEncoding); extern IMP _Nullable glue_class_replaceMethod(Class _Nonnull class_, SEL _Nonnull selector, IMP _Nonnull implementation, const char *_Nullable typeEncoding); extern Class _Nullable glue_object_getClass(id _Nullable object); extern Class _Nullable glue_object_setClass(id _Nullable object, Class _Nonnull class_); extern const char *_Nullable glue_object_getClassName(id _Nullable object); extern const char *_Nonnull glue_protocol_getName(Protocol *_Nonnull protocol); extern bool glue_protocol_isEqual(Protocol *_Nonnull protocol1, Protocol *_Nonnull protocol2); extern bool glue_protocol_conformsToProtocol(Protocol *_Nonnull protocol1, Protocol *_Nonnull protocol2); extern Method _Nullable *_Nullable glue_class_copyMethodList(Class _Nullable class_, unsigned int *_Nullable outCount); extern SEL _Nonnull glue_method_getName(Method _Nonnull method); extern const char *_Nullable glue_method_getTypeEncoding(Method _Nonnull method); extern Ivar _Nullable *_Nullable glue_class_copyIvarList(Class _Nullable class_, unsigned int *_Nullable outCount); extern const char *_Nonnull glue_ivar_getName(Ivar _Nonnull ivar); extern const char *_Nonnull glue_ivar_getTypeEncoding(Ivar _Nonnull ivar); extern ptrdiff_t glue_ivar_getOffset(Ivar _Nonnull ivar); extern objc_property_t _Nullable *_Nullable glue_class_copyPropertyList(Class _Nullable class_, unsigned int *_Nullable outCount); extern const char *_Nonnull glue_property_getName(objc_property_t _Nonnull property); extern char *_Nullable glue_property_copyAttributeValue(objc_property_t _Nonnull property, const char *_Nonnull name); extern void glue_objc_deinit(void); extern _Nullable objc_uncaught_exception_handler glue_objc_setUncaughtExceptionHandler(objc_uncaught_exception_handler _Nullable handler); extern void glue_objc_setForwardHandler(IMP _Nullable forward, IMP _Nullable stretForward); extern void glue_objc_setEnumerationMutationHandler(objc_enumeration_mutation_handler _Nullable hadler); extern id _Nullable glue_objc_constructInstance(Class _Nullable class_, void *_Nullable bytes); extern void *_Nullable glue_objc_destructInstance(id _Nullable object); extern id _Nullable glue_class_createInstance(Class _Nullable class_, size_t extraBytes); extern id _Nullable glue_object_dispose(id _Nullable object); extern id _Nonnull glue__objc_rootRetain(id _Nonnull object); extern unsigned int glue__objc_rootRetainCount(id _Nonnull object); extern void glue__objc_rootRelease(id _Nonnull object); extern void *_Null_unspecified glue_objc_autoreleasePoolPush(void); extern void glue_objc_autoreleasePoolPop(void *_Null_unspecified pool); extern id _Nullable glue__objc_rootAutorelease(id _Nullable object); extern void glue_objc_setTaggedPointerSecret(uintptr_t secret); extern int glue_objc_registerTaggedPointerClass(Class _Nonnull class_); extern bool glue_object_isTaggedPointer(id _Nullable object); extern uintptr_t glue_object_getTaggedPointerValue(id _Nonnull object); extern id _Nullable glue_objc_createTaggedPointer(int class_, uintptr_t value); extern void glue_objc_setAssociatedObject(id _Nonnull object, const void *_Nonnull key, id _Nullable value, objc_associationPolicy policy); extern id _Nullable glue_objc_getAssociatedObject(id _Nonnull object, const void *_Nonnull key); extern void glue_objc_removeAssociatedObjects(id _Nonnull object);