From bde7a5ff59e26ed86e098d2e4a75f7f1c7e40e00 Mon Sep 17 00:00:00 2001 From: mpc <mpc> Date: Fri, 25 Jun 2004 22:19:18 +0000 Subject: [PATCH] Mutex code (untested) --- apps/enclave/Makefile | 3 ++- apps/enclave/src/logger.cpp | 17 +++++++++++++++++ apps/enclave/src/logger.hpp | 4 ++++ apps/enclave/src/platform.hpp | 10 ++++++++++ 4 files changed, 33 insertions(+), 1 deletion(-) diff --git a/apps/enclave/Makefile b/apps/enclave/Makefile index 3805927028..c3e5b5527b 100644 --- a/apps/enclave/Makefile +++ b/apps/enclave/Makefile @@ -34,7 +34,7 @@ CFLAGS = -g -march=i486 -pipe -Wall CFLAGS += -I$(SAMINCDIR) -I$(TOMCRYPTDIR) LDFLAGS = -L$(SAMLIBDIR) -L$(TOMCRYPTDIR) -LIBS = -lsam -ltomcrypt +LIBS = -lsam -ltomcrypt -lpthread # # Object files @@ -45,6 +45,7 @@ OBJS = $(OBJDIR)/bigint.o \ $(OBJDIR)/config.o \ $(OBJDIR)/logger.o \ $(OBJDIR)/main.o \ + $(OBJDIR)/mutex.o \ $(OBJDIR)/peers.o \ $(OBJDIR)/random.o \ $(OBJDIR)/rpc.o \ diff --git a/apps/enclave/src/logger.cpp b/apps/enclave/src/logger.cpp index 1458459950..a0491f18c6 100644 --- a/apps/enclave/src/logger.cpp +++ b/apps/enclave/src/logger.cpp @@ -42,3 +42,20 @@ Logger::Logger(const string& file) throw runtime_error("Error opening log file"); } } + +#ifdef WIN_STRERROR +/* + * strerror() for primitive operating systems + */ +TCHAR* win_strerror(TCHAR* str, size_t size) +{ + LPVOID lpMsgBuf; + DWORD dw = GetLastError(); + FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM, + NULL, dw, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPTSTR)&lpMsgBuf, + 0, NULL); + snprintf(str, size, "%s", lpMsgBuf); + LocalFree(lpMsgBuf); + return str; +} +#endif diff --git a/apps/enclave/src/logger.hpp b/apps/enclave/src/logger.hpp index 75a5c28922..9ed809241f 100644 --- a/apps/enclave/src/logger.hpp +++ b/apps/enclave/src/logger.hpp @@ -81,4 +81,8 @@ class Logger { ofstream logf; }; +#ifdef WIN_STRERROR +TCHAR* win_strerror(TCHAR* str, size_t size); +#endif + #endif // LOGGER_HPP diff --git a/apps/enclave/src/platform.hpp b/apps/enclave/src/platform.hpp index bfdf40ae59..d4a8a201ae 100644 --- a/apps/enclave/src/platform.hpp +++ b/apps/enclave/src/platform.hpp @@ -39,6 +39,11 @@ #define LINUX 2 // Linux #define CYGWIN 3 // Cygwin +#if OS == MINGW + #define WIN_STRERROR + #define WINTHREADS +#endif + /* * System includes */ @@ -49,6 +54,11 @@ #include <iostream> #include <list> #include <map> +#ifdef WINTHREADS + #include <windows.h> +#else + #include <pthread.h> +#endif #include <stdexcept> #include <stdint.h> #include <string> -- GitLab