lldb-defines.h revision 609237174ea7894f36e0af1bdb333eade79aedb7
1561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes//===-- lldb-defines.h ------------------------------------------*- C++ -*-===// 2561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes// 3561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes// The LLVM Compiler Infrastructure 4561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes// 5561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes// This file is distributed under the University of Illinois Open Source 6561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes// License. See LICENSE.TXT for details. 7561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes// 8561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes//===----------------------------------------------------------------------===// 9561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 10561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes#ifndef LLDB_lldb_defines_h_ 11561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes#define LLDB_lldb_defines_h_ 12561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 13561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes#include "lldb/lldb-types.h" 14561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 15561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes#if !defined(UINT32_MAX) 16561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes #define UINT32_MAX 4294967295U 17561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes#endif 18561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 198d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath#if !defined(UINT64_MAX) 208d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath #define UINT64_MAX 18446744073709551615ULL 21561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes#endif 22561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 23561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes//---------------------------------------------------------------------- 24561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes// LLDB version 25561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes// 26561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes// A build script phase can modify this version number if needed. 27561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes//---------------------------------------------------------------------- 28561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes//#define LLDB_VERSION 29561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 30561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes//---------------------------------------------------------------------- 31561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes// LLDB defines 32561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes//---------------------------------------------------------------------- 33561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes#define LLDB_GENERIC_ERROR UINT32_MAX 34561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 35561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes//---------------------------------------------------------------------- 36561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes// Breakpoints 378d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath//---------------------------------------------------------------------- 38561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes#define LLDB_INVALID_BREAK_ID 0 39561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes#define LLDB_DEFAULT_BREAK_SIZE 0 40561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes#define LLDB_BREAK_ID_IS_VALID(bid) ((bid) != (LLDB_INVALID_BREAK_ID)) 41561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes#define LLDB_BREAK_ID_IS_INTERNAL(bid) ((bid) < 0) 42561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 43561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes//---------------------------------------------------------------------- 44561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes// Watchpoints 45561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes//---------------------------------------------------------------------- 46561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes#define LLDB_INVALID_WATCH_ID 0 47561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes#define LLDB_WATCH_ID_IS_VALID(uid) ((uid) != (LLDB_INVALID_WATCH_ID)) 48561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes#define LLDB_WATCH_TYPE_READ (1u << 0) 49561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes#define LLDB_WATCH_TYPE_WRITE (1u << 1) 50561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 51561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes//---------------------------------------------------------------------- 52561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes// Generic Register Numbers 538d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath//---------------------------------------------------------------------- 54561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes#define LLDB_REGNUM_GENERIC_PC 0 // Program Counter 55561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes#define LLDB_REGNUM_GENERIC_SP 1 // Stack Pointer 56561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes#define LLDB_REGNUM_GENERIC_FP 2 // Frame Pointer 57561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes#define LLDB_REGNUM_GENERIC_RA 3 // Return Address 58561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes#define LLDB_REGNUM_GENERIC_FLAGS 4 // Processor flags register 59561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes#define LLDB_REGNUM_GENERIC_ARG1 5 // The register that would contain pointer size or less argument 1 (if any) 60561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes#define LLDB_REGNUM_GENERIC_ARG2 6 // The register that would contain pointer size or less argument 2 (if any) 61561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes#define LLDB_REGNUM_GENERIC_ARG3 7 // The register that would contain pointer size or less argument 3 (if any) 62561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes#define LLDB_REGNUM_GENERIC_ARG4 8 // The register that would contain pointer size or less argument 4 (if any) 63561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes#define LLDB_REGNUM_GENERIC_ARG5 9 // The register that would contain pointer size or less argument 5 (if any) 64561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes#define LLDB_REGNUM_GENERIC_ARG6 10 // The register that would contain pointer size or less argument 6 (if any) 65561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes#define LLDB_REGNUM_GENERIC_ARG7 11 // The register that would contain pointer size or less argument 7 (if any) 66561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes#define LLDB_REGNUM_GENERIC_ARG8 12 // The register that would contain pointer size or less argument 8 (if any) 67561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes//--------------------------------------------------------------------- 68561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes/// Invalid value definitions 698d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath//---------------------------------------------------------------------- 708d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath#define LLDB_INVALID_ADDRESS UINT64_MAX 71561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes#define LLDB_INVALID_INDEX32 UINT32_MAX 72561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes#define LLDB_INVALID_IVAR_OFFSET UINT32_MAX 73561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes#define LLDB_INVALID_IMAGE_TOKEN UINT32_MAX 74561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes#define LLDB_INVALID_REGNUM UINT32_MAX 75561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes#define LLDB_INVALID_UID UINT64_MAX 768d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath#define LLDB_INVALID_PROCESS_ID 0 77561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes#define LLDB_INVALID_THREAD_ID 0 78561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes#define LLDB_INVALID_FRAME_ID UINT32_MAX 798d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath#define LLDB_INVALID_SIGNAL_NUMBER INT32_MAX 80561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 81561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes//---------------------------------------------------------------------- 82561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes/// CPU Type defintions 83561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes//---------------------------------------------------------------------- 84561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes#define LLDB_ARCH_DEFAULT "systemArch" 85561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes#define LLDB_ARCH_DEFAULT_32BIT "systemArch32" 86561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes#define LLDB_ARCH_DEFAULT_64BIT "systemArch64" 87561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes#define LLDB_INVALID_CPUTYPE (0xFFFFFFFEu) 88561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 89561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes//---------------------------------------------------------------------- 90561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes/// Option Set defintions 91561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes//---------------------------------------------------------------------- 92561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes// FIXME: I'm sure there's some #define magic that can create all 32 sets on the 93561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes// fly. That would have the added benefit of making this unreadable. 94561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes#define LLDB_MAX_NUM_OPTION_SETS 32 95561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes#define LLDB_OPT_SET_ALL 0xFFFFFFFFU 96561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes#define LLDB_OPT_SET_1 (1U << 0) 97561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes#define LLDB_OPT_SET_2 (1U << 1) 98561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes#define LLDB_OPT_SET_3 (1U << 2) 99561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes#define LLDB_OPT_SET_4 (1U << 3) 100561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes#define LLDB_OPT_SET_5 (1U << 4) 101561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes#define LLDB_OPT_SET_6 (1U << 5) 1028d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath#define LLDB_OPT_SET_7 (1U << 6) 1038d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath#define LLDB_OPT_SET_8 (1U << 7) 1048d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath#define LLDB_OPT_SET_9 (1U << 8) 1058d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath#define LLDB_OPT_SET_10 (1U << 9) 1068d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath#define LLDB_OPT_SET_FROM(A, B) (((1U << (B)) - 1) ^ (1U << ((A)-1) - 1)) 1078d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 1088d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath#if defined(__cplusplus) 1098d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 1108d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath//---------------------------------------------------------------------- 1118d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath/// @def DISALLOW_COPY_AND_ASSIGN(TypeName) 1128d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath/// Macro definition for easily disallowing copy constructor and 1138d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath/// assignment operators in C++ classes. 1148d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath//---------------------------------------------------------------------- 1158d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath#define DISALLOW_COPY_AND_ASSIGN(TypeName) \ 1168d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath TypeName(const TypeName&); \ 1178d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath const TypeName& operator=(const TypeName&) 1188d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 1198d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath#endif // #if defined(__cplusplus) 1208d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 1218d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath#endif // LLDB_lldb_defines_h_ 1228d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath