Commit ee28dbf5 authored by Iván Matellanes's avatar Iván Matellanes Committed by Alexandre Julliard

msvcirt: Add initial implementation of streambuf.

parent c5ad37ba
/*
* Copyright (C) 2007 Alexandre Julliard
* Copyright (C) 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
......@@ -19,6 +20,7 @@
#include "config.h"
#include <stdarg.h>
#include <stdio.h>
#include "msvcirt.h"
#include "windef.h"
......@@ -27,6 +29,28 @@
WINE_DEFAULT_DEBUG_CHANNEL(msvcirt);
/* class streambuf */
typedef struct {
const vtable_ptr *vtable;
int allocated;
int unbuffered;
int unknown;
char *base;
char *ebuf;
char *pbase;
char *pptr;
char *epptr;
char *eback;
char *gptr;
char *egptr;
int unknown2;
CRITICAL_SECTION lock;
} streambuf;
streambuf* __thiscall streambuf_setbuf(streambuf*, char*, int);
void __thiscall streambuf_setg(streambuf*, char*, char*, char*);
void __thiscall streambuf_setp(streambuf*, char*, char*);
typedef struct {
LPVOID VTable;
} class_ios;
......@@ -39,6 +63,250 @@ typedef struct {
LPVOID VTable;
} class_strstreambuf;
/* ??_7streambuf@@6B@ */
extern const vtable_ptr MSVCP_streambuf_vtable;
#ifndef __GNUC__
void __asm_dummy_vtables(void) {
#endif
__ASM_VTABLE(streambuf,
VTABLE_ADD_FUNC(streambuf_vector_dtor)
VTABLE_ADD_FUNC(streambuf_sync)
VTABLE_ADD_FUNC(streambuf_setbuf)
VTABLE_ADD_FUNC(streambuf_seekoff)
VTABLE_ADD_FUNC(streambuf_seekpos)
VTABLE_ADD_FUNC(streambuf_xsputn)
VTABLE_ADD_FUNC(streambuf_xsgetn)
VTABLE_ADD_FUNC(streambuf_overflow)
VTABLE_ADD_FUNC(streambuf_underflow)
VTABLE_ADD_FUNC(streambuf_pbackfail)
VTABLE_ADD_FUNC(streambuf_doallocate));
#ifndef __GNUC__
}
#endif
DEFINE_RTTI_DATA0(streambuf, 0, ".?AVstreambuf@@")
/* ??0streambuf@@IAE@PADH@Z */
/* ??0streambuf@@IEAA@PEADH@Z */
DEFINE_THISCALL_WRAPPER(streambuf_reserve_ctor, 12)
streambuf* __thiscall streambuf_reserve_ctor(streambuf *this, char *buffer, int length)
{
TRACE("(%p %p %d)\n", this, buffer, length);
this->vtable = &MSVCP_streambuf_vtable;
this->allocated = 0;
this->unknown = -1;
this->unknown2 = -1;
this->base = NULL;
streambuf_setbuf(this, buffer, length);
streambuf_setg(this, NULL, NULL, NULL);
streambuf_setp(this, NULL, NULL);
InitializeCriticalSection(&this->lock);
return this;
}
/* ??0streambuf@@IAE@XZ */
/* ??0streambuf@@IEAA@XZ */
DEFINE_THISCALL_WRAPPER(streambuf_ctor, 4)
streambuf* __thiscall streambuf_ctor(streambuf *this)
{
streambuf_reserve_ctor(this, NULL, 0);
this->unbuffered = 0;
return this;
}
/* ??0streambuf@@QAE@ABV0@@Z */
/* ??0streambuf@@QEAA@AEBV0@@Z */
DEFINE_THISCALL_WRAPPER(streambuf_copy_ctor, 8)
streambuf* __thiscall streambuf_copy_ctor(streambuf *this, const streambuf *copy)
{
TRACE("(%p %p)\n", this, copy);
*this = *copy;
this->vtable = &MSVCP_streambuf_vtable;
return this;
}
/* ??1streambuf@@UAE@XZ */
/* ??1streambuf@@UEAA@XZ */
DEFINE_THISCALL_WRAPPER(streambuf_dtor, 4)
void __thiscall streambuf_dtor(streambuf *this)
{
TRACE("(%p)\n", this);
if (this->allocated)
MSVCRT_operator_delete(this->base);
DeleteCriticalSection(&this->lock);
}
/* ??4streambuf@@QAEAAV0@ABV0@@Z */
/* ??4streambuf@@QEAAAEAV0@AEBV0@@Z */
DEFINE_THISCALL_WRAPPER(streambuf_assign, 8)
streambuf* __thiscall streambuf_assign(streambuf *this, const streambuf *rhs)
{
streambuf_dtor(this);
return streambuf_copy_ctor(this, rhs);
}
/* ??_Estreambuf@@UAEPAXI@Z */
DEFINE_THISCALL_WRAPPER(streambuf_vector_dtor, 8)
streambuf* __thiscall streambuf_vector_dtor(streambuf *this, unsigned int flags)
{
TRACE("(%p %x)\n", this, flags);
if (flags & 2) {
/* we have an array, with the number of elements stored before the first object */
INT_PTR i, *ptr = (INT_PTR *)this-1;
for (i = *ptr-1; i >= 0; i--)
streambuf_dtor(this+i);
MSVCRT_operator_delete(ptr);
} else {
streambuf_dtor(this);
if (flags & 1)
MSVCRT_operator_delete(this);
}
return this;
}
/* ??_Gstreambuf@@UAEPAXI@Z */
DEFINE_THISCALL_WRAPPER(streambuf_scalar_dtor, 8)
streambuf* __thiscall streambuf_scalar_dtor(streambuf *this, unsigned int flags)
{
TRACE("(%p %x)\n", this, flags);
streambuf_dtor(this);
if (flags & 1) MSVCRT_operator_delete(this);
return this;
}
/* ?doallocate@streambuf@@MAEHXZ */
/* ?doallocate@streambuf@@MEAAHXZ */
DEFINE_THISCALL_WRAPPER(streambuf_doallocate, 4)
int __thiscall streambuf_doallocate(streambuf *this)
{
FIXME("(%p): stub\n", this);
return EOF;
}
/* Unexported */
DEFINE_THISCALL_WRAPPER(streambuf_overflow, 8)
int __thiscall streambuf_overflow(streambuf *this, int c)
{
return EOF;
}
/* ?pbackfail@streambuf@@UAEHH@Z */
/* ?pbackfail@streambuf@@UEAAHH@Z */
DEFINE_THISCALL_WRAPPER(streambuf_pbackfail, 8)
int __thiscall streambuf_pbackfail(streambuf *this, int c)
{
FIXME("(%p %d): stub\n", this, c);
return 0;
}
/* ?seekoff@streambuf@@UAEJJW4seek_dir@ios@@H@Z */
/* ?seekoff@streambuf@@UEAAJJW4seek_dir@ios@@H@Z */
DEFINE_THISCALL_WRAPPER(streambuf_seekoff, 16)
streampos __thiscall streambuf_seekoff(streambuf *this, streamoff offset, int dir, int mode)
{
FIXME("(%p %d %d %d): stub\n", this, offset, dir, mode);
return EOF;
}
/* ?seekpos@streambuf@@UAEJJH@Z */
/* ?seekpos@streambuf@@UEAAJJH@Z */
DEFINE_THISCALL_WRAPPER(streambuf_seekpos, 12)
streampos __thiscall streambuf_seekpos(streambuf *this, streampos pos, int mode)
{
FIXME("(%p %d %d): stub\n", this, pos, mode);
return EOF;
}
/* ?setb@streambuf@@IAEXPAD0H@Z */
/* ?setb@streambuf@@IEAAXPEAD0H@Z */
DEFINE_THISCALL_WRAPPER(streambuf_setb, 16)
void __thiscall streambuf_setb(streambuf *this, char *ba, char *eb, int delete)
{
TRACE("(%p %p %p %d)\n", this, ba, eb, delete);
if (this->allocated)
MSVCRT_operator_delete(this->base);
this->allocated = delete;
this->base = ba;
this->ebuf = eb;
}
/* ?setbuf@streambuf@@UAEPAV1@PADH@Z */
/* ?setbuf@streambuf@@UEAAPEAV1@PEADH@Z */
DEFINE_THISCALL_WRAPPER(streambuf_setbuf, 12)
streambuf* __thiscall streambuf_setbuf(streambuf *this, char *buffer, int length)
{
TRACE("(%p %p %d)\n", this, buffer, length);
if (this->base != NULL)
return NULL;
if (buffer == NULL || !length) {
this->unbuffered = 1;
this->base = this->ebuf = NULL;
} else {
this->unbuffered = 0;
this->base = buffer;
this->ebuf = buffer + length;
}
return this;
}
/* ?setg@streambuf@@IAEXPAD00@Z */
/* ?setg@streambuf@@IEAAXPEAD00@Z */
DEFINE_THISCALL_WRAPPER(streambuf_setg, 16)
void __thiscall streambuf_setg(streambuf *this, char *ek, char *gp, char *eg)
{
TRACE("(%p %p %p %p)\n", this, ek, gp, eg);
this->eback = ek;
this->gptr = gp;
this->egptr = eg;
}
/* ?setp@streambuf@@IAEXPAD0@Z */
/* ?setp@streambuf@@IEAAXPEAD0@Z */
DEFINE_THISCALL_WRAPPER(streambuf_setp, 12)
void __thiscall streambuf_setp(streambuf *this, char *pb, char *ep)
{
TRACE("(%p %p %p)\n", this, pb, ep);
this->pbase = this->pptr = pb;
this->epptr = ep;
}
/* ?sync@streambuf@@UAEHXZ */
/* ?sync@streambuf@@UEAAHXZ */
DEFINE_THISCALL_WRAPPER(streambuf_sync, 4)
int __thiscall streambuf_sync(streambuf *this)
{
FIXME("(%p): stub\n", this);
return EOF;
}
/* Unexported */
DEFINE_THISCALL_WRAPPER(streambuf_underflow, 4)
int __thiscall streambuf_underflow(streambuf *this)
{
return EOF;
}
/* ?xsgetn@streambuf@@UAEHPADH@Z */
/* ?xsgetn@streambuf@@UEAAHPEADH@Z */
DEFINE_THISCALL_WRAPPER(streambuf_xsgetn, 12)
int __thiscall streambuf_xsgetn(streambuf *this, char *buffer, int count)
{
FIXME("(%p %p %d): stub\n", this, buffer, count);
return 0;
}
/* ?xsputn@streambuf@@UAEHPBDH@Z */
/* ?xsputn@streambuf@@UEAAHPEBDH@Z */
DEFINE_THISCALL_WRAPPER(streambuf_xsputn, 12)
int __thiscall streambuf_xsputn(streambuf *this, const char *data, int length)
{
FIXME("(%p %p %d): stub\n", this, data, length);
return 0;
}
/******************************************************************
* ??1ios@@UAE@XZ (MSVCRTI.@)
* class ios & __thiscall ios::-ios<<(void)
......@@ -152,6 +420,13 @@ static void init_cxx_funcs(void)
}
}
static void init_io(void *base)
{
#ifdef __x86_64__
init_streambuf_rtti(base);
#endif
}
BOOL WINAPI DllMain( HINSTANCE inst, DWORD reason, LPVOID reserved )
{
switch (reason)
......@@ -161,6 +436,7 @@ BOOL WINAPI DllMain( HINSTANCE inst, DWORD reason, LPVOID reserved )
case DLL_PROCESS_ATTACH:
init_cxx_funcs();
init_exception(inst);
init_io(inst);
DisableThreadLibraryCalls( inst );
break;
}
......
......@@ -20,6 +20,9 @@
#include "windef.h"
#include "cxx.h"
typedef LONG streamoff;
typedef LONG streampos;
extern void (__cdecl *MSVCRT_operator_delete)(void*);
void init_exception(void*);
......@@ -96,12 +96,12 @@
@ stub -arch=win64 ??0stdiostream@@QEAA@AEBV0@@Z
@ stub -arch=win32 ??0stdiostream@@QAE@PAU_iobuf@@@Z
@ stub -arch=win64 ??0stdiostream@@QEAA@PEAU_iobuf@@@Z
@ stub -arch=win32 ??0streambuf@@IAE@PADH@Z
@ stub -arch=win64 ??0streambuf@@IEAA@PEADH@Z
@ stub -arch=win32 ??0streambuf@@IAE@XZ
@ stub -arch=win64 ??0streambuf@@IEAA@XZ
@ stub -arch=win32 ??0streambuf@@QAE@ABV0@@Z
@ stub -arch=win64 ??0streambuf@@QEAA@AEBV0@@Z
@ thiscall -arch=win32 ??0streambuf@@IAE@PADH@Z(ptr ptr long) msvcirt.??0streambuf@@IAE@PADH@Z
@ cdecl -arch=win64 ??0streambuf@@IEAA@PEADH@Z(ptr ptr long) msvcirt.??0streambuf@@IEAA@PEADH@Z
@ thiscall -arch=win32 ??0streambuf@@IAE@XZ(ptr) msvcirt.??0streambuf@@IAE@XZ
@ cdecl -arch=win64 ??0streambuf@@IEAA@XZ(ptr) msvcirt.??0streambuf@@IEAA@XZ
@ thiscall -arch=win32 ??0streambuf@@QAE@ABV0@@Z(ptr ptr) msvcirt.??0streambuf@@QAE@ABV0@@Z
@ cdecl -arch=win64 ??0streambuf@@QEAA@AEBV0@@Z(ptr ptr) msvcirt.??0streambuf@@QEAA@AEBV0@@Z
@ stub -arch=win32 ??0strstream@@QAE@ABV0@@Z
@ stub -arch=win64 ??0strstream@@QEAA@AEBV0@@Z
@ stub -arch=win32 ??0strstream@@QAE@PADHH@Z
......@@ -148,8 +148,8 @@
@ stub -arch=win64 ??1stdiobuf@@UEAA@XZ
@ stub -arch=win32 ??1stdiostream@@UAE@XZ
@ stub -arch=win64 ??1stdiostream@@UEAA@XZ
@ stub -arch=win32 ??1streambuf@@UAE@XZ
@ stub -arch=win64 ??1streambuf@@UEAA@XZ
@ thiscall -arch=win32 ??1streambuf@@UAE@XZ(ptr) msvcirt.??1streambuf@@UAE@XZ
@ cdecl -arch=win64 ??1streambuf@@UEAA@XZ(ptr) msvcirt.??1streambuf@@UEAA@XZ
@ stub -arch=win32 ??1strstream@@UAE@XZ
@ stub -arch=win64 ??1strstream@@UEAA@XZ
@ stub -arch=win32 ??1strstreambuf@@UAE@XZ
......@@ -202,8 +202,8 @@
@ stub -arch=win64 ??4stdiobuf@@QEAAAEAV0@AEBV0@@Z
@ stub -arch=win32 ??4stdiostream@@QAEAAV0@AAV0@@Z
@ stub -arch=win64 ??4stdiostream@@QEAAAEAV0@AEAV0@@Z
@ stub -arch=win32 ??4streambuf@@QAEAAV0@ABV0@@Z
@ stub -arch=win64 ??4streambuf@@QEAAAEAV0@AEBV0@@Z
@ thiscall -arch=win32 ??4streambuf@@QAEAAV0@ABV0@@Z(ptr ptr) msvcirt.??4streambuf@@QAEAAV0@ABV0@@Z
@ cdecl -arch=win64 ??4streambuf@@QEAAAEAV0@AEBV0@@Z(ptr ptr) msvcirt.??4streambuf@@QEAAAEAV0@AEBV0@@Z
@ stub -arch=win32 ??4strstream@@QAEAAV0@AAV0@@Z
@ stub -arch=win64 ??4strstream@@QEAAAEAV0@AEAV0@@Z
@ stub -arch=win32 ??4strstreambuf@@QAEAAV0@ABV0@@Z
......@@ -300,7 +300,7 @@
# @ extern ??_7ostrstream@@6B@
# @ extern ??_7stdiobuf@@6B@
# @ extern ??_7stdiostream@@6B@
# @ extern ??_7streambuf@@6B@
@ extern ??_7streambuf@@6B@ msvcirt.??_7streambuf@@6B@
# @ extern ??_7strstream@@6B@
# @ extern ??_7strstreambuf@@6B@
# @ extern ??_8fstream@@7Bistream@@@
......@@ -358,7 +358,7 @@
@ stub -arch=win32 ??_Eostrstream@@UAEPAXI@Z
@ stub -arch=win32 ??_Estdiobuf@@UAEPAXI@Z
@ stub -arch=win32 ??_Estdiostream@@UAEPAXI@Z
@ stub -arch=win32 ??_Estreambuf@@UAEPAXI@Z
@ thiscall -arch=win32 ??_Estreambuf@@UAEPAXI@Z(ptr long) msvcirt.??_Estreambuf@@UAEPAXI@Z
@ stub -arch=win32 ??_Estrstream@@UAEPAXI@Z
@ stub -arch=win32 ??_Estrstreambuf@@UAEPAXI@Z
@ stub -arch=win32 ??_GIostream_init@@QAEPAXI@Z
......@@ -376,7 +376,7 @@
@ stub -arch=win32 ??_Gostrstream@@UAEPAXI@Z
@ stub -arch=win32 ??_Gstdiobuf@@UAEPAXI@Z
@ stub -arch=win32 ??_Gstdiostream@@UAEPAXI@Z
@ stub -arch=win32 ??_Gstreambuf@@UAEPAXI@Z
@ thiscall -arch=win32 ??_Gstreambuf@@UAEPAXI@Z(ptr long) msvcirt.??_Gstreambuf@@UAEPAXI@Z
@ stub -arch=win32 ??_Gstrstream@@UAEPAXI@Z
@ stub -arch=win32 ??_Gstrstreambuf@@UAEPAXI@Z
@ cdecl -arch=win32 ?_query_new_handler@@YAP6AHI@ZXZ() msvcrt.?_query_new_handler@@YAP6AHI@ZXZ
......@@ -433,8 +433,8 @@
@ stub -arch=win64 ?delbuf@ios@@QEAAXH@Z
@ stub -arch=win32 ?delbuf@ios@@QBEHXZ
@ stub -arch=win64 ?delbuf@ios@@QEBAHXZ
@ stub -arch=win32 ?doallocate@streambuf@@MAEHXZ
@ stub -arch=win64 ?doallocate@streambuf@@MEAAHXZ
@ thiscall -arch=win32 ?doallocate@streambuf@@MAEHXZ(ptr) msvcirt.?doallocate@streambuf@@MAEHXZ
@ cdecl -arch=win64 ?doallocate@streambuf@@MEAAHXZ(ptr) msvcirt.?doallocate@streambuf@@MEAAHXZ
@ stub -arch=win32 ?doallocate@strstreambuf@@MAEHXZ
@ stub -arch=win64 ?doallocate@strstreambuf@@MEAAHXZ
@ stub -arch=win32 ?eatwhite@istream@@QAEXXZ
......@@ -571,8 +571,8 @@
@ stub -arch=win64 ?overflow@strstreambuf@@UEAAHH@Z
@ stub -arch=win32 ?pbackfail@stdiobuf@@UAEHH@Z
@ stub -arch=win64 ?pbackfail@stdiobuf@@UEAAHH@Z
@ stub -arch=win32 ?pbackfail@streambuf@@UAEHH@Z
@ stub -arch=win64 ?pbackfail@streambuf@@UEAAHH@Z
@ thiscall -arch=win32 ?pbackfail@streambuf@@UAEHH@Z(ptr long) msvcirt.?pbackfail@streambuf@@UAEHH@Z
@ cdecl -arch=win64 ?pbackfail@streambuf@@UEAAHH@Z(ptr long) msvcirt.?pbackfail@streambuf@@UEAAHH@Z
@ stub -arch=win32 ?pbase@streambuf@@IBEPADXZ
@ stub -arch=win64 ?pbase@streambuf@@IEBAPEADXZ
@ stub -arch=win32 ?pbump@streambuf@@IAEXH@Z
......@@ -633,20 +633,20 @@
@ stub -arch=win64 ?seekoff@filebuf@@UEAAJJW4seek_dir@ios@@H@Z
@ stub -arch=win32 ?seekoff@stdiobuf@@UAEJJW4seek_dir@ios@@H@Z
@ stub -arch=win64 ?seekoff@stdiobuf@@UEAAJJW4seek_dir@ios@@H@Z
@ stub -arch=win32 ?seekoff@streambuf@@UAEJJW4seek_dir@ios@@H@Z
@ stub -arch=win64 ?seekoff@streambuf@@UEAAJJW4seek_dir@ios@@H@Z
@ thiscall -arch=win32 ?seekoff@streambuf@@UAEJJW4seek_dir@ios@@H@Z(ptr long long long) msvcirt.?seekoff@streambuf@@UAEJJW4seek_dir@ios@@H@Z
@ cdecl -arch=win64 ?seekoff@streambuf@@UEAAJJW4seek_dir@ios@@H@Z(ptr long long long) msvcirt.?seekoff@streambuf@@UEAAJJW4seek_dir@ios@@H@Z
@ stub -arch=win32 ?seekoff@strstreambuf@@UAEJJW4seek_dir@ios@@H@Z
@ stub -arch=win64 ?seekoff@strstreambuf@@UEAAJJW4seek_dir@ios@@H@Z
@ stub -arch=win32 ?seekp@ostream@@QAEAAV1@J@Z
@ stub -arch=win64 ?seekp@ostream@@QEAAAEAV1@J@Z
@ stub -arch=win32 ?seekp@ostream@@QAEAAV1@JW4seek_dir@ios@@@Z
@ stub -arch=win64 ?seekp@ostream@@QEAAAEAV1@JW4seek_dir@ios@@@Z
@ stub -arch=win32 ?seekpos@streambuf@@UAEJJH@Z
@ stub -arch=win64 ?seekpos@streambuf@@UEAAJJH@Z
@ thiscall -arch=win32 ?seekpos@streambuf@@UAEJJH@Z(ptr long long) msvcirt.?seekpos@streambuf@@UAEJJH@Z
@ cdecl -arch=win64 ?seekpos@streambuf@@UEAAJJH@Z(ptr long long) msvcirt.?seekpos@streambuf@@UEAAJJH@Z
@ cdecl ?set_terminate@@YAP6AXXZP6AXXZ@Z(ptr) msvcrt.?set_terminate@@YAP6AXXZP6AXXZ@Z
@ cdecl ?set_unexpected@@YAP6AXXZP6AXXZ@Z(ptr) msvcrt.?set_unexpected@@YAP6AXXZP6AXXZ@Z
@ stub -arch=win32 ?setb@streambuf@@IAEXPAD0H@Z
@ stub -arch=win64 ?setb@streambuf@@IEAAXPEAD0H@Z
@ thiscall -arch=win32 ?setb@streambuf@@IAEXPAD0H@Z(ptr ptr ptr long) msvcirt.?setb@streambuf@@IAEXPAD0H@Z
@ cdecl -arch=win64 ?setb@streambuf@@IEAAXPEAD0H@Z(ptr ptr ptr long) msvcirt.?setb@streambuf@@IEAAXPEAD0H@Z
@ stub -arch=win32 ?setbuf@filebuf@@UAEPAVstreambuf@@PADH@Z
@ stub -arch=win64 ?setbuf@filebuf@@UEAAPEAVstreambuf@@PEADH@Z
@ stub -arch=win32 ?setbuf@fstream@@QAEPAVstreambuf@@PADH@Z
......@@ -655,16 +655,16 @@
@ stub -arch=win64 ?setbuf@ifstream@@QEAAPEAVstreambuf@@PEADH@Z
@ stub -arch=win32 ?setbuf@ofstream@@QAEPAVstreambuf@@PADH@Z
@ stub -arch=win64 ?setbuf@ofstream@@QEAAPEAVstreambuf@@PEADH@Z
@ stub -arch=win32 ?setbuf@streambuf@@UAEPAV1@PADH@Z
@ stub -arch=win64 ?setbuf@streambuf@@UEAAPEAV1@PEADH@Z
@ thiscall -arch=win32 ?setbuf@streambuf@@UAEPAV1@PADH@Z(ptr ptr long) msvcirt.?setbuf@streambuf@@UAEPAV1@PADH@Z
@ cdecl -arch=win64 ?setbuf@streambuf@@UEAAPEAV1@PEADH@Z(ptr ptr long) msvcirt.?setbuf@streambuf@@UEAAPEAV1@PEADH@Z
@ stub -arch=win32 ?setbuf@strstreambuf@@UAEPAVstreambuf@@PADH@Z
@ stub -arch=win64 ?setbuf@strstreambuf@@UEAAPEAVstreambuf@@PEADH@Z
@ stub -arch=win32 ?setf@ios@@QAEJJ@Z
@ stub -arch=win64 ?setf@ios@@QEAAJJ@Z
@ stub -arch=win32 ?setf@ios@@QAEJJJ@Z
@ stub -arch=win64 ?setf@ios@@QEAAJJJ@Z
@ stub -arch=win32 ?setg@streambuf@@IAEXPAD00@Z
@ stub -arch=win64 ?setg@streambuf@@IEAAXPEAD00@Z
@ thiscall -arch=win32 ?setg@streambuf@@IAEXPAD00@Z(ptr ptr ptr ptr) msvcirt.?setg@streambuf@@IAEXPAD00@Z
@ cdecl -arch=win64 ?setg@streambuf@@IEAAXPEAD00@Z(ptr ptr ptr ptr) msvcirt.?setg@streambuf@@IEAAXPEAD00@Z
@ stub -arch=win32 ?setlock@ios@@QAAXXZ
@ stub -arch=win64 ?setlock@ios@@QEAAXXZ
@ stub -arch=win32 ?setlock@streambuf@@QAEXXZ
......@@ -677,8 +677,8 @@
@ stub -arch=win64 ?setmode@ifstream@@QEAAHH@Z
@ stub -arch=win32 ?setmode@ofstream@@QAEHH@Z
@ stub -arch=win64 ?setmode@ofstream@@QEAAHH@Z
@ stub -arch=win32 ?setp@streambuf@@IAEXPAD0@Z
@ stub -arch=win64 ?setp@streambuf@@IEAAXPEAD0@Z
@ thiscall -arch=win32 ?setp@streambuf@@IAEXPAD0@Z(ptr ptr ptr) msvcirt.?setp@streambuf@@IAEXPAD0@Z
@ cdecl -arch=win64 ?setp@streambuf@@IEAAXPEAD0@Z(ptr ptr ptr) msvcirt.?setp@streambuf@@IEAAXPEAD0@Z
@ stub -arch=win32 ?setrwbuf@stdiobuf@@QAEHHH@Z
@ stub -arch=win64 ?setrwbuf@stdiobuf@@QEAAHHH@Z
@ stub -arch=win32 ?sgetc@streambuf@@QAEHXZ
......@@ -715,8 +715,8 @@
@ stub -arch=win64 ?sync@istream@@QEAAHXZ
@ stub -arch=win32 ?sync@stdiobuf@@UAEHXZ
@ stub -arch=win64 ?sync@stdiobuf@@UEAAHXZ
@ stub -arch=win32 ?sync@streambuf@@UAEHXZ
@ stub -arch=win64 ?sync@streambuf@@UEAAHXZ
@ thiscall -arch=win32 ?sync@streambuf@@UAEHXZ(ptr) msvcirt.?sync@streambuf@@UAEHXZ
@ cdecl -arch=win64 ?sync@streambuf@@UEAAHXZ(ptr) msvcirt.?sync@streambuf@@UEAAHXZ
@ stub -arch=win32 ?sync@strstreambuf@@UAEHXZ
@ stub -arch=win64 ?sync@strstreambuf@@UEAAHXZ
@ stub ?sync_with_stdio@ios@@SAXXZ
......@@ -769,10 +769,10 @@
# @ extern ?x_maxbit@ios@@0JA
# @ extern ?x_statebuf@ios@@0QAJA
@ stub ?xalloc@ios@@SAHXZ
@ stub -arch=win32 ?xsgetn@streambuf@@UAEHPADH@Z
@ stub -arch=win64 ?xsgetn@streambuf@@UEAAHPEADH@Z
@ stub -arch=win32 ?xsputn@streambuf@@UAEHPBDH@Z
@ stub -arch=win64 ?xsputn@streambuf@@UEAAHPEBDH@Z
@ thiscall -arch=win32 ?xsgetn@streambuf@@UAEHPADH@Z(ptr ptr long) msvcirt.?xsgetn@streambuf@@UAEHPADH@Z
@ cdecl -arch=win64 ?xsgetn@streambuf@@UEAAHPEADH@Z(ptr ptr long) msvcirt.?xsgetn@streambuf@@UEAAHPEADH@Z
@ thiscall -arch=win32 ?xsputn@streambuf@@UAEHPBDH@Z(ptr ptr long) msvcirt.?xsputn@streambuf@@UAEHPBDH@Z
@ cdecl -arch=win64 ?xsputn@streambuf@@UEAAHPEBDH@Z(ptr ptr long) msvcirt.?xsputn@streambuf@@UEAAHPEBDH@Z
@ cdecl -norelay $I10_OUTPUT(double long long long ptr) msvcrt.$I10_OUTPUT
@ cdecl -arch=i386 _CIacos() msvcrt._CIacos
@ cdecl -arch=i386 _CIasin() msvcrt._CIasin
......
......@@ -118,12 +118,12 @@
@ stub -arch=win64 ??0stdiostream@@QEAA@AEBV0@@Z
@ stub -arch=win32 ??0stdiostream@@QAE@PAU_iobuf@@@Z
@ stub -arch=win64 ??0stdiostream@@QEAA@PEAU_iobuf@@@Z
@ stub -arch=win32 ??0streambuf@@IAE@PADH@Z
@ stub -arch=win64 ??0streambuf@@IEAA@PEADH@Z
@ stub -arch=win32 ??0streambuf@@IAE@XZ
@ stub -arch=win64 ??0streambuf@@IEAA@XZ
@ stub -arch=win32 ??0streambuf@@QAE@ABV0@@Z
@ stub -arch=win64 ??0streambuf@@QEAA@AEBV0@@Z
@ thiscall -arch=win32 ??0streambuf@@IAE@PADH@Z(ptr ptr long) msvcirt.??0streambuf@@IAE@PADH@Z
@ cdecl -arch=win64 ??0streambuf@@IEAA@PEADH@Z(ptr ptr long) msvcirt.??0streambuf@@IEAA@PEADH@Z
@ thiscall -arch=win32 ??0streambuf@@IAE@XZ(ptr) msvcirt.??0streambuf@@IAE@XZ
@ cdecl -arch=win64 ??0streambuf@@IEAA@XZ(ptr) msvcirt.??0streambuf@@IEAA@XZ
@ thiscall -arch=win32 ??0streambuf@@QAE@ABV0@@Z(ptr ptr) msvcirt.??0streambuf@@QAE@ABV0@@Z
@ cdecl -arch=win64 ??0streambuf@@QEAA@AEBV0@@Z(ptr ptr) msvcirt.??0streambuf@@QEAA@AEBV0@@Z
@ stub -arch=win32 ??0strstream@@QAE@ABV0@@Z
@ stub -arch=win64 ??0strstream@@QEAA@AEBV0@@Z
@ stub -arch=win32 ??0strstream@@QAE@PADHH@Z
......@@ -180,8 +180,8 @@
@ stub -arch=win64 ??1stdiobuf@@UEAA@XZ
@ stub -arch=win32 ??1stdiostream@@UAE@XZ
@ stub -arch=win64 ??1stdiostream@@UEAA@XZ
@ stub -arch=win32 ??1streambuf@@UAE@XZ
@ stub -arch=win64 ??1streambuf@@UEAA@XZ
@ thiscall -arch=win32 ??1streambuf@@UAE@XZ(ptr) msvcirt.??1streambuf@@UAE@XZ
@ cdecl -arch=win64 ??1streambuf@@UEAA@XZ(ptr) msvcirt.??1streambuf@@UEAA@XZ
@ stub -arch=win32 ??1strstream@@UAE@XZ
@ stub -arch=win64 ??1strstream@@UEAA@XZ
@ stub -arch=win32 ??1strstreambuf@@UAE@XZ
......@@ -246,8 +246,8 @@
@ stub -arch=win64 ??4stdiobuf@@QEAAAEAV0@AEBV0@@Z
@ stub -arch=win32 ??4stdiostream@@QAEAAV0@AAV0@@Z
@ stub -arch=win64 ??4stdiostream@@QEAAAEAV0@AEAV0@@Z
@ stub -arch=win32 ??4streambuf@@QAEAAV0@ABV0@@Z
@ stub -arch=win64 ??4streambuf@@QEAAAEAV0@AEBV0@@Z
@ thiscall -arch=win32 ??4streambuf@@QAEAAV0@ABV0@@Z(ptr ptr) msvcirt.??4streambuf@@QAEAAV0@ABV0@@Z
@ cdecl -arch=win64 ??4streambuf@@QEAAAEAV0@AEBV0@@Z(ptr ptr) msvcirt.??4streambuf@@QEAAAEAV0@AEBV0@@Z
@ stub -arch=win32 ??4strstream@@QAEAAV0@AAV0@@Z
@ stub -arch=win64 ??4strstream@@QEAAAEAV0@AEAV0@@Z
@ stub -arch=win32 ??4strstreambuf@@QAEAAV0@ABV0@@Z
......@@ -353,7 +353,7 @@
# @ extern ??_7ostrstream@@6B@
# @ extern ??_7stdiobuf@@6B@
# @ extern ??_7stdiostream@@6B@
# @ extern ??_7streambuf@@6B@
@ extern ??_7streambuf@@6B@ msvcirt.??_7streambuf@@6B@
# @ extern ??_7strstream@@6B@
# @ extern ??_7strstreambuf@@6B@
# @ extern ??_8fstream@@7Bistream@@@
......@@ -416,7 +416,7 @@
@ stub -arch=win32 ??_Eostrstream@@UAEPAXI@Z
@ stub -arch=win32 ??_Estdiobuf@@UAEPAXI@Z
@ stub -arch=win32 ??_Estdiostream@@UAEPAXI@Z
@ stub -arch=win32 ??_Estreambuf@@UAEPAXI@Z
@ thiscall -arch=win32 ??_Estreambuf@@UAEPAXI@Z(ptr long) msvcirt.??_Estreambuf@@UAEPAXI@Z
@ stub -arch=win32 ??_Estrstream@@UAEPAXI@Z
@ stub -arch=win32 ??_Estrstreambuf@@UAEPAXI@Z
@ stub -arch=win32 ??_GIostream_init@@QAEPAXI@Z
......@@ -439,7 +439,7 @@
@ stub -arch=win32 ??_Gostrstream@@UAEPAXI@Z
@ stub -arch=win32 ??_Gstdiobuf@@UAEPAXI@Z
@ stub -arch=win32 ??_Gstdiostream@@UAEPAXI@Z
@ stub -arch=win32 ??_Gstreambuf@@UAEPAXI@Z
@ thiscall -arch=win32 ??_Gstreambuf@@UAEPAXI@Z(ptr long) msvcirt.??_Gstreambuf@@UAEPAXI@Z
@ stub -arch=win32 ??_Gstrstream@@UAEPAXI@Z
@ stub -arch=win32 ??_Gstrstreambuf@@UAEPAXI@Z
@ cdecl -arch=win32 ?_query_new_handler@@YAP6AHI@ZXZ() msvcrt.?_query_new_handler@@YAP6AHI@ZXZ
......@@ -498,8 +498,8 @@
@ stub -arch=win64 ?delbuf@ios@@QEAAXH@Z
@ stub -arch=win32 ?delbuf@ios@@QBEHXZ
@ stub -arch=win64 ?delbuf@ios@@QEBAHXZ
@ stub -arch=win32 ?doallocate@streambuf@@MAEHXZ
@ stub -arch=win64 ?doallocate@streambuf@@MEAAHXZ
@ thiscall -arch=win32 ?doallocate@streambuf@@MAEHXZ(ptr) msvcirt.?doallocate@streambuf@@MAEHXZ
@ cdecl -arch=win64 ?doallocate@streambuf@@MEAAHXZ(ptr) msvcirt.?doallocate@streambuf@@MEAAHXZ
@ stub -arch=win32 ?doallocate@strstreambuf@@MAEHXZ
@ stub -arch=win64 ?doallocate@strstreambuf@@MEAAHXZ
@ stub -arch=win32 ?eatwhite@istream@@QAEXXZ
......@@ -640,8 +640,8 @@
@ stub -arch=win64 ?overflow@strstreambuf@@UEAAHH@Z
@ stub -arch=win32 ?pbackfail@stdiobuf@@UAEHH@Z
@ stub -arch=win64 ?pbackfail@stdiobuf@@UEAAHH@Z
@ stub -arch=win32 ?pbackfail@streambuf@@UAEHH@Z
@ stub -arch=win64 ?pbackfail@streambuf@@UEAAHH@Z
@ thiscall -arch=win32 ?pbackfail@streambuf@@UAEHH@Z(ptr long) msvcirt.?pbackfail@streambuf@@UAEHH@Z
@ cdecl -arch=win64 ?pbackfail@streambuf@@UEAAHH@Z(ptr long) msvcirt.?pbackfail@streambuf@@UEAAHH@Z
@ stub -arch=win32 ?pbase@streambuf@@IBEPADXZ
@ stub -arch=win64 ?pbase@streambuf@@IEBAPEADXZ
@ stub -arch=win32 ?pbump@streambuf@@IAEXH@Z
......@@ -704,21 +704,21 @@
@ stub -arch=win64 ?seekoff@filebuf@@UEAAJJW4seek_dir@ios@@H@Z
@ stub -arch=win32 ?seekoff@stdiobuf@@UAEJJW4seek_dir@ios@@H@Z
@ stub -arch=win64 ?seekoff@stdiobuf@@UEAAJJW4seek_dir@ios@@H@Z
@ stub -arch=win32 ?seekoff@streambuf@@UAEJJW4seek_dir@ios@@H@Z
@ stub -arch=win64 ?seekoff@streambuf@@UEAAJJW4seek_dir@ios@@H@Z
@ thiscall -arch=win32 ?seekoff@streambuf@@UAEJJW4seek_dir@ios@@H@Z(ptr long long long) msvcirt.?seekoff@streambuf@@UAEJJW4seek_dir@ios@@H@Z
@ cdecl -arch=win64 ?seekoff@streambuf@@UEAAJJW4seek_dir@ios@@H@Z(ptr long long long) msvcirt.?seekoff@streambuf@@UEAAJJW4seek_dir@ios@@H@Z
@ stub -arch=win32 ?seekoff@strstreambuf@@UAEJJW4seek_dir@ios@@H@Z
@ stub -arch=win64 ?seekoff@strstreambuf@@UEAAJJW4seek_dir@ios@@H@Z
@ stub -arch=win32 ?seekp@ostream@@QAEAAV1@J@Z
@ stub -arch=win64 ?seekp@ostream@@QEAAAEAV1@J@Z
@ stub -arch=win32 ?seekp@ostream@@QAEAAV1@JW4seek_dir@ios@@@Z
@ stub -arch=win64 ?seekp@ostream@@QEAAAEAV1@JW4seek_dir@ios@@@Z
@ stub -arch=win32 ?seekpos@streambuf@@UAEJJH@Z
@ stub -arch=win64 ?seekpos@streambuf@@UEAAJJH@Z
@ thiscall -arch=win32 ?seekpos@streambuf@@UAEJJH@Z(ptr long long) msvcirt.?seekpos@streambuf@@UAEJJH@Z
@ cdecl -arch=win64 ?seekpos@streambuf@@UEAAJJH@Z(ptr long long) msvcirt.?seekpos@streambuf@@UEAAJJH@Z
@ cdecl ?set_new_handler@@YAP6AXXZP6AXXZ@Z(ptr) msvcrt.?set_new_handler@@YAP6AXXZP6AXXZ@Z
@ cdecl ?set_terminate@@YAP6AXXZP6AXXZ@Z(ptr) msvcrt.?set_terminate@@YAP6AXXZP6AXXZ@Z
@ cdecl ?set_unexpected@@YAP6AXXZP6AXXZ@Z(ptr) msvcrt.?set_unexpected@@YAP6AXXZP6AXXZ@Z
@ stub -arch=win32 ?setb@streambuf@@IAEXPAD0H@Z
@ stub -arch=win64 ?setb@streambuf@@IEAAXPEAD0H@Z
@ thiscall -arch=win32 ?setb@streambuf@@IAEXPAD0H@Z(ptr ptr ptr long) msvcirt.?setb@streambuf@@IAEXPAD0H@Z
@ cdecl -arch=win64 ?setb@streambuf@@IEAAXPEAD0H@Z(ptr ptr ptr long) msvcirt.?setb@streambuf@@IEAAXPEAD0H@Z
@ stub -arch=win32 ?setbuf@filebuf@@UAEPAVstreambuf@@PADH@Z
@ stub -arch=win64 ?setbuf@filebuf@@UEAAPEAVstreambuf@@PEADH@Z
@ stub -arch=win32 ?setbuf@fstream@@QAEPAVstreambuf@@PADH@Z
......@@ -727,16 +727,16 @@
@ stub -arch=win64 ?setbuf@ifstream@@QEAAPEAVstreambuf@@PEADH@Z
@ stub -arch=win32 ?setbuf@ofstream@@QAEPAVstreambuf@@PADH@Z
@ stub -arch=win64 ?setbuf@ofstream@@QEAAPEAVstreambuf@@PEADH@Z
@ stub -arch=win32 ?setbuf@streambuf@@UAEPAV1@PADH@Z
@ stub -arch=win64 ?setbuf@streambuf@@UEAAPEAV1@PEADH@Z
@ thiscall -arch=win32 ?setbuf@streambuf@@UAEPAV1@PADH@Z(ptr ptr long) msvcirt.?setbuf@streambuf@@UAEPAV1@PADH@Z
@ cdecl -arch=win64 ?setbuf@streambuf@@UEAAPEAV1@PEADH@Z(ptr ptr long) msvcirt.?setbuf@streambuf@@UEAAPEAV1@PEADH@Z
@ stub -arch=win32 ?setbuf@strstreambuf@@UAEPAVstreambuf@@PADH@Z
@ stub -arch=win64 ?setbuf@strstreambuf@@UEAAPEAVstreambuf@@PEADH@Z
@ stub -arch=win32 ?setf@ios@@QAEJJ@Z
@ stub -arch=win64 ?setf@ios@@QEAAJJ@Z
@ stub -arch=win32 ?setf@ios@@QAEJJJ@Z
@ stub -arch=win64 ?setf@ios@@QEAAJJJ@Z
@ stub -arch=win32 ?setg@streambuf@@IAEXPAD00@Z
@ stub -arch=win64 ?setg@streambuf@@IEAAXPEAD00@Z
@ thiscall -arch=win32 ?setg@streambuf@@IAEXPAD00@Z(ptr ptr ptr ptr) msvcirt.?setg@streambuf@@IAEXPAD00@Z
@ cdecl -arch=win64 ?setg@streambuf@@IEAAXPEAD00@Z(ptr ptr ptr ptr) msvcirt.?setg@streambuf@@IEAAXPEAD00@Z
@ stub -arch=win32 ?setlock@ios@@QAAXXZ
@ stub -arch=win64 ?setlock@ios@@QEAAXXZ
@ stub -arch=win32 ?setlock@streambuf@@QAEXXZ
......@@ -749,8 +749,8 @@
@ stub -arch=win64 ?setmode@ifstream@@QEAAHH@Z
@ stub -arch=win32 ?setmode@ofstream@@QAEHH@Z
@ stub -arch=win64 ?setmode@ofstream@@QEAAHH@Z
@ stub -arch=win32 ?setp@streambuf@@IAEXPAD0@Z
@ stub -arch=win64 ?setp@streambuf@@IEAAXPEAD0@Z
@ thiscall -arch=win32 ?setp@streambuf@@IAEXPAD0@Z(ptr ptr ptr) msvcirt.?setp@streambuf@@IAEXPAD0@Z
@ cdecl -arch=win64 ?setp@streambuf@@IEAAXPEAD0@Z(ptr ptr ptr) msvcirt.?setp@streambuf@@IEAAXPEAD0@Z
@ stub -arch=win32 ?setrwbuf@stdiobuf@@QAEHHH@Z
@ stub -arch=win64 ?setrwbuf@stdiobuf@@QEAAHHH@Z
@ stub -arch=win32 ?sgetc@streambuf@@QAEHXZ
......@@ -787,8 +787,8 @@
@ stub -arch=win64 ?sync@istream@@QEAAHXZ
@ stub -arch=win32 ?sync@stdiobuf@@UAEHXZ
@ stub -arch=win64 ?sync@stdiobuf@@UEAAHXZ
@ stub -arch=win32 ?sync@streambuf@@UAEHXZ
@ stub -arch=win64 ?sync@streambuf@@UEAAHXZ
@ thiscall -arch=win32 ?sync@streambuf@@UAEHXZ(ptr) msvcirt.?sync@streambuf@@UAEHXZ
@ cdecl -arch=win64 ?sync@streambuf@@UEAAHXZ(ptr) msvcirt.?sync@streambuf@@UEAAHXZ
@ stub -arch=win32 ?sync@strstreambuf@@UAEHXZ
@ stub -arch=win64 ?sync@strstreambuf@@UEAAHXZ
@ stub ?sync_with_stdio@ios@@SAXXZ
......@@ -843,10 +843,10 @@
# @ extern ?x_maxbit@ios@@0JA
# @ extern ?x_statebuf@ios@@0PAJA
@ stub ?xalloc@ios@@SAHXZ
@ stub -arch=win32 ?xsgetn@streambuf@@UAEHPADH@Z
@ stub -arch=win64 ?xsgetn@streambuf@@UEAAHPEADH@Z
@ stub -arch=win32 ?xsputn@streambuf@@UAEHPBDH@Z
@ stub -arch=win64 ?xsputn@streambuf@@UEAAHPEBDH@Z
@ thiscall -arch=win32 ?xsgetn@streambuf@@UAEHPADH@Z(ptr ptr long) msvcirt.?xsgetn@streambuf@@UAEHPADH@Z
@ cdecl -arch=win64 ?xsgetn@streambuf@@UEAAHPEADH@Z(ptr ptr long) msvcirt.?xsgetn@streambuf@@UEAAHPEADH@Z
@ thiscall -arch=win32 ?xsputn@streambuf@@UAEHPBDH@Z(ptr ptr long) msvcirt.?xsputn@streambuf@@UAEHPBDH@Z
@ cdecl -arch=win64 ?xsputn@streambuf@@UEAAHPEBDH@Z(ptr ptr long) msvcirt.?xsputn@streambuf@@UEAAHPEBDH@Z
@ cdecl -norelay $I10_OUTPUT(double long long long ptr) msvcrt.$I10_OUTPUT
@ cdecl -arch=i386 _CIacos() msvcrt._CIacos
@ cdecl -arch=i386 _CIasin() msvcrt._CIasin
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment