]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/m2/pge-boot/GStdIO.h
Update copyright years.
[thirdparty/gcc.git] / gcc / m2 / pge-boot / GStdIO.h
CommitLineData
1eee94d3
GM
1/* do not edit automatically generated by mc from StdIO. */
2/* StdIO.def provides general Read and Write procedures.
3
83ffe9cd 4Copyright (C) 2001-2023 Free Software Foundation, Inc.
1eee94d3
GM
5Contributed by Gaius Mulley <gaius.mulley@southwales.ac.uk>.
6
7This file is part of GNU Modula-2.
8
9GNU Modula-2 is free software; you can redistribute it and/or modify
10it under the terms of the GNU General Public License as published by
11the Free Software Foundation; either version 3, or (at your option)
12any later version.
13
14GNU Modula-2 is distributed in the hope that it will be useful, but
15WITHOUT ANY WARRANTY; without even the implied warranty of
16MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17General Public License for more details.
18
19Under Section 7 of GPL version 3, you are granted additional
20permissions described in the GCC Runtime Library Exception, version
213.1, as published by the Free Software Foundation.
22
23You should have received a copy of the GNU General Public License and
24a copy of the GCC Runtime Library Exception along with this program;
25see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
26<http://www.gnu.org/licenses/>. */
27
28
29#if !defined (_StdIO_H)
30# define _StdIO_H
31
32#include "config.h"
33#include "system.h"
34# ifdef __cplusplus
35extern "C" {
36# endif
37# if !defined (PROC_D)
38# define PROC_D
39 typedef void (*PROC_t) (void);
40 typedef struct { PROC_t proc; } PROC;
41# endif
42
43
44# if defined (_StdIO_C)
45# define EXTERN
46# else
47# define EXTERN extern
48# endif
49
50typedef struct StdIO_ProcWrite_p StdIO_ProcWrite;
51
52typedef struct StdIO_ProcRead_p StdIO_ProcRead;
53
54typedef void (*StdIO_ProcWrite_t) (char);
55struct StdIO_ProcWrite_p { StdIO_ProcWrite_t proc; };
56
57typedef void (*StdIO_ProcRead_t) (char *);
58struct StdIO_ProcRead_p { StdIO_ProcRead_t proc; };
59
60
61/*
62 Read - is the generic procedure that all higher application layers
63 should use to receive a character.
64*/
65
66EXTERN void StdIO_Read (char *ch);
67
68/*
69 Write - is the generic procedure that all higher application layers
70 should use to emit a character.
71*/
72
73EXTERN void StdIO_Write (char ch);
74
75/*
76 PushOutput - pushes the current Write procedure onto a stack,
77 any future references to Write will actually invoke
78 procedure, p.
79*/
80
81EXTERN void StdIO_PushOutput (StdIO_ProcWrite p);
82
83/*
84 PopOutput - restores Write to use the previous output procedure.
85*/
86
87EXTERN void StdIO_PopOutput (void);
88
89/*
90 GetCurrentOutput - returns the current output procedure.
91*/
92
93EXTERN StdIO_ProcWrite StdIO_GetCurrentOutput (void);
94
95/*
96 PushInput - pushes the current Read procedure onto a stack,
97 any future references to Read will actually invoke
98 procedure, p.
99*/
100
101EXTERN void StdIO_PushInput (StdIO_ProcRead p);
102
103/*
104 PopInput - restores Write to use the previous output procedure.
105*/
106
107EXTERN void StdIO_PopInput (void);
108
109/*
110 GetCurrentInput - returns the current input procedure.
111*/
112
113EXTERN StdIO_ProcRead StdIO_GetCurrentInput (void);
114# ifdef __cplusplus
115}
116# endif
117
118# undef EXTERN
119#endif