1//===- MinidumpConstants.def - Iteration over minidump constants-*- C++ -*-===// 2// 3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4// See https://llvm.org/LICENSE.txt for license information. 5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6// 7//===----------------------------------------------------------------------===// 8 9#if !(defined HANDLE_MDMP_STREAM_TYPE || defined HANDLE_MDMP_ARCH || \ 10 defined HANDLE_MDMP_PLATFORM) 11#error "Missing HANDLE_MDMP definition" 12#endif 13 14#ifndef HANDLE_MDMP_STREAM_TYPE 15#define HANDLE_MDMP_STREAM_TYPE(CODE, NAME) 16#endif 17 18#ifndef HANDLE_MDMP_ARCH 19#define HANDLE_MDMP_ARCH(CODE, NAME) 20#endif 21 22#ifndef HANDLE_MDMP_PLATFORM 23#define HANDLE_MDMP_PLATFORM(CODE, NAME) 24#endif 25 26HANDLE_MDMP_STREAM_TYPE(0x0003, ThreadList) 27HANDLE_MDMP_STREAM_TYPE(0x0004, ModuleList) 28HANDLE_MDMP_STREAM_TYPE(0x0005, MemoryList) 29HANDLE_MDMP_STREAM_TYPE(0x0006, Exception) 30HANDLE_MDMP_STREAM_TYPE(0x0007, SystemInfo) 31HANDLE_MDMP_STREAM_TYPE(0x0008, ThreadExList) 32HANDLE_MDMP_STREAM_TYPE(0x0009, Memory64List) 33HANDLE_MDMP_STREAM_TYPE(0x000a, CommentA) 34HANDLE_MDMP_STREAM_TYPE(0x000b, CommentW) 35HANDLE_MDMP_STREAM_TYPE(0x000c, HandleData) 36HANDLE_MDMP_STREAM_TYPE(0x000d, FunctionTable) 37HANDLE_MDMP_STREAM_TYPE(0x000e, UnloadedModuleList) 38HANDLE_MDMP_STREAM_TYPE(0x000f, MiscInfo) 39HANDLE_MDMP_STREAM_TYPE(0x0010, MemoryInfoList) 40HANDLE_MDMP_STREAM_TYPE(0x0011, ThreadInfoList) 41HANDLE_MDMP_STREAM_TYPE(0x0012, HandleOperationList) 42HANDLE_MDMP_STREAM_TYPE(0x0013, Token) 43HANDLE_MDMP_STREAM_TYPE(0x0014, JavascriptData) 44HANDLE_MDMP_STREAM_TYPE(0x0015, SystemMemoryInfo) 45HANDLE_MDMP_STREAM_TYPE(0x0016, ProcessVMCounters) 46// Breakpad extension types. 0x4767 = "Gg" 47HANDLE_MDMP_STREAM_TYPE(0x47670001, BreakpadInfo) 48HANDLE_MDMP_STREAM_TYPE(0x47670002, AssertionInfo) 49// These are additional minidump stream values which are specific to the linux 50// breakpad implementation. 51HANDLE_MDMP_STREAM_TYPE(0x47670003, LinuxCPUInfo) // /proc/cpuinfo 52HANDLE_MDMP_STREAM_TYPE(0x47670004, LinuxProcStatus) // /proc/$x/status 53HANDLE_MDMP_STREAM_TYPE(0x47670005, LinuxLSBRelease) // /etc/lsb-release 54HANDLE_MDMP_STREAM_TYPE(0x47670006, LinuxCMDLine) // /proc/$x/cmdline 55HANDLE_MDMP_STREAM_TYPE(0x47670007, LinuxEnviron) // /proc/$x/environ 56HANDLE_MDMP_STREAM_TYPE(0x47670008, LinuxAuxv) // /proc/$x/auxv 57HANDLE_MDMP_STREAM_TYPE(0x47670009, LinuxMaps) // /proc/$x/maps 58HANDLE_MDMP_STREAM_TYPE(0x4767000A, LinuxDSODebug) 59HANDLE_MDMP_STREAM_TYPE(0x4767000B, LinuxProcStat) // /proc/$x/stat 60HANDLE_MDMP_STREAM_TYPE(0x4767000C, LinuxProcUptime) // uptime 61HANDLE_MDMP_STREAM_TYPE(0x4767000D, LinuxProcFD) // /proc/$x/fd 62// Facebook-defined stream types 63HANDLE_MDMP_STREAM_TYPE(0xFACE1CA7, FacebookLogcat) 64HANDLE_MDMP_STREAM_TYPE(0xFACECAFA, FacebookAppCustomData) 65HANDLE_MDMP_STREAM_TYPE(0xFACECAFB, FacebookBuildID) 66HANDLE_MDMP_STREAM_TYPE(0xFACECAFC, FacebookAppVersionName) 67HANDLE_MDMP_STREAM_TYPE(0xFACECAFD, FacebookJavaStack) 68HANDLE_MDMP_STREAM_TYPE(0xFACECAFE, FacebookDalvikInfo) 69HANDLE_MDMP_STREAM_TYPE(0xFACECAFF, FacebookUnwindSymbols) 70HANDLE_MDMP_STREAM_TYPE(0xFACECB00, FacebookDumpErrorLog) 71HANDLE_MDMP_STREAM_TYPE(0xFACECCCC, FacebookAppStateLog) 72HANDLE_MDMP_STREAM_TYPE(0xFACEDEAD, FacebookAbortReason) 73HANDLE_MDMP_STREAM_TYPE(0xFACEE000, FacebookThreadName) 74 75HANDLE_MDMP_ARCH(0x0000, X86) // PROCESSOR_ARCHITECTURE_INTEL 76HANDLE_MDMP_ARCH(0x0001, MIPS) // PROCESSOR_ARCHITECTURE_MIPS 77HANDLE_MDMP_ARCH(0x0002, Alpha) // PROCESSOR_ARCHITECTURE_ALPHA 78HANDLE_MDMP_ARCH(0x0003, PPC) // PROCESSOR_ARCHITECTURE_PPC 79HANDLE_MDMP_ARCH(0x0004, SHX) // PROCESSOR_ARCHITECTURE_SHX (Super-H) 80HANDLE_MDMP_ARCH(0x0005, ARM) // PROCESSOR_ARCHITECTURE_ARM 81HANDLE_MDMP_ARCH(0x0006, IA64) // PROCESSOR_ARCHITECTURE_IA64 82HANDLE_MDMP_ARCH(0x0007, Alpha64) // PROCESSOR_ARCHITECTURE_ALPHA64 83HANDLE_MDMP_ARCH(0x0008, MSIL) // PROCESSOR_ARCHITECTURE_MSIL 84HANDLE_MDMP_ARCH(0x0009, AMD64) // PROCESSOR_ARCHITECTURE_AMD64 85HANDLE_MDMP_ARCH(0x000a, X86Win64) // PROCESSOR_ARCHITECTURE_IA32_ON_WIN64 86HANDLE_MDMP_ARCH(0x8001, SPARC) // Breakpad-defined value for SPARC 87HANDLE_MDMP_ARCH(0x8002, PPC64) // Breakpad-defined value for PPC64 88HANDLE_MDMP_ARCH(0x8003, ARM64) // Breakpad-defined value for ARM64 89HANDLE_MDMP_ARCH(0x8004, MIPS64) // Breakpad-defined value for MIPS64 90 91HANDLE_MDMP_PLATFORM(0x0000, Win32S) // Win32 on Windows 3.1 92HANDLE_MDMP_PLATFORM(0x0001, Win32Windows) // Windows 95-98-Me 93HANDLE_MDMP_PLATFORM(0x0002, Win32NT) // Windows NT, 2000+ 94HANDLE_MDMP_PLATFORM(0x0003, Win32CE) // Windows CE, Windows Mobile, "Handheld" 95// Breakpad-defined values. 96HANDLE_MDMP_PLATFORM(0x8000, Unix) // Generic Unix-ish 97HANDLE_MDMP_PLATFORM(0x8101, MacOSX) // Mac OS X/Darwin 98HANDLE_MDMP_PLATFORM(0x8102, IOS) // iOS 99HANDLE_MDMP_PLATFORM(0x8201, Linux) // Linux 100HANDLE_MDMP_PLATFORM(0x8202, Solaris) // Solaris 101HANDLE_MDMP_PLATFORM(0x8203, Android) // Android 102HANDLE_MDMP_PLATFORM(0x8204, PS3) // PS3 103HANDLE_MDMP_PLATFORM(0x8205, NaCl) // Native Client (NaCl) 104 105#undef HANDLE_MDMP_STREAM_TYPE 106#undef HANDLE_MDMP_ARCH 107#undef HANDLE_MDMP_PLATFORM 108