📄 target.h
字号:
#elif ARCH == ARCH_M88K#define ARCH_STR "Motorola 88xx0"#elif ARCH == ARCH_MIPS#define ARCH_STR "MIPS"#elif ARCH == ARCH_PARISC#define ARCH_STR "HP PA/RISC"#elif ARCH == ARCH_POWER#define ARCH_STR "IBM RS/6000"#elif ARCH == ARCH_POWERPC#define ARCH_STR "PowerPC"#elif ARCH == ARCH_SPARC#define ARCH_STR "SPARC"#else /* ARCH */#define ARCH_STR "Unknown"#endif /* ARCH *//* The processor word size. This is used to determine the size of pointers * and long integers on the target processor. */#define ENVIRON_ANY 0 /* no specific word size */#define ENVIRON_32 1 /* 32-bit */#define ENVIRON_64 2 /* 64-bit */#ifndef ENVIRON#if defined(HAVE_CONFIG_H) && defined(SIZEOF_VOID_P)#if SIZEOF_VOID_P == 4#define ENVIRON ENVIRON_32#elif SIZEOF_VOID_P == 8#define ENVIRON ENVIRON_64#else /* SIZEOF_VOID_P */#define ENVIRON ENVIRON_ANY#endif /* SIZEOF_VOID_P */#else /* HAVE_CONFIG_H && SIZEOF_VOID_P */#if ARCH == ARCH_ALPHA || ARCH == ARCH_IA64#define ENVIRON ENVIRON_64#else /* ARCH */#if SYSTEM == SYSTEM_IRIX#if defined(ABI64) || defined(_ABI64)#define ENVIRON ENVIRON_64#else /* ABI64 */#define ENVIRON ENVIRON_32#endif /* ABI64 */#elif SYSTEM == SYSTEM_SOLARIS#if defined(sparcv9) || defined(_sparcv9) || defined(__sparcv9) || \ defined(__sparcv9__)#define ENVIRON ENVIRON_64#else /* sparcv9 */#define ENVIRON ENVIRON_32#endif /* sparcv9 */#elif SYSTEM == SYSTEM_TRU64#if defined(arch64) || defined(_arch64) || defined(__arch64) || \ defined(__arch64__)#define ENVIRON ENVIRON_64#else /* arch64 */#define ENVIRON ENVIRON_32#endif /* arch64 */#else /* SYSTEM */#define ENVIRON ENVIRON_32#endif /* SYSTEM */#endif /* ARCH */#endif /* HAVE_CONFIG_H && SIZEOF_VOID_P */#endif /* ENVIRON *//* The string representation of the processor word size. */#if ENVIRON == ENVIRON_32#define ENVIRON_STR "32-bit"#elif ENVIRON == ENVIRON_64#define ENVIRON_STR "64-bit"#else /* ENVIRON */#define ENVIRON_STR "Unknown"#endif /* ENVIRON *//* The object file format. This can either specify an explicit file format * for executable files and shared libraries, or specify an object file access * library. */#define FORMAT_NONE 0 /* no symbol support */#define FORMAT_AOUT 1 /* a.out */#define FORMAT_COFF 2 /* COFF */#define FORMAT_XCOFF 3 /* XCOFF */#define FORMAT_ELF32 4 /* ELF32 */#define FORMAT_ELF64 5 /* ELF64 */#define FORMAT_BFD 6 /* GNU BFD */#define FORMAT_PE 7 /* Portable Executable */#ifndef FORMAT#if TARGET == TARGET_UNIX#if SYSTEM == SYSTEM_AIX#define FORMAT FORMAT_XCOFF#elif SYSTEM == SYSTEM_DGUX || SYSTEM == SYSTEM_DRSNX || \ SYSTEM == SYSTEM_DYNIX || SYSTEM == SYSTEM_IRIX || \ SYSTEM == SYSTEM_SINIX || SYSTEM == SYSTEM_SOLARIS || \ SYSTEM == SYSTEM_UNIXWARE#if ENVIRON == ENVIRON_64#define FORMAT FORMAT_ELF64#else /* ENVIRON */#define FORMAT FORMAT_ELF32#endif /* ENVIRON */#elif SYSTEM == SYSTEM_FREEBSD || SYSTEM == SYSTEM_NETBSD || \ SYSTEM == SYSTEM_OPENBSD || SYSTEM == SYSTEM_SUNOS#ifdef __ELF__#if ENVIRON == ENVIRON_64#define FORMAT FORMAT_ELF64#else /* ENVIRON */#define FORMAT FORMAT_ELF32#endif /* ENVIRON */#else /* __ELF__ */#define FORMAT FORMAT_AOUT#endif /* __ELF__ */#elif SYSTEM == SYSTEM_CYGWIN || SYSTEM == SYSTEM_HPUX || \ SYSTEM == SYSTEM_LINUX || SYSTEM == SYSTEM_LYNXOS || \ SYSTEM == SYSTEM_TRU64#define FORMAT FORMAT_BFD#else /* SYSTEM */#define FORMAT FORMAT_NONE#endif /* SYSTEM */#elif TARGET == TARGET_WINDOWS#ifdef __GNUC__#define FORMAT FORMAT_BFD#else /* __GNUC__ */#define FORMAT FORMAT_PE#endif /* __GNUC__ */#else /* TARGET */#if TARGET == TARGET_AMIGA && defined(__GNUC__)#define FORMAT FORMAT_BFD#else /* TARGET && __GNUC__ */#define FORMAT FORMAT_NONE#endif /* TARGET && __GNUC__ */#endif /* TARGET */#endif /* FORMAT *//* The string representation of the object file format. */#if FORMAT == FORMAT_AOUT#define FORMAT_STR "a.out"#elif FORMAT == FORMAT_COFF#define FORMAT_STR "COFF"#elif FORMAT == FORMAT_XCOFF#define FORMAT_STR "XCOFF"#elif FORMAT == FORMAT_ELF32#define FORMAT_STR "ELF32"#elif FORMAT == FORMAT_ELF64#define FORMAT_STR "ELF64"#elif FORMAT == FORMAT_BFD#define FORMAT_STR "BFD"#elif FORMAT == FORMAT_PE#define FORMAT_STR "PE"#else /* FORMAT */#define FORMAT_STR "Unknown"#endif /* FORMAT *//* The dynamic linker type. This is used to specify the method used to obtain * information about the shared libraries that a program requires when it is * running. */#define DYNLINK_NONE 0 /* no dynamic linker support */#define DYNLINK_AIX 1 /* AIX dynamic linker */#define DYNLINK_BSD 2 /* BSD dynamic linker */#define DYNLINK_HPUX 3 /* HP/UX dynamic linker */#define DYNLINK_IRIX 4 /* IRIX dynamic linker */#define DYNLINK_OSF 5 /* OSF dynamic linker */#define DYNLINK_SVR4 6 /* SVR4 dynamic linker */#define DYNLINK_WINDOWS 7 /* Windows dynamic linker */#ifndef DYNLINK#if TARGET == TARGET_UNIX#if SYSTEM == SYSTEM_AIX#define DYNLINK DYNLINK_AIX#elif SYSTEM == SYSTEM_CYGWIN#define DYNLINK DYNLINK_WINDOWS#elif SYSTEM == SYSTEM_DGUX || SYSTEM == SYSTEM_DRSNX || \ SYSTEM == SYSTEM_DYNIX || SYSTEM == SYSTEM_LINUX || \ SYSTEM == SYSTEM_SINIX || SYSTEM == SYSTEM_SOLARIS || \ SYSTEM == SYSTEM_UNIXWARE#define DYNLINK DYNLINK_SVR4#elif SYSTEM == SYSTEM_FREEBSD || SYSTEM == SYSTEM_NETBSD || \ SYSTEM == SYSTEM_OPENBSD || SYSTEM == SYSTEM_SUNOS#ifdef __ELF__#define DYNLINK DYNLINK_SVR4#else /* __ELF__ */#define DYNLINK DYNLINK_BSD#endif /* __ELF__ */#elif SYSTEM == SYSTEM_HPUX#define DYNLINK DYNLINK_HPUX#elif SYSTEM == SYSTEM_IRIX#define DYNLINK DYNLINK_IRIX#elif SYSTEM == SYSTEM_TRU64#define DYNLINK DYNLINK_OSF#else /* SYSTEM */#define DYNLINK DYNLINK_NONE#endif /* SYSTEM */#elif TARGET == TARGET_WINDOWS#define DYNLINK DYNLINK_WINDOWS#else /* TARGET */#define DYNLINK DYNLINK_NONE#endif /* TARGET */#endif /* DYNLINK *//* The string representation of the dynamic linker type. */#if DYNLINK == DYNLINK_AIX#define DYNLINK_STR "AIX"#elif DYNLINK == DYNLINK_BSD#define DYNLINK_STR "BSD"#elif DYNLINK == DYNLINK_HPUX#define DYNLINK_STR "HP/UX"#elif DYNLINK == DYNLINK_IRIX#define DYNLINK_STR "IRIX"#elif DYNLINK == DYNLINK_OSF#define DYNLINK_STR "OSF"#elif DYNLINK == DYNLINK_SVR4#define DYNLINK_STR "SVR4"#elif DYNLINK == DYNLINK_WINDOWS#define DYNLINK_STR "Windows"#else /* DYNLINK */#define DYNLINK_STR "Unknown"#endif /* DYNLINK *//* Target feature macros. Some systems require certain preprocessor macros * to be defined before non-standard definitions in system header files are * included. */#if TARGET == TARGET_UNIX#if SYSTEM != SYSTEM_FREEBSD && SYSTEM != SYSTEM_NETBSD && \ SYSTEM != SYSTEM_OPENBSD#ifndef _POSIX_SOURCE#define _POSIX_SOURCE 1#endif /* _POSIX_SOURCE */#ifndef _POSIX_C_SOURCE#define _POSIX_C_SOURCE 199506L#endif /* _POSIX_C_SOURCE */#endif /* SYSTEM */#if SYSTEM == SYSTEM_AIX#ifndef _ALL_SOURCE#define _ALL_SOURCE 1#endif /* _ALL_SOURCE */#elif SYSTEM == SYSTEM_DGUX#ifndef _DGUX_SOURCE#define _DGUX_SOURCE 1#endif /* _DGUX_SOURCE */#elif SYSTEM == SYSTEM_HPUX#ifndef _HPUX_SOURCE#define _HPUX_SOURCE 1#endif /* _HPUX_SOURCE */#elif SYSTEM == SYSTEM_IRIX#ifndef _SGI_SOURCE#define _SGI_SOURCE 1#endif /* _SGI_SOURCE */#elif SYSTEM == SYSTEM_LINUX#ifndef _GNU_SOURCE#define _GNU_SOURCE 1#endif /* _GNU_SOURCE */#elif SYSTEM == SYSTEM_SOLARIS#ifndef __EXTENSIONS__#define __EXTENSIONS__ 1#endif /* __EXTENSIONS__ */#elif SYSTEM == SYSTEM_TRU64#ifndef _OSF_SOURCE#define _OSF_SOURCE 1#endif /* _OSF_SOURCE */#ifndef _XOPEN_SOURCE_EXTENDED#define _XOPEN_SOURCE_EXTENDED 1#endif /* _XOPEN_SOURCE_EXTENDED */#endif /* SYSTEM */#endif /* TARGET */#endif /* MP_TARGET_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -