124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//===-- RNBDefs.h -----------------------------------------------*- C++ -*-===//
224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//
324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//                     The LLVM Compiler Infrastructure
424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//
524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner// This file is distributed under the University of Illinois Open Source
624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner// License. See LICENSE.TXT for details.
724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//
824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//===----------------------------------------------------------------------===//
924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//
1024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//  Created by Greg Clayton on 12/14/07.
1124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//
1224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//===----------------------------------------------------------------------===//
1324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
1424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#ifndef __RNBDefs_h__
1524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#define __RNBDefs_h__
1624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
1724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#include "DNBDefs.h"
18102b2c2681c9a830afe25bfea35557421905e42cGreg Clayton#include <memory>
1924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
2024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerextern "C" const unsigned char debugserverVersionString[];
2124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerextern "C" const double debugserverVersionNumber;
2224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#define DEBUGSERVER_PROGRAM_NAME "debugserver"
2324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#define DEBUGSERVER_VERSION_STR debugserverVersionString
2424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#define DEBUGSERVER_VERSION_NUM debugserverVersionNumber
2524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
2624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#if defined (__i386__)
2724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
2824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#define RNB_ARCH    "i386"
2924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
3024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#elif defined (__x86_64__)
3124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
3224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#define RNB_ARCH    "x86_64"
3324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
3424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#elif defined (__ppc64__)
3524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
3624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#define RNB_ARCH    "ppc64"
3724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
3824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#elif defined (__powerpc__) || defined (__ppc__)
3924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
4024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#define RNB_ARCH    "ppc"
4124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
4224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#elif defined (__arm__)
4324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
449a5bbd2a14cacac731424f7a253f6cc16b22c10aJason Molenda#define RNB_ARCH    "armv7"
4524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
4624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#else
4724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
4824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#error undefined architecture
4924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
5024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#endif
5124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
5224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass RNBRemote;
53102b2c2681c9a830afe25bfea35557421905e42cGreg Claytontypedef std::shared_ptr<RNBRemote> RNBRemoteSP;
5424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
5524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnertypedef enum
5624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner{
5724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    rnb_success = 0,
5824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    rnb_err = 1,
5924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    rnb_not_connected = 2
6024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner} rnb_err_t;
6124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
6224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner// Log bits
6324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner// reserve low bits for DNB
6424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#define LOG_RNB_MINIMAL     ((LOG_LO_USER) << 0)  // Minimal logging    (min verbosity)
6524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#define LOG_RNB_MEDIUM      ((LOG_LO_USER) << 1)  // Medium logging     (med verbosity)
6624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#define LOG_RNB_MAX         ((LOG_LO_USER) << 2)  // Max logging        (max verbosity)
6724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#define LOG_RNB_COMM        ((LOG_LO_USER) << 3)  // Log communications (RNBSocket)
6824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#define LOG_RNB_REMOTE      ((LOG_LO_USER) << 4)  // Log remote         (RNBRemote)
6924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#define LOG_RNB_EVENTS      ((LOG_LO_USER) << 5)  // Log events         (PThreadEvents)
7024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#define LOG_RNB_PROC        ((LOG_LO_USER) << 6)  // Log process state  (Process thread)
7124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#define LOG_RNB_PACKETS     ((LOG_LO_USER) << 7)  // Log gdb remote packets
7224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#define LOG_RNB_ALL         (~((LOG_LO_USER) - 1))
7324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#define LOG_RNB_DEFAULT     (LOG_RNB_ALL)
7424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
7524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerextern RNBRemoteSP g_remoteSP;
7624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
7724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#endif // #ifndef __RNBDefs_h__
78