RNBDefs.h revision 24943d2ee8bfaa7cf5893e4709143924157a5c1e
1//===-- RNBDefs.h -----------------------------------------------*- C++ -*-===//
2//
3//                     The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9//
10//  Created by Greg Clayton on 12/14/07.
11//
12//===----------------------------------------------------------------------===//
13
14#ifndef __RNBDefs_h__
15#define __RNBDefs_h__
16
17#include "DNBDefs.h"
18
19#include <tr1/memory> // for std::tr1::shared_ptr
20
21extern "C" const unsigned char debugserverVersionString[];
22extern "C" const double debugserverVersionNumber;
23#define DEBUGSERVER_PROGRAM_NAME "debugserver"
24#define DEBUGSERVER_VERSION_STR debugserverVersionString
25#define DEBUGSERVER_VERSION_NUM debugserverVersionNumber
26
27#if defined (__i386__)
28
29#define RNB_ARCH    "i386"
30
31#elif defined (__x86_64__)
32
33#define RNB_ARCH    "x86_64"
34
35#elif defined (__ppc64__)
36
37#define RNB_ARCH    "ppc64"
38
39#elif defined (__powerpc__) || defined (__ppc__)
40
41#define RNB_ARCH    "ppc"
42
43#elif defined (__arm__)
44
45#define RNB_ARCH    "armv6"
46
47#else
48
49#error undefined architecture
50
51#endif
52
53class RNBRemote;
54typedef std::tr1::shared_ptr<RNBRemote> RNBRemoteSP;
55
56typedef enum
57{
58    rnb_success = 0,
59    rnb_err = 1,
60    rnb_not_connected = 2
61} rnb_err_t;
62
63// Log bits
64// reserve low bits for DNB
65#define LOG_RNB_MINIMAL     ((LOG_LO_USER) << 0)  // Minimal logging    (min verbosity)
66#define LOG_RNB_MEDIUM      ((LOG_LO_USER) << 1)  // Medium logging     (med verbosity)
67#define LOG_RNB_MAX         ((LOG_LO_USER) << 2)  // Max logging        (max verbosity)
68#define LOG_RNB_COMM        ((LOG_LO_USER) << 3)  // Log communications (RNBSocket)
69#define LOG_RNB_REMOTE      ((LOG_LO_USER) << 4)  // Log remote         (RNBRemote)
70#define LOG_RNB_EVENTS      ((LOG_LO_USER) << 5)  // Log events         (PThreadEvents)
71#define LOG_RNB_PROC        ((LOG_LO_USER) << 6)  // Log process state  (Process thread)
72#define LOG_RNB_PACKETS     ((LOG_LO_USER) << 7)  // Log gdb remote packets
73#define LOG_RNB_ALL         (~((LOG_LO_USER) - 1))
74#define LOG_RNB_DEFAULT     (LOG_RNB_ALL)
75
76extern RNBRemoteSP g_remoteSP;
77
78#endif // #ifndef __RNBDefs_h__
79