udis86sx/udis86/libudis86/udint.h
author Jan Vrany <jan.vrany@fit.cvut.cz>
Tue, 14 Jun 2016 22:40:22 +0100
changeset 21 7d99b51b4784
parent 0 e4a716697bef
permissions -rw-r--r--
Build files for udis86 regenerated using newer autotools ...in order to support building under MSYS2 environment.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
e4a716697bef Added sources of udis86 1.7.2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     1
/* udis86 - libudis86/udint.h -- definitions for internal use only
e4a716697bef Added sources of udis86 1.7.2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     2
 * 
e4a716697bef Added sources of udis86 1.7.2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     3
 * Copyright (c) 2002-2009 Vivek Thampi
e4a716697bef Added sources of udis86 1.7.2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     4
 * All rights reserved.
e4a716697bef Added sources of udis86 1.7.2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     5
 * 
e4a716697bef Added sources of udis86 1.7.2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     6
 * Redistribution and use in source and binary forms, with or without modification, 
e4a716697bef Added sources of udis86 1.7.2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     7
 * are permitted provided that the following conditions are met:
e4a716697bef Added sources of udis86 1.7.2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     8
 * 
e4a716697bef Added sources of udis86 1.7.2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     9
 *     * Redistributions of source code must retain the above copyright notice, 
e4a716697bef Added sources of udis86 1.7.2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    10
 *       this list of conditions and the following disclaimer.
e4a716697bef Added sources of udis86 1.7.2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    11
 *     * Redistributions in binary form must reproduce the above copyright notice, 
e4a716697bef Added sources of udis86 1.7.2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    12
 *       this list of conditions and the following disclaimer in the documentation 
e4a716697bef Added sources of udis86 1.7.2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    13
 *       and/or other materials provided with the distribution.
e4a716697bef Added sources of udis86 1.7.2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    14
 * 
e4a716697bef Added sources of udis86 1.7.2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    15
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 
e4a716697bef Added sources of udis86 1.7.2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    16
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 
e4a716697bef Added sources of udis86 1.7.2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    17
 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 
e4a716697bef Added sources of udis86 1.7.2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    18
 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR 
e4a716697bef Added sources of udis86 1.7.2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    19
 * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 
e4a716697bef Added sources of udis86 1.7.2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    20
 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 
e4a716697bef Added sources of udis86 1.7.2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    21
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
e4a716697bef Added sources of udis86 1.7.2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    22
 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
e4a716697bef Added sources of udis86 1.7.2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    23
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 
e4a716697bef Added sources of udis86 1.7.2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    24
 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
e4a716697bef Added sources of udis86 1.7.2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    25
 */
e4a716697bef Added sources of udis86 1.7.2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    26
#ifndef _UDINT_H_
e4a716697bef Added sources of udis86 1.7.2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    27
#define _UDINT_H_
e4a716697bef Added sources of udis86 1.7.2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    28
e4a716697bef Added sources of udis86 1.7.2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    29
#ifdef HAVE_CONFIG_H
e4a716697bef Added sources of udis86 1.7.2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    30
# include <config.h>
e4a716697bef Added sources of udis86 1.7.2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    31
#endif /* HAVE_CONFIG_H */
e4a716697bef Added sources of udis86 1.7.2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    32
e4a716697bef Added sources of udis86 1.7.2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    33
#if defined(UD_DEBUG) && HAVE_ASSERT_H
e4a716697bef Added sources of udis86 1.7.2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    34
# include <assert.h>
e4a716697bef Added sources of udis86 1.7.2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    35
# define UD_ASSERT(_x) assert(_x)
e4a716697bef Added sources of udis86 1.7.2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    36
#else
e4a716697bef Added sources of udis86 1.7.2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    37
# define UD_ASSERT(_x)
e4a716697bef Added sources of udis86 1.7.2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    38
#endif /* !HAVE_ASSERT_H */
e4a716697bef Added sources of udis86 1.7.2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    39
e4a716697bef Added sources of udis86 1.7.2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    40
#if defined(UD_DEBUG)
e4a716697bef Added sources of udis86 1.7.2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    41
  #define UDERR(u, msg) \
e4a716697bef Added sources of udis86 1.7.2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    42
    do { \
e4a716697bef Added sources of udis86 1.7.2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    43
      (u)->error = 1; \
e4a716697bef Added sources of udis86 1.7.2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    44
      fprintf(stderr, "decode-error: %s:%d: %s", \
e4a716697bef Added sources of udis86 1.7.2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    45
              __FILE__, __LINE__, (msg)); \
e4a716697bef Added sources of udis86 1.7.2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    46
    } while (0)
e4a716697bef Added sources of udis86 1.7.2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    47
#else
e4a716697bef Added sources of udis86 1.7.2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    48
  #define UDERR(u, m) \
e4a716697bef Added sources of udis86 1.7.2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    49
    do { \
e4a716697bef Added sources of udis86 1.7.2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    50
      (u)->error = 1; \
e4a716697bef Added sources of udis86 1.7.2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    51
    } while (0)
e4a716697bef Added sources of udis86 1.7.2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    52
#endif /* !LOGERR */
e4a716697bef Added sources of udis86 1.7.2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    53
e4a716697bef Added sources of udis86 1.7.2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    54
#define UD_RETURN_ON_ERROR(u) \
e4a716697bef Added sources of udis86 1.7.2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    55
  do { \
e4a716697bef Added sources of udis86 1.7.2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    56
    if ((u)->error != 0) { \
e4a716697bef Added sources of udis86 1.7.2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    57
      return (u)->error; \
e4a716697bef Added sources of udis86 1.7.2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    58
    } \
e4a716697bef Added sources of udis86 1.7.2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    59
  } while (0)
e4a716697bef Added sources of udis86 1.7.2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    60
e4a716697bef Added sources of udis86 1.7.2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    61
#define UD_RETURN_WITH_ERROR(u, m) \
e4a716697bef Added sources of udis86 1.7.2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    62
  do { \
e4a716697bef Added sources of udis86 1.7.2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    63
    UDERR(u, m); \
e4a716697bef Added sources of udis86 1.7.2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    64
    return (u)->error; \
e4a716697bef Added sources of udis86 1.7.2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    65
  } while (0)
e4a716697bef Added sources of udis86 1.7.2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    66
e4a716697bef Added sources of udis86 1.7.2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    67
#ifndef __UD_STANDALONE__
e4a716697bef Added sources of udis86 1.7.2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    68
# define UD_NON_STANDALONE(x) x
e4a716697bef Added sources of udis86 1.7.2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    69
#else
e4a716697bef Added sources of udis86 1.7.2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    70
# define UD_NON_STANDALONE(x)
e4a716697bef Added sources of udis86 1.7.2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    71
#endif
e4a716697bef Added sources of udis86 1.7.2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    72
e4a716697bef Added sources of udis86 1.7.2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    73
/* printf formatting int64 specifier */
e4a716697bef Added sources of udis86 1.7.2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    74
#ifdef FMT64
e4a716697bef Added sources of udis86 1.7.2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    75
# undef FMT64
e4a716697bef Added sources of udis86 1.7.2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    76
#endif
e4a716697bef Added sources of udis86 1.7.2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    77
#if defined(_MSC_VER) || defined(__BORLANDC__)
e4a716697bef Added sources of udis86 1.7.2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    78
# define FMT64 "I64"
e4a716697bef Added sources of udis86 1.7.2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    79
#else
e4a716697bef Added sources of udis86 1.7.2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    80
# if defined(__APPLE__)
e4a716697bef Added sources of udis86 1.7.2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    81
#  define FMT64 "ll"
e4a716697bef Added sources of udis86 1.7.2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    82
# elif defined(__amd64__) || defined(__x86_64__)
e4a716697bef Added sources of udis86 1.7.2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    83
#  define FMT64 "l"
e4a716697bef Added sources of udis86 1.7.2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    84
# else 
e4a716697bef Added sources of udis86 1.7.2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    85
#  define FMT64 "ll"
e4a716697bef Added sources of udis86 1.7.2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    86
# endif /* !x64 */
e4a716697bef Added sources of udis86 1.7.2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    87
#endif
e4a716697bef Added sources of udis86 1.7.2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    88
e4a716697bef Added sources of udis86 1.7.2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    89
#endif /* _UDINT_H_ */