cscg24-guacamole

CSCG 2024 Challenge 'Guacamole Mashup'
git clone https://git.sinitax.com/sinitax/cscg24-guacamole
Log | Files | Refs | sfeed.txt

platform.h (5366B)


      1/**
      2 * WinPR: Windows Portable Runtime
      3 * Platform-Specific Definitions
      4 *
      5 * Copyright 2012 Marc-Andre Moreau <marcandre.moreau@gmail.com>
      6 *
      7 * Licensed under the Apache License, Version 2.0 (the "License");
      8 * you may not use this file except in compliance with the License.
      9 * You may obtain a copy of the License at
     10 *
     11 *     http://www.apache.org/licenses/LICENSE-2.0
     12 *
     13 * Unless required by applicable law or agreed to in writing, software
     14 * distributed under the License is distributed on an "AS IS" BASIS,
     15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     16 * See the License for the specific language governing permissions and
     17 * limitations under the License.
     18 */
     19
     20#ifndef WINPR_PLATFORM_H
     21#define WINPR_PLATFORM_H
     22
     23#include <stdlib.h>
     24
     25#include <winpr/wtypes.h>
     26
     27/*
     28 * Processor Architectures:
     29 * http://sourceforge.net/p/predef/wiki/Architectures/
     30 *
     31 * Visual Studio Predefined Macros:
     32 * http://msdn.microsoft.com/en-ca/library/vstudio/b0084kay.aspx
     33 */
     34
     35/* Intel x86 (_M_IX86) */
     36
     37#if defined(i386) || defined(__i386) || defined(__i386__) || defined(__i486__) ||   \
     38    defined(__i586__) || defined(__i686__) || defined(__X86__) || defined(_X86_) || \
     39    defined(__I86__) || defined(__IA32__) || defined(__THW_INTEL__) || defined(__INTEL__)
     40#ifndef _M_IX86
     41#define _M_IX86 1
     42#endif
     43#endif
     44
     45/* AMD64 (_M_AMD64) */
     46
     47#if defined(__amd64) || defined(__amd64__) || defined(__x86_64) || defined(__x86_64__) || \
     48    defined(_M_X64)
     49#ifndef _M_AMD64
     50#define _M_AMD64 1
     51#endif
     52#endif
     53
     54/* Intel x86 or AMD64 (_M_IX86_AMD64) */
     55
     56#if defined(_M_IX86) || defined(_M_AMD64)
     57#ifndef _M_IX86_AMD64
     58#define _M_IX86_AMD64 1
     59#endif
     60#endif
     61
     62/* ARM (_M_ARM) */
     63
     64#if defined(__arm__) || defined(__thumb__) || defined(__TARGET_ARCH_ARM) || \
     65    defined(__TARGET_ARCH_THUMB)
     66#ifndef _M_ARM
     67#define _M_ARM 1
     68#endif
     69#endif
     70
     71/* ARM64 (_M_ARM64) */
     72
     73#if defined(__aarch64__)
     74#ifndef _M_ARM64
     75#define _M_ARM64 1
     76#endif
     77#endif
     78
     79/* MIPS (_M_MIPS) */
     80
     81#if defined(mips) || defined(__mips) || defined(__mips__) || defined(__MIPS__)
     82#ifndef _M_MIPS
     83#define _M_MIPS 1
     84#endif
     85#endif
     86
     87/* MIPS64 (_M_MIPS64) */
     88
     89#if defined(mips64) || defined(__mips64) || defined(__mips64__) || defined(__MIPS64__)
     90#ifndef _M_MIPS64
     91#define _M_MIPS64 1
     92#endif
     93#endif
     94
     95/* PowerPC (_M_PPC) */
     96
     97#if defined(__ppc__) || defined(__powerpc) || defined(__powerpc__) || defined(__POWERPC__) || \
     98    defined(_ARCH_PPC)
     99#ifndef _M_PPC
    100#define _M_PPC 1
    101#endif
    102#endif
    103
    104/* Intel Itanium (_M_IA64) */
    105
    106#if defined(__ia64) || defined(__ia64__) || defined(_IA64) || defined(__IA64__)
    107#ifndef _M_IA64
    108#define _M_IA64 1
    109#endif
    110#endif
    111
    112/* Alpha (_M_ALPHA) */
    113
    114#if defined(__alpha) || defined(__alpha__)
    115#ifndef _M_ALPHA
    116#define _M_ALPHA 1
    117#endif
    118#endif
    119
    120/* SPARC (_M_SPARC) */
    121
    122#if defined(__sparc) || defined(__sparc__)
    123#ifndef _M_SPARC
    124#define _M_SPARC 1
    125#endif
    126#endif
    127
    128/**
    129 * Operating Systems:
    130 * http://sourceforge.net/p/predef/wiki/OperatingSystems/
    131 */
    132
    133/* Windows (_WIN32) */
    134
    135/* WinRT (_WINRT) */
    136
    137#if defined(WINAPI_FAMILY)
    138#if (WINAPI_FAMILY == WINAPI_FAMILY_APP)
    139#ifndef _WINRT
    140#define _WINRT 1
    141#endif
    142#endif
    143#endif
    144
    145#if defined(__cplusplus_winrt)
    146#ifndef _WINRT
    147#define _WINRT 1
    148#endif
    149#endif
    150
    151/* Linux (__linux__) */
    152
    153#if defined(linux) || defined(__linux)
    154#ifndef __linux__
    155#define __linux__ 1
    156#endif
    157#endif
    158
    159/* GNU/Linux (__gnu_linux__) */
    160
    161/* Apple Platforms (iOS, Mac OS X) */
    162
    163#if (defined(__APPLE__) && defined(__MACH__))
    164
    165#include <TargetConditionals.h>
    166
    167#if (TARGET_OS_IPHONE == 1) || (TARGET_IPHONE_SIMULATOR == 1)
    168
    169/* iOS (__IOS__) */
    170
    171#ifndef __IOS__
    172#define __IOS__ 1
    173#endif
    174
    175#elif (TARGET_OS_MAC == 1)
    176
    177/* Mac OS X (__MACOSX__) */
    178
    179#ifndef __MACOSX__
    180#define __MACOSX__ 1
    181#endif
    182
    183#endif
    184#endif
    185
    186/* Android (__ANDROID__) */
    187
    188/* Cygwin (__CYGWIN__) */
    189
    190/* FreeBSD (__FreeBSD__) */
    191
    192/* NetBSD (__NetBSD__) */
    193
    194/* OpenBSD (__OpenBSD__) */
    195
    196/* DragonFly (__DragonFly__) */
    197
    198/* Solaris (__sun) */
    199
    200#if defined(sun)
    201#ifndef __sun
    202#define __sun 1
    203#endif
    204#endif
    205
    206/* IRIX (__sgi) */
    207
    208#if defined(sgi)
    209#ifndef __sgi
    210#define __sgi 1
    211#endif
    212#endif
    213
    214/* AIX (_AIX) */
    215
    216#if defined(__TOS_AIX__)
    217#ifndef _AIX
    218#define _AIX 1
    219#endif
    220#endif
    221
    222/* HP-UX (__hpux) */
    223
    224#if defined(hpux) || defined(_hpux)
    225#ifndef __hpux
    226#define __hpux 1
    227#endif
    228#endif
    229
    230/* BeOS (__BEOS__) */
    231
    232/* QNX (__QNXNTO__) */
    233
    234/**
    235 * Endianness:
    236 * http://sourceforge.net/p/predef/wiki/Endianness/
    237 */
    238
    239#if defined(__gnu_linux__)
    240#include <endian.h>
    241#endif
    242
    243#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || \
    244    defined(__DragonFly__) || defined(__APPLE__)
    245#include <sys/param.h>
    246#endif
    247
    248/* Big-Endian */
    249
    250#ifdef __BYTE_ORDER
    251
    252#if (__BYTE_ORDER == __BIG_ENDIAN)
    253#ifndef __BIG_ENDIAN__
    254#define __BIG_ENDIAN__ 1
    255#endif
    256#endif
    257
    258#else
    259
    260#if defined(__ARMEB__) || defined(__THUMBEB__) || defined(__AARCH64EB__) || defined(_MIPSEB) || \
    261    defined(__MIPSEB) || defined(__MIPSEB__)
    262#ifndef __BIG_ENDIAN__
    263#define __BIG_ENDIAN__ 1
    264#endif
    265#endif
    266
    267#endif /* __BYTE_ORDER */
    268
    269/* Little-Endian */
    270
    271#ifdef __BYTE_ORDER
    272
    273#if (__BYTE_ORDER == __LITTLE_ENDIAN)
    274#ifndef __LITTLE_ENDIAN__
    275#define __LITTLE_ENDIAN__ 1
    276#endif
    277#endif
    278
    279#else
    280
    281#if defined(__ARMEL__) || defined(__THUMBEL__) || defined(__AARCH64EL__) || defined(_MIPSEL) || \
    282    defined(__MIPSEL) || defined(__MIPSEL__)
    283#ifndef __LITTLE_ENDIAN__
    284#define __LITTLE_ENDIAN__ 1
    285#endif
    286#endif
    287
    288#endif /* __BYTE_ORDER */
    289
    290#endif /* WINPR_PLATFORM_H */