xref: /rk3399_ARM-atf/include/lib/libc/stdio.h (revision 7c0ff9c40ceeacf239ec9a3465be0477594cf898)
127989a8eSAntonio Nino Diaz /*
227989a8eSAntonio Nino Diaz  * Copyright (c) 2012-2017 Roberto E. Vargas Caballero
327989a8eSAntonio Nino Diaz  *
427989a8eSAntonio Nino Diaz  * SPDX-License-Identifier: BSD-3-Clause
527989a8eSAntonio Nino Diaz  */
6*7c0ff9c4SAntonio Nino Diaz /*
7*7c0ff9c4SAntonio Nino Diaz  * Portions copyright (c) 2018, ARM Limited and Contributors.
8*7c0ff9c4SAntonio Nino Diaz  * All rights reserved.
9*7c0ff9c4SAntonio Nino Diaz  */
1027989a8eSAntonio Nino Diaz 
1127989a8eSAntonio Nino Diaz #ifndef _STDIO_H
1227989a8eSAntonio Nino Diaz #define _STDIO_H
1327989a8eSAntonio Nino Diaz 
14*7c0ff9c4SAntonio Nino Diaz #include <stdio_.h>
1527989a8eSAntonio Nino Diaz 
1627989a8eSAntonio Nino Diaz #ifndef FOPEN_MAX
1727989a8eSAntonio Nino Diaz #define FOPEN_MAX 12
1827989a8eSAntonio Nino Diaz #endif
1927989a8eSAntonio Nino Diaz 
2027989a8eSAntonio Nino Diaz #ifndef NULL
2127989a8eSAntonio Nino Diaz #define NULL ((void *) 0)
2227989a8eSAntonio Nino Diaz #endif
2327989a8eSAntonio Nino Diaz 
2427989a8eSAntonio Nino Diaz #define EOF            -1
2527989a8eSAntonio Nino Diaz #define SEEK_CUR        0
2627989a8eSAntonio Nino Diaz #define SEEK_END        1
2727989a8eSAntonio Nino Diaz #define SEEK_SET        2
2827989a8eSAntonio Nino Diaz 
2927989a8eSAntonio Nino Diaz 
3027989a8eSAntonio Nino Diaz #define _IOWRITE        (1 << 0)
3127989a8eSAntonio Nino Diaz #define _IOREAD         (1 << 1)
3227989a8eSAntonio Nino Diaz #define _IORW           (1 << 2)
3327989a8eSAntonio Nino Diaz #define _IOEOF          (1 << 3)
3427989a8eSAntonio Nino Diaz #define _IOERR          (1 << 4)
3527989a8eSAntonio Nino Diaz #define _IOSTRG         (1 << 5)
3627989a8eSAntonio Nino Diaz #define _IOTXT          (1 << 6)
3727989a8eSAntonio Nino Diaz #define _IOFBF          (1 << 7)
3827989a8eSAntonio Nino Diaz #define _IOLBF          (1 << 8)
3927989a8eSAntonio Nino Diaz #define _IONBF          (1 << 9)
4027989a8eSAntonio Nino Diaz #define _IOALLOC        (1 <<10)
4127989a8eSAntonio Nino Diaz 
4227989a8eSAntonio Nino Diaz typedef struct {
4327989a8eSAntonio Nino Diaz 	int fd;        	        /* file descriptor */
4427989a8eSAntonio Nino Diaz 	unsigned char *buf;     /* pointer to i/o buffer */
4527989a8eSAntonio Nino Diaz 	unsigned char *rp;      /* read pointer */
4627989a8eSAntonio Nino Diaz 	unsigned char *wp;      /* write pointer */
4727989a8eSAntonio Nino Diaz 	unsigned char *lp;      /* write pointer used when line-buffering */
4827989a8eSAntonio Nino Diaz 	size_t len;             /* actual length of buffer */
4927989a8eSAntonio Nino Diaz 	unsigned short flags;
5027989a8eSAntonio Nino Diaz 	unsigned char unbuf[1];  /* tiny buffer for unbuffered io */
5127989a8eSAntonio Nino Diaz } FILE;
5227989a8eSAntonio Nino Diaz 
5327989a8eSAntonio Nino Diaz extern FILE __iob[FOPEN_MAX];
5427989a8eSAntonio Nino Diaz 
5527989a8eSAntonio Nino Diaz #define	stdin	(&__iob[0])
5627989a8eSAntonio Nino Diaz #define	stdout	(&__iob[1])
5727989a8eSAntonio Nino Diaz #define	stderr	(&__iob[2])
5827989a8eSAntonio Nino Diaz 
5927989a8eSAntonio Nino Diaz extern int remove(const char *filename);
6027989a8eSAntonio Nino Diaz extern int rename(const char *old, const char *new);
6127989a8eSAntonio Nino Diaz extern FILE *tmpfile(void);
6227989a8eSAntonio Nino Diaz extern char *tmpnam(char *s);
6327989a8eSAntonio Nino Diaz extern int fclose(FILE *fp);
6427989a8eSAntonio Nino Diaz extern int fflush(FILE *fp);
6527989a8eSAntonio Nino Diaz extern FILE *fopen(const char * restrict fname, const char * restrict mode);
6627989a8eSAntonio Nino Diaz extern FILE *freopen(const char * restrict fname, const char * restrict mode,
6727989a8eSAntonio Nino Diaz                      FILE * restrict fp);
6827989a8eSAntonio Nino Diaz extern void setbuf(FILE * restrict fp, char * restrict buf);
6927989a8eSAntonio Nino Diaz extern int setvbuf(FILE * restrict fp,
7027989a8eSAntonio Nino Diaz                    char * restrict buf, int mode, size_t size);
7127989a8eSAntonio Nino Diaz extern int fprintf(FILE * restrict fp, const char * restrict fmt, ...);
7227989a8eSAntonio Nino Diaz extern int fscanf(FILE * restrict fp, const char * restrict fmt, ...);
7327989a8eSAntonio Nino Diaz extern int printf(const char * restrict fmt, ...);
7427989a8eSAntonio Nino Diaz extern int scanf(const char * restrict fmt, ...);
7527989a8eSAntonio Nino Diaz extern int snprintf(char * restrict s,
7627989a8eSAntonio Nino Diaz                     size_t n, const char * restrict fmt, ...);
7727989a8eSAntonio Nino Diaz extern int sprintf(char * restrict s, const char * restrict fmt, ...);
7827989a8eSAntonio Nino Diaz extern int sscanf(const char * restrict s, const char * restrict fmt, ...);
7927989a8eSAntonio Nino Diaz 
8027989a8eSAntonio Nino Diaz #ifdef _STDARG_H
8127989a8eSAntonio Nino Diaz extern int vfprintf(FILE * restrict fp,
8227989a8eSAntonio Nino Diaz                     const char * restrict fmt, va_list arg);
8327989a8eSAntonio Nino Diaz extern int vfscanf(FILE * restrict fp,
8427989a8eSAntonio Nino Diaz                    const char * restrict fmt, va_list arg);
8527989a8eSAntonio Nino Diaz extern int vprintf(const char * restrict fmt, va_list arg);
8627989a8eSAntonio Nino Diaz extern int vscanf(const char * restrict fmt, va_list arg);
8727989a8eSAntonio Nino Diaz extern int vsnprintf(char * restrict s, size_t n, const char * restrict fmt,
8827989a8eSAntonio Nino Diaz                      va_list arg);
8927989a8eSAntonio Nino Diaz extern int vsprintf(char * restrict s,
9027989a8eSAntonio Nino Diaz                     const char * restrict fmt, va_list arg);
9127989a8eSAntonio Nino Diaz extern int vsscanf(const char * restrict s,
9227989a8eSAntonio Nino Diaz                    const char * restrict fmt, va_list arg);
9327989a8eSAntonio Nino Diaz #endif
9427989a8eSAntonio Nino Diaz 
9527989a8eSAntonio Nino Diaz extern int fgetc(FILE *fp);
9627989a8eSAntonio Nino Diaz extern char *fgets(char * restrict s, int n, FILE * restrict fp);
9727989a8eSAntonio Nino Diaz extern int fputc(int c, FILE *fp);
9827989a8eSAntonio Nino Diaz extern int fputs(const char * restrict s, FILE * restrict fp);
9927989a8eSAntonio Nino Diaz extern int getc(FILE *fp);
10027989a8eSAntonio Nino Diaz extern int getchar(void);
10127989a8eSAntonio Nino Diaz extern char *gets(char *s);
10227989a8eSAntonio Nino Diaz extern int putc(int c, FILE *fp);
10327989a8eSAntonio Nino Diaz extern int putchar(int c);
10427989a8eSAntonio Nino Diaz extern int puts(const char *s);
10527989a8eSAntonio Nino Diaz extern int ungetc(int c, FILE *fp);
10627989a8eSAntonio Nino Diaz extern size_t fread(void * restrict ptr, size_t size, size_t nmemb,
10727989a8eSAntonio Nino Diaz              FILE * restrict fp);
10827989a8eSAntonio Nino Diaz extern size_t fwrite(const void * restrict ptr, size_t size, size_t nmemb,
10927989a8eSAntonio Nino Diaz               FILE * restrict fp);
11027989a8eSAntonio Nino Diaz extern int fgetpos(FILE * restrict fp, fpos_t * restrict pos);
11127989a8eSAntonio Nino Diaz extern int fseek(FILE *fp, long int offset, int whence);
11227989a8eSAntonio Nino Diaz extern int fsetpos(FILE *fp, const fpos_t *pos);
11327989a8eSAntonio Nino Diaz extern long int ftell(FILE *fp);
11427989a8eSAntonio Nino Diaz extern void rewind(FILE *fp);
11527989a8eSAntonio Nino Diaz extern void clearerr(FILE *fp);
11627989a8eSAntonio Nino Diaz extern int feof(FILE *fp);
11727989a8eSAntonio Nino Diaz extern int ferror(FILE *fp);
11827989a8eSAntonio Nino Diaz extern void perror(const char *s);
11927989a8eSAntonio Nino Diaz 
12027989a8eSAntonio Nino Diaz extern int __getc(FILE *fp);
12127989a8eSAntonio Nino Diaz extern int __putc(int, FILE *fp);
12227989a8eSAntonio Nino Diaz 
12327989a8eSAntonio Nino Diaz #ifdef __USE_MACROS
12427989a8eSAntonio Nino Diaz #ifdef __UNIX_FILES
12527989a8eSAntonio Nino Diaz #define getc(fp)     ((fp)->rp >= (fp)->wp ?  __getc(fp) : *(fp)->rp++)
12627989a8eSAntonio Nino Diaz #define putc(c, fp)  ((fp)->wp >= (fp)->rp ? __putc(c,fp) : (*(fp)->wp++ = c))
12727989a8eSAntonio Nino Diaz #endif
12827989a8eSAntonio Nino Diaz 
12927989a8eSAntonio Nino Diaz #define ferror(fp)          ((fp)->flags & _IOERR)
13027989a8eSAntonio Nino Diaz #define feof(fp)            ((fp)->flags & _IOEOF)
13127989a8eSAntonio Nino Diaz #define clearerr(fp)        (void) ((fp)->flags &= ~(_IOERR|_IOEOF))
13227989a8eSAntonio Nino Diaz #define getchar()           getc(stdin)
13327989a8eSAntonio Nino Diaz #define putchar(c)          putc((c), stdout)
13427989a8eSAntonio Nino Diaz #define setbuf(fp, b)       (void) setvbuf(fp, b, b ? _IOFBF:_IONBF, BUFSIZ)
13527989a8eSAntonio Nino Diaz #endif
13627989a8eSAntonio Nino Diaz 
13727989a8eSAntonio Nino Diaz #endif
138