Fixes for VS 2008
[dyninst.git] / dynutil / h / util.h
1
2
3 #ifndef __UTIL_H__
4 #define __UTIL_H__
5
6 #include "dyntypes.h"
7 namespace Dyninst {
8
9 #if !defined(SYMTAB_EXPORT)
10   #if defined(_MSC_VER)
11     #if defined SYMTAB_LIB
12       #define SYMTAB_EXPORT __declspec(dllexport)
13     #else
14       #define SYMTAB_EXPORT __declspec(dllimport)
15     #endif
16   #else
17     #define SYMTAB_EXPORT
18   #endif
19 #endif
20
21 #if !defined(COMMON_EXPORT)
22   #if defined (_MSC_VER)
23     #if defined(COMMON_LIB)
24        #define COMMON_EXPORT __declspec(dllexport)
25     #else
26        #define COMMON_EXPORT __declspec(dllimport)   
27     #endif
28   #else
29     #define COMMON_EXPORT
30   #endif
31 #endif
32
33 #if !defined(INSTRUCTION_EXPORT)
34   #if defined(_MSC_VER)
35     #if defined(INSTRUCTION_LIB)
36       #define INSTRUCTION_EXPORT __declspec(dllexport)
37     #else
38       #define INSTRUCTION_EXPORT __declspec(dllimport)
39     #endif
40   #else
41     #define INSTRUCTION_EXPORT
42 #endif
43 #endif
44
45
46 COMMON_EXPORT unsigned addrHashCommon(const Address &addr);
47 COMMON_EXPORT unsigned ptrHash(const void * addr);
48 COMMON_EXPORT unsigned ptrHash(void * addr);
49
50 COMMON_EXPORT unsigned addrHash(const Address &addr);
51 COMMON_EXPORT unsigned addrHash4(const Address &addr);
52 COMMON_EXPORT unsigned addrHash16(const Address &addr);
53
54 COMMON_EXPORT unsigned stringhash(const std::string &s);
55 COMMON_EXPORT std::string itos(int);
56 COMMON_EXPORT std::string utos(unsigned);
57
58 #define WILDCARD_CHAR '?'
59 #define MULTIPLE_WILDCARD_CHAR '*'
60
61 COMMON_EXPORT bool wildcardEquiv(const std::string &us, const std::string &them, bool checkCase = false );
62
63 }
64 #endif