include/keima_util.h
author David Anderson <dvander@alliedmods.net>
Sat Nov 17 23:13:39 2012 -0800 (2012-11-17)
changeset 211 6c1cc50c4808
parent 198 fb52e868f928
permissions -rw-r--r--
Prep for ceval.
dvander@195
     1
/* vim: set ts=4 sw=4 tw=99 et:
dvander@195
     2
 *
dvander@64
     3
 * Copyright (C) 2004-2012 David Anderson
dvander@64
     4
 *
dvander@64
     5
 * This file is part of SourcePawn.
dvander@64
     6
 *
dvander@64
     7
 * SourcePawn is free software: you can redistribute it and/or modify it under
dvander@64
     8
 * the terms of the GNU General Public License as published by the Free
dvander@64
     9
 * Software Foundation, either version 3 of the License, or (at your option)
dvander@64
    10
 * any later version.
dvander@64
    11
 * 
dvander@64
    12
 * SourcePawn is distributed in the hope that it will be useful, but WITHOUT ANY
dvander@64
    13
 * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
dvander@64
    14
 * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
dvander@64
    15
 *
dvander@64
    16
 * You should have received a copy of the GNU General Public License along with
dvander@64
    17
 * SourcePawn. If not, see http://www.gnu.org/licenses/.
dvander@64
    18
 */
dvander@64
    19
#ifndef _include_keima_util_h_
dvander@64
    20
#define _include_keima_util_h_
dvander@64
    21
dvander@64
    22
#if defined(_MSC_VER)
dvander@64
    23
# if defined(KE_EXPORTING)
dvander@64
    24
#   define KE_EXPORT __declspec(dllexport)
dvander@64
    25
# elif defined(KE_IMPORTING)
dvander@64
    26
#   define KE_EXPORT __declspec(dllimport)
dvander@64
    27
# endif
dvander@64
    28
#endif
dvander@64
    29
dvander@195
    30
// 64-bit detection.
dvander@198
    31
#if defined(_M_X64) || defined(__64bit__) || defined(__x86_64__)
dvander@195
    32
# define KE_64BIT
dvander@195
    33
#endif
dvander@195
    34
dvander@195
    35
// 32-bit detection.
dvander@195
    36
#if defined(_M_IX86) || defined(__i386__)
dvander@195
    37
# if defined KE_64BIT
dvander@195
    38
#  error "Detected 32-bit and 64-bit!"
dvander@195
    39
# endif
dvander@195
    40
# define KE_32BIT
dvander@195
    41
#endif
dvander@195
    42
dvander@195
    43
#if !defined(KE_32BIT) && !defined(KE_64BIT)
dvander@195
    44
# error "Could not detect CPU type"
dvander@195
    45
#endif
dvander@195
    46
dvander@64
    47
#if !defined(KE_EXPORT)
dvander@64
    48
# define KE_EXPORT
dvander@64
    49
#endif
dvander@64
    50
dvander@105
    51
#if defined(_MSC_VER) && _MSC_VER < 1600
dvander@105
    52
typedef __int8 int8_t;
dvander@105
    53
typedef unsigned __int8 uint8_t;
dvander@105
    54
typedef __int16 int16_t;
dvander@105
    55
typedef unsigned __int16 uint16_t;
dvander@105
    56
typedef __int32 int32_t;
dvander@105
    57
typedef unsigned __int32 uint32_t;
dvander@105
    58
typedef __int64 int64_t;
dvander@105
    59
typedef unsigned __int64 uint64_t;
dvander@105
    60
#else
dvander@105
    61
# include <stdint.h>
dvander@105
    62
#endif
dvander@105
    63
dvander@64
    64
#endif // _include_keima_util_h_