LLVM Ada language bindings. Credit to Rod Kay and the AuroraUX team.
[oota-llvm.git] / bindings / ada / llvm / llvm.ads
1 -- This file is generated by SWIG. Do *not* modify by hand.
2 --
3
4 with Interfaces.C.Extensions;
5
6
7 package llvm is
8
9    -- LLVMCtxt
10    --
11    type LLVMCtxt is new Interfaces.C.Extensions.opaque_structure_def;
12
13    type LLVMCtxt_array is
14      array (Interfaces.C.size_t range <>) of aliased llvm.LLVMCtxt;
15
16    type LLVMCtxt_view is access all llvm.LLVMCtxt;
17
18    -- LLVMContextRef
19    --
20    type LLVMContextRef is access all llvm.LLVMCtxt;
21
22    type LLVMContextRef_array is
23      array (Interfaces.C.size_t range <>) of aliased llvm.LLVMContextRef;
24
25    type LLVMContextRef_view is access all llvm.LLVMContextRef;
26
27    -- LLVMOpaqueModule
28    --
29    type LLVMOpaqueModule is new Interfaces.C.Extensions.opaque_structure_def;
30
31    type LLVMOpaqueModule_array is
32      array (Interfaces.C.size_t range <>) of aliased llvm.LLVMOpaqueModule;
33
34    type LLVMOpaqueModule_view is access all llvm.LLVMOpaqueModule;
35
36    -- LLVMModuleRef
37    --
38    type LLVMModuleRef is access all llvm.LLVMOpaqueModule;
39
40    type LLVMModuleRef_array is
41      array (Interfaces.C.size_t range <>) of aliased llvm.LLVMModuleRef;
42
43    type LLVMModuleRef_view is access all llvm.LLVMModuleRef;
44
45    -- LLVMOpaqueType
46    --
47    type LLVMOpaqueType is new Interfaces.C.Extensions.opaque_structure_def;
48
49    type LLVMOpaqueType_array is
50      array (Interfaces.C.size_t range <>) of aliased llvm.LLVMOpaqueType;
51
52    type LLVMOpaqueType_view is access all llvm.LLVMOpaqueType;
53
54    -- LLVMTypeRef
55    --
56    type LLVMTypeRef is access all llvm.LLVMOpaqueType;
57
58    type LLVMTypeRef_array is
59      array (Interfaces.C.size_t range <>) of aliased llvm.LLVMTypeRef;
60
61    type LLVMTypeRef_view is access all llvm.LLVMTypeRef;
62
63    -- LLVMOpaqueTypeHandle
64    --
65    type LLVMOpaqueTypeHandle is new
66      Interfaces.C.Extensions.opaque_structure_def;
67
68    type LLVMOpaqueTypeHandle_array is
69      array (Interfaces.C.size_t range <>)
70             of aliased llvm.LLVMOpaqueTypeHandle;
71
72    type LLVMOpaqueTypeHandle_view is access all llvm.LLVMOpaqueTypeHandle;
73
74    -- LLVMTypeHandleRef
75    --
76    type LLVMTypeHandleRef is access all llvm.LLVMOpaqueTypeHandle;
77
78    type LLVMTypeHandleRef_array is
79      array (Interfaces.C.size_t range <>)
80             of aliased llvm.LLVMTypeHandleRef;
81
82    type LLVMTypeHandleRef_view is access all llvm.LLVMTypeHandleRef;
83
84    -- LLVMOpaqueValue
85    --
86    type LLVMOpaqueValue is new Interfaces.C.Extensions.opaque_structure_def;
87
88    type LLVMOpaqueValue_array is
89      array (Interfaces.C.size_t range <>) of aliased llvm.LLVMOpaqueValue;
90
91    type LLVMOpaqueValue_view is access all llvm.LLVMOpaqueValue;
92
93    -- LLVMValueRef
94    --
95    type LLVMValueRef is access all llvm.LLVMOpaqueValue;
96
97    type LLVMValueRef_array is
98      array (Interfaces.C.size_t range <>) of aliased llvm.LLVMValueRef;
99
100    type LLVMValueRef_view is access all llvm.LLVMValueRef;
101
102    -- LLVMOpaqueBasicBlock
103    --
104    type LLVMOpaqueBasicBlock is new
105      Interfaces.C.Extensions.opaque_structure_def;
106
107    type LLVMOpaqueBasicBlock_array is
108      array (Interfaces.C.size_t range <>)
109             of aliased llvm.LLVMOpaqueBasicBlock;
110
111    type LLVMOpaqueBasicBlock_view is access all llvm.LLVMOpaqueBasicBlock;
112
113    -- LLVMBasicBlockRef
114    --
115    type LLVMBasicBlockRef is access all llvm.LLVMOpaqueBasicBlock;
116
117    type LLVMBasicBlockRef_array is
118      array (Interfaces.C.size_t range <>)
119             of aliased llvm.LLVMBasicBlockRef;
120
121    type LLVMBasicBlockRef_view is access all llvm.LLVMBasicBlockRef;
122
123    -- LLVMOpaqueBuilder
124    --
125    type LLVMOpaqueBuilder is new Interfaces.C.Extensions.opaque_structure_def;
126
127    type LLVMOpaqueBuilder_array is
128      array (Interfaces.C.size_t range <>)
129             of aliased llvm.LLVMOpaqueBuilder;
130
131    type LLVMOpaqueBuilder_view is access all llvm.LLVMOpaqueBuilder;
132
133    -- LLVMBuilderRef
134    --
135    type LLVMBuilderRef is access all llvm.LLVMOpaqueBuilder;
136
137    type LLVMBuilderRef_array is
138      array (Interfaces.C.size_t range <>) of aliased llvm.LLVMBuilderRef;
139
140    type LLVMBuilderRef_view is access all llvm.LLVMBuilderRef;
141
142    -- LLVMOpaqueModuleProvider
143    --
144    type LLVMOpaqueModuleProvider is new
145      Interfaces.C.Extensions.opaque_structure_def;
146
147    type LLVMOpaqueModuleProvider_array is
148      array (Interfaces.C.size_t range <>)
149             of aliased llvm.LLVMOpaqueModuleProvider;
150
151    type LLVMOpaqueModuleProvider_view is access all
152      llvm.LLVMOpaqueModuleProvider;
153
154    -- LLVMModuleProviderRef
155    --
156    type LLVMModuleProviderRef is access all llvm.LLVMOpaqueModuleProvider;
157
158    type LLVMModuleProviderRef_array is
159      array (Interfaces.C.size_t range <>)
160             of aliased llvm.LLVMModuleProviderRef;
161
162    type LLVMModuleProviderRef_view is access all llvm.LLVMModuleProviderRef;
163
164    -- LLVMOpaqueMemoryBuffer
165    --
166    type LLVMOpaqueMemoryBuffer is new
167      Interfaces.C.Extensions.opaque_structure_def;
168
169    type LLVMOpaqueMemoryBuffer_array is
170      array (Interfaces.C.size_t range <>)
171             of aliased llvm.LLVMOpaqueMemoryBuffer;
172
173    type LLVMOpaqueMemoryBuffer_view is access all llvm.LLVMOpaqueMemoryBuffer;
174
175    -- LLVMMemoryBufferRef
176    --
177    type LLVMMemoryBufferRef is access all llvm.LLVMOpaqueMemoryBuffer;
178
179    type LLVMMemoryBufferRef_array is
180      array (Interfaces.C.size_t range <>)
181             of aliased llvm.LLVMMemoryBufferRef;
182
183    type LLVMMemoryBufferRef_view is access all llvm.LLVMMemoryBufferRef;
184
185    -- LLVMOpaquePassManager
186    --
187    type LLVMOpaquePassManager is new
188      Interfaces.C.Extensions.opaque_structure_def;
189
190    type LLVMOpaquePassManager_array is
191      array (Interfaces.C.size_t range <>)
192             of aliased llvm.LLVMOpaquePassManager;
193
194    type LLVMOpaquePassManager_view is access all llvm.LLVMOpaquePassManager;
195
196    -- LLVMPassManagerRef
197    --
198    type LLVMPassManagerRef is access all llvm.LLVMOpaquePassManager;
199
200    type LLVMPassManagerRef_array is
201      array (Interfaces.C.size_t range <>)
202             of aliased llvm.LLVMPassManagerRef;
203
204    type LLVMPassManagerRef_view is access all llvm.LLVMPassManagerRef;
205
206    -- LLVMAttribute
207    --
208    type LLVMAttribute is (
209       LLVMZExtAttribute,
210       LLVMSExtAttribute,
211       LLVMNoReturnAttribute,
212       LLVMInRegAttribute,
213       LLVMStructRetAttribute,
214       LLVMNoUnwindAttribute,
215       LLVMNoAliasAttribute,
216       LLVMByValAttribute,
217       LLVMNestAttribute,
218       LLVMReadNoneAttribute,
219       LLVMReadOnlyAttribute,
220       LLVMNoInlineAttribute,
221       LLVMAlwaysInlineAttribute,
222       LLVMOptimizeForSizeAttribute,
223       LLVMStackProtectAttribute,
224       LLVMStackProtectReqAttribute,
225       LLVMNoCaptureAttribute,
226       LLVMNoRedZoneAttribute,
227       LLVMNoImplicitFloatAttribute,
228       LLVMNakedAttribute);
229
230    for LLVMAttribute use
231      (LLVMZExtAttribute            => 1,
232       LLVMSExtAttribute            => 2,
233       LLVMNoReturnAttribute        => 4,
234       LLVMInRegAttribute           => 8,
235       LLVMStructRetAttribute       => 16,
236       LLVMNoUnwindAttribute        => 32,
237       LLVMNoAliasAttribute         => 64,
238       LLVMByValAttribute           => 128,
239       LLVMNestAttribute            => 256,
240       LLVMReadNoneAttribute        => 512,
241       LLVMReadOnlyAttribute        => 1024,
242       LLVMNoInlineAttribute        => 2048,
243       LLVMAlwaysInlineAttribute    => 4096,
244       LLVMOptimizeForSizeAttribute => 8192,
245       LLVMStackProtectAttribute    => 16384,
246       LLVMStackProtectReqAttribute => 32768,
247       LLVMNoCaptureAttribute       => 2097152,
248       LLVMNoRedZoneAttribute       => 4194304,
249       LLVMNoImplicitFloatAttribute => 8388608,
250       LLVMNakedAttribute           => 16777216);
251
252    pragma Convention (C, LLVMAttribute);
253
254    type LLVMAttribute_array is
255      array (Interfaces.C.size_t range <>) of aliased llvm.LLVMAttribute;
256
257    type LLVMAttribute_view is access all llvm.LLVMAttribute;
258
259    -- LLVMTypeKind
260    --
261    type LLVMTypeKind is (
262       LLVMVoidTypeKind,
263       LLVMFloatTypeKind,
264       LLVMDoubleTypeKind,
265       LLVMX86_FP80TypeKind,
266       LLVMFP128TypeKind,
267       LLVMPPC_FP128TypeKind,
268       LLVMLabelTypeKind,
269       LLVMIntegerTypeKind,
270       LLVMFunctionTypeKind,
271       LLVMStructTypeKind,
272       LLVMArrayTypeKind,
273       LLVMPointerTypeKind,
274       LLVMOpaqueTypeKind,
275       LLVMVectorTypeKind,
276       LLVMMetadataTypeKind);
277
278    for LLVMTypeKind use
279      (LLVMVoidTypeKind      => 0,
280       LLVMFloatTypeKind     => 1,
281       LLVMDoubleTypeKind    => 2,
282       LLVMX86_FP80TypeKind  => 3,
283       LLVMFP128TypeKind     => 4,
284       LLVMPPC_FP128TypeKind => 5,
285       LLVMLabelTypeKind     => 6,
286       LLVMIntegerTypeKind   => 7,
287       LLVMFunctionTypeKind  => 8,
288       LLVMStructTypeKind    => 9,
289       LLVMArrayTypeKind     => 10,
290       LLVMPointerTypeKind   => 11,
291       LLVMOpaqueTypeKind    => 12,
292       LLVMVectorTypeKind    => 13,
293       LLVMMetadataTypeKind  => 14);
294
295    pragma Convention (C, LLVMTypeKind);
296
297    type LLVMTypeKind_array is
298      array (Interfaces.C.size_t range <>) of aliased llvm.LLVMTypeKind;
299
300    type LLVMTypeKind_view is access all llvm.LLVMTypeKind;
301
302    -- LLVMLinkage
303    --
304    type LLVMLinkage is (
305       LLVMExternalLinkage,
306       LLVMAvailableExternallyLinkage,
307       LLVMLinkOnceAnyLinkage,
308       LLVMLinkOnceODRLinkage,
309       LLVMWeakAnyLinkage,
310       LLVMWeakODRLinkage,
311       LLVMAppendingLinkage,
312       LLVMInternalLinkage,
313       LLVMPrivateLinkage,
314       LLVMDLLImportLinkage,
315       LLVMDLLExportLinkage,
316       LLVMExternalWeakLinkage,
317       LLVMGhostLinkage,
318       LLVMCommonLinkage,
319       LLVMLinkerPrivateLinkage);
320
321    for LLVMLinkage use
322      (LLVMExternalLinkage            => 0,
323       LLVMAvailableExternallyLinkage => 1,
324       LLVMLinkOnceAnyLinkage         => 2,
325       LLVMLinkOnceODRLinkage         => 3,
326       LLVMWeakAnyLinkage             => 4,
327       LLVMWeakODRLinkage             => 5,
328       LLVMAppendingLinkage           => 6,
329       LLVMInternalLinkage            => 7,
330       LLVMPrivateLinkage             => 8,
331       LLVMDLLImportLinkage           => 9,
332       LLVMDLLExportLinkage           => 10,
333       LLVMExternalWeakLinkage        => 11,
334       LLVMGhostLinkage               => 12,
335       LLVMCommonLinkage              => 13,
336       LLVMLinkerPrivateLinkage       => 14);
337
338    pragma Convention (C, LLVMLinkage);
339
340    type LLVMLinkage_array is
341      array (Interfaces.C.size_t range <>) of aliased llvm.LLVMLinkage;
342
343    type LLVMLinkage_view is access all llvm.LLVMLinkage;
344
345    -- LLVMVisibility
346    --
347    type LLVMVisibility is (
348       LLVMDefaultVisibility,
349       LLVMHiddenVisibility,
350       LLVMProtectedVisibility);
351
352    for LLVMVisibility use
353      (LLVMDefaultVisibility   => 0,
354       LLVMHiddenVisibility    => 1,
355       LLVMProtectedVisibility => 2);
356
357    pragma Convention (C, LLVMVisibility);
358
359    type LLVMVisibility_array is
360      array (Interfaces.C.size_t range <>) of aliased llvm.LLVMVisibility;
361
362    type LLVMVisibility_view is access all llvm.LLVMVisibility;
363
364    -- LLVMCallConv
365    --
366    type LLVMCallConv is (
367       LLVMCCallConv,
368       LLVMFastCallConv,
369       LLVMColdCallConv,
370       LLVMX86StdcallCallConv,
371       LLVMX86FastcallCallConv);
372
373    for LLVMCallConv use
374      (LLVMCCallConv           => 0,
375       LLVMFastCallConv        => 8,
376       LLVMColdCallConv        => 9,
377       LLVMX86StdcallCallConv  => 64,
378       LLVMX86FastcallCallConv => 65);
379
380    pragma Convention (C, LLVMCallConv);
381
382    type LLVMCallConv_array is
383      array (Interfaces.C.size_t range <>) of aliased llvm.LLVMCallConv;
384
385    type LLVMCallConv_view is access all llvm.LLVMCallConv;
386
387    -- LLVMIntPredicate
388    --
389    type LLVMIntPredicate is (
390       LLVMIntEQ,
391       LLVMIntNE,
392       LLVMIntUGT,
393       LLVMIntUGE,
394       LLVMIntULT,
395       LLVMIntULE,
396       LLVMIntSGT,
397       LLVMIntSGE,
398       LLVMIntSLT,
399       LLVMIntSLE);
400
401    for LLVMIntPredicate use
402      (LLVMIntEQ  => 32,
403       LLVMIntNE  => 33,
404       LLVMIntUGT => 34,
405       LLVMIntUGE => 35,
406       LLVMIntULT => 36,
407       LLVMIntULE => 37,
408       LLVMIntSGT => 38,
409       LLVMIntSGE => 39,
410       LLVMIntSLT => 40,
411       LLVMIntSLE => 41);
412
413    pragma Convention (C, LLVMIntPredicate);
414
415    type LLVMIntPredicate_array is
416      array (Interfaces.C.size_t range <>) of aliased llvm.LLVMIntPredicate;
417
418    type LLVMIntPredicate_view is access all llvm.LLVMIntPredicate;
419
420    -- LLVMRealPredicate
421    --
422    type LLVMRealPredicate is (
423       LLVMRealPredicateFalse,
424       LLVMRealOEQ,
425       LLVMRealOGT,
426       LLVMRealOGE,
427       LLVMRealOLT,
428       LLVMRealOLE,
429       LLVMRealONE,
430       LLVMRealORD,
431       LLVMRealUNO,
432       LLVMRealUEQ,
433       LLVMRealUGT,
434       LLVMRealUGE,
435       LLVMRealULT,
436       LLVMRealULE,
437       LLVMRealUNE,
438       LLVMRealPredicateTrue);
439
440    for LLVMRealPredicate use
441      (LLVMRealPredicateFalse => 0,
442       LLVMRealOEQ            => 1,
443       LLVMRealOGT            => 2,
444       LLVMRealOGE            => 3,
445       LLVMRealOLT            => 4,
446       LLVMRealOLE            => 5,
447       LLVMRealONE            => 6,
448       LLVMRealORD            => 7,
449       LLVMRealUNO            => 8,
450       LLVMRealUEQ            => 9,
451       LLVMRealUGT            => 10,
452       LLVMRealUGE            => 11,
453       LLVMRealULT            => 12,
454       LLVMRealULE            => 13,
455       LLVMRealUNE            => 14,
456       LLVMRealPredicateTrue  => 15);
457
458    pragma Convention (C, LLVMRealPredicate);
459
460    type LLVMRealPredicate_array is
461      array (Interfaces.C.size_t range <>)
462             of aliased llvm.LLVMRealPredicate;
463
464    type LLVMRealPredicate_view is access all llvm.LLVMRealPredicate;
465
466    -- ModuleProvider
467    --
468    type ModuleProvider is new Interfaces.C.Extensions.incomplete_class_def;
469
470    type ModuleProvider_array is
471      array (Interfaces.C.size_t range <>) of aliased llvm.ModuleProvider;
472
473    type ModuleProvider_view is access all llvm.ModuleProvider;
474
475    -- MemoryBuffer
476    --
477    type MemoryBuffer is new Interfaces.C.Extensions.incomplete_class_def;
478
479    type MemoryBuffer_array is
480      array (Interfaces.C.size_t range <>) of aliased llvm.MemoryBuffer;
481
482    type MemoryBuffer_view is access all llvm.MemoryBuffer;
483
484    -- PassManagerBase
485    --
486    type PassManagerBase is new Interfaces.C.Extensions.incomplete_class_def;
487
488    type PassManagerBase_array is
489      array (Interfaces.C.size_t range <>) of aliased llvm.PassManagerBase;
490
491    type PassManagerBase_view is access all llvm.PassManagerBase;
492
493 end llvm;