124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//===-- lldb-defines.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 10b344843f75ef893762c93fd0a22d2d45712ce74dGreg Clayton#ifndef LLDB_lldb_defines_h_ 11b344843f75ef893762c93fd0a22d2d45712ce74dGreg Clayton#define LLDB_lldb_defines_h_ 1224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 135f81547fd786584b10999c087528b323b5945896Eli Friedman#include "lldb/lldb-types.h" 1424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 1524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#if !defined(UINT32_MAX) 1624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner #define UINT32_MAX 4294967295U 1724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#endif 1824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 1924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#if !defined(UINT64_MAX) 2024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner #define UINT64_MAX 18446744073709551615ULL 2124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#endif 2224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 2324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//---------------------------------------------------------------------- 24123db408a6bc06614ec893040aaad84d8d0d16f9Greg Clayton// LLDB version 25123db408a6bc06614ec893040aaad84d8d0d16f9Greg Clayton// 26123db408a6bc06614ec893040aaad84d8d0d16f9Greg Clayton// A build script phase can modify this version number if needed. 27123db408a6bc06614ec893040aaad84d8d0d16f9Greg Clayton//---------------------------------------------------------------------- 28123db408a6bc06614ec893040aaad84d8d0d16f9Greg Clayton//#define LLDB_VERSION 296778c99d79ae1db2d3f40a9f07d9e8ffda161799Sean Callanan//#define LLDB_REVISION 306778c99d79ae1db2d3f40a9f07d9e8ffda161799Sean Callanan//#define LLDB_VERSION_STRING 31123db408a6bc06614ec893040aaad84d8d0d16f9Greg Clayton 32123db408a6bc06614ec893040aaad84d8d0d16f9Greg Clayton//---------------------------------------------------------------------- 33123db408a6bc06614ec893040aaad84d8d0d16f9Greg Clayton// LLDB defines 3424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//---------------------------------------------------------------------- 35d8c625380b56759fc3fef8b9cf0389ae1a07f44dGreg Clayton#define LLDB_GENERIC_ERROR UINT32_MAX 3624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 3724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//---------------------------------------------------------------------- 3824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner// Breakpoints 3924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//---------------------------------------------------------------------- 40d8c625380b56759fc3fef8b9cf0389ae1a07f44dGreg Clayton#define LLDB_INVALID_BREAK_ID 0 4124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#define LLDB_DEFAULT_BREAK_SIZE 0 4224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#define LLDB_BREAK_ID_IS_VALID(bid) ((bid) != (LLDB_INVALID_BREAK_ID)) 4324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#define LLDB_BREAK_ID_IS_INTERNAL(bid) ((bid) < 0) 4424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 4524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//---------------------------------------------------------------------- 4624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner// Watchpoints 4724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//---------------------------------------------------------------------- 48d8c625380b56759fc3fef8b9cf0389ae1a07f44dGreg Clayton#define LLDB_INVALID_WATCH_ID 0 4924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#define LLDB_WATCH_ID_IS_VALID(uid) ((uid) != (LLDB_INVALID_WATCH_ID)) 5024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#define LLDB_WATCH_TYPE_READ (1u << 0) 5124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#define LLDB_WATCH_TYPE_WRITE (1u << 1) 52be2f9090cf7d64a0f021cbc4036f4172baba1cd2Jim Ingham#define LLDB_WATCH_TYPE_IS_VALID(type) ((type | LLDB_WATCH_TYPE_READ) || (type | LLDB_WATCH_TYPE_WRITE)) 5324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 5424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//---------------------------------------------------------------------- 5524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner// Generic Register Numbers 5624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//---------------------------------------------------------------------- 5724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#define LLDB_REGNUM_GENERIC_PC 0 // Program Counter 5824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#define LLDB_REGNUM_GENERIC_SP 1 // Stack Pointer 5924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#define LLDB_REGNUM_GENERIC_FP 2 // Frame Pointer 6024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#define LLDB_REGNUM_GENERIC_RA 3 // Return Address 6124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#define LLDB_REGNUM_GENERIC_FLAGS 4 // Processor flags register 62997b1e82f098a8b748b490d1ae6d0bbe597a59d5Greg Clayton#define LLDB_REGNUM_GENERIC_ARG1 5 // The register that would contain pointer size or less argument 1 (if any) 63997b1e82f098a8b748b490d1ae6d0bbe597a59d5Greg Clayton#define LLDB_REGNUM_GENERIC_ARG2 6 // The register that would contain pointer size or less argument 2 (if any) 64997b1e82f098a8b748b490d1ae6d0bbe597a59d5Greg Clayton#define LLDB_REGNUM_GENERIC_ARG3 7 // The register that would contain pointer size or less argument 3 (if any) 65997b1e82f098a8b748b490d1ae6d0bbe597a59d5Greg Clayton#define LLDB_REGNUM_GENERIC_ARG4 8 // The register that would contain pointer size or less argument 4 (if any) 66997b1e82f098a8b748b490d1ae6d0bbe597a59d5Greg Clayton#define LLDB_REGNUM_GENERIC_ARG5 9 // The register that would contain pointer size or less argument 5 (if any) 67997b1e82f098a8b748b490d1ae6d0bbe597a59d5Greg Clayton#define LLDB_REGNUM_GENERIC_ARG6 10 // The register that would contain pointer size or less argument 6 (if any) 68997b1e82f098a8b748b490d1ae6d0bbe597a59d5Greg Clayton#define LLDB_REGNUM_GENERIC_ARG7 11 // The register that would contain pointer size or less argument 7 (if any) 69997b1e82f098a8b748b490d1ae6d0bbe597a59d5Greg Clayton#define LLDB_REGNUM_GENERIC_ARG8 12 // The register that would contain pointer size or less argument 8 (if any) 70997b1e82f098a8b748b490d1ae6d0bbe597a59d5Greg Clayton//--------------------------------------------------------------------- 7124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner/// Invalid value definitions 7224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//---------------------------------------------------------------------- 73d8c625380b56759fc3fef8b9cf0389ae1a07f44dGreg Clayton#define LLDB_INVALID_ADDRESS UINT64_MAX 74d8c625380b56759fc3fef8b9cf0389ae1a07f44dGreg Clayton#define LLDB_INVALID_INDEX32 UINT32_MAX 7558513667f6765aa8db13cdc4abd500340c1cac80Jim Ingham#define LLDB_INVALID_IVAR_OFFSET UINT32_MAX 760baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Clayton#define LLDB_INVALID_IMAGE_TOKEN UINT32_MAX 77d8c625380b56759fc3fef8b9cf0389ae1a07f44dGreg Clayton#define LLDB_INVALID_REGNUM UINT32_MAX 78444e35b5fdf15a25a427285650f06f1390e62c75Greg Clayton#define LLDB_INVALID_UID UINT64_MAX 79d8c625380b56759fc3fef8b9cf0389ae1a07f44dGreg Clayton#define LLDB_INVALID_PROCESS_ID 0 80d8c625380b56759fc3fef8b9cf0389ae1a07f44dGreg Clayton#define LLDB_INVALID_THREAD_ID 0 81d8c625380b56759fc3fef8b9cf0389ae1a07f44dGreg Clayton#define LLDB_INVALID_FRAME_ID UINT32_MAX 82d8c625380b56759fc3fef8b9cf0389ae1a07f44dGreg Clayton#define LLDB_INVALID_SIGNAL_NUMBER INT32_MAX 8336da2aa6dc5ad9994b638ed09eb81c44cc05540bGreg Clayton#define LLDB_INVALID_OFFSET UINT64_MAX // Must match max of lldb::offset_t 8424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 8524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//---------------------------------------------------------------------- 8624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner/// CPU Type defintions 8724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//---------------------------------------------------------------------- 8824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#define LLDB_ARCH_DEFAULT "systemArch" 8924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#define LLDB_ARCH_DEFAULT_32BIT "systemArch32" 9024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#define LLDB_ARCH_DEFAULT_64BIT "systemArch64" 9124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#define LLDB_INVALID_CPUTYPE (0xFFFFFFFEu) 9224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 9334e9a98dcff785b0693594b6d6753f560abf8be2Jim Ingham//---------------------------------------------------------------------- 9434e9a98dcff785b0693594b6d6753f560abf8be2Jim Ingham/// Option Set defintions 9534e9a98dcff785b0693594b6d6753f560abf8be2Jim Ingham//---------------------------------------------------------------------- 9634e9a98dcff785b0693594b6d6753f560abf8be2Jim Ingham// FIXME: I'm sure there's some #define magic that can create all 32 sets on the 9734e9a98dcff785b0693594b6d6753f560abf8be2Jim Ingham// fly. That would have the added benefit of making this unreadable. 9834e9a98dcff785b0693594b6d6753f560abf8be2Jim Ingham#define LLDB_MAX_NUM_OPTION_SETS 32 99137e5230e8dfb1287dd7c5eaa943a39078e1fd8dBenjamin Kramer#define LLDB_OPT_SET_ALL 0xFFFFFFFFU 100137e5230e8dfb1287dd7c5eaa943a39078e1fd8dBenjamin Kramer#define LLDB_OPT_SET_1 (1U << 0) 101137e5230e8dfb1287dd7c5eaa943a39078e1fd8dBenjamin Kramer#define LLDB_OPT_SET_2 (1U << 1) 102137e5230e8dfb1287dd7c5eaa943a39078e1fd8dBenjamin Kramer#define LLDB_OPT_SET_3 (1U << 2) 103137e5230e8dfb1287dd7c5eaa943a39078e1fd8dBenjamin Kramer#define LLDB_OPT_SET_4 (1U << 3) 104137e5230e8dfb1287dd7c5eaa943a39078e1fd8dBenjamin Kramer#define LLDB_OPT_SET_5 (1U << 4) 105137e5230e8dfb1287dd7c5eaa943a39078e1fd8dBenjamin Kramer#define LLDB_OPT_SET_6 (1U << 5) 106137e5230e8dfb1287dd7c5eaa943a39078e1fd8dBenjamin Kramer#define LLDB_OPT_SET_7 (1U << 6) 107137e5230e8dfb1287dd7c5eaa943a39078e1fd8dBenjamin Kramer#define LLDB_OPT_SET_8 (1U << 7) 108137e5230e8dfb1287dd7c5eaa943a39078e1fd8dBenjamin Kramer#define LLDB_OPT_SET_9 (1U << 8) 1094722b10307668368bf0f12fa6b8691e4f4cb5488Jim Ingham#define LLDB_OPT_SET_10 (1U << 9) 1106f4a115d1f0727f80124e2986382df202ffd3d5eJohnny Chen#define LLDB_OPT_SET_FROM_TO(A, B) (((1U << (B)) - 1) ^ (((1U << (A))-1) >> 1)) 11124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 11224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#if defined(__cplusplus) 11324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 11424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//---------------------------------------------------------------------- 11524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner/// @def DISALLOW_COPY_AND_ASSIGN(TypeName) 11624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner/// Macro definition for easily disallowing copy constructor and 11724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner/// assignment operators in C++ classes. 11824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//---------------------------------------------------------------------- 11924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#define DISALLOW_COPY_AND_ASSIGN(TypeName) \ 12024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner TypeName(const TypeName&); \ 12124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner const TypeName& operator=(const TypeName&) 12224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 12324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#endif // #if defined(__cplusplus) 12424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 125b344843f75ef893762c93fd0a22d2d45712ce74dGreg Clayton#endif // LLDB_lldb_defines_h_ 126