mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-05-08 01:37:40 +00:00
libc: Introduce files from SCC
Taken from http://git.simple-cc.org/scc/ from the following commit: 67508ad14af314cea2229783d3c084f28c41daf0 Permission has been granted from the author to use them under the license BSD-3-Clause instead of ISC. Change-Id: I65c0ce3ab60c49d34a57533af12a74bd7bde88e5 Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
This commit is contained in:
parent
2c5aca6eaa
commit
27989a8e34
10 changed files with 374 additions and 27 deletions
133
include/lib/libc/stdio.h
Normal file
133
include/lib/libc/stdio.h
Normal file
|
@ -0,0 +1,133 @@
|
|||
/*
|
||||
* Copyright (c) 2012-2017 Roberto E. Vargas Caballero
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
||||
#ifndef _STDIO_H
|
||||
#define _STDIO_H
|
||||
|
||||
#include <arch/stdio.h>
|
||||
|
||||
#ifndef FOPEN_MAX
|
||||
#define FOPEN_MAX 12
|
||||
#endif
|
||||
|
||||
#ifndef NULL
|
||||
#define NULL ((void *) 0)
|
||||
#endif
|
||||
|
||||
#define EOF -1
|
||||
#define SEEK_CUR 0
|
||||
#define SEEK_END 1
|
||||
#define SEEK_SET 2
|
||||
|
||||
|
||||
#define _IOWRITE (1 << 0)
|
||||
#define _IOREAD (1 << 1)
|
||||
#define _IORW (1 << 2)
|
||||
#define _IOEOF (1 << 3)
|
||||
#define _IOERR (1 << 4)
|
||||
#define _IOSTRG (1 << 5)
|
||||
#define _IOTXT (1 << 6)
|
||||
#define _IOFBF (1 << 7)
|
||||
#define _IOLBF (1 << 8)
|
||||
#define _IONBF (1 << 9)
|
||||
#define _IOALLOC (1 <<10)
|
||||
|
||||
typedef struct {
|
||||
int fd; /* file descriptor */
|
||||
unsigned char *buf; /* pointer to i/o buffer */
|
||||
unsigned char *rp; /* read pointer */
|
||||
unsigned char *wp; /* write pointer */
|
||||
unsigned char *lp; /* write pointer used when line-buffering */
|
||||
size_t len; /* actual length of buffer */
|
||||
unsigned short flags;
|
||||
unsigned char unbuf[1]; /* tiny buffer for unbuffered io */
|
||||
} FILE;
|
||||
|
||||
extern FILE __iob[FOPEN_MAX];
|
||||
|
||||
#define stdin (&__iob[0])
|
||||
#define stdout (&__iob[1])
|
||||
#define stderr (&__iob[2])
|
||||
|
||||
extern int remove(const char *filename);
|
||||
extern int rename(const char *old, const char *new);
|
||||
extern FILE *tmpfile(void);
|
||||
extern char *tmpnam(char *s);
|
||||
extern int fclose(FILE *fp);
|
||||
extern int fflush(FILE *fp);
|
||||
extern FILE *fopen(const char * restrict fname, const char * restrict mode);
|
||||
extern FILE *freopen(const char * restrict fname, const char * restrict mode,
|
||||
FILE * restrict fp);
|
||||
extern void setbuf(FILE * restrict fp, char * restrict buf);
|
||||
extern int setvbuf(FILE * restrict fp,
|
||||
char * restrict buf, int mode, size_t size);
|
||||
extern int fprintf(FILE * restrict fp, const char * restrict fmt, ...);
|
||||
extern int fscanf(FILE * restrict fp, const char * restrict fmt, ...);
|
||||
extern int printf(const char * restrict fmt, ...);
|
||||
extern int scanf(const char * restrict fmt, ...);
|
||||
extern int snprintf(char * restrict s,
|
||||
size_t n, const char * restrict fmt, ...);
|
||||
extern int sprintf(char * restrict s, const char * restrict fmt, ...);
|
||||
extern int sscanf(const char * restrict s, const char * restrict fmt, ...);
|
||||
|
||||
#ifdef _STDARG_H
|
||||
extern int vfprintf(FILE * restrict fp,
|
||||
const char * restrict fmt, va_list arg);
|
||||
extern int vfscanf(FILE * restrict fp,
|
||||
const char * restrict fmt, va_list arg);
|
||||
extern int vprintf(const char * restrict fmt, va_list arg);
|
||||
extern int vscanf(const char * restrict fmt, va_list arg);
|
||||
extern int vsnprintf(char * restrict s, size_t n, const char * restrict fmt,
|
||||
va_list arg);
|
||||
extern int vsprintf(char * restrict s,
|
||||
const char * restrict fmt, va_list arg);
|
||||
extern int vsscanf(const char * restrict s,
|
||||
const char * restrict fmt, va_list arg);
|
||||
#endif
|
||||
|
||||
extern int fgetc(FILE *fp);
|
||||
extern char *fgets(char * restrict s, int n, FILE * restrict fp);
|
||||
extern int fputc(int c, FILE *fp);
|
||||
extern int fputs(const char * restrict s, FILE * restrict fp);
|
||||
extern int getc(FILE *fp);
|
||||
extern int getchar(void);
|
||||
extern char *gets(char *s);
|
||||
extern int putc(int c, FILE *fp);
|
||||
extern int putchar(int c);
|
||||
extern int puts(const char *s);
|
||||
extern int ungetc(int c, FILE *fp);
|
||||
extern size_t fread(void * restrict ptr, size_t size, size_t nmemb,
|
||||
FILE * restrict fp);
|
||||
extern size_t fwrite(const void * restrict ptr, size_t size, size_t nmemb,
|
||||
FILE * restrict fp);
|
||||
extern int fgetpos(FILE * restrict fp, fpos_t * restrict pos);
|
||||
extern int fseek(FILE *fp, long int offset, int whence);
|
||||
extern int fsetpos(FILE *fp, const fpos_t *pos);
|
||||
extern long int ftell(FILE *fp);
|
||||
extern void rewind(FILE *fp);
|
||||
extern void clearerr(FILE *fp);
|
||||
extern int feof(FILE *fp);
|
||||
extern int ferror(FILE *fp);
|
||||
extern void perror(const char *s);
|
||||
|
||||
extern int __getc(FILE *fp);
|
||||
extern int __putc(int, FILE *fp);
|
||||
|
||||
#ifdef __USE_MACROS
|
||||
#ifdef __UNIX_FILES
|
||||
#define getc(fp) ((fp)->rp >= (fp)->wp ? __getc(fp) : *(fp)->rp++)
|
||||
#define putc(c, fp) ((fp)->wp >= (fp)->rp ? __putc(c,fp) : (*(fp)->wp++ = c))
|
||||
#endif
|
||||
|
||||
#define ferror(fp) ((fp)->flags & _IOERR)
|
||||
#define feof(fp) ((fp)->flags & _IOEOF)
|
||||
#define clearerr(fp) (void) ((fp)->flags &= ~(_IOERR|_IOEOF))
|
||||
#define getchar() getc(stdin)
|
||||
#define putchar(c) putc((c), stdout)
|
||||
#define setbuf(fp, b) (void) setvbuf(fp, b, b ? _IOFBF:_IONBF, BUFSIZ)
|
||||
#endif
|
||||
|
||||
#endif
|
Loading…
Add table
Add a link
Reference in a new issue