16758892590ff3a56d800cb862d3b37f63ff941faDaniel Dunbar/* ===-- stdio.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 __STDIO_H__ 186758892590ff3a56d800cb862d3b37f63ff941faDaniel Dunbar#define __STDIO_H__ 196758892590ff3a56d800cb862d3b37f63ff941faDaniel Dunbar 204a4ef702597471bff5e249b8ec9d94d265007895Richard Smith#if defined(__cplusplus) 214a4ef702597471bff5e249b8ec9d94d265007895Richard Smithextern "C" { 224a4ef702597471bff5e249b8ec9d94d265007895Richard Smith#endif 234a4ef702597471bff5e249b8ec9d94d265007895Richard Smith 246758892590ff3a56d800cb862d3b37f63ff941faDaniel Dunbartypedef struct __sFILE FILE; 256758892590ff3a56d800cb862d3b37f63ff941faDaniel Dunbartypedef __SIZE_TYPE__ size_t; 266758892590ff3a56d800cb862d3b37f63ff941faDaniel Dunbar 27d06f2fc03087e7cccda19bd550bf6fb3bc2f5ae7Bill Wendling/* Determine the appropriate fdopen, fopen(), and fwrite() functions. */ 286758892590ff3a56d800cb862d3b37f63ff941faDaniel Dunbar#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) 296758892590ff3a56d800cb862d3b37f63ff941faDaniel Dunbar# if defined(__i386) 30d06f2fc03087e7cccda19bd550bf6fb3bc2f5ae7Bill Wendling# define __FDOPEN_NAME "_fdopen$UNIX2003" 316758892590ff3a56d800cb862d3b37f63ff941faDaniel Dunbar# define __FOPEN_NAME "_fopen$UNIX2003" 326758892590ff3a56d800cb862d3b37f63ff941faDaniel Dunbar# define __FWRITE_NAME "_fwrite$UNIX2003" 336758892590ff3a56d800cb862d3b37f63ff941faDaniel Dunbar# elif defined(__x86_64__) 34d06f2fc03087e7cccda19bd550bf6fb3bc2f5ae7Bill Wendling# define __FDOPEN_NAME "_fdopen" 356758892590ff3a56d800cb862d3b37f63ff941faDaniel Dunbar# define __FOPEN_NAME "_fopen" 366758892590ff3a56d800cb862d3b37f63ff941faDaniel Dunbar# define __FWRITE_NAME "_fwrite" 376758892590ff3a56d800cb862d3b37f63ff941faDaniel Dunbar# elif defined(__arm) 38d06f2fc03087e7cccda19bd550bf6fb3bc2f5ae7Bill Wendling# define __FDOPEN_NAME "_fdopen" 396758892590ff3a56d800cb862d3b37f63ff941faDaniel Dunbar# define __FOPEN_NAME "_fopen" 406758892590ff3a56d800cb862d3b37f63ff941faDaniel Dunbar# define __FWRITE_NAME "_fwrite" 416758892590ff3a56d800cb862d3b37f63ff941faDaniel Dunbar# else 422d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines# error "unrecognized architecture for targeting OS X" 436758892590ff3a56d800cb862d3b37f63ff941faDaniel Dunbar# endif 446758892590ff3a56d800cb862d3b37f63ff941faDaniel Dunbar#elif defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) 456758892590ff3a56d800cb862d3b37f63ff941faDaniel Dunbar# if defined(__i386) || defined (__x86_64) 46d06f2fc03087e7cccda19bd550bf6fb3bc2f5ae7Bill Wendling# define __FDOPEN_NAME "_fdopen" 476758892590ff3a56d800cb862d3b37f63ff941faDaniel Dunbar# define __FOPEN_NAME "_fopen" 486758892590ff3a56d800cb862d3b37f63ff941faDaniel Dunbar# define __FWRITE_NAME "_fwrite" 496758892590ff3a56d800cb862d3b37f63ff941faDaniel Dunbar# elif defined(__arm) 50d06f2fc03087e7cccda19bd550bf6fb3bc2f5ae7Bill Wendling# define __FDOPEN_NAME "_fdopen" 516758892590ff3a56d800cb862d3b37f63ff941faDaniel Dunbar# define __FOPEN_NAME "_fopen" 526758892590ff3a56d800cb862d3b37f63ff941faDaniel Dunbar# define __FWRITE_NAME "_fwrite" 536758892590ff3a56d800cb862d3b37f63ff941faDaniel Dunbar# else 542d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines# error "unrecognized architecture for targeting iOS" 556758892590ff3a56d800cb862d3b37f63ff941faDaniel Dunbar# endif 566758892590ff3a56d800cb862d3b37f63ff941faDaniel Dunbar#else 572d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines# error "unrecognized architecture for targeting Darwin" 586758892590ff3a56d800cb862d3b37f63ff941faDaniel Dunbar#endif 596758892590ff3a56d800cb862d3b37f63ff941faDaniel Dunbar 606758892590ff3a56d800cb862d3b37f63ff941faDaniel Dunbar# define stderr __stderrp 616758892590ff3a56d800cb862d3b37f63ff941faDaniel Dunbarextern FILE *__stderrp; 626758892590ff3a56d800cb862d3b37f63ff941faDaniel Dunbar 63843f359862fb8370eacf8aed4e749c46a92b2e38Bill Wendling#ifndef SEEK_SET 64843f359862fb8370eacf8aed4e749c46a92b2e38Bill Wendling#define SEEK_SET 0 /* set file offset to offset */ 65843f359862fb8370eacf8aed4e749c46a92b2e38Bill Wendling#endif 66843f359862fb8370eacf8aed4e749c46a92b2e38Bill Wendling#ifndef SEEK_CUR 67843f359862fb8370eacf8aed4e749c46a92b2e38Bill Wendling#define SEEK_CUR 1 /* set file offset to current plus offset */ 68843f359862fb8370eacf8aed4e749c46a92b2e38Bill Wendling#endif 69843f359862fb8370eacf8aed4e749c46a92b2e38Bill Wendling#ifndef SEEK_END 70843f359862fb8370eacf8aed4e749c46a92b2e38Bill Wendling#define SEEK_END 2 /* set file offset to EOF plus offset */ 71843f359862fb8370eacf8aed4e749c46a92b2e38Bill Wendling#endif 72843f359862fb8370eacf8aed4e749c46a92b2e38Bill Wendling 736758892590ff3a56d800cb862d3b37f63ff941faDaniel Dunbarint fclose(FILE *); 746758892590ff3a56d800cb862d3b37f63ff941faDaniel Dunbarint fflush(FILE *); 754a4ef702597471bff5e249b8ec9d94d265007895Richard SmithFILE *fopen(const char * __restrict, const char * __restrict) __asm(__FOPEN_NAME); 76d06f2fc03087e7cccda19bd550bf6fb3bc2f5ae7Bill WendlingFILE *fdopen(int, const char *) __asm(__FDOPEN_NAME); 774a4ef702597471bff5e249b8ec9d94d265007895Richard Smithint fprintf(FILE * __restrict, const char * __restrict, ...); 782d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hinesint fputc(int, FILE *); 794a4ef702597471bff5e249b8ec9d94d265007895Richard Smithsize_t fwrite(const void * __restrict, size_t, size_t, FILE * __restrict) 806758892590ff3a56d800cb862d3b37f63ff941faDaniel Dunbar __asm(__FWRITE_NAME); 81843f359862fb8370eacf8aed4e749c46a92b2e38Bill Wendlingsize_t fread(void * __restrict, size_t, size_t, FILE * __restrict); 82843f359862fb8370eacf8aed4e749c46a92b2e38Bill Wendlinglong ftell(FILE *); 83843f359862fb8370eacf8aed4e749c46a92b2e38Bill Wendlingint fseek(FILE *, long, int); 844a4ef702597471bff5e249b8ec9d94d265007895Richard Smithint snprintf(char * __restrict, size_t, const char * __restrict, ...); 854a4ef702597471bff5e249b8ec9d94d265007895Richard Smith 864a4ef702597471bff5e249b8ec9d94d265007895Richard Smith#if defined(__cplusplus) 874a4ef702597471bff5e249b8ec9d94d265007895Richard Smith} 884a4ef702597471bff5e249b8ec9d94d265007895Richard Smith#endif 894a4ef702597471bff5e249b8ec9d94d265007895Richard Smith 906758892590ff3a56d800cb862d3b37f63ff941faDaniel Dunbar#endif /* __STDIO_H__ */ 91