mirror of
https://github.com/reactos/reactos.git
synced 2024-08-30 15:18:33 +00:00
289 lines
5.3 KiB
C
289 lines
5.3 KiB
C
/* @(#)archdefs.h 1.14 13/07/23 Copyright 2006-2013 J. Schilling */
|
|
/*
|
|
* Processor, instruction set and OS architecture specific defines.
|
|
* The information is fetched from compiler predefinitions only.
|
|
*
|
|
* Copyright (c) 2006-2013 J. Schilling
|
|
*/
|
|
/*
|
|
* The contents of this file are subject to the terms of the
|
|
* Common Development and Distribution License, Version 1.0 only
|
|
* (the "License"). You may not use this file except in compliance
|
|
* with the License.
|
|
*
|
|
* See the file CDDL.Schily.txt in this distribution for details.
|
|
* A copy of the CDDL is also available via the Internet at
|
|
* http://www.opensource.org/licenses/cddl1.txt
|
|
*
|
|
* When distributing Covered Code, include this CDDL HEADER in each
|
|
* file and include the License file CDDL.Schily.txt from this distribution.
|
|
*/
|
|
|
|
#ifndef _SCHILY_ARCHDEFS_H
|
|
#define _SCHILY_ARCHDEFS_H
|
|
|
|
/*
|
|
* The code in this file only depends on compiler predefined macros.
|
|
* For this reason, it does not need to include schily/mconfig.h
|
|
*/
|
|
|
|
#if defined(sun) || defined(__sun) || defined(__sun__)
|
|
#ifndef __sun
|
|
#define __sun
|
|
#endif
|
|
#endif
|
|
|
|
#if defined(sun2)
|
|
#ifndef __mc68010
|
|
#define __mc68010
|
|
#endif
|
|
#endif
|
|
|
|
#if defined(mc68020) || defined(__mc68020) || defined(sun3)
|
|
#ifndef __mc68020
|
|
#define __mc68020
|
|
#endif
|
|
#endif
|
|
|
|
#if defined(__mc68010) || defined(__mc68020)
|
|
#ifndef __mc68000
|
|
#define __mc68000
|
|
#endif
|
|
#endif
|
|
|
|
#if defined(i386) || defined(__i386) || defined(__i386__) || defined(_M_IX86)
|
|
#ifndef __i386
|
|
#define __i386
|
|
#endif
|
|
#endif
|
|
|
|
#if defined(__amd64) || defined(__amd64__) || \
|
|
defined(__x86_64) || defined(__x86_64__) || defined(_M_AMD64)
|
|
#ifndef __amd64
|
|
#define __amd64
|
|
#endif
|
|
#endif
|
|
|
|
#if defined(__i386) || defined(__amd64)
|
|
#ifndef __x86
|
|
#define __x86
|
|
#endif
|
|
#endif
|
|
|
|
#if defined(sparc) || defined(__sparc) || defined(__sparc__)
|
|
#ifndef __sparc
|
|
#define __sparc
|
|
#endif
|
|
#endif
|
|
|
|
#if defined(__sparcv9) || defined(__sparcv9__)
|
|
#ifndef __sparc
|
|
#define __sparc
|
|
#endif
|
|
#ifndef __sparcv9
|
|
#define __sparcv9
|
|
#endif
|
|
#endif
|
|
|
|
#if defined(__sparc) && defined(__arch64__)
|
|
#ifndef __sparcv9
|
|
#define __sparcv9
|
|
#endif
|
|
#endif
|
|
|
|
#if defined(SOL2) || defined(SOL2) || \
|
|
defined(S5R4) || defined(__S5R4) || defined(SVR4)
|
|
# ifndef __SVR4
|
|
# define __SVR4
|
|
# endif
|
|
#endif
|
|
|
|
#if defined(sun2) || defined(sun3) || defined(__sun)
|
|
#ifndef __sun
|
|
#define __sun
|
|
#endif
|
|
#ifndef __GNUC__
|
|
#ifndef __SUNPRO_C
|
|
#ifdef __SVR4
|
|
#define __SUNPRO_C
|
|
#else
|
|
#define __SUN_C
|
|
#endif /* __SVR4 */
|
|
#endif /* !__SUNPRO_C */
|
|
#endif /* !__GNUC__ */
|
|
#endif /* __sun */
|
|
|
|
|
|
/*
|
|
* SunOS 4 specific defines
|
|
*/
|
|
#if defined(__sun) && !defined(__SVR4)
|
|
|
|
#define __SUNOS4
|
|
|
|
#if defined(__mc68000)
|
|
#define __SUNOS4_MC68000
|
|
#ifdef __GNUC__
|
|
#define __SUNOS4_MC68000_GCC32
|
|
#define __JS_ARCH_DEFINED
|
|
#endif
|
|
#ifdef __SUN_C
|
|
#define __SUNOS4_MC68000_CC32
|
|
#define __JS_ARCH_DEFINED
|
|
#endif
|
|
#endif /* __mc68000 */
|
|
|
|
#if defined(__sparc)
|
|
#define __SUNOS4_SPARC
|
|
#ifdef __GNUC__
|
|
#define __SUNOS4_SPARC_GCC32
|
|
#define __JS_ARCH_DEFINED
|
|
#endif
|
|
#if defined(__SUN_C) || defined(__SUNPRO_C)
|
|
#define __SUNOS4_SPARC_CC32
|
|
#define __JS_ARCH_DEFINED
|
|
#endif
|
|
#endif /* __sparc */
|
|
|
|
#endif /* SunOS 4 */
|
|
|
|
|
|
/*
|
|
* SunOS 5 specific defines
|
|
*/
|
|
#if defined(__sun) && defined(__SVR4)
|
|
|
|
#define __SUNOS5
|
|
|
|
#if defined(__sparc)
|
|
#ifdef __GNUC__
|
|
#ifdef __sparcv9
|
|
#define __SUNOS5_SPARC_GCC64
|
|
#else
|
|
#define __SUNOS5_SPARC_GCC32
|
|
#endif
|
|
#define __JS_ARCH_DEFINED
|
|
#endif
|
|
#if defined(__SUNPRO_C)
|
|
#ifdef __sparcv9
|
|
#define __SUNOS5_SPARC_CC64
|
|
#else
|
|
#define __SUNOS5_SPARC_CC32
|
|
#endif
|
|
#define __JS_ARCH_DEFINED
|
|
#endif
|
|
#endif /* __sparc */
|
|
|
|
#if defined(__x86)
|
|
#ifdef __GNUC__
|
|
#ifdef __amd64
|
|
#define __SUNOS5_X86_GCC64
|
|
#else
|
|
#define __SUNOS5_X86_GCC32
|
|
#endif
|
|
#define __JS_ARCH_DEFINED
|
|
#endif
|
|
#if defined(__SUNPRO_C)
|
|
#ifdef __amd64
|
|
#define __SUNOS5_X86_CC64
|
|
#else
|
|
#define __SUNOS5_X86_CC32
|
|
#endif
|
|
#define __JS_ARCH_DEFINED
|
|
#endif
|
|
#endif /* __x86 */
|
|
|
|
#endif /* SunOS 5 */
|
|
|
|
/*
|
|
* HP-UX specific defines
|
|
*/
|
|
#if defined(__hpux)
|
|
|
|
#if defined(__hppa)
|
|
#ifdef __GNUC__
|
|
#ifdef __LP64__ /* This may be wrong! */
|
|
#define __HPUX_HPPA_GCC64
|
|
#else
|
|
#define __HPUX_HPPA_GCC32
|
|
#endif
|
|
#define __JS_ARCH_DEFINED
|
|
#endif
|
|
#if !defined(__GNUC__)
|
|
#ifdef __LP64__
|
|
#define __HPUX_HPPA_CC64
|
|
#else
|
|
#define __HPUX_HPPA_CC32
|
|
#endif
|
|
#define __JS_ARCH_DEFINED
|
|
#endif
|
|
#endif /* __hppa */
|
|
|
|
#endif /* HP-UX */
|
|
|
|
/*
|
|
* Linux specific defines
|
|
*/
|
|
#if defined(__linux)
|
|
|
|
#if defined(__arm__)
|
|
#ifdef __GNUC__
|
|
#ifdef __ARM_ARCH_5TE__
|
|
#define __LINUX_ARMV5TEJL_GCC32
|
|
#define __JS_ARCH_DEFINED
|
|
#endif
|
|
#ifndef __JS_ARCH_DEFINED
|
|
#ifdef __ARM_ARCH_6__
|
|
#define __LINUX_ARMV6L_GCC32
|
|
#define __JS_ARCH_DEFINED
|
|
#endif
|
|
#endif
|
|
#ifndef __JS_ARCH_DEFINED
|
|
#ifdef __ARM_ARCH_5__
|
|
#define __LINUX_ARMV5L_GCC32
|
|
#define __JS_ARCH_DEFINED
|
|
#endif
|
|
#endif
|
|
#endif /* __GNUC__ */
|
|
#endif /* __arm__ */
|
|
|
|
#if defined(__i386__) || defined(i386)
|
|
#ifdef __GNUC__
|
|
#define __LINUX_I386_GCC32
|
|
#define __JS_ARCH_DEFINED
|
|
#endif
|
|
#endif /* __i386__ */
|
|
#if defined(__amd64__) || defined(__amd64)
|
|
#ifdef __GNUC__
|
|
#define __LINUX_amd64_GCC64
|
|
#define __JS_ARCH_DEFINED
|
|
#endif
|
|
#endif /* __amd64__ */
|
|
|
|
#endif /* Linux */
|
|
|
|
/*
|
|
* MS-WIN specific defines
|
|
*
|
|
* cl defines one of:
|
|
* _M_ALPHA
|
|
* _M_IX86
|
|
* _M_AMD64
|
|
* _M_M68K
|
|
* _M_PPC PPC in general
|
|
* _M_MPPC Power Macintosh
|
|
* _M_MRX000 Mips
|
|
* _M_IA64 Itanium
|
|
*/
|
|
#if defined(_MSC_VER) && (defined(_X86_) || defined(_M_IX86))
|
|
#define __MSWIN_X86_CL32
|
|
#define __JS_ARCH_DEFINED
|
|
#endif
|
|
|
|
#if defined(__CYGWIN32__) || defined(__CYGWIN__)
|
|
#define __CYGWIN_X86_GCC
|
|
#define __JS_ARCH_DEFINED
|
|
#endif
|
|
|
|
#endif /* _SCHILY_ARCHDEFS_H */
|