Add PInvoke/SizeParamIndex tests (#19348)
[platform/upstream/coreclr.git] / tests / src / Common / Platform / platformdefines.h
index d0760fd..e1e84b6 100644 (file)
@@ -6,6 +6,7 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
+#include <cstdint>
 
 #ifndef _PLATFORMDEFINES__H
 #define _PLATFORMDEFINES__H
@@ -19,7 +20,7 @@
 #define FS_SEPERATOR L"\\"
 #define PATH_DELIMITER L";"
 #define L(t) L##t
-
+#define W(str)  L##str
 
 typedef unsigned error_t;
 typedef HANDLE THREAD_ID;
@@ -30,11 +31,36 @@ typedef HANDLE THREAD_ID;
 #include <pthread.h>
 
 typedef char16_t WCHAR;
-typedef unsigned long DWORD;
+typedef unsigned int DWORD;
 typedef int BOOL;
 typedef WCHAR *LPWSTR, *PWSTR;
 typedef const WCHAR *LPCWSTR, *PCWSTR;
 
+typedef int HRESULT;
+#define LONGLONG long long
+#define ULONGLONG unsigned LONGLONG
+typedef unsigned int ULONG, *PULONG;
+#define S_OK                    0x0
+#define SUCCEEDED(_hr)          ((HRESULT)(_hr) >= 0)
+#define FAILED(_hr)             ((HRESULT)(_hr) < 0)
+
+#ifdef ULONG_MAX
+#undef ULONG_MAX
+#endif
+#define ULONG_MAX     0xffffffffUL
+#define CCH_BSTRMAX 0x7FFFFFFF  // 4 + (0x7ffffffb + 1 ) * 2 ==> 0xFFFFFFFC
+#define CB_BSTRMAX 0xFFFFFFFa   // 4 + (0xfffffff6 + 2) ==> 0xFFFFFFFC
+
+#ifdef RC_INVOKED
+#define _HRESULT_TYPEDEF_(_sc) _sc
+#else // RC_INVOKED
+#define _HRESULT_TYPEDEF_(_sc) ((HRESULT)_sc)
+#endif // RC_INVOKED
+#define E_INVALIDARG                     _HRESULT_TYPEDEF_(0x80070057L)
+#define UInt32x32To64(a, b) ((unsigned __int64)((ULONG)(a)) * (unsigned __int64)((ULONG)(b)))
+
+#define ARRAYSIZE(x) (sizeof(x)/sizeof(*x))
+
 #ifndef TRUE
 #define TRUE 1
 #endif
@@ -51,9 +77,11 @@ typedef const WCHAR *LPCWSTR, *PCWSTR;
 #if __i386__
 #define __stdcall __attribute__((stdcall))
 #define _cdecl __attribute__((cdecl))
+#define __cdecl __attribute__((cdecl))
 #else
 #define __stdcall
 #define _cdecl
+#define __cdecl
 #endif
 #endif
 
@@ -63,16 +91,17 @@ typedef const WCHAR *LPCWSTR, *PCWSTR;
 #define DLL_EXPORT
 #endif
 
-LPWSTR HackyConvertToWSTR(char* pszInput);
+LPWSTR HackyConvertToWSTR(const char* pszInput);
 
 #define FS_SEPERATOR L("/")
 #define PATH_DELIMITER L(":")
 #define L(t) HackyConvertToWSTR(t)
+#define W(str)  u##str
 #define MAX_PATH 260
 
 typedef pthread_t THREAD_ID;
 typedef void* (*MacWorker)(void*);
-typedef DWORD (*LPTHREAD_START_ROUTINE)(void*);
+typedef DWORD __stdcall (*LPTHREAD_START_ROUTINE)(void*);
 #ifdef UNICODE
 typedef WCHAR TCHAR;
 #else // ANSI
@@ -85,24 +114,27 @@ typedef const TCHAR* LPCTSTR;
 typedef void* FARPROC;
 typedef void* HMODULE;
 typedef void* ULONG_PTR;
-typedef unsigned error_t;
+typedef int error_t;
 typedef void* LPVOID;
-typedef char BYTE;
+typedef unsigned char BYTE;
 typedef WCHAR OLECHAR;
 #endif
 
+typedef ULONG_PTR DWORD_PTR;
+
 //
 // Method declarations
 //
 error_t TP_scpy_s(LPWSTR strDestination, size_t sizeInWords, LPCWSTR strSource);
 error_t TP_scat_s(LPWSTR strDestination, size_t sizeInWords, LPCWSTR strSource);
-int TP_slen(LPWSTR str);
-int TP_scmp_s(LPSTR str1, LPSTR str2);
-int TP_wcmp_s(LPWSTR str1, LPWSTR str2);
+size_t TP_slen(LPCWSTR str);
+int TP_scmp_s(LPCSTR str1, LPCSTR str2);
+int TP_wcmp_s(LPCWSTR str1, LPCWSTR str2);
 error_t TP_getenv_s(size_t* pReturnValue, LPWSTR buffer, size_t sizeInWords, LPCWSTR varname);
 error_t TP_putenv_s(LPTSTR name, LPTSTR value);
 void TP_ZeroMemory(LPVOID buffer, size_t sizeInBytes);
 error_t TP_itow_s(int num, LPWSTR buffer, size_t sizeInCharacters, int radix);
+error_t TP_itoa_s(int num, LPSTR buffer, size_t sizeInCharacters, int radix);
 LPWSTR TP_sstr(LPWSTR str, LPWSTR searchStr);
 LPSTR  HackyConvertToSTR(LPWSTR pwszInput);
 DWORD TP_CreateThread(THREAD_ID* tThread, LPTHREAD_START_ROUTINE worker,  LPVOID lpParameter);
@@ -110,6 +142,13 @@ void TP_JoinThread(THREAD_ID tThread);
 void TP_DebugBreak();
 DWORD TP_GetFullPathName(LPWSTR fileName, DWORD nBufferLength, LPWSTR lpBuffer);
 
+typedef WCHAR* BSTR;
+BSTR TP_SysAllocStringByteLen(LPCSTR psz, size_t len);
+void TP_SysFreeString(BSTR bstr);
+size_t TP_SysStringByteLen(BSTR bstr);
+BSTR TP_SysAllocStringLen(LPWSTR psz, size_t len);
+BSTR TP_SysAllocString(LPWSTR psz);
+
 //
 // Method redirects
 //
@@ -148,6 +187,7 @@ DWORD TP_GetFullPathName(LPWSTR fileName, DWORD nBufferLength, LPWSTR lpBuffer);
 #define _putenv_s TP_putenv_s
 #define ZeroMemory TP_ZeroMemory
 #define _itow_s TP_itow_s
+#define _itoa_s TP_itoa_s
 #define wcsstr TP_sstr
 #define strcmp TP_scmp_s
 #define wcscmp TP_wcmp_s