libvex_basictypes.h revision b32f58018498ea2225959b0ba11c18f0c433deef
15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*---------------------------------------------------------------*/
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*--- begin                               libvex_basictypes.h ---*/
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*---------------------------------------------------------------*/
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*
7a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)   This file is part of Valgrind, a dynamic binary instrumentation
8a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)   framework.
95d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
105d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)   Copyright (C) 2004-2011 OpenWorks LLP
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      info@open-works.net
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   This program is free software; you can redistribute it and/or
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   modify it under the terms of the GNU General Public License as
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   published by the Free Software Foundation; either version 2 of the
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   License, or (at your option) any later version.
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
18a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)   This program is distributed in the hope that it will be useful, but
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   WITHOUT ANY WARRANTY; without even the implied warranty of
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   General Public License for more details.
22a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   You should have received a copy of the GNU General Public License
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   along with this program; if not, write to the Free Software
25a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   02110-1301, USA.
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   The GNU General Public License is contained in the file COPYING.
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   Neither the names of the U.S. Department of Energy nor the
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   University of California nor the names of its contributors may be
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   used to endorse or promote products derived from this software
335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   without prior written permission.
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*/
355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef __LIBVEX_BASICTYPES_H
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define __LIBVEX_BASICTYPES_H
385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* It is important that the sizes of the following data types (on the
405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   host) are as stated.  LibVEX_Init therefore checks these at
415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   startup. */
425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* Always 8 bits. */
445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef  unsigned char   UChar;
455d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)typedef    signed char   Char;
46a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)typedef           char   HChar; /* signfulness depends on host */
475d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                                /* Only to be used for printf etc
485d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                                   format strings */
49a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
50a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)/* Always 16 bits. */
51a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)typedef  unsigned short  UShort;
525d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)typedef    signed short  Short;
535d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
545d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)/* Always 32 bits. */
555d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)typedef  unsigned int    UInt;
565d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)typedef    signed int    Int;
575d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
585d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)/* Always 64 bits. */
59a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)typedef  unsigned long long int   ULong;
605d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)typedef    signed long long int   Long;
615d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
625d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)/* Always 128 bits. */
635d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)typedef  UInt  U128[4];
645d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
655d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)/* A union for doing 128-bit vector primitives conveniently. */
665d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)typedef
675d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)   union {
68a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)      UChar  w8[16];
695d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)      UShort w16[8];
705d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)      UInt   w32[4];
715d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)      ULong  w64[2];
725d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)   }
735d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)   V128;
745d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
755d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)/* Floating point. */
7623730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)typedef  float   Float;    /* IEEE754 single-precision (32-bit) value */
775d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)typedef  double  Double;   /* IEEE754 double-precision (64-bit) value */
785d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
795d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)/* Bool is always 8 bits. */
8023730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)typedef  unsigned char  Bool;
8123730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)#define  True   ((Bool)1)
825d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#define  False  ((Bool)0)
835d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
845d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)/* Use this to coerce the result of a C comparison to a Bool.  This is
8523730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)   useful when compiling with Intel icc with ultra-paranoid
8623730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)   compilation flags (-Wall). */
875d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)static inline Bool toBool ( Int x ) {
8823730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)   Int r = (x == 0) ? False : True;
895d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)   return (Bool)r;
90c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch}
91c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdochstatic inline UChar toUChar ( Int x ) {
92c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch   x &= 0xFF;
93c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch   return (UChar)x;
94c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch}
95c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdochstatic inline HChar toHChar ( Int x ) {
96c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch   x &= 0xFF;
97c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch   return (HChar)x;
98c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch}
99c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdochstatic inline UShort toUShort ( Int x ) {
100c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch   x &= 0xFFFF;
1015d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)   return (UShort)x;
10223730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)}
1035d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)static inline Short toShort ( Int x ) {
1045d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)   x &= 0xFFFF;
1055d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)   return (Short)x;
10623730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)}
10723730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)static inline UInt toUInt ( Long x ) {
10823730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)   x &= 0xFFFFFFFFLL;
10923730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)   return (UInt)x;
110c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch}
1115d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
1125d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)/* 32/64 bit addresses. */
1135d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)typedef  UInt      Addr32;
1145d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)typedef  ULong     Addr64;
1155d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
1165d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)/* Something which has the same size as void* on the host.  That is,
1175d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)   it is 32 bits on a 32-bit host and 64 bits on a 64-bit host, and so
11823730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)   it can safely be coerced to and from a pointer type on the host
11923730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)   machine. */
120c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdochtypedef  unsigned long HWord;
121c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch
1225d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
123a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)/* This is so useful it should be visible absolutely everywhere. */
124c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch#if !defined(offsetof)
1255d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#   define offsetof(type,memb) ((Int)(HWord)&((type*)0)->memb)
1265d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#endif
127a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
128a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
12923730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)/* We need to know the host word size in order to write Ptr_to_ULong
13023730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)   and ULong_to_Ptr in a way that doesn't cause compilers to complain.
131c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch   These functions allow us to cast pointers to and from 64-bit
1325d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)   integers without complaints from compilers, regardless of the host
1335d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)   word size.
1345d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
1355d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)   Also set up VEX_REGPARM.
1365d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)*/
1375d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
1385d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#undef VEX_HOST_WORDSIZE
1395d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#undef VEX_REGPARM
1405d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
1415d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)/* The following 4 work OK for Linux. */
1425d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#if defined(__x86_64__)
1435d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#   define VEX_HOST_WORDSIZE 8
1445d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#   define VEX_REGPARM(_n) /* */
1455d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
1465d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#elif defined(__i386__)
1475d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#   define VEX_HOST_WORDSIZE 4
1485d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#   define VEX_REGPARM(_n) __attribute__((regparm(_n)))
1495d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
1505d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#elif defined(__powerpc__) && defined(__powerpc64__)
1515d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#   define VEX_HOST_WORDSIZE 8
1525d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#   define VEX_REGPARM(_n) /* */
1535d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
1545d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#elif defined(__powerpc__) && !defined(__powerpc64__)
1555d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#   define VEX_HOST_WORDSIZE 4
1565d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#   define VEX_REGPARM(_n) /* */
1575d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
1585d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#elif defined(__arm__)
1595d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#   define VEX_HOST_WORDSIZE 4
1605d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#   define VEX_REGPARM(_n) /* */
1615d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
16223730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)#elif defined(_AIX) && !defined(__64BIT__)
1635d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#   define VEX_HOST_WORDSIZE 4
1645d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#   define VEX_REGPARM(_n) /* */
1655d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
1665d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#elif defined(_AIX) && defined(__64BIT__)
1675d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#   define VEX_HOST_WORDSIZE 8
1685d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#   define VEX_REGPARM(_n) /* */
16923730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)
17023730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)#elif defined(__s390x__)
17123730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)#   define VEX_HOST_WORDSIZE 8
17223730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)#   define VEX_REGPARM(_n) /* */
17323730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)
17423730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)#else
17523730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)#   error "Vex: Fatal: Can't establish the host architecture"
1765d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#endif
1775d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
1785d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
1795d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#if VEX_HOST_WORDSIZE == 8
1805d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)   static inline ULong Ptr_to_ULong ( void* p ) {
1815d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)      return (ULong)p;
1825d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)   }
183a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)   static inline void* ULong_to_Ptr ( ULong n ) {
184a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)      return (void*)n;
1855d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)   }
1865d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#elif VEX_HOST_WORDSIZE == 4
18723730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)   static inline ULong Ptr_to_ULong ( void* p ) {
1885d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)      UInt w = (UInt)p;
1895d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)      return (ULong)w;
1905d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)   }
1915d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)   static inline void* ULong_to_Ptr ( ULong n ) {
1925d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)      UInt w = (UInt)n;
193a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)      return (void*)w;
1945d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)   }
1955d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#else
1965d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#   error "Vex: Fatal: Can't define  Ptr_to_ULong / ULong_to_Ptr"
1975d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#endif
1985d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
1995d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
2005d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#endif /* ndef __LIBVEX_BASICTYPES_H */
2015d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
2025d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)/*---------------------------------------------------------------*/
2035d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)/*---                                     libvex_basictypes.h ---*/
2045d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)/*---------------------------------------------------------------*/
2055d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)