1 /* ===-- string.h - stub SDK header for compiler-rt -------------------------=== 2 * 3 * The LLVM Compiler Infrastructure 4 * 5 * This file is dual licensed under the MIT and the University of Illinois Open 6 * Source Licenses. See LICENSE.TXT for details. 7 * 8 * ===-----------------------------------------------------------------------=== 9 * 10 * This is a stub SDK header file. This file is not part of the interface of 11 * this library nor an official version of the appropriate SDK header. It is 12 * intended only to stub the features of this header required by compiler-rt. 13 * 14 * ===-----------------------------------------------------------------------=== 15 */ 16 17 #ifndef __STRING_H__ 18 #define __STRING_H__ 19 20 typedef __SIZE_TYPE__ size_t; 21 22 int memcmp(const void *, const void *, size_t); 23 void *memcpy(void *, const void *, size_t); 24 void *memset(void *, int, size_t); 25 char *strcat(char *, const char *); 26 char *strcpy(char *, const char *); 27 char *strdup(const char *); 28 size_t strlen(const char *); 29 char *strncpy(char *, const char *, size_t); 30 31 /* Determine the appropriate strerror() function. */ 32 #if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) 33 # if defined(__i386) 34 # define __STRERROR_NAME "_strerror$UNIX2003" 35 # elif defined(__x86_64__) || defined(__arm) 36 # define __STRERROR_NAME "_strerror" 37 # else 38 # error "unrecognized architecture for targeting OS X" 39 # endif 40 #elif defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) 41 # if defined(__i386) || defined (__x86_64) || defined(__arm) 42 # define __STRERROR_NAME "_strerror" 43 # else 44 # error "unrecognized architecture for targeting iOS" 45 # endif 46 #else 47 # error "unrecognized architecture for targeting Darwin" 48 #endif 49 50 char *strerror(int) __asm(__STRERROR_NAME); 51 52 #endif /* __STRING_H__ */ 53