16758892590ff3a56d800cb862d3b37f63ff941faDaniel Dunbar/* ===-- string.h - stub SDK header for compiler-rt -------------------------=== 26758892590ff3a56d800cb862d3b37f63ff941faDaniel Dunbar * 36758892590ff3a56d800cb862d3b37f63ff941faDaniel Dunbar * The LLVM Compiler Infrastructure 46758892590ff3a56d800cb862d3b37f63ff941faDaniel Dunbar * 56758892590ff3a56d800cb862d3b37f63ff941faDaniel Dunbar * This file is dual licensed under the MIT and the University of Illinois Open 66758892590ff3a56d800cb862d3b37f63ff941faDaniel Dunbar * Source Licenses. See LICENSE.TXT for details. 76758892590ff3a56d800cb862d3b37f63ff941faDaniel Dunbar * 86758892590ff3a56d800cb862d3b37f63ff941faDaniel Dunbar * ===-----------------------------------------------------------------------=== 96758892590ff3a56d800cb862d3b37f63ff941faDaniel Dunbar * 106758892590ff3a56d800cb862d3b37f63ff941faDaniel Dunbar * This is a stub SDK header file. This file is not part of the interface of 116758892590ff3a56d800cb862d3b37f63ff941faDaniel Dunbar * this library nor an official version of the appropriate SDK header. It is 126758892590ff3a56d800cb862d3b37f63ff941faDaniel Dunbar * intended only to stub the features of this header required by compiler-rt. 136758892590ff3a56d800cb862d3b37f63ff941faDaniel Dunbar * 146758892590ff3a56d800cb862d3b37f63ff941faDaniel Dunbar * ===-----------------------------------------------------------------------=== 156758892590ff3a56d800cb862d3b37f63ff941faDaniel Dunbar */ 166758892590ff3a56d800cb862d3b37f63ff941faDaniel Dunbar 176758892590ff3a56d800cb862d3b37f63ff941faDaniel Dunbar#ifndef __STRING_H__ 186758892590ff3a56d800cb862d3b37f63ff941faDaniel Dunbar#define __STRING_H__ 196758892590ff3a56d800cb862d3b37f63ff941faDaniel Dunbar 206758892590ff3a56d800cb862d3b37f63ff941faDaniel Dunbartypedef __SIZE_TYPE__ size_t; 216758892590ff3a56d800cb862d3b37f63ff941faDaniel Dunbar 22fa3eee4101f39661b4a88ac0bc7f184ca8c1ecb1Benjamin Kramerint memcmp(const void *, const void *, size_t); 23fa3eee4101f39661b4a88ac0bc7f184ca8c1ecb1Benjamin Kramervoid *memcpy(void *, const void *, size_t); 242a46a60510948b5005d62025fbba307a0323ed8dBill Wendlingvoid *memset(void *, int, size_t); 256758892590ff3a56d800cb862d3b37f63ff941faDaniel Dunbarchar *strcat(char *, const char *); 266758892590ff3a56d800cb862d3b37f63ff941faDaniel Dunbarchar *strcpy(char *, const char *); 276758892590ff3a56d800cb862d3b37f63ff941faDaniel Dunbarchar *strdup(const char *); 286758892590ff3a56d800cb862d3b37f63ff941faDaniel Dunbarsize_t strlen(const char *); 296758892590ff3a56d800cb862d3b37f63ff941faDaniel Dunbarchar *strncpy(char *, const char *, size_t); 306758892590ff3a56d800cb862d3b37f63ff941faDaniel Dunbar 31da8596b60b1c90a870c9610c2cef7f06a03b6cdcBill Wendling/* Determine the appropriate strerror() function. */ 32da8596b60b1c90a870c9610c2cef7f06a03b6cdcBill Wendling#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) 33da8596b60b1c90a870c9610c2cef7f06a03b6cdcBill Wendling# if defined(__i386) 34da8596b60b1c90a870c9610c2cef7f06a03b6cdcBill Wendling# define __STRERROR_NAME "_strerror$UNIX2003" 35da8596b60b1c90a870c9610c2cef7f06a03b6cdcBill Wendling# elif defined(__x86_64__) || defined(__arm) 36da8596b60b1c90a870c9610c2cef7f06a03b6cdcBill Wendling# define __STRERROR_NAME "_strerror" 37da8596b60b1c90a870c9610c2cef7f06a03b6cdcBill Wendling# else 382d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines# error "unrecognized architecture for targeting OS X" 39da8596b60b1c90a870c9610c2cef7f06a03b6cdcBill Wendling# endif 40da8596b60b1c90a870c9610c2cef7f06a03b6cdcBill Wendling#elif defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) 41da8596b60b1c90a870c9610c2cef7f06a03b6cdcBill Wendling# if defined(__i386) || defined (__x86_64) || defined(__arm) 42da8596b60b1c90a870c9610c2cef7f06a03b6cdcBill Wendling# define __STRERROR_NAME "_strerror" 43da8596b60b1c90a870c9610c2cef7f06a03b6cdcBill Wendling# else 442d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines# error "unrecognized architecture for targeting iOS" 45da8596b60b1c90a870c9610c2cef7f06a03b6cdcBill Wendling# endif 46da8596b60b1c90a870c9610c2cef7f06a03b6cdcBill Wendling#else 472d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines# error "unrecognized architecture for targeting Darwin" 48da8596b60b1c90a870c9610c2cef7f06a03b6cdcBill Wendling#endif 49da8596b60b1c90a870c9610c2cef7f06a03b6cdcBill Wendling 50da8596b60b1c90a870c9610c2cef7f06a03b6cdcBill Wendlingchar *strerror(int) __asm(__STRERROR_NAME); 51da8596b60b1c90a870c9610c2cef7f06a03b6cdcBill Wendling 526758892590ff3a56d800cb862d3b37f63ff941faDaniel Dunbar#endif /* __STRING_H__ */ 53