2 * Copyright 2010 Piotr Caban for CodeWeavers
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
23 typedef unsigned char MSVCP_bool;
24 typedef SIZE_T MSVCP_size_t;
25 typedef SIZE_T streamoff;
26 typedef SIZE_T streamsize;
28 void __cdecl _invalid_parameter(const wchar_t*, const wchar_t*,
29 const wchar_t*, unsigned int, uintptr_t);
31 extern void* (__cdecl *MSVCRT_operator_new)(MSVCP_size_t);
32 extern void (__cdecl *MSVCRT_operator_delete)(void*);
33 extern void* (__cdecl *MSVCRT_set_new_handler)(void*);
35 /* basic_string<char, char_traits<char>, allocator<char>> */
44 basic_string_char* __stdcall MSVCP_basic_string_char_ctor_cstr(basic_string_char*, const char*);
45 basic_string_char* __stdcall MSVCP_basic_string_char_copy_ctor(basic_string_char*, const basic_string_char*);
46 void __stdcall MSVCP_basic_string_char_dtor(basic_string_char*);
47 const char* __stdcall MSVCP_basic_string_char_c_str(const basic_string_char*);
57 char* __stdcall MSVCP_allocator_char_allocate(void*, MSVCP_size_t);
58 void __stdcall MSVCP_allocator_char_deallocate(void*, char*, MSVCP_size_t);
59 MSVCP_size_t __stdcall MSVCP_allocator_char_max_size(void*);
60 wchar_t* __stdcall MSVCP_allocator_wchar_allocate(void*, MSVCP_size_t);
61 void __stdcall MSVCP_allocator_wchar_deallocate(void*, wchar_t*, MSVCP_size_t);
62 MSVCP_size_t __stdcall MSVCP_allocator_wchar_max_size(void*);
67 struct _locale__Locimp *ptr;
70 locale* __thiscall locale_ctor(locale*);
71 void __thiscall locale_dtor(locale*);
78 #define _LOCK_LOCALE 0
79 #define _LOCK_MALLOC 1
80 #define _LOCK_STREAM 2
84 void init_lockit(void);
85 void free_lockit(void);
86 void __thiscall _Lockit_dtor(_Lockit*);
93 mutex* __thiscall mutex_ctor(mutex*);
94 void __thiscall mutex_dtor(mutex*);
95 void __thiscall mutex_lock(mutex*);
96 void __thiscall mutex_unlock(mutex*);
98 void init_exception(void*);