Fixed compilation using MinGW from Cygwin 32 and 64 bit

This commit is contained in:
Daniel Frużyński 2016-12-30 19:49:12 +01:00
parent f691a3f0f9
commit a83889ef3b
3 changed files with 9 additions and 5 deletions

View File

@ -371,8 +371,8 @@ int diagnostics_init(
#if defined(_WIN32)
//_set_abort_behavior(NULL, _WRITE_ABORT_MSG);
set_terminate(boinc_term_func);
set_unexpected(boinc_term_func);
std::set_terminate(boinc_term_func);
std::set_unexpected(boinc_term_func);
#if defined(_DEBUG)

View File

@ -312,7 +312,7 @@ int diagnostics_update_thread_list() {
// Enumerate the threads
for(uiSystemIndex = 0; uiSystemIndex < pProcesses->ThreadCount; uiSystemIndex++) {
pThread = &pProcesses->Threads[uiSystemIndex];
pThreadEntry = diagnostics_find_thread_entry((DWORD)pThread->ClientId.UniqueThread);
pThreadEntry = diagnostics_find_thread_entry((DWORD)(uintptr_t)pThread->ClientId.UniqueThread);
if (pThreadEntry) {
pThreadEntry->crash_kernel_time = (FLOAT)pThread->KernelTime.QuadPart;
@ -326,12 +326,12 @@ int diagnostics_update_thread_list() {
hThread = OpenThread(
THREAD_ALL_ACCESS,
FALSE,
(DWORD)(pThread->ClientId.UniqueThread)
(DWORD)(uintptr_t)(pThread->ClientId.UniqueThread)
);
pThreadEntry = new BOINC_THREADLISTENTRY;
diagnostics_init_thread_entry(pThreadEntry);
pThreadEntry->thread_id = (DWORD)(pThread->ClientId.UniqueThread);
pThreadEntry->thread_id = (DWORD)(uintptr_t)(pThread->ClientId.UniqueThread);
pThreadEntry->thread_handle = hThread;
pThreadEntry->crash_kernel_time = (FLOAT)pThread->KernelTime.QuadPart;
pThreadEntry->crash_user_time = (FLOAT)pThread->UserTime.QuadPart;

View File

@ -27,6 +27,7 @@ typedef LONG NTSTATUS;
typedef LONG KPRIORITY;
//MinGW-W64 defines this struct in its own header
#define HAVE_CLIENT_ID 1
#ifndef HAVE_CLIENT_ID
typedef struct _CLIENT_ID {
DWORD UniqueProcess;
@ -35,6 +36,7 @@ typedef struct _CLIENT_ID {
#endif
//MinGW-W64 defines this struct in its own header
#define HAVE_VM_COUNTERS 1
#ifndef HAVE_VM_COUNTERS
typedef struct _VM_COUNTERS {
#ifdef _WIN64
@ -67,6 +69,7 @@ typedef struct _VM_COUNTERS {
#endif
//MinGW-W64 defines this struct in its own header
#define HAVE_SYSTEM_THREADS 1
#ifndef HAVE_SYSTEM_THREADS
typedef struct _SYSTEM_THREADS {
LARGE_INTEGER KernelTime;
@ -112,6 +115,7 @@ typedef struct _SYSTEM_PROCESSES {
#endif
//MinGW-W64 defines this struct in its own header
#define HAVE_THREAD_STATE 1
#ifndef HAVE_THREAD_STATE
typedef enum _THREAD_STATE {
StateInitialized,