|
| 1 | +/* |
| 2 | + * Console I/O definitions |
| 3 | + * |
| 4 | + * Derived from the mingw header written by Colin Peters. |
| 5 | + * Modified for Wine use by Jon Griffiths and Francois Gouget. |
| 6 | + * This file is in the public domain. |
| 7 | + */ |
| 8 | +#ifndef __WINE_CONIO_H |
| 9 | +#define __WINE_CONIO_H |
| 10 | + |
| 11 | +#include <corecrt.h> |
| 12 | + |
| 13 | +#ifdef __cplusplus |
| 14 | +extern "C" { |
| 15 | +#endif |
| 16 | + |
| 17 | +_ACRTIMP char* __cdecl _cgets(char*); |
| 18 | +_ACRTIMP int __cdecl _cprintf(const char*,...); |
| 19 | +_ACRTIMP int __cdecl _cputs(const char*); |
| 20 | +_ACRTIMP int __cdecl _cscanf(const char*,...); |
| 21 | +_ACRTIMP int __cdecl _getch(void); |
| 22 | +_ACRTIMP int __cdecl _getche(void); |
| 23 | +_ACRTIMP int __cdecl _kbhit(void); |
| 24 | +_ACRTIMP int __cdecl _putch(int); |
| 25 | +_ACRTIMP int __cdecl _ungetch(int); |
| 26 | + |
| 27 | +#ifdef _M_IX86 |
| 28 | +_ACRTIMP int __cdecl _inp(unsigned short); |
| 29 | +_ACRTIMP __msvcrt_ulong __cdecl _inpd(unsigned short); |
| 30 | +_ACRTIMP unsigned short __cdecl _inpw(unsigned short); |
| 31 | +_ACRTIMP int __cdecl _outp(unsigned short, int); |
| 32 | +_ACRTIMP __msvcrt_ulong __cdecl _outpd(unsigned short, __msvcrt_ulong); |
| 33 | +_ACRTIMP unsigned short __cdecl _outpw(unsigned short, unsigned short); |
| 34 | +#endif |
| 35 | + |
| 36 | +#ifdef __cplusplus |
| 37 | +} |
| 38 | +#endif |
| 39 | + |
| 40 | + |
| 41 | +static inline char* cgets(char* str) { return _cgets(str); } |
| 42 | +static inline int cputs(const char* str) { return _cputs(str); } |
| 43 | +static inline int getch(void) { return _getch(); } |
| 44 | +static inline int getche(void) { return _getche(); } |
| 45 | +static inline int kbhit(void) { return _kbhit(); } |
| 46 | +static inline int putch(int c) { return _putch(c); } |
| 47 | +static inline int ungetch(int c) { return _ungetch(c); } |
| 48 | +#ifdef _M_IX86 |
| 49 | +static inline int inp(unsigned short i) { return _inp(i); } |
| 50 | +static inline unsigned short inpw(unsigned short i) { return _inpw(i); } |
| 51 | +static inline int outp(unsigned short i, int j) { return _outp(i, j); } |
| 52 | +static inline unsigned short outpw(unsigned short i, unsigned short j) { return _outpw(i, j); } |
| 53 | +#endif |
| 54 | + |
| 55 | +#if defined(__GNUC__) && (__GNUC__ < 4) |
| 56 | +_ACRTIMP int __cdecl cprintf(const char*,...) __attribute__((alias("_cprintf"),format(printf,1,2))); |
| 57 | +_ACRTIMP int __cdecl cscanf(const char*,...) __attribute__((alias("_cscanf"),format(scanf,1,2))); |
| 58 | +#else |
| 59 | +#define cprintf _cprintf |
| 60 | +#define cscanf _cscanf |
| 61 | +#endif /* __GNUC__ */ |
| 62 | + |
| 63 | +#endif /* __WINE_CONIO_H */ |
0 commit comments