diff options
Diffstat (limited to 'heimdall')
-rw-r--r-- | heimdall/CMakeLists.txt | 88 | ||||
-rw-r--r-- | heimdall/source/BridgeManager.cpp | 6 | ||||
-rw-r--r-- | heimdall/source/Heimdall.h | 16 |
3 files changed, 97 insertions, 13 deletions
diff --git a/heimdall/CMakeLists.txt b/heimdall/CMakeLists.txt new file mode 100644 index 0000000..8887211 --- /dev/null +++ b/heimdall/CMakeLists.txt @@ -0,0 +1,88 @@ +cmake_minimum_required(VERSION 2.8.4) + +project(heimdall) + +if(WIN32) + set(LIBUSB_1_INCLUDE_DIRS + ../libusb-1.0/include) +else(WIN32) + find_package(libusb-1.0 REQUIRED) +endif(WIN32) + +set(LIBPIT_INCLUDE_DIRS + ../libpit/Source) + +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++11") + +include_directories(SYSTEM ${LIBUSB_1_INCLUDE_DIRS}) + +include_directories(${LIBPIT_INCLUDE_DIRS}) + +set(HEIMDALL_SOURCE_FILES + source/Arguments.cpp + source/Arguments.h + source/BeginDumpPacket.h + source/BeginSessionPacket.h + source/BridgeManager.cpp + source/BridgeManager.h + source/ClosePcScreenAction.cpp + source/ClosePcScreenAction.h + source/ControlPacket.h + source/DetectAction.cpp + source/DetectAction.h + source/DeviceTypePacket.h + source/DownloadPitAction.cpp + source/DownloadPitAction.h + source/DumpPartFileTransferPacket.h + source/DumpPartPitFilePacket.h + source/DumpResponse.h + source/EndFileTransferPacket.h + source/EndModemFileTransferPacket.h + source/EndPhoneFileTransferPacket.h + source/EndPitFileTransferPacket.h + source/EndSessionPacket.h + source/FilePartSizePacket.h + source/FileTransferPacket.h + source/FlashAction.cpp + source/FlashAction.h + source/FlashPartFileTransferPacket.h + source/FlashPartPitFilePacket.h + source/Heimdall.h + source/HelpAction.cpp + source/HelpAction.h + source/InboundPacket.h + source/InfoAction.cpp + source/InfoAction.h + source/Interface.cpp + source/Interface.h + source/main.cpp + source/OutboundPacket.h + source/Packet.h + source/PitFilePacket.h + source/PitFileResponse.h + source/PrintPitAction.cpp + source/PrintPitAction.h + source/ReceiveFilePartPacket.h + source/ResponsePacket.h + source/SendFilePartPacket.h + source/SendFilePartResponse.h + source/SessionSetupPacket.h + source/SessionSetupResponse.h + source/SetupSessionPacket.h + source/SetupSessionResponse.h + source/TotalBytesPacket.h + source/Utility.cpp + source/Utility.h + source/VersionAction.cpp + source/VersionAction.h) + +include(LargeFiles) +use_large_files(heimdall YES) +add_executable(heimdall ${HEIMDALL_SOURCE_FILES}) + +target_link_libraries(heimdall PRIVATE pit) + +LINK_DIRECTORIES(../libusb-1.0/lib/mingw) +if(WIN32) + target_link_libraries(heimdall PRIVATE ${CMAKE_SOURCE_DIR}/libusb-1.0/lib/mingw/libusb-1.0.a) +endif(WIN32) diff --git a/heimdall/source/BridgeManager.cpp b/heimdall/source/BridgeManager.cpp index 9b8fdfa..8fb678c 100644 --- a/heimdall/source/BridgeManager.cpp +++ b/heimdall/source/BridgeManager.cpp @@ -19,7 +19,7 @@ THE SOFTWARE.*/ // C Standard Library -#include <stdio.h> +#include <cstdio> // libusb #include <libusb.h> @@ -53,7 +53,9 @@ #include "SessionSetupResponse.h" // Future versions of libusb will use usb_interface instead of interface. +#ifndef usb_interface #define usb_interface interface +#endif #define USB_CLASS_CDC_DATA 0x0A @@ -1035,7 +1037,7 @@ bool BridgeManager::SendFile(FILE *file, unsigned int destination, unsigned int { sequenceCount++; - int lastSequenceBytes = fileSize % (fileTransferSequenceMaxLength * fileTransferPacketSize); + unsigned int lastSequenceBytes = fileSize % (fileTransferSequenceMaxLength * fileTransferPacketSize); lastSequenceSize = lastSequenceBytes / fileTransferPacketSize; if (partialPacketByteCount != 0) diff --git a/heimdall/source/Heimdall.h b/heimdall/source/Heimdall.h index 3982dd4..c5c11ef 100644 --- a/heimdall/source/Heimdall.h +++ b/heimdall/source/Heimdall.h @@ -21,7 +21,7 @@ #ifndef HEIMDALL_H
#define HEIMDALL_H
-#ifdef OS_WINDOWS
+#ifdef _MSC_VER // Microsoft Visual C Standard Library
#include <Windows.h>
#undef GetBinaryType
@@ -36,24 +36,18 @@ #define FileTell(FILE) _ftelli64(FILE)
#define FileRewind(FILE) rewind(FILE)
-#else
+#else // POSIX Standard Library
-#include "../config.h"
-
-#if defined(OS_DARWIN) || defined(OS_LINUX)
#include <unistd.h>
+
#define Sleep(t) usleep(1000*t)
#define FileOpen(FILE, MODE) fopen(FILE, MODE)
#define FileClose(FILE) fclose(FILE)
-#define FileSeek(FILE, OFFSET, ORIGIN) fseeko(FILE, OFFSET, ORIGIN)
-#define FileTell(FILE) ftello(FILE)
+#define FileSeek(FILE, OFFSET, ORIGIN) fseeko64(FILE, OFFSET, ORIGIN)
+#define FileTell(FILE) ftello64(FILE)
#define FileRewind(FILE) rewind(FILE)
-#else
-#error operating system not supported
-#endif
-
#endif
#if (!(defined _MSC_VER) || (_MSC_VER < 1700))
|