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#if defined(__cplusplus) 21extern "C" { 22#endif 23 24typedef struct __sFILE FILE; 25typedef __SIZE_TYPE__ size_t; 26 27/* Determine the appropriate fdopen, fopen(), and fwrite() functions. */ 28#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) 29# if defined(__i386) 30# define __FDOPEN_NAME "_fdopen$UNIX2003" 31# define __FOPEN_NAME "_fopen$UNIX2003" 32# define __FWRITE_NAME "_fwrite$UNIX2003" 33# elif defined(__x86_64__) 34# define __FDOPEN_NAME "_fdopen" 35# define __FOPEN_NAME "_fopen" 36# define __FWRITE_NAME "_fwrite" 37# elif defined(__arm) 38# define __FDOPEN_NAME "_fdopen" 39# define __FOPEN_NAME "_fopen" 40# define __FWRITE_NAME "_fwrite" 41# else 42# error "unrecognized architecture for targetting OS X" 43# endif 44#elif defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) 45# if defined(__i386) || defined (__x86_64) 46# define __FDOPEN_NAME "_fdopen" 47# define __FOPEN_NAME "_fopen" 48# define __FWRITE_NAME "_fwrite" 49# elif defined(__arm) 50# define __FDOPEN_NAME "_fdopen" 51# define __FOPEN_NAME "_fopen" 52# define __FWRITE_NAME "_fwrite" 53# else 54# error "unrecognized architecture for targetting iOS" 55# endif 56#else 57# error "unrecognized architecture for targetting Darwin" 58#endif 59 60# define stderr __stderrp 61extern FILE *__stderrp; 62 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 73int fclose(FILE *); 74int fflush(FILE *); 75FILE *fopen(const char * __restrict, const char * __restrict) __asm(__FOPEN_NAME); 76FILE *fdopen(int, const char *) __asm(__FDOPEN_NAME); 77int fprintf(FILE * __restrict, const char * __restrict, ...); 78size_t fwrite(const void * __restrict, size_t, size_t, FILE * __restrict) 79 __asm(__FWRITE_NAME); 80size_t fread(void * __restrict, size_t, size_t, FILE * __restrict); 81long ftell(FILE *); 82int fseek(FILE *, long, int); 83int snprintf(char * __restrict, size_t, const char * __restrict, ...); 84 85#if defined(__cplusplus) 86} 87#endif 88 89#endif /* __STDIO_H__ */ 90