| /* |
| * Copyright 2015 Iván Matellanes |
| * |
| * This library is free software; you can redistribute it and/or |
| * modify it under the terms of the GNU Lesser General Public |
| * License as published by the Free Software Foundation; either |
| * version 2.1 of the License, or (at your option) any later version. |
| * |
| * This library is distributed in the hope that it will be useful, |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
| * Lesser General Public License for more details. |
| * |
| * You should have received a copy of the GNU Lesser General Public |
| * License along with this library; if not, write to the Free Software |
| * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA |
| */ |
| |
| #include "stdlib.h" |
| #include "windef.h" |
| #include "cxx.h" |
| |
| typedef LONG streamoff; |
| typedef LONG streampos; |
| typedef int filedesc; |
| typedef void* (__cdecl *allocFunction)(LONG); |
| typedef void (__cdecl *freeFunction)(void*); |
| |
| typedef enum { |
| IOSTATE_goodbit = 0x0, |
| IOSTATE_eofbit = 0x1, |
| IOSTATE_failbit = 0x2, |
| IOSTATE_badbit = 0x4 |
| } ios_io_state; |
| |
| typedef enum { |
| OPENMODE_in = 0x1, |
| OPENMODE_out = 0x2, |
| OPENMODE_ate = 0x4, |
| OPENMODE_app = 0x8, |
| OPENMODE_trunc = 0x10, |
| OPENMODE_nocreate = 0x20, |
| OPENMODE_noreplace = 0x40, |
| OPENMODE_binary = 0x80 |
| } ios_open_mode; |
| |
| typedef enum { |
| SEEKDIR_beg = 0, |
| SEEKDIR_cur = 1, |
| SEEKDIR_end = 2 |
| } ios_seek_dir; |
| |
| typedef enum { |
| FLAGS_skipws = 0x1, |
| FLAGS_left = 0x2, |
| FLAGS_right = 0x4, |
| FLAGS_internal = 0x8, |
| FLAGS_dec = 0x10, |
| FLAGS_oct = 0x20, |
| FLAGS_hex = 0x40, |
| FLAGS_showbase = 0x80, |
| FLAGS_showpoint = 0x100, |
| FLAGS_uppercase = 0x200, |
| FLAGS_showpos = 0x400, |
| FLAGS_scientific = 0x800, |
| FLAGS_fixed = 0x1000, |
| FLAGS_unitbuf = 0x2000, |
| FLAGS_stdio = 0x4000 |
| } ios_flags; |
| |
| extern void* (__cdecl *MSVCRT_operator_new)(SIZE_T); |
| extern void (__cdecl *MSVCRT_operator_delete)(void*); |
| |
| void init_exception(void*); |