⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 global.h

📁 很好的rootkit介绍书籍
💻 H
📖 第 1 页 / 共 3 页
字号:
		#endif	#elif defined(__GNUC__)			/* gcc compiler on Mac OS X */		#ifndef MAC_POWERPC		#define MAC_POWERPC		#endif	#elif !defined(THINK_C)		#error Unknown Mac development environment	#endif	#define	PLATFORM_NAME "Macintosh"	#define BIG_ENDIAN_ORDER	#define THREADS	#define SEMAPHORES	#define	SEMSPIN	#define ODS_NEEDED TRUE	#define	COMPILER_INT_SIZE 4	#if defined(MAC_POWERPC) && defined(XLC_C) /* All other compilers use "-align mac68k" (2 byte alignment) */		#define REQUIRED_ALIGNMENT 1		/* PowerPC supports odd-byte addressing if truly required */		#define COMPILER_DWORD_ALIGNMENT 4	/* Compiler will pad DWORDs to DWORD boundary if possible */		#define COMPILER_NUMBER_ALIGNMENT 4	#else		#define REQUIRED_ALIGNMENT 1		/* 68020 or later CPUs only (not 68000) */		#define COMPILER_DWORD_ALIGNMENT 2	/* Compiler will pad DWORDs to WORD boundary, because any further alignment is unnecessary */		#define COMPILER_NUMBER_ALIGNMENT 2	#endif	#define VIM_USE_MAC	/* Tdanalzye is a rudimentary parser, that is failing to correctly parse this long #if #elif statements.	 * It is re-processing the UNIX section after it has already processed the OS400 section and incorrectly	 * using a COMPILER_NUMBER_ALIGNMENT of 4.  So for now, add a redundant !OS400, until tdanalzye is fixed.	 */#elif defined(UNIX)  && !defined(OS400)	#ifndef W32		#define	W32				/* Compile for Windows 32 API - its emulated */	#endif	#ifndef W		#define	W				/* Compile for Windows 16 API - its emulated */	#endif	#if !defined(MIRAGE) && !defined(INTERNOTES)		#define MIRAGE	#endif	#define	PLATFORM_NAME "UNIX"	#if defined(AIX)		#define XLC_C	#elif defined(SUN) || defined(SOLARIS)		#define SUN_C	#elif defined(HPUX)		#define HP_C	#elif defined(OS390)		#define OS390_C	#elif defined(UNIXWARE)		#define UW_C	#elif defined(__osf__)		#if !defined(OSF)			#define OSF		#endif		#define DEC_C	#elif defined(LINUX)		#define GCC	#endif	#if (defined(ODT) || defined(SOLX86) || defined(UNIXWARE) || defined(OSF) || defined(LINUX)) && !defined(ZLINUX)		#define LITTLE_ENDIAN_ORDER	#else		#define BIG_ENDIAN_ORDER	#endif	#define PREEMPTIVE	#define	SEMAPHORES	#define	SEMALLOC	/* All UNIX type platforms except Solaris,HPUX, and AIX are 32 bit handle platforms */	/* This needs to be here so that it is also included in the SDK */	#if !(defined(SOLARIS) || defined(HPUX) || defined(SOLX86) || defined(AIX))	#ifndef HANDLE_IS_32BITS		#define HANDLE_IS_32BITS	#endif	#endif	#if (defined(SOLARIS) || defined(AIX) || defined (HPUX) || defined(OS390) || defined(LINUX)) && !defined(DISABLE_THREADS)		#define THREADS	#endif	/*	ODS needed, even for ODT (on x86 machines), because X includes		don't support having the compiler set for tight packing (-Zp1),		that is, they assume padding.  With padding enabled, we must use		ODS even when theoretically unncessary.  Perhaps the X headers		can be kludged to explicitly pad so that this is unnecessary. */	#if defined(ODT_LATER)		#define	COMPILER_INT_SIZE 4		#define REQUIRED_ALIGNMENT 1		#define COMPILER_DWORD_ALIGNMENT 2		#define COMPILER_NUMBER_ALIGNMENT 2	#else		#define ODS_NEEDED TRUE		#define	COMPILER_INT_SIZE 4		#if defined(OSF)			#define REQUIRED_ALIGNMENT 8		#else			#define REQUIRED_ALIGNMENT 4		#endif		#define COMPILER_DWORD_ALIGNMENT 4		#if defined(SOLARIS) || defined(HPUX) || defined(OS390) || defined(ZLINUX)			#define COMPILER_NUMBER_ALIGNMENT 8		#else			#define COMPILER_NUMBER_ALIGNMENT 4		#endif	#endif	#define VIM_USE_UNIX#elif defined(NLM)	#ifdef __WATCOMC__		#define WATCOM_C	#endif	#ifdef _MSC_VER		#define MSC	#endif	#define	PLATFORM_NAME "NetWare"	#define LITTLE_ENDIAN_ORDER	#define	SEMAPHORES	#define	SEMALLOC	#define	THREADS	#define SINGLE_INSTANCE_DLL_DS	#define ODS_NEEDED FALSE	#define	COMPILER_INT_SIZE 4	#define REQUIRED_ALIGNMENT 1	#define COMPILER_DWORD_ALIGNMENT 1	#define COMPILER_NUMBER_ALIGNMENT 1	#define NOGUI	#define	ENABLE_TRANSACTIONS	#define VIM_USE_NLM#else	#error Must specify type of OS ("DOS", "OS2", etc) on C command line!#endif#if (defined(SOLARIS) || defined(AIX)) && defined(Enable_New_SpinLocks)	#define USE_COND_SLEEP_ON_SPINLOCK 1#endif/*	Nullify the certain compiler keywords if not supported by compiler */#if !defined(MSC) || defined(NT) || defined(MAC)	#if !defined(MAC)	/* On Mac, "pascal" (lowercase) is a reserved word */		#ifdef pascal			#undef pascal		#endif		#if defined(_MSC_VER) && _MSC_VER >= 800			#define pascal __stdcall		#else			#define pascal		#endif	#endif	/* !defined(MAC) */	#if defined(MAC)		#define PASCAL	#endif	#ifndef PASCAL		#define PASCAL	#endif	#ifdef cdecl		#undef cdecl	#endif	#define cdecl	#if !defined(MWERKS_C)	/* In MWERKS_C, "far" is a reserved word, and cannot appear in an #ifdef expression */		#ifdef far			#undef far		#endif	#endif	#define far	#ifndef FAR		#define FAR	#endif	#ifdef near		#undef near	#endif	#define near	#ifndef NEAR		#define NEAR	#endif	#ifdef huge		#undef huge	#endif	#define huge#endif	/* !defined(MSC) || defined(NT) || defined(MAC) *//*	Nullify C keywords that are not supported by some compilers */#if defined(GCC)#if !defined(LINUX)  /* These two are already handled with latest GCC headers on LINUX */	#define volatile	#define signed	#define const#endif#elif defined(HP_C) && defined(__cplusplus)	#define signed#elif defined(SUN_C) && defined(__cplusplus)	#define signed#endif/*	Remove certain definitions if the Netware header files have defined	them previously, potentially in conflict with OUR definitions */#ifdef NLM	#undef BYTE	#undef WORD	#undef LONG#endif/*	Handle loading of os2def.h up-front, since everyone needs it. */#ifdef OS2	#ifndef APIENTRY		#include "os2def.h"		#include "bsedos.h"	#endif#endif/*	Same goes for NT include files */#ifdef NT	#ifndef _WINDEF_		#ifndef RC_INVOKED		/*	Save packing around inclusion of Microsoft headers, just to			protect ourselves against their failure to restore packing			if they change it.  This may not be needed anymore... */		#pragma pack(push, WinIncludes)		/*	Set packing to be 4, to temporarily workaround a bug in wincon.h			where Microsoft incorrectly assumes natural packing instead of			setting it explicitly. */		#pragma pack()		#endif		#undef PASCAL		#undef FAR		#undef NEAR		/*	Windows.h defines WINVER, but we seldom include windows.h			when using other windows headers.		*/		#ifndef WINVER		#define WINVER 0x0500		#endif		/*	Determine the processor type as required by the following Windows			includes */		#if !defined(_PPC_) && !defined(_ALPHA_) && !defined(_MIPS_) && !defined(_X86_) && defined(_M_IX86)		#define _X86_		#endif		#if !defined(_PPC_) && !defined(_ALPHA_) && !defined(_X86_) && !defined(_MIPS_) && defined(_M_MRX000)		#define _MIPS_		#endif		#if !defined(_PPC_) && !defined(_ALPHA_) && !defined(_X86_) && !defined(_MIPS_) && defined(_M_ALPHA)		#define _ALPHA_		#endif		#if !defined(_PPC_) && !defined(_ALPHA_) && !defined(_X86_) && !defined(_MIPS_) && defined(_M_PPC)		#define _PPC_		#endif		#include <stdarg.h>		#define NOMINMAX		#include <windef.h>		#undef NOMINMAX		#include <winbase.h>		#include <WinVer.h>		#ifndef RC_INVOKED		#pragma pack(pop, WinIncludes)		#endif	#endif#endif#if defined(MAC)#if defined(MAC_OSX)        #include <Carbon/Carbon.h>#else	#include <MacTypes.h>	/* Needed for basic "Handle", "Point", "Rect" typedefs */	#include <MacMemory.h>	/* Needed for BlockMove() define */#endif#endif/*	Determine what has been included BEFORE this module */#if defined(_INC_WINDOWS) /* WIN16 */ || defined(_WINDEF_) /* WIN32 */	#define WINDOWS_INCLUDED#endif#ifdef SEVERITY_NOERROR	#define OS2DEF_INCLUDED#endif/*	Define datatypes which are also defined by other include files */#ifndef FAR	#define FAR far#endif#ifndef NEAR	#define NEAR near#endif#ifndef PASCAL	#define PASCAL pascal#endif#if !defined(OS2DEF_INCLUDED) && !defined(WINDOWS_INCLUDED)	#define VOID void	typedef unsigned char BYTE;	#if defined(LONGIS64BIT)		typedef int LONG;	#else		typedef long LONG;	#endif	#if defined(UNIX)	typedef int BOOL;	#elif defined(OS2_2x)	typedef unsigned long BOOL;	#elif defined(OS2_1x)	typedef unsigned short BOOL;	#elif defined(DOSW16)	typedef int BOOL;	#else	typedef short BOOL;	#endif	#define LOBYTE(w)       ((BYTE)w)	#define HIBYTE(w)       (((WORD)w >> 8) & 0xff)#endif#ifndef OS2DEF_INCLUDED	#ifndef _WINDEF_   /* USHORT, ULONG and UCHAR are already defined in windef.h */	typedef unsigned short int USHORT;	#if defined(LONGIS64BIT)		typedef unsigned int ULONG;	#else		typedef unsigned long ULONG;	#endif	typedef unsigned char UCHAR;	#endif  /* _WINDEF_ */	#ifndef WINDOWS_INCLUDED	/* This is also defined in windows.h */		typedef unsigned int UINT;	#endif#endif/*	Define datatype which is used to represent a "resource file" */#ifndef HMODULE#if !defined(OS2)	/* OS2 already defines this */	#define HMODULE		HANDLE#endif#endif#if !defined(WINDOWS_INCLUDED)/*	These symbols/typedefs ARE COPIED from WINDOWS.H, and are the	ONLY symbols that should be defined in this section!  (This	is a help for modules that can't afford to include windows.h	and want to use a few of these helpful definitions. */	typedef unsigned short WORD;			/* WORD = unsigned 16 bit integer */	#if defined(LONGIS64BIT)		typedef unsigned int DWORD;			/* DWORD = unsigned 32 bit integer */	#else		typedef unsigned long DWORD;	#endif/*	Windows defines a HANDLE as unsigned int, but the Mac needs it to be	unsigned short. In C, both are equivalent, but C++ is pickier */#if defined(DOSW16)	typedef unsigned int HANDLE;	/* really a short, but compiler is picky */#elif defined(HANDLE_IS_32BITS)	typedef unsigned int HANDLE;	/* 32-bit HANDLEs */#else	typedef unsigned short HANDLE;#endif	#define LOWORD(l)       ((WORD)(DWORD)(l))	#define HIWORD(l)       ((WORD)(((DWORD)(l) >> 16) & 0xffff))#else	/* if WINDOWS_INCLUDED */	/*	TEMPORARY: Fix a bug in the standard Windows LOWORD macro (see		also a copy of it above), which produces a C compiler warning		regarding loss of segment portion of a pointer. */	#undef LOWORD	#define LOWORD(l)       ((WORD)(DWORD)(l))#endif/*	Define our Notes-specific global data types */#define FLAG unsigned					/* FLAG = 1-bit boolean value */										/* (Unsized, use ONLY in bitfields!) */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -