1/* 2** Copyright 2003, Axel D��rfler, axeld@pinc-software.de. All rights reserved. 3** Distributed under the terms of the MIT License. 4*/ 5#ifndef _STDIO_H_ 6#define _STDIO_H_ 7 // must match the one of the real stdio.h 8 9#include <stdarg.h> 10 11typedef off_t fpos_t; 12 13#ifdef __cplusplus 14extern "C" { 15#endif 16 17typedef struct FILE FILE; 18 // dummy definition of FILE 19 // In the boot loader, it really is a ConsoleNode 20 21extern FILE *stdin; 22extern FILE *stdout; 23extern FILE *stderr; 24 25#ifndef SEEK_SET 26# define SEEK_SET 0 27#endif 28#ifndef SEEK_CUR 29# define SEEK_CUR 1 30#endif 31#ifndef SEEK_END 32# define SEEK_END 2 33#endif 34 35#ifndef EOF 36# define EOF (-1) 37#endif 38 39#define __PRINTFLIKE(a, b) 40 41extern int printf(char const *format, ...) __PRINTFLIKE(1,2); 42extern int fprintf(FILE *stream, char const *format, ...) __PRINTFLIKE(2,3); 43extern int sprintf(char *str, char const *format, ...) __PRINTFLIKE(2,3); 44extern int snprintf(char *str, size_t size, char const *format, ...) __PRINTFLIKE(3,4); 45extern int asprintf(char **ret, char const *format, ...) __PRINTFLIKE(2,3); 46extern int vprintf(char const *format, va_list ap); 47extern int vfprintf(FILE *stream, char const *format, va_list ap); 48extern int vsprintf(char *str, char const *format, va_list ap); 49extern int vsnprintf(char *str, size_t size, char const *format, va_list ap); 50extern int vasprintf(char **ret, char const *format, va_list ap); 51 52// ToDo: not everything is or should be implemented here 53extern void clearerr(FILE *stream); 54extern int fclose(FILE *stream); 55extern int feof(FILE *stream); 56extern int ferror(FILE *stream); 57extern int fflush(FILE *stream); 58extern int fgetpos(FILE *stream, fpos_t *position); 59extern FILE *fopen(const char *name, const char *mode); 60extern size_t fread(void *buffer, size_t size, size_t numItems, FILE *stream); 61extern FILE *freopen(const char *name, const char *mode, FILE *stream); 62extern int fscanf(FILE *stream, char const *format, ...); 63extern int fseek(FILE *stream, long offset, int seekType); 64extern int fsetpos(FILE *stream, const fpos_t *position); 65extern long ftell(FILE *stream); 66extern size_t fwrite(const void *buffer, size_t size, size_t numItems, FILE *stream); 67extern void perror(const char *errorPrefix); 68extern int rename(const char *from, const char *to); 69extern void rewind(FILE *stream); 70extern int scanf(char const *format, ...); 71extern void setbuf (FILE *file, char *buff); 72extern int setvbuf(FILE *file, char *buff, int mode, size_t size); 73extern int sscanf(char const *str, char const *format, ...); 74extern FILE *tmpfile(void); 75extern char *tmpnam(char *nameBuffer); 76extern int ungetc(int c, FILE *stream); 77extern int vscanf(char const *format, va_list ap); 78extern int vsscanf(char const *str, char const *format, va_list ap); 79extern int vfscanf(FILE *stream, char const *format, va_list ap); 80 81extern int fgetc(FILE *); 82extern char *fgets(char *, int, FILE *); 83extern int fputc(int, FILE *); 84extern int fputs(const char *, FILE*); 85extern int getc(FILE *); 86extern char *gets(char *); 87extern int getw(FILE *); 88extern int getchar(void); 89extern int putc(int, FILE *); 90extern int putchar(int); 91extern int puts(const char *); 92extern int putw(int, FILE *); 93 94#ifdef __cplusplus 95} 96#endif 97 98#endif /* _STDIO_H_ */ 99