msvcr100: Move functions implementation to msvcrt.

oldstable
Piotr Caban 2014-04-16 16:15:21 +02:00 committed by Alexandre Julliard
parent e70bf5f8c6
commit beeea28a53
17 changed files with 560 additions and 594 deletions

View File

@ -18,482 +18,11 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#include "config.h"
#include <stdarg.h>
#include "stdio.h"
#include "stdlib.h"
#include "errno.h"
#include "malloc.h"
#include "mbstring.h"
#include "limits.h"
#include "sys/stat.h"
#include "windef.h"
#include "winbase.h"
#include "wine/debug.h"
WINE_DEFAULT_DEBUG_CHANNEL(msvcrt);
#define INVALID_PMT(x,err) (*_errno() = (err), _invalid_parameter(NULL, NULL, NULL, 0, 0))
#define CHECK_PMT_ERR(x,err) ((x) || (INVALID_PMT( 0, (err) ), FALSE))
#define CHECK_PMT(x) CHECK_PMT_ERR((x), EINVAL)
#ifdef __i386__ /* thiscall functions are i386-specific */
#define THISCALL(func) __thiscall_ ## func
#define THISCALL_NAME(func) __ASM_NAME("__thiscall_" #func)
#define __thiscall __stdcall
#define DEFINE_THISCALL_WRAPPER(func,args) \
extern void THISCALL(func)(void); \
__ASM_GLOBAL_FUNC(__thiscall_ ## func, \
"popl %eax\n\t" \
"pushl %ecx\n\t" \
"pushl %eax\n\t" \
"jmp " __ASM_NAME(#func) __ASM_STDCALL(args) )
#else /* __i386__ */
#define THISCALL(func) func
#define THISCALL_NAME(func) __ASM_NAME(#func)
#define __thiscall __cdecl
#define DEFINE_THISCALL_WRAPPER(func,args) /* nothing */
#endif /* __i386__ */
struct __type_info_node
{
void *memPtr;
struct __type_info_node* next;
};
typedef struct __type_info
{
const void *vtable;
char *name; /* Unmangled name, allocated lazily */
char mangled[32]; /* Variable length, but we declare it large enough for static RTTI */
} type_info;
typedef void* (__cdecl *malloc_func_t)(size_t);
typedef void (__cdecl *free_func_t)(void*);
extern char* __cdecl __unDName(char *,const char*,int,malloc_func_t,free_func_t,unsigned short int);
/*********************************************************************
* stat64_to_stat32 [internal]
*/
static void stat64_to_stat32(const struct _stat64 *buf64, struct _stat32 *buf)
{
buf->st_dev = buf64->st_dev;
buf->st_ino = buf64->st_ino;
buf->st_mode = buf64->st_mode;
buf->st_nlink = buf64->st_nlink;
buf->st_uid = buf64->st_uid;
buf->st_gid = buf64->st_gid;
buf->st_rdev = buf64->st_rdev;
buf->st_size = buf64->st_size;
buf->st_atime = buf64->st_atime;
buf->st_mtime = buf64->st_mtime;
buf->st_ctime = buf64->st_ctime;
}
/*********************************************************************
* wmemcpy_s (MSVCR100.@)
*/
int CDECL wmemcpy_s(wchar_t *dest, size_t numberOfElements, const wchar_t *src, size_t count)
{
TRACE("(%p %lu %p %lu)\n", dest, (unsigned long)numberOfElements, src, (unsigned long)count);
if (!count)
return 0;
if (!CHECK_PMT(dest != NULL)) return EINVAL;
if (!CHECK_PMT(src != NULL)) {
memset(dest, 0, numberOfElements*sizeof(wchar_t));
return EINVAL;
}
if (!CHECK_PMT_ERR(count <= numberOfElements, ERANGE)) {
memset(dest, 0, numberOfElements*sizeof(wchar_t));
return ERANGE;
}
memcpy(dest, src, sizeof(wchar_t)*count);
return 0;
}
/*********************************************************************
* wmemmove_s (MSVCR100.@)
*/
int CDECL wmemmove_s(wchar_t *dest, size_t numberOfElements, const wchar_t *src, size_t count)
{
TRACE("(%p %lu %p %lu)\n", dest, (unsigned long)numberOfElements, src, (unsigned long)count);
if (!count)
return 0;
/* Native does not seem to conform to 6.7.1.2.3 in
* http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1225.pdf
* in that it does not zero the output buffer on constraint violation.
*/
if (!CHECK_PMT(dest != NULL)) return EINVAL;
if (!CHECK_PMT(src != NULL)) return EINVAL;
if (!CHECK_PMT_ERR(count <= numberOfElements, ERANGE)) return ERANGE;
memmove(dest, src, sizeof(wchar_t)*count);
return 0;
}
/*********************************************************************
* _encoded_null (MSVCR100.@)
*/
void * CDECL _encoded_null(void)
{
TRACE("\n");
return EncodePointer(NULL);
}
/*********************************************************************
* _invalid_parameter_noinfo (MSVCR100.@)
*/
void CDECL _invalid_parameter_noinfo(void)
{
_invalid_parameter( NULL, NULL, NULL, 0, 0 );
}
/*********************************************************************
* __sys_nerr (MSVCR100.@)
*/
int* CDECL __sys_nerr(void)
{
return (int*)GetProcAddress(GetModuleHandleA("msvcrt.dll"), "_sys_nerr");
}
/*********************************************************************
* __sys_errlist (MSVCR100.@)
*/
char** CDECL __sys_errlist(void)
{
return (char**)GetProcAddress(GetModuleHandleA("msvcrt.dll"), "_sys_errlist");
}
/*********************************************************************
* __clean_type_info_names_internal (MSVCR100.@)
*/
void CDECL __clean_type_info_names_internal(void *p)
{
FIXME("(%p) stub\n", p);
}
/*********************************************************************
* _recalloc (MSVCR100.@)
*/
void* CDECL _recalloc(void* mem, size_t num, size_t size)
{
size_t old_size;
void *ret;
if(!mem)
return calloc(num, size);
size = num*size;
old_size = _msize(mem);
ret = realloc(mem, size);
if(!ret) {
*_errno() = ENOMEM;
return NULL;
}
if(size>old_size)
memset((BYTE*)ret+old_size, 0, size-old_size);
return ret;
}
/*********************************************************************
* _stat32 (MSVCR100.@)
*/
int CDECL _stat32(const char *path, struct _stat32* buf)
{
int ret;
struct _stat64 buf64;
ret = _stat64(path, &buf64);
if (!ret)
stat64_to_stat32(&buf64, buf);
return ret;
}
/*********************************************************************
* _wstat32 (MSVCR100.@)
*/
int CDECL _wstat32(const wchar_t *path, struct _stat32* buf)
{
int ret;
struct _stat64 buf64;
ret = _wstat64(path, &buf64);
if (!ret)
stat64_to_stat32(&buf64, buf);
return ret;
}
static void stat64_to_stat32i64(const struct _stat64 *buf64, struct _stat32i64 *buf)
{
buf->st_dev = buf64->st_dev;
buf->st_ino = buf64->st_ino;
buf->st_mode = buf64->st_mode;
buf->st_nlink = buf64->st_nlink;
buf->st_uid = buf64->st_uid;
buf->st_gid = buf64->st_gid;
buf->st_rdev = buf64->st_rdev;
buf->st_size = buf64->st_size;
buf->st_atime = buf64->st_atime;
buf->st_mtime = buf64->st_mtime;
buf->st_ctime = buf64->st_ctime;
}
/*********************************************************************
* _stat32i64 (MSVCR100.@)
*/
int CDECL _stat32i64(const char *path, struct _stat32i64* buf)
{
int ret;
struct _stat64 buf64;
ret = _stat64(path, &buf64);
if (!ret)
stat64_to_stat32i64(&buf64, buf);
return ret;
}
/*********************************************************************
* _wstat32i64 (MSVCR100.@)
*/
int CDECL _wstat32i64(const wchar_t *path, struct _stat32i64* buf)
{
int ret;
struct _stat64 buf64;
ret = _wstat64(path, &buf64);
if (!ret)
stat64_to_stat32i64(&buf64, buf);
return ret;
}
static void stat64_to_stat64i32(const struct _stat64 *buf64, struct _stat64i32 *buf)
{
buf->st_dev = buf64->st_dev;
buf->st_ino = buf64->st_ino;
buf->st_mode = buf64->st_mode;
buf->st_nlink = buf64->st_nlink;
buf->st_uid = buf64->st_uid;
buf->st_gid = buf64->st_gid;
buf->st_rdev = buf64->st_rdev;
buf->st_size = buf64->st_size;
buf->st_atime = buf64->st_atime;
buf->st_mtime = buf64->st_mtime;
buf->st_ctime = buf64->st_ctime;
}
/*********************************************************************
* _stat64i32 (MSVCR100.@)
*/
int CDECL _stat64i32(const char* path, struct _stat64i32 * buf)
{
int ret;
struct _stat64 buf64;
ret = _stat64(path, &buf64);
if (!ret)
stat64_to_stat64i32(&buf64, buf);
return ret;
}
/*********************************************************************
* _wstat64i32 (MSVCR100.@)
*/
int CDECL _wstat64i32(const wchar_t *path, struct _stat64i32 *buf)
{
int ret;
struct _stat64 buf64;
ret = _wstat64(path, &buf64);
if (!ret)
stat64_to_stat64i32(&buf64, buf);
return ret;
}
/*********************************************************************
* _atoflt (MSVCR100.@)
*/
int CDECL _atoflt( _CRT_FLOAT *value, char *str )
{
return _atoflt_l( value, str, NULL );
}
/*********************************************************************
* ?_name_internal_method@type_info@@QBEPBDPAU__type_info_node@@@Z (MSVCR100.@)
*/
DEFINE_THISCALL_WRAPPER(type_info_name_internal_method,8)
const char * __thiscall type_info_name_internal_method(type_info * _this, struct __type_info_node *node)
{
static int once;
if (node && !once++) FIXME("type_info_node parameter ignored\n");
if (!_this->name)
{
/* Create and set the demangled name */
/* Note: mangled name in type_info struct always starts with a '.', while
* it isn't valid for mangled name.
* Is this '.' really part of the mangled name, or has it some other meaning ?
*/
char* name = __unDName(0, _this->mangled + 1, 0, malloc, free, 0x2800);
if (name)
{
unsigned int len = strlen(name);
/* It seems _unDName may leave blanks at the end of the demangled name */
while (len && name[--len] == ' ')
name[len] = '\0';
if (InterlockedCompareExchangePointer((void**)&_this->name, name, NULL))
{
/* Another thread set this member since we checked above - use it */
free(name);
}
}
}
TRACE("(%p) returning %s\n", _this, _this->name);
return _this->name;
}
/*********************************************************************
* _CRT_RTC_INIT (MSVCR100.@)
*/
void* CDECL _CRT_RTC_INIT(void *unk1, void *unk2, int unk3, int unk4, int unk5)
{
TRACE("%p %p %x %x %x\n", unk1, unk2, unk3, unk4, unk5);
return NULL;
}
/*********************************************************************
* _CRT_RTC_INITW (MSVCR100.@)
*/
void* CDECL _CRT_RTC_INITW(void *unk1, void *unk2, int unk3, int unk4, int unk5)
{
TRACE("%p %p %x %x %x\n", unk1, unk2, unk3, unk4, unk5);
return NULL;
}
/*********************************************************************
* _vswprintf_p (MSVCR100.@)
*/
int CDECL _vswprintf_p(wchar_t *buffer, size_t length, const wchar_t *format, __ms_va_list args)
{
return _vswprintf_p_l(buffer, length, format, NULL, args);
}
/*********************************************************************
* _vscwprintf_p (MSVCR100.@)
*/
int CDECL _vscwprintf_p(const wchar_t *format, __ms_va_list args)
{
return _vscwprintf_p_l(format, NULL, args);
}
/*********************************************************************
* _byteswap_ushort (MSVCR100.@)
*/
unsigned short CDECL _byteswap_ushort(unsigned short s)
{
return (s<<8) + (s>>8);
}
/*********************************************************************
* _byteswap_ulong (MSVCR100.@)
*/
ULONG CDECL _byteswap_ulong(ULONG l)
{
return (l<<24) + ((l<<8)&0xFF0000) + ((l>>8)&0xFF00) + (l>>24);
}
/*********************************************************************
* _byteswap_uint64 (MSVCR100.@)
*/
unsigned __int64 CDECL _byteswap_uint64(unsigned __int64 i)
{
return (i<<56) + ((i&0xFF00)<<40) + ((i&0xFF0000)<<24) + ((i&0xFF000000)<<8) +
((i>>8)&0xFF000000) + ((i>>24)&0xFF0000) + ((i>>40)&0xFF00) + (i>>56);
}
/*********************************************************************
* _sprintf_p (MSVCR100.@)
*/
int CDECL _sprintf_p(char *buffer, size_t length, const char *format, ...)
{
__ms_va_list valist;
int r;
__ms_va_start(valist, format);
r = _vsprintf_p_l(buffer, length, format, NULL, valist);
__ms_va_end(valist);
return r;
}
/*********************************************************************
* _get_timezone (MSVCR100.@)
*/
int CDECL _get_timezone(LONG *timezone)
{
if(!CHECK_PMT(timezone != NULL)) return EINVAL;
*timezone = *(LONG*)GetProcAddress(GetModuleHandleA("msvcrt.dll"), "_timezone");
return 0;
}
/*********************************************************************
* _get_daylight (MSVCR100.@)
*/
int CDECL _get_daylight(int *hours)
{
if(!CHECK_PMT(hours != NULL)) return EINVAL;
*hours = *(int*)GetProcAddress(GetModuleHandleA("msvcrt.dll"), "_daylight");
return 0;
}
/* copied from dlls/msvcrt/heap.c */
#define SAVED_PTR(x) ((void *)((DWORD_PTR)((char *)x - sizeof(void *)) & \
~(sizeof(void *) - 1)))
/*********************************************************************
* _aligned_msize (MSVCR100.@)
*/
size_t CDECL _aligned_msize(void *p, size_t alignment, size_t offset)
{
void **alloc_ptr;
if(!CHECK_PMT(p)) return -1;
if(alignment < sizeof(void*))
alignment = sizeof(void*);
alloc_ptr = SAVED_PTR(p);
return _msize(*alloc_ptr)-alignment-sizeof(void*);
}
int CDECL MSVCR100_atoi(const char *str)
{
return _atoi_l(str, NULL);
}
unsigned char* CDECL MSVCR100__mbstok(unsigned char *str, const unsigned char *delim)
{
return _mbstok_l(str, delim, NULL);
}
/*********************************************************************
* DllMain (MSVCR100.@)

View File

@ -430,9 +430,9 @@
@ cdecl -arch=win64 ?_invalid_parameter@@YAXPEBG00I_K@Z(wstr wstr wstr long long) msvcrt._invalid_parameter
@ cdecl -arch=win32 ?_is_exception_typeof@@YAHABVtype_info@@PAU_EXCEPTION_POINTERS@@@Z(ptr ptr) msvcrt._is_exception_typeof
@ cdecl -arch=win64 ?_is_exception_typeof@@YAHAEBVtype_info@@PEAU_EXCEPTION_POINTERS@@@Z(ptr ptr) msvcrt._is_exception_typeof
@ cdecl -arch=arm ?_name_internal_method@type_info@@QBAPBDPAU__type_info_node@@@Z(ptr ptr) type_info_name_internal_method
@ thiscall -arch=i386 ?_name_internal_method@type_info@@QBEPBDPAU__type_info_node@@@Z(ptr ptr) type_info_name_internal_method
@ cdecl -arch=win64 ?_name_internal_method@type_info@@QEBAPEBDPEAU__type_info_node@@@Z(ptr ptr) type_info_name_internal_method
@ cdecl -arch=arm ?_name_internal_method@type_info@@QBAPBDPAU__type_info_node@@@Z(ptr ptr) msvcrt.?_name_internal_method@type_info@@QBAPBDPAU__type_info_node@@@Z
@ thiscall -arch=i386 ?_name_internal_method@type_info@@QBEPBDPAU__type_info_node@@@Z(ptr ptr) msvcrt.?_name_internal_method@type_info@@QBEPBDPAU__type_info_node@@@Z
@ cdecl -arch=win64 ?_name_internal_method@type_info@@QEBAPEBDPEAU__type_info_node@@@Z(ptr ptr) msvcrt.?_name_internal_method@type_info@@QEBAPEBDPEAU__type_info_node@@@Z
@ varargs -arch=win32 ?_open@@YAHPBDHH@Z(str long) msvcrt._open
@ varargs -arch=win64 ?_open@@YAHPEBDHH@Z(str long) msvcrt._open
@ cdecl -arch=win32 ?_query_new_handler@@YAP6AHI@ZXZ() msvcrt.?_query_new_handler@@YAP6AHI@ZXZ
@ -520,8 +520,8 @@
@ cdecl -arch=i386 _CIsqrt() msvcrt._CIsqrt
@ cdecl -arch=i386 _CItan() msvcrt._CItan
@ cdecl -arch=i386 _CItanh() msvcrt._CItanh
@ cdecl _CRT_RTC_INIT(ptr ptr long long long)
@ cdecl _CRT_RTC_INITW(ptr ptr long long long)
@ cdecl _CRT_RTC_INIT(ptr ptr long long long) msvcrt._CRT_RTC_INIT
@ cdecl _CRT_RTC_INITW(ptr ptr long long long) msvcrt._CRT_RTC_INITW
@ stub _CreateFrameInfo
@ stdcall _CxxThrowException(long long) msvcrt._CxxThrowException
@ cdecl -arch=i386 -norelay _EH_prolog() msvcrt._EH_prolog
@ -574,7 +574,7 @@
@ extern __argc msvcrt.__argc
@ extern __argv msvcrt.__argv
### extern __badioinfo #don't forward to msvcrt.__badioinfo, it has different size
@ cdecl __clean_type_info_names_internal(ptr)
@ cdecl __clean_type_info_names_internal(ptr) msvcrt.__clean_type_info_names_internal
@ cdecl -arch=i386 __control87_2(long long ptr ptr) msvcrt.__control87_2
@ stub __create_locale
@ cdecl __crtCompareStringA(long long str long str long) msvcrt.__crtCompareStringA
@ -659,8 +659,8 @@
@ cdecl __setusermatherr(ptr) msvcrt.__setusermatherr
@ stub __strncnt
@ stub __swprintf_l
@ cdecl __sys_errlist()
@ cdecl __sys_nerr()
@ cdecl __sys_errlist() msvcrt.__sys_errlist
@ cdecl __sys_nerr() msvcrt.__sys_nerr
@ cdecl __threadhandle() msvcrt.__threadhandle
@ cdecl __threadid() msvcrt.__threadid
@ cdecl __timezone() msvcrt.__p__timezone
@ -684,7 +684,7 @@
@ extern _acmdln msvcrt._acmdln
@ cdecl _aligned_free(ptr) msvcrt._aligned_free
@ cdecl _aligned_malloc(long long) msvcrt._aligned_malloc
@ cdecl _aligned_msize(ptr long long)
@ cdecl _aligned_msize(ptr long long) msvcrt._aligned_msize
@ cdecl _aligned_offset_malloc(long long long) msvcrt._aligned_offset_malloc
@ cdecl _aligned_offset_realloc(ptr long long long) msvcrt._aligned_offset_realloc
@ stub _aligned_offset_recalloc
@ -695,7 +695,7 @@
@ cdecl _atodbl(ptr str) msvcrt._atodbl
@ cdecl _atodbl_l(ptr str ptr) msvcrt._atodbl_l
@ cdecl _atof_l(str ptr) msvcrt._atof_l
@ cdecl _atoflt(ptr str)
@ cdecl _atoflt(ptr str) msvcrt._atoflt
@ cdecl _atoflt_l(ptr str ptr) msvcrt._atoflt_l
@ cdecl -ret64 _atoi64(str) msvcrt._atoi64
@ stub _atoi64_l
@ -706,9 +706,9 @@
@ cdecl _beep(long long) msvcrt._beep
@ cdecl _beginthread(ptr long ptr) msvcrt._beginthread
@ cdecl _beginthreadex(ptr long ptr ptr long ptr) msvcrt._beginthreadex
@ cdecl _byteswap_uint64(int64)
@ cdecl _byteswap_ulong(long)
@ cdecl _byteswap_ushort(long)
@ cdecl _byteswap_uint64(int64) msvcrt._byteswap_uint64
@ cdecl _byteswap_ulong(long) msvcrt._byteswap_ulong
@ cdecl _byteswap_ushort(long) msvcrt._byteswap_ushort
@ cdecl _c_exit() msvcrt._c_exit
@ cdecl _cabs(long) msvcrt._cabs
@ cdecl _callnewh(long) msvcrt._callnewh
@ -776,7 +776,7 @@
@ cdecl _dupenv_s(ptr ptr str) msvcrt._dupenv_s
@ cdecl _ecvt(double long ptr ptr) msvcrt._ecvt
@ cdecl _ecvt_s(str long double long ptr ptr) msvcrt._ecvt_s
@ cdecl _encoded_null()
@ cdecl _encoded_null() msvcrt._encoded_null
@ cdecl _endthread() msvcrt._endthread
@ cdecl _endthreadex(long) msvcrt._endthreadex
@ extern _environ msvcrt._environ
@ -870,7 +870,7 @@
@ cdecl _gcvt(double long str) msvcrt._gcvt
@ cdecl _gcvt_s(ptr long double long) msvcrt._gcvt_s
@ cdecl _get_current_locale() msvcrt._get_current_locale
@ cdecl _get_daylight(ptr)
@ cdecl _get_daylight(ptr) msvcrt._get_daylight
@ cdecl _get_doserrno(ptr) msvcrt._get_doserrno
@ stub _get_dstbias
@ cdecl _get_errno(ptr) msvcrt._get_errno
@ -883,7 +883,7 @@
@ cdecl _get_printf_count_output() msvcrt._get_printf_count_output
@ stub _get_purecall_handler
@ cdecl _get_terminate() msvcrt._get_terminate
@ cdecl _get_timezone(ptr)
@ cdecl _get_timezone(ptr) msvcrt._get_timezone
@ cdecl _get_tzname(ptr str long long) msvcrt._get_tzname
@ cdecl _get_unexpected() msvcrt._get_unexpected
@ cdecl _get_wpgmptr(ptr) msvcrt._get_wpgmptr
@ -935,7 +935,7 @@
@ cdecl -arch=i386 _inpd(long) msvcrt._inpd
@ cdecl -arch=i386 _inpw(long) msvcrt._inpw
@ cdecl _invalid_parameter(wstr wstr wstr long long) msvcrt._invalid_parameter
@ cdecl _invalid_parameter_noinfo()
@ cdecl _invalid_parameter_noinfo() msvcrt._invalid_parameter_noinfo
@ stub _invalid_parameter_noinfo_noreturn
@ stub _invoke_watson
@ extern _iob msvcrt._iob
@ -1186,7 +1186,7 @@
@ stub _mbsspnp_l
@ cdecl _mbsstr(str str) msvcrt._mbsstr
@ stub _mbsstr_l
@ cdecl _mbstok(str str) MSVCR100__mbstok
@ cdecl _mbstok(str str) msvcrt.MSVCR100__mbstok
@ cdecl _mbstok_l(str str ptr) msvcrt._mbstok_l
@ cdecl _mbstok_s(str str ptr) msvcrt._mbstok_s
@ cdecl _mbstok_s_l(str str ptr ptr) msvcrt._mbstok_s_l
@ -1241,7 +1241,7 @@
# extern _pwctype
@ cdecl _read(long ptr long) msvcrt._read
@ cdecl _realloc_crt(ptr long) msvcrt.realloc
@ cdecl _recalloc(ptr long long)
@ cdecl _recalloc(ptr long long) msvcrt._recalloc
@ stub _recalloc_crt
@ cdecl _resetstkoflw() msvcrt._resetstkoflw
@ cdecl _rmdir(str) msvcrt._rmdir
@ -1318,15 +1318,15 @@
@ cdecl _splitpath(str ptr ptr ptr ptr) msvcrt._splitpath
@ cdecl _splitpath_s(str ptr long ptr long ptr long ptr long) msvcrt._splitpath_s
@ varargs _sprintf_l(ptr str ptr) msvcrt._sprintf_l
@ varargs _sprintf_p(ptr long str)
@ varargs _sprintf_p(ptr long str) msvcrt._sprintf_p
@ varargs _sprintf_p_l(ptr long str ptr) msvcrt._sprintf_p_l
@ varargs _sprintf_s_l(ptr long str ptr) msvcrt._sprintf_s_l
@ varargs _sscanf_l(str str ptr) msvcrt._sscanf_l
@ varargs _sscanf_s_l(str str ptr) msvcrt._sscanf_s_l
@ cdecl _stat32(str ptr)
@ cdecl _stat32i64(str ptr)
@ cdecl _stat32(str ptr) msvcrt._stat32
@ cdecl _stat32i64(str ptr) msvcrt._stat32i64
@ cdecl _stat64(str ptr) msvcrt._stat64
@ cdecl _stat64i32(str ptr)
@ cdecl _stat64i32(str ptr) msvcrt._stat64i32
@ cdecl _statusfp() msvcrt._statusfp
@ cdecl -arch=i386 _statusfp2(ptr ptr) msvcrt._statusfp2
@ cdecl _strcoll_l(str str ptr) msvcrt._strcoll_l
@ -1446,7 +1446,7 @@
@ stub _vscprintf_p_l
@ cdecl _vscwprintf(wstr ptr) msvcrt._vscwprintf
@ cdecl _vscwprintf_l(wstr ptr ptr) msvcrt._vscwprintf_l
@ cdecl _vscwprintf_p(wstr ptr)
@ cdecl _vscwprintf_p(wstr ptr) msvcrt._vscwprintf_p
@ cdecl _vscwprintf_p_l(wstr ptr ptr) msvcrt._vscwprintf_p_l
@ cdecl _vsnprintf(ptr long str ptr) msvcrt._vsnprintf
@ cdecl _vsnprintf_c(ptr long str ptr) msvcrt._vsnprintf_c
@ -1466,7 +1466,7 @@
@ cdecl _vswprintf_c(ptr long wstr ptr) msvcrt._vswprintf_c
@ cdecl _vswprintf_c_l(ptr long wstr ptr ptr) msvcrt._vswprintf_c_l
@ cdecl _vswprintf_l(ptr wstr ptr ptr) msvcrt._vswprintf_l
@ cdecl _vswprintf_p(ptr long wstr ptr)
@ cdecl _vswprintf_p(ptr long wstr ptr) msvcrt._vswprintf_p
@ cdecl _vswprintf_p_l(ptr long wstr ptr ptr) msvcrt._vswprintf_p_l
@ cdecl _vswprintf_s_l(ptr long wstr ptr ptr) msvcrt._vswprintf_s_l
@ stub _vwprintf_l
@ -1593,10 +1593,10 @@
@ cdecl _wspawnvpe(long wstr ptr ptr) msvcrt._wspawnvpe
@ cdecl _wsplitpath(wstr ptr ptr ptr ptr) msvcrt._wsplitpath
@ cdecl _wsplitpath_s(wstr ptr long ptr long ptr long ptr long) msvcrt._wsplitpath_s
@ cdecl _wstat32(wstr ptr)
@ cdecl _wstat32i64(wstr ptr)
@ cdecl _wstat32(wstr ptr) msvcrt._wstat32
@ cdecl _wstat32i64(wstr ptr) msvcrt._wstat32i64
@ cdecl _wstat64(wstr ptr) msvcrt._wstat64
@ cdecl _wstat64i32(wstr ptr)
@ cdecl _wstat64i32(wstr ptr) msvcrt._wstat64i32
@ cdecl _wstrdate(ptr) msvcrt._wstrdate
@ cdecl _wstrdate_s(ptr long) msvcrt._wstrdate_s
@ cdecl _wstrtime(ptr) msvcrt._wstrtime
@ -1633,7 +1633,7 @@
@ cdecl -arch=arm,x86_64 atan2f(float float) msvcrt.atan2f
@ cdecl atexit(ptr) msvcrt.atexit
@ cdecl atof(str) msvcrt.atof
@ cdecl atoi(str) MSVCR100_atoi
@ cdecl atoi(str) msvcrt.MSVCR100_atoi
@ cdecl atol(str) msvcrt.atol
@ cdecl bsearch(ptr ptr long long ptr) msvcrt.bsearch
@ cdecl bsearch_s(ptr ptr long long ptr ptr) msvcrt.bsearch_s
@ -1882,8 +1882,8 @@
@ cdecl wctob(long) msvcrt.wctob
@ cdecl wctomb(ptr long) msvcrt.wctomb
@ cdecl wctomb_s(ptr ptr long long) msvcrt.wctomb_s
@ cdecl wmemcpy_s(ptr long ptr long)
@ cdecl wmemmove_s(ptr long ptr long)
@ cdecl wmemcpy_s(ptr long ptr long) msvcrt.wmemcpy_s
@ cdecl wmemmove_s(ptr long ptr long) msvcrt.wmemmove_s
@ varargs wprintf(wstr) msvcrt.wprintf
@ varargs wprintf_s(wstr) msvcrt.wprintf_s
@ varargs wscanf(wstr) msvcrt.wscanf

View File

@ -712,9 +712,9 @@
@ cdecl -arch=win64 ?_invalid_parameter@@YAXPEBG00I_K@Z(wstr wstr wstr long long) msvcrt._invalid_parameter
@ cdecl -arch=win32 ?_is_exception_typeof@@YAHABVtype_info@@PAU_EXCEPTION_POINTERS@@@Z(ptr ptr) msvcrt._is_exception_typeof
@ cdecl -arch=win64 ?_is_exception_typeof@@YAHAEBVtype_info@@PEAU_EXCEPTION_POINTERS@@@Z(ptr ptr) msvcrt._is_exception_typeof
@ cdecl -arch=arm ?_name_internal_method@type_info@@QBAPBDPAU__type_info_node@@@Z(ptr ptr) msvcr100.?_name_internal_method@type_info@@QBAPBDPAU__type_info_node@@@Z
@ thiscall -arch=i386 ?_name_internal_method@type_info@@QBEPBDPAU__type_info_node@@@Z(ptr ptr) msvcr100.?_name_internal_method@type_info@@QBEPBDPAU__type_info_node@@@Z
@ cdecl -arch=win64 ?_name_internal_method@type_info@@QEBAPEBDPEAU__type_info_node@@@Z(ptr ptr) msvcr100.?_name_internal_method@type_info@@QEBAPEBDPEAU__type_info_node@@@Z
@ cdecl -arch=arm ?_name_internal_method@type_info@@QBAPBDPAU__type_info_node@@@Z(ptr ptr) msvcrt.?_name_internal_method@type_info@@QBAPBDPAU__type_info_node@@@Z
@ thiscall -arch=i386 ?_name_internal_method@type_info@@QBEPBDPAU__type_info_node@@@Z(ptr ptr) msvcrt.?_name_internal_method@type_info@@QBEPBDPAU__type_info_node@@@Z
@ cdecl -arch=win64 ?_name_internal_method@type_info@@QEBAPEBDPEAU__type_info_node@@@Z(ptr ptr) msvcrt.?_name_internal_method@type_info@@QEBAPEBDPEAU__type_info_node@@@Z
@ varargs -arch=win32 ?_open@@YAHPBDHH@Z(str long) msvcrt._open
@ varargs -arch=win64 ?_open@@YAHPEBDHH@Z(str long) msvcrt._open
@ cdecl -arch=win32 ?_query_new_handler@@YAP6AHI@ZXZ() msvcrt.?_query_new_handler@@YAP6AHI@ZXZ
@ -840,8 +840,8 @@
@ cdecl -arch=i386 _CIsqrt() msvcrt._CIsqrt
@ cdecl -arch=i386 _CItan() msvcrt._CItan
@ cdecl -arch=i386 _CItanh() msvcrt._CItanh
@ cdecl _CRT_RTC_INIT(ptr ptr long long long) msvcr100._CRT_RTC_INIT
@ cdecl _CRT_RTC_INITW(ptr ptr long long long) msvcr100._CRT_RTC_INITW
@ cdecl _CRT_RTC_INIT(ptr ptr long long long) msvcrt._CRT_RTC_INIT
@ cdecl _CRT_RTC_INITW(ptr ptr long long long) msvcrt._CRT_RTC_INITW
@ stub _CreateFrameInfo
@ stdcall _CxxThrowException(long long) msvcrt._CxxThrowException
@ cdecl -arch=i386 -norelay _EH_prolog() msvcrt._EH_prolog
@ -901,7 +901,7 @@
@ extern __argc msvcrt.__argc
@ extern __argv msvcrt.__argv
### extern __badioinfo #don't forward to msvcrt.__badioinfo, it has different size
@ cdecl __clean_type_info_names_internal(ptr) msvcr100.__clean_type_info_names_internal
@ cdecl __clean_type_info_names_internal(ptr) msvcrt.__clean_type_info_names_internal
@ cdecl -arch=i386 __control87_2(long long ptr ptr) msvcrt.__control87_2
@ stub __create_locale
@ stub -arch=win64 __crtCaptureCurrentContext
@ -1007,8 +1007,8 @@
@ cdecl __setusermatherr(ptr) msvcrt.__setusermatherr
@ stub __strncnt
@ stub __swprintf_l
@ cdecl __sys_errlist() msvcr100.__sys_errlist
@ cdecl __sys_nerr() msvcr100.__sys_nerr
@ cdecl __sys_errlist() msvcrt.__sys_errlist
@ cdecl __sys_nerr() msvcrt.__sys_nerr
@ cdecl __threadhandle() msvcrt.__threadhandle
@ cdecl __threadid() msvcrt.__threadid
@ cdecl __timezone() msvcrt.__p__timezone
@ -1032,7 +1032,7 @@
@ extern _acmdln msvcrt._acmdln
@ cdecl _aligned_free(ptr) msvcrt._aligned_free
@ cdecl _aligned_malloc(long long) msvcrt._aligned_malloc
@ cdecl _aligned_msize(ptr long long) msvcr100._aligned_msize
@ cdecl _aligned_msize(ptr long long) msvcrt._aligned_msize
@ cdecl _aligned_offset_malloc(long long long) msvcrt._aligned_offset_malloc
@ cdecl _aligned_offset_realloc(ptr long long long) msvcrt._aligned_offset_realloc
@ stub _aligned_offset_recalloc
@ -1043,7 +1043,7 @@
@ cdecl _atodbl(ptr str) msvcrt._atodbl
@ cdecl _atodbl_l(ptr str ptr) msvcrt._atodbl_l
@ cdecl _atof_l(str ptr) msvcrt._atof_l
@ cdecl _atoflt(ptr str) msvcr100._atoflt
@ cdecl _atoflt(ptr str) msvcrt._atoflt
@ cdecl _atoflt_l(ptr str ptr) msvcrt._atoflt_l
@ cdecl -ret64 _atoi64(str) msvcrt._atoi64
@ stub _atoi64_l
@ -1054,9 +1054,9 @@
@ cdecl _beep(long long) msvcrt._beep
@ cdecl _beginthread(ptr long ptr) msvcrt._beginthread
@ cdecl _beginthreadex(ptr long ptr ptr long ptr) msvcrt._beginthreadex
@ cdecl _byteswap_uint64(int64) msvcr100._byteswap_uint64
@ cdecl _byteswap_ulong(long) msvcr100._byteswap_ulong
@ cdecl _byteswap_ushort(long) msvcr100._byteswap_ushort
@ cdecl _byteswap_uint64(int64) msvcrt._byteswap_uint64
@ cdecl _byteswap_ulong(long) msvcrt._byteswap_ulong
@ cdecl _byteswap_ushort(long) msvcrt._byteswap_ushort
@ cdecl _c_exit() msvcrt._c_exit
@ cdecl _cabs(long) msvcrt._cabs
@ cdecl _callnewh(long) msvcrt._callnewh
@ -1218,7 +1218,7 @@
@ cdecl _gcvt(double long str) msvcrt._gcvt
@ cdecl _gcvt_s(ptr long double long) msvcrt._gcvt_s
@ cdecl _get_current_locale() msvcrt._get_current_locale
@ cdecl _get_daylight(ptr) msvcr100._get_daylight
@ cdecl _get_daylight(ptr) msvcrt._get_daylight
@ cdecl _get_doserrno(ptr) msvcrt._get_doserrno
@ stub _get_dstbias
@ cdecl _get_errno(ptr) msvcrt._get_errno
@ -1231,7 +1231,7 @@
@ cdecl _get_printf_count_output() msvcrt._get_printf_count_output
@ stub _get_purecall_handler
@ cdecl _get_terminate() msvcrt._get_terminate
@ cdecl _get_timezone(ptr) msvcr100._get_timezone
@ cdecl _get_timezone(ptr) msvcrt._get_timezone
@ cdecl _get_tzname(ptr str long long) msvcrt._get_tzname
@ cdecl _get_unexpected() msvcrt._get_unexpected
@ cdecl _get_wpgmptr(ptr) msvcrt._get_wpgmptr
@ -1282,7 +1282,7 @@
@ cdecl -arch=i386 _inpd(long) msvcrt._inpd
@ cdecl -arch=i386 _inpw(long) msvcrt._inpw
@ cdecl _invalid_parameter(wstr wstr wstr long long) msvcrt._invalid_parameter
@ cdecl _invalid_parameter_noinfo() msvcr100._invalid_parameter_noinfo
@ cdecl _invalid_parameter_noinfo() msvcrt._invalid_parameter_noinfo
@ stub _invalid_parameter_noinfo_noreturn
@ stub _invoke_watson
@ extern _iob msvcrt._iob
@ -1544,7 +1544,7 @@
@ stub _mbsspnp_l
@ cdecl _mbsstr(str str) msvcrt._mbsstr
@ stub _mbsstr_l
@ cdecl _mbstok(str str) msvcr100._mbstok #don't forward to msvcrt
@ cdecl _mbstok(str str) msvcrt.MSVCR100__mbstok
@ cdecl _mbstok_l(str str ptr) msvcrt._mbstok_l
@ cdecl _mbstok_s(str str ptr) msvcrt._mbstok_s
@ cdecl _mbstok_s_l(str str ptr ptr) msvcrt._mbstok_s_l
@ -1599,7 +1599,7 @@
# extern _pwctype
@ cdecl _read(long ptr long) msvcrt._read
@ cdecl _realloc_crt(ptr long) msvcrt.realloc
@ cdecl _recalloc(ptr long long) msvcr100._recalloc
@ cdecl _recalloc(ptr long long) msvcrt._recalloc
@ stub _recalloc_crt
@ cdecl _resetstkoflw() msvcrt._resetstkoflw
@ cdecl _rmdir(str) msvcrt._rmdir
@ -1676,15 +1676,15 @@
@ cdecl _splitpath(str ptr ptr ptr ptr) msvcrt._splitpath
@ cdecl _splitpath_s(str ptr long ptr long ptr long ptr long) msvcrt._splitpath_s
@ varargs _sprintf_l(ptr str ptr) msvcrt._sprintf_l
@ varargs _sprintf_p(ptr long str) msvcr100._sprintf_p
@ varargs _sprintf_p(ptr long str) msvcrt._sprintf_p
@ varargs _sprintf_p_l(ptr long str ptr) msvcrt._sprintf_p_l
@ varargs _sprintf_s_l(ptr long str ptr) msvcrt._sprintf_s_l
@ varargs _sscanf_l(str str ptr) msvcrt._sscanf_l
@ varargs _sscanf_s_l(str str ptr) msvcrt._sscanf_s_l
@ cdecl _stat32(str ptr) msvcr100._stat32
@ cdecl _stat32i64(str ptr) msvcr100._stat32i64
@ cdecl _stat32(str ptr) msvcrt._stat32
@ cdecl _stat32i64(str ptr) msvcrt._stat32i64
@ cdecl _stat64(str ptr) msvcrt._stat64
@ cdecl _stat64i32(str ptr) msvcr100._stat64i32
@ cdecl _stat64i32(str ptr) msvcrt._stat64i32
@ cdecl _statusfp() msvcrt._statusfp
@ cdecl -arch=i386 _statusfp2(ptr ptr) msvcrt._statusfp2
@ cdecl _strcoll_l(str str ptr) msvcrt._strcoll_l
@ -1804,7 +1804,7 @@
@ stub _vscprintf_p_l
@ cdecl _vscwprintf(wstr ptr) msvcrt._vscwprintf
@ cdecl _vscwprintf_l(wstr ptr ptr) msvcrt._vscwprintf_l
@ cdecl _vscwprintf_p(wstr ptr) msvcr100._vscwprintf_p
@ cdecl _vscwprintf_p(wstr ptr) msvcrt._vscwprintf_p
@ cdecl _vscwprintf_p_l(wstr ptr ptr) msvcrt._vscwprintf_p_l
@ cdecl _vsnprintf(ptr long str ptr) msvcrt._vsnprintf
@ cdecl _vsnprintf_c(ptr long str ptr) msvcrt._vsnprintf_c
@ -1824,7 +1824,7 @@
@ cdecl _vswprintf_c(ptr long wstr ptr) msvcrt._vswprintf_c
@ cdecl _vswprintf_c_l(ptr long wstr ptr ptr) msvcrt._vswprintf_c_l
@ cdecl _vswprintf_l(ptr wstr ptr ptr) msvcrt._vswprintf_l
@ cdecl _vswprintf_p(ptr long wstr ptr) msvcr100._vswprintf_p
@ cdecl _vswprintf_p(ptr long wstr ptr) msvcrt._vswprintf_p
@ cdecl _vswprintf_p_l(ptr long wstr ptr ptr) msvcrt._vswprintf_p_l
@ cdecl _vswprintf_s_l(ptr long wstr ptr ptr) msvcrt._vswprintf_s_l
@ stub _vwprintf_l
@ -1951,10 +1951,10 @@
@ cdecl _wspawnvpe(long wstr ptr ptr) msvcrt._wspawnvpe
@ cdecl _wsplitpath(wstr ptr ptr ptr ptr) msvcrt._wsplitpath
@ cdecl _wsplitpath_s(wstr ptr long ptr long ptr long ptr long) msvcrt._wsplitpath_s
@ cdecl _wstat32(wstr ptr) msvcr100._wstat32
@ cdecl _wstat32i64(wstr ptr) msvcr100._wstat32i64
@ cdecl _wstat32(wstr ptr) msvcrt._wstat32
@ cdecl _wstat32i64(wstr ptr) msvcrt._wstat32i64
@ cdecl _wstat64(wstr ptr) msvcrt._wstat64
@ cdecl _wstat64i32(wstr ptr) msvcr100._wstat64i32
@ cdecl _wstat64i32(wstr ptr) msvcrt._wstat64i32
@ cdecl _wstrdate(ptr) msvcrt._wstrdate
@ cdecl _wstrdate_s(ptr long) msvcrt._wstrdate_s
@ cdecl _wstrtime(ptr) msvcrt._wstrtime
@ -1991,7 +1991,7 @@
@ cdecl -arch=arm,x86_64 atan2f(float float) msvcrt.atan2f
@ cdecl atexit(ptr) msvcrt.atexit
@ cdecl atof(str) msvcrt.atof
@ cdecl atoi(str) msvcr100.atoi #don't forward to msvcrt
@ cdecl atoi(str) msvcrt.MSVCR100_atoi
@ cdecl atol(str) msvcrt.atol
@ cdecl bsearch(ptr ptr long long ptr) msvcrt.bsearch
@ cdecl bsearch_s(ptr ptr long long ptr ptr) msvcrt.bsearch_s
@ -2241,8 +2241,8 @@
@ cdecl wctob(long) msvcrt.wctob
@ cdecl wctomb(ptr long) msvcrt.wctomb
@ cdecl wctomb_s(ptr ptr long long) msvcrt.wctomb_s
@ cdecl wmemcpy_s(ptr long ptr long) msvcr100.wmemcpy_s
@ cdecl wmemmove_s(ptr long ptr long) msvcr100.wmemmove_s
@ cdecl wmemcpy_s(ptr long ptr long) msvcrt.wmemcpy_s
@ cdecl wmemmove_s(ptr long ptr long) msvcrt.wmemmove_s
@ varargs wprintf(wstr) msvcrt.wprintf
@ varargs wprintf_s(wstr) msvcrt.wprintf_s
@ varargs wscanf(wstr) msvcrt.wscanf

View File

@ -107,7 +107,7 @@
@ cdecl -arch=i386 _CIsqrt() msvcrt._CIsqrt
@ cdecl -arch=i386 _CItan() msvcrt._CItan
@ cdecl -arch=i386 _CItanh() msvcrt._CItanh
@ cdecl _CRT_RTC_INIT(ptr ptr long long long) msvcr100._CRT_RTC_INIT
@ cdecl _CRT_RTC_INIT(ptr ptr long long long) msvcrt._CRT_RTC_INIT
@ stdcall _CxxThrowException(long long) msvcrt._CxxThrowException
@ cdecl -arch=i386 -norelay _EH_prolog() msvcrt._EH_prolog
@ cdecl _Getdays() msvcrt._Getdays
@ -468,7 +468,7 @@
@ cdecl _mbsspn(str str) msvcrt._mbsspn
@ cdecl _mbsspnp(str str) msvcrt._mbsspnp
@ cdecl _mbsstr(str str) msvcrt._mbsstr
@ cdecl _mbstok(str str) msvcr100._mbstok #don't forward to msvcrt
@ cdecl _mbstok(str str) msvcrt.MSVCR100__mbstok
@ cdecl _mbstrlen(str) msvcrt._mbstrlen
@ cdecl _mbsupr(str) msvcrt._mbsupr
@ cdecl _memccpy(ptr ptr long long) msvcrt._memccpy
@ -688,7 +688,7 @@
@ cdecl atan2(double double) msvcrt.atan2
@ cdecl atexit(ptr) msvcrt.atexit
@ cdecl atof(str) msvcrt.atof
@ cdecl atoi(str) msvcr100.atoi #don't forward to msvcrt
@ cdecl atoi(str) msvcrt.MSVCR100_atoi
@ cdecl atol(str) msvcrt.atol
@ cdecl bsearch(ptr ptr long long ptr) msvcrt.bsearch
@ cdecl calloc(long long) msvcrt.calloc

View File

@ -101,7 +101,7 @@
@ cdecl -arch=i386 _CIsqrt() msvcrt._CIsqrt
@ cdecl -arch=i386 _CItan() msvcrt._CItan
@ cdecl -arch=i386 _CItanh() msvcrt._CItanh
@ cdecl _CRT_RTC_INIT(ptr ptr long long long) msvcr100._CRT_RTC_INIT
@ cdecl _CRT_RTC_INIT(ptr ptr long long long) msvcrt._CRT_RTC_INIT
@ stdcall _CxxThrowException(long long) msvcrt._CxxThrowException
@ cdecl -arch=i386 -norelay _EH_prolog() msvcrt._EH_prolog
@ cdecl _Getdays() msvcrt._Getdays
@ -463,7 +463,7 @@
@ cdecl _mbsspn(str str) msvcrt._mbsspn
@ cdecl _mbsspnp(str str) msvcrt._mbsspnp
@ cdecl _mbsstr(str str) msvcrt._mbsstr
@ cdecl _mbstok(str str) msvcr100._mbstok #don't forward to msvcrt
@ cdecl _mbstok(str str) msvcrt.MSVCR100__mbstok
@ cdecl _mbstrlen(str) msvcrt._mbstrlen
@ cdecl _mbsupr(str) msvcrt._mbsupr
@ cdecl _memccpy(ptr ptr long long) msvcrt._memccpy
@ -684,7 +684,7 @@
@ cdecl atan2(double double) msvcrt.atan2
@ cdecl atexit(ptr) msvcrt.atexit
@ cdecl atof(str) msvcrt.atof
@ cdecl atoi(str) msvcr100.atoi #don't forward to msvcrt
@ cdecl atoi(str) msvcrt.MSVCR100_atoi
@ cdecl atol(str) msvcrt.atol
@ cdecl bsearch(ptr ptr long long ptr) msvcrt.bsearch
@ cdecl calloc(long long) msvcrt.calloc

View File

@ -150,8 +150,8 @@
@ cdecl -arch=i386 _CIsqrt() msvcrt._CIsqrt
@ cdecl -arch=i386 _CItan() msvcrt._CItan
@ cdecl -arch=i386 _CItanh() msvcrt._CItanh
@ cdecl _CRT_RTC_INIT(ptr ptr long long long) msvcr100._CRT_RTC_INIT
@ cdecl _CRT_RTC_INITW(ptr ptr long long long) msvcr100._CRT_RTC_INITW
@ cdecl _CRT_RTC_INIT(ptr ptr long long long) msvcrt._CRT_RTC_INIT
@ cdecl _CRT_RTC_INITW(ptr ptr long long long) msvcrt._CRT_RTC_INITW
@ stub _CreateFrameInfo
@ stdcall _CxxThrowException(long long) msvcrt._CxxThrowException
@ cdecl -arch=i386 -norelay _EH_prolog() msvcrt._EH_prolog
@ -208,7 +208,7 @@
@ extern __argc msvcrt.__argc
@ extern __argv msvcrt.__argv
### extern __badioinfo #don't forward to msvcrt.__badioinfo, it has different size
@ cdecl __clean_type_info_names_internal(ptr) msvcr100.__clean_type_info_names_internal
@ cdecl __clean_type_info_names_internal(ptr) msvcrt.__clean_type_info_names_internal
@ cdecl -arch=i386 __control87_2(long long ptr ptr) msvcrt.__control87_2
@ stub __create_locale
@ cdecl __crtCompareStringA(long long str long str long) msvcrt.__crtCompareStringA
@ -308,8 +308,8 @@
@ cdecl __setusermatherr(ptr) msvcrt.__setusermatherr
@ stub __strncnt
@ stub __swprintf_l
@ cdecl __sys_errlist() msvcr100.__sys_errlist
@ cdecl __sys_nerr() msvcr100.__sys_nerr
@ cdecl __sys_errlist() msvcrt.__sys_errlist
@ cdecl __sys_nerr() msvcrt.__sys_nerr
@ cdecl __threadhandle() msvcrt.__threadhandle
@ cdecl __threadid() msvcrt.__threadid
@ cdecl __timezone() msvcrt.__p__timezone
@ -348,7 +348,7 @@
@ extern _aexit_rtn msvcrt._aexit_rtn
@ cdecl _aligned_free(ptr) msvcrt._aligned_free
@ cdecl _aligned_malloc(long long) msvcrt._aligned_malloc
@ cdecl _aligned_msize(ptr long long) msvcr100._aligned_msize
@ cdecl _aligned_msize(ptr long long) msvcrt._aligned_msize
@ cdecl _aligned_offset_malloc(long long long) msvcrt._aligned_offset_malloc
@ cdecl _aligned_offset_realloc(ptr long long long) msvcrt._aligned_offset_realloc
@ stub _aligned_offset_recalloc
@ -359,7 +359,7 @@
@ cdecl _atodbl(ptr str) msvcrt._atodbl
@ cdecl _atodbl_l(ptr str ptr) msvcrt._atodbl_l
@ cdecl _atof_l(str ptr) msvcrt._atof_l
@ cdecl _atoflt(ptr str) msvcr100._atoflt
@ cdecl _atoflt(ptr str) msvcrt._atoflt
@ cdecl _atoflt_l(ptr str ptr) msvcrt._atoflt_l
@ cdecl -ret64 _atoi64(str) msvcrt._atoi64
@ stub _atoi64_l
@ -370,9 +370,9 @@
@ cdecl _beep(long long) msvcrt._beep
@ cdecl _beginthread(ptr long ptr) msvcrt._beginthread
@ cdecl _beginthreadex(ptr long ptr ptr long ptr) msvcrt._beginthreadex
@ cdecl _byteswap_uint64(int64) msvcr100._byteswap_uint64
@ cdecl _byteswap_ulong(long) msvcr100._byteswap_ulong
@ cdecl _byteswap_ushort(long) msvcr100._byteswap_ushort
@ cdecl _byteswap_uint64(int64) msvcrt._byteswap_uint64
@ cdecl _byteswap_ulong(long) msvcrt._byteswap_ulong
@ cdecl _byteswap_ushort(long) msvcrt._byteswap_ushort
@ cdecl _c_exit() msvcrt._c_exit
@ cdecl _cabs(long) msvcrt._cabs
@ cdecl _callnewh(long) msvcrt._callnewh
@ -443,7 +443,7 @@
@ cdecl _ecvt(double long ptr ptr) msvcrt._ecvt
@ cdecl _ecvt_s(str long double long ptr ptr) msvcrt._ecvt_s
@ cdecl _encode_pointer(ptr) MSVCR80__encode_pointer
@ cdecl _encoded_null() msvcr100._encoded_null
@ cdecl _encoded_null() msvcrt._encoded_null
@ cdecl _endthread() msvcrt._endthread
@ cdecl _endthreadex(long) msvcrt._endthreadex
@ extern _environ msvcrt._environ
@ -538,7 +538,7 @@
@ cdecl _gcvt_s(ptr long double long) msvcrt._gcvt_s
@ stub _get_amblksiz
@ cdecl _get_current_locale() msvcrt._get_current_locale
@ cdecl _get_daylight(ptr) msvcr100._get_daylight
@ cdecl _get_daylight(ptr) msvcrt._get_daylight
@ cdecl _get_doserrno(ptr) msvcrt._get_doserrno
@ stub _get_dstbias
@ cdecl _get_errno(ptr) msvcrt._get_errno
@ -554,7 +554,7 @@
@ stub _get_purecall_handler
@ cdecl _get_sbh_threshold() msvcrt._get_sbh_threshold
@ cdecl _get_terminate() msvcrt._get_terminate
@ cdecl _get_timezone(ptr) msvcr100._get_timezone
@ cdecl _get_timezone(ptr) msvcrt._get_timezone
@ cdecl _get_tzname(ptr str long long) msvcrt._get_tzname
@ cdecl _get_unexpected() msvcrt._get_unexpected
@ stub _get_winmajor
@ -608,7 +608,7 @@
@ cdecl -arch=i386 _inpd(long) msvcrt._inpd
@ cdecl -arch=i386 _inpw(long) msvcrt._inpw
@ cdecl _invalid_parameter(wstr wstr wstr long long) msvcrt._invalid_parameter
@ cdecl _invalid_parameter_noinfo() msvcr100._invalid_parameter_noinfo
@ cdecl _invalid_parameter_noinfo() msvcrt._invalid_parameter_noinfo
@ stub _invoke_watson
@ extern _iob msvcrt._iob
@ cdecl _isalnum_l(long ptr) msvcrt._isalnum_l
@ -858,7 +858,7 @@
@ stub _mbsspnp_l
@ cdecl _mbsstr(str str) msvcrt._mbsstr
@ stub _mbsstr_l
@ cdecl _mbstok(str str) msvcr100._mbstok #don't forward to msvcrt
@ cdecl _mbstok(str str) msvcrt.MSVCR100__mbstok
@ cdecl _mbstok_l(str str ptr) msvcrt._mbstok_l
@ cdecl _mbstok_s(str str ptr) msvcrt._mbstok_s
@ cdecl _mbstok_s_l(str str ptr ptr) msvcrt._mbstok_s_l
@ -915,7 +915,7 @@
# extern _pwctype
@ cdecl _read(long ptr long) msvcrt._read
@ cdecl _realloc_crt(ptr long) msvcrt.realloc
@ cdecl _recalloc(ptr long long) msvcr100._recalloc
@ cdecl _recalloc(ptr long long) msvcrt._recalloc
@ stub _recalloc_crt
@ cdecl _resetstkoflw() msvcrt._resetstkoflw
@ cdecl _rmdir(str) msvcrt._rmdir
@ -998,15 +998,15 @@
@ cdecl _splitpath(str ptr ptr ptr ptr) msvcrt._splitpath
@ cdecl _splitpath_s(str ptr long ptr long ptr long ptr long) msvcrt._splitpath_s
@ varargs _sprintf_l(ptr str ptr) msvcrt._sprintf_l
@ varargs _sprintf_p(ptr long str) msvcr100._sprintf_p
@ varargs _sprintf_p(ptr long str) msvcrt._sprintf_p
@ varargs _sprintf_p_l(ptr long str ptr) msvcrt._sprintf_p_l
@ varargs _sprintf_s_l(ptr long str ptr) msvcrt._sprintf_s_l
@ varargs _sscanf_l(str str ptr) msvcrt._sscanf_l
@ varargs _sscanf_s_l(str str ptr) msvcrt._sscanf_s_l
@ cdecl _stat32(str ptr) msvcr100._stat32
@ cdecl _stat32i64(str ptr) msvcr100._stat32i64
@ cdecl _stat32(str ptr) msvcrt._stat32
@ cdecl _stat32i64(str ptr) msvcrt._stat32i64
@ cdecl _stat64(str ptr) msvcrt._stat64
@ cdecl _stat64i32(str ptr) msvcr100._stat64i32
@ cdecl _stat64i32(str ptr) msvcrt._stat64i32
@ cdecl _statusfp() msvcrt._statusfp
@ cdecl -arch=i386 _statusfp2(ptr ptr) msvcrt._statusfp2
@ cdecl _strcoll_l(str str ptr) msvcrt._strcoll_l
@ -1125,7 +1125,7 @@
@ stub _vscprintf_p_l
@ cdecl _vscwprintf(wstr ptr) msvcrt._vscwprintf
@ cdecl _vscwprintf_l(wstr ptr ptr) msvcrt._vscwprintf_l
@ cdecl _vscwprintf_p(wstr ptr) msvcr100._vscwprintf_p
@ cdecl _vscwprintf_p(wstr ptr) msvcrt._vscwprintf_p
@ cdecl _vscwprintf_p_l(wstr ptr ptr) msvcrt._vscwprintf_p_l
@ cdecl _vsnprintf(ptr long str ptr) msvcrt._vsnprintf
@ cdecl _vsnprintf_c(ptr long str ptr) msvcrt._vsnprintf_c
@ -1145,7 +1145,7 @@
@ cdecl _vswprintf_c(ptr long wstr ptr) msvcrt._vswprintf_c
@ cdecl _vswprintf_c_l(ptr long wstr ptr ptr) msvcrt._vswprintf_c_l
@ cdecl _vswprintf_l(ptr wstr ptr ptr) msvcrt._vswprintf_l
@ cdecl _vswprintf_p(ptr long wstr ptr) msvcr100._vswprintf_p
@ cdecl _vswprintf_p(ptr long wstr ptr) msvcrt._vswprintf_p
@ cdecl _vswprintf_p_l(ptr long wstr ptr ptr) msvcrt._vswprintf_p_l
@ cdecl _vswprintf_s_l(ptr long wstr ptr ptr) msvcrt._vswprintf_s_l
@ stub _vwprintf_l
@ -1275,10 +1275,10 @@
@ cdecl _wspawnvpe(long wstr ptr ptr) msvcrt._wspawnvpe
@ cdecl _wsplitpath(wstr ptr ptr ptr ptr) msvcrt._wsplitpath
@ cdecl _wsplitpath_s(wstr ptr long ptr long ptr long ptr long) msvcrt._wsplitpath_s
@ cdecl _wstat32(wstr ptr) msvcr100._wstat32
@ cdecl _wstat32i64(wstr ptr) msvcr100._wstat32i64
@ cdecl _wstat32(wstr ptr) msvcrt._wstat32
@ cdecl _wstat32i64(wstr ptr) msvcrt._wstat32i64
@ cdecl _wstat64(wstr ptr) msvcrt._wstat64
@ cdecl _wstat64i32(wstr ptr) msvcr100._wstat64i32
@ cdecl _wstat64i32(wstr ptr) msvcrt._wstat64i32
@ cdecl _wstrdate(ptr) msvcrt._wstrdate
@ cdecl _wstrdate_s(ptr long) msvcrt._wstrdate_s
@ cdecl _wstrtime(ptr) msvcrt._wstrtime
@ -1315,7 +1315,7 @@
@ cdecl -arch=arm,x86_64 atan2f(float float) msvcrt.atan2f
@ cdecl atexit(ptr) msvcrt.atexit
@ cdecl atof(str) msvcrt.atof
@ cdecl atoi(str) msvcr100.atoi #don't forward to msvcrt
@ cdecl atoi(str) msvcrt.MSVCR100_atoi
@ cdecl atol(str) msvcrt.atol
@ cdecl bsearch(ptr ptr long long ptr) msvcrt.bsearch
@ cdecl bsearch_s(ptr ptr long long ptr ptr) msvcrt.bsearch_s

View File

@ -86,9 +86,9 @@
@ cdecl -arch=win64 ?_invalid_parameter@@YAXPEBG00I_K@Z(wstr wstr wstr long long) msvcrt._invalid_parameter
@ cdecl -arch=win32 ?_is_exception_typeof@@YAHABVtype_info@@PAU_EXCEPTION_POINTERS@@@Z(ptr ptr) msvcrt._is_exception_typeof
@ cdecl -arch=win64 ?_is_exception_typeof@@YAHAEBVtype_info@@PEAU_EXCEPTION_POINTERS@@@Z(ptr ptr) msvcrt._is_exception_typeof
@ cdecl -arch=arm ?_name_internal_method@type_info@@QBAPBDPAU__type_info_node@@@Z(ptr ptr) msvcr100.?_name_internal_method@type_info@@QBAPBDPAU__type_info_node@@@Z
@ thiscall -arch=i386 ?_name_internal_method@type_info@@QBEPBDPAU__type_info_node@@@Z(ptr ptr) msvcr100.?_name_internal_method@type_info@@QBEPBDPAU__type_info_node@@@Z
@ cdecl -arch=win64 ?_name_internal_method@type_info@@QEBAPEBDPEAU__type_info_node@@@Z(ptr ptr) msvcr100.?_name_internal_method@type_info@@QEBAPEBDPEAU__type_info_node@@@Z
@ cdecl -arch=arm ?_name_internal_method@type_info@@QBAPBDPAU__type_info_node@@@Z(ptr ptr) msvcrt.?_name_internal_method@type_info@@QBAPBDPAU__type_info_node@@@Z
@ thiscall -arch=i386 ?_name_internal_method@type_info@@QBEPBDPAU__type_info_node@@@Z(ptr ptr) msvcrt.?_name_internal_method@type_info@@QBEPBDPAU__type_info_node@@@Z
@ cdecl -arch=win64 ?_name_internal_method@type_info@@QEBAPEBDPEAU__type_info_node@@@Z(ptr ptr) msvcrt.?_name_internal_method@type_info@@QEBAPEBDPEAU__type_info_node@@@Z
@ varargs -arch=win32 ?_open@@YAHPBDHH@Z(str long) msvcrt._open
@ varargs -arch=win64 ?_open@@YAHPEBDHH@Z(str long) msvcrt._open
@ cdecl -arch=win32 ?_query_new_handler@@YAP6AHI@ZXZ() msvcrt.?_query_new_handler@@YAP6AHI@ZXZ
@ -147,8 +147,8 @@
@ cdecl -arch=i386 _CIsqrt() msvcrt._CIsqrt
@ cdecl -arch=i386 _CItan() msvcrt._CItan
@ cdecl -arch=i386 _CItanh() msvcrt._CItanh
@ cdecl _CRT_RTC_INIT(ptr ptr long long long) msvcr100._CRT_RTC_INIT
@ cdecl _CRT_RTC_INITW(ptr ptr long long long) msvcr100._CRT_RTC_INITW
@ cdecl _CRT_RTC_INIT(ptr ptr long long long) msvcrt._CRT_RTC_INIT
@ cdecl _CRT_RTC_INITW(ptr ptr long long long) msvcrt._CRT_RTC_INITW
@ stub _CreateFrameInfo
@ stdcall _CxxThrowException(long long) msvcrt._CxxThrowException
@ cdecl -arch=i386 -norelay _EH_prolog() msvcrt._EH_prolog
@ -199,7 +199,7 @@
@ extern __argc msvcrt.__argc
@ extern __argv msvcrt.__argv
### extern __badioinfo #don't forward to msvcrt.__badioinfo, it has different size
@ cdecl __clean_type_info_names_internal(ptr) msvcr100.__clean_type_info_names_internal
@ cdecl __clean_type_info_names_internal(ptr) msvcrt.__clean_type_info_names_internal
@ cdecl -arch=i386 __control87_2(long long ptr ptr) msvcrt.__control87_2
@ stub __create_locale
@ cdecl __crtCompareStringA(long long str long str long) msvcrt.__crtCompareStringA
@ -292,8 +292,8 @@
@ cdecl __setusermatherr(ptr) msvcrt.__setusermatherr
@ stub __strncnt
@ stub __swprintf_l
@ cdecl __sys_errlist() msvcr100.__sys_errlist
@ cdecl __sys_nerr() msvcr100.__sys_nerr
@ cdecl __sys_errlist() msvcrt.__sys_errlist
@ cdecl __sys_nerr() msvcrt.__sys_nerr
@ cdecl __threadhandle() msvcrt.__threadhandle
@ cdecl __threadid() msvcrt.__threadid
@ cdecl __timezone() msvcrt.__p__timezone
@ -332,7 +332,7 @@
@ extern _aexit_rtn msvcrt._aexit_rtn
@ cdecl _aligned_free(ptr) msvcrt._aligned_free
@ cdecl _aligned_malloc(long long) msvcrt._aligned_malloc
@ cdecl _aligned_msize(ptr long long) msvcr100._aligned_msize
@ cdecl _aligned_msize(ptr long long) msvcrt._aligned_msize
@ cdecl _aligned_offset_malloc(long long long) msvcrt._aligned_offset_malloc
@ cdecl _aligned_offset_realloc(ptr long long long) msvcrt._aligned_offset_realloc
@ stub _aligned_offset_recalloc
@ -343,7 +343,7 @@
@ cdecl _atodbl(ptr str) msvcrt._atodbl
@ cdecl _atodbl_l(ptr str ptr) msvcrt._atodbl_l
@ cdecl _atof_l(str ptr) msvcrt._atof_l
@ cdecl _atoflt(ptr str) msvcr100._atoflt
@ cdecl _atoflt(ptr str) msvcrt._atoflt
@ cdecl _atoflt_l(ptr str ptr) msvcrt._atoflt_l
@ cdecl -ret64 _atoi64(str) msvcrt._atoi64
@ stub _atoi64_l
@ -354,9 +354,9 @@
@ cdecl _beep(long long) msvcrt._beep
@ cdecl _beginthread(ptr long ptr) msvcrt._beginthread
@ cdecl _beginthreadex(ptr long ptr ptr long ptr) msvcrt._beginthreadex
@ cdecl _byteswap_uint64(int64) msvcr100._byteswap_uint64
@ cdecl _byteswap_ulong(long) msvcr100._byteswap_ulong
@ cdecl _byteswap_ushort(long) msvcr100._byteswap_ushort
@ cdecl _byteswap_uint64(int64) msvcrt._byteswap_uint64
@ cdecl _byteswap_ulong(long) msvcrt._byteswap_ulong
@ cdecl _byteswap_ushort(long) msvcrt._byteswap_ushort
@ cdecl _c_exit() msvcrt._c_exit
@ cdecl _cabs(long) msvcrt._cabs
@ cdecl _callnewh(long) msvcrt._callnewh
@ -425,7 +425,7 @@
@ cdecl _ecvt(double long ptr ptr) msvcrt._ecvt
@ cdecl _ecvt_s(str long double long ptr ptr) msvcrt._ecvt_s
@ cdecl _encode_pointer(ptr) MSVCR90_encode_pointer
@ cdecl _encoded_null() msvcr100._encoded_null
@ cdecl _encoded_null() msvcrt._encoded_null
@ cdecl _endthread() msvcrt._endthread
@ cdecl _endthreadex(long) msvcrt._endthreadex
@ extern _environ msvcrt._environ
@ -520,7 +520,7 @@
@ cdecl _gcvt_s(ptr long double long) msvcrt._gcvt_s
@ stub _get_amblksiz
@ cdecl _get_current_locale() msvcrt._get_current_locale
@ cdecl _get_daylight(ptr) msvcr100._get_daylight
@ cdecl _get_daylight(ptr) msvcrt._get_daylight
@ cdecl _get_doserrno(ptr) msvcrt._get_doserrno
@ stub _get_dstbias
@ cdecl _get_errno(ptr) msvcrt._get_errno
@ -534,7 +534,7 @@
@ stub _get_purecall_handler
@ cdecl _get_sbh_threshold() msvcrt._get_sbh_threshold
@ cdecl _get_terminate() msvcrt._get_terminate
@ cdecl _get_timezone(ptr) msvcr100._get_timezone
@ cdecl _get_timezone(ptr) msvcrt._get_timezone
@ cdecl _get_tzname(ptr str long long) msvcrt._get_tzname
@ cdecl _get_unexpected() msvcrt._get_unexpected
@ cdecl _get_wpgmptr(ptr) msvcrt._get_wpgmptr
@ -586,7 +586,7 @@
@ cdecl -arch=i386 _inpd(long) msvcrt._inpd
@ cdecl -arch=i386 _inpw(long) msvcrt._inpw
@ cdecl _invalid_parameter(wstr wstr wstr long long) msvcrt._invalid_parameter
@ cdecl _invalid_parameter_noinfo() msvcr100._invalid_parameter_noinfo
@ cdecl _invalid_parameter_noinfo() msvcrt._invalid_parameter_noinfo
@ stub _invoke_watson
@ extern _iob msvcrt._iob
@ cdecl _isalnum_l(long ptr) msvcrt._isalnum_l
@ -836,7 +836,7 @@
@ stub _mbsspnp_l
@ cdecl _mbsstr(str str) msvcrt._mbsstr
@ stub _mbsstr_l
@ cdecl _mbstok(str str) msvcr100._mbstok #don't forward to msvcrt
@ cdecl _mbstok(str str) msvcrt.MSVCR100__mbstok
@ cdecl _mbstok_l(str str ptr) msvcrt._mbstok_l
@ cdecl _mbstok_s(str str ptr) msvcrt._mbstok_s
@ cdecl _mbstok_s_l(str str ptr ptr) msvcrt._mbstok_s_l
@ -891,7 +891,7 @@
# extern _pwctype
@ cdecl _read(long ptr long) msvcrt._read
@ cdecl _realloc_crt(ptr long) msvcrt.realloc
@ cdecl _recalloc(ptr long long) msvcr100._recalloc
@ cdecl _recalloc(ptr long long) msvcrt._recalloc
@ stub _recalloc_crt
@ cdecl _resetstkoflw() msvcrt._resetstkoflw
@ cdecl _rmdir(str) msvcrt._rmdir
@ -973,15 +973,15 @@
@ cdecl _splitpath(str ptr ptr ptr ptr) msvcrt._splitpath
@ cdecl _splitpath_s(str ptr long ptr long ptr long ptr long) msvcrt._splitpath_s
@ varargs _sprintf_l(ptr str ptr) msvcrt._sprintf_l
@ varargs _sprintf_p(ptr long str) msvcr100._sprintf_p
@ varargs _sprintf_p(ptr long str) msvcrt._sprintf_p
@ varargs _sprintf_p_l(ptr long str ptr) msvcrt._sprintf_p_l
@ varargs _sprintf_s_l(ptr long str ptr) msvcrt._sprintf_s_l
@ varargs _sscanf_l(str str ptr) msvcrt._sscanf_l
@ varargs _sscanf_s_l(str str ptr) msvcrt._sscanf_s_l
@ cdecl _stat32(str ptr) msvcr100._stat32
@ cdecl _stat32i64(str ptr) msvcr100._stat32i64
@ cdecl _stat32(str ptr) msvcrt._stat32
@ cdecl _stat32i64(str ptr) msvcrt._stat32i64
@ cdecl _stat64(str ptr) msvcrt._stat64
@ cdecl _stat64i32(str ptr) msvcr100._stat64i32
@ cdecl _stat64i32(str ptr) msvcrt._stat64i32
@ cdecl _statusfp() msvcrt._statusfp
@ cdecl -arch=i386 _statusfp2(ptr ptr) msvcrt._statusfp2
@ cdecl _strcoll_l(str str ptr) msvcrt._strcoll_l
@ -1101,7 +1101,7 @@
@ stub _vscprintf_p_l
@ cdecl _vscwprintf(wstr ptr) msvcrt._vscwprintf
@ cdecl _vscwprintf_l(wstr ptr ptr) msvcrt._vscwprintf_l
@ cdecl _vscwprintf_p(wstr ptr) msvcr100._vscwprintf_p
@ cdecl _vscwprintf_p(wstr ptr) msvcrt._vscwprintf_p
@ cdecl _vscwprintf_p_l(wstr ptr ptr) msvcrt._vscwprintf_p_l
@ cdecl _vsnprintf(ptr long str ptr) msvcrt._vsnprintf
@ cdecl _vsnprintf_c(ptr long str ptr) msvcrt._vsnprintf_c
@ -1121,7 +1121,7 @@
@ cdecl _vswprintf_c(ptr long wstr ptr) msvcrt._vswprintf_c
@ cdecl _vswprintf_c_l(ptr long wstr ptr ptr) msvcrt._vswprintf_c_l
@ cdecl _vswprintf_l(ptr wstr ptr ptr) msvcrt._vswprintf_l
@ cdecl _vswprintf_p(ptr long wstr ptr) msvcr100._vswprintf_p
@ cdecl _vswprintf_p(ptr long wstr ptr) msvcrt._vswprintf_p
@ cdecl _vswprintf_p_l(ptr long wstr ptr ptr) msvcrt._vswprintf_p_l
@ cdecl _vswprintf_s_l(ptr long wstr ptr ptr) msvcrt._vswprintf_s_l
@ stub _vwprintf_l
@ -1248,10 +1248,10 @@
@ cdecl _wspawnvpe(long wstr ptr ptr) msvcrt._wspawnvpe
@ cdecl _wsplitpath(wstr ptr ptr ptr ptr) msvcrt._wsplitpath
@ cdecl _wsplitpath_s(wstr ptr long ptr long ptr long ptr long) msvcrt._wsplitpath_s
@ cdecl _wstat32(wstr ptr) msvcr100._wstat32
@ cdecl _wstat32i64(wstr ptr) msvcr100._wstat32i64
@ cdecl _wstat32(wstr ptr) msvcrt._wstat32
@ cdecl _wstat32i64(wstr ptr) msvcrt._wstat32i64
@ cdecl _wstat64(wstr ptr) msvcrt._wstat64
@ cdecl _wstat64i32(wstr ptr) msvcr100._wstat64i32
@ cdecl _wstat64i32(wstr ptr) msvcrt._wstat64i32
@ cdecl _wstrdate(ptr) msvcrt._wstrdate
@ cdecl _wstrdate_s(ptr long) msvcrt._wstrdate_s
@ cdecl _wstrtime(ptr) msvcrt._wstrtime
@ -1288,7 +1288,7 @@
@ cdecl -arch=arm,x86_64 atanf(float) msvcrt.atanf
@ cdecl atexit(ptr) msvcrt.atexit
@ cdecl atof(str) msvcrt.atof
@ cdecl atoi(str) msvcr100.atoi ##don't forward to msvcrt
@ cdecl atoi(str) msvcrt.MSVCR100_atoi
@ cdecl atol(str) msvcrt.atol
@ cdecl bsearch(ptr ptr long long ptr) msvcrt.bsearch
@ cdecl bsearch_s(ptr ptr long long ptr ptr) msvcrt.bsearch_s

View File

@ -35,6 +35,12 @@
WINE_DEFAULT_DEBUG_CHANNEL(msvcrt);
struct __type_info_node
{
void *memPtr;
struct __type_info_node* next;
};
typedef exception bad_cast;
typedef exception bad_typeid;
typedef exception __non_rtti_object;
@ -1169,3 +1175,48 @@ int __cdecl _is_exception_typeof(const type_info *ti, EXCEPTION_POINTERS *ep)
return ret;
}
#endif
/*********************************************************************
* __clean_type_info_names_internal (MSVCR100.@)
*/
void CDECL __clean_type_info_names_internal(void *p)
{
FIXME("(%p) stub\n", p);
}
/*********************************************************************
* ?_name_internal_method@type_info@@QBEPBDPAU__type_info_node@@@Z (MSVCR100.@)
*/
DEFINE_THISCALL_WRAPPER(type_info_name_internal_method,8)
const char * __thiscall type_info_name_internal_method(type_info * _this, struct __type_info_node *node)
{
static int once;
if (node && !once++) FIXME("type_info_node parameter ignored\n");
if (!_this->name)
{
/* Create and set the demangled name */
/* Note: mangled name in type_info struct always starts with a '.', while
* it isn't valid for mangled name.
* Is this '.' really part of the mangled name, or has it some other meaning ?
*/
char* name = __unDName(0, _this->mangled + 1, 0, MSVCRT_malloc, MSVCRT_free, 0x2800);
if (name)
{
unsigned int len = strlen(name);
/* It seems _unDName may leave blanks at the end of the demangled name */
while (len && name[--len] == ' ')
name[len] = '\0';
if (InterlockedCompareExchangePointer((void**)&_this->name, name, NULL))
{
/* Another thread set this member since we checked above - use it */
MSVCRT_free(name);
}
}
}
TRACE("(%p) returning %s\n", _this, _this->name);
return _this->name;
}

View File

@ -188,6 +188,22 @@ void msvcrt_set_errno(int err)
}
}
/*********************************************************************
* __sys_nerr (MSVCR100.@)
*/
int* CDECL __sys_nerr(void)
{
return (int*)&MSVCRT__sys_nerr;
}
/*********************************************************************
* __sys_errlist (MSVCR100.@)
*/
char** CDECL __sys_errlist(void)
{
return MSVCRT__sys_errlist;
}
/*********************************************************************
* _errno (MSVCRT.@)
*/
@ -425,6 +441,14 @@ void __cdecl MSVCRT__invalid_parameter(const MSVCRT_wchar_t *expr, const MSVCRT_
}
}
/*********************************************************************
* _invalid_parameter_noinfo (MSVCR100.@)
*/
void CDECL _invalid_parameter_noinfo(void)
{
MSVCRT__invalid_parameter( NULL, NULL, NULL, 0, 0 );
}
/* _get_invalid_parameter_handler - not exported in native msvcrt, added in msvcr80 */
MSVCRT_invalid_parameter_handler CDECL _get_invalid_parameter_handler(void)
{

View File

@ -208,6 +208,21 @@ static void msvcrt_stat64_to_stat64i32(const struct MSVCRT__stat64 *buf64, struc
buf->st_ctime = buf64->st_ctime;
}
static void msvcrt_stat64_to_stat32i64(const struct MSVCRT__stat64 *buf64, struct MSVCRT__stat32i64 *buf)
{
buf->st_dev = buf64->st_dev;
buf->st_ino = buf64->st_ino;
buf->st_mode = buf64->st_mode;
buf->st_nlink = buf64->st_nlink;
buf->st_uid = buf64->st_uid;
buf->st_gid = buf64->st_gid;
buf->st_rdev = buf64->st_rdev;
buf->st_size = buf64->st_size;
buf->st_atime = buf64->st_atime;
buf->st_mtime = buf64->st_mtime;
buf->st_ctime = buf64->st_ctime;
}
static void time_to_filetime( MSVCRT___time64_t time, FILETIME *ft )
{
/* 1601 to 1970 is 369 years plus 89 leap days */
@ -2781,7 +2796,8 @@ int CDECL MSVCRT_stati64(const char* path, struct MSVCRT__stati64 * buf)
* _stat (MSVCRT.@)
*/
int CDECL MSVCRT_stat(const char* path, struct MSVCRT__stat * buf)
{ int ret;
{
int ret;
struct MSVCRT__stat64 buf64;
ret = MSVCRT_stat64( path, &buf64);
@ -2790,6 +2806,48 @@ int CDECL MSVCRT_stat(const char* path, struct MSVCRT__stat * buf)
return ret;
}
/*********************************************************************
* _stat32 (MSVCR100.@)
*/
int CDECL MSVCRT__stat32(const char *path, struct MSVCRT__stat32 *buf)
{
int ret;
struct MSVCRT__stat64 buf64;
ret = MSVCRT_stat64(path, &buf64);
if (!ret)
msvcrt_stat64_to_stat32(&buf64, buf);
return ret;
}
/*********************************************************************
* _stat32i64 (MSVCR100.@)
*/
int CDECL MSVCRT__stat32i64(const char *path, struct MSVCRT__stat32i64 *buf)
{
int ret;
struct MSVCRT__stat64 buf64;
ret = MSVCRT_stat64(path, &buf64);
if (!ret)
msvcrt_stat64_to_stat32i64(&buf64, buf);
return ret;
}
/*********************************************************************
* _stat64i32 (MSVCR100.@)
*/
int CDECL MSVCRT__stat64i32(const char* path, struct MSVCRT__stat64i32 *buf)
{
int ret;
struct MSVCRT__stat64 buf64;
ret = MSVCRT_stat64(path, &buf64);
if (!ret)
msvcrt_stat64_to_stat64i32(&buf64, buf);
return ret;
}
/*********************************************************************
* _wstat64 (MSVCRT.@)
*/
@ -2887,6 +2945,48 @@ int CDECL MSVCRT__wstat(const MSVCRT_wchar_t* path, struct MSVCRT__stat * buf)
return ret;
}
/*********************************************************************
* _wstat32 (MSVCR100.@)
*/
int CDECL MSVCRT__wstat32(const MSVCRT_wchar_t *path, struct MSVCRT__stat32 *buf)
{
int ret;
struct MSVCRT__stat64 buf64;
ret = MSVCRT__wstat64(path, &buf64);
if (!ret)
msvcrt_stat64_to_stat32(&buf64, buf);
return ret;
}
/*********************************************************************
* _wstat32i64 (MSVCR100.@)
*/
int CDECL MSVCRT__wstat32i64(const MSVCRT_wchar_t *path, struct MSVCRT__stat32i64 *buf)
{
int ret;
struct MSVCRT__stat64 buf64;
ret = MSVCRT__wstat64(path, &buf64);
if (!ret)
msvcrt_stat64_to_stat32i64(&buf64, buf);
return ret;
}
/*********************************************************************
* _wstat64i32 (MSVCR100.@)
*/
int CDECL MSVCRT__wstat64i32(const MSVCRT_wchar_t *path, struct MSVCRT__stat64i32 *buf)
{
int ret;
struct MSVCRT__stat64 buf64;
ret = MSVCRT__wstat64(path, &buf64);
if (!ret)
msvcrt_stat64_to_stat64i32(&buf64, buf);
return ret;
}
/*********************************************************************
* _tell (MSVCRT.@)
*/

View File

@ -288,6 +288,22 @@ MSVCRT_size_t CDECL _msize(void* mem)
return size;
}
/*********************************************************************
* _aligned_msize (MSVCR100.@)
*/
size_t CDECL _aligned_msize(void *p, MSVCRT_size_t alignment, MSVCRT_size_t offset)
{
void **alloc_ptr;
if(!MSVCRT_CHECK_PMT(p)) return -1;
if(alignment < sizeof(void*))
alignment = sizeof(void*);
alloc_ptr = SAVED_PTR(p);
return _msize(*alloc_ptr)-alignment-sizeof(void*);
}
/*********************************************************************
* calloc (MSVCRT.@)
*/
@ -326,6 +342,31 @@ void* CDECL MSVCRT_realloc(void* ptr, MSVCRT_size_t size)
return NULL;
}
/*********************************************************************
* _recalloc (MSVCR100.@)
*/
void* CDECL _recalloc(void *mem, MSVCRT_size_t num, MSVCRT_size_t size)
{
MSVCRT_size_t old_size;
void *ret;
if(!mem)
return MSVCRT_calloc(num, size);
size = num*size;
old_size = _msize(mem);
ret = MSVCRT_realloc(mem, size);
if(!ret) {
*MSVCRT__errno() = MSVCRT_ENOMEM;
return NULL;
}
if(size>old_size)
memset((BYTE*)ret+old_size, 0, size-old_size);
return ret;
}
/*********************************************************************
* __p__amblksiz (MSVCRT.@)
*/
@ -562,6 +603,29 @@ int CDECL MSVCRT_memmove_s(void *dest, MSVCRT_size_t numberOfElements, const voi
return 0;
}
/*********************************************************************
* wmemmove_s (MSVCR100.@)
*/
int CDECL wmemmove_s(MSVCRT_wchar_t *dest, MSVCRT_size_t numberOfElements,
const MSVCRT_wchar_t *src, MSVCRT_size_t count)
{
TRACE("(%p %lu %p %lu)\n", dest, numberOfElements, src, count);
if (!count)
return 0;
/* Native does not seem to conform to 6.7.1.2.3 in
* http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1225.pdf
* in that it does not zero the output buffer on constraint violation.
*/
if (!MSVCRT_CHECK_PMT(dest != NULL)) return MSVCRT_EINVAL;
if (!MSVCRT_CHECK_PMT(src != NULL)) return MSVCRT_EINVAL;
if (!MSVCRT_CHECK_PMT_ERR(count <= numberOfElements, MSVCRT_ERANGE)) return MSVCRT_ERANGE;
memmove(dest, src, sizeof(MSVCRT_wchar_t)*count);
return 0;
}
/*********************************************************************
* memcpy_s (MSVCRT.@)
*/
@ -588,6 +652,32 @@ int CDECL MSVCRT_memcpy_s(void *dest, MSVCRT_size_t numberOfElements, const void
return 0;
}
/*********************************************************************
* wmemcpy_s (MSVCR100.@)
*/
int CDECL wmemcpy_s(MSVCRT_wchar_t *dest, MSVCRT_size_t numberOfElements,
const MSVCRT_wchar_t *src, MSVCRT_size_t count)
{
TRACE("(%p %lu %p %lu)\n", dest, numberOfElements, src, count);
if (!count)
return 0;
if (!MSVCRT_CHECK_PMT(dest != NULL)) return MSVCRT_EINVAL;
if (!MSVCRT_CHECK_PMT(src != NULL)) {
memset(dest, 0, numberOfElements*sizeof(MSVCRT_wchar_t));
return MSVCRT_EINVAL;
}
if (!MSVCRT_CHECK_PMT_ERR(count <= numberOfElements, MSVCRT_ERANGE)) {
memset(dest, 0, numberOfElements*sizeof(MSVCRT_wchar_t));
return MSVCRT_ERANGE;
}
memcpy(dest, src, sizeof(MSVCRT_wchar_t)*count);
return 0;
}
/*********************************************************************
* strncpy_s (MSVCRT.@)
*/

View File

@ -1157,6 +1157,11 @@ unsigned char* CDECL _mbstok(unsigned char *str, const unsigned char *delim)
return _mbstok_s_l(str, delim, &data->mbstok_next, NULL);
}
unsigned char* CDECL MSVCR100__mbstok(unsigned char *str, const unsigned char *delim)
{
return _mbstok_l(str, delim, NULL);
}
/*********************************************************************
* _mbbtombc(MSVCRT.@)
*/

View File

@ -334,3 +334,72 @@ int CDECL MSVCRT__resetstkoflw(void)
/* causes stack fault that updates NtCurrentTeb()->Tib.StackLimit */
return VirtualProtect( &stack_addr, 1, PAGE_GUARD|PAGE_READWRITE, NULL );
}
/*********************************************************************
* _decode_pointer (MSVCR90.@)
*/
void * CDECL MSVCRT_decode_pointer(void * ptr)
{
return DecodePointer(ptr);
}
/*********************************************************************
* _encode_pointer (MSVCR90.@)
*/
void * CDECL MSVCRT_encode_pointer(void * ptr)
{
return EncodePointer(ptr);
}
/*********************************************************************
* _encoded_null (MSVCR100.@)
*/
void * CDECL _encoded_null(void)
{
TRACE("\n");
return EncodePointer(NULL);
}
/*********************************************************************
* _CRT_RTC_INIT (MSVCR100.@)
*/
void* CDECL _CRT_RTC_INIT(void *unk1, void *unk2, int unk3, int unk4, int unk5)
{
TRACE("%p %p %x %x %x\n", unk1, unk2, unk3, unk4, unk5);
return NULL;
}
/*********************************************************************
* _CRT_RTC_INITW (MSVCR100.@)
*/
void* CDECL _CRT_RTC_INITW(void *unk1, void *unk2, int unk3, int unk4, int unk5)
{
TRACE("%p %p %x %x %x\n", unk1, unk2, unk3, unk4, unk5);
return NULL;
}
/*********************************************************************
* _byteswap_ushort (MSVCR100.@)
*/
unsigned short CDECL _byteswap_ushort(unsigned short s)
{
return (s<<8) + (s>>8);
}
/*********************************************************************
* _byteswap_ulong (MSVCR100.@)
*/
ULONG CDECL MSVCRT__byteswap_ulong(ULONG l)
{
return (l<<24) + ((l<<8)&0xFF0000) + ((l>>8)&0xFF00) + (l>>24);
}
/*********************************************************************
* _byteswap_uint64 (MSVCR100.@)
*/
unsigned __int64 CDECL _byteswap_uint64(unsigned __int64 i)
{
return (i<<56) + ((i&0xFF00)<<40) + ((i&0xFF0000)<<24) + ((i&0xFF000000)<<8) +
((i>>8)&0xFF000000) + ((i>>24)&0xFF0000) + ((i>>40)&0xFF00) + (i>>56);
}

View File

@ -1539,3 +1539,34 @@
@ cdecl _fstat64i32(long ptr) MSVCRT__fstat64i32
@ cdecl _is_exception_typeof(ptr ptr)
@ cdecl -arch=i386 __libm_sse2_sqrt_precise()
@ cdecl wmemmove_s(ptr long ptr long)
@ cdecl wmemcpy_s(ptr long ptr long)
@ cdecl _encoded_null()
@ cdecl _invalid_parameter_noinfo()
@ cdecl __sys_nerr()
@ cdecl __sys_errlist()
@ cdecl __clean_type_info_names_internal(ptr)
@ cdecl _recalloc(ptr long long)
@ cdecl _stat32(str ptr) MSVCRT__stat32
@ cdecl _stat32i64(str ptr) MSVCRT__stat32i64
@ cdecl _stat64i32(str ptr) MSVCRT__stat64i32
@ cdecl _wstat32(wstr ptr) MSVCRT__wstat32
@ cdecl _wstat32i64(wstr ptr) MSVCRT__wstat32i64
@ cdecl _wstat64i32(wstr ptr) MSVCRT__wstat64i32
@ cdecl _atoflt(ptr str) MSVCRT__atoflt
@ cdecl -arch=arm ?_name_internal_method@type_info@@QBAPBDPAU__type_info_node@@@Z(ptr ptr) type_info_name_internal_method
@ thiscall -arch=i386 ?_name_internal_method@type_info@@QBEPBDPAU__type_info_node@@@Z(ptr ptr) type_info_name_internal_method
@ cdecl -arch=win64 ?_name_internal_method@type_info@@QEBAPEBDPEAU__type_info_node@@@Z(ptr ptr) type_info_name_internal_method
@ cdecl _CRT_RTC_INIT(ptr ptr long long long)
@ cdecl _CRT_RTC_INITW(ptr ptr long long long)
@ cdecl _byteswap_uint64(int64)
@ cdecl _byteswap_ulong(long) MSVCRT__byteswap_ulong
@ cdecl _byteswap_ushort(long)
@ cdecl _aligned_msize(ptr long long)
@ cdecl _get_daylight(ptr)
@ cdecl _get_timezone(ptr)
@ varargs _sprintf_p(ptr long str) MSVCRT__sprintf_p
@ cdecl _vscwprintf_p(wstr ptr) MSVCRT__vscwprintf_p
@ cdecl _vswprintf_p(ptr long wstr ptr) MSVCRT__vswprintf_p
@ cdecl MSVCR100_atoi(str)
@ cdecl MSVCR100__mbstok(str str)

View File

@ -454,6 +454,14 @@ int CDECL MSVCRT__atoflt_l( MSVCRT__CRT_FLOAT *value, char *str, MSVCRT__locale_
return 0;
}
/*********************************************************************
* _atoflt (MSVCR100.@)
*/
int CDECL MSVCRT__atoflt(MSVCRT__CRT_FLOAT *value, char *str)
{
return MSVCRT__atoflt_l(value, str, NULL);
}
/*********************************************************************
* _atodbl_l (MSVCRT.@)
*/
@ -879,6 +887,11 @@ int __cdecl MSVCRT_atoi(const char *str)
return minus ? -ret : ret;
}
int CDECL MSVCR100_atoi(const char *str)
{
return MSVCRT__atoi_l(str, NULL);
}
/******************************************************************
* strtol (MSVCRT.@)
*/

View File

@ -1467,3 +1467,25 @@ MSVCRT_wchar_t * CDECL MSVCRT__wctime(const MSVCRT___time32_t *time)
return MSVCRT__wctime32( time );
}
#endif
/*********************************************************************
* _get_timezone (MSVCR100.@)
*/
int CDECL _get_timezone(LONG *timezone)
{
if(!MSVCRT_CHECK_PMT(timezone != NULL)) return MSVCRT_EINVAL;
*timezone = MSVCRT___timezone;
return 0;
}
/*********************************************************************
* _get_daylight (MSVCR100.@)
*/
int CDECL _get_daylight(int *hours)
{
if(!MSVCRT_CHECK_PMT(hours != NULL)) return MSVCRT_EINVAL;
*hours = MSVCRT___daylight;
return 0;
}

View File

@ -859,6 +859,15 @@ int CDECL MSVCRT_vswprintf_p_l(MSVCRT_wchar_t *buffer, MSVCRT_size_t length,
return ret;
}
/*********************************************************************
* _vswprintf_p (MSVCR100.@)
*/
int CDECL MSVCRT__vswprintf_p(MSVCRT_wchar_t *buffer, MSVCRT_size_t length,
const MSVCRT_wchar_t *format, __ms_va_list args)
{
return MSVCRT_vswprintf_p_l(buffer, length, format, NULL, args);
}
/*********************************************************************
* _vsnwprintf_s_l (MSVCRT.@)
*/
@ -1087,6 +1096,14 @@ int CDECL MSVCRT__vscwprintf_p_l( const MSVCRT_wchar_t *format, MSVCRT__locale_t
return MSVCRT_vswprintf_p_l( NULL, INT_MAX, format, locale, args );
}
/*********************************************************************
* _vscwprintf_p (MSVCR100.@)
*/
int CDECL MSVCRT__vscwprintf_p(const MSVCRT_wchar_t *format, __ms_va_list args)
{
return MSVCRT_vswprintf_p_l(NULL, INT_MAX, format, NULL, args);
}
/*********************************************************************
* vswprintf_s (MSVCRT.@)
*/
@ -1160,6 +1177,21 @@ int CDECL MSVCRT_sprintf_p_l(char *buffer, MSVCRT_size_t length,
return r;
}
/*********************************************************************
* _sprintf_p (MSVCR100.@)
*/
int CDECL MSVCRT__sprintf_p(char *buffer, MSVCRT_size_t length, const char *format, ...)
{
__ms_va_list valist;
int r;
__ms_va_start(valist, format);
r = MSVCRT_vsprintf_p_l(buffer, length, format, NULL, valist);
__ms_va_end(valist);
return r;
}
/*********************************************************************
* _swprintf_p_l (MSVCRT.@)
*/