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
20typedef __SIZE_TYPE__ size_t;
21
22int memcmp(const void *, const void *, size_t);
23void *memcpy(void *, const void *, size_t);
24void *memset(void *, int, size_t);
25char *strcat(char *, const char *);
26char *strcpy(char *, const char *);
27char *strdup(const char *);
28size_t strlen(const char *);
29char *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
50char *strerror(int) __asm(__STRERROR_NAME);
51
52#endif /* __STRING_H__ */
53