# Functions and variables explicitly exported from ObjC. # GrP 2002-2-4 # Note that some commonly used functions are *not* listed in the # ObjC headers (e.g. objc_flush_caches()) # List.h .objc_class_name_List # objc-class.h _object_setInstanceVariable _object_getInstanceVariable _class_createInstance _class_createInstanceFromZone _class_setVersion _class_getVersion _class_getInstanceVariable _class_getInstanceMethod _class_getClassMethod _class_addMethods _class_removeMethods _class_poseAs _method_getNumberOfArguments _method_getSizeOfArguments _method_getArgumentInfo _class_nextMethodList # objc-auto.h - actually, everything possible for now _objc_collect _objc_collect_generation _objc_numberAllocated _objc_isAuto _objc_collecting_enabled _objc_allocate_object _objc_assign_strongCast _objc_assign_global _objc_assign_ivar _objc_assign_strongCast_generic _objc_assign_global_generic _objc_assign_ivar_generic _objc_assign_strongCast_CF _objc_assign_ivar_address_CF _objc_collect_init _objc_is_finalized _objc_memmove_collectable _objc_collect_if_needed # objc-exception.h _objc_exception_throw _objc_exception_try_enter _objc_exception_try_exit _objc_exception_extract _objc_exception_match _objc_exception_get_functions _objc_exception_set_functions # objc-sync.h _objc_sync_enter _objc_sync_exit _objc_sync_wait _objc_sync_notify _objc_sync_notifyAll # objc-load.h _objc_loadModules _objc_loadModule _objc_unloadModules # objc-runtime.h _objc_getClass _objc_getMetaClass _objc_msgSend # non-nil entry points disabled for now # _objc_msgSendNonNil _objc_msgSend_fpret _objc_msgSend_stret # _objc_msgSendNonNil_stret _objc_msgSendSuper _objc_msgSendSuper_stret _objc_msgSendv _objc_msgSendv_fpret _objc_msgSendv_stret _objc_getClassList _objc_getClasses _objc_lookUpClass _objc_getRequiredClass _objc_addClass _objc_setClassHandler _objc_setMultithreaded __alloc __copy __realloc __dealloc __zoneAlloc __zoneRealloc __zoneCopy __error # objc.h _sel_isMapped _sel_getName _sel_getUid _sel_registerName _object_getClassName _object_getIndexedIvars # Object.h .objc_class_name_Object _object_dispose _object_copy _object_copyFromZone _object_realloc _object_reallocFromZone # Protocol.h .objc_class_name_Protocol # error.h # everything inside is declared but no longer defined?! # hashtable2.h _NXCreateHashTableFromZone _NXCreateHashTable _NXFreeHashTable _NXEmptyHashTable _NXResetHashTable _NXCompareHashTables _NXCopyHashTable _NXCountHashTable _NXHashMember _NXHashGet _NXHashInsert _NXHashInsertIfAbsent _NXHashRemove _NXInitHashState _NXNextHashState _NXPtrHash _NXStrHash _NXPtrIsEqual _NXStrIsEqual _NXNoEffectFree _NXReallyFree _NXPtrPrototype _NXStrPrototype _NXPtrStructKeyPrototype _NXStrStructKeyPrototype _NXUniqueString _NXUniqueStringWithLength _NXUniqueStringNoCopy _NXCopyStringBuffer _NXCopyStringBufferFromZone # maptable.h _NXCreateMapTableFromZone _NXCreateMapTable _NXFreeMapTable _NXResetMapTable _NXCompareMapTables _NXCountMapTable _NXMapMember _NXMapGet _NXMapInsert _NXMapRemove _NXInitMapState _NXNextMapState _NXPtrValueMapPrototype _NXStrValueMapPrototype _NXObjectMapPrototype # # Functions that aren't in the headers but are used or are useful. # # sudo find / -xdev -type f -perm -0111 \! -name "libobjc*dylib" -print -exec nm -u {} \; > /tmp/all-used-symbols # (repeat with any other disks you want checked, appending to the same file) # nm /usr/lib/libobjc.dylib | awk '$2 ~ /^[ADST]$/' | colrm 1 11 | sort -u > /tmp/objc-exports # (note that you need an unstripped, un-nmedited libobjc.dylib) # grep -f /tmp/objc-exports /tmp/all-used-symbols | sort -u > /tmp/used-objc-symbols # grep -v -f /tmp/used-objc-symbols /tmp/objc-exports | sort -u > /tmp/unused-objc-symbols # __class_printDuplicateCacheEntries __class_printMethodCaches __class_printMethodCacheStatistics __objc_create_zone __objc_error __objc_flush_caches __objc_msgForward __objc_resolve_categories_for_class __objc_setClassLoader __objc_setNilReceiver __objc_getNilReceiver __objcInit _class_lookupMethod _class_respondsToMethod _instrumentObjcMessageSends _objc_getOrigClass # magic, or garbage? __dummy _do_not_remove_this_dummy_function # used by debugging tools like heap __objc_debug_class_hash # used by Foundation's NSAutoreleaseFreedObjectCheckEnabled __objc_getFreedObjectClass