Chris Lattner | 30fdc8d | 2010-06-08 16:52:24 +0000 | [diff] [blame] | 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" |
Greg Clayton | 7b0992d | 2013-04-18 22:45:39 +0000 | [diff] [blame] | 18 | #include <memory> |
Chris Lattner | 30fdc8d | 2010-06-08 16:52:24 +0000 | [diff] [blame] | 19 | |
Kate Stone | b9c1b51 | 2016-09-06 20:57:50 +0000 | [diff] [blame] | 20 | #define CONCAT2(a, b) a##b |
| 21 | #define CONCAT(a, b) CONCAT2(a, b) |
Jason Molenda | 7039ae9 | 2016-06-21 03:39:39 +0000 | [diff] [blame] | 22 | #define STRINGIZE2(x) #x |
| 23 | #define STRINGIZE(x) STRINGIZE2(x) |
| 24 | |
Kate Stone | b9c1b51 | 2016-09-06 20:57:50 +0000 | [diff] [blame] | 25 | #if !defined(DEBUGSERVER_PROGRAM_SYMBOL) |
Jason Molenda | 7039ae9 | 2016-06-21 03:39:39 +0000 | [diff] [blame] | 26 | #define DEBUGSERVER_PROGRAM_SYMBOL debugserver |
| 27 | #endif |
| 28 | |
Kate Stone | b9c1b51 | 2016-09-06 20:57:50 +0000 | [diff] [blame] | 29 | #if !defined(DEBUGSERVER_PROGRAM_NAME) |
Jason Molenda | 7039ae9 | 2016-06-21 03:39:39 +0000 | [diff] [blame] | 30 | #define DEBUGSERVER_PROGRAM_NAME STRINGIZE(DEBUGSERVER_PROGRAM_SYMBOL) |
| 31 | #endif |
Daniel Malea | ec2f90c | 2013-08-09 16:29:10 +0000 | [diff] [blame] | 32 | |
| 33 | #ifndef DEBUGSERVER_VERSION_NUM |
Kate Stone | b9c1b51 | 2016-09-06 20:57:50 +0000 | [diff] [blame] | 34 | extern "C" const unsigned char CONCAT(DEBUGSERVER_PROGRAM_SYMBOL, |
| 35 | VersionString)[]; |
| 36 | #define DEBUGSERVER_VERSION_NUM \ |
| 37 | CONCAT(DEBUGSERVER_PROGRAM_SYMBOL, VersionNumber) |
Daniel Malea | ec2f90c | 2013-08-09 16:29:10 +0000 | [diff] [blame] | 38 | #endif |
| 39 | |
| 40 | #ifndef DEBUGSERVER_VERSION_STR |
Jason Molenda | 7039ae9 | 2016-06-21 03:39:39 +0000 | [diff] [blame] | 41 | extern "C" const double CONCAT(DEBUGSERVER_PROGRAM_SYMBOL, VersionNumber); |
Kate Stone | b9c1b51 | 2016-09-06 20:57:50 +0000 | [diff] [blame] | 42 | #define DEBUGSERVER_VERSION_STR \ |
| 43 | CONCAT(DEBUGSERVER_PROGRAM_SYMBOL, VersionString) |
Daniel Malea | ec2f90c | 2013-08-09 16:29:10 +0000 | [diff] [blame] | 44 | #endif |
Chris Lattner | 30fdc8d | 2010-06-08 16:52:24 +0000 | [diff] [blame] | 45 | |
Kate Stone | b9c1b51 | 2016-09-06 20:57:50 +0000 | [diff] [blame] | 46 | #if defined(__i386__) |
Chris Lattner | 30fdc8d | 2010-06-08 16:52:24 +0000 | [diff] [blame] | 47 | |
Kate Stone | b9c1b51 | 2016-09-06 20:57:50 +0000 | [diff] [blame] | 48 | #define RNB_ARCH "i386" |
Chris Lattner | 30fdc8d | 2010-06-08 16:52:24 +0000 | [diff] [blame] | 49 | |
Kate Stone | b9c1b51 | 2016-09-06 20:57:50 +0000 | [diff] [blame] | 50 | #elif defined(__x86_64__) |
Chris Lattner | 30fdc8d | 2010-06-08 16:52:24 +0000 | [diff] [blame] | 51 | |
Kate Stone | b9c1b51 | 2016-09-06 20:57:50 +0000 | [diff] [blame] | 52 | #define RNB_ARCH "x86_64" |
Chris Lattner | 30fdc8d | 2010-06-08 16:52:24 +0000 | [diff] [blame] | 53 | |
Kate Stone | b9c1b51 | 2016-09-06 20:57:50 +0000 | [diff] [blame] | 54 | #elif defined(__ppc64__) |
Chris Lattner | 30fdc8d | 2010-06-08 16:52:24 +0000 | [diff] [blame] | 55 | |
Kate Stone | b9c1b51 | 2016-09-06 20:57:50 +0000 | [diff] [blame] | 56 | #define RNB_ARCH "ppc64" |
Chris Lattner | 30fdc8d | 2010-06-08 16:52:24 +0000 | [diff] [blame] | 57 | |
Kate Stone | b9c1b51 | 2016-09-06 20:57:50 +0000 | [diff] [blame] | 58 | #elif defined(__powerpc__) || defined(__ppc__) |
Chris Lattner | 30fdc8d | 2010-06-08 16:52:24 +0000 | [diff] [blame] | 59 | |
Kate Stone | b9c1b51 | 2016-09-06 20:57:50 +0000 | [diff] [blame] | 60 | #define RNB_ARCH "ppc" |
Chris Lattner | 30fdc8d | 2010-06-08 16:52:24 +0000 | [diff] [blame] | 61 | |
Kate Stone | b9c1b51 | 2016-09-06 20:57:50 +0000 | [diff] [blame] | 62 | #elif defined(__arm64__) || defined(__aarch64__) |
Jason Molenda | a332978 | 2014-03-29 18:54:20 +0000 | [diff] [blame] | 63 | |
Kate Stone | b9c1b51 | 2016-09-06 20:57:50 +0000 | [diff] [blame] | 64 | #define RNB_ARCH "arm64" |
Jason Molenda | a332978 | 2014-03-29 18:54:20 +0000 | [diff] [blame] | 65 | |
Kate Stone | b9c1b51 | 2016-09-06 20:57:50 +0000 | [diff] [blame] | 66 | #elif defined(__arm__) |
Chris Lattner | 30fdc8d | 2010-06-08 16:52:24 +0000 | [diff] [blame] | 67 | |
Kate Stone | b9c1b51 | 2016-09-06 20:57:50 +0000 | [diff] [blame] | 68 | #define RNB_ARCH "armv7" |
Chris Lattner | 30fdc8d | 2010-06-08 16:52:24 +0000 | [diff] [blame] | 69 | |
| 70 | #else |
| 71 | |
| 72 | #error undefined architecture |
| 73 | |
| 74 | #endif |
| 75 | |
| 76 | class RNBRemote; |
Greg Clayton | 7b0992d | 2013-04-18 22:45:39 +0000 | [diff] [blame] | 77 | typedef std::shared_ptr<RNBRemote> RNBRemoteSP; |
Chris Lattner | 30fdc8d | 2010-06-08 16:52:24 +0000 | [diff] [blame] | 78 | |
Kate Stone | b9c1b51 | 2016-09-06 20:57:50 +0000 | [diff] [blame] | 79 | typedef enum { rnb_success = 0, rnb_err = 1, rnb_not_connected = 2 } rnb_err_t; |
Chris Lattner | 30fdc8d | 2010-06-08 16:52:24 +0000 | [diff] [blame] | 80 | |
| 81 | // Log bits |
| 82 | // reserve low bits for DNB |
Kate Stone | b9c1b51 | 2016-09-06 20:57:50 +0000 | [diff] [blame] | 83 | #define LOG_RNB_MINIMAL \ |
| 84 | ((LOG_LO_USER) << 0) // Minimal logging (min verbosity) |
| 85 | #define LOG_RNB_MEDIUM \ |
| 86 | ((LOG_LO_USER) << 1) // Medium logging (med verbosity) |
| 87 | #define LOG_RNB_MAX ((LOG_LO_USER) << 2) // Max logging (max verbosity) |
| 88 | #define LOG_RNB_COMM ((LOG_LO_USER) << 3) // Log communications (RNBSocket) |
| 89 | #define LOG_RNB_REMOTE ((LOG_LO_USER) << 4) // Log remote (RNBRemote) |
| 90 | #define LOG_RNB_EVENTS \ |
| 91 | ((LOG_LO_USER) << 5) // Log events (PThreadEvents) |
| 92 | #define LOG_RNB_PROC ((LOG_LO_USER) << 6) // Log process state (Process thread) |
| 93 | #define LOG_RNB_PACKETS ((LOG_LO_USER) << 7) // Log gdb remote packets |
| 94 | #define LOG_RNB_ALL (~((LOG_LO_USER)-1)) |
| 95 | #define LOG_RNB_DEFAULT (LOG_RNB_ALL) |
Chris Lattner | 30fdc8d | 2010-06-08 16:52:24 +0000 | [diff] [blame] | 96 | |
| 97 | extern RNBRemoteSP g_remoteSP; |
| 98 | |
| 99 | #endif // #ifndef __RNBDefs_h__ |