1//===-- SafeMachO.h -----------------------------------*- 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#ifndef LLDB_HOST_SAFEMACHO_H
9#define LLDB_HOST_SAFEMACHO_H
10
11// This header file is required to work around collisions between the defines
12// in mach/machine.h, and enum members of the same name in llvm's MachO.h. If
13// you want to use llvm/Support/MachO.h, use this file instead. The caveats
14// are: 1) You can only use the MachO.h enums, you can't use the defines. That
15// won't make a difference since the values
16// are the same.
17// 2) If you need any header file that relies on mach/machine.h, you must
18// include that first. 3) This isn't a total solution, it doesn't undef every
19// define that MachO.h has borrowed from various system headers,
20// only the ones that come from mach/machine.h because that is the one we
21// ended up pulling in from various places.
22//
23
24#undef CPU_ARCH_MASK
25#undef CPU_ARCH_ABI64
26#undef CPU_ARCH_ABI64_32
27
28#undef CPU_TYPE_ANY
29#undef CPU_TYPE_X86
30#undef CPU_TYPE_I386
31#undef CPU_TYPE_X86_64
32#undef CPU_TYPE_MC98000
33#undef CPU_TYPE_ARM
34#undef CPU_TYPE_ARM64
35#undef CPU_TYPE_ARM64_32
36#undef CPU_TYPE_SPARC
37#undef CPU_TYPE_POWERPC
38#undef CPU_TYPE_POWERPC64
39
40#undef CPU_SUBTYPE_MASK
41#undef CPU_SUBTYPE_LIB64
42
43#undef CPU_SUBTYPE_MULTIPLE
44
45#undef CPU_SUBTYPE_I386_ALL
46#undef CPU_SUBTYPE_386
47#undef CPU_SUBTYPE_486
48#undef CPU_SUBTYPE_486SX
49#undef CPU_SUBTYPE_586
50#undef CPU_SUBTYPE_PENT
51#undef CPU_SUBTYPE_PENTPRO
52#undef CPU_SUBTYPE_PENTII_M3
53#undef CPU_SUBTYPE_PENTII_M5
54#undef CPU_SUBTYPE_CELERON
55#undef CPU_SUBTYPE_CELERON_MOBILE
56#undef CPU_SUBTYPE_PENTIUM_3
57#undef CPU_SUBTYPE_PENTIUM_3_M
58#undef CPU_SUBTYPE_PENTIUM_3_XEON
59#undef CPU_SUBTYPE_PENTIUM_M
60#undef CPU_SUBTYPE_PENTIUM_4
61#undef CPU_SUBTYPE_PENTIUM_4_M
62#undef CPU_SUBTYPE_ITANIUM
63#undef CPU_SUBTYPE_ITANIUM_2
64#undef CPU_SUBTYPE_XEON
65#undef CPU_SUBTYPE_XEON_MP
66
67#undef CPU_SUBTYPE_X86_ALL
68#undef CPU_SUBTYPE_X86_64_ALL
69#undef CPU_SUBTYPE_X86_ARCH1
70#undef CPU_SUBTYPE_X86_64_H
71
72#undef CPU_SUBTYPE_INTEL
73#undef CPU_SUBTYPE_INTEL_FAMILY
74#undef CPU_SUBTYPE_INTEL_FAMILY_MAX
75#undef CPU_SUBTYPE_INTEL_MODEL
76#undef CPU_SUBTYPE_INTEL_MODEL_ALL
77
78#undef CPU_SUBTYPE_ARM
79#undef CPU_SUBTYPE_ARM_ALL
80#undef CPU_SUBTYPE_ARM_V4T
81#undef CPU_SUBTYPE_ARM_V6
82#undef CPU_SUBTYPE_ARM_V5
83#undef CPU_SUBTYPE_ARM_V5TEJ
84#undef CPU_SUBTYPE_ARM_XSCALE
85#undef CPU_SUBTYPE_ARM_V7
86
87#undef CPU_SUBTYPE_ARM_V7S
88#undef CPU_SUBTYPE_ARM_V7K
89#undef CPU_SUBTYPE_ARM_V6M
90#undef CPU_SUBTYPE_ARM_V7M
91#undef CPU_SUBTYPE_ARM_V7EM
92
93#undef CPU_SUBTYPE_ARM64E
94#undef CPU_SUBTYPE_ARM64_32_V8
95#undef CPU_SUBTYPE_ARM64_V8
96#undef CPU_SUBTYPE_ARM64_ALL
97
98#undef CPU_SUBTYPE_SPARC_ALL
99
100#undef CPU_SUBTYPE_POWERPC
101#undef CPU_SUBTYPE_POWERPC_ALL
102#undef CPU_SUBTYPE_POWERPC_601
103#undef CPU_SUBTYPE_POWERPC_602
104#undef CPU_SUBTYPE_POWERPC_603
105#undef CPU_SUBTYPE_POWERPC_603e
106#undef CPU_SUBTYPE_POWERPC_603ev
107#undef CPU_SUBTYPE_POWERPC_604
108#undef CPU_SUBTYPE_POWERPC_604e
109#undef CPU_SUBTYPE_POWERPC_620
110#undef CPU_SUBTYPE_POWERPC_750
111#undef CPU_SUBTYPE_POWERPC_7400
112#undef CPU_SUBTYPE_POWERPC_7450
113#undef CPU_SUBTYPE_POWERPC_970
114
115#undef CPU_SUBTYPE_MC980000_ALL
116#undef CPU_SUBTYPE_MC98601
117
118#undef VM_PROT_READ
119#undef VM_PROT_WRITE
120#undef VM_PROT_EXECUTE
121
122#undef ARM_DEBUG_STATE
123#undef ARM_EXCEPTION_STATE
124#undef ARM_EXCEPTION_STATE64
125#undef ARM_EXCEPTION_STATE64_COUNT
126#undef ARM_THREAD_STATE
127#undef ARM_THREAD_STATE64
128#undef ARM_THREAD_STATE64_COUNT
129#undef ARM_THREAD_STATE_COUNT
130#undef ARM_VFP_STATE
131#undef ARN_THREAD_STATE_NONE
132#undef PPC_EXCEPTION_STATE
133#undef PPC_EXCEPTION_STATE64
134#undef PPC_FLOAT_STATE
135#undef PPC_THREAD_STATE
136#undef PPC_THREAD_STATE64
137#undef PPC_THREAD_STATE_NONE
138#undef PPC_VECTOR_STATE
139#undef x86_DEBUG_STATE
140#undef x86_DEBUG_STATE32
141#undef x86_DEBUG_STATE64
142#undef x86_EXCEPTION_STATE
143#undef x86_EXCEPTION_STATE32
144#undef x86_EXCEPTION_STATE64
145#undef x86_EXCEPTION_STATE64_COUNT
146#undef x86_EXCEPTION_STATE_COUNT
147#undef x86_FLOAT_STATE
148#undef x86_FLOAT_STATE32
149#undef x86_FLOAT_STATE64
150#undef x86_FLOAT_STATE64_COUNT
151#undef x86_FLOAT_STATE_COUNT
152#undef x86_THREAD_STATE
153#undef x86_THREAD_STATE32
154#undef x86_THREAD_STATE32_COUNT
155#undef x86_THREAD_STATE64
156#undef x86_THREAD_STATE64_COUNT
157#undef x86_THREAD_STATE_COUNT
158
159#include "llvm/BinaryFormat/MachO.h"
160
161#endif // LLDB_HOST_SAFEMACHO_H
162

source code of lldb/include/lldb/Host/SafeMachO.h