source: azure_iot_hub_riscv/trunk/asp_baseplatform/monitor/stdio.h@ 453

Last change on this file since 453 was 453, checked in by coas-nagasima, 4 years ago

ファイルを追加

  • Property svn:eol-style set to native
  • Property svn:mime-type set to text/x-chdr;charset=UTF-8
File size: 7.5 KB
Line 
1/*
2 * TOPPERS/ASP/FMP Kernel
3 * Toyohashi Open Platform for Embedded Real-Time Systems/
4 * Advanced Standard Profile/Flexible MultiProcessor Kernel
5 *
6 * Copyright (C) 2003-2005 by
7 * GJ Business Division RICOH COMPANY,LTD. JAPAN
8 * Copyright (C) 2015-2017 by TOPPERS PROJECT Educational Working Group.
9 *
10 * 上記著作権者は,Free Software Foundation によって公表されている
11 * GNU General Public License の Version 2 に記述されている条件か,以
12 * 下の(1)~(4)の条件を満たす場合に限り,本ソフトウェア(本ソフトウェ
13 * アを改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下,
14 * 利用と呼ぶ)することを無償で許諾する.
15 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
16 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー
17 * スコード中に含まれていること.
18 * (2) 本ソフトウェアを再利用可能なバイナリコード(リロケータブルオブ
19 * ジェクトファイルやライブラリなど)の形で利用する場合には,利用
20 * に伴うドキュメント(利用者マニュアルなど)に,上記の著作権表示,
21 * この利用条件および下記の無保証規定を掲載すること.
22 * (3) 本ソフトウェアを再利用不可能なバイナリコードの形または機器に組
23 * み込んだ形で利用する場合には,次のいずれかの条件を満たすこと.
24 * (a) 利用に伴うドキュメント(利用者マニュアルなど)に,上記の著作
25 * 権表示,この利用条件および下記の無保証規定を掲載すること.
26 * (b) 利用の形態を,別に定める方法によって,上記著作権者に報告する
27 * こと.
28 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
29 * 害からも,上記著作権者を免責すること.
30 *
31 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者は,
32 * 本ソフトウェアに関して,その適用可能性も含めて,いかなる保証も行わ
33 * ない.また,本ソフトウェアの利用により直接的または間接的に生じたい
34 * かなる損害に関しても,その責任を負わない.
35 *
36 * @(#) $Id$
37 */
38/*
39 * Copyright (c) 1990 The Regents of the University of California.
40 * All rights reserved.
41 *
42 * Redistribution and use in source and binary forms are permitted
43 * provided that the above copyright notice and this paragraph are
44 * duplicated in all such forms and that any documentation,
45 * advertising materials, and other materials related to such
46 * distribution and use acknowledge that the software was developed
47 * by the University of California, Berkeley. The name of the
48 * University may not be used to endorse or promote products derived
49 * from this software without specific prior written permission.
50 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
51 * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
52 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
53 *
54 * @(#)stdio.h 5.3 (Berkeley) 3/15/86
55 */
56
57/*
58 * NB: to fit things in six character monocase externals, the
59 * stdio code uses the prefix `__ms' for embedded stdio objects, typically
60 * followed by a three-character attempt at a mnemonic.
61 */
62#ifndef _STDIO_H_
63#define _STDIO_H_
64
65#ifdef __cplusplus
66extern "C" {
67#endif
68
69//#define __need___va_list
70#include <stdarg.h>
71
72#define _SMALL_STDIO_
73
74#include <target_stddef.h>
75
76typedef struct __msFILE {
77 int _flags; /* flags, below; this FILE is free if 0 */
78 int _file; /* fileno, if Unix descriptor, else -1 */
79 int (* _func_in)(void*); /* pointer to a character input function */
80 /* pointer to a character input string function */
81 int (* _func_ins)(void*, unsigned int, char *);
82 void (* _func_out)(void*, int); /* pointer to a character output function */
83 /* pointer to a character output string function */
84 int (* _func_outs)(void*, unsigned int, char *);
85 /* pointer to a character output flush function */
86 int (* _func_flush)(struct __msFILE *);
87 void * _dev; /* pointer to local device structure */
88} FILE;
89
90#define __SLBF 0x0001 /* line buffered */
91#define __SNBF 0x0002 /* unbuffered */
92#define __SRD 0x0004 /* OK to read */
93#define __SWR 0x0008 /* OK to write */
94 /* RD and WR are never simultaneously asserted */
95#define __SRW 0x0010 /* open for reading & writing */
96#define __SEOF 0x0020 /* found EOF */
97#define __SERR 0x0040 /* found error */
98#define __SMBF 0x0080 /* _buf is from malloc */
99#define __SAPP 0x0100 /* fdopen()ed in append mode - so must write to end */
100#define __SSTR 0x0200 /* this is an sprintf/snprintf string */
101#define __SOPT 0x0400 /* do fseek() optimisation */
102#define __SNPT 0x0800 /* do not do fseek() optimisation */
103#define __SOFF 0x1000 /* set iff _offset is in fact correct */
104#define __SMOD 0x2000 /* true => fgetline modified _p text */
105
106/*
107 * The following three definitions are for ANSI C, which took them
108 * from System V, which stupidly took internal interface macros and
109 * made them official arguments to setvbuf(), without renaming them.
110 * Hence, these ugly _IOxxx names are *supposed* to appear in user code.
111 *
112 * Although these happen to match their counterparts above, the
113 * implementation does not rely on that (so these could be renumbered).
114 */
115#define _IOFBF 0 /* setvbuf should set fully buffered */
116#define _IOLBF 1 /* setvbuf should set line buffered */
117#define _IONBF 2 /* setvbuf should set unbuffered */
118
119#ifndef NULL
120#define NULL 0
121#endif
122
123#define BUFSIZ 1024
124#define EOF (-1)
125
126extern FILE _iob[];
127#define stdin (&_iob[0]) /* FILE input */
128#define stdout (&_iob[1]) /* FILE output */
129#define stderr (&_iob[2]) /* FILE error input output */
130
131/*
132 * Functions defined in ANSI C standard.
133 */
134
135#ifdef __GNUC__
136#define __VALIST __gnuc_va_list
137#else
138#define __VALIST char*
139#endif
140
141int fgetc(FILE *);
142int fgets(char *, int, FILE *);
143int fputc(int, FILE *);
144int fputs(const char *, FILE *);
145int putchar(int);
146int puts(const char *);
147int printf(const char *, ...);
148int vprintf(const char *, va_list args);
149int sprintf(char *, const char *, ...);
150int vsprintf(char *, const char *, va_list args);
151int snprintf(char *, size_t, const char *, ...);
152int scanf(const char *, ...);
153int sscanf(char *, const char *, ...);
154int fflush(FILE *);
155FILE *fopen(const char *, const char *);
156int fclose(FILE *);
157size_t fread(void *, size_t, size_t, FILE *);
158size_t fwrite(const void *, size_t, size_t, FILE *);
159int fseek(FILE *, long, int);
160long ftell(FILE *);
161int fprintf(FILE *, const char *, ...);
162int vfprintf(FILE *, const char *, va_list args);
163
164#define feof(p) (((p)->_flags & __SEOF) != 0)
165#define ferror(p) (((p)->_flags & __SERR) != 0)
166#define clearerr(p) ((void)((p)->_flags &= ~(__SERR|__SEOF)))
167#define putc(c,fp) fputc(c,fp)
168#define getchar() fgetc(stdin)
169#define getc(fp) fgetc(fp)
170
171/*
172 * NOT SUPPORT stdio functions
173 */
174#define gets(s) puts("NOT SUPPORT gets !\n")
175#define ungetc(c, st) puts("NOT SUPPORT ungetc !\n")
176#if !defined(__cplusplus) && defined(__GNUC__)
177#define fscanf(st, format, ...) puts("NOT SUPPORT fscanf !\n")
178#endif
179
180extern void _setup_stdio(signed int *pport);
181extern FILE *_get_stdio(int no);
182
183#ifdef __cplusplus
184}
185#endif
186#endif /* _STDIO_H_ */
Note: See TracBrowser for help on using the repository browser.