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-- |
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_ */ |