1use super::prelude::*;
4
5#[repr(C)]
6#[derive(Clone, Copy, Debug, PartialEq)]
7pub enum LLVMByteOrdering {
8 LLVMBigEndian = 0,
9 LLVMLittleEndian = 1,
10}
11
12#[derive(Debug)]
13pub enum LLVMOpaqueTargetData {}
14
15pub type LLVMTargetDataRef = *mut LLVMOpaqueTargetData;
16
17#[derive(Debug)]
18pub enum LLVMOpaqueTargetLibraryInfotData {}
19
20pub type LLVMTargetLibraryInfoRef = *mut LLVMOpaqueTargetLibraryInfotData;
21
22extern "C" {
23 pub fn LLVMInitializeAMDGPUTargetInfo();
24 pub fn LLVMInitializeAMDGPUTarget();
25 pub fn LLVMInitializeAMDGPUTargetMC();
26 pub fn LLVMInitializeAMDGPUAsmPrinter();
27 pub fn LLVMInitializeAMDGPUAsmParser();
28 pub fn LLVMInitializeSystemZTargetInfo();
31 pub fn LLVMInitializeSystemZTarget();
32 pub fn LLVMInitializeSystemZTargetMC();
33 pub fn LLVMInitializeSystemZAsmPrinter();
34 pub fn LLVMInitializeSystemZAsmParser();
35 pub fn LLVMInitializeSystemZDisassembler();
36
37 pub fn LLVMInitializeHexagonTargetInfo();
38 pub fn LLVMInitializeHexagonTarget();
39 pub fn LLVMInitializeHexagonTargetMC();
40 pub fn LLVMInitializeHexagonAsmPrinter();
41 pub fn LLVMInitializeHexagonDisassembler();
43
44 pub fn LLVMInitializeNVPTXTargetInfo();
45 pub fn LLVMInitializeNVPTXTarget();
46 pub fn LLVMInitializeNVPTXTargetMC();
47 pub fn LLVMInitializeNVPTXAsmPrinter();
48 pub fn LLVMInitializeMSP430TargetInfo();
51 pub fn LLVMInitializeMSP430Target();
52 pub fn LLVMInitializeMSP430TargetMC();
53 pub fn LLVMInitializeMSP430AsmPrinter();
54 pub fn LLVMInitializeXCoreTargetInfo();
57 pub fn LLVMInitializeXCoreTarget();
58 pub fn LLVMInitializeXCoreTargetMC();
59 pub fn LLVMInitializeXCoreAsmPrinter();
60 pub fn LLVMInitializeXCoreDisassembler();
62
63 pub fn LLVMInitializeMipsTargetInfo();
64 pub fn LLVMInitializeMipsTarget();
65 pub fn LLVMInitializeMipsTargetMC();
66 pub fn LLVMInitializeMipsAsmPrinter();
67 pub fn LLVMInitializeMipsAsmParser();
68 pub fn LLVMInitializeMipsDisassembler();
69
70 pub fn LLVMInitializeAArch64TargetInfo();
71 pub fn LLVMInitializeAArch64Target();
72 pub fn LLVMInitializeAArch64TargetMC();
73 pub fn LLVMInitializeAArch64AsmPrinter();
74 pub fn LLVMInitializeAArch64AsmParser();
75 pub fn LLVMInitializeAArch64Disassembler();
76
77 pub fn LLVMInitializeARMTargetInfo();
78 pub fn LLVMInitializeARMTarget();
79 pub fn LLVMInitializeARMTargetMC();
80 pub fn LLVMInitializeARMAsmPrinter();
81 pub fn LLVMInitializeARMAsmParser();
82 pub fn LLVMInitializeARMDisassembler();
83
84 pub fn LLVMInitializePowerPCTargetInfo();
85 pub fn LLVMInitializePowerPCTarget();
86 pub fn LLVMInitializePowerPCTargetMC();
87 pub fn LLVMInitializePowerPCAsmPrinter();
88 pub fn LLVMInitializePowerPCAsmParser();
89 pub fn LLVMInitializePowerPCDisassembler();
90
91 pub fn LLVMInitializeSparcTargetInfo();
92 pub fn LLVMInitializeSparcTarget();
93 pub fn LLVMInitializeSparcTargetMC();
94 pub fn LLVMInitializeSparcAsmPrinter();
95 pub fn LLVMInitializeSparcAsmParser();
96 pub fn LLVMInitializeSparcDisassembler();
97
98 pub fn LLVMInitializeX86TargetInfo();
99 pub fn LLVMInitializeX86Target();
100 pub fn LLVMInitializeX86TargetMC();
101 pub fn LLVMInitializeX86AsmPrinter();
102 pub fn LLVMInitializeX86AsmParser();
103 pub fn LLVMInitializeX86Disassembler();
104
105 pub fn LLVMInitializeBPFTargetInfo();
106 pub fn LLVMInitializeBPFTarget();
107 pub fn LLVMInitializeBPFTargetMC();
108 pub fn LLVMInitializeBPFAsmPrinter();
109 pub fn LLVMInitializeBPFAsmParser();
110 pub fn LLVMInitializeBPFDisassembler();
111
112 pub fn LLVMInitializeLanaiTargetInfo();
113 pub fn LLVMInitializeLanaiTarget();
114 pub fn LLVMInitializeLanaiTargetMC();
115 pub fn LLVMInitializeLanaiAsmPrinter();
116 pub fn LLVMInitializeLanaiAsmParser();
117 pub fn LLVMInitializeLanaiDisassembler();
118
119 pub fn LLVMInitializeRISCVTargetInfo();
120 pub fn LLVMInitializeRISCVTarget();
121 pub fn LLVMInitializeRISCVTargetMC();
122 pub fn LLVMInitializeRISCVAsmPrinter();
123 pub fn LLVMInitializeRISCVAsmParser();
124 pub fn LLVMInitializeRISCVDisassembler();
125
126 pub fn LLVMInitializeLoongArchTargetInfo();
127 pub fn LLVMInitializeLoongArchTarget();
128 pub fn LLVMInitializeLoongArchTargetMC();
129 pub fn LLVMInitializeLoongArchAsmPrinter();
130 pub fn LLVMInitializeLoongArchAsmParser();
131 pub fn LLVMInitializeLoongArchDisassembler();
132
133 pub fn LLVMInitializeWebAssemblyTargetInfo();
134 pub fn LLVMInitializeWebAssemblyTarget();
135 pub fn LLVMInitializeWebAssemblyTargetMC();
136 pub fn LLVMInitializeWebAssemblyAsmPrinter();
137 pub fn LLVMInitializeWebAssemblyAsmParser();
138 pub fn LLVMInitializeWebAssemblyDisassembler();
139}
140
141extern "C" {
142 pub fn LLVMGetModuleDataLayout(M: LLVMModuleRef) -> LLVMTargetDataRef;
144 pub fn LLVMSetModuleDataLayout(M: LLVMModuleRef, R: LLVMTargetDataRef);
146 pub fn LLVMCreateTargetData(StringRep: *const ::libc::c_char) -> LLVMTargetDataRef;
148 pub fn LLVMAddTargetLibraryInfo(TLI: LLVMTargetLibraryInfoRef, PM: LLVMPassManagerRef);
149 pub fn LLVMCopyStringRepOfTargetData(TD: LLVMTargetDataRef) -> *mut ::libc::c_char;
150 pub fn LLVMByteOrder(TD: LLVMTargetDataRef) -> LLVMByteOrdering;
151 pub fn LLVMPointerSize(TD: LLVMTargetDataRef) -> ::libc::c_uint;
152 pub fn LLVMPointerSizeForAS(TD: LLVMTargetDataRef, AS: ::libc::c_uint) -> ::libc::c_uint;
153 #[deprecated(
154 since = "221.0.0",
155 note = "Use of the global context is deprecated, use LLVMIntPtrTypeInContext instead."
156 )]
157 pub fn LLVMIntPtrType(TD: LLVMTargetDataRef) -> LLVMTypeRef;
158 #[deprecated(
159 since = "221.0.0",
160 note = "Use of the global context is deprecated, use LLVMIntPtrTypeForASInContext instead."
161 )]
162 pub fn LLVMIntPtrTypeForAS(TD: LLVMTargetDataRef, AS: ::libc::c_uint) -> LLVMTypeRef;
163 pub fn LLVMIntPtrTypeInContext(C: LLVMContextRef, TD: LLVMTargetDataRef) -> LLVMTypeRef;
164 pub fn LLVMIntPtrTypeForASInContext(
165 C: LLVMContextRef,
166 TD: LLVMTargetDataRef,
167 AS: ::libc::c_uint,
168 ) -> LLVMTypeRef;
169 pub fn LLVMSizeOfTypeInBits(TD: LLVMTargetDataRef, Ty: LLVMTypeRef) -> ::libc::c_ulonglong;
170 pub fn LLVMStoreSizeOfType(TD: LLVMTargetDataRef, Ty: LLVMTypeRef) -> ::libc::c_ulonglong;
171 pub fn LLVMABISizeOfType(TD: LLVMTargetDataRef, Ty: LLVMTypeRef) -> ::libc::c_ulonglong;
172 pub fn LLVMABIAlignmentOfType(TD: LLVMTargetDataRef, Ty: LLVMTypeRef) -> ::libc::c_uint;
173 pub fn LLVMCallFrameAlignmentOfType(TD: LLVMTargetDataRef, Ty: LLVMTypeRef) -> ::libc::c_uint;
174 pub fn LLVMPreferredAlignmentOfType(TD: LLVMTargetDataRef, Ty: LLVMTypeRef) -> ::libc::c_uint;
175 pub fn LLVMPreferredAlignmentOfGlobal(
176 TD: LLVMTargetDataRef,
177 GlobalVar: LLVMValueRef,
178 ) -> ::libc::c_uint;
179 pub fn LLVMElementAtOffset(
180 TD: LLVMTargetDataRef,
181 StructTy: LLVMTypeRef,
182 Offset: ::libc::c_ulonglong,
183 ) -> ::libc::c_uint;
184 pub fn LLVMOffsetOfElement(
185 TD: LLVMTargetDataRef,
186 StructTy: LLVMTypeRef,
187 Element: ::libc::c_uint,
188 ) -> ::libc::c_ulonglong;
189 pub fn LLVMDisposeTargetData(TD: LLVMTargetDataRef);
190}
191
192extern "C" {
195 pub fn LLVM_InitializeAllTargetInfos();
196 pub fn LLVM_InitializeAllTargets();
197 pub fn LLVM_InitializeAllTargetMCs();
198 pub fn LLVM_InitializeAllAsmPrinters();
199 pub fn LLVM_InitializeAllAsmParsers();
200 pub fn LLVM_InitializeAllDisassemblers();
201
202 pub fn LLVM_InitializeNativeTarget() -> LLVMBool;
204 pub fn LLVM_InitializeNativeAsmParser() -> LLVMBool;
206 pub fn LLVM_InitializeNativeAsmPrinter() -> LLVMBool;
208 pub fn LLVM_InitializeNativeDisassembler() -> LLVMBool;
210}