Daniel Dunbar | 6758892 | 2011-11-16 22:40:57 +0000 | [diff] [blame] | 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 | |
Richard Smith | 4a4ef70 | 2012-11-13 23:55:06 +0000 | [diff] [blame] | 20 | #if defined(__cplusplus) |
| 21 | extern "C" { |
| 22 | #endif |
| 23 | |
Daniel Dunbar | 6758892 | 2011-11-16 22:40:57 +0000 | [diff] [blame] | 24 | typedef struct __sFILE FILE; |
| 25 | typedef __SIZE_TYPE__ size_t; |
| 26 | |
Bill Wendling | d06f2fc | 2013-05-23 07:18:59 +0000 | [diff] [blame] | 27 | /* Determine the appropriate fdopen, fopen(), and fwrite() functions. */ |
Daniel Dunbar | 6758892 | 2011-11-16 22:40:57 +0000 | [diff] [blame] | 28 | #if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) |
| 29 | # if defined(__i386) |
Bill Wendling | d06f2fc | 2013-05-23 07:18:59 +0000 | [diff] [blame] | 30 | # define __FDOPEN_NAME "_fdopen$UNIX2003" |
Daniel Dunbar | 6758892 | 2011-11-16 22:40:57 +0000 | [diff] [blame] | 31 | # define __FOPEN_NAME "_fopen$UNIX2003" |
| 32 | # define __FWRITE_NAME "_fwrite$UNIX2003" |
| 33 | # elif defined(__x86_64__) |
Bill Wendling | d06f2fc | 2013-05-23 07:18:59 +0000 | [diff] [blame] | 34 | # define __FDOPEN_NAME "_fdopen" |
Daniel Dunbar | 6758892 | 2011-11-16 22:40:57 +0000 | [diff] [blame] | 35 | # define __FOPEN_NAME "_fopen" |
| 36 | # define __FWRITE_NAME "_fwrite" |
Tim Northover | 4cfed27 | 2014-10-08 17:28:37 +0000 | [diff] [blame] | 37 | # elif defined(__arm) || defined(__arm64) |
Bill Wendling | d06f2fc | 2013-05-23 07:18:59 +0000 | [diff] [blame] | 38 | # define __FDOPEN_NAME "_fdopen" |
Daniel Dunbar | 6758892 | 2011-11-16 22:40:57 +0000 | [diff] [blame] | 39 | # define __FOPEN_NAME "_fopen" |
| 40 | # define __FWRITE_NAME "_fwrite" |
| 41 | # else |
Stephen Hines | 2d1fdb2 | 2014-05-28 23:58:16 -0700 | [diff] [blame] | 42 | # error "unrecognized architecture for targeting OS X" |
Daniel Dunbar | 6758892 | 2011-11-16 22:40:57 +0000 | [diff] [blame] | 43 | # endif |
| 44 | #elif defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) |
| 45 | # if defined(__i386) || defined (__x86_64) |
Bill Wendling | d06f2fc | 2013-05-23 07:18:59 +0000 | [diff] [blame] | 46 | # define __FDOPEN_NAME "_fdopen" |
Daniel Dunbar | 6758892 | 2011-11-16 22:40:57 +0000 | [diff] [blame] | 47 | # define __FOPEN_NAME "_fopen" |
| 48 | # define __FWRITE_NAME "_fwrite" |
Tim Northover | 4cfed27 | 2014-10-08 17:28:37 +0000 | [diff] [blame] | 49 | # elif defined(__arm) || defined(__arm64) |
Bill Wendling | d06f2fc | 2013-05-23 07:18:59 +0000 | [diff] [blame] | 50 | # define __FDOPEN_NAME "_fdopen" |
Daniel Dunbar | 6758892 | 2011-11-16 22:40:57 +0000 | [diff] [blame] | 51 | # define __FOPEN_NAME "_fopen" |
| 52 | # define __FWRITE_NAME "_fwrite" |
| 53 | # else |
Stephen Hines | 2d1fdb2 | 2014-05-28 23:58:16 -0700 | [diff] [blame] | 54 | # error "unrecognized architecture for targeting iOS" |
Daniel Dunbar | 6758892 | 2011-11-16 22:40:57 +0000 | [diff] [blame] | 55 | # endif |
| 56 | #else |
Stephen Hines | 2d1fdb2 | 2014-05-28 23:58:16 -0700 | [diff] [blame] | 57 | # error "unrecognized architecture for targeting Darwin" |
Daniel Dunbar | 6758892 | 2011-11-16 22:40:57 +0000 | [diff] [blame] | 58 | #endif |
| 59 | |
| 60 | # define stderr __stderrp |
| 61 | extern FILE *__stderrp; |
| 62 | |
Bill Wendling | 843f359 | 2012-09-14 18:55:32 +0000 | [diff] [blame] | 63 | #ifndef SEEK_SET |
| 64 | #define SEEK_SET 0 /* set file offset to offset */ |
| 65 | #endif |
| 66 | #ifndef SEEK_CUR |
| 67 | #define SEEK_CUR 1 /* set file offset to current plus offset */ |
| 68 | #endif |
| 69 | #ifndef SEEK_END |
| 70 | #define SEEK_END 2 /* set file offset to EOF plus offset */ |
| 71 | #endif |
| 72 | |
Daniel Dunbar | 6758892 | 2011-11-16 22:40:57 +0000 | [diff] [blame] | 73 | int fclose(FILE *); |
| 74 | int fflush(FILE *); |
Richard Smith | 4a4ef70 | 2012-11-13 23:55:06 +0000 | [diff] [blame] | 75 | FILE *fopen(const char * __restrict, const char * __restrict) __asm(__FOPEN_NAME); |
Bill Wendling | d06f2fc | 2013-05-23 07:18:59 +0000 | [diff] [blame] | 76 | FILE *fdopen(int, const char *) __asm(__FDOPEN_NAME); |
Richard Smith | 4a4ef70 | 2012-11-13 23:55:06 +0000 | [diff] [blame] | 77 | int fprintf(FILE * __restrict, const char * __restrict, ...); |
Stephen Hines | 2d1fdb2 | 2014-05-28 23:58:16 -0700 | [diff] [blame] | 78 | int fputc(int, FILE *); |
Richard Smith | 4a4ef70 | 2012-11-13 23:55:06 +0000 | [diff] [blame] | 79 | size_t fwrite(const void * __restrict, size_t, size_t, FILE * __restrict) |
Daniel Dunbar | 6758892 | 2011-11-16 22:40:57 +0000 | [diff] [blame] | 80 | __asm(__FWRITE_NAME); |
Bill Wendling | 843f359 | 2012-09-14 18:55:32 +0000 | [diff] [blame] | 81 | size_t fread(void * __restrict, size_t, size_t, FILE * __restrict); |
| 82 | long ftell(FILE *); |
| 83 | int fseek(FILE *, long, int); |
Richard Smith | 4a4ef70 | 2012-11-13 23:55:06 +0000 | [diff] [blame] | 84 | int snprintf(char * __restrict, size_t, const char * __restrict, ...); |
| 85 | |
| 86 | #if defined(__cplusplus) |
| 87 | } |
| 88 | #endif |
| 89 | |
Daniel Dunbar | 6758892 | 2011-11-16 22:40:57 +0000 | [diff] [blame] | 90 | #endif /* __STDIO_H__ */ |