master
  1/**
  2 * This file has no copyright assigned and is placed in the Public Domain.
  3 * This file is part of the mingw-w64 runtime package.
  4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
  5 */
  6#ifndef _INC_CONIO
  7#define _INC_CONIO
  8
  9#include <crtdefs.h>
 10#include <corecrt_stdio_config.h>
 11#include <stddef.h>
 12
 13#ifdef __cplusplus
 14extern "C" {
 15#endif
 16
 17  _CRTIMP char *_cgets(char *_Buffer) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
 18  _CRTIMP int __cdecl _cputs(const char *_Str);
 19  _CRTIMP int __cdecl _getch(void);
 20  _CRTIMP int __cdecl _getche(void);
 21  _CRTIMP int __cdecl _kbhit(void);
 22
 23#ifdef _UCRT
 24  int __cdecl __conio_common_vcprintf(unsigned __int64 _Options, const char *_Format, _locale_t _Locale, va_list _ArgList);
 25  int __cdecl __conio_common_vcprintf_p(unsigned __int64 _Options, const char *_Format, _locale_t _Locale, va_list _ArgList);
 26  int __cdecl __conio_common_vcprintf_s(unsigned __int64 _Options, const char *_Format, _locale_t _Locale, va_list _ArgList);
 27  int __cdecl __conio_common_vcscanf(unsigned __int64 _Options, const char *_Format, _locale_t _Locale, va_list _ArgList);
 28
 29  __mingw_ovr int __cdecl _vcprintf(const char * __restrict__ _Format,va_list _ArgList)
 30  {
 31    return __conio_common_vcprintf(0, _Format, NULL, _ArgList);
 32  }
 33  __mingw_ovr int __cdecl _cprintf(const char * __restrict__ _Format,...)
 34  {
 35    __builtin_va_list _ArgList;
 36    int _Ret;
 37    __builtin_va_start(_ArgList, _Format);
 38    _Ret = _vcprintf(_Format, _ArgList);
 39    __builtin_va_end(_ArgList);
 40    return _Ret;
 41  }
 42  __mingw_ovr __MINGW_ATTRIB_DEPRECATED_SEC_WARN
 43  int __cdecl _cscanf(const char * __restrict__ _Format,...)
 44  {
 45    __builtin_va_list _ArgList;
 46    int _Ret;
 47    __builtin_va_start(_ArgList, _Format);
 48    _Ret = __conio_common_vcscanf(0, _Format, NULL, _ArgList);
 49    __builtin_va_end(_ArgList);
 50    return _Ret;
 51  }
 52  __mingw_ovr __MINGW_ATTRIB_DEPRECATED_SEC_WARN
 53  int __cdecl _cscanf_l(const char * __restrict__ _Format,_locale_t _Locale,...)
 54  {
 55    __builtin_va_list _ArgList;
 56    int _Ret;
 57    __builtin_va_start(_ArgList, _Locale);
 58    _Ret = __conio_common_vcscanf(0, _Format, _Locale, _ArgList);
 59    __builtin_va_end(_ArgList);
 60    return _Ret;
 61  }
 62
 63  __mingw_ovr int __cdecl _vcprintf_p(const char * __restrict__ _Format,va_list _ArgList)
 64  {
 65    return __conio_common_vcprintf_p(0, _Format, NULL, _ArgList);
 66  }
 67  __mingw_ovr int __cdecl _cprintf_p(const char * __restrict__ _Format,...)
 68  {
 69    __builtin_va_list _ArgList;
 70    int _Ret;
 71    __builtin_va_start(_ArgList, _Format);
 72    _Ret = _vcprintf_p(_Format, _ArgList);
 73    __builtin_va_end(_ArgList);
 74    return _Ret;
 75  }
 76  __mingw_ovr int __cdecl _vcprintf_l(const char * __restrict__ _Format,_locale_t _Locale,va_list _ArgList)
 77  {
 78    return __conio_common_vcprintf(0, _Format, _Locale, _ArgList);
 79  }
 80  __mingw_ovr int __cdecl _cprintf_l(const char * __restrict__ _Format,_locale_t _Locale,...)
 81  {
 82    __builtin_va_list _ArgList;
 83    int _Ret;
 84    __builtin_va_start(_ArgList, _Locale);
 85    _Ret = _vcprintf_l(_Format, _Locale, _ArgList);
 86    __builtin_va_end(_ArgList);
 87    return _Ret;
 88  }
 89  __mingw_ovr int __cdecl _vcprintf_p_l(const char * __restrict__ _Format,_locale_t _Locale,va_list _ArgList)
 90  {
 91    return __conio_common_vcprintf_p(0, _Format, _Locale, _ArgList);
 92  }
 93  __mingw_ovr int __cdecl _cprintf_p_l(const char * __restrict__ _Format,_locale_t _Locale,...)
 94  {
 95    __builtin_va_list _ArgList;
 96    int _Ret;
 97    __builtin_va_start(_ArgList, _Locale);
 98    _Ret = _vcprintf_p_l(_Format, _Locale, _ArgList);
 99    __builtin_va_end(_ArgList);
100    return _Ret;
101  }
102#else
103  _CRTIMP int __cdecl _cprintf(const char * __restrict__ _Format,...);
104  _CRTIMP int __cdecl _cscanf(const char * __restrict__ _Format,...) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
105  _CRTIMP int __cdecl _cscanf_l(const char * __restrict__ _Format,_locale_t _Locale,...) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
106
107  _CRTIMP int __cdecl _vcprintf(const char * __restrict__ _Format,va_list _ArgList);
108  _CRTIMP int __cdecl _cprintf_p(const char * __restrict__ _Format,...);
109  _CRTIMP int __cdecl _vcprintf_p(const char * __restrict__ _Format,va_list _ArgList);
110  _CRTIMP int __cdecl _cprintf_l(const char * __restrict__ _Format,_locale_t _Locale,...);
111  _CRTIMP int __cdecl _vcprintf_l(const char * __restrict__ _Format,_locale_t _Locale,va_list _ArgList);
112  _CRTIMP int __cdecl _cprintf_p_l(const char * __restrict__ _Format,_locale_t _Locale,...);
113  _CRTIMP int __cdecl _vcprintf_p_l(const char * __restrict__ _Format,_locale_t _Locale,va_list _ArgList);
114#endif
115
116#if defined(_X86_) && !defined(__x86_64)
117  int __cdecl _inp(unsigned short);
118  unsigned short __cdecl _inpw(unsigned short);
119  unsigned long __cdecl _inpd(unsigned short);
120  int __cdecl _outp(unsigned short,int);
121  unsigned short __cdecl _outpw(unsigned short,unsigned short);
122  unsigned long __cdecl _outpd(unsigned short,unsigned long);
123#endif
124
125  _CRTIMP int __cdecl _putch(int _Ch);
126  _CRTIMP int __cdecl _ungetch(int _Ch);
127#if __MSVCRT_VERSION__ >= 0x800
128  _CRTIMP int __cdecl _getch_nolock(void);
129  _CRTIMP int __cdecl _getche_nolock(void);
130  _CRTIMP int __cdecl _putch_nolock(int _Ch);
131  _CRTIMP int __cdecl _ungetch_nolock(int _Ch);
132#endif
133
134#ifndef _WCONIO_DEFINED
135#define _WCONIO_DEFINED
136
137#ifndef WEOF
138#define WEOF (wint_t)(0xFFFF)
139#endif
140
141  _CRTIMP wchar_t *_cgetws(wchar_t *_Buffer) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
142  _CRTIMP wint_t __cdecl _getwch(void);
143  _CRTIMP wint_t __cdecl _getwche(void);
144  _CRTIMP wint_t __cdecl _putwch(wchar_t _WCh);
145  _CRTIMP wint_t __cdecl _ungetwch(wint_t _WCh);
146  _CRTIMP int __cdecl _cputws(const wchar_t *_String);
147#ifdef _UCRT
148  int __cdecl __conio_common_vcwprintf(unsigned __int64 _Options, const wchar_t *_Format, _locale_t _Locale, va_list _ArgList);
149  int __cdecl __conio_common_vcwprintf_p(unsigned __int64 _Options, const wchar_t *_Format, _locale_t _Locale, va_list _ArgList);
150  int __cdecl __conio_common_vcwprintf_s(unsigned __int64 _Options, const wchar_t *_Format, _locale_t _Locale, va_list _ArgList);
151  int __cdecl __conio_common_vcwscanf(unsigned __int64 _Options, const wchar_t *_Format, _locale_t _Locale, va_list _ArgList);
152
153  __mingw_ovr int __cdecl _vcwprintf(const wchar_t * __restrict__ _Format,va_list _ArgList)
154  {
155    return __conio_common_vcwprintf(_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS, _Format, NULL, _ArgList);
156  }
157  __mingw_ovr int __cdecl _cwprintf(const wchar_t * __restrict__ _Format,...)
158  {
159    __builtin_va_list _ArgList;
160    int _Ret;
161    __builtin_va_start(_ArgList, _Format);
162    _Ret = _vcwprintf(_Format, _ArgList);
163    __builtin_va_end(_ArgList);
164    return _Ret;
165  }
166  __mingw_ovr __MINGW_ATTRIB_DEPRECATED_SEC_WARN
167  int __cdecl _cwscanf(const wchar_t * __restrict__ _Format,...)
168  {
169    __builtin_va_list _ArgList;
170    int _Ret;
171    __builtin_va_start(_ArgList, _Format);
172    _Ret = __conio_common_vcwscanf(_CRT_INTERNAL_LOCAL_SCANF_OPTIONS, _Format, NULL, _ArgList);
173    __builtin_va_end(_ArgList);
174    return _Ret;
175  }
176  __mingw_ovr __MINGW_ATTRIB_DEPRECATED_SEC_WARN
177  int __cdecl _cwscanf_l(const wchar_t * __restrict__ _Format,_locale_t _Locale,...)
178  {
179    __builtin_va_list _ArgList;
180    int _Ret;
181    __builtin_va_start(_ArgList, _Locale);
182    _Ret = __conio_common_vcwscanf(_CRT_INTERNAL_LOCAL_SCANF_OPTIONS, _Format, _Locale, _ArgList);
183    __builtin_va_end(_ArgList);
184    return _Ret;
185  }
186  __mingw_ovr int __cdecl _vcwprintf_p(const wchar_t * __restrict__ _Format,va_list _ArgList)
187  {
188    return __conio_common_vcwprintf_p(_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS, _Format, NULL, _ArgList);
189  }
190  __mingw_ovr int __cdecl _cwprintf_p(const wchar_t * __restrict__ _Format,...)
191  {
192    __builtin_va_list _ArgList;
193    int _Ret;
194    __builtin_va_start(_ArgList, _Format);
195    _Ret = _vcwprintf_p(_Format, _ArgList);
196    __builtin_va_end(_ArgList);
197    return _Ret;
198  }
199  __mingw_ovr int __cdecl _vcwprintf_l(const wchar_t * __restrict__ _Format,_locale_t _Locale,va_list _ArgList)
200  {
201    return __conio_common_vcwprintf(_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS, _Format, _Locale, _ArgList);
202  }
203  __mingw_ovr int __cdecl _cwprintf_l(const wchar_t * __restrict__ _Format,_locale_t _Locale,...)
204  {
205    __builtin_va_list _ArgList;
206    int _Ret;
207    __builtin_va_start(_ArgList, _Locale);
208    _Ret = _vcwprintf_l(_Format, _Locale, _ArgList);
209    __builtin_va_end(_ArgList);
210    return _Ret;
211  }
212  __mingw_ovr int __cdecl _vcwprintf_p_l(const wchar_t * __restrict__ _Format,_locale_t _Locale,va_list _ArgList)
213  {
214    return __conio_common_vcwprintf_p(_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS, _Format, _Locale, _ArgList);
215  }
216  __mingw_ovr int __cdecl _cwprintf_p_l(const wchar_t * __restrict__ _Format,_locale_t _Locale,...)
217  {
218    __builtin_va_list _ArgList;
219    int _Ret;
220    __builtin_va_start(_ArgList, _Locale);
221    _Ret = _vcwprintf_p_l(_Format, _Locale, _ArgList);
222    __builtin_va_end(_ArgList);
223    return _Ret;
224  }
225#else
226  _CRTIMP int __cdecl _cwprintf(const wchar_t * __restrict__ _Format,...);
227  _CRTIMP int __cdecl _cwscanf(const wchar_t * __restrict__ _Format,...) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
228  _CRTIMP int __cdecl _cwscanf_l(const wchar_t * __restrict__ _Format,_locale_t _Locale,...) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
229  _CRTIMP int __cdecl _vcwprintf(const wchar_t * __restrict__ _Format,va_list _ArgList);
230  _CRTIMP int __cdecl _cwprintf_p(const wchar_t * __restrict__ _Format,...);
231  _CRTIMP int __cdecl _vcwprintf_p(const wchar_t * __restrict__ _Format,va_list _ArgList);
232  _CRTIMP int __cdecl _cwprintf_l(const wchar_t * __restrict__ _Format,_locale_t _Locale,...);
233  _CRTIMP int __cdecl _vcwprintf_l(const wchar_t * __restrict__ _Format,_locale_t _Locale,va_list _ArgList);
234  _CRTIMP int __cdecl _cwprintf_p_l(const wchar_t * __restrict__ _Format,_locale_t _Locale,...);
235  _CRTIMP int __cdecl _vcwprintf_p_l(const wchar_t * __restrict__ _Format,_locale_t _Locale,va_list _ArgList);
236#endif
237#if __MSVCRT_VERSION__ >= 0x800
238  _CRTIMP wint_t __cdecl _putwch_nolock(wchar_t _WCh);
239  _CRTIMP wint_t __cdecl _getwch_nolock(void);
240  _CRTIMP wint_t __cdecl _getwche_nolock(void);
241  _CRTIMP wint_t __cdecl _ungetwch_nolock(wint_t _WCh);
242#endif
243#endif
244
245#ifndef	NO_OLDNAMES
246  char *__cdecl cgets(char *_Buffer) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
247
248#ifdef _UCRT
249  __mingw_ovr int __cdecl cprintf(const char * __restrict__ _Format,...) __MINGW_ATTRIB_DEPRECATED_MSVC2005
250  {
251    __builtin_va_list _ArgList;
252    int _Ret;
253    __builtin_va_start(_ArgList, _Format);
254    _Ret = _vcprintf(_Format, _ArgList);
255    __builtin_va_end(_ArgList);
256    return _Ret;
257  }
258  __mingw_ovr int __cdecl cscanf(const char * __restrict__ _Format,...) __MINGW_ATTRIB_DEPRECATED_MSVC2005
259  {
260    __builtin_va_list _ArgList;
261    int _Ret;
262    __builtin_va_start(_ArgList, _Format);
263    _Ret = __conio_common_vcscanf(0, _Format, NULL, _ArgList);
264    __builtin_va_end(_ArgList);
265    return _Ret;
266  }
267#else
268  int __cdecl cprintf(const char * __restrict__ _Format,...) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
269  int __cdecl cscanf(const char * __restrict__ _Format,...) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
270#endif
271  int __cdecl cputs(const char *_Str) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
272  int __cdecl getch(void) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
273  int __cdecl getche(void) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
274  int __cdecl kbhit(void) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
275  int __cdecl putch(int _Ch) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
276  int __cdecl ungetch(int _Ch) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
277
278#if (defined(_X86_) && !defined(__x86_64))
279  int __cdecl inp(unsigned short) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
280  unsigned short __cdecl inpw(unsigned short) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
281  int __cdecl outp(unsigned short,int) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
282  unsigned short __cdecl outpw(unsigned short,unsigned short) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
283#endif
284
285    /* __cpuid moved to intrin.h per msdn */
286    /* __inbyte moved to intrin.h per msdn */
287    /* __inbytestring moved to intrin.h per msdn */
288    /* __indword moved to intrin.h per msdn */
289    /* __indwordstring moved to intrin.h per msdn */
290    /* __inword moved to intrin.h per msdn */
291    /* __inwordstring moved to intrin.h per msdn */
292    /* __outbyte moved to intrin.h per msdn */
293    /* __outbytestring moved to intrin.h per msdn */
294    /* __outdword moved to intrin.h per msdn */
295    /* __outdwordstring moved to intrin.h per msdn */
296    /* __outword moved to intrin.h per msdn */
297    /* __outwordstring moved to intrin.h per msdn */
298    /* __readcr0 moved to intrin.h per msdn */
299    /* __readcr2 moved to intrin.h per msdn */
300    /* __readcr3 moved to intrin.h per msdn */
301    /* __readcr4 moved to intrin.h per msdn */
302    /* __readcr8 moved to intrin.h per msdn */
303    /* __readmsr moved to intrin.h per msdn */
304    /* __writecr0 moved to intrin.h per msdn */
305    /* __writecr2 moved to intrin.h per msdn */
306    /* __writecr3 moved to intrin.h per msdn */
307    /* __writecr4 moved to intrin.h per msdn */
308    /* __writecr8 moved to intrin.h per msdn */
309    /* __writemsr moved to intrin.h per msdn */
310#endif
311
312#ifdef __cplusplus
313}
314#endif
315
316#include <sec_api/conio_s.h>
317
318#endif