Mini Kabibi Habibi

Current Path : C:/xampp/FileZillaFTP/source/
Upload File :
Current File : C:/xampp/FileZillaFTP/source/platform.h

// �Platform.h
//
//////////////////////////////////////////////////////////////////////

#if !defined(_PLATFORM_INCLUDED_)
#define _PLATFORM_INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#ifdef _X86_
// X86 allows unaligned accesses, so we can just dereference any pointer
// after a cast
#define GET16(pc)	(*(WORD *)(pc))
#define GET32(pc)	(*(DWORD *)(pc))
#define GET64(pc)	(*(DWORD64 *)(pc))
#else // not _X86_
// Other platforms (IPF and AMD64) either have a have a significant penalty
// for unaligned accesses or they may trap to the OS).
// For these platformsm we put the bytes together to make 16, 32 and 64 bit
// objects.  We assume little-endian data.
#define GET16(pc)	((WORD)(*(unsigned char *)(pc)) |	\
		((*(unsigned char *)((pc) + 1)) << 8))
#define GET32(pc)	((DWORD)(*(unsigned char *)(pc)) |	\
		((*(unsigned char *)((pc) + 1)) << 8) |		\
		((*(unsigned char *)((pc) + 2)) << 16) |	\
		((*(unsigned char *)((pc) + 3)) << 24))
#define GET64(pc)	((DWORD64)(*(unsigned char *)(pc)) |	\
		((*(unsigned char *)((pc) + 1)) << 8) |		\
		((*(unsigned char *)((pc) + 2)) << 16) |	\
		((*(unsigned char *)((pc) + 3)) << 24) |	\
		((*(unsigned char *)((pc) + 4)) << 32) |	\
		((*(unsigned char *)((pc) + 5)) << 40) |	\
		((*(unsigned char *)((pc) + 6)) << 48) |	\
		((*(unsigned char *)((pc) + 7)) << 56))
#endif // if _X86_ ... else not _X86_ ...

#endif // !defined(_PLATFORM_INCLUDED_)