blob: 5b9cdf0c248f2996873cbdd70250fe5c8777d2ff [file]
/**
* This file has no copyright assigned and is placed in the Public Domain.
* This file is part of the mingw-w64 runtime package.
* No warranty is given; refer to the file DISCLAIMER.PD within this package.
*/
#ifndef _INC_CONIO
#define _INC_CONIO
#include <crtdefs.h>
#include <corecrt_stdio_config.h>
#include <corecrt_wconio.h>
#include <stddef.h>
#ifdef __cplusplus
extern "C" {
#endif
/**
* Functions to read/write strings from/to console.
*/
_CRTIMP char *__cdecl _cgets(char *_Buffer) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
_CRTIMP int __cdecl _cputs(const char *_Str);
#ifndef NO_OLDNAMES
char *__cdecl cgets(char *_Buffer) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
int __cdecl cputs(const char *_Str) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
#endif
/**
* Functions to read/write single characters from/to console.
*/
_CRTIMP int __cdecl _kbhit(void);
_CRTIMP int __cdecl _getch(void);
_CRTIMP int __cdecl _getche(void);
_CRTIMP int __cdecl _putch(int _Ch);
_CRTIMP int __cdecl _ungetch(int _Ch);
#ifndef NO_OLDNAMES
int __cdecl kbhit(void) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
int __cdecl getch(void) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
int __cdecl getche(void) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
int __cdecl putch(int _Ch) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
int __cdecl ungetch(int _Ch) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
#endif
#if __MSVCRT_VERSION__ >= 0x800
_CRTIMP int __cdecl _getch_nolock(void);
_CRTIMP int __cdecl _getche_nolock(void);
_CRTIMP int __cdecl _putch_nolock(int _Ch);
_CRTIMP int __cdecl _ungetch_nolock(int _Ch);
#endif
/**
* Formatted console I/O functions.
*/
#ifdef _UCRT
int __cdecl __conio_common_vcprintf(unsigned __int64 _Options, const char *_Format, _locale_t _Locale, va_list _ArgList);
int __cdecl __conio_common_vcprintf_p(unsigned __int64 _Options, const char *_Format, _locale_t _Locale, va_list _ArgList);
int __cdecl __conio_common_vcprintf_s(unsigned __int64 _Options, const char *_Format, _locale_t _Locale, va_list _ArgList);
int __cdecl __conio_common_vcscanf(unsigned __int64 _Options, const char *_Format, _locale_t _Locale, va_list _ArgList);
__mingw_ovr int __cdecl _vcprintf(const char * __restrict__ _Format,va_list _ArgList)
{
return __conio_common_vcprintf(0, _Format, NULL, _ArgList);
}
__mingw_ovr int __cdecl _cprintf(const char * __restrict__ _Format,...)
{
__builtin_va_list _ArgList;
int _Ret;
__builtin_va_start(_ArgList, _Format);
_Ret = _vcprintf(_Format, _ArgList);
__builtin_va_end(_ArgList);
return _Ret;
}
__mingw_ovr __MINGW_ATTRIB_DEPRECATED_SEC_WARN
int __cdecl _cscanf(const char * __restrict__ _Format,...)
{
__builtin_va_list _ArgList;
int _Ret;
__builtin_va_start(_ArgList, _Format);
_Ret = __conio_common_vcscanf(0, _Format, NULL, _ArgList);
__builtin_va_end(_ArgList);
return _Ret;
}
__mingw_ovr __MINGW_ATTRIB_DEPRECATED_SEC_WARN
int __cdecl _cscanf_l(const char * __restrict__ _Format,_locale_t _Locale,...)
{
__builtin_va_list _ArgList;
int _Ret;
__builtin_va_start(_ArgList, _Locale);
_Ret = __conio_common_vcscanf(0, _Format, _Locale, _ArgList);
__builtin_va_end(_ArgList);
return _Ret;
}
__mingw_ovr int __cdecl _vcprintf_p(const char * __restrict__ _Format,va_list _ArgList)
{
return __conio_common_vcprintf_p(0, _Format, NULL, _ArgList);
}
__mingw_ovr int __cdecl _cprintf_p(const char * __restrict__ _Format,...)
{
__builtin_va_list _ArgList;
int _Ret;
__builtin_va_start(_ArgList, _Format);
_Ret = _vcprintf_p(_Format, _ArgList);
__builtin_va_end(_ArgList);
return _Ret;
}
__mingw_ovr int __cdecl _vcprintf_l(const char * __restrict__ _Format,_locale_t _Locale,va_list _ArgList)
{
return __conio_common_vcprintf(0, _Format, _Locale, _ArgList);
}
__mingw_ovr int __cdecl _cprintf_l(const char * __restrict__ _Format,_locale_t _Locale,...)
{
__builtin_va_list _ArgList;
int _Ret;
__builtin_va_start(_ArgList, _Locale);
_Ret = _vcprintf_l(_Format, _Locale, _ArgList);
__builtin_va_end(_ArgList);
return _Ret;
}
__mingw_ovr int __cdecl _vcprintf_p_l(const char * __restrict__ _Format,_locale_t _Locale,va_list _ArgList)
{
return __conio_common_vcprintf_p(0, _Format, _Locale, _ArgList);
}
__mingw_ovr int __cdecl _cprintf_p_l(const char * __restrict__ _Format,_locale_t _Locale,...)
{
__builtin_va_list _ArgList;
int _Ret;
__builtin_va_start(_ArgList, _Locale);
_Ret = _vcprintf_p_l(_Format, _Locale, _ArgList);
__builtin_va_end(_ArgList);
return _Ret;
}
#ifndef NO_OLDNAMES
__mingw_ovr int __cdecl cprintf(const char * __restrict__ _Format,...) __MINGW_ATTRIB_DEPRECATED_MSVC2005
{
__builtin_va_list _ArgList;
int _Ret;
__builtin_va_start(_ArgList, _Format);
_Ret = _vcprintf(_Format, _ArgList);
__builtin_va_end(_ArgList);
return _Ret;
}
__mingw_ovr int __cdecl cscanf(const char * __restrict__ _Format,...) __MINGW_ATTRIB_DEPRECATED_MSVC2005
{
__builtin_va_list _ArgList;
int _Ret;
__builtin_va_start(_ArgList, _Format);
_Ret = __conio_common_vcscanf(0, _Format, NULL, _ArgList);
__builtin_va_end(_ArgList);
return _Ret;
}
#endif /* NO_OLDNAMES */
#else /* !_UCRT */
_CRTIMP int __cdecl _cprintf(const char * __restrict__ _Format,...);
_CRTIMP int __cdecl _cprintf_l(const char * __restrict__ _Format,_locale_t _Locale,...);
_CRTIMP int __cdecl _cprintf_p(const char * __restrict__ _Format,...);
_CRTIMP int __cdecl _cprintf_p_l(const char * __restrict__ _Format,_locale_t _Locale,...);
_CRTIMP int __cdecl _vcprintf(const char * __restrict__ _Format,va_list _ArgList);
_CRTIMP int __cdecl _vcprintf_l(const char * __restrict__ _Format,_locale_t _Locale,va_list _ArgList);
_CRTIMP int __cdecl _vcprintf_p(const char * __restrict__ _Format,va_list _ArgList);
_CRTIMP int __cdecl _vcprintf_p_l(const char * __restrict__ _Format,_locale_t _Locale,va_list _ArgList);
_CRTIMP int __cdecl _cscanf(const char * __restrict__ _Format,...) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
_CRTIMP int __cdecl _cscanf_l(const char * __restrict__ _Format,_locale_t _Locale,...) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
#ifndef NO_OLDNAMES
int __cdecl cprintf(const char * __restrict__ _Format,...) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
int __cdecl cscanf(const char * __restrict__ _Format,...) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
#endif /* NO_OLDNAMES */
#endif /* _UCRT */
/**
* Port I/O functions.
*
* These functions were removed from CRT in msvcr80.dll.
* They are still available in i386 system versions of msvcrt.dll.
*/
#if (__MSVCRT_VERSION__ >= 0x0400 && __MSVCRT_VERSION__ < 0x0800) && defined(_M_IX86)
int __cdecl _inp(unsigned short);
unsigned short __cdecl _inpw(unsigned short);
unsigned long __cdecl _inpd(unsigned short);
int __cdecl _outp(unsigned short,int);
unsigned short __cdecl _outpw(unsigned short,unsigned short);
unsigned long __cdecl _outpd(unsigned short,unsigned long);
#ifndef NO_OLDNAMES
int __cdecl inp(unsigned short) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
unsigned short __cdecl inpw(unsigned short) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
int __cdecl outp(unsigned short,int) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
unsigned short __cdecl outpw(unsigned short,unsigned short) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
#endif /* NO_OLDNAMES */
#endif
#ifdef __cplusplus
}
#endif
#include <sec_api/conio_s.h>
#endif