--- truecrypt/boot/windows/platform.h 2018/04/24 16:49:04 1.1.1.1 +++ truecrypt/boot/windows/platform.h 2018/04/24 17:05:48 1.1.1.7 @@ -1,7 +1,7 @@ /* - Copyright (c) 2008 TrueCrypt Foundation. All rights reserved. + Copyright (c) 2008-2009 TrueCrypt Foundation. All rights reserved. - Governed by the TrueCrypt License 2.4 the full text of which is contained + Governed by the TrueCrypt License 2.8 the full text of which is contained in the file License.txt included in TrueCrypt binary and source code distribution packages. */ @@ -9,22 +9,17 @@ #ifndef TC_HEADER_Boot_Platform #define TC_HEADER_Boot_Platform -#pragma warning ( disable : 4769 ) +#pragma warning (disable: 4018 4102 4704 4769) #include "TCdefs.h" - #include -#ifndef DEBUG -# pragma intrinsic (memcpy) -# pragma intrinsic (memset) -#endif - -typedef int bool; +typedef char bool; #define false 0 #define true 1 #define nullptr 0 +#define NULL 0 typedef UINT64_STRUCT uint64; @@ -40,6 +35,16 @@ typedef UINT64_STRUCT uint64; #define TC_ASM_EMIT3(A,B,C) __asm _emit 0x##A __asm _emit 0x##B __asm _emit 0x##C #define TC_ASM_EMIT4(A,B,C,D) __asm _emit 0x##A __asm _emit 0x##B __asm _emit 0x##C __asm _emit 0x##D +#define TC_ASM_MOV_EAX_DI TC_ASM_EMIT3 (66, 8B, 05) +#define TC_ASM_MOV_EBX_DI TC_ASM_EMIT3 (66, 8B, 1D) +#define TC_ASM_MOV_ECX_DI TC_ASM_EMIT3 (66, 8B, 0D) +#define TC_ASM_MOV_EDX_DI TC_ASM_EMIT3 (66, 8B, 15) + +#define TC_ASM_MOV_DI_EAX TC_ASM_EMIT3 (66, 89, 05) +#define TC_ASM_MOV_DI_EBX TC_ASM_EMIT3 (66, 89, 1D) +#define TC_ASM_MOV_DI_ECX TC_ASM_EMIT3 (66, 89, 0D) +#define TC_ASM_MOV_DI_EDX TC_ASM_EMIT3 (66, 89, 15) + #pragma pack(1) @@ -83,8 +88,10 @@ struct Registers uint64 operator+ (const uint64 &a, const uint64 &b); uint64 operator+ (const uint64 &a, uint32 b); +uint64 &operator+= (uint64 &a, const uint64 &b); uint64 operator- (const uint64 &a, const uint64 &b); uint64 operator- (const uint64 &a, uint32 b); +uint64 &operator-= (uint64 &a, const uint64 &b); uint64 operator>> (const uint64 &a, int shiftCount); uint64 operator<< (const uint64 &a, int shiftCount); uint64 &operator++ (uint64 &a); @@ -94,10 +101,12 @@ bool operator< (const uint64 &a, const u bool operator>= (const uint64 &a, const uint64 &b); bool operator<= (const uint64 &a, const uint64 &b); -void CopyMemory (byte *source, uint16 destSegment, uint16 destOffset, uint16 blockSize); -void CopyMemory (uint16 sourceSegment, uint16 sourceOffset, byte *destination, uint16 blockSize); +void CopyMemory (void *source, uint16 destSegment, uint16 destOffset, uint16 blockSize); +void CopyMemory (uint16 sourceSegment, uint16 sourceOffset, void *destination, uint16 blockSize); +extern "C" void EraseMemory (void *memory, int size); uint32 GetLinearAddress (uint16 segment, uint16 offset); -void Jump (uint16 jumpSegment, uint16 jumpOffset, byte dlRegister); +bool RegionsIntersect (const uint64 &start1, uint32 length1, const uint64 &start2, const uint64 &end2); bool TestInt64 (); +extern "C" void ThrowFatalException (int line); #endif // TC_HEADER_Boot_Platform