• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /* ===-- stdio.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 __STDIO_H__
18 #define __STDIO_H__
19 
20 typedef struct __sFILE FILE;
21 typedef __SIZE_TYPE__ size_t;
22 
23 /* Determine the appropriate fopen() and fwrite() functions. */
24 #if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__)
25 #  if defined(__i386)
26 #    define __FOPEN_NAME "_fopen$UNIX2003"
27 #    define __FWRITE_NAME "_fwrite$UNIX2003"
28 #  elif defined(__x86_64__)
29 #    define __FOPEN_NAME "_fopen"
30 #    define __FWRITE_NAME "_fwrite"
31 #  elif defined(__arm)
32 #    define __FOPEN_NAME "_fopen"
33 #    define __FWRITE_NAME "_fwrite"
34 #  else
35 #    error "unrecognized architecture for targetting OS X"
36 #  endif
37 #elif defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__)
38 #  if defined(__i386) || defined (__x86_64)
39 #    define __FOPEN_NAME "_fopen"
40 #    define __FWRITE_NAME "_fwrite"
41 #  elif defined(__arm)
42 #    define __FOPEN_NAME "_fopen"
43 #    define __FWRITE_NAME "_fwrite"
44 #  else
45 #    error "unrecognized architecture for targetting iOS"
46 #  endif
47 #else
48 #  error "unrecognized architecture for targetting Darwin"
49 #endif
50 
51 #    define stderr __stderrp
52 extern FILE *__stderrp;
53 
54 int fclose(FILE *);
55 int fflush(FILE *);
56 FILE *fopen(const char * restrict, const char * restrict) __asm(__FOPEN_NAME);
57 int fprintf(FILE * restrict, const char * restrict, ...);
58 size_t fwrite(const void * restrict, size_t, size_t, FILE * restrict)
59   __asm(__FWRITE_NAME);
60 
61 #endif /* __STDIO_H__ */
62