1*67e74705SXin Li // Like the compiler, the static analyzer treats some functions differently if 2*67e74705SXin Li // they come from a system header -- for example, it is assumed that system 3*67e74705SXin Li // functions do not arbitrarily free() their parameters, and that some bugs 4*67e74705SXin Li // found in system headers cannot be fixed by the user and should be 5*67e74705SXin Li // suppressed. 6*67e74705SXin Li #pragma clang system_header 7*67e74705SXin Li 8*67e74705SXin Li typedef unsigned int UInt32; 9*67e74705SXin Li typedef unsigned short UInt16; 10*67e74705SXin Li 11*67e74705SXin Li typedef signed long CFIndex; 12*67e74705SXin Li typedef signed char BOOL; 13*67e74705SXin Li typedef unsigned long NSUInteger; 14*67e74705SXin Li typedef unsigned short unichar; 15*67e74705SXin Li typedef UInt16 UniChar; 16*67e74705SXin Li 17*67e74705SXin Li enum { 18*67e74705SXin Li NSASCIIStringEncoding = 1, 19*67e74705SXin Li NSNEXTSTEPStringEncoding = 2, 20*67e74705SXin Li NSJapaneseEUCStringEncoding = 3, 21*67e74705SXin Li NSUTF8StringEncoding = 4, 22*67e74705SXin Li NSISOLatin1StringEncoding = 5, 23*67e74705SXin Li NSSymbolStringEncoding = 6, 24*67e74705SXin Li NSNonLossyASCIIStringEncoding = 7, 25*67e74705SXin Li }; 26*67e74705SXin Li typedef const struct __CFString * CFStringRef; 27*67e74705SXin Li typedef struct __CFString * CFMutableStringRef; 28*67e74705SXin Li typedef NSUInteger NSStringEncoding; 29*67e74705SXin Li typedef UInt32 CFStringEncoding; 30*67e74705SXin Li 31*67e74705SXin Li typedef const void * CFTypeRef; 32*67e74705SXin Li 33*67e74705SXin Li typedef const struct __CFAllocator * CFAllocatorRef; 34*67e74705SXin Li extern const CFAllocatorRef kCFAllocatorDefault; 35*67e74705SXin Li extern const CFAllocatorRef kCFAllocatorSystemDefault; 36*67e74705SXin Li extern const CFAllocatorRef kCFAllocatorMalloc; 37*67e74705SXin Li extern const CFAllocatorRef kCFAllocatorMallocZone; 38*67e74705SXin Li extern const CFAllocatorRef kCFAllocatorNull; 39*67e74705SXin Li 40*67e74705SXin Li @class NSString, Protocol; 41*67e74705SXin Li extern void NSLog(NSString *format, ...) __attribute__((format(__NSString__, 1, 2))); 42*67e74705SXin Li typedef struct _NSZone NSZone; 43*67e74705SXin Li @class NSInvocation, NSMethodSignature, NSCoder, NSString, NSEnumerator; 44*67e74705SXin Li @protocol NSObject 45*67e74705SXin Li - (BOOL)isEqual:(id)object; 46*67e74705SXin Li - (id)retain; 47*67e74705SXin Li - (id)copy; 48*67e74705SXin Li - (oneway void)release; 49*67e74705SXin Li - (id)autorelease; 50*67e74705SXin Li - (id)init; 51*67e74705SXin Li @end @protocol NSCopying - (id)copyWithZone:(NSZone *)zone; 52*67e74705SXin Li @end @protocol NSMutableCopying - (id)mutableCopyWithZone:(NSZone *)zone; 53*67e74705SXin Li @end @protocol NSCoding - (void)encodeWithCoder:(NSCoder *)aCoder; 54*67e74705SXin Li @end 55*67e74705SXin Li @interface NSObject <NSObject> {} 56*67e74705SXin Li + (id)allocWithZone:(NSZone *)zone; 57*67e74705SXin Li + (id)alloc; 58*67e74705SXin Li - (void)dealloc; 59*67e74705SXin Li @end 60*67e74705SXin Li @interface NSObject (NSCoderMethods) 61*67e74705SXin Li - (id)awakeAfterUsingCoder:(NSCoder *)aDecoder; 62*67e74705SXin Li @end 63*67e74705SXin Li extern id NSAllocateObject(Class aClass, NSUInteger extraBytes, NSZone *zone); 64*67e74705SXin Li typedef struct { 65*67e74705SXin Li } 66*67e74705SXin Li NSFastEnumerationState; 67*67e74705SXin Li @protocol NSFastEnumeration - (NSUInteger)countByEnumeratingWithState:(NSFastEnumerationState *)state objects:(id *)stackbuf count:(NSUInteger)len; 68*67e74705SXin Li @end @class NSString, NSDictionary; 69*67e74705SXin Li @interface NSValue : NSObject <NSCopying, NSCoding> 70*67e74705SXin Li + (NSValue *)valueWithPointer:(const void *)p; 71*67e74705SXin Li - (void)getValue:(void *)value; 72*67e74705SXin Li @end 73*67e74705SXin Li @interface NSNumber : NSValue - (char)charValue; 74*67e74705SXin Li - (id)initWithInt:(int)value; 75*67e74705SXin Li @end @class NSString; 76*67e74705SXin Li @interface NSArray : NSObject <NSCopying, NSMutableCopying, NSCoding, NSFastEnumeration> - (NSUInteger)count; 77*67e74705SXin Li @end @interface NSArray (NSArrayCreation) + (id)array; 78*67e74705SXin Li @end @interface NSAutoreleasePool : NSObject { 79*67e74705SXin Li } 80*67e74705SXin Li - (void)drain; 81*67e74705SXin Li @end extern NSString * const NSBundleDidLoadNotification; 82*67e74705SXin Li typedef double NSTimeInterval; 83*67e74705SXin Li @interface NSDate : NSObject <NSCopying, NSCoding> - (NSTimeInterval)timeIntervalSinceReferenceDate; 84*67e74705SXin Li @end 85*67e74705SXin Li 86*67e74705SXin Li @interface NSString : NSObject <NSCopying, NSMutableCopying, NSCoding> 87*67e74705SXin Li - (NSUInteger)length; 88*67e74705SXin Li - (NSString *)stringByAppendingString:(NSString *)aString; 89*67e74705SXin Li - ( const char *)UTF8String; 90*67e74705SXin Li - (id)initWithUTF8String:(const char *)nullTerminatedCString; 91*67e74705SXin Li - (id)initWithCharactersNoCopy:(unichar *)characters length:(NSUInteger)length freeWhenDone:(BOOL)freeBuffer; 92*67e74705SXin Li - (id)initWithCharacters:(const unichar *)characters length:(NSUInteger)length; 93*67e74705SXin Li - (id)initWithBytes:(const void *)bytes length:(NSUInteger)len encoding:(NSStringEncoding)encoding; 94*67e74705SXin Li - (id)initWithBytesNoCopy:(void *)bytes length:(NSUInteger)len encoding:(NSStringEncoding)encoding freeWhenDone:(BOOL)freeBuffer; 95*67e74705SXin Li + (id)stringWithUTF8String:(const char *)nullTerminatedCString; 96*67e74705SXin Li + (id)stringWithString:(NSString *)string; 97*67e74705SXin Li @end @class NSString, NSURL, NSError; 98*67e74705SXin Li 99*67e74705SXin Li @interface NSMutableString : NSString 100*67e74705SXin Li - (void)appendFormat:(NSString *)format, ... __attribute__((format(__NSString__, 1, 2))); 101*67e74705SXin Li @end 102*67e74705SXin Li 103*67e74705SXin Li @interface NSData : NSObject <NSCopying, NSMutableCopying, NSCoding> - (NSUInteger)length; 104*67e74705SXin Li + (id)dataWithBytesNoCopy:(void *)bytes length:(NSUInteger)length; 105*67e74705SXin Li + (id)dataWithBytesNoCopy:(void *)bytes length:(NSUInteger)length freeWhenDone:(BOOL)b; 106*67e74705SXin Li - (id)initWithBytesNoCopy:(void *)bytes length:(NSUInteger)length; 107*67e74705SXin Li - (id)initWithBytesNoCopy:(void *)bytes length:(NSUInteger)length freeWhenDone:(BOOL)b; 108*67e74705SXin Li - (id)initWithBytes:(void *)bytes length:(NSUInteger) length; 109*67e74705SXin Li @end 110*67e74705SXin Li 111*67e74705SXin Li typedef struct { 112*67e74705SXin Li } 113*67e74705SXin Li CFDictionaryKeyCallBacks; 114*67e74705SXin Li extern const CFDictionaryKeyCallBacks kCFTypeDictionaryKeyCallBacks; 115*67e74705SXin Li typedef struct { 116*67e74705SXin Li } 117*67e74705SXin Li CFDictionaryValueCallBacks; 118*67e74705SXin Li extern const CFDictionaryValueCallBacks kCFTypeDictionaryValueCallBacks; 119*67e74705SXin Li typedef const struct __CFDictionary * CFDictionaryRef; 120*67e74705SXin Li typedef struct __CFDictionary * CFMutableDictionaryRef; 121*67e74705SXin Li extern CFMutableDictionaryRef CFDictionaryCreateMutable(CFAllocatorRef allocator, CFIndex capacity, const CFDictionaryKeyCallBacks *keyCallBacks, const CFDictionaryValueCallBacks *valueCallBacks); 122*67e74705SXin Li void CFDictionarySetValue(CFMutableDictionaryRef, const void *, const void *); 123*67e74705SXin Li 124*67e74705SXin Li 125*67e74705SXin Li extern void CFRelease(CFTypeRef cf); 126*67e74705SXin Li 127*67e74705SXin Li extern CFMutableStringRef CFStringCreateMutableWithExternalCharactersNoCopy(CFAllocatorRef alloc, UniChar *chars, CFIndex numChars, CFIndex capacity, CFAllocatorRef externalCharactersAllocator); 128*67e74705SXin Li extern CFStringRef CFStringCreateWithCStringNoCopy(CFAllocatorRef alloc, const char *cStr, CFStringEncoding encoding, CFAllocatorRef contentsDeallocator); 129*67e74705SXin Li extern void CFStringAppend(CFMutableStringRef theString, CFStringRef appendedString); 130*67e74705SXin Li 131*67e74705SXin Li void SystemHeaderFunctionWithBlockParam(void *, void (^block)(void *), unsigned); 132*67e74705SXin Li 133*67e74705SXin Li @interface NSPointerArray : NSObject <NSFastEnumeration, NSCopying, NSCoding> 134*67e74705SXin Li - (void)addPointer:(void *)pointer; 135*67e74705SXin Li - (void)insertPointer:(void *)item atIndex:(NSUInteger)index; 136*67e74705SXin Li - (void)replacePointerAtIndex:(NSUInteger)index withPointer:(void *)item; 137*67e74705SXin Li - (void *)pointerAtIndex:(NSUInteger)index; 138*67e74705SXin Li @end 139*67e74705SXin Li 140