blob: f603d3d22a66058f75a1edd5cb71e924bedc5b17 [file] [log] [blame]
Chris Lattner30fdc8d2010-06-08 16:52:24 +00001//===-- 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__