windows build fix ... Also get rid of common/h/Types.h
[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(DLLEXPORT)
10 #if defined (_MSC_VER)
11    /* If we're on Windows, we need to explicetely export these functions: */
12       #if defined(DLL_BUILD)
13          #define DLLEXPORT __declspec(dllexport)
14       #else
15          #define DLLEXPORT __declspec(dllimport)   
16       #endif
17 #else
18       #define DLLEXPORT
19 #endif
20 #endif
21
22 #if !defined(DLLEXPORT_COMMON)
23 #if defined (_MSC_VER)
24 /* If we're on Windows, we need to explicetely export these functions: */
25    #if defined(DLL_BUILD)
26       #define DLLEXPORT_COMMON __declspec(dllexport)
27    #else
28       #define DLLEXPORT_COMMON __declspec(dllimport)   
29    #endif
30 #else
31    #define DLLEXPORT_COMMON
32 #endif
33 #endif
34
35
36 DLLEXPORT_COMMON unsigned addrHashCommon(const Address &addr);
37 DLLEXPORT_COMMON unsigned ptrHash(const void * addr);
38 DLLEXPORT_COMMON unsigned ptrHash(void * addr);
39
40 DLLEXPORT_COMMON unsigned addrHash(const Address &addr);
41 DLLEXPORT_COMMON unsigned addrHash4(const Address &addr);
42 DLLEXPORT_COMMON unsigned addrHash16(const Address &addr);
43
44 DLLEXPORT_COMMON unsigned hash(const std::string &s);
45 DLLEXPORT_COMMON std::string itos(int);
46 DLLEXPORT_COMMON std::string utos(unsigned);
47
48 #define WILDCARD_CHAR '?'
49 #define MULTIPLE_WILDCARD_CHAR '*'
50
51 DLLEXPORT_COMMON bool wildcardEquiv(const std::string &us, const std::string &them, bool checkCase = false );
52
53 }
54 #endif