1pub const BN_CURRENT_UI_ABI_VERSION: u32 = 12;
4pub const BN_MINIMUM_UI_ABI_VERSION: u32 = 12;
5
6pub const BN_CURRENT_CORE_ABI_VERSION: u32 = 151;
7pub const BN_MINIMUM_CORE_ABI_VERSION: u32 = 147;
8pub const MAX_RELOCATION_SIZE: u32 = 8;
9#[repr(u32)]
10#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
11pub enum BNPluginLoadOrder {
12 EarlyPluginLoadOrder = 0,
13 NormalPluginLoadOrder = 1,
14 LatePluginLoadOrder = 2,
15}
16#[repr(C)]
17#[derive(Debug, Copy, Clone)]
18pub struct BNDataBuffer {
19 _unused: [u8; 0],
20}
21#[repr(C)]
22#[derive(Debug, Copy, Clone)]
23pub struct BNBinaryView {
24 _unused: [u8; 0],
25}
26#[repr(C)]
27#[derive(Debug, Copy, Clone)]
28pub struct BNBinaryViewType {
29 _unused: [u8; 0],
30}
31#[repr(C)]
32#[derive(Debug, Copy, Clone)]
33pub struct BNBinaryReader {
34 _unused: [u8; 0],
35}
36#[repr(C)]
37#[derive(Debug, Copy, Clone)]
38pub struct BNBinaryWriter {
39 _unused: [u8; 0],
40}
41#[repr(C)]
42#[derive(Debug, Copy, Clone)]
43pub struct BNKeyValueStore {
44 _unused: [u8; 0],
45}
46#[repr(C)]
47#[derive(Debug, Copy, Clone)]
48pub struct BNSnapshot {
49 _unused: [u8; 0],
50}
51#[repr(C)]
52#[derive(Debug, Copy, Clone)]
53pub struct BNDatabase {
54 _unused: [u8; 0],
55}
56#[repr(C)]
57#[derive(Debug, Copy, Clone)]
58pub struct BNFileMetadata {
59 _unused: [u8; 0],
60}
61#[repr(C)]
62#[derive(Debug, Copy, Clone)]
63pub struct BNTransform {
64 _unused: [u8; 0],
65}
66#[repr(C)]
67#[derive(Debug, Copy, Clone)]
68pub struct BNTransformContext {
69 _unused: [u8; 0],
70}
71#[repr(C)]
72#[derive(Debug, Copy, Clone)]
73pub struct BNTransformSession {
74 _unused: [u8; 0],
75}
76#[repr(C)]
77#[derive(Debug, Copy, Clone)]
78pub struct BNArchitecture {
79 _unused: [u8; 0],
80}
81#[repr(C)]
82#[derive(Debug, Copy, Clone)]
83pub struct BNFunction {
84 _unused: [u8; 0],
85}
86#[repr(C)]
87#[derive(Debug, Copy, Clone)]
88pub struct BNBasicBlock {
89 _unused: [u8; 0],
90}
91#[repr(C)]
92#[derive(Debug, Copy, Clone)]
93pub struct BNDownloadProvider {
94 _unused: [u8; 0],
95}
96#[repr(C)]
97#[derive(Debug, Copy, Clone)]
98pub struct BNDownloadInstance {
99 _unused: [u8; 0],
100}
101#[repr(C)]
102#[derive(Debug, Copy, Clone)]
103pub struct BNWebsocketProvider {
104 _unused: [u8; 0],
105}
106#[repr(C)]
107#[derive(Debug, Copy, Clone)]
108pub struct BNWebsocketClient {
109 _unused: [u8; 0],
110}
111#[repr(C)]
112#[derive(Debug, Copy, Clone)]
113pub struct BNTypeParser {
114 _unused: [u8; 0],
115}
116#[repr(C)]
117#[derive(Debug, Copy, Clone)]
118pub struct BNTypePrinter {
119 _unused: [u8; 0],
120}
121#[repr(C)]
122#[derive(Debug, Copy, Clone)]
123pub struct BNFlowGraph {
124 _unused: [u8; 0],
125}
126#[repr(C)]
127#[derive(Debug, Copy, Clone)]
128pub struct BNFlowGraphNode {
129 _unused: [u8; 0],
130}
131#[repr(C)]
132#[derive(Debug, Copy, Clone)]
133pub struct BNFlowGraphLayout {
134 _unused: [u8; 0],
135}
136#[repr(C)]
137#[derive(Debug, Copy, Clone)]
138pub struct BNFlowGraphLayoutRequest {
139 _unused: [u8; 0],
140}
141#[repr(C)]
142#[derive(Debug, Copy, Clone)]
143pub struct BNSymbol {
144 _unused: [u8; 0],
145}
146#[repr(C)]
147#[derive(Debug, Copy, Clone)]
148pub struct BNTemporaryFile {
149 _unused: [u8; 0],
150}
151#[repr(C)]
152#[derive(Debug, Copy, Clone)]
153pub struct BNLowLevelILFunction {
154 _unused: [u8; 0],
155}
156#[repr(C)]
157#[derive(Debug, Copy, Clone)]
158pub struct BNMediumLevelILFunction {
159 _unused: [u8; 0],
160}
161#[repr(C)]
162#[derive(Debug, Copy, Clone)]
163pub struct BNHighLevelILFunction {
164 _unused: [u8; 0],
165}
166#[repr(C)]
167#[derive(Debug, Copy, Clone)]
168pub struct BNLanguageRepresentationFunction {
169 _unused: [u8; 0],
170}
171#[repr(C)]
172#[derive(Debug, Copy, Clone)]
173pub struct BNLanguageRepresentationFunctionType {
174 _unused: [u8; 0],
175}
176#[repr(C)]
177#[derive(Debug, Copy, Clone)]
178pub struct BNHighLevelILTokenEmitter {
179 _unused: [u8; 0],
180}
181#[repr(C)]
182#[derive(Debug, Copy, Clone)]
183pub struct BNType {
184 _unused: [u8; 0],
185}
186#[repr(C)]
187#[derive(Debug, Copy, Clone)]
188pub struct BNTypeBuilder {
189 _unused: [u8; 0],
190}
191#[repr(C)]
192#[derive(Debug, Copy, Clone)]
193pub struct BNTypeLibrary {
194 _unused: [u8; 0],
195}
196#[repr(C)]
197#[derive(Debug, Copy, Clone)]
198pub struct BNFieldResolutionInfo {
199 _unused: [u8; 0],
200}
201#[repr(C)]
202#[derive(Debug, Copy, Clone)]
203pub struct BNStructure {
204 _unused: [u8; 0],
205}
206#[repr(C)]
207#[derive(Debug, Copy, Clone)]
208pub struct BNStructureBuilder {
209 _unused: [u8; 0],
210}
211#[repr(C)]
212#[derive(Debug, Copy, Clone)]
213pub struct BNTagType {
214 _unused: [u8; 0],
215}
216#[repr(C)]
217#[derive(Debug, Copy, Clone)]
218pub struct BNTag {
219 _unused: [u8; 0],
220}
221#[repr(C)]
222#[derive(Debug, Copy, Clone)]
223pub struct BNUser {
224 _unused: [u8; 0],
225}
226#[repr(C)]
227#[derive(Debug, Copy, Clone)]
228pub struct BNNamedTypeReference {
229 _unused: [u8; 0],
230}
231#[repr(C)]
232#[derive(Debug, Copy, Clone)]
233pub struct BNNamedTypeReferenceBuilder {
234 _unused: [u8; 0],
235}
236#[repr(C)]
237#[derive(Debug, Copy, Clone)]
238pub struct BNEnumeration {
239 _unused: [u8; 0],
240}
241#[repr(C)]
242#[derive(Debug, Copy, Clone)]
243pub struct BNEnumerationBuilder {
244 _unused: [u8; 0],
245}
246#[repr(C)]
247#[derive(Debug, Copy, Clone)]
248pub struct BNCallingConvention {
249 _unused: [u8; 0],
250}
251#[repr(C)]
252#[derive(Debug, Copy, Clone)]
253pub struct BNPlatform {
254 _unused: [u8; 0],
255}
256#[repr(C)]
257#[derive(Debug, Copy, Clone)]
258pub struct BNActivity {
259 _unused: [u8; 0],
260}
261#[repr(C)]
262#[derive(Debug, Copy, Clone)]
263pub struct BNAnalysisContext {
264 _unused: [u8; 0],
265}
266#[repr(C)]
267#[derive(Debug, Copy, Clone)]
268pub struct BNWorkflow {
269 _unused: [u8; 0],
270}
271#[repr(C)]
272#[derive(Debug, Copy, Clone)]
273pub struct BNAnalysisCompletionEvent {
274 _unused: [u8; 0],
275}
276#[repr(C)]
277#[derive(Debug, Copy, Clone)]
278pub struct BNDisassemblySettings {
279 _unused: [u8; 0],
280}
281#[repr(C)]
282#[derive(Debug, Copy, Clone)]
283pub struct BNSaveSettings {
284 _unused: [u8; 0],
285}
286#[repr(C)]
287#[derive(Debug, Copy, Clone)]
288pub struct BNScriptingProvider {
289 _unused: [u8; 0],
290}
291#[repr(C)]
292#[derive(Debug, Copy, Clone)]
293pub struct BNScriptingInstance {
294 _unused: [u8; 0],
295}
296#[repr(C)]
297#[derive(Debug, Copy, Clone)]
298pub struct BNMainThreadAction {
299 _unused: [u8; 0],
300}
301#[repr(C)]
302#[derive(Debug, Copy, Clone)]
303pub struct BNBackgroundTask {
304 _unused: [u8; 0],
305}
306#[repr(C)]
307#[derive(Debug, Copy, Clone)]
308pub struct BNRepository {
309 _unused: [u8; 0],
310}
311#[repr(C)]
312#[derive(Debug, Copy, Clone)]
313pub struct BNRepoPlugin {
314 _unused: [u8; 0],
315}
316#[repr(C)]
317#[derive(Debug, Copy, Clone)]
318pub struct BNRepositoryManager {
319 _unused: [u8; 0],
320}
321#[repr(C)]
322#[derive(Debug, Copy, Clone)]
323pub struct BNComponent {
324 _unused: [u8; 0],
325}
326#[repr(C)]
327#[derive(Debug, Copy, Clone)]
328pub struct BNSettings {
329 _unused: [u8; 0],
330}
331#[repr(C)]
332#[derive(Debug, Copy, Clone)]
333pub struct BNMetadata {
334 _unused: [u8; 0],
335}
336#[repr(C)]
337#[derive(Debug, Copy, Clone)]
338pub struct BNReportCollection {
339 _unused: [u8; 0],
340}
341#[repr(C)]
342#[derive(Debug, Copy, Clone)]
343pub struct BNRelocation {
344 _unused: [u8; 0],
345}
346#[repr(C)]
347#[derive(Debug, Copy, Clone)]
348pub struct BNSegment {
349 _unused: [u8; 0],
350}
351#[repr(C)]
352#[derive(Debug, Copy, Clone)]
353pub struct BNSection {
354 _unused: [u8; 0],
355}
356#[repr(C)]
357#[derive(Debug, Copy, Clone)]
358pub struct BNRelocationHandler {
359 _unused: [u8; 0],
360}
361#[repr(C)]
362#[derive(Debug, Copy, Clone)]
363pub struct BNDataRenderer {
364 _unused: [u8; 0],
365}
366#[repr(C)]
367#[derive(Debug, Copy, Clone)]
368pub struct BNDataRendererContainer {
369 _unused: [u8; 0],
370}
371#[repr(C)]
372#[derive(Debug, Copy, Clone)]
373pub struct BNDisassemblyTextRenderer {
374 _unused: [u8; 0],
375}
376#[repr(C)]
377#[derive(Debug, Copy, Clone)]
378pub struct BNLinearViewObject {
379 _unused: [u8; 0],
380}
381#[repr(C)]
382#[derive(Debug, Copy, Clone)]
383pub struct BNLinearViewCursor {
384 _unused: [u8; 0],
385}
386#[repr(C)]
387#[derive(Debug, Copy, Clone)]
388pub struct BNDebugInfo {
389 _unused: [u8; 0],
390}
391#[repr(C)]
392#[derive(Debug, Copy, Clone)]
393pub struct BNDebugInfoParser {
394 _unused: [u8; 0],
395}
396#[repr(C)]
397#[derive(Debug, Copy, Clone)]
398pub struct BNSecretsProvider {
399 _unused: [u8; 0],
400}
401#[repr(C)]
402#[derive(Debug, Copy, Clone)]
403pub struct BNLogger {
404 _unused: [u8; 0],
405}
406#[repr(C)]
407#[derive(Debug, Copy, Clone)]
408pub struct BNSymbolQueue {
409 _unused: [u8; 0],
410}
411#[repr(C)]
412#[derive(Debug, Copy, Clone)]
413pub struct BNTypeArchive {
414 _unused: [u8; 0],
415}
416#[repr(C)]
417#[derive(Debug, Copy, Clone)]
418pub struct BNTypeContainer {
419 _unused: [u8; 0],
420}
421#[repr(C)]
422#[derive(Debug, Copy, Clone)]
423pub struct BNProject {
424 _unused: [u8; 0],
425}
426#[repr(C)]
427#[derive(Debug, Copy, Clone)]
428pub struct BNProjectFile {
429 _unused: [u8; 0],
430}
431#[repr(C)]
432#[derive(Debug, Copy, Clone)]
433pub struct BNExternalLibrary {
434 _unused: [u8; 0],
435}
436#[repr(C)]
437#[derive(Debug, Copy, Clone)]
438pub struct BNExternalLocation {
439 _unused: [u8; 0],
440}
441#[repr(C)]
442#[derive(Debug, Copy, Clone)]
443pub struct BNProjectFolder {
444 _unused: [u8; 0],
445}
446#[repr(C)]
447#[derive(Debug, Copy, Clone)]
448pub struct BNBaseAddressDetection {
449 _unused: [u8; 0],
450}
451#[repr(C)]
452#[derive(Debug, Copy, Clone)]
453pub struct BNCollaborationChangeset {
454 _unused: [u8; 0],
455}
456#[repr(C)]
457#[derive(Debug, Copy, Clone)]
458pub struct BNRemoteFile {
459 _unused: [u8; 0],
460}
461#[repr(C)]
462#[derive(Debug, Copy, Clone)]
463pub struct BNRemoteFolder {
464 _unused: [u8; 0],
465}
466#[repr(C)]
467#[derive(Debug, Copy, Clone)]
468pub struct BNCollaborationGroup {
469 _unused: [u8; 0],
470}
471#[repr(C)]
472#[derive(Debug, Copy, Clone)]
473pub struct BNCollaborationPermission {
474 _unused: [u8; 0],
475}
476#[repr(C)]
477#[derive(Debug, Copy, Clone)]
478pub struct BNRemoteProject {
479 _unused: [u8; 0],
480}
481#[repr(C)]
482#[derive(Debug, Copy, Clone)]
483pub struct BNRemote {
484 _unused: [u8; 0],
485}
486#[repr(C)]
487#[derive(Debug, Copy, Clone)]
488pub struct BNCollaborationSnapshot {
489 _unused: [u8; 0],
490}
491#[repr(C)]
492#[derive(Debug, Copy, Clone)]
493pub struct BNCollaborationUndoEntry {
494 _unused: [u8; 0],
495}
496#[repr(C)]
497#[derive(Debug, Copy, Clone)]
498pub struct BNCollaborationUser {
499 _unused: [u8; 0],
500}
501#[repr(C)]
502#[derive(Debug, Copy, Clone)]
503pub struct BNAnalysisMergeConflict {
504 _unused: [u8; 0],
505}
506#[repr(C)]
507#[derive(Debug, Copy, Clone)]
508pub struct BNAnalysisMergeConflictSplitter {
509 _unused: [u8; 0],
510}
511#[repr(C)]
512#[derive(Debug, Copy, Clone)]
513pub struct BNTypeArchiveMergeConflict {
514 _unused: [u8; 0],
515}
516#[repr(C)]
517#[derive(Debug, Copy, Clone)]
518pub struct BNCollaborationLazyT {
519 _unused: [u8; 0],
520}
521#[repr(C)]
522#[derive(Debug, Copy, Clone)]
523pub struct BNUndoAction {
524 _unused: [u8; 0],
525}
526#[repr(C)]
527#[derive(Debug, Copy, Clone)]
528pub struct BNUndoEntry {
529 _unused: [u8; 0],
530}
531#[repr(C)]
532#[derive(Debug, Copy, Clone)]
533pub struct BNDemangler {
534 _unused: [u8; 0],
535}
536#[repr(C)]
537#[derive(Debug, Copy, Clone)]
538pub struct BNFirmwareNinja {
539 _unused: [u8; 0],
540}
541#[repr(C)]
542#[derive(Debug, Copy, Clone)]
543pub struct BNFirmwareNinjaReferenceNode {
544 _unused: [u8; 0],
545}
546#[repr(C)]
547#[derive(Debug, Copy, Clone)]
548pub struct BNFirmwareNinjaRelationship {
549 _unused: [u8; 0],
550}
551#[repr(C)]
552#[derive(Debug, Copy, Clone)]
553pub struct BNLineFormatter {
554 _unused: [u8; 0],
555}
556#[repr(C)]
557#[derive(Debug, Copy, Clone)]
558pub struct BNRenderLayer {
559 _unused: [u8; 0],
560}
561#[repr(C)]
562#[derive(Debug, Copy, Clone)]
563pub struct BNStringRef {
564 _unused: [u8; 0],
565}
566#[repr(C)]
567#[derive(Debug, Copy, Clone)]
568pub struct BNConstantRenderer {
569 _unused: [u8; 0],
570}
571#[repr(C)]
572#[derive(Debug, Copy, Clone)]
573pub struct BNStringRecognizer {
574 _unused: [u8; 0],
575}
576#[repr(C)]
577#[derive(Debug, Copy, Clone)]
578pub struct BNCustomStringType {
579 _unused: [u8; 0],
580}
581#[repr(C)]
582#[derive(Debug, Copy, Clone)]
583pub struct BNRemoteFileSearchMatch {
584 pub projectId: *mut ::std::os::raw::c_char,
585 pub projectName: *mut ::std::os::raw::c_char,
586 pub fileId: *mut ::std::os::raw::c_char,
587 pub fileName: *mut ::std::os::raw::c_char,
588}
589#[allow(clippy::unnecessary_operation, clippy::identity_op)]
590const _: () = {
591 ["Size of BNRemoteFileSearchMatch"][::std::mem::size_of::<BNRemoteFileSearchMatch>() - 32usize];
592 ["Alignment of BNRemoteFileSearchMatch"]
593 [::std::mem::align_of::<BNRemoteFileSearchMatch>() - 8usize];
594 ["Offset of field: BNRemoteFileSearchMatch::projectId"]
595 [::std::mem::offset_of!(BNRemoteFileSearchMatch, projectId) - 0usize];
596 ["Offset of field: BNRemoteFileSearchMatch::projectName"]
597 [::std::mem::offset_of!(BNRemoteFileSearchMatch, projectName) - 8usize];
598 ["Offset of field: BNRemoteFileSearchMatch::fileId"]
599 [::std::mem::offset_of!(BNRemoteFileSearchMatch, fileId) - 16usize];
600 ["Offset of field: BNRemoteFileSearchMatch::fileName"]
601 [::std::mem::offset_of!(BNRemoteFileSearchMatch, fileName) - 24usize];
602};
603impl Default for BNRemoteFileSearchMatch {
604 fn default() -> Self {
605 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
606 unsafe {
607 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
608 s.assume_init()
609 }
610 }
611}
612pub type BNProgressFunction = ::std::option::Option<
613 unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void, arg2: usize, arg3: usize) -> bool,
614>;
615#[repr(u32)]
616#[doc = "! Console log levels"]
617#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
618pub enum BNLogLevel {
619 DebugLog = 0,
620 #[doc = "! Debug logging level, most verbose logging level"]
621 InfoLog = 1,
622 #[doc = "! Information logging level, default logging level"]
623 WarningLog = 2,
624 #[doc = "! Warning logging level, messages show with warning icon in the UI"]
625 ErrorLog = 3,
626 #[doc = "! Error logging level, messages show with error icon in the UI"]
627 AlertLog = 4,
628}
629#[repr(u32)]
630#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
631pub enum BNEndianness {
632 LittleEndian = 0,
633 BigEndian = 1,
634}
635#[repr(u32)]
636#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
637pub enum BNModificationStatus {
638 Original = 0,
639 Changed = 1,
640 Inserted = 2,
641}
642#[repr(u32)]
643#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
644pub enum BNTransformType {
645 #[doc = " Two-way transform of data, binary input/output"]
646 BinaryCodecTransform = 0,
647 #[doc = " Two-way transform of data, encoder output is text"]
648 TextCodecTransform = 1,
649 #[doc = " Two-way transform of data, encoder output is Unicode string (as UTF8)"]
650 UnicodeCodecTransform = 2,
651 #[doc = " One-way decode only"]
652 DecodeTransform = 3,
653 #[doc = " One-way encode only, output is binary"]
654 BinaryEncodeTransform = 4,
655 #[doc = " One-way encode only, output is text"]
656 TextEncodeTransform = 5,
657 #[doc = " Two-way encryption"]
658 EncryptTransform = 6,
659 #[doc = " Transform that can be undone by performing twice"]
660 InvertingTransform = 7,
661 #[doc = " Hash function"]
662 HashTransform = 8,
663}
664#[repr(u32)]
665#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
666pub enum BNTransformSessionMode {
667 #[doc = " Open the root file as-is (no unwrapping)"]
668 TransformSessionModeDisabled = 0,
669 #[doc = " Discover all paths (build the full context tree)"]
670 TransformSessionModeFull = 1,
671 #[doc = " Interactively request selection at each level of the container hierarchy"]
672 TransformSessionModeInteractive = 2,
673}
674#[repr(u32)]
675#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
676pub enum BNTransformResult {
677 TransformSuccess = 0,
678 TransformNotAttempted = 1,
679 TransformFailure = 2,
680 TransformRequiresPassword = 3,
681}
682#[repr(u32)]
683#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
684pub enum BNBranchType {
685 UnconditionalBranch = 0,
686 FalseBranch = 1,
687 TrueBranch = 2,
688 CallDestination = 3,
689 FunctionReturn = 4,
690 SystemCall = 5,
691 IndirectBranch = 6,
692 ExceptionBranch = 7,
693 UnresolvedBranch = 127,
694 UserDefinedBranch = 128,
695}
696#[repr(u32)]
697#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
698pub enum BNInstructionTextTokenType {
699 TextToken = 0,
700 InstructionToken = 1,
701 OperandSeparatorToken = 2,
702 RegisterToken = 3,
703 IntegerToken = 4,
704 PossibleAddressToken = 5,
705 BeginMemoryOperandToken = 6,
706 EndMemoryOperandToken = 7,
707 FloatingPointToken = 8,
708 AnnotationToken = 9,
709 CodeRelativeAddressToken = 10,
710 ArgumentNameToken = 11,
711 HexDumpByteValueToken = 12,
712 HexDumpSkippedByteToken = 13,
713 HexDumpInvalidByteToken = 14,
714 HexDumpTextToken = 15,
715 OpcodeToken = 16,
716 StringToken = 17,
717 CharacterConstantToken = 18,
718 KeywordToken = 19,
719 TypeNameToken = 20,
720 FieldNameToken = 21,
721 NameSpaceToken = 22,
722 NameSpaceSeparatorToken = 23,
723 TagToken = 24,
724 StructOffsetToken = 25,
725 StructOffsetByteValueToken = 26,
726 StructureHexDumpTextToken = 27,
727 GotoLabelToken = 28,
728 CommentToken = 29,
729 PossibleValueToken = 30,
730 PossibleValueTypeToken = 31,
731 ArrayIndexToken = 32,
732 IndentationToken = 33,
733 UnknownMemoryToken = 34,
734 EnumerationMemberToken = 35,
735 OperationToken = 36,
736 BaseStructureNameToken = 37,
737 BaseStructureSeparatorToken = 38,
738 BraceToken = 39,
739 #[doc = " The following are output by the analysis system automatically, these should\n not be used directly by the architecture plugins"]
740 CodeSymbolToken = 64,
741 #[doc = " The following are output by the analysis system automatically, these should\n not be used directly by the architecture plugins"]
742 DataSymbolToken = 65,
743 #[doc = " The following are output by the analysis system automatically, these should\n not be used directly by the architecture plugins"]
744 LocalVariableToken = 66,
745 #[doc = " The following are output by the analysis system automatically, these should\n not be used directly by the architecture plugins"]
746 ImportToken = 67,
747 #[doc = " The following are output by the analysis system automatically, these should\n not be used directly by the architecture plugins"]
748 AddressDisplayToken = 68,
749 #[doc = " The following are output by the analysis system automatically, these should\n not be used directly by the architecture plugins"]
750 IndirectImportToken = 69,
751 #[doc = " The following are output by the analysis system automatically, these should\n not be used directly by the architecture plugins"]
752 ExternalSymbolToken = 70,
753 #[doc = " The following are output by the analysis system automatically, these should\n not be used directly by the architecture plugins"]
754 StackVariableToken = 71,
755 #[doc = " The following are output by the analysis system automatically, these should\n not be used directly by the architecture plugins"]
756 AddressSeparatorToken = 72,
757 #[doc = " The following are output by the analysis system automatically, these should\n not be used directly by the architecture plugins"]
758 CollapsedInformationToken = 73,
759 #[doc = " The following are output by the analysis system automatically, these should\n not be used directly by the architecture plugins"]
760 CollapseStateIndicatorToken = 74,
761 #[doc = " The following are output by the analysis system automatically, these should\n not be used directly by the architecture plugins"]
762 NewLineToken = 75,
763}
764#[repr(u32)]
765#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
766pub enum BNInstructionTextTokenContext {
767 NoTokenContext = 0,
768 LocalVariableTokenContext = 1,
769 DataVariableTokenContext = 2,
770 FunctionReturnTokenContext = 3,
771 InstructionAddressTokenContext = 4,
772 ILInstructionIndexTokenContext = 5,
773 #[doc = " For Const Data arrays"]
774 ConstDataTokenContext = 6,
775 #[doc = " For ConstData strings"]
776 ConstStringDataTokenContext = 7,
777 #[doc = " For References to strings"]
778 StringReferenceTokenContext = 8,
779 #[doc = " For String DataVariables"]
780 StringDataVariableTokenContext = 9,
781 #[doc = " For displaying strings which aren't associated with an address"]
782 StringDisplayTokenContext = 10,
783 ContentCollapsedContext = 11,
784 ContentExpandedContext = 12,
785 ContentCollapsiblePadding = 13,
786 DerivedStringReferenceTokenContext = 14,
787}
788#[repr(u32)]
789#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
790pub enum BNLinearDisassemblyLineType {
791 BlankLineType = 0,
792 BasicLineType = 1,
793 CodeDisassemblyLineType = 2,
794 DataVariableLineType = 3,
795 HexDumpLineType = 4,
796 FunctionHeaderLineType = 5,
797 FunctionHeaderStartLineType = 6,
798 FunctionHeaderEndLineType = 7,
799 FunctionContinuationLineType = 8,
800 LocalVariableLineType = 9,
801 LocalVariableListEndLineType = 10,
802 FunctionEndLineType = 11,
803 NoteStartLineType = 12,
804 NoteLineType = 13,
805 NoteEndLineType = 14,
806 SectionStartLineType = 15,
807 SectionEndLineType = 16,
808 SectionSeparatorLineType = 17,
809 NonContiguousSeparatorLineType = 18,
810 AnalysisWarningLineType = 19,
811 CollapsedFunctionEndLineType = 20,
812}
813#[repr(u32)]
814#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
815pub enum BNTokenEscapingType {
816 NoTokenEscapingType = 0,
817 BackticksTokenEscapingType = 1,
818 QuotedStringEscapingType = 2,
819 ReplaceInvalidCharsEscapingType = 3,
820}
821#[repr(u32)]
822#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
823pub enum BNSymbolType {
824 FunctionSymbol = 0,
825 ImportAddressSymbol = 1,
826 ImportedFunctionSymbol = 2,
827 DataSymbol = 3,
828 ImportedDataSymbol = 4,
829 ExternalSymbol = 5,
830 LibraryFunctionSymbol = 6,
831 SymbolicFunctionSymbol = 7,
832 LocalLabelSymbol = 8,
833}
834#[repr(u32)]
835#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
836pub enum BNSymbolBinding {
837 NoBinding = 0,
838 LocalBinding = 1,
839 GlobalBinding = 2,
840 WeakBinding = 3,
841}
842#[repr(u32)]
843#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
844pub enum BNLowLevelILOperation {
845 LLIL_NOP = 0,
846 #[doc = " Not valid in SSA form (see LLIL_SET_REG_SSA)"]
847 LLIL_SET_REG = 1,
848 #[doc = " Not valid in SSA form (see LLIL_SET_REG_SPLIT_SSA)"]
849 LLIL_SET_REG_SPLIT = 2,
850 #[doc = " Not valid in SSA form (see LLIL_SET_FLAG_SSA)"]
851 LLIL_SET_FLAG = 3,
852 #[doc = " Not valid in SSA form (see LLIL_SET_REG_STACK_REL_SSA)"]
853 LLIL_SET_REG_STACK_REL = 4,
854 #[doc = " Not valid in SSA form (expanded)"]
855 LLIL_REG_STACK_PUSH = 5,
856 LLIL_ASSERT = 6,
857 LLIL_FORCE_VER = 7,
858 #[doc = " Not valid in SSA form (see LLIL_LOAD_SSA)"]
859 LLIL_LOAD = 8,
860 #[doc = " Not valid in SSA form (see LLIL_STORE_SSA)"]
861 LLIL_STORE = 9,
862 #[doc = " Not valid in SSA form (expanded)"]
863 LLIL_PUSH = 10,
864 #[doc = " Not valid in SSA form (expanded)"]
865 LLIL_POP = 11,
866 #[doc = " Not valid in SSA form (see LLIL_REG_SSA)"]
867 LLIL_REG = 12,
868 #[doc = " Not valid in SSA form (see LLIL_REG_SPLIT_SSA)"]
869 LLIL_REG_SPLIT = 13,
870 #[doc = " Not valid in SSA form (see LLIL_REG_STACK_REL_SSA)"]
871 LLIL_REG_STACK_REL = 14,
872 #[doc = " Not valid in SSA form (expanded)"]
873 LLIL_REG_STACK_POP = 15,
874 #[doc = " Not valid in SSA form (see LLIL_REG_STACK_FREE_REL_SSA,\n LLIL_REG_STACK_FREE_ABS_SSA)"]
875 LLIL_REG_STACK_FREE_REG = 16,
876 #[doc = " Not valid in SSA from (see LLIL_REG_STACK_FREE_REL_SSA)"]
877 LLIL_REG_STACK_FREE_REL = 17,
878 LLIL_CONST = 18,
879 LLIL_CONST_PTR = 19,
880 LLIL_EXTERN_PTR = 20,
881 LLIL_FLOAT_CONST = 21,
882 #[doc = " Not valid in SSA form (see LLIL_FLAG_SSA)"]
883 LLIL_FLAG = 22,
884 #[doc = " Not valid in SSA form (see LLIL_FLAG_BIT_SSA)"]
885 LLIL_FLAG_BIT = 23,
886 LLIL_ADD = 24,
887 LLIL_ADC = 25,
888 LLIL_SUB = 26,
889 LLIL_SBB = 27,
890 LLIL_AND = 28,
891 LLIL_OR = 29,
892 LLIL_XOR = 30,
893 LLIL_LSL = 31,
894 LLIL_LSR = 32,
895 LLIL_ASR = 33,
896 LLIL_ROL = 34,
897 LLIL_RLC = 35,
898 LLIL_ROR = 36,
899 LLIL_RRC = 37,
900 LLIL_MUL = 38,
901 LLIL_MULU_DP = 39,
902 LLIL_MULS_DP = 40,
903 LLIL_DIVU = 41,
904 LLIL_DIVU_DP = 42,
905 LLIL_DIVS = 43,
906 LLIL_DIVS_DP = 44,
907 LLIL_MODU = 45,
908 LLIL_MODU_DP = 46,
909 LLIL_MODS = 47,
910 LLIL_MODS_DP = 48,
911 LLIL_NEG = 49,
912 LLIL_NOT = 50,
913 LLIL_SX = 51,
914 LLIL_ZX = 52,
915 LLIL_LOW_PART = 53,
916 LLIL_JUMP = 54,
917 LLIL_JUMP_TO = 55,
918 LLIL_CALL = 56,
919 LLIL_CALL_STACK_ADJUST = 57,
920 LLIL_TAILCALL = 58,
921 LLIL_RET = 59,
922 LLIL_NORET = 60,
923 LLIL_IF = 61,
924 LLIL_GOTO = 62,
925 #[doc = " Valid only in Lifted IL"]
926 LLIL_FLAG_COND = 63,
927 #[doc = " Valid only in Lifted IL"]
928 LLIL_FLAG_GROUP = 64,
929 LLIL_CMP_E = 65,
930 LLIL_CMP_NE = 66,
931 LLIL_CMP_SLT = 67,
932 LLIL_CMP_ULT = 68,
933 LLIL_CMP_SLE = 69,
934 LLIL_CMP_ULE = 70,
935 LLIL_CMP_SGE = 71,
936 LLIL_CMP_UGE = 72,
937 LLIL_CMP_SGT = 73,
938 LLIL_CMP_UGT = 74,
939 LLIL_TEST_BIT = 75,
940 LLIL_BOOL_TO_INT = 76,
941 LLIL_ADD_OVERFLOW = 77,
942 LLIL_SYSCALL = 78,
943 LLIL_BP = 79,
944 LLIL_TRAP = 80,
945 LLIL_INTRINSIC = 81,
946 LLIL_UNDEF = 82,
947 LLIL_UNIMPL = 83,
948 LLIL_UNIMPL_MEM = 84,
949 #[doc = " Floating point"]
950 LLIL_FADD = 85,
951 #[doc = " Floating point"]
952 LLIL_FSUB = 86,
953 #[doc = " Floating point"]
954 LLIL_FMUL = 87,
955 #[doc = " Floating point"]
956 LLIL_FDIV = 88,
957 #[doc = " Floating point"]
958 LLIL_FSQRT = 89,
959 #[doc = " Floating point"]
960 LLIL_FNEG = 90,
961 #[doc = " Floating point"]
962 LLIL_FABS = 91,
963 #[doc = " Floating point"]
964 LLIL_FLOAT_TO_INT = 92,
965 #[doc = " Floating point"]
966 LLIL_INT_TO_FLOAT = 93,
967 #[doc = " Floating point"]
968 LLIL_FLOAT_CONV = 94,
969 #[doc = " Floating point"]
970 LLIL_ROUND_TO_INT = 95,
971 #[doc = " Floating point"]
972 LLIL_FLOOR = 96,
973 #[doc = " Floating point"]
974 LLIL_CEIL = 97,
975 #[doc = " Floating point"]
976 LLIL_FTRUNC = 98,
977 #[doc = " Floating point"]
978 LLIL_FCMP_E = 99,
979 #[doc = " Floating point"]
980 LLIL_FCMP_NE = 100,
981 #[doc = " Floating point"]
982 LLIL_FCMP_LT = 101,
983 #[doc = " Floating point"]
984 LLIL_FCMP_LE = 102,
985 #[doc = " Floating point"]
986 LLIL_FCMP_GE = 103,
987 #[doc = " Floating point"]
988 LLIL_FCMP_GT = 104,
989 #[doc = " Floating point"]
990 LLIL_FCMP_O = 105,
991 #[doc = " Floating point"]
992 LLIL_FCMP_UO = 106,
993 #[doc = " The following instructions are only used in SSA form"]
994 LLIL_SET_REG_SSA = 107,
995 #[doc = " The following instructions are only used in SSA form"]
996 LLIL_SET_REG_SSA_PARTIAL = 108,
997 #[doc = " The following instructions are only used in SSA form"]
998 LLIL_SET_REG_SPLIT_SSA = 109,
999 #[doc = " The following instructions are only used in SSA form"]
1000 LLIL_SET_REG_STACK_REL_SSA = 110,
1001 #[doc = " The following instructions are only used in SSA form"]
1002 LLIL_SET_REG_STACK_ABS_SSA = 111,
1003 #[doc = " Only valid within an LLIL_SET_REG_SPLIT_SSA instruction"]
1004 LLIL_REG_SPLIT_DEST_SSA = 112,
1005 #[doc = " Only valid within LLIL_SET_REG_STACK_REL_SSA or LLIL_SET_REG_STACK_ABS_SSA"]
1006 LLIL_REG_STACK_DEST_SSA = 113,
1007 LLIL_REG_SSA = 114,
1008 LLIL_REG_SSA_PARTIAL = 115,
1009 LLIL_REG_SPLIT_SSA = 116,
1010 LLIL_REG_STACK_REL_SSA = 117,
1011 LLIL_REG_STACK_ABS_SSA = 118,
1012 LLIL_REG_STACK_FREE_REL_SSA = 119,
1013 LLIL_REG_STACK_FREE_ABS_SSA = 120,
1014 LLIL_SET_FLAG_SSA = 121,
1015 LLIL_ASSERT_SSA = 122,
1016 LLIL_FORCE_VER_SSA = 123,
1017 LLIL_FLAG_SSA = 124,
1018 LLIL_FLAG_BIT_SSA = 125,
1019 LLIL_CALL_SSA = 126,
1020 LLIL_SYSCALL_SSA = 127,
1021 LLIL_TAILCALL_SSA = 128,
1022 #[doc = " Only valid within the LLIL_CALL_SSA, LLIL_SYSCALL_SSA, LLIL_INTRINSIC, LLIL_INTRINSIC_SSA,\n LLIL_MEMORY_INTRINSIC_SSA, LLIL_TAILCALL, LLIL_TAILCALL_SSA instructions"]
1023 LLIL_CALL_PARAM = 129,
1024 #[doc = " Only valid within the LLIL_CALL_SSA or LLIL_SYSCALL_SSA instructions"]
1025 LLIL_CALL_STACK_SSA = 130,
1026 #[doc = " Only valid within the LLIL_CALL_SSA or LLIL_SYSCALL_SSA instructions"]
1027 LLIL_CALL_OUTPUT_SSA = 131,
1028 #[doc = " Only valid within the LLIL_CALL_PARAM instruction"]
1029 LLIL_SEPARATE_PARAM_LIST_SSA = 132,
1030 #[doc = " Only valid within the LLIL_CALL_PARAM or LLIL_SEPARATE_PARAM_LIST_SSA instructions"]
1031 LLIL_SHARED_PARAM_SLOT_SSA = 133,
1032 #[doc = " Only valid within the LLIL_MEMORY_INTRINSIC_SSA instruction"]
1033 LLIL_MEMORY_INTRINSIC_OUTPUT_SSA = 134,
1034 LLIL_LOAD_SSA = 135,
1035 LLIL_STORE_SSA = 136,
1036 LLIL_INTRINSIC_SSA = 137,
1037 LLIL_MEMORY_INTRINSIC_SSA = 138,
1038 LLIL_REG_PHI = 139,
1039 LLIL_REG_STACK_PHI = 140,
1040 LLIL_FLAG_PHI = 141,
1041 LLIL_MEM_PHI = 142,
1042}
1043#[repr(u32)]
1044#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1045pub enum BNLowLevelILFlagCondition {
1046 LLFC_E = 0,
1047 LLFC_NE = 1,
1048 LLFC_SLT = 2,
1049 LLFC_ULT = 3,
1050 LLFC_SLE = 4,
1051 LLFC_ULE = 5,
1052 LLFC_SGE = 6,
1053 LLFC_UGE = 7,
1054 LLFC_SGT = 8,
1055 LLFC_UGT = 9,
1056 LLFC_NEG = 10,
1057 LLFC_POS = 11,
1058 LLFC_O = 12,
1059 LLFC_NO = 13,
1060 LLFC_FE = 14,
1061 LLFC_FNE = 15,
1062 LLFC_FLT = 16,
1063 LLFC_FLE = 17,
1064 LLFC_FGE = 18,
1065 LLFC_FGT = 19,
1066 LLFC_FO = 20,
1067 LLFC_FUO = 21,
1068}
1069#[repr(u32)]
1070#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1071pub enum BNFlagRole {
1072 SpecialFlagRole = 0,
1073 ZeroFlagRole = 1,
1074 PositiveSignFlagRole = 2,
1075 NegativeSignFlagRole = 3,
1076 CarryFlagRole = 4,
1077 OverflowFlagRole = 5,
1078 HalfCarryFlagRole = 6,
1079 EvenParityFlagRole = 7,
1080 OddParityFlagRole = 8,
1081 OrderedFlagRole = 9,
1082 UnorderedFlagRole = 10,
1083 CarryFlagWithInvertedSubtractRole = 11,
1084}
1085#[repr(i32)]
1086#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1087pub enum BNFunctionGraphType {
1088 InvalidILViewType = -1,
1089 NormalFunctionGraph = 0,
1090 LowLevelILFunctionGraph = 1,
1091 LiftedILFunctionGraph = 2,
1092 LowLevelILSSAFormFunctionGraph = 3,
1093 MediumLevelILFunctionGraph = 4,
1094 MediumLevelILSSAFormFunctionGraph = 5,
1095 MappedMediumLevelILFunctionGraph = 6,
1096 MappedMediumLevelILSSAFormFunctionGraph = 7,
1097 HighLevelILFunctionGraph = 8,
1098 HighLevelILSSAFormFunctionGraph = 9,
1099 HighLevelLanguageRepresentationFunctionGraph = 10,
1100}
1101#[repr(C)]
1102#[derive(Debug, Copy, Clone)]
1103pub struct BNFunctionViewType {
1104 pub type_: BNFunctionGraphType,
1105 #[doc = " Only used for HighLevelLanguageRepresentationFunctionGraph"]
1106 pub name: *const ::std::os::raw::c_char,
1107}
1108#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1109const _: () = {
1110 ["Size of BNFunctionViewType"][::std::mem::size_of::<BNFunctionViewType>() - 16usize];
1111 ["Alignment of BNFunctionViewType"][::std::mem::align_of::<BNFunctionViewType>() - 8usize];
1112 ["Offset of field: BNFunctionViewType::type_"]
1113 [::std::mem::offset_of!(BNFunctionViewType, type_) - 0usize];
1114 ["Offset of field: BNFunctionViewType::name"]
1115 [::std::mem::offset_of!(BNFunctionViewType, name) - 8usize];
1116};
1117impl Default for BNFunctionViewType {
1118 fn default() -> Self {
1119 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1120 unsafe {
1121 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1122 s.assume_init()
1123 }
1124 }
1125}
1126#[repr(u32)]
1127#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1128pub enum BNDisassemblyOption {
1129 ShowAddress = 0,
1130 ShowOpcode = 1,
1131 ExpandLongOpcode = 2,
1132 ShowVariablesAtTopOfGraph = 3,
1133 ShowVariableTypesWhenAssigned = 4,
1134 ShowRegisterHighlight = 7,
1135 ShowFunctionAddress = 8,
1136 ShowFunctionHeader = 9,
1137 ShowTypeCasts = 10,
1138 #[doc = " Linear disassembly options"]
1139 GroupLinearDisassemblyFunctions = 64,
1140 #[doc = " Linear disassembly options"]
1141 HighLevelILLinearDisassembly = 65,
1142 #[doc = " Linear disassembly options"]
1143 WaitForIL = 66,
1144 #[doc = " Linear disassembly options"]
1145 IndentHLILBody = 67,
1146 #[doc = " Linear disassembly options"]
1147 DisableLineFormatting = 68,
1148 #[doc = " Debugging options"]
1149 ShowFlagUsage = 128,
1150 #[doc = " Debugging options"]
1151 ShowStackPointer = 129,
1152 #[doc = " Debugging options"]
1153 ShowILTypes = 130,
1154 #[doc = " Debugging options"]
1155 ShowILOpcodes = 131,
1156 #[doc = " Debugging options"]
1157 ShowCollapseIndicators = 132,
1158}
1159#[repr(u32)]
1160#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1161pub enum BNDisassemblyAddressMode {
1162 AbsoluteDisassemblyAddressMode = 0,
1163 RelativeToBinaryStartDisassemblyAddressMode = 1,
1164 RelativeToSegmentStartDisassemblyAddressMode = 2,
1165 RelativeToSectionStartDisassemblyAddressMode = 3,
1166 RelativeToFunctionStartDisassemblyAddressMode = 4,
1167 RelativeToAddressBaseOffsetDisassemblyAddressMode = 5,
1168 RelativeToDataStartDisassemblyAddressMode = 6,
1169 DisassemblyAddressModeMask = 65535,
1170 IncludeNameDisassemblyAddressModeFlag = 65536,
1171 DecimalDisassemblyAddressModeFlag = 131072,
1172 DisassemblyAddressModeFlagsMask = 4294901760,
1173}
1174#[repr(u32)]
1175#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1176pub enum BNDisassemblyCallParameterHints {
1177 NeverShowMatchingParameterHints = 0,
1178 AlwaysShowParameterHints = 1,
1179 NeverShowParameterHints = 2,
1180}
1181#[repr(u32)]
1182#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1183pub enum BNDisassemblyBlockLabels {
1184 NeverShowDefaultBlockLabels = 0,
1185 AlwaysShowBlockLabels = 1,
1186 NeverShowBlockLabels = 2,
1187}
1188#[repr(u32)]
1189#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1190pub enum BNTypeClass {
1191 VoidTypeClass = 0,
1192 BoolTypeClass = 1,
1193 IntegerTypeClass = 2,
1194 FloatTypeClass = 3,
1195 StructureTypeClass = 4,
1196 EnumerationTypeClass = 5,
1197 PointerTypeClass = 6,
1198 ArrayTypeClass = 7,
1199 FunctionTypeClass = 8,
1200 VarArgsTypeClass = 9,
1201 ValueTypeClass = 10,
1202 NamedTypeReferenceClass = 11,
1203 WideCharTypeClass = 12,
1204}
1205#[repr(u32)]
1206#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1207pub enum BNNamedTypeReferenceClass {
1208 UnknownNamedTypeClass = 0,
1209 TypedefNamedTypeClass = 1,
1210 ClassNamedTypeClass = 2,
1211 StructNamedTypeClass = 3,
1212 UnionNamedTypeClass = 4,
1213 EnumNamedTypeClass = 5,
1214}
1215#[repr(u32)]
1216#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1217pub enum BNStructureVariant {
1218 ClassStructureType = 0,
1219 StructStructureType = 1,
1220 UnionStructureType = 2,
1221}
1222#[repr(u32)]
1223#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1224pub enum BNMemberScope {
1225 NoScope = 0,
1226 StaticScope = 1,
1227 VirtualScope = 2,
1228 ThunkScope = 3,
1229 FriendScope = 4,
1230}
1231#[repr(u32)]
1232#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1233pub enum BNMemberAccess {
1234 NoAccess = 0,
1235 PrivateAccess = 1,
1236 ProtectedAccess = 2,
1237 PublicAccess = 3,
1238}
1239#[repr(u32)]
1240#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1241pub enum BNReferenceType {
1242 PointerReferenceType = 0,
1243 ReferenceReferenceType = 1,
1244 RValueReferenceType = 2,
1245 NoReference = 3,
1246}
1247#[repr(u32)]
1248#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1249pub enum BNPointerSuffix {
1250 Ptr64Suffix = 0,
1251 UnalignedSuffix = 1,
1252 RestrictSuffix = 2,
1253 ReferenceSuffix = 3,
1254 LvalueSuffix = 4,
1255}
1256#[repr(u32)]
1257#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1258pub enum BNPointerBaseType {
1259 AbsolutePointerBaseType = 0,
1260 RelativeToConstantPointerBaseType = 1,
1261 RelativeToBinaryStartPointerBaseType = 2,
1262 RelativeToVariableAddressPointerBaseType = 3,
1263}
1264#[repr(u32)]
1265#[doc = " Caution: these enumeration values are used a lookups into the static NameTypeStrings in the core\n if you modify this you must also modify the string lookups as well"]
1266#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1267pub enum BNNameType {
1268 NoNameType = 0,
1269 ConstructorNameType = 1,
1270 DestructorNameType = 2,
1271 OperatorNewNameType = 3,
1272 OperatorDeleteNameType = 4,
1273 OperatorAssignNameType = 5,
1274 OperatorRightShiftNameType = 6,
1275 OperatorLeftShiftNameType = 7,
1276 OperatorNotNameType = 8,
1277 OperatorEqualNameType = 9,
1278 OperatorNotEqualNameType = 10,
1279 OperatorArrayNameType = 11,
1280 OperatorArrowNameType = 12,
1281 OperatorStarNameType = 13,
1282 OperatorIncrementNameType = 14,
1283 OperatorDecrementNameType = 15,
1284 OperatorMinusNameType = 16,
1285 OperatorPlusNameType = 17,
1286 OperatorBitAndNameType = 18,
1287 OperatorArrowStarNameType = 19,
1288 OperatorDivideNameType = 20,
1289 OperatorModulusNameType = 21,
1290 OperatorLessThanNameType = 22,
1291 OperatorLessThanEqualNameType = 23,
1292 OperatorGreaterThanNameType = 24,
1293 OperatorGreaterThanEqualNameType = 25,
1294 OperatorCommaNameType = 26,
1295 OperatorParenthesesNameType = 27,
1296 OperatorTildeNameType = 28,
1297 OperatorXorNameType = 29,
1298 OperatorBitOrNameType = 30,
1299 OperatorLogicalAndNameType = 31,
1300 OperatorLogicalOrNameType = 32,
1301 OperatorStarEqualNameType = 33,
1302 OperatorPlusEqualNameType = 34,
1303 OperatorMinusEqualNameType = 35,
1304 OperatorDivideEqualNameType = 36,
1305 OperatorModulusEqualNameType = 37,
1306 OperatorRightShiftEqualNameType = 38,
1307 OperatorLeftShiftEqualNameType = 39,
1308 OperatorAndEqualNameType = 40,
1309 OperatorOrEqualNameType = 41,
1310 OperatorXorEqualNameType = 42,
1311 VFTableNameType = 43,
1312 VBTableNameType = 44,
1313 VCallNameType = 45,
1314 TypeofNameType = 46,
1315 LocalStaticGuardNameType = 47,
1316 StringNameType = 48,
1317 VBaseDestructorNameType = 49,
1318 VectorDeletingDestructorNameType = 50,
1319 DefaultConstructorClosureNameType = 51,
1320 ScalarDeletingDestructorNameType = 52,
1321 VectorConstructorIteratorNameType = 53,
1322 VectorDestructorIteratorNameType = 54,
1323 VectorVBaseConstructorIteratorNameType = 55,
1324 VirtualDisplacementMapNameType = 56,
1325 EHVectorConstructorIteratorNameType = 57,
1326 EHVectorDestructorIteratorNameType = 58,
1327 EHVectorVBaseConstructorIteratorNameType = 59,
1328 CopyConstructorClosureNameType = 60,
1329 UDTReturningNameType = 61,
1330 LocalVFTableNameType = 62,
1331 LocalVFTableConstructorClosureNameType = 63,
1332 OperatorNewArrayNameType = 64,
1333 OperatorDeleteArrayNameType = 65,
1334 PlacementDeleteClosureNameType = 66,
1335 PlacementDeleteClosureArrayNameType = 67,
1336 OperatorReturnTypeNameType = 68,
1337 RttiTypeDescriptor = 69,
1338 RttiBaseClassDescriptor = 70,
1339 RttiBaseClassArray = 71,
1340 RttiClassHierarchyDescriptor = 72,
1341 RttiCompleteObjectLocator = 73,
1342 OperatorUnaryMinusNameType = 74,
1343 OperatorUnaryPlusNameType = 75,
1344 OperatorUnaryBitAndNameType = 76,
1345 OperatorUnaryStarNameType = 77,
1346 OmniCallSigNameType = 78,
1347 ManagedVectorConstructorIteratorNameType = 79,
1348 ManagedVectorDestructorIteratorNameType = 80,
1349 EHVectorCopyConstructorIteratorNameType = 81,
1350 EHVectorVBaseCopyConstructorIteratorNameType = 82,
1351 DynamicInitializerNameType = 83,
1352 DynamicAtExitDestructorNameType = 84,
1353 VectorCopyConstructorIteratorNameType = 85,
1354 VectorVBaseCopyConstructorIteratorNameType = 86,
1355 ManagedVectorCopyConstructorIteratorNameType = 87,
1356 LocalStaticThreadGuardNameType = 88,
1357 UserDefinedLiteralOperatorNameType = 89,
1358}
1359#[repr(u32)]
1360#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1361pub enum BNCallingConventionName {
1362 NoCallingConvention = 0,
1363 CdeclCallingConvention = 1,
1364 PascalCallingConvention = 2,
1365 ThisCallCallingConvention = 3,
1366 STDCallCallingConvention = 4,
1367 FastcallCallingConvention = 5,
1368 CLRCallCallingConvention = 6,
1369 EabiCallCallingConvention = 7,
1370 VectorCallCallingConvention = 8,
1371 SwiftCallingConvention = 9,
1372 SwiftAsyncCallingConvention = 10,
1373}
1374#[repr(u32)]
1375#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1376pub enum BNStringType {
1377 AsciiString = 0,
1378 Utf16String = 1,
1379 Utf32String = 2,
1380 Utf8String = 3,
1381}
1382#[repr(u32)]
1383#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1384pub enum BNIntegerDisplayType {
1385 DefaultIntegerDisplayType = 0,
1386 BinaryDisplayType = 1,
1387 SignedOctalDisplayType = 2,
1388 UnsignedOctalDisplayType = 3,
1389 SignedDecimalDisplayType = 4,
1390 UnsignedDecimalDisplayType = 5,
1391 SignedHexadecimalDisplayType = 6,
1392 UnsignedHexadecimalDisplayType = 7,
1393 CharacterConstantDisplayType = 8,
1394 PointerDisplayType = 9,
1395 FloatDisplayType = 10,
1396 DoubleDisplayType = 11,
1397 EnumerationDisplayType = 12,
1398 InvertedCharacterConstantDisplayType = 13,
1399}
1400#[repr(u32)]
1401#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1402pub enum BNFlowGraphOption {
1403 FlowGraphUsesBlockHighlights = 0,
1404 FlowGraphUsesInstructionHighlights = 1,
1405 FlowGraphIncludesUserComments = 2,
1406 FlowGraphAllowsPatching = 3,
1407 FlowGraphAllowsInlineInstructionEditing = 4,
1408 FlowGraphShowsSecondaryRegisterHighlighting = 5,
1409 FlowGraphIsAddressable = 6,
1410 FlowGraphIsWorkflowGraph = 7,
1411}
1412#[repr(u32)]
1413#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1414pub enum BNIntrinsicClass {
1415 GeneralIntrinsicClass = 0,
1416 MemoryIntrinsicClass = 1,
1417}
1418#[repr(C)]
1419#[derive(Debug, Copy, Clone)]
1420pub struct BNLowLevelILInstruction {
1421 pub operation: BNLowLevelILOperation,
1422 pub attributes: u32,
1423 pub size: usize,
1424 pub flags: u32,
1425 pub sourceOperand: u32,
1426 pub operands: [u64; 4usize],
1427 pub address: u64,
1428}
1429#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1430const _: () = {
1431 ["Size of BNLowLevelILInstruction"][::std::mem::size_of::<BNLowLevelILInstruction>() - 64usize];
1432 ["Alignment of BNLowLevelILInstruction"]
1433 [::std::mem::align_of::<BNLowLevelILInstruction>() - 8usize];
1434 ["Offset of field: BNLowLevelILInstruction::operation"]
1435 [::std::mem::offset_of!(BNLowLevelILInstruction, operation) - 0usize];
1436 ["Offset of field: BNLowLevelILInstruction::attributes"]
1437 [::std::mem::offset_of!(BNLowLevelILInstruction, attributes) - 4usize];
1438 ["Offset of field: BNLowLevelILInstruction::size"]
1439 [::std::mem::offset_of!(BNLowLevelILInstruction, size) - 8usize];
1440 ["Offset of field: BNLowLevelILInstruction::flags"]
1441 [::std::mem::offset_of!(BNLowLevelILInstruction, flags) - 16usize];
1442 ["Offset of field: BNLowLevelILInstruction::sourceOperand"]
1443 [::std::mem::offset_of!(BNLowLevelILInstruction, sourceOperand) - 20usize];
1444 ["Offset of field: BNLowLevelILInstruction::operands"]
1445 [::std::mem::offset_of!(BNLowLevelILInstruction, operands) - 24usize];
1446 ["Offset of field: BNLowLevelILInstruction::address"]
1447 [::std::mem::offset_of!(BNLowLevelILInstruction, address) - 56usize];
1448};
1449impl Default for BNLowLevelILInstruction {
1450 fn default() -> Self {
1451 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1452 unsafe {
1453 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1454 s.assume_init()
1455 }
1456 }
1457}
1458#[repr(C)]
1459#[derive(Debug, Default, Copy, Clone)]
1460pub struct BNLowLevelILLabel {
1461 pub resolved: bool,
1462 pub ref_: usize,
1463 pub operand: usize,
1464}
1465#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1466const _: () = {
1467 ["Size of BNLowLevelILLabel"][::std::mem::size_of::<BNLowLevelILLabel>() - 24usize];
1468 ["Alignment of BNLowLevelILLabel"][::std::mem::align_of::<BNLowLevelILLabel>() - 8usize];
1469 ["Offset of field: BNLowLevelILLabel::resolved"]
1470 [::std::mem::offset_of!(BNLowLevelILLabel, resolved) - 0usize];
1471 ["Offset of field: BNLowLevelILLabel::ref_"]
1472 [::std::mem::offset_of!(BNLowLevelILLabel, ref_) - 8usize];
1473 ["Offset of field: BNLowLevelILLabel::operand"]
1474 [::std::mem::offset_of!(BNLowLevelILLabel, operand) - 16usize];
1475};
1476#[repr(u32)]
1477#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1478pub enum BNImplicitRegisterExtend {
1479 NoExtend = 0,
1480 ZeroExtendToFullWidth = 1,
1481 SignExtendToFullWidth = 2,
1482}
1483#[repr(C)]
1484#[derive(Debug, Copy, Clone)]
1485pub struct BNRegisterInfo {
1486 pub fullWidthRegister: u32,
1487 pub offset: usize,
1488 pub size: usize,
1489 pub extend: BNImplicitRegisterExtend,
1490}
1491#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1492const _: () = {
1493 ["Size of BNRegisterInfo"][::std::mem::size_of::<BNRegisterInfo>() - 32usize];
1494 ["Alignment of BNRegisterInfo"][::std::mem::align_of::<BNRegisterInfo>() - 8usize];
1495 ["Offset of field: BNRegisterInfo::fullWidthRegister"]
1496 [::std::mem::offset_of!(BNRegisterInfo, fullWidthRegister) - 0usize];
1497 ["Offset of field: BNRegisterInfo::offset"]
1498 [::std::mem::offset_of!(BNRegisterInfo, offset) - 8usize];
1499 ["Offset of field: BNRegisterInfo::size"]
1500 [::std::mem::offset_of!(BNRegisterInfo, size) - 16usize];
1501 ["Offset of field: BNRegisterInfo::extend"]
1502 [::std::mem::offset_of!(BNRegisterInfo, extend) - 24usize];
1503};
1504impl Default for BNRegisterInfo {
1505 fn default() -> Self {
1506 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1507 unsafe {
1508 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1509 s.assume_init()
1510 }
1511 }
1512}
1513#[repr(C)]
1514#[derive(Debug, Default, Copy, Clone)]
1515pub struct BNRegisterStackInfo {
1516 pub firstStorageReg: u32,
1517 pub firstTopRelativeReg: u32,
1518 pub storageCount: u32,
1519 pub topRelativeCount: u32,
1520 pub stackTopReg: u32,
1521}
1522#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1523const _: () = {
1524 ["Size of BNRegisterStackInfo"][::std::mem::size_of::<BNRegisterStackInfo>() - 20usize];
1525 ["Alignment of BNRegisterStackInfo"][::std::mem::align_of::<BNRegisterStackInfo>() - 4usize];
1526 ["Offset of field: BNRegisterStackInfo::firstStorageReg"]
1527 [::std::mem::offset_of!(BNRegisterStackInfo, firstStorageReg) - 0usize];
1528 ["Offset of field: BNRegisterStackInfo::firstTopRelativeReg"]
1529 [::std::mem::offset_of!(BNRegisterStackInfo, firstTopRelativeReg) - 4usize];
1530 ["Offset of field: BNRegisterStackInfo::storageCount"]
1531 [::std::mem::offset_of!(BNRegisterStackInfo, storageCount) - 8usize];
1532 ["Offset of field: BNRegisterStackInfo::topRelativeCount"]
1533 [::std::mem::offset_of!(BNRegisterStackInfo, topRelativeCount) - 12usize];
1534 ["Offset of field: BNRegisterStackInfo::stackTopReg"]
1535 [::std::mem::offset_of!(BNRegisterStackInfo, stackTopReg) - 16usize];
1536};
1537#[repr(u32)]
1538#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1539pub enum BNRegisterValueType {
1540 UndeterminedValue = 0,
1541 EntryValue = 1,
1542 ConstantValue = 2,
1543 ConstantPointerValue = 3,
1544 ExternalPointerValue = 4,
1545 StackFrameOffset = 5,
1546 ReturnAddressValue = 6,
1547 ImportedAddressValue = 7,
1548 #[doc = " The following are only valid in BNPossibleValueSet"]
1549 SignedRangeValue = 8,
1550 #[doc = " The following are only valid in BNPossibleValueSet"]
1551 UnsignedRangeValue = 9,
1552 #[doc = " The following are only valid in BNPossibleValueSet"]
1553 LookupTableValue = 10,
1554 #[doc = " The following are only valid in BNPossibleValueSet"]
1555 InSetOfValues = 11,
1556 #[doc = " The following are only valid in BNPossibleValueSet"]
1557 NotInSetOfValues = 12,
1558 #[doc = " The following support constant data and values larger than 8 bytes"]
1559 ConstantDataValue = 32768,
1560 #[doc = " The following support constant data and values larger than 8 bytes"]
1561 ConstantDataZeroExtendValue = 32769,
1562 #[doc = " The following support constant data and values larger than 8 bytes"]
1563 ConstantDataSignExtendValue = 32770,
1564 #[doc = " The following support constant data and values larger than 8 bytes"]
1565 ConstantDataAggregateValue = 32771,
1566}
1567#[repr(u32)]
1568#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1569pub enum BNDataFlowQueryOption {
1570 #[doc = " Use addresses instead of index in the from list within\n LookupTableValue results"]
1571 FromAddressesInLookupTableQueryOption = 0,
1572 AllowReadingWritableMemoryQueryOption = 1,
1573}
1574#[repr(u32)]
1575#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1576pub enum BNPluginStatus {
1577 NotInstalledPluginStatus = 0,
1578 InstalledPluginStatus = 1,
1579 EnabledPluginStatus = 2,
1580 UpdateAvailablePluginStatus = 16,
1581 DeletePendingPluginStatus = 32,
1582 UpdatePendingPluginStatus = 64,
1583 DisablePendingPluginStatus = 128,
1584 PendingRestartPluginStatus = 512,
1585 BeingUpdatedPluginStatus = 1024,
1586 BeingDeletedPluginStatus = 2048,
1587 DependenciesBeingInstalledStatus = 4096,
1588}
1589#[repr(u32)]
1590#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1591pub enum BNPluginType {
1592 CorePluginType = 0,
1593 UiPluginType = 1,
1594 ArchitecturePluginType = 2,
1595 BinaryViewPluginType = 3,
1596 HelperPluginType = 4,
1597 SyncPluginType = 5,
1598}
1599#[repr(C)]
1600#[derive(Debug, Copy, Clone)]
1601pub struct BNLookupTableEntry {
1602 pub fromValues: *mut i64,
1603 pub fromCount: usize,
1604 pub toValue: i64,
1605}
1606#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1607const _: () = {
1608 ["Size of BNLookupTableEntry"][::std::mem::size_of::<BNLookupTableEntry>() - 24usize];
1609 ["Alignment of BNLookupTableEntry"][::std::mem::align_of::<BNLookupTableEntry>() - 8usize];
1610 ["Offset of field: BNLookupTableEntry::fromValues"]
1611 [::std::mem::offset_of!(BNLookupTableEntry, fromValues) - 0usize];
1612 ["Offset of field: BNLookupTableEntry::fromCount"]
1613 [::std::mem::offset_of!(BNLookupTableEntry, fromCount) - 8usize];
1614 ["Offset of field: BNLookupTableEntry::toValue"]
1615 [::std::mem::offset_of!(BNLookupTableEntry, toValue) - 16usize];
1616};
1617impl Default for BNLookupTableEntry {
1618 fn default() -> Self {
1619 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1620 unsafe {
1621 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1622 s.assume_init()
1623 }
1624 }
1625}
1626#[repr(C)]
1627#[derive(Debug, Copy, Clone)]
1628pub struct BNRegisterValue {
1629 pub state: BNRegisterValueType,
1630 pub value: i64,
1631 pub offset: i64,
1632 pub size: usize,
1633}
1634#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1635const _: () = {
1636 ["Size of BNRegisterValue"][::std::mem::size_of::<BNRegisterValue>() - 32usize];
1637 ["Alignment of BNRegisterValue"][::std::mem::align_of::<BNRegisterValue>() - 8usize];
1638 ["Offset of field: BNRegisterValue::state"]
1639 [::std::mem::offset_of!(BNRegisterValue, state) - 0usize];
1640 ["Offset of field: BNRegisterValue::value"]
1641 [::std::mem::offset_of!(BNRegisterValue, value) - 8usize];
1642 ["Offset of field: BNRegisterValue::offset"]
1643 [::std::mem::offset_of!(BNRegisterValue, offset) - 16usize];
1644 ["Offset of field: BNRegisterValue::size"]
1645 [::std::mem::offset_of!(BNRegisterValue, size) - 24usize];
1646};
1647impl Default for BNRegisterValue {
1648 fn default() -> Self {
1649 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1650 unsafe {
1651 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1652 s.assume_init()
1653 }
1654 }
1655}
1656#[repr(C)]
1657#[derive(Debug, Copy, Clone)]
1658pub struct BNRegisterValueWithConfidence {
1659 pub value: BNRegisterValue,
1660 pub confidence: u8,
1661}
1662#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1663const _: () = {
1664 ["Size of BNRegisterValueWithConfidence"]
1665 [::std::mem::size_of::<BNRegisterValueWithConfidence>() - 40usize];
1666 ["Alignment of BNRegisterValueWithConfidence"]
1667 [::std::mem::align_of::<BNRegisterValueWithConfidence>() - 8usize];
1668 ["Offset of field: BNRegisterValueWithConfidence::value"]
1669 [::std::mem::offset_of!(BNRegisterValueWithConfidence, value) - 0usize];
1670 ["Offset of field: BNRegisterValueWithConfidence::confidence"]
1671 [::std::mem::offset_of!(BNRegisterValueWithConfidence, confidence) - 32usize];
1672};
1673impl Default for BNRegisterValueWithConfidence {
1674 fn default() -> Self {
1675 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1676 unsafe {
1677 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1678 s.assume_init()
1679 }
1680 }
1681}
1682#[repr(C)]
1683#[derive(Debug, Default, Copy, Clone)]
1684pub struct BNValueRange {
1685 pub start: u64,
1686 pub end: u64,
1687 pub step: u64,
1688}
1689#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1690const _: () = {
1691 ["Size of BNValueRange"][::std::mem::size_of::<BNValueRange>() - 24usize];
1692 ["Alignment of BNValueRange"][::std::mem::align_of::<BNValueRange>() - 8usize];
1693 ["Offset of field: BNValueRange::start"][::std::mem::offset_of!(BNValueRange, start) - 0usize];
1694 ["Offset of field: BNValueRange::end"][::std::mem::offset_of!(BNValueRange, end) - 8usize];
1695 ["Offset of field: BNValueRange::step"][::std::mem::offset_of!(BNValueRange, step) - 16usize];
1696};
1697#[repr(C)]
1698#[derive(Debug, Copy, Clone)]
1699pub struct BNPossibleValueSet {
1700 pub state: BNRegisterValueType,
1701 pub value: i64,
1702 pub offset: i64,
1703 pub size: usize,
1704 pub ranges: *mut BNValueRange,
1705 pub valueSet: *mut i64,
1706 pub table: *mut BNLookupTableEntry,
1707 pub count: usize,
1708}
1709#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1710const _: () = {
1711 ["Size of BNPossibleValueSet"][::std::mem::size_of::<BNPossibleValueSet>() - 64usize];
1712 ["Alignment of BNPossibleValueSet"][::std::mem::align_of::<BNPossibleValueSet>() - 8usize];
1713 ["Offset of field: BNPossibleValueSet::state"]
1714 [::std::mem::offset_of!(BNPossibleValueSet, state) - 0usize];
1715 ["Offset of field: BNPossibleValueSet::value"]
1716 [::std::mem::offset_of!(BNPossibleValueSet, value) - 8usize];
1717 ["Offset of field: BNPossibleValueSet::offset"]
1718 [::std::mem::offset_of!(BNPossibleValueSet, offset) - 16usize];
1719 ["Offset of field: BNPossibleValueSet::size"]
1720 [::std::mem::offset_of!(BNPossibleValueSet, size) - 24usize];
1721 ["Offset of field: BNPossibleValueSet::ranges"]
1722 [::std::mem::offset_of!(BNPossibleValueSet, ranges) - 32usize];
1723 ["Offset of field: BNPossibleValueSet::valueSet"]
1724 [::std::mem::offset_of!(BNPossibleValueSet, valueSet) - 40usize];
1725 ["Offset of field: BNPossibleValueSet::table"]
1726 [::std::mem::offset_of!(BNPossibleValueSet, table) - 48usize];
1727 ["Offset of field: BNPossibleValueSet::count"]
1728 [::std::mem::offset_of!(BNPossibleValueSet, count) - 56usize];
1729};
1730impl Default for BNPossibleValueSet {
1731 fn default() -> Self {
1732 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1733 unsafe {
1734 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1735 s.assume_init()
1736 }
1737 }
1738}
1739#[repr(C)]
1740#[derive(Debug, Default, Copy, Clone)]
1741pub struct BNRegisterOrConstant {
1742 pub constant: bool,
1743 pub reg: u32,
1744 pub value: u64,
1745}
1746#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1747const _: () = {
1748 ["Size of BNRegisterOrConstant"][::std::mem::size_of::<BNRegisterOrConstant>() - 16usize];
1749 ["Alignment of BNRegisterOrConstant"][::std::mem::align_of::<BNRegisterOrConstant>() - 8usize];
1750 ["Offset of field: BNRegisterOrConstant::constant"]
1751 [::std::mem::offset_of!(BNRegisterOrConstant, constant) - 0usize];
1752 ["Offset of field: BNRegisterOrConstant::reg"]
1753 [::std::mem::offset_of!(BNRegisterOrConstant, reg) - 4usize];
1754 ["Offset of field: BNRegisterOrConstant::value"]
1755 [::std::mem::offset_of!(BNRegisterOrConstant, value) - 8usize];
1756};
1757#[repr(C)]
1758#[derive(Debug, Copy, Clone)]
1759pub struct BNDataVariable {
1760 pub address: u64,
1761 pub type_: *mut BNType,
1762 pub autoDiscovered: bool,
1763 pub typeConfidence: u8,
1764}
1765#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1766const _: () = {
1767 ["Size of BNDataVariable"][::std::mem::size_of::<BNDataVariable>() - 24usize];
1768 ["Alignment of BNDataVariable"][::std::mem::align_of::<BNDataVariable>() - 8usize];
1769 ["Offset of field: BNDataVariable::address"]
1770 [::std::mem::offset_of!(BNDataVariable, address) - 0usize];
1771 ["Offset of field: BNDataVariable::type_"]
1772 [::std::mem::offset_of!(BNDataVariable, type_) - 8usize];
1773 ["Offset of field: BNDataVariable::autoDiscovered"]
1774 [::std::mem::offset_of!(BNDataVariable, autoDiscovered) - 16usize];
1775 ["Offset of field: BNDataVariable::typeConfidence"]
1776 [::std::mem::offset_of!(BNDataVariable, typeConfidence) - 17usize];
1777};
1778impl Default for BNDataVariable {
1779 fn default() -> Self {
1780 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1781 unsafe {
1782 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1783 s.assume_init()
1784 }
1785 }
1786}
1787#[repr(C)]
1788#[derive(Debug, Copy, Clone)]
1789pub struct BNDataVariableAndName {
1790 pub address: u64,
1791 pub type_: *mut BNType,
1792 pub name: *mut ::std::os::raw::c_char,
1793 pub autoDiscovered: bool,
1794 pub typeConfidence: u8,
1795}
1796#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1797const _: () = {
1798 ["Size of BNDataVariableAndName"][::std::mem::size_of::<BNDataVariableAndName>() - 32usize];
1799 ["Alignment of BNDataVariableAndName"]
1800 [::std::mem::align_of::<BNDataVariableAndName>() - 8usize];
1801 ["Offset of field: BNDataVariableAndName::address"]
1802 [::std::mem::offset_of!(BNDataVariableAndName, address) - 0usize];
1803 ["Offset of field: BNDataVariableAndName::type_"]
1804 [::std::mem::offset_of!(BNDataVariableAndName, type_) - 8usize];
1805 ["Offset of field: BNDataVariableAndName::name"]
1806 [::std::mem::offset_of!(BNDataVariableAndName, name) - 16usize];
1807 ["Offset of field: BNDataVariableAndName::autoDiscovered"]
1808 [::std::mem::offset_of!(BNDataVariableAndName, autoDiscovered) - 24usize];
1809 ["Offset of field: BNDataVariableAndName::typeConfidence"]
1810 [::std::mem::offset_of!(BNDataVariableAndName, typeConfidence) - 25usize];
1811};
1812impl Default for BNDataVariableAndName {
1813 fn default() -> Self {
1814 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1815 unsafe {
1816 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1817 s.assume_init()
1818 }
1819 }
1820}
1821#[repr(C)]
1822#[derive(Debug, Copy, Clone)]
1823pub struct BNDataVariableAndNameAndDebugParser {
1824 pub address: u64,
1825 pub type_: *mut BNType,
1826 pub name: *mut ::std::os::raw::c_char,
1827 pub parser: *mut ::std::os::raw::c_char,
1828 pub autoDiscovered: bool,
1829 pub typeConfidence: u8,
1830}
1831#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1832const _: () = {
1833 ["Size of BNDataVariableAndNameAndDebugParser"]
1834 [::std::mem::size_of::<BNDataVariableAndNameAndDebugParser>() - 40usize];
1835 ["Alignment of BNDataVariableAndNameAndDebugParser"]
1836 [::std::mem::align_of::<BNDataVariableAndNameAndDebugParser>() - 8usize];
1837 ["Offset of field: BNDataVariableAndNameAndDebugParser::address"]
1838 [::std::mem::offset_of!(BNDataVariableAndNameAndDebugParser, address) - 0usize];
1839 ["Offset of field: BNDataVariableAndNameAndDebugParser::type_"]
1840 [::std::mem::offset_of!(BNDataVariableAndNameAndDebugParser, type_) - 8usize];
1841 ["Offset of field: BNDataVariableAndNameAndDebugParser::name"]
1842 [::std::mem::offset_of!(BNDataVariableAndNameAndDebugParser, name) - 16usize];
1843 ["Offset of field: BNDataVariableAndNameAndDebugParser::parser"]
1844 [::std::mem::offset_of!(BNDataVariableAndNameAndDebugParser, parser) - 24usize];
1845 ["Offset of field: BNDataVariableAndNameAndDebugParser::autoDiscovered"]
1846 [::std::mem::offset_of!(BNDataVariableAndNameAndDebugParser, autoDiscovered) - 32usize];
1847 ["Offset of field: BNDataVariableAndNameAndDebugParser::typeConfidence"]
1848 [::std::mem::offset_of!(BNDataVariableAndNameAndDebugParser, typeConfidence) - 33usize];
1849};
1850impl Default for BNDataVariableAndNameAndDebugParser {
1851 fn default() -> Self {
1852 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1853 unsafe {
1854 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1855 s.assume_init()
1856 }
1857 }
1858}
1859#[repr(u32)]
1860#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1861pub enum BNMediumLevelILOperation {
1862 MLIL_NOP = 0,
1863 #[doc = " Not valid in SSA form (see MLIL_SET_VAR_SSA)"]
1864 MLIL_SET_VAR = 1,
1865 #[doc = " Not valid in SSA form (see MLIL_SET_VAR_FIELD)"]
1866 MLIL_SET_VAR_FIELD = 2,
1867 #[doc = " Not valid in SSA form (see MLIL_SET_VAR_SPLIT_SSA)"]
1868 MLIL_SET_VAR_SPLIT = 3,
1869 MLIL_ASSERT = 4,
1870 MLIL_FORCE_VER = 5,
1871 #[doc = " Not valid in SSA form (see MLIL_LOAD_SSA)"]
1872 MLIL_LOAD = 6,
1873 #[doc = " Not valid in SSA form (see MLIL_LOAD_STRUCT_SSA)"]
1874 MLIL_LOAD_STRUCT = 7,
1875 #[doc = " Not valid in SSA form (see MLIL_STORE_SSA)"]
1876 MLIL_STORE = 8,
1877 #[doc = " Not valid in SSA form (see MLIL_STORE_STRUCT_SSA)"]
1878 MLIL_STORE_STRUCT = 9,
1879 #[doc = " Not valid in SSA form (see MLIL_VAR_SSA)"]
1880 MLIL_VAR = 10,
1881 #[doc = " Not valid in SSA form (see MLIL_VAR_SSA_FIELD)"]
1882 MLIL_VAR_FIELD = 11,
1883 #[doc = " Not valid in SSA form (see MLIL_VAR_SPLIT_SSA)"]
1884 MLIL_VAR_SPLIT = 12,
1885 MLIL_ADDRESS_OF = 13,
1886 MLIL_ADDRESS_OF_FIELD = 14,
1887 MLIL_CONST = 15,
1888 MLIL_CONST_DATA = 16,
1889 MLIL_CONST_PTR = 17,
1890 MLIL_EXTERN_PTR = 18,
1891 MLIL_FLOAT_CONST = 19,
1892 MLIL_IMPORT = 20,
1893 MLIL_ADD = 21,
1894 MLIL_ADC = 22,
1895 MLIL_SUB = 23,
1896 MLIL_SBB = 24,
1897 MLIL_AND = 25,
1898 MLIL_OR = 26,
1899 MLIL_XOR = 27,
1900 MLIL_LSL = 28,
1901 MLIL_LSR = 29,
1902 MLIL_ASR = 30,
1903 MLIL_ROL = 31,
1904 MLIL_RLC = 32,
1905 MLIL_ROR = 33,
1906 MLIL_RRC = 34,
1907 MLIL_MUL = 35,
1908 MLIL_MULU_DP = 36,
1909 MLIL_MULS_DP = 37,
1910 MLIL_DIVU = 38,
1911 MLIL_DIVU_DP = 39,
1912 MLIL_DIVS = 40,
1913 MLIL_DIVS_DP = 41,
1914 MLIL_MODU = 42,
1915 MLIL_MODU_DP = 43,
1916 MLIL_MODS = 44,
1917 MLIL_MODS_DP = 45,
1918 MLIL_NEG = 46,
1919 MLIL_NOT = 47,
1920 MLIL_SX = 48,
1921 MLIL_ZX = 49,
1922 MLIL_LOW_PART = 50,
1923 MLIL_JUMP = 51,
1924 MLIL_JUMP_TO = 52,
1925 #[doc = " Intermediate stages, does not appear in final forms"]
1926 MLIL_RET_HINT = 53,
1927 #[doc = " Not valid in SSA form (see MLIL_CALL_SSA)"]
1928 MLIL_CALL = 54,
1929 #[doc = " Not valid in SSA form (see MLIL_CALL_UNTYPED_SSA)"]
1930 MLIL_CALL_UNTYPED = 55,
1931 #[doc = " Only valid within MLIL_CALL, MLIL_SYSCALL, MLIL_TAILCALL family instructions"]
1932 MLIL_CALL_OUTPUT = 56,
1933 #[doc = " Only valid within MLIL_CALL, MLIL_SYSCALL, MLIL_TAILCALL family instructions"]
1934 MLIL_CALL_PARAM = 57,
1935 #[doc = " Only valid within the MLIL_CALL_PARAM or MLIL_CALL_PARAM_SSA instructions inside\n untyped call variants"]
1936 MLIL_SEPARATE_PARAM_LIST = 58,
1937 #[doc = " Only valid within the MLIL_CALL_PARAM, MLIL_CALL_PARAM_SSA, or\n MLIL_SEPARATE_PARAM_LIST instructions inside untyped call variants"]
1938 MLIL_SHARED_PARAM_SLOT = 59,
1939 MLIL_RET = 60,
1940 MLIL_NORET = 61,
1941 MLIL_IF = 62,
1942 MLIL_GOTO = 63,
1943 MLIL_CMP_E = 64,
1944 MLIL_CMP_NE = 65,
1945 MLIL_CMP_SLT = 66,
1946 MLIL_CMP_ULT = 67,
1947 MLIL_CMP_SLE = 68,
1948 MLIL_CMP_ULE = 69,
1949 MLIL_CMP_SGE = 70,
1950 MLIL_CMP_UGE = 71,
1951 MLIL_CMP_SGT = 72,
1952 MLIL_CMP_UGT = 73,
1953 MLIL_TEST_BIT = 74,
1954 MLIL_BOOL_TO_INT = 75,
1955 MLIL_ADD_OVERFLOW = 76,
1956 #[doc = " Not valid in SSA form (see MLIL_SYSCALL_SSA)"]
1957 MLIL_SYSCALL = 77,
1958 #[doc = " Not valid in SSA form (see MLIL_SYSCALL_UNTYPED_SSA)"]
1959 MLIL_SYSCALL_UNTYPED = 78,
1960 #[doc = " Not valid in SSA form (see MLIL_TAILCALL_SSA)"]
1961 MLIL_TAILCALL = 79,
1962 #[doc = " Not valid in SSA form (see MLIL_TAILCALL_UNTYPED_SSA)"]
1963 MLIL_TAILCALL_UNTYPED = 80,
1964 #[doc = " Not valid in SSA form (see MLIL_INTRINSIC_SSA)"]
1965 MLIL_INTRINSIC = 81,
1966 #[doc = " Not valid in SSA from (see MLIL_FREE_VAR_SLOT_SSA)"]
1967 MLIL_FREE_VAR_SLOT = 82,
1968 MLIL_BP = 83,
1969 MLIL_TRAP = 84,
1970 MLIL_UNDEF = 85,
1971 MLIL_UNIMPL = 86,
1972 MLIL_UNIMPL_MEM = 87,
1973 #[doc = " Floating point"]
1974 MLIL_FADD = 88,
1975 #[doc = " Floating point"]
1976 MLIL_FSUB = 89,
1977 #[doc = " Floating point"]
1978 MLIL_FMUL = 90,
1979 #[doc = " Floating point"]
1980 MLIL_FDIV = 91,
1981 #[doc = " Floating point"]
1982 MLIL_FSQRT = 92,
1983 #[doc = " Floating point"]
1984 MLIL_FNEG = 93,
1985 #[doc = " Floating point"]
1986 MLIL_FABS = 94,
1987 #[doc = " Floating point"]
1988 MLIL_FLOAT_TO_INT = 95,
1989 #[doc = " Floating point"]
1990 MLIL_INT_TO_FLOAT = 96,
1991 #[doc = " Floating point"]
1992 MLIL_FLOAT_CONV = 97,
1993 #[doc = " Floating point"]
1994 MLIL_ROUND_TO_INT = 98,
1995 #[doc = " Floating point"]
1996 MLIL_FLOOR = 99,
1997 #[doc = " Floating point"]
1998 MLIL_CEIL = 100,
1999 #[doc = " Floating point"]
2000 MLIL_FTRUNC = 101,
2001 #[doc = " Floating point"]
2002 MLIL_FCMP_E = 102,
2003 #[doc = " Floating point"]
2004 MLIL_FCMP_NE = 103,
2005 #[doc = " Floating point"]
2006 MLIL_FCMP_LT = 104,
2007 #[doc = " Floating point"]
2008 MLIL_FCMP_LE = 105,
2009 #[doc = " Floating point"]
2010 MLIL_FCMP_GE = 106,
2011 #[doc = " Floating point"]
2012 MLIL_FCMP_GT = 107,
2013 #[doc = " Floating point"]
2014 MLIL_FCMP_O = 108,
2015 #[doc = " Floating point"]
2016 MLIL_FCMP_UO = 109,
2017 #[doc = " The following instructions are only used in SSA form"]
2018 MLIL_SET_VAR_SSA = 110,
2019 #[doc = " The following instructions are only used in SSA form"]
2020 MLIL_SET_VAR_SSA_FIELD = 111,
2021 #[doc = " The following instructions are only used in SSA form"]
2022 MLIL_SET_VAR_SPLIT_SSA = 112,
2023 #[doc = " The following instructions are only used in SSA form"]
2024 MLIL_SET_VAR_ALIASED = 113,
2025 #[doc = " The following instructions are only used in SSA form"]
2026 MLIL_SET_VAR_ALIASED_FIELD = 114,
2027 #[doc = " The following instructions are only used in SSA form"]
2028 MLIL_VAR_SSA = 115,
2029 #[doc = " The following instructions are only used in SSA form"]
2030 MLIL_VAR_SSA_FIELD = 116,
2031 #[doc = " The following instructions are only used in SSA form"]
2032 MLIL_VAR_ALIASED = 117,
2033 #[doc = " The following instructions are only used in SSA form"]
2034 MLIL_VAR_ALIASED_FIELD = 118,
2035 #[doc = " The following instructions are only used in SSA form"]
2036 MLIL_VAR_SPLIT_SSA = 119,
2037 #[doc = " The following instructions are only used in SSA form"]
2038 MLIL_ASSERT_SSA = 120,
2039 #[doc = " The following instructions are only used in SSA form"]
2040 MLIL_FORCE_VER_SSA = 121,
2041 #[doc = " The following instructions are only used in SSA form"]
2042 MLIL_CALL_SSA = 122,
2043 #[doc = " The following instructions are only used in SSA form"]
2044 MLIL_CALL_UNTYPED_SSA = 123,
2045 #[doc = " The following instructions are only used in SSA form"]
2046 MLIL_SYSCALL_SSA = 124,
2047 #[doc = " The following instructions are only used in SSA form"]
2048 MLIL_SYSCALL_UNTYPED_SSA = 125,
2049 #[doc = " The following instructions are only used in SSA form"]
2050 MLIL_TAILCALL_SSA = 126,
2051 #[doc = " The following instructions are only used in SSA form"]
2052 MLIL_TAILCALL_UNTYPED_SSA = 127,
2053 #[doc = " Only valid within the MLIL_CALL_SSA, MLIL_SYSCALL_SSA, MLIL_TAILCALL_SSA, MLIL_INTRINSIC_SSA family\n instructions"]
2054 MLIL_CALL_PARAM_SSA = 128,
2055 #[doc = " Only valid within the MLIL_CALL_SSA or MLIL_SYSCALL_SSA, MLIL_TAILCALL_SSA family\n instructions"]
2056 MLIL_CALL_OUTPUT_SSA = 129,
2057 #[doc = " Only valid within the MLIL_MEMORY_INTRINSIC_SSA instruction"]
2058 MLIL_MEMORY_INTRINSIC_OUTPUT_SSA = 130,
2059 MLIL_LOAD_SSA = 131,
2060 MLIL_LOAD_STRUCT_SSA = 132,
2061 MLIL_STORE_SSA = 133,
2062 MLIL_STORE_STRUCT_SSA = 134,
2063 MLIL_INTRINSIC_SSA = 135,
2064 MLIL_MEMORY_INTRINSIC_SSA = 136,
2065 MLIL_FREE_VAR_SLOT_SSA = 137,
2066 MLIL_VAR_PHI = 138,
2067 MLIL_MEM_PHI = 139,
2068}
2069#[repr(C)]
2070#[derive(Debug, Copy, Clone)]
2071pub struct BNMediumLevelILInstruction {
2072 pub operation: BNMediumLevelILOperation,
2073 pub attributes: u32,
2074 pub sourceOperand: u32,
2075 pub size: usize,
2076 pub operands: [u64; 5usize],
2077 pub address: u64,
2078}
2079#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2080const _: () = {
2081 ["Size of BNMediumLevelILInstruction"]
2082 [::std::mem::size_of::<BNMediumLevelILInstruction>() - 72usize];
2083 ["Alignment of BNMediumLevelILInstruction"]
2084 [::std::mem::align_of::<BNMediumLevelILInstruction>() - 8usize];
2085 ["Offset of field: BNMediumLevelILInstruction::operation"]
2086 [::std::mem::offset_of!(BNMediumLevelILInstruction, operation) - 0usize];
2087 ["Offset of field: BNMediumLevelILInstruction::attributes"]
2088 [::std::mem::offset_of!(BNMediumLevelILInstruction, attributes) - 4usize];
2089 ["Offset of field: BNMediumLevelILInstruction::sourceOperand"]
2090 [::std::mem::offset_of!(BNMediumLevelILInstruction, sourceOperand) - 8usize];
2091 ["Offset of field: BNMediumLevelILInstruction::size"]
2092 [::std::mem::offset_of!(BNMediumLevelILInstruction, size) - 16usize];
2093 ["Offset of field: BNMediumLevelILInstruction::operands"]
2094 [::std::mem::offset_of!(BNMediumLevelILInstruction, operands) - 24usize];
2095 ["Offset of field: BNMediumLevelILInstruction::address"]
2096 [::std::mem::offset_of!(BNMediumLevelILInstruction, address) - 64usize];
2097};
2098impl Default for BNMediumLevelILInstruction {
2099 fn default() -> Self {
2100 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2101 unsafe {
2102 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2103 s.assume_init()
2104 }
2105 }
2106}
2107#[repr(C)]
2108#[derive(Debug, Default, Copy, Clone)]
2109pub struct BNMediumLevelILLabel {
2110 pub resolved: bool,
2111 pub ref_: usize,
2112 pub operand: usize,
2113}
2114#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2115const _: () = {
2116 ["Size of BNMediumLevelILLabel"][::std::mem::size_of::<BNMediumLevelILLabel>() - 24usize];
2117 ["Alignment of BNMediumLevelILLabel"][::std::mem::align_of::<BNMediumLevelILLabel>() - 8usize];
2118 ["Offset of field: BNMediumLevelILLabel::resolved"]
2119 [::std::mem::offset_of!(BNMediumLevelILLabel, resolved) - 0usize];
2120 ["Offset of field: BNMediumLevelILLabel::ref_"]
2121 [::std::mem::offset_of!(BNMediumLevelILLabel, ref_) - 8usize];
2122 ["Offset of field: BNMediumLevelILLabel::operand"]
2123 [::std::mem::offset_of!(BNMediumLevelILLabel, operand) - 16usize];
2124};
2125#[repr(u32)]
2126#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2127pub enum BNVariableSourceType {
2128 StackVariableSourceType = 0,
2129 RegisterVariableSourceType = 1,
2130 FlagVariableSourceType = 2,
2131}
2132#[repr(C)]
2133#[derive(Debug, Copy, Clone)]
2134pub struct BNVariable {
2135 pub type_: BNVariableSourceType,
2136 pub index: u32,
2137 pub storage: i64,
2138}
2139#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2140const _: () = {
2141 ["Size of BNVariable"][::std::mem::size_of::<BNVariable>() - 16usize];
2142 ["Alignment of BNVariable"][::std::mem::align_of::<BNVariable>() - 8usize];
2143 ["Offset of field: BNVariable::type_"][::std::mem::offset_of!(BNVariable, type_) - 0usize];
2144 ["Offset of field: BNVariable::index"][::std::mem::offset_of!(BNVariable, index) - 4usize];
2145 ["Offset of field: BNVariable::storage"][::std::mem::offset_of!(BNVariable, storage) - 8usize];
2146};
2147impl Default for BNVariable {
2148 fn default() -> Self {
2149 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2150 unsafe {
2151 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2152 s.assume_init()
2153 }
2154 }
2155}
2156#[repr(u32)]
2157#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2158pub enum BNHighLevelILOperation {
2159 HLIL_NOP = 0,
2160 HLIL_BLOCK = 1,
2161 HLIL_IF = 2,
2162 HLIL_WHILE = 3,
2163 HLIL_DO_WHILE = 4,
2164 HLIL_FOR = 5,
2165 HLIL_SWITCH = 6,
2166 HLIL_CASE = 7,
2167 HLIL_BREAK = 8,
2168 HLIL_CONTINUE = 9,
2169 HLIL_JUMP = 10,
2170 HLIL_RET = 11,
2171 HLIL_NORET = 12,
2172 HLIL_GOTO = 13,
2173 HLIL_LABEL = 14,
2174 HLIL_VAR_DECLARE = 15,
2175 HLIL_VAR_INIT = 16,
2176 HLIL_ASSIGN = 17,
2177 HLIL_ASSIGN_UNPACK = 18,
2178 HLIL_FORCE_VER = 19,
2179 HLIL_ASSERT = 20,
2180 HLIL_VAR = 21,
2181 HLIL_STRUCT_FIELD = 22,
2182 HLIL_ARRAY_INDEX = 23,
2183 HLIL_SPLIT = 24,
2184 HLIL_DEREF = 25,
2185 HLIL_DEREF_FIELD = 26,
2186 HLIL_ADDRESS_OF = 27,
2187 HLIL_CONST = 28,
2188 HLIL_CONST_DATA = 29,
2189 HLIL_CONST_PTR = 30,
2190 HLIL_EXTERN_PTR = 31,
2191 HLIL_FLOAT_CONST = 32,
2192 HLIL_IMPORT = 33,
2193 HLIL_ADD = 34,
2194 HLIL_ADC = 35,
2195 HLIL_SUB = 36,
2196 HLIL_SBB = 37,
2197 HLIL_AND = 38,
2198 HLIL_OR = 39,
2199 HLIL_XOR = 40,
2200 HLIL_LSL = 41,
2201 HLIL_LSR = 42,
2202 HLIL_ASR = 43,
2203 HLIL_ROL = 44,
2204 HLIL_RLC = 45,
2205 HLIL_ROR = 46,
2206 HLIL_RRC = 47,
2207 HLIL_MUL = 48,
2208 HLIL_MULU_DP = 49,
2209 HLIL_MULS_DP = 50,
2210 HLIL_DIVU = 51,
2211 HLIL_DIVU_DP = 52,
2212 HLIL_DIVS = 53,
2213 HLIL_DIVS_DP = 54,
2214 HLIL_MODU = 55,
2215 HLIL_MODU_DP = 56,
2216 HLIL_MODS = 57,
2217 HLIL_MODS_DP = 58,
2218 HLIL_NEG = 59,
2219 HLIL_NOT = 60,
2220 HLIL_SX = 61,
2221 HLIL_ZX = 62,
2222 HLIL_LOW_PART = 63,
2223 HLIL_CALL = 64,
2224 HLIL_CMP_E = 65,
2225 HLIL_CMP_NE = 66,
2226 HLIL_CMP_SLT = 67,
2227 HLIL_CMP_ULT = 68,
2228 HLIL_CMP_SLE = 69,
2229 HLIL_CMP_ULE = 70,
2230 HLIL_CMP_SGE = 71,
2231 HLIL_CMP_UGE = 72,
2232 HLIL_CMP_SGT = 73,
2233 HLIL_CMP_UGT = 74,
2234 HLIL_TEST_BIT = 75,
2235 HLIL_BOOL_TO_INT = 76,
2236 HLIL_ADD_OVERFLOW = 77,
2237 HLIL_SYSCALL = 78,
2238 HLIL_TAILCALL = 79,
2239 HLIL_INTRINSIC = 80,
2240 HLIL_BP = 81,
2241 HLIL_TRAP = 82,
2242 HLIL_UNDEF = 83,
2243 HLIL_UNIMPL = 84,
2244 HLIL_UNIMPL_MEM = 85,
2245 #[doc = " Floating point"]
2246 HLIL_FADD = 86,
2247 #[doc = " Floating point"]
2248 HLIL_FSUB = 87,
2249 #[doc = " Floating point"]
2250 HLIL_FMUL = 88,
2251 #[doc = " Floating point"]
2252 HLIL_FDIV = 89,
2253 #[doc = " Floating point"]
2254 HLIL_FSQRT = 90,
2255 #[doc = " Floating point"]
2256 HLIL_FNEG = 91,
2257 #[doc = " Floating point"]
2258 HLIL_FABS = 92,
2259 #[doc = " Floating point"]
2260 HLIL_FLOAT_TO_INT = 93,
2261 #[doc = " Floating point"]
2262 HLIL_INT_TO_FLOAT = 94,
2263 #[doc = " Floating point"]
2264 HLIL_FLOAT_CONV = 95,
2265 #[doc = " Floating point"]
2266 HLIL_ROUND_TO_INT = 96,
2267 #[doc = " Floating point"]
2268 HLIL_FLOOR = 97,
2269 #[doc = " Floating point"]
2270 HLIL_CEIL = 98,
2271 #[doc = " Floating point"]
2272 HLIL_FTRUNC = 99,
2273 #[doc = " Floating point"]
2274 HLIL_FCMP_E = 100,
2275 #[doc = " Floating point"]
2276 HLIL_FCMP_NE = 101,
2277 #[doc = " Floating point"]
2278 HLIL_FCMP_LT = 102,
2279 #[doc = " Floating point"]
2280 HLIL_FCMP_LE = 103,
2281 #[doc = " Floating point"]
2282 HLIL_FCMP_GE = 104,
2283 #[doc = " Floating point"]
2284 HLIL_FCMP_GT = 105,
2285 #[doc = " Floating point"]
2286 HLIL_FCMP_O = 106,
2287 #[doc = " Floating point"]
2288 HLIL_FCMP_UO = 107,
2289 #[doc = " Unreachable hint, typically used in switch statements that analysis knows\n has an unreachable default."]
2290 HLIL_UNREACHABLE = 108,
2291 #[doc = " The following instructions are only used in SSA form"]
2292 HLIL_WHILE_SSA = 109,
2293 #[doc = " The following instructions are only used in SSA form"]
2294 HLIL_DO_WHILE_SSA = 110,
2295 #[doc = " The following instructions are only used in SSA form"]
2296 HLIL_FOR_SSA = 111,
2297 #[doc = " The following instructions are only used in SSA form"]
2298 HLIL_VAR_INIT_SSA = 112,
2299 #[doc = " The following instructions are only used in SSA form"]
2300 HLIL_ASSIGN_MEM_SSA = 113,
2301 #[doc = " The following instructions are only used in SSA form"]
2302 HLIL_ASSIGN_UNPACK_MEM_SSA = 114,
2303 #[doc = " The following instructions are only used in SSA form"]
2304 HLIL_FORCE_VER_SSA = 115,
2305 #[doc = " The following instructions are only used in SSA form"]
2306 HLIL_ASSERT_SSA = 116,
2307 #[doc = " The following instructions are only used in SSA form"]
2308 HLIL_VAR_SSA = 117,
2309 #[doc = " The following instructions are only used in SSA form"]
2310 HLIL_ARRAY_INDEX_SSA = 118,
2311 #[doc = " The following instructions are only used in SSA form"]
2312 HLIL_DEREF_SSA = 119,
2313 #[doc = " The following instructions are only used in SSA form"]
2314 HLIL_DEREF_FIELD_SSA = 120,
2315 #[doc = " The following instructions are only used in SSA form"]
2316 HLIL_CALL_SSA = 121,
2317 #[doc = " The following instructions are only used in SSA form"]
2318 HLIL_SYSCALL_SSA = 122,
2319 #[doc = " The following instructions are only used in SSA form"]
2320 HLIL_INTRINSIC_SSA = 123,
2321 #[doc = " The following instructions are only used in SSA form"]
2322 HLIL_VAR_PHI = 124,
2323 #[doc = " The following instructions are only used in SSA form"]
2324 HLIL_MEM_PHI = 125,
2325}
2326#[repr(C)]
2327#[derive(Debug, Copy, Clone)]
2328pub struct BNHighLevelILInstruction {
2329 pub operation: BNHighLevelILOperation,
2330 pub attributes: u32,
2331 pub sourceOperand: u32,
2332 pub size: usize,
2333 pub operands: [u64; 5usize],
2334 pub address: u64,
2335 pub parent: usize,
2336}
2337#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2338const _: () = {
2339 ["Size of BNHighLevelILInstruction"]
2340 [::std::mem::size_of::<BNHighLevelILInstruction>() - 80usize];
2341 ["Alignment of BNHighLevelILInstruction"]
2342 [::std::mem::align_of::<BNHighLevelILInstruction>() - 8usize];
2343 ["Offset of field: BNHighLevelILInstruction::operation"]
2344 [::std::mem::offset_of!(BNHighLevelILInstruction, operation) - 0usize];
2345 ["Offset of field: BNHighLevelILInstruction::attributes"]
2346 [::std::mem::offset_of!(BNHighLevelILInstruction, attributes) - 4usize];
2347 ["Offset of field: BNHighLevelILInstruction::sourceOperand"]
2348 [::std::mem::offset_of!(BNHighLevelILInstruction, sourceOperand) - 8usize];
2349 ["Offset of field: BNHighLevelILInstruction::size"]
2350 [::std::mem::offset_of!(BNHighLevelILInstruction, size) - 16usize];
2351 ["Offset of field: BNHighLevelILInstruction::operands"]
2352 [::std::mem::offset_of!(BNHighLevelILInstruction, operands) - 24usize];
2353 ["Offset of field: BNHighLevelILInstruction::address"]
2354 [::std::mem::offset_of!(BNHighLevelILInstruction, address) - 64usize];
2355 ["Offset of field: BNHighLevelILInstruction::parent"]
2356 [::std::mem::offset_of!(BNHighLevelILInstruction, parent) - 72usize];
2357};
2358impl Default for BNHighLevelILInstruction {
2359 fn default() -> Self {
2360 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2361 unsafe {
2362 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2363 s.assume_init()
2364 }
2365 }
2366}
2367#[doc = " Callbacks"]
2368#[repr(C)]
2369#[derive(Debug, Copy, Clone)]
2370pub struct BNLogListener {
2371 pub context: *mut ::std::os::raw::c_void,
2372 pub log: ::std::option::Option<
2373 unsafe extern "C" fn(
2374 ctxt: *mut ::std::os::raw::c_void,
2375 sessionId: usize,
2376 level: BNLogLevel,
2377 msg: *const ::std::os::raw::c_char,
2378 logger_name: *const ::std::os::raw::c_char,
2379 tid: usize,
2380 ),
2381 >,
2382 pub logWithStackTrace: ::std::option::Option<
2383 unsafe extern "C" fn(
2384 ctxt: *mut ::std::os::raw::c_void,
2385 sessionId: usize,
2386 level: BNLogLevel,
2387 stackTrace: *const ::std::os::raw::c_char,
2388 msg: *const ::std::os::raw::c_char,
2389 logger_name: *const ::std::os::raw::c_char,
2390 tid: usize,
2391 ),
2392 >,
2393 pub close: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
2394 pub getLogLevel: ::std::option::Option<
2395 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> BNLogLevel,
2396 >,
2397}
2398#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2399const _: () = {
2400 ["Size of BNLogListener"][::std::mem::size_of::<BNLogListener>() - 40usize];
2401 ["Alignment of BNLogListener"][::std::mem::align_of::<BNLogListener>() - 8usize];
2402 ["Offset of field: BNLogListener::context"]
2403 [::std::mem::offset_of!(BNLogListener, context) - 0usize];
2404 ["Offset of field: BNLogListener::log"][::std::mem::offset_of!(BNLogListener, log) - 8usize];
2405 ["Offset of field: BNLogListener::logWithStackTrace"]
2406 [::std::mem::offset_of!(BNLogListener, logWithStackTrace) - 16usize];
2407 ["Offset of field: BNLogListener::close"]
2408 [::std::mem::offset_of!(BNLogListener, close) - 24usize];
2409 ["Offset of field: BNLogListener::getLogLevel"]
2410 [::std::mem::offset_of!(BNLogListener, getLogLevel) - 32usize];
2411};
2412impl Default for BNLogListener {
2413 fn default() -> Self {
2414 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2415 unsafe {
2416 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2417 s.assume_init()
2418 }
2419 }
2420}
2421#[repr(C)]
2422#[derive(Debug, Copy, Clone)]
2423pub struct BNNavigationHandler {
2424 pub context: *mut ::std::os::raw::c_void,
2425 pub getCurrentView: ::std::option::Option<
2426 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> *mut ::std::os::raw::c_char,
2427 >,
2428 pub getCurrentOffset:
2429 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> u64>,
2430 pub navigate: ::std::option::Option<
2431 unsafe extern "C" fn(
2432 ctxt: *mut ::std::os::raw::c_void,
2433 view: *const ::std::os::raw::c_char,
2434 offset: u64,
2435 ) -> bool,
2436 >,
2437}
2438#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2439const _: () = {
2440 ["Size of BNNavigationHandler"][::std::mem::size_of::<BNNavigationHandler>() - 32usize];
2441 ["Alignment of BNNavigationHandler"][::std::mem::align_of::<BNNavigationHandler>() - 8usize];
2442 ["Offset of field: BNNavigationHandler::context"]
2443 [::std::mem::offset_of!(BNNavigationHandler, context) - 0usize];
2444 ["Offset of field: BNNavigationHandler::getCurrentView"]
2445 [::std::mem::offset_of!(BNNavigationHandler, getCurrentView) - 8usize];
2446 ["Offset of field: BNNavigationHandler::getCurrentOffset"]
2447 [::std::mem::offset_of!(BNNavigationHandler, getCurrentOffset) - 16usize];
2448 ["Offset of field: BNNavigationHandler::navigate"]
2449 [::std::mem::offset_of!(BNNavigationHandler, navigate) - 24usize];
2450};
2451impl Default for BNNavigationHandler {
2452 fn default() -> Self {
2453 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2454 unsafe {
2455 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2456 s.assume_init()
2457 }
2458 }
2459}
2460#[repr(C)]
2461#[derive(Debug, Copy, Clone)]
2462pub struct BNNameSpace {
2463 pub name: *mut *mut ::std::os::raw::c_char,
2464 pub join: *mut ::std::os::raw::c_char,
2465 pub nameCount: usize,
2466}
2467#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2468const _: () = {
2469 ["Size of BNNameSpace"][::std::mem::size_of::<BNNameSpace>() - 24usize];
2470 ["Alignment of BNNameSpace"][::std::mem::align_of::<BNNameSpace>() - 8usize];
2471 ["Offset of field: BNNameSpace::name"][::std::mem::offset_of!(BNNameSpace, name) - 0usize];
2472 ["Offset of field: BNNameSpace::join"][::std::mem::offset_of!(BNNameSpace, join) - 8usize];
2473 ["Offset of field: BNNameSpace::nameCount"]
2474 [::std::mem::offset_of!(BNNameSpace, nameCount) - 16usize];
2475};
2476impl Default for BNNameSpace {
2477 fn default() -> Self {
2478 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2479 unsafe {
2480 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2481 s.assume_init()
2482 }
2483 }
2484}
2485#[repr(C)]
2486#[derive(Debug, Copy, Clone)]
2487pub struct BNQualifiedName {
2488 pub name: *mut *mut ::std::os::raw::c_char,
2489 pub join: *mut ::std::os::raw::c_char,
2490 pub nameCount: usize,
2491}
2492#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2493const _: () = {
2494 ["Size of BNQualifiedName"][::std::mem::size_of::<BNQualifiedName>() - 24usize];
2495 ["Alignment of BNQualifiedName"][::std::mem::align_of::<BNQualifiedName>() - 8usize];
2496 ["Offset of field: BNQualifiedName::name"]
2497 [::std::mem::offset_of!(BNQualifiedName, name) - 0usize];
2498 ["Offset of field: BNQualifiedName::join"]
2499 [::std::mem::offset_of!(BNQualifiedName, join) - 8usize];
2500 ["Offset of field: BNQualifiedName::nameCount"]
2501 [::std::mem::offset_of!(BNQualifiedName, nameCount) - 16usize];
2502};
2503impl Default for BNQualifiedName {
2504 fn default() -> Self {
2505 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2506 unsafe {
2507 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2508 s.assume_init()
2509 }
2510 }
2511}
2512#[repr(u32)]
2513#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2514pub enum BNDerivedStringLocationType {
2515 DataBackedStringLocation = 0,
2516 CodeStringLocation = 1,
2517}
2518#[repr(C)]
2519#[derive(Debug, Copy, Clone)]
2520pub struct BNDerivedStringLocation {
2521 pub locationType: BNDerivedStringLocationType,
2522 pub addr: u64,
2523 pub len: u64,
2524}
2525#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2526const _: () = {
2527 ["Size of BNDerivedStringLocation"][::std::mem::size_of::<BNDerivedStringLocation>() - 24usize];
2528 ["Alignment of BNDerivedStringLocation"]
2529 [::std::mem::align_of::<BNDerivedStringLocation>() - 8usize];
2530 ["Offset of field: BNDerivedStringLocation::locationType"]
2531 [::std::mem::offset_of!(BNDerivedStringLocation, locationType) - 0usize];
2532 ["Offset of field: BNDerivedStringLocation::addr"]
2533 [::std::mem::offset_of!(BNDerivedStringLocation, addr) - 8usize];
2534 ["Offset of field: BNDerivedStringLocation::len"]
2535 [::std::mem::offset_of!(BNDerivedStringLocation, len) - 16usize];
2536};
2537impl Default for BNDerivedStringLocation {
2538 fn default() -> Self {
2539 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2540 unsafe {
2541 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2542 s.assume_init()
2543 }
2544 }
2545}
2546#[repr(C)]
2547#[derive(Debug, Copy, Clone)]
2548pub struct BNDerivedString {
2549 pub value: *mut BNStringRef,
2550 pub locationValid: bool,
2551 pub location: BNDerivedStringLocation,
2552 pub customType: *mut BNCustomStringType,
2553}
2554#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2555const _: () = {
2556 ["Size of BNDerivedString"][::std::mem::size_of::<BNDerivedString>() - 48usize];
2557 ["Alignment of BNDerivedString"][::std::mem::align_of::<BNDerivedString>() - 8usize];
2558 ["Offset of field: BNDerivedString::value"]
2559 [::std::mem::offset_of!(BNDerivedString, value) - 0usize];
2560 ["Offset of field: BNDerivedString::locationValid"]
2561 [::std::mem::offset_of!(BNDerivedString, locationValid) - 8usize];
2562 ["Offset of field: BNDerivedString::location"]
2563 [::std::mem::offset_of!(BNDerivedString, location) - 16usize];
2564 ["Offset of field: BNDerivedString::customType"]
2565 [::std::mem::offset_of!(BNDerivedString, customType) - 40usize];
2566};
2567impl Default for BNDerivedString {
2568 fn default() -> Self {
2569 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2570 unsafe {
2571 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2572 s.assume_init()
2573 }
2574 }
2575}
2576#[repr(C)]
2577#[derive(Debug, Copy, Clone)]
2578pub struct BNBinaryDataNotification {
2579 pub context: *mut ::std::os::raw::c_void,
2580 pub notificationBarrier: ::std::option::Option<
2581 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, view: *mut BNBinaryView) -> u64,
2582 >,
2583 pub dataWritten: ::std::option::Option<
2584 unsafe extern "C" fn(
2585 ctxt: *mut ::std::os::raw::c_void,
2586 view: *mut BNBinaryView,
2587 offset: u64,
2588 len: usize,
2589 ),
2590 >,
2591 pub dataInserted: ::std::option::Option<
2592 unsafe extern "C" fn(
2593 ctxt: *mut ::std::os::raw::c_void,
2594 view: *mut BNBinaryView,
2595 offset: u64,
2596 len: usize,
2597 ),
2598 >,
2599 pub dataRemoved: ::std::option::Option<
2600 unsafe extern "C" fn(
2601 ctxt: *mut ::std::os::raw::c_void,
2602 view: *mut BNBinaryView,
2603 offset: u64,
2604 len: u64,
2605 ),
2606 >,
2607 pub functionAdded: ::std::option::Option<
2608 unsafe extern "C" fn(
2609 ctxt: *mut ::std::os::raw::c_void,
2610 view: *mut BNBinaryView,
2611 func: *mut BNFunction,
2612 ),
2613 >,
2614 pub functionRemoved: ::std::option::Option<
2615 unsafe extern "C" fn(
2616 ctxt: *mut ::std::os::raw::c_void,
2617 view: *mut BNBinaryView,
2618 func: *mut BNFunction,
2619 ),
2620 >,
2621 pub functionUpdated: ::std::option::Option<
2622 unsafe extern "C" fn(
2623 ctxt: *mut ::std::os::raw::c_void,
2624 view: *mut BNBinaryView,
2625 func: *mut BNFunction,
2626 ),
2627 >,
2628 pub functionUpdateRequested: ::std::option::Option<
2629 unsafe extern "C" fn(
2630 ctxt: *mut ::std::os::raw::c_void,
2631 view: *mut BNBinaryView,
2632 func: *mut BNFunction,
2633 ),
2634 >,
2635 pub dataVariableAdded: ::std::option::Option<
2636 unsafe extern "C" fn(
2637 ctxt: *mut ::std::os::raw::c_void,
2638 view: *mut BNBinaryView,
2639 var: *mut BNDataVariable,
2640 ),
2641 >,
2642 pub dataVariableRemoved: ::std::option::Option<
2643 unsafe extern "C" fn(
2644 ctxt: *mut ::std::os::raw::c_void,
2645 view: *mut BNBinaryView,
2646 var: *mut BNDataVariable,
2647 ),
2648 >,
2649 pub dataVariableUpdated: ::std::option::Option<
2650 unsafe extern "C" fn(
2651 ctxt: *mut ::std::os::raw::c_void,
2652 view: *mut BNBinaryView,
2653 var: *mut BNDataVariable,
2654 ),
2655 >,
2656 pub dataMetadataUpdated: ::std::option::Option<
2657 unsafe extern "C" fn(
2658 ctxt: *mut ::std::os::raw::c_void,
2659 view: *mut BNBinaryView,
2660 offset: u64,
2661 ),
2662 >,
2663 pub tagTypeUpdated: ::std::option::Option<
2664 unsafe extern "C" fn(
2665 ctxt: *mut ::std::os::raw::c_void,
2666 view: *mut BNBinaryView,
2667 tagType: *mut BNTagType,
2668 ),
2669 >,
2670 pub tagAdded: ::std::option::Option<
2671 unsafe extern "C" fn(
2672 ctxt: *mut ::std::os::raw::c_void,
2673 view: *mut BNBinaryView,
2674 tagRef: *mut BNTagReference,
2675 ),
2676 >,
2677 pub tagRemoved: ::std::option::Option<
2678 unsafe extern "C" fn(
2679 ctxt: *mut ::std::os::raw::c_void,
2680 view: *mut BNBinaryView,
2681 tagRef: *mut BNTagReference,
2682 ),
2683 >,
2684 pub tagUpdated: ::std::option::Option<
2685 unsafe extern "C" fn(
2686 ctxt: *mut ::std::os::raw::c_void,
2687 view: *mut BNBinaryView,
2688 tagRef: *mut BNTagReference,
2689 ),
2690 >,
2691 pub symbolAdded: ::std::option::Option<
2692 unsafe extern "C" fn(
2693 ctxt: *mut ::std::os::raw::c_void,
2694 view: *mut BNBinaryView,
2695 sym: *mut BNSymbol,
2696 ),
2697 >,
2698 pub symbolRemoved: ::std::option::Option<
2699 unsafe extern "C" fn(
2700 ctxt: *mut ::std::os::raw::c_void,
2701 view: *mut BNBinaryView,
2702 sym: *mut BNSymbol,
2703 ),
2704 >,
2705 pub symbolUpdated: ::std::option::Option<
2706 unsafe extern "C" fn(
2707 ctxt: *mut ::std::os::raw::c_void,
2708 view: *mut BNBinaryView,
2709 sym: *mut BNSymbol,
2710 ),
2711 >,
2712 pub stringFound: ::std::option::Option<
2713 unsafe extern "C" fn(
2714 ctxt: *mut ::std::os::raw::c_void,
2715 view: *mut BNBinaryView,
2716 type_: BNStringType,
2717 offset: u64,
2718 len: usize,
2719 ),
2720 >,
2721 pub stringRemoved: ::std::option::Option<
2722 unsafe extern "C" fn(
2723 ctxt: *mut ::std::os::raw::c_void,
2724 view: *mut BNBinaryView,
2725 type_: BNStringType,
2726 offset: u64,
2727 len: usize,
2728 ),
2729 >,
2730 pub derivedStringFound: ::std::option::Option<
2731 unsafe extern "C" fn(
2732 ctxt: *mut ::std::os::raw::c_void,
2733 view: *mut BNBinaryView,
2734 str_: *mut BNDerivedString,
2735 ),
2736 >,
2737 pub derivedStringRemoved: ::std::option::Option<
2738 unsafe extern "C" fn(
2739 ctxt: *mut ::std::os::raw::c_void,
2740 view: *mut BNBinaryView,
2741 str_: *mut BNDerivedString,
2742 ),
2743 >,
2744 pub typeDefined: ::std::option::Option<
2745 unsafe extern "C" fn(
2746 ctxt: *mut ::std::os::raw::c_void,
2747 view: *mut BNBinaryView,
2748 name: *mut BNQualifiedName,
2749 type_: *mut BNType,
2750 ),
2751 >,
2752 pub typeUndefined: ::std::option::Option<
2753 unsafe extern "C" fn(
2754 ctxt: *mut ::std::os::raw::c_void,
2755 view: *mut BNBinaryView,
2756 name: *mut BNQualifiedName,
2757 type_: *mut BNType,
2758 ),
2759 >,
2760 pub typeReferenceChanged: ::std::option::Option<
2761 unsafe extern "C" fn(
2762 ctxt: *mut ::std::os::raw::c_void,
2763 view: *mut BNBinaryView,
2764 name: *mut BNQualifiedName,
2765 type_: *mut BNType,
2766 ),
2767 >,
2768 pub typeFieldReferenceChanged: ::std::option::Option<
2769 unsafe extern "C" fn(
2770 ctxt: *mut ::std::os::raw::c_void,
2771 view: *mut BNBinaryView,
2772 name: *mut BNQualifiedName,
2773 offset: u64,
2774 ),
2775 >,
2776 pub segmentAdded: ::std::option::Option<
2777 unsafe extern "C" fn(
2778 ctxt: *mut ::std::os::raw::c_void,
2779 view: *mut BNBinaryView,
2780 segment: *mut BNSegment,
2781 ),
2782 >,
2783 pub segmentRemoved: ::std::option::Option<
2784 unsafe extern "C" fn(
2785 ctxt: *mut ::std::os::raw::c_void,
2786 view: *mut BNBinaryView,
2787 segment: *mut BNSegment,
2788 ),
2789 >,
2790 pub segmentUpdated: ::std::option::Option<
2791 unsafe extern "C" fn(
2792 ctxt: *mut ::std::os::raw::c_void,
2793 view: *mut BNBinaryView,
2794 segment: *mut BNSegment,
2795 ),
2796 >,
2797 pub sectionAdded: ::std::option::Option<
2798 unsafe extern "C" fn(
2799 ctxt: *mut ::std::os::raw::c_void,
2800 view: *mut BNBinaryView,
2801 section: *mut BNSection,
2802 ),
2803 >,
2804 pub sectionRemoved: ::std::option::Option<
2805 unsafe extern "C" fn(
2806 ctxt: *mut ::std::os::raw::c_void,
2807 view: *mut BNBinaryView,
2808 section: *mut BNSection,
2809 ),
2810 >,
2811 pub sectionUpdated: ::std::option::Option<
2812 unsafe extern "C" fn(
2813 ctxt: *mut ::std::os::raw::c_void,
2814 view: *mut BNBinaryView,
2815 section: *mut BNSection,
2816 ),
2817 >,
2818 pub componentNameUpdated: ::std::option::Option<
2819 unsafe extern "C" fn(
2820 ctxt: *mut ::std::os::raw::c_void,
2821 view: *mut BNBinaryView,
2822 previousName: *mut ::std::os::raw::c_char,
2823 component: *mut BNComponent,
2824 ),
2825 >,
2826 pub componentAdded: ::std::option::Option<
2827 unsafe extern "C" fn(
2828 ctxt: *mut ::std::os::raw::c_void,
2829 view: *mut BNBinaryView,
2830 component: *mut BNComponent,
2831 ),
2832 >,
2833 pub componentMoved: ::std::option::Option<
2834 unsafe extern "C" fn(
2835 ctxt: *mut ::std::os::raw::c_void,
2836 view: *mut BNBinaryView,
2837 formerParent: *mut BNComponent,
2838 newParent: *mut BNComponent,
2839 component: *mut BNComponent,
2840 ),
2841 >,
2842 pub componentRemoved: ::std::option::Option<
2843 unsafe extern "C" fn(
2844 ctxt: *mut ::std::os::raw::c_void,
2845 view: *mut BNBinaryView,
2846 formerParent: *mut BNComponent,
2847 component: *mut BNComponent,
2848 ),
2849 >,
2850 pub componentFunctionAdded: ::std::option::Option<
2851 unsafe extern "C" fn(
2852 ctxt: *mut ::std::os::raw::c_void,
2853 view: *mut BNBinaryView,
2854 component: *mut BNComponent,
2855 function: *mut BNFunction,
2856 ),
2857 >,
2858 pub componentFunctionRemoved: ::std::option::Option<
2859 unsafe extern "C" fn(
2860 ctxt: *mut ::std::os::raw::c_void,
2861 view: *mut BNBinaryView,
2862 component: *mut BNComponent,
2863 function: *mut BNFunction,
2864 ),
2865 >,
2866 pub componentDataVariableAdded: ::std::option::Option<
2867 unsafe extern "C" fn(
2868 ctxt: *mut ::std::os::raw::c_void,
2869 view: *mut BNBinaryView,
2870 component: *mut BNComponent,
2871 var: *mut BNDataVariable,
2872 ),
2873 >,
2874 pub componentDataVariableRemoved: ::std::option::Option<
2875 unsafe extern "C" fn(
2876 ctxt: *mut ::std::os::raw::c_void,
2877 view: *mut BNBinaryView,
2878 component: *mut BNComponent,
2879 var: *mut BNDataVariable,
2880 ),
2881 >,
2882 pub externalLibraryAdded: ::std::option::Option<
2883 unsafe extern "C" fn(
2884 ctxt: *mut ::std::os::raw::c_void,
2885 data: *mut BNBinaryView,
2886 library: *mut BNExternalLibrary,
2887 ),
2888 >,
2889 pub externalLibraryUpdated: ::std::option::Option<
2890 unsafe extern "C" fn(
2891 ctxt: *mut ::std::os::raw::c_void,
2892 data: *mut BNBinaryView,
2893 library: *mut BNExternalLibrary,
2894 ),
2895 >,
2896 pub externalLibraryRemoved: ::std::option::Option<
2897 unsafe extern "C" fn(
2898 ctxt: *mut ::std::os::raw::c_void,
2899 data: *mut BNBinaryView,
2900 library: *mut BNExternalLibrary,
2901 ),
2902 >,
2903 pub externalLocationAdded: ::std::option::Option<
2904 unsafe extern "C" fn(
2905 ctxt: *mut ::std::os::raw::c_void,
2906 data: *mut BNBinaryView,
2907 location: *mut BNExternalLocation,
2908 ),
2909 >,
2910 pub externalLocationUpdated: ::std::option::Option<
2911 unsafe extern "C" fn(
2912 ctxt: *mut ::std::os::raw::c_void,
2913 data: *mut BNBinaryView,
2914 location: *mut BNExternalLocation,
2915 ),
2916 >,
2917 pub externalLocationRemoved: ::std::option::Option<
2918 unsafe extern "C" fn(
2919 ctxt: *mut ::std::os::raw::c_void,
2920 data: *mut BNBinaryView,
2921 location: *mut BNExternalLocation,
2922 ),
2923 >,
2924 pub typeArchiveAttached: ::std::option::Option<
2925 unsafe extern "C" fn(
2926 ctxt: *mut ::std::os::raw::c_void,
2927 view: *mut BNBinaryView,
2928 id: *const ::std::os::raw::c_char,
2929 path: *const ::std::os::raw::c_char,
2930 ),
2931 >,
2932 pub typeArchiveDetached: ::std::option::Option<
2933 unsafe extern "C" fn(
2934 ctxt: *mut ::std::os::raw::c_void,
2935 view: *mut BNBinaryView,
2936 id: *const ::std::os::raw::c_char,
2937 path: *const ::std::os::raw::c_char,
2938 ),
2939 >,
2940 pub typeArchiveConnected: ::std::option::Option<
2941 unsafe extern "C" fn(
2942 ctxt: *mut ::std::os::raw::c_void,
2943 view: *mut BNBinaryView,
2944 archive: *mut BNTypeArchive,
2945 ),
2946 >,
2947 pub typeArchiveDisconnected: ::std::option::Option<
2948 unsafe extern "C" fn(
2949 ctxt: *mut ::std::os::raw::c_void,
2950 view: *mut BNBinaryView,
2951 archive: *mut BNTypeArchive,
2952 ),
2953 >,
2954 pub undoEntryAdded: ::std::option::Option<
2955 unsafe extern "C" fn(
2956 ctxt: *mut ::std::os::raw::c_void,
2957 view: *mut BNBinaryView,
2958 entry: *mut BNUndoEntry,
2959 ),
2960 >,
2961 pub undoEntryTaken: ::std::option::Option<
2962 unsafe extern "C" fn(
2963 ctxt: *mut ::std::os::raw::c_void,
2964 view: *mut BNBinaryView,
2965 entry: *mut BNUndoEntry,
2966 ),
2967 >,
2968 pub redoEntryTaken: ::std::option::Option<
2969 unsafe extern "C" fn(
2970 ctxt: *mut ::std::os::raw::c_void,
2971 view: *mut BNBinaryView,
2972 entry: *mut BNUndoEntry,
2973 ),
2974 >,
2975 pub rebased: ::std::option::Option<
2976 unsafe extern "C" fn(
2977 ctxt: *mut ::std::os::raw::c_void,
2978 oldView: *mut BNBinaryView,
2979 newView: *mut BNBinaryView,
2980 ),
2981 >,
2982}
2983#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2984const _: () = {
2985 ["Size of BNBinaryDataNotification"]
2986 [::std::mem::size_of::<BNBinaryDataNotification>() - 448usize];
2987 ["Alignment of BNBinaryDataNotification"]
2988 [::std::mem::align_of::<BNBinaryDataNotification>() - 8usize];
2989 ["Offset of field: BNBinaryDataNotification::context"]
2990 [::std::mem::offset_of!(BNBinaryDataNotification, context) - 0usize];
2991 ["Offset of field: BNBinaryDataNotification::notificationBarrier"]
2992 [::std::mem::offset_of!(BNBinaryDataNotification, notificationBarrier) - 8usize];
2993 ["Offset of field: BNBinaryDataNotification::dataWritten"]
2994 [::std::mem::offset_of!(BNBinaryDataNotification, dataWritten) - 16usize];
2995 ["Offset of field: BNBinaryDataNotification::dataInserted"]
2996 [::std::mem::offset_of!(BNBinaryDataNotification, dataInserted) - 24usize];
2997 ["Offset of field: BNBinaryDataNotification::dataRemoved"]
2998 [::std::mem::offset_of!(BNBinaryDataNotification, dataRemoved) - 32usize];
2999 ["Offset of field: BNBinaryDataNotification::functionAdded"]
3000 [::std::mem::offset_of!(BNBinaryDataNotification, functionAdded) - 40usize];
3001 ["Offset of field: BNBinaryDataNotification::functionRemoved"]
3002 [::std::mem::offset_of!(BNBinaryDataNotification, functionRemoved) - 48usize];
3003 ["Offset of field: BNBinaryDataNotification::functionUpdated"]
3004 [::std::mem::offset_of!(BNBinaryDataNotification, functionUpdated) - 56usize];
3005 ["Offset of field: BNBinaryDataNotification::functionUpdateRequested"]
3006 [::std::mem::offset_of!(BNBinaryDataNotification, functionUpdateRequested) - 64usize];
3007 ["Offset of field: BNBinaryDataNotification::dataVariableAdded"]
3008 [::std::mem::offset_of!(BNBinaryDataNotification, dataVariableAdded) - 72usize];
3009 ["Offset of field: BNBinaryDataNotification::dataVariableRemoved"]
3010 [::std::mem::offset_of!(BNBinaryDataNotification, dataVariableRemoved) - 80usize];
3011 ["Offset of field: BNBinaryDataNotification::dataVariableUpdated"]
3012 [::std::mem::offset_of!(BNBinaryDataNotification, dataVariableUpdated) - 88usize];
3013 ["Offset of field: BNBinaryDataNotification::dataMetadataUpdated"]
3014 [::std::mem::offset_of!(BNBinaryDataNotification, dataMetadataUpdated) - 96usize];
3015 ["Offset of field: BNBinaryDataNotification::tagTypeUpdated"]
3016 [::std::mem::offset_of!(BNBinaryDataNotification, tagTypeUpdated) - 104usize];
3017 ["Offset of field: BNBinaryDataNotification::tagAdded"]
3018 [::std::mem::offset_of!(BNBinaryDataNotification, tagAdded) - 112usize];
3019 ["Offset of field: BNBinaryDataNotification::tagRemoved"]
3020 [::std::mem::offset_of!(BNBinaryDataNotification, tagRemoved) - 120usize];
3021 ["Offset of field: BNBinaryDataNotification::tagUpdated"]
3022 [::std::mem::offset_of!(BNBinaryDataNotification, tagUpdated) - 128usize];
3023 ["Offset of field: BNBinaryDataNotification::symbolAdded"]
3024 [::std::mem::offset_of!(BNBinaryDataNotification, symbolAdded) - 136usize];
3025 ["Offset of field: BNBinaryDataNotification::symbolRemoved"]
3026 [::std::mem::offset_of!(BNBinaryDataNotification, symbolRemoved) - 144usize];
3027 ["Offset of field: BNBinaryDataNotification::symbolUpdated"]
3028 [::std::mem::offset_of!(BNBinaryDataNotification, symbolUpdated) - 152usize];
3029 ["Offset of field: BNBinaryDataNotification::stringFound"]
3030 [::std::mem::offset_of!(BNBinaryDataNotification, stringFound) - 160usize];
3031 ["Offset of field: BNBinaryDataNotification::stringRemoved"]
3032 [::std::mem::offset_of!(BNBinaryDataNotification, stringRemoved) - 168usize];
3033 ["Offset of field: BNBinaryDataNotification::derivedStringFound"]
3034 [::std::mem::offset_of!(BNBinaryDataNotification, derivedStringFound) - 176usize];
3035 ["Offset of field: BNBinaryDataNotification::derivedStringRemoved"]
3036 [::std::mem::offset_of!(BNBinaryDataNotification, derivedStringRemoved) - 184usize];
3037 ["Offset of field: BNBinaryDataNotification::typeDefined"]
3038 [::std::mem::offset_of!(BNBinaryDataNotification, typeDefined) - 192usize];
3039 ["Offset of field: BNBinaryDataNotification::typeUndefined"]
3040 [::std::mem::offset_of!(BNBinaryDataNotification, typeUndefined) - 200usize];
3041 ["Offset of field: BNBinaryDataNotification::typeReferenceChanged"]
3042 [::std::mem::offset_of!(BNBinaryDataNotification, typeReferenceChanged) - 208usize];
3043 ["Offset of field: BNBinaryDataNotification::typeFieldReferenceChanged"]
3044 [::std::mem::offset_of!(BNBinaryDataNotification, typeFieldReferenceChanged) - 216usize];
3045 ["Offset of field: BNBinaryDataNotification::segmentAdded"]
3046 [::std::mem::offset_of!(BNBinaryDataNotification, segmentAdded) - 224usize];
3047 ["Offset of field: BNBinaryDataNotification::segmentRemoved"]
3048 [::std::mem::offset_of!(BNBinaryDataNotification, segmentRemoved) - 232usize];
3049 ["Offset of field: BNBinaryDataNotification::segmentUpdated"]
3050 [::std::mem::offset_of!(BNBinaryDataNotification, segmentUpdated) - 240usize];
3051 ["Offset of field: BNBinaryDataNotification::sectionAdded"]
3052 [::std::mem::offset_of!(BNBinaryDataNotification, sectionAdded) - 248usize];
3053 ["Offset of field: BNBinaryDataNotification::sectionRemoved"]
3054 [::std::mem::offset_of!(BNBinaryDataNotification, sectionRemoved) - 256usize];
3055 ["Offset of field: BNBinaryDataNotification::sectionUpdated"]
3056 [::std::mem::offset_of!(BNBinaryDataNotification, sectionUpdated) - 264usize];
3057 ["Offset of field: BNBinaryDataNotification::componentNameUpdated"]
3058 [::std::mem::offset_of!(BNBinaryDataNotification, componentNameUpdated) - 272usize];
3059 ["Offset of field: BNBinaryDataNotification::componentAdded"]
3060 [::std::mem::offset_of!(BNBinaryDataNotification, componentAdded) - 280usize];
3061 ["Offset of field: BNBinaryDataNotification::componentMoved"]
3062 [::std::mem::offset_of!(BNBinaryDataNotification, componentMoved) - 288usize];
3063 ["Offset of field: BNBinaryDataNotification::componentRemoved"]
3064 [::std::mem::offset_of!(BNBinaryDataNotification, componentRemoved) - 296usize];
3065 ["Offset of field: BNBinaryDataNotification::componentFunctionAdded"]
3066 [::std::mem::offset_of!(BNBinaryDataNotification, componentFunctionAdded) - 304usize];
3067 ["Offset of field: BNBinaryDataNotification::componentFunctionRemoved"]
3068 [::std::mem::offset_of!(BNBinaryDataNotification, componentFunctionRemoved) - 312usize];
3069 ["Offset of field: BNBinaryDataNotification::componentDataVariableAdded"]
3070 [::std::mem::offset_of!(BNBinaryDataNotification, componentDataVariableAdded) - 320usize];
3071 ["Offset of field: BNBinaryDataNotification::componentDataVariableRemoved"]
3072 [::std::mem::offset_of!(BNBinaryDataNotification, componentDataVariableRemoved) - 328usize];
3073 ["Offset of field: BNBinaryDataNotification::externalLibraryAdded"]
3074 [::std::mem::offset_of!(BNBinaryDataNotification, externalLibraryAdded) - 336usize];
3075 ["Offset of field: BNBinaryDataNotification::externalLibraryUpdated"]
3076 [::std::mem::offset_of!(BNBinaryDataNotification, externalLibraryUpdated) - 344usize];
3077 ["Offset of field: BNBinaryDataNotification::externalLibraryRemoved"]
3078 [::std::mem::offset_of!(BNBinaryDataNotification, externalLibraryRemoved) - 352usize];
3079 ["Offset of field: BNBinaryDataNotification::externalLocationAdded"]
3080 [::std::mem::offset_of!(BNBinaryDataNotification, externalLocationAdded) - 360usize];
3081 ["Offset of field: BNBinaryDataNotification::externalLocationUpdated"]
3082 [::std::mem::offset_of!(BNBinaryDataNotification, externalLocationUpdated) - 368usize];
3083 ["Offset of field: BNBinaryDataNotification::externalLocationRemoved"]
3084 [::std::mem::offset_of!(BNBinaryDataNotification, externalLocationRemoved) - 376usize];
3085 ["Offset of field: BNBinaryDataNotification::typeArchiveAttached"]
3086 [::std::mem::offset_of!(BNBinaryDataNotification, typeArchiveAttached) - 384usize];
3087 ["Offset of field: BNBinaryDataNotification::typeArchiveDetached"]
3088 [::std::mem::offset_of!(BNBinaryDataNotification, typeArchiveDetached) - 392usize];
3089 ["Offset of field: BNBinaryDataNotification::typeArchiveConnected"]
3090 [::std::mem::offset_of!(BNBinaryDataNotification, typeArchiveConnected) - 400usize];
3091 ["Offset of field: BNBinaryDataNotification::typeArchiveDisconnected"]
3092 [::std::mem::offset_of!(BNBinaryDataNotification, typeArchiveDisconnected) - 408usize];
3093 ["Offset of field: BNBinaryDataNotification::undoEntryAdded"]
3094 [::std::mem::offset_of!(BNBinaryDataNotification, undoEntryAdded) - 416usize];
3095 ["Offset of field: BNBinaryDataNotification::undoEntryTaken"]
3096 [::std::mem::offset_of!(BNBinaryDataNotification, undoEntryTaken) - 424usize];
3097 ["Offset of field: BNBinaryDataNotification::redoEntryTaken"]
3098 [::std::mem::offset_of!(BNBinaryDataNotification, redoEntryTaken) - 432usize];
3099 ["Offset of field: BNBinaryDataNotification::rebased"]
3100 [::std::mem::offset_of!(BNBinaryDataNotification, rebased) - 440usize];
3101};
3102impl Default for BNBinaryDataNotification {
3103 fn default() -> Self {
3104 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3105 unsafe {
3106 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3107 s.assume_init()
3108 }
3109 }
3110}
3111#[repr(C)]
3112#[derive(Debug, Copy, Clone)]
3113pub struct BNProjectNotification {
3114 pub context: *mut ::std::os::raw::c_void,
3115 pub beforeOpenProject: ::std::option::Option<
3116 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, project: *mut BNProject) -> bool,
3117 >,
3118 pub afterOpenProject: ::std::option::Option<
3119 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, project: *mut BNProject),
3120 >,
3121 pub beforeCloseProject: ::std::option::Option<
3122 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, project: *mut BNProject) -> bool,
3123 >,
3124 pub afterCloseProject: ::std::option::Option<
3125 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, project: *mut BNProject),
3126 >,
3127 pub beforeProjectMetadataWritten: ::std::option::Option<
3128 unsafe extern "C" fn(
3129 ctxt: *mut ::std::os::raw::c_void,
3130 project: *mut BNProject,
3131 key: *mut ::std::os::raw::c_char,
3132 value: *mut BNMetadata,
3133 ) -> bool,
3134 >,
3135 pub afterProjectMetadataWritten: ::std::option::Option<
3136 unsafe extern "C" fn(
3137 ctxt: *mut ::std::os::raw::c_void,
3138 project: *mut BNProject,
3139 key: *mut ::std::os::raw::c_char,
3140 value: *mut BNMetadata,
3141 ),
3142 >,
3143 pub beforeProjectFileCreated: ::std::option::Option<
3144 unsafe extern "C" fn(
3145 ctxt: *mut ::std::os::raw::c_void,
3146 project: *mut BNProject,
3147 projectFile: *mut BNProjectFile,
3148 ) -> bool,
3149 >,
3150 pub afterProjectFileCreated: ::std::option::Option<
3151 unsafe extern "C" fn(
3152 ctxt: *mut ::std::os::raw::c_void,
3153 project: *mut BNProject,
3154 projectFile: *mut BNProjectFile,
3155 ),
3156 >,
3157 pub beforeProjectFileUpdated: ::std::option::Option<
3158 unsafe extern "C" fn(
3159 ctxt: *mut ::std::os::raw::c_void,
3160 project: *mut BNProject,
3161 projectFile: *mut BNProjectFile,
3162 ) -> bool,
3163 >,
3164 pub afterProjectFileUpdated: ::std::option::Option<
3165 unsafe extern "C" fn(
3166 ctxt: *mut ::std::os::raw::c_void,
3167 project: *mut BNProject,
3168 projectFile: *mut BNProjectFile,
3169 ),
3170 >,
3171 pub beforeProjectFileDeleted: ::std::option::Option<
3172 unsafe extern "C" fn(
3173 ctxt: *mut ::std::os::raw::c_void,
3174 project: *mut BNProject,
3175 projectFile: *mut BNProjectFile,
3176 ) -> bool,
3177 >,
3178 pub afterProjectFileDeleted: ::std::option::Option<
3179 unsafe extern "C" fn(
3180 ctxt: *mut ::std::os::raw::c_void,
3181 project: *mut BNProject,
3182 projectFile: *mut BNProjectFile,
3183 ),
3184 >,
3185 pub beforeProjectFolderCreated: ::std::option::Option<
3186 unsafe extern "C" fn(
3187 ctxt: *mut ::std::os::raw::c_void,
3188 project: *mut BNProject,
3189 projectFolder: *mut BNProjectFolder,
3190 ) -> bool,
3191 >,
3192 pub afterProjectFolderCreated: ::std::option::Option<
3193 unsafe extern "C" fn(
3194 ctxt: *mut ::std::os::raw::c_void,
3195 project: *mut BNProject,
3196 projectFolder: *mut BNProjectFolder,
3197 ),
3198 >,
3199 pub beforeProjectFolderUpdated: ::std::option::Option<
3200 unsafe extern "C" fn(
3201 ctxt: *mut ::std::os::raw::c_void,
3202 project: *mut BNProject,
3203 projectFolder: *mut BNProjectFolder,
3204 ) -> bool,
3205 >,
3206 pub afterProjectFolderUpdated: ::std::option::Option<
3207 unsafe extern "C" fn(
3208 ctxt: *mut ::std::os::raw::c_void,
3209 project: *mut BNProject,
3210 projectFolder: *mut BNProjectFolder,
3211 ),
3212 >,
3213 pub beforeProjectFolderDeleted: ::std::option::Option<
3214 unsafe extern "C" fn(
3215 ctxt: *mut ::std::os::raw::c_void,
3216 project: *mut BNProject,
3217 projectFolder: *mut BNProjectFolder,
3218 ) -> bool,
3219 >,
3220 pub afterProjectFolderDeleted: ::std::option::Option<
3221 unsafe extern "C" fn(
3222 ctxt: *mut ::std::os::raw::c_void,
3223 project: *mut BNProject,
3224 projectFolder: *mut BNProjectFolder,
3225 ),
3226 >,
3227}
3228#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3229const _: () = {
3230 ["Size of BNProjectNotification"][::std::mem::size_of::<BNProjectNotification>() - 152usize];
3231 ["Alignment of BNProjectNotification"]
3232 [::std::mem::align_of::<BNProjectNotification>() - 8usize];
3233 ["Offset of field: BNProjectNotification::context"]
3234 [::std::mem::offset_of!(BNProjectNotification, context) - 0usize];
3235 ["Offset of field: BNProjectNotification::beforeOpenProject"]
3236 [::std::mem::offset_of!(BNProjectNotification, beforeOpenProject) - 8usize];
3237 ["Offset of field: BNProjectNotification::afterOpenProject"]
3238 [::std::mem::offset_of!(BNProjectNotification, afterOpenProject) - 16usize];
3239 ["Offset of field: BNProjectNotification::beforeCloseProject"]
3240 [::std::mem::offset_of!(BNProjectNotification, beforeCloseProject) - 24usize];
3241 ["Offset of field: BNProjectNotification::afterCloseProject"]
3242 [::std::mem::offset_of!(BNProjectNotification, afterCloseProject) - 32usize];
3243 ["Offset of field: BNProjectNotification::beforeProjectMetadataWritten"]
3244 [::std::mem::offset_of!(BNProjectNotification, beforeProjectMetadataWritten) - 40usize];
3245 ["Offset of field: BNProjectNotification::afterProjectMetadataWritten"]
3246 [::std::mem::offset_of!(BNProjectNotification, afterProjectMetadataWritten) - 48usize];
3247 ["Offset of field: BNProjectNotification::beforeProjectFileCreated"]
3248 [::std::mem::offset_of!(BNProjectNotification, beforeProjectFileCreated) - 56usize];
3249 ["Offset of field: BNProjectNotification::afterProjectFileCreated"]
3250 [::std::mem::offset_of!(BNProjectNotification, afterProjectFileCreated) - 64usize];
3251 ["Offset of field: BNProjectNotification::beforeProjectFileUpdated"]
3252 [::std::mem::offset_of!(BNProjectNotification, beforeProjectFileUpdated) - 72usize];
3253 ["Offset of field: BNProjectNotification::afterProjectFileUpdated"]
3254 [::std::mem::offset_of!(BNProjectNotification, afterProjectFileUpdated) - 80usize];
3255 ["Offset of field: BNProjectNotification::beforeProjectFileDeleted"]
3256 [::std::mem::offset_of!(BNProjectNotification, beforeProjectFileDeleted) - 88usize];
3257 ["Offset of field: BNProjectNotification::afterProjectFileDeleted"]
3258 [::std::mem::offset_of!(BNProjectNotification, afterProjectFileDeleted) - 96usize];
3259 ["Offset of field: BNProjectNotification::beforeProjectFolderCreated"]
3260 [::std::mem::offset_of!(BNProjectNotification, beforeProjectFolderCreated) - 104usize];
3261 ["Offset of field: BNProjectNotification::afterProjectFolderCreated"]
3262 [::std::mem::offset_of!(BNProjectNotification, afterProjectFolderCreated) - 112usize];
3263 ["Offset of field: BNProjectNotification::beforeProjectFolderUpdated"]
3264 [::std::mem::offset_of!(BNProjectNotification, beforeProjectFolderUpdated) - 120usize];
3265 ["Offset of field: BNProjectNotification::afterProjectFolderUpdated"]
3266 [::std::mem::offset_of!(BNProjectNotification, afterProjectFolderUpdated) - 128usize];
3267 ["Offset of field: BNProjectNotification::beforeProjectFolderDeleted"]
3268 [::std::mem::offset_of!(BNProjectNotification, beforeProjectFolderDeleted) - 136usize];
3269 ["Offset of field: BNProjectNotification::afterProjectFolderDeleted"]
3270 [::std::mem::offset_of!(BNProjectNotification, afterProjectFolderDeleted) - 144usize];
3271};
3272impl Default for BNProjectNotification {
3273 fn default() -> Self {
3274 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3275 unsafe {
3276 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3277 s.assume_init()
3278 }
3279 }
3280}
3281#[repr(C)]
3282#[derive(Debug, Copy, Clone)]
3283pub struct BNFileAccessor {
3284 pub context: *mut ::std::os::raw::c_void,
3285 pub getLength:
3286 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> u64>,
3287 pub read: ::std::option::Option<
3288 unsafe extern "C" fn(
3289 ctxt: *mut ::std::os::raw::c_void,
3290 dest: *mut ::std::os::raw::c_void,
3291 offset: u64,
3292 len: usize,
3293 ) -> usize,
3294 >,
3295 pub write: ::std::option::Option<
3296 unsafe extern "C" fn(
3297 ctxt: *mut ::std::os::raw::c_void,
3298 offset: u64,
3299 src: *const ::std::os::raw::c_void,
3300 len: usize,
3301 ) -> usize,
3302 >,
3303}
3304#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3305const _: () = {
3306 ["Size of BNFileAccessor"][::std::mem::size_of::<BNFileAccessor>() - 32usize];
3307 ["Alignment of BNFileAccessor"][::std::mem::align_of::<BNFileAccessor>() - 8usize];
3308 ["Offset of field: BNFileAccessor::context"]
3309 [::std::mem::offset_of!(BNFileAccessor, context) - 0usize];
3310 ["Offset of field: BNFileAccessor::getLength"]
3311 [::std::mem::offset_of!(BNFileAccessor, getLength) - 8usize];
3312 ["Offset of field: BNFileAccessor::read"]
3313 [::std::mem::offset_of!(BNFileAccessor, read) - 16usize];
3314 ["Offset of field: BNFileAccessor::write"]
3315 [::std::mem::offset_of!(BNFileAccessor, write) - 24usize];
3316};
3317impl Default for BNFileAccessor {
3318 fn default() -> Self {
3319 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3320 unsafe {
3321 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3322 s.assume_init()
3323 }
3324 }
3325}
3326#[repr(C)]
3327#[derive(Debug, Copy, Clone)]
3328pub struct BNCustomBinaryView {
3329 pub context: *mut ::std::os::raw::c_void,
3330 pub init:
3331 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
3332 pub freeObject: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
3333 pub externalRefTaken:
3334 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
3335 pub externalRefReleased:
3336 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
3337 pub read: ::std::option::Option<
3338 unsafe extern "C" fn(
3339 ctxt: *mut ::std::os::raw::c_void,
3340 dest: *mut ::std::os::raw::c_void,
3341 offset: u64,
3342 len: usize,
3343 ) -> usize,
3344 >,
3345 pub write: ::std::option::Option<
3346 unsafe extern "C" fn(
3347 ctxt: *mut ::std::os::raw::c_void,
3348 offset: u64,
3349 src: *const ::std::os::raw::c_void,
3350 len: usize,
3351 ) -> usize,
3352 >,
3353 pub insert: ::std::option::Option<
3354 unsafe extern "C" fn(
3355 ctxt: *mut ::std::os::raw::c_void,
3356 offset: u64,
3357 src: *const ::std::os::raw::c_void,
3358 len: usize,
3359 ) -> usize,
3360 >,
3361 pub remove: ::std::option::Option<
3362 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, offset: u64, len: u64) -> usize,
3363 >,
3364 pub getModification: ::std::option::Option<
3365 unsafe extern "C" fn(
3366 ctxt: *mut ::std::os::raw::c_void,
3367 offset: u64,
3368 ) -> BNModificationStatus,
3369 >,
3370 pub isValidOffset: ::std::option::Option<
3371 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, offset: u64) -> bool,
3372 >,
3373 pub isOffsetReadable: ::std::option::Option<
3374 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, offset: u64) -> bool,
3375 >,
3376 pub isOffsetWritable: ::std::option::Option<
3377 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, offset: u64) -> bool,
3378 >,
3379 pub isOffsetExecutable: ::std::option::Option<
3380 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, offset: u64) -> bool,
3381 >,
3382 pub isOffsetBackedByFile: ::std::option::Option<
3383 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, offset: u64) -> bool,
3384 >,
3385 pub getNextValidOffset: ::std::option::Option<
3386 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, offset: u64) -> u64,
3387 >,
3388 pub getStart:
3389 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> u64>,
3390 pub getLength:
3391 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> u64>,
3392 pub getEntryPoint:
3393 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> u64>,
3394 pub isExecutable:
3395 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
3396 pub getDefaultEndianness: ::std::option::Option<
3397 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> BNEndianness,
3398 >,
3399 pub isRelocatable:
3400 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
3401 pub getAddressSize:
3402 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> usize>,
3403 pub save: ::std::option::Option<
3404 unsafe extern "C" fn(
3405 ctxt: *mut ::std::os::raw::c_void,
3406 accessor: *mut BNFileAccessor,
3407 ) -> bool,
3408 >,
3409}
3410#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3411const _: () = {
3412 ["Size of BNCustomBinaryView"][::std::mem::size_of::<BNCustomBinaryView>() - 192usize];
3413 ["Alignment of BNCustomBinaryView"][::std::mem::align_of::<BNCustomBinaryView>() - 8usize];
3414 ["Offset of field: BNCustomBinaryView::context"]
3415 [::std::mem::offset_of!(BNCustomBinaryView, context) - 0usize];
3416 ["Offset of field: BNCustomBinaryView::init"]
3417 [::std::mem::offset_of!(BNCustomBinaryView, init) - 8usize];
3418 ["Offset of field: BNCustomBinaryView::freeObject"]
3419 [::std::mem::offset_of!(BNCustomBinaryView, freeObject) - 16usize];
3420 ["Offset of field: BNCustomBinaryView::externalRefTaken"]
3421 [::std::mem::offset_of!(BNCustomBinaryView, externalRefTaken) - 24usize];
3422 ["Offset of field: BNCustomBinaryView::externalRefReleased"]
3423 [::std::mem::offset_of!(BNCustomBinaryView, externalRefReleased) - 32usize];
3424 ["Offset of field: BNCustomBinaryView::read"]
3425 [::std::mem::offset_of!(BNCustomBinaryView, read) - 40usize];
3426 ["Offset of field: BNCustomBinaryView::write"]
3427 [::std::mem::offset_of!(BNCustomBinaryView, write) - 48usize];
3428 ["Offset of field: BNCustomBinaryView::insert"]
3429 [::std::mem::offset_of!(BNCustomBinaryView, insert) - 56usize];
3430 ["Offset of field: BNCustomBinaryView::remove"]
3431 [::std::mem::offset_of!(BNCustomBinaryView, remove) - 64usize];
3432 ["Offset of field: BNCustomBinaryView::getModification"]
3433 [::std::mem::offset_of!(BNCustomBinaryView, getModification) - 72usize];
3434 ["Offset of field: BNCustomBinaryView::isValidOffset"]
3435 [::std::mem::offset_of!(BNCustomBinaryView, isValidOffset) - 80usize];
3436 ["Offset of field: BNCustomBinaryView::isOffsetReadable"]
3437 [::std::mem::offset_of!(BNCustomBinaryView, isOffsetReadable) - 88usize];
3438 ["Offset of field: BNCustomBinaryView::isOffsetWritable"]
3439 [::std::mem::offset_of!(BNCustomBinaryView, isOffsetWritable) - 96usize];
3440 ["Offset of field: BNCustomBinaryView::isOffsetExecutable"]
3441 [::std::mem::offset_of!(BNCustomBinaryView, isOffsetExecutable) - 104usize];
3442 ["Offset of field: BNCustomBinaryView::isOffsetBackedByFile"]
3443 [::std::mem::offset_of!(BNCustomBinaryView, isOffsetBackedByFile) - 112usize];
3444 ["Offset of field: BNCustomBinaryView::getNextValidOffset"]
3445 [::std::mem::offset_of!(BNCustomBinaryView, getNextValidOffset) - 120usize];
3446 ["Offset of field: BNCustomBinaryView::getStart"]
3447 [::std::mem::offset_of!(BNCustomBinaryView, getStart) - 128usize];
3448 ["Offset of field: BNCustomBinaryView::getLength"]
3449 [::std::mem::offset_of!(BNCustomBinaryView, getLength) - 136usize];
3450 ["Offset of field: BNCustomBinaryView::getEntryPoint"]
3451 [::std::mem::offset_of!(BNCustomBinaryView, getEntryPoint) - 144usize];
3452 ["Offset of field: BNCustomBinaryView::isExecutable"]
3453 [::std::mem::offset_of!(BNCustomBinaryView, isExecutable) - 152usize];
3454 ["Offset of field: BNCustomBinaryView::getDefaultEndianness"]
3455 [::std::mem::offset_of!(BNCustomBinaryView, getDefaultEndianness) - 160usize];
3456 ["Offset of field: BNCustomBinaryView::isRelocatable"]
3457 [::std::mem::offset_of!(BNCustomBinaryView, isRelocatable) - 168usize];
3458 ["Offset of field: BNCustomBinaryView::getAddressSize"]
3459 [::std::mem::offset_of!(BNCustomBinaryView, getAddressSize) - 176usize];
3460 ["Offset of field: BNCustomBinaryView::save"]
3461 [::std::mem::offset_of!(BNCustomBinaryView, save) - 184usize];
3462};
3463impl Default for BNCustomBinaryView {
3464 fn default() -> Self {
3465 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3466 unsafe {
3467 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3468 s.assume_init()
3469 }
3470 }
3471}
3472#[repr(C)]
3473#[derive(Debug, Copy, Clone)]
3474pub struct BNCustomBinaryViewType {
3475 pub context: *mut ::std::os::raw::c_void,
3476 pub create: ::std::option::Option<
3477 unsafe extern "C" fn(
3478 ctxt: *mut ::std::os::raw::c_void,
3479 data: *mut BNBinaryView,
3480 ) -> *mut BNBinaryView,
3481 >,
3482 pub parse: ::std::option::Option<
3483 unsafe extern "C" fn(
3484 ctxt: *mut ::std::os::raw::c_void,
3485 data: *mut BNBinaryView,
3486 ) -> *mut BNBinaryView,
3487 >,
3488 pub isValidForData: ::std::option::Option<
3489 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, data: *mut BNBinaryView) -> bool,
3490 >,
3491 pub isDeprecated:
3492 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
3493 pub isForceLoadable:
3494 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
3495 pub getLoadSettingsForData: ::std::option::Option<
3496 unsafe extern "C" fn(
3497 ctxt: *mut ::std::os::raw::c_void,
3498 data: *mut BNBinaryView,
3499 ) -> *mut BNSettings,
3500 >,
3501}
3502#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3503const _: () = {
3504 ["Size of BNCustomBinaryViewType"][::std::mem::size_of::<BNCustomBinaryViewType>() - 56usize];
3505 ["Alignment of BNCustomBinaryViewType"]
3506 [::std::mem::align_of::<BNCustomBinaryViewType>() - 8usize];
3507 ["Offset of field: BNCustomBinaryViewType::context"]
3508 [::std::mem::offset_of!(BNCustomBinaryViewType, context) - 0usize];
3509 ["Offset of field: BNCustomBinaryViewType::create"]
3510 [::std::mem::offset_of!(BNCustomBinaryViewType, create) - 8usize];
3511 ["Offset of field: BNCustomBinaryViewType::parse"]
3512 [::std::mem::offset_of!(BNCustomBinaryViewType, parse) - 16usize];
3513 ["Offset of field: BNCustomBinaryViewType::isValidForData"]
3514 [::std::mem::offset_of!(BNCustomBinaryViewType, isValidForData) - 24usize];
3515 ["Offset of field: BNCustomBinaryViewType::isDeprecated"]
3516 [::std::mem::offset_of!(BNCustomBinaryViewType, isDeprecated) - 32usize];
3517 ["Offset of field: BNCustomBinaryViewType::isForceLoadable"]
3518 [::std::mem::offset_of!(BNCustomBinaryViewType, isForceLoadable) - 40usize];
3519 ["Offset of field: BNCustomBinaryViewType::getLoadSettingsForData"]
3520 [::std::mem::offset_of!(BNCustomBinaryViewType, getLoadSettingsForData) - 48usize];
3521};
3522impl Default for BNCustomBinaryViewType {
3523 fn default() -> Self {
3524 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3525 unsafe {
3526 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3527 s.assume_init()
3528 }
3529 }
3530}
3531#[repr(C)]
3532#[derive(Debug, Copy, Clone)]
3533pub struct BNTransformParameterInfo {
3534 pub name: *mut ::std::os::raw::c_char,
3535 pub longName: *mut ::std::os::raw::c_char,
3536 #[doc = " Variable length if zero"]
3537 pub fixedLength: usize,
3538}
3539#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3540const _: () = {
3541 ["Size of BNTransformParameterInfo"]
3542 [::std::mem::size_of::<BNTransformParameterInfo>() - 24usize];
3543 ["Alignment of BNTransformParameterInfo"]
3544 [::std::mem::align_of::<BNTransformParameterInfo>() - 8usize];
3545 ["Offset of field: BNTransformParameterInfo::name"]
3546 [::std::mem::offset_of!(BNTransformParameterInfo, name) - 0usize];
3547 ["Offset of field: BNTransformParameterInfo::longName"]
3548 [::std::mem::offset_of!(BNTransformParameterInfo, longName) - 8usize];
3549 ["Offset of field: BNTransformParameterInfo::fixedLength"]
3550 [::std::mem::offset_of!(BNTransformParameterInfo, fixedLength) - 16usize];
3551};
3552impl Default for BNTransformParameterInfo {
3553 fn default() -> Self {
3554 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3555 unsafe {
3556 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3557 s.assume_init()
3558 }
3559 }
3560}
3561#[repr(C)]
3562#[derive(Debug, Copy, Clone)]
3563pub struct BNTransformParameter {
3564 pub name: *const ::std::os::raw::c_char,
3565 pub value: *mut BNDataBuffer,
3566}
3567#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3568const _: () = {
3569 ["Size of BNTransformParameter"][::std::mem::size_of::<BNTransformParameter>() - 16usize];
3570 ["Alignment of BNTransformParameter"][::std::mem::align_of::<BNTransformParameter>() - 8usize];
3571 ["Offset of field: BNTransformParameter::name"]
3572 [::std::mem::offset_of!(BNTransformParameter, name) - 0usize];
3573 ["Offset of field: BNTransformParameter::value"]
3574 [::std::mem::offset_of!(BNTransformParameter, value) - 8usize];
3575};
3576impl Default for BNTransformParameter {
3577 fn default() -> Self {
3578 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3579 unsafe {
3580 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3581 s.assume_init()
3582 }
3583 }
3584}
3585#[repr(C)]
3586#[derive(Debug, Copy, Clone)]
3587pub struct BNCustomTransform {
3588 pub context: *mut ::std::os::raw::c_void,
3589 pub getParameters: ::std::option::Option<
3590 unsafe extern "C" fn(
3591 ctxt: *mut ::std::os::raw::c_void,
3592 count: *mut usize,
3593 ) -> *mut BNTransformParameterInfo,
3594 >,
3595 pub freeParameters: ::std::option::Option<
3596 unsafe extern "C" fn(params: *mut BNTransformParameterInfo, count: usize),
3597 >,
3598 pub decode: ::std::option::Option<
3599 unsafe extern "C" fn(
3600 ctxt: *mut ::std::os::raw::c_void,
3601 input: *mut BNDataBuffer,
3602 output: *mut BNDataBuffer,
3603 params: *mut BNTransformParameter,
3604 paramCount: usize,
3605 ) -> bool,
3606 >,
3607 pub encode: ::std::option::Option<
3608 unsafe extern "C" fn(
3609 ctxt: *mut ::std::os::raw::c_void,
3610 input: *mut BNDataBuffer,
3611 output: *mut BNDataBuffer,
3612 params: *mut BNTransformParameter,
3613 paramCount: usize,
3614 ) -> bool,
3615 >,
3616 pub decodeWithContext: ::std::option::Option<
3617 unsafe extern "C" fn(
3618 ctxt: *mut ::std::os::raw::c_void,
3619 context: *mut BNTransformContext,
3620 params: *mut BNTransformParameter,
3621 paramCount: usize,
3622 ) -> bool,
3623 >,
3624 pub canDecode: ::std::option::Option<
3625 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, input: *mut BNBinaryView) -> bool,
3626 >,
3627}
3628#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3629const _: () = {
3630 ["Size of BNCustomTransform"][::std::mem::size_of::<BNCustomTransform>() - 56usize];
3631 ["Alignment of BNCustomTransform"][::std::mem::align_of::<BNCustomTransform>() - 8usize];
3632 ["Offset of field: BNCustomTransform::context"]
3633 [::std::mem::offset_of!(BNCustomTransform, context) - 0usize];
3634 ["Offset of field: BNCustomTransform::getParameters"]
3635 [::std::mem::offset_of!(BNCustomTransform, getParameters) - 8usize];
3636 ["Offset of field: BNCustomTransform::freeParameters"]
3637 [::std::mem::offset_of!(BNCustomTransform, freeParameters) - 16usize];
3638 ["Offset of field: BNCustomTransform::decode"]
3639 [::std::mem::offset_of!(BNCustomTransform, decode) - 24usize];
3640 ["Offset of field: BNCustomTransform::encode"]
3641 [::std::mem::offset_of!(BNCustomTransform, encode) - 32usize];
3642 ["Offset of field: BNCustomTransform::decodeWithContext"]
3643 [::std::mem::offset_of!(BNCustomTransform, decodeWithContext) - 40usize];
3644 ["Offset of field: BNCustomTransform::canDecode"]
3645 [::std::mem::offset_of!(BNCustomTransform, canDecode) - 48usize];
3646};
3647impl Default for BNCustomTransform {
3648 fn default() -> Self {
3649 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3650 unsafe {
3651 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3652 s.assume_init()
3653 }
3654 }
3655}
3656#[repr(C)]
3657#[derive(Debug, Copy, Clone)]
3658pub struct BNInstructionInfo {
3659 pub length: usize,
3660 pub branchCount: usize,
3661 pub archTransitionByTargetAddr: bool,
3662 pub delaySlots: u8,
3663 pub branchType: [BNBranchType; 3usize],
3664 pub branchTarget: [u64; 3usize],
3665 #[doc = " If null, same architecture as instruction"]
3666 pub branchArch: [*mut BNArchitecture; 3usize],
3667}
3668#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3669const _: () = {
3670 ["Size of BNInstructionInfo"][::std::mem::size_of::<BNInstructionInfo>() - 80usize];
3671 ["Alignment of BNInstructionInfo"][::std::mem::align_of::<BNInstructionInfo>() - 8usize];
3672 ["Offset of field: BNInstructionInfo::length"]
3673 [::std::mem::offset_of!(BNInstructionInfo, length) - 0usize];
3674 ["Offset of field: BNInstructionInfo::branchCount"]
3675 [::std::mem::offset_of!(BNInstructionInfo, branchCount) - 8usize];
3676 ["Offset of field: BNInstructionInfo::archTransitionByTargetAddr"]
3677 [::std::mem::offset_of!(BNInstructionInfo, archTransitionByTargetAddr) - 16usize];
3678 ["Offset of field: BNInstructionInfo::delaySlots"]
3679 [::std::mem::offset_of!(BNInstructionInfo, delaySlots) - 17usize];
3680 ["Offset of field: BNInstructionInfo::branchType"]
3681 [::std::mem::offset_of!(BNInstructionInfo, branchType) - 20usize];
3682 ["Offset of field: BNInstructionInfo::branchTarget"]
3683 [::std::mem::offset_of!(BNInstructionInfo, branchTarget) - 32usize];
3684 ["Offset of field: BNInstructionInfo::branchArch"]
3685 [::std::mem::offset_of!(BNInstructionInfo, branchArch) - 56usize];
3686};
3687impl Default for BNInstructionInfo {
3688 fn default() -> Self {
3689 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3690 unsafe {
3691 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3692 s.assume_init()
3693 }
3694 }
3695}
3696#[repr(u32)]
3697#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3698pub enum BNRelocationType {
3699 ELFGlobalRelocationType = 0,
3700 ELFCopyRelocationType = 1,
3701 ELFJumpSlotRelocationType = 2,
3702 StandardRelocationType = 3,
3703 IgnoredRelocation = 4,
3704 UnhandledRelocation = 5,
3705}
3706#[repr(C)]
3707#[derive(Debug, Copy, Clone)]
3708pub struct BNRelocationInfo {
3709 #[doc = " BinaryNinja Relocation Type"]
3710 pub type_: BNRelocationType,
3711 #[doc = " PC Relative or Absolute (subtract address from relocation)"]
3712 pub pcRelative: bool,
3713 #[doc = " Relative to start of module (Add module base to relocation)"]
3714 pub baseRelative: bool,
3715 #[doc = " Base address for this binary view"]
3716 pub base: u64,
3717 #[doc = " Size of the data to be written"]
3718 pub size: usize,
3719 #[doc = " After addition/subtraction truncate to"]
3720 pub truncateSize: usize,
3721 #[doc = " Base type from relocation entry"]
3722 pub nativeType: u64,
3723 #[doc = " Addend value from relocation entry"]
3724 pub addend: usize,
3725 #[doc = " Addend should be subtracted"]
3726 pub hasSign: bool,
3727 #[doc = " Addend should be read from the BinaryView"]
3728 pub implicitAddend: bool,
3729 #[doc = " Relocation entry points to external symbol"]
3730 pub external: bool,
3731 #[doc = " Index into symbol table"]
3732 pub symbolIndex: usize,
3733 #[doc = " Index into the section table"]
3734 pub sectionIndex: usize,
3735 #[doc = " Absolute address or segment offset"]
3736 pub address: u64,
3737 #[doc = " Target (set automatically)"]
3738 pub target: u64,
3739 #[doc = " This relocation is effecting data not code"]
3740 pub dataRelocation: bool,
3741 pub relocationDataCache: [u8; 8usize],
3742 #[doc = " Link to relocation another related relocation"]
3743 pub prev: *mut BNRelocationInfo,
3744 #[doc = " Link to relocation another related relocation"]
3745 pub next: *mut BNRelocationInfo,
3746}
3747#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3748const _: () = {
3749 ["Size of BNRelocationInfo"][::std::mem::size_of::<BNRelocationInfo>() - 120usize];
3750 ["Alignment of BNRelocationInfo"][::std::mem::align_of::<BNRelocationInfo>() - 8usize];
3751 ["Offset of field: BNRelocationInfo::type_"]
3752 [::std::mem::offset_of!(BNRelocationInfo, type_) - 0usize];
3753 ["Offset of field: BNRelocationInfo::pcRelative"]
3754 [::std::mem::offset_of!(BNRelocationInfo, pcRelative) - 4usize];
3755 ["Offset of field: BNRelocationInfo::baseRelative"]
3756 [::std::mem::offset_of!(BNRelocationInfo, baseRelative) - 5usize];
3757 ["Offset of field: BNRelocationInfo::base"]
3758 [::std::mem::offset_of!(BNRelocationInfo, base) - 8usize];
3759 ["Offset of field: BNRelocationInfo::size"]
3760 [::std::mem::offset_of!(BNRelocationInfo, size) - 16usize];
3761 ["Offset of field: BNRelocationInfo::truncateSize"]
3762 [::std::mem::offset_of!(BNRelocationInfo, truncateSize) - 24usize];
3763 ["Offset of field: BNRelocationInfo::nativeType"]
3764 [::std::mem::offset_of!(BNRelocationInfo, nativeType) - 32usize];
3765 ["Offset of field: BNRelocationInfo::addend"]
3766 [::std::mem::offset_of!(BNRelocationInfo, addend) - 40usize];
3767 ["Offset of field: BNRelocationInfo::hasSign"]
3768 [::std::mem::offset_of!(BNRelocationInfo, hasSign) - 48usize];
3769 ["Offset of field: BNRelocationInfo::implicitAddend"]
3770 [::std::mem::offset_of!(BNRelocationInfo, implicitAddend) - 49usize];
3771 ["Offset of field: BNRelocationInfo::external"]
3772 [::std::mem::offset_of!(BNRelocationInfo, external) - 50usize];
3773 ["Offset of field: BNRelocationInfo::symbolIndex"]
3774 [::std::mem::offset_of!(BNRelocationInfo, symbolIndex) - 56usize];
3775 ["Offset of field: BNRelocationInfo::sectionIndex"]
3776 [::std::mem::offset_of!(BNRelocationInfo, sectionIndex) - 64usize];
3777 ["Offset of field: BNRelocationInfo::address"]
3778 [::std::mem::offset_of!(BNRelocationInfo, address) - 72usize];
3779 ["Offset of field: BNRelocationInfo::target"]
3780 [::std::mem::offset_of!(BNRelocationInfo, target) - 80usize];
3781 ["Offset of field: BNRelocationInfo::dataRelocation"]
3782 [::std::mem::offset_of!(BNRelocationInfo, dataRelocation) - 88usize];
3783 ["Offset of field: BNRelocationInfo::relocationDataCache"]
3784 [::std::mem::offset_of!(BNRelocationInfo, relocationDataCache) - 89usize];
3785 ["Offset of field: BNRelocationInfo::prev"]
3786 [::std::mem::offset_of!(BNRelocationInfo, prev) - 104usize];
3787 ["Offset of field: BNRelocationInfo::next"]
3788 [::std::mem::offset_of!(BNRelocationInfo, next) - 112usize];
3789};
3790impl Default for BNRelocationInfo {
3791 fn default() -> Self {
3792 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3793 unsafe {
3794 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3795 s.assume_init()
3796 }
3797 }
3798}
3799#[repr(C)]
3800#[derive(Debug, Copy, Clone)]
3801pub struct BNInstructionTextToken {
3802 pub type_: BNInstructionTextTokenType,
3803 pub text: *mut ::std::os::raw::c_char,
3804 pub value: u64,
3805 pub width: u64,
3806 pub size: usize,
3807 pub operand: usize,
3808 pub context: BNInstructionTextTokenContext,
3809 pub confidence: u8,
3810 pub address: u64,
3811 pub typeNames: *mut *mut ::std::os::raw::c_char,
3812 pub namesCount: usize,
3813 pub exprIndex: usize,
3814}
3815#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3816const _: () = {
3817 ["Size of BNInstructionTextToken"][::std::mem::size_of::<BNInstructionTextToken>() - 88usize];
3818 ["Alignment of BNInstructionTextToken"]
3819 [::std::mem::align_of::<BNInstructionTextToken>() - 8usize];
3820 ["Offset of field: BNInstructionTextToken::type_"]
3821 [::std::mem::offset_of!(BNInstructionTextToken, type_) - 0usize];
3822 ["Offset of field: BNInstructionTextToken::text"]
3823 [::std::mem::offset_of!(BNInstructionTextToken, text) - 8usize];
3824 ["Offset of field: BNInstructionTextToken::value"]
3825 [::std::mem::offset_of!(BNInstructionTextToken, value) - 16usize];
3826 ["Offset of field: BNInstructionTextToken::width"]
3827 [::std::mem::offset_of!(BNInstructionTextToken, width) - 24usize];
3828 ["Offset of field: BNInstructionTextToken::size"]
3829 [::std::mem::offset_of!(BNInstructionTextToken, size) - 32usize];
3830 ["Offset of field: BNInstructionTextToken::operand"]
3831 [::std::mem::offset_of!(BNInstructionTextToken, operand) - 40usize];
3832 ["Offset of field: BNInstructionTextToken::context"]
3833 [::std::mem::offset_of!(BNInstructionTextToken, context) - 48usize];
3834 ["Offset of field: BNInstructionTextToken::confidence"]
3835 [::std::mem::offset_of!(BNInstructionTextToken, confidence) - 52usize];
3836 ["Offset of field: BNInstructionTextToken::address"]
3837 [::std::mem::offset_of!(BNInstructionTextToken, address) - 56usize];
3838 ["Offset of field: BNInstructionTextToken::typeNames"]
3839 [::std::mem::offset_of!(BNInstructionTextToken, typeNames) - 64usize];
3840 ["Offset of field: BNInstructionTextToken::namesCount"]
3841 [::std::mem::offset_of!(BNInstructionTextToken, namesCount) - 72usize];
3842 ["Offset of field: BNInstructionTextToken::exprIndex"]
3843 [::std::mem::offset_of!(BNInstructionTextToken, exprIndex) - 80usize];
3844};
3845impl Default for BNInstructionTextToken {
3846 fn default() -> Self {
3847 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3848 unsafe {
3849 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3850 s.assume_init()
3851 }
3852 }
3853}
3854#[repr(C)]
3855#[derive(Debug, Copy, Clone)]
3856pub struct BNInstructionTextLine {
3857 pub tokens: *mut BNInstructionTextToken,
3858 pub count: usize,
3859}
3860#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3861const _: () = {
3862 ["Size of BNInstructionTextLine"][::std::mem::size_of::<BNInstructionTextLine>() - 16usize];
3863 ["Alignment of BNInstructionTextLine"]
3864 [::std::mem::align_of::<BNInstructionTextLine>() - 8usize];
3865 ["Offset of field: BNInstructionTextLine::tokens"]
3866 [::std::mem::offset_of!(BNInstructionTextLine, tokens) - 0usize];
3867 ["Offset of field: BNInstructionTextLine::count"]
3868 [::std::mem::offset_of!(BNInstructionTextLine, count) - 8usize];
3869};
3870impl Default for BNInstructionTextLine {
3871 fn default() -> Self {
3872 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3873 unsafe {
3874 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3875 s.assume_init()
3876 }
3877 }
3878}
3879#[repr(u32)]
3880#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3881pub enum BNTypeDefinitionLineType {
3882 TypedefLineType = 0,
3883 StructDefinitionLineType = 1,
3884 StructFieldLineType = 2,
3885 StructDefinitionEndLineType = 3,
3886 EnumDefinitionLineType = 4,
3887 EnumMemberLineType = 5,
3888 EnumDefinitionEndLineType = 6,
3889 PaddingLineType = 7,
3890 UndefinedXrefLineType = 8,
3891 CollapsedPaddingLineType = 9,
3892 EmptyLineType = 10,
3893}
3894#[repr(C)]
3895#[derive(Debug, Copy, Clone)]
3896pub struct BNTypeDefinitionLine {
3897 pub lineType: BNTypeDefinitionLineType,
3898 pub tokens: *mut BNInstructionTextToken,
3899 pub count: usize,
3900 pub type_: *mut BNType,
3901 pub parentType: *mut BNType,
3902 pub rootType: *mut BNType,
3903 pub rootTypeName: *mut ::std::os::raw::c_char,
3904 pub baseType: *mut BNNamedTypeReference,
3905 pub baseOffset: u64,
3906 pub offset: u64,
3907 pub fieldIndex: usize,
3908}
3909#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3910const _: () = {
3911 ["Size of BNTypeDefinitionLine"][::std::mem::size_of::<BNTypeDefinitionLine>() - 88usize];
3912 ["Alignment of BNTypeDefinitionLine"][::std::mem::align_of::<BNTypeDefinitionLine>() - 8usize];
3913 ["Offset of field: BNTypeDefinitionLine::lineType"]
3914 [::std::mem::offset_of!(BNTypeDefinitionLine, lineType) - 0usize];
3915 ["Offset of field: BNTypeDefinitionLine::tokens"]
3916 [::std::mem::offset_of!(BNTypeDefinitionLine, tokens) - 8usize];
3917 ["Offset of field: BNTypeDefinitionLine::count"]
3918 [::std::mem::offset_of!(BNTypeDefinitionLine, count) - 16usize];
3919 ["Offset of field: BNTypeDefinitionLine::type_"]
3920 [::std::mem::offset_of!(BNTypeDefinitionLine, type_) - 24usize];
3921 ["Offset of field: BNTypeDefinitionLine::parentType"]
3922 [::std::mem::offset_of!(BNTypeDefinitionLine, parentType) - 32usize];
3923 ["Offset of field: BNTypeDefinitionLine::rootType"]
3924 [::std::mem::offset_of!(BNTypeDefinitionLine, rootType) - 40usize];
3925 ["Offset of field: BNTypeDefinitionLine::rootTypeName"]
3926 [::std::mem::offset_of!(BNTypeDefinitionLine, rootTypeName) - 48usize];
3927 ["Offset of field: BNTypeDefinitionLine::baseType"]
3928 [::std::mem::offset_of!(BNTypeDefinitionLine, baseType) - 56usize];
3929 ["Offset of field: BNTypeDefinitionLine::baseOffset"]
3930 [::std::mem::offset_of!(BNTypeDefinitionLine, baseOffset) - 64usize];
3931 ["Offset of field: BNTypeDefinitionLine::offset"]
3932 [::std::mem::offset_of!(BNTypeDefinitionLine, offset) - 72usize];
3933 ["Offset of field: BNTypeDefinitionLine::fieldIndex"]
3934 [::std::mem::offset_of!(BNTypeDefinitionLine, fieldIndex) - 80usize];
3935};
3936impl Default for BNTypeDefinitionLine {
3937 fn default() -> Self {
3938 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3939 unsafe {
3940 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3941 s.assume_init()
3942 }
3943 }
3944}
3945#[repr(C)]
3946#[derive(Debug, Copy, Clone)]
3947pub struct BNFlagConditionForSemanticClass {
3948 pub semanticClass: u32,
3949 pub condition: BNLowLevelILFlagCondition,
3950}
3951#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3952const _: () = {
3953 ["Size of BNFlagConditionForSemanticClass"]
3954 [::std::mem::size_of::<BNFlagConditionForSemanticClass>() - 8usize];
3955 ["Alignment of BNFlagConditionForSemanticClass"]
3956 [::std::mem::align_of::<BNFlagConditionForSemanticClass>() - 4usize];
3957 ["Offset of field: BNFlagConditionForSemanticClass::semanticClass"]
3958 [::std::mem::offset_of!(BNFlagConditionForSemanticClass, semanticClass) - 0usize];
3959 ["Offset of field: BNFlagConditionForSemanticClass::condition"]
3960 [::std::mem::offset_of!(BNFlagConditionForSemanticClass, condition) - 4usize];
3961};
3962impl Default for BNFlagConditionForSemanticClass {
3963 fn default() -> Self {
3964 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3965 unsafe {
3966 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3967 s.assume_init()
3968 }
3969 }
3970}
3971#[repr(C)]
3972#[derive(Debug, Copy, Clone)]
3973pub struct BNNameAndType {
3974 pub name: *mut ::std::os::raw::c_char,
3975 pub type_: *mut BNType,
3976 pub typeConfidence: u8,
3977}
3978#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3979const _: () = {
3980 ["Size of BNNameAndType"][::std::mem::size_of::<BNNameAndType>() - 24usize];
3981 ["Alignment of BNNameAndType"][::std::mem::align_of::<BNNameAndType>() - 8usize];
3982 ["Offset of field: BNNameAndType::name"][::std::mem::offset_of!(BNNameAndType, name) - 0usize];
3983 ["Offset of field: BNNameAndType::type_"]
3984 [::std::mem::offset_of!(BNNameAndType, type_) - 8usize];
3985 ["Offset of field: BNNameAndType::typeConfidence"]
3986 [::std::mem::offset_of!(BNNameAndType, typeConfidence) - 16usize];
3987};
3988impl Default for BNNameAndType {
3989 fn default() -> Self {
3990 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3991 unsafe {
3992 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3993 s.assume_init()
3994 }
3995 }
3996}
3997#[repr(C)]
3998#[derive(Debug, Copy, Clone)]
3999pub struct BNTypeWithConfidence {
4000 pub type_: *mut BNType,
4001 pub confidence: u8,
4002}
4003#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4004const _: () = {
4005 ["Size of BNTypeWithConfidence"][::std::mem::size_of::<BNTypeWithConfidence>() - 16usize];
4006 ["Alignment of BNTypeWithConfidence"][::std::mem::align_of::<BNTypeWithConfidence>() - 8usize];
4007 ["Offset of field: BNTypeWithConfidence::type_"]
4008 [::std::mem::offset_of!(BNTypeWithConfidence, type_) - 0usize];
4009 ["Offset of field: BNTypeWithConfidence::confidence"]
4010 [::std::mem::offset_of!(BNTypeWithConfidence, confidence) - 8usize];
4011};
4012impl Default for BNTypeWithConfidence {
4013 fn default() -> Self {
4014 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4015 unsafe {
4016 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4017 s.assume_init()
4018 }
4019 }
4020}
4021#[repr(u32)]
4022#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
4023pub enum BNFunctionAnalysisSkipOverride {
4024 DefaultFunctionAnalysisSkip = 0,
4025 NeverSkipFunctionAnalysis = 1,
4026 AlwaysSkipFunctionAnalysis = 2,
4027}
4028#[repr(C)]
4029#[derive(Debug, Copy, Clone)]
4030pub struct BNBasicBlockAnalysisContext {
4031 pub function: *mut BNFunction,
4032 #[doc = " IN"]
4033 pub analysisSkipOverride: BNFunctionAnalysisSkipOverride,
4034 pub guidedAnalysisMode: bool,
4035 pub triggerGuidedOnInvalidInstruction: bool,
4036 pub translateTailCalls: bool,
4037 pub disallowBranchToString: bool,
4038 pub maxFunctionSize: u64,
4039 pub indirectBranchesCount: usize,
4040 pub indirectBranches: *mut BNIndirectBranchInfo,
4041 pub indirectNoReturnCallsCount: usize,
4042 pub indirectNoReturnCalls: *mut BNArchitectureAndAddress,
4043 #[doc = " OUT; can be set directly"]
4044 pub maxSizeReached: bool,
4045 #[doc = " IN *and* OUT"]
4046 pub contextualFunctionReturnCount: usize,
4047 pub contextualFunctionReturnLocations: *mut BNArchitectureAndAddress,
4048 pub contextualFunctionReturnValues: *mut bool,
4049 #[doc = " OUT"]
4050 pub directRefCount: usize,
4051 pub directRefSources: *mut BNArchitectureAndAddress,
4052 pub directRefTargets: *mut u64,
4053 pub directNoReturnCallsCount: usize,
4054 pub directNoReturnCalls: *mut BNArchitectureAndAddress,
4055 pub haltedDisassemblyAddressesCount: usize,
4056 pub haltedDisassemblyAddresses: *mut BNArchitectureAndAddress,
4057 pub inlinedUnresolvedIndirectBranchCount: usize,
4058 pub inlinedUnresolvedIndirectBranches: *mut BNArchitectureAndAddress,
4059}
4060#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4061const _: () = {
4062 ["Size of BNBasicBlockAnalysisContext"]
4063 [::std::mem::size_of::<BNBasicBlockAnalysisContext>() - 160usize];
4064 ["Alignment of BNBasicBlockAnalysisContext"]
4065 [::std::mem::align_of::<BNBasicBlockAnalysisContext>() - 8usize];
4066 ["Offset of field: BNBasicBlockAnalysisContext::function"]
4067 [::std::mem::offset_of!(BNBasicBlockAnalysisContext, function) - 0usize];
4068 ["Offset of field: BNBasicBlockAnalysisContext::analysisSkipOverride"]
4069 [::std::mem::offset_of!(BNBasicBlockAnalysisContext, analysisSkipOverride) - 8usize];
4070 ["Offset of field: BNBasicBlockAnalysisContext::guidedAnalysisMode"]
4071 [::std::mem::offset_of!(BNBasicBlockAnalysisContext, guidedAnalysisMode) - 12usize];
4072 ["Offset of field: BNBasicBlockAnalysisContext::triggerGuidedOnInvalidInstruction"][::std::mem::offset_of!(
4073 BNBasicBlockAnalysisContext,
4074 triggerGuidedOnInvalidInstruction
4075 )
4076 - 13usize];
4077 ["Offset of field: BNBasicBlockAnalysisContext::translateTailCalls"]
4078 [::std::mem::offset_of!(BNBasicBlockAnalysisContext, translateTailCalls) - 14usize];
4079 ["Offset of field: BNBasicBlockAnalysisContext::disallowBranchToString"]
4080 [::std::mem::offset_of!(BNBasicBlockAnalysisContext, disallowBranchToString) - 15usize];
4081 ["Offset of field: BNBasicBlockAnalysisContext::maxFunctionSize"]
4082 [::std::mem::offset_of!(BNBasicBlockAnalysisContext, maxFunctionSize) - 16usize];
4083 ["Offset of field: BNBasicBlockAnalysisContext::indirectBranchesCount"]
4084 [::std::mem::offset_of!(BNBasicBlockAnalysisContext, indirectBranchesCount) - 24usize];
4085 ["Offset of field: BNBasicBlockAnalysisContext::indirectBranches"]
4086 [::std::mem::offset_of!(BNBasicBlockAnalysisContext, indirectBranches) - 32usize];
4087 ["Offset of field: BNBasicBlockAnalysisContext::indirectNoReturnCallsCount"]
4088 [::std::mem::offset_of!(BNBasicBlockAnalysisContext, indirectNoReturnCallsCount) - 40usize];
4089 ["Offset of field: BNBasicBlockAnalysisContext::indirectNoReturnCalls"]
4090 [::std::mem::offset_of!(BNBasicBlockAnalysisContext, indirectNoReturnCalls) - 48usize];
4091 ["Offset of field: BNBasicBlockAnalysisContext::maxSizeReached"]
4092 [::std::mem::offset_of!(BNBasicBlockAnalysisContext, maxSizeReached) - 56usize];
4093 ["Offset of field: BNBasicBlockAnalysisContext::contextualFunctionReturnCount"][::std::mem::offset_of!(
4094 BNBasicBlockAnalysisContext,
4095 contextualFunctionReturnCount
4096 ) - 64usize];
4097 ["Offset of field: BNBasicBlockAnalysisContext::contextualFunctionReturnLocations"][::std::mem::offset_of!(
4098 BNBasicBlockAnalysisContext,
4099 contextualFunctionReturnLocations
4100 )
4101 - 72usize];
4102 ["Offset of field: BNBasicBlockAnalysisContext::contextualFunctionReturnValues"][::std::mem::offset_of!(
4103 BNBasicBlockAnalysisContext,
4104 contextualFunctionReturnValues
4105 ) - 80usize];
4106 ["Offset of field: BNBasicBlockAnalysisContext::directRefCount"]
4107 [::std::mem::offset_of!(BNBasicBlockAnalysisContext, directRefCount) - 88usize];
4108 ["Offset of field: BNBasicBlockAnalysisContext::directRefSources"]
4109 [::std::mem::offset_of!(BNBasicBlockAnalysisContext, directRefSources) - 96usize];
4110 ["Offset of field: BNBasicBlockAnalysisContext::directRefTargets"]
4111 [::std::mem::offset_of!(BNBasicBlockAnalysisContext, directRefTargets) - 104usize];
4112 ["Offset of field: BNBasicBlockAnalysisContext::directNoReturnCallsCount"]
4113 [::std::mem::offset_of!(BNBasicBlockAnalysisContext, directNoReturnCallsCount) - 112usize];
4114 ["Offset of field: BNBasicBlockAnalysisContext::directNoReturnCalls"]
4115 [::std::mem::offset_of!(BNBasicBlockAnalysisContext, directNoReturnCalls) - 120usize];
4116 ["Offset of field: BNBasicBlockAnalysisContext::haltedDisassemblyAddressesCount"][::std::mem::offset_of!(
4117 BNBasicBlockAnalysisContext,
4118 haltedDisassemblyAddressesCount
4119 ) - 128usize];
4120 ["Offset of field: BNBasicBlockAnalysisContext::haltedDisassemblyAddresses"][::std::mem::offset_of!(
4121 BNBasicBlockAnalysisContext,
4122 haltedDisassemblyAddresses
4123 ) - 136usize];
4124 ["Offset of field: BNBasicBlockAnalysisContext::inlinedUnresolvedIndirectBranchCount"][::std::mem::offset_of!(
4125 BNBasicBlockAnalysisContext,
4126 inlinedUnresolvedIndirectBranchCount
4127 )
4128 - 144usize];
4129 ["Offset of field: BNBasicBlockAnalysisContext::inlinedUnresolvedIndirectBranches"][::std::mem::offset_of!(
4130 BNBasicBlockAnalysisContext,
4131 inlinedUnresolvedIndirectBranches
4132 )
4133 - 152usize];
4134};
4135impl Default for BNBasicBlockAnalysisContext {
4136 fn default() -> Self {
4137 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4138 unsafe {
4139 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4140 s.assume_init()
4141 }
4142 }
4143}
4144#[repr(C)]
4145#[derive(Debug, Copy, Clone)]
4146pub struct BNCustomArchitecture {
4147 pub context: *mut ::std::os::raw::c_void,
4148 pub init: ::std::option::Option<
4149 unsafe extern "C" fn(context: *mut ::std::os::raw::c_void, obj: *mut BNArchitecture),
4150 >,
4151 pub getEndianness: ::std::option::Option<
4152 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> BNEndianness,
4153 >,
4154 pub getAddressSize:
4155 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> usize>,
4156 pub getDefaultIntegerSize:
4157 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> usize>,
4158 pub getInstructionAlignment:
4159 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> usize>,
4160 pub getMaxInstructionLength:
4161 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> usize>,
4162 pub getOpcodeDisplayLength:
4163 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> usize>,
4164 pub getAssociatedArchitectureByAddress: ::std::option::Option<
4165 unsafe extern "C" fn(
4166 ctxt: *mut ::std::os::raw::c_void,
4167 addr: *mut u64,
4168 ) -> *mut BNArchitecture,
4169 >,
4170 pub getInstructionInfo: ::std::option::Option<
4171 unsafe extern "C" fn(
4172 ctxt: *mut ::std::os::raw::c_void,
4173 data: *const u8,
4174 addr: u64,
4175 maxLen: usize,
4176 result: *mut BNInstructionInfo,
4177 ) -> bool,
4178 >,
4179 pub getInstructionText: ::std::option::Option<
4180 unsafe extern "C" fn(
4181 ctxt: *mut ::std::os::raw::c_void,
4182 data: *const u8,
4183 addr: u64,
4184 len: *mut usize,
4185 result: *mut *mut BNInstructionTextToken,
4186 count: *mut usize,
4187 ) -> bool,
4188 >,
4189 pub freeInstructionText: ::std::option::Option<
4190 unsafe extern "C" fn(tokens: *mut BNInstructionTextToken, count: usize),
4191 >,
4192 pub getInstructionLowLevelIL: ::std::option::Option<
4193 unsafe extern "C" fn(
4194 ctxt: *mut ::std::os::raw::c_void,
4195 data: *const u8,
4196 addr: u64,
4197 len: *mut usize,
4198 il: *mut BNLowLevelILFunction,
4199 ) -> bool,
4200 >,
4201 pub analyzeBasicBlocks: ::std::option::Option<
4202 unsafe extern "C" fn(
4203 ctxt: *mut ::std::os::raw::c_void,
4204 function: *mut BNFunction,
4205 context: *mut BNBasicBlockAnalysisContext,
4206 ),
4207 >,
4208 pub getRegisterName: ::std::option::Option<
4209 unsafe extern "C" fn(
4210 ctxt: *mut ::std::os::raw::c_void,
4211 reg: u32,
4212 ) -> *mut ::std::os::raw::c_char,
4213 >,
4214 pub getFlagName: ::std::option::Option<
4215 unsafe extern "C" fn(
4216 ctxt: *mut ::std::os::raw::c_void,
4217 flag: u32,
4218 ) -> *mut ::std::os::raw::c_char,
4219 >,
4220 pub getFlagWriteTypeName: ::std::option::Option<
4221 unsafe extern "C" fn(
4222 ctxt: *mut ::std::os::raw::c_void,
4223 flags: u32,
4224 ) -> *mut ::std::os::raw::c_char,
4225 >,
4226 pub getSemanticFlagClassName: ::std::option::Option<
4227 unsafe extern "C" fn(
4228 ctxt: *mut ::std::os::raw::c_void,
4229 semClass: u32,
4230 ) -> *mut ::std::os::raw::c_char,
4231 >,
4232 pub getSemanticFlagGroupName: ::std::option::Option<
4233 unsafe extern "C" fn(
4234 ctxt: *mut ::std::os::raw::c_void,
4235 semGroup: u32,
4236 ) -> *mut ::std::os::raw::c_char,
4237 >,
4238 pub getFullWidthRegisters: ::std::option::Option<
4239 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
4240 >,
4241 pub getAllRegisters: ::std::option::Option<
4242 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
4243 >,
4244 pub getAllFlags: ::std::option::Option<
4245 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
4246 >,
4247 pub getAllFlagWriteTypes: ::std::option::Option<
4248 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
4249 >,
4250 pub getAllSemanticFlagClasses: ::std::option::Option<
4251 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
4252 >,
4253 pub getAllSemanticFlagGroups: ::std::option::Option<
4254 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
4255 >,
4256 pub getFlagRole: ::std::option::Option<
4257 unsafe extern "C" fn(
4258 ctxt: *mut ::std::os::raw::c_void,
4259 flag: u32,
4260 semClass: u32,
4261 ) -> BNFlagRole,
4262 >,
4263 pub getFlagsRequiredForFlagCondition: ::std::option::Option<
4264 unsafe extern "C" fn(
4265 ctxt: *mut ::std::os::raw::c_void,
4266 cond: BNLowLevelILFlagCondition,
4267 semClass: u32,
4268 count: *mut usize,
4269 ) -> *mut u32,
4270 >,
4271 pub getFlagsRequiredForSemanticFlagGroup: ::std::option::Option<
4272 unsafe extern "C" fn(
4273 ctxt: *mut ::std::os::raw::c_void,
4274 semGroup: u32,
4275 count: *mut usize,
4276 ) -> *mut u32,
4277 >,
4278 pub getFlagConditionsForSemanticFlagGroup: ::std::option::Option<
4279 unsafe extern "C" fn(
4280 ctxt: *mut ::std::os::raw::c_void,
4281 semGroup: u32,
4282 count: *mut usize,
4283 ) -> *mut BNFlagConditionForSemanticClass,
4284 >,
4285 pub freeFlagConditionsForSemanticFlagGroup: ::std::option::Option<
4286 unsafe extern "C" fn(
4287 ctxt: *mut ::std::os::raw::c_void,
4288 conditions: *mut BNFlagConditionForSemanticClass,
4289 count: usize,
4290 ),
4291 >,
4292 pub getFlagsWrittenByFlagWriteType: ::std::option::Option<
4293 unsafe extern "C" fn(
4294 ctxt: *mut ::std::os::raw::c_void,
4295 writeType: u32,
4296 count: *mut usize,
4297 ) -> *mut u32,
4298 >,
4299 pub getSemanticClassForFlagWriteType: ::std::option::Option<
4300 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, writeType: u32) -> u32,
4301 >,
4302 pub getFlagWriteLowLevelIL: ::std::option::Option<
4303 unsafe extern "C" fn(
4304 ctxt: *mut ::std::os::raw::c_void,
4305 op: BNLowLevelILOperation,
4306 size: usize,
4307 flagWriteType: u32,
4308 flag: u32,
4309 operands: *mut BNRegisterOrConstant,
4310 operandCount: usize,
4311 il: *mut BNLowLevelILFunction,
4312 ) -> usize,
4313 >,
4314 pub getFlagConditionLowLevelIL: ::std::option::Option<
4315 unsafe extern "C" fn(
4316 ctxt: *mut ::std::os::raw::c_void,
4317 cond: BNLowLevelILFlagCondition,
4318 semClass: u32,
4319 il: *mut BNLowLevelILFunction,
4320 ) -> usize,
4321 >,
4322 pub getSemanticFlagGroupLowLevelIL: ::std::option::Option<
4323 unsafe extern "C" fn(
4324 ctxt: *mut ::std::os::raw::c_void,
4325 semGroup: u32,
4326 il: *mut BNLowLevelILFunction,
4327 ) -> usize,
4328 >,
4329 pub freeRegisterList: ::std::option::Option<
4330 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, regs: *mut u32, count: usize),
4331 >,
4332 pub getRegisterInfo: ::std::option::Option<
4333 unsafe extern "C" fn(
4334 ctxt: *mut ::std::os::raw::c_void,
4335 reg: u32,
4336 result: *mut BNRegisterInfo,
4337 ),
4338 >,
4339 pub getStackPointerRegister:
4340 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> u32>,
4341 pub getLinkRegister:
4342 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> u32>,
4343 pub getGlobalRegisters: ::std::option::Option<
4344 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
4345 >,
4346 pub getSystemRegisters: ::std::option::Option<
4347 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
4348 >,
4349 pub getRegisterStackName: ::std::option::Option<
4350 unsafe extern "C" fn(
4351 ctxt: *mut ::std::os::raw::c_void,
4352 regStack: u32,
4353 ) -> *mut ::std::os::raw::c_char,
4354 >,
4355 pub getAllRegisterStacks: ::std::option::Option<
4356 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
4357 >,
4358 pub getRegisterStackInfo: ::std::option::Option<
4359 unsafe extern "C" fn(
4360 ctxt: *mut ::std::os::raw::c_void,
4361 regStack: u32,
4362 result: *mut BNRegisterStackInfo,
4363 ),
4364 >,
4365 pub getIntrinsicClass: ::std::option::Option<
4366 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, intrinsic: u32) -> BNIntrinsicClass,
4367 >,
4368 pub getIntrinsicName: ::std::option::Option<
4369 unsafe extern "C" fn(
4370 ctxt: *mut ::std::os::raw::c_void,
4371 intrinsic: u32,
4372 ) -> *mut ::std::os::raw::c_char,
4373 >,
4374 pub getAllIntrinsics: ::std::option::Option<
4375 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
4376 >,
4377 pub getIntrinsicInputs: ::std::option::Option<
4378 unsafe extern "C" fn(
4379 ctxt: *mut ::std::os::raw::c_void,
4380 intrinsic: u32,
4381 count: *mut usize,
4382 ) -> *mut BNNameAndType,
4383 >,
4384 pub freeNameAndTypeList: ::std::option::Option<
4385 unsafe extern "C" fn(
4386 ctxt: *mut ::std::os::raw::c_void,
4387 nt: *mut BNNameAndType,
4388 count: usize,
4389 ),
4390 >,
4391 pub getIntrinsicOutputs: ::std::option::Option<
4392 unsafe extern "C" fn(
4393 ctxt: *mut ::std::os::raw::c_void,
4394 intrinsic: u32,
4395 count: *mut usize,
4396 ) -> *mut BNTypeWithConfidence,
4397 >,
4398 pub freeTypeList: ::std::option::Option<
4399 unsafe extern "C" fn(
4400 ctxt: *mut ::std::os::raw::c_void,
4401 types: *mut BNTypeWithConfidence,
4402 count: usize,
4403 ),
4404 >,
4405 pub canAssemble:
4406 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
4407 pub assemble: ::std::option::Option<
4408 unsafe extern "C" fn(
4409 ctxt: *mut ::std::os::raw::c_void,
4410 code: *const ::std::os::raw::c_char,
4411 addr: u64,
4412 result: *mut BNDataBuffer,
4413 errors: *mut *mut ::std::os::raw::c_char,
4414 ) -> bool,
4415 >,
4416 pub isNeverBranchPatchAvailable: ::std::option::Option<
4417 unsafe extern "C" fn(
4418 ctxt: *mut ::std::os::raw::c_void,
4419 data: *const u8,
4420 addr: u64,
4421 len: usize,
4422 ) -> bool,
4423 >,
4424 pub isAlwaysBranchPatchAvailable: ::std::option::Option<
4425 unsafe extern "C" fn(
4426 ctxt: *mut ::std::os::raw::c_void,
4427 data: *const u8,
4428 addr: u64,
4429 len: usize,
4430 ) -> bool,
4431 >,
4432 pub isInvertBranchPatchAvailable: ::std::option::Option<
4433 unsafe extern "C" fn(
4434 ctxt: *mut ::std::os::raw::c_void,
4435 data: *const u8,
4436 addr: u64,
4437 len: usize,
4438 ) -> bool,
4439 >,
4440 pub isSkipAndReturnZeroPatchAvailable: ::std::option::Option<
4441 unsafe extern "C" fn(
4442 ctxt: *mut ::std::os::raw::c_void,
4443 data: *const u8,
4444 addr: u64,
4445 len: usize,
4446 ) -> bool,
4447 >,
4448 pub isSkipAndReturnValuePatchAvailable: ::std::option::Option<
4449 unsafe extern "C" fn(
4450 ctxt: *mut ::std::os::raw::c_void,
4451 data: *const u8,
4452 addr: u64,
4453 len: usize,
4454 ) -> bool,
4455 >,
4456 pub convertToNop: ::std::option::Option<
4457 unsafe extern "C" fn(
4458 ctxt: *mut ::std::os::raw::c_void,
4459 data: *mut u8,
4460 addr: u64,
4461 len: usize,
4462 ) -> bool,
4463 >,
4464 pub alwaysBranch: ::std::option::Option<
4465 unsafe extern "C" fn(
4466 ctxt: *mut ::std::os::raw::c_void,
4467 data: *mut u8,
4468 addr: u64,
4469 len: usize,
4470 ) -> bool,
4471 >,
4472 pub invertBranch: ::std::option::Option<
4473 unsafe extern "C" fn(
4474 ctxt: *mut ::std::os::raw::c_void,
4475 data: *mut u8,
4476 addr: u64,
4477 len: usize,
4478 ) -> bool,
4479 >,
4480 pub skipAndReturnValue: ::std::option::Option<
4481 unsafe extern "C" fn(
4482 ctxt: *mut ::std::os::raw::c_void,
4483 data: *mut u8,
4484 addr: u64,
4485 len: usize,
4486 value: u64,
4487 ) -> bool,
4488 >,
4489}
4490#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4491const _: () = {
4492 ["Size of BNCustomArchitecture"][::std::mem::size_of::<BNCustomArchitecture>() - 496usize];
4493 ["Alignment of BNCustomArchitecture"][::std::mem::align_of::<BNCustomArchitecture>() - 8usize];
4494 ["Offset of field: BNCustomArchitecture::context"]
4495 [::std::mem::offset_of!(BNCustomArchitecture, context) - 0usize];
4496 ["Offset of field: BNCustomArchitecture::init"]
4497 [::std::mem::offset_of!(BNCustomArchitecture, init) - 8usize];
4498 ["Offset of field: BNCustomArchitecture::getEndianness"]
4499 [::std::mem::offset_of!(BNCustomArchitecture, getEndianness) - 16usize];
4500 ["Offset of field: BNCustomArchitecture::getAddressSize"]
4501 [::std::mem::offset_of!(BNCustomArchitecture, getAddressSize) - 24usize];
4502 ["Offset of field: BNCustomArchitecture::getDefaultIntegerSize"]
4503 [::std::mem::offset_of!(BNCustomArchitecture, getDefaultIntegerSize) - 32usize];
4504 ["Offset of field: BNCustomArchitecture::getInstructionAlignment"]
4505 [::std::mem::offset_of!(BNCustomArchitecture, getInstructionAlignment) - 40usize];
4506 ["Offset of field: BNCustomArchitecture::getMaxInstructionLength"]
4507 [::std::mem::offset_of!(BNCustomArchitecture, getMaxInstructionLength) - 48usize];
4508 ["Offset of field: BNCustomArchitecture::getOpcodeDisplayLength"]
4509 [::std::mem::offset_of!(BNCustomArchitecture, getOpcodeDisplayLength) - 56usize];
4510 ["Offset of field: BNCustomArchitecture::getAssociatedArchitectureByAddress"][::std::mem::offset_of!(
4511 BNCustomArchitecture,
4512 getAssociatedArchitectureByAddress
4513 ) - 64usize];
4514 ["Offset of field: BNCustomArchitecture::getInstructionInfo"]
4515 [::std::mem::offset_of!(BNCustomArchitecture, getInstructionInfo) - 72usize];
4516 ["Offset of field: BNCustomArchitecture::getInstructionText"]
4517 [::std::mem::offset_of!(BNCustomArchitecture, getInstructionText) - 80usize];
4518 ["Offset of field: BNCustomArchitecture::freeInstructionText"]
4519 [::std::mem::offset_of!(BNCustomArchitecture, freeInstructionText) - 88usize];
4520 ["Offset of field: BNCustomArchitecture::getInstructionLowLevelIL"]
4521 [::std::mem::offset_of!(BNCustomArchitecture, getInstructionLowLevelIL) - 96usize];
4522 ["Offset of field: BNCustomArchitecture::analyzeBasicBlocks"]
4523 [::std::mem::offset_of!(BNCustomArchitecture, analyzeBasicBlocks) - 104usize];
4524 ["Offset of field: BNCustomArchitecture::getRegisterName"]
4525 [::std::mem::offset_of!(BNCustomArchitecture, getRegisterName) - 112usize];
4526 ["Offset of field: BNCustomArchitecture::getFlagName"]
4527 [::std::mem::offset_of!(BNCustomArchitecture, getFlagName) - 120usize];
4528 ["Offset of field: BNCustomArchitecture::getFlagWriteTypeName"]
4529 [::std::mem::offset_of!(BNCustomArchitecture, getFlagWriteTypeName) - 128usize];
4530 ["Offset of field: BNCustomArchitecture::getSemanticFlagClassName"]
4531 [::std::mem::offset_of!(BNCustomArchitecture, getSemanticFlagClassName) - 136usize];
4532 ["Offset of field: BNCustomArchitecture::getSemanticFlagGroupName"]
4533 [::std::mem::offset_of!(BNCustomArchitecture, getSemanticFlagGroupName) - 144usize];
4534 ["Offset of field: BNCustomArchitecture::getFullWidthRegisters"]
4535 [::std::mem::offset_of!(BNCustomArchitecture, getFullWidthRegisters) - 152usize];
4536 ["Offset of field: BNCustomArchitecture::getAllRegisters"]
4537 [::std::mem::offset_of!(BNCustomArchitecture, getAllRegisters) - 160usize];
4538 ["Offset of field: BNCustomArchitecture::getAllFlags"]
4539 [::std::mem::offset_of!(BNCustomArchitecture, getAllFlags) - 168usize];
4540 ["Offset of field: BNCustomArchitecture::getAllFlagWriteTypes"]
4541 [::std::mem::offset_of!(BNCustomArchitecture, getAllFlagWriteTypes) - 176usize];
4542 ["Offset of field: BNCustomArchitecture::getAllSemanticFlagClasses"]
4543 [::std::mem::offset_of!(BNCustomArchitecture, getAllSemanticFlagClasses) - 184usize];
4544 ["Offset of field: BNCustomArchitecture::getAllSemanticFlagGroups"]
4545 [::std::mem::offset_of!(BNCustomArchitecture, getAllSemanticFlagGroups) - 192usize];
4546 ["Offset of field: BNCustomArchitecture::getFlagRole"]
4547 [::std::mem::offset_of!(BNCustomArchitecture, getFlagRole) - 200usize];
4548 ["Offset of field: BNCustomArchitecture::getFlagsRequiredForFlagCondition"]
4549 [::std::mem::offset_of!(BNCustomArchitecture, getFlagsRequiredForFlagCondition) - 208usize];
4550 ["Offset of field: BNCustomArchitecture::getFlagsRequiredForSemanticFlagGroup"][::std::mem::offset_of!(
4551 BNCustomArchitecture,
4552 getFlagsRequiredForSemanticFlagGroup
4553 ) - 216usize];
4554 ["Offset of field: BNCustomArchitecture::getFlagConditionsForSemanticFlagGroup"][::std::mem::offset_of!(
4555 BNCustomArchitecture,
4556 getFlagConditionsForSemanticFlagGroup
4557 ) - 224usize];
4558 ["Offset of field: BNCustomArchitecture::freeFlagConditionsForSemanticFlagGroup"][::std::mem::offset_of!(
4559 BNCustomArchitecture,
4560 freeFlagConditionsForSemanticFlagGroup
4561 ) - 232usize];
4562 ["Offset of field: BNCustomArchitecture::getFlagsWrittenByFlagWriteType"]
4563 [::std::mem::offset_of!(BNCustomArchitecture, getFlagsWrittenByFlagWriteType) - 240usize];
4564 ["Offset of field: BNCustomArchitecture::getSemanticClassForFlagWriteType"]
4565 [::std::mem::offset_of!(BNCustomArchitecture, getSemanticClassForFlagWriteType) - 248usize];
4566 ["Offset of field: BNCustomArchitecture::getFlagWriteLowLevelIL"]
4567 [::std::mem::offset_of!(BNCustomArchitecture, getFlagWriteLowLevelIL) - 256usize];
4568 ["Offset of field: BNCustomArchitecture::getFlagConditionLowLevelIL"]
4569 [::std::mem::offset_of!(BNCustomArchitecture, getFlagConditionLowLevelIL) - 264usize];
4570 ["Offset of field: BNCustomArchitecture::getSemanticFlagGroupLowLevelIL"]
4571 [::std::mem::offset_of!(BNCustomArchitecture, getSemanticFlagGroupLowLevelIL) - 272usize];
4572 ["Offset of field: BNCustomArchitecture::freeRegisterList"]
4573 [::std::mem::offset_of!(BNCustomArchitecture, freeRegisterList) - 280usize];
4574 ["Offset of field: BNCustomArchitecture::getRegisterInfo"]
4575 [::std::mem::offset_of!(BNCustomArchitecture, getRegisterInfo) - 288usize];
4576 ["Offset of field: BNCustomArchitecture::getStackPointerRegister"]
4577 [::std::mem::offset_of!(BNCustomArchitecture, getStackPointerRegister) - 296usize];
4578 ["Offset of field: BNCustomArchitecture::getLinkRegister"]
4579 [::std::mem::offset_of!(BNCustomArchitecture, getLinkRegister) - 304usize];
4580 ["Offset of field: BNCustomArchitecture::getGlobalRegisters"]
4581 [::std::mem::offset_of!(BNCustomArchitecture, getGlobalRegisters) - 312usize];
4582 ["Offset of field: BNCustomArchitecture::getSystemRegisters"]
4583 [::std::mem::offset_of!(BNCustomArchitecture, getSystemRegisters) - 320usize];
4584 ["Offset of field: BNCustomArchitecture::getRegisterStackName"]
4585 [::std::mem::offset_of!(BNCustomArchitecture, getRegisterStackName) - 328usize];
4586 ["Offset of field: BNCustomArchitecture::getAllRegisterStacks"]
4587 [::std::mem::offset_of!(BNCustomArchitecture, getAllRegisterStacks) - 336usize];
4588 ["Offset of field: BNCustomArchitecture::getRegisterStackInfo"]
4589 [::std::mem::offset_of!(BNCustomArchitecture, getRegisterStackInfo) - 344usize];
4590 ["Offset of field: BNCustomArchitecture::getIntrinsicClass"]
4591 [::std::mem::offset_of!(BNCustomArchitecture, getIntrinsicClass) - 352usize];
4592 ["Offset of field: BNCustomArchitecture::getIntrinsicName"]
4593 [::std::mem::offset_of!(BNCustomArchitecture, getIntrinsicName) - 360usize];
4594 ["Offset of field: BNCustomArchitecture::getAllIntrinsics"]
4595 [::std::mem::offset_of!(BNCustomArchitecture, getAllIntrinsics) - 368usize];
4596 ["Offset of field: BNCustomArchitecture::getIntrinsicInputs"]
4597 [::std::mem::offset_of!(BNCustomArchitecture, getIntrinsicInputs) - 376usize];
4598 ["Offset of field: BNCustomArchitecture::freeNameAndTypeList"]
4599 [::std::mem::offset_of!(BNCustomArchitecture, freeNameAndTypeList) - 384usize];
4600 ["Offset of field: BNCustomArchitecture::getIntrinsicOutputs"]
4601 [::std::mem::offset_of!(BNCustomArchitecture, getIntrinsicOutputs) - 392usize];
4602 ["Offset of field: BNCustomArchitecture::freeTypeList"]
4603 [::std::mem::offset_of!(BNCustomArchitecture, freeTypeList) - 400usize];
4604 ["Offset of field: BNCustomArchitecture::canAssemble"]
4605 [::std::mem::offset_of!(BNCustomArchitecture, canAssemble) - 408usize];
4606 ["Offset of field: BNCustomArchitecture::assemble"]
4607 [::std::mem::offset_of!(BNCustomArchitecture, assemble) - 416usize];
4608 ["Offset of field: BNCustomArchitecture::isNeverBranchPatchAvailable"]
4609 [::std::mem::offset_of!(BNCustomArchitecture, isNeverBranchPatchAvailable) - 424usize];
4610 ["Offset of field: BNCustomArchitecture::isAlwaysBranchPatchAvailable"]
4611 [::std::mem::offset_of!(BNCustomArchitecture, isAlwaysBranchPatchAvailable) - 432usize];
4612 ["Offset of field: BNCustomArchitecture::isInvertBranchPatchAvailable"]
4613 [::std::mem::offset_of!(BNCustomArchitecture, isInvertBranchPatchAvailable) - 440usize];
4614 ["Offset of field: BNCustomArchitecture::isSkipAndReturnZeroPatchAvailable"][::std::mem::offset_of!(
4615 BNCustomArchitecture,
4616 isSkipAndReturnZeroPatchAvailable
4617 ) - 448usize];
4618 ["Offset of field: BNCustomArchitecture::isSkipAndReturnValuePatchAvailable"][::std::mem::offset_of!(
4619 BNCustomArchitecture,
4620 isSkipAndReturnValuePatchAvailable
4621 ) - 456usize];
4622 ["Offset of field: BNCustomArchitecture::convertToNop"]
4623 [::std::mem::offset_of!(BNCustomArchitecture, convertToNop) - 464usize];
4624 ["Offset of field: BNCustomArchitecture::alwaysBranch"]
4625 [::std::mem::offset_of!(BNCustomArchitecture, alwaysBranch) - 472usize];
4626 ["Offset of field: BNCustomArchitecture::invertBranch"]
4627 [::std::mem::offset_of!(BNCustomArchitecture, invertBranch) - 480usize];
4628 ["Offset of field: BNCustomArchitecture::skipAndReturnValue"]
4629 [::std::mem::offset_of!(BNCustomArchitecture, skipAndReturnValue) - 488usize];
4630};
4631impl Default for BNCustomArchitecture {
4632 fn default() -> Self {
4633 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4634 unsafe {
4635 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4636 s.assume_init()
4637 }
4638 }
4639}
4640#[repr(C)]
4641#[derive(Debug, Copy, Clone)]
4642pub struct BNCustomPlatform {
4643 pub context: *mut ::std::os::raw::c_void,
4644 pub init: ::std::option::Option<
4645 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, obj: *mut BNPlatform),
4646 >,
4647 pub viewInit: ::std::option::Option<
4648 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, view: *mut BNBinaryView),
4649 >,
4650 pub getGlobalRegisters: ::std::option::Option<
4651 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
4652 >,
4653 pub freeRegisterList: ::std::option::Option<
4654 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, regs: *mut u32, len: usize),
4655 >,
4656 pub getGlobalRegisterType: ::std::option::Option<
4657 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, reg: u32) -> *mut BNType,
4658 >,
4659 pub getAddressSize:
4660 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> usize>,
4661 pub adjustTypeParserInput: ::std::option::Option<
4662 unsafe extern "C" fn(
4663 ctxt: *mut ::std::os::raw::c_void,
4664 parser: *mut BNTypeParser,
4665 argumentsIn: *const *const ::std::os::raw::c_char,
4666 argumentsLenIn: usize,
4667 sourceFileNamesIn: *const *const ::std::os::raw::c_char,
4668 sourceFileValuesIn: *const *const ::std::os::raw::c_char,
4669 sourceFilesLenIn: usize,
4670 argumentsOut: *mut *mut *mut ::std::os::raw::c_char,
4671 argumentsLenOut: *mut usize,
4672 sourceFileNamesOut: *mut *mut *mut ::std::os::raw::c_char,
4673 sourceFileValuesOut: *mut *mut *mut ::std::os::raw::c_char,
4674 sourceFilesLenOut: *mut usize,
4675 ),
4676 >,
4677 pub freeTypeParserInput: ::std::option::Option<
4678 unsafe extern "C" fn(
4679 ctxt: *mut ::std::os::raw::c_void,
4680 arguments: *mut *mut ::std::os::raw::c_char,
4681 argumentsLen: usize,
4682 sourceFileNames: *mut *mut ::std::os::raw::c_char,
4683 sourceFileValues: *mut *mut ::std::os::raw::c_char,
4684 sourceFilesLen: usize,
4685 ),
4686 >,
4687 pub getFallbackEnabled:
4688 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
4689}
4690#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4691const _: () = {
4692 ["Size of BNCustomPlatform"][::std::mem::size_of::<BNCustomPlatform>() - 80usize];
4693 ["Alignment of BNCustomPlatform"][::std::mem::align_of::<BNCustomPlatform>() - 8usize];
4694 ["Offset of field: BNCustomPlatform::context"]
4695 [::std::mem::offset_of!(BNCustomPlatform, context) - 0usize];
4696 ["Offset of field: BNCustomPlatform::init"]
4697 [::std::mem::offset_of!(BNCustomPlatform, init) - 8usize];
4698 ["Offset of field: BNCustomPlatform::viewInit"]
4699 [::std::mem::offset_of!(BNCustomPlatform, viewInit) - 16usize];
4700 ["Offset of field: BNCustomPlatform::getGlobalRegisters"]
4701 [::std::mem::offset_of!(BNCustomPlatform, getGlobalRegisters) - 24usize];
4702 ["Offset of field: BNCustomPlatform::freeRegisterList"]
4703 [::std::mem::offset_of!(BNCustomPlatform, freeRegisterList) - 32usize];
4704 ["Offset of field: BNCustomPlatform::getGlobalRegisterType"]
4705 [::std::mem::offset_of!(BNCustomPlatform, getGlobalRegisterType) - 40usize];
4706 ["Offset of field: BNCustomPlatform::getAddressSize"]
4707 [::std::mem::offset_of!(BNCustomPlatform, getAddressSize) - 48usize];
4708 ["Offset of field: BNCustomPlatform::adjustTypeParserInput"]
4709 [::std::mem::offset_of!(BNCustomPlatform, adjustTypeParserInput) - 56usize];
4710 ["Offset of field: BNCustomPlatform::freeTypeParserInput"]
4711 [::std::mem::offset_of!(BNCustomPlatform, freeTypeParserInput) - 64usize];
4712 ["Offset of field: BNCustomPlatform::getFallbackEnabled"]
4713 [::std::mem::offset_of!(BNCustomPlatform, getFallbackEnabled) - 72usize];
4714};
4715impl Default for BNCustomPlatform {
4716 fn default() -> Self {
4717 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4718 unsafe {
4719 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4720 s.assume_init()
4721 }
4722 }
4723}
4724#[repr(C)]
4725#[derive(Debug, Copy, Clone)]
4726pub struct BNBasicBlockEdge {
4727 pub type_: BNBranchType,
4728 pub target: *mut BNBasicBlock,
4729 pub backEdge: bool,
4730 pub fallThrough: bool,
4731}
4732#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4733const _: () = {
4734 ["Size of BNBasicBlockEdge"][::std::mem::size_of::<BNBasicBlockEdge>() - 24usize];
4735 ["Alignment of BNBasicBlockEdge"][::std::mem::align_of::<BNBasicBlockEdge>() - 8usize];
4736 ["Offset of field: BNBasicBlockEdge::type_"]
4737 [::std::mem::offset_of!(BNBasicBlockEdge, type_) - 0usize];
4738 ["Offset of field: BNBasicBlockEdge::target"]
4739 [::std::mem::offset_of!(BNBasicBlockEdge, target) - 8usize];
4740 ["Offset of field: BNBasicBlockEdge::backEdge"]
4741 [::std::mem::offset_of!(BNBasicBlockEdge, backEdge) - 16usize];
4742 ["Offset of field: BNBasicBlockEdge::fallThrough"]
4743 [::std::mem::offset_of!(BNBasicBlockEdge, fallThrough) - 17usize];
4744};
4745impl Default for BNBasicBlockEdge {
4746 fn default() -> Self {
4747 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4748 unsafe {
4749 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4750 s.assume_init()
4751 }
4752 }
4753}
4754#[repr(C)]
4755#[derive(Debug, Copy, Clone)]
4756pub struct BNPendingBasicBlockEdge {
4757 pub type_: BNBranchType,
4758 pub arch: *mut BNArchitecture,
4759 pub target: u64,
4760 pub fallThrough: bool,
4761}
4762#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4763const _: () = {
4764 ["Size of BNPendingBasicBlockEdge"][::std::mem::size_of::<BNPendingBasicBlockEdge>() - 32usize];
4765 ["Alignment of BNPendingBasicBlockEdge"]
4766 [::std::mem::align_of::<BNPendingBasicBlockEdge>() - 8usize];
4767 ["Offset of field: BNPendingBasicBlockEdge::type_"]
4768 [::std::mem::offset_of!(BNPendingBasicBlockEdge, type_) - 0usize];
4769 ["Offset of field: BNPendingBasicBlockEdge::arch"]
4770 [::std::mem::offset_of!(BNPendingBasicBlockEdge, arch) - 8usize];
4771 ["Offset of field: BNPendingBasicBlockEdge::target"]
4772 [::std::mem::offset_of!(BNPendingBasicBlockEdge, target) - 16usize];
4773 ["Offset of field: BNPendingBasicBlockEdge::fallThrough"]
4774 [::std::mem::offset_of!(BNPendingBasicBlockEdge, fallThrough) - 24usize];
4775};
4776impl Default for BNPendingBasicBlockEdge {
4777 fn default() -> Self {
4778 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4779 unsafe {
4780 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4781 s.assume_init()
4782 }
4783 }
4784}
4785#[repr(C)]
4786#[derive(Debug, Default, Copy, Clone)]
4787pub struct BNPoint {
4788 pub x: f32,
4789 pub y: f32,
4790}
4791#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4792const _: () = {
4793 ["Size of BNPoint"][::std::mem::size_of::<BNPoint>() - 8usize];
4794 ["Alignment of BNPoint"][::std::mem::align_of::<BNPoint>() - 4usize];
4795 ["Offset of field: BNPoint::x"][::std::mem::offset_of!(BNPoint, x) - 0usize];
4796 ["Offset of field: BNPoint::y"][::std::mem::offset_of!(BNPoint, y) - 4usize];
4797};
4798#[repr(u32)]
4799#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
4800pub enum BNThemeColor {
4801 #[doc = " Hex dump colors"]
4802 AddressColor = 0,
4803 #[doc = " Hex dump colors"]
4804 ModifiedColor = 1,
4805 #[doc = " Hex dump colors"]
4806 InsertedColor = 2,
4807 #[doc = " Hex dump colors"]
4808 NotPresentColor = 3,
4809 #[doc = " Hex dump colors"]
4810 SelectionColor = 4,
4811 #[doc = " Hex dump colors"]
4812 OutlineColor = 5,
4813 #[doc = " Hex dump colors"]
4814 BackgroundHighlightDarkColor = 6,
4815 #[doc = " Hex dump colors"]
4816 BackgroundHighlightLightColor = 7,
4817 #[doc = " Hex dump colors"]
4818 BoldBackgroundHighlightDarkColor = 8,
4819 #[doc = " Hex dump colors"]
4820 BoldBackgroundHighlightLightColor = 9,
4821 #[doc = " Hex dump colors"]
4822 AlphanumericHighlightColor = 10,
4823 #[doc = " Hex dump colors"]
4824 PrintableHighlightColor = 11,
4825 #[doc = " Graph colors"]
4826 GraphBackgroundDarkColor = 12,
4827 #[doc = " Graph colors"]
4828 GraphBackgroundLightColor = 13,
4829 #[doc = " Graph colors"]
4830 GraphNodeDarkColor = 14,
4831 #[doc = " Graph colors"]
4832 GraphNodeLightColor = 15,
4833 #[doc = " Graph colors"]
4834 GraphNodeOutlineColor = 16,
4835 #[doc = " Graph colors"]
4836 GraphNodeShadowColor = 17,
4837 #[doc = " Graph colors"]
4838 GraphEntryNodeIndicatorColor = 18,
4839 #[doc = " Graph colors"]
4840 GraphExitNodeIndicatorColor = 19,
4841 #[doc = " Graph colors"]
4842 GraphExitNoreturnNodeIndicatorColor = 20,
4843 #[doc = " Graph colors"]
4844 TrueBranchColor = 21,
4845 #[doc = " Graph colors"]
4846 FalseBranchColor = 22,
4847 #[doc = " Graph colors"]
4848 UnconditionalBranchColor = 23,
4849 #[doc = " Graph colors"]
4850 AltTrueBranchColor = 24,
4851 #[doc = " Graph colors"]
4852 AltFalseBranchColor = 25,
4853 #[doc = " Graph colors"]
4854 AltUnconditionalBranchColor = 26,
4855 #[doc = " Disassembly colors"]
4856 InstructionColor = 27,
4857 #[doc = " Disassembly colors"]
4858 RegisterColor = 28,
4859 #[doc = " Disassembly colors"]
4860 NumberColor = 29,
4861 #[doc = " Disassembly colors"]
4862 CodeSymbolColor = 30,
4863 #[doc = " Disassembly colors"]
4864 DataSymbolColor = 31,
4865 #[doc = " Disassembly colors"]
4866 LocalVariableColor = 32,
4867 #[doc = " Disassembly colors"]
4868 StackVariableColor = 33,
4869 #[doc = " Disassembly colors"]
4870 ImportColor = 34,
4871 #[doc = " Disassembly colors"]
4872 ExportColor = 35,
4873 #[doc = " Disassembly colors"]
4874 InstructionHighlightColor = 36,
4875 #[doc = " Disassembly colors"]
4876 RelatedInstructionHighlightColor = 37,
4877 #[doc = " Disassembly colors"]
4878 TokenHighlightColor = 38,
4879 #[doc = " Disassembly colors"]
4880 TokenSelectionColor = 39,
4881 #[doc = " Disassembly colors"]
4882 AnnotationColor = 40,
4883 #[doc = " Disassembly colors"]
4884 OpcodeColor = 41,
4885 #[doc = " Disassembly colors"]
4886 LinearDisassemblyFunctionHeaderColor = 42,
4887 #[doc = " Disassembly colors"]
4888 LinearDisassemblyBlockColor = 43,
4889 #[doc = " Disassembly colors"]
4890 LinearDisassemblyNoteColor = 44,
4891 #[doc = " Disassembly colors"]
4892 LinearDisassemblySeparatorColor = 45,
4893 #[doc = " Disassembly colors"]
4894 LinearDisassemblyCodeFoldColor = 46,
4895 #[doc = " Disassembly colors"]
4896 StringColor = 47,
4897 #[doc = " Disassembly colors"]
4898 TypeNameColor = 48,
4899 #[doc = " Disassembly colors"]
4900 FieldNameColor = 49,
4901 #[doc = " Disassembly colors"]
4902 KeywordColor = 50,
4903 #[doc = " Disassembly colors"]
4904 UncertainColor = 51,
4905 #[doc = " Disassembly colors"]
4906 NameSpaceColor = 52,
4907 #[doc = " Disassembly colors"]
4908 NameSpaceSeparatorColor = 53,
4909 #[doc = " Disassembly colors"]
4910 GotoLabelColor = 54,
4911 #[doc = " Disassembly colors"]
4912 CommentColor = 55,
4913 #[doc = " Disassembly colors"]
4914 OperationColor = 56,
4915 #[doc = " Disassembly colors"]
4916 BaseStructureNameColor = 57,
4917 #[doc = " Disassembly colors"]
4918 IndentationLineColor = 58,
4919 #[doc = " Disassembly colors"]
4920 IndentationLineHighlightColor = 59,
4921 #[doc = " Script console colors"]
4922 ScriptConsoleOutputColor = 60,
4923 #[doc = " Script console colors"]
4924 ScriptConsoleWarningColor = 61,
4925 #[doc = " Script console colors"]
4926 ScriptConsoleErrorColor = 62,
4927 #[doc = " Script console colors"]
4928 ScriptConsoleEchoColor = 63,
4929 #[doc = " Highlighting colors"]
4930 BlueStandardHighlightColor = 64,
4931 #[doc = " Highlighting colors"]
4932 GreenStandardHighlightColor = 65,
4933 #[doc = " Highlighting colors"]
4934 CyanStandardHighlightColor = 66,
4935 #[doc = " Highlighting colors"]
4936 RedStandardHighlightColor = 67,
4937 #[doc = " Highlighting colors"]
4938 MagentaStandardHighlightColor = 68,
4939 #[doc = " Highlighting colors"]
4940 YellowStandardHighlightColor = 69,
4941 #[doc = " Highlighting colors"]
4942 OrangeStandardHighlightColor = 70,
4943 #[doc = " Highlighting colors"]
4944 WhiteStandardHighlightColor = 71,
4945 #[doc = " Highlighting colors"]
4946 BlackStandardHighlightColor = 72,
4947 #[doc = " MiniGraph"]
4948 MiniGraphOverlayColor = 73,
4949 #[doc = " FeatureMap"]
4950 FeatureMapBaseColor = 74,
4951 #[doc = " FeatureMap"]
4952 FeatureMapNavLineColor = 75,
4953 #[doc = " FeatureMap"]
4954 FeatureMapNavHighlightColor = 76,
4955 #[doc = " FeatureMap"]
4956 FeatureMapDataVariableColor = 77,
4957 #[doc = " FeatureMap"]
4958 FeatureMapAsciiStringColor = 78,
4959 #[doc = " FeatureMap"]
4960 FeatureMapUnicodeStringColor = 79,
4961 #[doc = " FeatureMap"]
4962 FeatureMapFunctionColor = 80,
4963 #[doc = " FeatureMap"]
4964 FeatureMapImportColor = 81,
4965 #[doc = " FeatureMap"]
4966 FeatureMapExternColor = 82,
4967 #[doc = " FeatureMap"]
4968 FeatureMapLibraryColor = 83,
4969 #[doc = " Sidebar colors"]
4970 SidebarBackgroundColor = 84,
4971 #[doc = " Sidebar colors"]
4972 SidebarInactiveIconColor = 85,
4973 #[doc = " Sidebar colors"]
4974 SidebarHoverIconColor = 86,
4975 #[doc = " Sidebar colors"]
4976 SidebarActiveIconColor = 87,
4977 #[doc = " Sidebar colors"]
4978 SidebarFocusedIconColor = 88,
4979 #[doc = " Sidebar colors"]
4980 SidebarHoverBackgroundColor = 89,
4981 #[doc = " Sidebar colors"]
4982 SidebarActiveBackgroundColor = 90,
4983 #[doc = " Sidebar colors"]
4984 SidebarFocusedBackgroundColor = 91,
4985 #[doc = " Sidebar colors"]
4986 SidebarActiveIndicatorLineColor = 92,
4987 #[doc = " Deprecated, has no effect (paints as QPalette::Window)"]
4988 SidebarHeaderBackgroundColor = 93,
4989 SidebarHeaderTextColor = 94,
4990 SidebarWidgetBackgroundColor = 95,
4991 #[doc = " Pane colors"]
4992 ActivePaneBackgroundColor = 96,
4993 #[doc = " Pane colors"]
4994 InactivePaneBackgroundColor = 97,
4995 #[doc = " Pane colors"]
4996 FocusedPaneBackgroundColor = 98,
4997 #[doc = " Tab colors"]
4998 TabBarTabActiveColor = 99,
4999 #[doc = " Tab colors"]
5000 TabBarTabHoverColor = 100,
5001 #[doc = " Tab colors"]
5002 TabBarTabInactiveColor = 101,
5003 #[doc = " Tab colors"]
5004 TabBarTabBorderColor = 102,
5005 #[doc = " Tab colors"]
5006 TabBarTabGlowColor = 103,
5007 #[doc = " Status colors"]
5008 StatusBarServerConnectedColor = 104,
5009 #[doc = " Status colors"]
5010 StatusBarServerDisconnectedColor = 105,
5011 #[doc = " Status colors"]
5012 StatusBarServerWarningColor = 106,
5013 #[doc = " Status colors"]
5014 StatusBarProjectColor = 107,
5015 #[doc = " Brace colors"]
5016 BraceOption1Color = 108,
5017 #[doc = " Brace colors"]
5018 BraceOption2Color = 109,
5019 #[doc = " Brace colors"]
5020 BraceOption3Color = 110,
5021 #[doc = " Brace colors"]
5022 BraceOption4Color = 111,
5023 #[doc = " Brace colors"]
5024 BraceOption5Color = 112,
5025 #[doc = " Brace colors"]
5026 BraceOption6Color = 113,
5027 #[doc = " Type class colors"]
5028 VoidTypeColor = 114,
5029 #[doc = " Type class colors"]
5030 StructureTypeColor = 115,
5031 #[doc = " Type class colors"]
5032 EnumerationTypeColor = 116,
5033 #[doc = " Type class colors"]
5034 FunctionTypeColor = 117,
5035 #[doc = " Type class colors"]
5036 BoolTypeColor = 118,
5037 #[doc = " Type class colors"]
5038 IntegerTypeColor = 119,
5039 #[doc = " Type class colors"]
5040 FloatTypeColor = 120,
5041 #[doc = " Type class colors"]
5042 PointerTypeColor = 121,
5043 #[doc = " Type class colors"]
5044 ArrayTypeColor = 122,
5045 #[doc = " Type class colors"]
5046 VarArgsTypeColor = 123,
5047 #[doc = " Type class colors"]
5048 ValueTypeColor = 124,
5049 #[doc = " Type class colors"]
5050 NamedTypeReferenceColor = 125,
5051 #[doc = " Type class colors"]
5052 WideCharTypeColor = 126,
5053}
5054#[repr(u32)]
5055#[doc = " The following edge styles map to Qt's Qt::PenStyle enumeration"]
5056#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
5057pub enum BNEdgePenStyle {
5058 #[doc = " no line at all."]
5059 NoPen = 0,
5060 #[doc = " A plain line (default)"]
5061 SolidLine = 1,
5062 #[doc = " Dashes separated by a few pixels."]
5063 DashLine = 2,
5064 #[doc = " Dots separated by a few pixels."]
5065 DotLine = 3,
5066 #[doc = " Alternate dots and dashes."]
5067 DashDotLine = 4,
5068 #[doc = " One dash, two dots, one dash, two dots."]
5069 DashDotDotLine = 5,
5070}
5071#[repr(C)]
5072#[derive(Debug, Copy, Clone)]
5073pub struct BNEdgeStyle {
5074 pub style: BNEdgePenStyle,
5075 pub width: usize,
5076 pub color: BNThemeColor,
5077}
5078#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5079const _: () = {
5080 ["Size of BNEdgeStyle"][::std::mem::size_of::<BNEdgeStyle>() - 24usize];
5081 ["Alignment of BNEdgeStyle"][::std::mem::align_of::<BNEdgeStyle>() - 8usize];
5082 ["Offset of field: BNEdgeStyle::style"][::std::mem::offset_of!(BNEdgeStyle, style) - 0usize];
5083 ["Offset of field: BNEdgeStyle::width"][::std::mem::offset_of!(BNEdgeStyle, width) - 8usize];
5084 ["Offset of field: BNEdgeStyle::color"][::std::mem::offset_of!(BNEdgeStyle, color) - 16usize];
5085};
5086impl Default for BNEdgeStyle {
5087 fn default() -> Self {
5088 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5089 unsafe {
5090 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5091 s.assume_init()
5092 }
5093 }
5094}
5095#[repr(C)]
5096#[derive(Debug, Copy, Clone)]
5097pub struct BNFlowGraphEdge {
5098 pub type_: BNBranchType,
5099 pub target: *mut BNFlowGraphNode,
5100 pub points: *mut BNPoint,
5101 pub pointCount: usize,
5102 pub backEdge: bool,
5103 pub style: BNEdgeStyle,
5104}
5105#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5106const _: () = {
5107 ["Size of BNFlowGraphEdge"][::std::mem::size_of::<BNFlowGraphEdge>() - 64usize];
5108 ["Alignment of BNFlowGraphEdge"][::std::mem::align_of::<BNFlowGraphEdge>() - 8usize];
5109 ["Offset of field: BNFlowGraphEdge::type_"]
5110 [::std::mem::offset_of!(BNFlowGraphEdge, type_) - 0usize];
5111 ["Offset of field: BNFlowGraphEdge::target"]
5112 [::std::mem::offset_of!(BNFlowGraphEdge, target) - 8usize];
5113 ["Offset of field: BNFlowGraphEdge::points"]
5114 [::std::mem::offset_of!(BNFlowGraphEdge, points) - 16usize];
5115 ["Offset of field: BNFlowGraphEdge::pointCount"]
5116 [::std::mem::offset_of!(BNFlowGraphEdge, pointCount) - 24usize];
5117 ["Offset of field: BNFlowGraphEdge::backEdge"]
5118 [::std::mem::offset_of!(BNFlowGraphEdge, backEdge) - 32usize];
5119 ["Offset of field: BNFlowGraphEdge::style"]
5120 [::std::mem::offset_of!(BNFlowGraphEdge, style) - 40usize];
5121};
5122impl Default for BNFlowGraphEdge {
5123 fn default() -> Self {
5124 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5125 unsafe {
5126 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5127 s.assume_init()
5128 }
5129 }
5130}
5131#[repr(u32)]
5132#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
5133pub enum BNHighlightColorStyle {
5134 StandardHighlightColor = 0,
5135 MixedHighlightColor = 1,
5136 CustomHighlightColor = 2,
5137}
5138#[repr(u32)]
5139#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
5140pub enum BNHighlightStandardColor {
5141 NoHighlightColor = 0,
5142 BlueHighlightColor = 1,
5143 GreenHighlightColor = 2,
5144 CyanHighlightColor = 3,
5145 RedHighlightColor = 4,
5146 MagentaHighlightColor = 5,
5147 YellowHighlightColor = 6,
5148 OrangeHighlightColor = 7,
5149 WhiteHighlightColor = 8,
5150 BlackHighlightColor = 9,
5151}
5152#[repr(C)]
5153#[derive(Debug, Copy, Clone)]
5154pub struct BNHighlightColor {
5155 pub style: BNHighlightColorStyle,
5156 pub color: BNHighlightStandardColor,
5157 pub mixColor: BNHighlightStandardColor,
5158 pub mix: u8,
5159 pub r: u8,
5160 pub g: u8,
5161 pub b: u8,
5162 pub alpha: u8,
5163}
5164#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5165const _: () = {
5166 ["Size of BNHighlightColor"][::std::mem::size_of::<BNHighlightColor>() - 20usize];
5167 ["Alignment of BNHighlightColor"][::std::mem::align_of::<BNHighlightColor>() - 4usize];
5168 ["Offset of field: BNHighlightColor::style"]
5169 [::std::mem::offset_of!(BNHighlightColor, style) - 0usize];
5170 ["Offset of field: BNHighlightColor::color"]
5171 [::std::mem::offset_of!(BNHighlightColor, color) - 4usize];
5172 ["Offset of field: BNHighlightColor::mixColor"]
5173 [::std::mem::offset_of!(BNHighlightColor, mixColor) - 8usize];
5174 ["Offset of field: BNHighlightColor::mix"]
5175 [::std::mem::offset_of!(BNHighlightColor, mix) - 12usize];
5176 ["Offset of field: BNHighlightColor::r"][::std::mem::offset_of!(BNHighlightColor, r) - 13usize];
5177 ["Offset of field: BNHighlightColor::g"][::std::mem::offset_of!(BNHighlightColor, g) - 14usize];
5178 ["Offset of field: BNHighlightColor::b"][::std::mem::offset_of!(BNHighlightColor, b) - 15usize];
5179 ["Offset of field: BNHighlightColor::alpha"]
5180 [::std::mem::offset_of!(BNHighlightColor, alpha) - 16usize];
5181};
5182impl Default for BNHighlightColor {
5183 fn default() -> Self {
5184 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5185 unsafe {
5186 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5187 s.assume_init()
5188 }
5189 }
5190}
5191#[repr(C)]
5192#[derive(Debug, Copy, Clone)]
5193pub struct BNDisassemblyTextLineTypeInfo {
5194 pub hasTypeInfo: bool,
5195 pub parentType: *mut BNType,
5196 pub fieldIndex: usize,
5197 pub offset: u64,
5198}
5199#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5200const _: () = {
5201 ["Size of BNDisassemblyTextLineTypeInfo"]
5202 [::std::mem::size_of::<BNDisassemblyTextLineTypeInfo>() - 32usize];
5203 ["Alignment of BNDisassemblyTextLineTypeInfo"]
5204 [::std::mem::align_of::<BNDisassemblyTextLineTypeInfo>() - 8usize];
5205 ["Offset of field: BNDisassemblyTextLineTypeInfo::hasTypeInfo"]
5206 [::std::mem::offset_of!(BNDisassemblyTextLineTypeInfo, hasTypeInfo) - 0usize];
5207 ["Offset of field: BNDisassemblyTextLineTypeInfo::parentType"]
5208 [::std::mem::offset_of!(BNDisassemblyTextLineTypeInfo, parentType) - 8usize];
5209 ["Offset of field: BNDisassemblyTextLineTypeInfo::fieldIndex"]
5210 [::std::mem::offset_of!(BNDisassemblyTextLineTypeInfo, fieldIndex) - 16usize];
5211 ["Offset of field: BNDisassemblyTextLineTypeInfo::offset"]
5212 [::std::mem::offset_of!(BNDisassemblyTextLineTypeInfo, offset) - 24usize];
5213};
5214impl Default for BNDisassemblyTextLineTypeInfo {
5215 fn default() -> Self {
5216 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5217 unsafe {
5218 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5219 s.assume_init()
5220 }
5221 }
5222}
5223#[repr(C)]
5224#[derive(Debug, Copy, Clone)]
5225pub struct BNDisassemblyTextLine {
5226 pub addr: u64,
5227 pub instrIndex: usize,
5228 pub tokens: *mut BNInstructionTextToken,
5229 pub count: usize,
5230 pub highlight: BNHighlightColor,
5231 pub tags: *mut *mut BNTag,
5232 pub tagCount: usize,
5233 pub typeInfo: BNDisassemblyTextLineTypeInfo,
5234}
5235#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5236const _: () = {
5237 ["Size of BNDisassemblyTextLine"][::std::mem::size_of::<BNDisassemblyTextLine>() - 104usize];
5238 ["Alignment of BNDisassemblyTextLine"]
5239 [::std::mem::align_of::<BNDisassemblyTextLine>() - 8usize];
5240 ["Offset of field: BNDisassemblyTextLine::addr"]
5241 [::std::mem::offset_of!(BNDisassemblyTextLine, addr) - 0usize];
5242 ["Offset of field: BNDisassemblyTextLine::instrIndex"]
5243 [::std::mem::offset_of!(BNDisassemblyTextLine, instrIndex) - 8usize];
5244 ["Offset of field: BNDisassemblyTextLine::tokens"]
5245 [::std::mem::offset_of!(BNDisassemblyTextLine, tokens) - 16usize];
5246 ["Offset of field: BNDisassemblyTextLine::count"]
5247 [::std::mem::offset_of!(BNDisassemblyTextLine, count) - 24usize];
5248 ["Offset of field: BNDisassemblyTextLine::highlight"]
5249 [::std::mem::offset_of!(BNDisassemblyTextLine, highlight) - 32usize];
5250 ["Offset of field: BNDisassemblyTextLine::tags"]
5251 [::std::mem::offset_of!(BNDisassemblyTextLine, tags) - 56usize];
5252 ["Offset of field: BNDisassemblyTextLine::tagCount"]
5253 [::std::mem::offset_of!(BNDisassemblyTextLine, tagCount) - 64usize];
5254 ["Offset of field: BNDisassemblyTextLine::typeInfo"]
5255 [::std::mem::offset_of!(BNDisassemblyTextLine, typeInfo) - 72usize];
5256};
5257impl Default for BNDisassemblyTextLine {
5258 fn default() -> Self {
5259 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5260 unsafe {
5261 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5262 s.assume_init()
5263 }
5264 }
5265}
5266#[repr(C)]
5267#[derive(Debug, Copy, Clone)]
5268pub struct BNLinearDisassemblyLine {
5269 pub type_: BNLinearDisassemblyLineType,
5270 pub function: *mut BNFunction,
5271 pub block: *mut BNBasicBlock,
5272 pub contents: BNDisassemblyTextLine,
5273}
5274#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5275const _: () = {
5276 ["Size of BNLinearDisassemblyLine"]
5277 [::std::mem::size_of::<BNLinearDisassemblyLine>() - 128usize];
5278 ["Alignment of BNLinearDisassemblyLine"]
5279 [::std::mem::align_of::<BNLinearDisassemblyLine>() - 8usize];
5280 ["Offset of field: BNLinearDisassemblyLine::type_"]
5281 [::std::mem::offset_of!(BNLinearDisassemblyLine, type_) - 0usize];
5282 ["Offset of field: BNLinearDisassemblyLine::function"]
5283 [::std::mem::offset_of!(BNLinearDisassemblyLine, function) - 8usize];
5284 ["Offset of field: BNLinearDisassemblyLine::block"]
5285 [::std::mem::offset_of!(BNLinearDisassemblyLine, block) - 16usize];
5286 ["Offset of field: BNLinearDisassemblyLine::contents"]
5287 [::std::mem::offset_of!(BNLinearDisassemblyLine, contents) - 24usize];
5288};
5289impl Default for BNLinearDisassemblyLine {
5290 fn default() -> Self {
5291 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5292 unsafe {
5293 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5294 s.assume_init()
5295 }
5296 }
5297}
5298#[repr(C)]
5299#[derive(Debug, Copy, Clone)]
5300pub struct BNReferenceSource {
5301 pub func: *mut BNFunction,
5302 pub arch: *mut BNArchitecture,
5303 pub addr: u64,
5304}
5305#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5306const _: () = {
5307 ["Size of BNReferenceSource"][::std::mem::size_of::<BNReferenceSource>() - 24usize];
5308 ["Alignment of BNReferenceSource"][::std::mem::align_of::<BNReferenceSource>() - 8usize];
5309 ["Offset of field: BNReferenceSource::func"]
5310 [::std::mem::offset_of!(BNReferenceSource, func) - 0usize];
5311 ["Offset of field: BNReferenceSource::arch"]
5312 [::std::mem::offset_of!(BNReferenceSource, arch) - 8usize];
5313 ["Offset of field: BNReferenceSource::addr"]
5314 [::std::mem::offset_of!(BNReferenceSource, addr) - 16usize];
5315};
5316impl Default for BNReferenceSource {
5317 fn default() -> Self {
5318 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5319 unsafe {
5320 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5321 s.assume_init()
5322 }
5323 }
5324}
5325#[repr(C)]
5326#[derive(Debug, Copy, Clone)]
5327pub struct BNTypeFieldReference {
5328 pub func: *mut BNFunction,
5329 pub arch: *mut BNArchitecture,
5330 pub addr: u64,
5331 pub size: usize,
5332 pub incomingType: BNTypeWithConfidence,
5333}
5334#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5335const _: () = {
5336 ["Size of BNTypeFieldReference"][::std::mem::size_of::<BNTypeFieldReference>() - 48usize];
5337 ["Alignment of BNTypeFieldReference"][::std::mem::align_of::<BNTypeFieldReference>() - 8usize];
5338 ["Offset of field: BNTypeFieldReference::func"]
5339 [::std::mem::offset_of!(BNTypeFieldReference, func) - 0usize];
5340 ["Offset of field: BNTypeFieldReference::arch"]
5341 [::std::mem::offset_of!(BNTypeFieldReference, arch) - 8usize];
5342 ["Offset of field: BNTypeFieldReference::addr"]
5343 [::std::mem::offset_of!(BNTypeFieldReference, addr) - 16usize];
5344 ["Offset of field: BNTypeFieldReference::size"]
5345 [::std::mem::offset_of!(BNTypeFieldReference, size) - 24usize];
5346 ["Offset of field: BNTypeFieldReference::incomingType"]
5347 [::std::mem::offset_of!(BNTypeFieldReference, incomingType) - 32usize];
5348};
5349impl Default for BNTypeFieldReference {
5350 fn default() -> Self {
5351 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5352 unsafe {
5353 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5354 s.assume_init()
5355 }
5356 }
5357}
5358#[repr(C)]
5359#[derive(Debug, Copy, Clone)]
5360pub struct BNILReferenceSource {
5361 pub func: *mut BNFunction,
5362 pub arch: *mut BNArchitecture,
5363 pub addr: u64,
5364 pub type_: BNFunctionGraphType,
5365 pub exprId: usize,
5366}
5367#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5368const _: () = {
5369 ["Size of BNILReferenceSource"][::std::mem::size_of::<BNILReferenceSource>() - 40usize];
5370 ["Alignment of BNILReferenceSource"][::std::mem::align_of::<BNILReferenceSource>() - 8usize];
5371 ["Offset of field: BNILReferenceSource::func"]
5372 [::std::mem::offset_of!(BNILReferenceSource, func) - 0usize];
5373 ["Offset of field: BNILReferenceSource::arch"]
5374 [::std::mem::offset_of!(BNILReferenceSource, arch) - 8usize];
5375 ["Offset of field: BNILReferenceSource::addr"]
5376 [::std::mem::offset_of!(BNILReferenceSource, addr) - 16usize];
5377 ["Offset of field: BNILReferenceSource::type_"]
5378 [::std::mem::offset_of!(BNILReferenceSource, type_) - 24usize];
5379 ["Offset of field: BNILReferenceSource::exprId"]
5380 [::std::mem::offset_of!(BNILReferenceSource, exprId) - 32usize];
5381};
5382impl Default for BNILReferenceSource {
5383 fn default() -> Self {
5384 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5385 unsafe {
5386 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5387 s.assume_init()
5388 }
5389 }
5390}
5391#[repr(C)]
5392#[derive(Debug, Copy, Clone)]
5393pub struct BNTypeFieldReferenceSizeInfo {
5394 pub offset: u64,
5395 pub sizes: *mut usize,
5396 pub count: usize,
5397}
5398#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5399const _: () = {
5400 ["Size of BNTypeFieldReferenceSizeInfo"]
5401 [::std::mem::size_of::<BNTypeFieldReferenceSizeInfo>() - 24usize];
5402 ["Alignment of BNTypeFieldReferenceSizeInfo"]
5403 [::std::mem::align_of::<BNTypeFieldReferenceSizeInfo>() - 8usize];
5404 ["Offset of field: BNTypeFieldReferenceSizeInfo::offset"]
5405 [::std::mem::offset_of!(BNTypeFieldReferenceSizeInfo, offset) - 0usize];
5406 ["Offset of field: BNTypeFieldReferenceSizeInfo::sizes"]
5407 [::std::mem::offset_of!(BNTypeFieldReferenceSizeInfo, sizes) - 8usize];
5408 ["Offset of field: BNTypeFieldReferenceSizeInfo::count"]
5409 [::std::mem::offset_of!(BNTypeFieldReferenceSizeInfo, count) - 16usize];
5410};
5411impl Default for BNTypeFieldReferenceSizeInfo {
5412 fn default() -> Self {
5413 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5414 unsafe {
5415 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5416 s.assume_init()
5417 }
5418 }
5419}
5420#[repr(C)]
5421#[derive(Debug, Copy, Clone)]
5422pub struct BNTypeFieldReferenceTypeInfo {
5423 pub offset: u64,
5424 pub types: *mut BNTypeWithConfidence,
5425 pub count: usize,
5426}
5427#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5428const _: () = {
5429 ["Size of BNTypeFieldReferenceTypeInfo"]
5430 [::std::mem::size_of::<BNTypeFieldReferenceTypeInfo>() - 24usize];
5431 ["Alignment of BNTypeFieldReferenceTypeInfo"]
5432 [::std::mem::align_of::<BNTypeFieldReferenceTypeInfo>() - 8usize];
5433 ["Offset of field: BNTypeFieldReferenceTypeInfo::offset"]
5434 [::std::mem::offset_of!(BNTypeFieldReferenceTypeInfo, offset) - 0usize];
5435 ["Offset of field: BNTypeFieldReferenceTypeInfo::types"]
5436 [::std::mem::offset_of!(BNTypeFieldReferenceTypeInfo, types) - 8usize];
5437 ["Offset of field: BNTypeFieldReferenceTypeInfo::count"]
5438 [::std::mem::offset_of!(BNTypeFieldReferenceTypeInfo, count) - 16usize];
5439};
5440impl Default for BNTypeFieldReferenceTypeInfo {
5441 fn default() -> Self {
5442 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5443 unsafe {
5444 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5445 s.assume_init()
5446 }
5447 }
5448}
5449#[repr(C)]
5450#[derive(Debug, Copy, Clone)]
5451pub struct BNVariableReferenceSource {
5452 pub var: BNVariable,
5453 pub source: BNILReferenceSource,
5454}
5455#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5456const _: () = {
5457 ["Size of BNVariableReferenceSource"]
5458 [::std::mem::size_of::<BNVariableReferenceSource>() - 56usize];
5459 ["Alignment of BNVariableReferenceSource"]
5460 [::std::mem::align_of::<BNVariableReferenceSource>() - 8usize];
5461 ["Offset of field: BNVariableReferenceSource::var"]
5462 [::std::mem::offset_of!(BNVariableReferenceSource, var) - 0usize];
5463 ["Offset of field: BNVariableReferenceSource::source"]
5464 [::std::mem::offset_of!(BNVariableReferenceSource, source) - 16usize];
5465};
5466impl Default for BNVariableReferenceSource {
5467 fn default() -> Self {
5468 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5469 unsafe {
5470 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5471 s.assume_init()
5472 }
5473 }
5474}
5475#[repr(u32)]
5476#[doc = " This describes how a type is referenced"]
5477#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
5478pub enum BNTypeReferenceType {
5479 #[doc = " Type A contains type B"]
5480 DirectTypeReferenceType = 0,
5481 #[doc = " All other cases, e.g., type A contains a pointer to type B"]
5482 IndirectTypeReferenceType = 1,
5483 #[doc = " The nature of the reference is unknown"]
5484 UnknownTypeReferenceType = 2,
5485}
5486#[repr(C)]
5487#[derive(Debug, Copy, Clone)]
5488pub struct BNTypeReferenceSource {
5489 pub name: BNQualifiedName,
5490 pub offset: u64,
5491 pub type_: BNTypeReferenceType,
5492}
5493#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5494const _: () = {
5495 ["Size of BNTypeReferenceSource"][::std::mem::size_of::<BNTypeReferenceSource>() - 40usize];
5496 ["Alignment of BNTypeReferenceSource"]
5497 [::std::mem::align_of::<BNTypeReferenceSource>() - 8usize];
5498 ["Offset of field: BNTypeReferenceSource::name"]
5499 [::std::mem::offset_of!(BNTypeReferenceSource, name) - 0usize];
5500 ["Offset of field: BNTypeReferenceSource::offset"]
5501 [::std::mem::offset_of!(BNTypeReferenceSource, offset) - 24usize];
5502 ["Offset of field: BNTypeReferenceSource::type_"]
5503 [::std::mem::offset_of!(BNTypeReferenceSource, type_) - 32usize];
5504};
5505impl Default for BNTypeReferenceSource {
5506 fn default() -> Self {
5507 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5508 unsafe {
5509 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5510 s.assume_init()
5511 }
5512 }
5513}
5514#[repr(u32)]
5515#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
5516pub enum BNTagTypeType {
5517 UserTagType = 0,
5518 NotificationTagType = 1,
5519 BookmarksTagType = 2,
5520}
5521#[repr(u32)]
5522#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
5523pub enum BNTagReferenceType {
5524 AddressTagReference = 0,
5525 FunctionTagReference = 1,
5526 DataTagReference = 2,
5527}
5528#[repr(C)]
5529#[derive(Debug, Copy, Clone)]
5530pub struct BNTagReference {
5531 pub refType: BNTagReferenceType,
5532 pub autoDefined: bool,
5533 pub tag: *mut BNTag,
5534 pub arch: *mut BNArchitecture,
5535 pub func: *mut BNFunction,
5536 pub addr: u64,
5537}
5538#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5539const _: () = {
5540 ["Size of BNTagReference"][::std::mem::size_of::<BNTagReference>() - 40usize];
5541 ["Alignment of BNTagReference"][::std::mem::align_of::<BNTagReference>() - 8usize];
5542 ["Offset of field: BNTagReference::refType"]
5543 [::std::mem::offset_of!(BNTagReference, refType) - 0usize];
5544 ["Offset of field: BNTagReference::autoDefined"]
5545 [::std::mem::offset_of!(BNTagReference, autoDefined) - 4usize];
5546 ["Offset of field: BNTagReference::tag"][::std::mem::offset_of!(BNTagReference, tag) - 8usize];
5547 ["Offset of field: BNTagReference::arch"]
5548 [::std::mem::offset_of!(BNTagReference, arch) - 16usize];
5549 ["Offset of field: BNTagReference::func"]
5550 [::std::mem::offset_of!(BNTagReference, func) - 24usize];
5551 ["Offset of field: BNTagReference::addr"]
5552 [::std::mem::offset_of!(BNTagReference, addr) - 32usize];
5553};
5554impl Default for BNTagReference {
5555 fn default() -> Self {
5556 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5557 unsafe {
5558 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5559 s.assume_init()
5560 }
5561 }
5562}
5563#[repr(C)]
5564#[derive(Debug, Copy, Clone)]
5565pub struct BNCallingConventionWithConfidence {
5566 pub convention: *mut BNCallingConvention,
5567 pub confidence: u8,
5568}
5569#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5570const _: () = {
5571 ["Size of BNCallingConventionWithConfidence"]
5572 [::std::mem::size_of::<BNCallingConventionWithConfidence>() - 16usize];
5573 ["Alignment of BNCallingConventionWithConfidence"]
5574 [::std::mem::align_of::<BNCallingConventionWithConfidence>() - 8usize];
5575 ["Offset of field: BNCallingConventionWithConfidence::convention"]
5576 [::std::mem::offset_of!(BNCallingConventionWithConfidence, convention) - 0usize];
5577 ["Offset of field: BNCallingConventionWithConfidence::confidence"]
5578 [::std::mem::offset_of!(BNCallingConventionWithConfidence, confidence) - 8usize];
5579};
5580impl Default for BNCallingConventionWithConfidence {
5581 fn default() -> Self {
5582 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5583 unsafe {
5584 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5585 s.assume_init()
5586 }
5587 }
5588}
5589#[repr(C)]
5590#[derive(Debug, Default, Copy, Clone)]
5591pub struct BNBoolWithConfidence {
5592 pub value: bool,
5593 pub confidence: u8,
5594}
5595#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5596const _: () = {
5597 ["Size of BNBoolWithConfidence"][::std::mem::size_of::<BNBoolWithConfidence>() - 2usize];
5598 ["Alignment of BNBoolWithConfidence"][::std::mem::align_of::<BNBoolWithConfidence>() - 1usize];
5599 ["Offset of field: BNBoolWithConfidence::value"]
5600 [::std::mem::offset_of!(BNBoolWithConfidence, value) - 0usize];
5601 ["Offset of field: BNBoolWithConfidence::confidence"]
5602 [::std::mem::offset_of!(BNBoolWithConfidence, confidence) - 1usize];
5603};
5604#[repr(C)]
5605#[derive(Debug, Default, Copy, Clone)]
5606pub struct BNOffsetWithConfidence {
5607 pub value: i64,
5608 pub confidence: u8,
5609}
5610#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5611const _: () = {
5612 ["Size of BNOffsetWithConfidence"][::std::mem::size_of::<BNOffsetWithConfidence>() - 16usize];
5613 ["Alignment of BNOffsetWithConfidence"]
5614 [::std::mem::align_of::<BNOffsetWithConfidence>() - 8usize];
5615 ["Offset of field: BNOffsetWithConfidence::value"]
5616 [::std::mem::offset_of!(BNOffsetWithConfidence, value) - 0usize];
5617 ["Offset of field: BNOffsetWithConfidence::confidence"]
5618 [::std::mem::offset_of!(BNOffsetWithConfidence, confidence) - 8usize];
5619};
5620#[repr(C)]
5621#[derive(Debug, Copy, Clone)]
5622pub struct BNParameterVariablesWithConfidence {
5623 pub vars: *mut BNVariable,
5624 pub count: usize,
5625 pub confidence: u8,
5626}
5627#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5628const _: () = {
5629 ["Size of BNParameterVariablesWithConfidence"]
5630 [::std::mem::size_of::<BNParameterVariablesWithConfidence>() - 24usize];
5631 ["Alignment of BNParameterVariablesWithConfidence"]
5632 [::std::mem::align_of::<BNParameterVariablesWithConfidence>() - 8usize];
5633 ["Offset of field: BNParameterVariablesWithConfidence::vars"]
5634 [::std::mem::offset_of!(BNParameterVariablesWithConfidence, vars) - 0usize];
5635 ["Offset of field: BNParameterVariablesWithConfidence::count"]
5636 [::std::mem::offset_of!(BNParameterVariablesWithConfidence, count) - 8usize];
5637 ["Offset of field: BNParameterVariablesWithConfidence::confidence"]
5638 [::std::mem::offset_of!(BNParameterVariablesWithConfidence, confidence) - 16usize];
5639};
5640impl Default for BNParameterVariablesWithConfidence {
5641 fn default() -> Self {
5642 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5643 unsafe {
5644 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5645 s.assume_init()
5646 }
5647 }
5648}
5649#[repr(C)]
5650#[derive(Debug, Copy, Clone)]
5651pub struct BNRegisterSetWithConfidence {
5652 pub regs: *mut u32,
5653 pub count: usize,
5654 pub confidence: u8,
5655}
5656#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5657const _: () = {
5658 ["Size of BNRegisterSetWithConfidence"]
5659 [::std::mem::size_of::<BNRegisterSetWithConfidence>() - 24usize];
5660 ["Alignment of BNRegisterSetWithConfidence"]
5661 [::std::mem::align_of::<BNRegisterSetWithConfidence>() - 8usize];
5662 ["Offset of field: BNRegisterSetWithConfidence::regs"]
5663 [::std::mem::offset_of!(BNRegisterSetWithConfidence, regs) - 0usize];
5664 ["Offset of field: BNRegisterSetWithConfidence::count"]
5665 [::std::mem::offset_of!(BNRegisterSetWithConfidence, count) - 8usize];
5666 ["Offset of field: BNRegisterSetWithConfidence::confidence"]
5667 [::std::mem::offset_of!(BNRegisterSetWithConfidence, confidence) - 16usize];
5668};
5669impl Default for BNRegisterSetWithConfidence {
5670 fn default() -> Self {
5671 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5672 unsafe {
5673 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5674 s.assume_init()
5675 }
5676 }
5677}
5678#[repr(C)]
5679#[derive(Debug, Copy, Clone)]
5680pub struct BNFunctionParameter {
5681 pub name: *mut ::std::os::raw::c_char,
5682 pub type_: *mut BNType,
5683 pub typeConfidence: u8,
5684 pub defaultLocation: bool,
5685 pub location: BNVariable,
5686}
5687#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5688const _: () = {
5689 ["Size of BNFunctionParameter"][::std::mem::size_of::<BNFunctionParameter>() - 40usize];
5690 ["Alignment of BNFunctionParameter"][::std::mem::align_of::<BNFunctionParameter>() - 8usize];
5691 ["Offset of field: BNFunctionParameter::name"]
5692 [::std::mem::offset_of!(BNFunctionParameter, name) - 0usize];
5693 ["Offset of field: BNFunctionParameter::type_"]
5694 [::std::mem::offset_of!(BNFunctionParameter, type_) - 8usize];
5695 ["Offset of field: BNFunctionParameter::typeConfidence"]
5696 [::std::mem::offset_of!(BNFunctionParameter, typeConfidence) - 16usize];
5697 ["Offset of field: BNFunctionParameter::defaultLocation"]
5698 [::std::mem::offset_of!(BNFunctionParameter, defaultLocation) - 17usize];
5699 ["Offset of field: BNFunctionParameter::location"]
5700 [::std::mem::offset_of!(BNFunctionParameter, location) - 24usize];
5701};
5702impl Default for BNFunctionParameter {
5703 fn default() -> Self {
5704 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5705 unsafe {
5706 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5707 s.assume_init()
5708 }
5709 }
5710}
5711#[repr(C)]
5712#[derive(Debug, Copy, Clone)]
5713pub struct BNQualifiedNameAndType {
5714 pub name: BNQualifiedName,
5715 pub type_: *mut BNType,
5716}
5717#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5718const _: () = {
5719 ["Size of BNQualifiedNameAndType"][::std::mem::size_of::<BNQualifiedNameAndType>() - 32usize];
5720 ["Alignment of BNQualifiedNameAndType"]
5721 [::std::mem::align_of::<BNQualifiedNameAndType>() - 8usize];
5722 ["Offset of field: BNQualifiedNameAndType::name"]
5723 [::std::mem::offset_of!(BNQualifiedNameAndType, name) - 0usize];
5724 ["Offset of field: BNQualifiedNameAndType::type_"]
5725 [::std::mem::offset_of!(BNQualifiedNameAndType, type_) - 24usize];
5726};
5727impl Default for BNQualifiedNameAndType {
5728 fn default() -> Self {
5729 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5730 unsafe {
5731 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5732 s.assume_init()
5733 }
5734 }
5735}
5736#[repr(C)]
5737#[derive(Debug, Copy, Clone)]
5738pub struct BNQualifiedNameTypeAndId {
5739 pub name: BNQualifiedName,
5740 pub id: *mut ::std::os::raw::c_char,
5741 pub type_: *mut BNType,
5742}
5743#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5744const _: () = {
5745 ["Size of BNQualifiedNameTypeAndId"]
5746 [::std::mem::size_of::<BNQualifiedNameTypeAndId>() - 40usize];
5747 ["Alignment of BNQualifiedNameTypeAndId"]
5748 [::std::mem::align_of::<BNQualifiedNameTypeAndId>() - 8usize];
5749 ["Offset of field: BNQualifiedNameTypeAndId::name"]
5750 [::std::mem::offset_of!(BNQualifiedNameTypeAndId, name) - 0usize];
5751 ["Offset of field: BNQualifiedNameTypeAndId::id"]
5752 [::std::mem::offset_of!(BNQualifiedNameTypeAndId, id) - 24usize];
5753 ["Offset of field: BNQualifiedNameTypeAndId::type_"]
5754 [::std::mem::offset_of!(BNQualifiedNameTypeAndId, type_) - 32usize];
5755};
5756impl Default for BNQualifiedNameTypeAndId {
5757 fn default() -> Self {
5758 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5759 unsafe {
5760 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5761 s.assume_init()
5762 }
5763 }
5764}
5765#[repr(C)]
5766#[derive(Debug, Copy, Clone)]
5767pub struct BNStructureMember {
5768 pub type_: *mut BNType,
5769 pub name: *mut ::std::os::raw::c_char,
5770 pub offset: u64,
5771 pub typeConfidence: u8,
5772 pub access: BNMemberAccess,
5773 pub scope: BNMemberScope,
5774 pub bitPosition: u8,
5775 pub bitWidth: u8,
5776}
5777#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5778const _: () = {
5779 ["Size of BNStructureMember"][::std::mem::size_of::<BNStructureMember>() - 40usize];
5780 ["Alignment of BNStructureMember"][::std::mem::align_of::<BNStructureMember>() - 8usize];
5781 ["Offset of field: BNStructureMember::type_"]
5782 [::std::mem::offset_of!(BNStructureMember, type_) - 0usize];
5783 ["Offset of field: BNStructureMember::name"]
5784 [::std::mem::offset_of!(BNStructureMember, name) - 8usize];
5785 ["Offset of field: BNStructureMember::offset"]
5786 [::std::mem::offset_of!(BNStructureMember, offset) - 16usize];
5787 ["Offset of field: BNStructureMember::typeConfidence"]
5788 [::std::mem::offset_of!(BNStructureMember, typeConfidence) - 24usize];
5789 ["Offset of field: BNStructureMember::access"]
5790 [::std::mem::offset_of!(BNStructureMember, access) - 28usize];
5791 ["Offset of field: BNStructureMember::scope"]
5792 [::std::mem::offset_of!(BNStructureMember, scope) - 32usize];
5793 ["Offset of field: BNStructureMember::bitPosition"]
5794 [::std::mem::offset_of!(BNStructureMember, bitPosition) - 36usize];
5795 ["Offset of field: BNStructureMember::bitWidth"]
5796 [::std::mem::offset_of!(BNStructureMember, bitWidth) - 37usize];
5797};
5798impl Default for BNStructureMember {
5799 fn default() -> Self {
5800 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5801 unsafe {
5802 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5803 s.assume_init()
5804 }
5805 }
5806}
5807#[repr(C)]
5808#[derive(Debug, Copy, Clone)]
5809pub struct BNInheritedStructureMember {
5810 pub base: *mut BNNamedTypeReference,
5811 pub baseOffset: u64,
5812 pub member: BNStructureMember,
5813 pub memberIndex: usize,
5814}
5815#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5816const _: () = {
5817 ["Size of BNInheritedStructureMember"]
5818 [::std::mem::size_of::<BNInheritedStructureMember>() - 64usize];
5819 ["Alignment of BNInheritedStructureMember"]
5820 [::std::mem::align_of::<BNInheritedStructureMember>() - 8usize];
5821 ["Offset of field: BNInheritedStructureMember::base"]
5822 [::std::mem::offset_of!(BNInheritedStructureMember, base) - 0usize];
5823 ["Offset of field: BNInheritedStructureMember::baseOffset"]
5824 [::std::mem::offset_of!(BNInheritedStructureMember, baseOffset) - 8usize];
5825 ["Offset of field: BNInheritedStructureMember::member"]
5826 [::std::mem::offset_of!(BNInheritedStructureMember, member) - 16usize];
5827 ["Offset of field: BNInheritedStructureMember::memberIndex"]
5828 [::std::mem::offset_of!(BNInheritedStructureMember, memberIndex) - 56usize];
5829};
5830impl Default for BNInheritedStructureMember {
5831 fn default() -> Self {
5832 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5833 unsafe {
5834 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5835 s.assume_init()
5836 }
5837 }
5838}
5839#[repr(C)]
5840#[derive(Debug, Copy, Clone)]
5841pub struct BNBaseStructure {
5842 pub type_: *mut BNNamedTypeReference,
5843 pub offset: u64,
5844 pub width: u64,
5845}
5846#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5847const _: () = {
5848 ["Size of BNBaseStructure"][::std::mem::size_of::<BNBaseStructure>() - 24usize];
5849 ["Alignment of BNBaseStructure"][::std::mem::align_of::<BNBaseStructure>() - 8usize];
5850 ["Offset of field: BNBaseStructure::type_"]
5851 [::std::mem::offset_of!(BNBaseStructure, type_) - 0usize];
5852 ["Offset of field: BNBaseStructure::offset"]
5853 [::std::mem::offset_of!(BNBaseStructure, offset) - 8usize];
5854 ["Offset of field: BNBaseStructure::width"]
5855 [::std::mem::offset_of!(BNBaseStructure, width) - 16usize];
5856};
5857impl Default for BNBaseStructure {
5858 fn default() -> Self {
5859 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5860 unsafe {
5861 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5862 s.assume_init()
5863 }
5864 }
5865}
5866#[repr(C)]
5867#[derive(Debug, Copy, Clone)]
5868pub struct BNEnumerationMember {
5869 pub name: *mut ::std::os::raw::c_char,
5870 pub value: u64,
5871 pub isDefault: bool,
5872}
5873#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5874const _: () = {
5875 ["Size of BNEnumerationMember"][::std::mem::size_of::<BNEnumerationMember>() - 24usize];
5876 ["Alignment of BNEnumerationMember"][::std::mem::align_of::<BNEnumerationMember>() - 8usize];
5877 ["Offset of field: BNEnumerationMember::name"]
5878 [::std::mem::offset_of!(BNEnumerationMember, name) - 0usize];
5879 ["Offset of field: BNEnumerationMember::value"]
5880 [::std::mem::offset_of!(BNEnumerationMember, value) - 8usize];
5881 ["Offset of field: BNEnumerationMember::isDefault"]
5882 [::std::mem::offset_of!(BNEnumerationMember, isDefault) - 16usize];
5883};
5884impl Default for BNEnumerationMember {
5885 fn default() -> Self {
5886 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5887 unsafe {
5888 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5889 s.assume_init()
5890 }
5891 }
5892}
5893#[repr(C)]
5894#[derive(Debug, Copy, Clone)]
5895pub struct BNFunctionRecognizer {
5896 pub context: *mut ::std::os::raw::c_void,
5897 pub recognizeLowLevelIL: ::std::option::Option<
5898 unsafe extern "C" fn(
5899 ctxt: *mut ::std::os::raw::c_void,
5900 data: *mut BNBinaryView,
5901 func: *mut BNFunction,
5902 il: *mut BNLowLevelILFunction,
5903 ) -> bool,
5904 >,
5905 pub recognizeMediumLevelIL: ::std::option::Option<
5906 unsafe extern "C" fn(
5907 ctxt: *mut ::std::os::raw::c_void,
5908 data: *mut BNBinaryView,
5909 func: *mut BNFunction,
5910 il: *mut BNMediumLevelILFunction,
5911 ) -> bool,
5912 >,
5913}
5914#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5915const _: () = {
5916 ["Size of BNFunctionRecognizer"][::std::mem::size_of::<BNFunctionRecognizer>() - 24usize];
5917 ["Alignment of BNFunctionRecognizer"][::std::mem::align_of::<BNFunctionRecognizer>() - 8usize];
5918 ["Offset of field: BNFunctionRecognizer::context"]
5919 [::std::mem::offset_of!(BNFunctionRecognizer, context) - 0usize];
5920 ["Offset of field: BNFunctionRecognizer::recognizeLowLevelIL"]
5921 [::std::mem::offset_of!(BNFunctionRecognizer, recognizeLowLevelIL) - 8usize];
5922 ["Offset of field: BNFunctionRecognizer::recognizeMediumLevelIL"]
5923 [::std::mem::offset_of!(BNFunctionRecognizer, recognizeMediumLevelIL) - 16usize];
5924};
5925impl Default for BNFunctionRecognizer {
5926 fn default() -> Self {
5927 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5928 unsafe {
5929 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5930 s.assume_init()
5931 }
5932 }
5933}
5934#[repr(C)]
5935#[derive(Debug, Copy, Clone)]
5936pub struct BNCustomRelocationHandler {
5937 pub context: *mut ::std::os::raw::c_void,
5938 pub freeObject: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
5939 pub getRelocationInfo: ::std::option::Option<
5940 unsafe extern "C" fn(
5941 ctxt: *mut ::std::os::raw::c_void,
5942 view: *mut BNBinaryView,
5943 arch: *mut BNArchitecture,
5944 result: *mut BNRelocationInfo,
5945 resultCount: usize,
5946 ) -> bool,
5947 >,
5948 pub applyRelocation: ::std::option::Option<
5949 unsafe extern "C" fn(
5950 ctxt: *mut ::std::os::raw::c_void,
5951 view: *mut BNBinaryView,
5952 arch: *mut BNArchitecture,
5953 reloc: *mut BNRelocation,
5954 dest: *mut u8,
5955 len: usize,
5956 ) -> bool,
5957 >,
5958 pub getOperandForExternalRelocation: ::std::option::Option<
5959 unsafe extern "C" fn(
5960 ctxt: *mut ::std::os::raw::c_void,
5961 data: *const u8,
5962 addr: u64,
5963 length: usize,
5964 il: *mut BNLowLevelILFunction,
5965 relocation: *mut BNRelocation,
5966 ) -> usize,
5967 >,
5968}
5969#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5970const _: () = {
5971 ["Size of BNCustomRelocationHandler"]
5972 [::std::mem::size_of::<BNCustomRelocationHandler>() - 40usize];
5973 ["Alignment of BNCustomRelocationHandler"]
5974 [::std::mem::align_of::<BNCustomRelocationHandler>() - 8usize];
5975 ["Offset of field: BNCustomRelocationHandler::context"]
5976 [::std::mem::offset_of!(BNCustomRelocationHandler, context) - 0usize];
5977 ["Offset of field: BNCustomRelocationHandler::freeObject"]
5978 [::std::mem::offset_of!(BNCustomRelocationHandler, freeObject) - 8usize];
5979 ["Offset of field: BNCustomRelocationHandler::getRelocationInfo"]
5980 [::std::mem::offset_of!(BNCustomRelocationHandler, getRelocationInfo) - 16usize];
5981 ["Offset of field: BNCustomRelocationHandler::applyRelocation"]
5982 [::std::mem::offset_of!(BNCustomRelocationHandler, applyRelocation) - 24usize];
5983 ["Offset of field: BNCustomRelocationHandler::getOperandForExternalRelocation"][::std::mem::offset_of!(
5984 BNCustomRelocationHandler,
5985 getOperandForExternalRelocation
5986 ) - 32usize];
5987};
5988impl Default for BNCustomRelocationHandler {
5989 fn default() -> Self {
5990 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5991 unsafe {
5992 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5993 s.assume_init()
5994 }
5995 }
5996}
5997#[repr(u32)]
5998#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
5999pub enum BNTypeParserOption {
6000 IncludeSystemTypes = 0,
6001 BuiltinMacros = 1,
6002}
6003#[repr(C)]
6004#[derive(Debug, Copy, Clone)]
6005pub struct BNParsedType {
6006 pub name: BNQualifiedName,
6007 pub type_: *mut BNType,
6008 pub isUser: bool,
6009}
6010#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6011const _: () = {
6012 ["Size of BNParsedType"][::std::mem::size_of::<BNParsedType>() - 40usize];
6013 ["Alignment of BNParsedType"][::std::mem::align_of::<BNParsedType>() - 8usize];
6014 ["Offset of field: BNParsedType::name"][::std::mem::offset_of!(BNParsedType, name) - 0usize];
6015 ["Offset of field: BNParsedType::type_"][::std::mem::offset_of!(BNParsedType, type_) - 24usize];
6016 ["Offset of field: BNParsedType::isUser"]
6017 [::std::mem::offset_of!(BNParsedType, isUser) - 32usize];
6018};
6019impl Default for BNParsedType {
6020 fn default() -> Self {
6021 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6022 unsafe {
6023 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6024 s.assume_init()
6025 }
6026 }
6027}
6028#[repr(C)]
6029#[derive(Debug, Copy, Clone)]
6030pub struct BNTypeParserResult {
6031 pub types: *mut BNParsedType,
6032 pub variables: *mut BNParsedType,
6033 pub functions: *mut BNParsedType,
6034 pub typeCount: usize,
6035 pub variableCount: usize,
6036 pub functionCount: usize,
6037}
6038#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6039const _: () = {
6040 ["Size of BNTypeParserResult"][::std::mem::size_of::<BNTypeParserResult>() - 48usize];
6041 ["Alignment of BNTypeParserResult"][::std::mem::align_of::<BNTypeParserResult>() - 8usize];
6042 ["Offset of field: BNTypeParserResult::types"]
6043 [::std::mem::offset_of!(BNTypeParserResult, types) - 0usize];
6044 ["Offset of field: BNTypeParserResult::variables"]
6045 [::std::mem::offset_of!(BNTypeParserResult, variables) - 8usize];
6046 ["Offset of field: BNTypeParserResult::functions"]
6047 [::std::mem::offset_of!(BNTypeParserResult, functions) - 16usize];
6048 ["Offset of field: BNTypeParserResult::typeCount"]
6049 [::std::mem::offset_of!(BNTypeParserResult, typeCount) - 24usize];
6050 ["Offset of field: BNTypeParserResult::variableCount"]
6051 [::std::mem::offset_of!(BNTypeParserResult, variableCount) - 32usize];
6052 ["Offset of field: BNTypeParserResult::functionCount"]
6053 [::std::mem::offset_of!(BNTypeParserResult, functionCount) - 40usize];
6054};
6055impl Default for BNTypeParserResult {
6056 fn default() -> Self {
6057 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6058 unsafe {
6059 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6060 s.assume_init()
6061 }
6062 }
6063}
6064#[repr(u32)]
6065#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
6066pub enum BNTypeParserErrorSeverity {
6067 IgnoredSeverity = 0,
6068 NoteSeverity = 1,
6069 RemarkSeverity = 2,
6070 WarningSeverity = 3,
6071 ErrorSeverity = 4,
6072 FatalSeverity = 5,
6073}
6074#[repr(C)]
6075#[derive(Debug, Copy, Clone)]
6076pub struct BNTypeParserError {
6077 pub severity: BNTypeParserErrorSeverity,
6078 pub message: *mut ::std::os::raw::c_char,
6079 pub fileName: *mut ::std::os::raw::c_char,
6080 pub line: u64,
6081 pub column: u64,
6082}
6083#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6084const _: () = {
6085 ["Size of BNTypeParserError"][::std::mem::size_of::<BNTypeParserError>() - 40usize];
6086 ["Alignment of BNTypeParserError"][::std::mem::align_of::<BNTypeParserError>() - 8usize];
6087 ["Offset of field: BNTypeParserError::severity"]
6088 [::std::mem::offset_of!(BNTypeParserError, severity) - 0usize];
6089 ["Offset of field: BNTypeParserError::message"]
6090 [::std::mem::offset_of!(BNTypeParserError, message) - 8usize];
6091 ["Offset of field: BNTypeParserError::fileName"]
6092 [::std::mem::offset_of!(BNTypeParserError, fileName) - 16usize];
6093 ["Offset of field: BNTypeParserError::line"]
6094 [::std::mem::offset_of!(BNTypeParserError, line) - 24usize];
6095 ["Offset of field: BNTypeParserError::column"]
6096 [::std::mem::offset_of!(BNTypeParserError, column) - 32usize];
6097};
6098impl Default for BNTypeParserError {
6099 fn default() -> Self {
6100 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6101 unsafe {
6102 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6103 s.assume_init()
6104 }
6105 }
6106}
6107#[repr(C)]
6108#[derive(Debug, Copy, Clone)]
6109pub struct BNQualifiedNameList {
6110 pub names: *mut BNQualifiedName,
6111 pub count: usize,
6112}
6113#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6114const _: () = {
6115 ["Size of BNQualifiedNameList"][::std::mem::size_of::<BNQualifiedNameList>() - 16usize];
6116 ["Alignment of BNQualifiedNameList"][::std::mem::align_of::<BNQualifiedNameList>() - 8usize];
6117 ["Offset of field: BNQualifiedNameList::names"]
6118 [::std::mem::offset_of!(BNQualifiedNameList, names) - 0usize];
6119 ["Offset of field: BNQualifiedNameList::count"]
6120 [::std::mem::offset_of!(BNQualifiedNameList, count) - 8usize];
6121};
6122impl Default for BNQualifiedNameList {
6123 fn default() -> Self {
6124 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6125 unsafe {
6126 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6127 s.assume_init()
6128 }
6129 }
6130}
6131#[repr(u32)]
6132#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
6133pub enum BNUpdateResult {
6134 UpdateFailed = 0,
6135 UpdateSuccess = 1,
6136 AlreadyUpToDate = 2,
6137 UpdateAvailable = 3,
6138}
6139#[repr(C)]
6140#[derive(Debug, Copy, Clone)]
6141pub struct BNUpdateChannel {
6142 pub name: *mut ::std::os::raw::c_char,
6143 pub description: *mut ::std::os::raw::c_char,
6144 pub latestVersion: *mut ::std::os::raw::c_char,
6145}
6146#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6147const _: () = {
6148 ["Size of BNUpdateChannel"][::std::mem::size_of::<BNUpdateChannel>() - 24usize];
6149 ["Alignment of BNUpdateChannel"][::std::mem::align_of::<BNUpdateChannel>() - 8usize];
6150 ["Offset of field: BNUpdateChannel::name"]
6151 [::std::mem::offset_of!(BNUpdateChannel, name) - 0usize];
6152 ["Offset of field: BNUpdateChannel::description"]
6153 [::std::mem::offset_of!(BNUpdateChannel, description) - 8usize];
6154 ["Offset of field: BNUpdateChannel::latestVersion"]
6155 [::std::mem::offset_of!(BNUpdateChannel, latestVersion) - 16usize];
6156};
6157impl Default for BNUpdateChannel {
6158 fn default() -> Self {
6159 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6160 unsafe {
6161 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6162 s.assume_init()
6163 }
6164 }
6165}
6166#[repr(C)]
6167#[derive(Debug, Copy, Clone)]
6168pub struct BNVersionInfo {
6169 pub major: u32,
6170 pub minor: u32,
6171 pub build: u32,
6172 pub channel: *mut ::std::os::raw::c_char,
6173}
6174#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6175const _: () = {
6176 ["Size of BNVersionInfo"][::std::mem::size_of::<BNVersionInfo>() - 24usize];
6177 ["Alignment of BNVersionInfo"][::std::mem::align_of::<BNVersionInfo>() - 8usize];
6178 ["Offset of field: BNVersionInfo::major"]
6179 [::std::mem::offset_of!(BNVersionInfo, major) - 0usize];
6180 ["Offset of field: BNVersionInfo::minor"]
6181 [::std::mem::offset_of!(BNVersionInfo, minor) - 4usize];
6182 ["Offset of field: BNVersionInfo::build"]
6183 [::std::mem::offset_of!(BNVersionInfo, build) - 8usize];
6184 ["Offset of field: BNVersionInfo::channel"]
6185 [::std::mem::offset_of!(BNVersionInfo, channel) - 16usize];
6186};
6187impl Default for BNVersionInfo {
6188 fn default() -> Self {
6189 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6190 unsafe {
6191 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6192 s.assume_init()
6193 }
6194 }
6195}
6196#[repr(C)]
6197#[derive(Debug, Copy, Clone)]
6198pub struct BNChangelogEntry {
6199 pub version: BNVersionInfo,
6200 pub notes: *mut ::std::os::raw::c_char,
6201 pub time: u64,
6202}
6203#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6204const _: () = {
6205 ["Size of BNChangelogEntry"][::std::mem::size_of::<BNChangelogEntry>() - 40usize];
6206 ["Alignment of BNChangelogEntry"][::std::mem::align_of::<BNChangelogEntry>() - 8usize];
6207 ["Offset of field: BNChangelogEntry::version"]
6208 [::std::mem::offset_of!(BNChangelogEntry, version) - 0usize];
6209 ["Offset of field: BNChangelogEntry::notes"]
6210 [::std::mem::offset_of!(BNChangelogEntry, notes) - 24usize];
6211 ["Offset of field: BNChangelogEntry::time"]
6212 [::std::mem::offset_of!(BNChangelogEntry, time) - 32usize];
6213};
6214impl Default for BNChangelogEntry {
6215 fn default() -> Self {
6216 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6217 unsafe {
6218 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6219 s.assume_init()
6220 }
6221 }
6222}
6223#[repr(C)]
6224#[derive(Debug, Copy, Clone)]
6225pub struct BNUpdateVersionNew {
6226 pub version: BNVersionInfo,
6227 pub name: *mut ::std::os::raw::c_char,
6228 pub time: u64,
6229}
6230#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6231const _: () = {
6232 ["Size of BNUpdateVersionNew"][::std::mem::size_of::<BNUpdateVersionNew>() - 40usize];
6233 ["Alignment of BNUpdateVersionNew"][::std::mem::align_of::<BNUpdateVersionNew>() - 8usize];
6234 ["Offset of field: BNUpdateVersionNew::version"]
6235 [::std::mem::offset_of!(BNUpdateVersionNew, version) - 0usize];
6236 ["Offset of field: BNUpdateVersionNew::name"]
6237 [::std::mem::offset_of!(BNUpdateVersionNew, name) - 24usize];
6238 ["Offset of field: BNUpdateVersionNew::time"]
6239 [::std::mem::offset_of!(BNUpdateVersionNew, time) - 32usize];
6240};
6241impl Default for BNUpdateVersionNew {
6242 fn default() -> Self {
6243 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6244 unsafe {
6245 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6246 s.assume_init()
6247 }
6248 }
6249}
6250#[repr(C)]
6251#[derive(Debug, Copy, Clone)]
6252pub struct BNUpdateChannelFullInfo {
6253 pub versions: *mut BNUpdateVersionNew,
6254 pub versionCount: u64,
6255 pub changelogEntries: *mut BNChangelogEntry,
6256 pub changelogEntryCount: u64,
6257 pub name: *mut ::std::os::raw::c_char,
6258 pub desc: *mut ::std::os::raw::c_char,
6259 pub latestVersion: *mut ::std::os::raw::c_char,
6260}
6261#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6262const _: () = {
6263 ["Size of BNUpdateChannelFullInfo"][::std::mem::size_of::<BNUpdateChannelFullInfo>() - 56usize];
6264 ["Alignment of BNUpdateChannelFullInfo"]
6265 [::std::mem::align_of::<BNUpdateChannelFullInfo>() - 8usize];
6266 ["Offset of field: BNUpdateChannelFullInfo::versions"]
6267 [::std::mem::offset_of!(BNUpdateChannelFullInfo, versions) - 0usize];
6268 ["Offset of field: BNUpdateChannelFullInfo::versionCount"]
6269 [::std::mem::offset_of!(BNUpdateChannelFullInfo, versionCount) - 8usize];
6270 ["Offset of field: BNUpdateChannelFullInfo::changelogEntries"]
6271 [::std::mem::offset_of!(BNUpdateChannelFullInfo, changelogEntries) - 16usize];
6272 ["Offset of field: BNUpdateChannelFullInfo::changelogEntryCount"]
6273 [::std::mem::offset_of!(BNUpdateChannelFullInfo, changelogEntryCount) - 24usize];
6274 ["Offset of field: BNUpdateChannelFullInfo::name"]
6275 [::std::mem::offset_of!(BNUpdateChannelFullInfo, name) - 32usize];
6276 ["Offset of field: BNUpdateChannelFullInfo::desc"]
6277 [::std::mem::offset_of!(BNUpdateChannelFullInfo, desc) - 40usize];
6278 ["Offset of field: BNUpdateChannelFullInfo::latestVersion"]
6279 [::std::mem::offset_of!(BNUpdateChannelFullInfo, latestVersion) - 48usize];
6280};
6281impl Default for BNUpdateChannelFullInfo {
6282 fn default() -> Self {
6283 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6284 unsafe {
6285 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6286 s.assume_init()
6287 }
6288 }
6289}
6290#[repr(C)]
6291#[derive(Debug, Copy, Clone)]
6292pub struct BNUpdateVersion {
6293 pub version: *mut ::std::os::raw::c_char,
6294 pub notes: *mut ::std::os::raw::c_char,
6295 pub time: u64,
6296}
6297#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6298const _: () = {
6299 ["Size of BNUpdateVersion"][::std::mem::size_of::<BNUpdateVersion>() - 24usize];
6300 ["Alignment of BNUpdateVersion"][::std::mem::align_of::<BNUpdateVersion>() - 8usize];
6301 ["Offset of field: BNUpdateVersion::version"]
6302 [::std::mem::offset_of!(BNUpdateVersion, version) - 0usize];
6303 ["Offset of field: BNUpdateVersion::notes"]
6304 [::std::mem::offset_of!(BNUpdateVersion, notes) - 8usize];
6305 ["Offset of field: BNUpdateVersion::time"]
6306 [::std::mem::offset_of!(BNUpdateVersion, time) - 16usize];
6307};
6308impl Default for BNUpdateVersion {
6309 fn default() -> Self {
6310 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6311 unsafe {
6312 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6313 s.assume_init()
6314 }
6315 }
6316}
6317#[repr(C)]
6318#[derive(Debug, Copy, Clone)]
6319pub struct BNStringReference {
6320 pub type_: BNStringType,
6321 pub start: u64,
6322 pub length: usize,
6323}
6324#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6325const _: () = {
6326 ["Size of BNStringReference"][::std::mem::size_of::<BNStringReference>() - 24usize];
6327 ["Alignment of BNStringReference"][::std::mem::align_of::<BNStringReference>() - 8usize];
6328 ["Offset of field: BNStringReference::type_"]
6329 [::std::mem::offset_of!(BNStringReference, type_) - 0usize];
6330 ["Offset of field: BNStringReference::start"]
6331 [::std::mem::offset_of!(BNStringReference, start) - 8usize];
6332 ["Offset of field: BNStringReference::length"]
6333 [::std::mem::offset_of!(BNStringReference, length) - 16usize];
6334};
6335impl Default for BNStringReference {
6336 fn default() -> Self {
6337 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6338 unsafe {
6339 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6340 s.assume_init()
6341 }
6342 }
6343}
6344#[repr(u32)]
6345#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
6346pub enum BNPluginCommandType {
6347 DefaultPluginCommand = 0,
6348 AddressPluginCommand = 1,
6349 RangePluginCommand = 2,
6350 FunctionPluginCommand = 3,
6351 LowLevelILFunctionPluginCommand = 4,
6352 LowLevelILInstructionPluginCommand = 5,
6353 MediumLevelILFunctionPluginCommand = 6,
6354 MediumLevelILInstructionPluginCommand = 7,
6355 HighLevelILFunctionPluginCommand = 8,
6356 HighLevelILInstructionPluginCommand = 9,
6357 ProjectPluginCommand = 10,
6358}
6359#[repr(C)]
6360#[derive(Debug, Copy, Clone)]
6361pub struct BNPluginCommand {
6362 pub name: *mut ::std::os::raw::c_char,
6363 pub description: *mut ::std::os::raw::c_char,
6364 pub type_: BNPluginCommandType,
6365 pub context: *mut ::std::os::raw::c_void,
6366 pub defaultCommand: ::std::option::Option<
6367 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, view: *mut BNBinaryView),
6368 >,
6369 pub addressCommand: ::std::option::Option<
6370 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, view: *mut BNBinaryView, addr: u64),
6371 >,
6372 pub rangeCommand: ::std::option::Option<
6373 unsafe extern "C" fn(
6374 ctxt: *mut ::std::os::raw::c_void,
6375 view: *mut BNBinaryView,
6376 addr: u64,
6377 len: u64,
6378 ),
6379 >,
6380 pub functionCommand: ::std::option::Option<
6381 unsafe extern "C" fn(
6382 ctxt: *mut ::std::os::raw::c_void,
6383 view: *mut BNBinaryView,
6384 func: *mut BNFunction,
6385 ),
6386 >,
6387 pub lowLevelILFunctionCommand: ::std::option::Option<
6388 unsafe extern "C" fn(
6389 ctxt: *mut ::std::os::raw::c_void,
6390 view: *mut BNBinaryView,
6391 func: *mut BNLowLevelILFunction,
6392 ),
6393 >,
6394 pub lowLevelILInstructionCommand: ::std::option::Option<
6395 unsafe extern "C" fn(
6396 ctxt: *mut ::std::os::raw::c_void,
6397 view: *mut BNBinaryView,
6398 func: *mut BNLowLevelILFunction,
6399 instr: usize,
6400 ),
6401 >,
6402 pub mediumLevelILFunctionCommand: ::std::option::Option<
6403 unsafe extern "C" fn(
6404 ctxt: *mut ::std::os::raw::c_void,
6405 view: *mut BNBinaryView,
6406 func: *mut BNMediumLevelILFunction,
6407 ),
6408 >,
6409 pub mediumLevelILInstructionCommand: ::std::option::Option<
6410 unsafe extern "C" fn(
6411 ctxt: *mut ::std::os::raw::c_void,
6412 view: *mut BNBinaryView,
6413 func: *mut BNMediumLevelILFunction,
6414 instr: usize,
6415 ),
6416 >,
6417 pub highLevelILFunctionCommand: ::std::option::Option<
6418 unsafe extern "C" fn(
6419 ctxt: *mut ::std::os::raw::c_void,
6420 view: *mut BNBinaryView,
6421 func: *mut BNHighLevelILFunction,
6422 ),
6423 >,
6424 pub highLevelILInstructionCommand: ::std::option::Option<
6425 unsafe extern "C" fn(
6426 ctxt: *mut ::std::os::raw::c_void,
6427 view: *mut BNBinaryView,
6428 func: *mut BNHighLevelILFunction,
6429 instr: usize,
6430 ),
6431 >,
6432 pub projectCommand: ::std::option::Option<
6433 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, view: *mut BNProject),
6434 >,
6435 pub defaultIsValid: ::std::option::Option<
6436 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, view: *mut BNBinaryView) -> bool,
6437 >,
6438 pub addressIsValid: ::std::option::Option<
6439 unsafe extern "C" fn(
6440 ctxt: *mut ::std::os::raw::c_void,
6441 view: *mut BNBinaryView,
6442 addr: u64,
6443 ) -> bool,
6444 >,
6445 pub rangeIsValid: ::std::option::Option<
6446 unsafe extern "C" fn(
6447 ctxt: *mut ::std::os::raw::c_void,
6448 view: *mut BNBinaryView,
6449 addr: u64,
6450 len: u64,
6451 ) -> bool,
6452 >,
6453 pub functionIsValid: ::std::option::Option<
6454 unsafe extern "C" fn(
6455 ctxt: *mut ::std::os::raw::c_void,
6456 view: *mut BNBinaryView,
6457 func: *mut BNFunction,
6458 ) -> bool,
6459 >,
6460 pub lowLevelILFunctionIsValid: ::std::option::Option<
6461 unsafe extern "C" fn(
6462 ctxt: *mut ::std::os::raw::c_void,
6463 view: *mut BNBinaryView,
6464 func: *mut BNLowLevelILFunction,
6465 ) -> bool,
6466 >,
6467 pub lowLevelILInstructionIsValid: ::std::option::Option<
6468 unsafe extern "C" fn(
6469 ctxt: *mut ::std::os::raw::c_void,
6470 view: *mut BNBinaryView,
6471 func: *mut BNLowLevelILFunction,
6472 instr: usize,
6473 ) -> bool,
6474 >,
6475 pub mediumLevelILFunctionIsValid: ::std::option::Option<
6476 unsafe extern "C" fn(
6477 ctxt: *mut ::std::os::raw::c_void,
6478 view: *mut BNBinaryView,
6479 func: *mut BNMediumLevelILFunction,
6480 ) -> bool,
6481 >,
6482 pub mediumLevelILInstructionIsValid: ::std::option::Option<
6483 unsafe extern "C" fn(
6484 ctxt: *mut ::std::os::raw::c_void,
6485 view: *mut BNBinaryView,
6486 func: *mut BNMediumLevelILFunction,
6487 instr: usize,
6488 ) -> bool,
6489 >,
6490 pub highLevelILFunctionIsValid: ::std::option::Option<
6491 unsafe extern "C" fn(
6492 ctxt: *mut ::std::os::raw::c_void,
6493 view: *mut BNBinaryView,
6494 func: *mut BNHighLevelILFunction,
6495 ) -> bool,
6496 >,
6497 pub highLevelILInstructionIsValid: ::std::option::Option<
6498 unsafe extern "C" fn(
6499 ctxt: *mut ::std::os::raw::c_void,
6500 view: *mut BNBinaryView,
6501 func: *mut BNHighLevelILFunction,
6502 instr: usize,
6503 ) -> bool,
6504 >,
6505 pub projectIsValid: ::std::option::Option<
6506 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, view: *mut BNProject) -> bool,
6507 >,
6508}
6509#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6510const _: () = {
6511 ["Size of BNPluginCommand"][::std::mem::size_of::<BNPluginCommand>() - 208usize];
6512 ["Alignment of BNPluginCommand"][::std::mem::align_of::<BNPluginCommand>() - 8usize];
6513 ["Offset of field: BNPluginCommand::name"]
6514 [::std::mem::offset_of!(BNPluginCommand, name) - 0usize];
6515 ["Offset of field: BNPluginCommand::description"]
6516 [::std::mem::offset_of!(BNPluginCommand, description) - 8usize];
6517 ["Offset of field: BNPluginCommand::type_"]
6518 [::std::mem::offset_of!(BNPluginCommand, type_) - 16usize];
6519 ["Offset of field: BNPluginCommand::context"]
6520 [::std::mem::offset_of!(BNPluginCommand, context) - 24usize];
6521 ["Offset of field: BNPluginCommand::defaultCommand"]
6522 [::std::mem::offset_of!(BNPluginCommand, defaultCommand) - 32usize];
6523 ["Offset of field: BNPluginCommand::addressCommand"]
6524 [::std::mem::offset_of!(BNPluginCommand, addressCommand) - 40usize];
6525 ["Offset of field: BNPluginCommand::rangeCommand"]
6526 [::std::mem::offset_of!(BNPluginCommand, rangeCommand) - 48usize];
6527 ["Offset of field: BNPluginCommand::functionCommand"]
6528 [::std::mem::offset_of!(BNPluginCommand, functionCommand) - 56usize];
6529 ["Offset of field: BNPluginCommand::lowLevelILFunctionCommand"]
6530 [::std::mem::offset_of!(BNPluginCommand, lowLevelILFunctionCommand) - 64usize];
6531 ["Offset of field: BNPluginCommand::lowLevelILInstructionCommand"]
6532 [::std::mem::offset_of!(BNPluginCommand, lowLevelILInstructionCommand) - 72usize];
6533 ["Offset of field: BNPluginCommand::mediumLevelILFunctionCommand"]
6534 [::std::mem::offset_of!(BNPluginCommand, mediumLevelILFunctionCommand) - 80usize];
6535 ["Offset of field: BNPluginCommand::mediumLevelILInstructionCommand"]
6536 [::std::mem::offset_of!(BNPluginCommand, mediumLevelILInstructionCommand) - 88usize];
6537 ["Offset of field: BNPluginCommand::highLevelILFunctionCommand"]
6538 [::std::mem::offset_of!(BNPluginCommand, highLevelILFunctionCommand) - 96usize];
6539 ["Offset of field: BNPluginCommand::highLevelILInstructionCommand"]
6540 [::std::mem::offset_of!(BNPluginCommand, highLevelILInstructionCommand) - 104usize];
6541 ["Offset of field: BNPluginCommand::projectCommand"]
6542 [::std::mem::offset_of!(BNPluginCommand, projectCommand) - 112usize];
6543 ["Offset of field: BNPluginCommand::defaultIsValid"]
6544 [::std::mem::offset_of!(BNPluginCommand, defaultIsValid) - 120usize];
6545 ["Offset of field: BNPluginCommand::addressIsValid"]
6546 [::std::mem::offset_of!(BNPluginCommand, addressIsValid) - 128usize];
6547 ["Offset of field: BNPluginCommand::rangeIsValid"]
6548 [::std::mem::offset_of!(BNPluginCommand, rangeIsValid) - 136usize];
6549 ["Offset of field: BNPluginCommand::functionIsValid"]
6550 [::std::mem::offset_of!(BNPluginCommand, functionIsValid) - 144usize];
6551 ["Offset of field: BNPluginCommand::lowLevelILFunctionIsValid"]
6552 [::std::mem::offset_of!(BNPluginCommand, lowLevelILFunctionIsValid) - 152usize];
6553 ["Offset of field: BNPluginCommand::lowLevelILInstructionIsValid"]
6554 [::std::mem::offset_of!(BNPluginCommand, lowLevelILInstructionIsValid) - 160usize];
6555 ["Offset of field: BNPluginCommand::mediumLevelILFunctionIsValid"]
6556 [::std::mem::offset_of!(BNPluginCommand, mediumLevelILFunctionIsValid) - 168usize];
6557 ["Offset of field: BNPluginCommand::mediumLevelILInstructionIsValid"]
6558 [::std::mem::offset_of!(BNPluginCommand, mediumLevelILInstructionIsValid) - 176usize];
6559 ["Offset of field: BNPluginCommand::highLevelILFunctionIsValid"]
6560 [::std::mem::offset_of!(BNPluginCommand, highLevelILFunctionIsValid) - 184usize];
6561 ["Offset of field: BNPluginCommand::highLevelILInstructionIsValid"]
6562 [::std::mem::offset_of!(BNPluginCommand, highLevelILInstructionIsValid) - 192usize];
6563 ["Offset of field: BNPluginCommand::projectIsValid"]
6564 [::std::mem::offset_of!(BNPluginCommand, projectIsValid) - 200usize];
6565};
6566impl Default for BNPluginCommand {
6567 fn default() -> Self {
6568 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6569 unsafe {
6570 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6571 s.assume_init()
6572 }
6573 }
6574}
6575#[repr(C)]
6576#[derive(Debug, Copy, Clone)]
6577pub struct BNCustomCallingConvention {
6578 pub context: *mut ::std::os::raw::c_void,
6579 pub freeObject: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
6580 pub getCallerSavedRegisters: ::std::option::Option<
6581 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
6582 >,
6583 pub getCalleeSavedRegisters: ::std::option::Option<
6584 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
6585 >,
6586 pub getIntegerArgumentRegisters: ::std::option::Option<
6587 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
6588 >,
6589 pub getFloatArgumentRegisters: ::std::option::Option<
6590 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
6591 >,
6592 pub freeRegisterList: ::std::option::Option<
6593 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, regs: *mut u32, len: usize),
6594 >,
6595 pub areArgumentRegistersSharedIndex:
6596 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
6597 pub isStackReservedForArgumentRegisters:
6598 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
6599 pub isStackAdjustedOnReturn:
6600 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
6601 pub isEligibleForHeuristics:
6602 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
6603 pub getIntegerReturnValueRegister:
6604 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> u32>,
6605 pub getHighIntegerReturnValueRegister:
6606 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> u32>,
6607 pub getFloatReturnValueRegister:
6608 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> u32>,
6609 pub getGlobalPointerRegister:
6610 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> u32>,
6611 pub getImplicitlyDefinedRegisters: ::std::option::Option<
6612 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
6613 >,
6614 pub getIncomingRegisterValue: ::std::option::Option<
6615 unsafe extern "C" fn(
6616 ctxt: *mut ::std::os::raw::c_void,
6617 reg: u32,
6618 func: *mut BNFunction,
6619 result: *mut BNRegisterValue,
6620 ),
6621 >,
6622 pub getIncomingFlagValue: ::std::option::Option<
6623 unsafe extern "C" fn(
6624 ctxt: *mut ::std::os::raw::c_void,
6625 flag: u32,
6626 func: *mut BNFunction,
6627 result: *mut BNRegisterValue,
6628 ),
6629 >,
6630 pub getIncomingVariableForParameterVariable: ::std::option::Option<
6631 unsafe extern "C" fn(
6632 ctxt: *mut ::std::os::raw::c_void,
6633 var: *const BNVariable,
6634 func: *mut BNFunction,
6635 result: *mut BNVariable,
6636 ),
6637 >,
6638 pub getParameterVariableForIncomingVariable: ::std::option::Option<
6639 unsafe extern "C" fn(
6640 ctxt: *mut ::std::os::raw::c_void,
6641 var: *const BNVariable,
6642 func: *mut BNFunction,
6643 result: *mut BNVariable,
6644 ),
6645 >,
6646 pub areArgumentRegistersUsedForVarArgs:
6647 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
6648}
6649#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6650const _: () = {
6651 ["Size of BNCustomCallingConvention"]
6652 [::std::mem::size_of::<BNCustomCallingConvention>() - 168usize];
6653 ["Alignment of BNCustomCallingConvention"]
6654 [::std::mem::align_of::<BNCustomCallingConvention>() - 8usize];
6655 ["Offset of field: BNCustomCallingConvention::context"]
6656 [::std::mem::offset_of!(BNCustomCallingConvention, context) - 0usize];
6657 ["Offset of field: BNCustomCallingConvention::freeObject"]
6658 [::std::mem::offset_of!(BNCustomCallingConvention, freeObject) - 8usize];
6659 ["Offset of field: BNCustomCallingConvention::getCallerSavedRegisters"]
6660 [::std::mem::offset_of!(BNCustomCallingConvention, getCallerSavedRegisters) - 16usize];
6661 ["Offset of field: BNCustomCallingConvention::getCalleeSavedRegisters"]
6662 [::std::mem::offset_of!(BNCustomCallingConvention, getCalleeSavedRegisters) - 24usize];
6663 ["Offset of field: BNCustomCallingConvention::getIntegerArgumentRegisters"]
6664 [::std::mem::offset_of!(BNCustomCallingConvention, getIntegerArgumentRegisters) - 32usize];
6665 ["Offset of field: BNCustomCallingConvention::getFloatArgumentRegisters"]
6666 [::std::mem::offset_of!(BNCustomCallingConvention, getFloatArgumentRegisters) - 40usize];
6667 ["Offset of field: BNCustomCallingConvention::freeRegisterList"]
6668 [::std::mem::offset_of!(BNCustomCallingConvention, freeRegisterList) - 48usize];
6669 ["Offset of field: BNCustomCallingConvention::areArgumentRegistersSharedIndex"][::std::mem::offset_of!(
6670 BNCustomCallingConvention,
6671 areArgumentRegistersSharedIndex
6672 ) - 56usize];
6673 ["Offset of field: BNCustomCallingConvention::isStackReservedForArgumentRegisters"][::std::mem::offset_of!(
6674 BNCustomCallingConvention,
6675 isStackReservedForArgumentRegisters
6676 )
6677 - 64usize];
6678 ["Offset of field: BNCustomCallingConvention::isStackAdjustedOnReturn"]
6679 [::std::mem::offset_of!(BNCustomCallingConvention, isStackAdjustedOnReturn) - 72usize];
6680 ["Offset of field: BNCustomCallingConvention::isEligibleForHeuristics"]
6681 [::std::mem::offset_of!(BNCustomCallingConvention, isEligibleForHeuristics) - 80usize];
6682 ["Offset of field: BNCustomCallingConvention::getIntegerReturnValueRegister"][::std::mem::offset_of!(
6683 BNCustomCallingConvention,
6684 getIntegerReturnValueRegister
6685 ) - 88usize];
6686 ["Offset of field: BNCustomCallingConvention::getHighIntegerReturnValueRegister"][::std::mem::offset_of!(
6687 BNCustomCallingConvention,
6688 getHighIntegerReturnValueRegister
6689 ) - 96usize];
6690 ["Offset of field: BNCustomCallingConvention::getFloatReturnValueRegister"]
6691 [::std::mem::offset_of!(BNCustomCallingConvention, getFloatReturnValueRegister) - 104usize];
6692 ["Offset of field: BNCustomCallingConvention::getGlobalPointerRegister"]
6693 [::std::mem::offset_of!(BNCustomCallingConvention, getGlobalPointerRegister) - 112usize];
6694 ["Offset of field: BNCustomCallingConvention::getImplicitlyDefinedRegisters"][::std::mem::offset_of!(
6695 BNCustomCallingConvention,
6696 getImplicitlyDefinedRegisters
6697 ) - 120usize];
6698 ["Offset of field: BNCustomCallingConvention::getIncomingRegisterValue"]
6699 [::std::mem::offset_of!(BNCustomCallingConvention, getIncomingRegisterValue) - 128usize];
6700 ["Offset of field: BNCustomCallingConvention::getIncomingFlagValue"]
6701 [::std::mem::offset_of!(BNCustomCallingConvention, getIncomingFlagValue) - 136usize];
6702 ["Offset of field: BNCustomCallingConvention::getIncomingVariableForParameterVariable"][::std::mem::offset_of!(
6703 BNCustomCallingConvention,
6704 getIncomingVariableForParameterVariable
6705 )
6706 - 144usize];
6707 ["Offset of field: BNCustomCallingConvention::getParameterVariableForIncomingVariable"][::std::mem::offset_of!(
6708 BNCustomCallingConvention,
6709 getParameterVariableForIncomingVariable
6710 )
6711 - 152usize];
6712 ["Offset of field: BNCustomCallingConvention::areArgumentRegistersUsedForVarArgs"][::std::mem::offset_of!(
6713 BNCustomCallingConvention,
6714 areArgumentRegistersUsedForVarArgs
6715 )
6716 - 160usize];
6717};
6718impl Default for BNCustomCallingConvention {
6719 fn default() -> Self {
6720 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6721 unsafe {
6722 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6723 s.assume_init()
6724 }
6725 }
6726}
6727#[repr(C)]
6728#[derive(Debug, Copy, Clone)]
6729pub struct BNVariableNameAndType {
6730 pub var: BNVariable,
6731 pub type_: *mut BNType,
6732 pub name: *mut ::std::os::raw::c_char,
6733 pub autoDefined: bool,
6734 pub typeConfidence: u8,
6735}
6736#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6737const _: () = {
6738 ["Size of BNVariableNameAndType"][::std::mem::size_of::<BNVariableNameAndType>() - 40usize];
6739 ["Alignment of BNVariableNameAndType"]
6740 [::std::mem::align_of::<BNVariableNameAndType>() - 8usize];
6741 ["Offset of field: BNVariableNameAndType::var"]
6742 [::std::mem::offset_of!(BNVariableNameAndType, var) - 0usize];
6743 ["Offset of field: BNVariableNameAndType::type_"]
6744 [::std::mem::offset_of!(BNVariableNameAndType, type_) - 16usize];
6745 ["Offset of field: BNVariableNameAndType::name"]
6746 [::std::mem::offset_of!(BNVariableNameAndType, name) - 24usize];
6747 ["Offset of field: BNVariableNameAndType::autoDefined"]
6748 [::std::mem::offset_of!(BNVariableNameAndType, autoDefined) - 32usize];
6749 ["Offset of field: BNVariableNameAndType::typeConfidence"]
6750 [::std::mem::offset_of!(BNVariableNameAndType, typeConfidence) - 33usize];
6751};
6752impl Default for BNVariableNameAndType {
6753 fn default() -> Self {
6754 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6755 unsafe {
6756 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6757 s.assume_init()
6758 }
6759 }
6760}
6761#[repr(C)]
6762#[derive(Debug, Copy, Clone)]
6763pub struct BNStackVariableReference {
6764 pub sourceOperand: u32,
6765 pub typeConfidence: u8,
6766 pub type_: *mut BNType,
6767 pub name: *mut ::std::os::raw::c_char,
6768 pub varIdentifier: u64,
6769 pub referencedOffset: i64,
6770 pub size: usize,
6771}
6772#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6773const _: () = {
6774 ["Size of BNStackVariableReference"]
6775 [::std::mem::size_of::<BNStackVariableReference>() - 48usize];
6776 ["Alignment of BNStackVariableReference"]
6777 [::std::mem::align_of::<BNStackVariableReference>() - 8usize];
6778 ["Offset of field: BNStackVariableReference::sourceOperand"]
6779 [::std::mem::offset_of!(BNStackVariableReference, sourceOperand) - 0usize];
6780 ["Offset of field: BNStackVariableReference::typeConfidence"]
6781 [::std::mem::offset_of!(BNStackVariableReference, typeConfidence) - 4usize];
6782 ["Offset of field: BNStackVariableReference::type_"]
6783 [::std::mem::offset_of!(BNStackVariableReference, type_) - 8usize];
6784 ["Offset of field: BNStackVariableReference::name"]
6785 [::std::mem::offset_of!(BNStackVariableReference, name) - 16usize];
6786 ["Offset of field: BNStackVariableReference::varIdentifier"]
6787 [::std::mem::offset_of!(BNStackVariableReference, varIdentifier) - 24usize];
6788 ["Offset of field: BNStackVariableReference::referencedOffset"]
6789 [::std::mem::offset_of!(BNStackVariableReference, referencedOffset) - 32usize];
6790 ["Offset of field: BNStackVariableReference::size"]
6791 [::std::mem::offset_of!(BNStackVariableReference, size) - 40usize];
6792};
6793impl Default for BNStackVariableReference {
6794 fn default() -> Self {
6795 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6796 unsafe {
6797 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6798 s.assume_init()
6799 }
6800 }
6801}
6802#[repr(C)]
6803#[derive(Debug, Copy, Clone)]
6804pub struct BNIndirectBranchInfo {
6805 pub sourceArch: *mut BNArchitecture,
6806 pub sourceAddr: u64,
6807 pub destArch: *mut BNArchitecture,
6808 pub destAddr: u64,
6809 pub autoDefined: bool,
6810}
6811#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6812const _: () = {
6813 ["Size of BNIndirectBranchInfo"][::std::mem::size_of::<BNIndirectBranchInfo>() - 40usize];
6814 ["Alignment of BNIndirectBranchInfo"][::std::mem::align_of::<BNIndirectBranchInfo>() - 8usize];
6815 ["Offset of field: BNIndirectBranchInfo::sourceArch"]
6816 [::std::mem::offset_of!(BNIndirectBranchInfo, sourceArch) - 0usize];
6817 ["Offset of field: BNIndirectBranchInfo::sourceAddr"]
6818 [::std::mem::offset_of!(BNIndirectBranchInfo, sourceAddr) - 8usize];
6819 ["Offset of field: BNIndirectBranchInfo::destArch"]
6820 [::std::mem::offset_of!(BNIndirectBranchInfo, destArch) - 16usize];
6821 ["Offset of field: BNIndirectBranchInfo::destAddr"]
6822 [::std::mem::offset_of!(BNIndirectBranchInfo, destAddr) - 24usize];
6823 ["Offset of field: BNIndirectBranchInfo::autoDefined"]
6824 [::std::mem::offset_of!(BNIndirectBranchInfo, autoDefined) - 32usize];
6825};
6826impl Default for BNIndirectBranchInfo {
6827 fn default() -> Self {
6828 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6829 unsafe {
6830 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6831 s.assume_init()
6832 }
6833 }
6834}
6835#[repr(C)]
6836#[derive(Debug, Copy, Clone)]
6837pub struct BNArchitectureAndAddress {
6838 pub arch: *mut BNArchitecture,
6839 pub address: u64,
6840}
6841#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6842const _: () = {
6843 ["Size of BNArchitectureAndAddress"]
6844 [::std::mem::size_of::<BNArchitectureAndAddress>() - 16usize];
6845 ["Alignment of BNArchitectureAndAddress"]
6846 [::std::mem::align_of::<BNArchitectureAndAddress>() - 8usize];
6847 ["Offset of field: BNArchitectureAndAddress::arch"]
6848 [::std::mem::offset_of!(BNArchitectureAndAddress, arch) - 0usize];
6849 ["Offset of field: BNArchitectureAndAddress::address"]
6850 [::std::mem::offset_of!(BNArchitectureAndAddress, address) - 8usize];
6851};
6852impl Default for BNArchitectureAndAddress {
6853 fn default() -> Self {
6854 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6855 unsafe {
6856 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6857 s.assume_init()
6858 }
6859 }
6860}
6861#[repr(C)]
6862#[derive(Debug, Copy, Clone)]
6863pub struct BNUserVariableValue {
6864 pub var: BNVariable,
6865 pub defSite: BNArchitectureAndAddress,
6866 pub after: bool,
6867 pub value: BNPossibleValueSet,
6868}
6869#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6870const _: () = {
6871 ["Size of BNUserVariableValue"][::std::mem::size_of::<BNUserVariableValue>() - 104usize];
6872 ["Alignment of BNUserVariableValue"][::std::mem::align_of::<BNUserVariableValue>() - 8usize];
6873 ["Offset of field: BNUserVariableValue::var"]
6874 [::std::mem::offset_of!(BNUserVariableValue, var) - 0usize];
6875 ["Offset of field: BNUserVariableValue::defSite"]
6876 [::std::mem::offset_of!(BNUserVariableValue, defSite) - 16usize];
6877 ["Offset of field: BNUserVariableValue::after"]
6878 [::std::mem::offset_of!(BNUserVariableValue, after) - 32usize];
6879 ["Offset of field: BNUserVariableValue::value"]
6880 [::std::mem::offset_of!(BNUserVariableValue, value) - 40usize];
6881};
6882impl Default for BNUserVariableValue {
6883 fn default() -> Self {
6884 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6885 unsafe {
6886 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6887 s.assume_init()
6888 }
6889 }
6890}
6891#[repr(C)]
6892#[derive(Debug, Copy, Clone)]
6893pub struct BNVariableFieldResolutionInfo {
6894 pub location: BNArchitectureAndAddress,
6895 pub var: BNVariable,
6896 pub info: *mut BNFieldResolutionInfo,
6897}
6898#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6899const _: () = {
6900 ["Size of BNVariableFieldResolutionInfo"]
6901 [::std::mem::size_of::<BNVariableFieldResolutionInfo>() - 40usize];
6902 ["Alignment of BNVariableFieldResolutionInfo"]
6903 [::std::mem::align_of::<BNVariableFieldResolutionInfo>() - 8usize];
6904 ["Offset of field: BNVariableFieldResolutionInfo::location"]
6905 [::std::mem::offset_of!(BNVariableFieldResolutionInfo, location) - 0usize];
6906 ["Offset of field: BNVariableFieldResolutionInfo::var"]
6907 [::std::mem::offset_of!(BNVariableFieldResolutionInfo, var) - 16usize];
6908 ["Offset of field: BNVariableFieldResolutionInfo::info"]
6909 [::std::mem::offset_of!(BNVariableFieldResolutionInfo, info) - 32usize];
6910};
6911impl Default for BNVariableFieldResolutionInfo {
6912 fn default() -> Self {
6913 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6914 unsafe {
6915 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6916 s.assume_init()
6917 }
6918 }
6919}
6920#[repr(u32)]
6921#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
6922pub enum BNFunctionUpdateType {
6923 UserFunctionUpdate = 0,
6924 FullAutoFunctionUpdate = 1,
6925 IncrementalAutoFunctionUpdate = 2,
6926}
6927#[repr(u32)]
6928#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
6929pub enum BNAnalysisState {
6930 #[doc = " Entry point before any analysis begins"]
6931 InitialState = 0,
6932 #[doc = " Module-level analysis is deferred; On-demand function analysis is permitted"]
6933 HoldState = 1,
6934 #[doc = " No active analysis; system is idle and ready"]
6935 IdleState = 2,
6936 #[doc = " Context gathering and auxiliary data preparation"]
6937 DiscoveryState = 3,
6938 #[doc = " Instruction decoding and control flow discovery"]
6939 DisassembleState = 4,
6940 #[doc = " Core semantic and structural analysis"]
6941 AnalyzeState = 5,
6942 #[doc = " Supplemental analysis: sweeping, type resolution, and pattern matching"]
6943 ExtendedAnalyzeState = 6,
6944}
6945#[repr(C)]
6946#[derive(Debug, Copy, Clone)]
6947pub struct BNActiveAnalysisInfo {
6948 pub func: *mut BNFunction,
6949 pub analysisTime: u64,
6950 pub updateCount: usize,
6951 pub submitCount: usize,
6952}
6953#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6954const _: () = {
6955 ["Size of BNActiveAnalysisInfo"][::std::mem::size_of::<BNActiveAnalysisInfo>() - 32usize];
6956 ["Alignment of BNActiveAnalysisInfo"][::std::mem::align_of::<BNActiveAnalysisInfo>() - 8usize];
6957 ["Offset of field: BNActiveAnalysisInfo::func"]
6958 [::std::mem::offset_of!(BNActiveAnalysisInfo, func) - 0usize];
6959 ["Offset of field: BNActiveAnalysisInfo::analysisTime"]
6960 [::std::mem::offset_of!(BNActiveAnalysisInfo, analysisTime) - 8usize];
6961 ["Offset of field: BNActiveAnalysisInfo::updateCount"]
6962 [::std::mem::offset_of!(BNActiveAnalysisInfo, updateCount) - 16usize];
6963 ["Offset of field: BNActiveAnalysisInfo::submitCount"]
6964 [::std::mem::offset_of!(BNActiveAnalysisInfo, submitCount) - 24usize];
6965};
6966impl Default for BNActiveAnalysisInfo {
6967 fn default() -> Self {
6968 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6969 unsafe {
6970 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6971 s.assume_init()
6972 }
6973 }
6974}
6975#[repr(C)]
6976#[derive(Debug, Copy, Clone)]
6977pub struct BNAnalysisInfo {
6978 pub state: BNAnalysisState,
6979 pub analysisTime: u64,
6980 pub activeInfo: *mut BNActiveAnalysisInfo,
6981 pub count: usize,
6982}
6983#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6984const _: () = {
6985 ["Size of BNAnalysisInfo"][::std::mem::size_of::<BNAnalysisInfo>() - 32usize];
6986 ["Alignment of BNAnalysisInfo"][::std::mem::align_of::<BNAnalysisInfo>() - 8usize];
6987 ["Offset of field: BNAnalysisInfo::state"]
6988 [::std::mem::offset_of!(BNAnalysisInfo, state) - 0usize];
6989 ["Offset of field: BNAnalysisInfo::analysisTime"]
6990 [::std::mem::offset_of!(BNAnalysisInfo, analysisTime) - 8usize];
6991 ["Offset of field: BNAnalysisInfo::activeInfo"]
6992 [::std::mem::offset_of!(BNAnalysisInfo, activeInfo) - 16usize];
6993 ["Offset of field: BNAnalysisInfo::count"]
6994 [::std::mem::offset_of!(BNAnalysisInfo, count) - 24usize];
6995};
6996impl Default for BNAnalysisInfo {
6997 fn default() -> Self {
6998 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6999 unsafe {
7000 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7001 s.assume_init()
7002 }
7003 }
7004}
7005#[repr(C)]
7006#[derive(Debug, Copy, Clone)]
7007pub struct BNAnalysisProgress {
7008 pub state: BNAnalysisState,
7009 pub count: usize,
7010 pub total: usize,
7011}
7012#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7013const _: () = {
7014 ["Size of BNAnalysisProgress"][::std::mem::size_of::<BNAnalysisProgress>() - 24usize];
7015 ["Alignment of BNAnalysisProgress"][::std::mem::align_of::<BNAnalysisProgress>() - 8usize];
7016 ["Offset of field: BNAnalysisProgress::state"]
7017 [::std::mem::offset_of!(BNAnalysisProgress, state) - 0usize];
7018 ["Offset of field: BNAnalysisProgress::count"]
7019 [::std::mem::offset_of!(BNAnalysisProgress, count) - 8usize];
7020 ["Offset of field: BNAnalysisProgress::total"]
7021 [::std::mem::offset_of!(BNAnalysisProgress, total) - 16usize];
7022};
7023impl Default for BNAnalysisProgress {
7024 fn default() -> Self {
7025 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7026 unsafe {
7027 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7028 s.assume_init()
7029 }
7030 }
7031}
7032#[repr(u32)]
7033#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
7034pub enum BNAnalysisMode {
7035 FullAnalysisMode = 0,
7036 IntermediateAnalysisMode = 1,
7037 BasicAnalysisMode = 2,
7038 ControlFlowAnalysisMode = 3,
7039}
7040#[repr(C)]
7041#[derive(Debug, Copy, Clone)]
7042pub struct BNAnalysisParameters {
7043 pub maxAnalysisTime: u64,
7044 pub maxFunctionSize: u64,
7045 pub maxFunctionAnalysisTime: u64,
7046 pub maxFunctionUpdateCount: usize,
7047 pub maxFunctionSubmitCount: usize,
7048 pub suppressNewAutoFunctionAnalysis: bool,
7049 pub mode: BNAnalysisMode,
7050 pub alwaysAnalyzeIndirectBranches: bool,
7051 pub advancedAnalysisCacheSize: usize,
7052}
7053#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7054const _: () = {
7055 ["Size of BNAnalysisParameters"][::std::mem::size_of::<BNAnalysisParameters>() - 64usize];
7056 ["Alignment of BNAnalysisParameters"][::std::mem::align_of::<BNAnalysisParameters>() - 8usize];
7057 ["Offset of field: BNAnalysisParameters::maxAnalysisTime"]
7058 [::std::mem::offset_of!(BNAnalysisParameters, maxAnalysisTime) - 0usize];
7059 ["Offset of field: BNAnalysisParameters::maxFunctionSize"]
7060 [::std::mem::offset_of!(BNAnalysisParameters, maxFunctionSize) - 8usize];
7061 ["Offset of field: BNAnalysisParameters::maxFunctionAnalysisTime"]
7062 [::std::mem::offset_of!(BNAnalysisParameters, maxFunctionAnalysisTime) - 16usize];
7063 ["Offset of field: BNAnalysisParameters::maxFunctionUpdateCount"]
7064 [::std::mem::offset_of!(BNAnalysisParameters, maxFunctionUpdateCount) - 24usize];
7065 ["Offset of field: BNAnalysisParameters::maxFunctionSubmitCount"]
7066 [::std::mem::offset_of!(BNAnalysisParameters, maxFunctionSubmitCount) - 32usize];
7067 ["Offset of field: BNAnalysisParameters::suppressNewAutoFunctionAnalysis"]
7068 [::std::mem::offset_of!(BNAnalysisParameters, suppressNewAutoFunctionAnalysis) - 40usize];
7069 ["Offset of field: BNAnalysisParameters::mode"]
7070 [::std::mem::offset_of!(BNAnalysisParameters, mode) - 44usize];
7071 ["Offset of field: BNAnalysisParameters::alwaysAnalyzeIndirectBranches"]
7072 [::std::mem::offset_of!(BNAnalysisParameters, alwaysAnalyzeIndirectBranches) - 48usize];
7073 ["Offset of field: BNAnalysisParameters::advancedAnalysisCacheSize"]
7074 [::std::mem::offset_of!(BNAnalysisParameters, advancedAnalysisCacheSize) - 56usize];
7075};
7076impl Default for BNAnalysisParameters {
7077 fn default() -> Self {
7078 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7079 unsafe {
7080 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7081 s.assume_init()
7082 }
7083 }
7084}
7085#[repr(C)]
7086#[derive(Debug, Copy, Clone)]
7087pub struct BNDownloadInstanceResponse {
7088 pub statusCode: u16,
7089 pub headerCount: u64,
7090 pub headerKeys: *mut *mut ::std::os::raw::c_char,
7091 pub headerValues: *mut *mut ::std::os::raw::c_char,
7092}
7093#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7094const _: () = {
7095 ["Size of BNDownloadInstanceResponse"]
7096 [::std::mem::size_of::<BNDownloadInstanceResponse>() - 32usize];
7097 ["Alignment of BNDownloadInstanceResponse"]
7098 [::std::mem::align_of::<BNDownloadInstanceResponse>() - 8usize];
7099 ["Offset of field: BNDownloadInstanceResponse::statusCode"]
7100 [::std::mem::offset_of!(BNDownloadInstanceResponse, statusCode) - 0usize];
7101 ["Offset of field: BNDownloadInstanceResponse::headerCount"]
7102 [::std::mem::offset_of!(BNDownloadInstanceResponse, headerCount) - 8usize];
7103 ["Offset of field: BNDownloadInstanceResponse::headerKeys"]
7104 [::std::mem::offset_of!(BNDownloadInstanceResponse, headerKeys) - 16usize];
7105 ["Offset of field: BNDownloadInstanceResponse::headerValues"]
7106 [::std::mem::offset_of!(BNDownloadInstanceResponse, headerValues) - 24usize];
7107};
7108impl Default for BNDownloadInstanceResponse {
7109 fn default() -> Self {
7110 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7111 unsafe {
7112 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7113 s.assume_init()
7114 }
7115 }
7116}
7117#[repr(C)]
7118#[derive(Debug, Copy, Clone)]
7119pub struct BNDownloadInstanceInputOutputCallbacks {
7120 pub readCallback: ::std::option::Option<
7121 unsafe extern "C" fn(data: *mut u8, len: u64, ctxt: *mut ::std::os::raw::c_void) -> i64,
7122 >,
7123 pub readContext: *mut ::std::os::raw::c_void,
7124 pub writeCallback: ::std::option::Option<
7125 unsafe extern "C" fn(data: *mut u8, len: u64, ctxt: *mut ::std::os::raw::c_void) -> u64,
7126 >,
7127 pub writeContext: *mut ::std::os::raw::c_void,
7128 pub progressCallback: BNProgressFunction,
7129 pub progressContext: *mut ::std::os::raw::c_void,
7130}
7131#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7132const _: () = {
7133 ["Size of BNDownloadInstanceInputOutputCallbacks"]
7134 [::std::mem::size_of::<BNDownloadInstanceInputOutputCallbacks>() - 48usize];
7135 ["Alignment of BNDownloadInstanceInputOutputCallbacks"]
7136 [::std::mem::align_of::<BNDownloadInstanceInputOutputCallbacks>() - 8usize];
7137 ["Offset of field: BNDownloadInstanceInputOutputCallbacks::readCallback"]
7138 [::std::mem::offset_of!(BNDownloadInstanceInputOutputCallbacks, readCallback) - 0usize];
7139 ["Offset of field: BNDownloadInstanceInputOutputCallbacks::readContext"]
7140 [::std::mem::offset_of!(BNDownloadInstanceInputOutputCallbacks, readContext) - 8usize];
7141 ["Offset of field: BNDownloadInstanceInputOutputCallbacks::writeCallback"]
7142 [::std::mem::offset_of!(BNDownloadInstanceInputOutputCallbacks, writeCallback) - 16usize];
7143 ["Offset of field: BNDownloadInstanceInputOutputCallbacks::writeContext"]
7144 [::std::mem::offset_of!(BNDownloadInstanceInputOutputCallbacks, writeContext) - 24usize];
7145 ["Offset of field: BNDownloadInstanceInputOutputCallbacks::progressCallback"][::std::mem::offset_of!(
7146 BNDownloadInstanceInputOutputCallbacks,
7147 progressCallback
7148 ) - 32usize];
7149 ["Offset of field: BNDownloadInstanceInputOutputCallbacks::progressContext"]
7150 [::std::mem::offset_of!(BNDownloadInstanceInputOutputCallbacks, progressContext) - 40usize];
7151};
7152impl Default for BNDownloadInstanceInputOutputCallbacks {
7153 fn default() -> Self {
7154 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7155 unsafe {
7156 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7157 s.assume_init()
7158 }
7159 }
7160}
7161#[repr(C)]
7162#[derive(Debug, Copy, Clone)]
7163pub struct BNDownloadInstanceOutputCallbacks {
7164 pub writeCallback: ::std::option::Option<
7165 unsafe extern "C" fn(data: *mut u8, len: u64, ctxt: *mut ::std::os::raw::c_void) -> u64,
7166 >,
7167 pub writeContext: *mut ::std::os::raw::c_void,
7168 pub progressCallback: BNProgressFunction,
7169 pub progressContext: *mut ::std::os::raw::c_void,
7170}
7171#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7172const _: () = {
7173 ["Size of BNDownloadInstanceOutputCallbacks"]
7174 [::std::mem::size_of::<BNDownloadInstanceOutputCallbacks>() - 32usize];
7175 ["Alignment of BNDownloadInstanceOutputCallbacks"]
7176 [::std::mem::align_of::<BNDownloadInstanceOutputCallbacks>() - 8usize];
7177 ["Offset of field: BNDownloadInstanceOutputCallbacks::writeCallback"]
7178 [::std::mem::offset_of!(BNDownloadInstanceOutputCallbacks, writeCallback) - 0usize];
7179 ["Offset of field: BNDownloadInstanceOutputCallbacks::writeContext"]
7180 [::std::mem::offset_of!(BNDownloadInstanceOutputCallbacks, writeContext) - 8usize];
7181 ["Offset of field: BNDownloadInstanceOutputCallbacks::progressCallback"]
7182 [::std::mem::offset_of!(BNDownloadInstanceOutputCallbacks, progressCallback) - 16usize];
7183 ["Offset of field: BNDownloadInstanceOutputCallbacks::progressContext"]
7184 [::std::mem::offset_of!(BNDownloadInstanceOutputCallbacks, progressContext) - 24usize];
7185};
7186impl Default for BNDownloadInstanceOutputCallbacks {
7187 fn default() -> Self {
7188 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7189 unsafe {
7190 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7191 s.assume_init()
7192 }
7193 }
7194}
7195#[repr(C)]
7196#[derive(Debug, Copy, Clone)]
7197pub struct BNDownloadInstanceCallbacks {
7198 pub context: *mut ::std::os::raw::c_void,
7199 pub destroyInstance:
7200 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
7201 pub performRequest: ::std::option::Option<
7202 unsafe extern "C" fn(
7203 ctxt: *mut ::std::os::raw::c_void,
7204 url: *const ::std::os::raw::c_char,
7205 ) -> ::std::os::raw::c_int,
7206 >,
7207 pub performCustomRequest: ::std::option::Option<
7208 unsafe extern "C" fn(
7209 ctxt: *mut ::std::os::raw::c_void,
7210 method: *const ::std::os::raw::c_char,
7211 url: *const ::std::os::raw::c_char,
7212 headerCount: u64,
7213 headerKeys: *const *const ::std::os::raw::c_char,
7214 headerValues: *const *const ::std::os::raw::c_char,
7215 response: *mut *mut BNDownloadInstanceResponse,
7216 ) -> ::std::os::raw::c_int,
7217 >,
7218 pub freeResponse: ::std::option::Option<
7219 unsafe extern "C" fn(
7220 ctxt: *mut ::std::os::raw::c_void,
7221 response: *mut BNDownloadInstanceResponse,
7222 ),
7223 >,
7224}
7225#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7226const _: () = {
7227 ["Size of BNDownloadInstanceCallbacks"]
7228 [::std::mem::size_of::<BNDownloadInstanceCallbacks>() - 40usize];
7229 ["Alignment of BNDownloadInstanceCallbacks"]
7230 [::std::mem::align_of::<BNDownloadInstanceCallbacks>() - 8usize];
7231 ["Offset of field: BNDownloadInstanceCallbacks::context"]
7232 [::std::mem::offset_of!(BNDownloadInstanceCallbacks, context) - 0usize];
7233 ["Offset of field: BNDownloadInstanceCallbacks::destroyInstance"]
7234 [::std::mem::offset_of!(BNDownloadInstanceCallbacks, destroyInstance) - 8usize];
7235 ["Offset of field: BNDownloadInstanceCallbacks::performRequest"]
7236 [::std::mem::offset_of!(BNDownloadInstanceCallbacks, performRequest) - 16usize];
7237 ["Offset of field: BNDownloadInstanceCallbacks::performCustomRequest"]
7238 [::std::mem::offset_of!(BNDownloadInstanceCallbacks, performCustomRequest) - 24usize];
7239 ["Offset of field: BNDownloadInstanceCallbacks::freeResponse"]
7240 [::std::mem::offset_of!(BNDownloadInstanceCallbacks, freeResponse) - 32usize];
7241};
7242impl Default for BNDownloadInstanceCallbacks {
7243 fn default() -> Self {
7244 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7245 unsafe {
7246 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7247 s.assume_init()
7248 }
7249 }
7250}
7251#[repr(C)]
7252#[derive(Debug, Copy, Clone)]
7253pub struct BNDownloadProviderCallbacks {
7254 pub context: *mut ::std::os::raw::c_void,
7255 pub createInstance: ::std::option::Option<
7256 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> *mut BNDownloadInstance,
7257 >,
7258}
7259#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7260const _: () = {
7261 ["Size of BNDownloadProviderCallbacks"]
7262 [::std::mem::size_of::<BNDownloadProviderCallbacks>() - 16usize];
7263 ["Alignment of BNDownloadProviderCallbacks"]
7264 [::std::mem::align_of::<BNDownloadProviderCallbacks>() - 8usize];
7265 ["Offset of field: BNDownloadProviderCallbacks::context"]
7266 [::std::mem::offset_of!(BNDownloadProviderCallbacks, context) - 0usize];
7267 ["Offset of field: BNDownloadProviderCallbacks::createInstance"]
7268 [::std::mem::offset_of!(BNDownloadProviderCallbacks, createInstance) - 8usize];
7269};
7270impl Default for BNDownloadProviderCallbacks {
7271 fn default() -> Self {
7272 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7273 unsafe {
7274 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7275 s.assume_init()
7276 }
7277 }
7278}
7279#[repr(C)]
7280#[derive(Debug, Copy, Clone)]
7281pub struct BNWebsocketClientOutputCallbacks {
7282 pub context: *mut ::std::os::raw::c_void,
7283 pub connectedCallback:
7284 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
7285 pub disconnectedCallback:
7286 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
7287 pub errorCallback: ::std::option::Option<
7288 unsafe extern "C" fn(msg: *const ::std::os::raw::c_char, ctxt: *mut ::std::os::raw::c_void),
7289 >,
7290 pub readCallback: ::std::option::Option<
7291 unsafe extern "C" fn(data: *mut u8, len: u64, ctxt: *mut ::std::os::raw::c_void) -> bool,
7292 >,
7293}
7294#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7295const _: () = {
7296 ["Size of BNWebsocketClientOutputCallbacks"]
7297 [::std::mem::size_of::<BNWebsocketClientOutputCallbacks>() - 40usize];
7298 ["Alignment of BNWebsocketClientOutputCallbacks"]
7299 [::std::mem::align_of::<BNWebsocketClientOutputCallbacks>() - 8usize];
7300 ["Offset of field: BNWebsocketClientOutputCallbacks::context"]
7301 [::std::mem::offset_of!(BNWebsocketClientOutputCallbacks, context) - 0usize];
7302 ["Offset of field: BNWebsocketClientOutputCallbacks::connectedCallback"]
7303 [::std::mem::offset_of!(BNWebsocketClientOutputCallbacks, connectedCallback) - 8usize];
7304 ["Offset of field: BNWebsocketClientOutputCallbacks::disconnectedCallback"]
7305 [::std::mem::offset_of!(BNWebsocketClientOutputCallbacks, disconnectedCallback) - 16usize];
7306 ["Offset of field: BNWebsocketClientOutputCallbacks::errorCallback"]
7307 [::std::mem::offset_of!(BNWebsocketClientOutputCallbacks, errorCallback) - 24usize];
7308 ["Offset of field: BNWebsocketClientOutputCallbacks::readCallback"]
7309 [::std::mem::offset_of!(BNWebsocketClientOutputCallbacks, readCallback) - 32usize];
7310};
7311impl Default for BNWebsocketClientOutputCallbacks {
7312 fn default() -> Self {
7313 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7314 unsafe {
7315 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7316 s.assume_init()
7317 }
7318 }
7319}
7320#[repr(C)]
7321#[derive(Debug, Copy, Clone)]
7322pub struct BNWebsocketClientCallbacks {
7323 pub context: *mut ::std::os::raw::c_void,
7324 pub destroyClient:
7325 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
7326 pub connect: ::std::option::Option<
7327 unsafe extern "C" fn(
7328 ctxt: *mut ::std::os::raw::c_void,
7329 host: *const ::std::os::raw::c_char,
7330 headerCount: u64,
7331 headerKeys: *const *const ::std::os::raw::c_char,
7332 headerValues: *const *const ::std::os::raw::c_char,
7333 ) -> bool,
7334 >,
7335 pub write: ::std::option::Option<
7336 unsafe extern "C" fn(data: *const u8, len: u64, ctxt: *mut ::std::os::raw::c_void) -> bool,
7337 >,
7338 pub disconnect:
7339 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
7340}
7341#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7342const _: () = {
7343 ["Size of BNWebsocketClientCallbacks"]
7344 [::std::mem::size_of::<BNWebsocketClientCallbacks>() - 40usize];
7345 ["Alignment of BNWebsocketClientCallbacks"]
7346 [::std::mem::align_of::<BNWebsocketClientCallbacks>() - 8usize];
7347 ["Offset of field: BNWebsocketClientCallbacks::context"]
7348 [::std::mem::offset_of!(BNWebsocketClientCallbacks, context) - 0usize];
7349 ["Offset of field: BNWebsocketClientCallbacks::destroyClient"]
7350 [::std::mem::offset_of!(BNWebsocketClientCallbacks, destroyClient) - 8usize];
7351 ["Offset of field: BNWebsocketClientCallbacks::connect"]
7352 [::std::mem::offset_of!(BNWebsocketClientCallbacks, connect) - 16usize];
7353 ["Offset of field: BNWebsocketClientCallbacks::write"]
7354 [::std::mem::offset_of!(BNWebsocketClientCallbacks, write) - 24usize];
7355 ["Offset of field: BNWebsocketClientCallbacks::disconnect"]
7356 [::std::mem::offset_of!(BNWebsocketClientCallbacks, disconnect) - 32usize];
7357};
7358impl Default for BNWebsocketClientCallbacks {
7359 fn default() -> Self {
7360 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7361 unsafe {
7362 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7363 s.assume_init()
7364 }
7365 }
7366}
7367#[repr(C)]
7368#[derive(Debug, Copy, Clone)]
7369pub struct BNWebsocketProviderCallbacks {
7370 pub context: *mut ::std::os::raw::c_void,
7371 pub createClient: ::std::option::Option<
7372 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> *mut BNWebsocketClient,
7373 >,
7374}
7375#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7376const _: () = {
7377 ["Size of BNWebsocketProviderCallbacks"]
7378 [::std::mem::size_of::<BNWebsocketProviderCallbacks>() - 16usize];
7379 ["Alignment of BNWebsocketProviderCallbacks"]
7380 [::std::mem::align_of::<BNWebsocketProviderCallbacks>() - 8usize];
7381 ["Offset of field: BNWebsocketProviderCallbacks::context"]
7382 [::std::mem::offset_of!(BNWebsocketProviderCallbacks, context) - 0usize];
7383 ["Offset of field: BNWebsocketProviderCallbacks::createClient"]
7384 [::std::mem::offset_of!(BNWebsocketProviderCallbacks, createClient) - 8usize];
7385};
7386impl Default for BNWebsocketProviderCallbacks {
7387 fn default() -> Self {
7388 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7389 unsafe {
7390 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7391 s.assume_init()
7392 }
7393 }
7394}
7395#[repr(u32)]
7396#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
7397pub enum BNFindFlag {
7398 FindCaseSensitive = 0,
7399 FindCaseInsensitive = 1,
7400 FindIgnoreWhitespace = 2,
7401}
7402#[repr(u32)]
7403#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
7404pub enum BNScriptingProviderInputReadyState {
7405 NotReadyForInput = 0,
7406 ReadyForScriptExecution = 1,
7407 ReadyForScriptProgramInput = 2,
7408}
7409#[repr(u32)]
7410#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
7411pub enum BNScriptingProviderExecuteResult {
7412 InvalidScriptInput = 0,
7413 IncompleteScriptInput = 1,
7414 SuccessfulScriptExecution = 2,
7415 ScriptExecutionCancelled = 3,
7416}
7417#[repr(C)]
7418#[derive(Debug, Copy, Clone)]
7419pub struct BNScriptingInstanceCallbacks {
7420 pub context: *mut ::std::os::raw::c_void,
7421 pub destroyInstance:
7422 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
7423 pub externalRefTaken:
7424 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
7425 pub externalRefReleased:
7426 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
7427 pub executeScriptInput: ::std::option::Option<
7428 unsafe extern "C" fn(
7429 ctxt: *mut ::std::os::raw::c_void,
7430 input: *const ::std::os::raw::c_char,
7431 ) -> BNScriptingProviderExecuteResult,
7432 >,
7433 pub executeScriptInputFromFilename: ::std::option::Option<
7434 unsafe extern "C" fn(
7435 ctxt: *mut ::std::os::raw::c_void,
7436 input: *const ::std::os::raw::c_char,
7437 ) -> BNScriptingProviderExecuteResult,
7438 >,
7439 pub cancelScriptInput:
7440 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
7441 pub releaseBinaryView: ::std::option::Option<
7442 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, view: *mut BNBinaryView),
7443 >,
7444 pub setCurrentBinaryView: ::std::option::Option<
7445 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, view: *mut BNBinaryView),
7446 >,
7447 pub setCurrentFunction: ::std::option::Option<
7448 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, func: *mut BNFunction),
7449 >,
7450 pub setCurrentBasicBlock: ::std::option::Option<
7451 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, block: *mut BNBasicBlock),
7452 >,
7453 pub setCurrentAddress:
7454 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, addr: u64)>,
7455 pub setCurrentSelection: ::std::option::Option<
7456 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, begin: u64, end: u64),
7457 >,
7458 pub completeInput: ::std::option::Option<
7459 unsafe extern "C" fn(
7460 ctxt: *mut ::std::os::raw::c_void,
7461 text: *const ::std::os::raw::c_char,
7462 state: u64,
7463 ) -> *mut ::std::os::raw::c_char,
7464 >,
7465 pub stop: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
7466}
7467#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7468const _: () = {
7469 ["Size of BNScriptingInstanceCallbacks"]
7470 [::std::mem::size_of::<BNScriptingInstanceCallbacks>() - 120usize];
7471 ["Alignment of BNScriptingInstanceCallbacks"]
7472 [::std::mem::align_of::<BNScriptingInstanceCallbacks>() - 8usize];
7473 ["Offset of field: BNScriptingInstanceCallbacks::context"]
7474 [::std::mem::offset_of!(BNScriptingInstanceCallbacks, context) - 0usize];
7475 ["Offset of field: BNScriptingInstanceCallbacks::destroyInstance"]
7476 [::std::mem::offset_of!(BNScriptingInstanceCallbacks, destroyInstance) - 8usize];
7477 ["Offset of field: BNScriptingInstanceCallbacks::externalRefTaken"]
7478 [::std::mem::offset_of!(BNScriptingInstanceCallbacks, externalRefTaken) - 16usize];
7479 ["Offset of field: BNScriptingInstanceCallbacks::externalRefReleased"]
7480 [::std::mem::offset_of!(BNScriptingInstanceCallbacks, externalRefReleased) - 24usize];
7481 ["Offset of field: BNScriptingInstanceCallbacks::executeScriptInput"]
7482 [::std::mem::offset_of!(BNScriptingInstanceCallbacks, executeScriptInput) - 32usize];
7483 ["Offset of field: BNScriptingInstanceCallbacks::executeScriptInputFromFilename"][::std::mem::offset_of!(
7484 BNScriptingInstanceCallbacks,
7485 executeScriptInputFromFilename
7486 ) - 40usize];
7487 ["Offset of field: BNScriptingInstanceCallbacks::cancelScriptInput"]
7488 [::std::mem::offset_of!(BNScriptingInstanceCallbacks, cancelScriptInput) - 48usize];
7489 ["Offset of field: BNScriptingInstanceCallbacks::releaseBinaryView"]
7490 [::std::mem::offset_of!(BNScriptingInstanceCallbacks, releaseBinaryView) - 56usize];
7491 ["Offset of field: BNScriptingInstanceCallbacks::setCurrentBinaryView"]
7492 [::std::mem::offset_of!(BNScriptingInstanceCallbacks, setCurrentBinaryView) - 64usize];
7493 ["Offset of field: BNScriptingInstanceCallbacks::setCurrentFunction"]
7494 [::std::mem::offset_of!(BNScriptingInstanceCallbacks, setCurrentFunction) - 72usize];
7495 ["Offset of field: BNScriptingInstanceCallbacks::setCurrentBasicBlock"]
7496 [::std::mem::offset_of!(BNScriptingInstanceCallbacks, setCurrentBasicBlock) - 80usize];
7497 ["Offset of field: BNScriptingInstanceCallbacks::setCurrentAddress"]
7498 [::std::mem::offset_of!(BNScriptingInstanceCallbacks, setCurrentAddress) - 88usize];
7499 ["Offset of field: BNScriptingInstanceCallbacks::setCurrentSelection"]
7500 [::std::mem::offset_of!(BNScriptingInstanceCallbacks, setCurrentSelection) - 96usize];
7501 ["Offset of field: BNScriptingInstanceCallbacks::completeInput"]
7502 [::std::mem::offset_of!(BNScriptingInstanceCallbacks, completeInput) - 104usize];
7503 ["Offset of field: BNScriptingInstanceCallbacks::stop"]
7504 [::std::mem::offset_of!(BNScriptingInstanceCallbacks, stop) - 112usize];
7505};
7506impl Default for BNScriptingInstanceCallbacks {
7507 fn default() -> Self {
7508 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7509 unsafe {
7510 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7511 s.assume_init()
7512 }
7513 }
7514}
7515#[repr(C)]
7516#[derive(Debug, Copy, Clone)]
7517pub struct BNScriptingProviderCallbacks {
7518 pub context: *mut ::std::os::raw::c_void,
7519 pub createInstance: ::std::option::Option<
7520 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> *mut BNScriptingInstance,
7521 >,
7522 pub loadModule: ::std::option::Option<
7523 unsafe extern "C" fn(
7524 ctxt: *mut ::std::os::raw::c_void,
7525 repoPath: *const ::std::os::raw::c_char,
7526 pluginPath: *const ::std::os::raw::c_char,
7527 force: bool,
7528 ) -> bool,
7529 >,
7530 pub installModules: ::std::option::Option<
7531 unsafe extern "C" fn(
7532 ctxt: *mut ::std::os::raw::c_void,
7533 modules: *const ::std::os::raw::c_char,
7534 ) -> bool,
7535 >,
7536}
7537#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7538const _: () = {
7539 ["Size of BNScriptingProviderCallbacks"]
7540 [::std::mem::size_of::<BNScriptingProviderCallbacks>() - 32usize];
7541 ["Alignment of BNScriptingProviderCallbacks"]
7542 [::std::mem::align_of::<BNScriptingProviderCallbacks>() - 8usize];
7543 ["Offset of field: BNScriptingProviderCallbacks::context"]
7544 [::std::mem::offset_of!(BNScriptingProviderCallbacks, context) - 0usize];
7545 ["Offset of field: BNScriptingProviderCallbacks::createInstance"]
7546 [::std::mem::offset_of!(BNScriptingProviderCallbacks, createInstance) - 8usize];
7547 ["Offset of field: BNScriptingProviderCallbacks::loadModule"]
7548 [::std::mem::offset_of!(BNScriptingProviderCallbacks, loadModule) - 16usize];
7549 ["Offset of field: BNScriptingProviderCallbacks::installModules"]
7550 [::std::mem::offset_of!(BNScriptingProviderCallbacks, installModules) - 24usize];
7551};
7552impl Default for BNScriptingProviderCallbacks {
7553 fn default() -> Self {
7554 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7555 unsafe {
7556 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7557 s.assume_init()
7558 }
7559 }
7560}
7561#[repr(C)]
7562#[derive(Debug, Copy, Clone)]
7563pub struct BNScriptingOutputListener {
7564 pub context: *mut ::std::os::raw::c_void,
7565 pub output: ::std::option::Option<
7566 unsafe extern "C" fn(
7567 ctxt: *mut ::std::os::raw::c_void,
7568 text: *const ::std::os::raw::c_char,
7569 ),
7570 >,
7571 pub warning: ::std::option::Option<
7572 unsafe extern "C" fn(
7573 ctxt: *mut ::std::os::raw::c_void,
7574 text: *const ::std::os::raw::c_char,
7575 ),
7576 >,
7577 pub error: ::std::option::Option<
7578 unsafe extern "C" fn(
7579 ctxt: *mut ::std::os::raw::c_void,
7580 text: *const ::std::os::raw::c_char,
7581 ),
7582 >,
7583 pub inputReadyStateChanged: ::std::option::Option<
7584 unsafe extern "C" fn(
7585 ctxt: *mut ::std::os::raw::c_void,
7586 state: BNScriptingProviderInputReadyState,
7587 ),
7588 >,
7589}
7590#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7591const _: () = {
7592 ["Size of BNScriptingOutputListener"]
7593 [::std::mem::size_of::<BNScriptingOutputListener>() - 40usize];
7594 ["Alignment of BNScriptingOutputListener"]
7595 [::std::mem::align_of::<BNScriptingOutputListener>() - 8usize];
7596 ["Offset of field: BNScriptingOutputListener::context"]
7597 [::std::mem::offset_of!(BNScriptingOutputListener, context) - 0usize];
7598 ["Offset of field: BNScriptingOutputListener::output"]
7599 [::std::mem::offset_of!(BNScriptingOutputListener, output) - 8usize];
7600 ["Offset of field: BNScriptingOutputListener::warning"]
7601 [::std::mem::offset_of!(BNScriptingOutputListener, warning) - 16usize];
7602 ["Offset of field: BNScriptingOutputListener::error"]
7603 [::std::mem::offset_of!(BNScriptingOutputListener, error) - 24usize];
7604 ["Offset of field: BNScriptingOutputListener::inputReadyStateChanged"]
7605 [::std::mem::offset_of!(BNScriptingOutputListener, inputReadyStateChanged) - 32usize];
7606};
7607impl Default for BNScriptingOutputListener {
7608 fn default() -> Self {
7609 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7610 unsafe {
7611 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7612 s.assume_init()
7613 }
7614 }
7615}
7616#[repr(C)]
7617#[derive(Debug, Copy, Clone)]
7618pub struct BNMainThreadCallbacks {
7619 pub context: *mut ::std::os::raw::c_void,
7620 pub addAction: ::std::option::Option<
7621 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, action: *mut BNMainThreadAction),
7622 >,
7623}
7624#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7625const _: () = {
7626 ["Size of BNMainThreadCallbacks"][::std::mem::size_of::<BNMainThreadCallbacks>() - 16usize];
7627 ["Alignment of BNMainThreadCallbacks"]
7628 [::std::mem::align_of::<BNMainThreadCallbacks>() - 8usize];
7629 ["Offset of field: BNMainThreadCallbacks::context"]
7630 [::std::mem::offset_of!(BNMainThreadCallbacks, context) - 0usize];
7631 ["Offset of field: BNMainThreadCallbacks::addAction"]
7632 [::std::mem::offset_of!(BNMainThreadCallbacks, addAction) - 8usize];
7633};
7634impl Default for BNMainThreadCallbacks {
7635 fn default() -> Self {
7636 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7637 unsafe {
7638 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7639 s.assume_init()
7640 }
7641 }
7642}
7643#[repr(C)]
7644#[derive(Copy, Clone)]
7645pub struct BNTypeParserCallbacks {
7646 pub context: *mut ::std::os::raw::c_void,
7647 pub getOptionText: ::std::option::Option<
7648 unsafe extern "C" fn(
7649 ctxt: *mut ::std::os::raw::c_void,
7650 option: BNTypeParserOption,
7651 value: *const ::std::os::raw::c_char,
7652 result: *mut *mut ::std::os::raw::c_char,
7653 ) -> bool,
7654 >,
7655 pub preprocessSource: ::std::option::Option<
7656 unsafe extern "C" fn(
7657 ctxt: *mut ::std::os::raw::c_void,
7658 source: *const ::std::os::raw::c_char,
7659 fileName: *const ::std::os::raw::c_char,
7660 platform: *mut BNPlatform,
7661 existingTypes: *mut BNTypeContainer,
7662 options: *const *const ::std::os::raw::c_char,
7663 optionCount: usize,
7664 includeDirs: *const *const ::std::os::raw::c_char,
7665 includeDirCount: usize,
7666 output: *mut *mut ::std::os::raw::c_char,
7667 errors: *mut *mut BNTypeParserError,
7668 errorCount: *mut usize,
7669 ) -> bool,
7670 >,
7671 pub parseTypesFromSource: ::std::option::Option<
7672 unsafe extern "C" fn(
7673 ctxt: *mut ::std::os::raw::c_void,
7674 source: *const ::std::os::raw::c_char,
7675 fileName: *const ::std::os::raw::c_char,
7676 platform: *mut BNPlatform,
7677 existingTypes: *mut BNTypeContainer,
7678 options: *const *const ::std::os::raw::c_char,
7679 optionCount: usize,
7680 includeDirs: *const *const ::std::os::raw::c_char,
7681 includeDirCount: usize,
7682 autoTypeSource: *const ::std::os::raw::c_char,
7683 result: *mut BNTypeParserResult,
7684 errors: *mut *mut BNTypeParserError,
7685 errorCount: *mut usize,
7686 ) -> bool,
7687 >,
7688 pub parseTypeString: ::std::option::Option<
7689 unsafe extern "C" fn(
7690 ctxt: *mut ::std::os::raw::c_void,
7691 source: *const ::std::os::raw::c_char,
7692 platform: *mut BNPlatform,
7693 existingTypes: *mut BNTypeContainer,
7694 result: *mut BNQualifiedNameAndType,
7695 errors: *mut *mut BNTypeParserError,
7696 errorCount: *mut usize,
7697 ) -> bool,
7698 >,
7699 pub freeString: ::std::option::Option<
7700 unsafe extern "C" fn(
7701 ctxt: *mut ::std::os::raw::c_void,
7702 string: *mut ::std::os::raw::c_char,
7703 ),
7704 >,
7705 pub freeResult: ::std::option::Option<
7706 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, result: *mut BNTypeParserResult),
7707 >,
7708 pub freeErrorList: ::std::option::Option<
7709 unsafe extern "C" fn(
7710 ctxt: *mut ::std::os::raw::c_void,
7711 errors: *mut BNTypeParserError,
7712 errorCount: usize,
7713 ),
7714 >,
7715}
7716#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7717const _: () = {
7718 ["Size of BNTypeParserCallbacks"][::std::mem::size_of::<BNTypeParserCallbacks>() - 64usize];
7719 ["Alignment of BNTypeParserCallbacks"]
7720 [::std::mem::align_of::<BNTypeParserCallbacks>() - 8usize];
7721 ["Offset of field: BNTypeParserCallbacks::context"]
7722 [::std::mem::offset_of!(BNTypeParserCallbacks, context) - 0usize];
7723 ["Offset of field: BNTypeParserCallbacks::getOptionText"]
7724 [::std::mem::offset_of!(BNTypeParserCallbacks, getOptionText) - 8usize];
7725 ["Offset of field: BNTypeParserCallbacks::preprocessSource"]
7726 [::std::mem::offset_of!(BNTypeParserCallbacks, preprocessSource) - 16usize];
7727 ["Offset of field: BNTypeParserCallbacks::parseTypesFromSource"]
7728 [::std::mem::offset_of!(BNTypeParserCallbacks, parseTypesFromSource) - 24usize];
7729 ["Offset of field: BNTypeParserCallbacks::parseTypeString"]
7730 [::std::mem::offset_of!(BNTypeParserCallbacks, parseTypeString) - 32usize];
7731 ["Offset of field: BNTypeParserCallbacks::freeString"]
7732 [::std::mem::offset_of!(BNTypeParserCallbacks, freeString) - 40usize];
7733 ["Offset of field: BNTypeParserCallbacks::freeResult"]
7734 [::std::mem::offset_of!(BNTypeParserCallbacks, freeResult) - 48usize];
7735 ["Offset of field: BNTypeParserCallbacks::freeErrorList"]
7736 [::std::mem::offset_of!(BNTypeParserCallbacks, freeErrorList) - 56usize];
7737};
7738impl Default for BNTypeParserCallbacks {
7739 fn default() -> Self {
7740 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7741 unsafe {
7742 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7743 s.assume_init()
7744 }
7745 }
7746}
7747#[repr(C)]
7748#[derive(Debug, Copy, Clone)]
7749pub struct BNTypePrinterCallbacks {
7750 pub context: *mut ::std::os::raw::c_void,
7751 pub getTypeTokens: ::std::option::Option<
7752 unsafe extern "C" fn(
7753 ctxt: *mut ::std::os::raw::c_void,
7754 type_: *mut BNType,
7755 platform: *mut BNPlatform,
7756 name: *mut BNQualifiedName,
7757 baseConfidence: u8,
7758 escaping: BNTokenEscapingType,
7759 result: *mut *mut BNInstructionTextToken,
7760 resultCount: *mut usize,
7761 ) -> bool,
7762 >,
7763 pub getTypeTokensBeforeName: ::std::option::Option<
7764 unsafe extern "C" fn(
7765 ctxt: *mut ::std::os::raw::c_void,
7766 type_: *mut BNType,
7767 platform: *mut BNPlatform,
7768 baseConfidence: u8,
7769 parentType: *mut BNType,
7770 escaping: BNTokenEscapingType,
7771 result: *mut *mut BNInstructionTextToken,
7772 resultCount: *mut usize,
7773 ) -> bool,
7774 >,
7775 pub getTypeTokensAfterName: ::std::option::Option<
7776 unsafe extern "C" fn(
7777 ctxt: *mut ::std::os::raw::c_void,
7778 type_: *mut BNType,
7779 platform: *mut BNPlatform,
7780 baseConfidence: u8,
7781 parentType: *mut BNType,
7782 escaping: BNTokenEscapingType,
7783 result: *mut *mut BNInstructionTextToken,
7784 resultCount: *mut usize,
7785 ) -> bool,
7786 >,
7787 pub getTypeString: ::std::option::Option<
7788 unsafe extern "C" fn(
7789 ctxt: *mut ::std::os::raw::c_void,
7790 type_: *mut BNType,
7791 platform: *mut BNPlatform,
7792 name: *mut BNQualifiedName,
7793 escaping: BNTokenEscapingType,
7794 result: *mut *mut ::std::os::raw::c_char,
7795 ) -> bool,
7796 >,
7797 pub getTypeStringBeforeName: ::std::option::Option<
7798 unsafe extern "C" fn(
7799 ctxt: *mut ::std::os::raw::c_void,
7800 type_: *mut BNType,
7801 platform: *mut BNPlatform,
7802 escaping: BNTokenEscapingType,
7803 result: *mut *mut ::std::os::raw::c_char,
7804 ) -> bool,
7805 >,
7806 pub getTypeStringAfterName: ::std::option::Option<
7807 unsafe extern "C" fn(
7808 ctxt: *mut ::std::os::raw::c_void,
7809 type_: *mut BNType,
7810 platform: *mut BNPlatform,
7811 escaping: BNTokenEscapingType,
7812 result: *mut *mut ::std::os::raw::c_char,
7813 ) -> bool,
7814 >,
7815 pub getTypeLines: ::std::option::Option<
7816 unsafe extern "C" fn(
7817 ctxt: *mut ::std::os::raw::c_void,
7818 type_: *mut BNType,
7819 types: *mut BNTypeContainer,
7820 name: *mut BNQualifiedName,
7821 paddingCols: ::std::os::raw::c_int,
7822 collapsed: bool,
7823 escaping: BNTokenEscapingType,
7824 result: *mut *mut BNTypeDefinitionLine,
7825 resultCount: *mut usize,
7826 ) -> bool,
7827 >,
7828 pub printAllTypes: ::std::option::Option<
7829 unsafe extern "C" fn(
7830 ctxt: *mut ::std::os::raw::c_void,
7831 names: *mut BNQualifiedName,
7832 types: *mut *mut BNType,
7833 typeCount: usize,
7834 data: *mut BNBinaryView,
7835 paddingCols: ::std::os::raw::c_int,
7836 escaping: BNTokenEscapingType,
7837 result: *mut *mut ::std::os::raw::c_char,
7838 ) -> bool,
7839 >,
7840 pub freeTokens: ::std::option::Option<
7841 unsafe extern "C" fn(
7842 ctxt: *mut ::std::os::raw::c_void,
7843 tokens: *mut BNInstructionTextToken,
7844 count: usize,
7845 ),
7846 >,
7847 pub freeString: ::std::option::Option<
7848 unsafe extern "C" fn(
7849 ctxt: *mut ::std::os::raw::c_void,
7850 string: *mut ::std::os::raw::c_char,
7851 ),
7852 >,
7853 pub freeLines: ::std::option::Option<
7854 unsafe extern "C" fn(
7855 ctxt: *mut ::std::os::raw::c_void,
7856 lines: *mut BNTypeDefinitionLine,
7857 count: usize,
7858 ),
7859 >,
7860}
7861#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7862const _: () = {
7863 ["Size of BNTypePrinterCallbacks"][::std::mem::size_of::<BNTypePrinterCallbacks>() - 96usize];
7864 ["Alignment of BNTypePrinterCallbacks"]
7865 [::std::mem::align_of::<BNTypePrinterCallbacks>() - 8usize];
7866 ["Offset of field: BNTypePrinterCallbacks::context"]
7867 [::std::mem::offset_of!(BNTypePrinterCallbacks, context) - 0usize];
7868 ["Offset of field: BNTypePrinterCallbacks::getTypeTokens"]
7869 [::std::mem::offset_of!(BNTypePrinterCallbacks, getTypeTokens) - 8usize];
7870 ["Offset of field: BNTypePrinterCallbacks::getTypeTokensBeforeName"]
7871 [::std::mem::offset_of!(BNTypePrinterCallbacks, getTypeTokensBeforeName) - 16usize];
7872 ["Offset of field: BNTypePrinterCallbacks::getTypeTokensAfterName"]
7873 [::std::mem::offset_of!(BNTypePrinterCallbacks, getTypeTokensAfterName) - 24usize];
7874 ["Offset of field: BNTypePrinterCallbacks::getTypeString"]
7875 [::std::mem::offset_of!(BNTypePrinterCallbacks, getTypeString) - 32usize];
7876 ["Offset of field: BNTypePrinterCallbacks::getTypeStringBeforeName"]
7877 [::std::mem::offset_of!(BNTypePrinterCallbacks, getTypeStringBeforeName) - 40usize];
7878 ["Offset of field: BNTypePrinterCallbacks::getTypeStringAfterName"]
7879 [::std::mem::offset_of!(BNTypePrinterCallbacks, getTypeStringAfterName) - 48usize];
7880 ["Offset of field: BNTypePrinterCallbacks::getTypeLines"]
7881 [::std::mem::offset_of!(BNTypePrinterCallbacks, getTypeLines) - 56usize];
7882 ["Offset of field: BNTypePrinterCallbacks::printAllTypes"]
7883 [::std::mem::offset_of!(BNTypePrinterCallbacks, printAllTypes) - 64usize];
7884 ["Offset of field: BNTypePrinterCallbacks::freeTokens"]
7885 [::std::mem::offset_of!(BNTypePrinterCallbacks, freeTokens) - 72usize];
7886 ["Offset of field: BNTypePrinterCallbacks::freeString"]
7887 [::std::mem::offset_of!(BNTypePrinterCallbacks, freeString) - 80usize];
7888 ["Offset of field: BNTypePrinterCallbacks::freeLines"]
7889 [::std::mem::offset_of!(BNTypePrinterCallbacks, freeLines) - 88usize];
7890};
7891impl Default for BNTypePrinterCallbacks {
7892 fn default() -> Self {
7893 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7894 unsafe {
7895 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7896 s.assume_init()
7897 }
7898 }
7899}
7900#[repr(C)]
7901#[derive(Debug, Default, Copy, Clone)]
7902pub struct BNConstantReference {
7903 pub value: i64,
7904 pub size: usize,
7905 pub pointer: bool,
7906 pub intermediate: bool,
7907}
7908#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7909const _: () = {
7910 ["Size of BNConstantReference"][::std::mem::size_of::<BNConstantReference>() - 24usize];
7911 ["Alignment of BNConstantReference"][::std::mem::align_of::<BNConstantReference>() - 8usize];
7912 ["Offset of field: BNConstantReference::value"]
7913 [::std::mem::offset_of!(BNConstantReference, value) - 0usize];
7914 ["Offset of field: BNConstantReference::size"]
7915 [::std::mem::offset_of!(BNConstantReference, size) - 8usize];
7916 ["Offset of field: BNConstantReference::pointer"]
7917 [::std::mem::offset_of!(BNConstantReference, pointer) - 16usize];
7918 ["Offset of field: BNConstantReference::intermediate"]
7919 [::std::mem::offset_of!(BNConstantReference, intermediate) - 17usize];
7920};
7921#[repr(C)]
7922#[derive(Debug, Copy, Clone)]
7923pub struct BNMetadataValueStore {
7924 pub size: usize,
7925 pub keys: *mut *mut ::std::os::raw::c_char,
7926 pub values: *mut *mut BNMetadata,
7927}
7928#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7929const _: () = {
7930 ["Size of BNMetadataValueStore"][::std::mem::size_of::<BNMetadataValueStore>() - 24usize];
7931 ["Alignment of BNMetadataValueStore"][::std::mem::align_of::<BNMetadataValueStore>() - 8usize];
7932 ["Offset of field: BNMetadataValueStore::size"]
7933 [::std::mem::offset_of!(BNMetadataValueStore, size) - 0usize];
7934 ["Offset of field: BNMetadataValueStore::keys"]
7935 [::std::mem::offset_of!(BNMetadataValueStore, keys) - 8usize];
7936 ["Offset of field: BNMetadataValueStore::values"]
7937 [::std::mem::offset_of!(BNMetadataValueStore, values) - 16usize];
7938};
7939impl Default for BNMetadataValueStore {
7940 fn default() -> Self {
7941 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7942 unsafe {
7943 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7944 s.assume_init()
7945 }
7946 }
7947}
7948#[repr(u32)]
7949#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
7950pub enum BNSaveOption {
7951 RemoveUndoData = 0,
7952 TrimSnapshots = 1,
7953 PurgeOriginalFilenamePath = 2,
7954}
7955#[repr(u32)]
7956#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
7957pub enum BNMessageBoxIcon {
7958 InformationIcon = 0,
7959 QuestionIcon = 1,
7960 WarningIcon = 2,
7961 ErrorIcon = 3,
7962}
7963#[repr(u32)]
7964#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
7965pub enum BNMessageBoxButtonSet {
7966 OKButtonSet = 0,
7967 YesNoButtonSet = 1,
7968 YesNoCancelButtonSet = 2,
7969}
7970#[repr(u32)]
7971#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
7972pub enum BNMessageBoxButtonResult {
7973 NoButton = 0,
7974 YesButton = 1,
7975 OKButton = 2,
7976 CancelButton = 3,
7977}
7978#[repr(u32)]
7979#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
7980pub enum BNFormInputFieldType {
7981 LabelFormField = 0,
7982 SeparatorFormField = 1,
7983 TextLineFormField = 2,
7984 MultilineTextFormField = 3,
7985 IntegerFormField = 4,
7986 AddressFormField = 5,
7987 ChoiceFormField = 6,
7988 OpenFileNameFormField = 7,
7989 SaveFileNameFormField = 8,
7990 DirectoryNameFormField = 9,
7991 CheckboxFormField = 10,
7992}
7993#[repr(C)]
7994#[derive(Debug, Copy, Clone)]
7995pub struct BNFormInputField {
7996 pub type_: BNFormInputFieldType,
7997 pub prompt: *const ::std::os::raw::c_char,
7998 #[doc = " For AddressFormField"]
7999 pub view: *mut BNBinaryView,
8000 #[doc = " For AddressFormField"]
8001 pub currentAddress: u64,
8002 #[doc = " For ChoiceFormField"]
8003 pub choices: *mut *const ::std::os::raw::c_char,
8004 #[doc = " For ChoiceFormField"]
8005 pub count: usize,
8006 #[doc = " For OpenFileNameFormField, SaveFileNameFormField"]
8007 pub ext: *const ::std::os::raw::c_char,
8008 #[doc = " For SaveFileNameFormField"]
8009 pub defaultName: *const ::std::os::raw::c_char,
8010 pub intResult: i64,
8011 pub addressResult: u64,
8012 pub stringResult: *mut ::std::os::raw::c_char,
8013 pub indexResult: usize,
8014 pub hasDefault: bool,
8015 pub intDefault: i64,
8016 pub addressDefault: u64,
8017 pub stringDefault: *const ::std::os::raw::c_char,
8018 pub indexDefault: usize,
8019}
8020#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8021const _: () = {
8022 ["Size of BNFormInputField"][::std::mem::size_of::<BNFormInputField>() - 136usize];
8023 ["Alignment of BNFormInputField"][::std::mem::align_of::<BNFormInputField>() - 8usize];
8024 ["Offset of field: BNFormInputField::type_"]
8025 [::std::mem::offset_of!(BNFormInputField, type_) - 0usize];
8026 ["Offset of field: BNFormInputField::prompt"]
8027 [::std::mem::offset_of!(BNFormInputField, prompt) - 8usize];
8028 ["Offset of field: BNFormInputField::view"]
8029 [::std::mem::offset_of!(BNFormInputField, view) - 16usize];
8030 ["Offset of field: BNFormInputField::currentAddress"]
8031 [::std::mem::offset_of!(BNFormInputField, currentAddress) - 24usize];
8032 ["Offset of field: BNFormInputField::choices"]
8033 [::std::mem::offset_of!(BNFormInputField, choices) - 32usize];
8034 ["Offset of field: BNFormInputField::count"]
8035 [::std::mem::offset_of!(BNFormInputField, count) - 40usize];
8036 ["Offset of field: BNFormInputField::ext"]
8037 [::std::mem::offset_of!(BNFormInputField, ext) - 48usize];
8038 ["Offset of field: BNFormInputField::defaultName"]
8039 [::std::mem::offset_of!(BNFormInputField, defaultName) - 56usize];
8040 ["Offset of field: BNFormInputField::intResult"]
8041 [::std::mem::offset_of!(BNFormInputField, intResult) - 64usize];
8042 ["Offset of field: BNFormInputField::addressResult"]
8043 [::std::mem::offset_of!(BNFormInputField, addressResult) - 72usize];
8044 ["Offset of field: BNFormInputField::stringResult"]
8045 [::std::mem::offset_of!(BNFormInputField, stringResult) - 80usize];
8046 ["Offset of field: BNFormInputField::indexResult"]
8047 [::std::mem::offset_of!(BNFormInputField, indexResult) - 88usize];
8048 ["Offset of field: BNFormInputField::hasDefault"]
8049 [::std::mem::offset_of!(BNFormInputField, hasDefault) - 96usize];
8050 ["Offset of field: BNFormInputField::intDefault"]
8051 [::std::mem::offset_of!(BNFormInputField, intDefault) - 104usize];
8052 ["Offset of field: BNFormInputField::addressDefault"]
8053 [::std::mem::offset_of!(BNFormInputField, addressDefault) - 112usize];
8054 ["Offset of field: BNFormInputField::stringDefault"]
8055 [::std::mem::offset_of!(BNFormInputField, stringDefault) - 120usize];
8056 ["Offset of field: BNFormInputField::indexDefault"]
8057 [::std::mem::offset_of!(BNFormInputField, indexDefault) - 128usize];
8058};
8059impl Default for BNFormInputField {
8060 fn default() -> Self {
8061 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8062 unsafe {
8063 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8064 s.assume_init()
8065 }
8066 }
8067}
8068#[repr(C)]
8069#[derive(Debug, Copy, Clone)]
8070pub struct BNInteractionHandlerCallbacks {
8071 pub context: *mut ::std::os::raw::c_void,
8072 pub showPlainTextReport: ::std::option::Option<
8073 unsafe extern "C" fn(
8074 ctxt: *mut ::std::os::raw::c_void,
8075 view: *mut BNBinaryView,
8076 title: *const ::std::os::raw::c_char,
8077 contents: *const ::std::os::raw::c_char,
8078 ),
8079 >,
8080 pub showMarkdownReport: ::std::option::Option<
8081 unsafe extern "C" fn(
8082 ctxt: *mut ::std::os::raw::c_void,
8083 view: *mut BNBinaryView,
8084 title: *const ::std::os::raw::c_char,
8085 contents: *const ::std::os::raw::c_char,
8086 plaintext: *const ::std::os::raw::c_char,
8087 ),
8088 >,
8089 pub showHTMLReport: ::std::option::Option<
8090 unsafe extern "C" fn(
8091 ctxt: *mut ::std::os::raw::c_void,
8092 view: *mut BNBinaryView,
8093 title: *const ::std::os::raw::c_char,
8094 contents: *const ::std::os::raw::c_char,
8095 plaintext: *const ::std::os::raw::c_char,
8096 ),
8097 >,
8098 pub showGraphReport: ::std::option::Option<
8099 unsafe extern "C" fn(
8100 ctxt: *mut ::std::os::raw::c_void,
8101 view: *mut BNBinaryView,
8102 title: *const ::std::os::raw::c_char,
8103 graph: *mut BNFlowGraph,
8104 ),
8105 >,
8106 pub showReportCollection: ::std::option::Option<
8107 unsafe extern "C" fn(
8108 ctxt: *mut ::std::os::raw::c_void,
8109 title: *const ::std::os::raw::c_char,
8110 reports: *mut BNReportCollection,
8111 ),
8112 >,
8113 pub getTextLineInput: ::std::option::Option<
8114 unsafe extern "C" fn(
8115 ctxt: *mut ::std::os::raw::c_void,
8116 result: *mut *mut ::std::os::raw::c_char,
8117 prompt: *const ::std::os::raw::c_char,
8118 title: *const ::std::os::raw::c_char,
8119 ) -> bool,
8120 >,
8121 pub getIntegerInput: ::std::option::Option<
8122 unsafe extern "C" fn(
8123 ctxt: *mut ::std::os::raw::c_void,
8124 result: *mut i64,
8125 prompt: *const ::std::os::raw::c_char,
8126 title: *const ::std::os::raw::c_char,
8127 ) -> bool,
8128 >,
8129 pub getAddressInput: ::std::option::Option<
8130 unsafe extern "C" fn(
8131 ctxt: *mut ::std::os::raw::c_void,
8132 result: *mut u64,
8133 prompt: *const ::std::os::raw::c_char,
8134 title: *const ::std::os::raw::c_char,
8135 view: *mut BNBinaryView,
8136 currentAddr: u64,
8137 ) -> bool,
8138 >,
8139 pub getChoiceInput: ::std::option::Option<
8140 unsafe extern "C" fn(
8141 ctxt: *mut ::std::os::raw::c_void,
8142 result: *mut usize,
8143 prompt: *const ::std::os::raw::c_char,
8144 title: *const ::std::os::raw::c_char,
8145 choices: *mut *const ::std::os::raw::c_char,
8146 count: usize,
8147 ) -> bool,
8148 >,
8149 pub getLargeChoiceInput: ::std::option::Option<
8150 unsafe extern "C" fn(
8151 ctxt: *mut ::std::os::raw::c_void,
8152 result: *mut usize,
8153 prompt: *const ::std::os::raw::c_char,
8154 title: *const ::std::os::raw::c_char,
8155 choices: *mut *const ::std::os::raw::c_char,
8156 count: usize,
8157 ) -> bool,
8158 >,
8159 pub getOpenFileNameInput: ::std::option::Option<
8160 unsafe extern "C" fn(
8161 ctxt: *mut ::std::os::raw::c_void,
8162 result: *mut *mut ::std::os::raw::c_char,
8163 prompt: *const ::std::os::raw::c_char,
8164 ext: *const ::std::os::raw::c_char,
8165 ) -> bool,
8166 >,
8167 pub getSaveFileNameInput: ::std::option::Option<
8168 unsafe extern "C" fn(
8169 ctxt: *mut ::std::os::raw::c_void,
8170 result: *mut *mut ::std::os::raw::c_char,
8171 prompt: *const ::std::os::raw::c_char,
8172 ext: *const ::std::os::raw::c_char,
8173 defaultName: *const ::std::os::raw::c_char,
8174 ) -> bool,
8175 >,
8176 pub getDirectoryNameInput: ::std::option::Option<
8177 unsafe extern "C" fn(
8178 ctxt: *mut ::std::os::raw::c_void,
8179 result: *mut *mut ::std::os::raw::c_char,
8180 prompt: *const ::std::os::raw::c_char,
8181 defaultName: *const ::std::os::raw::c_char,
8182 ) -> bool,
8183 >,
8184 pub getCheckboxInput: ::std::option::Option<
8185 unsafe extern "C" fn(
8186 ctxt: *mut ::std::os::raw::c_void,
8187 result: *mut i64,
8188 prompt: *const ::std::os::raw::c_char,
8189 title: *const ::std::os::raw::c_char,
8190 defaultChoice: *const i64,
8191 ) -> bool,
8192 >,
8193 pub getFormInput: ::std::option::Option<
8194 unsafe extern "C" fn(
8195 ctxt: *mut ::std::os::raw::c_void,
8196 fields: *mut BNFormInputField,
8197 count: usize,
8198 title: *const ::std::os::raw::c_char,
8199 ) -> bool,
8200 >,
8201 pub showMessageBox: ::std::option::Option<
8202 unsafe extern "C" fn(
8203 ctxt: *mut ::std::os::raw::c_void,
8204 title: *const ::std::os::raw::c_char,
8205 text: *const ::std::os::raw::c_char,
8206 buttons: BNMessageBoxButtonSet,
8207 icon: BNMessageBoxIcon,
8208 ) -> BNMessageBoxButtonResult,
8209 >,
8210 pub openUrl: ::std::option::Option<
8211 unsafe extern "C" fn(
8212 ctxt: *mut ::std::os::raw::c_void,
8213 url: *const ::std::os::raw::c_char,
8214 ) -> bool,
8215 >,
8216 pub runProgressDialog: ::std::option::Option<
8217 unsafe extern "C" fn(
8218 ctxt: *mut ::std::os::raw::c_void,
8219 title: *const ::std::os::raw::c_char,
8220 canCancel: bool,
8221 task: ::std::option::Option<
8222 unsafe extern "C" fn(
8223 taskCtxt: *mut ::std::os::raw::c_void,
8224 progress: BNProgressFunction,
8225 progressCtxt: *mut ::std::os::raw::c_void,
8226 ),
8227 >,
8228 taskCtxt: *mut ::std::os::raw::c_void,
8229 ) -> bool,
8230 >,
8231}
8232#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8233const _: () = {
8234 ["Size of BNInteractionHandlerCallbacks"]
8235 [::std::mem::size_of::<BNInteractionHandlerCallbacks>() - 152usize];
8236 ["Alignment of BNInteractionHandlerCallbacks"]
8237 [::std::mem::align_of::<BNInteractionHandlerCallbacks>() - 8usize];
8238 ["Offset of field: BNInteractionHandlerCallbacks::context"]
8239 [::std::mem::offset_of!(BNInteractionHandlerCallbacks, context) - 0usize];
8240 ["Offset of field: BNInteractionHandlerCallbacks::showPlainTextReport"]
8241 [::std::mem::offset_of!(BNInteractionHandlerCallbacks, showPlainTextReport) - 8usize];
8242 ["Offset of field: BNInteractionHandlerCallbacks::showMarkdownReport"]
8243 [::std::mem::offset_of!(BNInteractionHandlerCallbacks, showMarkdownReport) - 16usize];
8244 ["Offset of field: BNInteractionHandlerCallbacks::showHTMLReport"]
8245 [::std::mem::offset_of!(BNInteractionHandlerCallbacks, showHTMLReport) - 24usize];
8246 ["Offset of field: BNInteractionHandlerCallbacks::showGraphReport"]
8247 [::std::mem::offset_of!(BNInteractionHandlerCallbacks, showGraphReport) - 32usize];
8248 ["Offset of field: BNInteractionHandlerCallbacks::showReportCollection"]
8249 [::std::mem::offset_of!(BNInteractionHandlerCallbacks, showReportCollection) - 40usize];
8250 ["Offset of field: BNInteractionHandlerCallbacks::getTextLineInput"]
8251 [::std::mem::offset_of!(BNInteractionHandlerCallbacks, getTextLineInput) - 48usize];
8252 ["Offset of field: BNInteractionHandlerCallbacks::getIntegerInput"]
8253 [::std::mem::offset_of!(BNInteractionHandlerCallbacks, getIntegerInput) - 56usize];
8254 ["Offset of field: BNInteractionHandlerCallbacks::getAddressInput"]
8255 [::std::mem::offset_of!(BNInteractionHandlerCallbacks, getAddressInput) - 64usize];
8256 ["Offset of field: BNInteractionHandlerCallbacks::getChoiceInput"]
8257 [::std::mem::offset_of!(BNInteractionHandlerCallbacks, getChoiceInput) - 72usize];
8258 ["Offset of field: BNInteractionHandlerCallbacks::getLargeChoiceInput"]
8259 [::std::mem::offset_of!(BNInteractionHandlerCallbacks, getLargeChoiceInput) - 80usize];
8260 ["Offset of field: BNInteractionHandlerCallbacks::getOpenFileNameInput"]
8261 [::std::mem::offset_of!(BNInteractionHandlerCallbacks, getOpenFileNameInput) - 88usize];
8262 ["Offset of field: BNInteractionHandlerCallbacks::getSaveFileNameInput"]
8263 [::std::mem::offset_of!(BNInteractionHandlerCallbacks, getSaveFileNameInput) - 96usize];
8264 ["Offset of field: BNInteractionHandlerCallbacks::getDirectoryNameInput"]
8265 [::std::mem::offset_of!(BNInteractionHandlerCallbacks, getDirectoryNameInput) - 104usize];
8266 ["Offset of field: BNInteractionHandlerCallbacks::getCheckboxInput"]
8267 [::std::mem::offset_of!(BNInteractionHandlerCallbacks, getCheckboxInput) - 112usize];
8268 ["Offset of field: BNInteractionHandlerCallbacks::getFormInput"]
8269 [::std::mem::offset_of!(BNInteractionHandlerCallbacks, getFormInput) - 120usize];
8270 ["Offset of field: BNInteractionHandlerCallbacks::showMessageBox"]
8271 [::std::mem::offset_of!(BNInteractionHandlerCallbacks, showMessageBox) - 128usize];
8272 ["Offset of field: BNInteractionHandlerCallbacks::openUrl"]
8273 [::std::mem::offset_of!(BNInteractionHandlerCallbacks, openUrl) - 136usize];
8274 ["Offset of field: BNInteractionHandlerCallbacks::runProgressDialog"]
8275 [::std::mem::offset_of!(BNInteractionHandlerCallbacks, runProgressDialog) - 144usize];
8276};
8277impl Default for BNInteractionHandlerCallbacks {
8278 fn default() -> Self {
8279 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8280 unsafe {
8281 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8282 s.assume_init()
8283 }
8284 }
8285}
8286#[repr(C)]
8287#[derive(Debug, Copy, Clone)]
8288pub struct BNObjectDestructionCallbacks {
8289 pub context: *mut ::std::os::raw::c_void,
8290 #[doc = " The provided pointers have a reference count of zero. Do not add additional references, doing so\n can lead to a double free. These are provided only for freeing additional state related to the\n objects passed."]
8291 pub destructBinaryView: ::std::option::Option<
8292 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, view: *mut BNBinaryView),
8293 >,
8294 pub destructFileMetadata: ::std::option::Option<
8295 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, file: *mut BNFileMetadata),
8296 >,
8297 pub destructFunction: ::std::option::Option<
8298 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, func: *mut BNFunction),
8299 >,
8300}
8301#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8302const _: () = {
8303 ["Size of BNObjectDestructionCallbacks"]
8304 [::std::mem::size_of::<BNObjectDestructionCallbacks>() - 32usize];
8305 ["Alignment of BNObjectDestructionCallbacks"]
8306 [::std::mem::align_of::<BNObjectDestructionCallbacks>() - 8usize];
8307 ["Offset of field: BNObjectDestructionCallbacks::context"]
8308 [::std::mem::offset_of!(BNObjectDestructionCallbacks, context) - 0usize];
8309 ["Offset of field: BNObjectDestructionCallbacks::destructBinaryView"]
8310 [::std::mem::offset_of!(BNObjectDestructionCallbacks, destructBinaryView) - 8usize];
8311 ["Offset of field: BNObjectDestructionCallbacks::destructFileMetadata"]
8312 [::std::mem::offset_of!(BNObjectDestructionCallbacks, destructFileMetadata) - 16usize];
8313 ["Offset of field: BNObjectDestructionCallbacks::destructFunction"]
8314 [::std::mem::offset_of!(BNObjectDestructionCallbacks, destructFunction) - 24usize];
8315};
8316impl Default for BNObjectDestructionCallbacks {
8317 fn default() -> Self {
8318 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8319 unsafe {
8320 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8321 s.assume_init()
8322 }
8323 }
8324}
8325#[repr(C)]
8326#[derive(Debug, Copy, Clone)]
8327pub struct BNTypeContext {
8328 pub type_: *mut BNType,
8329 pub offset: usize,
8330}
8331#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8332const _: () = {
8333 ["Size of BNTypeContext"][::std::mem::size_of::<BNTypeContext>() - 16usize];
8334 ["Alignment of BNTypeContext"][::std::mem::align_of::<BNTypeContext>() - 8usize];
8335 ["Offset of field: BNTypeContext::type_"]
8336 [::std::mem::offset_of!(BNTypeContext, type_) - 0usize];
8337 ["Offset of field: BNTypeContext::offset"]
8338 [::std::mem::offset_of!(BNTypeContext, offset) - 8usize];
8339};
8340impl Default for BNTypeContext {
8341 fn default() -> Self {
8342 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8343 unsafe {
8344 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8345 s.assume_init()
8346 }
8347 }
8348}
8349#[repr(C)]
8350#[derive(Debug, Copy, Clone)]
8351pub struct BNCustomDataRenderer {
8352 pub context: *mut ::std::os::raw::c_void,
8353 pub freeObject: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
8354 pub isValidForData: ::std::option::Option<
8355 unsafe extern "C" fn(
8356 ctxt: *mut ::std::os::raw::c_void,
8357 view: *mut BNBinaryView,
8358 addr: u64,
8359 type_: *mut BNType,
8360 typeCtx: *mut BNTypeContext,
8361 ctxCount: usize,
8362 ) -> bool,
8363 >,
8364 pub getLinesForData: ::std::option::Option<
8365 unsafe extern "C" fn(
8366 ctxt: *mut ::std::os::raw::c_void,
8367 view: *mut BNBinaryView,
8368 addr: u64,
8369 type_: *mut BNType,
8370 prefix: *const BNInstructionTextToken,
8371 prefixCount: usize,
8372 width: usize,
8373 count: *mut usize,
8374 typeCtx: *mut BNTypeContext,
8375 ctxCount: usize,
8376 language: *const ::std::os::raw::c_char,
8377 ) -> *mut BNDisassemblyTextLine,
8378 >,
8379 pub freeLines: ::std::option::Option<
8380 unsafe extern "C" fn(
8381 ctx: *mut ::std::os::raw::c_void,
8382 lines: *mut BNDisassemblyTextLine,
8383 count: usize,
8384 ),
8385 >,
8386}
8387#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8388const _: () = {
8389 ["Size of BNCustomDataRenderer"][::std::mem::size_of::<BNCustomDataRenderer>() - 40usize];
8390 ["Alignment of BNCustomDataRenderer"][::std::mem::align_of::<BNCustomDataRenderer>() - 8usize];
8391 ["Offset of field: BNCustomDataRenderer::context"]
8392 [::std::mem::offset_of!(BNCustomDataRenderer, context) - 0usize];
8393 ["Offset of field: BNCustomDataRenderer::freeObject"]
8394 [::std::mem::offset_of!(BNCustomDataRenderer, freeObject) - 8usize];
8395 ["Offset of field: BNCustomDataRenderer::isValidForData"]
8396 [::std::mem::offset_of!(BNCustomDataRenderer, isValidForData) - 16usize];
8397 ["Offset of field: BNCustomDataRenderer::getLinesForData"]
8398 [::std::mem::offset_of!(BNCustomDataRenderer, getLinesForData) - 24usize];
8399 ["Offset of field: BNCustomDataRenderer::freeLines"]
8400 [::std::mem::offset_of!(BNCustomDataRenderer, freeLines) - 32usize];
8401};
8402impl Default for BNCustomDataRenderer {
8403 fn default() -> Self {
8404 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8405 unsafe {
8406 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8407 s.assume_init()
8408 }
8409 }
8410}
8411#[repr(u32)]
8412#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
8413pub enum BNSectionSemantics {
8414 DefaultSectionSemantics = 0,
8415 ReadOnlyCodeSectionSemantics = 1,
8416 ReadOnlyDataSectionSemantics = 2,
8417 ReadWriteDataSectionSemantics = 3,
8418 ExternalSectionSemantics = 4,
8419}
8420#[repr(C)]
8421#[derive(Debug, Default, Copy, Clone)]
8422pub struct BNAddressRange {
8423 pub start: u64,
8424 pub end: u64,
8425}
8426#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8427const _: () = {
8428 ["Size of BNAddressRange"][::std::mem::size_of::<BNAddressRange>() - 16usize];
8429 ["Alignment of BNAddressRange"][::std::mem::align_of::<BNAddressRange>() - 8usize];
8430 ["Offset of field: BNAddressRange::start"]
8431 [::std::mem::offset_of!(BNAddressRange, start) - 0usize];
8432 ["Offset of field: BNAddressRange::end"][::std::mem::offset_of!(BNAddressRange, end) - 8usize];
8433};
8434#[repr(C)]
8435#[derive(Debug, Copy, Clone)]
8436pub struct BNSystemCallInfo {
8437 pub number: u32,
8438 pub name: BNQualifiedName,
8439 pub type_: *mut BNType,
8440}
8441#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8442const _: () = {
8443 ["Size of BNSystemCallInfo"][::std::mem::size_of::<BNSystemCallInfo>() - 40usize];
8444 ["Alignment of BNSystemCallInfo"][::std::mem::align_of::<BNSystemCallInfo>() - 8usize];
8445 ["Offset of field: BNSystemCallInfo::number"]
8446 [::std::mem::offset_of!(BNSystemCallInfo, number) - 0usize];
8447 ["Offset of field: BNSystemCallInfo::name"]
8448 [::std::mem::offset_of!(BNSystemCallInfo, name) - 8usize];
8449 ["Offset of field: BNSystemCallInfo::type_"]
8450 [::std::mem::offset_of!(BNSystemCallInfo, type_) - 32usize];
8451};
8452impl Default for BNSystemCallInfo {
8453 fn default() -> Self {
8454 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8455 unsafe {
8456 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8457 s.assume_init()
8458 }
8459 }
8460}
8461#[repr(u32)]
8462#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
8463pub enum BNILBranchDependence {
8464 NotBranchDependent = 0,
8465 TrueBranchDependent = 1,
8466 FalseBranchDependent = 2,
8467}
8468#[repr(C)]
8469#[derive(Debug, Copy, Clone)]
8470pub struct BNILBranchInstructionAndDependence {
8471 pub branch: usize,
8472 pub dependence: BNILBranchDependence,
8473}
8474#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8475const _: () = {
8476 ["Size of BNILBranchInstructionAndDependence"]
8477 [::std::mem::size_of::<BNILBranchInstructionAndDependence>() - 16usize];
8478 ["Alignment of BNILBranchInstructionAndDependence"]
8479 [::std::mem::align_of::<BNILBranchInstructionAndDependence>() - 8usize];
8480 ["Offset of field: BNILBranchInstructionAndDependence::branch"]
8481 [::std::mem::offset_of!(BNILBranchInstructionAndDependence, branch) - 0usize];
8482 ["Offset of field: BNILBranchInstructionAndDependence::dependence"]
8483 [::std::mem::offset_of!(BNILBranchInstructionAndDependence, dependence) - 8usize];
8484};
8485impl Default for BNILBranchInstructionAndDependence {
8486 fn default() -> Self {
8487 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8488 unsafe {
8489 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8490 s.assume_init()
8491 }
8492 }
8493}
8494#[repr(C)]
8495#[derive(Debug, Copy, Clone)]
8496pub struct BNPerformanceInfo {
8497 pub name: *mut ::std::os::raw::c_char,
8498 pub seconds: f64,
8499}
8500#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8501const _: () = {
8502 ["Size of BNPerformanceInfo"][::std::mem::size_of::<BNPerformanceInfo>() - 16usize];
8503 ["Alignment of BNPerformanceInfo"][::std::mem::align_of::<BNPerformanceInfo>() - 8usize];
8504 ["Offset of field: BNPerformanceInfo::name"]
8505 [::std::mem::offset_of!(BNPerformanceInfo, name) - 0usize];
8506 ["Offset of field: BNPerformanceInfo::seconds"]
8507 [::std::mem::offset_of!(BNPerformanceInfo, seconds) - 8usize];
8508};
8509impl Default for BNPerformanceInfo {
8510 fn default() -> Self {
8511 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8512 unsafe {
8513 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8514 s.assume_init()
8515 }
8516 }
8517}
8518#[repr(C)]
8519#[derive(Debug, Copy, Clone)]
8520pub struct BNMemoryUsageInfo {
8521 pub name: *mut ::std::os::raw::c_char,
8522 pub value: u64,
8523}
8524#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8525const _: () = {
8526 ["Size of BNMemoryUsageInfo"][::std::mem::size_of::<BNMemoryUsageInfo>() - 16usize];
8527 ["Alignment of BNMemoryUsageInfo"][::std::mem::align_of::<BNMemoryUsageInfo>() - 8usize];
8528 ["Offset of field: BNMemoryUsageInfo::name"]
8529 [::std::mem::offset_of!(BNMemoryUsageInfo, name) - 0usize];
8530 ["Offset of field: BNMemoryUsageInfo::value"]
8531 [::std::mem::offset_of!(BNMemoryUsageInfo, value) - 8usize];
8532};
8533impl Default for BNMemoryUsageInfo {
8534 fn default() -> Self {
8535 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8536 unsafe {
8537 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8538 s.assume_init()
8539 }
8540 }
8541}
8542#[repr(u32)]
8543#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
8544pub enum BNMetadataType {
8545 InvalidDataType = 0,
8546 BooleanDataType = 1,
8547 StringDataType = 2,
8548 UnsignedIntegerDataType = 3,
8549 SignedIntegerDataType = 4,
8550 DoubleDataType = 5,
8551 RawDataType = 6,
8552 KeyValueDataType = 7,
8553 ArrayDataType = 8,
8554}
8555#[repr(C)]
8556#[derive(Debug, Default, Copy, Clone)]
8557pub struct BNRegisterStackAdjustment {
8558 pub regStack: u32,
8559 pub adjustment: i32,
8560 pub confidence: u8,
8561}
8562#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8563const _: () = {
8564 ["Size of BNRegisterStackAdjustment"]
8565 [::std::mem::size_of::<BNRegisterStackAdjustment>() - 12usize];
8566 ["Alignment of BNRegisterStackAdjustment"]
8567 [::std::mem::align_of::<BNRegisterStackAdjustment>() - 4usize];
8568 ["Offset of field: BNRegisterStackAdjustment::regStack"]
8569 [::std::mem::offset_of!(BNRegisterStackAdjustment, regStack) - 0usize];
8570 ["Offset of field: BNRegisterStackAdjustment::adjustment"]
8571 [::std::mem::offset_of!(BNRegisterStackAdjustment, adjustment) - 4usize];
8572 ["Offset of field: BNRegisterStackAdjustment::confidence"]
8573 [::std::mem::offset_of!(BNRegisterStackAdjustment, confidence) - 8usize];
8574};
8575#[repr(u32)]
8576#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
8577pub enum BNReportType {
8578 PlainTextReportType = 0,
8579 MarkdownReportType = 1,
8580 HTMLReportType = 2,
8581 FlowGraphReportType = 3,
8582}
8583#[repr(C)]
8584#[derive(Debug, Copy, Clone)]
8585pub struct BNCustomFlowGraph {
8586 pub context: *mut ::std::os::raw::c_void,
8587 pub prepareForLayout:
8588 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
8589 pub populateNodes:
8590 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
8591 pub completeLayout:
8592 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
8593 pub update: ::std::option::Option<
8594 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> *mut BNFlowGraph,
8595 >,
8596 pub freeObject: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
8597 pub externalRefTaken:
8598 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
8599 pub externalRefReleased:
8600 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
8601}
8602#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8603const _: () = {
8604 ["Size of BNCustomFlowGraph"][::std::mem::size_of::<BNCustomFlowGraph>() - 64usize];
8605 ["Alignment of BNCustomFlowGraph"][::std::mem::align_of::<BNCustomFlowGraph>() - 8usize];
8606 ["Offset of field: BNCustomFlowGraph::context"]
8607 [::std::mem::offset_of!(BNCustomFlowGraph, context) - 0usize];
8608 ["Offset of field: BNCustomFlowGraph::prepareForLayout"]
8609 [::std::mem::offset_of!(BNCustomFlowGraph, prepareForLayout) - 8usize];
8610 ["Offset of field: BNCustomFlowGraph::populateNodes"]
8611 [::std::mem::offset_of!(BNCustomFlowGraph, populateNodes) - 16usize];
8612 ["Offset of field: BNCustomFlowGraph::completeLayout"]
8613 [::std::mem::offset_of!(BNCustomFlowGraph, completeLayout) - 24usize];
8614 ["Offset of field: BNCustomFlowGraph::update"]
8615 [::std::mem::offset_of!(BNCustomFlowGraph, update) - 32usize];
8616 ["Offset of field: BNCustomFlowGraph::freeObject"]
8617 [::std::mem::offset_of!(BNCustomFlowGraph, freeObject) - 40usize];
8618 ["Offset of field: BNCustomFlowGraph::externalRefTaken"]
8619 [::std::mem::offset_of!(BNCustomFlowGraph, externalRefTaken) - 48usize];
8620 ["Offset of field: BNCustomFlowGraph::externalRefReleased"]
8621 [::std::mem::offset_of!(BNCustomFlowGraph, externalRefReleased) - 56usize];
8622};
8623impl Default for BNCustomFlowGraph {
8624 fn default() -> Self {
8625 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8626 unsafe {
8627 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8628 s.assume_init()
8629 }
8630 }
8631}
8632#[repr(C)]
8633#[derive(Debug, Copy, Clone)]
8634pub struct BNCustomFlowGraphLayout {
8635 pub context: *mut ::std::os::raw::c_void,
8636 pub layout: ::std::option::Option<
8637 unsafe extern "C" fn(
8638 ctxt: *mut ::std::os::raw::c_void,
8639 graph: *mut BNFlowGraph,
8640 nodes: *mut *mut BNFlowGraphNode,
8641 nodeCount: usize,
8642 ) -> bool,
8643 >,
8644}
8645#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8646const _: () = {
8647 ["Size of BNCustomFlowGraphLayout"][::std::mem::size_of::<BNCustomFlowGraphLayout>() - 16usize];
8648 ["Alignment of BNCustomFlowGraphLayout"]
8649 [::std::mem::align_of::<BNCustomFlowGraphLayout>() - 8usize];
8650 ["Offset of field: BNCustomFlowGraphLayout::context"]
8651 [::std::mem::offset_of!(BNCustomFlowGraphLayout, context) - 0usize];
8652 ["Offset of field: BNCustomFlowGraphLayout::layout"]
8653 [::std::mem::offset_of!(BNCustomFlowGraphLayout, layout) - 8usize];
8654};
8655impl Default for BNCustomFlowGraphLayout {
8656 fn default() -> Self {
8657 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8658 unsafe {
8659 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8660 s.assume_init()
8661 }
8662 }
8663}
8664#[repr(C)]
8665#[derive(Debug, Default, Copy, Clone)]
8666pub struct BNRange {
8667 pub start: u64,
8668 pub end: u64,
8669}
8670#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8671const _: () = {
8672 ["Size of BNRange"][::std::mem::size_of::<BNRange>() - 16usize];
8673 ["Alignment of BNRange"][::std::mem::align_of::<BNRange>() - 8usize];
8674 ["Offset of field: BNRange::start"][::std::mem::offset_of!(BNRange, start) - 0usize];
8675 ["Offset of field: BNRange::end"][::std::mem::offset_of!(BNRange, end) - 8usize];
8676};
8677#[repr(u32)]
8678#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
8679pub enum BNAnalysisSkipReason {
8680 NoSkipReason = 0,
8681 AlwaysSkipReason = 1,
8682 ExceedFunctionSizeSkipReason = 2,
8683 ExceedFunctionAnalysisTimeSkipReason = 3,
8684 ExceedFunctionUpdateCountSkipReason = 4,
8685 NewAutoFunctionAnalysisSuppressedReason = 5,
8686 BasicAnalysisSkipReason = 6,
8687 IntermediateAnalysisSkipReason = 7,
8688 AnalysisPipelineSuspendedReason = 8,
8689}
8690#[repr(u32)]
8691#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
8692pub enum BNSettingsScope {
8693 SettingsInvalidScope = 0,
8694 SettingsAutoScope = 1,
8695 SettingsDefaultScope = 2,
8696 SettingsUserScope = 4,
8697 SettingsProjectScope = 8,
8698 SettingsResourceScope = 16,
8699}
8700#[repr(u32)]
8701#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
8702pub enum BNLinearViewObjectIdentifierType {
8703 SingleLinearViewObject = 0,
8704 AddressLinearViewObject = 1,
8705 AddressRangeLinearViewObject = 2,
8706}
8707#[repr(C)]
8708#[derive(Debug, Copy, Clone)]
8709pub struct BNLinearViewObjectIdentifier {
8710 pub name: *mut ::std::os::raw::c_char,
8711 pub type_: BNLinearViewObjectIdentifierType,
8712 pub start: u64,
8713 pub end: u64,
8714}
8715#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8716const _: () = {
8717 ["Size of BNLinearViewObjectIdentifier"]
8718 [::std::mem::size_of::<BNLinearViewObjectIdentifier>() - 32usize];
8719 ["Alignment of BNLinearViewObjectIdentifier"]
8720 [::std::mem::align_of::<BNLinearViewObjectIdentifier>() - 8usize];
8721 ["Offset of field: BNLinearViewObjectIdentifier::name"]
8722 [::std::mem::offset_of!(BNLinearViewObjectIdentifier, name) - 0usize];
8723 ["Offset of field: BNLinearViewObjectIdentifier::type_"]
8724 [::std::mem::offset_of!(BNLinearViewObjectIdentifier, type_) - 8usize];
8725 ["Offset of field: BNLinearViewObjectIdentifier::start"]
8726 [::std::mem::offset_of!(BNLinearViewObjectIdentifier, start) - 16usize];
8727 ["Offset of field: BNLinearViewObjectIdentifier::end"]
8728 [::std::mem::offset_of!(BNLinearViewObjectIdentifier, end) - 24usize];
8729};
8730impl Default for BNLinearViewObjectIdentifier {
8731 fn default() -> Self {
8732 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8733 unsafe {
8734 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8735 s.assume_init()
8736 }
8737 }
8738}
8739#[repr(u32)]
8740#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
8741pub enum BNBinaryViewEventType {
8742 BinaryViewFinalizationEvent = 0,
8743 BinaryViewInitialAnalysisCompletionEvent = 1,
8744}
8745#[repr(u32)]
8746#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
8747pub enum BNDeadStoreElimination {
8748 DefaultDeadStoreElimination = 0,
8749 PreventDeadStoreElimination = 1,
8750 AllowDeadStoreElimination = 2,
8751}
8752#[repr(u32)]
8753#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
8754pub enum BNExprFolding {
8755 DefaultExprFolding = 0,
8756 PreventExprFolding = 1,
8757 AllowExprFolding = 2,
8758}
8759#[repr(u32)]
8760#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
8761pub enum BNEarlyReturn {
8762 DefaultEarlyReturn = 0,
8763 PreventEarlyReturn = 1,
8764 SmallestSideEarlyReturn = 2,
8765 TrueSideEarlyReturn = 3,
8766 FalseSideEarlyReturn = 4,
8767}
8768#[repr(u32)]
8769#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
8770pub enum BNSwitchRecovery {
8771 DefaultSwitchRecovery = 0,
8772 PreventSwitchRecovery = 1,
8773 AllowSwitchRecovery = 2,
8774}
8775#[repr(C)]
8776#[derive(Debug, Copy, Clone)]
8777pub struct BNDebugFunctionInfo {
8778 pub shortName: *mut ::std::os::raw::c_char,
8779 pub fullName: *mut ::std::os::raw::c_char,
8780 pub rawName: *mut ::std::os::raw::c_char,
8781 pub address: u64,
8782 pub type_: *mut BNType,
8783 pub platform: *mut BNPlatform,
8784 pub components: *mut *mut ::std::os::raw::c_char,
8785 pub componentN: usize,
8786 pub localVariables: *mut BNVariableNameAndType,
8787 pub localVariableN: usize,
8788}
8789#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8790const _: () = {
8791 ["Size of BNDebugFunctionInfo"][::std::mem::size_of::<BNDebugFunctionInfo>() - 80usize];
8792 ["Alignment of BNDebugFunctionInfo"][::std::mem::align_of::<BNDebugFunctionInfo>() - 8usize];
8793 ["Offset of field: BNDebugFunctionInfo::shortName"]
8794 [::std::mem::offset_of!(BNDebugFunctionInfo, shortName) - 0usize];
8795 ["Offset of field: BNDebugFunctionInfo::fullName"]
8796 [::std::mem::offset_of!(BNDebugFunctionInfo, fullName) - 8usize];
8797 ["Offset of field: BNDebugFunctionInfo::rawName"]
8798 [::std::mem::offset_of!(BNDebugFunctionInfo, rawName) - 16usize];
8799 ["Offset of field: BNDebugFunctionInfo::address"]
8800 [::std::mem::offset_of!(BNDebugFunctionInfo, address) - 24usize];
8801 ["Offset of field: BNDebugFunctionInfo::type_"]
8802 [::std::mem::offset_of!(BNDebugFunctionInfo, type_) - 32usize];
8803 ["Offset of field: BNDebugFunctionInfo::platform"]
8804 [::std::mem::offset_of!(BNDebugFunctionInfo, platform) - 40usize];
8805 ["Offset of field: BNDebugFunctionInfo::components"]
8806 [::std::mem::offset_of!(BNDebugFunctionInfo, components) - 48usize];
8807 ["Offset of field: BNDebugFunctionInfo::componentN"]
8808 [::std::mem::offset_of!(BNDebugFunctionInfo, componentN) - 56usize];
8809 ["Offset of field: BNDebugFunctionInfo::localVariables"]
8810 [::std::mem::offset_of!(BNDebugFunctionInfo, localVariables) - 64usize];
8811 ["Offset of field: BNDebugFunctionInfo::localVariableN"]
8812 [::std::mem::offset_of!(BNDebugFunctionInfo, localVariableN) - 72usize];
8813};
8814impl Default for BNDebugFunctionInfo {
8815 fn default() -> Self {
8816 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8817 unsafe {
8818 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8819 s.assume_init()
8820 }
8821 }
8822}
8823#[repr(C)]
8824#[derive(Debug, Copy, Clone)]
8825pub struct BNSecretsProviderCallbacks {
8826 pub context: *mut ::std::os::raw::c_void,
8827 pub hasData: ::std::option::Option<
8828 unsafe extern "C" fn(
8829 ctxt: *mut ::std::os::raw::c_void,
8830 key: *const ::std::os::raw::c_char,
8831 ) -> bool,
8832 >,
8833 pub getData: ::std::option::Option<
8834 unsafe extern "C" fn(
8835 ctxt: *mut ::std::os::raw::c_void,
8836 key: *const ::std::os::raw::c_char,
8837 ) -> *mut ::std::os::raw::c_char,
8838 >,
8839 pub storeData: ::std::option::Option<
8840 unsafe extern "C" fn(
8841 ctxt: *mut ::std::os::raw::c_void,
8842 key: *const ::std::os::raw::c_char,
8843 data: *const ::std::os::raw::c_char,
8844 ) -> bool,
8845 >,
8846 pub deleteData: ::std::option::Option<
8847 unsafe extern "C" fn(
8848 ctxt: *mut ::std::os::raw::c_void,
8849 key: *const ::std::os::raw::c_char,
8850 ) -> bool,
8851 >,
8852}
8853#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8854const _: () = {
8855 ["Size of BNSecretsProviderCallbacks"]
8856 [::std::mem::size_of::<BNSecretsProviderCallbacks>() - 40usize];
8857 ["Alignment of BNSecretsProviderCallbacks"]
8858 [::std::mem::align_of::<BNSecretsProviderCallbacks>() - 8usize];
8859 ["Offset of field: BNSecretsProviderCallbacks::context"]
8860 [::std::mem::offset_of!(BNSecretsProviderCallbacks, context) - 0usize];
8861 ["Offset of field: BNSecretsProviderCallbacks::hasData"]
8862 [::std::mem::offset_of!(BNSecretsProviderCallbacks, hasData) - 8usize];
8863 ["Offset of field: BNSecretsProviderCallbacks::getData"]
8864 [::std::mem::offset_of!(BNSecretsProviderCallbacks, getData) - 16usize];
8865 ["Offset of field: BNSecretsProviderCallbacks::storeData"]
8866 [::std::mem::offset_of!(BNSecretsProviderCallbacks, storeData) - 24usize];
8867 ["Offset of field: BNSecretsProviderCallbacks::deleteData"]
8868 [::std::mem::offset_of!(BNSecretsProviderCallbacks, deleteData) - 32usize];
8869};
8870impl Default for BNSecretsProviderCallbacks {
8871 fn default() -> Self {
8872 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8873 unsafe {
8874 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8875 s.assume_init()
8876 }
8877 }
8878}
8879#[repr(C)]
8880#[derive(Debug, Copy, Clone)]
8881pub struct BNMergedVariable {
8882 pub target: BNVariable,
8883 pub sources: *mut BNVariable,
8884 pub sourceCount: usize,
8885}
8886#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8887const _: () = {
8888 ["Size of BNMergedVariable"][::std::mem::size_of::<BNMergedVariable>() - 32usize];
8889 ["Alignment of BNMergedVariable"][::std::mem::align_of::<BNMergedVariable>() - 8usize];
8890 ["Offset of field: BNMergedVariable::target"]
8891 [::std::mem::offset_of!(BNMergedVariable, target) - 0usize];
8892 ["Offset of field: BNMergedVariable::sources"]
8893 [::std::mem::offset_of!(BNMergedVariable, sources) - 16usize];
8894 ["Offset of field: BNMergedVariable::sourceCount"]
8895 [::std::mem::offset_of!(BNMergedVariable, sourceCount) - 24usize];
8896};
8897impl Default for BNMergedVariable {
8898 fn default() -> Self {
8899 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8900 unsafe {
8901 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8902 s.assume_init()
8903 }
8904 }
8905}
8906#[repr(C)]
8907#[derive(Debug, Copy, Clone)]
8908pub struct BNEnterpriseServerCallbacks {
8909 pub context: *mut ::std::os::raw::c_void,
8910 pub licenseStatusChanged: ::std::option::Option<
8911 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, stillValid: bool),
8912 >,
8913}
8914#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8915const _: () = {
8916 ["Size of BNEnterpriseServerCallbacks"]
8917 [::std::mem::size_of::<BNEnterpriseServerCallbacks>() - 16usize];
8918 ["Alignment of BNEnterpriseServerCallbacks"]
8919 [::std::mem::align_of::<BNEnterpriseServerCallbacks>() - 8usize];
8920 ["Offset of field: BNEnterpriseServerCallbacks::context"]
8921 [::std::mem::offset_of!(BNEnterpriseServerCallbacks, context) - 0usize];
8922 ["Offset of field: BNEnterpriseServerCallbacks::licenseStatusChanged"]
8923 [::std::mem::offset_of!(BNEnterpriseServerCallbacks, licenseStatusChanged) - 8usize];
8924};
8925impl Default for BNEnterpriseServerCallbacks {
8926 fn default() -> Self {
8927 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8928 unsafe {
8929 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8930 s.assume_init()
8931 }
8932 }
8933}
8934#[repr(C)]
8935#[derive(Debug, Copy, Clone)]
8936pub struct BNTypeArchiveNotification {
8937 pub context: *mut ::std::os::raw::c_void,
8938 pub typeAdded: ::std::option::Option<
8939 unsafe extern "C" fn(
8940 ctxt: *mut ::std::os::raw::c_void,
8941 archive: *mut BNTypeArchive,
8942 id: *const ::std::os::raw::c_char,
8943 definition: *mut BNType,
8944 ),
8945 >,
8946 pub typeUpdated: ::std::option::Option<
8947 unsafe extern "C" fn(
8948 ctxt: *mut ::std::os::raw::c_void,
8949 archive: *mut BNTypeArchive,
8950 id: *const ::std::os::raw::c_char,
8951 oldDefinition: *mut BNType,
8952 newDefinition: *mut BNType,
8953 ),
8954 >,
8955 pub typeRenamed: ::std::option::Option<
8956 unsafe extern "C" fn(
8957 ctxt: *mut ::std::os::raw::c_void,
8958 archive: *mut BNTypeArchive,
8959 id: *const ::std::os::raw::c_char,
8960 oldName: *const BNQualifiedName,
8961 newName: *const BNQualifiedName,
8962 ),
8963 >,
8964 pub typeDeleted: ::std::option::Option<
8965 unsafe extern "C" fn(
8966 ctxt: *mut ::std::os::raw::c_void,
8967 archive: *mut BNTypeArchive,
8968 id: *const ::std::os::raw::c_char,
8969 definition: *mut BNType,
8970 ),
8971 >,
8972}
8973#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8974const _: () = {
8975 ["Size of BNTypeArchiveNotification"]
8976 [::std::mem::size_of::<BNTypeArchiveNotification>() - 40usize];
8977 ["Alignment of BNTypeArchiveNotification"]
8978 [::std::mem::align_of::<BNTypeArchiveNotification>() - 8usize];
8979 ["Offset of field: BNTypeArchiveNotification::context"]
8980 [::std::mem::offset_of!(BNTypeArchiveNotification, context) - 0usize];
8981 ["Offset of field: BNTypeArchiveNotification::typeAdded"]
8982 [::std::mem::offset_of!(BNTypeArchiveNotification, typeAdded) - 8usize];
8983 ["Offset of field: BNTypeArchiveNotification::typeUpdated"]
8984 [::std::mem::offset_of!(BNTypeArchiveNotification, typeUpdated) - 16usize];
8985 ["Offset of field: BNTypeArchiveNotification::typeRenamed"]
8986 [::std::mem::offset_of!(BNTypeArchiveNotification, typeRenamed) - 24usize];
8987 ["Offset of field: BNTypeArchiveNotification::typeDeleted"]
8988 [::std::mem::offset_of!(BNTypeArchiveNotification, typeDeleted) - 32usize];
8989};
8990impl Default for BNTypeArchiveNotification {
8991 fn default() -> Self {
8992 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8993 unsafe {
8994 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8995 s.assume_init()
8996 }
8997 }
8998}
8999#[repr(u32)]
9000#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9001pub enum BNTypeContainerType {
9002 AnalysisTypeContainerType = 0,
9003 AnalysisAutoTypeContainerType = 1,
9004 AnalysisUserTypeContainerType = 2,
9005 TypeLibraryTypeContainerType = 3,
9006 TypeArchiveTypeContainerType = 4,
9007 DebugInfoTypeContainerType = 5,
9008 PlatformTypeContainerType = 6,
9009 EmptyTypeContainerType = 7,
9010 OtherTypeContainerType = 8,
9011}
9012#[repr(u32)]
9013#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9014pub enum BNSyncStatus {
9015 NotSyncedSyncStatus = 0,
9016 NoChangesSyncStatus = 1,
9017 UnknownSyncStatus = 2,
9018 CanPushSyncStatus = 3,
9019 CanPullSyncStatus = 4,
9020 CanPushAndPullSyncStatus = 5,
9021 ConflictSyncStatus = 6,
9022}
9023#[repr(u32)]
9024#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9025pub enum BNBaseAddressDetectionPOISetting {
9026 POIAnalysisStringsOnly = 0,
9027 POIAnalysisFunctionsOnly = 1,
9028 POIAnalysisAll = 2,
9029}
9030#[repr(u32)]
9031#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9032pub enum BNBaseAddressDetectionPOIType {
9033 POIString = 0,
9034 POIFunction = 1,
9035 POIDataVariable = 2,
9036 POIFileStart = 3,
9037 POIFileEnd = 4,
9038}
9039#[repr(u32)]
9040#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9041pub enum BNBaseAddressDetectionConfidence {
9042 NoConfidence = 0,
9043 LowConfidence = 1,
9044 HighConfidence = 2,
9045}
9046#[repr(C)]
9047#[derive(Debug, Copy, Clone)]
9048pub struct BNBaseAddressDetectionSettings {
9049 pub Architecture: *const ::std::os::raw::c_char,
9050 pub Analysis: *const ::std::os::raw::c_char,
9051 pub MinStrlen: u32,
9052 pub Alignment: u32,
9053 pub LowerBoundary: u64,
9054 pub UpperBoundary: u64,
9055 pub POIAnalysis: BNBaseAddressDetectionPOISetting,
9056 pub MaxPointersPerCluster: u32,
9057}
9058#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9059const _: () = {
9060 ["Size of BNBaseAddressDetectionSettings"]
9061 [::std::mem::size_of::<BNBaseAddressDetectionSettings>() - 48usize];
9062 ["Alignment of BNBaseAddressDetectionSettings"]
9063 [::std::mem::align_of::<BNBaseAddressDetectionSettings>() - 8usize];
9064 ["Offset of field: BNBaseAddressDetectionSettings::Architecture"]
9065 [::std::mem::offset_of!(BNBaseAddressDetectionSettings, Architecture) - 0usize];
9066 ["Offset of field: BNBaseAddressDetectionSettings::Analysis"]
9067 [::std::mem::offset_of!(BNBaseAddressDetectionSettings, Analysis) - 8usize];
9068 ["Offset of field: BNBaseAddressDetectionSettings::MinStrlen"]
9069 [::std::mem::offset_of!(BNBaseAddressDetectionSettings, MinStrlen) - 16usize];
9070 ["Offset of field: BNBaseAddressDetectionSettings::Alignment"]
9071 [::std::mem::offset_of!(BNBaseAddressDetectionSettings, Alignment) - 20usize];
9072 ["Offset of field: BNBaseAddressDetectionSettings::LowerBoundary"]
9073 [::std::mem::offset_of!(BNBaseAddressDetectionSettings, LowerBoundary) - 24usize];
9074 ["Offset of field: BNBaseAddressDetectionSettings::UpperBoundary"]
9075 [::std::mem::offset_of!(BNBaseAddressDetectionSettings, UpperBoundary) - 32usize];
9076 ["Offset of field: BNBaseAddressDetectionSettings::POIAnalysis"]
9077 [::std::mem::offset_of!(BNBaseAddressDetectionSettings, POIAnalysis) - 40usize];
9078 ["Offset of field: BNBaseAddressDetectionSettings::MaxPointersPerCluster"]
9079 [::std::mem::offset_of!(BNBaseAddressDetectionSettings, MaxPointersPerCluster) - 44usize];
9080};
9081impl Default for BNBaseAddressDetectionSettings {
9082 fn default() -> Self {
9083 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9084 unsafe {
9085 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9086 s.assume_init()
9087 }
9088 }
9089}
9090#[repr(C)]
9091#[derive(Debug, Copy, Clone)]
9092pub struct BNBaseAddressDetectionReason {
9093 pub Pointer: u64,
9094 pub POIOffset: u64,
9095 pub POIType: BNBaseAddressDetectionPOIType,
9096}
9097#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9098const _: () = {
9099 ["Size of BNBaseAddressDetectionReason"]
9100 [::std::mem::size_of::<BNBaseAddressDetectionReason>() - 24usize];
9101 ["Alignment of BNBaseAddressDetectionReason"]
9102 [::std::mem::align_of::<BNBaseAddressDetectionReason>() - 8usize];
9103 ["Offset of field: BNBaseAddressDetectionReason::Pointer"]
9104 [::std::mem::offset_of!(BNBaseAddressDetectionReason, Pointer) - 0usize];
9105 ["Offset of field: BNBaseAddressDetectionReason::POIOffset"]
9106 [::std::mem::offset_of!(BNBaseAddressDetectionReason, POIOffset) - 8usize];
9107 ["Offset of field: BNBaseAddressDetectionReason::POIType"]
9108 [::std::mem::offset_of!(BNBaseAddressDetectionReason, POIType) - 16usize];
9109};
9110impl Default for BNBaseAddressDetectionReason {
9111 fn default() -> Self {
9112 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9113 unsafe {
9114 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9115 s.assume_init()
9116 }
9117 }
9118}
9119#[repr(C)]
9120#[derive(Debug, Default, Copy, Clone)]
9121pub struct BNBaseAddressDetectionScore {
9122 pub Score: usize,
9123 pub BaseAddress: u64,
9124}
9125#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9126const _: () = {
9127 ["Size of BNBaseAddressDetectionScore"]
9128 [::std::mem::size_of::<BNBaseAddressDetectionScore>() - 16usize];
9129 ["Alignment of BNBaseAddressDetectionScore"]
9130 [::std::mem::align_of::<BNBaseAddressDetectionScore>() - 8usize];
9131 ["Offset of field: BNBaseAddressDetectionScore::Score"]
9132 [::std::mem::offset_of!(BNBaseAddressDetectionScore, Score) - 0usize];
9133 ["Offset of field: BNBaseAddressDetectionScore::BaseAddress"]
9134 [::std::mem::offset_of!(BNBaseAddressDetectionScore, BaseAddress) - 8usize];
9135};
9136#[repr(u32)]
9137#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9138pub enum BNCollaborationPermissionLevel {
9139 AdminPermission = 1,
9140 EditPermission = 2,
9141 ViewPermission = 3,
9142}
9143#[repr(u32)]
9144#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9145pub enum BNRemoteFileType {
9146 #[doc = " \"RW\""]
9147 RawDataFileType = 0,
9148 #[doc = " \"BV\""]
9149 BinaryViewAnalysisFileType = 1,
9150 #[doc = " \"TA\""]
9151 TypeArchiveFileType = 2,
9152 #[doc = " Others"]
9153 UnknownFileType = 3,
9154}
9155#[repr(u32)]
9156#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9157pub enum BNMergeConflictDataType {
9158 TextConflictDataType = 0,
9159 JsonConflictDataType = 1,
9160 BinaryConflictDataType = 2,
9161}
9162#[repr(C)]
9163#[derive(Debug, Copy, Clone)]
9164pub struct BNAnalysisMergeConflictSplitterCallbacks {
9165 pub context: *mut ::std::os::raw::c_void,
9166 pub getName: ::std::option::Option<
9167 unsafe extern "C" fn(context: *mut ::std::os::raw::c_void) -> *mut ::std::os::raw::c_char,
9168 >,
9169 pub reset: ::std::option::Option<unsafe extern "C" fn(context: *mut ::std::os::raw::c_void)>,
9170 pub finished: ::std::option::Option<unsafe extern "C" fn(context: *mut ::std::os::raw::c_void)>,
9171 pub canSplit: ::std::option::Option<
9172 unsafe extern "C" fn(
9173 context: *mut ::std::os::raw::c_void,
9174 key: *const ::std::os::raw::c_char,
9175 conflict: *const BNAnalysisMergeConflict,
9176 ) -> bool,
9177 >,
9178 pub split: ::std::option::Option<
9179 unsafe extern "C" fn(
9180 context: *mut ::std::os::raw::c_void,
9181 originalKey: *const ::std::os::raw::c_char,
9182 originalConflict: *const BNAnalysisMergeConflict,
9183 result: *mut BNKeyValueStore,
9184 newKeys: *mut *mut *mut ::std::os::raw::c_char,
9185 newConflicts: *mut *mut *mut BNAnalysisMergeConflict,
9186 newCount: *mut usize,
9187 ) -> bool,
9188 >,
9189 pub freeName: ::std::option::Option<
9190 unsafe extern "C" fn(
9191 context: *mut ::std::os::raw::c_void,
9192 name: *mut ::std::os::raw::c_char,
9193 ),
9194 >,
9195 pub freeKeyList: ::std::option::Option<
9196 unsafe extern "C" fn(
9197 context: *mut ::std::os::raw::c_void,
9198 keyList: *mut *mut ::std::os::raw::c_char,
9199 count: usize,
9200 ),
9201 >,
9202 pub freeConflictList: ::std::option::Option<
9203 unsafe extern "C" fn(
9204 context: *mut ::std::os::raw::c_void,
9205 conflictList: *mut *mut BNAnalysisMergeConflict,
9206 count: usize,
9207 ),
9208 >,
9209}
9210#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9211const _: () = {
9212 ["Size of BNAnalysisMergeConflictSplitterCallbacks"]
9213 [::std::mem::size_of::<BNAnalysisMergeConflictSplitterCallbacks>() - 72usize];
9214 ["Alignment of BNAnalysisMergeConflictSplitterCallbacks"]
9215 [::std::mem::align_of::<BNAnalysisMergeConflictSplitterCallbacks>() - 8usize];
9216 ["Offset of field: BNAnalysisMergeConflictSplitterCallbacks::context"]
9217 [::std::mem::offset_of!(BNAnalysisMergeConflictSplitterCallbacks, context) - 0usize];
9218 ["Offset of field: BNAnalysisMergeConflictSplitterCallbacks::getName"]
9219 [::std::mem::offset_of!(BNAnalysisMergeConflictSplitterCallbacks, getName) - 8usize];
9220 ["Offset of field: BNAnalysisMergeConflictSplitterCallbacks::reset"]
9221 [::std::mem::offset_of!(BNAnalysisMergeConflictSplitterCallbacks, reset) - 16usize];
9222 ["Offset of field: BNAnalysisMergeConflictSplitterCallbacks::finished"]
9223 [::std::mem::offset_of!(BNAnalysisMergeConflictSplitterCallbacks, finished) - 24usize];
9224 ["Offset of field: BNAnalysisMergeConflictSplitterCallbacks::canSplit"]
9225 [::std::mem::offset_of!(BNAnalysisMergeConflictSplitterCallbacks, canSplit) - 32usize];
9226 ["Offset of field: BNAnalysisMergeConflictSplitterCallbacks::split"]
9227 [::std::mem::offset_of!(BNAnalysisMergeConflictSplitterCallbacks, split) - 40usize];
9228 ["Offset of field: BNAnalysisMergeConflictSplitterCallbacks::freeName"]
9229 [::std::mem::offset_of!(BNAnalysisMergeConflictSplitterCallbacks, freeName) - 48usize];
9230 ["Offset of field: BNAnalysisMergeConflictSplitterCallbacks::freeKeyList"]
9231 [::std::mem::offset_of!(BNAnalysisMergeConflictSplitterCallbacks, freeKeyList) - 56usize];
9232 ["Offset of field: BNAnalysisMergeConflictSplitterCallbacks::freeConflictList"][::std::mem::offset_of!(
9233 BNAnalysisMergeConflictSplitterCallbacks,
9234 freeConflictList
9235 ) - 64usize];
9236};
9237impl Default for BNAnalysisMergeConflictSplitterCallbacks {
9238 fn default() -> Self {
9239 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9240 unsafe {
9241 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9242 s.assume_init()
9243 }
9244 }
9245}
9246#[repr(C)]
9247#[derive(Debug, Copy, Clone)]
9248pub struct BNDemanglerCallbacks {
9249 pub context: *mut ::std::os::raw::c_void,
9250 pub isMangledString: ::std::option::Option<
9251 unsafe extern "C" fn(
9252 ctxt: *mut ::std::os::raw::c_void,
9253 name: *const ::std::os::raw::c_char,
9254 ) -> bool,
9255 >,
9256 pub demangle: ::std::option::Option<
9257 unsafe extern "C" fn(
9258 ctxt: *mut ::std::os::raw::c_void,
9259 arch: *mut BNArchitecture,
9260 name: *const ::std::os::raw::c_char,
9261 outType: *mut *mut BNType,
9262 outVarName: *mut BNQualifiedName,
9263 view: *mut BNBinaryView,
9264 ) -> bool,
9265 >,
9266 pub freeVarName: ::std::option::Option<
9267 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, name: *mut BNQualifiedName),
9268 >,
9269}
9270#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9271const _: () = {
9272 ["Size of BNDemanglerCallbacks"][::std::mem::size_of::<BNDemanglerCallbacks>() - 32usize];
9273 ["Alignment of BNDemanglerCallbacks"][::std::mem::align_of::<BNDemanglerCallbacks>() - 8usize];
9274 ["Offset of field: BNDemanglerCallbacks::context"]
9275 [::std::mem::offset_of!(BNDemanglerCallbacks, context) - 0usize];
9276 ["Offset of field: BNDemanglerCallbacks::isMangledString"]
9277 [::std::mem::offset_of!(BNDemanglerCallbacks, isMangledString) - 8usize];
9278 ["Offset of field: BNDemanglerCallbacks::demangle"]
9279 [::std::mem::offset_of!(BNDemanglerCallbacks, demangle) - 16usize];
9280 ["Offset of field: BNDemanglerCallbacks::freeVarName"]
9281 [::std::mem::offset_of!(BNDemanglerCallbacks, freeVarName) - 24usize];
9282};
9283impl Default for BNDemanglerCallbacks {
9284 fn default() -> Self {
9285 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9286 unsafe {
9287 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9288 s.assume_init()
9289 }
9290 }
9291}
9292#[repr(u32)]
9293#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9294pub enum BNScopeType {
9295 OneLineScopeType = 0,
9296 HasSubScopeScopeType = 1,
9297 BlockScopeType = 2,
9298 SwitchScopeType = 3,
9299 CaseScopeType = 4,
9300}
9301#[repr(u32)]
9302#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9303pub enum BNBraceRequirement {
9304 OptionalBraces = 0,
9305 BracesNotAllowed = 1,
9306 BracesAlwaysRequired = 2,
9307}
9308#[repr(C)]
9309#[derive(Debug, Default, Copy, Clone)]
9310pub struct BNTokenEmitterExpr {
9311 pub address: u64,
9312 pub sourceOperand: u32,
9313 pub exprIndex: usize,
9314 pub instrIndex: usize,
9315}
9316#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9317const _: () = {
9318 ["Size of BNTokenEmitterExpr"][::std::mem::size_of::<BNTokenEmitterExpr>() - 32usize];
9319 ["Alignment of BNTokenEmitterExpr"][::std::mem::align_of::<BNTokenEmitterExpr>() - 8usize];
9320 ["Offset of field: BNTokenEmitterExpr::address"]
9321 [::std::mem::offset_of!(BNTokenEmitterExpr, address) - 0usize];
9322 ["Offset of field: BNTokenEmitterExpr::sourceOperand"]
9323 [::std::mem::offset_of!(BNTokenEmitterExpr, sourceOperand) - 8usize];
9324 ["Offset of field: BNTokenEmitterExpr::exprIndex"]
9325 [::std::mem::offset_of!(BNTokenEmitterExpr, exprIndex) - 16usize];
9326 ["Offset of field: BNTokenEmitterExpr::instrIndex"]
9327 [::std::mem::offset_of!(BNTokenEmitterExpr, instrIndex) - 24usize];
9328};
9329#[repr(u32)]
9330#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9331pub enum BNOperatorPrecedence {
9332 TopLevelOperatorPrecedence = 0,
9333 AssignmentOperatorPrecedence = 1,
9334 TernaryOperatorPrecedence = 2,
9335 LogicalOrOperatorPrecedence = 3,
9336 LogicalAndOperatorPrecedence = 4,
9337 BitwiseOrOperatorPrecedence = 5,
9338 BitwiseXorOperatorPrecedence = 6,
9339 BitwiseAndOperatorPrecedence = 7,
9340 EqualityOperatorPrecedence = 8,
9341 CompareOperatorPrecedence = 9,
9342 ShiftOperatorPrecedence = 10,
9343 AddOperatorPrecedence = 11,
9344 SubOperatorPrecedence = 12,
9345 MultiplyOperatorPrecedence = 13,
9346 DivideOperatorPrecedence = 14,
9347 LowUnaryOperatorPrecedence = 15,
9348 UnaryOperatorPrecedence = 16,
9349 HighUnaryOperatorPrecedence = 17,
9350 MemberAndFunctionOperatorPrecedence = 18,
9351 ScopeOperatorPrecedence = 19,
9352}
9353#[repr(u32)]
9354#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9355pub enum BNSymbolDisplayType {
9356 DisplaySymbolOnly = 0,
9357 AddressOfDataSymbols = 1,
9358 DereferenceNonDataSymbols = 2,
9359}
9360#[repr(u32)]
9361#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9362pub enum BNSymbolDisplayResult {
9363 NoSymbolAvailable = 0,
9364 DataSymbolResult = 1,
9365 OtherSymbolResult = 2,
9366}
9367#[repr(C)]
9368#[derive(Debug, Copy, Clone)]
9369pub struct BNCustomLanguageRepresentationFunction {
9370 pub context: *mut ::std::os::raw::c_void,
9371 pub freeObject: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
9372 pub externalRefTaken:
9373 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
9374 pub externalRefReleased:
9375 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
9376 pub initTokenEmitter: ::std::option::Option<
9377 unsafe extern "C" fn(
9378 ctxt: *mut ::std::os::raw::c_void,
9379 tokens: *mut BNHighLevelILTokenEmitter,
9380 ),
9381 >,
9382 pub getExprText: ::std::option::Option<
9383 unsafe extern "C" fn(
9384 ctxt: *mut ::std::os::raw::c_void,
9385 il: *mut BNHighLevelILFunction,
9386 exprIndex: usize,
9387 tokens: *mut BNHighLevelILTokenEmitter,
9388 settings: *mut BNDisassemblySettings,
9389 asFullAst: bool,
9390 precedence: BNOperatorPrecedence,
9391 statement: bool,
9392 ),
9393 >,
9394 pub beginLines: ::std::option::Option<
9395 unsafe extern "C" fn(
9396 ctxt: *mut ::std::os::raw::c_void,
9397 il: *mut BNHighLevelILFunction,
9398 exprIndex: usize,
9399 tokens: *mut BNHighLevelILTokenEmitter,
9400 ),
9401 >,
9402 pub endLines: ::std::option::Option<
9403 unsafe extern "C" fn(
9404 ctxt: *mut ::std::os::raw::c_void,
9405 il: *mut BNHighLevelILFunction,
9406 exprIndex: usize,
9407 tokens: *mut BNHighLevelILTokenEmitter,
9408 ),
9409 >,
9410 pub getCommentStartString: ::std::option::Option<
9411 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> *mut ::std::os::raw::c_char,
9412 >,
9413 pub getCommentEndString: ::std::option::Option<
9414 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> *mut ::std::os::raw::c_char,
9415 >,
9416 pub getAnnotationStartString: ::std::option::Option<
9417 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> *mut ::std::os::raw::c_char,
9418 >,
9419 pub getAnnotationEndString: ::std::option::Option<
9420 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> *mut ::std::os::raw::c_char,
9421 >,
9422}
9423#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9424const _: () = {
9425 ["Size of BNCustomLanguageRepresentationFunction"]
9426 [::std::mem::size_of::<BNCustomLanguageRepresentationFunction>() - 96usize];
9427 ["Alignment of BNCustomLanguageRepresentationFunction"]
9428 [::std::mem::align_of::<BNCustomLanguageRepresentationFunction>() - 8usize];
9429 ["Offset of field: BNCustomLanguageRepresentationFunction::context"]
9430 [::std::mem::offset_of!(BNCustomLanguageRepresentationFunction, context) - 0usize];
9431 ["Offset of field: BNCustomLanguageRepresentationFunction::freeObject"]
9432 [::std::mem::offset_of!(BNCustomLanguageRepresentationFunction, freeObject) - 8usize];
9433 ["Offset of field: BNCustomLanguageRepresentationFunction::externalRefTaken"][::std::mem::offset_of!(
9434 BNCustomLanguageRepresentationFunction,
9435 externalRefTaken
9436 ) - 16usize];
9437 ["Offset of field: BNCustomLanguageRepresentationFunction::externalRefReleased"][::std::mem::offset_of!(
9438 BNCustomLanguageRepresentationFunction,
9439 externalRefReleased
9440 ) - 24usize];
9441 ["Offset of field: BNCustomLanguageRepresentationFunction::initTokenEmitter"][::std::mem::offset_of!(
9442 BNCustomLanguageRepresentationFunction,
9443 initTokenEmitter
9444 ) - 32usize];
9445 ["Offset of field: BNCustomLanguageRepresentationFunction::getExprText"]
9446 [::std::mem::offset_of!(BNCustomLanguageRepresentationFunction, getExprText) - 40usize];
9447 ["Offset of field: BNCustomLanguageRepresentationFunction::beginLines"]
9448 [::std::mem::offset_of!(BNCustomLanguageRepresentationFunction, beginLines) - 48usize];
9449 ["Offset of field: BNCustomLanguageRepresentationFunction::endLines"]
9450 [::std::mem::offset_of!(BNCustomLanguageRepresentationFunction, endLines) - 56usize];
9451 ["Offset of field: BNCustomLanguageRepresentationFunction::getCommentStartString"][::std::mem::offset_of!(
9452 BNCustomLanguageRepresentationFunction,
9453 getCommentStartString
9454 ) - 64usize];
9455 ["Offset of field: BNCustomLanguageRepresentationFunction::getCommentEndString"][::std::mem::offset_of!(
9456 BNCustomLanguageRepresentationFunction,
9457 getCommentEndString
9458 ) - 72usize];
9459 ["Offset of field: BNCustomLanguageRepresentationFunction::getAnnotationStartString"][::std::mem::offset_of!(
9460 BNCustomLanguageRepresentationFunction,
9461 getAnnotationStartString
9462 )
9463 - 80usize];
9464 ["Offset of field: BNCustomLanguageRepresentationFunction::getAnnotationEndString"][::std::mem::offset_of!(
9465 BNCustomLanguageRepresentationFunction,
9466 getAnnotationEndString
9467 )
9468 - 88usize];
9469};
9470impl Default for BNCustomLanguageRepresentationFunction {
9471 fn default() -> Self {
9472 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9473 unsafe {
9474 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9475 s.assume_init()
9476 }
9477 }
9478}
9479#[repr(C)]
9480#[derive(Debug, Copy, Clone)]
9481pub struct BNCustomLanguageRepresentationFunctionType {
9482 pub context: *mut ::std::os::raw::c_void,
9483 pub create: ::std::option::Option<
9484 unsafe extern "C" fn(
9485 ctxt: *mut ::std::os::raw::c_void,
9486 arch: *mut BNArchitecture,
9487 owner: *mut BNFunction,
9488 highLevelIL: *mut BNHighLevelILFunction,
9489 ) -> *mut BNLanguageRepresentationFunction,
9490 >,
9491 pub isValid: ::std::option::Option<
9492 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, view: *mut BNBinaryView) -> bool,
9493 >,
9494 pub getTypePrinter: ::std::option::Option<
9495 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> *mut BNTypePrinter,
9496 >,
9497 pub getTypeParser: ::std::option::Option<
9498 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> *mut BNTypeParser,
9499 >,
9500 pub getLineFormatter: ::std::option::Option<
9501 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> *mut BNLineFormatter,
9502 >,
9503 pub getFunctionTypeTokens: ::std::option::Option<
9504 unsafe extern "C" fn(
9505 ctxt: *mut ::std::os::raw::c_void,
9506 func: *mut BNFunction,
9507 settings: *mut BNDisassemblySettings,
9508 count: *mut usize,
9509 ) -> *mut BNDisassemblyTextLine,
9510 >,
9511 pub freeLines: ::std::option::Option<
9512 unsafe extern "C" fn(
9513 ctxt: *mut ::std::os::raw::c_void,
9514 lines: *mut BNDisassemblyTextLine,
9515 count: usize,
9516 ),
9517 >,
9518}
9519#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9520const _: () = {
9521 ["Size of BNCustomLanguageRepresentationFunctionType"]
9522 [::std::mem::size_of::<BNCustomLanguageRepresentationFunctionType>() - 64usize];
9523 ["Alignment of BNCustomLanguageRepresentationFunctionType"]
9524 [::std::mem::align_of::<BNCustomLanguageRepresentationFunctionType>() - 8usize];
9525 ["Offset of field: BNCustomLanguageRepresentationFunctionType::context"]
9526 [::std::mem::offset_of!(BNCustomLanguageRepresentationFunctionType, context) - 0usize];
9527 ["Offset of field: BNCustomLanguageRepresentationFunctionType::create"]
9528 [::std::mem::offset_of!(BNCustomLanguageRepresentationFunctionType, create) - 8usize];
9529 ["Offset of field: BNCustomLanguageRepresentationFunctionType::isValid"]
9530 [::std::mem::offset_of!(BNCustomLanguageRepresentationFunctionType, isValid) - 16usize];
9531 ["Offset of field: BNCustomLanguageRepresentationFunctionType::getTypePrinter"][::std::mem::offset_of!(
9532 BNCustomLanguageRepresentationFunctionType,
9533 getTypePrinter
9534 ) - 24usize];
9535 ["Offset of field: BNCustomLanguageRepresentationFunctionType::getTypeParser"][::std::mem::offset_of!(
9536 BNCustomLanguageRepresentationFunctionType,
9537 getTypeParser
9538 ) - 32usize];
9539 ["Offset of field: BNCustomLanguageRepresentationFunctionType::getLineFormatter"][::std::mem::offset_of!(
9540 BNCustomLanguageRepresentationFunctionType,
9541 getLineFormatter
9542 ) - 40usize];
9543 ["Offset of field: BNCustomLanguageRepresentationFunctionType::getFunctionTypeTokens"][::std::mem::offset_of!(
9544 BNCustomLanguageRepresentationFunctionType,
9545 getFunctionTypeTokens
9546 )
9547 - 48usize];
9548 ["Offset of field: BNCustomLanguageRepresentationFunctionType::freeLines"]
9549 [::std::mem::offset_of!(BNCustomLanguageRepresentationFunctionType, freeLines) - 56usize];
9550};
9551impl Default for BNCustomLanguageRepresentationFunctionType {
9552 fn default() -> Self {
9553 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9554 unsafe {
9555 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9556 s.assume_init()
9557 }
9558 }
9559}
9560#[repr(u32)]
9561#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9562pub enum BNBuiltinType {
9563 BuiltinNone = 0,
9564 BuiltinMemcpy = 1,
9565 BuiltinMemset = 2,
9566 BuiltinStrncpy = 3,
9567 BuiltinStrcpy = 4,
9568 BuiltinWcscpy = 5,
9569 BuiltinWmemcpy = 6,
9570}
9571#[repr(C)]
9572#[derive(Debug, Default, Copy, Clone)]
9573pub struct BNSegmentInfo {
9574 pub start: u64,
9575 pub length: u64,
9576 pub dataOffset: u64,
9577 pub dataLength: u64,
9578 pub flags: u32,
9579}
9580#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9581const _: () = {
9582 ["Size of BNSegmentInfo"][::std::mem::size_of::<BNSegmentInfo>() - 40usize];
9583 ["Alignment of BNSegmentInfo"][::std::mem::align_of::<BNSegmentInfo>() - 8usize];
9584 ["Offset of field: BNSegmentInfo::start"]
9585 [::std::mem::offset_of!(BNSegmentInfo, start) - 0usize];
9586 ["Offset of field: BNSegmentInfo::length"]
9587 [::std::mem::offset_of!(BNSegmentInfo, length) - 8usize];
9588 ["Offset of field: BNSegmentInfo::dataOffset"]
9589 [::std::mem::offset_of!(BNSegmentInfo, dataOffset) - 16usize];
9590 ["Offset of field: BNSegmentInfo::dataLength"]
9591 [::std::mem::offset_of!(BNSegmentInfo, dataLength) - 24usize];
9592 ["Offset of field: BNSegmentInfo::flags"]
9593 [::std::mem::offset_of!(BNSegmentInfo, flags) - 32usize];
9594};
9595#[repr(C)]
9596#[derive(Debug, Copy, Clone)]
9597pub struct BNSectionInfo {
9598 pub name: *const ::std::os::raw::c_char,
9599 pub start: u64,
9600 pub length: u64,
9601 pub semantics: BNSectionSemantics,
9602 pub type_: *const ::std::os::raw::c_char,
9603 pub align: u64,
9604 pub entrySize: u64,
9605 pub linkedSection: *const ::std::os::raw::c_char,
9606 pub infoSection: *const ::std::os::raw::c_char,
9607 pub infoData: u64,
9608}
9609#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9610const _: () = {
9611 ["Size of BNSectionInfo"][::std::mem::size_of::<BNSectionInfo>() - 80usize];
9612 ["Alignment of BNSectionInfo"][::std::mem::align_of::<BNSectionInfo>() - 8usize];
9613 ["Offset of field: BNSectionInfo::name"][::std::mem::offset_of!(BNSectionInfo, name) - 0usize];
9614 ["Offset of field: BNSectionInfo::start"]
9615 [::std::mem::offset_of!(BNSectionInfo, start) - 8usize];
9616 ["Offset of field: BNSectionInfo::length"]
9617 [::std::mem::offset_of!(BNSectionInfo, length) - 16usize];
9618 ["Offset of field: BNSectionInfo::semantics"]
9619 [::std::mem::offset_of!(BNSectionInfo, semantics) - 24usize];
9620 ["Offset of field: BNSectionInfo::type_"]
9621 [::std::mem::offset_of!(BNSectionInfo, type_) - 32usize];
9622 ["Offset of field: BNSectionInfo::align"]
9623 [::std::mem::offset_of!(BNSectionInfo, align) - 40usize];
9624 ["Offset of field: BNSectionInfo::entrySize"]
9625 [::std::mem::offset_of!(BNSectionInfo, entrySize) - 48usize];
9626 ["Offset of field: BNSectionInfo::linkedSection"]
9627 [::std::mem::offset_of!(BNSectionInfo, linkedSection) - 56usize];
9628 ["Offset of field: BNSectionInfo::infoSection"]
9629 [::std::mem::offset_of!(BNSectionInfo, infoSection) - 64usize];
9630 ["Offset of field: BNSectionInfo::infoData"]
9631 [::std::mem::offset_of!(BNSectionInfo, infoData) - 72usize];
9632};
9633impl Default for BNSectionInfo {
9634 fn default() -> Self {
9635 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9636 unsafe {
9637 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9638 s.assume_init()
9639 }
9640 }
9641}
9642pub type BNCollaborationAnalysisConflictHandler = ::std::option::Option<
9643 unsafe extern "C" fn(
9644 arg1: *mut ::std::os::raw::c_void,
9645 keys: *mut *const ::std::os::raw::c_char,
9646 conflicts: *mut *mut BNAnalysisMergeConflict,
9647 conflictCount: usize,
9648 ) -> bool,
9649>;
9650pub type BNCollaborationNameChangesetFunction = ::std::option::Option<
9651 unsafe extern "C" fn(
9652 arg1: *mut ::std::os::raw::c_void,
9653 arg2: *mut BNCollaborationChangeset,
9654 ) -> bool,
9655>;
9656#[repr(C)]
9657#[derive(Debug, Copy, Clone)]
9658pub struct BNFirmwareNinjaDevice {
9659 pub name: *mut ::std::os::raw::c_char,
9660 pub start: u64,
9661 pub end: u64,
9662 pub info: *mut ::std::os::raw::c_char,
9663}
9664#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9665const _: () = {
9666 ["Size of BNFirmwareNinjaDevice"][::std::mem::size_of::<BNFirmwareNinjaDevice>() - 32usize];
9667 ["Alignment of BNFirmwareNinjaDevice"]
9668 [::std::mem::align_of::<BNFirmwareNinjaDevice>() - 8usize];
9669 ["Offset of field: BNFirmwareNinjaDevice::name"]
9670 [::std::mem::offset_of!(BNFirmwareNinjaDevice, name) - 0usize];
9671 ["Offset of field: BNFirmwareNinjaDevice::start"]
9672 [::std::mem::offset_of!(BNFirmwareNinjaDevice, start) - 8usize];
9673 ["Offset of field: BNFirmwareNinjaDevice::end"]
9674 [::std::mem::offset_of!(BNFirmwareNinjaDevice, end) - 16usize];
9675 ["Offset of field: BNFirmwareNinjaDevice::info"]
9676 [::std::mem::offset_of!(BNFirmwareNinjaDevice, info) - 24usize];
9677};
9678impl Default for BNFirmwareNinjaDevice {
9679 fn default() -> Self {
9680 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9681 unsafe {
9682 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9683 s.assume_init()
9684 }
9685 }
9686}
9687#[repr(u32)]
9688#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9689pub enum BNFirmwareNinjaSectionType {
9690 CodeSectionType = 0,
9691 DataSectionType = 1,
9692 CompressionSectionType = 2,
9693 PaddingSectionType = 3,
9694}
9695#[repr(u32)]
9696#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9697pub enum BNFirmwareNinjaSectionAnalysisMode {
9698 DefaultSectionAnalysisMode = 0,
9699 IgnorePaddingSectionAnalysisMode = 1,
9700 DetectStringsSectionAnalysisMode = 2,
9701}
9702#[repr(C)]
9703#[derive(Debug, Copy, Clone)]
9704pub struct BNFirmwareNinjaSection {
9705 pub type_: BNFirmwareNinjaSectionType,
9706 pub start: u64,
9707 pub end: u64,
9708 pub entropy: f32,
9709}
9710#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9711const _: () = {
9712 ["Size of BNFirmwareNinjaSection"][::std::mem::size_of::<BNFirmwareNinjaSection>() - 32usize];
9713 ["Alignment of BNFirmwareNinjaSection"]
9714 [::std::mem::align_of::<BNFirmwareNinjaSection>() - 8usize];
9715 ["Offset of field: BNFirmwareNinjaSection::type_"]
9716 [::std::mem::offset_of!(BNFirmwareNinjaSection, type_) - 0usize];
9717 ["Offset of field: BNFirmwareNinjaSection::start"]
9718 [::std::mem::offset_of!(BNFirmwareNinjaSection, start) - 8usize];
9719 ["Offset of field: BNFirmwareNinjaSection::end"]
9720 [::std::mem::offset_of!(BNFirmwareNinjaSection, end) - 16usize];
9721 ["Offset of field: BNFirmwareNinjaSection::entropy"]
9722 [::std::mem::offset_of!(BNFirmwareNinjaSection, entropy) - 24usize];
9723};
9724impl Default for BNFirmwareNinjaSection {
9725 fn default() -> Self {
9726 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9727 unsafe {
9728 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9729 s.assume_init()
9730 }
9731 }
9732}
9733#[repr(u32)]
9734#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9735pub enum BNFirmwareNinjaMemoryHeuristic {
9736 NoMemoryHeuristic = 0,
9737 HasReadBarrierMemoryHeuristic = 1,
9738 HasWriteBarrierMemoryHeuristic = 2,
9739 StoreToOOBMemoryMemoryHeuristic = 3,
9740 LoadFromOOBMemoryMemoryHeuristic = 4,
9741 RepeatLoadStoreMemoryHeuristic = 5,
9742 CallParamOOBPointerMemoryHeuristic = 6,
9743}
9744#[repr(u32)]
9745#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9746pub enum BNFirmwareNinjaMemoryAccessType {
9747 NoMemoryAccessType = 0,
9748 ReadMemoryAccessType = 1,
9749 WriteMemoryAccessType = 2,
9750}
9751#[repr(C)]
9752#[derive(Debug, Copy, Clone)]
9753pub struct BNFirmwareNinjaMemoryAccess {
9754 pub instrAddress: u64,
9755 pub memAddress: BNRegisterValue,
9756 pub heuristic: BNFirmwareNinjaMemoryHeuristic,
9757 pub type_: BNFirmwareNinjaMemoryAccessType,
9758 pub value: BNRegisterValue,
9759}
9760#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9761const _: () = {
9762 ["Size of BNFirmwareNinjaMemoryAccess"]
9763 [::std::mem::size_of::<BNFirmwareNinjaMemoryAccess>() - 80usize];
9764 ["Alignment of BNFirmwareNinjaMemoryAccess"]
9765 [::std::mem::align_of::<BNFirmwareNinjaMemoryAccess>() - 8usize];
9766 ["Offset of field: BNFirmwareNinjaMemoryAccess::instrAddress"]
9767 [::std::mem::offset_of!(BNFirmwareNinjaMemoryAccess, instrAddress) - 0usize];
9768 ["Offset of field: BNFirmwareNinjaMemoryAccess::memAddress"]
9769 [::std::mem::offset_of!(BNFirmwareNinjaMemoryAccess, memAddress) - 8usize];
9770 ["Offset of field: BNFirmwareNinjaMemoryAccess::heuristic"]
9771 [::std::mem::offset_of!(BNFirmwareNinjaMemoryAccess, heuristic) - 40usize];
9772 ["Offset of field: BNFirmwareNinjaMemoryAccess::type_"]
9773 [::std::mem::offset_of!(BNFirmwareNinjaMemoryAccess, type_) - 44usize];
9774 ["Offset of field: BNFirmwareNinjaMemoryAccess::value"]
9775 [::std::mem::offset_of!(BNFirmwareNinjaMemoryAccess, value) - 48usize];
9776};
9777impl Default for BNFirmwareNinjaMemoryAccess {
9778 fn default() -> Self {
9779 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9780 unsafe {
9781 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9782 s.assume_init()
9783 }
9784 }
9785}
9786#[repr(C)]
9787#[derive(Debug, Copy, Clone)]
9788pub struct BNFirmwareNinjaFunctionMemoryAccesses {
9789 pub start: u64,
9790 pub count: usize,
9791 pub accesses: *mut *mut BNFirmwareNinjaMemoryAccess,
9792}
9793#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9794const _: () = {
9795 ["Size of BNFirmwareNinjaFunctionMemoryAccesses"]
9796 [::std::mem::size_of::<BNFirmwareNinjaFunctionMemoryAccesses>() - 24usize];
9797 ["Alignment of BNFirmwareNinjaFunctionMemoryAccesses"]
9798 [::std::mem::align_of::<BNFirmwareNinjaFunctionMemoryAccesses>() - 8usize];
9799 ["Offset of field: BNFirmwareNinjaFunctionMemoryAccesses::start"]
9800 [::std::mem::offset_of!(BNFirmwareNinjaFunctionMemoryAccesses, start) - 0usize];
9801 ["Offset of field: BNFirmwareNinjaFunctionMemoryAccesses::count"]
9802 [::std::mem::offset_of!(BNFirmwareNinjaFunctionMemoryAccesses, count) - 8usize];
9803 ["Offset of field: BNFirmwareNinjaFunctionMemoryAccesses::accesses"]
9804 [::std::mem::offset_of!(BNFirmwareNinjaFunctionMemoryAccesses, accesses) - 16usize];
9805};
9806impl Default for BNFirmwareNinjaFunctionMemoryAccesses {
9807 fn default() -> Self {
9808 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9809 unsafe {
9810 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9811 s.assume_init()
9812 }
9813 }
9814}
9815#[repr(C)]
9816#[derive(Debug, Copy, Clone)]
9817pub struct BNFirmwareNinjaDeviceAccesses {
9818 pub name: *mut ::std::os::raw::c_char,
9819 pub total: usize,
9820 pub unique: usize,
9821}
9822#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9823const _: () = {
9824 ["Size of BNFirmwareNinjaDeviceAccesses"]
9825 [::std::mem::size_of::<BNFirmwareNinjaDeviceAccesses>() - 24usize];
9826 ["Alignment of BNFirmwareNinjaDeviceAccesses"]
9827 [::std::mem::align_of::<BNFirmwareNinjaDeviceAccesses>() - 8usize];
9828 ["Offset of field: BNFirmwareNinjaDeviceAccesses::name"]
9829 [::std::mem::offset_of!(BNFirmwareNinjaDeviceAccesses, name) - 0usize];
9830 ["Offset of field: BNFirmwareNinjaDeviceAccesses::total"]
9831 [::std::mem::offset_of!(BNFirmwareNinjaDeviceAccesses, total) - 8usize];
9832 ["Offset of field: BNFirmwareNinjaDeviceAccesses::unique"]
9833 [::std::mem::offset_of!(BNFirmwareNinjaDeviceAccesses, unique) - 16usize];
9834};
9835impl Default for BNFirmwareNinjaDeviceAccesses {
9836 fn default() -> Self {
9837 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9838 unsafe {
9839 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9840 s.assume_init()
9841 }
9842 }
9843}
9844#[repr(C)]
9845#[derive(Debug, Copy, Clone)]
9846pub struct BNLineFormatterSettings {
9847 pub highLevelIL: *mut BNHighLevelILFunction,
9848 pub desiredLineLength: usize,
9849 pub minimumContentLength: usize,
9850 pub tabWidth: usize,
9851 pub maximumAnnotationLength: usize,
9852 pub stringWrappingWidth: usize,
9853 pub languageName: *mut ::std::os::raw::c_char,
9854 pub commentStartString: *mut ::std::os::raw::c_char,
9855 pub commentEndString: *mut ::std::os::raw::c_char,
9856 pub annotationStartString: *mut ::std::os::raw::c_char,
9857 pub annotationEndString: *mut ::std::os::raw::c_char,
9858}
9859#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9860const _: () = {
9861 ["Size of BNLineFormatterSettings"][::std::mem::size_of::<BNLineFormatterSettings>() - 88usize];
9862 ["Alignment of BNLineFormatterSettings"]
9863 [::std::mem::align_of::<BNLineFormatterSettings>() - 8usize];
9864 ["Offset of field: BNLineFormatterSettings::highLevelIL"]
9865 [::std::mem::offset_of!(BNLineFormatterSettings, highLevelIL) - 0usize];
9866 ["Offset of field: BNLineFormatterSettings::desiredLineLength"]
9867 [::std::mem::offset_of!(BNLineFormatterSettings, desiredLineLength) - 8usize];
9868 ["Offset of field: BNLineFormatterSettings::minimumContentLength"]
9869 [::std::mem::offset_of!(BNLineFormatterSettings, minimumContentLength) - 16usize];
9870 ["Offset of field: BNLineFormatterSettings::tabWidth"]
9871 [::std::mem::offset_of!(BNLineFormatterSettings, tabWidth) - 24usize];
9872 ["Offset of field: BNLineFormatterSettings::maximumAnnotationLength"]
9873 [::std::mem::offset_of!(BNLineFormatterSettings, maximumAnnotationLength) - 32usize];
9874 ["Offset of field: BNLineFormatterSettings::stringWrappingWidth"]
9875 [::std::mem::offset_of!(BNLineFormatterSettings, stringWrappingWidth) - 40usize];
9876 ["Offset of field: BNLineFormatterSettings::languageName"]
9877 [::std::mem::offset_of!(BNLineFormatterSettings, languageName) - 48usize];
9878 ["Offset of field: BNLineFormatterSettings::commentStartString"]
9879 [::std::mem::offset_of!(BNLineFormatterSettings, commentStartString) - 56usize];
9880 ["Offset of field: BNLineFormatterSettings::commentEndString"]
9881 [::std::mem::offset_of!(BNLineFormatterSettings, commentEndString) - 64usize];
9882 ["Offset of field: BNLineFormatterSettings::annotationStartString"]
9883 [::std::mem::offset_of!(BNLineFormatterSettings, annotationStartString) - 72usize];
9884 ["Offset of field: BNLineFormatterSettings::annotationEndString"]
9885 [::std::mem::offset_of!(BNLineFormatterSettings, annotationEndString) - 80usize];
9886};
9887impl Default for BNLineFormatterSettings {
9888 fn default() -> Self {
9889 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9890 unsafe {
9891 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9892 s.assume_init()
9893 }
9894 }
9895}
9896#[repr(C)]
9897#[derive(Debug, Copy, Clone)]
9898pub struct BNCustomLineFormatter {
9899 pub context: *mut ::std::os::raw::c_void,
9900 pub formatLines: ::std::option::Option<
9901 unsafe extern "C" fn(
9902 ctxt: *mut ::std::os::raw::c_void,
9903 inLines: *mut BNDisassemblyTextLine,
9904 inCount: usize,
9905 settings: *const BNLineFormatterSettings,
9906 outCount: *mut usize,
9907 ) -> *mut BNDisassemblyTextLine,
9908 >,
9909 pub freeLines: ::std::option::Option<
9910 unsafe extern "C" fn(
9911 ctxt: *mut ::std::os::raw::c_void,
9912 lines: *mut BNDisassemblyTextLine,
9913 count: usize,
9914 ),
9915 >,
9916}
9917#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9918const _: () = {
9919 ["Size of BNCustomLineFormatter"][::std::mem::size_of::<BNCustomLineFormatter>() - 24usize];
9920 ["Alignment of BNCustomLineFormatter"]
9921 [::std::mem::align_of::<BNCustomLineFormatter>() - 8usize];
9922 ["Offset of field: BNCustomLineFormatter::context"]
9923 [::std::mem::offset_of!(BNCustomLineFormatter, context) - 0usize];
9924 ["Offset of field: BNCustomLineFormatter::formatLines"]
9925 [::std::mem::offset_of!(BNCustomLineFormatter, formatLines) - 8usize];
9926 ["Offset of field: BNCustomLineFormatter::freeLines"]
9927 [::std::mem::offset_of!(BNCustomLineFormatter, freeLines) - 16usize];
9928};
9929impl Default for BNCustomLineFormatter {
9930 fn default() -> Self {
9931 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9932 unsafe {
9933 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9934 s.assume_init()
9935 }
9936 }
9937}
9938#[repr(C)]
9939#[derive(Debug, Copy, Clone)]
9940pub struct BNRenderLayerCallbacks {
9941 pub context: *mut ::std::os::raw::c_void,
9942 pub applyToFlowGraph: ::std::option::Option<
9943 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, graph: *mut BNFlowGraph),
9944 >,
9945 pub applyToLinearViewObject: ::std::option::Option<
9946 unsafe extern "C" fn(
9947 ctxt: *mut ::std::os::raw::c_void,
9948 obj: *mut BNLinearViewObject,
9949 prev: *mut BNLinearViewObject,
9950 next: *mut BNLinearViewObject,
9951 inLines: *mut BNLinearDisassemblyLine,
9952 inLineCount: usize,
9953 outLines: *mut *mut BNLinearDisassemblyLine,
9954 outLineCount: *mut usize,
9955 ),
9956 >,
9957 pub freeLines: ::std::option::Option<
9958 unsafe extern "C" fn(
9959 ctxt: *mut ::std::os::raw::c_void,
9960 lines: *mut BNLinearDisassemblyLine,
9961 count: usize,
9962 ),
9963 >,
9964}
9965#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9966const _: () = {
9967 ["Size of BNRenderLayerCallbacks"][::std::mem::size_of::<BNRenderLayerCallbacks>() - 32usize];
9968 ["Alignment of BNRenderLayerCallbacks"]
9969 [::std::mem::align_of::<BNRenderLayerCallbacks>() - 8usize];
9970 ["Offset of field: BNRenderLayerCallbacks::context"]
9971 [::std::mem::offset_of!(BNRenderLayerCallbacks, context) - 0usize];
9972 ["Offset of field: BNRenderLayerCallbacks::applyToFlowGraph"]
9973 [::std::mem::offset_of!(BNRenderLayerCallbacks, applyToFlowGraph) - 8usize];
9974 ["Offset of field: BNRenderLayerCallbacks::applyToLinearViewObject"]
9975 [::std::mem::offset_of!(BNRenderLayerCallbacks, applyToLinearViewObject) - 16usize];
9976 ["Offset of field: BNRenderLayerCallbacks::freeLines"]
9977 [::std::mem::offset_of!(BNRenderLayerCallbacks, freeLines) - 24usize];
9978};
9979impl Default for BNRenderLayerCallbacks {
9980 fn default() -> Self {
9981 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9982 unsafe {
9983 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9984 s.assume_init()
9985 }
9986 }
9987}
9988#[repr(u32)]
9989#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9990pub enum BNRenderLayerDefaultEnableState {
9991 DisabledByDefaultRenderLayerDefaultEnableState = 0,
9992 EnabledByDefaultRenderLayerDefaultEnableState = 1,
9993 AlwaysEnabledRenderLayerDefaultEnableState = 2,
9994}
9995#[repr(C)]
9996#[derive(Debug, Default, Copy, Clone)]
9997pub struct BNExprMapInfo {
9998 pub lowerIndex: usize,
9999 pub higherIndex: usize,
10000 pub mapLowerToHigher: bool,
10001 pub mapHigherToLower: bool,
10002 pub lowerToHigherDirect: bool,
10003 pub higherToLowerDirect: bool,
10004}
10005#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10006const _: () = {
10007 ["Size of BNExprMapInfo"][::std::mem::size_of::<BNExprMapInfo>() - 24usize];
10008 ["Alignment of BNExprMapInfo"][::std::mem::align_of::<BNExprMapInfo>() - 8usize];
10009 ["Offset of field: BNExprMapInfo::lowerIndex"]
10010 [::std::mem::offset_of!(BNExprMapInfo, lowerIndex) - 0usize];
10011 ["Offset of field: BNExprMapInfo::higherIndex"]
10012 [::std::mem::offset_of!(BNExprMapInfo, higherIndex) - 8usize];
10013 ["Offset of field: BNExprMapInfo::mapLowerToHigher"]
10014 [::std::mem::offset_of!(BNExprMapInfo, mapLowerToHigher) - 16usize];
10015 ["Offset of field: BNExprMapInfo::mapHigherToLower"]
10016 [::std::mem::offset_of!(BNExprMapInfo, mapHigherToLower) - 17usize];
10017 ["Offset of field: BNExprMapInfo::lowerToHigherDirect"]
10018 [::std::mem::offset_of!(BNExprMapInfo, lowerToHigherDirect) - 18usize];
10019 ["Offset of field: BNExprMapInfo::higherToLowerDirect"]
10020 [::std::mem::offset_of!(BNExprMapInfo, higherToLowerDirect) - 19usize];
10021};
10022#[repr(C)]
10023#[derive(Debug, Copy, Clone)]
10024pub struct BNAllTypeReferences {
10025 pub codeRefs: *mut BNReferenceSource,
10026 pub codeRefCount: usize,
10027 pub dataRefs: *mut u64,
10028 pub dataRefCount: usize,
10029 pub typeRefs: *mut BNTypeReferenceSource,
10030 pub typeRefCount: usize,
10031}
10032#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10033const _: () = {
10034 ["Size of BNAllTypeReferences"][::std::mem::size_of::<BNAllTypeReferences>() - 48usize];
10035 ["Alignment of BNAllTypeReferences"][::std::mem::align_of::<BNAllTypeReferences>() - 8usize];
10036 ["Offset of field: BNAllTypeReferences::codeRefs"]
10037 [::std::mem::offset_of!(BNAllTypeReferences, codeRefs) - 0usize];
10038 ["Offset of field: BNAllTypeReferences::codeRefCount"]
10039 [::std::mem::offset_of!(BNAllTypeReferences, codeRefCount) - 8usize];
10040 ["Offset of field: BNAllTypeReferences::dataRefs"]
10041 [::std::mem::offset_of!(BNAllTypeReferences, dataRefs) - 16usize];
10042 ["Offset of field: BNAllTypeReferences::dataRefCount"]
10043 [::std::mem::offset_of!(BNAllTypeReferences, dataRefCount) - 24usize];
10044 ["Offset of field: BNAllTypeReferences::typeRefs"]
10045 [::std::mem::offset_of!(BNAllTypeReferences, typeRefs) - 32usize];
10046 ["Offset of field: BNAllTypeReferences::typeRefCount"]
10047 [::std::mem::offset_of!(BNAllTypeReferences, typeRefCount) - 40usize];
10048};
10049impl Default for BNAllTypeReferences {
10050 fn default() -> Self {
10051 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10052 unsafe {
10053 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10054 s.assume_init()
10055 }
10056 }
10057}
10058#[repr(C)]
10059#[derive(Debug, Copy, Clone)]
10060pub struct BNAllTypeFieldReferences {
10061 pub codeRefs: *mut BNTypeFieldReference,
10062 pub codeRefCount: usize,
10063 pub dataRefsTo: *mut u64,
10064 pub dataRefToCount: usize,
10065 pub dataRefsFrom: *mut u64,
10066 pub dataRefFromCount: usize,
10067 pub typeRefs: *mut BNTypeReferenceSource,
10068 pub typeRefCount: usize,
10069}
10070#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10071const _: () = {
10072 ["Size of BNAllTypeFieldReferences"]
10073 [::std::mem::size_of::<BNAllTypeFieldReferences>() - 64usize];
10074 ["Alignment of BNAllTypeFieldReferences"]
10075 [::std::mem::align_of::<BNAllTypeFieldReferences>() - 8usize];
10076 ["Offset of field: BNAllTypeFieldReferences::codeRefs"]
10077 [::std::mem::offset_of!(BNAllTypeFieldReferences, codeRefs) - 0usize];
10078 ["Offset of field: BNAllTypeFieldReferences::codeRefCount"]
10079 [::std::mem::offset_of!(BNAllTypeFieldReferences, codeRefCount) - 8usize];
10080 ["Offset of field: BNAllTypeFieldReferences::dataRefsTo"]
10081 [::std::mem::offset_of!(BNAllTypeFieldReferences, dataRefsTo) - 16usize];
10082 ["Offset of field: BNAllTypeFieldReferences::dataRefToCount"]
10083 [::std::mem::offset_of!(BNAllTypeFieldReferences, dataRefToCount) - 24usize];
10084 ["Offset of field: BNAllTypeFieldReferences::dataRefsFrom"]
10085 [::std::mem::offset_of!(BNAllTypeFieldReferences, dataRefsFrom) - 32usize];
10086 ["Offset of field: BNAllTypeFieldReferences::dataRefFromCount"]
10087 [::std::mem::offset_of!(BNAllTypeFieldReferences, dataRefFromCount) - 40usize];
10088 ["Offset of field: BNAllTypeFieldReferences::typeRefs"]
10089 [::std::mem::offset_of!(BNAllTypeFieldReferences, typeRefs) - 48usize];
10090 ["Offset of field: BNAllTypeFieldReferences::typeRefCount"]
10091 [::std::mem::offset_of!(BNAllTypeFieldReferences, typeRefCount) - 56usize];
10092};
10093impl Default for BNAllTypeFieldReferences {
10094 fn default() -> Self {
10095 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10096 unsafe {
10097 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10098 s.assume_init()
10099 }
10100 }
10101}
10102#[repr(C)]
10103#[derive(Debug, Copy, Clone)]
10104pub struct BNTypeAttribute {
10105 pub name: *mut ::std::os::raw::c_char,
10106 pub value: *mut ::std::os::raw::c_char,
10107}
10108#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10109const _: () = {
10110 ["Size of BNTypeAttribute"][::std::mem::size_of::<BNTypeAttribute>() - 16usize];
10111 ["Alignment of BNTypeAttribute"][::std::mem::align_of::<BNTypeAttribute>() - 8usize];
10112 ["Offset of field: BNTypeAttribute::name"]
10113 [::std::mem::offset_of!(BNTypeAttribute, name) - 0usize];
10114 ["Offset of field: BNTypeAttribute::value"]
10115 [::std::mem::offset_of!(BNTypeAttribute, value) - 8usize];
10116};
10117impl Default for BNTypeAttribute {
10118 fn default() -> Self {
10119 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10120 unsafe {
10121 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10122 s.assume_init()
10123 }
10124 }
10125}
10126#[repr(C)]
10127#[derive(Debug, Copy, Clone)]
10128pub struct BNCustomConstantRenderer {
10129 pub context: *mut ::std::os::raw::c_void,
10130 pub isValidForType: ::std::option::Option<
10131 unsafe extern "C" fn(
10132 ctxt: *mut ::std::os::raw::c_void,
10133 hlil: *mut BNHighLevelILFunction,
10134 type_: *mut BNType,
10135 ) -> bool,
10136 >,
10137 pub renderConstant: ::std::option::Option<
10138 unsafe extern "C" fn(
10139 ctxt: *mut ::std::os::raw::c_void,
10140 hlil: *mut BNHighLevelILFunction,
10141 expr: usize,
10142 type_: *mut BNType,
10143 val: i64,
10144 tokens: *mut BNHighLevelILTokenEmitter,
10145 settings: *mut BNDisassemblySettings,
10146 precedence: BNOperatorPrecedence,
10147 ) -> bool,
10148 >,
10149 pub renderConstantPointer: ::std::option::Option<
10150 unsafe extern "C" fn(
10151 ctxt: *mut ::std::os::raw::c_void,
10152 hlil: *mut BNHighLevelILFunction,
10153 expr: usize,
10154 type_: *mut BNType,
10155 val: i64,
10156 tokens: *mut BNHighLevelILTokenEmitter,
10157 settings: *mut BNDisassemblySettings,
10158 symbolDisplay: BNSymbolDisplayType,
10159 precedence: BNOperatorPrecedence,
10160 ) -> bool,
10161 >,
10162}
10163#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10164const _: () = {
10165 ["Size of BNCustomConstantRenderer"]
10166 [::std::mem::size_of::<BNCustomConstantRenderer>() - 32usize];
10167 ["Alignment of BNCustomConstantRenderer"]
10168 [::std::mem::align_of::<BNCustomConstantRenderer>() - 8usize];
10169 ["Offset of field: BNCustomConstantRenderer::context"]
10170 [::std::mem::offset_of!(BNCustomConstantRenderer, context) - 0usize];
10171 ["Offset of field: BNCustomConstantRenderer::isValidForType"]
10172 [::std::mem::offset_of!(BNCustomConstantRenderer, isValidForType) - 8usize];
10173 ["Offset of field: BNCustomConstantRenderer::renderConstant"]
10174 [::std::mem::offset_of!(BNCustomConstantRenderer, renderConstant) - 16usize];
10175 ["Offset of field: BNCustomConstantRenderer::renderConstantPointer"]
10176 [::std::mem::offset_of!(BNCustomConstantRenderer, renderConstantPointer) - 24usize];
10177};
10178impl Default for BNCustomConstantRenderer {
10179 fn default() -> Self {
10180 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10181 unsafe {
10182 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10183 s.assume_init()
10184 }
10185 }
10186}
10187#[repr(C)]
10188#[derive(Debug, Copy, Clone)]
10189pub struct BNCustomStringRecognizer {
10190 pub context: *mut ::std::os::raw::c_void,
10191 pub isValidForType: ::std::option::Option<
10192 unsafe extern "C" fn(
10193 ctxt: *mut ::std::os::raw::c_void,
10194 hlil: *mut BNHighLevelILFunction,
10195 type_: *mut BNType,
10196 ) -> bool,
10197 >,
10198 pub recognizeConstant: ::std::option::Option<
10199 unsafe extern "C" fn(
10200 ctxt: *mut ::std::os::raw::c_void,
10201 hlil: *mut BNHighLevelILFunction,
10202 expr: usize,
10203 type_: *mut BNType,
10204 val: i64,
10205 result: *mut BNDerivedString,
10206 ) -> bool,
10207 >,
10208 pub recognizeConstantPointer: ::std::option::Option<
10209 unsafe extern "C" fn(
10210 ctxt: *mut ::std::os::raw::c_void,
10211 hlil: *mut BNHighLevelILFunction,
10212 expr: usize,
10213 type_: *mut BNType,
10214 val: i64,
10215 result: *mut BNDerivedString,
10216 ) -> bool,
10217 >,
10218 pub recognizeExternPointer: ::std::option::Option<
10219 unsafe extern "C" fn(
10220 ctxt: *mut ::std::os::raw::c_void,
10221 hlil: *mut BNHighLevelILFunction,
10222 expr: usize,
10223 type_: *mut BNType,
10224 val: i64,
10225 offset: u64,
10226 result: *mut BNDerivedString,
10227 ) -> bool,
10228 >,
10229 pub recognizeImport: ::std::option::Option<
10230 unsafe extern "C" fn(
10231 ctxt: *mut ::std::os::raw::c_void,
10232 hlil: *mut BNHighLevelILFunction,
10233 expr: usize,
10234 type_: *mut BNType,
10235 val: i64,
10236 result: *mut BNDerivedString,
10237 ) -> bool,
10238 >,
10239}
10240#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10241const _: () = {
10242 ["Size of BNCustomStringRecognizer"]
10243 [::std::mem::size_of::<BNCustomStringRecognizer>() - 48usize];
10244 ["Alignment of BNCustomStringRecognizer"]
10245 [::std::mem::align_of::<BNCustomStringRecognizer>() - 8usize];
10246 ["Offset of field: BNCustomStringRecognizer::context"]
10247 [::std::mem::offset_of!(BNCustomStringRecognizer, context) - 0usize];
10248 ["Offset of field: BNCustomStringRecognizer::isValidForType"]
10249 [::std::mem::offset_of!(BNCustomStringRecognizer, isValidForType) - 8usize];
10250 ["Offset of field: BNCustomStringRecognizer::recognizeConstant"]
10251 [::std::mem::offset_of!(BNCustomStringRecognizer, recognizeConstant) - 16usize];
10252 ["Offset of field: BNCustomStringRecognizer::recognizeConstantPointer"]
10253 [::std::mem::offset_of!(BNCustomStringRecognizer, recognizeConstantPointer) - 24usize];
10254 ["Offset of field: BNCustomStringRecognizer::recognizeExternPointer"]
10255 [::std::mem::offset_of!(BNCustomStringRecognizer, recognizeExternPointer) - 32usize];
10256 ["Offset of field: BNCustomStringRecognizer::recognizeImport"]
10257 [::std::mem::offset_of!(BNCustomStringRecognizer, recognizeImport) - 40usize];
10258};
10259impl Default for BNCustomStringRecognizer {
10260 fn default() -> Self {
10261 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10262 unsafe {
10263 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10264 s.assume_init()
10265 }
10266 }
10267}
10268#[repr(C)]
10269#[derive(Debug, Copy, Clone)]
10270pub struct BNCustomStringTypeInfo {
10271 pub name: *mut ::std::os::raw::c_char,
10272 pub stringPrefix: *mut ::std::os::raw::c_char,
10273 pub stringPostfix: *mut ::std::os::raw::c_char,
10274}
10275#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10276const _: () = {
10277 ["Size of BNCustomStringTypeInfo"][::std::mem::size_of::<BNCustomStringTypeInfo>() - 24usize];
10278 ["Alignment of BNCustomStringTypeInfo"]
10279 [::std::mem::align_of::<BNCustomStringTypeInfo>() - 8usize];
10280 ["Offset of field: BNCustomStringTypeInfo::name"]
10281 [::std::mem::offset_of!(BNCustomStringTypeInfo, name) - 0usize];
10282 ["Offset of field: BNCustomStringTypeInfo::stringPrefix"]
10283 [::std::mem::offset_of!(BNCustomStringTypeInfo, stringPrefix) - 8usize];
10284 ["Offset of field: BNCustomStringTypeInfo::stringPostfix"]
10285 [::std::mem::offset_of!(BNCustomStringTypeInfo, stringPostfix) - 16usize];
10286};
10287impl Default for BNCustomStringTypeInfo {
10288 fn default() -> Self {
10289 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10290 unsafe {
10291 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10292 s.assume_init()
10293 }
10294 }
10295}
10296unsafe extern "C" {
10297 pub fn BNAllocString(contents: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
10298}
10299unsafe extern "C" {
10300 pub fn BNAllocStringWithLength(
10301 contents: *const ::std::os::raw::c_char,
10302 len: usize,
10303 ) -> *mut ::std::os::raw::c_char;
10304}
10305unsafe extern "C" {
10306 pub fn BNFreeString(str_: *mut ::std::os::raw::c_char);
10307}
10308unsafe extern "C" {
10309 pub fn BNAllocStringList(
10310 contents: *mut *const ::std::os::raw::c_char,
10311 size: usize,
10312 ) -> *mut *mut ::std::os::raw::c_char;
10313}
10314unsafe extern "C" {
10315 pub fn BNFreeStringList(strs: *mut *mut ::std::os::raw::c_char, count: usize);
10316}
10317unsafe extern "C" {
10318 pub fn BNShutdown();
10319}
10320unsafe extern "C" {
10321 pub fn BNIsShutdownRequested() -> bool;
10322}
10323unsafe extern "C" {
10324 pub fn BNGetVersionInfo() -> BNVersionInfo;
10325}
10326unsafe extern "C" {
10327 pub fn BNGetVersionString() -> *mut ::std::os::raw::c_char;
10328}
10329unsafe extern "C" {
10330 pub fn BNGetBuildId() -> u32;
10331}
10332unsafe extern "C" {
10333 pub fn BNGetCurrentCoreABIVersion() -> u32;
10334}
10335unsafe extern "C" {
10336 pub fn BNGetMinimumCoreABIVersion() -> u32;
10337}
10338unsafe extern "C" {
10339 pub fn BNGetSerialNumber() -> *mut ::std::os::raw::c_char;
10340}
10341unsafe extern "C" {
10342 pub fn BNGetLicenseExpirationTime() -> u64;
10343}
10344unsafe extern "C" {
10345 pub fn BNIsLicenseValidated() -> bool;
10346}
10347unsafe extern "C" {
10348 pub fn BNGetLicensedUserEmail() -> *mut ::std::os::raw::c_char;
10349}
10350unsafe extern "C" {
10351 pub fn BNGetProduct() -> *mut ::std::os::raw::c_char;
10352}
10353unsafe extern "C" {
10354 pub fn BNGetProductType() -> *mut ::std::os::raw::c_char;
10355}
10356unsafe extern "C" {
10357 pub fn BNGetLicenseCount() -> ::std::os::raw::c_int;
10358}
10359unsafe extern "C" {
10360 pub fn BNIsUIEnabled() -> bool;
10361}
10362unsafe extern "C" {
10363 pub fn BNSetLicense(licenseData: *const ::std::os::raw::c_char);
10364}
10365unsafe extern "C" {
10366 pub fn BNIsDatabase(filename: *const ::std::os::raw::c_char) -> bool;
10367}
10368unsafe extern "C" {
10369 pub fn BNIsDatabaseFromData(data: *const ::std::os::raw::c_void, len: usize) -> bool;
10370}
10371unsafe extern "C" {
10372 pub fn BNAuthenticateEnterpriseServerWithCredentials(
10373 username: *const ::std::os::raw::c_char,
10374 password: *const ::std::os::raw::c_char,
10375 remember: bool,
10376 ) -> bool;
10377}
10378unsafe extern "C" {
10379 pub fn BNAuthenticateEnterpriseServerWithMethod(
10380 method: *const ::std::os::raw::c_char,
10381 remember: bool,
10382 ) -> bool;
10383}
10384unsafe extern "C" {
10385 pub fn BNGetEnterpriseServerAuthenticationMethods(
10386 methods: *mut *mut *mut ::std::os::raw::c_char,
10387 names: *mut *mut *mut ::std::os::raw::c_char,
10388 ) -> usize;
10389}
10390unsafe extern "C" {
10391 pub fn BNDeauthenticateEnterpriseServer() -> bool;
10392}
10393unsafe extern "C" {
10394 pub fn BNCancelEnterpriseServerAuthentication();
10395}
10396unsafe extern "C" {
10397 pub fn BNConnectEnterpriseServer() -> bool;
10398}
10399unsafe extern "C" {
10400 pub fn BNUpdateEnterpriseServerLicense(timeout: u64) -> bool;
10401}
10402unsafe extern "C" {
10403 pub fn BNReleaseEnterpriseServerLicense() -> bool;
10404}
10405unsafe extern "C" {
10406 pub fn BNIsEnterpriseServerConnected() -> bool;
10407}
10408unsafe extern "C" {
10409 pub fn BNIsEnterpriseServerAuthenticated() -> bool;
10410}
10411unsafe extern "C" {
10412 pub fn BNGetEnterpriseServerUsername() -> *mut ::std::os::raw::c_char;
10413}
10414unsafe extern "C" {
10415 pub fn BNGetEnterpriseServerToken() -> *mut ::std::os::raw::c_char;
10416}
10417unsafe extern "C" {
10418 pub fn BNGetEnterpriseServerUrl() -> *mut ::std::os::raw::c_char;
10419}
10420unsafe extern "C" {
10421 pub fn BNSetEnterpriseServerUrl(url: *const ::std::os::raw::c_char) -> bool;
10422}
10423unsafe extern "C" {
10424 pub fn BNGetEnterpriseServerName() -> *mut ::std::os::raw::c_char;
10425}
10426unsafe extern "C" {
10427 pub fn BNGetEnterpriseServerId() -> *mut ::std::os::raw::c_char;
10428}
10429unsafe extern "C" {
10430 pub fn BNGetEnterpriseServerVersion() -> u64;
10431}
10432unsafe extern "C" {
10433 pub fn BNGetEnterpriseServerBuildId() -> *mut ::std::os::raw::c_char;
10434}
10435unsafe extern "C" {
10436 pub fn BNGetEnterpriseServerLicenseExpirationTime() -> u64;
10437}
10438unsafe extern "C" {
10439 pub fn BNGetEnterpriseServerLicenseDuration() -> u64;
10440}
10441unsafe extern "C" {
10442 pub fn BNIsEnterpriseServerFloatingLicense() -> bool;
10443}
10444unsafe extern "C" {
10445 pub fn BNGetEnterpriseServerReservationTimeLimit() -> u64;
10446}
10447unsafe extern "C" {
10448 pub fn BNIsEnterpriseServerLicenseStillActivated() -> bool;
10449}
10450unsafe extern "C" {
10451 pub fn BNGetEnterpriseServerLastError() -> *mut ::std::os::raw::c_char;
10452}
10453unsafe extern "C" {
10454 pub fn BNRegisterEnterpriseServerNotification(notify: *mut BNEnterpriseServerCallbacks);
10455}
10456unsafe extern "C" {
10457 pub fn BNUnregisterEnterpriseServerNotification(notify: *mut BNEnterpriseServerCallbacks);
10458}
10459unsafe extern "C" {
10460 pub fn BNIsEnterpriseServerInitialized() -> bool;
10461}
10462unsafe extern "C" {
10463 pub fn BNInitializeEnterpriseServer() -> bool;
10464}
10465unsafe extern "C" {
10466 pub fn BNRegisterObjectDestructionCallbacks(callbacks: *mut BNObjectDestructionCallbacks);
10467}
10468unsafe extern "C" {
10469 pub fn BNUnregisterObjectDestructionCallbacks(callbacks: *mut BNObjectDestructionCallbacks);
10470}
10471unsafe extern "C" {
10472 pub fn BNGetUniqueIdentifierString() -> *mut ::std::os::raw::c_char;
10473}
10474unsafe extern "C" {
10475 #[doc = " Plugin initialization"]
10476 pub fn BNInitPlugins(allowUserPlugins: bool) -> bool;
10477}
10478unsafe extern "C" {
10479 pub fn BNInitCorePlugins() -> bool;
10480}
10481unsafe extern "C" {
10482 pub fn BNDisablePlugins();
10483}
10484unsafe extern "C" {
10485 pub fn BNIsPluginsEnabled() -> bool;
10486}
10487unsafe extern "C" {
10488 pub fn BNInitUserPlugins();
10489}
10490unsafe extern "C" {
10491 pub fn BNInitRepoPlugins();
10492}
10493unsafe extern "C" {
10494 pub fn BNGetInstallDirectory() -> *mut ::std::os::raw::c_char;
10495}
10496unsafe extern "C" {
10497 pub fn BNGetBundledPluginDirectory() -> *mut ::std::os::raw::c_char;
10498}
10499unsafe extern "C" {
10500 pub fn BNSetBundledPluginDirectory(path: *const ::std::os::raw::c_char);
10501}
10502unsafe extern "C" {
10503 pub fn BNGetUserDirectory() -> *mut ::std::os::raw::c_char;
10504}
10505unsafe extern "C" {
10506 pub fn BNGetUserPluginDirectory() -> *mut ::std::os::raw::c_char;
10507}
10508unsafe extern "C" {
10509 pub fn BNGetRepositoriesDirectory() -> *mut ::std::os::raw::c_char;
10510}
10511unsafe extern "C" {
10512 pub fn BNGetSettingsFileName() -> *mut ::std::os::raw::c_char;
10513}
10514unsafe extern "C" {
10515 pub fn BNSaveLastRun();
10516}
10517unsafe extern "C" {
10518 pub fn BNGetPathRelativeToBundledPluginDirectory(
10519 path: *const ::std::os::raw::c_char,
10520 ) -> *mut ::std::os::raw::c_char;
10521}
10522unsafe extern "C" {
10523 pub fn BNGetPathRelativeToUserPluginDirectory(
10524 path: *const ::std::os::raw::c_char,
10525 ) -> *mut ::std::os::raw::c_char;
10526}
10527unsafe extern "C" {
10528 pub fn BNGetPathRelativeToUserDirectory(
10529 path: *const ::std::os::raw::c_char,
10530 ) -> *mut ::std::os::raw::c_char;
10531}
10532unsafe extern "C" {
10533 pub fn BNExecuteWorkerProcess(
10534 path: *const ::std::os::raw::c_char,
10535 args: *mut *const ::std::os::raw::c_char,
10536 input: *mut BNDataBuffer,
10537 output: *mut *mut ::std::os::raw::c_char,
10538 error: *mut *mut ::std::os::raw::c_char,
10539 stdoutIsText: bool,
10540 stderrIsText: bool,
10541 ) -> bool;
10542}
10543unsafe extern "C" {
10544 pub fn BNSetCurrentPluginLoadOrder(order: BNPluginLoadOrder);
10545}
10546unsafe extern "C" {
10547 pub fn BNAddRequiredPluginDependency(name: *const ::std::os::raw::c_char);
10548}
10549unsafe extern "C" {
10550 pub fn BNAddOptionalPluginDependency(name: *const ::std::os::raw::c_char);
10551}
10552unsafe extern "C" {
10553 #[doc = " Logging"]
10554 pub fn BNLog(
10555 session: usize,
10556 level: BNLogLevel,
10557 logger_name: *const ::std::os::raw::c_char,
10558 tid: usize,
10559 fmt: *const ::std::os::raw::c_char,
10560 ...
10561 );
10562}
10563unsafe extern "C" {
10564 pub fn BNLogDebug(fmt: *const ::std::os::raw::c_char, ...);
10565}
10566unsafe extern "C" {
10567 pub fn BNLogInfo(fmt: *const ::std::os::raw::c_char, ...);
10568}
10569unsafe extern "C" {
10570 pub fn BNLogWarn(fmt: *const ::std::os::raw::c_char, ...);
10571}
10572unsafe extern "C" {
10573 pub fn BNLogError(fmt: *const ::std::os::raw::c_char, ...);
10574}
10575unsafe extern "C" {
10576 pub fn BNLogAlert(fmt: *const ::std::os::raw::c_char, ...);
10577}
10578unsafe extern "C" {
10579 pub fn BNLogString(
10580 session: usize,
10581 level: BNLogLevel,
10582 logger_name: *const ::std::os::raw::c_char,
10583 tid: usize,
10584 str_: *const ::std::os::raw::c_char,
10585 );
10586}
10587unsafe extern "C" {
10588 pub fn BNLogWithStackTrace(
10589 session: usize,
10590 level: BNLogLevel,
10591 logger_name: *const ::std::os::raw::c_char,
10592 tid: usize,
10593 stackTrace: *const ::std::os::raw::c_char,
10594 fmt: *const ::std::os::raw::c_char,
10595 ...
10596 );
10597}
10598unsafe extern "C" {
10599 pub fn BNLogDebugWithStackTrace(
10600 stackTrace: *const ::std::os::raw::c_char,
10601 fmt: *const ::std::os::raw::c_char,
10602 ...
10603 );
10604}
10605unsafe extern "C" {
10606 pub fn BNLogInfoWithStackTrace(
10607 stackTrace: *const ::std::os::raw::c_char,
10608 fmt: *const ::std::os::raw::c_char,
10609 ...
10610 );
10611}
10612unsafe extern "C" {
10613 pub fn BNLogWarnWithStackTrace(
10614 stackTrace: *const ::std::os::raw::c_char,
10615 fmt: *const ::std::os::raw::c_char,
10616 ...
10617 );
10618}
10619unsafe extern "C" {
10620 pub fn BNLogErrorWithStackTrace(
10621 stackTrace: *const ::std::os::raw::c_char,
10622 fmt: *const ::std::os::raw::c_char,
10623 ...
10624 );
10625}
10626unsafe extern "C" {
10627 pub fn BNLogAlertWithStackTrace(
10628 stackTrace: *const ::std::os::raw::c_char,
10629 fmt: *const ::std::os::raw::c_char,
10630 ...
10631 );
10632}
10633unsafe extern "C" {
10634 pub fn BNLogStringWithStackTrace(
10635 session: usize,
10636 level: BNLogLevel,
10637 logger_name: *const ::std::os::raw::c_char,
10638 tid: usize,
10639 stackTrace: *const ::std::os::raw::c_char,
10640 str_: *const ::std::os::raw::c_char,
10641 );
10642}
10643unsafe extern "C" {
10644 pub fn BNNewLoggerReference(logger: *mut BNLogger) -> *mut BNLogger;
10645}
10646unsafe extern "C" {
10647 pub fn BNFreeLogger(logger: *mut BNLogger);
10648}
10649unsafe extern "C" {
10650 pub fn BNLoggerLog(
10651 logger: *mut BNLogger,
10652 level: BNLogLevel,
10653 fmt: *const ::std::os::raw::c_char,
10654 ...
10655 );
10656}
10657unsafe extern "C" {
10658 pub fn BNLoggerLogString(
10659 logger: *mut BNLogger,
10660 level: BNLogLevel,
10661 msg: *const ::std::os::raw::c_char,
10662 );
10663}
10664unsafe extern "C" {
10665 pub fn BNLoggerLogWithStackTrace(
10666 logger: *mut BNLogger,
10667 level: BNLogLevel,
10668 stackTrace: *const ::std::os::raw::c_char,
10669 fmt: *const ::std::os::raw::c_char,
10670 ...
10671 );
10672}
10673unsafe extern "C" {
10674 pub fn BNLoggerLogStringWithStackTrace(
10675 logger: *mut BNLogger,
10676 level: BNLogLevel,
10677 stackTrace: *const ::std::os::raw::c_char,
10678 msg: *const ::std::os::raw::c_char,
10679 );
10680}
10681unsafe extern "C" {
10682 pub fn BNLoggerGetName(logger: *mut BNLogger) -> *mut ::std::os::raw::c_char;
10683}
10684unsafe extern "C" {
10685 pub fn BNLoggerGetSessionId(logger: *mut BNLogger) -> usize;
10686}
10687unsafe extern "C" {
10688 pub fn BNLogCreateLogger(
10689 loggerName: *const ::std::os::raw::c_char,
10690 sessionId: usize,
10691 ) -> *mut BNLogger;
10692}
10693unsafe extern "C" {
10694 pub fn BNLogGetLogger(
10695 loggerName: *const ::std::os::raw::c_char,
10696 sessionId: usize,
10697 ) -> *mut BNLogger;
10698}
10699unsafe extern "C" {
10700 pub fn BNLogGetLoggerNames(count: *mut usize) -> *mut *mut ::std::os::raw::c_char;
10701}
10702unsafe extern "C" {
10703 pub fn BNRegisterLogListener(listener: *mut BNLogListener);
10704}
10705unsafe extern "C" {
10706 pub fn BNUnregisterLogListener(listener: *mut BNLogListener);
10707}
10708unsafe extern "C" {
10709 pub fn BNUpdateLogListeners();
10710}
10711unsafe extern "C" {
10712 pub fn BNLogToStdout(minimumLevel: BNLogLevel);
10713}
10714unsafe extern "C" {
10715 pub fn BNLogToStderr(minimumLevel: BNLogLevel);
10716}
10717unsafe extern "C" {
10718 pub fn BNLogToFile(
10719 minimumLevel: BNLogLevel,
10720 path: *const ::std::os::raw::c_char,
10721 append: bool,
10722 ) -> bool;
10723}
10724unsafe extern "C" {
10725 pub fn BNCloseLogs();
10726}
10727unsafe extern "C" {
10728 #[doc = " Temporary files"]
10729 pub fn BNCreateTemporaryFile() -> *mut BNTemporaryFile;
10730}
10731unsafe extern "C" {
10732 pub fn BNCreateTemporaryFileWithContents(data: *mut BNDataBuffer) -> *mut BNTemporaryFile;
10733}
10734unsafe extern "C" {
10735 pub fn BNNewTemporaryFileReference(file: *mut BNTemporaryFile) -> *mut BNTemporaryFile;
10736}
10737unsafe extern "C" {
10738 pub fn BNFreeTemporaryFile(file: *mut BNTemporaryFile);
10739}
10740unsafe extern "C" {
10741 pub fn BNGetTemporaryFilePath(file: *mut BNTemporaryFile) -> *mut ::std::os::raw::c_char;
10742}
10743unsafe extern "C" {
10744 pub fn BNGetTemporaryFileContents(file: *mut BNTemporaryFile) -> *mut BNDataBuffer;
10745}
10746unsafe extern "C" {
10747 #[doc = " Data buffer management"]
10748 pub fn BNCreateDataBuffer(data: *const ::std::os::raw::c_void, len: usize)
10749 -> *mut BNDataBuffer;
10750}
10751unsafe extern "C" {
10752 pub fn BNDuplicateDataBuffer(buf: *mut BNDataBuffer) -> *mut BNDataBuffer;
10753}
10754unsafe extern "C" {
10755 pub fn BNFreeDataBuffer(buf: *mut BNDataBuffer);
10756}
10757unsafe extern "C" {
10758 pub fn BNGetDataBufferContents(buf: *mut BNDataBuffer) -> *mut ::std::os::raw::c_void;
10759}
10760unsafe extern "C" {
10761 pub fn BNGetDataBufferContentsAt(
10762 buf: *mut BNDataBuffer,
10763 offset: usize,
10764 ) -> *mut ::std::os::raw::c_void;
10765}
10766unsafe extern "C" {
10767 pub fn BNGetDataBufferLength(buf: *mut BNDataBuffer) -> usize;
10768}
10769unsafe extern "C" {
10770 pub fn BNGetDataBufferSlice(
10771 buf: *mut BNDataBuffer,
10772 start: usize,
10773 len: usize,
10774 ) -> *mut BNDataBuffer;
10775}
10776unsafe extern "C" {
10777 pub fn BNSetDataBufferLength(buf: *mut BNDataBuffer, len: usize);
10778}
10779unsafe extern "C" {
10780 pub fn BNClearDataBuffer(buf: *mut BNDataBuffer);
10781}
10782unsafe extern "C" {
10783 pub fn BNSetDataBufferContents(
10784 buf: *mut BNDataBuffer,
10785 data: *mut ::std::os::raw::c_void,
10786 len: usize,
10787 );
10788}
10789unsafe extern "C" {
10790 pub fn BNAssignDataBuffer(dest: *mut BNDataBuffer, src: *mut BNDataBuffer);
10791}
10792unsafe extern "C" {
10793 pub fn BNAppendDataBuffer(dest: *mut BNDataBuffer, src: *mut BNDataBuffer);
10794}
10795unsafe extern "C" {
10796 pub fn BNAppendDataBufferContents(
10797 dest: *mut BNDataBuffer,
10798 src: *const ::std::os::raw::c_void,
10799 len: usize,
10800 );
10801}
10802unsafe extern "C" {
10803 pub fn BNGetDataBufferByte(buf: *mut BNDataBuffer, offset: usize) -> u8;
10804}
10805unsafe extern "C" {
10806 pub fn BNSetDataBufferByte(buf: *mut BNDataBuffer, offset: usize, val: u8);
10807}
10808unsafe extern "C" {
10809 pub fn BNDataBufferToEscapedString(
10810 buf: *mut BNDataBuffer,
10811 nullTerminates: bool,
10812 escapePrintable: bool,
10813 ) -> *mut ::std::os::raw::c_char;
10814}
10815unsafe extern "C" {
10816 pub fn BNDecodeEscapedString(str_: *const ::std::os::raw::c_char) -> *mut BNDataBuffer;
10817}
10818unsafe extern "C" {
10819 pub fn BNDataBufferToBase64(buf: *mut BNDataBuffer) -> *mut ::std::os::raw::c_char;
10820}
10821unsafe extern "C" {
10822 pub fn BNDecodeBase64(str_: *const ::std::os::raw::c_char) -> *mut BNDataBuffer;
10823}
10824unsafe extern "C" {
10825 pub fn BNZlibCompress(buf: *mut BNDataBuffer) -> *mut BNDataBuffer;
10826}
10827unsafe extern "C" {
10828 pub fn BNZlibDecompress(buf: *mut BNDataBuffer) -> *mut BNDataBuffer;
10829}
10830unsafe extern "C" {
10831 pub fn BNLzmaDecompress(buf: *mut BNDataBuffer) -> *mut BNDataBuffer;
10832}
10833unsafe extern "C" {
10834 pub fn BNLzma2Decompress(buf: *mut BNDataBuffer) -> *mut BNDataBuffer;
10835}
10836unsafe extern "C" {
10837 pub fn BNXzDecompress(buf: *mut BNDataBuffer) -> *mut BNDataBuffer;
10838}
10839unsafe extern "C" {
10840 #[doc = " Save settings"]
10841 pub fn BNCreateSaveSettings() -> *mut BNSaveSettings;
10842}
10843unsafe extern "C" {
10844 pub fn BNNewSaveSettingsReference(settings: *mut BNSaveSettings) -> *mut BNSaveSettings;
10845}
10846unsafe extern "C" {
10847 pub fn BNFreeSaveSettings(settings: *mut BNSaveSettings);
10848}
10849unsafe extern "C" {
10850 pub fn BNIsSaveSettingsOptionSet(settings: *mut BNSaveSettings, option: BNSaveOption) -> bool;
10851}
10852unsafe extern "C" {
10853 pub fn BNSetSaveSettingsOption(
10854 settings: *mut BNSaveSettings,
10855 option: BNSaveOption,
10856 state: bool,
10857 );
10858}
10859unsafe extern "C" {
10860 pub fn BNGetSaveSettingsName(settings: *mut BNSaveSettings) -> *mut ::std::os::raw::c_char;
10861}
10862unsafe extern "C" {
10863 pub fn BNSetSaveSettingsName(
10864 settings: *mut BNSaveSettings,
10865 name: *const ::std::os::raw::c_char,
10866 );
10867}
10868unsafe extern "C" {
10869 #[doc = " File metadata object"]
10870 pub fn BNCreateFileMetadata() -> *mut BNFileMetadata;
10871}
10872unsafe extern "C" {
10873 pub fn BNNewFileReference(file: *mut BNFileMetadata) -> *mut BNFileMetadata;
10874}
10875unsafe extern "C" {
10876 pub fn BNFreeFileMetadata(file: *mut BNFileMetadata);
10877}
10878unsafe extern "C" {
10879 pub fn BNCloseFile(file: *mut BNFileMetadata);
10880}
10881unsafe extern "C" {
10882 pub fn BNSetFileMetadataNavigationHandler(
10883 file: *mut BNFileMetadata,
10884 handler: *mut BNNavigationHandler,
10885 );
10886}
10887unsafe extern "C" {
10888 pub fn BNIsFileModified(file: *mut BNFileMetadata) -> bool;
10889}
10890unsafe extern "C" {
10891 pub fn BNIsAnalysisChanged(file: *mut BNFileMetadata) -> bool;
10892}
10893unsafe extern "C" {
10894 pub fn BNMarkFileModified(file: *mut BNFileMetadata);
10895}
10896unsafe extern "C" {
10897 pub fn BNMarkFileSaved(file: *mut BNFileMetadata);
10898}
10899unsafe extern "C" {
10900 pub fn BNIsBackedByDatabase(
10901 file: *mut BNFileMetadata,
10902 binaryViewType: *const ::std::os::raw::c_char,
10903 ) -> bool;
10904}
10905unsafe extern "C" {
10906 pub fn BNCreateDatabase(
10907 data: *mut BNBinaryView,
10908 path: *const ::std::os::raw::c_char,
10909 settings: *mut BNSaveSettings,
10910 ) -> bool;
10911}
10912unsafe extern "C" {
10913 pub fn BNCreateDatabaseWithProgress(
10914 data: *mut BNBinaryView,
10915 path: *const ::std::os::raw::c_char,
10916 ctxt: *mut ::std::os::raw::c_void,
10917 progress: BNProgressFunction,
10918 settings: *mut BNSaveSettings,
10919 ) -> bool;
10920}
10921unsafe extern "C" {
10922 pub fn BNOpenExistingDatabase(
10923 file: *mut BNFileMetadata,
10924 path: *const ::std::os::raw::c_char,
10925 ) -> *mut BNBinaryView;
10926}
10927unsafe extern "C" {
10928 pub fn BNOpenExistingDatabaseWithProgress(
10929 file: *mut BNFileMetadata,
10930 path: *const ::std::os::raw::c_char,
10931 ctxt: *mut ::std::os::raw::c_void,
10932 progress: BNProgressFunction,
10933 ) -> *mut BNBinaryView;
10934}
10935unsafe extern "C" {
10936 pub fn BNOpenDatabaseForConfiguration(
10937 file: *mut BNFileMetadata,
10938 path: *const ::std::os::raw::c_char,
10939 ) -> *mut BNBinaryView;
10940}
10941unsafe extern "C" {
10942 pub fn BNSaveAutoSnapshot(data: *mut BNBinaryView, settings: *mut BNSaveSettings) -> bool;
10943}
10944unsafe extern "C" {
10945 pub fn BNSaveAutoSnapshotWithProgress(
10946 data: *mut BNBinaryView,
10947 ctxt: *mut ::std::os::raw::c_void,
10948 progress: BNProgressFunction,
10949 settings: *mut BNSaveSettings,
10950 ) -> bool;
10951}
10952unsafe extern "C" {
10953 pub fn BNGetSnapshotData(
10954 file: *mut BNFileMetadata,
10955 data: *mut BNKeyValueStore,
10956 cache: *mut BNKeyValueStore,
10957 ctxt: *mut ::std::os::raw::c_void,
10958 progress: BNProgressFunction,
10959 );
10960}
10961unsafe extern "C" {
10962 pub fn BNApplySnapshotData(
10963 file: *mut BNFileMetadata,
10964 view: *mut BNBinaryView,
10965 data: *mut BNKeyValueStore,
10966 cache: *mut BNKeyValueStore,
10967 ctxt: *mut ::std::os::raw::c_void,
10968 progress: BNProgressFunction,
10969 openForConfiguration: bool,
10970 restoreRawView: bool,
10971 );
10972}
10973unsafe extern "C" {
10974 pub fn BNGetFileMetadataDatabase(file: *mut BNFileMetadata) -> *mut BNDatabase;
10975}
10976unsafe extern "C" {
10977 #[doc = " Key value store"]
10978 pub fn BNCreateKeyValueStore() -> *mut BNKeyValueStore;
10979}
10980unsafe extern "C" {
10981 pub fn BNCreateKeyValueStoreFromDataBuffer(buffer: *mut BNDataBuffer) -> *mut BNKeyValueStore;
10982}
10983unsafe extern "C" {
10984 pub fn BNNewKeyValueStoreReference(store: *mut BNKeyValueStore) -> *mut BNKeyValueStore;
10985}
10986unsafe extern "C" {
10987 pub fn BNFreeKeyValueStore(store: *mut BNKeyValueStore);
10988}
10989unsafe extern "C" {
10990 pub fn BNGetKeyValueStoreKeys(
10991 store: *mut BNKeyValueStore,
10992 count: *mut usize,
10993 ) -> *mut *mut ::std::os::raw::c_char;
10994}
10995unsafe extern "C" {
10996 pub fn BNKeyValueStoreHasValue(
10997 store: *mut BNKeyValueStore,
10998 name: *const ::std::os::raw::c_char,
10999 ) -> bool;
11000}
11001unsafe extern "C" {
11002 pub fn BNGetKeyValueStoreValue(
11003 store: *mut BNKeyValueStore,
11004 name: *const ::std::os::raw::c_char,
11005 ) -> *mut ::std::os::raw::c_char;
11006}
11007unsafe extern "C" {
11008 pub fn BNGetKeyValueStoreValueHash(
11009 store: *mut BNKeyValueStore,
11010 name: *const ::std::os::raw::c_char,
11011 ) -> *mut BNDataBuffer;
11012}
11013unsafe extern "C" {
11014 pub fn BNGetKeyValueStoreBuffer(
11015 store: *mut BNKeyValueStore,
11016 name: *const ::std::os::raw::c_char,
11017 ) -> *mut BNDataBuffer;
11018}
11019unsafe extern "C" {
11020 pub fn BNSetKeyValueStoreValue(
11021 store: *mut BNKeyValueStore,
11022 name: *const ::std::os::raw::c_char,
11023 value: *const ::std::os::raw::c_char,
11024 ) -> bool;
11025}
11026unsafe extern "C" {
11027 pub fn BNSetKeyValueStoreBuffer(
11028 store: *mut BNKeyValueStore,
11029 name: *const ::std::os::raw::c_char,
11030 value: *const BNDataBuffer,
11031 ) -> bool;
11032}
11033unsafe extern "C" {
11034 pub fn BNGetKeyValueStoreSerializedData(store: *mut BNKeyValueStore) -> *mut BNDataBuffer;
11035}
11036unsafe extern "C" {
11037 pub fn BNBeginKeyValueStoreNamespace(
11038 store: *mut BNKeyValueStore,
11039 name: *const ::std::os::raw::c_char,
11040 );
11041}
11042unsafe extern "C" {
11043 pub fn BNEndKeyValueStoreNamespace(store: *mut BNKeyValueStore);
11044}
11045unsafe extern "C" {
11046 pub fn BNIsKeyValueStoreEmpty(store: *mut BNKeyValueStore) -> bool;
11047}
11048unsafe extern "C" {
11049 pub fn BNGetKeyValueStoreValueSize(store: *mut BNKeyValueStore) -> usize;
11050}
11051unsafe extern "C" {
11052 pub fn BNGetKeyValueStoreDataSize(store: *mut BNKeyValueStore) -> usize;
11053}
11054unsafe extern "C" {
11055 pub fn BNGetKeyValueStoreValueStorageSize(store: *mut BNKeyValueStore) -> usize;
11056}
11057unsafe extern "C" {
11058 pub fn BNGetKeyValueStoreNamespaceSize(store: *mut BNKeyValueStore) -> usize;
11059}
11060unsafe extern "C" {
11061 #[doc = " Project object"]
11062 pub fn BNNewProjectReference(project: *mut BNProject) -> *mut BNProject;
11063}
11064unsafe extern "C" {
11065 pub fn BNFreeProject(project: *mut BNProject);
11066}
11067unsafe extern "C" {
11068 pub fn BNFreeProjectList(projects: *mut *mut BNProject, count: usize);
11069}
11070unsafe extern "C" {
11071 pub fn BNGetOpenProjects(count: *mut usize) -> *mut *mut BNProject;
11072}
11073unsafe extern "C" {
11074 pub fn BNCreateProject(
11075 path: *const ::std::os::raw::c_char,
11076 name: *const ::std::os::raw::c_char,
11077 ) -> *mut BNProject;
11078}
11079unsafe extern "C" {
11080 pub fn BNOpenProject(path: *const ::std::os::raw::c_char) -> *mut BNProject;
11081}
11082unsafe extern "C" {
11083 pub fn BNProjectOpen(project: *mut BNProject) -> bool;
11084}
11085unsafe extern "C" {
11086 pub fn BNProjectClose(project: *mut BNProject) -> bool;
11087}
11088unsafe extern "C" {
11089 pub fn BNProjectGetId(project: *mut BNProject) -> *mut ::std::os::raw::c_char;
11090}
11091unsafe extern "C" {
11092 pub fn BNProjectIsOpen(project: *mut BNProject) -> bool;
11093}
11094unsafe extern "C" {
11095 pub fn BNProjectGetPath(project: *mut BNProject) -> *mut ::std::os::raw::c_char;
11096}
11097unsafe extern "C" {
11098 pub fn BNProjectGetFilePathInProject(
11099 project: *mut BNProject,
11100 file: *mut BNProjectFile,
11101 ) -> *mut ::std::os::raw::c_char;
11102}
11103unsafe extern "C" {
11104 pub fn BNProjectGetName(project: *mut BNProject) -> *mut ::std::os::raw::c_char;
11105}
11106unsafe extern "C" {
11107 pub fn BNProjectSetName(project: *mut BNProject, name: *const ::std::os::raw::c_char) -> bool;
11108}
11109unsafe extern "C" {
11110 pub fn BNProjectGetDescription(project: *mut BNProject) -> *mut ::std::os::raw::c_char;
11111}
11112unsafe extern "C" {
11113 pub fn BNProjectSetDescription(
11114 project: *mut BNProject,
11115 description: *const ::std::os::raw::c_char,
11116 ) -> bool;
11117}
11118unsafe extern "C" {
11119 pub fn BNProjectQueryMetadata(
11120 project: *mut BNProject,
11121 key: *const ::std::os::raw::c_char,
11122 ) -> *mut BNMetadata;
11123}
11124unsafe extern "C" {
11125 pub fn BNProjectStoreMetadata(
11126 project: *mut BNProject,
11127 key: *const ::std::os::raw::c_char,
11128 value: *mut BNMetadata,
11129 ) -> bool;
11130}
11131unsafe extern "C" {
11132 pub fn BNProjectRemoveMetadata(
11133 project: *mut BNProject,
11134 key: *const ::std::os::raw::c_char,
11135 ) -> bool;
11136}
11137unsafe extern "C" {
11138 pub fn BNProjectCreateFileFromPath(
11139 project: *mut BNProject,
11140 path: *const ::std::os::raw::c_char,
11141 folder: *mut BNProjectFolder,
11142 name: *const ::std::os::raw::c_char,
11143 description: *const ::std::os::raw::c_char,
11144 ctxt: *mut ::std::os::raw::c_void,
11145 progress: BNProgressFunction,
11146 ) -> *mut BNProjectFile;
11147}
11148unsafe extern "C" {
11149 pub fn BNProjectCreateFileFromPathUnsafe(
11150 project: *mut BNProject,
11151 path: *const ::std::os::raw::c_char,
11152 folder: *mut BNProjectFolder,
11153 name: *const ::std::os::raw::c_char,
11154 description: *const ::std::os::raw::c_char,
11155 id: *const ::std::os::raw::c_char,
11156 creationTimestamp: i64,
11157 ctxt: *mut ::std::os::raw::c_void,
11158 progress: BNProgressFunction,
11159 ) -> *mut BNProjectFile;
11160}
11161unsafe extern "C" {
11162 pub fn BNProjectCreateFile(
11163 project: *mut BNProject,
11164 contents: *const u8,
11165 contentsSize: usize,
11166 folder: *mut BNProjectFolder,
11167 name: *const ::std::os::raw::c_char,
11168 description: *const ::std::os::raw::c_char,
11169 ctxt: *mut ::std::os::raw::c_void,
11170 progress: BNProgressFunction,
11171 ) -> *mut BNProjectFile;
11172}
11173unsafe extern "C" {
11174 pub fn BNProjectCreateFileUnsafe(
11175 project: *mut BNProject,
11176 contents: *const u8,
11177 contentsSize: usize,
11178 folder: *mut BNProjectFolder,
11179 name: *const ::std::os::raw::c_char,
11180 description: *const ::std::os::raw::c_char,
11181 id: *const ::std::os::raw::c_char,
11182 creationTimestamp: i64,
11183 ctxt: *mut ::std::os::raw::c_void,
11184 progress: BNProgressFunction,
11185 ) -> *mut BNProjectFile;
11186}
11187unsafe extern "C" {
11188 pub fn BNProjectGetFiles(project: *mut BNProject, count: *mut usize)
11189 -> *mut *mut BNProjectFile;
11190}
11191unsafe extern "C" {
11192 pub fn BNProjectGetFileById(
11193 project: *mut BNProject,
11194 id: *const ::std::os::raw::c_char,
11195 ) -> *mut BNProjectFile;
11196}
11197unsafe extern "C" {
11198 pub fn BNProjectGetFileByPathOnDisk(
11199 project: *mut BNProject,
11200 path: *const ::std::os::raw::c_char,
11201 ) -> *mut BNProjectFile;
11202}
11203unsafe extern "C" {
11204 pub fn BNProjectGetFilesByPathInProject(
11205 project: *mut BNProject,
11206 path: *const ::std::os::raw::c_char,
11207 count: *mut usize,
11208 ) -> *mut *mut BNProjectFile;
11209}
11210unsafe extern "C" {
11211 pub fn BNProjectGetFilesInFolder(
11212 project: *mut BNProject,
11213 folder: *mut BNProjectFolder,
11214 count: *mut usize,
11215 ) -> *mut *mut BNProjectFile;
11216}
11217unsafe extern "C" {
11218 pub fn BNProjectPushFile(project: *mut BNProject, file: *mut BNProjectFile) -> bool;
11219}
11220unsafe extern "C" {
11221 pub fn BNProjectDeleteFile(project: *mut BNProject, file: *mut BNProjectFile) -> bool;
11222}
11223unsafe extern "C" {
11224 pub fn BNProjectCreateFolderFromPath(
11225 project: *mut BNProject,
11226 path: *const ::std::os::raw::c_char,
11227 parent: *mut BNProjectFolder,
11228 description: *const ::std::os::raw::c_char,
11229 ctxt: *mut ::std::os::raw::c_void,
11230 progress: BNProgressFunction,
11231 ) -> *mut BNProjectFolder;
11232}
11233unsafe extern "C" {
11234 pub fn BNProjectCreateFolder(
11235 project: *mut BNProject,
11236 parent: *mut BNProjectFolder,
11237 name: *const ::std::os::raw::c_char,
11238 description: *const ::std::os::raw::c_char,
11239 ) -> *mut BNProjectFolder;
11240}
11241unsafe extern "C" {
11242 pub fn BNProjectCreateFolderUnsafe(
11243 project: *mut BNProject,
11244 parent: *mut BNProjectFolder,
11245 name: *const ::std::os::raw::c_char,
11246 description: *const ::std::os::raw::c_char,
11247 id: *const ::std::os::raw::c_char,
11248 ) -> *mut BNProjectFolder;
11249}
11250unsafe extern "C" {
11251 pub fn BNProjectGetFolders(
11252 project: *mut BNProject,
11253 count: *mut usize,
11254 ) -> *mut *mut BNProjectFolder;
11255}
11256unsafe extern "C" {
11257 pub fn BNProjectGetFolderById(
11258 project: *mut BNProject,
11259 id: *const ::std::os::raw::c_char,
11260 ) -> *mut BNProjectFolder;
11261}
11262unsafe extern "C" {
11263 pub fn BNProjectPushFolder(project: *mut BNProject, folder: *mut BNProjectFolder) -> bool;
11264}
11265unsafe extern "C" {
11266 pub fn BNProjectDeleteFolder(
11267 project: *mut BNProject,
11268 folder: *mut BNProjectFolder,
11269 ctxt: *mut ::std::os::raw::c_void,
11270 progress: BNProgressFunction,
11271 ) -> bool;
11272}
11273unsafe extern "C" {
11274 pub fn BNProjectBeginBulkOperation(project: *mut BNProject) -> bool;
11275}
11276unsafe extern "C" {
11277 pub fn BNProjectEndBulkOperation(project: *mut BNProject) -> bool;
11278}
11279unsafe extern "C" {
11280 pub fn BNProjectGetRemoteProject(project: *mut BNProject) -> *mut BNRemoteProject;
11281}
11282unsafe extern "C" {
11283 #[doc = " ProjectFile object"]
11284 pub fn BNNewProjectFileReference(file: *mut BNProjectFile) -> *mut BNProjectFile;
11285}
11286unsafe extern "C" {
11287 pub fn BNFreeProjectFile(file: *mut BNProjectFile);
11288}
11289unsafe extern "C" {
11290 pub fn BNFreeProjectFileList(files: *mut *mut BNProjectFile, count: usize);
11291}
11292unsafe extern "C" {
11293 pub fn BNProjectFileGetPathOnDisk(file: *mut BNProjectFile) -> *mut ::std::os::raw::c_char;
11294}
11295unsafe extern "C" {
11296 pub fn BNProjectFileGetPathInProject(file: *const BNProjectFile)
11297 -> *mut ::std::os::raw::c_char;
11298}
11299unsafe extern "C" {
11300 pub fn BNProjectFileExistsOnDisk(file: *mut BNProjectFile) -> bool;
11301}
11302unsafe extern "C" {
11303 pub fn BNProjectFileGetName(file: *mut BNProjectFile) -> *mut ::std::os::raw::c_char;
11304}
11305unsafe extern "C" {
11306 pub fn BNProjectFileSetName(
11307 file: *mut BNProjectFile,
11308 name: *const ::std::os::raw::c_char,
11309 ) -> bool;
11310}
11311unsafe extern "C" {
11312 pub fn BNProjectFileGetDescription(file: *mut BNProjectFile) -> *mut ::std::os::raw::c_char;
11313}
11314unsafe extern "C" {
11315 pub fn BNProjectFileSetDescription(
11316 file: *mut BNProjectFile,
11317 description: *const ::std::os::raw::c_char,
11318 ) -> bool;
11319}
11320unsafe extern "C" {
11321 pub fn BNProjectFileGetId(file: *mut BNProjectFile) -> *mut ::std::os::raw::c_char;
11322}
11323unsafe extern "C" {
11324 pub fn BNProjectFileGetFolder(file: *mut BNProjectFile) -> *mut BNProjectFolder;
11325}
11326unsafe extern "C" {
11327 pub fn BNProjectFileSetFolder(file: *mut BNProjectFile, folder: *mut BNProjectFolder) -> bool;
11328}
11329unsafe extern "C" {
11330 pub fn BNProjectFileGetProject(file: *mut BNProjectFile) -> *mut BNProject;
11331}
11332unsafe extern "C" {
11333 pub fn BNProjectFileExport(
11334 file: *mut BNProjectFile,
11335 destination: *const ::std::os::raw::c_char,
11336 ) -> bool;
11337}
11338unsafe extern "C" {
11339 pub fn BNProjectFileGetCreationTimestamp(file: *mut BNProjectFile) -> i64;
11340}
11341unsafe extern "C" {
11342 pub fn BNProjectFileAddDependency(file: *mut BNProjectFile, dep: *mut BNProjectFile) -> bool;
11343}
11344unsafe extern "C" {
11345 pub fn BNProjectFileRemoveDependency(file: *mut BNProjectFile, dep: *mut BNProjectFile)
11346 -> bool;
11347}
11348unsafe extern "C" {
11349 pub fn BNProjectFileGetDependencies(
11350 file: *mut BNProjectFile,
11351 count: *mut usize,
11352 ) -> *mut *mut BNProjectFile;
11353}
11354unsafe extern "C" {
11355 pub fn BNProjectFileGetRequiredBy(
11356 file: *mut BNProjectFile,
11357 count: *mut usize,
11358 ) -> *mut *mut BNProjectFile;
11359}
11360unsafe extern "C" {
11361 #[doc = " ProjectFolder object"]
11362 pub fn BNNewProjectFolderReference(folder: *mut BNProjectFolder) -> *mut BNProjectFolder;
11363}
11364unsafe extern "C" {
11365 pub fn BNFreeProjectFolder(folder: *mut BNProjectFolder);
11366}
11367unsafe extern "C" {
11368 pub fn BNFreeProjectFolderList(folders: *mut *mut BNProjectFolder, count: usize);
11369}
11370unsafe extern "C" {
11371 pub fn BNProjectFolderGetId(folder: *mut BNProjectFolder) -> *mut ::std::os::raw::c_char;
11372}
11373unsafe extern "C" {
11374 pub fn BNProjectFolderGetName(folder: *mut BNProjectFolder) -> *mut ::std::os::raw::c_char;
11375}
11376unsafe extern "C" {
11377 pub fn BNProjectFolderSetName(
11378 folder: *mut BNProjectFolder,
11379 name: *const ::std::os::raw::c_char,
11380 ) -> bool;
11381}
11382unsafe extern "C" {
11383 pub fn BNProjectFolderGetDescription(
11384 folder: *mut BNProjectFolder,
11385 ) -> *mut ::std::os::raw::c_char;
11386}
11387unsafe extern "C" {
11388 pub fn BNProjectFolderSetDescription(
11389 folder: *mut BNProjectFolder,
11390 description: *const ::std::os::raw::c_char,
11391 ) -> bool;
11392}
11393unsafe extern "C" {
11394 pub fn BNProjectFolderGetParent(folder: *mut BNProjectFolder) -> *mut BNProjectFolder;
11395}
11396unsafe extern "C" {
11397 pub fn BNProjectFolderSetParent(
11398 folder: *mut BNProjectFolder,
11399 parent: *mut BNProjectFolder,
11400 ) -> bool;
11401}
11402unsafe extern "C" {
11403 pub fn BNProjectFolderGetProject(folder: *mut BNProjectFolder) -> *mut BNProject;
11404}
11405unsafe extern "C" {
11406 pub fn BNProjectFolderExport(
11407 folder: *mut BNProjectFolder,
11408 destination: *const ::std::os::raw::c_char,
11409 ctxt: *mut ::std::os::raw::c_void,
11410 progress: BNProgressFunction,
11411 ) -> bool;
11412}
11413unsafe extern "C" {
11414 pub fn BNProjectFolderGetFiles(
11415 folder: *mut BNProjectFolder,
11416 count: *mut usize,
11417 ) -> *mut *mut BNProjectFile;
11418}
11419unsafe extern "C" {
11420 #[doc = " ExternalLibrary object"]
11421 pub fn BNNewExternalLibraryReference(lib: *mut BNExternalLibrary) -> *mut BNExternalLibrary;
11422}
11423unsafe extern "C" {
11424 pub fn BNFreeExternalLibrary(lib: *mut BNExternalLibrary);
11425}
11426unsafe extern "C" {
11427 pub fn BNFreeExternalLibraryList(libs: *mut *mut BNExternalLibrary, count: usize);
11428}
11429unsafe extern "C" {
11430 pub fn BNExternalLibraryGetName(lib: *mut BNExternalLibrary) -> *mut ::std::os::raw::c_char;
11431}
11432unsafe extern "C" {
11433 pub fn BNExternalLibrarySetBackingFile(lib: *mut BNExternalLibrary, file: *mut BNProjectFile);
11434}
11435unsafe extern "C" {
11436 pub fn BNExternalLibraryGetBackingFile(lib: *mut BNExternalLibrary) -> *mut BNProjectFile;
11437}
11438unsafe extern "C" {
11439 #[doc = " ExternalLocation object"]
11440 pub fn BNNewExternalLocationReference(loc: *mut BNExternalLocation) -> *mut BNExternalLocation;
11441}
11442unsafe extern "C" {
11443 pub fn BNFreeExternalLocation(loc: *mut BNExternalLocation);
11444}
11445unsafe extern "C" {
11446 pub fn BNFreeExternalLocationList(locs: *mut *mut BNExternalLocation, count: usize);
11447}
11448unsafe extern "C" {
11449 pub fn BNExternalLocationGetSourceSymbol(loc: *mut BNExternalLocation) -> *mut BNSymbol;
11450}
11451unsafe extern "C" {
11452 pub fn BNExternalLocationGetTargetAddress(loc: *mut BNExternalLocation) -> u64;
11453}
11454unsafe extern "C" {
11455 pub fn BNExternalLocationGetTargetSymbol(
11456 loc: *mut BNExternalLocation,
11457 ) -> *mut ::std::os::raw::c_char;
11458}
11459unsafe extern "C" {
11460 pub fn BNExternalLocationGetExternalLibrary(
11461 loc: *mut BNExternalLocation,
11462 ) -> *mut BNExternalLibrary;
11463}
11464unsafe extern "C" {
11465 pub fn BNExternalLocationHasTargetAddress(loc: *mut BNExternalLocation) -> bool;
11466}
11467unsafe extern "C" {
11468 pub fn BNExternalLocationHasTargetSymbol(loc: *mut BNExternalLocation) -> bool;
11469}
11470unsafe extern "C" {
11471 pub fn BNExternalLocationSetTargetAddress(
11472 loc: *mut BNExternalLocation,
11473 address: *mut u64,
11474 ) -> bool;
11475}
11476unsafe extern "C" {
11477 pub fn BNExternalLocationSetTargetSymbol(
11478 loc: *mut BNExternalLocation,
11479 symbol: *const ::std::os::raw::c_char,
11480 ) -> bool;
11481}
11482unsafe extern "C" {
11483 pub fn BNExternalLocationSetExternalLibrary(
11484 loc: *mut BNExternalLocation,
11485 library: *mut BNExternalLibrary,
11486 );
11487}
11488unsafe extern "C" {
11489 #[doc = " Database object"]
11490 pub fn BNNewDatabaseReference(database: *mut BNDatabase) -> *mut BNDatabase;
11491}
11492unsafe extern "C" {
11493 pub fn BNFreeDatabase(database: *mut BNDatabase);
11494}
11495unsafe extern "C" {
11496 pub fn BNSetDatabaseCurrentSnapshot(database: *mut BNDatabase, id: i64);
11497}
11498unsafe extern "C" {
11499 pub fn BNGetDatabaseCurrentSnapshot(database: *mut BNDatabase) -> *mut BNSnapshot;
11500}
11501unsafe extern "C" {
11502 pub fn BNGetDatabaseSnapshots(
11503 database: *mut BNDatabase,
11504 count: *mut usize,
11505 ) -> *mut *mut BNSnapshot;
11506}
11507unsafe extern "C" {
11508 pub fn BNGetDatabaseSnapshot(database: *mut BNDatabase, id: i64) -> *mut BNSnapshot;
11509}
11510unsafe extern "C" {
11511 pub fn BNWriteDatabaseSnapshotData(
11512 database: *mut BNDatabase,
11513 parents: *mut i64,
11514 parentCount: usize,
11515 file: *mut BNBinaryView,
11516 name: *const ::std::os::raw::c_char,
11517 data: *mut BNKeyValueStore,
11518 autoSave: bool,
11519 ctxt: *mut ::std::os::raw::c_void,
11520 progress: BNProgressFunction,
11521 ) -> i64;
11522}
11523unsafe extern "C" {
11524 pub fn BNTrimDatabaseSnapshot(database: *mut BNDatabase, id: i64) -> bool;
11525}
11526unsafe extern "C" {
11527 pub fn BNRemoveDatabaseSnapshot(database: *mut BNDatabase, id: i64) -> bool;
11528}
11529unsafe extern "C" {
11530 pub fn BNGetDatabaseGlobalKeys(
11531 database: *mut BNDatabase,
11532 count: *mut usize,
11533 ) -> *mut *mut ::std::os::raw::c_char;
11534}
11535unsafe extern "C" {
11536 pub fn BNDatabaseHasGlobal(
11537 database: *mut BNDatabase,
11538 key: *const ::std::os::raw::c_char,
11539 ) -> ::std::os::raw::c_int;
11540}
11541unsafe extern "C" {
11542 pub fn BNReadDatabaseGlobal(
11543 database: *mut BNDatabase,
11544 key: *const ::std::os::raw::c_char,
11545 ) -> *mut ::std::os::raw::c_char;
11546}
11547unsafe extern "C" {
11548 pub fn BNWriteDatabaseGlobal(
11549 database: *mut BNDatabase,
11550 key: *const ::std::os::raw::c_char,
11551 val: *const ::std::os::raw::c_char,
11552 ) -> bool;
11553}
11554unsafe extern "C" {
11555 pub fn BNReadDatabaseGlobalData(
11556 database: *mut BNDatabase,
11557 key: *const ::std::os::raw::c_char,
11558 ) -> *mut BNDataBuffer;
11559}
11560unsafe extern "C" {
11561 pub fn BNWriteDatabaseGlobalData(
11562 database: *mut BNDatabase,
11563 key: *const ::std::os::raw::c_char,
11564 val: *mut BNDataBuffer,
11565 ) -> bool;
11566}
11567unsafe extern "C" {
11568 pub fn BNGetDatabaseFile(database: *mut BNDatabase) -> *mut BNFileMetadata;
11569}
11570unsafe extern "C" {
11571 pub fn BNDatabaseReloadConnection(database: *mut BNDatabase);
11572}
11573unsafe extern "C" {
11574 pub fn BNReadDatabaseAnalysisCache(database: *mut BNDatabase) -> *mut BNKeyValueStore;
11575}
11576unsafe extern "C" {
11577 pub fn BNWriteDatabaseAnalysisCache(
11578 database: *mut BNDatabase,
11579 val: *mut BNKeyValueStore,
11580 ) -> bool;
11581}
11582unsafe extern "C" {
11583 pub fn BNSnapshotHasData(db: *mut BNDatabase, id: i64) -> bool;
11584}
11585unsafe extern "C" {
11586 #[doc = " Database snapshots"]
11587 pub fn BNNewSnapshotReference(snapshot: *mut BNSnapshot) -> *mut BNSnapshot;
11588}
11589unsafe extern "C" {
11590 pub fn BNFreeSnapshot(snapshot: *mut BNSnapshot);
11591}
11592unsafe extern "C" {
11593 pub fn BNFreeSnapshotList(snapshots: *mut *mut BNSnapshot, count: usize);
11594}
11595unsafe extern "C" {
11596 pub fn BNGetSnapshotDatabase(snapshot: *mut BNSnapshot) -> *mut BNDatabase;
11597}
11598unsafe extern "C" {
11599 pub fn BNGetSnapshotId(snapshot: *mut BNSnapshot) -> i64;
11600}
11601unsafe extern "C" {
11602 pub fn BNGetSnapshotFirstParent(snapshot: *mut BNSnapshot) -> *mut BNSnapshot;
11603}
11604unsafe extern "C" {
11605 pub fn BNGetSnapshotParents(
11606 snapshot: *mut BNSnapshot,
11607 count: *mut usize,
11608 ) -> *mut *mut BNSnapshot;
11609}
11610unsafe extern "C" {
11611 pub fn BNGetSnapshotChildren(
11612 snapshot: *mut BNSnapshot,
11613 count: *mut usize,
11614 ) -> *mut *mut BNSnapshot;
11615}
11616unsafe extern "C" {
11617 pub fn BNGetSnapshotName(snapshot: *mut BNSnapshot) -> *mut ::std::os::raw::c_char;
11618}
11619unsafe extern "C" {
11620 pub fn BNSetSnapshotName(snapshot: *mut BNSnapshot, name: *const ::std::os::raw::c_char);
11621}
11622unsafe extern "C" {
11623 pub fn BNIsSnapshotAutoSave(snapshot: *mut BNSnapshot) -> bool;
11624}
11625unsafe extern "C" {
11626 pub fn BNSnapshotHasContents(snapshot: *mut BNSnapshot) -> bool;
11627}
11628unsafe extern "C" {
11629 pub fn BNSnapshotHasUndo(snapshot: *mut BNSnapshot) -> bool;
11630}
11631unsafe extern "C" {
11632 pub fn BNGetSnapshotFileContents(snapshot: *mut BNSnapshot) -> *mut BNDataBuffer;
11633}
11634unsafe extern "C" {
11635 pub fn BNGetSnapshotFileContentsHash(snapshot: *mut BNSnapshot) -> *mut BNDataBuffer;
11636}
11637unsafe extern "C" {
11638 pub fn BNReadSnapshotData(snapshot: *mut BNSnapshot) -> *mut BNKeyValueStore;
11639}
11640unsafe extern "C" {
11641 pub fn BNReadSnapshotDataWithProgress(
11642 snapshot: *mut BNSnapshot,
11643 ctxt: *mut ::std::os::raw::c_void,
11644 progress: BNProgressFunction,
11645 ) -> *mut BNKeyValueStore;
11646}
11647unsafe extern "C" {
11648 pub fn BNGetSnapshotUndoData(snapshot: *mut BNSnapshot) -> *mut BNDataBuffer;
11649}
11650unsafe extern "C" {
11651 pub fn BNGetSnapshotUndoEntries(
11652 snapshot: *mut BNSnapshot,
11653 count: *mut usize,
11654 ) -> *mut *mut BNUndoEntry;
11655}
11656unsafe extern "C" {
11657 pub fn BNGetSnapshotUndoEntriesWithProgress(
11658 snapshot: *mut BNSnapshot,
11659 ctxt: *mut ::std::os::raw::c_void,
11660 progress: BNProgressFunction,
11661 count: *mut usize,
11662 ) -> *mut *mut BNUndoEntry;
11663}
11664unsafe extern "C" {
11665 pub fn BNSnapshotHasAncestor(snapshot: *mut BNSnapshot, other: *mut BNSnapshot) -> bool;
11666}
11667unsafe extern "C" {
11668 pub fn BNSnapshotStoreData(
11669 snapshot: *mut BNSnapshot,
11670 data: *mut BNKeyValueStore,
11671 ctxt: *mut ::std::os::raw::c_void,
11672 progress: BNProgressFunction,
11673 ) -> bool;
11674}
11675unsafe extern "C" {
11676 #[doc = " Undo actions"]
11677 pub fn BNNewUndoActionReference(action: *mut BNUndoAction) -> *mut BNUndoAction;
11678}
11679unsafe extern "C" {
11680 pub fn BNFreeUndoAction(action: *mut BNUndoAction);
11681}
11682unsafe extern "C" {
11683 pub fn BNFreeUndoActionList(actions: *mut *mut BNUndoAction, count: usize);
11684}
11685unsafe extern "C" {
11686 pub fn BNUndoActionGetSummaryText(action: *mut BNUndoAction) -> *mut ::std::os::raw::c_char;
11687}
11688unsafe extern "C" {
11689 pub fn BNUndoActionGetSummary(
11690 action: *mut BNUndoAction,
11691 tokenCount: *mut usize,
11692 ) -> *mut BNInstructionTextToken;
11693}
11694unsafe extern "C" {
11695 #[doc = " Undo entries"]
11696 pub fn BNNewUndoEntryReference(entry: *mut BNUndoEntry) -> *mut BNUndoEntry;
11697}
11698unsafe extern "C" {
11699 pub fn BNFreeUndoEntry(entry: *mut BNUndoEntry);
11700}
11701unsafe extern "C" {
11702 pub fn BNFreeUndoEntryList(entrys: *mut *mut BNUndoEntry, count: usize);
11703}
11704unsafe extern "C" {
11705 pub fn BNUndoEntryGetId(entry: *mut BNUndoEntry) -> *mut ::std::os::raw::c_char;
11706}
11707unsafe extern "C" {
11708 pub fn BNUndoEntryGetActions(
11709 entry: *mut BNUndoEntry,
11710 count: *mut usize,
11711 ) -> *mut *mut BNUndoAction;
11712}
11713unsafe extern "C" {
11714 pub fn BNUndoEntryGetTimestamp(entry: *mut BNUndoEntry) -> u64;
11715}
11716unsafe extern "C" {
11717 pub fn BNRebase(data: *mut BNBinaryView, address: u64) -> bool;
11718}
11719unsafe extern "C" {
11720 pub fn BNRebaseWithProgress(
11721 data: *mut BNBinaryView,
11722 address: u64,
11723 ctxt: *mut ::std::os::raw::c_void,
11724 progress: BNProgressFunction,
11725 ) -> bool;
11726}
11727unsafe extern "C" {
11728 pub fn BNCreateSnapshotedView(
11729 data: *mut BNBinaryView,
11730 viewName: *const ::std::os::raw::c_char,
11731 ) -> bool;
11732}
11733unsafe extern "C" {
11734 pub fn BNCreateSnapshotedViewWithProgress(
11735 data: *mut BNBinaryView,
11736 viewName: *const ::std::os::raw::c_char,
11737 ctxt: *mut ::std::os::raw::c_void,
11738 progress: BNProgressFunction,
11739 ) -> bool;
11740}
11741unsafe extern "C" {
11742 pub fn BNGetOriginalFilename(file: *mut BNFileMetadata) -> *mut ::std::os::raw::c_char;
11743}
11744unsafe extern "C" {
11745 pub fn BNSetOriginalFilename(file: *mut BNFileMetadata, name: *const ::std::os::raw::c_char);
11746}
11747unsafe extern "C" {
11748 pub fn BNGetFilename(file: *mut BNFileMetadata) -> *mut ::std::os::raw::c_char;
11749}
11750unsafe extern "C" {
11751 pub fn BNSetFilename(file: *mut BNFileMetadata, name: *const ::std::os::raw::c_char);
11752}
11753unsafe extern "C" {
11754 pub fn BNGetVirtualPath(file: *mut BNFileMetadata) -> *mut ::std::os::raw::c_char;
11755}
11756unsafe extern "C" {
11757 pub fn BNSetVirtualPath(file: *mut BNFileMetadata, path: *const ::std::os::raw::c_char);
11758}
11759unsafe extern "C" {
11760 pub fn BNGetProjectFile(file: *mut BNFileMetadata) -> *mut BNProjectFile;
11761}
11762unsafe extern "C" {
11763 pub fn BNSetProjectFile(file: *mut BNFileMetadata, pfile: *mut BNProjectFile);
11764}
11765unsafe extern "C" {
11766 pub fn BNBeginUndoActions(
11767 file: *mut BNFileMetadata,
11768 anonymousAllowed: bool,
11769 ) -> *mut ::std::os::raw::c_char;
11770}
11771unsafe extern "C" {
11772 pub fn BNCommitUndoActions(file: *mut BNFileMetadata, id: *const ::std::os::raw::c_char);
11773}
11774unsafe extern "C" {
11775 pub fn BNRevertUndoActions(file: *mut BNFileMetadata, id: *const ::std::os::raw::c_char);
11776}
11777unsafe extern "C" {
11778 pub fn BNForgetUndoActions(file: *mut BNFileMetadata, id: *const ::std::os::raw::c_char);
11779}
11780unsafe extern "C" {
11781 pub fn BNCanUndo(file: *mut BNFileMetadata) -> bool;
11782}
11783unsafe extern "C" {
11784 pub fn BNUndo(file: *mut BNFileMetadata) -> bool;
11785}
11786unsafe extern "C" {
11787 pub fn BNCanRedo(file: *mut BNFileMetadata) -> bool;
11788}
11789unsafe extern "C" {
11790 pub fn BNRedo(file: *mut BNFileMetadata) -> bool;
11791}
11792unsafe extern "C" {
11793 pub fn BNGetUndoEntries(file: *mut BNFileMetadata, count: *mut usize) -> *mut *mut BNUndoEntry;
11794}
11795unsafe extern "C" {
11796 pub fn BNGetRedoEntries(file: *mut BNFileMetadata, count: *mut usize) -> *mut *mut BNUndoEntry;
11797}
11798unsafe extern "C" {
11799 pub fn BNGetLastUndoEntry(file: *mut BNFileMetadata) -> *mut BNUndoEntry;
11800}
11801unsafe extern "C" {
11802 pub fn BNGetLastRedoEntry(file: *mut BNFileMetadata) -> *mut BNUndoEntry;
11803}
11804unsafe extern "C" {
11805 pub fn BNGetLastUndoEntryTitle(file: *mut BNFileMetadata) -> *mut ::std::os::raw::c_char;
11806}
11807unsafe extern "C" {
11808 pub fn BNGetLastRedoEntryTitle(file: *mut BNFileMetadata) -> *mut ::std::os::raw::c_char;
11809}
11810unsafe extern "C" {
11811 pub fn BNFreeUndoEntries(entries: *mut *mut BNUndoEntry, count: usize);
11812}
11813unsafe extern "C" {
11814 pub fn BNClearUndoEntries(file: *mut BNFileMetadata);
11815}
11816unsafe extern "C" {
11817 pub fn BNNewUserReference(user: *mut BNUser) -> *mut BNUser;
11818}
11819unsafe extern "C" {
11820 pub fn BNFreeUser(user: *mut BNUser);
11821}
11822unsafe extern "C" {
11823 pub fn BNGetUsers(file: *mut BNFileMetadata, count: *mut usize) -> *mut *mut BNUser;
11824}
11825unsafe extern "C" {
11826 pub fn BNFreeUserList(users: *mut *mut BNUser, count: usize);
11827}
11828unsafe extern "C" {
11829 pub fn BNGetUserName(user: *mut BNUser) -> *mut ::std::os::raw::c_char;
11830}
11831unsafe extern "C" {
11832 pub fn BNGetUserEmail(user: *mut BNUser) -> *mut ::std::os::raw::c_char;
11833}
11834unsafe extern "C" {
11835 pub fn BNGetUserId(user: *mut BNUser) -> *mut ::std::os::raw::c_char;
11836}
11837unsafe extern "C" {
11838 pub fn BNGetCurrentView(file: *mut BNFileMetadata) -> *mut ::std::os::raw::c_char;
11839}
11840unsafe extern "C" {
11841 pub fn BNGetCurrentOffset(file: *mut BNFileMetadata) -> u64;
11842}
11843unsafe extern "C" {
11844 pub fn BNNavigate(
11845 file: *mut BNFileMetadata,
11846 view: *const ::std::os::raw::c_char,
11847 offset: u64,
11848 ) -> bool;
11849}
11850unsafe extern "C" {
11851 pub fn BNGetFileViewOfType(
11852 file: *mut BNFileMetadata,
11853 name: *const ::std::os::raw::c_char,
11854 ) -> *mut BNBinaryView;
11855}
11856unsafe extern "C" {
11857 pub fn BNGetExistingViews(
11858 file: *mut BNFileMetadata,
11859 count: *mut usize,
11860 ) -> *mut *mut ::std::os::raw::c_char;
11861}
11862unsafe extern "C" {
11863 pub fn BNFileMetadataGetSessionId(file: *mut BNFileMetadata) -> usize;
11864}
11865unsafe extern "C" {
11866 pub fn BNIsSnapshotDataAppliedWithoutError(view: *mut BNFileMetadata) -> bool;
11867}
11868unsafe extern "C" {
11869 pub fn BNUnregisterViewOfType(
11870 file: *mut BNFileMetadata,
11871 type_: *const ::std::os::raw::c_char,
11872 view: *mut BNBinaryView,
11873 );
11874}
11875unsafe extern "C" {
11876 #[doc = " Memory Map"]
11877 pub fn BNGetBaseMemoryMapDescription(view: *mut BNBinaryView) -> *mut ::std::os::raw::c_char;
11878}
11879unsafe extern "C" {
11880 pub fn BNGetMemoryMapDescription(view: *mut BNBinaryView) -> *mut ::std::os::raw::c_char;
11881}
11882unsafe extern "C" {
11883 pub fn BNSetLogicalMemoryMapEnabled(view: *mut BNBinaryView, enabled: bool);
11884}
11885unsafe extern "C" {
11886 pub fn BNIsMemoryMapActivated(view: *mut BNBinaryView) -> bool;
11887}
11888unsafe extern "C" {
11889 pub fn BNAddBinaryMemoryRegion(
11890 view: *mut BNBinaryView,
11891 name: *const ::std::os::raw::c_char,
11892 start: u64,
11893 data: *mut BNBinaryView,
11894 flags: u32,
11895 ) -> bool;
11896}
11897unsafe extern "C" {
11898 pub fn BNAddDataMemoryRegion(
11899 view: *mut BNBinaryView,
11900 name: *const ::std::os::raw::c_char,
11901 start: u64,
11902 data: *mut BNDataBuffer,
11903 flags: u32,
11904 ) -> bool;
11905}
11906unsafe extern "C" {
11907 pub fn BNAddUnbackedMemoryRegion(
11908 view: *mut BNBinaryView,
11909 name: *const ::std::os::raw::c_char,
11910 start: u64,
11911 length: u64,
11912 flags: u32,
11913 fill: u8,
11914 ) -> bool;
11915}
11916unsafe extern "C" {
11917 pub fn BNAddRemoteMemoryRegion(
11918 view: *mut BNBinaryView,
11919 name: *const ::std::os::raw::c_char,
11920 start: u64,
11921 accessor: *mut BNFileAccessor,
11922 flags: u32,
11923 ) -> bool;
11924}
11925unsafe extern "C" {
11926 pub fn BNRemoveMemoryRegion(
11927 view: *mut BNBinaryView,
11928 name: *const ::std::os::raw::c_char,
11929 ) -> bool;
11930}
11931unsafe extern "C" {
11932 pub fn BNGetActiveMemoryRegionAt(
11933 view: *mut BNBinaryView,
11934 addr: u64,
11935 ) -> *mut ::std::os::raw::c_char;
11936}
11937unsafe extern "C" {
11938 pub fn BNGetMemoryRegionFlags(
11939 view: *mut BNBinaryView,
11940 name: *const ::std::os::raw::c_char,
11941 ) -> u32;
11942}
11943unsafe extern "C" {
11944 pub fn BNSetMemoryRegionFlags(
11945 view: *mut BNBinaryView,
11946 name: *const ::std::os::raw::c_char,
11947 flags: u32,
11948 ) -> bool;
11949}
11950unsafe extern "C" {
11951 pub fn BNIsMemoryRegionEnabled(
11952 view: *mut BNBinaryView,
11953 name: *const ::std::os::raw::c_char,
11954 ) -> bool;
11955}
11956unsafe extern "C" {
11957 pub fn BNSetMemoryRegionEnabled(
11958 view: *mut BNBinaryView,
11959 name: *const ::std::os::raw::c_char,
11960 enable: bool,
11961 ) -> bool;
11962}
11963unsafe extern "C" {
11964 pub fn BNIsMemoryRegionRebaseable(
11965 view: *mut BNBinaryView,
11966 name: *const ::std::os::raw::c_char,
11967 ) -> bool;
11968}
11969unsafe extern "C" {
11970 pub fn BNSetMemoryRegionRebaseable(
11971 view: *mut BNBinaryView,
11972 name: *const ::std::os::raw::c_char,
11973 rebaseable: bool,
11974 ) -> bool;
11975}
11976unsafe extern "C" {
11977 pub fn BNGetMemoryRegionFill(
11978 view: *mut BNBinaryView,
11979 name: *const ::std::os::raw::c_char,
11980 ) -> u8;
11981}
11982unsafe extern "C" {
11983 pub fn BNSetMemoryRegionFill(
11984 view: *mut BNBinaryView,
11985 name: *const ::std::os::raw::c_char,
11986 fill: u8,
11987 ) -> bool;
11988}
11989unsafe extern "C" {
11990 pub fn BNGetMemoryRegionDisplayName(
11991 view: *mut BNBinaryView,
11992 name: *const ::std::os::raw::c_char,
11993 ) -> *mut ::std::os::raw::c_char;
11994}
11995unsafe extern "C" {
11996 pub fn BNSetMemoryRegionDisplayName(
11997 view: *mut BNBinaryView,
11998 name: *const ::std::os::raw::c_char,
11999 displayName: *const ::std::os::raw::c_char,
12000 ) -> bool;
12001}
12002unsafe extern "C" {
12003 pub fn BNIsMemoryRegionLocal(
12004 view: *mut BNBinaryView,
12005 name: *const ::std::os::raw::c_char,
12006 ) -> bool;
12007}
12008unsafe extern "C" {
12009 pub fn BNResetMemoryMap(view: *mut BNBinaryView);
12010}
12011unsafe extern "C" {
12012 #[doc = " Binary view access"]
12013 pub fn BNNewViewReference(view: *mut BNBinaryView) -> *mut BNBinaryView;
12014}
12015unsafe extern "C" {
12016 pub fn BNFreeBinaryView(view: *mut BNBinaryView);
12017}
12018unsafe extern "C" {
12019 pub fn BNGetFileForView(view: *mut BNBinaryView) -> *mut BNFileMetadata;
12020}
12021unsafe extern "C" {
12022 pub fn BNGetViewType(view: *mut BNBinaryView) -> *mut ::std::os::raw::c_char;
12023}
12024unsafe extern "C" {
12025 pub fn BNGetParentView(view: *mut BNBinaryView) -> *mut BNBinaryView;
12026}
12027unsafe extern "C" {
12028 pub fn BNReadViewData(
12029 view: *mut BNBinaryView,
12030 dest: *mut ::std::os::raw::c_void,
12031 offset: u64,
12032 len: usize,
12033 ) -> usize;
12034}
12035unsafe extern "C" {
12036 pub fn BNReadViewBuffer(view: *mut BNBinaryView, offset: u64, len: usize) -> *mut BNDataBuffer;
12037}
12038unsafe extern "C" {
12039 pub fn BNGetViewDataPointer(view: *mut BNBinaryView) -> *const u8;
12040}
12041unsafe extern "C" {
12042 pub fn BNGetViewDataLength(view: *mut BNBinaryView) -> usize;
12043}
12044unsafe extern "C" {
12045 pub fn BNWriteViewData(
12046 view: *mut BNBinaryView,
12047 offset: u64,
12048 data: *const ::std::os::raw::c_void,
12049 len: usize,
12050 ) -> usize;
12051}
12052unsafe extern "C" {
12053 pub fn BNWriteViewBuffer(
12054 view: *mut BNBinaryView,
12055 offset: u64,
12056 data: *mut BNDataBuffer,
12057 ) -> usize;
12058}
12059unsafe extern "C" {
12060 pub fn BNInsertViewData(
12061 view: *mut BNBinaryView,
12062 offset: u64,
12063 data: *const ::std::os::raw::c_void,
12064 len: usize,
12065 ) -> usize;
12066}
12067unsafe extern "C" {
12068 pub fn BNInsertViewBuffer(
12069 view: *mut BNBinaryView,
12070 offset: u64,
12071 data: *mut BNDataBuffer,
12072 ) -> usize;
12073}
12074unsafe extern "C" {
12075 pub fn BNRemoveViewData(view: *mut BNBinaryView, offset: u64, len: u64) -> usize;
12076}
12077unsafe extern "C" {
12078 pub fn BNNotifyDataWritten(view: *mut BNBinaryView, offset: u64, len: usize);
12079}
12080unsafe extern "C" {
12081 pub fn BNNotifyDataInserted(view: *mut BNBinaryView, offset: u64, len: usize);
12082}
12083unsafe extern "C" {
12084 pub fn BNNotifyDataRemoved(view: *mut BNBinaryView, offset: u64, len: u64);
12085}
12086unsafe extern "C" {
12087 pub fn BNGetEntropy(
12088 view: *mut BNBinaryView,
12089 offset: u64,
12090 len: usize,
12091 blockSize: usize,
12092 result: *mut f32,
12093 ) -> usize;
12094}
12095unsafe extern "C" {
12096 pub fn BNGetModification(view: *mut BNBinaryView, offset: u64) -> BNModificationStatus;
12097}
12098unsafe extern "C" {
12099 pub fn BNGetModificationArray(
12100 view: *mut BNBinaryView,
12101 offset: u64,
12102 result: *mut BNModificationStatus,
12103 len: usize,
12104 ) -> usize;
12105}
12106unsafe extern "C" {
12107 pub fn BNIsValidOffset(view: *mut BNBinaryView, offset: u64) -> bool;
12108}
12109unsafe extern "C" {
12110 pub fn BNIsOffsetReadable(view: *mut BNBinaryView, offset: u64) -> bool;
12111}
12112unsafe extern "C" {
12113 pub fn BNIsOffsetWritable(view: *mut BNBinaryView, offset: u64) -> bool;
12114}
12115unsafe extern "C" {
12116 pub fn BNIsOffsetExecutable(view: *mut BNBinaryView, offset: u64) -> bool;
12117}
12118unsafe extern "C" {
12119 pub fn BNIsOffsetBackedByFile(view: *mut BNBinaryView, offset: u64) -> bool;
12120}
12121unsafe extern "C" {
12122 pub fn BNIsOffsetCodeSemantics(view: *mut BNBinaryView, offset: u64) -> bool;
12123}
12124unsafe extern "C" {
12125 pub fn BNIsOffsetExternSemantics(view: *mut BNBinaryView, offset: u64) -> bool;
12126}
12127unsafe extern "C" {
12128 pub fn BNIsOffsetWritableSemantics(view: *mut BNBinaryView, offset: u64) -> bool;
12129}
12130unsafe extern "C" {
12131 pub fn BNIsOffsetReadOnlySemantics(view: *mut BNBinaryView, offset: u64) -> bool;
12132}
12133unsafe extern "C" {
12134 pub fn BNGetNextValidOffset(view: *mut BNBinaryView, offset: u64) -> u64;
12135}
12136unsafe extern "C" {
12137 pub fn BNGetImageBase(view: *mut BNBinaryView) -> u64;
12138}
12139unsafe extern "C" {
12140 pub fn BNGetOriginalImageBase(view: *mut BNBinaryView) -> u64;
12141}
12142unsafe extern "C" {
12143 pub fn BNSetOriginalImageBase(view: *mut BNBinaryView, imageBase: u64);
12144}
12145unsafe extern "C" {
12146 pub fn BNGetStartOffset(view: *mut BNBinaryView) -> u64;
12147}
12148unsafe extern "C" {
12149 pub fn BNGetEndOffset(view: *mut BNBinaryView) -> u64;
12150}
12151unsafe extern "C" {
12152 pub fn BNGetViewLength(view: *mut BNBinaryView) -> u64;
12153}
12154unsafe extern "C" {
12155 pub fn BNGetEntryPoint(view: *mut BNBinaryView) -> u64;
12156}
12157unsafe extern "C" {
12158 pub fn BNGetDefaultArchitecture(view: *mut BNBinaryView) -> *mut BNArchitecture;
12159}
12160unsafe extern "C" {
12161 pub fn BNSetDefaultArchitecture(view: *mut BNBinaryView, arch: *mut BNArchitecture);
12162}
12163unsafe extern "C" {
12164 pub fn BNGetDefaultPlatform(view: *mut BNBinaryView) -> *mut BNPlatform;
12165}
12166unsafe extern "C" {
12167 pub fn BNSetDefaultPlatform(view: *mut BNBinaryView, platform: *mut BNPlatform);
12168}
12169unsafe extern "C" {
12170 pub fn BNGetDefaultEndianness(view: *mut BNBinaryView) -> BNEndianness;
12171}
12172unsafe extern "C" {
12173 pub fn BNIsRelocatable(view: *mut BNBinaryView) -> bool;
12174}
12175unsafe extern "C" {
12176 pub fn BNGetViewAddressSize(view: *mut BNBinaryView) -> usize;
12177}
12178unsafe extern "C" {
12179 pub fn BNIsViewModified(view: *mut BNBinaryView) -> bool;
12180}
12181unsafe extern "C" {
12182 pub fn BNIsExecutableView(view: *mut BNBinaryView) -> bool;
12183}
12184unsafe extern "C" {
12185 pub fn BNSaveToFile(view: *mut BNBinaryView, file: *mut BNFileAccessor) -> bool;
12186}
12187unsafe extern "C" {
12188 pub fn BNSaveToFilename(
12189 view: *mut BNBinaryView,
12190 filename: *const ::std::os::raw::c_char,
12191 ) -> bool;
12192}
12193unsafe extern "C" {
12194 pub fn BNDefineRelocation(
12195 view: *mut BNBinaryView,
12196 arch: *mut BNArchitecture,
12197 info: *mut BNRelocationInfo,
12198 target: u64,
12199 reloc: u64,
12200 );
12201}
12202unsafe extern "C" {
12203 pub fn BNDefineSymbolRelocation(
12204 view: *mut BNBinaryView,
12205 arch: *mut BNArchitecture,
12206 info: *mut BNRelocationInfo,
12207 target: *mut BNSymbol,
12208 reloc: u64,
12209 );
12210}
12211unsafe extern "C" {
12212 pub fn BNGetRelocationRanges(view: *mut BNBinaryView, count: *mut usize) -> *mut BNRange;
12213}
12214unsafe extern "C" {
12215 pub fn BNGetRelocationRangesAtAddress(
12216 view: *mut BNBinaryView,
12217 addr: u64,
12218 count: *mut usize,
12219 ) -> *mut BNRange;
12220}
12221unsafe extern "C" {
12222 pub fn BNGetRelocationRangesInRange(
12223 view: *mut BNBinaryView,
12224 addr: u64,
12225 size: u64,
12226 count: *mut usize,
12227 ) -> *mut BNRange;
12228}
12229unsafe extern "C" {
12230 pub fn BNRangeContainsRelocation(view: *mut BNBinaryView, addr: u64, size: usize) -> bool;
12231}
12232unsafe extern "C" {
12233 pub fn BNGetRelocationsAt(
12234 view: *mut BNBinaryView,
12235 addr: u64,
12236 count: *mut usize,
12237 ) -> *mut *mut BNRelocation;
12238}
12239unsafe extern "C" {
12240 pub fn BNFreeRelocationList(relocations: *mut *mut BNRelocation, count: usize);
12241}
12242unsafe extern "C" {
12243 pub fn BNFreeRelocationRanges(ranges: *mut BNRange);
12244}
12245unsafe extern "C" {
12246 pub fn BNRegisterDataNotification(
12247 view: *mut BNBinaryView,
12248 notify: *mut BNBinaryDataNotification,
12249 );
12250}
12251unsafe extern "C" {
12252 pub fn BNUnregisterDataNotification(
12253 view: *mut BNBinaryView,
12254 notify: *mut BNBinaryDataNotification,
12255 );
12256}
12257unsafe extern "C" {
12258 pub fn BNRegisterProjectNotification(
12259 project: *mut BNProject,
12260 notify: *mut BNProjectNotification,
12261 );
12262}
12263unsafe extern "C" {
12264 pub fn BNUnregisterProjectNotification(
12265 project: *mut BNProject,
12266 notify: *mut BNProjectNotification,
12267 );
12268}
12269unsafe extern "C" {
12270 pub fn BNCanAssemble(view: *mut BNBinaryView, arch: *mut BNArchitecture) -> bool;
12271}
12272unsafe extern "C" {
12273 pub fn BNIsNeverBranchPatchAvailable(
12274 view: *mut BNBinaryView,
12275 arch: *mut BNArchitecture,
12276 addr: u64,
12277 ) -> bool;
12278}
12279unsafe extern "C" {
12280 pub fn BNIsAlwaysBranchPatchAvailable(
12281 view: *mut BNBinaryView,
12282 arch: *mut BNArchitecture,
12283 addr: u64,
12284 ) -> bool;
12285}
12286unsafe extern "C" {
12287 pub fn BNIsInvertBranchPatchAvailable(
12288 view: *mut BNBinaryView,
12289 arch: *mut BNArchitecture,
12290 addr: u64,
12291 ) -> bool;
12292}
12293unsafe extern "C" {
12294 pub fn BNIsSkipAndReturnZeroPatchAvailable(
12295 view: *mut BNBinaryView,
12296 arch: *mut BNArchitecture,
12297 addr: u64,
12298 ) -> bool;
12299}
12300unsafe extern "C" {
12301 pub fn BNIsSkipAndReturnValuePatchAvailable(
12302 view: *mut BNBinaryView,
12303 arch: *mut BNArchitecture,
12304 addr: u64,
12305 ) -> bool;
12306}
12307unsafe extern "C" {
12308 pub fn BNConvertToNop(view: *mut BNBinaryView, arch: *mut BNArchitecture, addr: u64) -> bool;
12309}
12310unsafe extern "C" {
12311 pub fn BNAlwaysBranch(view: *mut BNBinaryView, arch: *mut BNArchitecture, addr: u64) -> bool;
12312}
12313unsafe extern "C" {
12314 pub fn BNInvertBranch(view: *mut BNBinaryView, arch: *mut BNArchitecture, addr: u64) -> bool;
12315}
12316unsafe extern "C" {
12317 pub fn BNSkipAndReturnValue(
12318 view: *mut BNBinaryView,
12319 arch: *mut BNArchitecture,
12320 addr: u64,
12321 value: u64,
12322 ) -> bool;
12323}
12324unsafe extern "C" {
12325 pub fn BNGetInstructionLength(
12326 view: *mut BNBinaryView,
12327 arch: *mut BNArchitecture,
12328 addr: u64,
12329 ) -> usize;
12330}
12331unsafe extern "C" {
12332 pub fn BNFindNextData(
12333 view: *mut BNBinaryView,
12334 start: u64,
12335 data: *mut BNDataBuffer,
12336 result: *mut u64,
12337 flags: BNFindFlag,
12338 ) -> bool;
12339}
12340unsafe extern "C" {
12341 pub fn BNFindNextText(
12342 view: *mut BNBinaryView,
12343 start: u64,
12344 data: *const ::std::os::raw::c_char,
12345 result: *mut u64,
12346 settings: *mut BNDisassemblySettings,
12347 flags: BNFindFlag,
12348 viewType: BNFunctionViewType,
12349 ) -> bool;
12350}
12351unsafe extern "C" {
12352 pub fn BNFindNextConstant(
12353 view: *mut BNBinaryView,
12354 start: u64,
12355 constant: u64,
12356 result: *mut u64,
12357 settings: *mut BNDisassemblySettings,
12358 viewType: BNFunctionViewType,
12359 ) -> bool;
12360}
12361unsafe extern "C" {
12362 pub fn BNFindNextDataWithProgress(
12363 view: *mut BNBinaryView,
12364 start: u64,
12365 end: u64,
12366 data: *mut BNDataBuffer,
12367 result: *mut u64,
12368 flags: BNFindFlag,
12369 ctxt: *mut ::std::os::raw::c_void,
12370 progress: BNProgressFunction,
12371 ) -> bool;
12372}
12373unsafe extern "C" {
12374 pub fn BNFindNextTextWithProgress(
12375 view: *mut BNBinaryView,
12376 start: u64,
12377 end: u64,
12378 data: *const ::std::os::raw::c_char,
12379 result: *mut u64,
12380 settings: *mut BNDisassemblySettings,
12381 flags: BNFindFlag,
12382 viewType: BNFunctionViewType,
12383 ctxt: *mut ::std::os::raw::c_void,
12384 progress: BNProgressFunction,
12385 ) -> bool;
12386}
12387unsafe extern "C" {
12388 pub fn BNFindNextConstantWithProgress(
12389 view: *mut BNBinaryView,
12390 start: u64,
12391 end: u64,
12392 constant: u64,
12393 result: *mut u64,
12394 settings: *mut BNDisassemblySettings,
12395 viewType: BNFunctionViewType,
12396 ctxt: *mut ::std::os::raw::c_void,
12397 progress: BNProgressFunction,
12398 ) -> bool;
12399}
12400unsafe extern "C" {
12401 pub fn BNFindAllDataWithProgress(
12402 view: *mut BNBinaryView,
12403 start: u64,
12404 end: u64,
12405 data: *mut BNDataBuffer,
12406 flags: BNFindFlag,
12407 ctxt: *mut ::std::os::raw::c_void,
12408 progress: BNProgressFunction,
12409 matchCtxt: *mut ::std::os::raw::c_void,
12410 matchCallback: ::std::option::Option<
12411 unsafe extern "C" fn(
12412 matchCtxt: *mut ::std::os::raw::c_void,
12413 addr: u64,
12414 match_: *mut BNDataBuffer,
12415 ) -> bool,
12416 >,
12417 ) -> bool;
12418}
12419unsafe extern "C" {
12420 pub fn BNFindAllTextWithProgress(
12421 view: *mut BNBinaryView,
12422 start: u64,
12423 end: u64,
12424 data: *const ::std::os::raw::c_char,
12425 settings: *mut BNDisassemblySettings,
12426 flags: BNFindFlag,
12427 viewType: BNFunctionViewType,
12428 ctxt: *mut ::std::os::raw::c_void,
12429 progress: BNProgressFunction,
12430 matchCtxt: *mut ::std::os::raw::c_void,
12431 matchCallback: ::std::option::Option<
12432 unsafe extern "C" fn(
12433 matchCtxt: *mut ::std::os::raw::c_void,
12434 addr: u64,
12435 match_: *const ::std::os::raw::c_char,
12436 line: *mut BNLinearDisassemblyLine,
12437 ) -> bool,
12438 >,
12439 ) -> bool;
12440}
12441unsafe extern "C" {
12442 pub fn BNFindAllConstantWithProgress(
12443 view: *mut BNBinaryView,
12444 start: u64,
12445 end: u64,
12446 constant: u64,
12447 settings: *mut BNDisassemblySettings,
12448 viewType: BNFunctionViewType,
12449 ctxt: *mut ::std::os::raw::c_void,
12450 progress: BNProgressFunction,
12451 matchCtxt: *mut ::std::os::raw::c_void,
12452 matchCallback: ::std::option::Option<
12453 unsafe extern "C" fn(
12454 matchCtxt: *mut ::std::os::raw::c_void,
12455 addr: u64,
12456 line: *mut BNLinearDisassemblyLine,
12457 ) -> bool,
12458 >,
12459 ) -> bool;
12460}
12461unsafe extern "C" {
12462 pub fn BNSearch(
12463 view: *mut BNBinaryView,
12464 query: *const ::std::os::raw::c_char,
12465 context: *mut ::std::os::raw::c_void,
12466 progressCallback: BNProgressFunction,
12467 matchContext: *mut ::std::os::raw::c_void,
12468 callback: ::std::option::Option<
12469 unsafe extern "C" fn(
12470 arg1: *mut ::std::os::raw::c_void,
12471 arg2: u64,
12472 arg3: *mut BNDataBuffer,
12473 ) -> bool,
12474 >,
12475 ) -> bool;
12476}
12477unsafe extern "C" {
12478 pub fn BNDetectSearchMode(query: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
12479}
12480unsafe extern "C" {
12481 pub fn BNPerformSearch(
12482 query: *const ::std::os::raw::c_char,
12483 buffer: *const u8,
12484 size: usize,
12485 callback: BNProgressFunction,
12486 context: *mut ::std::os::raw::c_void,
12487 ) -> bool;
12488}
12489unsafe extern "C" {
12490 pub fn BNBeginBulkAddSegments(view: *mut BNBinaryView);
12491}
12492unsafe extern "C" {
12493 pub fn BNEndBulkAddSegments(view: *mut BNBinaryView);
12494}
12495unsafe extern "C" {
12496 pub fn BNCancelBulkAddSegments(view: *mut BNBinaryView);
12497}
12498unsafe extern "C" {
12499 pub fn BNAddAutoSegment(
12500 view: *mut BNBinaryView,
12501 start: u64,
12502 length: u64,
12503 dataOffset: u64,
12504 dataLength: u64,
12505 flags: u32,
12506 );
12507}
12508unsafe extern "C" {
12509 pub fn BNAddAutoSegments(
12510 view: *mut BNBinaryView,
12511 segmentInfo: *const BNSegmentInfo,
12512 count: usize,
12513 );
12514}
12515unsafe extern "C" {
12516 pub fn BNRemoveAutoSegment(view: *mut BNBinaryView, start: u64, length: u64);
12517}
12518unsafe extern "C" {
12519 pub fn BNAddUserSegment(
12520 view: *mut BNBinaryView,
12521 start: u64,
12522 length: u64,
12523 dataOffset: u64,
12524 dataLength: u64,
12525 flags: u32,
12526 );
12527}
12528unsafe extern "C" {
12529 pub fn BNAddUserSegments(
12530 view: *mut BNBinaryView,
12531 segmentInfo: *const BNSegmentInfo,
12532 count: usize,
12533 );
12534}
12535unsafe extern "C" {
12536 pub fn BNRemoveUserSegment(view: *mut BNBinaryView, start: u64, length: u64);
12537}
12538unsafe extern "C" {
12539 pub fn BNGetSegments(view: *mut BNBinaryView, count: *mut usize) -> *mut *mut BNSegment;
12540}
12541unsafe extern "C" {
12542 pub fn BNFreeSegmentList(segments: *mut *mut BNSegment, count: usize);
12543}
12544unsafe extern "C" {
12545 pub fn BNGetSegmentAt(view: *mut BNBinaryView, addr: u64) -> *mut BNSegment;
12546}
12547unsafe extern "C" {
12548 pub fn BNGetAddressForDataOffset(view: *mut BNBinaryView, offset: u64, addr: *mut u64) -> bool;
12549}
12550unsafe extern "C" {
12551 pub fn BNGetComponentByGuid(
12552 view: *mut BNBinaryView,
12553 guid: *const ::std::os::raw::c_char,
12554 ) -> *mut BNComponent;
12555}
12556unsafe extern "C" {
12557 pub fn BNGetRootComponent(view: *mut BNBinaryView) -> *mut BNComponent;
12558}
12559unsafe extern "C" {
12560 pub fn BNCreateComponent(view: *mut BNBinaryView) -> *mut BNComponent;
12561}
12562unsafe extern "C" {
12563 pub fn BNCreateComponentWithParent(
12564 view: *mut BNBinaryView,
12565 parentGUID: *const ::std::os::raw::c_char,
12566 ) -> *mut BNComponent;
12567}
12568unsafe extern "C" {
12569 pub fn BNCreateComponentWithName(
12570 view: *mut BNBinaryView,
12571 name: *const ::std::os::raw::c_char,
12572 ) -> *mut BNComponent;
12573}
12574unsafe extern "C" {
12575 pub fn BNCreateComponentWithParentAndName(
12576 view: *mut BNBinaryView,
12577 parentGUID: *const ::std::os::raw::c_char,
12578 name: *const ::std::os::raw::c_char,
12579 ) -> *mut BNComponent;
12580}
12581unsafe extern "C" {
12582 pub fn BNGetComponentByPath(
12583 view: *mut BNBinaryView,
12584 path: *const ::std::os::raw::c_char,
12585 ) -> *mut BNComponent;
12586}
12587unsafe extern "C" {
12588 pub fn BNRemoveComponent(view: *mut BNBinaryView, component: *mut BNComponent) -> bool;
12589}
12590unsafe extern "C" {
12591 pub fn BNRemoveComponentByGuid(
12592 view: *mut BNBinaryView,
12593 guid: *const ::std::os::raw::c_char,
12594 ) -> bool;
12595}
12596unsafe extern "C" {
12597 pub fn BNAddAutoSection(
12598 view: *mut BNBinaryView,
12599 name: *const ::std::os::raw::c_char,
12600 start: u64,
12601 length: u64,
12602 semantics: BNSectionSemantics,
12603 type_: *const ::std::os::raw::c_char,
12604 align: u64,
12605 entrySize: u64,
12606 linkedSection: *const ::std::os::raw::c_char,
12607 infoSection: *const ::std::os::raw::c_char,
12608 infoData: u64,
12609 );
12610}
12611unsafe extern "C" {
12612 pub fn BNAddAutoSections(
12613 view: *mut BNBinaryView,
12614 sectionInfo: *const BNSectionInfo,
12615 count: usize,
12616 );
12617}
12618unsafe extern "C" {
12619 pub fn BNRemoveAutoSection(view: *mut BNBinaryView, name: *const ::std::os::raw::c_char);
12620}
12621unsafe extern "C" {
12622 pub fn BNAddUserSection(
12623 view: *mut BNBinaryView,
12624 name: *const ::std::os::raw::c_char,
12625 start: u64,
12626 length: u64,
12627 semantics: BNSectionSemantics,
12628 type_: *const ::std::os::raw::c_char,
12629 align: u64,
12630 entrySize: u64,
12631 linkedSection: *const ::std::os::raw::c_char,
12632 infoSection: *const ::std::os::raw::c_char,
12633 infoData: u64,
12634 );
12635}
12636unsafe extern "C" {
12637 pub fn BNAddUserSections(
12638 view: *mut BNBinaryView,
12639 sectionInfo: *const BNSectionInfo,
12640 count: usize,
12641 );
12642}
12643unsafe extern "C" {
12644 pub fn BNRemoveUserSection(view: *mut BNBinaryView, name: *const ::std::os::raw::c_char);
12645}
12646unsafe extern "C" {
12647 pub fn BNGetSections(view: *mut BNBinaryView, count: *mut usize) -> *mut *mut BNSection;
12648}
12649unsafe extern "C" {
12650 pub fn BNGetSectionsAt(
12651 view: *mut BNBinaryView,
12652 addr: u64,
12653 count: *mut usize,
12654 ) -> *mut *mut BNSection;
12655}
12656unsafe extern "C" {
12657 pub fn BNFreeSectionList(sections: *mut *mut BNSection, count: usize);
12658}
12659unsafe extern "C" {
12660 pub fn BNGetSectionByName(
12661 view: *mut BNBinaryView,
12662 name: *const ::std::os::raw::c_char,
12663 ) -> *mut BNSection;
12664}
12665unsafe extern "C" {
12666 pub fn BNGetUniqueSectionNames(
12667 view: *mut BNBinaryView,
12668 names: *mut *const ::std::os::raw::c_char,
12669 count: usize,
12670 ) -> *mut *mut ::std::os::raw::c_char;
12671}
12672unsafe extern "C" {
12673 pub fn BNGetAllocatedRanges(view: *mut BNBinaryView, count: *mut usize) -> *mut BNAddressRange;
12674}
12675unsafe extern "C" {
12676 pub fn BNGetMappedAddressRanges(
12677 view: *mut BNBinaryView,
12678 count: *mut usize,
12679 ) -> *mut BNAddressRange;
12680}
12681unsafe extern "C" {
12682 pub fn BNGetBackedAddressRanges(
12683 view: *mut BNBinaryView,
12684 count: *mut usize,
12685 ) -> *mut BNAddressRange;
12686}
12687unsafe extern "C" {
12688 pub fn BNFreeAddressRanges(ranges: *mut BNAddressRange);
12689}
12690unsafe extern "C" {
12691 pub fn BNGetNameSpaces(view: *mut BNBinaryView, count: *mut usize) -> *mut BNNameSpace;
12692}
12693unsafe extern "C" {
12694 pub fn BNFreeNameSpaceList(nameSpace: *mut BNNameSpace, count: usize);
12695}
12696unsafe extern "C" {
12697 pub fn BNGetExternalNameSpace() -> BNNameSpace;
12698}
12699unsafe extern "C" {
12700 pub fn BNGetInternalNameSpace() -> BNNameSpace;
12701}
12702unsafe extern "C" {
12703 pub fn BNFreeNameSpace(name: *mut BNNameSpace);
12704}
12705unsafe extern "C" {
12706 pub fn BNGetGlobalPointerValue(view: *mut BNBinaryView) -> BNRegisterValueWithConfidence;
12707}
12708unsafe extern "C" {
12709 pub fn BNUserGlobalPointerValueSet(view: *mut BNBinaryView) -> bool;
12710}
12711unsafe extern "C" {
12712 pub fn BNClearUserGlobalPointerValue(view: *mut BNBinaryView);
12713}
12714unsafe extern "C" {
12715 pub fn BNSetUserGlobalPointerValue(
12716 view: *mut BNBinaryView,
12717 value: BNRegisterValueWithConfidence,
12718 );
12719}
12720unsafe extern "C" {
12721 pub fn BNStringifyUnicodeData(
12722 data: *mut BNBinaryView,
12723 arch: *mut BNArchitecture,
12724 buffer: *const BNDataBuffer,
12725 nullTerminates: bool,
12726 allowShortStrings: bool,
12727 string: *mut *mut ::std::os::raw::c_char,
12728 type_: *mut BNStringType,
12729 ) -> bool;
12730}
12731unsafe extern "C" {
12732 #[doc = " Raw binary data view"]
12733 pub fn BNCreateBinaryDataView(file: *mut BNFileMetadata) -> *mut BNBinaryView;
12734}
12735unsafe extern "C" {
12736 pub fn BNCreateBinaryDataViewFromBuffer(
12737 file: *mut BNFileMetadata,
12738 buf: *mut BNDataBuffer,
12739 ) -> *mut BNBinaryView;
12740}
12741unsafe extern "C" {
12742 pub fn BNCreateBinaryDataViewFromData(
12743 file: *mut BNFileMetadata,
12744 data: *const ::std::os::raw::c_void,
12745 len: usize,
12746 ) -> *mut BNBinaryView;
12747}
12748unsafe extern "C" {
12749 pub fn BNCreateBinaryDataViewFromFilename(
12750 file: *mut BNFileMetadata,
12751 filename: *const ::std::os::raw::c_char,
12752 ) -> *mut BNBinaryView;
12753}
12754unsafe extern "C" {
12755 pub fn BNCreateBinaryDataViewFromFile(
12756 file: *mut BNFileMetadata,
12757 accessor: *mut BNFileAccessor,
12758 ) -> *mut BNBinaryView;
12759}
12760unsafe extern "C" {
12761 #[doc = " Creation of new types of binary views"]
12762 pub fn BNCreateCustomBinaryView(
12763 name: *const ::std::os::raw::c_char,
12764 file: *mut BNFileMetadata,
12765 parent: *mut BNBinaryView,
12766 view: *mut BNCustomBinaryView,
12767 ) -> *mut BNBinaryView;
12768}
12769unsafe extern "C" {
12770 pub fn BNGetBinaryViewTypeByName(name: *const ::std::os::raw::c_char) -> *mut BNBinaryViewType;
12771}
12772unsafe extern "C" {
12773 pub fn BNGetBinaryViewTypes(count: *mut usize) -> *mut *mut BNBinaryViewType;
12774}
12775unsafe extern "C" {
12776 pub fn BNGetBinaryViewTypesForData(
12777 data: *mut BNBinaryView,
12778 count: *mut usize,
12779 ) -> *mut *mut BNBinaryViewType;
12780}
12781unsafe extern "C" {
12782 pub fn BNFreeBinaryViewTypeList(types: *mut *mut BNBinaryViewType);
12783}
12784unsafe extern "C" {
12785 pub fn BNGetBinaryViewTypeName(type_: *mut BNBinaryViewType) -> *mut ::std::os::raw::c_char;
12786}
12787unsafe extern "C" {
12788 pub fn BNGetBinaryViewTypeLongName(type_: *mut BNBinaryViewType)
12789 -> *mut ::std::os::raw::c_char;
12790}
12791unsafe extern "C" {
12792 pub fn BNIsBinaryViewTypeDeprecated(type_: *mut BNBinaryViewType) -> bool;
12793}
12794unsafe extern "C" {
12795 pub fn BNCreateBinaryViewOfType(
12796 type_: *mut BNBinaryViewType,
12797 data: *mut BNBinaryView,
12798 ) -> *mut BNBinaryView;
12799}
12800unsafe extern "C" {
12801 pub fn BNParseBinaryViewOfType(
12802 type_: *mut BNBinaryViewType,
12803 data: *mut BNBinaryView,
12804 ) -> *mut BNBinaryView;
12805}
12806unsafe extern "C" {
12807 pub fn BNIsBinaryViewTypeValidForData(
12808 type_: *mut BNBinaryViewType,
12809 data: *mut BNBinaryView,
12810 ) -> bool;
12811}
12812unsafe extern "C" {
12813 pub fn BNIsBinaryViewTypeForceLoadable(type_: *mut BNBinaryViewType) -> bool;
12814}
12815unsafe extern "C" {
12816 pub fn BNGetBinaryViewDefaultLoadSettingsForData(
12817 type_: *mut BNBinaryViewType,
12818 data: *mut BNBinaryView,
12819 ) -> *mut BNSettings;
12820}
12821unsafe extern "C" {
12822 pub fn BNGetBinaryViewLoadSettingsForData(
12823 type_: *mut BNBinaryViewType,
12824 data: *mut BNBinaryView,
12825 ) -> *mut BNSettings;
12826}
12827unsafe extern "C" {
12828 pub fn BNRegisterBinaryViewType(
12829 name: *const ::std::os::raw::c_char,
12830 longName: *const ::std::os::raw::c_char,
12831 type_: *mut BNCustomBinaryViewType,
12832 ) -> *mut BNBinaryViewType;
12833}
12834unsafe extern "C" {
12835 pub fn BNRegisterArchitectureForViewType(
12836 type_: *mut BNBinaryViewType,
12837 id: u32,
12838 endian: BNEndianness,
12839 arch: *mut BNArchitecture,
12840 );
12841}
12842unsafe extern "C" {
12843 pub fn BNGetArchitectureForViewType(
12844 type_: *mut BNBinaryViewType,
12845 id: u32,
12846 endian: BNEndianness,
12847 ) -> *mut BNArchitecture;
12848}
12849unsafe extern "C" {
12850 pub fn BNRegisterPlatformForViewType(
12851 type_: *mut BNBinaryViewType,
12852 id: u32,
12853 arch: *mut BNArchitecture,
12854 platform: *mut BNPlatform,
12855 );
12856}
12857unsafe extern "C" {
12858 pub fn BNGetPlatformForViewType(
12859 type_: *mut BNBinaryViewType,
12860 id: u32,
12861 arch: *mut BNArchitecture,
12862 ) -> *mut BNPlatform;
12863}
12864unsafe extern "C" {
12865 pub fn BNRegisterDefaultPlatformForViewType(
12866 type_: *mut BNBinaryViewType,
12867 arch: *mut BNArchitecture,
12868 platform: *mut BNPlatform,
12869 );
12870}
12871unsafe extern "C" {
12872 #[doc = " Expanded identification of Platform for BinaryViewTypes. Supersedes BNRegisterArchitectureForViewType\n and BNRegisterPlatformForViewType, as these have certain edge cases (overloaded elf families, for example)\n that can't be represented.\n\n The callback returns a Platform object or null (failure), and most recently added callbacks are called first\n to allow plugins to override any default behaviors. When a callback returns a platform, architecture will be\n derived from the identified platform.\n\n The BinaryView pointer is the *parent* view (usually 'Raw') that the BinaryView is being created for. This\n means that generally speaking the callbacks need to be aware of the underlying file format, however the\n BinaryView implementation may have created datavars in the 'Raw' view by the time the callback is invoked.\n Behavior regarding when this callback is invoked and what has been made available in the BinaryView passed as an\n argument to the callback is up to the discretion of the BinaryView implementation.\n\n The 'id' ind 'endian' arguments are used as a filter to determine which registered Platform recognizer callbacks\n are invoked.\n\n Support for this API tentatively requires explicit support in the BinaryView implementation."]
12873 pub fn BNRegisterPlatformRecognizerForViewType(
12874 type_: *mut BNBinaryViewType,
12875 id: u64,
12876 endian: BNEndianness,
12877 callback: ::std::option::Option<
12878 unsafe extern "C" fn(
12879 ctx: *mut ::std::os::raw::c_void,
12880 view: *mut BNBinaryView,
12881 metadata: *mut BNMetadata,
12882 ) -> *mut BNPlatform,
12883 >,
12884 ctx: *mut ::std::os::raw::c_void,
12885 );
12886}
12887unsafe extern "C" {
12888 #[doc = " BinaryView* passed in here should be the parent view (not the partially constructed object!), and this function\n should be called from the BNCustomBinaryView::init implementation.\n\n 'id' and 'endianness' are used to determine which registered callbacks are actually invoked to eliminate some\n common sources of boilerplate that all callbacks would have to implement otherwise. If these aren't applicable to\n your binaryviewtype just use constants here and document them so that people registering Platform recognizers for\n your view type know what to use."]
12889 pub fn BNRecognizePlatformForViewType(
12890 type_: *mut BNBinaryViewType,
12891 id: u64,
12892 endian: BNEndianness,
12893 view: *mut BNBinaryView,
12894 metadata: *mut BNMetadata,
12895 ) -> *mut BNPlatform;
12896}
12897unsafe extern "C" {
12898 pub fn BNRegisterBinaryViewEvent(
12899 type_: BNBinaryViewEventType,
12900 callback: ::std::option::Option<
12901 unsafe extern "C" fn(ctx: *mut ::std::os::raw::c_void, view: *mut BNBinaryView),
12902 >,
12903 ctx: *mut ::std::os::raw::c_void,
12904 );
12905}
12906unsafe extern "C" {
12907 #[doc = " Stream reader object"]
12908 pub fn BNCreateBinaryReader(view: *mut BNBinaryView) -> *mut BNBinaryReader;
12909}
12910unsafe extern "C" {
12911 pub fn BNFreeBinaryReader(stream: *mut BNBinaryReader);
12912}
12913unsafe extern "C" {
12914 pub fn BNGetBinaryReaderEndianness(stream: *mut BNBinaryReader) -> BNEndianness;
12915}
12916unsafe extern "C" {
12917 pub fn BNSetBinaryReaderEndianness(stream: *mut BNBinaryReader, endian: BNEndianness);
12918}
12919unsafe extern "C" {
12920 pub fn BNReadData(
12921 stream: *mut BNBinaryReader,
12922 dest: *mut ::std::os::raw::c_void,
12923 len: usize,
12924 ) -> bool;
12925}
12926unsafe extern "C" {
12927 pub fn BNRead8(stream: *mut BNBinaryReader, result: *mut u8) -> bool;
12928}
12929unsafe extern "C" {
12930 pub fn BNRead16(stream: *mut BNBinaryReader, result: *mut u16) -> bool;
12931}
12932unsafe extern "C" {
12933 pub fn BNRead32(stream: *mut BNBinaryReader, result: *mut u32) -> bool;
12934}
12935unsafe extern "C" {
12936 pub fn BNRead64(stream: *mut BNBinaryReader, result: *mut u64) -> bool;
12937}
12938unsafe extern "C" {
12939 pub fn BNReadLE16(stream: *mut BNBinaryReader, result: *mut u16) -> bool;
12940}
12941unsafe extern "C" {
12942 pub fn BNReadLE32(stream: *mut BNBinaryReader, result: *mut u32) -> bool;
12943}
12944unsafe extern "C" {
12945 pub fn BNReadLE64(stream: *mut BNBinaryReader, result: *mut u64) -> bool;
12946}
12947unsafe extern "C" {
12948 pub fn BNReadBE16(stream: *mut BNBinaryReader, result: *mut u16) -> bool;
12949}
12950unsafe extern "C" {
12951 pub fn BNReadBE32(stream: *mut BNBinaryReader, result: *mut u32) -> bool;
12952}
12953unsafe extern "C" {
12954 pub fn BNReadBE64(stream: *mut BNBinaryReader, result: *mut u64) -> bool;
12955}
12956unsafe extern "C" {
12957 pub fn BNReadPointer(
12958 view: *mut BNBinaryView,
12959 stream: *mut BNBinaryReader,
12960 result: *mut u64,
12961 ) -> bool;
12962}
12963unsafe extern "C" {
12964 pub fn BNGetReaderPosition(stream: *mut BNBinaryReader) -> u64;
12965}
12966unsafe extern "C" {
12967 pub fn BNSeekBinaryReader(stream: *mut BNBinaryReader, offset: u64);
12968}
12969unsafe extern "C" {
12970 pub fn BNSeekBinaryReaderRelative(stream: *mut BNBinaryReader, offset: i64);
12971}
12972unsafe extern "C" {
12973 pub fn BNGetBinaryReaderVirtualBase(stream: *mut BNBinaryReader) -> u64;
12974}
12975unsafe extern "C" {
12976 pub fn BNSetBinaryReaderVirtualBase(stream: *mut BNBinaryReader, base: u64);
12977}
12978unsafe extern "C" {
12979 pub fn BNIsEndOfFile(stream: *mut BNBinaryReader) -> bool;
12980}
12981unsafe extern "C" {
12982 #[doc = " Stream writer object"]
12983 pub fn BNCreateBinaryWriter(view: *mut BNBinaryView) -> *mut BNBinaryWriter;
12984}
12985unsafe extern "C" {
12986 pub fn BNFreeBinaryWriter(stream: *mut BNBinaryWriter);
12987}
12988unsafe extern "C" {
12989 pub fn BNGetBinaryWriterEndianness(stream: *mut BNBinaryWriter) -> BNEndianness;
12990}
12991unsafe extern "C" {
12992 pub fn BNSetBinaryWriterEndianness(stream: *mut BNBinaryWriter, endian: BNEndianness);
12993}
12994unsafe extern "C" {
12995 pub fn BNWriteData(
12996 stream: *mut BNBinaryWriter,
12997 src: *const ::std::os::raw::c_void,
12998 len: usize,
12999 ) -> bool;
13000}
13001unsafe extern "C" {
13002 pub fn BNWrite8(stream: *mut BNBinaryWriter, val: u8) -> bool;
13003}
13004unsafe extern "C" {
13005 pub fn BNWrite16(stream: *mut BNBinaryWriter, val: u16) -> bool;
13006}
13007unsafe extern "C" {
13008 pub fn BNWrite32(stream: *mut BNBinaryWriter, val: u32) -> bool;
13009}
13010unsafe extern "C" {
13011 pub fn BNWrite64(stream: *mut BNBinaryWriter, val: u64) -> bool;
13012}
13013unsafe extern "C" {
13014 pub fn BNWriteLE16(stream: *mut BNBinaryWriter, val: u16) -> bool;
13015}
13016unsafe extern "C" {
13017 pub fn BNWriteLE32(stream: *mut BNBinaryWriter, val: u32) -> bool;
13018}
13019unsafe extern "C" {
13020 pub fn BNWriteLE64(stream: *mut BNBinaryWriter, val: u64) -> bool;
13021}
13022unsafe extern "C" {
13023 pub fn BNWriteBE16(stream: *mut BNBinaryWriter, val: u16) -> bool;
13024}
13025unsafe extern "C" {
13026 pub fn BNWriteBE32(stream: *mut BNBinaryWriter, val: u32) -> bool;
13027}
13028unsafe extern "C" {
13029 pub fn BNWriteBE64(stream: *mut BNBinaryWriter, val: u64) -> bool;
13030}
13031unsafe extern "C" {
13032 pub fn BNGetWriterPosition(stream: *mut BNBinaryWriter) -> u64;
13033}
13034unsafe extern "C" {
13035 pub fn BNSeekBinaryWriter(stream: *mut BNBinaryWriter, offset: u64);
13036}
13037unsafe extern "C" {
13038 pub fn BNSeekBinaryWriterRelative(stream: *mut BNBinaryWriter, offset: i64);
13039}
13040unsafe extern "C" {
13041 #[doc = " Transforms"]
13042 pub fn BNGetTransformByName(name: *const ::std::os::raw::c_char) -> *mut BNTransform;
13043}
13044unsafe extern "C" {
13045 pub fn BNGetTransformTypeList(count: *mut usize) -> *mut *mut BNTransform;
13046}
13047unsafe extern "C" {
13048 pub fn BNFreeTransformTypeList(xforms: *mut *mut BNTransform);
13049}
13050unsafe extern "C" {
13051 pub fn BNRegisterTransformType(
13052 type_: BNTransformType,
13053 name: *const ::std::os::raw::c_char,
13054 longName: *const ::std::os::raw::c_char,
13055 group: *const ::std::os::raw::c_char,
13056 xform: *mut BNCustomTransform,
13057 ) -> *mut BNTransform;
13058}
13059unsafe extern "C" {
13060 pub fn BNRegisterTransformTypeWithCapabilities(
13061 type_: BNTransformType,
13062 capabilities: u32,
13063 name: *const ::std::os::raw::c_char,
13064 longName: *const ::std::os::raw::c_char,
13065 group: *const ::std::os::raw::c_char,
13066 xform: *mut BNCustomTransform,
13067 ) -> *mut BNTransform;
13068}
13069unsafe extern "C" {
13070 pub fn BNGetTransformType(xform: *mut BNTransform) -> BNTransformType;
13071}
13072unsafe extern "C" {
13073 pub fn BNGetTransformCapabilities(xform: *mut BNTransform) -> u32;
13074}
13075unsafe extern "C" {
13076 pub fn BNTransformSupportsDetection(xform: *mut BNTransform) -> bool;
13077}
13078unsafe extern "C" {
13079 pub fn BNTransformSupportsContext(xform: *mut BNTransform) -> bool;
13080}
13081unsafe extern "C" {
13082 pub fn BNGetTransformName(xform: *mut BNTransform) -> *mut ::std::os::raw::c_char;
13083}
13084unsafe extern "C" {
13085 pub fn BNGetTransformLongName(xform: *mut BNTransform) -> *mut ::std::os::raw::c_char;
13086}
13087unsafe extern "C" {
13088 pub fn BNGetTransformGroup(xform: *mut BNTransform) -> *mut ::std::os::raw::c_char;
13089}
13090unsafe extern "C" {
13091 pub fn BNGetTransformParameterList(
13092 xform: *mut BNTransform,
13093 count: *mut usize,
13094 ) -> *mut BNTransformParameterInfo;
13095}
13096unsafe extern "C" {
13097 pub fn BNFreeTransformParameterList(params: *mut BNTransformParameterInfo, count: usize);
13098}
13099unsafe extern "C" {
13100 pub fn BNDecode(
13101 xform: *mut BNTransform,
13102 input: *mut BNDataBuffer,
13103 output: *mut BNDataBuffer,
13104 params: *mut BNTransformParameter,
13105 paramCount: usize,
13106 ) -> bool;
13107}
13108unsafe extern "C" {
13109 pub fn BNEncode(
13110 xform: *mut BNTransform,
13111 input: *mut BNDataBuffer,
13112 output: *mut BNDataBuffer,
13113 params: *mut BNTransformParameter,
13114 paramCount: usize,
13115 ) -> bool;
13116}
13117unsafe extern "C" {
13118 pub fn BNDecodeWithContext(
13119 xform: *mut BNTransform,
13120 context: *mut BNTransformContext,
13121 params: *mut BNTransformParameter,
13122 paramCount: usize,
13123 ) -> bool;
13124}
13125unsafe extern "C" {
13126 pub fn BNCanDecode(xform: *mut BNTransform, input: *mut BNBinaryView) -> bool;
13127}
13128unsafe extern "C" {
13129 #[doc = " Transform Context"]
13130 pub fn BNNewTransformContextReference(
13131 context: *mut BNTransformContext,
13132 ) -> *mut BNTransformContext;
13133}
13134unsafe extern "C" {
13135 pub fn BNFreeTransformContext(context: *mut BNTransformContext);
13136}
13137unsafe extern "C" {
13138 pub fn BNTransformContextGetInput(context: *mut BNTransformContext) -> *mut BNBinaryView;
13139}
13140unsafe extern "C" {
13141 pub fn BNTransformContextGetFileName(
13142 context: *mut BNTransformContext,
13143 ) -> *mut ::std::os::raw::c_char;
13144}
13145unsafe extern "C" {
13146 pub fn BNTransformContextGetAvailableTransforms(
13147 context: *mut BNTransformContext,
13148 count: *mut usize,
13149 ) -> *mut *mut ::std::os::raw::c_char;
13150}
13151unsafe extern "C" {
13152 pub fn BNTransformContextGetTransformName(
13153 context: *mut BNTransformContext,
13154 ) -> *mut ::std::os::raw::c_char;
13155}
13156unsafe extern "C" {
13157 pub fn BNTransformContextSetTransformName(
13158 context: *mut BNTransformContext,
13159 transformName: *const ::std::os::raw::c_char,
13160 );
13161}
13162unsafe extern "C" {
13163 pub fn BNTransformContextSetTransformParameters(
13164 context: *mut BNTransformContext,
13165 params: *mut BNTransformParameter,
13166 paramCount: usize,
13167 );
13168}
13169unsafe extern "C" {
13170 pub fn BNTransformContextSetTransformParameter(
13171 context: *mut BNTransformContext,
13172 name: *const ::std::os::raw::c_char,
13173 data: *mut BNDataBuffer,
13174 );
13175}
13176unsafe extern "C" {
13177 pub fn BNTransformContextHasTransformParameter(
13178 context: *mut BNTransformContext,
13179 name: *const ::std::os::raw::c_char,
13180 ) -> bool;
13181}
13182unsafe extern "C" {
13183 pub fn BNTransformContextClearTransformParameter(
13184 context: *mut BNTransformContext,
13185 name: *const ::std::os::raw::c_char,
13186 );
13187}
13188unsafe extern "C" {
13189 pub fn BNTransformContextGetExtractionMessage(
13190 context: *mut BNTransformContext,
13191 ) -> *mut ::std::os::raw::c_char;
13192}
13193unsafe extern "C" {
13194 pub fn BNTransformContextGetExtractionResult(
13195 context: *mut BNTransformContext,
13196 ) -> BNTransformResult;
13197}
13198unsafe extern "C" {
13199 pub fn BNTransformContextGetTransformResult(
13200 context: *mut BNTransformContext,
13201 ) -> BNTransformResult;
13202}
13203unsafe extern "C" {
13204 pub fn BNTransformContextSetTransformResult(
13205 context: *mut BNTransformContext,
13206 result: BNTransformResult,
13207 );
13208}
13209unsafe extern "C" {
13210 pub fn BNTransformContextGetMetadata(context: *mut BNTransformContext) -> *mut BNMetadata;
13211}
13212unsafe extern "C" {
13213 pub fn BNTransformContextGetParent(context: *mut BNTransformContext)
13214 -> *mut BNTransformContext;
13215}
13216unsafe extern "C" {
13217 pub fn BNTransformContextGetChildCount(context: *mut BNTransformContext) -> usize;
13218}
13219unsafe extern "C" {
13220 pub fn BNTransformContextGetChildren(
13221 context: *mut BNTransformContext,
13222 count: *mut usize,
13223 ) -> *mut *mut BNTransformContext;
13224}
13225unsafe extern "C" {
13226 pub fn BNFreeTransformContextList(contexts: *mut *mut BNTransformContext, count: usize);
13227}
13228unsafe extern "C" {
13229 pub fn BNTransformContextGetChild(
13230 context: *mut BNTransformContext,
13231 filename: *const ::std::os::raw::c_char,
13232 ) -> *mut BNTransformContext;
13233}
13234unsafe extern "C" {
13235 pub fn BNTransformContextSetChild(
13236 context: *mut BNTransformContext,
13237 data: *mut BNDataBuffer,
13238 filename: *const ::std::os::raw::c_char,
13239 result: BNTransformResult,
13240 message: *const ::std::os::raw::c_char,
13241 ) -> *mut BNTransformContext;
13242}
13243unsafe extern "C" {
13244 pub fn BNTransformContextIsLeaf(context: *mut BNTransformContext) -> bool;
13245}
13246unsafe extern "C" {
13247 pub fn BNTransformContextIsRoot(context: *mut BNTransformContext) -> bool;
13248}
13249unsafe extern "C" {
13250 pub fn BNTransformContextGetAvailableFiles(
13251 context: *mut BNTransformContext,
13252 count: *mut usize,
13253 ) -> *mut *mut ::std::os::raw::c_char;
13254}
13255unsafe extern "C" {
13256 pub fn BNTransformContextSetAvailableFiles(
13257 context: *mut BNTransformContext,
13258 files: *mut *const ::std::os::raw::c_char,
13259 count: usize,
13260 );
13261}
13262unsafe extern "C" {
13263 pub fn BNTransformContextHasAvailableFiles(context: *mut BNTransformContext) -> bool;
13264}
13265unsafe extern "C" {
13266 pub fn BNTransformContextGetRequestedFiles(
13267 context: *mut BNTransformContext,
13268 count: *mut usize,
13269 ) -> *mut *mut ::std::os::raw::c_char;
13270}
13271unsafe extern "C" {
13272 pub fn BNTransformContextSetRequestedFiles(
13273 context: *mut BNTransformContext,
13274 files: *mut *const ::std::os::raw::c_char,
13275 count: usize,
13276 );
13277}
13278unsafe extern "C" {
13279 pub fn BNTransformContextHasRequestedFiles(context: *mut BNTransformContext) -> bool;
13280}
13281unsafe extern "C" {
13282 pub fn BNTransformContextIsDatabase(context: *mut BNTransformContext) -> bool;
13283}
13284unsafe extern "C" {
13285 #[doc = " Transform Session"]
13286 pub fn BNCreateTransformSession(
13287 filename: *const ::std::os::raw::c_char,
13288 ) -> *mut BNTransformSession;
13289}
13290unsafe extern "C" {
13291 pub fn BNCreateTransformSessionWithMode(
13292 filename: *const ::std::os::raw::c_char,
13293 mode: BNTransformSessionMode,
13294 ) -> *mut BNTransformSession;
13295}
13296unsafe extern "C" {
13297 pub fn BNCreateTransformSessionFromBinaryView(
13298 initialView: *mut BNBinaryView,
13299 ) -> *mut BNTransformSession;
13300}
13301unsafe extern "C" {
13302 pub fn BNCreateTransformSessionFromBinaryViewWithMode(
13303 initialView: *mut BNBinaryView,
13304 mode: BNTransformSessionMode,
13305 ) -> *mut BNTransformSession;
13306}
13307unsafe extern "C" {
13308 pub fn BNNewTransformSessionReference(
13309 session: *mut BNTransformSession,
13310 ) -> *mut BNTransformSession;
13311}
13312unsafe extern "C" {
13313 pub fn BNFreeTransformSession(session: *mut BNTransformSession);
13314}
13315unsafe extern "C" {
13316 pub fn BNTransformSessionGetCurrentView(session: *mut BNTransformSession) -> *mut BNBinaryView;
13317}
13318unsafe extern "C" {
13319 pub fn BNTransformSessionGetRootContext(
13320 session: *mut BNTransformSession,
13321 ) -> *mut BNTransformContext;
13322}
13323unsafe extern "C" {
13324 pub fn BNTransformSessionGetCurrentContext(
13325 session: *mut BNTransformSession,
13326 ) -> *mut BNTransformContext;
13327}
13328unsafe extern "C" {
13329 pub fn BNTransformSessionProcessFrom(
13330 session: *mut BNTransformSession,
13331 context: *mut BNTransformContext,
13332 ) -> bool;
13333}
13334unsafe extern "C" {
13335 pub fn BNTransformSessionProcess(session: *mut BNTransformSession) -> bool;
13336}
13337unsafe extern "C" {
13338 pub fn BNTransformSessionHasAnyStages(session: *mut BNTransformSession) -> bool;
13339}
13340unsafe extern "C" {
13341 pub fn BNTransformSessionHasSinglePath(session: *mut BNTransformSession) -> bool;
13342}
13343unsafe extern "C" {
13344 pub fn BNTransformSessionGetSelectedContexts(
13345 session: *mut BNTransformSession,
13346 count: *mut usize,
13347 ) -> *mut *mut BNTransformContext;
13348}
13349unsafe extern "C" {
13350 pub fn BNTransformSessionSetSelectedContexts(
13351 session: *mut BNTransformSession,
13352 contexts: *mut *mut BNTransformContext,
13353 count: usize,
13354 );
13355}
13356unsafe extern "C" {
13357 #[doc = " Architectures"]
13358 pub fn BNGetArchitectureByName(name: *const ::std::os::raw::c_char) -> *mut BNArchitecture;
13359}
13360unsafe extern "C" {
13361 pub fn BNGetArchitectureList(count: *mut usize) -> *mut *mut BNArchitecture;
13362}
13363unsafe extern "C" {
13364 pub fn BNFreeArchitectureList(archs: *mut *mut BNArchitecture);
13365}
13366unsafe extern "C" {
13367 pub fn BNRegisterArchitecture(
13368 name: *const ::std::os::raw::c_char,
13369 arch: *mut BNCustomArchitecture,
13370 ) -> *mut BNArchitecture;
13371}
13372unsafe extern "C" {
13373 pub fn BNRegisterArchitectureExtension(
13374 name: *const ::std::os::raw::c_char,
13375 base: *mut BNArchitecture,
13376 arch: *mut BNCustomArchitecture,
13377 ) -> *mut BNArchitecture;
13378}
13379unsafe extern "C" {
13380 pub fn BNAddArchitectureRedirection(
13381 arch: *mut BNArchitecture,
13382 from: *mut BNArchitecture,
13383 to: *mut BNArchitecture,
13384 );
13385}
13386unsafe extern "C" {
13387 pub fn BNRegisterArchitectureHook(
13388 base: *mut BNArchitecture,
13389 arch: *mut BNCustomArchitecture,
13390 ) -> *mut BNArchitecture;
13391}
13392unsafe extern "C" {
13393 pub fn BNFinalizeArchitectureHook(base: *mut BNArchitecture);
13394}
13395unsafe extern "C" {
13396 pub fn BNGetNativeTypeParserArchitecture() -> *mut BNArchitecture;
13397}
13398unsafe extern "C" {
13399 pub fn BNGetArchitectureName(arch: *mut BNArchitecture) -> *mut ::std::os::raw::c_char;
13400}
13401unsafe extern "C" {
13402 pub fn BNGetArchitectureEndianness(arch: *mut BNArchitecture) -> BNEndianness;
13403}
13404unsafe extern "C" {
13405 pub fn BNGetArchitectureAddressSize(arch: *mut BNArchitecture) -> usize;
13406}
13407unsafe extern "C" {
13408 pub fn BNGetArchitectureDefaultIntegerSize(arch: *mut BNArchitecture) -> usize;
13409}
13410unsafe extern "C" {
13411 pub fn BNGetArchitectureInstructionAlignment(arch: *mut BNArchitecture) -> usize;
13412}
13413unsafe extern "C" {
13414 pub fn BNGetArchitectureMaxInstructionLength(arch: *mut BNArchitecture) -> usize;
13415}
13416unsafe extern "C" {
13417 pub fn BNGetArchitectureOpcodeDisplayLength(arch: *mut BNArchitecture) -> usize;
13418}
13419unsafe extern "C" {
13420 pub fn BNGetAssociatedArchitectureByAddress(
13421 arch: *mut BNArchitecture,
13422 addr: *mut u64,
13423 ) -> *mut BNArchitecture;
13424}
13425unsafe extern "C" {
13426 pub fn BNGetInstructionInfo(
13427 arch: *mut BNArchitecture,
13428 data: *const u8,
13429 addr: u64,
13430 maxLen: usize,
13431 result: *mut BNInstructionInfo,
13432 ) -> bool;
13433}
13434unsafe extern "C" {
13435 pub fn BNGetInstructionText(
13436 arch: *mut BNArchitecture,
13437 data: *const u8,
13438 addr: u64,
13439 len: *mut usize,
13440 result: *mut *mut BNInstructionTextToken,
13441 count: *mut usize,
13442 ) -> bool;
13443}
13444unsafe extern "C" {
13445 pub fn BNGetInstructionLowLevelIL(
13446 arch: *mut BNArchitecture,
13447 data: *const u8,
13448 addr: u64,
13449 len: *mut usize,
13450 il: *mut BNLowLevelILFunction,
13451 ) -> bool;
13452}
13453unsafe extern "C" {
13454 pub fn BNFreeInstructionText(tokens: *mut BNInstructionTextToken, count: usize);
13455}
13456unsafe extern "C" {
13457 pub fn BNArchitectureSetDefaultAnalyzeBasicBlocksCallback(
13458 callback: *mut ::std::os::raw::c_void,
13459 ) -> bool;
13460}
13461unsafe extern "C" {
13462 pub fn BNArchitectureDefaultAnalyzeBasicBlocks(
13463 function: *mut BNFunction,
13464 context: *mut BNBasicBlockAnalysisContext,
13465 );
13466}
13467unsafe extern "C" {
13468 pub fn BNArchitectureAnalyzeBasicBlocks(
13469 arch: *mut BNArchitecture,
13470 function: *mut BNFunction,
13471 context: *mut BNBasicBlockAnalysisContext,
13472 );
13473}
13474unsafe extern "C" {
13475 pub fn BNFreeInstructionTextLines(lines: *mut BNInstructionTextLine, count: usize);
13476}
13477unsafe extern "C" {
13478 pub fn BNGetArchitectureRegisterName(
13479 arch: *mut BNArchitecture,
13480 reg: u32,
13481 ) -> *mut ::std::os::raw::c_char;
13482}
13483unsafe extern "C" {
13484 pub fn BNGetArchitectureFlagName(
13485 arch: *mut BNArchitecture,
13486 flag: u32,
13487 ) -> *mut ::std::os::raw::c_char;
13488}
13489unsafe extern "C" {
13490 pub fn BNGetArchitectureFlagWriteTypeName(
13491 arch: *mut BNArchitecture,
13492 flags: u32,
13493 ) -> *mut ::std::os::raw::c_char;
13494}
13495unsafe extern "C" {
13496 pub fn BNGetArchitectureSemanticFlagClassName(
13497 arch: *mut BNArchitecture,
13498 semClass: u32,
13499 ) -> *mut ::std::os::raw::c_char;
13500}
13501unsafe extern "C" {
13502 pub fn BNGetArchitectureSemanticFlagGroupName(
13503 arch: *mut BNArchitecture,
13504 semGroup: u32,
13505 ) -> *mut ::std::os::raw::c_char;
13506}
13507unsafe extern "C" {
13508 pub fn BNGetFullWidthArchitectureRegisters(
13509 arch: *mut BNArchitecture,
13510 count: *mut usize,
13511 ) -> *mut u32;
13512}
13513unsafe extern "C" {
13514 pub fn BNGetAllArchitectureRegisters(arch: *mut BNArchitecture, count: *mut usize) -> *mut u32;
13515}
13516unsafe extern "C" {
13517 pub fn BNGetAllArchitectureFlags(arch: *mut BNArchitecture, count: *mut usize) -> *mut u32;
13518}
13519unsafe extern "C" {
13520 pub fn BNGetAllArchitectureFlagWriteTypes(
13521 arch: *mut BNArchitecture,
13522 count: *mut usize,
13523 ) -> *mut u32;
13524}
13525unsafe extern "C" {
13526 pub fn BNGetAllArchitectureSemanticFlagClasses(
13527 arch: *mut BNArchitecture,
13528 count: *mut usize,
13529 ) -> *mut u32;
13530}
13531unsafe extern "C" {
13532 pub fn BNGetAllArchitectureSemanticFlagGroups(
13533 arch: *mut BNArchitecture,
13534 count: *mut usize,
13535 ) -> *mut u32;
13536}
13537unsafe extern "C" {
13538 pub fn BNGetArchitectureFlagRole(
13539 arch: *mut BNArchitecture,
13540 flag: u32,
13541 semClass: u32,
13542 ) -> BNFlagRole;
13543}
13544unsafe extern "C" {
13545 pub fn BNGetArchitectureFlagsRequiredForFlagCondition(
13546 arch: *mut BNArchitecture,
13547 cond: BNLowLevelILFlagCondition,
13548 semClass: u32,
13549 count: *mut usize,
13550 ) -> *mut u32;
13551}
13552unsafe extern "C" {
13553 pub fn BNGetArchitectureFlagsRequiredForSemanticFlagGroup(
13554 arch: *mut BNArchitecture,
13555 semGroup: u32,
13556 count: *mut usize,
13557 ) -> *mut u32;
13558}
13559unsafe extern "C" {
13560 pub fn BNGetArchitectureFlagConditionsForSemanticFlagGroup(
13561 arch: *mut BNArchitecture,
13562 semGroup: u32,
13563 count: *mut usize,
13564 ) -> *mut BNFlagConditionForSemanticClass;
13565}
13566unsafe extern "C" {
13567 pub fn BNFreeFlagConditionsForSemanticFlagGroup(
13568 conditions: *mut BNFlagConditionForSemanticClass,
13569 );
13570}
13571unsafe extern "C" {
13572 pub fn BNGetArchitectureFlagsWrittenByFlagWriteType(
13573 arch: *mut BNArchitecture,
13574 writeType: u32,
13575 count: *mut usize,
13576 ) -> *mut u32;
13577}
13578unsafe extern "C" {
13579 pub fn BNGetArchitectureSemanticClassForFlagWriteType(
13580 arch: *mut BNArchitecture,
13581 writeType: u32,
13582 ) -> u32;
13583}
13584unsafe extern "C" {
13585 pub fn BNGetArchitectureFlagWriteLowLevelIL(
13586 arch: *mut BNArchitecture,
13587 op: BNLowLevelILOperation,
13588 size: usize,
13589 flagWriteType: u32,
13590 flag: u32,
13591 operands: *mut BNRegisterOrConstant,
13592 operandCount: usize,
13593 il: *mut BNLowLevelILFunction,
13594 ) -> usize;
13595}
13596unsafe extern "C" {
13597 pub fn BNGetDefaultArchitectureFlagWriteLowLevelIL(
13598 arch: *mut BNArchitecture,
13599 op: BNLowLevelILOperation,
13600 size: usize,
13601 role: BNFlagRole,
13602 operands: *mut BNRegisterOrConstant,
13603 operandCount: usize,
13604 il: *mut BNLowLevelILFunction,
13605 ) -> usize;
13606}
13607unsafe extern "C" {
13608 pub fn BNGetArchitectureFlagConditionLowLevelIL(
13609 arch: *mut BNArchitecture,
13610 cond: BNLowLevelILFlagCondition,
13611 semClass: u32,
13612 il: *mut BNLowLevelILFunction,
13613 ) -> usize;
13614}
13615unsafe extern "C" {
13616 pub fn BNGetDefaultArchitectureFlagConditionLowLevelIL(
13617 arch: *mut BNArchitecture,
13618 cond: BNLowLevelILFlagCondition,
13619 semClass: u32,
13620 il: *mut BNLowLevelILFunction,
13621 ) -> usize;
13622}
13623unsafe extern "C" {
13624 pub fn BNGetArchitectureSemanticFlagGroupLowLevelIL(
13625 arch: *mut BNArchitecture,
13626 semGroup: u32,
13627 il: *mut BNLowLevelILFunction,
13628 ) -> usize;
13629}
13630unsafe extern "C" {
13631 pub fn BNGetModifiedArchitectureRegistersOnWrite(
13632 arch: *mut BNArchitecture,
13633 reg: u32,
13634 count: *mut usize,
13635 ) -> *mut u32;
13636}
13637unsafe extern "C" {
13638 pub fn BNFreeRegisterList(regs: *mut u32);
13639}
13640unsafe extern "C" {
13641 pub fn BNGetArchitectureRegisterInfo(arch: *mut BNArchitecture, reg: u32) -> BNRegisterInfo;
13642}
13643unsafe extern "C" {
13644 pub fn BNGetArchitectureStackPointerRegister(arch: *mut BNArchitecture) -> u32;
13645}
13646unsafe extern "C" {
13647 pub fn BNGetArchitectureLinkRegister(arch: *mut BNArchitecture) -> u32;
13648}
13649unsafe extern "C" {
13650 pub fn BNGetArchitectureGlobalRegisters(
13651 arch: *mut BNArchitecture,
13652 count: *mut usize,
13653 ) -> *mut u32;
13654}
13655unsafe extern "C" {
13656 pub fn BNIsArchitectureGlobalRegister(arch: *mut BNArchitecture, reg: u32) -> bool;
13657}
13658unsafe extern "C" {
13659 pub fn BNGetArchitectureSystemRegisters(
13660 arch: *mut BNArchitecture,
13661 count: *mut usize,
13662 ) -> *mut u32;
13663}
13664unsafe extern "C" {
13665 pub fn BNIsArchitectureSystemRegister(arch: *mut BNArchitecture, reg: u32) -> bool;
13666}
13667unsafe extern "C" {
13668 pub fn BNGetArchitectureRegisterByName(
13669 arch: *mut BNArchitecture,
13670 name: *const ::std::os::raw::c_char,
13671 ) -> u32;
13672}
13673unsafe extern "C" {
13674 pub fn BNGetArchitectureRegisterStackName(
13675 arch: *mut BNArchitecture,
13676 regStack: u32,
13677 ) -> *mut ::std::os::raw::c_char;
13678}
13679unsafe extern "C" {
13680 pub fn BNGetAllArchitectureRegisterStacks(
13681 arch: *mut BNArchitecture,
13682 count: *mut usize,
13683 ) -> *mut u32;
13684}
13685unsafe extern "C" {
13686 pub fn BNGetArchitectureRegisterStackInfo(
13687 arch: *mut BNArchitecture,
13688 regStack: u32,
13689 ) -> BNRegisterStackInfo;
13690}
13691unsafe extern "C" {
13692 pub fn BNGetArchitectureRegisterStackForRegister(arch: *mut BNArchitecture, reg: u32) -> u32;
13693}
13694unsafe extern "C" {
13695 pub fn BNGetArchitectureIntrinsicClass(
13696 arch: *mut BNArchitecture,
13697 intrinsic: u32,
13698 ) -> BNIntrinsicClass;
13699}
13700unsafe extern "C" {
13701 pub fn BNGetArchitectureIntrinsicName(
13702 arch: *mut BNArchitecture,
13703 intrinsic: u32,
13704 ) -> *mut ::std::os::raw::c_char;
13705}
13706unsafe extern "C" {
13707 pub fn BNGetAllArchitectureIntrinsics(arch: *mut BNArchitecture, count: *mut usize)
13708 -> *mut u32;
13709}
13710unsafe extern "C" {
13711 pub fn BNGetArchitectureIntrinsicInputs(
13712 arch: *mut BNArchitecture,
13713 intrinsic: u32,
13714 count: *mut usize,
13715 ) -> *mut BNNameAndType;
13716}
13717unsafe extern "C" {
13718 pub fn BNFreeNameAndTypeList(nt: *mut BNNameAndType, count: usize);
13719}
13720unsafe extern "C" {
13721 pub fn BNGetArchitectureIntrinsicOutputs(
13722 arch: *mut BNArchitecture,
13723 intrinsic: u32,
13724 count: *mut usize,
13725 ) -> *mut BNTypeWithConfidence;
13726}
13727unsafe extern "C" {
13728 pub fn BNFreeOutputTypeList(types: *mut BNTypeWithConfidence, count: usize);
13729}
13730unsafe extern "C" {
13731 pub fn BNCanArchitectureAssemble(arch: *mut BNArchitecture) -> bool;
13732}
13733unsafe extern "C" {
13734 pub fn BNAssemble(
13735 arch: *mut BNArchitecture,
13736 code: *const ::std::os::raw::c_char,
13737 addr: u64,
13738 result: *mut BNDataBuffer,
13739 errors: *mut *mut ::std::os::raw::c_char,
13740 ) -> bool;
13741}
13742unsafe extern "C" {
13743 pub fn BNIsArchitectureNeverBranchPatchAvailable(
13744 arch: *mut BNArchitecture,
13745 data: *const u8,
13746 addr: u64,
13747 len: usize,
13748 ) -> bool;
13749}
13750unsafe extern "C" {
13751 pub fn BNIsArchitectureAlwaysBranchPatchAvailable(
13752 arch: *mut BNArchitecture,
13753 data: *const u8,
13754 addr: u64,
13755 len: usize,
13756 ) -> bool;
13757}
13758unsafe extern "C" {
13759 pub fn BNIsArchitectureInvertBranchPatchAvailable(
13760 arch: *mut BNArchitecture,
13761 data: *const u8,
13762 addr: u64,
13763 len: usize,
13764 ) -> bool;
13765}
13766unsafe extern "C" {
13767 pub fn BNIsArchitectureSkipAndReturnZeroPatchAvailable(
13768 arch: *mut BNArchitecture,
13769 data: *const u8,
13770 addr: u64,
13771 len: usize,
13772 ) -> bool;
13773}
13774unsafe extern "C" {
13775 pub fn BNIsArchitectureSkipAndReturnValuePatchAvailable(
13776 arch: *mut BNArchitecture,
13777 data: *const u8,
13778 addr: u64,
13779 len: usize,
13780 ) -> bool;
13781}
13782unsafe extern "C" {
13783 pub fn BNArchitectureConvertToNop(
13784 arch: *mut BNArchitecture,
13785 data: *mut u8,
13786 addr: u64,
13787 len: usize,
13788 ) -> bool;
13789}
13790unsafe extern "C" {
13791 pub fn BNArchitectureAlwaysBranch(
13792 arch: *mut BNArchitecture,
13793 data: *mut u8,
13794 addr: u64,
13795 len: usize,
13796 ) -> bool;
13797}
13798unsafe extern "C" {
13799 pub fn BNArchitectureInvertBranch(
13800 arch: *mut BNArchitecture,
13801 data: *mut u8,
13802 addr: u64,
13803 len: usize,
13804 ) -> bool;
13805}
13806unsafe extern "C" {
13807 pub fn BNArchitectureSkipAndReturnValue(
13808 arch: *mut BNArchitecture,
13809 data: *mut u8,
13810 addr: u64,
13811 len: usize,
13812 value: u64,
13813 ) -> bool;
13814}
13815unsafe extern "C" {
13816 pub fn BNRegisterArchitectureFunctionRecognizer(
13817 arch: *mut BNArchitecture,
13818 rec: *mut BNFunctionRecognizer,
13819 );
13820}
13821unsafe extern "C" {
13822 pub fn BNArchitectureRegisterRelocationHandler(
13823 arch: *mut BNArchitecture,
13824 viewName: *const ::std::os::raw::c_char,
13825 handler: *mut BNRelocationHandler,
13826 );
13827}
13828unsafe extern "C" {
13829 pub fn BNCreateRelocationHandler(
13830 handler: *mut BNCustomRelocationHandler,
13831 ) -> *mut BNRelocationHandler;
13832}
13833unsafe extern "C" {
13834 pub fn BNArchitectureGetRelocationHandler(
13835 arch: *mut BNArchitecture,
13836 viewName: *const ::std::os::raw::c_char,
13837 ) -> *mut BNRelocationHandler;
13838}
13839unsafe extern "C" {
13840 pub fn BNNewRelocationHandlerReference(
13841 handler: *mut BNRelocationHandler,
13842 ) -> *mut BNRelocationHandler;
13843}
13844unsafe extern "C" {
13845 pub fn BNFreeRelocationHandler(handler: *mut BNRelocationHandler);
13846}
13847unsafe extern "C" {
13848 pub fn BNRelocationHandlerGetRelocationInfo(
13849 handler: *mut BNRelocationHandler,
13850 data: *mut BNBinaryView,
13851 arch: *mut BNArchitecture,
13852 info: *mut BNRelocationInfo,
13853 infoCount: usize,
13854 ) -> bool;
13855}
13856unsafe extern "C" {
13857 pub fn BNRelocationHandlerApplyRelocation(
13858 handler: *mut BNRelocationHandler,
13859 view: *mut BNBinaryView,
13860 arch: *mut BNArchitecture,
13861 reloc: *mut BNRelocation,
13862 dest: *mut u8,
13863 len: usize,
13864 ) -> bool;
13865}
13866unsafe extern "C" {
13867 pub fn BNRelocationHandlerDefaultApplyRelocation(
13868 handler: *mut BNRelocationHandler,
13869 view: *mut BNBinaryView,
13870 arch: *mut BNArchitecture,
13871 reloc: *mut BNRelocation,
13872 dest: *mut u8,
13873 len: usize,
13874 ) -> bool;
13875}
13876unsafe extern "C" {
13877 pub fn BNRelocationHandlerGetOperandForExternalRelocation(
13878 handler: *mut BNRelocationHandler,
13879 data: *const u8,
13880 addr: u64,
13881 length: usize,
13882 il: *const BNLowLevelILFunction,
13883 relocation: *mut BNRelocation,
13884 ) -> usize;
13885}
13886unsafe extern "C" {
13887 #[doc = " Analysis"]
13888 pub fn BNAddAnalysisOption(view: *mut BNBinaryView, name: *const ::std::os::raw::c_char);
13889}
13890unsafe extern "C" {
13891 pub fn BNAddFunctionForAnalysis(
13892 view: *mut BNBinaryView,
13893 platform: *mut BNPlatform,
13894 addr: u64,
13895 autoDiscovered: bool,
13896 type_: *mut BNType,
13897 ) -> *mut BNFunction;
13898}
13899unsafe extern "C" {
13900 pub fn BNAddEntryPointForAnalysis(
13901 view: *mut BNBinaryView,
13902 platform: *mut BNPlatform,
13903 addr: u64,
13904 );
13905}
13906unsafe extern "C" {
13907 pub fn BNRemoveAnalysisFunction(
13908 view: *mut BNBinaryView,
13909 func: *mut BNFunction,
13910 updateRefs: bool,
13911 );
13912}
13913unsafe extern "C" {
13914 pub fn BNCreateUserFunction(
13915 view: *mut BNBinaryView,
13916 platform: *mut BNPlatform,
13917 addr: u64,
13918 ) -> *mut BNFunction;
13919}
13920unsafe extern "C" {
13921 pub fn BNRemoveUserFunction(view: *mut BNBinaryView, func: *mut BNFunction);
13922}
13923unsafe extern "C" {
13924 pub fn BNHasInitialAnalysis(view: *mut BNBinaryView) -> bool;
13925}
13926unsafe extern "C" {
13927 pub fn BNSetAnalysisHold(view: *mut BNBinaryView, enable: bool);
13928}
13929unsafe extern "C" {
13930 pub fn BNGetFunctionAnalysisUpdateDisabled(view: *mut BNBinaryView) -> bool;
13931}
13932unsafe extern "C" {
13933 pub fn BNSetFunctionAnalysisUpdateDisabled(view: *mut BNBinaryView, disabled: bool);
13934}
13935unsafe extern "C" {
13936 pub fn BNUpdateAnalysisAndWait(view: *mut BNBinaryView);
13937}
13938unsafe extern "C" {
13939 pub fn BNUpdateAnalysis(view: *mut BNBinaryView);
13940}
13941unsafe extern "C" {
13942 pub fn BNAbortAnalysis(view: *mut BNBinaryView);
13943}
13944unsafe extern "C" {
13945 pub fn BNAnalysisIsAborted(view: *mut BNBinaryView) -> bool;
13946}
13947unsafe extern "C" {
13948 pub fn BNIsFunctionUpdateNeeded(func: *mut BNFunction) -> bool;
13949}
13950unsafe extern "C" {
13951 pub fn BNRequestAdvancedFunctionAnalysisData(func: *mut BNFunction);
13952}
13953unsafe extern "C" {
13954 pub fn BNReleaseAdvancedFunctionAnalysisData(func: *mut BNFunction);
13955}
13956unsafe extern "C" {
13957 pub fn BNReleaseAdvancedFunctionAnalysisDataMultiple(func: *mut BNFunction, count: usize);
13958}
13959unsafe extern "C" {
13960 pub fn BNNewFunctionReference(func: *mut BNFunction) -> *mut BNFunction;
13961}
13962unsafe extern "C" {
13963 pub fn BNFreeFunction(func: *mut BNFunction);
13964}
13965unsafe extern "C" {
13966 pub fn BNGetAnalysisFunctionList(
13967 view: *mut BNBinaryView,
13968 count: *mut usize,
13969 ) -> *mut *mut BNFunction;
13970}
13971unsafe extern "C" {
13972 pub fn BNFreeFunctionList(funcs: *mut *mut BNFunction, count: usize);
13973}
13974unsafe extern "C" {
13975 pub fn BNHasFunctions(view: *mut BNBinaryView) -> bool;
13976}
13977unsafe extern "C" {
13978 pub fn BNHasSymbols(view: *mut BNBinaryView) -> bool;
13979}
13980unsafe extern "C" {
13981 pub fn BNHasDataVariables(view: *mut BNBinaryView) -> bool;
13982}
13983unsafe extern "C" {
13984 pub fn BNGetAnalysisFunction(
13985 view: *mut BNBinaryView,
13986 platform: *mut BNPlatform,
13987 addr: u64,
13988 ) -> *mut BNFunction;
13989}
13990unsafe extern "C" {
13991 pub fn BNGetRecentAnalysisFunctionForAddress(
13992 view: *mut BNBinaryView,
13993 addr: u64,
13994 ) -> *mut BNFunction;
13995}
13996unsafe extern "C" {
13997 pub fn BNGetAnalysisFunctionsForAddress(
13998 view: *mut BNBinaryView,
13999 addr: u64,
14000 count: *mut usize,
14001 ) -> *mut *mut BNFunction;
14002}
14003unsafe extern "C" {
14004 pub fn BNGetAnalysisFunctionsContainingAddress(
14005 view: *mut BNBinaryView,
14006 addr: u64,
14007 count: *mut usize,
14008 ) -> *mut *mut BNFunction;
14009}
14010unsafe extern "C" {
14011 pub fn BNGetAnalysisEntryPoint(view: *mut BNBinaryView) -> *mut BNFunction;
14012}
14013unsafe extern "C" {
14014 pub fn BNGetAllEntryFunctions(
14015 view: *mut BNBinaryView,
14016 count: *mut usize,
14017 ) -> *mut *mut BNFunction;
14018}
14019unsafe extern "C" {
14020 pub fn BNAddToEntryFunctions(view: *mut BNBinaryView, func: *mut BNFunction);
14021}
14022unsafe extern "C" {
14023 pub fn BNGetGlobalCommentForAddress(
14024 view: *mut BNBinaryView,
14025 addr: u64,
14026 ) -> *mut ::std::os::raw::c_char;
14027}
14028unsafe extern "C" {
14029 pub fn BNGetGlobalCommentedAddresses(view: *mut BNBinaryView, count: *mut usize) -> *mut u64;
14030}
14031unsafe extern "C" {
14032 pub fn BNSetGlobalCommentForAddress(
14033 view: *mut BNBinaryView,
14034 addr: u64,
14035 comment: *const ::std::os::raw::c_char,
14036 );
14037}
14038unsafe extern "C" {
14039 pub fn BNGetFunctionData(func: *mut BNFunction) -> *mut BNBinaryView;
14040}
14041unsafe extern "C" {
14042 pub fn BNGetFunctionArchitecture(func: *mut BNFunction) -> *mut BNArchitecture;
14043}
14044unsafe extern "C" {
14045 pub fn BNGetFunctionPlatform(func: *mut BNFunction) -> *mut BNPlatform;
14046}
14047unsafe extern "C" {
14048 pub fn BNGetFunctionStart(func: *mut BNFunction) -> u64;
14049}
14050unsafe extern "C" {
14051 pub fn BNGetFunctionSymbol(func: *mut BNFunction) -> *mut BNSymbol;
14052}
14053unsafe extern "C" {
14054 pub fn BNWasFunctionAutomaticallyDiscovered(func: *mut BNFunction) -> bool;
14055}
14056unsafe extern "C" {
14057 pub fn BNFunctionHasUserAnnotations(func: *mut BNFunction) -> bool;
14058}
14059unsafe extern "C" {
14060 pub fn BNCanFunctionReturn(func: *mut BNFunction) -> BNBoolWithConfidence;
14061}
14062unsafe extern "C" {
14063 pub fn BNIsFunctionPure(func: *mut BNFunction) -> BNBoolWithConfidence;
14064}
14065unsafe extern "C" {
14066 pub fn BNSetFunctionAutoType(func: *mut BNFunction, type_: *mut BNType);
14067}
14068unsafe extern "C" {
14069 pub fn BNSetFunctionUserType(func: *mut BNFunction, type_: *mut BNType);
14070}
14071unsafe extern "C" {
14072 pub fn BNFunctionHasUserType(func: *mut BNFunction) -> bool;
14073}
14074unsafe extern "C" {
14075 pub fn BNGetFunctionComment(func: *mut BNFunction) -> *mut ::std::os::raw::c_char;
14076}
14077unsafe extern "C" {
14078 pub fn BNGetCommentForAddress(func: *mut BNFunction, addr: u64) -> *mut ::std::os::raw::c_char;
14079}
14080unsafe extern "C" {
14081 pub fn BNGetCommentedAddresses(func: *mut BNFunction, count: *mut usize) -> *mut u64;
14082}
14083unsafe extern "C" {
14084 pub fn BNFreeAddressList(addrs: *mut u64);
14085}
14086unsafe extern "C" {
14087 pub fn BNSetFunctionComment(func: *mut BNFunction, comment: *const ::std::os::raw::c_char);
14088}
14089unsafe extern "C" {
14090 pub fn BNSetCommentForAddress(
14091 func: *mut BNFunction,
14092 addr: u64,
14093 comment: *const ::std::os::raw::c_char,
14094 );
14095}
14096unsafe extern "C" {
14097 pub fn BNAddUserCodeReference(
14098 func: *mut BNFunction,
14099 fromArch: *mut BNArchitecture,
14100 fromAddr: u64,
14101 toAddr: u64,
14102 );
14103}
14104unsafe extern "C" {
14105 pub fn BNRemoveUserCodeReference(
14106 func: *mut BNFunction,
14107 fromArch: *mut BNArchitecture,
14108 fromAddr: u64,
14109 toAddr: u64,
14110 );
14111}
14112unsafe extern "C" {
14113 pub fn BNAddUserTypeReference(
14114 func: *mut BNFunction,
14115 fromArch: *mut BNArchitecture,
14116 fromAddr: u64,
14117 name: *mut BNQualifiedName,
14118 );
14119}
14120unsafe extern "C" {
14121 pub fn BNRemoveUserTypeReference(
14122 func: *mut BNFunction,
14123 fromArch: *mut BNArchitecture,
14124 fromAddr: u64,
14125 name: *mut BNQualifiedName,
14126 );
14127}
14128unsafe extern "C" {
14129 pub fn BNAddUserTypeFieldReference(
14130 func: *mut BNFunction,
14131 fromArch: *mut BNArchitecture,
14132 fromAddr: u64,
14133 name: *mut BNQualifiedName,
14134 offset: u64,
14135 size: usize,
14136 );
14137}
14138unsafe extern "C" {
14139 pub fn BNRemoveUserTypeFieldReference(
14140 func: *mut BNFunction,
14141 fromArch: *mut BNArchitecture,
14142 fromAddr: u64,
14143 name: *mut BNQualifiedName,
14144 offset: u64,
14145 size: usize,
14146 );
14147}
14148unsafe extern "C" {
14149 pub fn BNNewBasicBlockReference(block: *mut BNBasicBlock) -> *mut BNBasicBlock;
14150}
14151unsafe extern "C" {
14152 pub fn BNFreeBasicBlock(block: *mut BNBasicBlock);
14153}
14154unsafe extern "C" {
14155 pub fn BNGetFunctionBasicBlockList(
14156 func: *mut BNFunction,
14157 count: *mut usize,
14158 ) -> *mut *mut BNBasicBlock;
14159}
14160unsafe extern "C" {
14161 pub fn BNFreeBasicBlockList(blocks: *mut *mut BNBasicBlock, count: usize);
14162}
14163unsafe extern "C" {
14164 pub fn BNGetFunctionBasicBlockAtAddress(
14165 func: *mut BNFunction,
14166 arch: *mut BNArchitecture,
14167 addr: u64,
14168 ) -> *mut BNBasicBlock;
14169}
14170unsafe extern "C" {
14171 pub fn BNGetRecentBasicBlockForAddress(view: *mut BNBinaryView, addr: u64)
14172 -> *mut BNBasicBlock;
14173}
14174unsafe extern "C" {
14175 pub fn BNGetBasicBlocksForAddress(
14176 view: *mut BNBinaryView,
14177 addr: u64,
14178 count: *mut usize,
14179 ) -> *mut *mut BNBasicBlock;
14180}
14181unsafe extern "C" {
14182 pub fn BNGetBasicBlocksStartingAtAddress(
14183 view: *mut BNBinaryView,
14184 addr: u64,
14185 count: *mut usize,
14186 ) -> *mut *mut BNBasicBlock;
14187}
14188unsafe extern "C" {
14189 pub fn BNGetFunctionHighestAddress(func: *mut BNFunction) -> u64;
14190}
14191unsafe extern "C" {
14192 pub fn BNGetFunctionLowestAddress(func: *mut BNFunction) -> u64;
14193}
14194unsafe extern "C" {
14195 pub fn BNGetFunctionAddressRanges(
14196 func: *mut BNFunction,
14197 count: *mut usize,
14198 ) -> *mut BNAddressRange;
14199}
14200unsafe extern "C" {
14201 pub fn BNGetFunctionLowLevelIL(func: *mut BNFunction) -> *mut BNLowLevelILFunction;
14202}
14203unsafe extern "C" {
14204 pub fn BNGetFunctionLowLevelILIfAvailable(func: *mut BNFunction) -> *mut BNLowLevelILFunction;
14205}
14206unsafe extern "C" {
14207 pub fn BNFreeILInstructionList(list: *mut usize);
14208}
14209unsafe extern "C" {
14210 pub fn BNGetFunctionMediumLevelIL(func: *mut BNFunction) -> *mut BNMediumLevelILFunction;
14211}
14212unsafe extern "C" {
14213 pub fn BNGetFunctionMediumLevelILIfAvailable(
14214 func: *mut BNFunction,
14215 ) -> *mut BNMediumLevelILFunction;
14216}
14217unsafe extern "C" {
14218 pub fn BNGetFunctionMappedMediumLevelIL(func: *mut BNFunction) -> *mut BNMediumLevelILFunction;
14219}
14220unsafe extern "C" {
14221 pub fn BNGetFunctionMappedMediumLevelILIfAvailable(
14222 func: *mut BNFunction,
14223 ) -> *mut BNMediumLevelILFunction;
14224}
14225unsafe extern "C" {
14226 pub fn BNGetFunctionHighLevelIL(func: *mut BNFunction) -> *mut BNHighLevelILFunction;
14227}
14228unsafe extern "C" {
14229 pub fn BNGetFunctionHighLevelILIfAvailable(func: *mut BNFunction)
14230 -> *mut BNHighLevelILFunction;
14231}
14232unsafe extern "C" {
14233 pub fn BNGetFunctionLanguageRepresentation(
14234 func: *mut BNFunction,
14235 language: *const ::std::os::raw::c_char,
14236 ) -> *mut BNLanguageRepresentationFunction;
14237}
14238unsafe extern "C" {
14239 pub fn BNGetFunctionLanguageRepresentationIfAvailable(
14240 func: *mut BNFunction,
14241 language: *const ::std::os::raw::c_char,
14242 ) -> *mut BNLanguageRepresentationFunction;
14243}
14244unsafe extern "C" {
14245 pub fn BNGetConstantData(
14246 func: *mut BNFunction,
14247 state: BNRegisterValueType,
14248 value: u64,
14249 size: usize,
14250 builtin: *mut BNBuiltinType,
14251 ) -> *mut BNDataBuffer;
14252}
14253unsafe extern "C" {
14254 pub fn BNGetRegisterValueAtInstruction(
14255 func: *mut BNFunction,
14256 arch: *mut BNArchitecture,
14257 addr: u64,
14258 reg: u32,
14259 ) -> BNRegisterValue;
14260}
14261unsafe extern "C" {
14262 pub fn BNGetRegisterValueAfterInstruction(
14263 func: *mut BNFunction,
14264 arch: *mut BNArchitecture,
14265 addr: u64,
14266 reg: u32,
14267 ) -> BNRegisterValue;
14268}
14269unsafe extern "C" {
14270 pub fn BNGetStackContentsAtInstruction(
14271 func: *mut BNFunction,
14272 arch: *mut BNArchitecture,
14273 addr: u64,
14274 offset: i64,
14275 size: usize,
14276 ) -> BNRegisterValue;
14277}
14278unsafe extern "C" {
14279 pub fn BNGetStackContentsAfterInstruction(
14280 func: *mut BNFunction,
14281 arch: *mut BNArchitecture,
14282 addr: u64,
14283 offset: i64,
14284 size: usize,
14285 ) -> BNRegisterValue;
14286}
14287unsafe extern "C" {
14288 pub fn BNGetParameterValueAtInstruction(
14289 func: *mut BNFunction,
14290 arch: *mut BNArchitecture,
14291 addr: u64,
14292 functionType: *mut BNType,
14293 i: usize,
14294 ) -> BNRegisterValue;
14295}
14296unsafe extern "C" {
14297 pub fn BNGetParameterValueAtLowLevelILInstruction(
14298 func: *mut BNFunction,
14299 instr: usize,
14300 functionType: *mut BNType,
14301 i: usize,
14302 ) -> BNRegisterValue;
14303}
14304unsafe extern "C" {
14305 pub fn BNFreePossibleValueSet(value: *mut BNPossibleValueSet);
14306}
14307unsafe extern "C" {
14308 pub fn BNGetRegistersReadByInstruction(
14309 func: *mut BNFunction,
14310 arch: *mut BNArchitecture,
14311 addr: u64,
14312 count: *mut usize,
14313 ) -> *mut u32;
14314}
14315unsafe extern "C" {
14316 pub fn BNGetRegistersWrittenByInstruction(
14317 func: *mut BNFunction,
14318 arch: *mut BNArchitecture,
14319 addr: u64,
14320 count: *mut usize,
14321 ) -> *mut u32;
14322}
14323unsafe extern "C" {
14324 pub fn BNGetStackVariablesReferencedByInstruction(
14325 func: *mut BNFunction,
14326 arch: *mut BNArchitecture,
14327 addr: u64,
14328 count: *mut usize,
14329 ) -> *mut BNStackVariableReference;
14330}
14331unsafe extern "C" {
14332 pub fn BNGetStackVariablesReferencedByInstructionIfAvailable(
14333 func: *mut BNFunction,
14334 arch: *mut BNArchitecture,
14335 addr: u64,
14336 count: *mut usize,
14337 ) -> *mut BNStackVariableReference;
14338}
14339unsafe extern "C" {
14340 pub fn BNFreeStackVariableReferenceList(refs: *mut BNStackVariableReference, count: usize);
14341}
14342unsafe extern "C" {
14343 pub fn BNGetConstantsReferencedByInstruction(
14344 func: *mut BNFunction,
14345 arch: *mut BNArchitecture,
14346 addr: u64,
14347 count: *mut usize,
14348 ) -> *mut BNConstantReference;
14349}
14350unsafe extern "C" {
14351 pub fn BNGetConstantsReferencedByInstructionIfAvailable(
14352 func: *mut BNFunction,
14353 arch: *mut BNArchitecture,
14354 addr: u64,
14355 count: *mut usize,
14356 ) -> *mut BNConstantReference;
14357}
14358unsafe extern "C" {
14359 pub fn BNFreeConstantReferenceList(refs: *mut BNConstantReference);
14360}
14361unsafe extern "C" {
14362 pub fn BNGetFunctionLiftedIL(func: *mut BNFunction) -> *mut BNLowLevelILFunction;
14363}
14364unsafe extern "C" {
14365 pub fn BNGetFunctionLiftedILIfAvailable(func: *mut BNFunction) -> *mut BNLowLevelILFunction;
14366}
14367unsafe extern "C" {
14368 pub fn BNGetLiftedILFlagUsesForDefinition(
14369 func: *mut BNFunction,
14370 i: usize,
14371 flag: u32,
14372 count: *mut usize,
14373 ) -> *mut usize;
14374}
14375unsafe extern "C" {
14376 pub fn BNGetLiftedILFlagDefinitionsForUse(
14377 func: *mut BNFunction,
14378 i: usize,
14379 flag: u32,
14380 count: *mut usize,
14381 ) -> *mut usize;
14382}
14383unsafe extern "C" {
14384 pub fn BNGetFlagsReadByLiftedILInstruction(
14385 func: *mut BNFunction,
14386 i: usize,
14387 count: *mut usize,
14388 ) -> *mut u32;
14389}
14390unsafe extern "C" {
14391 pub fn BNGetFlagsWrittenByLiftedILInstruction(
14392 func: *mut BNFunction,
14393 i: usize,
14394 count: *mut usize,
14395 ) -> *mut u32;
14396}
14397unsafe extern "C" {
14398 pub fn BNGetFunctionType(func: *mut BNFunction) -> *mut BNType;
14399}
14400unsafe extern "C" {
14401 pub fn BNGetFunctionReturnType(func: *mut BNFunction) -> BNTypeWithConfidence;
14402}
14403unsafe extern "C" {
14404 pub fn BNGetFunctionReturnRegisters(func: *mut BNFunction) -> BNRegisterSetWithConfidence;
14405}
14406unsafe extern "C" {
14407 pub fn BNGetFunctionCallingConvention(
14408 func: *mut BNFunction,
14409 ) -> BNCallingConventionWithConfidence;
14410}
14411unsafe extern "C" {
14412 pub fn BNGetFunctionParameterVariables(
14413 func: *mut BNFunction,
14414 ) -> BNParameterVariablesWithConfidence;
14415}
14416unsafe extern "C" {
14417 pub fn BNFreeParameterVariables(vars: *mut BNParameterVariablesWithConfidence);
14418}
14419unsafe extern "C" {
14420 pub fn BNFunctionHasVariableArguments(func: *mut BNFunction) -> BNBoolWithConfidence;
14421}
14422unsafe extern "C" {
14423 pub fn BNGetFunctionStackAdjustment(func: *mut BNFunction) -> BNOffsetWithConfidence;
14424}
14425unsafe extern "C" {
14426 pub fn BNGetFunctionRegisterStackAdjustments(
14427 func: *mut BNFunction,
14428 count: *mut usize,
14429 ) -> *mut BNRegisterStackAdjustment;
14430}
14431unsafe extern "C" {
14432 pub fn BNFreeRegisterStackAdjustments(adjustments: *mut BNRegisterStackAdjustment);
14433}
14434unsafe extern "C" {
14435 pub fn BNGetFunctionClobberedRegisters(func: *mut BNFunction) -> BNRegisterSetWithConfidence;
14436}
14437unsafe extern "C" {
14438 pub fn BNFreeRegisterSet(regs: *mut BNRegisterSetWithConfidence);
14439}
14440unsafe extern "C" {
14441 pub fn BNSetAutoFunctionReturnType(func: *mut BNFunction, type_: *mut BNTypeWithConfidence);
14442}
14443unsafe extern "C" {
14444 pub fn BNSetAutoFunctionReturnRegisters(
14445 func: *mut BNFunction,
14446 regs: *mut BNRegisterSetWithConfidence,
14447 );
14448}
14449unsafe extern "C" {
14450 pub fn BNSetAutoFunctionCallingConvention(
14451 func: *mut BNFunction,
14452 convention: *mut BNCallingConventionWithConfidence,
14453 );
14454}
14455unsafe extern "C" {
14456 pub fn BNSetAutoFunctionParameterVariables(
14457 func: *mut BNFunction,
14458 vars: *mut BNParameterVariablesWithConfidence,
14459 );
14460}
14461unsafe extern "C" {
14462 pub fn BNSetAutoFunctionHasVariableArguments(
14463 func: *mut BNFunction,
14464 varArgs: *mut BNBoolWithConfidence,
14465 );
14466}
14467unsafe extern "C" {
14468 pub fn BNSetAutoFunctionCanReturn(func: *mut BNFunction, returns: *mut BNBoolWithConfidence);
14469}
14470unsafe extern "C" {
14471 pub fn BNSetAutoFunctionPure(func: *mut BNFunction, pure_: *mut BNBoolWithConfidence);
14472}
14473unsafe extern "C" {
14474 pub fn BNSetAutoFunctionStackAdjustment(
14475 func: *mut BNFunction,
14476 stackAdjust: *mut BNOffsetWithConfidence,
14477 );
14478}
14479unsafe extern "C" {
14480 pub fn BNSetAutoFunctionRegisterStackAdjustments(
14481 func: *mut BNFunction,
14482 adjustments: *mut BNRegisterStackAdjustment,
14483 count: usize,
14484 );
14485}
14486unsafe extern "C" {
14487 pub fn BNSetAutoFunctionClobberedRegisters(
14488 func: *mut BNFunction,
14489 regs: *mut BNRegisterSetWithConfidence,
14490 );
14491}
14492unsafe extern "C" {
14493 pub fn BNSetUserFunctionReturnType(func: *mut BNFunction, type_: *mut BNTypeWithConfidence);
14494}
14495unsafe extern "C" {
14496 pub fn BNSetUserFunctionReturnRegisters(
14497 func: *mut BNFunction,
14498 regs: *mut BNRegisterSetWithConfidence,
14499 );
14500}
14501unsafe extern "C" {
14502 pub fn BNSetUserFunctionCallingConvention(
14503 func: *mut BNFunction,
14504 convention: *mut BNCallingConventionWithConfidence,
14505 );
14506}
14507unsafe extern "C" {
14508 pub fn BNSetUserFunctionParameterVariables(
14509 func: *mut BNFunction,
14510 vars: *mut BNParameterVariablesWithConfidence,
14511 );
14512}
14513unsafe extern "C" {
14514 pub fn BNSetUserFunctionHasVariableArguments(
14515 func: *mut BNFunction,
14516 varArgs: *mut BNBoolWithConfidence,
14517 );
14518}
14519unsafe extern "C" {
14520 pub fn BNSetUserFunctionCanReturn(func: *mut BNFunction, returns: *mut BNBoolWithConfidence);
14521}
14522unsafe extern "C" {
14523 pub fn BNSetUserFunctionPure(func: *mut BNFunction, pure_: *mut BNBoolWithConfidence);
14524}
14525unsafe extern "C" {
14526 pub fn BNSetUserFunctionStackAdjustment(
14527 func: *mut BNFunction,
14528 stackAdjust: *mut BNOffsetWithConfidence,
14529 );
14530}
14531unsafe extern "C" {
14532 pub fn BNSetUserFunctionRegisterStackAdjustments(
14533 func: *mut BNFunction,
14534 adjustments: *mut BNRegisterStackAdjustment,
14535 count: usize,
14536 );
14537}
14538unsafe extern "C" {
14539 pub fn BNSetUserFunctionClobberedRegisters(
14540 func: *mut BNFunction,
14541 regs: *mut BNRegisterSetWithConfidence,
14542 );
14543}
14544unsafe extern "C" {
14545 pub fn BNApplyImportedTypes(func: *mut BNFunction, sym: *mut BNSymbol, type_: *mut BNType);
14546}
14547unsafe extern "C" {
14548 pub fn BNApplyAutoDiscoveredFunctionType(func: *mut BNFunction, type_: *mut BNType);
14549}
14550unsafe extern "C" {
14551 pub fn BNFunctionHasExplicitlyDefinedType(func: *mut BNFunction) -> bool;
14552}
14553unsafe extern "C" {
14554 pub fn BNGetFunctionTypeTokens(
14555 func: *mut BNFunction,
14556 settings: *mut BNDisassemblySettings,
14557 count: *mut usize,
14558 ) -> *mut BNDisassemblyTextLine;
14559}
14560unsafe extern "C" {
14561 pub fn BNGetFunctionGlobalPointerValue(func: *mut BNFunction) -> BNRegisterValueWithConfidence;
14562}
14563unsafe extern "C" {
14564 pub fn BNFunctionUsesIncomingGlobalPointer(func: *mut BNFunction) -> bool;
14565}
14566unsafe extern "C" {
14567 pub fn BNGetFunctionRegisterValueAtExit(
14568 func: *mut BNFunction,
14569 reg: u32,
14570 ) -> BNRegisterValueWithConfidence;
14571}
14572unsafe extern "C" {
14573 pub fn BNIsFunctionInlinedDuringAnalysis(func: *mut BNFunction) -> BNBoolWithConfidence;
14574}
14575unsafe extern "C" {
14576 pub fn BNSetAutoFunctionInlinedDuringAnalysis(
14577 func: *mut BNFunction,
14578 inlined: BNBoolWithConfidence,
14579 );
14580}
14581unsafe extern "C" {
14582 pub fn BNSetUserFunctionInlinedDuringAnalysis(
14583 func: *mut BNFunction,
14584 inlined: BNBoolWithConfidence,
14585 );
14586}
14587unsafe extern "C" {
14588 pub fn BNGetInstructionContainingAddress(
14589 func: *mut BNFunction,
14590 arch: *mut BNArchitecture,
14591 addr: u64,
14592 start: *mut u64,
14593 ) -> bool;
14594}
14595unsafe extern "C" {
14596 pub fn BNGetBasicBlockFunction(block: *mut BNBasicBlock) -> *mut BNFunction;
14597}
14598unsafe extern "C" {
14599 pub fn BNGetBasicBlockArchitecture(block: *mut BNBasicBlock) -> *mut BNArchitecture;
14600}
14601unsafe extern "C" {
14602 pub fn BNGetBasicBlockSource(block: *mut BNBasicBlock) -> *mut BNBasicBlock;
14603}
14604unsafe extern "C" {
14605 pub fn BNGetBasicBlockStart(block: *mut BNBasicBlock) -> u64;
14606}
14607unsafe extern "C" {
14608 pub fn BNSetBasicBlockEnd(block: *mut BNBasicBlock, end: u64);
14609}
14610unsafe extern "C" {
14611 pub fn BNGetBasicBlockEnd(block: *mut BNBasicBlock) -> u64;
14612}
14613unsafe extern "C" {
14614 pub fn BNGetBasicBlockLength(block: *mut BNBasicBlock) -> u64;
14615}
14616unsafe extern "C" {
14617 pub fn BNGetBasicBlockOutgoingEdges(
14618 block: *mut BNBasicBlock,
14619 count: *mut usize,
14620 ) -> *mut BNBasicBlockEdge;
14621}
14622unsafe extern "C" {
14623 pub fn BNGetBasicBlockIncomingEdges(
14624 block: *mut BNBasicBlock,
14625 count: *mut usize,
14626 ) -> *mut BNBasicBlockEdge;
14627}
14628unsafe extern "C" {
14629 pub fn BNFreeBasicBlockEdgeList(edges: *mut BNBasicBlockEdge, count: usize);
14630}
14631unsafe extern "C" {
14632 pub fn BNBasicBlockHasUndeterminedOutgoingEdges(block: *mut BNBasicBlock) -> bool;
14633}
14634unsafe extern "C" {
14635 pub fn BNBasicBlockAddPendingOutgoingEdge(
14636 block: *mut BNBasicBlock,
14637 type_: BNBranchType,
14638 addr: u64,
14639 arch: *mut BNArchitecture,
14640 fallThrough: bool,
14641 );
14642}
14643unsafe extern "C" {
14644 pub fn BNGetBasicBlockPendingOutgoingEdges(
14645 block: *mut BNBasicBlock,
14646 count: *mut usize,
14647 ) -> *mut BNPendingBasicBlockEdge;
14648}
14649unsafe extern "C" {
14650 pub fn BNFreePendingBasicBlockEdgeList(edges: *mut BNPendingBasicBlockEdge);
14651}
14652unsafe extern "C" {
14653 pub fn BNClearBasicBlockPendingOutgoingEdges(block: *mut BNBasicBlock);
14654}
14655unsafe extern "C" {
14656 pub fn BNBasicBlockSetUndeterminedOutgoingEdges(block: *mut BNBasicBlock, value: bool);
14657}
14658unsafe extern "C" {
14659 pub fn BNBasicBlockGetInstructionData(
14660 block: *mut BNBasicBlock,
14661 addr: u64,
14662 len: *mut usize,
14663 ) -> *const u8;
14664}
14665unsafe extern "C" {
14666 pub fn BNBasicBlockAddInstructionData(
14667 block: *mut BNBasicBlock,
14668 data: *const ::std::os::raw::c_void,
14669 len: usize,
14670 );
14671}
14672unsafe extern "C" {
14673 pub fn BNBasicBlockSetFallThroughToFunction(block: *mut BNBasicBlock, value: bool);
14674}
14675unsafe extern "C" {
14676 pub fn BNBasicBlockIsFallThroughToFunction(block: *mut BNBasicBlock) -> bool;
14677}
14678unsafe extern "C" {
14679 pub fn BNBasicBlockCanExit(block: *mut BNBasicBlock) -> bool;
14680}
14681unsafe extern "C" {
14682 pub fn BNBasicBlockSetCanExit(block: *mut BNBasicBlock, value: bool);
14683}
14684unsafe extern "C" {
14685 pub fn BNBasicBlockSetHasInvalidInstructions(block: *mut BNBasicBlock, value: bool);
14686}
14687unsafe extern "C" {
14688 pub fn BNBasicBlockHasInvalidInstructions(block: *mut BNBasicBlock) -> bool;
14689}
14690unsafe extern "C" {
14691 pub fn BNGetBasicBlockIndex(block: *mut BNBasicBlock) -> usize;
14692}
14693unsafe extern "C" {
14694 pub fn BNGetBasicBlockDominators(
14695 block: *mut BNBasicBlock,
14696 count: *mut usize,
14697 post: bool,
14698 ) -> *mut *mut BNBasicBlock;
14699}
14700unsafe extern "C" {
14701 pub fn BNGetBasicBlockStrictDominators(
14702 block: *mut BNBasicBlock,
14703 count: *mut usize,
14704 post: bool,
14705 ) -> *mut *mut BNBasicBlock;
14706}
14707unsafe extern "C" {
14708 pub fn BNGetBasicBlockImmediateDominator(
14709 block: *mut BNBasicBlock,
14710 post: bool,
14711 ) -> *mut BNBasicBlock;
14712}
14713unsafe extern "C" {
14714 pub fn BNGetBasicBlockDominatorTreeChildren(
14715 block: *mut BNBasicBlock,
14716 count: *mut usize,
14717 post: bool,
14718 ) -> *mut *mut BNBasicBlock;
14719}
14720unsafe extern "C" {
14721 pub fn BNGetBasicBlockDominanceFrontier(
14722 block: *mut BNBasicBlock,
14723 count: *mut usize,
14724 post: bool,
14725 ) -> *mut *mut BNBasicBlock;
14726}
14727unsafe extern "C" {
14728 pub fn BNGetBasicBlockIteratedDominanceFrontier(
14729 blocks: *mut *mut BNBasicBlock,
14730 incomingCount: usize,
14731 outputCount: *mut usize,
14732 ) -> *mut *mut BNBasicBlock;
14733}
14734unsafe extern "C" {
14735 pub fn BNIsILBasicBlock(block: *mut BNBasicBlock) -> bool;
14736}
14737unsafe extern "C" {
14738 pub fn BNIsLowLevelILBasicBlock(block: *mut BNBasicBlock) -> bool;
14739}
14740unsafe extern "C" {
14741 pub fn BNIsMediumLevelILBasicBlock(block: *mut BNBasicBlock) -> bool;
14742}
14743unsafe extern "C" {
14744 pub fn BNIsHighLevelILBasicBlock(block: *mut BNBasicBlock) -> bool;
14745}
14746unsafe extern "C" {
14747 pub fn BNGetBasicBlockFunctionGraphType(block: *mut BNBasicBlock) -> BNFunctionGraphType;
14748}
14749unsafe extern "C" {
14750 pub fn BNGetBasicBlockLowLevelILFunction(block: *mut BNBasicBlock)
14751 -> *mut BNLowLevelILFunction;
14752}
14753unsafe extern "C" {
14754 pub fn BNGetBasicBlockMediumLevelILFunction(
14755 block: *mut BNBasicBlock,
14756 ) -> *mut BNMediumLevelILFunction;
14757}
14758unsafe extern "C" {
14759 pub fn BNGetBasicBlockHighLevelILFunction(
14760 block: *mut BNBasicBlock,
14761 ) -> *mut BNHighLevelILFunction;
14762}
14763unsafe extern "C" {
14764 pub fn BNGetBasicBlockInstructionContainingAddress(
14765 block: *mut BNBasicBlock,
14766 addr: u64,
14767 start: *mut u64,
14768 ) -> bool;
14769}
14770unsafe extern "C" {
14771 pub fn BNGetBasicBlockSourceBlock(block: *mut BNBasicBlock) -> *mut BNBasicBlock;
14772}
14773unsafe extern "C" {
14774 pub fn BNGetBasicBlockDisassemblyText(
14775 block: *mut BNBasicBlock,
14776 settings: *mut BNDisassemblySettings,
14777 count: *mut usize,
14778 ) -> *mut BNDisassemblyTextLine;
14779}
14780unsafe extern "C" {
14781 pub fn BNFreeDisassemblyTextLines(lines: *mut BNDisassemblyTextLine, count: usize);
14782}
14783unsafe extern "C" {
14784 pub fn BNGetDisplayStringForInteger(
14785 binaryView: *mut BNBinaryView,
14786 type_: BNIntegerDisplayType,
14787 value: u64,
14788 inputWidth: usize,
14789 isSigned: bool,
14790 ) -> *mut ::std::os::raw::c_char;
14791}
14792unsafe extern "C" {
14793 pub fn BNCreateDisassemblyTextRenderer(
14794 func: *mut BNFunction,
14795 settings: *mut BNDisassemblySettings,
14796 ) -> *mut BNDisassemblyTextRenderer;
14797}
14798unsafe extern "C" {
14799 pub fn BNCreateLowLevelILDisassemblyTextRenderer(
14800 func: *mut BNLowLevelILFunction,
14801 settings: *mut BNDisassemblySettings,
14802 ) -> *mut BNDisassemblyTextRenderer;
14803}
14804unsafe extern "C" {
14805 pub fn BNCreateMediumLevelILDisassemblyTextRenderer(
14806 func: *mut BNMediumLevelILFunction,
14807 settings: *mut BNDisassemblySettings,
14808 ) -> *mut BNDisassemblyTextRenderer;
14809}
14810unsafe extern "C" {
14811 pub fn BNCreateHighLevelILDisassemblyTextRenderer(
14812 func: *mut BNHighLevelILFunction,
14813 settings: *mut BNDisassemblySettings,
14814 ) -> *mut BNDisassemblyTextRenderer;
14815}
14816unsafe extern "C" {
14817 pub fn BNNewDisassemblyTextRendererReference(
14818 renderer: *mut BNDisassemblyTextRenderer,
14819 ) -> *mut BNDisassemblyTextRenderer;
14820}
14821unsafe extern "C" {
14822 pub fn BNFreeDisassemblyTextRenderer(renderer: *mut BNDisassemblyTextRenderer);
14823}
14824unsafe extern "C" {
14825 pub fn BNGetDisassemblyTextRendererFunction(
14826 renderer: *mut BNDisassemblyTextRenderer,
14827 ) -> *mut BNFunction;
14828}
14829unsafe extern "C" {
14830 pub fn BNGetDisassemblyTextRendererLowLevelILFunction(
14831 renderer: *mut BNDisassemblyTextRenderer,
14832 ) -> *mut BNLowLevelILFunction;
14833}
14834unsafe extern "C" {
14835 pub fn BNGetDisassemblyTextRendererMediumLevelILFunction(
14836 renderer: *mut BNDisassemblyTextRenderer,
14837 ) -> *mut BNMediumLevelILFunction;
14838}
14839unsafe extern "C" {
14840 pub fn BNGetDisassemblyTextRendererHighLevelILFunction(
14841 renderer: *mut BNDisassemblyTextRenderer,
14842 ) -> *mut BNHighLevelILFunction;
14843}
14844unsafe extern "C" {
14845 pub fn BNGetDisassemblyTextRendererBasicBlock(
14846 renderer: *mut BNDisassemblyTextRenderer,
14847 ) -> *mut BNBasicBlock;
14848}
14849unsafe extern "C" {
14850 pub fn BNGetDisassemblyTextRendererArchitecture(
14851 renderer: *mut BNDisassemblyTextRenderer,
14852 ) -> *mut BNArchitecture;
14853}
14854unsafe extern "C" {
14855 pub fn BNGetDisassemblyTextRendererSettings(
14856 renderer: *mut BNDisassemblyTextRenderer,
14857 ) -> *mut BNDisassemblySettings;
14858}
14859unsafe extern "C" {
14860 pub fn BNSetDisassemblyTextRendererBasicBlock(
14861 renderer: *mut BNDisassemblyTextRenderer,
14862 block: *mut BNBasicBlock,
14863 );
14864}
14865unsafe extern "C" {
14866 pub fn BNSetDisassemblyTextRendererArchitecture(
14867 renderer: *mut BNDisassemblyTextRenderer,
14868 arch: *mut BNArchitecture,
14869 );
14870}
14871unsafe extern "C" {
14872 pub fn BNSetDisassemblyTextRendererSettings(
14873 renderer: *mut BNDisassemblyTextRenderer,
14874 settings: *mut BNDisassemblySettings,
14875 );
14876}
14877unsafe extern "C" {
14878 pub fn BNIsILDisassemblyTextRenderer(renderer: *mut BNDisassemblyTextRenderer) -> bool;
14879}
14880unsafe extern "C" {
14881 pub fn BNDisassemblyTextRendererHasDataFlow(renderer: *mut BNDisassemblyTextRenderer) -> bool;
14882}
14883unsafe extern "C" {
14884 pub fn BNGetDisassemblyTextRendererInstructionAnnotations(
14885 renderer: *mut BNDisassemblyTextRenderer,
14886 addr: u64,
14887 count: *mut usize,
14888 ) -> *mut BNInstructionTextToken;
14889}
14890unsafe extern "C" {
14891 pub fn BNGetDisassemblyTextRendererInstructionText(
14892 renderer: *mut BNDisassemblyTextRenderer,
14893 addr: u64,
14894 len: *mut usize,
14895 result: *mut *mut BNDisassemblyTextLine,
14896 count: *mut usize,
14897 ) -> bool;
14898}
14899unsafe extern "C" {
14900 pub fn BNGetDisassemblyTextRendererLines(
14901 renderer: *mut BNDisassemblyTextRenderer,
14902 addr: u64,
14903 len: *mut usize,
14904 result: *mut *mut BNDisassemblyTextLine,
14905 count: *mut usize,
14906 ) -> bool;
14907}
14908unsafe extern "C" {
14909 pub fn BNPostProcessDisassemblyTextRendererLines(
14910 renderer: *mut BNDisassemblyTextRenderer,
14911 addr: u64,
14912 len: usize,
14913 inLines: *mut BNDisassemblyTextLine,
14914 inCount: usize,
14915 outCount: *mut usize,
14916 indentSpaces: *const ::std::os::raw::c_char,
14917 ) -> *mut BNDisassemblyTextLine;
14918}
14919unsafe extern "C" {
14920 pub fn BNResetDisassemblyTextRendererDeduplicatedComments(
14921 renderer: *mut BNDisassemblyTextRenderer,
14922 );
14923}
14924unsafe extern "C" {
14925 pub fn BNGetDisassemblyTextRendererSymbolTokens(
14926 renderer: *mut BNDisassemblyTextRenderer,
14927 addr: u64,
14928 size: usize,
14929 operand: usize,
14930 result: *mut *mut BNInstructionTextToken,
14931 count: *mut usize,
14932 ) -> bool;
14933}
14934unsafe extern "C" {
14935 pub fn BNGetDisassemblyTextRendererSymbolTokensStatic(
14936 addr: u64,
14937 size: usize,
14938 operand: usize,
14939 data: *mut BNBinaryView,
14940 maxSymbolWidth: usize,
14941 func: *mut BNFunction,
14942 confidence: u8,
14943 symbolDisplay: BNSymbolDisplayType,
14944 precedence: BNOperatorPrecedence,
14945 instrAddr: u64,
14946 exprIndex: u64,
14947 result: *mut *mut BNInstructionTextToken,
14948 count: *mut usize,
14949 ) -> BNSymbolDisplayResult;
14950}
14951unsafe extern "C" {
14952 pub fn BNGetDisassemblyTextRendererStackVariableReferenceTokens(
14953 renderer: *mut BNDisassemblyTextRenderer,
14954 ref_: *mut BNStackVariableReference,
14955 count: *mut usize,
14956 ) -> *mut BNInstructionTextToken;
14957}
14958unsafe extern "C" {
14959 pub fn BNIsIntegerToken(type_: BNInstructionTextTokenType) -> bool;
14960}
14961unsafe extern "C" {
14962 pub fn BNGetDisassemblyTextRendererIntegerTokens(
14963 renderer: *mut BNDisassemblyTextRenderer,
14964 token: *mut BNInstructionTextToken,
14965 arch: *mut BNArchitecture,
14966 addr: u64,
14967 count: *mut usize,
14968 ) -> *mut BNInstructionTextToken;
14969}
14970unsafe extern "C" {
14971 pub fn BNDisassemblyTextRendererWrapComment(
14972 renderer: *mut BNDisassemblyTextRenderer,
14973 inLine: *const BNDisassemblyTextLine,
14974 outLineCount: *mut usize,
14975 comment: *const ::std::os::raw::c_char,
14976 hasAutoAnnotations: bool,
14977 leadingSpaces: *const ::std::os::raw::c_char,
14978 indentSpaces: *const ::std::os::raw::c_char,
14979 ) -> *mut BNDisassemblyTextLine;
14980}
14981unsafe extern "C" {
14982 pub fn BNGetStringLiteralPrefix(type_: BNStringType) -> *mut ::std::os::raw::c_char;
14983}
14984unsafe extern "C" {
14985 pub fn BNMarkFunctionAsRecentlyUsed(func: *mut BNFunction);
14986}
14987unsafe extern "C" {
14988 pub fn BNMarkBasicBlockAsRecentlyUsed(block: *mut BNBasicBlock);
14989}
14990unsafe extern "C" {
14991 pub fn BNGetCodeReferences(
14992 view: *mut BNBinaryView,
14993 addr: u64,
14994 count: *mut usize,
14995 limit: bool,
14996 maxItems: usize,
14997 ) -> *mut BNReferenceSource;
14998}
14999unsafe extern "C" {
15000 pub fn BNGetCodeReferencesInRange(
15001 view: *mut BNBinaryView,
15002 addr: u64,
15003 len: u64,
15004 count: *mut usize,
15005 limit: bool,
15006 maxItems: usize,
15007 ) -> *mut BNReferenceSource;
15008}
15009unsafe extern "C" {
15010 pub fn BNFreeCodeReferences(refs: *mut BNReferenceSource, count: usize);
15011}
15012unsafe extern "C" {
15013 pub fn BNFreeTypeFieldReferences(refs: *mut BNTypeFieldReference, count: usize);
15014}
15015unsafe extern "C" {
15016 pub fn BNFreeILReferences(refs: *mut BNILReferenceSource, count: usize);
15017}
15018unsafe extern "C" {
15019 pub fn BNGetCodeReferencesFrom(
15020 view: *mut BNBinaryView,
15021 src: *mut BNReferenceSource,
15022 count: *mut usize,
15023 ) -> *mut u64;
15024}
15025unsafe extern "C" {
15026 pub fn BNGetCodeReferencesFromInRange(
15027 view: *mut BNBinaryView,
15028 src: *mut BNReferenceSource,
15029 len: u64,
15030 count: *mut usize,
15031 ) -> *mut u64;
15032}
15033unsafe extern "C" {
15034 pub fn BNGetDataReferences(
15035 view: *mut BNBinaryView,
15036 addr: u64,
15037 count: *mut usize,
15038 limit: bool,
15039 maxItems: usize,
15040 ) -> *mut u64;
15041}
15042unsafe extern "C" {
15043 pub fn BNGetDataReferencesInRange(
15044 view: *mut BNBinaryView,
15045 addr: u64,
15046 len: u64,
15047 count: *mut usize,
15048 limit: bool,
15049 maxItems: usize,
15050 ) -> *mut u64;
15051}
15052unsafe extern "C" {
15053 pub fn BNGetDataReferencesFrom(
15054 view: *mut BNBinaryView,
15055 addr: u64,
15056 count: *mut usize,
15057 ) -> *mut u64;
15058}
15059unsafe extern "C" {
15060 pub fn BNGetDataReferencesFromInRange(
15061 view: *mut BNBinaryView,
15062 addr: u64,
15063 len: u64,
15064 count: *mut usize,
15065 ) -> *mut u64;
15066}
15067unsafe extern "C" {
15068 pub fn BNAddDataReference(view: *mut BNBinaryView, fromAddr: u64, toAddr: u64);
15069}
15070unsafe extern "C" {
15071 pub fn BNRemoveDataReference(view: *mut BNBinaryView, fromAddr: u64, toAddr: u64);
15072}
15073unsafe extern "C" {
15074 pub fn BNAddUserDataReference(view: *mut BNBinaryView, fromAddr: u64, toAddr: u64);
15075}
15076unsafe extern "C" {
15077 pub fn BNRemoveUserDataReference(view: *mut BNBinaryView, fromAddr: u64, toAddr: u64);
15078}
15079unsafe extern "C" {
15080 pub fn BNFreeDataReferences(refs: *mut u64);
15081}
15082unsafe extern "C" {
15083 pub fn BNFreeTypeReferences(refs: *mut BNTypeReferenceSource, count: usize);
15084}
15085unsafe extern "C" {
15086 pub fn BNFreeTypeFieldReferenceSizeInfo(refs: *mut BNTypeFieldReferenceSizeInfo, count: usize);
15087}
15088unsafe extern "C" {
15089 pub fn BNFreeTypeFieldReferenceTypeInfo(refs: *mut BNTypeFieldReferenceTypeInfo, count: usize);
15090}
15091unsafe extern "C" {
15092 pub fn BNFreeTypeFieldReferenceSizes(refs: *mut usize, count: usize);
15093}
15094unsafe extern "C" {
15095 pub fn BNFreeTypeFieldReferenceTypes(refs: *mut BNTypeWithConfidence, count: usize);
15096}
15097unsafe extern "C" {
15098 #[doc = " References to type"]
15099 pub fn BNGetCodeReferencesForType(
15100 view: *mut BNBinaryView,
15101 type_: *mut BNQualifiedName,
15102 count: *mut usize,
15103 limit: bool,
15104 maxItems: usize,
15105 ) -> *mut BNReferenceSource;
15106}
15107unsafe extern "C" {
15108 pub fn BNGetDataReferencesForType(
15109 view: *mut BNBinaryView,
15110 type_: *mut BNQualifiedName,
15111 count: *mut usize,
15112 limit: bool,
15113 maxItems: usize,
15114 ) -> *mut u64;
15115}
15116unsafe extern "C" {
15117 pub fn BNGetTypeReferencesForType(
15118 view: *mut BNBinaryView,
15119 type_: *mut BNQualifiedName,
15120 count: *mut usize,
15121 limit: bool,
15122 maxItems: usize,
15123 ) -> *mut BNTypeReferenceSource;
15124}
15125unsafe extern "C" {
15126 #[doc = " References to type field"]
15127 pub fn BNGetCodeReferencesForTypeField(
15128 view: *mut BNBinaryView,
15129 type_: *mut BNQualifiedName,
15130 offset: u64,
15131 count: *mut usize,
15132 limit: bool,
15133 maxItems: usize,
15134 ) -> *mut BNTypeFieldReference;
15135}
15136unsafe extern "C" {
15137 pub fn BNGetDataReferencesForTypeField(
15138 view: *mut BNBinaryView,
15139 type_: *mut BNQualifiedName,
15140 offset: u64,
15141 count: *mut usize,
15142 limit: bool,
15143 maxItems: usize,
15144 ) -> *mut u64;
15145}
15146unsafe extern "C" {
15147 pub fn BNGetDataReferencesFromForTypeField(
15148 view: *mut BNBinaryView,
15149 type_: *mut BNQualifiedName,
15150 offset: u64,
15151 count: *mut usize,
15152 limit: bool,
15153 maxItems: usize,
15154 ) -> *mut u64;
15155}
15156unsafe extern "C" {
15157 pub fn BNGetTypeReferencesForTypeField(
15158 view: *mut BNBinaryView,
15159 type_: *mut BNQualifiedName,
15160 offset: u64,
15161 count: *mut usize,
15162 limit: bool,
15163 maxItems: usize,
15164 ) -> *mut BNTypeReferenceSource;
15165}
15166unsafe extern "C" {
15167 pub fn BNGetAllReferencesForType(
15168 view: *mut BNBinaryView,
15169 type_: *mut BNQualifiedName,
15170 limit: bool,
15171 maxItems: usize,
15172 ) -> BNAllTypeReferences;
15173}
15174unsafe extern "C" {
15175 pub fn BNFreeAllTypeReferences(refs: *mut BNAllTypeReferences);
15176}
15177unsafe extern "C" {
15178 pub fn BNGetAllReferencesForTypeField(
15179 view: *mut BNBinaryView,
15180 type_: *mut BNQualifiedName,
15181 offset: u64,
15182 limit: bool,
15183 maxItems: usize,
15184 ) -> BNAllTypeFieldReferences;
15185}
15186unsafe extern "C" {
15187 pub fn BNFreeAllTypeFieldReferences(refs: *mut BNAllTypeFieldReferences);
15188}
15189unsafe extern "C" {
15190 pub fn BNGetCodeReferencesForTypeFrom(
15191 view: *mut BNBinaryView,
15192 addr: *mut BNReferenceSource,
15193 count: *mut usize,
15194 ) -> *mut BNTypeReferenceSource;
15195}
15196unsafe extern "C" {
15197 pub fn BNGetCodeReferencesForTypeFromInRange(
15198 view: *mut BNBinaryView,
15199 addr: *mut BNReferenceSource,
15200 len: u64,
15201 count: *mut usize,
15202 ) -> *mut BNTypeReferenceSource;
15203}
15204unsafe extern "C" {
15205 pub fn BNGetCodeReferencesForTypeFieldsFrom(
15206 view: *mut BNBinaryView,
15207 addr: *mut BNReferenceSource,
15208 count: *mut usize,
15209 ) -> *mut BNTypeReferenceSource;
15210}
15211unsafe extern "C" {
15212 pub fn BNGetCodeReferencesForTypeFieldsFromInRange(
15213 view: *mut BNBinaryView,
15214 addr: *mut BNReferenceSource,
15215 len: u64,
15216 count: *mut usize,
15217 ) -> *mut BNTypeReferenceSource;
15218}
15219unsafe extern "C" {
15220 pub fn BNGetAllFieldsReferenced(
15221 view: *mut BNBinaryView,
15222 type_: *mut BNQualifiedName,
15223 count: *mut usize,
15224 ) -> *mut u64;
15225}
15226unsafe extern "C" {
15227 pub fn BNGetAllSizesReferenced(
15228 view: *mut BNBinaryView,
15229 type_: *mut BNQualifiedName,
15230 count: *mut usize,
15231 ) -> *mut BNTypeFieldReferenceSizeInfo;
15232}
15233unsafe extern "C" {
15234 pub fn BNGetAllTypesReferenced(
15235 view: *mut BNBinaryView,
15236 type_: *mut BNQualifiedName,
15237 count: *mut usize,
15238 ) -> *mut BNTypeFieldReferenceTypeInfo;
15239}
15240unsafe extern "C" {
15241 pub fn BNGetSizesReferenced(
15242 view: *mut BNBinaryView,
15243 type_: *mut BNQualifiedName,
15244 offset: u64,
15245 count: *mut usize,
15246 ) -> *mut usize;
15247}
15248unsafe extern "C" {
15249 pub fn BNGetTypesReferenced(
15250 view: *mut BNBinaryView,
15251 type_: *mut BNQualifiedName,
15252 offset: u64,
15253 count: *mut usize,
15254 ) -> *mut BNTypeWithConfidence;
15255}
15256unsafe extern "C" {
15257 pub fn BNGetOutgoingDirectTypeReferences(
15258 view: *mut BNBinaryView,
15259 type_: *mut BNQualifiedName,
15260 count: *mut usize,
15261 ) -> *mut BNQualifiedName;
15262}
15263unsafe extern "C" {
15264 pub fn BNGetOutgoingRecursiveTypeReferences(
15265 view: *mut BNBinaryView,
15266 types: *mut BNQualifiedName,
15267 typeCount: usize,
15268 count: *mut usize,
15269 ) -> *mut BNQualifiedName;
15270}
15271unsafe extern "C" {
15272 pub fn BNGetIncomingDirectTypeReferences(
15273 view: *mut BNBinaryView,
15274 type_: *mut BNQualifiedName,
15275 count: *mut usize,
15276 ) -> *mut BNQualifiedName;
15277}
15278unsafe extern "C" {
15279 pub fn BNGetIncomingRecursiveTypeReferences(
15280 view: *mut BNBinaryView,
15281 types: *mut BNQualifiedName,
15282 typeCount: usize,
15283 count: *mut usize,
15284 ) -> *mut BNQualifiedName;
15285}
15286unsafe extern "C" {
15287 pub fn BNRegisterGlobalFunctionRecognizer(rec: *mut BNFunctionRecognizer);
15288}
15289unsafe extern "C" {
15290 pub fn BNGetStringAtAddress(
15291 view: *mut BNBinaryView,
15292 addr: u64,
15293 strRef: *mut BNStringReference,
15294 ) -> bool;
15295}
15296unsafe extern "C" {
15297 pub fn BNGetStrings(view: *mut BNBinaryView, count: *mut usize) -> *mut BNStringReference;
15298}
15299unsafe extern "C" {
15300 pub fn BNGetStringsInRange(
15301 view: *mut BNBinaryView,
15302 start: u64,
15303 len: u64,
15304 count: *mut usize,
15305 ) -> *mut BNStringReference;
15306}
15307unsafe extern "C" {
15308 pub fn BNFreeStringReferenceList(strings: *mut BNStringReference);
15309}
15310unsafe extern "C" {
15311 pub fn BNGetDerivedStrings(view: *mut BNBinaryView, count: *mut usize) -> *mut BNDerivedString;
15312}
15313unsafe extern "C" {
15314 pub fn BNGetDerivedStringCodeReferences(
15315 view: *mut BNBinaryView,
15316 str_: *mut BNDerivedString,
15317 count: *mut usize,
15318 limit: bool,
15319 maxItems: usize,
15320 ) -> *mut BNReferenceSource;
15321}
15322unsafe extern "C" {
15323 pub fn BNFreeDerivedStringList(strings: *mut BNDerivedString, count: usize);
15324}
15325unsafe extern "C" {
15326 pub fn BNGetStackLayout(func: *mut BNFunction, count: *mut usize)
15327 -> *mut BNVariableNameAndType;
15328}
15329unsafe extern "C" {
15330 pub fn BNFreeVariableNameAndTypeList(vars: *mut BNVariableNameAndType, count: usize);
15331}
15332unsafe extern "C" {
15333 pub fn BNCreateAutoStackVariable(
15334 func: *mut BNFunction,
15335 offset: i64,
15336 type_: *mut BNTypeWithConfidence,
15337 name: *const ::std::os::raw::c_char,
15338 );
15339}
15340unsafe extern "C" {
15341 pub fn BNCreateUserStackVariable(
15342 func: *mut BNFunction,
15343 offset: i64,
15344 type_: *mut BNTypeWithConfidence,
15345 name: *const ::std::os::raw::c_char,
15346 );
15347}
15348unsafe extern "C" {
15349 pub fn BNDeleteAutoStackVariable(func: *mut BNFunction, offset: i64);
15350}
15351unsafe extern "C" {
15352 pub fn BNDeleteUserStackVariable(func: *mut BNFunction, offset: i64);
15353}
15354unsafe extern "C" {
15355 pub fn BNGetStackVariableAtFrameOffset(
15356 func: *mut BNFunction,
15357 arch: *mut BNArchitecture,
15358 addr: u64,
15359 offset: i64,
15360 var: *mut BNVariableNameAndType,
15361 ) -> bool;
15362}
15363unsafe extern "C" {
15364 pub fn BNGetStackVariableAtFrameOffsetAfterInstruction(
15365 func: *mut BNFunction,
15366 arch: *mut BNArchitecture,
15367 addr: u64,
15368 offset: i64,
15369 var: *mut BNVariableNameAndType,
15370 ) -> bool;
15371}
15372unsafe extern "C" {
15373 pub fn BNFreeVariableNameAndType(var: *mut BNVariableNameAndType);
15374}
15375unsafe extern "C" {
15376 pub fn BNGetFunctionVariables(
15377 func: *mut BNFunction,
15378 count: *mut usize,
15379 ) -> *mut BNVariableNameAndType;
15380}
15381unsafe extern "C" {
15382 pub fn BNCreateAutoVariable(
15383 func: *mut BNFunction,
15384 var: *const BNVariable,
15385 type_: *mut BNTypeWithConfidence,
15386 name: *const ::std::os::raw::c_char,
15387 ignoreDisjointUses: bool,
15388 );
15389}
15390unsafe extern "C" {
15391 pub fn BNCreateUserVariable(
15392 func: *mut BNFunction,
15393 var: *const BNVariable,
15394 type_: *mut BNTypeWithConfidence,
15395 name: *const ::std::os::raw::c_char,
15396 ignoreDisjointUses: bool,
15397 );
15398}
15399unsafe extern "C" {
15400 pub fn BNDeleteUserVariable(func: *mut BNFunction, var: *const BNVariable);
15401}
15402unsafe extern "C" {
15403 pub fn BNIsVariableUserDefined(func: *mut BNFunction, var: *const BNVariable) -> bool;
15404}
15405unsafe extern "C" {
15406 pub fn BNGetVariableType(func: *mut BNFunction, var: *const BNVariable)
15407 -> BNTypeWithConfidence;
15408}
15409unsafe extern "C" {
15410 pub fn BNGetVariableName(
15411 func: *mut BNFunction,
15412 var: *const BNVariable,
15413 ) -> *mut ::std::os::raw::c_char;
15414}
15415unsafe extern "C" {
15416 pub fn BNGetVariableNameOrDefault(
15417 func: *mut BNFunction,
15418 var: *const BNVariable,
15419 ) -> *mut ::std::os::raw::c_char;
15420}
15421unsafe extern "C" {
15422 pub fn BNGetLastSeenVariableNameOrDefault(
15423 func: *mut BNFunction,
15424 var: *const BNVariable,
15425 ) -> *mut ::std::os::raw::c_char;
15426}
15427unsafe extern "C" {
15428 pub fn BNToVariableIdentifier(var: *const BNVariable) -> u64;
15429}
15430unsafe extern "C" {
15431 pub fn BNFromVariableIdentifier(id: u64) -> BNVariable;
15432}
15433unsafe extern "C" {
15434 pub fn BNGetFunctionVariableDeadStoreElimination(
15435 func: *mut BNFunction,
15436 var: *const BNVariable,
15437 ) -> BNDeadStoreElimination;
15438}
15439unsafe extern "C" {
15440 pub fn BNSetFunctionVariableDeadStoreElimination(
15441 func: *mut BNFunction,
15442 var: *const BNVariable,
15443 mode: BNDeadStoreElimination,
15444 );
15445}
15446unsafe extern "C" {
15447 pub fn BNGetExprFolding(func: *mut BNFunction, addr: u64) -> BNExprFolding;
15448}
15449unsafe extern "C" {
15450 pub fn BNSetExprFolding(func: *mut BNFunction, addr: u64, mode: BNExprFolding);
15451}
15452unsafe extern "C" {
15453 pub fn BNIsConditionInverted(func: *mut BNFunction, addr: u64) -> bool;
15454}
15455unsafe extern "C" {
15456 pub fn BNSetConditionInverted(func: *mut BNFunction, addr: u64, invert: bool);
15457}
15458unsafe extern "C" {
15459 pub fn BNGetEarlyReturn(func: *mut BNFunction, addr: u64) -> BNEarlyReturn;
15460}
15461unsafe extern "C" {
15462 pub fn BNSetEarlyReturn(func: *mut BNFunction, addr: u64, mode: BNEarlyReturn);
15463}
15464unsafe extern "C" {
15465 pub fn BNGetSwitchRecovery(func: *mut BNFunction, addr: u64) -> BNSwitchRecovery;
15466}
15467unsafe extern "C" {
15468 pub fn BNSetSwitchRecovery(func: *mut BNFunction, addr: u64, mode: BNSwitchRecovery);
15469}
15470unsafe extern "C" {
15471 pub fn BNGetMergedVariables(func: *mut BNFunction, count: *mut usize) -> *mut BNMergedVariable;
15472}
15473unsafe extern "C" {
15474 pub fn BNFreeMergedVariableList(vars: *mut BNMergedVariable, count: usize);
15475}
15476unsafe extern "C" {
15477 pub fn BNMergeVariables(
15478 func: *mut BNFunction,
15479 target: *const BNVariable,
15480 sources: *const BNVariable,
15481 sourceCount: usize,
15482 );
15483}
15484unsafe extern "C" {
15485 pub fn BNUnmergeVariables(
15486 func: *mut BNFunction,
15487 target: *const BNVariable,
15488 sources: *const BNVariable,
15489 sourceCount: usize,
15490 );
15491}
15492unsafe extern "C" {
15493 pub fn BNGetSplitVariables(func: *mut BNFunction, count: *mut usize) -> *mut BNVariable;
15494}
15495unsafe extern "C" {
15496 pub fn BNSplitVariable(func: *mut BNFunction, var: *const BNVariable);
15497}
15498unsafe extern "C" {
15499 pub fn BNUnsplitVariable(func: *mut BNFunction, var: *const BNVariable);
15500}
15501unsafe extern "C" {
15502 pub fn BNGetFunctionCallSites(
15503 func: *mut BNFunction,
15504 count: *mut usize,
15505 ) -> *mut BNReferenceSource;
15506}
15507unsafe extern "C" {
15508 pub fn BNGetCallees(
15509 view: *mut BNBinaryView,
15510 callSite: *mut BNReferenceSource,
15511 count: *mut usize,
15512 ) -> *mut u64;
15513}
15514unsafe extern "C" {
15515 pub fn BNGetCallers(
15516 view: *mut BNBinaryView,
15517 callee: u64,
15518 count: *mut usize,
15519 ) -> *mut BNReferenceSource;
15520}
15521unsafe extern "C" {
15522 pub fn BNSetAutoIndirectBranches(
15523 func: *mut BNFunction,
15524 sourceArch: *mut BNArchitecture,
15525 source: u64,
15526 branches: *mut BNArchitectureAndAddress,
15527 count: usize,
15528 );
15529}
15530unsafe extern "C" {
15531 pub fn BNSetUserIndirectBranches(
15532 func: *mut BNFunction,
15533 sourceArch: *mut BNArchitecture,
15534 source: u64,
15535 branches: *mut BNArchitectureAndAddress,
15536 count: usize,
15537 );
15538}
15539unsafe extern "C" {
15540 pub fn BNSetGuidedSourceBlocks(
15541 func: *mut BNFunction,
15542 addresses: *mut BNArchitectureAndAddress,
15543 count: usize,
15544 );
15545}
15546unsafe extern "C" {
15547 pub fn BNAddGuidedSourceBlocks(
15548 func: *mut BNFunction,
15549 addresses: *mut BNArchitectureAndAddress,
15550 count: usize,
15551 );
15552}
15553unsafe extern "C" {
15554 pub fn BNRemoveGuidedSourceBlocks(
15555 func: *mut BNFunction,
15556 addresses: *mut BNArchitectureAndAddress,
15557 count: usize,
15558 );
15559}
15560unsafe extern "C" {
15561 pub fn BNIsGuidedSourceBlock(
15562 func: *mut BNFunction,
15563 arch: *mut BNArchitecture,
15564 addr: u64,
15565 ) -> bool;
15566}
15567unsafe extern "C" {
15568 pub fn BNGetGuidedSourceBlocks(
15569 func: *mut BNFunction,
15570 count: *mut usize,
15571 ) -> *mut BNArchitectureAndAddress;
15572}
15573unsafe extern "C" {
15574 pub fn BNHasGuidedSourceBlocks(func: *mut BNFunction) -> bool;
15575}
15576unsafe extern "C" {
15577 pub fn BNFreeArchitectureAndAddressList(addresses: *mut BNArchitectureAndAddress);
15578}
15579unsafe extern "C" {
15580 pub fn BNGetIndirectBranches(
15581 func: *mut BNFunction,
15582 count: *mut usize,
15583 ) -> *mut BNIndirectBranchInfo;
15584}
15585unsafe extern "C" {
15586 pub fn BNGetIndirectBranchesAt(
15587 func: *mut BNFunction,
15588 arch: *mut BNArchitecture,
15589 addr: u64,
15590 count: *mut usize,
15591 ) -> *mut BNIndirectBranchInfo;
15592}
15593unsafe extern "C" {
15594 pub fn BNFreeIndirectBranchList(branches: *mut BNIndirectBranchInfo);
15595}
15596unsafe extern "C" {
15597 pub fn BNGetCalleeForAnalysis(
15598 func: *mut BNFunction,
15599 platform: *mut BNPlatform,
15600 addr: u64,
15601 exact: bool,
15602 ) -> *mut BNFunction;
15603}
15604unsafe extern "C" {
15605 pub fn BNGetUnresolvedIndirectBranches(
15606 func: *mut BNFunction,
15607 count: *mut usize,
15608 ) -> *mut BNArchitectureAndAddress;
15609}
15610unsafe extern "C" {
15611 pub fn BNHasUnresolvedIndirectBranches(func: *mut BNFunction) -> bool;
15612}
15613unsafe extern "C" {
15614 pub fn BNFunctionToggleRegion(func: *mut BNFunction, hash: u64);
15615}
15616unsafe extern "C" {
15617 pub fn BNFunctionIsRegionCollapsed(func: *mut BNFunction, hash: u64) -> bool;
15618}
15619unsafe extern "C" {
15620 pub fn BNFunctionExpandAll(func: *mut BNFunction);
15621}
15622unsafe extern "C" {
15623 pub fn BNFunctionCollapseRegion(func: *mut BNFunction, hash: u64);
15624}
15625unsafe extern "C" {
15626 pub fn BNFunctionExpandRegion(func: *mut BNFunction, hash: u64);
15627}
15628unsafe extern "C" {
15629 pub fn BNFunctionStoreMetadata(
15630 func: *mut BNFunction,
15631 key: *const ::std::os::raw::c_char,
15632 value: *mut BNMetadata,
15633 isAuto: bool,
15634 );
15635}
15636unsafe extern "C" {
15637 pub fn BNFunctionQueryMetadata(
15638 func: *mut BNFunction,
15639 key: *const ::std::os::raw::c_char,
15640 ) -> *mut BNMetadata;
15641}
15642unsafe extern "C" {
15643 pub fn BNFunctionRemoveMetadata(func: *mut BNFunction, key: *const ::std::os::raw::c_char);
15644}
15645unsafe extern "C" {
15646 pub fn BNFunctionGetMetadata(func: *mut BNFunction) -> *mut BNMetadata;
15647}
15648unsafe extern "C" {
15649 pub fn BNFunctionGetAutoMetadata(func: *mut BNFunction) -> *mut BNMetadata;
15650}
15651unsafe extern "C" {
15652 pub fn BNSetAutoCallTypeAdjustment(
15653 func: *mut BNFunction,
15654 arch: *mut BNArchitecture,
15655 addr: u64,
15656 type_: *mut BNTypeWithConfidence,
15657 );
15658}
15659unsafe extern "C" {
15660 pub fn BNSetUserCallTypeAdjustment(
15661 func: *mut BNFunction,
15662 arch: *mut BNArchitecture,
15663 addr: u64,
15664 type_: *mut BNTypeWithConfidence,
15665 );
15666}
15667unsafe extern "C" {
15668 pub fn BNSetAutoCallStackAdjustment(
15669 func: *mut BNFunction,
15670 arch: *mut BNArchitecture,
15671 addr: u64,
15672 adjust: i64,
15673 confidence: u8,
15674 );
15675}
15676unsafe extern "C" {
15677 pub fn BNSetUserCallStackAdjustment(
15678 func: *mut BNFunction,
15679 arch: *mut BNArchitecture,
15680 addr: u64,
15681 adjust: i64,
15682 confidence: u8,
15683 );
15684}
15685unsafe extern "C" {
15686 pub fn BNSetAutoCallRegisterStackAdjustment(
15687 func: *mut BNFunction,
15688 arch: *mut BNArchitecture,
15689 addr: u64,
15690 adjust: *mut BNRegisterStackAdjustment,
15691 count: usize,
15692 );
15693}
15694unsafe extern "C" {
15695 pub fn BNSetUserCallRegisterStackAdjustment(
15696 func: *mut BNFunction,
15697 arch: *mut BNArchitecture,
15698 addr: u64,
15699 adjust: *mut BNRegisterStackAdjustment,
15700 count: usize,
15701 );
15702}
15703unsafe extern "C" {
15704 pub fn BNSetAutoCallRegisterStackAdjustmentForRegisterStack(
15705 func: *mut BNFunction,
15706 arch: *mut BNArchitecture,
15707 addr: u64,
15708 regStack: u32,
15709 adjust: i32,
15710 confidence: u8,
15711 );
15712}
15713unsafe extern "C" {
15714 pub fn BNSetUserCallRegisterStackAdjustmentForRegisterStack(
15715 func: *mut BNFunction,
15716 arch: *mut BNArchitecture,
15717 addr: u64,
15718 regStack: u32,
15719 adjust: i32,
15720 confidence: u8,
15721 );
15722}
15723unsafe extern "C" {
15724 pub fn BNGetCallTypeAdjustment(
15725 func: *mut BNFunction,
15726 arch: *mut BNArchitecture,
15727 addr: u64,
15728 ) -> BNTypeWithConfidence;
15729}
15730unsafe extern "C" {
15731 pub fn BNGetCallStackAdjustment(
15732 func: *mut BNFunction,
15733 arch: *mut BNArchitecture,
15734 addr: u64,
15735 ) -> BNOffsetWithConfidence;
15736}
15737unsafe extern "C" {
15738 pub fn BNGetCallRegisterStackAdjustment(
15739 func: *mut BNFunction,
15740 arch: *mut BNArchitecture,
15741 addr: u64,
15742 count: *mut usize,
15743 ) -> *mut BNRegisterStackAdjustment;
15744}
15745unsafe extern "C" {
15746 pub fn BNGetCallRegisterStackAdjustmentForRegisterStack(
15747 func: *mut BNFunction,
15748 arch: *mut BNArchitecture,
15749 addr: u64,
15750 regStack: u32,
15751 ) -> BNRegisterStackAdjustment;
15752}
15753unsafe extern "C" {
15754 pub fn BNIsCallInstruction(func: *mut BNFunction, arch: *mut BNArchitecture, addr: u64)
15755 -> bool;
15756}
15757unsafe extern "C" {
15758 pub fn BNGetFunctionBlockAnnotations(
15759 func: *mut BNFunction,
15760 arch: *mut BNArchitecture,
15761 addr: u64,
15762 count: *mut usize,
15763 ) -> *mut BNInstructionTextLine;
15764}
15765unsafe extern "C" {
15766 pub fn BNGetIntegerConstantDisplayType(
15767 func: *mut BNFunction,
15768 arch: *mut BNArchitecture,
15769 instrAddr: u64,
15770 value: u64,
15771 operand: usize,
15772 ) -> BNIntegerDisplayType;
15773}
15774unsafe extern "C" {
15775 pub fn BNSetIntegerConstantDisplayType(
15776 func: *mut BNFunction,
15777 arch: *mut BNArchitecture,
15778 instrAddr: u64,
15779 value: u64,
15780 operand: usize,
15781 type_: BNIntegerDisplayType,
15782 typeID: *const ::std::os::raw::c_char,
15783 );
15784}
15785unsafe extern "C" {
15786 pub fn BNGetIntegerConstantDisplayTypeEnumerationType(
15787 func: *mut BNFunction,
15788 arch: *mut BNArchitecture,
15789 instrAddr: u64,
15790 value: u64,
15791 operand: usize,
15792 ) -> *mut ::std::os::raw::c_char;
15793}
15794unsafe extern "C" {
15795 pub fn BNIsFunctionTooLarge(func: *mut BNFunction) -> bool;
15796}
15797unsafe extern "C" {
15798 pub fn BNIsFunctionAnalysisSkipped(func: *mut BNFunction) -> bool;
15799}
15800unsafe extern "C" {
15801 pub fn BNGetAnalysisSkipReason(func: *mut BNFunction) -> BNAnalysisSkipReason;
15802}
15803unsafe extern "C" {
15804 pub fn BNGetFunctionAnalysisSkipOverride(
15805 func: *mut BNFunction,
15806 ) -> BNFunctionAnalysisSkipOverride;
15807}
15808unsafe extern "C" {
15809 pub fn BNSetFunctionAnalysisSkipOverride(
15810 func: *mut BNFunction,
15811 skip: BNFunctionAnalysisSkipOverride,
15812 );
15813}
15814unsafe extern "C" {
15815 pub fn BNGetGotoLabelName(func: *mut BNFunction, labelId: u64) -> *mut ::std::os::raw::c_char;
15816}
15817unsafe extern "C" {
15818 pub fn BNSetUserGotoLabelName(
15819 func: *mut BNFunction,
15820 labelId: u64,
15821 name: *const ::std::os::raw::c_char,
15822 );
15823}
15824unsafe extern "C" {
15825 #[doc = " BNAnalyzeBasicBlockContext operations"]
15826 pub fn BNAnalyzeBasicBlocksContextCreateBasicBlock(
15827 abb: *mut BNBasicBlockAnalysisContext,
15828 arch: *mut BNArchitecture,
15829 addr: u64,
15830 ) -> *mut BNBasicBlock;
15831}
15832unsafe extern "C" {
15833 pub fn BNAnalyzeBasicBlocksContextAddBasicBlockToFunction(
15834 abb: *mut BNBasicBlockAnalysisContext,
15835 block: *mut BNBasicBlock,
15836 );
15837}
15838unsafe extern "C" {
15839 pub fn BNAnalyzeBasicBlocksContextFinalize(abb: *mut BNBasicBlockAnalysisContext);
15840}
15841unsafe extern "C" {
15842 pub fn BNAnalyzeBasicBlocksContextAddTempReference(
15843 abb: *mut BNBasicBlockAnalysisContext,
15844 target: *mut BNFunction,
15845 );
15846}
15847unsafe extern "C" {
15848 pub fn BNAnalyzeBasicBlocksContextSetDirectCodeReferences(
15849 abb: *mut BNBasicBlockAnalysisContext,
15850 sources: *mut BNArchitectureAndAddress,
15851 targets: *mut u64,
15852 count: usize,
15853 );
15854}
15855unsafe extern "C" {
15856 pub fn BNAnalyzeBasicBlocksContextSetDirectNoReturnCalls(
15857 abb: *mut BNBasicBlockAnalysisContext,
15858 sources: *mut BNArchitectureAndAddress,
15859 count: usize,
15860 );
15861}
15862unsafe extern "C" {
15863 pub fn BNAnalyzeBasicBlocksContextSetContextualFunctionReturns(
15864 abb: *mut BNBasicBlockAnalysisContext,
15865 sources: *mut BNArchitectureAndAddress,
15866 values: *mut bool,
15867 count: usize,
15868 );
15869}
15870unsafe extern "C" {
15871 pub fn BNAnalyzeBasicBlocksContextSetHaltedDisassemblyAddresses(
15872 abb: *mut BNBasicBlockAnalysisContext,
15873 sources: *mut BNArchitectureAndAddress,
15874 count: usize,
15875 );
15876}
15877unsafe extern "C" {
15878 pub fn BNAnalyzeBasicBlocksContextSetInlinedUnresolvedIndirectBranches(
15879 abb: *mut BNBasicBlockAnalysisContext,
15880 locations: *mut BNArchitectureAndAddress,
15881 count: usize,
15882 );
15883}
15884unsafe extern "C" {
15885 pub fn BNGetParametersForAnalysis(view: *mut BNBinaryView) -> BNAnalysisParameters;
15886}
15887unsafe extern "C" {
15888 pub fn BNSetParametersForAnalysis(view: *mut BNBinaryView, params: BNAnalysisParameters);
15889}
15890unsafe extern "C" {
15891 pub fn BNGetMaxFunctionSizeForAnalysis(view: *mut BNBinaryView) -> u64;
15892}
15893unsafe extern "C" {
15894 pub fn BNSetMaxFunctionSizeForAnalysis(view: *mut BNBinaryView, size: u64);
15895}
15896unsafe extern "C" {
15897 pub fn BNGetNewAutoFunctionAnalysisSuppressed(view: *mut BNBinaryView) -> bool;
15898}
15899unsafe extern "C" {
15900 pub fn BNSetNewAutoFunctionAnalysisSuppressed(view: *mut BNBinaryView, suppress: bool);
15901}
15902unsafe extern "C" {
15903 pub fn BNAddAnalysisCompletionEvent(
15904 view: *mut BNBinaryView,
15905 ctxt: *mut ::std::os::raw::c_void,
15906 callback: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
15907 ) -> *mut BNAnalysisCompletionEvent;
15908}
15909unsafe extern "C" {
15910 pub fn BNNewAnalysisCompletionEventReference(
15911 event: *mut BNAnalysisCompletionEvent,
15912 ) -> *mut BNAnalysisCompletionEvent;
15913}
15914unsafe extern "C" {
15915 pub fn BNFreeAnalysisCompletionEvent(event: *mut BNAnalysisCompletionEvent);
15916}
15917unsafe extern "C" {
15918 pub fn BNCancelAnalysisCompletionEvent(event: *mut BNAnalysisCompletionEvent);
15919}
15920unsafe extern "C" {
15921 pub fn BNShouldSkipTargetAnalysis(
15922 view: *mut BNBinaryView,
15923 source: *mut BNArchitectureAndAddress,
15924 sourceFunc: *mut BNFunction,
15925 sourceEnd: u64,
15926 target: *mut BNArchitectureAndAddress,
15927 ) -> bool;
15928}
15929unsafe extern "C" {
15930 pub fn BNGetAnalysisInfo(view: *mut BNBinaryView) -> *mut BNAnalysisInfo;
15931}
15932unsafe extern "C" {
15933 pub fn BNFreeAnalysisInfo(info: *mut BNAnalysisInfo);
15934}
15935unsafe extern "C" {
15936 pub fn BNGetAnalysisProgress(view: *mut BNBinaryView) -> BNAnalysisProgress;
15937}
15938unsafe extern "C" {
15939 pub fn BNGetAnalysisState(view: *mut BNBinaryView) -> BNAnalysisState;
15940}
15941unsafe extern "C" {
15942 pub fn BNGetBackgroundAnalysisTask(view: *mut BNBinaryView) -> *mut BNBackgroundTask;
15943}
15944unsafe extern "C" {
15945 pub fn BNGetNextFunctionStartAfterAddress(view: *mut BNBinaryView, addr: u64) -> u64;
15946}
15947unsafe extern "C" {
15948 pub fn BNGetNextBasicBlockStartAfterAddress(view: *mut BNBinaryView, addr: u64) -> u64;
15949}
15950unsafe extern "C" {
15951 pub fn BNGetNextDataAfterAddress(view: *mut BNBinaryView, addr: u64) -> u64;
15952}
15953unsafe extern "C" {
15954 pub fn BNGetNextDataVariableStartAfterAddress(view: *mut BNBinaryView, addr: u64) -> u64;
15955}
15956unsafe extern "C" {
15957 pub fn BNGetPreviousFunctionStartBeforeAddress(view: *mut BNBinaryView, addr: u64) -> u64;
15958}
15959unsafe extern "C" {
15960 pub fn BNGetPreviousBasicBlockStartBeforeAddress(view: *mut BNBinaryView, addr: u64) -> u64;
15961}
15962unsafe extern "C" {
15963 pub fn BNGetPreviousBasicBlockEndBeforeAddress(view: *mut BNBinaryView, addr: u64) -> u64;
15964}
15965unsafe extern "C" {
15966 pub fn BNGetPreviousDataBeforeAddress(view: *mut BNBinaryView, addr: u64) -> u64;
15967}
15968unsafe extern "C" {
15969 pub fn BNGetPreviousDataVariableStartBeforeAddress(view: *mut BNBinaryView, addr: u64) -> u64;
15970}
15971unsafe extern "C" {
15972 pub fn BNCreateLinearViewDisassembly(
15973 view: *mut BNBinaryView,
15974 settings: *mut BNDisassemblySettings,
15975 ) -> *mut BNLinearViewObject;
15976}
15977unsafe extern "C" {
15978 pub fn BNCreateLinearViewLiftedIL(
15979 view: *mut BNBinaryView,
15980 settings: *mut BNDisassemblySettings,
15981 ) -> *mut BNLinearViewObject;
15982}
15983unsafe extern "C" {
15984 pub fn BNCreateLinearViewLowLevelIL(
15985 view: *mut BNBinaryView,
15986 settings: *mut BNDisassemblySettings,
15987 ) -> *mut BNLinearViewObject;
15988}
15989unsafe extern "C" {
15990 pub fn BNCreateLinearViewLowLevelILSSAForm(
15991 view: *mut BNBinaryView,
15992 settings: *mut BNDisassemblySettings,
15993 ) -> *mut BNLinearViewObject;
15994}
15995unsafe extern "C" {
15996 pub fn BNCreateLinearViewMediumLevelIL(
15997 view: *mut BNBinaryView,
15998 settings: *mut BNDisassemblySettings,
15999 ) -> *mut BNLinearViewObject;
16000}
16001unsafe extern "C" {
16002 pub fn BNCreateLinearViewMediumLevelILSSAForm(
16003 view: *mut BNBinaryView,
16004 settings: *mut BNDisassemblySettings,
16005 ) -> *mut BNLinearViewObject;
16006}
16007unsafe extern "C" {
16008 pub fn BNCreateLinearViewMappedMediumLevelIL(
16009 view: *mut BNBinaryView,
16010 settings: *mut BNDisassemblySettings,
16011 ) -> *mut BNLinearViewObject;
16012}
16013unsafe extern "C" {
16014 pub fn BNCreateLinearViewMappedMediumLevelILSSAForm(
16015 view: *mut BNBinaryView,
16016 settings: *mut BNDisassemblySettings,
16017 ) -> *mut BNLinearViewObject;
16018}
16019unsafe extern "C" {
16020 pub fn BNCreateLinearViewHighLevelIL(
16021 view: *mut BNBinaryView,
16022 settings: *mut BNDisassemblySettings,
16023 ) -> *mut BNLinearViewObject;
16024}
16025unsafe extern "C" {
16026 pub fn BNCreateLinearViewHighLevelILSSAForm(
16027 view: *mut BNBinaryView,
16028 settings: *mut BNDisassemblySettings,
16029 ) -> *mut BNLinearViewObject;
16030}
16031unsafe extern "C" {
16032 pub fn BNCreateLinearViewLanguageRepresentation(
16033 view: *mut BNBinaryView,
16034 settings: *mut BNDisassemblySettings,
16035 language: *const ::std::os::raw::c_char,
16036 ) -> *mut BNLinearViewObject;
16037}
16038unsafe extern "C" {
16039 pub fn BNCreateLinearViewDataOnly(
16040 view: *mut BNBinaryView,
16041 settings: *mut BNDisassemblySettings,
16042 ) -> *mut BNLinearViewObject;
16043}
16044unsafe extern "C" {
16045 pub fn BNCreateLinearViewSingleFunctionDisassembly(
16046 func: *mut BNFunction,
16047 settings: *mut BNDisassemblySettings,
16048 ) -> *mut BNLinearViewObject;
16049}
16050unsafe extern "C" {
16051 pub fn BNCreateLinearViewSingleFunctionLiftedIL(
16052 func: *mut BNFunction,
16053 settings: *mut BNDisassemblySettings,
16054 ) -> *mut BNLinearViewObject;
16055}
16056unsafe extern "C" {
16057 pub fn BNCreateLinearViewSingleFunctionLowLevelIL(
16058 func: *mut BNFunction,
16059 settings: *mut BNDisassemblySettings,
16060 ) -> *mut BNLinearViewObject;
16061}
16062unsafe extern "C" {
16063 pub fn BNCreateLinearViewSingleFunctionLowLevelILSSAForm(
16064 func: *mut BNFunction,
16065 settings: *mut BNDisassemblySettings,
16066 ) -> *mut BNLinearViewObject;
16067}
16068unsafe extern "C" {
16069 pub fn BNCreateLinearViewSingleFunctionMediumLevelIL(
16070 func: *mut BNFunction,
16071 settings: *mut BNDisassemblySettings,
16072 ) -> *mut BNLinearViewObject;
16073}
16074unsafe extern "C" {
16075 pub fn BNCreateLinearViewSingleFunctionMediumLevelILSSAForm(
16076 func: *mut BNFunction,
16077 settings: *mut BNDisassemblySettings,
16078 ) -> *mut BNLinearViewObject;
16079}
16080unsafe extern "C" {
16081 pub fn BNCreateLinearViewSingleFunctionMappedMediumLevelIL(
16082 func: *mut BNFunction,
16083 settings: *mut BNDisassemblySettings,
16084 ) -> *mut BNLinearViewObject;
16085}
16086unsafe extern "C" {
16087 pub fn BNCreateLinearViewSingleFunctionMappedMediumLevelILSSAForm(
16088 func: *mut BNFunction,
16089 settings: *mut BNDisassemblySettings,
16090 ) -> *mut BNLinearViewObject;
16091}
16092unsafe extern "C" {
16093 pub fn BNCreateLinearViewSingleFunctionHighLevelIL(
16094 func: *mut BNFunction,
16095 settings: *mut BNDisassemblySettings,
16096 ) -> *mut BNLinearViewObject;
16097}
16098unsafe extern "C" {
16099 pub fn BNCreateLinearViewSingleFunctionHighLevelILSSAForm(
16100 func: *mut BNFunction,
16101 settings: *mut BNDisassemblySettings,
16102 ) -> *mut BNLinearViewObject;
16103}
16104unsafe extern "C" {
16105 pub fn BNCreateLinearViewSingleFunctionLanguageRepresentation(
16106 func: *mut BNFunction,
16107 settings: *mut BNDisassemblySettings,
16108 language: *const ::std::os::raw::c_char,
16109 ) -> *mut BNLinearViewObject;
16110}
16111unsafe extern "C" {
16112 pub fn BNNewLinearViewObjectReference(obj: *mut BNLinearViewObject) -> *mut BNLinearViewObject;
16113}
16114unsafe extern "C" {
16115 pub fn BNFreeLinearViewObject(obj: *mut BNLinearViewObject);
16116}
16117unsafe extern "C" {
16118 pub fn BNGetFirstLinearViewObjectChild(obj: *mut BNLinearViewObject)
16119 -> *mut BNLinearViewObject;
16120}
16121unsafe extern "C" {
16122 pub fn BNGetLastLinearViewObjectChild(obj: *mut BNLinearViewObject) -> *mut BNLinearViewObject;
16123}
16124unsafe extern "C" {
16125 pub fn BNGetPreviousLinearViewObjectChild(
16126 parent: *mut BNLinearViewObject,
16127 child: *mut BNLinearViewObject,
16128 ) -> *mut BNLinearViewObject;
16129}
16130unsafe extern "C" {
16131 pub fn BNGetNextLinearViewObjectChild(
16132 parent: *mut BNLinearViewObject,
16133 child: *mut BNLinearViewObject,
16134 ) -> *mut BNLinearViewObject;
16135}
16136unsafe extern "C" {
16137 pub fn BNGetLinearViewObjectChildForAddress(
16138 parent: *mut BNLinearViewObject,
16139 addr: u64,
16140 ) -> *mut BNLinearViewObject;
16141}
16142unsafe extern "C" {
16143 pub fn BNGetLinearViewObjectChildForIdentifier(
16144 parent: *mut BNLinearViewObject,
16145 id: *mut BNLinearViewObjectIdentifier,
16146 ) -> *mut BNLinearViewObject;
16147}
16148unsafe extern "C" {
16149 pub fn BNGetLinearViewObjectLines(
16150 obj: *mut BNLinearViewObject,
16151 prev: *mut BNLinearViewObject,
16152 next: *mut BNLinearViewObject,
16153 count: *mut usize,
16154 ) -> *mut BNLinearDisassemblyLine;
16155}
16156unsafe extern "C" {
16157 pub fn BNFreeLinearDisassemblyLines(lines: *mut BNLinearDisassemblyLine, count: usize);
16158}
16159unsafe extern "C" {
16160 pub fn BNGetLinearViewObjectStart(obj: *mut BNLinearViewObject) -> u64;
16161}
16162unsafe extern "C" {
16163 pub fn BNGetLinearViewObjectEnd(obj: *mut BNLinearViewObject) -> u64;
16164}
16165unsafe extern "C" {
16166 pub fn BNGetLinearViewObjectIdentifier(
16167 obj: *mut BNLinearViewObject,
16168 ) -> BNLinearViewObjectIdentifier;
16169}
16170unsafe extern "C" {
16171 pub fn BNFreeLinearViewObjectIdentifier(id: *mut BNLinearViewObjectIdentifier);
16172}
16173unsafe extern "C" {
16174 pub fn BNCompareLinearViewObjectChildren(
16175 obj: *mut BNLinearViewObject,
16176 a: *mut BNLinearViewObject,
16177 b: *mut BNLinearViewObject,
16178 ) -> ::std::os::raw::c_int;
16179}
16180unsafe extern "C" {
16181 pub fn BNGetLinearViewObjectOrderingIndexTotal(obj: *mut BNLinearViewObject) -> u64;
16182}
16183unsafe extern "C" {
16184 pub fn BNGetLinearViewObjectOrderingIndexForChild(
16185 parent: *mut BNLinearViewObject,
16186 child: *mut BNLinearViewObject,
16187 ) -> u64;
16188}
16189unsafe extern "C" {
16190 pub fn BNGetLinearViewObjectChildForOrderingIndex(
16191 parent: *mut BNLinearViewObject,
16192 idx: u64,
16193 ) -> *mut BNLinearViewObject;
16194}
16195unsafe extern "C" {
16196 pub fn BNCreateLinearViewCursor(root: *mut BNLinearViewObject) -> *mut BNLinearViewCursor;
16197}
16198unsafe extern "C" {
16199 pub fn BNDuplicateLinearViewCursor(cursor: *mut BNLinearViewCursor) -> *mut BNLinearViewCursor;
16200}
16201unsafe extern "C" {
16202 pub fn BNNewLinearViewCursorReference(
16203 cursor: *mut BNLinearViewCursor,
16204 ) -> *mut BNLinearViewCursor;
16205}
16206unsafe extern "C" {
16207 pub fn BNFreeLinearViewCursor(cursor: *mut BNLinearViewCursor);
16208}
16209unsafe extern "C" {
16210 pub fn BNIsLinearViewCursorBeforeBegin(cursor: *mut BNLinearViewCursor) -> bool;
16211}
16212unsafe extern "C" {
16213 pub fn BNIsLinearViewCursorAfterEnd(cursor: *mut BNLinearViewCursor) -> bool;
16214}
16215unsafe extern "C" {
16216 pub fn BNGetLinearViewCursorCurrentObject(
16217 cursor: *mut BNLinearViewCursor,
16218 ) -> *mut BNLinearViewObject;
16219}
16220unsafe extern "C" {
16221 pub fn BNGetLinearViewCursorPath(
16222 cursor: *mut BNLinearViewCursor,
16223 count: *mut usize,
16224 ) -> *mut BNLinearViewObjectIdentifier;
16225}
16226unsafe extern "C" {
16227 pub fn BNFreeLinearViewCursorPath(objs: *mut BNLinearViewObjectIdentifier, count: usize);
16228}
16229unsafe extern "C" {
16230 pub fn BNGetLinearViewCursorPathObjects(
16231 cursor: *mut BNLinearViewCursor,
16232 count: *mut usize,
16233 ) -> *mut *mut BNLinearViewObject;
16234}
16235unsafe extern "C" {
16236 pub fn BNFreeLinearViewCursorPathObjects(objs: *mut *mut BNLinearViewObject, count: usize);
16237}
16238unsafe extern "C" {
16239 pub fn BNGetLinearViewCursorOrderingIndex(cursor: *mut BNLinearViewCursor) -> BNAddressRange;
16240}
16241unsafe extern "C" {
16242 pub fn BNGetLinearViewCursorOrderingIndexTotal(cursor: *mut BNLinearViewCursor) -> u64;
16243}
16244unsafe extern "C" {
16245 pub fn BNSeekLinearViewCursorToBegin(cursor: *mut BNLinearViewCursor);
16246}
16247unsafe extern "C" {
16248 pub fn BNSeekLinearViewCursorToEnd(cursor: *mut BNLinearViewCursor);
16249}
16250unsafe extern "C" {
16251 pub fn BNSeekLinearViewCursorToAddress(cursor: *mut BNLinearViewCursor, addr: u64);
16252}
16253unsafe extern "C" {
16254 pub fn BNSeekLinearViewCursorToPath(
16255 cursor: *mut BNLinearViewCursor,
16256 ids: *mut BNLinearViewObjectIdentifier,
16257 count: usize,
16258 ) -> bool;
16259}
16260unsafe extern "C" {
16261 pub fn BNSeekLinearViewCursorToPathAndAddress(
16262 cursor: *mut BNLinearViewCursor,
16263 ids: *mut BNLinearViewObjectIdentifier,
16264 count: usize,
16265 addr: u64,
16266 ) -> bool;
16267}
16268unsafe extern "C" {
16269 pub fn BNSeekLinearViewCursorToCursorPath(
16270 cursor: *mut BNLinearViewCursor,
16271 path: *mut BNLinearViewCursor,
16272 ) -> bool;
16273}
16274unsafe extern "C" {
16275 pub fn BNSeekLinearViewCursorToCursorPathAndAddress(
16276 cursor: *mut BNLinearViewCursor,
16277 path: *mut BNLinearViewCursor,
16278 addr: u64,
16279 ) -> bool;
16280}
16281unsafe extern "C" {
16282 pub fn BNSeekLinearViewCursorToOrderingIndex(cursor: *mut BNLinearViewCursor, idx: u64);
16283}
16284unsafe extern "C" {
16285 pub fn BNLinearViewCursorNext(cursor: *mut BNLinearViewCursor) -> bool;
16286}
16287unsafe extern "C" {
16288 pub fn BNLinearViewCursorPrevious(cursor: *mut BNLinearViewCursor) -> bool;
16289}
16290unsafe extern "C" {
16291 pub fn BNGetLinearViewCursorLines(
16292 cursor: *mut BNLinearViewCursor,
16293 count: *mut usize,
16294 ) -> *mut BNLinearDisassemblyLine;
16295}
16296unsafe extern "C" {
16297 pub fn BNCompareLinearViewCursors(
16298 a: *mut BNLinearViewCursor,
16299 b: *mut BNLinearViewCursor,
16300 ) -> ::std::os::raw::c_int;
16301}
16302unsafe extern "C" {
16303 pub fn BNGetLinearViewCursorRenderLayers(
16304 cursor: *mut BNLinearViewCursor,
16305 count: *mut usize,
16306 ) -> *mut *mut BNRenderLayer;
16307}
16308unsafe extern "C" {
16309 pub fn BNAddLinearViewCursorRenderLayer(
16310 cursor: *mut BNLinearViewCursor,
16311 layer: *mut BNRenderLayer,
16312 );
16313}
16314unsafe extern "C" {
16315 pub fn BNRemoveLinearViewCursorRenderLayer(
16316 cursor: *mut BNLinearViewCursor,
16317 layer: *mut BNRenderLayer,
16318 );
16319}
16320unsafe extern "C" {
16321 pub fn BNDefineDataVariable(
16322 view: *mut BNBinaryView,
16323 addr: u64,
16324 type_: *mut BNTypeWithConfidence,
16325 );
16326}
16327unsafe extern "C" {
16328 pub fn BNDefineUserDataVariable(
16329 view: *mut BNBinaryView,
16330 addr: u64,
16331 type_: *mut BNTypeWithConfidence,
16332 );
16333}
16334unsafe extern "C" {
16335 pub fn BNUndefineDataVariable(view: *mut BNBinaryView, addr: u64, blacklist: bool);
16336}
16337unsafe extern "C" {
16338 pub fn BNUndefineUserDataVariable(view: *mut BNBinaryView, addr: u64);
16339}
16340unsafe extern "C" {
16341 pub fn BNGetDataVariables(view: *mut BNBinaryView, count: *mut usize) -> *mut BNDataVariable;
16342}
16343unsafe extern "C" {
16344 pub fn BNFreeDataVariable(var: *mut BNDataVariable);
16345}
16346unsafe extern "C" {
16347 pub fn BNFreeDataVariables(vars: *mut BNDataVariable, count: usize);
16348}
16349unsafe extern "C" {
16350 pub fn BNFreeDataVariableAndName(var: *mut BNDataVariableAndName);
16351}
16352unsafe extern "C" {
16353 pub fn BNFreeDataVariablesAndName(vars: *mut BNDataVariableAndName, count: usize);
16354}
16355unsafe extern "C" {
16356 pub fn BNFreeDataVariableAndNameAndDebugParserList(
16357 vars: *mut BNDataVariableAndNameAndDebugParser,
16358 count: usize,
16359 );
16360}
16361unsafe extern "C" {
16362 pub fn BNGetDataVariableAtAddress(
16363 view: *mut BNBinaryView,
16364 addr: u64,
16365 var: *mut BNDataVariable,
16366 ) -> bool;
16367}
16368unsafe extern "C" {
16369 pub fn BNParseTypeString(
16370 view: *mut BNBinaryView,
16371 text: *const ::std::os::raw::c_char,
16372 result: *mut BNQualifiedNameAndType,
16373 errors: *mut *mut ::std::os::raw::c_char,
16374 typesAllowRedefinition: *mut BNQualifiedNameList,
16375 importDepencencies: bool,
16376 ) -> bool;
16377}
16378unsafe extern "C" {
16379 pub fn BNParseTypesString(
16380 view: *mut BNBinaryView,
16381 text: *const ::std::os::raw::c_char,
16382 options: *const *const ::std::os::raw::c_char,
16383 optionCount: usize,
16384 includeDirs: *const *const ::std::os::raw::c_char,
16385 includeDirCount: usize,
16386 result: *mut BNTypeParserResult,
16387 errors: *mut *mut ::std::os::raw::c_char,
16388 typesAllowRedefinition: *mut BNQualifiedNameList,
16389 importDepencencies: bool,
16390 ) -> bool;
16391}
16392unsafe extern "C" {
16393 pub fn BNFreeQualifiedNameAndType(obj: *mut BNQualifiedNameAndType);
16394}
16395unsafe extern "C" {
16396 pub fn BNFreeQualifiedNameAndTypeArray(obj: *mut BNQualifiedNameAndType, count: usize);
16397}
16398unsafe extern "C" {
16399 pub fn BNFreeQualifiedNameTypeAndId(obj: *mut BNQualifiedNameTypeAndId);
16400}
16401unsafe extern "C" {
16402 pub fn BNEscapeTypeName(
16403 name: *const ::std::os::raw::c_char,
16404 escaping: BNTokenEscapingType,
16405 ) -> *mut ::std::os::raw::c_char;
16406}
16407unsafe extern "C" {
16408 pub fn BNUnescapeTypeName(
16409 name: *const ::std::os::raw::c_char,
16410 escaping: BNTokenEscapingType,
16411 ) -> *mut ::std::os::raw::c_char;
16412}
16413unsafe extern "C" {
16414 pub fn BNGetAnalysisTypeList(
16415 view: *mut BNBinaryView,
16416 count: *mut usize,
16417 ) -> *mut BNQualifiedNameAndType;
16418}
16419unsafe extern "C" {
16420 pub fn BNGetAnalysisDependencySortedTypeList(
16421 view: *mut BNBinaryView,
16422 count: *mut usize,
16423 ) -> *mut BNQualifiedNameAndType;
16424}
16425unsafe extern "C" {
16426 pub fn BNFreeTypeAndNameList(types: *mut BNQualifiedNameAndType, count: usize);
16427}
16428unsafe extern "C" {
16429 pub fn BNFreeTypeIdList(types: *mut BNQualifiedNameTypeAndId, count: usize);
16430}
16431unsafe extern "C" {
16432 pub fn BNGetAnalysisTypeNames(
16433 view: *mut BNBinaryView,
16434 count: *mut usize,
16435 matching: *const ::std::os::raw::c_char,
16436 ) -> *mut BNQualifiedName;
16437}
16438unsafe extern "C" {
16439 pub fn BNFreeTypeNameList(names: *mut BNQualifiedName, count: usize);
16440}
16441unsafe extern "C" {
16442 pub fn BNGetAnalysisTypeContainer(view: *mut BNBinaryView) -> *mut BNTypeContainer;
16443}
16444unsafe extern "C" {
16445 pub fn BNGetAnalysisAutoTypeContainer(view: *mut BNBinaryView) -> *mut BNTypeContainer;
16446}
16447unsafe extern "C" {
16448 pub fn BNGetAnalysisUserTypeContainer(view: *mut BNBinaryView) -> *mut BNTypeContainer;
16449}
16450unsafe extern "C" {
16451 pub fn BNGetAnalysisTypeByName(
16452 view: *mut BNBinaryView,
16453 name: *mut BNQualifiedName,
16454 ) -> *mut BNType;
16455}
16456unsafe extern "C" {
16457 pub fn BNGetAnalysisTypeByRef(
16458 view: *mut BNBinaryView,
16459 ref_: *mut BNNamedTypeReference,
16460 ) -> *mut BNType;
16461}
16462unsafe extern "C" {
16463 pub fn BNGetAnalysisTypeById(
16464 view: *mut BNBinaryView,
16465 id: *const ::std::os::raw::c_char,
16466 ) -> *mut BNType;
16467}
16468unsafe extern "C" {
16469 pub fn BNGetAnalysisTypeId(
16470 view: *mut BNBinaryView,
16471 name: *mut BNQualifiedName,
16472 ) -> *mut ::std::os::raw::c_char;
16473}
16474unsafe extern "C" {
16475 pub fn BNGetAnalysisTypeNameById(
16476 view: *mut BNBinaryView,
16477 id: *const ::std::os::raw::c_char,
16478 ) -> BNQualifiedName;
16479}
16480unsafe extern "C" {
16481 pub fn BNIsAnalysisTypeAutoDefined(view: *mut BNBinaryView, name: *mut BNQualifiedName)
16482 -> bool;
16483}
16484unsafe extern "C" {
16485 pub fn BNDefineAnalysisType(
16486 view: *mut BNBinaryView,
16487 id: *const ::std::os::raw::c_char,
16488 defaultName: *mut BNQualifiedName,
16489 type_: *mut BNType,
16490 ) -> BNQualifiedName;
16491}
16492unsafe extern "C" {
16493 pub fn BNDefineUserAnalysisType(
16494 view: *mut BNBinaryView,
16495 name: *mut BNQualifiedName,
16496 type_: *mut BNType,
16497 );
16498}
16499unsafe extern "C" {
16500 pub fn BNDefineAnalysisTypes(
16501 view: *mut BNBinaryView,
16502 types: *mut BNQualifiedNameTypeAndId,
16503 count: usize,
16504 progress: BNProgressFunction,
16505 progressContext: *mut ::std::os::raw::c_void,
16506 resultIds: *mut *mut *mut ::std::os::raw::c_char,
16507 resultNames: *mut *mut BNQualifiedName,
16508 ) -> usize;
16509}
16510unsafe extern "C" {
16511 pub fn BNDefineUserAnalysisTypes(
16512 view: *mut BNBinaryView,
16513 types: *mut BNQualifiedNameAndType,
16514 count: usize,
16515 progress: BNProgressFunction,
16516 progressContext: *mut ::std::os::raw::c_void,
16517 );
16518}
16519unsafe extern "C" {
16520 pub fn BNUndefineAnalysisType(view: *mut BNBinaryView, id: *const ::std::os::raw::c_char);
16521}
16522unsafe extern "C" {
16523 pub fn BNUndefineUserAnalysisType(view: *mut BNBinaryView, name: *mut BNQualifiedName);
16524}
16525unsafe extern "C" {
16526 pub fn BNRenameAnalysisType(
16527 view: *mut BNBinaryView,
16528 oldName: *mut BNQualifiedName,
16529 newName: *mut BNQualifiedName,
16530 );
16531}
16532unsafe extern "C" {
16533 pub fn BNGetAnalysisSystemCallType(
16534 view: *mut BNBinaryView,
16535 platform: *mut BNPlatform,
16536 id: u32,
16537 ) -> *mut BNType;
16538}
16539unsafe extern "C" {
16540 pub fn BNGetAnalysisSystemCallName(
16541 view: *mut BNBinaryView,
16542 platform: *mut BNPlatform,
16543 id: u32,
16544 ) -> *mut ::std::os::raw::c_char;
16545}
16546unsafe extern "C" {
16547 pub fn BNGenerateAutoTypeId(
16548 source: *const ::std::os::raw::c_char,
16549 name: *mut BNQualifiedName,
16550 ) -> *mut ::std::os::raw::c_char;
16551}
16552unsafe extern "C" {
16553 pub fn BNGenerateAutoPlatformTypeId(
16554 platform: *mut BNPlatform,
16555 name: *mut BNQualifiedName,
16556 ) -> *mut ::std::os::raw::c_char;
16557}
16558unsafe extern "C" {
16559 pub fn BNGenerateAutoDemangledTypeId(name: *mut BNQualifiedName)
16560 -> *mut ::std::os::raw::c_char;
16561}
16562unsafe extern "C" {
16563 pub fn BNGetAutoPlatformTypeIdSource(platform: *mut BNPlatform) -> *mut ::std::os::raw::c_char;
16564}
16565unsafe extern "C" {
16566 pub fn BNGetAutoDemangledTypeIdSource() -> *mut ::std::os::raw::c_char;
16567}
16568unsafe extern "C" {
16569 pub fn BNGenerateAutoDebugTypeId(name: *mut BNQualifiedName) -> *mut ::std::os::raw::c_char;
16570}
16571unsafe extern "C" {
16572 pub fn BNGetAutoDebugTypeIdSource() -> *mut ::std::os::raw::c_char;
16573}
16574unsafe extern "C" {
16575 pub fn BNRegisterPlatformTypes(view: *mut BNBinaryView, platform: *mut BNPlatform);
16576}
16577unsafe extern "C" {
16578 pub fn BNLookupImportedTypePlatform(
16579 view: *mut BNBinaryView,
16580 typeName: *const BNQualifiedName,
16581 platform: *mut *mut BNPlatform,
16582 resultName: *mut BNQualifiedName,
16583 ) -> bool;
16584}
16585unsafe extern "C" {
16586 pub fn BNReanalyzeAllFunctions(view: *mut BNBinaryView);
16587}
16588unsafe extern "C" {
16589 pub fn BNAnalyzeFunction(func: *mut BNFunction);
16590}
16591unsafe extern "C" {
16592 pub fn BNReanalyzeFunction(func: *mut BNFunction, type_: BNFunctionUpdateType);
16593}
16594unsafe extern "C" {
16595 pub fn BNMarkUpdatesRequired(func: *mut BNFunction, type_: BNFunctionUpdateType);
16596}
16597unsafe extern "C" {
16598 pub fn BNMarkCallerUpdatesRequired(func: *mut BNFunction, type_: BNFunctionUpdateType);
16599}
16600unsafe extern "C" {
16601 pub fn BNGetInstructionHighlight(
16602 func: *mut BNFunction,
16603 arch: *mut BNArchitecture,
16604 addr: u64,
16605 ) -> BNHighlightColor;
16606}
16607unsafe extern "C" {
16608 pub fn BNSetAutoInstructionHighlight(
16609 func: *mut BNFunction,
16610 arch: *mut BNArchitecture,
16611 addr: u64,
16612 color: BNHighlightColor,
16613 );
16614}
16615unsafe extern "C" {
16616 pub fn BNSetUserInstructionHighlight(
16617 func: *mut BNFunction,
16618 arch: *mut BNArchitecture,
16619 addr: u64,
16620 color: BNHighlightColor,
16621 );
16622}
16623unsafe extern "C" {
16624 pub fn BNGetBasicBlockHighlight(block: *mut BNBasicBlock) -> BNHighlightColor;
16625}
16626unsafe extern "C" {
16627 pub fn BNSetAutoBasicBlockHighlight(block: *mut BNBasicBlock, color: BNHighlightColor);
16628}
16629unsafe extern "C" {
16630 pub fn BNSetUserBasicBlockHighlight(block: *mut BNBasicBlock, color: BNHighlightColor);
16631}
16632unsafe extern "C" {
16633 pub fn BNFreeTypeContainer(container: *mut BNTypeContainer);
16634}
16635unsafe extern "C" {
16636 pub fn BNDuplicateTypeContainer(container: *mut BNTypeContainer) -> *mut BNTypeContainer;
16637}
16638unsafe extern "C" {
16639 pub fn BNTypeContainerGetId(container: *mut BNTypeContainer) -> *mut ::std::os::raw::c_char;
16640}
16641unsafe extern "C" {
16642 pub fn BNTypeContainerGetName(container: *mut BNTypeContainer) -> *mut ::std::os::raw::c_char;
16643}
16644unsafe extern "C" {
16645 pub fn BNTypeContainerGetType(container: *mut BNTypeContainer) -> BNTypeContainerType;
16646}
16647unsafe extern "C" {
16648 pub fn BNTypeContainerIsMutable(container: *mut BNTypeContainer) -> bool;
16649}
16650unsafe extern "C" {
16651 pub fn BNTypeContainerGetPlatform(container: *mut BNTypeContainer) -> *mut BNPlatform;
16652}
16653unsafe extern "C" {
16654 pub fn BNTypeContainerAddTypes(
16655 container: *mut BNTypeContainer,
16656 typeNames: *const BNQualifiedName,
16657 types: *mut *mut BNType,
16658 typeCount: usize,
16659 progress: BNProgressFunction,
16660 progressContext: *mut ::std::os::raw::c_void,
16661 resultNames: *mut *mut BNQualifiedName,
16662 resultIds: *mut *mut *mut ::std::os::raw::c_char,
16663 resultCount: *mut usize,
16664 ) -> bool;
16665}
16666unsafe extern "C" {
16667 pub fn BNTypeContainerRenameType(
16668 container: *mut BNTypeContainer,
16669 typeId: *const ::std::os::raw::c_char,
16670 newName: *const BNQualifiedName,
16671 ) -> bool;
16672}
16673unsafe extern "C" {
16674 pub fn BNTypeContainerDeleteType(
16675 container: *mut BNTypeContainer,
16676 typeId: *const ::std::os::raw::c_char,
16677 ) -> bool;
16678}
16679unsafe extern "C" {
16680 pub fn BNTypeContainerGetTypeId(
16681 container: *mut BNTypeContainer,
16682 typeName: *const BNQualifiedName,
16683 result: *mut *mut ::std::os::raw::c_char,
16684 ) -> bool;
16685}
16686unsafe extern "C" {
16687 pub fn BNTypeContainerGetTypeName(
16688 container: *mut BNTypeContainer,
16689 typeId: *const ::std::os::raw::c_char,
16690 result: *mut BNQualifiedName,
16691 ) -> bool;
16692}
16693unsafe extern "C" {
16694 pub fn BNTypeContainerGetTypeById(
16695 container: *mut BNTypeContainer,
16696 typeId: *const ::std::os::raw::c_char,
16697 result: *mut *mut BNType,
16698 ) -> bool;
16699}
16700unsafe extern "C" {
16701 pub fn BNTypeContainerGetTypes(
16702 container: *mut BNTypeContainer,
16703 typeIds: *mut *mut *mut ::std::os::raw::c_char,
16704 typeNames: *mut *mut BNQualifiedName,
16705 types: *mut *mut *mut BNType,
16706 count: *mut usize,
16707 ) -> bool;
16708}
16709unsafe extern "C" {
16710 pub fn BNTypeContainerGetTypeByName(
16711 container: *mut BNTypeContainer,
16712 typeName: *const BNQualifiedName,
16713 result: *mut *mut BNType,
16714 ) -> bool;
16715}
16716unsafe extern "C" {
16717 pub fn BNTypeContainerGetTypeIds(
16718 container: *mut BNTypeContainer,
16719 typeIds: *mut *mut *mut ::std::os::raw::c_char,
16720 count: *mut usize,
16721 ) -> bool;
16722}
16723unsafe extern "C" {
16724 pub fn BNTypeContainerGetTypeNames(
16725 container: *mut BNTypeContainer,
16726 typeNames: *mut *mut BNQualifiedName,
16727 count: *mut usize,
16728 ) -> bool;
16729}
16730unsafe extern "C" {
16731 pub fn BNTypeContainerGetTypeNamesAndIds(
16732 container: *mut BNTypeContainer,
16733 typeIds: *mut *mut *mut ::std::os::raw::c_char,
16734 typeNames: *mut *mut BNQualifiedName,
16735 count: *mut usize,
16736 ) -> bool;
16737}
16738unsafe extern "C" {
16739 pub fn BNTypeContainerGetTypeCount(container: *mut BNTypeContainer) -> usize;
16740}
16741unsafe extern "C" {
16742 pub fn BNTypeContainerParseTypeString(
16743 container: *mut BNTypeContainer,
16744 source: *const ::std::os::raw::c_char,
16745 importDepencencies: bool,
16746 result: *mut BNQualifiedNameAndType,
16747 errors: *mut *mut BNTypeParserError,
16748 errorCount: *mut usize,
16749 ) -> bool;
16750}
16751unsafe extern "C" {
16752 pub fn BNTypeContainerParseTypesFromSource(
16753 container: *mut BNTypeContainer,
16754 source: *const ::std::os::raw::c_char,
16755 fileName: *const ::std::os::raw::c_char,
16756 options: *const *const ::std::os::raw::c_char,
16757 optionCount: usize,
16758 includeDirs: *const *const ::std::os::raw::c_char,
16759 includeDirCount: usize,
16760 autoTypeSource: *const ::std::os::raw::c_char,
16761 importDepencencies: bool,
16762 result: *mut BNTypeParserResult,
16763 errors: *mut *mut BNTypeParserError,
16764 errorCount: *mut usize,
16765 ) -> bool;
16766}
16767unsafe extern "C" {
16768 pub fn BNGetEmptyTypeContainer() -> *mut BNTypeContainer;
16769}
16770unsafe extern "C" {
16771 pub fn BNCreateTagType(view: *mut BNBinaryView) -> *mut BNTagType;
16772}
16773unsafe extern "C" {
16774 pub fn BNNewTagTypeReference(tagType: *mut BNTagType) -> *mut BNTagType;
16775}
16776unsafe extern "C" {
16777 pub fn BNFreeTagType(tagType: *mut BNTagType);
16778}
16779unsafe extern "C" {
16780 pub fn BNFreeTagTypeList(tagTypes: *mut *mut BNTagType, count: usize);
16781}
16782unsafe extern "C" {
16783 pub fn BNTagTypeGetView(tagType: *mut BNTagType) -> *mut BNBinaryView;
16784}
16785unsafe extern "C" {
16786 pub fn BNTagTypeGetId(tagType: *mut BNTagType) -> *mut ::std::os::raw::c_char;
16787}
16788unsafe extern "C" {
16789 pub fn BNTagTypeGetName(tagType: *mut BNTagType) -> *mut ::std::os::raw::c_char;
16790}
16791unsafe extern "C" {
16792 pub fn BNTagTypeSetName(tagType: *mut BNTagType, name: *const ::std::os::raw::c_char);
16793}
16794unsafe extern "C" {
16795 pub fn BNTagTypeGetIcon(tagType: *mut BNTagType) -> *mut ::std::os::raw::c_char;
16796}
16797unsafe extern "C" {
16798 pub fn BNTagTypeSetIcon(tagType: *mut BNTagType, icon: *const ::std::os::raw::c_char);
16799}
16800unsafe extern "C" {
16801 pub fn BNTagTypeGetVisible(tagType: *mut BNTagType) -> bool;
16802}
16803unsafe extern "C" {
16804 pub fn BNTagTypeSetVisible(tagType: *mut BNTagType, visible: bool);
16805}
16806unsafe extern "C" {
16807 pub fn BNTagTypeGetType(tagType: *mut BNTagType) -> BNTagTypeType;
16808}
16809unsafe extern "C" {
16810 pub fn BNTagTypeSetType(tagType: *mut BNTagType, type_: BNTagTypeType);
16811}
16812unsafe extern "C" {
16813 pub fn BNCreateTag(type_: *mut BNTagType, data: *const ::std::os::raw::c_char) -> *mut BNTag;
16814}
16815unsafe extern "C" {
16816 pub fn BNNewTagReference(tag: *mut BNTag) -> *mut BNTag;
16817}
16818unsafe extern "C" {
16819 pub fn BNFreeTag(tag: *mut BNTag);
16820}
16821unsafe extern "C" {
16822 pub fn BNFreeTagList(tags: *mut *mut BNTag, count: usize);
16823}
16824unsafe extern "C" {
16825 pub fn BNTagGetId(tag: *mut BNTag) -> *mut ::std::os::raw::c_char;
16826}
16827unsafe extern "C" {
16828 pub fn BNTagGetType(tag: *mut BNTag) -> *mut BNTagType;
16829}
16830unsafe extern "C" {
16831 pub fn BNTagGetData(tag: *mut BNTag) -> *mut ::std::os::raw::c_char;
16832}
16833unsafe extern "C" {
16834 pub fn BNTagSetData(tag: *mut BNTag, data: *const ::std::os::raw::c_char);
16835}
16836unsafe extern "C" {
16837 pub fn BNAddTagType(view: *mut BNBinaryView, tagType: *mut BNTagType);
16838}
16839unsafe extern "C" {
16840 pub fn BNRemoveTagType(view: *mut BNBinaryView, tagType: *mut BNTagType);
16841}
16842unsafe extern "C" {
16843 pub fn BNGetTagType(
16844 view: *mut BNBinaryView,
16845 name: *const ::std::os::raw::c_char,
16846 ) -> *mut BNTagType;
16847}
16848unsafe extern "C" {
16849 pub fn BNGetTagTypeWithType(
16850 view: *mut BNBinaryView,
16851 name: *const ::std::os::raw::c_char,
16852 type_: BNTagTypeType,
16853 ) -> *mut BNTagType;
16854}
16855unsafe extern "C" {
16856 pub fn BNGetTagTypeById(
16857 view: *mut BNBinaryView,
16858 id: *const ::std::os::raw::c_char,
16859 ) -> *mut BNTagType;
16860}
16861unsafe extern "C" {
16862 pub fn BNGetTagTypeByIdWithType(
16863 view: *mut BNBinaryView,
16864 id: *const ::std::os::raw::c_char,
16865 type_: BNTagTypeType,
16866 ) -> *mut BNTagType;
16867}
16868unsafe extern "C" {
16869 pub fn BNGetTagTypes(view: *mut BNBinaryView, count: *mut usize) -> *mut *mut BNTagType;
16870}
16871unsafe extern "C" {
16872 pub fn BNAddTag(view: *mut BNBinaryView, tag: *mut BNTag, user: bool);
16873}
16874unsafe extern "C" {
16875 pub fn BNGetTag(view: *mut BNBinaryView, tagId: *const ::std::os::raw::c_char) -> *mut BNTag;
16876}
16877unsafe extern "C" {
16878 pub fn BNRemoveTag(view: *mut BNBinaryView, tag: *mut BNTag, user: bool);
16879}
16880unsafe extern "C" {
16881 pub fn BNGetAllTagReferences(view: *mut BNBinaryView, count: *mut usize)
16882 -> *mut BNTagReference;
16883}
16884unsafe extern "C" {
16885 pub fn BNGetAllAddressTagReferences(
16886 view: *mut BNBinaryView,
16887 count: *mut usize,
16888 ) -> *mut BNTagReference;
16889}
16890unsafe extern "C" {
16891 pub fn BNGetAllFunctionTagReferences(
16892 view: *mut BNBinaryView,
16893 count: *mut usize,
16894 ) -> *mut BNTagReference;
16895}
16896unsafe extern "C" {
16897 pub fn BNGetAllTagReferencesOfType(
16898 view: *mut BNBinaryView,
16899 tagType: *mut BNTagType,
16900 count: *mut usize,
16901 ) -> *mut BNTagReference;
16902}
16903unsafe extern "C" {
16904 pub fn BNGetTagReferencesOfType(
16905 view: *mut BNBinaryView,
16906 tagType: *mut BNTagType,
16907 count: *mut usize,
16908 ) -> *mut BNTagReference;
16909}
16910unsafe extern "C" {
16911 pub fn BNGetDataTagReferences(
16912 view: *mut BNBinaryView,
16913 count: *mut usize,
16914 ) -> *mut BNTagReference;
16915}
16916unsafe extern "C" {
16917 pub fn BNGetAutoDataTagReferences(
16918 view: *mut BNBinaryView,
16919 count: *mut usize,
16920 ) -> *mut BNTagReference;
16921}
16922unsafe extern "C" {
16923 pub fn BNGetUserDataTagReferences(
16924 view: *mut BNBinaryView,
16925 count: *mut usize,
16926 ) -> *mut BNTagReference;
16927}
16928unsafe extern "C" {
16929 pub fn BNRemoveTagReference(view: *mut BNBinaryView, ref_: BNTagReference);
16930}
16931unsafe extern "C" {
16932 pub fn BNFreeTagReferences(refs: *mut BNTagReference, count: usize);
16933}
16934unsafe extern "C" {
16935 pub fn BNGetDataTags(view: *mut BNBinaryView, addr: u64, count: *mut usize) -> *mut *mut BNTag;
16936}
16937unsafe extern "C" {
16938 pub fn BNGetAutoDataTags(
16939 view: *mut BNBinaryView,
16940 addr: u64,
16941 count: *mut usize,
16942 ) -> *mut *mut BNTag;
16943}
16944unsafe extern "C" {
16945 pub fn BNGetUserDataTags(
16946 view: *mut BNBinaryView,
16947 addr: u64,
16948 count: *mut usize,
16949 ) -> *mut *mut BNTag;
16950}
16951unsafe extern "C" {
16952 pub fn BNGetDataTagsOfType(
16953 view: *mut BNBinaryView,
16954 addr: u64,
16955 tagType: *mut BNTagType,
16956 count: *mut usize,
16957 ) -> *mut *mut BNTag;
16958}
16959unsafe extern "C" {
16960 pub fn BNGetAutoDataTagsOfType(
16961 view: *mut BNBinaryView,
16962 addr: u64,
16963 tagType: *mut BNTagType,
16964 count: *mut usize,
16965 ) -> *mut *mut BNTag;
16966}
16967unsafe extern "C" {
16968 pub fn BNGetUserDataTagsOfType(
16969 view: *mut BNBinaryView,
16970 addr: u64,
16971 tagType: *mut BNTagType,
16972 count: *mut usize,
16973 ) -> *mut *mut BNTag;
16974}
16975unsafe extern "C" {
16976 pub fn BNGetDataTagsInRange(
16977 view: *mut BNBinaryView,
16978 start: u64,
16979 end: u64,
16980 count: *mut usize,
16981 ) -> *mut BNTagReference;
16982}
16983unsafe extern "C" {
16984 pub fn BNGetAutoDataTagsInRange(
16985 view: *mut BNBinaryView,
16986 start: u64,
16987 end: u64,
16988 count: *mut usize,
16989 ) -> *mut BNTagReference;
16990}
16991unsafe extern "C" {
16992 pub fn BNGetUserDataTagsInRange(
16993 view: *mut BNBinaryView,
16994 start: u64,
16995 end: u64,
16996 count: *mut usize,
16997 ) -> *mut BNTagReference;
16998}
16999unsafe extern "C" {
17000 pub fn BNAddAutoDataTag(view: *mut BNBinaryView, addr: u64, tag: *mut BNTag);
17001}
17002unsafe extern "C" {
17003 pub fn BNRemoveAutoDataTag(view: *mut BNBinaryView, addr: u64, tag: *mut BNTag);
17004}
17005unsafe extern "C" {
17006 pub fn BNRemoveAutoDataTagsOfType(view: *mut BNBinaryView, addr: u64, tagType: *mut BNTagType);
17007}
17008unsafe extern "C" {
17009 pub fn BNAddUserDataTag(view: *mut BNBinaryView, addr: u64, tag: *mut BNTag);
17010}
17011unsafe extern "C" {
17012 pub fn BNRemoveUserDataTag(view: *mut BNBinaryView, addr: u64, tag: *mut BNTag);
17013}
17014unsafe extern "C" {
17015 pub fn BNRemoveUserDataTagsOfType(view: *mut BNBinaryView, addr: u64, tagType: *mut BNTagType);
17016}
17017unsafe extern "C" {
17018 pub fn BNGetTagReferencesOfTypeCount(view: *mut BNBinaryView, tagType: *mut BNTagType)
17019 -> usize;
17020}
17021unsafe extern "C" {
17022 pub fn BNGetAllTagReferencesOfTypeCount(
17023 view: *mut BNBinaryView,
17024 tagType: *mut BNTagType,
17025 ) -> usize;
17026}
17027unsafe extern "C" {
17028 pub fn BNGetAllTagReferenceTypeCounts(
17029 view: *mut BNBinaryView,
17030 tagTypes: *mut *mut *mut BNTagType,
17031 counts: *mut *mut usize,
17032 count: *mut usize,
17033 );
17034}
17035unsafe extern "C" {
17036 pub fn BNFreeTagReferenceTypeCounts(
17037 tagTypes: *mut *mut BNTagType,
17038 counts: *mut usize,
17039 count: usize,
17040 );
17041}
17042unsafe extern "C" {
17043 pub fn BNGetFunctionAllTagReferences(
17044 func: *mut BNFunction,
17045 count: *mut usize,
17046 ) -> *mut BNTagReference;
17047}
17048unsafe extern "C" {
17049 pub fn BNGetFunctionTagReferencesOfType(
17050 func: *mut BNFunction,
17051 tagType: *mut BNTagType,
17052 count: *mut usize,
17053 ) -> *mut BNTagReference;
17054}
17055unsafe extern "C" {
17056 pub fn BNGetAddressTagReferences(
17057 func: *mut BNFunction,
17058 count: *mut usize,
17059 ) -> *mut BNTagReference;
17060}
17061unsafe extern "C" {
17062 pub fn BNGetAutoAddressTagReferences(
17063 func: *mut BNFunction,
17064 count: *mut usize,
17065 ) -> *mut BNTagReference;
17066}
17067unsafe extern "C" {
17068 pub fn BNGetUserAddressTagReferences(
17069 func: *mut BNFunction,
17070 count: *mut usize,
17071 ) -> *mut BNTagReference;
17072}
17073unsafe extern "C" {
17074 pub fn BNGetAddressTags(
17075 func: *mut BNFunction,
17076 arch: *mut BNArchitecture,
17077 addr: u64,
17078 count: *mut usize,
17079 ) -> *mut *mut BNTag;
17080}
17081unsafe extern "C" {
17082 pub fn BNGetAutoAddressTags(
17083 func: *mut BNFunction,
17084 arch: *mut BNArchitecture,
17085 addr: u64,
17086 count: *mut usize,
17087 ) -> *mut *mut BNTag;
17088}
17089unsafe extern "C" {
17090 pub fn BNGetUserAddressTags(
17091 func: *mut BNFunction,
17092 arch: *mut BNArchitecture,
17093 addr: u64,
17094 count: *mut usize,
17095 ) -> *mut *mut BNTag;
17096}
17097unsafe extern "C" {
17098 pub fn BNGetAddressTagsOfType(
17099 func: *mut BNFunction,
17100 arch: *mut BNArchitecture,
17101 addr: u64,
17102 tagType: *mut BNTagType,
17103 count: *mut usize,
17104 ) -> *mut *mut BNTag;
17105}
17106unsafe extern "C" {
17107 pub fn BNGetAutoAddressTagsOfType(
17108 func: *mut BNFunction,
17109 arch: *mut BNArchitecture,
17110 addr: u64,
17111 tagType: *mut BNTagType,
17112 count: *mut usize,
17113 ) -> *mut *mut BNTag;
17114}
17115unsafe extern "C" {
17116 pub fn BNGetUserAddressTagsOfType(
17117 func: *mut BNFunction,
17118 arch: *mut BNArchitecture,
17119 addr: u64,
17120 tagType: *mut BNTagType,
17121 count: *mut usize,
17122 ) -> *mut *mut BNTag;
17123}
17124unsafe extern "C" {
17125 pub fn BNGetAddressTagsInRange(
17126 func: *mut BNFunction,
17127 arch: *mut BNArchitecture,
17128 start: u64,
17129 end: u64,
17130 count: *mut usize,
17131 ) -> *mut BNTagReference;
17132}
17133unsafe extern "C" {
17134 pub fn BNGetAutoAddressTagsInRange(
17135 func: *mut BNFunction,
17136 arch: *mut BNArchitecture,
17137 start: u64,
17138 end: u64,
17139 count: *mut usize,
17140 ) -> *mut BNTagReference;
17141}
17142unsafe extern "C" {
17143 pub fn BNGetUserAddressTagsInRange(
17144 func: *mut BNFunction,
17145 arch: *mut BNArchitecture,
17146 start: u64,
17147 end: u64,
17148 count: *mut usize,
17149 ) -> *mut BNTagReference;
17150}
17151unsafe extern "C" {
17152 pub fn BNAddAutoAddressTag(
17153 func: *mut BNFunction,
17154 arch: *mut BNArchitecture,
17155 addr: u64,
17156 tag: *mut BNTag,
17157 );
17158}
17159unsafe extern "C" {
17160 pub fn BNRemoveAutoAddressTag(
17161 func: *mut BNFunction,
17162 arch: *mut BNArchitecture,
17163 addr: u64,
17164 tag: *mut BNTag,
17165 );
17166}
17167unsafe extern "C" {
17168 pub fn BNRemoveAutoAddressTagsOfType(
17169 func: *mut BNFunction,
17170 arch: *mut BNArchitecture,
17171 addr: u64,
17172 tagType: *mut BNTagType,
17173 );
17174}
17175unsafe extern "C" {
17176 pub fn BNAddUserAddressTag(
17177 func: *mut BNFunction,
17178 arch: *mut BNArchitecture,
17179 addr: u64,
17180 tag: *mut BNTag,
17181 );
17182}
17183unsafe extern "C" {
17184 pub fn BNRemoveUserAddressTag(
17185 func: *mut BNFunction,
17186 arch: *mut BNArchitecture,
17187 addr: u64,
17188 tag: *mut BNTag,
17189 );
17190}
17191unsafe extern "C" {
17192 pub fn BNRemoveUserAddressTagsOfType(
17193 func: *mut BNFunction,
17194 arch: *mut BNArchitecture,
17195 addr: u64,
17196 tagType: *mut BNTagType,
17197 );
17198}
17199unsafe extern "C" {
17200 pub fn BNGetFunctionTagReferences(
17201 func: *mut BNFunction,
17202 count: *mut usize,
17203 ) -> *mut BNTagReference;
17204}
17205unsafe extern "C" {
17206 pub fn BNGetAutoFunctionTagReferences(
17207 func: *mut BNFunction,
17208 count: *mut usize,
17209 ) -> *mut BNTagReference;
17210}
17211unsafe extern "C" {
17212 pub fn BNGetUserFunctionTagReferences(
17213 func: *mut BNFunction,
17214 count: *mut usize,
17215 ) -> *mut BNTagReference;
17216}
17217unsafe extern "C" {
17218 pub fn BNGetFunctionTags(func: *mut BNFunction, count: *mut usize) -> *mut *mut BNTag;
17219}
17220unsafe extern "C" {
17221 pub fn BNGetAutoFunctionTags(func: *mut BNFunction, count: *mut usize) -> *mut *mut BNTag;
17222}
17223unsafe extern "C" {
17224 pub fn BNGetUserFunctionTags(func: *mut BNFunction, count: *mut usize) -> *mut *mut BNTag;
17225}
17226unsafe extern "C" {
17227 pub fn BNGetFunctionTagsOfType(
17228 func: *mut BNFunction,
17229 tagType: *mut BNTagType,
17230 count: *mut usize,
17231 ) -> *mut *mut BNTag;
17232}
17233unsafe extern "C" {
17234 pub fn BNGetAutoFunctionTagsOfType(
17235 func: *mut BNFunction,
17236 tagType: *mut BNTagType,
17237 count: *mut usize,
17238 ) -> *mut *mut BNTag;
17239}
17240unsafe extern "C" {
17241 pub fn BNGetUserFunctionTagsOfType(
17242 func: *mut BNFunction,
17243 tagType: *mut BNTagType,
17244 count: *mut usize,
17245 ) -> *mut *mut BNTag;
17246}
17247unsafe extern "C" {
17248 pub fn BNAddAutoFunctionTag(func: *mut BNFunction, tag: *mut BNTag);
17249}
17250unsafe extern "C" {
17251 pub fn BNRemoveAutoFunctionTag(func: *mut BNFunction, tag: *mut BNTag);
17252}
17253unsafe extern "C" {
17254 pub fn BNRemoveAutoFunctionTagsOfType(func: *mut BNFunction, tagType: *mut BNTagType);
17255}
17256unsafe extern "C" {
17257 pub fn BNAddUserFunctionTag(func: *mut BNFunction, tag: *mut BNTag);
17258}
17259unsafe extern "C" {
17260 pub fn BNRemoveUserFunctionTag(func: *mut BNFunction, tag: *mut BNTag);
17261}
17262unsafe extern "C" {
17263 pub fn BNRemoveUserFunctionTagsOfType(func: *mut BNFunction, tagType: *mut BNTagType);
17264}
17265unsafe extern "C" {
17266 pub fn BNGetFunctionAnalysisPerformanceInfo(
17267 func: *mut BNFunction,
17268 count: *mut usize,
17269 ) -> *mut BNPerformanceInfo;
17270}
17271unsafe extern "C" {
17272 pub fn BNFreeAnalysisPerformanceInfo(info: *mut BNPerformanceInfo, count: usize);
17273}
17274unsafe extern "C" {
17275 pub fn BNGetUnresolvedStackAdjustmentGraph(func: *mut BNFunction) -> *mut BNFlowGraph;
17276}
17277unsafe extern "C" {
17278 pub fn BNSetUserVariableValue(
17279 func: *mut BNFunction,
17280 var: *const BNVariable,
17281 defSite: *const BNArchitectureAndAddress,
17282 after: bool,
17283 value: *const BNPossibleValueSet,
17284 );
17285}
17286unsafe extern "C" {
17287 pub fn BNClearUserVariableValue(
17288 func: *mut BNFunction,
17289 var: *const BNVariable,
17290 defSite: *const BNArchitectureAndAddress,
17291 after: bool,
17292 );
17293}
17294unsafe extern "C" {
17295 pub fn BNGetAllUserVariableValues(
17296 func: *mut BNFunction,
17297 count: *mut usize,
17298 ) -> *mut BNUserVariableValue;
17299}
17300unsafe extern "C" {
17301 pub fn BNFreeUserVariableValues(result: *mut BNUserVariableValue);
17302}
17303unsafe extern "C" {
17304 pub fn BNParsePossibleValueSet(
17305 view: *mut BNBinaryView,
17306 valueText: *const ::std::os::raw::c_char,
17307 state: BNRegisterValueType,
17308 result: *mut BNPossibleValueSet,
17309 here: u64,
17310 errors: *mut *mut ::std::os::raw::c_char,
17311 ) -> bool;
17312}
17313unsafe extern "C" {
17314 pub fn BNCreateForcedVariableVersion(
17315 func: *mut BNFunction,
17316 var: *const BNVariable,
17317 defSite: *const BNArchitectureAndAddress,
17318 );
17319}
17320unsafe extern "C" {
17321 pub fn BNClearForcedVariableVersion(
17322 func: *mut BNFunction,
17323 var: *const BNVariable,
17324 defSite: *const BNArchitectureAndAddress,
17325 );
17326}
17327unsafe extern "C" {
17328 pub fn BNSetFieldResolutionForVariableAt(
17329 func: *mut BNFunction,
17330 var: *const BNVariable,
17331 defSite: *const BNArchitectureAndAddress,
17332 info: *const BNFieldResolutionInfo,
17333 );
17334}
17335unsafe extern "C" {
17336 pub fn BNGetFieldResolutionForVariableAt(
17337 func: *mut BNFunction,
17338 var: *const BNVariable,
17339 defSite: *const BNArchitectureAndAddress,
17340 ) -> *mut BNFieldResolutionInfo;
17341}
17342unsafe extern "C" {
17343 pub fn BNGetAllVariableFieldResolutions(
17344 func: *mut BNFunction,
17345 count: *mut usize,
17346 ) -> *mut BNVariableFieldResolutionInfo;
17347}
17348unsafe extern "C" {
17349 pub fn BNFreeVariableFieldResolutions(result: *mut BNVariableFieldResolutionInfo, count: usize);
17350}
17351unsafe extern "C" {
17352 pub fn BNClearFieldResolutionForVariableAt(
17353 func: *mut BNFunction,
17354 var: *const BNVariable,
17355 defSite: *const BNArchitectureAndAddress,
17356 );
17357}
17358unsafe extern "C" {
17359 pub fn BNRequestFunctionDebugReport(func: *mut BNFunction, name: *const ::std::os::raw::c_char);
17360}
17361unsafe extern "C" {
17362 pub fn BNFunctionCheckForDebugReport(
17363 func: *mut BNFunction,
17364 name: *const ::std::os::raw::c_char,
17365 ) -> bool;
17366}
17367unsafe extern "C" {
17368 pub fn BNGetMediumLevelILVariableReferences(
17369 func: *mut BNFunction,
17370 var: *mut BNVariable,
17371 count: *mut usize,
17372 ) -> *mut BNILReferenceSource;
17373}
17374unsafe extern "C" {
17375 pub fn BNGetMediumLevelILVariableReferencesFrom(
17376 func: *mut BNFunction,
17377 arch: *mut BNArchitecture,
17378 address: u64,
17379 count: *mut usize,
17380 ) -> *mut BNVariableReferenceSource;
17381}
17382unsafe extern "C" {
17383 pub fn BNGetMediumLevelILVariableReferencesInRange(
17384 func: *mut BNFunction,
17385 arch: *mut BNArchitecture,
17386 address: u64,
17387 len: u64,
17388 count: *mut usize,
17389 ) -> *mut BNVariableReferenceSource;
17390}
17391unsafe extern "C" {
17392 pub fn BNGetMediumLevelILVariableReferencesIfAvailable(
17393 func: *mut BNFunction,
17394 var: *mut BNVariable,
17395 count: *mut usize,
17396 ) -> *mut BNILReferenceSource;
17397}
17398unsafe extern "C" {
17399 pub fn BNGetMediumLevelILVariableReferencesFromIfAvailable(
17400 func: *mut BNFunction,
17401 arch: *mut BNArchitecture,
17402 address: u64,
17403 count: *mut usize,
17404 ) -> *mut BNVariableReferenceSource;
17405}
17406unsafe extern "C" {
17407 pub fn BNGetMediumLevelILVariableReferencesInRangeIfAvailable(
17408 func: *mut BNFunction,
17409 arch: *mut BNArchitecture,
17410 address: u64,
17411 len: u64,
17412 count: *mut usize,
17413 ) -> *mut BNVariableReferenceSource;
17414}
17415unsafe extern "C" {
17416 pub fn BNGetHighLevelILVariableReferences(
17417 func: *mut BNFunction,
17418 var: *mut BNVariable,
17419 count: *mut usize,
17420 ) -> *mut BNILReferenceSource;
17421}
17422unsafe extern "C" {
17423 pub fn BNGetHighLevelILVariableReferencesFrom(
17424 func: *mut BNFunction,
17425 arch: *mut BNArchitecture,
17426 address: u64,
17427 count: *mut usize,
17428 ) -> *mut BNVariableReferenceSource;
17429}
17430unsafe extern "C" {
17431 pub fn BNGetHighLevelILVariableReferencesInRange(
17432 func: *mut BNFunction,
17433 arch: *mut BNArchitecture,
17434 address: u64,
17435 len: u64,
17436 count: *mut usize,
17437 ) -> *mut BNVariableReferenceSource;
17438}
17439unsafe extern "C" {
17440 pub fn BNGetHighLevelILVariableReferencesIfAvailable(
17441 func: *mut BNFunction,
17442 var: *mut BNVariable,
17443 count: *mut usize,
17444 ) -> *mut BNILReferenceSource;
17445}
17446unsafe extern "C" {
17447 pub fn BNGetHighLevelILVariableReferencesFromIfAvailable(
17448 func: *mut BNFunction,
17449 arch: *mut BNArchitecture,
17450 address: u64,
17451 count: *mut usize,
17452 ) -> *mut BNVariableReferenceSource;
17453}
17454unsafe extern "C" {
17455 pub fn BNGetHighLevelILVariableReferencesInRangeIfAvailable(
17456 func: *mut BNFunction,
17457 arch: *mut BNArchitecture,
17458 address: u64,
17459 len: u64,
17460 count: *mut usize,
17461 ) -> *mut BNVariableReferenceSource;
17462}
17463unsafe extern "C" {
17464 pub fn BNFreeVariableList(vars: *mut BNVariable);
17465}
17466unsafe extern "C" {
17467 pub fn BNFreeVariableReferenceSourceList(vars: *mut BNVariableReferenceSource, count: usize);
17468}
17469unsafe extern "C" {
17470 #[doc = " Analysis Context"]
17471 pub fn BNCreateAnalysisContext() -> *mut BNAnalysisContext;
17472}
17473unsafe extern "C" {
17474 pub fn BNNewAnalysisContextReference(
17475 analysisContext: *mut BNAnalysisContext,
17476 ) -> *mut BNAnalysisContext;
17477}
17478unsafe extern "C" {
17479 pub fn BNFreeAnalysisContext(analysisContext: *mut BNAnalysisContext);
17480}
17481unsafe extern "C" {
17482 pub fn BNAnalysisContextGetBinaryView(
17483 analysisContext: *mut BNAnalysisContext,
17484 ) -> *mut BNBinaryView;
17485}
17486unsafe extern "C" {
17487 pub fn BNAnalysisContextGetFunction(analysisContext: *mut BNAnalysisContext)
17488 -> *mut BNFunction;
17489}
17490unsafe extern "C" {
17491 pub fn BNAnalysisContextGetLiftedILFunction(
17492 analysisContext: *mut BNAnalysisContext,
17493 ) -> *mut BNLowLevelILFunction;
17494}
17495unsafe extern "C" {
17496 pub fn BNAnalysisContextGetLowLevelILFunction(
17497 analysisContext: *mut BNAnalysisContext,
17498 ) -> *mut BNLowLevelILFunction;
17499}
17500unsafe extern "C" {
17501 pub fn BNAnalysisContextGetMediumLevelILFunction(
17502 analysisContext: *mut BNAnalysisContext,
17503 ) -> *mut BNMediumLevelILFunction;
17504}
17505unsafe extern "C" {
17506 pub fn BNAnalysisContextGetHighLevelILFunction(
17507 analysisContext: *mut BNAnalysisContext,
17508 ) -> *mut BNHighLevelILFunction;
17509}
17510unsafe extern "C" {
17511 pub fn BNSetBasicBlockList(
17512 analysisContext: *mut BNAnalysisContext,
17513 basicBlocks: *mut *mut BNBasicBlock,
17514 count: usize,
17515 );
17516}
17517unsafe extern "C" {
17518 pub fn BNSetLiftedILFunction(
17519 analysisContext: *mut BNAnalysisContext,
17520 liftedIL: *mut BNLowLevelILFunction,
17521 );
17522}
17523unsafe extern "C" {
17524 pub fn BNSetLowLevelILFunction(
17525 analysisContext: *mut BNAnalysisContext,
17526 lowLevelIL: *mut BNLowLevelILFunction,
17527 );
17528}
17529unsafe extern "C" {
17530 pub fn BNSetMediumLevelILFunction(
17531 analysisContext: *mut BNAnalysisContext,
17532 mediumLevelIL: *mut BNMediumLevelILFunction,
17533 llilSSAToMLILSSAInstrMap: *mut usize,
17534 instrCount: usize,
17535 llilSSAToMLILSSAExprMap: *mut BNExprMapInfo,
17536 exprCount: usize,
17537 );
17538}
17539unsafe extern "C" {
17540 pub fn BNSetHighLevelILFunction(
17541 analysisContext: *mut BNAnalysisContext,
17542 highLevelIL: *mut BNHighLevelILFunction,
17543 );
17544}
17545unsafe extern "C" {
17546 pub fn BNAnalysisContextInform(
17547 analysisContext: *mut BNAnalysisContext,
17548 request: *const ::std::os::raw::c_char,
17549 ) -> bool;
17550}
17551unsafe extern "C" {
17552 #[doc = " Settings cache access"]
17553 pub fn BNAnalysisContextGetSettingBool(
17554 analysisContext: *mut BNAnalysisContext,
17555 key: *const ::std::os::raw::c_char,
17556 ) -> bool;
17557}
17558unsafe extern "C" {
17559 pub fn BNAnalysisContextGetSettingDouble(
17560 analysisContext: *mut BNAnalysisContext,
17561 key: *const ::std::os::raw::c_char,
17562 ) -> f64;
17563}
17564unsafe extern "C" {
17565 pub fn BNAnalysisContextGetSettingInt64(
17566 analysisContext: *mut BNAnalysisContext,
17567 key: *const ::std::os::raw::c_char,
17568 ) -> i64;
17569}
17570unsafe extern "C" {
17571 pub fn BNAnalysisContextGetSettingUInt64(
17572 analysisContext: *mut BNAnalysisContext,
17573 key: *const ::std::os::raw::c_char,
17574 ) -> u64;
17575}
17576unsafe extern "C" {
17577 pub fn BNAnalysisContextGetSettingString(
17578 analysisContext: *mut BNAnalysisContext,
17579 key: *const ::std::os::raw::c_char,
17580 ) -> *mut ::std::os::raw::c_char;
17581}
17582unsafe extern "C" {
17583 pub fn BNAnalysisContextGetSettingStringList(
17584 analysisContext: *mut BNAnalysisContext,
17585 key: *const ::std::os::raw::c_char,
17586 count: *mut usize,
17587 ) -> *mut *mut ::std::os::raw::c_char;
17588}
17589unsafe extern "C" {
17590 #[doc = " Memory map access"]
17591 pub fn BNAnalysisContextIsValidOffset(
17592 analysisContext: *mut BNAnalysisContext,
17593 offset: u64,
17594 ) -> bool;
17595}
17596unsafe extern "C" {
17597 pub fn BNAnalysisContextIsOffsetReadable(
17598 analysisContext: *mut BNAnalysisContext,
17599 offset: u64,
17600 ) -> bool;
17601}
17602unsafe extern "C" {
17603 pub fn BNAnalysisContextIsOffsetWritable(
17604 analysisContext: *mut BNAnalysisContext,
17605 offset: u64,
17606 ) -> bool;
17607}
17608unsafe extern "C" {
17609 pub fn BNAnalysisContextIsOffsetExecutable(
17610 analysisContext: *mut BNAnalysisContext,
17611 offset: u64,
17612 ) -> bool;
17613}
17614unsafe extern "C" {
17615 pub fn BNAnalysisContextIsOffsetBackedByFile(
17616 analysisContext: *mut BNAnalysisContext,
17617 offset: u64,
17618 ) -> bool;
17619}
17620unsafe extern "C" {
17621 pub fn BNAnalysisContextIsOffsetCodeSemantics(
17622 analysisContext: *mut BNAnalysisContext,
17623 offset: u64,
17624 ) -> bool;
17625}
17626unsafe extern "C" {
17627 pub fn BNAnalysisContextIsOffsetExternSemantics(
17628 analysisContext: *mut BNAnalysisContext,
17629 offset: u64,
17630 ) -> bool;
17631}
17632unsafe extern "C" {
17633 pub fn BNAnalysisContextIsOffsetWritableSemantics(
17634 analysisContext: *mut BNAnalysisContext,
17635 offset: u64,
17636 ) -> bool;
17637}
17638unsafe extern "C" {
17639 pub fn BNAnalysisContextIsOffsetReadOnlySemantics(
17640 analysisContext: *mut BNAnalysisContext,
17641 offset: u64,
17642 ) -> bool;
17643}
17644unsafe extern "C" {
17645 pub fn BNAnalysisContextGetSections(
17646 analysisContext: *mut BNAnalysisContext,
17647 count: *mut usize,
17648 ) -> *mut *mut BNSection;
17649}
17650unsafe extern "C" {
17651 pub fn BNAnalysisContextGetSectionByName(
17652 analysisContext: *mut BNAnalysisContext,
17653 name: *const ::std::os::raw::c_char,
17654 ) -> *mut BNSection;
17655}
17656unsafe extern "C" {
17657 pub fn BNAnalysisContextGetSectionsAt(
17658 analysisContext: *mut BNAnalysisContext,
17659 addr: u64,
17660 count: *mut usize,
17661 ) -> *mut *mut BNSection;
17662}
17663unsafe extern "C" {
17664 pub fn BNAnalysisContextGetStart(analysisContext: *mut BNAnalysisContext) -> u64;
17665}
17666unsafe extern "C" {
17667 pub fn BNAnalysisContextGetEnd(analysisContext: *mut BNAnalysisContext) -> u64;
17668}
17669unsafe extern "C" {
17670 pub fn BNAnalysisContextGetLength(analysisContext: *mut BNAnalysisContext) -> u64;
17671}
17672unsafe extern "C" {
17673 pub fn BNAnalysisContextGetNextValidOffset(
17674 analysisContext: *mut BNAnalysisContext,
17675 offset: u64,
17676 ) -> u64;
17677}
17678unsafe extern "C" {
17679 pub fn BNAnalysisContextGetNextMappedAddress(
17680 analysisContext: *mut BNAnalysisContext,
17681 addr: u64,
17682 flags: u32,
17683 ) -> u64;
17684}
17685unsafe extern "C" {
17686 pub fn BNAnalysisContextGetNextBackedAddress(
17687 analysisContext: *mut BNAnalysisContext,
17688 addr: u64,
17689 flags: u32,
17690 ) -> u64;
17691}
17692unsafe extern "C" {
17693 pub fn BNAnalysisContextGetSegmentAt(
17694 analysisContext: *mut BNAnalysisContext,
17695 addr: u64,
17696 ) -> *mut BNSegment;
17697}
17698unsafe extern "C" {
17699 pub fn BNAnalysisContextGetMappedAddressRanges(
17700 analysisContext: *mut BNAnalysisContext,
17701 count: *mut usize,
17702 ) -> *mut BNAddressRange;
17703}
17704unsafe extern "C" {
17705 pub fn BNAnalysisContextGetBackedAddressRanges(
17706 analysisContext: *mut BNAnalysisContext,
17707 count: *mut usize,
17708 ) -> *mut BNAddressRange;
17709}
17710unsafe extern "C" {
17711 #[doc = " Activity"]
17712 pub fn BNCreateActivity(
17713 configuration: *const ::std::os::raw::c_char,
17714 ctxt: *mut ::std::os::raw::c_void,
17715 action: ::std::option::Option<
17716 unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void, arg2: *mut BNAnalysisContext),
17717 >,
17718 ) -> *mut BNActivity;
17719}
17720unsafe extern "C" {
17721 pub fn BNCreateActivityWithEligibility(
17722 configuration: *const ::std::os::raw::c_char,
17723 ctxt: *mut ::std::os::raw::c_void,
17724 action: ::std::option::Option<
17725 unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void, arg2: *mut BNAnalysisContext),
17726 >,
17727 eligibilityHandler: ::std::option::Option<
17728 unsafe extern "C" fn(
17729 arg1: *mut ::std::os::raw::c_void,
17730 arg2: *mut BNActivity,
17731 arg3: *mut BNAnalysisContext,
17732 ) -> bool,
17733 >,
17734 ) -> *mut BNActivity;
17735}
17736unsafe extern "C" {
17737 pub fn BNNewActivityReference(activity: *mut BNActivity) -> *mut BNActivity;
17738}
17739unsafe extern "C" {
17740 pub fn BNFreeActivity(activity: *mut BNActivity);
17741}
17742unsafe extern "C" {
17743 pub fn BNActivityGetName(activity: *mut BNActivity) -> *mut ::std::os::raw::c_char;
17744}
17745unsafe extern "C" {
17746 #[doc = " Workflow"]
17747 pub fn BNCreateWorkflow(name: *const ::std::os::raw::c_char) -> *mut BNWorkflow;
17748}
17749unsafe extern "C" {
17750 pub fn BNNewWorkflowReference(workflow: *mut BNWorkflow) -> *mut BNWorkflow;
17751}
17752unsafe extern "C" {
17753 pub fn BNFreeWorkflow(workflow: *mut BNWorkflow);
17754}
17755unsafe extern "C" {
17756 pub fn BNGetWorkflowList(count: *mut usize) -> *mut *mut BNWorkflow;
17757}
17758unsafe extern "C" {
17759 pub fn BNFreeWorkflowList(workflows: *mut *mut BNWorkflow, count: usize);
17760}
17761unsafe extern "C" {
17762 pub fn BNWorkflowGet(name: *const ::std::os::raw::c_char) -> *mut BNWorkflow;
17763}
17764unsafe extern "C" {
17765 pub fn BNWorkflowGetOrCreate(name: *const ::std::os::raw::c_char) -> *mut BNWorkflow;
17766}
17767unsafe extern "C" {
17768 pub fn BNRegisterWorkflow(
17769 workflow: *mut BNWorkflow,
17770 configuration: *const ::std::os::raw::c_char,
17771 ) -> bool;
17772}
17773unsafe extern "C" {
17774 pub fn BNWorkflowClone(
17775 workflow: *mut BNWorkflow,
17776 name: *const ::std::os::raw::c_char,
17777 activity: *const ::std::os::raw::c_char,
17778 ) -> *mut BNWorkflow;
17779}
17780unsafe extern "C" {
17781 pub fn BNWorkflowRegisterActivity(
17782 workflow: *mut BNWorkflow,
17783 activity: *mut BNActivity,
17784 subactivities: *mut *const ::std::os::raw::c_char,
17785 size: usize,
17786 ) -> *mut BNActivity;
17787}
17788unsafe extern "C" {
17789 pub fn BNWorkflowContains(
17790 workflow: *mut BNWorkflow,
17791 activity: *const ::std::os::raw::c_char,
17792 ) -> bool;
17793}
17794unsafe extern "C" {
17795 pub fn BNWorkflowGetConfiguration(
17796 workflow: *mut BNWorkflow,
17797 activity: *const ::std::os::raw::c_char,
17798 ) -> *mut ::std::os::raw::c_char;
17799}
17800unsafe extern "C" {
17801 pub fn BNGetWorkflowName(workflow: *mut BNWorkflow) -> *mut ::std::os::raw::c_char;
17802}
17803unsafe extern "C" {
17804 pub fn BNWorkflowIsRegistered(workflow: *mut BNWorkflow) -> bool;
17805}
17806unsafe extern "C" {
17807 pub fn BNWorkflowSize(workflow: *mut BNWorkflow) -> usize;
17808}
17809unsafe extern "C" {
17810 pub fn BNWorkflowGetActivity(
17811 workflow: *mut BNWorkflow,
17812 activity: *const ::std::os::raw::c_char,
17813 ) -> *mut BNActivity;
17814}
17815unsafe extern "C" {
17816 pub fn BNWorkflowGetActivityRoots(
17817 workflow: *mut BNWorkflow,
17818 activity: *const ::std::os::raw::c_char,
17819 inoutSize: *mut usize,
17820 ) -> *mut *const ::std::os::raw::c_char;
17821}
17822unsafe extern "C" {
17823 pub fn BNWorkflowGetSubactivities(
17824 workflow: *mut BNWorkflow,
17825 activity: *const ::std::os::raw::c_char,
17826 immediate: bool,
17827 inoutSize: *mut usize,
17828 ) -> *mut *const ::std::os::raw::c_char;
17829}
17830unsafe extern "C" {
17831 pub fn BNWorkflowAssignSubactivities(
17832 workflow: *mut BNWorkflow,
17833 activity: *const ::std::os::raw::c_char,
17834 activities: *mut *const ::std::os::raw::c_char,
17835 size: usize,
17836 ) -> bool;
17837}
17838unsafe extern "C" {
17839 pub fn BNWorkflowClear(workflow: *mut BNWorkflow) -> bool;
17840}
17841unsafe extern "C" {
17842 pub fn BNWorkflowInsert(
17843 workflow: *mut BNWorkflow,
17844 activity: *const ::std::os::raw::c_char,
17845 activities: *mut *const ::std::os::raw::c_char,
17846 size: usize,
17847 ) -> bool;
17848}
17849unsafe extern "C" {
17850 pub fn BNWorkflowInsertAfter(
17851 workflow: *mut BNWorkflow,
17852 activity: *const ::std::os::raw::c_char,
17853 activities: *mut *const ::std::os::raw::c_char,
17854 size: usize,
17855 ) -> bool;
17856}
17857unsafe extern "C" {
17858 pub fn BNWorkflowRemove(
17859 workflow: *mut BNWorkflow,
17860 activity: *const ::std::os::raw::c_char,
17861 ) -> bool;
17862}
17863unsafe extern "C" {
17864 pub fn BNWorkflowReplace(
17865 workflow: *mut BNWorkflow,
17866 activity: *const ::std::os::raw::c_char,
17867 newActivity: *const ::std::os::raw::c_char,
17868 ) -> bool;
17869}
17870unsafe extern "C" {
17871 pub fn BNWorkflowGetGraph(
17872 workflow: *mut BNWorkflow,
17873 activity: *const ::std::os::raw::c_char,
17874 sequential: bool,
17875 ) -> *mut BNFlowGraph;
17876}
17877unsafe extern "C" {
17878 pub fn BNWorkflowShowReport(workflow: *mut BNWorkflow, name: *const ::std::os::raw::c_char);
17879}
17880unsafe extern "C" {
17881 pub fn BNWorkflowGetEligibilitySettings(
17882 workflow: *mut BNWorkflow,
17883 inoutSize: *mut usize,
17884 ) -> *mut *const ::std::os::raw::c_char;
17885}
17886unsafe extern "C" {
17887 #[doc = " BinaryView Workflow Machine"]
17888 pub fn BNGetWorkflowForBinaryView(view: *mut BNBinaryView) -> *mut BNWorkflow;
17889}
17890unsafe extern "C" {
17891 pub fn BNPostWorkflowRequestForBinaryView(
17892 view: *mut BNBinaryView,
17893 request: *const ::std::os::raw::c_char,
17894 ) -> *mut ::std::os::raw::c_char;
17895}
17896unsafe extern "C" {
17897 pub fn BNGetWorkflowGraphForBinaryView(
17898 view: *mut BNBinaryView,
17899 name: *const ::std::os::raw::c_char,
17900 sequential: bool,
17901 ) -> *mut BNFlowGraph;
17902}
17903unsafe extern "C" {
17904 pub fn BNShowWorkflowReportForBinaryView(
17905 view: *mut BNBinaryView,
17906 name: *const ::std::os::raw::c_char,
17907 );
17908}
17909unsafe extern "C" {
17910 #[doc = " Function Workflow Machine"]
17911 pub fn BNGetWorkflowForFunction(func: *mut BNFunction) -> *mut BNWorkflow;
17912}
17913unsafe extern "C" {
17914 pub fn BNPostWorkflowRequestForFunction(
17915 func: *mut BNFunction,
17916 request: *const ::std::os::raw::c_char,
17917 ) -> *mut ::std::os::raw::c_char;
17918}
17919unsafe extern "C" {
17920 pub fn BNGetWorkflowGraphForFunction(
17921 func: *mut BNFunction,
17922 name: *const ::std::os::raw::c_char,
17923 sequential: bool,
17924 ) -> *mut BNFlowGraph;
17925}
17926unsafe extern "C" {
17927 pub fn BNShowWorkflowReportForFunction(
17928 func: *mut BNFunction,
17929 name: *const ::std::os::raw::c_char,
17930 );
17931}
17932unsafe extern "C" {
17933 #[doc = " Provenance"]
17934 pub fn BNGetProvenanceString(func: *mut BNFunction) -> *mut ::std::os::raw::c_char;
17935}
17936unsafe extern "C" {
17937 #[doc = " Disassembly settings"]
17938 pub fn BNCreateDisassemblySettings() -> *mut BNDisassemblySettings;
17939}
17940unsafe extern "C" {
17941 pub fn BNDefaultDisassemblySettings() -> *mut BNDisassemblySettings;
17942}
17943unsafe extern "C" {
17944 pub fn BNDefaultGraphDisassemblySettings() -> *mut BNDisassemblySettings;
17945}
17946unsafe extern "C" {
17947 pub fn BNDefaultLinearDisassemblySettings() -> *mut BNDisassemblySettings;
17948}
17949unsafe extern "C" {
17950 pub fn BNNewDisassemblySettingsReference(
17951 settings: *mut BNDisassemblySettings,
17952 ) -> *mut BNDisassemblySettings;
17953}
17954unsafe extern "C" {
17955 pub fn BNDuplicateDisassemblySettings(
17956 settings: *mut BNDisassemblySettings,
17957 ) -> *mut BNDisassemblySettings;
17958}
17959unsafe extern "C" {
17960 pub fn BNFreeDisassemblySettings(settings: *mut BNDisassemblySettings);
17961}
17962unsafe extern "C" {
17963 pub fn BNIsDisassemblySettingsOptionSet(
17964 settings: *mut BNDisassemblySettings,
17965 option: BNDisassemblyOption,
17966 ) -> bool;
17967}
17968unsafe extern "C" {
17969 pub fn BNSetDisassemblySettingsOption(
17970 settings: *mut BNDisassemblySettings,
17971 option: BNDisassemblyOption,
17972 state: bool,
17973 );
17974}
17975unsafe extern "C" {
17976 pub fn BNGetDisassemblyWidth(settings: *mut BNDisassemblySettings) -> usize;
17977}
17978unsafe extern "C" {
17979 pub fn BNSetDisassemblyWidth(settings: *mut BNDisassemblySettings, width: usize);
17980}
17981unsafe extern "C" {
17982 pub fn BNGetDisassemblyMaximumSymbolWidth(settings: *mut BNDisassemblySettings) -> usize;
17983}
17984unsafe extern "C" {
17985 pub fn BNSetDisassemblyMaximumSymbolWidth(settings: *mut BNDisassemblySettings, width: usize);
17986}
17987unsafe extern "C" {
17988 pub fn BNGetDisassemblyGutterWidth(settings: *mut BNDisassemblySettings) -> usize;
17989}
17990unsafe extern "C" {
17991 pub fn BNSetDisassemblyGutterWidth(settings: *mut BNDisassemblySettings, width: usize);
17992}
17993unsafe extern "C" {
17994 pub fn BNGetDisassemblyAddressMode(
17995 settings: *mut BNDisassemblySettings,
17996 ) -> BNDisassemblyAddressMode;
17997}
17998unsafe extern "C" {
17999 pub fn BNSetDisassemblyAddressMode(
18000 settings: *mut BNDisassemblySettings,
18001 mode: BNDisassemblyAddressMode,
18002 );
18003}
18004unsafe extern "C" {
18005 pub fn BNGetDisassemblyAddressBaseOffset(settings: *mut BNDisassemblySettings) -> u64;
18006}
18007unsafe extern "C" {
18008 pub fn BNSetDisassemblyAddressBaseOffset(
18009 settings: *mut BNDisassemblySettings,
18010 addressBaseOffset: u64,
18011 );
18012}
18013unsafe extern "C" {
18014 pub fn BNGetDisassemblyCallParameterHints(
18015 settings: *mut BNDisassemblySettings,
18016 ) -> BNDisassemblyCallParameterHints;
18017}
18018unsafe extern "C" {
18019 pub fn BNSetDisassemblyCallParameterHints(
18020 settings: *mut BNDisassemblySettings,
18021 hints: BNDisassemblyCallParameterHints,
18022 );
18023}
18024unsafe extern "C" {
18025 pub fn BNGetDisassemblyBlockLabels(
18026 settings: *mut BNDisassemblySettings,
18027 ) -> BNDisassemblyBlockLabels;
18028}
18029unsafe extern "C" {
18030 pub fn BNSetDisassemblyBlockLabels(
18031 settings: *mut BNDisassemblySettings,
18032 labels: BNDisassemblyBlockLabels,
18033 );
18034}
18035unsafe extern "C" {
18036 #[doc = " Flow graphs"]
18037 pub fn BNCreateFlowGraph() -> *mut BNFlowGraph;
18038}
18039unsafe extern "C" {
18040 pub fn BNCreateFunctionGraph(
18041 func: *mut BNFunction,
18042 type_: BNFunctionViewType,
18043 settings: *mut BNDisassemblySettings,
18044 ) -> *mut BNFlowGraph;
18045}
18046unsafe extern "C" {
18047 pub fn BNCreateLowLevelILFunctionGraph(
18048 func: *mut BNLowLevelILFunction,
18049 settings: *mut BNDisassemblySettings,
18050 ) -> *mut BNFlowGraph;
18051}
18052unsafe extern "C" {
18053 pub fn BNCreateMediumLevelILFunctionGraph(
18054 func: *mut BNMediumLevelILFunction,
18055 settings: *mut BNDisassemblySettings,
18056 ) -> *mut BNFlowGraph;
18057}
18058unsafe extern "C" {
18059 pub fn BNCreateHighLevelILFunctionGraph(
18060 func: *mut BNHighLevelILFunction,
18061 settings: *mut BNDisassemblySettings,
18062 ) -> *mut BNFlowGraph;
18063}
18064unsafe extern "C" {
18065 pub fn BNCreateImmediateFunctionGraph(
18066 func: *mut BNFunction,
18067 type_: BNFunctionViewType,
18068 settings: *mut BNDisassemblySettings,
18069 ) -> *mut BNFlowGraph;
18070}
18071unsafe extern "C" {
18072 pub fn BNCreateLowLevelILImmediateFunctionGraph(
18073 func: *mut BNLowLevelILFunction,
18074 settings: *mut BNDisassemblySettings,
18075 ) -> *mut BNFlowGraph;
18076}
18077unsafe extern "C" {
18078 pub fn BNCreateMediumLevelILImmediateFunctionGraph(
18079 func: *mut BNMediumLevelILFunction,
18080 settings: *mut BNDisassemblySettings,
18081 ) -> *mut BNFlowGraph;
18082}
18083unsafe extern "C" {
18084 pub fn BNCreateHighLevelILImmediateFunctionGraph(
18085 func: *mut BNHighLevelILFunction,
18086 settings: *mut BNDisassemblySettings,
18087 ) -> *mut BNFlowGraph;
18088}
18089unsafe extern "C" {
18090 pub fn BNCreateCustomFlowGraph(callbacks: *mut BNCustomFlowGraph) -> *mut BNFlowGraph;
18091}
18092unsafe extern "C" {
18093 pub fn BNNewFlowGraphReference(graph: *mut BNFlowGraph) -> *mut BNFlowGraph;
18094}
18095unsafe extern "C" {
18096 pub fn BNFreeFlowGraph(graph: *mut BNFlowGraph);
18097}
18098unsafe extern "C" {
18099 pub fn BNGetFunctionForFlowGraph(graph: *mut BNFlowGraph) -> *mut BNFunction;
18100}
18101unsafe extern "C" {
18102 pub fn BNSetFunctionForFlowGraph(graph: *mut BNFlowGraph, func: *mut BNFunction);
18103}
18104unsafe extern "C" {
18105 pub fn BNGetViewForFlowGraph(graph: *mut BNFlowGraph) -> *mut BNBinaryView;
18106}
18107unsafe extern "C" {
18108 pub fn BNSetViewForFlowGraph(graph: *mut BNFlowGraph, view: *mut BNBinaryView);
18109}
18110unsafe extern "C" {
18111 pub fn BNGetHorizontalFlowGraphNodeMargin(graph: *mut BNFlowGraph) -> ::std::os::raw::c_int;
18112}
18113unsafe extern "C" {
18114 pub fn BNGetVerticalFlowGraphNodeMargin(graph: *mut BNFlowGraph) -> ::std::os::raw::c_int;
18115}
18116unsafe extern "C" {
18117 pub fn BNSetFlowGraphNodeMargins(
18118 graph: *mut BNFlowGraph,
18119 horiz: ::std::os::raw::c_int,
18120 vert: ::std::os::raw::c_int,
18121 );
18122}
18123unsafe extern "C" {
18124 pub fn BNStartFlowGraphLayout(
18125 graph: *mut BNFlowGraph,
18126 ctxt: *mut ::std::os::raw::c_void,
18127 func: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
18128 ) -> *mut BNFlowGraphLayoutRequest;
18129}
18130unsafe extern "C" {
18131 pub fn BNIsFlowGraphLayoutComplete(graph: *mut BNFlowGraph) -> bool;
18132}
18133unsafe extern "C" {
18134 pub fn BNNewFlowGraphLayoutRequestReference(
18135 layout: *mut BNFlowGraphLayoutRequest,
18136 ) -> *mut BNFlowGraphLayoutRequest;
18137}
18138unsafe extern "C" {
18139 pub fn BNFreeFlowGraphLayoutRequest(layout: *mut BNFlowGraphLayoutRequest);
18140}
18141unsafe extern "C" {
18142 pub fn BNIsFlowGraphLayoutRequestComplete(layout: *mut BNFlowGraphLayoutRequest) -> bool;
18143}
18144unsafe extern "C" {
18145 pub fn BNGetGraphForFlowGraphLayoutRequest(
18146 layout: *mut BNFlowGraphLayoutRequest,
18147 ) -> *mut BNFlowGraph;
18148}
18149unsafe extern "C" {
18150 pub fn BNAbortFlowGraphLayoutRequest(graph: *mut BNFlowGraphLayoutRequest);
18151}
18152unsafe extern "C" {
18153 pub fn BNIsILFlowGraph(graph: *mut BNFlowGraph) -> bool;
18154}
18155unsafe extern "C" {
18156 pub fn BNIsLowLevelILFlowGraph(graph: *mut BNFlowGraph) -> bool;
18157}
18158unsafe extern "C" {
18159 pub fn BNIsMediumLevelILFlowGraph(graph: *mut BNFlowGraph) -> bool;
18160}
18161unsafe extern "C" {
18162 pub fn BNIsHighLevelILFlowGraph(graph: *mut BNFlowGraph) -> bool;
18163}
18164unsafe extern "C" {
18165 pub fn BNGetFlowGraphLowLevelILFunction(graph: *mut BNFlowGraph) -> *mut BNLowLevelILFunction;
18166}
18167unsafe extern "C" {
18168 pub fn BNGetFlowGraphMediumLevelILFunction(
18169 graph: *mut BNFlowGraph,
18170 ) -> *mut BNMediumLevelILFunction;
18171}
18172unsafe extern "C" {
18173 pub fn BNGetFlowGraphHighLevelILFunction(graph: *mut BNFlowGraph)
18174 -> *mut BNHighLevelILFunction;
18175}
18176unsafe extern "C" {
18177 pub fn BNSetFlowGraphLowLevelILFunction(
18178 graph: *mut BNFlowGraph,
18179 func: *mut BNLowLevelILFunction,
18180 );
18181}
18182unsafe extern "C" {
18183 pub fn BNSetFlowGraphMediumLevelILFunction(
18184 graph: *mut BNFlowGraph,
18185 func: *mut BNMediumLevelILFunction,
18186 );
18187}
18188unsafe extern "C" {
18189 pub fn BNSetFlowGraphHighLevelILFunction(
18190 graph: *mut BNFlowGraph,
18191 func: *mut BNHighLevelILFunction,
18192 );
18193}
18194unsafe extern "C" {
18195 pub fn BNGetFlowGraphNodes(
18196 graph: *mut BNFlowGraph,
18197 count: *mut usize,
18198 ) -> *mut *mut BNFlowGraphNode;
18199}
18200unsafe extern "C" {
18201 pub fn BNGetFlowGraphNode(graph: *mut BNFlowGraph, i: usize) -> *mut BNFlowGraphNode;
18202}
18203unsafe extern "C" {
18204 pub fn BNGetFlowGraphNodesInRegion(
18205 graph: *mut BNFlowGraph,
18206 left: ::std::os::raw::c_int,
18207 top: ::std::os::raw::c_int,
18208 right: ::std::os::raw::c_int,
18209 bottom: ::std::os::raw::c_int,
18210 count: *mut usize,
18211 ) -> *mut *mut BNFlowGraphNode;
18212}
18213unsafe extern "C" {
18214 pub fn BNFreeFlowGraphNodeList(nodes: *mut *mut BNFlowGraphNode, count: usize);
18215}
18216unsafe extern "C" {
18217 pub fn BNGetFlowGraphNodeCount(graph: *mut BNFlowGraph) -> usize;
18218}
18219unsafe extern "C" {
18220 pub fn BNFlowGraphHasNodes(graph: *mut BNFlowGraph) -> bool;
18221}
18222unsafe extern "C" {
18223 pub fn BNAddFlowGraphNode(graph: *mut BNFlowGraph, node: *mut BNFlowGraphNode) -> usize;
18224}
18225unsafe extern "C" {
18226 pub fn BNReplaceFlowGraphNode(graph: *mut BNFlowGraph, i: usize, newNode: *mut BNFlowGraphNode);
18227}
18228unsafe extern "C" {
18229 pub fn BNClearFlowGraphNodes(graph: *mut BNFlowGraph);
18230}
18231unsafe extern "C" {
18232 pub fn BNGetFlowGraphWidth(graph: *mut BNFlowGraph) -> ::std::os::raw::c_int;
18233}
18234unsafe extern "C" {
18235 pub fn BNGetFlowGraphHeight(graph: *mut BNFlowGraph) -> ::std::os::raw::c_int;
18236}
18237unsafe extern "C" {
18238 pub fn BNFlowGraphSetWidth(graph: *mut BNFlowGraph, width: ::std::os::raw::c_int);
18239}
18240unsafe extern "C" {
18241 pub fn BNFlowGraphSetHeight(graph: *mut BNFlowGraph, height: ::std::os::raw::c_int);
18242}
18243unsafe extern "C" {
18244 pub fn BNGetFlowGraphRenderLayers(
18245 graph: *mut BNFlowGraph,
18246 count: *mut usize,
18247 ) -> *mut *mut BNRenderLayer;
18248}
18249unsafe extern "C" {
18250 pub fn BNAddFlowGraphRenderLayer(graph: *mut BNFlowGraph, layer: *mut BNRenderLayer);
18251}
18252unsafe extern "C" {
18253 pub fn BNRemoveFlowGraphRenderLayer(graph: *mut BNFlowGraph, layer: *mut BNRenderLayer);
18254}
18255unsafe extern "C" {
18256 pub fn BNCreateFlowGraphNode(graph: *mut BNFlowGraph) -> *mut BNFlowGraphNode;
18257}
18258unsafe extern "C" {
18259 pub fn BNNewFlowGraphNodeReference(node: *mut BNFlowGraphNode) -> *mut BNFlowGraphNode;
18260}
18261unsafe extern "C" {
18262 pub fn BNFreeFlowGraphNode(node: *mut BNFlowGraphNode);
18263}
18264unsafe extern "C" {
18265 pub fn BNGetFlowGraphNodeOwner(node: *mut BNFlowGraphNode) -> *mut BNFlowGraph;
18266}
18267unsafe extern "C" {
18268 pub fn BNGetFlowGraphBasicBlock(node: *mut BNFlowGraphNode) -> *mut BNBasicBlock;
18269}
18270unsafe extern "C" {
18271 pub fn BNSetFlowGraphBasicBlock(node: *mut BNFlowGraphNode, block: *mut BNBasicBlock);
18272}
18273unsafe extern "C" {
18274 pub fn BNFlowGraphNodeSetX(node: *mut BNFlowGraphNode, x: ::std::os::raw::c_int);
18275}
18276unsafe extern "C" {
18277 pub fn BNFlowGraphNodeSetY(node: *mut BNFlowGraphNode, y: ::std::os::raw::c_int);
18278}
18279unsafe extern "C" {
18280 pub fn BNGetFlowGraphNodeX(node: *mut BNFlowGraphNode) -> ::std::os::raw::c_int;
18281}
18282unsafe extern "C" {
18283 pub fn BNGetFlowGraphNodeY(node: *mut BNFlowGraphNode) -> ::std::os::raw::c_int;
18284}
18285unsafe extern "C" {
18286 pub fn BNGetFlowGraphNodeWidth(node: *mut BNFlowGraphNode) -> ::std::os::raw::c_int;
18287}
18288unsafe extern "C" {
18289 pub fn BNGetFlowGraphNodeHeight(node: *mut BNFlowGraphNode) -> ::std::os::raw::c_int;
18290}
18291unsafe extern "C" {
18292 pub fn BNGetFlowGraphNodeLines(
18293 node: *mut BNFlowGraphNode,
18294 count: *mut usize,
18295 ) -> *mut BNDisassemblyTextLine;
18296}
18297unsafe extern "C" {
18298 pub fn BNSetFlowGraphNodeLines(
18299 node: *mut BNFlowGraphNode,
18300 lines: *mut BNDisassemblyTextLine,
18301 count: usize,
18302 );
18303}
18304unsafe extern "C" {
18305 pub fn BNGetFlowGraphNodeOutgoingEdges(
18306 node: *mut BNFlowGraphNode,
18307 count: *mut usize,
18308 ) -> *mut BNFlowGraphEdge;
18309}
18310unsafe extern "C" {
18311 pub fn BNGetFlowGraphNodeIncomingEdges(
18312 node: *mut BNFlowGraphNode,
18313 count: *mut usize,
18314 ) -> *mut BNFlowGraphEdge;
18315}
18316unsafe extern "C" {
18317 pub fn BNFreeFlowGraphNodeEdgeList(edges: *mut BNFlowGraphEdge, count: usize);
18318}
18319unsafe extern "C" {
18320 pub fn BNAddFlowGraphNodeOutgoingEdge(
18321 node: *mut BNFlowGraphNode,
18322 type_: BNBranchType,
18323 target: *mut BNFlowGraphNode,
18324 edgeStyle: BNEdgeStyle,
18325 );
18326}
18327unsafe extern "C" {
18328 pub fn BNGetFlowGraphNodeHighlight(node: *mut BNFlowGraphNode) -> BNHighlightColor;
18329}
18330unsafe extern "C" {
18331 pub fn BNSetFlowGraphNodeHighlight(node: *mut BNFlowGraphNode, color: BNHighlightColor);
18332}
18333unsafe extern "C" {
18334 pub fn BNFinishPrepareForLayout(graph: *mut BNFlowGraph);
18335}
18336unsafe extern "C" {
18337 pub fn BNFlowGraphUpdateQueryMode(graph: *mut BNFlowGraph) -> bool;
18338}
18339unsafe extern "C" {
18340 pub fn BNFlowGraphHasUpdates(graph: *mut BNFlowGraph) -> bool;
18341}
18342unsafe extern "C" {
18343 pub fn BNUpdateFlowGraph(graph: *mut BNFlowGraph) -> *mut BNFlowGraph;
18344}
18345unsafe extern "C" {
18346 pub fn BNSetFlowGraphOption(graph: *mut BNFlowGraph, option: BNFlowGraphOption, value: bool);
18347}
18348unsafe extern "C" {
18349 pub fn BNIsFlowGraphOptionSet(graph: *mut BNFlowGraph, option: BNFlowGraphOption) -> bool;
18350}
18351unsafe extern "C" {
18352 pub fn BNIsNodeValidForFlowGraph(graph: *mut BNFlowGraph, node: *mut BNFlowGraphNode) -> bool;
18353}
18354unsafe extern "C" {
18355 pub fn BNFlowGraphNodeSetVisibilityRegion(
18356 node: *mut BNFlowGraphNode,
18357 x: ::std::os::raw::c_int,
18358 y: ::std::os::raw::c_int,
18359 w: ::std::os::raw::c_int,
18360 h: ::std::os::raw::c_int,
18361 );
18362}
18363unsafe extern "C" {
18364 pub fn BNFlowGraphNodeSetOutgoingEdgePoints(
18365 node: *mut BNFlowGraphNode,
18366 edgeNum: usize,
18367 points: *mut BNPoint,
18368 pointCount: usize,
18369 );
18370}
18371unsafe extern "C" {
18372 pub fn BNGetFlowGraphLayouts(count: *mut usize) -> *mut *mut BNFlowGraphLayout;
18373}
18374unsafe extern "C" {
18375 pub fn BNFreeFlowGraphLayoutList(layouts: *mut *mut BNFlowGraphLayout);
18376}
18377unsafe extern "C" {
18378 pub fn BNRegisterFlowGraphLayout(
18379 name: *const ::std::os::raw::c_char,
18380 callbacks: *mut BNCustomFlowGraphLayout,
18381 ) -> *mut BNFlowGraphLayout;
18382}
18383unsafe extern "C" {
18384 pub fn BNGetFlowGraphLayoutByName(
18385 name: *const ::std::os::raw::c_char,
18386 ) -> *mut BNFlowGraphLayout;
18387}
18388unsafe extern "C" {
18389 pub fn BNGetFlowGraphLayoutName(layout: *mut BNFlowGraphLayout) -> *mut ::std::os::raw::c_char;
18390}
18391unsafe extern "C" {
18392 pub fn BNFlowGraphLayoutLayout(
18393 layout: *mut BNFlowGraphLayout,
18394 graph: *mut BNFlowGraph,
18395 nodes: *mut *mut BNFlowGraphNode,
18396 nodeCount: usize,
18397 ) -> bool;
18398}
18399unsafe extern "C" {
18400 #[doc = " Symbols"]
18401 pub fn BNCreateSymbol(
18402 type_: BNSymbolType,
18403 shortName: *const ::std::os::raw::c_char,
18404 fullName: *const ::std::os::raw::c_char,
18405 rawName: *const ::std::os::raw::c_char,
18406 addr: u64,
18407 binding: BNSymbolBinding,
18408 nameSpace: *const BNNameSpace,
18409 ordinal: u64,
18410 ) -> *mut BNSymbol;
18411}
18412unsafe extern "C" {
18413 pub fn BNNewSymbolReference(sym: *mut BNSymbol) -> *mut BNSymbol;
18414}
18415unsafe extern "C" {
18416 pub fn BNFreeSymbol(sym: *mut BNSymbol);
18417}
18418unsafe extern "C" {
18419 pub fn BNGetSymbolType(sym: *mut BNSymbol) -> BNSymbolType;
18420}
18421unsafe extern "C" {
18422 pub fn BNGetSymbolBinding(sym: *mut BNSymbol) -> BNSymbolBinding;
18423}
18424unsafe extern "C" {
18425 pub fn BNGetSymbolNameSpace(sym: *mut BNSymbol) -> BNNameSpace;
18426}
18427unsafe extern "C" {
18428 pub fn BNGetSymbolShortName(sym: *mut BNSymbol) -> *mut ::std::os::raw::c_char;
18429}
18430unsafe extern "C" {
18431 pub fn BNGetSymbolShortNameRef(sym: *mut BNSymbol) -> *mut BNStringRef;
18432}
18433unsafe extern "C" {
18434 pub fn BNGetSymbolFullName(sym: *mut BNSymbol) -> *mut ::std::os::raw::c_char;
18435}
18436unsafe extern "C" {
18437 pub fn BNGetSymbolFullNameRef(sym: *mut BNSymbol) -> *mut BNStringRef;
18438}
18439unsafe extern "C" {
18440 pub fn BNGetSymbolRawName(sym: *mut BNSymbol) -> *mut ::std::os::raw::c_char;
18441}
18442unsafe extern "C" {
18443 pub fn BNGetSymbolRawNameRef(sym: *mut BNSymbol) -> *mut BNStringRef;
18444}
18445unsafe extern "C" {
18446 pub fn BNGetSymbolRawBytes(
18447 sym: *mut BNSymbol,
18448 count: *mut usize,
18449 ) -> *mut ::std::os::raw::c_void;
18450}
18451unsafe extern "C" {
18452 pub fn BNFreeSymbolRawBytes(bytes: *mut ::std::os::raw::c_void);
18453}
18454unsafe extern "C" {
18455 pub fn BNGetSymbolAddress(sym: *mut BNSymbol) -> u64;
18456}
18457unsafe extern "C" {
18458 pub fn BNGetSymbolOrdinal(sym: *mut BNSymbol) -> u64;
18459}
18460unsafe extern "C" {
18461 pub fn BNIsSymbolAutoDefined(sym: *mut BNSymbol) -> bool;
18462}
18463unsafe extern "C" {
18464 pub fn BNGetSymbolByAddress(
18465 view: *mut BNBinaryView,
18466 addr: u64,
18467 nameSpace: *const BNNameSpace,
18468 ) -> *mut BNSymbol;
18469}
18470unsafe extern "C" {
18471 pub fn BNGetSymbolByRawName(
18472 view: *mut BNBinaryView,
18473 name: *const ::std::os::raw::c_char,
18474 nameSpace: *const BNNameSpace,
18475 ) -> *mut BNSymbol;
18476}
18477unsafe extern "C" {
18478 pub fn BNGetSymbolsByName(
18479 view: *mut BNBinaryView,
18480 name: *const ::std::os::raw::c_char,
18481 count: *mut usize,
18482 nameSpace: *const BNNameSpace,
18483 ) -> *mut *mut BNSymbol;
18484}
18485unsafe extern "C" {
18486 pub fn BNGetSymbolsByRawName(
18487 view: *mut BNBinaryView,
18488 name: *const ::std::os::raw::c_char,
18489 count: *mut usize,
18490 nameSpace: *const BNNameSpace,
18491 ) -> *mut *mut BNSymbol;
18492}
18493unsafe extern "C" {
18494 pub fn BNGetSymbols(
18495 view: *mut BNBinaryView,
18496 count: *mut usize,
18497 nameSpace: *const BNNameSpace,
18498 ) -> *mut *mut BNSymbol;
18499}
18500unsafe extern "C" {
18501 pub fn BNGetSymbolsInRange(
18502 view: *mut BNBinaryView,
18503 start: u64,
18504 len: u64,
18505 count: *mut usize,
18506 nameSpace: *const BNNameSpace,
18507 ) -> *mut *mut BNSymbol;
18508}
18509unsafe extern "C" {
18510 pub fn BNGetSymbolsOfType(
18511 view: *mut BNBinaryView,
18512 type_: BNSymbolType,
18513 count: *mut usize,
18514 nameSpace: *const BNNameSpace,
18515 ) -> *mut *mut BNSymbol;
18516}
18517unsafe extern "C" {
18518 pub fn BNGetSymbolsOfTypeInRange(
18519 view: *mut BNBinaryView,
18520 type_: BNSymbolType,
18521 start: u64,
18522 len: u64,
18523 count: *mut usize,
18524 nameSpace: *const BNNameSpace,
18525 ) -> *mut *mut BNSymbol;
18526}
18527unsafe extern "C" {
18528 pub fn BNFreeSymbolList(syms: *mut *mut BNSymbol, count: usize);
18529}
18530unsafe extern "C" {
18531 pub fn BNGetVisibleSymbols(
18532 view: *mut BNBinaryView,
18533 count: *mut usize,
18534 nameSpace: *const BNNameSpace,
18535 ) -> *mut *mut BNSymbol;
18536}
18537unsafe extern "C" {
18538 pub fn BNDefineAutoSymbol(view: *mut BNBinaryView, sym: *mut BNSymbol);
18539}
18540unsafe extern "C" {
18541 pub fn BNUndefineAutoSymbol(view: *mut BNBinaryView, sym: *mut BNSymbol);
18542}
18543unsafe extern "C" {
18544 pub fn BNDefineUserSymbol(view: *mut BNBinaryView, sym: *mut BNSymbol);
18545}
18546unsafe extern "C" {
18547 pub fn BNUndefineUserSymbol(view: *mut BNBinaryView, sym: *mut BNSymbol);
18548}
18549unsafe extern "C" {
18550 pub fn BNDefineImportedFunction(
18551 view: *mut BNBinaryView,
18552 importAddressSym: *mut BNSymbol,
18553 func: *mut BNFunction,
18554 type_: *mut BNType,
18555 );
18556}
18557unsafe extern "C" {
18558 pub fn BNDefineAutoSymbolAndVariableOrFunction(
18559 view: *mut BNBinaryView,
18560 platform: *mut BNPlatform,
18561 sym: *mut BNSymbol,
18562 type_: *mut BNTypeWithConfidence,
18563 ) -> *mut BNSymbol;
18564}
18565unsafe extern "C" {
18566 pub fn BNBeginBulkModifySymbols(view: *mut BNBinaryView);
18567}
18568unsafe extern "C" {
18569 pub fn BNEndBulkModifySymbols(view: *mut BNBinaryView);
18570}
18571unsafe extern "C" {
18572 pub fn BNGetDebugInfo(view: *mut BNBinaryView) -> *mut BNDebugInfo;
18573}
18574unsafe extern "C" {
18575 pub fn BNApplyDebugInfo(view: *mut BNBinaryView, newDebugInfo: *mut BNDebugInfo);
18576}
18577unsafe extern "C" {
18578 pub fn BNSetDebugInfo(view: *mut BNBinaryView, newDebugInfo: *mut BNDebugInfo);
18579}
18580unsafe extern "C" {
18581 pub fn BNIsApplyingDebugInfo(view: *mut BNBinaryView) -> bool;
18582}
18583unsafe extern "C" {
18584 pub fn BNImportedFunctionFromImportAddressSymbol(
18585 sym: *mut BNSymbol,
18586 addr: u64,
18587 ) -> *mut BNSymbol;
18588}
18589unsafe extern "C" {
18590 #[doc = " Low-level IL"]
18591 pub fn BNCreateLowLevelILFunction(
18592 arch: *mut BNArchitecture,
18593 func: *mut BNFunction,
18594 ) -> *mut BNLowLevelILFunction;
18595}
18596unsafe extern "C" {
18597 pub fn BNNewLowLevelILFunctionReference(
18598 func: *mut BNLowLevelILFunction,
18599 ) -> *mut BNLowLevelILFunction;
18600}
18601unsafe extern "C" {
18602 pub fn BNFreeLowLevelILFunction(func: *mut BNLowLevelILFunction);
18603}
18604unsafe extern "C" {
18605 pub fn BNGetLowLevelILOwnerFunction(func: *mut BNLowLevelILFunction) -> *mut BNFunction;
18606}
18607unsafe extern "C" {
18608 pub fn BNLowLevelILGetCurrentAddress(func: *mut BNLowLevelILFunction) -> u64;
18609}
18610unsafe extern "C" {
18611 pub fn BNLowLevelILSetCurrentAddress(
18612 func: *mut BNLowLevelILFunction,
18613 arch: *mut BNArchitecture,
18614 addr: u64,
18615 );
18616}
18617unsafe extern "C" {
18618 pub fn BNLowLevelILSetCurrentSourceBlock(
18619 func: *mut BNLowLevelILFunction,
18620 source: *mut BNBasicBlock,
18621 );
18622}
18623unsafe extern "C" {
18624 pub fn BNLowLevelILGetInstructionStart(
18625 func: *mut BNLowLevelILFunction,
18626 arch: *mut BNArchitecture,
18627 addr: u64,
18628 ) -> usize;
18629}
18630unsafe extern "C" {
18631 pub fn BNLowLevelILGetInstructionsAt(
18632 func: *mut BNLowLevelILFunction,
18633 arch: *mut BNArchitecture,
18634 addr: u64,
18635 count: *mut usize,
18636 ) -> *mut usize;
18637}
18638unsafe extern "C" {
18639 pub fn BNLowLevelILGetExitsForInstruction(
18640 func: *mut BNLowLevelILFunction,
18641 instr: usize,
18642 count: *mut usize,
18643 ) -> *mut usize;
18644}
18645unsafe extern "C" {
18646 pub fn BNLowLevelILClearIndirectBranches(func: *mut BNLowLevelILFunction);
18647}
18648unsafe extern "C" {
18649 pub fn BNLowLevelILSetIndirectBranches(
18650 func: *mut BNLowLevelILFunction,
18651 branches: *mut BNArchitectureAndAddress,
18652 count: usize,
18653 );
18654}
18655unsafe extern "C" {
18656 pub fn BNLowLevelILAddExpr(
18657 func: *mut BNLowLevelILFunction,
18658 operation: BNLowLevelILOperation,
18659 size: usize,
18660 flags: u32,
18661 a: u64,
18662 b: u64,
18663 c: u64,
18664 d: u64,
18665 ) -> usize;
18666}
18667unsafe extern "C" {
18668 pub fn BNLowLevelILAddExprWithLocation(
18669 func: *mut BNLowLevelILFunction,
18670 addr: u64,
18671 sourceOperand: u32,
18672 operation: BNLowLevelILOperation,
18673 size: usize,
18674 flags: u32,
18675 a: u64,
18676 b: u64,
18677 c: u64,
18678 d: u64,
18679 ) -> usize;
18680}
18681unsafe extern "C" {
18682 pub fn BNLowLevelILSetExprSourceOperand(
18683 func: *mut BNLowLevelILFunction,
18684 expr: usize,
18685 operand: u32,
18686 );
18687}
18688unsafe extern "C" {
18689 pub fn BNLowLevelILAddInstruction(func: *mut BNLowLevelILFunction, expr: usize) -> usize;
18690}
18691unsafe extern "C" {
18692 pub fn BNLowLevelILGoto(
18693 func: *mut BNLowLevelILFunction,
18694 label: *mut BNLowLevelILLabel,
18695 ) -> usize;
18696}
18697unsafe extern "C" {
18698 pub fn BNLowLevelILGotoWithLocation(
18699 func: *mut BNLowLevelILFunction,
18700 label: *mut BNLowLevelILLabel,
18701 addr: u64,
18702 sourceOperand: u32,
18703 ) -> usize;
18704}
18705unsafe extern "C" {
18706 pub fn BNLowLevelILIf(
18707 func: *mut BNLowLevelILFunction,
18708 op: u64,
18709 t: *mut BNLowLevelILLabel,
18710 f: *mut BNLowLevelILLabel,
18711 ) -> usize;
18712}
18713unsafe extern "C" {
18714 pub fn BNLowLevelILIfWithLocation(
18715 func: *mut BNLowLevelILFunction,
18716 op: u64,
18717 t: *mut BNLowLevelILLabel,
18718 f: *mut BNLowLevelILLabel,
18719 addr: u64,
18720 sourceOperand: u32,
18721 ) -> usize;
18722}
18723unsafe extern "C" {
18724 pub fn BNLowLevelILInitLabel(label: *mut BNLowLevelILLabel);
18725}
18726unsafe extern "C" {
18727 pub fn BNLowLevelILMarkLabel(func: *mut BNLowLevelILFunction, label: *mut BNLowLevelILLabel);
18728}
18729unsafe extern "C" {
18730 pub fn BNFinalizeLowLevelILFunction(func: *mut BNLowLevelILFunction);
18731}
18732unsafe extern "C" {
18733 pub fn BNGenerateLowLevelILSSAForm(func: *mut BNLowLevelILFunction);
18734}
18735unsafe extern "C" {
18736 pub fn BNPrepareToCopyLowLevelILFunction(
18737 func: *mut BNLowLevelILFunction,
18738 src: *mut BNLowLevelILFunction,
18739 );
18740}
18741unsafe extern "C" {
18742 pub fn BNPrepareToCopyLowLevelILBasicBlock(
18743 func: *mut BNLowLevelILFunction,
18744 block: *mut BNBasicBlock,
18745 );
18746}
18747unsafe extern "C" {
18748 pub fn BNGetLabelForLowLevelILSourceInstruction(
18749 func: *mut BNLowLevelILFunction,
18750 instr: usize,
18751 ) -> *mut BNLowLevelILLabel;
18752}
18753unsafe extern "C" {
18754 pub fn BNLowLevelILAddLabelMap(
18755 func: *mut BNLowLevelILFunction,
18756 values: *mut u64,
18757 labels: *mut *mut BNLowLevelILLabel,
18758 count: usize,
18759 ) -> usize;
18760}
18761unsafe extern "C" {
18762 pub fn BNLowLevelILAddOperandList(
18763 func: *mut BNLowLevelILFunction,
18764 operands: *mut u64,
18765 count: usize,
18766 ) -> usize;
18767}
18768unsafe extern "C" {
18769 pub fn BNLowLevelILGetOperandList(
18770 func: *mut BNLowLevelILFunction,
18771 expr: usize,
18772 operand: usize,
18773 count: *mut usize,
18774 ) -> *mut u64;
18775}
18776unsafe extern "C" {
18777 pub fn BNLowLevelILFreeOperandList(operands: *mut u64);
18778}
18779unsafe extern "C" {
18780 pub fn BNCacheLowLevelILPossibleValueSet(
18781 func: *mut BNLowLevelILFunction,
18782 pvs: *mut BNPossibleValueSet,
18783 ) -> usize;
18784}
18785unsafe extern "C" {
18786 pub fn BNGetCachedLowLevelILPossibleValueSet(
18787 func: *mut BNLowLevelILFunction,
18788 idx: usize,
18789 ) -> BNPossibleValueSet;
18790}
18791unsafe extern "C" {
18792 pub fn BNGetLowLevelILByIndex(
18793 func: *mut BNLowLevelILFunction,
18794 i: usize,
18795 ) -> BNLowLevelILInstruction;
18796}
18797unsafe extern "C" {
18798 pub fn BNGetLowLevelILIndexForInstruction(func: *mut BNLowLevelILFunction, i: usize) -> usize;
18799}
18800unsafe extern "C" {
18801 pub fn BNGetLowLevelILInstructionForExpr(func: *mut BNLowLevelILFunction, expr: usize)
18802 -> usize;
18803}
18804unsafe extern "C" {
18805 pub fn BNGetLowLevelILInstructionCount(func: *mut BNLowLevelILFunction) -> usize;
18806}
18807unsafe extern "C" {
18808 pub fn BNGetLowLevelILExprCount(func: *mut BNLowLevelILFunction) -> usize;
18809}
18810unsafe extern "C" {
18811 pub fn BNUpdateLowLevelILOperand(
18812 func: *mut BNLowLevelILFunction,
18813 instr: usize,
18814 operandIndex: usize,
18815 value: u64,
18816 );
18817}
18818unsafe extern "C" {
18819 pub fn BNReplaceLowLevelILExpr(func: *mut BNLowLevelILFunction, expr: usize, newExpr: usize);
18820}
18821unsafe extern "C" {
18822 pub fn BNSetLowLevelILExprAttributes(
18823 func: *mut BNLowLevelILFunction,
18824 expr: usize,
18825 attributes: u32,
18826 );
18827}
18828unsafe extern "C" {
18829 pub fn BNAddLowLevelILLabelForAddress(
18830 func: *mut BNLowLevelILFunction,
18831 arch: *mut BNArchitecture,
18832 addr: u64,
18833 );
18834}
18835unsafe extern "C" {
18836 pub fn BNGetLowLevelILLabelForAddress(
18837 func: *mut BNLowLevelILFunction,
18838 arch: *mut BNArchitecture,
18839 addr: u64,
18840 ) -> *mut BNLowLevelILLabel;
18841}
18842unsafe extern "C" {
18843 pub fn BNGetLowLevelILExprText(
18844 func: *mut BNLowLevelILFunction,
18845 arch: *mut BNArchitecture,
18846 i: usize,
18847 settings: *mut BNDisassemblySettings,
18848 tokens: *mut *mut BNInstructionTextToken,
18849 count: *mut usize,
18850 ) -> bool;
18851}
18852unsafe extern "C" {
18853 pub fn BNGetLowLevelILInstructionText(
18854 il: *mut BNLowLevelILFunction,
18855 func: *mut BNFunction,
18856 arch: *mut BNArchitecture,
18857 i: usize,
18858 settings: *mut BNDisassemblySettings,
18859 tokens: *mut *mut BNInstructionTextToken,
18860 count: *mut usize,
18861 ) -> bool;
18862}
18863unsafe extern "C" {
18864 pub fn BNGetLowLevelILTemporaryRegisterCount(func: *mut BNLowLevelILFunction) -> u32;
18865}
18866unsafe extern "C" {
18867 pub fn BNGetLowLevelILTemporaryFlagCount(func: *mut BNLowLevelILFunction) -> u32;
18868}
18869unsafe extern "C" {
18870 pub fn BNGetLowLevelILBasicBlockList(
18871 func: *mut BNLowLevelILFunction,
18872 count: *mut usize,
18873 ) -> *mut *mut BNBasicBlock;
18874}
18875unsafe extern "C" {
18876 pub fn BNGetLowLevelILBasicBlockForInstruction(
18877 func: *mut BNLowLevelILFunction,
18878 i: usize,
18879 ) -> *mut BNBasicBlock;
18880}
18881unsafe extern "C" {
18882 pub fn BNGetLowLevelILSSAForm(func: *mut BNLowLevelILFunction) -> *mut BNLowLevelILFunction;
18883}
18884unsafe extern "C" {
18885 pub fn BNGetLowLevelILNonSSAForm(func: *mut BNLowLevelILFunction) -> *mut BNLowLevelILFunction;
18886}
18887unsafe extern "C" {
18888 pub fn BNGetLowLevelILSSAInstructionIndex(
18889 func: *mut BNLowLevelILFunction,
18890 instr: usize,
18891 ) -> usize;
18892}
18893unsafe extern "C" {
18894 pub fn BNGetLowLevelILNonSSAInstructionIndex(
18895 func: *mut BNLowLevelILFunction,
18896 instr: usize,
18897 ) -> usize;
18898}
18899unsafe extern "C" {
18900 pub fn BNGetLowLevelILSSAExprIndex(func: *mut BNLowLevelILFunction, expr: usize) -> usize;
18901}
18902unsafe extern "C" {
18903 pub fn BNGetLowLevelILNonSSAExprIndex(func: *mut BNLowLevelILFunction, expr: usize) -> usize;
18904}
18905unsafe extern "C" {
18906 pub fn BNGetLowLevelILSSARegisterDefinition(
18907 func: *mut BNLowLevelILFunction,
18908 reg: u32,
18909 version: usize,
18910 ) -> usize;
18911}
18912unsafe extern "C" {
18913 pub fn BNGetLowLevelILSSAFlagDefinition(
18914 func: *mut BNLowLevelILFunction,
18915 reg: u32,
18916 version: usize,
18917 ) -> usize;
18918}
18919unsafe extern "C" {
18920 pub fn BNGetLowLevelILSSAMemoryDefinition(
18921 func: *mut BNLowLevelILFunction,
18922 version: usize,
18923 ) -> usize;
18924}
18925unsafe extern "C" {
18926 pub fn BNGetLowLevelILSSARegisterUses(
18927 func: *mut BNLowLevelILFunction,
18928 reg: u32,
18929 version: usize,
18930 count: *mut usize,
18931 ) -> *mut usize;
18932}
18933unsafe extern "C" {
18934 pub fn BNGetLowLevelILSSAFlagUses(
18935 func: *mut BNLowLevelILFunction,
18936 reg: u32,
18937 version: usize,
18938 count: *mut usize,
18939 ) -> *mut usize;
18940}
18941unsafe extern "C" {
18942 pub fn BNGetLowLevelILSSAMemoryUses(
18943 func: *mut BNLowLevelILFunction,
18944 version: usize,
18945 count: *mut usize,
18946 ) -> *mut usize;
18947}
18948unsafe extern "C" {
18949 pub fn BNGetLowLevelILSSARegisterValue(
18950 func: *mut BNLowLevelILFunction,
18951 reg: u32,
18952 version: usize,
18953 ) -> BNRegisterValue;
18954}
18955unsafe extern "C" {
18956 pub fn BNGetLowLevelILSSAFlagValue(
18957 func: *mut BNLowLevelILFunction,
18958 flag: u32,
18959 version: usize,
18960 ) -> BNRegisterValue;
18961}
18962unsafe extern "C" {
18963 pub fn BNGetLowLevelILExprValue(
18964 func: *mut BNLowLevelILFunction,
18965 expr: usize,
18966 ) -> BNRegisterValue;
18967}
18968unsafe extern "C" {
18969 pub fn BNGetLowLevelILPossibleExprValues(
18970 func: *mut BNLowLevelILFunction,
18971 expr: usize,
18972 options: *mut BNDataFlowQueryOption,
18973 optionCount: usize,
18974 ) -> BNPossibleValueSet;
18975}
18976unsafe extern "C" {
18977 pub fn BNGetLowLevelILRegisterValueAtInstruction(
18978 func: *mut BNLowLevelILFunction,
18979 reg: u32,
18980 instr: usize,
18981 ) -> BNRegisterValue;
18982}
18983unsafe extern "C" {
18984 pub fn BNGetLowLevelILRegisterValueAfterInstruction(
18985 func: *mut BNLowLevelILFunction,
18986 reg: u32,
18987 instr: usize,
18988 ) -> BNRegisterValue;
18989}
18990unsafe extern "C" {
18991 pub fn BNGetLowLevelILPossibleRegisterValuesAtInstruction(
18992 func: *mut BNLowLevelILFunction,
18993 reg: u32,
18994 instr: usize,
18995 options: *mut BNDataFlowQueryOption,
18996 optionCount: usize,
18997 ) -> BNPossibleValueSet;
18998}
18999unsafe extern "C" {
19000 pub fn BNGetLowLevelILPossibleRegisterValuesAfterInstruction(
19001 func: *mut BNLowLevelILFunction,
19002 reg: u32,
19003 instr: usize,
19004 options: *mut BNDataFlowQueryOption,
19005 optionCount: usize,
19006 ) -> BNPossibleValueSet;
19007}
19008unsafe extern "C" {
19009 pub fn BNGetLowLevelILFlagValueAtInstruction(
19010 func: *mut BNLowLevelILFunction,
19011 flag: u32,
19012 instr: usize,
19013 ) -> BNRegisterValue;
19014}
19015unsafe extern "C" {
19016 pub fn BNGetLowLevelILFlagValueAfterInstruction(
19017 func: *mut BNLowLevelILFunction,
19018 flag: u32,
19019 instr: usize,
19020 ) -> BNRegisterValue;
19021}
19022unsafe extern "C" {
19023 pub fn BNGetLowLevelILPossibleFlagValuesAtInstruction(
19024 func: *mut BNLowLevelILFunction,
19025 flag: u32,
19026 instr: usize,
19027 options: *mut BNDataFlowQueryOption,
19028 optionCount: usize,
19029 ) -> BNPossibleValueSet;
19030}
19031unsafe extern "C" {
19032 pub fn BNGetLowLevelILPossibleFlagValuesAfterInstruction(
19033 func: *mut BNLowLevelILFunction,
19034 flag: u32,
19035 instr: usize,
19036 options: *mut BNDataFlowQueryOption,
19037 optionCount: usize,
19038 ) -> BNPossibleValueSet;
19039}
19040unsafe extern "C" {
19041 pub fn BNGetLowLevelILStackContentsAtInstruction(
19042 func: *mut BNLowLevelILFunction,
19043 offset: i64,
19044 len: usize,
19045 instr: usize,
19046 ) -> BNRegisterValue;
19047}
19048unsafe extern "C" {
19049 pub fn BNGetLowLevelILStackContentsAfterInstruction(
19050 func: *mut BNLowLevelILFunction,
19051 offset: i64,
19052 len: usize,
19053 instr: usize,
19054 ) -> BNRegisterValue;
19055}
19056unsafe extern "C" {
19057 pub fn BNGetLowLevelILPossibleStackContentsAtInstruction(
19058 func: *mut BNLowLevelILFunction,
19059 offset: i64,
19060 len: usize,
19061 instr: usize,
19062 options: *mut BNDataFlowQueryOption,
19063 optionCount: usize,
19064 ) -> BNPossibleValueSet;
19065}
19066unsafe extern "C" {
19067 pub fn BNGetLowLevelILPossibleStackContentsAfterInstruction(
19068 func: *mut BNLowLevelILFunction,
19069 offset: i64,
19070 len: usize,
19071 instr: usize,
19072 options: *mut BNDataFlowQueryOption,
19073 optionCount: usize,
19074 ) -> BNPossibleValueSet;
19075}
19076unsafe extern "C" {
19077 pub fn BNGetLowLevelRegisters(func: *mut BNLowLevelILFunction, count: *mut usize) -> *mut u32;
19078}
19079unsafe extern "C" {
19080 pub fn BNGetLowLevelRegisterStacks(
19081 func: *mut BNLowLevelILFunction,
19082 count: *mut usize,
19083 ) -> *mut u32;
19084}
19085unsafe extern "C" {
19086 pub fn BNGetLowLevelFlags(func: *mut BNLowLevelILFunction, count: *mut usize) -> *mut u32;
19087}
19088unsafe extern "C" {
19089 pub fn BNGetLowLevelSSARegistersWithoutVersions(
19090 func: *mut BNLowLevelILFunction,
19091 count: *mut usize,
19092 ) -> *mut u32;
19093}
19094unsafe extern "C" {
19095 pub fn BNGetLowLevelSSARegisterStacksWithoutVersions(
19096 func: *mut BNLowLevelILFunction,
19097 count: *mut usize,
19098 ) -> *mut u32;
19099}
19100unsafe extern "C" {
19101 pub fn BNGetLowLevelSSAFlagsWithoutVersions(
19102 func: *mut BNLowLevelILFunction,
19103 count: *mut usize,
19104 ) -> *mut u32;
19105}
19106unsafe extern "C" {
19107 pub fn BNGetLowLevelRegisterSSAVersions(
19108 func: *mut BNLowLevelILFunction,
19109 var: u32,
19110 count: *mut usize,
19111 ) -> *mut usize;
19112}
19113unsafe extern "C" {
19114 pub fn BNGetLowLevelRegisterStackSSAVersions(
19115 func: *mut BNLowLevelILFunction,
19116 var: u32,
19117 count: *mut usize,
19118 ) -> *mut usize;
19119}
19120unsafe extern "C" {
19121 pub fn BNGetLowLevelFlagSSAVersions(
19122 func: *mut BNLowLevelILFunction,
19123 var: u32,
19124 count: *mut usize,
19125 ) -> *mut usize;
19126}
19127unsafe extern "C" {
19128 pub fn BNGetLowLevelMemoryVersions(
19129 func: *mut BNLowLevelILFunction,
19130 count: *mut usize,
19131 ) -> *mut usize;
19132}
19133unsafe extern "C" {
19134 pub fn BNFreeLLILVariablesList(vars: *mut u32);
19135}
19136unsafe extern "C" {
19137 pub fn BNFreeLLILVariableVersionList(versions: *mut usize);
19138}
19139unsafe extern "C" {
19140 pub fn BNGetMediumLevelILForLowLevelIL(
19141 func: *mut BNLowLevelILFunction,
19142 ) -> *mut BNMediumLevelILFunction;
19143}
19144unsafe extern "C" {
19145 pub fn BNGetMappedMediumLevelIL(
19146 func: *mut BNLowLevelILFunction,
19147 ) -> *mut BNMediumLevelILFunction;
19148}
19149unsafe extern "C" {
19150 pub fn BNGetMediumLevelILInstructionIndex(
19151 func: *mut BNLowLevelILFunction,
19152 instr: usize,
19153 ) -> usize;
19154}
19155unsafe extern "C" {
19156 pub fn BNGetMediumLevelILExprIndex(func: *mut BNLowLevelILFunction, expr: usize) -> usize;
19157}
19158unsafe extern "C" {
19159 pub fn BNGetMediumLevelILExprIndexes(
19160 func: *mut BNLowLevelILFunction,
19161 expr: usize,
19162 count: *mut usize,
19163 ) -> *mut usize;
19164}
19165unsafe extern "C" {
19166 pub fn BNGetMappedMediumLevelILInstructionIndex(
19167 func: *mut BNLowLevelILFunction,
19168 instr: usize,
19169 ) -> usize;
19170}
19171unsafe extern "C" {
19172 pub fn BNGetMappedMediumLevelILExprIndex(func: *mut BNLowLevelILFunction, expr: usize)
19173 -> usize;
19174}
19175unsafe extern "C" {
19176 #[doc = " Medium-level IL"]
19177 pub fn BNCreateMediumLevelILFunction(
19178 arch: *mut BNArchitecture,
19179 func: *mut BNFunction,
19180 lowLevelIL: *mut BNLowLevelILFunction,
19181 ) -> *mut BNMediumLevelILFunction;
19182}
19183unsafe extern "C" {
19184 pub fn BNNewMediumLevelILFunctionReference(
19185 func: *mut BNMediumLevelILFunction,
19186 ) -> *mut BNMediumLevelILFunction;
19187}
19188unsafe extern "C" {
19189 pub fn BNFreeMediumLevelILFunction(func: *mut BNMediumLevelILFunction);
19190}
19191unsafe extern "C" {
19192 pub fn BNGetMediumLevelILOwnerFunction(func: *mut BNMediumLevelILFunction) -> *mut BNFunction;
19193}
19194unsafe extern "C" {
19195 pub fn BNMediumLevelILGetCurrentAddress(func: *mut BNMediumLevelILFunction) -> u64;
19196}
19197unsafe extern "C" {
19198 pub fn BNMediumLevelILSetCurrentAddress(
19199 func: *mut BNMediumLevelILFunction,
19200 arch: *mut BNArchitecture,
19201 addr: u64,
19202 );
19203}
19204unsafe extern "C" {
19205 pub fn BNMediumLevelILGetInstructionStart(
19206 func: *mut BNMediumLevelILFunction,
19207 arch: *mut BNArchitecture,
19208 addr: u64,
19209 ) -> usize;
19210}
19211unsafe extern "C" {
19212 pub fn BNMediumLevelILAddExpr(
19213 func: *mut BNMediumLevelILFunction,
19214 operation: BNMediumLevelILOperation,
19215 size: usize,
19216 a: u64,
19217 b: u64,
19218 c: u64,
19219 d: u64,
19220 e: u64,
19221 ) -> usize;
19222}
19223unsafe extern "C" {
19224 pub fn BNMediumLevelILAddExprWithLocation(
19225 func: *mut BNMediumLevelILFunction,
19226 operation: BNMediumLevelILOperation,
19227 addr: u64,
19228 sourceOperand: u32,
19229 size: usize,
19230 a: u64,
19231 b: u64,
19232 c: u64,
19233 d: u64,
19234 e: u64,
19235 ) -> usize;
19236}
19237unsafe extern "C" {
19238 pub fn BNMediumLevelILAddInstruction(func: *mut BNMediumLevelILFunction, expr: usize) -> usize;
19239}
19240unsafe extern "C" {
19241 pub fn BNMediumLevelILGoto(
19242 func: *mut BNMediumLevelILFunction,
19243 label: *mut BNMediumLevelILLabel,
19244 ) -> usize;
19245}
19246unsafe extern "C" {
19247 pub fn BNMediumLevelILGotoWithLocation(
19248 func: *mut BNMediumLevelILFunction,
19249 label: *mut BNMediumLevelILLabel,
19250 addr: u64,
19251 sourceOperand: u32,
19252 ) -> usize;
19253}
19254unsafe extern "C" {
19255 pub fn BNMediumLevelILIf(
19256 func: *mut BNMediumLevelILFunction,
19257 op: u64,
19258 t: *mut BNMediumLevelILLabel,
19259 f: *mut BNMediumLevelILLabel,
19260 ) -> usize;
19261}
19262unsafe extern "C" {
19263 pub fn BNMediumLevelILIfWithLocation(
19264 func: *mut BNMediumLevelILFunction,
19265 op: u64,
19266 t: *mut BNMediumLevelILLabel,
19267 f: *mut BNMediumLevelILLabel,
19268 addr: u64,
19269 sourceOperand: u32,
19270 ) -> usize;
19271}
19272unsafe extern "C" {
19273 pub fn BNMediumLevelILInitLabel(label: *mut BNMediumLevelILLabel);
19274}
19275unsafe extern "C" {
19276 pub fn BNMediumLevelILMarkLabel(
19277 func: *mut BNMediumLevelILFunction,
19278 label: *mut BNMediumLevelILLabel,
19279 );
19280}
19281unsafe extern "C" {
19282 pub fn BNFinalizeMediumLevelILFunction(func: *mut BNMediumLevelILFunction);
19283}
19284unsafe extern "C" {
19285 pub fn BNGenerateMediumLevelILSSAForm(
19286 func: *mut BNMediumLevelILFunction,
19287 analyzeConditionals: bool,
19288 handleAliases: bool,
19289 knownNotAliases: *mut BNVariable,
19290 knownNotAliasCount: usize,
19291 knownAliases: *mut BNVariable,
19292 knownAliasCount: usize,
19293 );
19294}
19295unsafe extern "C" {
19296 pub fn BNPrepareToCopyMediumLevelILFunction(
19297 func: *mut BNMediumLevelILFunction,
19298 src: *mut BNMediumLevelILFunction,
19299 );
19300}
19301unsafe extern "C" {
19302 pub fn BNPrepareToCopyMediumLevelILBasicBlock(
19303 func: *mut BNMediumLevelILFunction,
19304 block: *mut BNBasicBlock,
19305 );
19306}
19307unsafe extern "C" {
19308 pub fn BNGetLabelForMediumLevelILSourceInstruction(
19309 func: *mut BNMediumLevelILFunction,
19310 instr: usize,
19311 ) -> *mut BNMediumLevelILLabel;
19312}
19313unsafe extern "C" {
19314 pub fn BNMediumLevelILAddLabelMap(
19315 func: *mut BNMediumLevelILFunction,
19316 values: *mut u64,
19317 labels: *mut *mut BNMediumLevelILLabel,
19318 count: usize,
19319 ) -> usize;
19320}
19321unsafe extern "C" {
19322 pub fn BNMediumLevelILAddOperandList(
19323 func: *mut BNMediumLevelILFunction,
19324 operands: *mut u64,
19325 count: usize,
19326 ) -> usize;
19327}
19328unsafe extern "C" {
19329 pub fn BNMediumLevelILGetOperandList(
19330 func: *mut BNMediumLevelILFunction,
19331 expr: usize,
19332 operand: usize,
19333 count: *mut usize,
19334 ) -> *mut u64;
19335}
19336unsafe extern "C" {
19337 pub fn BNMediumLevelILFreeOperandList(operands: *mut u64);
19338}
19339unsafe extern "C" {
19340 pub fn BNCacheMediumLevelILPossibleValueSet(
19341 func: *mut BNMediumLevelILFunction,
19342 pvs: *mut BNPossibleValueSet,
19343 ) -> usize;
19344}
19345unsafe extern "C" {
19346 pub fn BNGetCachedMediumLevelILPossibleValueSet(
19347 func: *mut BNMediumLevelILFunction,
19348 idx: usize,
19349 ) -> BNPossibleValueSet;
19350}
19351unsafe extern "C" {
19352 pub fn BNGetMediumLevelILByIndex(
19353 func: *mut BNMediumLevelILFunction,
19354 i: usize,
19355 ) -> BNMediumLevelILInstruction;
19356}
19357unsafe extern "C" {
19358 pub fn BNGetMediumLevelILIndexForInstruction(
19359 func: *mut BNMediumLevelILFunction,
19360 i: usize,
19361 ) -> usize;
19362}
19363unsafe extern "C" {
19364 pub fn BNGetMediumLevelILInstructionForExpr(
19365 func: *mut BNMediumLevelILFunction,
19366 expr: usize,
19367 ) -> usize;
19368}
19369unsafe extern "C" {
19370 pub fn BNGetMediumLevelILInstructionCount(func: *mut BNMediumLevelILFunction) -> usize;
19371}
19372unsafe extern "C" {
19373 pub fn BNGetMediumLevelILExprCount(func: *mut BNMediumLevelILFunction) -> usize;
19374}
19375unsafe extern "C" {
19376 pub fn BNUpdateMediumLevelILOperand(
19377 func: *mut BNMediumLevelILFunction,
19378 instr: usize,
19379 operandIndex: usize,
19380 value: u64,
19381 );
19382}
19383unsafe extern "C" {
19384 pub fn BNMarkMediumLevelILInstructionForRemoval(
19385 func: *mut BNMediumLevelILFunction,
19386 instr: usize,
19387 );
19388}
19389unsafe extern "C" {
19390 pub fn BNReplaceMediumLevelILInstruction(
19391 func: *mut BNMediumLevelILFunction,
19392 instr: usize,
19393 expr: usize,
19394 );
19395}
19396unsafe extern "C" {
19397 pub fn BNReplaceMediumLevelILExpr(
19398 func: *mut BNMediumLevelILFunction,
19399 expr: usize,
19400 newExpr: usize,
19401 );
19402}
19403unsafe extern "C" {
19404 pub fn BNSetMediumLevelILExprAttributes(
19405 func: *mut BNMediumLevelILFunction,
19406 expr: usize,
19407 attributes: u32,
19408 );
19409}
19410unsafe extern "C" {
19411 pub fn BNGetMediumLevelILExprText(
19412 func: *mut BNMediumLevelILFunction,
19413 arch: *mut BNArchitecture,
19414 i: usize,
19415 tokens: *mut *mut BNInstructionTextToken,
19416 count: *mut usize,
19417 settings: *mut BNDisassemblySettings,
19418 ) -> bool;
19419}
19420unsafe extern "C" {
19421 pub fn BNGetMediumLevelILInstructionText(
19422 il: *mut BNMediumLevelILFunction,
19423 func: *mut BNFunction,
19424 arch: *mut BNArchitecture,
19425 i: usize,
19426 tokens: *mut *mut BNInstructionTextToken,
19427 count: *mut usize,
19428 settings: *mut BNDisassemblySettings,
19429 ) -> bool;
19430}
19431unsafe extern "C" {
19432 pub fn BNGetMediumLevelILBasicBlockList(
19433 func: *mut BNMediumLevelILFunction,
19434 count: *mut usize,
19435 ) -> *mut *mut BNBasicBlock;
19436}
19437unsafe extern "C" {
19438 pub fn BNGetMediumLevelILBasicBlockForInstruction(
19439 func: *mut BNMediumLevelILFunction,
19440 i: usize,
19441 ) -> *mut BNBasicBlock;
19442}
19443unsafe extern "C" {
19444 pub fn BNGetMediumLevelILSSAForm(
19445 func: *mut BNMediumLevelILFunction,
19446 ) -> *mut BNMediumLevelILFunction;
19447}
19448unsafe extern "C" {
19449 pub fn BNGetMediumLevelILNonSSAForm(
19450 func: *mut BNMediumLevelILFunction,
19451 ) -> *mut BNMediumLevelILFunction;
19452}
19453unsafe extern "C" {
19454 pub fn BNGetMediumLevelILSSAInstructionIndex(
19455 func: *mut BNMediumLevelILFunction,
19456 instr: usize,
19457 ) -> usize;
19458}
19459unsafe extern "C" {
19460 pub fn BNGetMediumLevelILNonSSAInstructionIndex(
19461 func: *mut BNMediumLevelILFunction,
19462 instr: usize,
19463 ) -> usize;
19464}
19465unsafe extern "C" {
19466 pub fn BNGetMediumLevelILSSAExprIndex(func: *mut BNMediumLevelILFunction, expr: usize)
19467 -> usize;
19468}
19469unsafe extern "C" {
19470 pub fn BNGetMediumLevelILNonSSAExprIndex(
19471 func: *mut BNMediumLevelILFunction,
19472 expr: usize,
19473 ) -> usize;
19474}
19475unsafe extern "C" {
19476 pub fn BNGetMediumLevelILSSAVarDefinition(
19477 func: *mut BNMediumLevelILFunction,
19478 var: *const BNVariable,
19479 version: usize,
19480 ) -> usize;
19481}
19482unsafe extern "C" {
19483 pub fn BNGetMediumLevelILSSAMemoryDefinition(
19484 func: *mut BNMediumLevelILFunction,
19485 version: usize,
19486 ) -> usize;
19487}
19488unsafe extern "C" {
19489 pub fn BNGetMediumLevelILSSAVarUses(
19490 func: *mut BNMediumLevelILFunction,
19491 var: *const BNVariable,
19492 version: usize,
19493 count: *mut usize,
19494 ) -> *mut usize;
19495}
19496unsafe extern "C" {
19497 pub fn BNGetMediumLevelILSSAMemoryUses(
19498 func: *mut BNMediumLevelILFunction,
19499 version: usize,
19500 count: *mut usize,
19501 ) -> *mut usize;
19502}
19503unsafe extern "C" {
19504 pub fn BNIsMediumLevelILSSAVarLive(
19505 func: *mut BNMediumLevelILFunction,
19506 var: *const BNVariable,
19507 version: usize,
19508 ) -> bool;
19509}
19510unsafe extern "C" {
19511 pub fn BNIsMediumLevelILSSAVarLiveAt(
19512 func: *mut BNMediumLevelILFunction,
19513 var: *const BNVariable,
19514 version: usize,
19515 instr: usize,
19516 ) -> bool;
19517}
19518unsafe extern "C" {
19519 pub fn BNIsMediumLevelILVarLiveAt(
19520 func: *mut BNMediumLevelILFunction,
19521 var: *const BNVariable,
19522 instr: usize,
19523 ) -> bool;
19524}
19525unsafe extern "C" {
19526 pub fn BNGetMediumLevelILVariables(
19527 func: *mut BNMediumLevelILFunction,
19528 count: *mut usize,
19529 ) -> *mut BNVariable;
19530}
19531unsafe extern "C" {
19532 pub fn BNGetMediumLevelILAliasedVariables(
19533 func: *mut BNMediumLevelILFunction,
19534 count: *mut usize,
19535 ) -> *mut BNVariable;
19536}
19537unsafe extern "C" {
19538 pub fn BNGetMediumLevelILVariableSSAVersions(
19539 func: *mut BNMediumLevelILFunction,
19540 var: *const BNVariable,
19541 count: *mut usize,
19542 ) -> *mut usize;
19543}
19544unsafe extern "C" {
19545 pub fn BNGetMediumLevelILVariableDefinitions(
19546 func: *mut BNMediumLevelILFunction,
19547 var: *const BNVariable,
19548 count: *mut usize,
19549 ) -> *mut usize;
19550}
19551unsafe extern "C" {
19552 pub fn BNGetMediumLevelILVariableUses(
19553 func: *mut BNMediumLevelILFunction,
19554 var: *const BNVariable,
19555 count: *mut usize,
19556 ) -> *mut usize;
19557}
19558unsafe extern "C" {
19559 pub fn BNGetMediumLevelILLiveInstructionsForVariable(
19560 func: *mut BNMediumLevelILFunction,
19561 var: *const BNVariable,
19562 includeLastUse: bool,
19563 count: *mut usize,
19564 ) -> *mut usize;
19565}
19566unsafe extern "C" {
19567 pub fn BNGetDefaultIndexForMediumLevelILVariableDefinition(
19568 func: *mut BNMediumLevelILFunction,
19569 var: *const BNVariable,
19570 instrIndex: usize,
19571 ) -> u32;
19572}
19573unsafe extern "C" {
19574 pub fn BNGetMediumLevelILSSAVarValue(
19575 func: *mut BNMediumLevelILFunction,
19576 var: *const BNVariable,
19577 version: usize,
19578 ) -> BNRegisterValue;
19579}
19580unsafe extern "C" {
19581 pub fn BNGetMediumLevelILExprValue(
19582 func: *mut BNMediumLevelILFunction,
19583 expr: usize,
19584 ) -> BNRegisterValue;
19585}
19586unsafe extern "C" {
19587 pub fn BNGetMediumLevelILPossibleSSAVarValues(
19588 func: *mut BNMediumLevelILFunction,
19589 var: *const BNVariable,
19590 version: usize,
19591 instr: usize,
19592 options: *mut BNDataFlowQueryOption,
19593 optionCount: usize,
19594 ) -> BNPossibleValueSet;
19595}
19596unsafe extern "C" {
19597 pub fn BNGetMediumLevelILPossibleExprValues(
19598 func: *mut BNMediumLevelILFunction,
19599 expr: usize,
19600 options: *mut BNDataFlowQueryOption,
19601 optionCount: usize,
19602 ) -> BNPossibleValueSet;
19603}
19604unsafe extern "C" {
19605 pub fn BNGetMediumLevelILSSAVarVersionAtILInstruction(
19606 func: *mut BNMediumLevelILFunction,
19607 var: *const BNVariable,
19608 instr: usize,
19609 ) -> usize;
19610}
19611unsafe extern "C" {
19612 pub fn BNGetMediumLevelILSSAVarVersionAfterILInstruction(
19613 func: *mut BNMediumLevelILFunction,
19614 var: *const BNVariable,
19615 instr: usize,
19616 ) -> usize;
19617}
19618unsafe extern "C" {
19619 pub fn BNGetMediumLevelILSSAMemoryVersionAtILInstruction(
19620 func: *mut BNMediumLevelILFunction,
19621 instr: usize,
19622 ) -> usize;
19623}
19624unsafe extern "C" {
19625 pub fn BNGetMediumLevelILSSAMemoryVersionAfterILInstruction(
19626 func: *mut BNMediumLevelILFunction,
19627 instr: usize,
19628 ) -> usize;
19629}
19630unsafe extern "C" {
19631 pub fn BNGetMediumLevelILVariableForRegisterAtInstruction(
19632 func: *mut BNMediumLevelILFunction,
19633 reg: u32,
19634 instr: usize,
19635 ) -> BNVariable;
19636}
19637unsafe extern "C" {
19638 pub fn BNGetMediumLevelILVariableForRegisterAfterInstruction(
19639 func: *mut BNMediumLevelILFunction,
19640 reg: u32,
19641 instr: usize,
19642 ) -> BNVariable;
19643}
19644unsafe extern "C" {
19645 pub fn BNGetMediumLevelILVariableForFlagAtInstruction(
19646 func: *mut BNMediumLevelILFunction,
19647 flag: u32,
19648 instr: usize,
19649 ) -> BNVariable;
19650}
19651unsafe extern "C" {
19652 pub fn BNGetMediumLevelILVariableForFlagAfterInstruction(
19653 func: *mut BNMediumLevelILFunction,
19654 flag: u32,
19655 instr: usize,
19656 ) -> BNVariable;
19657}
19658unsafe extern "C" {
19659 pub fn BNGetMediumLevelILVariableForStackLocationAtInstruction(
19660 func: *mut BNMediumLevelILFunction,
19661 offset: i64,
19662 instr: usize,
19663 ) -> BNVariable;
19664}
19665unsafe extern "C" {
19666 pub fn BNGetMediumLevelILVariableForStackLocationAfterInstruction(
19667 func: *mut BNMediumLevelILFunction,
19668 offset: i64,
19669 instr: usize,
19670 ) -> BNVariable;
19671}
19672unsafe extern "C" {
19673 pub fn BNGetMediumLevelILRegisterValueAtInstruction(
19674 func: *mut BNMediumLevelILFunction,
19675 reg: u32,
19676 instr: usize,
19677 ) -> BNRegisterValue;
19678}
19679unsafe extern "C" {
19680 pub fn BNGetMediumLevelILRegisterValueAfterInstruction(
19681 func: *mut BNMediumLevelILFunction,
19682 reg: u32,
19683 instr: usize,
19684 ) -> BNRegisterValue;
19685}
19686unsafe extern "C" {
19687 pub fn BNGetMediumLevelILPossibleRegisterValuesAtInstruction(
19688 func: *mut BNMediumLevelILFunction,
19689 reg: u32,
19690 instr: usize,
19691 options: *mut BNDataFlowQueryOption,
19692 optionCount: usize,
19693 ) -> BNPossibleValueSet;
19694}
19695unsafe extern "C" {
19696 pub fn BNGetMediumLevelILPossibleRegisterValuesAfterInstruction(
19697 func: *mut BNMediumLevelILFunction,
19698 reg: u32,
19699 instr: usize,
19700 options: *mut BNDataFlowQueryOption,
19701 optionCount: usize,
19702 ) -> BNPossibleValueSet;
19703}
19704unsafe extern "C" {
19705 pub fn BNGetMediumLevelILFlagValueAtInstruction(
19706 func: *mut BNMediumLevelILFunction,
19707 flag: u32,
19708 instr: usize,
19709 ) -> BNRegisterValue;
19710}
19711unsafe extern "C" {
19712 pub fn BNGetMediumLevelILFlagValueAfterInstruction(
19713 func: *mut BNMediumLevelILFunction,
19714 flag: u32,
19715 instr: usize,
19716 ) -> BNRegisterValue;
19717}
19718unsafe extern "C" {
19719 pub fn BNGetMediumLevelILPossibleFlagValuesAtInstruction(
19720 func: *mut BNMediumLevelILFunction,
19721 flag: u32,
19722 instr: usize,
19723 options: *mut BNDataFlowQueryOption,
19724 optionCount: usize,
19725 ) -> BNPossibleValueSet;
19726}
19727unsafe extern "C" {
19728 pub fn BNGetMediumLevelILPossibleFlagValuesAfterInstruction(
19729 func: *mut BNMediumLevelILFunction,
19730 flag: u32,
19731 instr: usize,
19732 options: *mut BNDataFlowQueryOption,
19733 optionCount: usize,
19734 ) -> BNPossibleValueSet;
19735}
19736unsafe extern "C" {
19737 pub fn BNGetMediumLevelILStackContentsAtInstruction(
19738 func: *mut BNMediumLevelILFunction,
19739 offset: i64,
19740 len: usize,
19741 instr: usize,
19742 ) -> BNRegisterValue;
19743}
19744unsafe extern "C" {
19745 pub fn BNGetMediumLevelILStackContentsAfterInstruction(
19746 func: *mut BNMediumLevelILFunction,
19747 offset: i64,
19748 len: usize,
19749 instr: usize,
19750 ) -> BNRegisterValue;
19751}
19752unsafe extern "C" {
19753 pub fn BNGetMediumLevelILPossibleStackContentsAtInstruction(
19754 func: *mut BNMediumLevelILFunction,
19755 offset: i64,
19756 len: usize,
19757 instr: usize,
19758 options: *mut BNDataFlowQueryOption,
19759 optionCount: usize,
19760 ) -> BNPossibleValueSet;
19761}
19762unsafe extern "C" {
19763 pub fn BNGetMediumLevelILPossibleStackContentsAfterInstruction(
19764 func: *mut BNMediumLevelILFunction,
19765 offset: i64,
19766 len: usize,
19767 instr: usize,
19768 options: *mut BNDataFlowQueryOption,
19769 optionCount: usize,
19770 ) -> BNPossibleValueSet;
19771}
19772unsafe extern "C" {
19773 pub fn BNGetMediumLevelILBranchDependence(
19774 func: *mut BNMediumLevelILFunction,
19775 curInstr: usize,
19776 branchInstr: usize,
19777 ) -> BNILBranchDependence;
19778}
19779unsafe extern "C" {
19780 pub fn BNGetAllMediumLevelILBranchDependence(
19781 func: *mut BNMediumLevelILFunction,
19782 instr: usize,
19783 count: *mut usize,
19784 ) -> *mut BNILBranchInstructionAndDependence;
19785}
19786unsafe extern "C" {
19787 pub fn BNFreeILBranchDependenceList(branches: *mut BNILBranchInstructionAndDependence);
19788}
19789unsafe extern "C" {
19790 pub fn BNGetLowLevelILForMediumLevelIL(
19791 func: *mut BNMediumLevelILFunction,
19792 ) -> *mut BNLowLevelILFunction;
19793}
19794unsafe extern "C" {
19795 pub fn BNGetLowLevelILInstructionIndex(
19796 func: *mut BNMediumLevelILFunction,
19797 instr: usize,
19798 ) -> usize;
19799}
19800unsafe extern "C" {
19801 pub fn BNGetLowLevelILExprIndex(func: *mut BNMediumLevelILFunction, expr: usize) -> usize;
19802}
19803unsafe extern "C" {
19804 pub fn BNGetLowLevelILExprIndexes(
19805 func: *mut BNMediumLevelILFunction,
19806 expr: usize,
19807 count: *mut usize,
19808 ) -> *mut usize;
19809}
19810unsafe extern "C" {
19811 pub fn BNGetHighLevelILForMediumLevelIL(
19812 func: *mut BNMediumLevelILFunction,
19813 ) -> *mut BNHighLevelILFunction;
19814}
19815unsafe extern "C" {
19816 pub fn BNGetHighLevelILInstructionIndex(
19817 func: *mut BNMediumLevelILFunction,
19818 instr: usize,
19819 ) -> usize;
19820}
19821unsafe extern "C" {
19822 pub fn BNGetHighLevelILExprIndex(func: *mut BNMediumLevelILFunction, expr: usize) -> usize;
19823}
19824unsafe extern "C" {
19825 pub fn BNGetHighLevelILExprIndexes(
19826 func: *mut BNMediumLevelILFunction,
19827 expr: usize,
19828 count: *mut usize,
19829 ) -> *mut usize;
19830}
19831unsafe extern "C" {
19832 pub fn BNGetMediumLevelILExprType(
19833 func: *mut BNMediumLevelILFunction,
19834 expr: usize,
19835 ) -> BNTypeWithConfidence;
19836}
19837unsafe extern "C" {
19838 pub fn BNSetMediumLevelILExprType(
19839 func: *mut BNMediumLevelILFunction,
19840 expr: usize,
19841 type_: *mut BNTypeWithConfidence,
19842 );
19843}
19844unsafe extern "C" {
19845 #[doc = " High-level IL"]
19846 pub fn BNCreateHighLevelILFunction(
19847 arch: *mut BNArchitecture,
19848 func: *mut BNFunction,
19849 ) -> *mut BNHighLevelILFunction;
19850}
19851unsafe extern "C" {
19852 pub fn BNNewHighLevelILFunctionReference(
19853 func: *mut BNHighLevelILFunction,
19854 ) -> *mut BNHighLevelILFunction;
19855}
19856unsafe extern "C" {
19857 pub fn BNFreeHighLevelILFunction(func: *mut BNHighLevelILFunction);
19858}
19859unsafe extern "C" {
19860 pub fn BNGetHighLevelILOwnerFunction(func: *mut BNHighLevelILFunction) -> *mut BNFunction;
19861}
19862unsafe extern "C" {
19863 pub fn BNHighLevelILGetCurrentAddress(func: *mut BNHighLevelILFunction) -> u64;
19864}
19865unsafe extern "C" {
19866 pub fn BNHighLevelILSetCurrentAddress(
19867 func: *mut BNHighLevelILFunction,
19868 arch: *mut BNArchitecture,
19869 addr: u64,
19870 );
19871}
19872unsafe extern "C" {
19873 pub fn BNHighLevelILAddExpr(
19874 func: *mut BNHighLevelILFunction,
19875 operation: BNHighLevelILOperation,
19876 size: usize,
19877 a: u64,
19878 b: u64,
19879 c: u64,
19880 d: u64,
19881 e: u64,
19882 ) -> usize;
19883}
19884unsafe extern "C" {
19885 pub fn BNHighLevelILAddExprWithLocation(
19886 func: *mut BNHighLevelILFunction,
19887 operation: BNHighLevelILOperation,
19888 addr: u64,
19889 sourceOperand: u32,
19890 size: usize,
19891 a: u64,
19892 b: u64,
19893 c: u64,
19894 d: u64,
19895 e: u64,
19896 ) -> usize;
19897}
19898unsafe extern "C" {
19899 pub fn BNGetHighLevelILRootExpr(func: *mut BNHighLevelILFunction) -> usize;
19900}
19901unsafe extern "C" {
19902 pub fn BNSetHighLevelILRootExpr(func: *mut BNHighLevelILFunction, expr: usize);
19903}
19904unsafe extern "C" {
19905 pub fn BNFinalizeHighLevelILFunction(func: *mut BNHighLevelILFunction);
19906}
19907unsafe extern "C" {
19908 pub fn BNGenerateHighLevelILSSAForm(
19909 func: *mut BNHighLevelILFunction,
19910 aliases: *mut BNVariable,
19911 aliasCount: usize,
19912 );
19913}
19914unsafe extern "C" {
19915 pub fn BNHighLevelILAddOperandList(
19916 func: *mut BNHighLevelILFunction,
19917 operands: *mut u64,
19918 count: usize,
19919 ) -> usize;
19920}
19921unsafe extern "C" {
19922 pub fn BNHighLevelILGetOperandList(
19923 func: *mut BNHighLevelILFunction,
19924 expr: usize,
19925 operand: usize,
19926 count: *mut usize,
19927 ) -> *mut u64;
19928}
19929unsafe extern "C" {
19930 pub fn BNHighLevelILFreeOperandList(operands: *mut u64);
19931}
19932unsafe extern "C" {
19933 pub fn BNCacheHighLevelILPossibleValueSet(
19934 func: *mut BNHighLevelILFunction,
19935 pvs: *mut BNPossibleValueSet,
19936 ) -> usize;
19937}
19938unsafe extern "C" {
19939 pub fn BNGetCachedHighLevelILPossibleValueSet(
19940 func: *mut BNHighLevelILFunction,
19941 idx: usize,
19942 ) -> BNPossibleValueSet;
19943}
19944unsafe extern "C" {
19945 pub fn BNGetHighLevelILByIndex(
19946 func: *mut BNHighLevelILFunction,
19947 i: usize,
19948 asFullAst: bool,
19949 ) -> BNHighLevelILInstruction;
19950}
19951unsafe extern "C" {
19952 pub fn BNGetHighLevelILIndexForInstruction(func: *mut BNHighLevelILFunction, i: usize)
19953 -> usize;
19954}
19955unsafe extern "C" {
19956 pub fn BNGetHighLevelILInstructionForExpr(
19957 func: *mut BNHighLevelILFunction,
19958 expr: usize,
19959 ) -> usize;
19960}
19961unsafe extern "C" {
19962 pub fn BNGetHighLevelILInstructionCount(func: *mut BNHighLevelILFunction) -> usize;
19963}
19964unsafe extern "C" {
19965 pub fn BNGetHighLevelILExprCount(func: *mut BNHighLevelILFunction) -> usize;
19966}
19967unsafe extern "C" {
19968 pub fn BNGetMediumLevelILForHighLevelILFunction(
19969 func: *mut BNHighLevelILFunction,
19970 ) -> *mut BNMediumLevelILFunction;
19971}
19972unsafe extern "C" {
19973 pub fn BNGetMediumLevelILExprIndexFromHighLevelIL(
19974 func: *mut BNHighLevelILFunction,
19975 expr: usize,
19976 ) -> usize;
19977}
19978unsafe extern "C" {
19979 pub fn BNGetMediumLevelILExprIndexesFromHighLevelIL(
19980 func: *mut BNHighLevelILFunction,
19981 expr: usize,
19982 count: *mut usize,
19983 ) -> *mut usize;
19984}
19985unsafe extern "C" {
19986 pub fn BNUpdateHighLevelILOperand(
19987 func: *mut BNHighLevelILFunction,
19988 instr: usize,
19989 operandIndex: usize,
19990 value: u64,
19991 );
19992}
19993unsafe extern "C" {
19994 pub fn BNReplaceHighLevelILExpr(func: *mut BNHighLevelILFunction, expr: usize, newExpr: usize);
19995}
19996unsafe extern "C" {
19997 pub fn BNSetHighLevelILExprAttributes(
19998 func: *mut BNHighLevelILFunction,
19999 expr: usize,
20000 attributes: u32,
20001 );
20002}
20003unsafe extern "C" {
20004 pub fn BNGetHighLevelILExprText(
20005 func: *mut BNHighLevelILFunction,
20006 expr: usize,
20007 asFullAst: bool,
20008 count: *mut usize,
20009 settings: *mut BNDisassemblySettings,
20010 ) -> *mut BNDisassemblyTextLine;
20011}
20012unsafe extern "C" {
20013 pub fn BNGetHighLevelILExprType(
20014 func: *mut BNHighLevelILFunction,
20015 expr: usize,
20016 ) -> BNTypeWithConfidence;
20017}
20018unsafe extern "C" {
20019 pub fn BNSetHighLevelILExprType(
20020 func: *mut BNHighLevelILFunction,
20021 expr: usize,
20022 type_: *mut BNTypeWithConfidence,
20023 );
20024}
20025unsafe extern "C" {
20026 pub fn BNGetHighLevelILBasicBlockList(
20027 func: *mut BNHighLevelILFunction,
20028 count: *mut usize,
20029 ) -> *mut *mut BNBasicBlock;
20030}
20031unsafe extern "C" {
20032 pub fn BNGetHighLevelILBasicBlockForInstruction(
20033 func: *mut BNHighLevelILFunction,
20034 i: usize,
20035 ) -> *mut BNBasicBlock;
20036}
20037unsafe extern "C" {
20038 pub fn BNGetHighLevelILSSAForm(func: *mut BNHighLevelILFunction) -> *mut BNHighLevelILFunction;
20039}
20040unsafe extern "C" {
20041 pub fn BNGetHighLevelILNonSSAForm(
20042 func: *mut BNHighLevelILFunction,
20043 ) -> *mut BNHighLevelILFunction;
20044}
20045unsafe extern "C" {
20046 pub fn BNGetHighLevelILSSAInstructionIndex(
20047 func: *mut BNHighLevelILFunction,
20048 instr: usize,
20049 ) -> usize;
20050}
20051unsafe extern "C" {
20052 pub fn BNGetHighLevelILNonSSAInstructionIndex(
20053 func: *mut BNHighLevelILFunction,
20054 instr: usize,
20055 ) -> usize;
20056}
20057unsafe extern "C" {
20058 pub fn BNGetHighLevelILSSAExprIndex(func: *mut BNHighLevelILFunction, expr: usize) -> usize;
20059}
20060unsafe extern "C" {
20061 pub fn BNGetHighLevelILNonSSAExprIndex(func: *mut BNHighLevelILFunction, expr: usize) -> usize;
20062}
20063unsafe extern "C" {
20064 pub fn BNGetHighLevelILSSAVarDefinition(
20065 func: *mut BNHighLevelILFunction,
20066 var: *const BNVariable,
20067 version: usize,
20068 ) -> usize;
20069}
20070unsafe extern "C" {
20071 pub fn BNGetHighLevelILSSAMemoryDefinition(
20072 func: *mut BNHighLevelILFunction,
20073 version: usize,
20074 ) -> usize;
20075}
20076unsafe extern "C" {
20077 pub fn BNGetHighLevelILSSAVarUses(
20078 func: *mut BNHighLevelILFunction,
20079 var: *const BNVariable,
20080 version: usize,
20081 count: *mut usize,
20082 ) -> *mut usize;
20083}
20084unsafe extern "C" {
20085 pub fn BNGetHighLevelILSSAMemoryUses(
20086 func: *mut BNHighLevelILFunction,
20087 version: usize,
20088 count: *mut usize,
20089 ) -> *mut usize;
20090}
20091unsafe extern "C" {
20092 pub fn BNIsHighLevelILSSAVarLive(
20093 func: *mut BNHighLevelILFunction,
20094 var: *const BNVariable,
20095 version: usize,
20096 ) -> bool;
20097}
20098unsafe extern "C" {
20099 pub fn BNIsHighLevelILSSAVarLiveAt(
20100 func: *mut BNHighLevelILFunction,
20101 var: *const BNVariable,
20102 version: usize,
20103 instr: usize,
20104 ) -> bool;
20105}
20106unsafe extern "C" {
20107 pub fn BNIsHighLevelILVarLiveAt(
20108 func: *mut BNHighLevelILFunction,
20109 var: *const BNVariable,
20110 instr: usize,
20111 ) -> bool;
20112}
20113unsafe extern "C" {
20114 pub fn BNHighLevelILHasSideEffects(func: *mut BNHighLevelILFunction, exprIndex: usize) -> bool;
20115}
20116unsafe extern "C" {
20117 pub fn BNGetHighLevelILExprScopeType(
20118 func: *mut BNHighLevelILFunction,
20119 exprIndex: usize,
20120 ) -> BNScopeType;
20121}
20122unsafe extern "C" {
20123 pub fn BNGetHighLevelILVariables(
20124 func: *mut BNHighLevelILFunction,
20125 count: *mut usize,
20126 ) -> *mut BNVariable;
20127}
20128unsafe extern "C" {
20129 pub fn BNGetHighLevelILAliasedVariables(
20130 func: *mut BNHighLevelILFunction,
20131 count: *mut usize,
20132 ) -> *mut BNVariable;
20133}
20134unsafe extern "C" {
20135 pub fn BNGetHighLevelILVariableSSAVersions(
20136 func: *mut BNHighLevelILFunction,
20137 var: *const BNVariable,
20138 count: *mut usize,
20139 ) -> *mut usize;
20140}
20141unsafe extern "C" {
20142 pub fn BNGetHighLevelILVariableDefinitions(
20143 func: *mut BNHighLevelILFunction,
20144 var: *const BNVariable,
20145 count: *mut usize,
20146 ) -> *mut usize;
20147}
20148unsafe extern "C" {
20149 pub fn BNGetHighLevelILVariableUses(
20150 func: *mut BNHighLevelILFunction,
20151 var: *const BNVariable,
20152 count: *mut usize,
20153 ) -> *mut usize;
20154}
20155unsafe extern "C" {
20156 pub fn BNGetHighLevelILSSAVarVersionAtILInstruction(
20157 func: *mut BNHighLevelILFunction,
20158 var: *const BNVariable,
20159 instr: usize,
20160 ) -> usize;
20161}
20162unsafe extern "C" {
20163 pub fn BNGetHighLevelILSSAMemoryVersionAtILInstruction(
20164 func: *mut BNHighLevelILFunction,
20165 instr: usize,
20166 ) -> usize;
20167}
20168unsafe extern "C" {
20169 pub fn BNGetHighLevelILExprIndexForLabel(func: *mut BNHighLevelILFunction, label: u64)
20170 -> usize;
20171}
20172unsafe extern "C" {
20173 pub fn BNGetHighLevelILUsesForLabel(
20174 func: *mut BNHighLevelILFunction,
20175 label: u64,
20176 count: *mut usize,
20177 ) -> *mut usize;
20178}
20179unsafe extern "C" {
20180 pub fn BNHighLevelILExprLessThan(
20181 leftFunc: *mut BNHighLevelILFunction,
20182 leftExpr: usize,
20183 rightFunc: *mut BNHighLevelILFunction,
20184 rightExpr: usize,
20185 ) -> bool;
20186}
20187unsafe extern "C" {
20188 pub fn BNHighLevelILExprEqual(
20189 leftFunc: *mut BNHighLevelILFunction,
20190 leftExpr: usize,
20191 rightFunc: *mut BNHighLevelILFunction,
20192 rightExpr: usize,
20193 ) -> bool;
20194}
20195unsafe extern "C" {
20196 pub fn BNSetHighLevelILDerivedStringReferenceForExpr(
20197 func: *mut BNHighLevelILFunction,
20198 expr: usize,
20199 str_: *mut BNDerivedString,
20200 );
20201}
20202unsafe extern "C" {
20203 pub fn BNRemoveHighLevelILDerivedStringReferenceForExpr(
20204 func: *mut BNHighLevelILFunction,
20205 expr: usize,
20206 );
20207}
20208unsafe extern "C" {
20209 pub fn BNGetHighLevelILDerivedStringReferenceForExpr(
20210 func: *mut BNHighLevelILFunction,
20211 expr: usize,
20212 out: *mut BNDerivedString,
20213 ) -> bool;
20214}
20215unsafe extern "C" {
20216 #[doc = " Type Libraries"]
20217 pub fn BNNewTypeLibrary(
20218 arch: *mut BNArchitecture,
20219 name: *const ::std::os::raw::c_char,
20220 ) -> *mut BNTypeLibrary;
20221}
20222unsafe extern "C" {
20223 pub fn BNNewTypeLibraryReference(lib: *mut BNTypeLibrary) -> *mut BNTypeLibrary;
20224}
20225unsafe extern "C" {
20226 pub fn BNDuplicateTypeLibrary(lib: *mut BNTypeLibrary) -> *mut BNTypeLibrary;
20227}
20228unsafe extern "C" {
20229 pub fn BNLoadTypeLibraryFromFile(path: *const ::std::os::raw::c_char) -> *mut BNTypeLibrary;
20230}
20231unsafe extern "C" {
20232 pub fn BNTypeLibraryDecompressToFile(
20233 file: *const ::std::os::raw::c_char,
20234 output: *const ::std::os::raw::c_char,
20235 ) -> bool;
20236}
20237unsafe extern "C" {
20238 pub fn BNFreeTypeLibrary(lib: *mut BNTypeLibrary);
20239}
20240unsafe extern "C" {
20241 pub fn BNLookupTypeLibraryByName(
20242 arch: *mut BNArchitecture,
20243 name: *const ::std::os::raw::c_char,
20244 ) -> *mut BNTypeLibrary;
20245}
20246unsafe extern "C" {
20247 pub fn BNLookupTypeLibraryByGuid(
20248 arch: *mut BNArchitecture,
20249 guid: *const ::std::os::raw::c_char,
20250 ) -> *mut BNTypeLibrary;
20251}
20252unsafe extern "C" {
20253 pub fn BNGetArchitectureTypeLibraries(
20254 arch: *mut BNArchitecture,
20255 count: *mut usize,
20256 ) -> *mut *mut BNTypeLibrary;
20257}
20258unsafe extern "C" {
20259 pub fn BNFreeTypeLibraryList(lib: *mut *mut BNTypeLibrary, count: usize);
20260}
20261unsafe extern "C" {
20262 pub fn BNFinalizeTypeLibrary(lib: *mut BNTypeLibrary) -> bool;
20263}
20264unsafe extern "C" {
20265 pub fn BNGetTypeLibraryArchitecture(lib: *mut BNTypeLibrary) -> *mut BNArchitecture;
20266}
20267unsafe extern "C" {
20268 pub fn BNSetTypeLibraryName(lib: *mut BNTypeLibrary, name: *const ::std::os::raw::c_char);
20269}
20270unsafe extern "C" {
20271 pub fn BNGetTypeLibraryName(lib: *mut BNTypeLibrary) -> *mut ::std::os::raw::c_char;
20272}
20273unsafe extern "C" {
20274 pub fn BNAddTypeLibraryAlternateName(
20275 lib: *mut BNTypeLibrary,
20276 name: *const ::std::os::raw::c_char,
20277 );
20278}
20279unsafe extern "C" {
20280 pub fn BNGetTypeLibraryAlternateNames(
20281 lib: *mut BNTypeLibrary,
20282 count: *mut usize,
20283 ) -> *mut *mut ::std::os::raw::c_char;
20284}
20285unsafe extern "C" {
20286 pub fn BNSetTypeLibraryDependencyName(
20287 lib: *mut BNTypeLibrary,
20288 name: *const ::std::os::raw::c_char,
20289 );
20290}
20291unsafe extern "C" {
20292 pub fn BNGetTypeLibraryDependencyName(lib: *mut BNTypeLibrary) -> *mut ::std::os::raw::c_char;
20293}
20294unsafe extern "C" {
20295 pub fn BNSetTypeLibraryGuid(lib: *mut BNTypeLibrary, name: *const ::std::os::raw::c_char);
20296}
20297unsafe extern "C" {
20298 pub fn BNGetTypeLibraryGuid(lib: *mut BNTypeLibrary) -> *mut ::std::os::raw::c_char;
20299}
20300unsafe extern "C" {
20301 pub fn BNClearTypeLibraryPlatforms(lib: *mut BNTypeLibrary);
20302}
20303unsafe extern "C" {
20304 pub fn BNAddTypeLibraryPlatform(lib: *mut BNTypeLibrary, platform: *mut BNPlatform);
20305}
20306unsafe extern "C" {
20307 pub fn BNGetTypeLibraryPlatforms(
20308 lib: *mut BNTypeLibrary,
20309 count: *mut usize,
20310 ) -> *mut *mut ::std::os::raw::c_char;
20311}
20312unsafe extern "C" {
20313 pub fn BNTypeLibraryStoreMetadata(
20314 lib: *mut BNTypeLibrary,
20315 key: *const ::std::os::raw::c_char,
20316 value: *mut BNMetadata,
20317 );
20318}
20319unsafe extern "C" {
20320 pub fn BNTypeLibraryQueryMetadata(
20321 lib: *mut BNTypeLibrary,
20322 key: *const ::std::os::raw::c_char,
20323 ) -> *mut BNMetadata;
20324}
20325unsafe extern "C" {
20326 pub fn BNTypeLibraryGetMetadata(lib: *mut BNTypeLibrary) -> *mut BNMetadata;
20327}
20328unsafe extern "C" {
20329 pub fn BNTypeLibraryRemoveMetadata(lib: *mut BNTypeLibrary, key: *const ::std::os::raw::c_char);
20330}
20331unsafe extern "C" {
20332 pub fn BNGetTypeLibraryTypeContainer(lib: *mut BNTypeLibrary) -> *mut BNTypeContainer;
20333}
20334unsafe extern "C" {
20335 pub fn BNAddTypeLibraryNamedObject(
20336 lib: *mut BNTypeLibrary,
20337 name: *mut BNQualifiedName,
20338 type_: *mut BNType,
20339 );
20340}
20341unsafe extern "C" {
20342 pub fn BNAddTypeLibraryNamedType(
20343 lib: *mut BNTypeLibrary,
20344 name: *mut BNQualifiedName,
20345 type_: *mut BNType,
20346 );
20347}
20348unsafe extern "C" {
20349 pub fn BNAddTypeLibraryNamedTypeSource(
20350 lib: *mut BNTypeLibrary,
20351 name: *mut BNQualifiedName,
20352 source: *const ::std::os::raw::c_char,
20353 );
20354}
20355unsafe extern "C" {
20356 pub fn BNGetTypeLibraryNamedObject(
20357 lib: *mut BNTypeLibrary,
20358 name: *mut BNQualifiedName,
20359 ) -> *mut BNType;
20360}
20361unsafe extern "C" {
20362 pub fn BNGetTypeLibraryNamedType(
20363 lib: *mut BNTypeLibrary,
20364 name: *mut BNQualifiedName,
20365 ) -> *mut BNType;
20366}
20367unsafe extern "C" {
20368 pub fn BNGetTypeLibraryNamedObjects(
20369 lib: *mut BNTypeLibrary,
20370 count: *mut usize,
20371 ) -> *mut BNQualifiedNameAndType;
20372}
20373unsafe extern "C" {
20374 pub fn BNGetTypeLibraryNamedTypes(
20375 lib: *mut BNTypeLibrary,
20376 count: *mut usize,
20377 ) -> *mut BNQualifiedNameAndType;
20378}
20379unsafe extern "C" {
20380 pub fn BNWriteTypeLibraryToFile(
20381 lib: *mut BNTypeLibrary,
20382 path: *const ::std::os::raw::c_char,
20383 ) -> bool;
20384}
20385unsafe extern "C" {
20386 pub fn BNAddBinaryViewTypeLibrary(view: *mut BNBinaryView, lib: *mut BNTypeLibrary);
20387}
20388unsafe extern "C" {
20389 pub fn BNGetBinaryViewTypeLibrary(
20390 view: *mut BNBinaryView,
20391 name: *const ::std::os::raw::c_char,
20392 ) -> *mut BNTypeLibrary;
20393}
20394unsafe extern "C" {
20395 pub fn BNGetBinaryViewTypeLibraries(
20396 view: *mut BNBinaryView,
20397 count: *mut usize,
20398 ) -> *mut *mut BNTypeLibrary;
20399}
20400unsafe extern "C" {
20401 pub fn BNBinaryViewImportTypeLibraryType(
20402 view: *mut BNBinaryView,
20403 lib: *mut *mut BNTypeLibrary,
20404 name: *mut BNQualifiedName,
20405 ) -> *mut BNType;
20406}
20407unsafe extern "C" {
20408 pub fn BNBinaryViewImportTypeLibraryObject(
20409 view: *mut BNBinaryView,
20410 lib: *mut *mut BNTypeLibrary,
20411 name: *mut BNQualifiedName,
20412 ) -> *mut BNType;
20413}
20414unsafe extern "C" {
20415 pub fn BNBinaryViewImportTypeLibraryTypeByGuid(
20416 view: *mut BNBinaryView,
20417 guid: *const ::std::os::raw::c_char,
20418 ) -> *mut BNType;
20419}
20420unsafe extern "C" {
20421 pub fn BNBinaryViewGetTypeNameByGuid(
20422 view: *mut BNBinaryView,
20423 guid: *const ::std::os::raw::c_char,
20424 ) -> BNQualifiedName;
20425}
20426unsafe extern "C" {
20427 pub fn BNBinaryViewExportTypeToTypeLibrary(
20428 view: *mut BNBinaryView,
20429 lib: *mut BNTypeLibrary,
20430 name: *mut BNQualifiedName,
20431 type_: *mut BNType,
20432 );
20433}
20434unsafe extern "C" {
20435 pub fn BNBinaryViewExportObjectToTypeLibrary(
20436 view: *mut BNBinaryView,
20437 lib: *mut BNTypeLibrary,
20438 name: *mut BNQualifiedName,
20439 type_: *mut BNType,
20440 );
20441}
20442unsafe extern "C" {
20443 pub fn BNBinaryViewSetManualDependencies(
20444 view: *mut BNBinaryView,
20445 viewTypeNames: *mut BNQualifiedName,
20446 libTypeNames: *mut BNQualifiedName,
20447 libNames: *mut *mut ::std::os::raw::c_char,
20448 count: usize,
20449 );
20450}
20451unsafe extern "C" {
20452 pub fn BNBinaryViewRecordImportedObjectLibrary(
20453 view: *mut BNBinaryView,
20454 tgtPlatform: *mut BNPlatform,
20455 tgtAddr: u64,
20456 lib: *mut BNTypeLibrary,
20457 name: *mut BNQualifiedName,
20458 );
20459}
20460unsafe extern "C" {
20461 pub fn BNBinaryViewLookupImportedObjectLibrary(
20462 view: *mut BNBinaryView,
20463 tgtPlatform: *mut BNPlatform,
20464 tgtAddr: u64,
20465 lib: *mut *mut BNTypeLibrary,
20466 name: *mut BNQualifiedName,
20467 ) -> bool;
20468}
20469unsafe extern "C" {
20470 pub fn BNBinaryViewLookupImportedTypeLibrary(
20471 view: *mut BNBinaryView,
20472 typeName: *const BNQualifiedName,
20473 lib: *mut *mut BNTypeLibrary,
20474 resultName: *mut BNQualifiedName,
20475 ) -> bool;
20476}
20477unsafe extern "C" {
20478 #[doc = " Language Representation"]
20479 pub fn BNRegisterLanguageRepresentationFunctionType(
20480 name: *const ::std::os::raw::c_char,
20481 type_: *mut BNCustomLanguageRepresentationFunctionType,
20482 ) -> *mut BNLanguageRepresentationFunctionType;
20483}
20484unsafe extern "C" {
20485 pub fn BNGetLanguageRepresentationFunctionTypeByName(
20486 name: *const ::std::os::raw::c_char,
20487 ) -> *mut BNLanguageRepresentationFunctionType;
20488}
20489unsafe extern "C" {
20490 pub fn BNGetLanguageRepresentationFunctionTypeList(
20491 count: *mut usize,
20492 ) -> *mut *mut BNLanguageRepresentationFunctionType;
20493}
20494unsafe extern "C" {
20495 pub fn BNFreeLanguageRepresentationFunctionTypeList(
20496 types: *mut *mut BNLanguageRepresentationFunctionType,
20497 );
20498}
20499unsafe extern "C" {
20500 pub fn BNGetLanguageRepresentationFunctionTypeName(
20501 type_: *mut BNLanguageRepresentationFunctionType,
20502 ) -> *mut ::std::os::raw::c_char;
20503}
20504unsafe extern "C" {
20505 pub fn BNCreateLanguageRepresentationFunction(
20506 type_: *mut BNLanguageRepresentationFunctionType,
20507 arch: *mut BNArchitecture,
20508 func: *mut BNFunction,
20509 highLevelIL: *mut BNHighLevelILFunction,
20510 ) -> *mut BNLanguageRepresentationFunction;
20511}
20512unsafe extern "C" {
20513 pub fn BNIsLanguageRepresentationFunctionTypeValid(
20514 type_: *mut BNLanguageRepresentationFunctionType,
20515 view: *mut BNBinaryView,
20516 ) -> bool;
20517}
20518unsafe extern "C" {
20519 pub fn BNGetLanguageRepresentationFunctionTypePrinter(
20520 type_: *mut BNLanguageRepresentationFunctionType,
20521 ) -> *mut BNTypePrinter;
20522}
20523unsafe extern "C" {
20524 pub fn BNGetLanguageRepresentationFunctionTypeParser(
20525 type_: *mut BNLanguageRepresentationFunctionType,
20526 ) -> *mut BNTypeParser;
20527}
20528unsafe extern "C" {
20529 pub fn BNGetLanguageRepresentationFunctionTypeLineFormatter(
20530 type_: *mut BNLanguageRepresentationFunctionType,
20531 ) -> *mut BNLineFormatter;
20532}
20533unsafe extern "C" {
20534 pub fn BNGetLanguageRepresentationFunctionTypeFunctionTypeTokens(
20535 type_: *mut BNLanguageRepresentationFunctionType,
20536 func: *mut BNFunction,
20537 settings: *mut BNDisassemblySettings,
20538 count: *mut usize,
20539 ) -> *mut BNDisassemblyTextLine;
20540}
20541unsafe extern "C" {
20542 pub fn BNCreateCustomLanguageRepresentationFunction(
20543 type_: *mut BNLanguageRepresentationFunctionType,
20544 arch: *mut BNArchitecture,
20545 func: *mut BNFunction,
20546 highLevelIL: *mut BNHighLevelILFunction,
20547 callbacks: *mut BNCustomLanguageRepresentationFunction,
20548 ) -> *mut BNLanguageRepresentationFunction;
20549}
20550unsafe extern "C" {
20551 pub fn BNNewLanguageRepresentationFunctionReference(
20552 func: *mut BNLanguageRepresentationFunction,
20553 ) -> *mut BNLanguageRepresentationFunction;
20554}
20555unsafe extern "C" {
20556 pub fn BNFreeLanguageRepresentationFunction(func: *mut BNLanguageRepresentationFunction);
20557}
20558unsafe extern "C" {
20559 pub fn BNGetLanguageRepresentationType(
20560 func: *mut BNLanguageRepresentationFunction,
20561 ) -> *mut BNLanguageRepresentationFunctionType;
20562}
20563unsafe extern "C" {
20564 pub fn BNGetLanguageRepresentationArchitecture(
20565 func: *mut BNLanguageRepresentationFunction,
20566 ) -> *mut BNArchitecture;
20567}
20568unsafe extern "C" {
20569 pub fn BNGetLanguageRepresentationOwnerFunction(
20570 func: *mut BNLanguageRepresentationFunction,
20571 ) -> *mut BNFunction;
20572}
20573unsafe extern "C" {
20574 pub fn BNGetLanguageRepresentationILFunction(
20575 func: *mut BNLanguageRepresentationFunction,
20576 ) -> *mut BNHighLevelILFunction;
20577}
20578unsafe extern "C" {
20579 pub fn BNGetLanguageRepresentationFunctionExprText(
20580 func: *mut BNLanguageRepresentationFunction,
20581 il: *mut BNHighLevelILFunction,
20582 exprIndex: usize,
20583 settings: *mut BNDisassemblySettings,
20584 asFullAst: bool,
20585 precedence: BNOperatorPrecedence,
20586 statement: bool,
20587 count: *mut usize,
20588 ) -> *mut BNDisassemblyTextLine;
20589}
20590unsafe extern "C" {
20591 pub fn BNGetLanguageRepresentationFunctionLinearLines(
20592 func: *mut BNLanguageRepresentationFunction,
20593 il: *mut BNHighLevelILFunction,
20594 exprIndex: usize,
20595 settings: *mut BNDisassemblySettings,
20596 asFullAst: bool,
20597 count: *mut usize,
20598 ) -> *mut BNDisassemblyTextLine;
20599}
20600unsafe extern "C" {
20601 pub fn BNGetLanguageRepresentationFunctionBlockLines(
20602 func: *mut BNLanguageRepresentationFunction,
20603 block: *mut BNBasicBlock,
20604 settings: *mut BNDisassemblySettings,
20605 count: *mut usize,
20606 ) -> *mut BNDisassemblyTextLine;
20607}
20608unsafe extern "C" {
20609 pub fn BNGetLanguageRepresentationFunctionHighlight(
20610 func: *mut BNLanguageRepresentationFunction,
20611 block: *mut BNBasicBlock,
20612 ) -> BNHighlightColor;
20613}
20614unsafe extern "C" {
20615 pub fn BNGetLanguageRepresentationFunctionCommentStartString(
20616 func: *mut BNLanguageRepresentationFunction,
20617 ) -> *mut ::std::os::raw::c_char;
20618}
20619unsafe extern "C" {
20620 pub fn BNGetLanguageRepresentationFunctionCommentEndString(
20621 func: *mut BNLanguageRepresentationFunction,
20622 ) -> *mut ::std::os::raw::c_char;
20623}
20624unsafe extern "C" {
20625 pub fn BNGetLanguageRepresentationFunctionAnnotationStartString(
20626 func: *mut BNLanguageRepresentationFunction,
20627 ) -> *mut ::std::os::raw::c_char;
20628}
20629unsafe extern "C" {
20630 pub fn BNGetLanguageRepresentationFunctionAnnotationEndString(
20631 func: *mut BNLanguageRepresentationFunction,
20632 ) -> *mut ::std::os::raw::c_char;
20633}
20634unsafe extern "C" {
20635 pub fn BNNewFieldResolutionInfoReference(
20636 info: *mut BNFieldResolutionInfo,
20637 ) -> *mut BNFieldResolutionInfo;
20638}
20639unsafe extern "C" {
20640 pub fn BNFreeFieldResolutionInfo(info: *mut BNFieldResolutionInfo);
20641}
20642unsafe extern "C" {
20643 #[doc = " Types"]
20644 pub fn BNTypesEqual(a: *mut BNType, b: *mut BNType) -> bool;
20645}
20646unsafe extern "C" {
20647 pub fn BNTypesNotEqual(a: *mut BNType, b: *mut BNType) -> bool;
20648}
20649unsafe extern "C" {
20650 pub fn BNCreateVoidType() -> *mut BNType;
20651}
20652unsafe extern "C" {
20653 pub fn BNCreateBoolType() -> *mut BNType;
20654}
20655unsafe extern "C" {
20656 pub fn BNCreateIntegerType(
20657 width: usize,
20658 sign: *mut BNBoolWithConfidence,
20659 altName: *const ::std::os::raw::c_char,
20660 ) -> *mut BNType;
20661}
20662unsafe extern "C" {
20663 pub fn BNCreateFloatType(width: usize, altName: *const ::std::os::raw::c_char) -> *mut BNType;
20664}
20665unsafe extern "C" {
20666 pub fn BNCreateWideCharType(
20667 width: usize,
20668 altName: *const ::std::os::raw::c_char,
20669 ) -> *mut BNType;
20670}
20671unsafe extern "C" {
20672 pub fn BNCreateStructureType(s: *mut BNStructure) -> *mut BNType;
20673}
20674unsafe extern "C" {
20675 pub fn BNCreateEnumerationType(
20676 arch: *mut BNArchitecture,
20677 e: *mut BNEnumeration,
20678 width: usize,
20679 isSigned: *mut BNBoolWithConfidence,
20680 ) -> *mut BNType;
20681}
20682unsafe extern "C" {
20683 pub fn BNCreateEnumerationTypeOfWidth(
20684 e: *mut BNEnumeration,
20685 width: usize,
20686 isSigned: *mut BNBoolWithConfidence,
20687 ) -> *mut BNType;
20688}
20689unsafe extern "C" {
20690 pub fn BNCreatePointerType(
20691 arch: *mut BNArchitecture,
20692 type_: *const BNTypeWithConfidence,
20693 cnst: *mut BNBoolWithConfidence,
20694 vltl: *mut BNBoolWithConfidence,
20695 refType: BNReferenceType,
20696 ) -> *mut BNType;
20697}
20698unsafe extern "C" {
20699 pub fn BNCreatePointerTypeOfWidth(
20700 width: usize,
20701 type_: *const BNTypeWithConfidence,
20702 cnst: *mut BNBoolWithConfidence,
20703 vltl: *mut BNBoolWithConfidence,
20704 refType: BNReferenceType,
20705 ) -> *mut BNType;
20706}
20707unsafe extern "C" {
20708 pub fn BNCreateArrayType(type_: *const BNTypeWithConfidence, elem: u64) -> *mut BNType;
20709}
20710unsafe extern "C" {
20711 pub fn BNCreateFunctionType(
20712 returnValue: *mut BNTypeWithConfidence,
20713 callingConvention: *mut BNCallingConventionWithConfidence,
20714 params: *mut BNFunctionParameter,
20715 paramCount: usize,
20716 varArg: *mut BNBoolWithConfidence,
20717 canReturn: *mut BNBoolWithConfidence,
20718 stackAdjust: *mut BNOffsetWithConfidence,
20719 regStackAdjustRegs: *mut u32,
20720 regStackAdjustValues: *mut BNOffsetWithConfidence,
20721 regStackAdjustCount: usize,
20722 returnRegs: *mut BNRegisterSetWithConfidence,
20723 ft: BNNameType,
20724 pure_: *mut BNBoolWithConfidence,
20725 ) -> *mut BNType;
20726}
20727unsafe extern "C" {
20728 pub fn BNCreateVarArgsType() -> *mut BNType;
20729}
20730unsafe extern "C" {
20731 pub fn BNCreateValueType(value: *const ::std::os::raw::c_char) -> *mut BNType;
20732}
20733unsafe extern "C" {
20734 pub fn BNGetNameTypeString(classFunctionType: BNNameType) -> *mut ::std::os::raw::c_char;
20735}
20736unsafe extern "C" {
20737 pub fn BNNewTypeReference(type_: *mut BNType) -> *mut BNType;
20738}
20739unsafe extern "C" {
20740 pub fn BNDuplicateType(type_: *mut BNType) -> *mut BNType;
20741}
20742unsafe extern "C" {
20743 pub fn BNGetTypeAndName(
20744 type_: *mut BNType,
20745 name: *mut BNQualifiedName,
20746 escaping: BNTokenEscapingType,
20747 ) -> *mut ::std::os::raw::c_char;
20748}
20749unsafe extern "C" {
20750 pub fn BNFreeType(type_: *mut BNType);
20751}
20752unsafe extern "C" {
20753 pub fn BNFreeTypeList(types: *mut *mut BNType, count: usize);
20754}
20755unsafe extern "C" {
20756 pub fn BNTypeSetIgnored(type_: *mut BNType, ignored: bool) -> *mut BNType;
20757}
20758unsafe extern "C" {
20759 pub fn BNCreateTypeBuilderFromType(type_: *mut BNType) -> *mut BNTypeBuilder;
20760}
20761unsafe extern "C" {
20762 pub fn BNCreateVoidTypeBuilder() -> *mut BNTypeBuilder;
20763}
20764unsafe extern "C" {
20765 pub fn BNCreateBoolTypeBuilder() -> *mut BNTypeBuilder;
20766}
20767unsafe extern "C" {
20768 pub fn BNCreateIntegerTypeBuilder(
20769 width: usize,
20770 sign: *mut BNBoolWithConfidence,
20771 altName: *const ::std::os::raw::c_char,
20772 ) -> *mut BNTypeBuilder;
20773}
20774unsafe extern "C" {
20775 pub fn BNCreateFloatTypeBuilder(
20776 width: usize,
20777 altName: *const ::std::os::raw::c_char,
20778 ) -> *mut BNTypeBuilder;
20779}
20780unsafe extern "C" {
20781 pub fn BNCreateWideCharTypeBuilder(
20782 width: usize,
20783 altName: *const ::std::os::raw::c_char,
20784 ) -> *mut BNTypeBuilder;
20785}
20786unsafe extern "C" {
20787 pub fn BNCreateStructureTypeBuilder(s: *mut BNStructure) -> *mut BNTypeBuilder;
20788}
20789unsafe extern "C" {
20790 pub fn BNCreateStructureTypeBuilderWithBuilder(
20791 s: *mut BNStructureBuilder,
20792 ) -> *mut BNTypeBuilder;
20793}
20794unsafe extern "C" {
20795 pub fn BNCreateEnumerationTypeBuilder(
20796 arch: *mut BNArchitecture,
20797 e: *mut BNEnumeration,
20798 width: usize,
20799 isSigned: *mut BNBoolWithConfidence,
20800 ) -> *mut BNTypeBuilder;
20801}
20802unsafe extern "C" {
20803 pub fn BNCreateEnumerationTypeBuilderWithBuilder(
20804 arch: *mut BNArchitecture,
20805 e: *mut BNEnumerationBuilder,
20806 width: usize,
20807 isSigned: *mut BNBoolWithConfidence,
20808 ) -> *mut BNTypeBuilder;
20809}
20810unsafe extern "C" {
20811 pub fn BNCreatePointerTypeBuilder(
20812 arch: *mut BNArchitecture,
20813 type_: *const BNTypeWithConfidence,
20814 cnst: *mut BNBoolWithConfidence,
20815 vltl: *mut BNBoolWithConfidence,
20816 refType: BNReferenceType,
20817 ) -> *mut BNTypeBuilder;
20818}
20819unsafe extern "C" {
20820 pub fn BNCreatePointerTypeBuilderOfWidth(
20821 width: usize,
20822 type_: *const BNTypeWithConfidence,
20823 cnst: *mut BNBoolWithConfidence,
20824 vltl: *mut BNBoolWithConfidence,
20825 refType: BNReferenceType,
20826 ) -> *mut BNTypeBuilder;
20827}
20828unsafe extern "C" {
20829 pub fn BNCreateArrayTypeBuilder(
20830 type_: *const BNTypeWithConfidence,
20831 elem: u64,
20832 ) -> *mut BNTypeBuilder;
20833}
20834unsafe extern "C" {
20835 pub fn BNCreateFunctionTypeBuilder(
20836 returnValue: *mut BNTypeWithConfidence,
20837 callingConvention: *mut BNCallingConventionWithConfidence,
20838 params: *mut BNFunctionParameter,
20839 paramCount: usize,
20840 varArg: *mut BNBoolWithConfidence,
20841 canReturn: *mut BNBoolWithConfidence,
20842 stackAdjust: *mut BNOffsetWithConfidence,
20843 regStackAdjustRegs: *mut u32,
20844 regStackAdjustValues: *mut BNOffsetWithConfidence,
20845 regStackAdjustCount: usize,
20846 returnRegs: *mut BNRegisterSetWithConfidence,
20847 ft: BNNameType,
20848 pure_: *mut BNBoolWithConfidence,
20849 ) -> *mut BNTypeBuilder;
20850}
20851unsafe extern "C" {
20852 pub fn BNCreateVarArgsTypeBuilder() -> *mut BNTypeBuilder;
20853}
20854unsafe extern "C" {
20855 pub fn BNCreateValueTypeBuilder(value: *const ::std::os::raw::c_char) -> *mut BNTypeBuilder;
20856}
20857unsafe extern "C" {
20858 pub fn BNFinalizeTypeBuilder(type_: *mut BNTypeBuilder) -> *mut BNType;
20859}
20860unsafe extern "C" {
20861 pub fn BNDuplicateTypeBuilder(type_: *mut BNTypeBuilder) -> *mut BNTypeBuilder;
20862}
20863unsafe extern "C" {
20864 pub fn BNGetTypeBuilderTypeAndName(
20865 type_: *mut BNTypeBuilder,
20866 name: *mut BNQualifiedName,
20867 ) -> *mut ::std::os::raw::c_char;
20868}
20869unsafe extern "C" {
20870 pub fn BNFreeTypeBuilder(type_: *mut BNTypeBuilder);
20871}
20872unsafe extern "C" {
20873 pub fn BNTypeGetTypeName(nt: *mut BNType) -> BNQualifiedName;
20874}
20875unsafe extern "C" {
20876 pub fn BNGetTypeClass(type_: *mut BNType) -> BNTypeClass;
20877}
20878unsafe extern "C" {
20879 pub fn BNGetTypeWidth(type_: *mut BNType) -> u64;
20880}
20881unsafe extern "C" {
20882 pub fn BNGetTypeAlignment(type_: *mut BNType) -> usize;
20883}
20884unsafe extern "C" {
20885 pub fn BNGetIntegerTypeDisplayType(type_: *mut BNType) -> BNIntegerDisplayType;
20886}
20887unsafe extern "C" {
20888 pub fn BNSetIntegerTypeDisplayType(
20889 type_: *mut BNTypeBuilder,
20890 displayType: BNIntegerDisplayType,
20891 );
20892}
20893unsafe extern "C" {
20894 pub fn BNIsTypeSigned(type_: *mut BNType) -> BNBoolWithConfidence;
20895}
20896unsafe extern "C" {
20897 pub fn BNIsTypeConst(type_: *mut BNType) -> BNBoolWithConfidence;
20898}
20899unsafe extern "C" {
20900 pub fn BNIsTypeVolatile(type_: *mut BNType) -> BNBoolWithConfidence;
20901}
20902unsafe extern "C" {
20903 pub fn BNIsTypeFloatingPoint(type_: *mut BNType) -> bool;
20904}
20905unsafe extern "C" {
20906 pub fn BNGetChildType(type_: *mut BNType) -> BNTypeWithConfidence;
20907}
20908unsafe extern "C" {
20909 pub fn BNGetTypeCallingConvention(type_: *mut BNType) -> BNCallingConventionWithConfidence;
20910}
20911unsafe extern "C" {
20912 pub fn BNGetTypeCallingConventionName(type_: *mut BNType) -> BNCallingConventionName;
20913}
20914unsafe extern "C" {
20915 pub fn BNGetTypeParameters(type_: *mut BNType, count: *mut usize) -> *mut BNFunctionParameter;
20916}
20917unsafe extern "C" {
20918 pub fn BNFreeTypeParameterList(types: *mut BNFunctionParameter, count: usize);
20919}
20920unsafe extern "C" {
20921 pub fn BNTypeHasVariableArguments(type_: *mut BNType) -> BNBoolWithConfidence;
20922}
20923unsafe extern "C" {
20924 pub fn BNTypeHasTemplateArguments(type_: *mut BNType) -> bool;
20925}
20926unsafe extern "C" {
20927 pub fn BNFunctionTypeCanReturn(type_: *mut BNType) -> BNBoolWithConfidence;
20928}
20929unsafe extern "C" {
20930 pub fn BNIsTypePure(type_: *mut BNType) -> BNBoolWithConfidence;
20931}
20932unsafe extern "C" {
20933 pub fn BNGetTypeStructure(type_: *mut BNType) -> *mut BNStructure;
20934}
20935unsafe extern "C" {
20936 pub fn BNGetTypeEnumeration(type_: *mut BNType) -> *mut BNEnumeration;
20937}
20938unsafe extern "C" {
20939 pub fn BNGetTypeNamedTypeReference(type_: *mut BNType) -> *mut BNNamedTypeReference;
20940}
20941unsafe extern "C" {
20942 pub fn BNGetTypeElementCount(type_: *mut BNType) -> u64;
20943}
20944unsafe extern "C" {
20945 pub fn BNGetTypeOffset(type_: *mut BNType) -> u64;
20946}
20947unsafe extern "C" {
20948 pub fn BNGetTypeStackAdjustment(type_: *mut BNType) -> BNOffsetWithConfidence;
20949}
20950unsafe extern "C" {
20951 pub fn BNTypeGetStructureName(type_: *mut BNType) -> BNQualifiedName;
20952}
20953unsafe extern "C" {
20954 pub fn BNGetRegisteredTypeName(type_: *mut BNType) -> *mut BNNamedTypeReference;
20955}
20956unsafe extern "C" {
20957 pub fn BNTypeGetReferenceType(type_: *mut BNType) -> BNReferenceType;
20958}
20959unsafe extern "C" {
20960 pub fn BNTypeGetPointerBaseType(type_: *mut BNType) -> BNPointerBaseType;
20961}
20962unsafe extern "C" {
20963 pub fn BNTypeGetPointerBaseOffset(type_: *mut BNType) -> i64;
20964}
20965unsafe extern "C" {
20966 pub fn BNTypeGetNameType(type_: *mut BNType) -> BNNameType;
20967}
20968unsafe extern "C" {
20969 pub fn BNGetTypeAlternateName(type_: *mut BNType) -> *mut ::std::os::raw::c_char;
20970}
20971unsafe extern "C" {
20972 pub fn BNTypeGetSystemCallNumber(type_: *mut BNType) -> u32;
20973}
20974unsafe extern "C" {
20975 pub fn BNTypeIsSystemCall(type_: *mut BNType) -> bool;
20976}
20977unsafe extern "C" {
20978 pub fn BNGetTypePointerSuffix(type_: *mut BNType, count: *mut usize) -> *mut BNPointerSuffix;
20979}
20980unsafe extern "C" {
20981 pub fn BNGetTypePointerSuffixString(type_: *mut BNType) -> *mut ::std::os::raw::c_char;
20982}
20983unsafe extern "C" {
20984 pub fn BNGetTypePointerSuffixTokens(
20985 type_: *mut BNType,
20986 baseConfidence: u8,
20987 count: *mut usize,
20988 ) -> *mut BNInstructionTextToken;
20989}
20990unsafe extern "C" {
20991 pub fn BNFreePointerSuffixList(suffix: *mut BNPointerSuffix, count: usize);
20992}
20993unsafe extern "C" {
20994 pub fn BNTypeShouldDisplayReturnType(type_: *mut BNType) -> bool;
20995}
20996unsafe extern "C" {
20997 pub fn BNGetTypeAttributes(type_: *mut BNType, count: *mut usize) -> *mut BNTypeAttribute;
20998}
20999unsafe extern "C" {
21000 pub fn BNGetTypeAttributeByName(
21001 type_: *mut BNType,
21002 name: *const ::std::os::raw::c_char,
21003 ) -> *mut ::std::os::raw::c_char;
21004}
21005unsafe extern "C" {
21006 pub fn BNFreeTypeAttributeList(attr: *mut BNTypeAttribute, count: usize);
21007}
21008unsafe extern "C" {
21009 pub fn BNDerefNamedTypeReference(view: *mut BNBinaryView, type_: *mut BNType) -> *mut BNType;
21010}
21011unsafe extern "C" {
21012 pub fn BNGetTypeString(
21013 type_: *mut BNType,
21014 platform: *mut BNPlatform,
21015 escaping: BNTokenEscapingType,
21016 ) -> *mut ::std::os::raw::c_char;
21017}
21018unsafe extern "C" {
21019 pub fn BNGetTypeStringBeforeName(
21020 type_: *mut BNType,
21021 platform: *mut BNPlatform,
21022 escaping: BNTokenEscapingType,
21023 ) -> *mut ::std::os::raw::c_char;
21024}
21025unsafe extern "C" {
21026 pub fn BNGetTypeStringAfterName(
21027 type_: *mut BNType,
21028 platform: *mut BNPlatform,
21029 escaping: BNTokenEscapingType,
21030 ) -> *mut ::std::os::raw::c_char;
21031}
21032unsafe extern "C" {
21033 pub fn BNGetTypeTokens(
21034 type_: *mut BNType,
21035 platform: *mut BNPlatform,
21036 baseConfidence: u8,
21037 escaping: BNTokenEscapingType,
21038 count: *mut usize,
21039 ) -> *mut BNInstructionTextToken;
21040}
21041unsafe extern "C" {
21042 pub fn BNGetTypeTokensBeforeName(
21043 type_: *mut BNType,
21044 platform: *mut BNPlatform,
21045 baseConfidence: u8,
21046 escaping: BNTokenEscapingType,
21047 count: *mut usize,
21048 ) -> *mut BNInstructionTextToken;
21049}
21050unsafe extern "C" {
21051 pub fn BNGetTypeTokensAfterName(
21052 type_: *mut BNType,
21053 platform: *mut BNPlatform,
21054 baseConfidence: u8,
21055 escaping: BNTokenEscapingType,
21056 count: *mut usize,
21057 ) -> *mut BNInstructionTextToken;
21058}
21059unsafe extern "C" {
21060 pub fn BNTypeWithReplacedStructure(
21061 type_: *mut BNType,
21062 from: *mut BNStructure,
21063 to: *mut BNStructure,
21064 ) -> *mut BNType;
21065}
21066unsafe extern "C" {
21067 pub fn BNTypeWithReplacedEnumeration(
21068 type_: *mut BNType,
21069 from: *mut BNEnumeration,
21070 to: *mut BNEnumeration,
21071 ) -> *mut BNType;
21072}
21073unsafe extern "C" {
21074 pub fn BNTypeWithReplacedNamedTypeReference(
21075 type_: *mut BNType,
21076 from: *mut BNNamedTypeReference,
21077 to: *mut BNNamedTypeReference,
21078 ) -> *mut BNType;
21079}
21080unsafe extern "C" {
21081 pub fn BNAddTypeMemberTokens(
21082 type_: *mut BNType,
21083 data: *mut BNBinaryView,
21084 tokens: *mut *mut BNInstructionTextToken,
21085 tokenCount: *mut usize,
21086 offset: i64,
21087 nameList: *mut *mut *mut ::std::os::raw::c_char,
21088 nameCount: *mut usize,
21089 size: usize,
21090 indirect: bool,
21091 info: *mut BNFieldResolutionInfo,
21092 ) -> bool;
21093}
21094unsafe extern "C" {
21095 pub fn BNGetTypeLines(
21096 type_: *mut BNType,
21097 types: *mut BNTypeContainer,
21098 name: *const ::std::os::raw::c_char,
21099 paddingCols: ::std::os::raw::c_int,
21100 collapsed: bool,
21101 escaping: BNTokenEscapingType,
21102 count: *mut usize,
21103 ) -> *mut BNTypeDefinitionLine;
21104}
21105unsafe extern "C" {
21106 pub fn BNFreeTypeDefinitionLineList(list: *mut BNTypeDefinitionLine, count: usize);
21107}
21108unsafe extern "C" {
21109 pub fn BNEnumerateTypesForAccess(
21110 type_: *mut BNType,
21111 data: *mut BNBinaryView,
21112 offset: u64,
21113 size: usize,
21114 baseConfidence: u8,
21115 terminal: ::std::option::Option<
21116 unsafe extern "C" fn(
21117 arg1: *mut ::std::os::raw::c_void,
21118 arg2: *mut BNTypeWithConfidence,
21119 arg3: *mut BNFieldResolutionInfo,
21120 ),
21121 >,
21122 ctxt: *mut ::std::os::raw::c_void,
21123 ) -> bool;
21124}
21125unsafe extern "C" {
21126 pub fn BNTypeBuilderGetTypeName(nt: *mut BNTypeBuilder) -> BNQualifiedName;
21127}
21128unsafe extern "C" {
21129 pub fn BNTypeBuilderSetTypeName(type_: *mut BNTypeBuilder, name: *mut BNQualifiedName);
21130}
21131unsafe extern "C" {
21132 pub fn BNTypeBuilderSetAlternateName(
21133 type_: *mut BNTypeBuilder,
21134 name: *const ::std::os::raw::c_char,
21135 );
21136}
21137unsafe extern "C" {
21138 pub fn BNGetTypeBuilderClass(type_: *mut BNTypeBuilder) -> BNTypeClass;
21139}
21140unsafe extern "C" {
21141 pub fn BNTypeBuilderSetSystemCallNumber(type_: *mut BNTypeBuilder, v: bool, n: u32);
21142}
21143unsafe extern "C" {
21144 pub fn BNGetTypeBuilderWidth(type_: *mut BNTypeBuilder) -> u64;
21145}
21146unsafe extern "C" {
21147 pub fn BNGetTypeBuilderAlignment(type_: *mut BNTypeBuilder) -> usize;
21148}
21149unsafe extern "C" {
21150 pub fn BNIsTypeBuilderSigned(type_: *mut BNTypeBuilder) -> BNBoolWithConfidence;
21151}
21152unsafe extern "C" {
21153 pub fn BNIsTypeBuilderConst(type_: *mut BNTypeBuilder) -> BNBoolWithConfidence;
21154}
21155unsafe extern "C" {
21156 pub fn BNIsTypeBuilderVolatile(type_: *mut BNTypeBuilder) -> BNBoolWithConfidence;
21157}
21158unsafe extern "C" {
21159 pub fn BNIsTypeBuilderFloatingPoint(type_: *mut BNTypeBuilder) -> bool;
21160}
21161unsafe extern "C" {
21162 pub fn BNGetTypeBuilderChildType(type_: *mut BNTypeBuilder) -> BNTypeWithConfidence;
21163}
21164unsafe extern "C" {
21165 pub fn BNGetTypeBuilderCallingConvention(
21166 type_: *mut BNTypeBuilder,
21167 ) -> BNCallingConventionWithConfidence;
21168}
21169unsafe extern "C" {
21170 pub fn BNGetTypeBuilderCallingConventionName(
21171 type_: *mut BNTypeBuilder,
21172 ) -> BNCallingConventionName;
21173}
21174unsafe extern "C" {
21175 pub fn BNGetTypeBuilderParameters(
21176 type_: *mut BNTypeBuilder,
21177 count: *mut usize,
21178 ) -> *mut BNFunctionParameter;
21179}
21180unsafe extern "C" {
21181 pub fn BNTypeBuilderHasVariableArguments(type_: *mut BNTypeBuilder) -> BNBoolWithConfidence;
21182}
21183unsafe extern "C" {
21184 pub fn BNFunctionTypeBuilderCanReturn(type_: *mut BNTypeBuilder) -> BNBoolWithConfidence;
21185}
21186unsafe extern "C" {
21187 pub fn BNIsTypeBuilderPure(type_: *mut BNTypeBuilder) -> BNBoolWithConfidence;
21188}
21189unsafe extern "C" {
21190 pub fn BNGetTypeBuilderStructure(type_: *mut BNTypeBuilder) -> *mut BNStructure;
21191}
21192unsafe extern "C" {
21193 pub fn BNGetTypeBuilderEnumeration(type_: *mut BNTypeBuilder) -> *mut BNEnumeration;
21194}
21195unsafe extern "C" {
21196 pub fn BNGetTypeBuilderNamedTypeReference(
21197 type_: *mut BNTypeBuilder,
21198 ) -> *mut BNNamedTypeReference;
21199}
21200unsafe extern "C" {
21201 pub fn BNSetTypeBuilderNamedTypeReference(
21202 type_: *mut BNTypeBuilder,
21203 ntr: *mut BNNamedTypeReference,
21204 );
21205}
21206unsafe extern "C" {
21207 pub fn BNGetTypeBuilderElementCount(type_: *mut BNTypeBuilder) -> u64;
21208}
21209unsafe extern "C" {
21210 pub fn BNGetTypeBuilderOffset(type_: *mut BNTypeBuilder) -> u64;
21211}
21212unsafe extern "C" {
21213 pub fn BNSetTypeBuilderOffset(type_: *mut BNTypeBuilder, offset: u64);
21214}
21215unsafe extern "C" {
21216 pub fn BNSetTypeBuilderPointerBase(
21217 type_: *mut BNTypeBuilder,
21218 baseType: BNPointerBaseType,
21219 baseOffset: i64,
21220 );
21221}
21222unsafe extern "C" {
21223 pub fn BNSetFunctionTypeBuilderCanReturn(
21224 type_: *mut BNTypeBuilder,
21225 canReturn: *mut BNBoolWithConfidence,
21226 );
21227}
21228unsafe extern "C" {
21229 pub fn BNSetTypeBuilderPure(type_: *mut BNTypeBuilder, pure_: *mut BNBoolWithConfidence);
21230}
21231unsafe extern "C" {
21232 pub fn BNSetFunctionTypeBuilderParameters(
21233 type_: *mut BNTypeBuilder,
21234 params: *mut BNFunctionParameter,
21235 paramCount: usize,
21236 );
21237}
21238unsafe extern "C" {
21239 pub fn BNTypeBuilderSetWidth(type_: *mut BNTypeBuilder, width: usize);
21240}
21241unsafe extern "C" {
21242 pub fn BNTypeBuilderSetAlignment(type_: *mut BNTypeBuilder, alignment: usize);
21243}
21244unsafe extern "C" {
21245 pub fn BNTypeBuilderSetConst(type_: *mut BNTypeBuilder, cnst: *mut BNBoolWithConfidence);
21246}
21247unsafe extern "C" {
21248 pub fn BNTypeBuilderSetVolatile(type_: *mut BNTypeBuilder, vltl: *mut BNBoolWithConfidence);
21249}
21250unsafe extern "C" {
21251 pub fn BNTypeBuilderSetSigned(type_: *mut BNTypeBuilder, sign: *mut BNBoolWithConfidence);
21252}
21253unsafe extern "C" {
21254 pub fn BNTypeBuilderSetChildType(type_: *mut BNTypeBuilder, child: *mut BNTypeWithConfidence);
21255}
21256unsafe extern "C" {
21257 pub fn BNTypeBuilderSetCallingConvention(
21258 type_: *mut BNTypeBuilder,
21259 cc: *mut BNCallingConventionWithConfidence,
21260 );
21261}
21262unsafe extern "C" {
21263 pub fn BNTypeBuilderSetCallingConventionName(
21264 type_: *mut BNTypeBuilder,
21265 cc: BNCallingConventionName,
21266 );
21267}
21268unsafe extern "C" {
21269 pub fn BNGetTypeBuilderStackAdjustment(type_: *mut BNTypeBuilder) -> BNOffsetWithConfidence;
21270}
21271unsafe extern "C" {
21272 pub fn BNTypeBuilderGetStructureName(type_: *mut BNTypeBuilder) -> BNQualifiedName;
21273}
21274unsafe extern "C" {
21275 pub fn BNTypeBuilderGetReferenceType(type_: *mut BNTypeBuilder) -> BNReferenceType;
21276}
21277unsafe extern "C" {
21278 pub fn BNTypeBuilderGetPointerBaseType(type_: *mut BNTypeBuilder) -> BNPointerBaseType;
21279}
21280unsafe extern "C" {
21281 pub fn BNTypeBuilderGetPointerBaseOffset(type_: *mut BNTypeBuilder) -> i64;
21282}
21283unsafe extern "C" {
21284 pub fn BNGetTypeBuilderAlternateName(type_: *mut BNTypeBuilder) -> *mut ::std::os::raw::c_char;
21285}
21286unsafe extern "C" {
21287 pub fn BNTypeBuilderIsSystemCall(type_: *mut BNTypeBuilder) -> bool;
21288}
21289unsafe extern "C" {
21290 pub fn BNTypeBuilderGetSystemCallNumber(type_: *mut BNTypeBuilder) -> u32;
21291}
21292unsafe extern "C" {
21293 pub fn BNTypeBuilderSetStackAdjustment(
21294 type_: *mut BNTypeBuilder,
21295 adjust: *mut BNOffsetWithConfidence,
21296 );
21297}
21298unsafe extern "C" {
21299 pub fn BNGetTypeBuilderPointerSuffix(
21300 type_: *mut BNTypeBuilder,
21301 count: *mut usize,
21302 ) -> *mut BNPointerSuffix;
21303}
21304unsafe extern "C" {
21305 pub fn BNGetTypeBuilderPointerSuffixString(
21306 type_: *mut BNTypeBuilder,
21307 ) -> *mut ::std::os::raw::c_char;
21308}
21309unsafe extern "C" {
21310 pub fn BNGetTypeBuilderPointerSuffixTokens(
21311 type_: *mut BNTypeBuilder,
21312 baseConfidence: u8,
21313 count: *mut usize,
21314 ) -> *mut BNInstructionTextToken;
21315}
21316unsafe extern "C" {
21317 pub fn BNAddTypeBuilderPointerSuffix(type_: *mut BNTypeBuilder, ps: BNPointerSuffix);
21318}
21319unsafe extern "C" {
21320 pub fn BNSetTypeBuilderPointerSuffix(
21321 type_: *mut BNTypeBuilder,
21322 suffix: *mut BNPointerSuffix,
21323 count: usize,
21324 );
21325}
21326unsafe extern "C" {
21327 pub fn BNGetTypeBuilderNameType(type_: *mut BNTypeBuilder) -> BNNameType;
21328}
21329unsafe extern "C" {
21330 pub fn BNTypeBuilderHasTemplateArguments(type_: *mut BNTypeBuilder) -> bool;
21331}
21332unsafe extern "C" {
21333 pub fn BNSetTypeBuilderNameType(type_: *mut BNTypeBuilder, nameType: BNNameType);
21334}
21335unsafe extern "C" {
21336 pub fn BNSetTypeBuilderHasTemplateArguments(
21337 type_: *mut BNTypeBuilder,
21338 hasTemplateArguments: bool,
21339 );
21340}
21341unsafe extern "C" {
21342 pub fn BNSetTypeBuilderAttribute(
21343 type_: *mut BNTypeBuilder,
21344 name: *const ::std::os::raw::c_char,
21345 value: *const ::std::os::raw::c_char,
21346 );
21347}
21348unsafe extern "C" {
21349 pub fn BNSetTypeBuilderAttributeList(
21350 type_: *mut BNTypeBuilder,
21351 attrs: *mut BNTypeAttribute,
21352 count: usize,
21353 );
21354}
21355unsafe extern "C" {
21356 pub fn BNRemoveTypeBuilderAttribute(
21357 type_: *mut BNTypeBuilder,
21358 name: *const ::std::os::raw::c_char,
21359 );
21360}
21361unsafe extern "C" {
21362 pub fn BNGetTypeBuilderAttributes(
21363 type_: *mut BNTypeBuilder,
21364 count: *mut usize,
21365 ) -> *mut BNTypeAttribute;
21366}
21367unsafe extern "C" {
21368 pub fn BNGetTypeBuilderAttributeByName(
21369 type_: *mut BNTypeBuilder,
21370 name: *const ::std::os::raw::c_char,
21371 ) -> *mut ::std::os::raw::c_char;
21372}
21373unsafe extern "C" {
21374 pub fn BNGetTypeBuilderString(
21375 type_: *mut BNTypeBuilder,
21376 platform: *mut BNPlatform,
21377 ) -> *mut ::std::os::raw::c_char;
21378}
21379unsafe extern "C" {
21380 pub fn BNGetTypeBuilderStringBeforeName(
21381 type_: *mut BNTypeBuilder,
21382 platform: *mut BNPlatform,
21383 ) -> *mut ::std::os::raw::c_char;
21384}
21385unsafe extern "C" {
21386 pub fn BNGetTypeBuilderStringAfterName(
21387 type_: *mut BNTypeBuilder,
21388 platform: *mut BNPlatform,
21389 ) -> *mut ::std::os::raw::c_char;
21390}
21391unsafe extern "C" {
21392 pub fn BNGetTypeBuilderTokens(
21393 type_: *mut BNTypeBuilder,
21394 platform: *mut BNPlatform,
21395 baseConfidence: u8,
21396 count: *mut usize,
21397 ) -> *mut BNInstructionTextToken;
21398}
21399unsafe extern "C" {
21400 pub fn BNGetTypeBuilderTokensBeforeName(
21401 type_: *mut BNTypeBuilder,
21402 platform: *mut BNPlatform,
21403 baseConfidence: u8,
21404 count: *mut usize,
21405 ) -> *mut BNInstructionTextToken;
21406}
21407unsafe extern "C" {
21408 pub fn BNGetTypeBuilderTokensAfterName(
21409 type_: *mut BNTypeBuilder,
21410 platform: *mut BNPlatform,
21411 baseConfidence: u8,
21412 count: *mut usize,
21413 ) -> *mut BNInstructionTextToken;
21414}
21415unsafe extern "C" {
21416 pub fn BNCreateNamedTypeReference(
21417 nt: *mut BNNamedTypeReference,
21418 width: usize,
21419 align: usize,
21420 cnst: *mut BNBoolWithConfidence,
21421 vltl: *mut BNBoolWithConfidence,
21422 ) -> *mut BNType;
21423}
21424unsafe extern "C" {
21425 pub fn BNCreateNamedTypeReferenceFromTypeAndId(
21426 id: *const ::std::os::raw::c_char,
21427 name: *mut BNQualifiedName,
21428 type_: *mut BNType,
21429 ) -> *mut BNType;
21430}
21431unsafe extern "C" {
21432 pub fn BNCreateNamedTypeReferenceFromType(
21433 view: *mut BNBinaryView,
21434 name: *mut BNQualifiedName,
21435 ) -> *mut BNType;
21436}
21437unsafe extern "C" {
21438 pub fn BNCreateNamedTypeReferenceBuilder(
21439 nt: *mut BNNamedTypeReference,
21440 width: usize,
21441 align: usize,
21442 cnst: *mut BNBoolWithConfidence,
21443 vltl: *mut BNBoolWithConfidence,
21444 ) -> *mut BNTypeBuilder;
21445}
21446unsafe extern "C" {
21447 pub fn BNCreateNamedTypeReferenceBuilderWithBuilder(
21448 nt: *mut BNNamedTypeReferenceBuilder,
21449 width: usize,
21450 align: usize,
21451 cnst: *mut BNBoolWithConfidence,
21452 vltl: *mut BNBoolWithConfidence,
21453 ) -> *mut BNTypeBuilder;
21454}
21455unsafe extern "C" {
21456 pub fn BNCreateNamedTypeReferenceBuilderFromTypeAndId(
21457 id: *const ::std::os::raw::c_char,
21458 name: *mut BNQualifiedName,
21459 type_: *mut BNType,
21460 ) -> *mut BNTypeBuilder;
21461}
21462unsafe extern "C" {
21463 pub fn BNCreateNamedTypeReferenceBuilderFromType(
21464 view: *mut BNBinaryView,
21465 name: *mut BNQualifiedName,
21466 ) -> *mut BNTypeBuilder;
21467}
21468unsafe extern "C" {
21469 pub fn BNCreateNamedType(
21470 cls: BNNamedTypeReferenceClass,
21471 id: *const ::std::os::raw::c_char,
21472 name: *mut BNQualifiedName,
21473 ) -> *mut BNNamedTypeReference;
21474}
21475unsafe extern "C" {
21476 pub fn BNGetTypeReferenceClass(nt: *mut BNNamedTypeReference) -> BNNamedTypeReferenceClass;
21477}
21478unsafe extern "C" {
21479 pub fn BNGetTypeReferenceId(nt: *mut BNNamedTypeReference) -> *mut ::std::os::raw::c_char;
21480}
21481unsafe extern "C" {
21482 pub fn BNGetTypeReferenceName(nt: *mut BNNamedTypeReference) -> BNQualifiedName;
21483}
21484unsafe extern "C" {
21485 pub fn BNFreeQualifiedName(name: *mut BNQualifiedName);
21486}
21487unsafe extern "C" {
21488 pub fn BNFreeQualifiedNameArray(names: *mut BNQualifiedName, count: usize);
21489}
21490unsafe extern "C" {
21491 pub fn BNFreeNamedTypeReference(nt: *mut BNNamedTypeReference);
21492}
21493unsafe extern "C" {
21494 pub fn BNNewNamedTypeReference(nt: *mut BNNamedTypeReference) -> *mut BNNamedTypeReference;
21495}
21496unsafe extern "C" {
21497 pub fn BNCreateNamedTypeBuilder(
21498 cls: BNNamedTypeReferenceClass,
21499 id: *const ::std::os::raw::c_char,
21500 name: *mut BNQualifiedName,
21501 ) -> *mut BNNamedTypeReferenceBuilder;
21502}
21503unsafe extern "C" {
21504 pub fn BNFreeNamedTypeReferenceBuilder(s: *mut BNNamedTypeReferenceBuilder);
21505}
21506unsafe extern "C" {
21507 pub fn BNSetNamedTypeReferenceBuilderTypeClass(
21508 s: *mut BNNamedTypeReferenceBuilder,
21509 type_: BNNamedTypeReferenceClass,
21510 );
21511}
21512unsafe extern "C" {
21513 pub fn BNSetNamedTypeReferenceBuilderTypeId(
21514 s: *mut BNNamedTypeReferenceBuilder,
21515 id: *const ::std::os::raw::c_char,
21516 );
21517}
21518unsafe extern "C" {
21519 pub fn BNSetNamedTypeReferenceBuilderName(
21520 s: *mut BNNamedTypeReferenceBuilder,
21521 name: *mut BNQualifiedName,
21522 );
21523}
21524unsafe extern "C" {
21525 pub fn BNFinalizeNamedTypeReferenceBuilder(
21526 s: *mut BNNamedTypeReferenceBuilder,
21527 ) -> *mut BNNamedTypeReference;
21528}
21529unsafe extern "C" {
21530 pub fn BNGetTypeReferenceBuilderClass(
21531 nt: *mut BNNamedTypeReferenceBuilder,
21532 ) -> BNNamedTypeReferenceClass;
21533}
21534unsafe extern "C" {
21535 pub fn BNGetTypeReferenceBuilderId(
21536 nt: *mut BNNamedTypeReferenceBuilder,
21537 ) -> *mut ::std::os::raw::c_char;
21538}
21539unsafe extern "C" {
21540 pub fn BNGetTypeReferenceBuilderName(nt: *mut BNNamedTypeReferenceBuilder) -> BNQualifiedName;
21541}
21542unsafe extern "C" {
21543 pub fn BNSetNamedTypeReferenceBuilder(
21544 type_: *mut BNTypeBuilder,
21545 nt: *mut BNNamedTypeReferenceBuilder,
21546 );
21547}
21548unsafe extern "C" {
21549 pub fn BNCreateStructureBuilder() -> *mut BNStructureBuilder;
21550}
21551unsafe extern "C" {
21552 pub fn BNCreateStructureBuilderWithOptions(
21553 type_: BNStructureVariant,
21554 packed: bool,
21555 ) -> *mut BNStructureBuilder;
21556}
21557unsafe extern "C" {
21558 pub fn BNCreateStructureBuilderFromStructure(s: *mut BNStructure) -> *mut BNStructureBuilder;
21559}
21560unsafe extern "C" {
21561 pub fn BNDuplicateStructureBuilder(s: *mut BNStructureBuilder) -> *mut BNStructureBuilder;
21562}
21563unsafe extern "C" {
21564 pub fn BNFinalizeStructureBuilder(s: *mut BNStructureBuilder) -> *mut BNStructure;
21565}
21566unsafe extern "C" {
21567 pub fn BNNewStructureReference(s: *mut BNStructure) -> *mut BNStructure;
21568}
21569unsafe extern "C" {
21570 pub fn BNFreeStructure(s: *mut BNStructure);
21571}
21572unsafe extern "C" {
21573 pub fn BNFreeStructureBuilder(s: *mut BNStructureBuilder);
21574}
21575unsafe extern "C" {
21576 pub fn BNSetStructureBuilder(type_: *mut BNTypeBuilder, s: *mut BNStructureBuilder);
21577}
21578unsafe extern "C" {
21579 pub fn BNGetStructureMemberByName(
21580 s: *mut BNStructure,
21581 name: *const ::std::os::raw::c_char,
21582 ) -> *mut BNStructureMember;
21583}
21584unsafe extern "C" {
21585 pub fn BNGetStructureMemberAtOffset(
21586 s: *mut BNStructure,
21587 offset: i64,
21588 idx: *mut usize,
21589 ) -> *mut BNStructureMember;
21590}
21591unsafe extern "C" {
21592 pub fn BNFreeStructureMember(s: *mut BNStructureMember);
21593}
21594unsafe extern "C" {
21595 pub fn BNGetStructureMembers(s: *mut BNStructure, count: *mut usize) -> *mut BNStructureMember;
21596}
21597unsafe extern "C" {
21598 pub fn BNFreeStructureMemberList(members: *mut BNStructureMember, count: usize);
21599}
21600unsafe extern "C" {
21601 pub fn BNGetStructureMembersIncludingInherited(
21602 s: *mut BNStructure,
21603 types: *mut BNTypeContainer,
21604 count: *mut usize,
21605 ) -> *mut BNInheritedStructureMember;
21606}
21607unsafe extern "C" {
21608 pub fn BNFreeInheritedStructureMemberList(
21609 members: *mut BNInheritedStructureMember,
21610 count: usize,
21611 );
21612}
21613unsafe extern "C" {
21614 pub fn BNGetMemberIncludingInheritedAtOffset(
21615 s: *mut BNStructure,
21616 view: *mut BNBinaryView,
21617 offset: i64,
21618 ) -> *mut BNInheritedStructureMember;
21619}
21620unsafe extern "C" {
21621 pub fn BNFreeInheritedStructureMember(members: *mut BNInheritedStructureMember);
21622}
21623unsafe extern "C" {
21624 pub fn BNGetStructureWidth(s: *mut BNStructure) -> u64;
21625}
21626unsafe extern "C" {
21627 pub fn BNGetStructurePointerOffset(s: *mut BNStructure) -> i64;
21628}
21629unsafe extern "C" {
21630 pub fn BNGetStructureAlignment(s: *mut BNStructure) -> usize;
21631}
21632unsafe extern "C" {
21633 pub fn BNIsStructurePacked(s: *mut BNStructure) -> bool;
21634}
21635unsafe extern "C" {
21636 pub fn BNIsStructureUnion(s: *mut BNStructure) -> bool;
21637}
21638unsafe extern "C" {
21639 pub fn BNStructurePropagatesDataVariableReferences(s: *mut BNStructure) -> bool;
21640}
21641unsafe extern "C" {
21642 pub fn BNGetStructureType(s: *mut BNStructure) -> BNStructureVariant;
21643}
21644unsafe extern "C" {
21645 pub fn BNGetBaseStructuresForStructure(
21646 s: *mut BNStructure,
21647 count: *mut usize,
21648 ) -> *mut BNBaseStructure;
21649}
21650unsafe extern "C" {
21651 pub fn BNFreeBaseStructureList(bases: *mut BNBaseStructure, count: usize);
21652}
21653unsafe extern "C" {
21654 pub fn BNResolveStructureMemberOrBaseMember(
21655 s: *mut BNStructure,
21656 data: *mut BNBinaryView,
21657 offset: u64,
21658 size: usize,
21659 callbackContext: *mut ::std::os::raw::c_void,
21660 resolveFunc: ::std::option::Option<
21661 unsafe extern "C" fn(
21662 ctxt: *mut ::std::os::raw::c_void,
21663 baseName: *mut BNNamedTypeReference,
21664 resolvedStruct: *mut BNStructure,
21665 memberIndex: usize,
21666 structOffset: u64,
21667 adjustedOffset: u64,
21668 member: BNStructureMember,
21669 ),
21670 >,
21671 memberIndexHintValid: bool,
21672 memberIndexHint: usize,
21673 ) -> bool;
21674}
21675unsafe extern "C" {
21676 pub fn BNStructureWithReplacedStructure(
21677 s: *mut BNStructure,
21678 from: *mut BNStructure,
21679 to: *mut BNStructure,
21680 ) -> *mut BNStructure;
21681}
21682unsafe extern "C" {
21683 pub fn BNStructureWithReplacedEnumeration(
21684 s: *mut BNStructure,
21685 from: *mut BNEnumeration,
21686 to: *mut BNEnumeration,
21687 ) -> *mut BNStructure;
21688}
21689unsafe extern "C" {
21690 pub fn BNStructureWithReplacedNamedTypeReference(
21691 s: *mut BNStructure,
21692 from: *mut BNNamedTypeReference,
21693 to: *mut BNNamedTypeReference,
21694 ) -> *mut BNStructure;
21695}
21696unsafe extern "C" {
21697 pub fn BNGetStructureBuilderMemberByName(
21698 s: *mut BNStructureBuilder,
21699 name: *const ::std::os::raw::c_char,
21700 ) -> *mut BNStructureMember;
21701}
21702unsafe extern "C" {
21703 pub fn BNGetStructureBuilderMemberAtOffset(
21704 s: *mut BNStructureBuilder,
21705 offset: i64,
21706 idx: *mut usize,
21707 ) -> *mut BNStructureMember;
21708}
21709unsafe extern "C" {
21710 pub fn BNGetStructureBuilderMembers(
21711 s: *mut BNStructureBuilder,
21712 count: *mut usize,
21713 ) -> *mut BNStructureMember;
21714}
21715unsafe extern "C" {
21716 pub fn BNGetStructureBuilderWidth(s: *mut BNStructureBuilder) -> u64;
21717}
21718unsafe extern "C" {
21719 pub fn BNSetStructureBuilderWidth(s: *mut BNStructureBuilder, width: u64);
21720}
21721unsafe extern "C" {
21722 pub fn BNGetStructureBuilderPointerOffset(s: *mut BNStructureBuilder) -> i64;
21723}
21724unsafe extern "C" {
21725 pub fn BNSetStructureBuilderPointerOffset(s: *mut BNStructureBuilder, offset: i64);
21726}
21727unsafe extern "C" {
21728 pub fn BNGetStructureBuilderAlignment(s: *mut BNStructureBuilder) -> usize;
21729}
21730unsafe extern "C" {
21731 pub fn BNSetStructureBuilderAlignment(s: *mut BNStructureBuilder, align: usize);
21732}
21733unsafe extern "C" {
21734 pub fn BNIsStructureBuilderPacked(s: *mut BNStructureBuilder) -> bool;
21735}
21736unsafe extern "C" {
21737 pub fn BNSetStructureBuilderPacked(s: *mut BNStructureBuilder, packed: bool);
21738}
21739unsafe extern "C" {
21740 pub fn BNIsStructureBuilderUnion(s: *mut BNStructureBuilder) -> bool;
21741}
21742unsafe extern "C" {
21743 pub fn BNSetStructureBuilderType(s: *mut BNStructureBuilder, type_: BNStructureVariant);
21744}
21745unsafe extern "C" {
21746 pub fn BNStructureBuilderPropagatesDataVariableReferences(s: *mut BNStructureBuilder) -> bool;
21747}
21748unsafe extern "C" {
21749 pub fn BNSetStructureBuilderPropagatesDataVariableReferences(
21750 s: *mut BNStructureBuilder,
21751 value: bool,
21752 );
21753}
21754unsafe extern "C" {
21755 pub fn BNGetStructureBuilderType(s: *mut BNStructureBuilder) -> BNStructureVariant;
21756}
21757unsafe extern "C" {
21758 pub fn BNGetBaseStructuresForStructureBuilder(
21759 s: *mut BNStructureBuilder,
21760 count: *mut usize,
21761 ) -> *mut BNBaseStructure;
21762}
21763unsafe extern "C" {
21764 pub fn BNSetBaseStructuresForStructureBuilder(
21765 s: *mut BNStructureBuilder,
21766 bases: *mut BNBaseStructure,
21767 count: usize,
21768 );
21769}
21770unsafe extern "C" {
21771 pub fn BNAddStructureBuilderMember(
21772 s: *mut BNStructureBuilder,
21773 type_: *const BNTypeWithConfidence,
21774 name: *const ::std::os::raw::c_char,
21775 access: BNMemberAccess,
21776 scope: BNMemberScope,
21777 );
21778}
21779unsafe extern "C" {
21780 pub fn BNAddStructureBuilderMemberAtOffset(
21781 s: *mut BNStructureBuilder,
21782 type_: *const BNTypeWithConfidence,
21783 name: *const ::std::os::raw::c_char,
21784 offset: u64,
21785 overwriteExisting: bool,
21786 access: BNMemberAccess,
21787 scope: BNMemberScope,
21788 bitPosition: u8,
21789 bitWidth: u8,
21790 );
21791}
21792unsafe extern "C" {
21793 pub fn BNRemoveStructureBuilderMember(s: *mut BNStructureBuilder, idx: usize);
21794}
21795unsafe extern "C" {
21796 pub fn BNReplaceStructureBuilderMember(
21797 s: *mut BNStructureBuilder,
21798 idx: usize,
21799 type_: *const BNTypeWithConfidence,
21800 name: *const ::std::os::raw::c_char,
21801 overwriteExisting: bool,
21802 );
21803}
21804unsafe extern "C" {
21805 pub fn BNCreateEnumerationBuilder() -> *mut BNEnumerationBuilder;
21806}
21807unsafe extern "C" {
21808 pub fn BNCreateEnumerationBuilderFromEnumeration(
21809 e: *mut BNEnumeration,
21810 ) -> *mut BNEnumerationBuilder;
21811}
21812unsafe extern "C" {
21813 pub fn BNDuplicateEnumerationBuilder(e: *mut BNEnumerationBuilder)
21814 -> *mut BNEnumerationBuilder;
21815}
21816unsafe extern "C" {
21817 pub fn BNFinalizeEnumerationBuilder(e: *mut BNEnumerationBuilder) -> *mut BNEnumeration;
21818}
21819unsafe extern "C" {
21820 pub fn BNNewEnumerationReference(e: *mut BNEnumeration) -> *mut BNEnumeration;
21821}
21822unsafe extern "C" {
21823 pub fn BNFreeEnumeration(e: *mut BNEnumeration);
21824}
21825unsafe extern "C" {
21826 pub fn BNFreeEnumerationBuilder(e: *mut BNEnumerationBuilder);
21827}
21828unsafe extern "C" {
21829 pub fn BNSetEnumerationBuilder(type_: *mut BNTypeBuilder, e: *mut BNEnumerationBuilder);
21830}
21831unsafe extern "C" {
21832 pub fn BNGetEnumerationMembers(
21833 e: *mut BNEnumeration,
21834 count: *mut usize,
21835 ) -> *mut BNEnumerationMember;
21836}
21837unsafe extern "C" {
21838 pub fn BNGetEnumerationTokensForValue(
21839 e: *mut BNEnumeration,
21840 value: u64,
21841 width: u64,
21842 count: *mut usize,
21843 type_: *mut BNType,
21844 ) -> *mut BNInstructionTextToken;
21845}
21846unsafe extern "C" {
21847 pub fn BNFreeEnumerationMemberList(members: *mut BNEnumerationMember, count: usize);
21848}
21849unsafe extern "C" {
21850 pub fn BNGetEnumerationBuilderMembers(
21851 e: *mut BNEnumerationBuilder,
21852 count: *mut usize,
21853 ) -> *mut BNEnumerationMember;
21854}
21855unsafe extern "C" {
21856 pub fn BNAddEnumerationBuilderMember(
21857 e: *mut BNEnumerationBuilder,
21858 name: *const ::std::os::raw::c_char,
21859 );
21860}
21861unsafe extern "C" {
21862 pub fn BNAddEnumerationBuilderMemberWithValue(
21863 e: *mut BNEnumerationBuilder,
21864 name: *const ::std::os::raw::c_char,
21865 value: u64,
21866 );
21867}
21868unsafe extern "C" {
21869 pub fn BNRemoveEnumerationBuilderMember(e: *mut BNEnumerationBuilder, idx: usize);
21870}
21871unsafe extern "C" {
21872 pub fn BNReplaceEnumerationBuilderMember(
21873 e: *mut BNEnumerationBuilder,
21874 idx: usize,
21875 name: *const ::std::os::raw::c_char,
21876 value: u64,
21877 );
21878}
21879unsafe extern "C" {
21880 pub fn BNCreateStructureFromOffsetAccess(
21881 view: *mut BNBinaryView,
21882 name: *mut BNQualifiedName,
21883 newMember: *mut bool,
21884 ) -> *mut BNStructure;
21885}
21886unsafe extern "C" {
21887 pub fn BNCreateStructureMemberFromAccess(
21888 view: *mut BNBinaryView,
21889 name: *mut BNQualifiedName,
21890 offset: u64,
21891 ) -> BNTypeWithConfidence;
21892}
21893unsafe extern "C" {
21894 pub fn BNAddExpressionParserMagicValue(
21895 view: *mut BNBinaryView,
21896 name: *const ::std::os::raw::c_char,
21897 value: u64,
21898 );
21899}
21900unsafe extern "C" {
21901 pub fn BNRemoveExpressionParserMagicValue(
21902 view: *mut BNBinaryView,
21903 name: *const ::std::os::raw::c_char,
21904 );
21905}
21906unsafe extern "C" {
21907 pub fn BNAddExpressionParserMagicValues(
21908 view: *mut BNBinaryView,
21909 names: *mut *const ::std::os::raw::c_char,
21910 values: *mut u64,
21911 count: usize,
21912 );
21913}
21914unsafe extern "C" {
21915 pub fn BNRemoveExpressionParserMagicValues(
21916 view: *mut BNBinaryView,
21917 names: *mut *const ::std::os::raw::c_char,
21918 count: usize,
21919 );
21920}
21921unsafe extern "C" {
21922 pub fn BNGetExpressionParserMagicValue(
21923 view: *mut BNBinaryView,
21924 name: *const ::std::os::raw::c_char,
21925 value: *mut u64,
21926 ) -> bool;
21927}
21928unsafe extern "C" {
21929 pub fn BNGetFunctionParentComponents(
21930 view: *mut BNBinaryView,
21931 func: *mut BNFunction,
21932 count: *mut usize,
21933 ) -> *mut *mut BNComponent;
21934}
21935unsafe extern "C" {
21936 pub fn BNGetDataVariableParentComponents(
21937 view: *mut BNBinaryView,
21938 dataVariable: u64,
21939 count: *mut usize,
21940 ) -> *mut *mut BNComponent;
21941}
21942unsafe extern "C" {
21943 pub fn BNCheckForStringAnnotationType(
21944 view: *mut BNBinaryView,
21945 addr: u64,
21946 value: *mut *mut ::std::os::raw::c_char,
21947 strType: *mut BNStringType,
21948 allowShortStrings: bool,
21949 allowLargeStrings: bool,
21950 childWidth: usize,
21951 ) -> bool;
21952}
21953unsafe extern "C" {
21954 pub fn BNLoadFilename(
21955 filename: *const ::std::os::raw::c_char,
21956 updateAnalysis: bool,
21957 options: *const ::std::os::raw::c_char,
21958 progress: BNProgressFunction,
21959 progressContext: *mut ::std::os::raw::c_void,
21960 ) -> *mut BNBinaryView;
21961}
21962unsafe extern "C" {
21963 pub fn BNLoadProjectFile(
21964 projectFile: *mut BNProjectFile,
21965 updateAnalysis: bool,
21966 options: *const ::std::os::raw::c_char,
21967 progress: BNProgressFunction,
21968 progressContext: *mut ::std::os::raw::c_void,
21969 ) -> *mut BNBinaryView;
21970}
21971unsafe extern "C" {
21972 pub fn BNLoadBinaryView(
21973 view: *mut BNBinaryView,
21974 updateAnalysis: bool,
21975 options: *const ::std::os::raw::c_char,
21976 progress: BNProgressFunction,
21977 progressContext: *mut ::std::os::raw::c_void,
21978 ) -> *mut BNBinaryView;
21979}
21980unsafe extern "C" {
21981 pub fn BNParseTextFormat(filename: *const ::std::os::raw::c_char) -> *mut BNBinaryView;
21982}
21983unsafe extern "C" {
21984 pub fn BNBinaryViewAddExternalLibrary(
21985 view: *mut BNBinaryView,
21986 name: *const ::std::os::raw::c_char,
21987 backingFile: *mut BNProjectFile,
21988 isAuto: bool,
21989 ) -> *mut BNExternalLibrary;
21990}
21991unsafe extern "C" {
21992 pub fn BNBinaryViewRemoveExternalLibrary(
21993 view: *mut BNBinaryView,
21994 name: *const ::std::os::raw::c_char,
21995 );
21996}
21997unsafe extern "C" {
21998 pub fn BNBinaryViewGetExternalLibrary(
21999 view: *mut BNBinaryView,
22000 name: *const ::std::os::raw::c_char,
22001 ) -> *mut BNExternalLibrary;
22002}
22003unsafe extern "C" {
22004 pub fn BNBinaryViewGetExternalLibraries(
22005 view: *mut BNBinaryView,
22006 count: *mut usize,
22007 ) -> *mut *mut BNExternalLibrary;
22008}
22009unsafe extern "C" {
22010 pub fn BNBinaryViewAddExternalLocation(
22011 view: *mut BNBinaryView,
22012 sourceSymbol: *mut BNSymbol,
22013 library: *mut BNExternalLibrary,
22014 targetSymbol: *const ::std::os::raw::c_char,
22015 targetAddress: *mut u64,
22016 isAuto: bool,
22017 ) -> *mut BNExternalLocation;
22018}
22019unsafe extern "C" {
22020 pub fn BNBinaryViewRemoveExternalLocation(view: *mut BNBinaryView, sourceSymbol: *mut BNSymbol);
22021}
22022unsafe extern "C" {
22023 pub fn BNBinaryViewGetExternalLocation(
22024 view: *mut BNBinaryView,
22025 sourceSymbol: *mut BNSymbol,
22026 ) -> *mut BNExternalLocation;
22027}
22028unsafe extern "C" {
22029 pub fn BNBinaryViewGetExternalLocations(
22030 view: *mut BNBinaryView,
22031 count: *mut usize,
22032 ) -> *mut *mut BNExternalLocation;
22033}
22034unsafe extern "C" {
22035 #[doc = " Source code processing"]
22036 pub fn BNPreprocessSource(
22037 source: *const ::std::os::raw::c_char,
22038 fileName: *const ::std::os::raw::c_char,
22039 output: *mut *mut ::std::os::raw::c_char,
22040 errors: *mut *mut ::std::os::raw::c_char,
22041 includeDirs: *mut *const ::std::os::raw::c_char,
22042 includeDirCount: usize,
22043 ) -> bool;
22044}
22045unsafe extern "C" {
22046 pub fn BNParseTypesFromSource(
22047 platform: *mut BNPlatform,
22048 source: *const ::std::os::raw::c_char,
22049 fileName: *const ::std::os::raw::c_char,
22050 result: *mut BNTypeParserResult,
22051 errors: *mut *mut ::std::os::raw::c_char,
22052 includeDirs: *mut *const ::std::os::raw::c_char,
22053 includeDirCount: usize,
22054 autoTypeSource: *const ::std::os::raw::c_char,
22055 ) -> bool;
22056}
22057unsafe extern "C" {
22058 pub fn BNParseTypesFromSourceFile(
22059 platform: *mut BNPlatform,
22060 fileName: *const ::std::os::raw::c_char,
22061 result: *mut BNTypeParserResult,
22062 errors: *mut *mut ::std::os::raw::c_char,
22063 includeDirs: *mut *const ::std::os::raw::c_char,
22064 includeDirCount: usize,
22065 autoTypeSource: *const ::std::os::raw::c_char,
22066 ) -> bool;
22067}
22068unsafe extern "C" {
22069 pub fn BNRegisterTypeParser(
22070 name: *const ::std::os::raw::c_char,
22071 callbacks: *mut BNTypeParserCallbacks,
22072 ) -> *mut BNTypeParser;
22073}
22074unsafe extern "C" {
22075 pub fn BNGetTypeParserList(count: *mut usize) -> *mut *mut BNTypeParser;
22076}
22077unsafe extern "C" {
22078 pub fn BNFreeTypeParserList(parsers: *mut *mut BNTypeParser);
22079}
22080unsafe extern "C" {
22081 pub fn BNGetTypeParserByName(name: *const ::std::os::raw::c_char) -> *mut BNTypeParser;
22082}
22083unsafe extern "C" {
22084 pub fn BNGetDefaultTypeParser() -> *mut BNTypeParser;
22085}
22086unsafe extern "C" {
22087 pub fn BNGetTypeParserName(parser: *mut BNTypeParser) -> *mut ::std::os::raw::c_char;
22088}
22089unsafe extern "C" {
22090 pub fn BNGetTypeParserOptionText(
22091 parser: *mut BNTypeParser,
22092 option: BNTypeParserOption,
22093 value: *const ::std::os::raw::c_char,
22094 result: *mut *mut ::std::os::raw::c_char,
22095 ) -> bool;
22096}
22097unsafe extern "C" {
22098 pub fn BNTypeParserPreprocessSource(
22099 parser: *mut BNTypeParser,
22100 source: *const ::std::os::raw::c_char,
22101 fileName: *const ::std::os::raw::c_char,
22102 platform: *mut BNPlatform,
22103 existingTypes: *mut BNTypeContainer,
22104 options: *const *const ::std::os::raw::c_char,
22105 optionCount: usize,
22106 includeDirs: *const *const ::std::os::raw::c_char,
22107 includeDirCount: usize,
22108 output: *mut *mut ::std::os::raw::c_char,
22109 errors: *mut *mut BNTypeParserError,
22110 errorCount: *mut usize,
22111 ) -> bool;
22112}
22113unsafe extern "C" {
22114 pub fn BNTypeParserParseTypesFromSource(
22115 parser: *mut BNTypeParser,
22116 source: *const ::std::os::raw::c_char,
22117 fileName: *const ::std::os::raw::c_char,
22118 platform: *mut BNPlatform,
22119 existingTypes: *mut BNTypeContainer,
22120 options: *const *const ::std::os::raw::c_char,
22121 optionCount: usize,
22122 includeDirs: *const *const ::std::os::raw::c_char,
22123 includeDirCount: usize,
22124 autoTypeSource: *const ::std::os::raw::c_char,
22125 result: *mut BNTypeParserResult,
22126 errors: *mut *mut BNTypeParserError,
22127 errorCount: *mut usize,
22128 ) -> bool;
22129}
22130unsafe extern "C" {
22131 pub fn BNTypeParserParseTypeString(
22132 parser: *mut BNTypeParser,
22133 source: *const ::std::os::raw::c_char,
22134 platform: *mut BNPlatform,
22135 existingTypes: *mut BNTypeContainer,
22136 result: *mut BNQualifiedNameAndType,
22137 errors: *mut *mut BNTypeParserError,
22138 errorCount: *mut usize,
22139 ) -> bool;
22140}
22141unsafe extern "C" {
22142 pub fn BNParseTypeParserOptionsText(
22143 optionsText: *const ::std::os::raw::c_char,
22144 count: *mut usize,
22145 ) -> *mut *mut ::std::os::raw::c_char;
22146}
22147unsafe extern "C" {
22148 pub fn BNFormatTypeParserParseErrors(
22149 errors: *mut BNTypeParserError,
22150 count: usize,
22151 ) -> *mut ::std::os::raw::c_char;
22152}
22153unsafe extern "C" {
22154 pub fn BNRegisterTypePrinter(
22155 name: *const ::std::os::raw::c_char,
22156 callbacks: *mut BNTypePrinterCallbacks,
22157 ) -> *mut BNTypePrinter;
22158}
22159unsafe extern "C" {
22160 pub fn BNGetTypePrinterList(count: *mut usize) -> *mut *mut BNTypePrinter;
22161}
22162unsafe extern "C" {
22163 pub fn BNFreeTypePrinterList(printers: *mut *mut BNTypePrinter);
22164}
22165unsafe extern "C" {
22166 pub fn BNGetTypePrinterByName(name: *const ::std::os::raw::c_char) -> *mut BNTypePrinter;
22167}
22168unsafe extern "C" {
22169 pub fn BNGetTypePrinterName(printer: *mut BNTypePrinter) -> *mut ::std::os::raw::c_char;
22170}
22171unsafe extern "C" {
22172 pub fn BNGetTypePrinterTypeTokens(
22173 printer: *mut BNTypePrinter,
22174 type_: *mut BNType,
22175 platform: *mut BNPlatform,
22176 name: *mut BNQualifiedName,
22177 baseConfidence: u8,
22178 escaping: BNTokenEscapingType,
22179 result: *mut *mut BNInstructionTextToken,
22180 resultCount: *mut usize,
22181 ) -> bool;
22182}
22183unsafe extern "C" {
22184 pub fn BNGetTypePrinterTypeTokensBeforeName(
22185 printer: *mut BNTypePrinter,
22186 type_: *mut BNType,
22187 platform: *mut BNPlatform,
22188 baseConfidence: u8,
22189 parentType: *mut BNType,
22190 escaping: BNTokenEscapingType,
22191 result: *mut *mut BNInstructionTextToken,
22192 resultCount: *mut usize,
22193 ) -> bool;
22194}
22195unsafe extern "C" {
22196 pub fn BNGetTypePrinterTypeTokensAfterName(
22197 printer: *mut BNTypePrinter,
22198 type_: *mut BNType,
22199 platform: *mut BNPlatform,
22200 baseConfidence: u8,
22201 parentType: *mut BNType,
22202 escaping: BNTokenEscapingType,
22203 result: *mut *mut BNInstructionTextToken,
22204 resultCount: *mut usize,
22205 ) -> bool;
22206}
22207unsafe extern "C" {
22208 pub fn BNGetTypePrinterTypeString(
22209 printer: *mut BNTypePrinter,
22210 type_: *mut BNType,
22211 platform: *mut BNPlatform,
22212 name: *mut BNQualifiedName,
22213 escaping: BNTokenEscapingType,
22214 result: *mut *mut ::std::os::raw::c_char,
22215 ) -> bool;
22216}
22217unsafe extern "C" {
22218 pub fn BNGetTypePrinterTypeStringBeforeName(
22219 printer: *mut BNTypePrinter,
22220 type_: *mut BNType,
22221 platform: *mut BNPlatform,
22222 escaping: BNTokenEscapingType,
22223 result: *mut *mut ::std::os::raw::c_char,
22224 ) -> bool;
22225}
22226unsafe extern "C" {
22227 pub fn BNGetTypePrinterTypeStringAfterName(
22228 printer: *mut BNTypePrinter,
22229 type_: *mut BNType,
22230 platform: *mut BNPlatform,
22231 escaping: BNTokenEscapingType,
22232 result: *mut *mut ::std::os::raw::c_char,
22233 ) -> bool;
22234}
22235unsafe extern "C" {
22236 pub fn BNGetTypePrinterTypeLines(
22237 printer: *mut BNTypePrinter,
22238 type_: *mut BNType,
22239 types: *mut BNTypeContainer,
22240 name: *mut BNQualifiedName,
22241 paddingCols: ::std::os::raw::c_int,
22242 collapsed: bool,
22243 escaping: BNTokenEscapingType,
22244 result: *mut *mut BNTypeDefinitionLine,
22245 resultCount: *mut usize,
22246 ) -> bool;
22247}
22248unsafe extern "C" {
22249 pub fn BNTypePrinterPrintAllTypes(
22250 printer: *mut BNTypePrinter,
22251 names: *mut BNQualifiedName,
22252 types: *mut *mut BNType,
22253 typeCount: usize,
22254 data: *mut BNBinaryView,
22255 paddingCols: ::std::os::raw::c_int,
22256 escaping: BNTokenEscapingType,
22257 result: *mut *mut ::std::os::raw::c_char,
22258 ) -> bool;
22259}
22260unsafe extern "C" {
22261 pub fn BNTypePrinterDefaultPrintAllTypes(
22262 printer: *mut BNTypePrinter,
22263 names: *mut BNQualifiedName,
22264 types: *mut *mut BNType,
22265 typeCount: usize,
22266 data: *mut BNBinaryView,
22267 paddingCols: ::std::os::raw::c_int,
22268 escaping: BNTokenEscapingType,
22269 result: *mut *mut ::std::os::raw::c_char,
22270 ) -> bool;
22271}
22272unsafe extern "C" {
22273 pub fn BNFreeTypeParserResult(result: *mut BNTypeParserResult);
22274}
22275unsafe extern "C" {
22276 pub fn BNFreeTypeParserErrors(errors: *mut BNTypeParserError, count: usize);
22277}
22278unsafe extern "C" {
22279 #[doc = " Updates"]
22280 pub fn BNGetUpdateChannels(
22281 count: *mut usize,
22282 errors: *mut *mut ::std::os::raw::c_char,
22283 ) -> *mut BNUpdateChannel;
22284}
22285unsafe extern "C" {
22286 pub fn BNFreeUpdateChannelList(list: *mut BNUpdateChannel, count: usize);
22287}
22288unsafe extern "C" {
22289 pub fn BNGetUpdateChannelVersions(
22290 channel: *const ::std::os::raw::c_char,
22291 count: *mut usize,
22292 errors: *mut *mut ::std::os::raw::c_char,
22293 ) -> *mut BNUpdateVersion;
22294}
22295unsafe extern "C" {
22296 pub fn BNFreeUpdateChannelVersionList(list: *mut BNUpdateVersion, count: usize);
22297}
22298unsafe extern "C" {
22299 pub fn BNGetFullInfoUpdateChannels(
22300 count: *mut usize,
22301 errors: *mut *mut ::std::os::raw::c_char,
22302 ) -> *mut BNUpdateChannelFullInfo;
22303}
22304unsafe extern "C" {
22305 pub fn BNFreeFullInfoUpdateChannels(list: *mut BNUpdateChannelFullInfo, count: usize);
22306}
22307unsafe extern "C" {
22308 pub fn BNAreUpdatesAvailable(
22309 channel: *const ::std::os::raw::c_char,
22310 expireTime: *mut u64,
22311 serverTime: *mut u64,
22312 errors: *mut *mut ::std::os::raw::c_char,
22313 ) -> bool;
22314}
22315unsafe extern "C" {
22316 pub fn BNUpdateToVersion(
22317 channel: *const ::std::os::raw::c_char,
22318 version: *const ::std::os::raw::c_char,
22319 errors: *mut *mut ::std::os::raw::c_char,
22320 progress: BNProgressFunction,
22321 context: *mut ::std::os::raw::c_void,
22322 ) -> BNUpdateResult;
22323}
22324unsafe extern "C" {
22325 pub fn BNUpdateToLatestVersion(
22326 channel: *const ::std::os::raw::c_char,
22327 errors: *mut *mut ::std::os::raw::c_char,
22328 progress: BNProgressFunction,
22329 context: *mut ::std::os::raw::c_void,
22330 ) -> BNUpdateResult;
22331}
22332unsafe extern "C" {
22333 pub fn BNAreAutoUpdatesEnabled() -> bool;
22334}
22335unsafe extern "C" {
22336 pub fn BNSetAutoUpdatesEnabled(enabled: bool);
22337}
22338unsafe extern "C" {
22339 pub fn BNGetTimeSinceLastUpdateCheck() -> u64;
22340}
22341unsafe extern "C" {
22342 pub fn BNUpdatesChecked();
22343}
22344unsafe extern "C" {
22345 pub fn BNGetActiveUpdateChannel() -> *mut ::std::os::raw::c_char;
22346}
22347unsafe extern "C" {
22348 pub fn BNSetActiveUpdateChannel(channel: *const ::std::os::raw::c_char);
22349}
22350unsafe extern "C" {
22351 pub fn BNIsUpdateInstallationPending() -> bool;
22352}
22353unsafe extern "C" {
22354 pub fn BNInstallPendingUpdate(errors: *mut *mut ::std::os::raw::c_char);
22355}
22356unsafe extern "C" {
22357 #[doc = " Plugin commands"]
22358 pub fn BNRegisterPluginCommand(
22359 name: *const ::std::os::raw::c_char,
22360 description: *const ::std::os::raw::c_char,
22361 action: ::std::option::Option<
22362 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, view: *mut BNBinaryView),
22363 >,
22364 isValid: ::std::option::Option<
22365 unsafe extern "C" fn(
22366 ctxt: *mut ::std::os::raw::c_void,
22367 view: *mut BNBinaryView,
22368 ) -> bool,
22369 >,
22370 context: *mut ::std::os::raw::c_void,
22371 );
22372}
22373unsafe extern "C" {
22374 pub fn BNRegisterPluginCommandForAddress(
22375 name: *const ::std::os::raw::c_char,
22376 description: *const ::std::os::raw::c_char,
22377 action: ::std::option::Option<
22378 unsafe extern "C" fn(
22379 ctxt: *mut ::std::os::raw::c_void,
22380 view: *mut BNBinaryView,
22381 addr: u64,
22382 ),
22383 >,
22384 isValid: ::std::option::Option<
22385 unsafe extern "C" fn(
22386 ctxt: *mut ::std::os::raw::c_void,
22387 view: *mut BNBinaryView,
22388 addr: u64,
22389 ) -> bool,
22390 >,
22391 context: *mut ::std::os::raw::c_void,
22392 );
22393}
22394unsafe extern "C" {
22395 pub fn BNRegisterPluginCommandForRange(
22396 name: *const ::std::os::raw::c_char,
22397 description: *const ::std::os::raw::c_char,
22398 action: ::std::option::Option<
22399 unsafe extern "C" fn(
22400 ctxt: *mut ::std::os::raw::c_void,
22401 view: *mut BNBinaryView,
22402 addr: u64,
22403 len: u64,
22404 ),
22405 >,
22406 isValid: ::std::option::Option<
22407 unsafe extern "C" fn(
22408 ctxt: *mut ::std::os::raw::c_void,
22409 view: *mut BNBinaryView,
22410 addr: u64,
22411 len: u64,
22412 ) -> bool,
22413 >,
22414 context: *mut ::std::os::raw::c_void,
22415 );
22416}
22417unsafe extern "C" {
22418 pub fn BNRegisterPluginCommandForFunction(
22419 name: *const ::std::os::raw::c_char,
22420 description: *const ::std::os::raw::c_char,
22421 action: ::std::option::Option<
22422 unsafe extern "C" fn(
22423 ctxt: *mut ::std::os::raw::c_void,
22424 view: *mut BNBinaryView,
22425 func: *mut BNFunction,
22426 ),
22427 >,
22428 isValid: ::std::option::Option<
22429 unsafe extern "C" fn(
22430 ctxt: *mut ::std::os::raw::c_void,
22431 view: *mut BNBinaryView,
22432 func: *mut BNFunction,
22433 ) -> bool,
22434 >,
22435 context: *mut ::std::os::raw::c_void,
22436 );
22437}
22438unsafe extern "C" {
22439 pub fn BNRegisterPluginCommandForLowLevelILFunction(
22440 name: *const ::std::os::raw::c_char,
22441 description: *const ::std::os::raw::c_char,
22442 action: ::std::option::Option<
22443 unsafe extern "C" fn(
22444 ctxt: *mut ::std::os::raw::c_void,
22445 view: *mut BNBinaryView,
22446 func: *mut BNLowLevelILFunction,
22447 ),
22448 >,
22449 isValid: ::std::option::Option<
22450 unsafe extern "C" fn(
22451 ctxt: *mut ::std::os::raw::c_void,
22452 view: *mut BNBinaryView,
22453 func: *mut BNLowLevelILFunction,
22454 ) -> bool,
22455 >,
22456 context: *mut ::std::os::raw::c_void,
22457 );
22458}
22459unsafe extern "C" {
22460 pub fn BNRegisterPluginCommandForLowLevelILInstruction(
22461 name: *const ::std::os::raw::c_char,
22462 description: *const ::std::os::raw::c_char,
22463 action: ::std::option::Option<
22464 unsafe extern "C" fn(
22465 ctxt: *mut ::std::os::raw::c_void,
22466 view: *mut BNBinaryView,
22467 func: *mut BNLowLevelILFunction,
22468 instr: usize,
22469 ),
22470 >,
22471 isValid: ::std::option::Option<
22472 unsafe extern "C" fn(
22473 ctxt: *mut ::std::os::raw::c_void,
22474 view: *mut BNBinaryView,
22475 func: *mut BNLowLevelILFunction,
22476 instr: usize,
22477 ) -> bool,
22478 >,
22479 context: *mut ::std::os::raw::c_void,
22480 );
22481}
22482unsafe extern "C" {
22483 pub fn BNRegisterPluginCommandForMediumLevelILFunction(
22484 name: *const ::std::os::raw::c_char,
22485 description: *const ::std::os::raw::c_char,
22486 action: ::std::option::Option<
22487 unsafe extern "C" fn(
22488 ctxt: *mut ::std::os::raw::c_void,
22489 view: *mut BNBinaryView,
22490 func: *mut BNMediumLevelILFunction,
22491 ),
22492 >,
22493 isValid: ::std::option::Option<
22494 unsafe extern "C" fn(
22495 ctxt: *mut ::std::os::raw::c_void,
22496 view: *mut BNBinaryView,
22497 func: *mut BNMediumLevelILFunction,
22498 ) -> bool,
22499 >,
22500 context: *mut ::std::os::raw::c_void,
22501 );
22502}
22503unsafe extern "C" {
22504 pub fn BNRegisterPluginCommandForMediumLevelILInstruction(
22505 name: *const ::std::os::raw::c_char,
22506 description: *const ::std::os::raw::c_char,
22507 action: ::std::option::Option<
22508 unsafe extern "C" fn(
22509 ctxt: *mut ::std::os::raw::c_void,
22510 view: *mut BNBinaryView,
22511 func: *mut BNMediumLevelILFunction,
22512 instr: usize,
22513 ),
22514 >,
22515 isValid: ::std::option::Option<
22516 unsafe extern "C" fn(
22517 ctxt: *mut ::std::os::raw::c_void,
22518 view: *mut BNBinaryView,
22519 func: *mut BNMediumLevelILFunction,
22520 instr: usize,
22521 ) -> bool,
22522 >,
22523 context: *mut ::std::os::raw::c_void,
22524 );
22525}
22526unsafe extern "C" {
22527 pub fn BNRegisterPluginCommandForHighLevelILFunction(
22528 name: *const ::std::os::raw::c_char,
22529 description: *const ::std::os::raw::c_char,
22530 action: ::std::option::Option<
22531 unsafe extern "C" fn(
22532 ctxt: *mut ::std::os::raw::c_void,
22533 view: *mut BNBinaryView,
22534 func: *mut BNHighLevelILFunction,
22535 ),
22536 >,
22537 isValid: ::std::option::Option<
22538 unsafe extern "C" fn(
22539 ctxt: *mut ::std::os::raw::c_void,
22540 view: *mut BNBinaryView,
22541 func: *mut BNHighLevelILFunction,
22542 ) -> bool,
22543 >,
22544 context: *mut ::std::os::raw::c_void,
22545 );
22546}
22547unsafe extern "C" {
22548 pub fn BNRegisterPluginCommandForHighLevelILInstruction(
22549 name: *const ::std::os::raw::c_char,
22550 description: *const ::std::os::raw::c_char,
22551 action: ::std::option::Option<
22552 unsafe extern "C" fn(
22553 ctxt: *mut ::std::os::raw::c_void,
22554 view: *mut BNBinaryView,
22555 func: *mut BNHighLevelILFunction,
22556 instr: usize,
22557 ),
22558 >,
22559 isValid: ::std::option::Option<
22560 unsafe extern "C" fn(
22561 ctxt: *mut ::std::os::raw::c_void,
22562 view: *mut BNBinaryView,
22563 func: *mut BNHighLevelILFunction,
22564 instr: usize,
22565 ) -> bool,
22566 >,
22567 context: *mut ::std::os::raw::c_void,
22568 );
22569}
22570unsafe extern "C" {
22571 pub fn BNRegisterPluginCommandForProject(
22572 name: *const ::std::os::raw::c_char,
22573 description: *const ::std::os::raw::c_char,
22574 action: ::std::option::Option<
22575 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, project: *mut BNProject),
22576 >,
22577 isValid: ::std::option::Option<
22578 unsafe extern "C" fn(
22579 ctxt: *mut ::std::os::raw::c_void,
22580 project: *mut BNProject,
22581 ) -> bool,
22582 >,
22583 context: *mut ::std::os::raw::c_void,
22584 );
22585}
22586unsafe extern "C" {
22587 pub fn BNGetAllPluginCommands(count: *mut usize) -> *mut BNPluginCommand;
22588}
22589unsafe extern "C" {
22590 pub fn BNGetValidPluginCommands(
22591 view: *mut BNBinaryView,
22592 count: *mut usize,
22593 ) -> *mut BNPluginCommand;
22594}
22595unsafe extern "C" {
22596 pub fn BNGetValidPluginCommandsForAddress(
22597 view: *mut BNBinaryView,
22598 addr: u64,
22599 count: *mut usize,
22600 ) -> *mut BNPluginCommand;
22601}
22602unsafe extern "C" {
22603 pub fn BNGetValidPluginCommandsForRange(
22604 view: *mut BNBinaryView,
22605 addr: u64,
22606 len: u64,
22607 count: *mut usize,
22608 ) -> *mut BNPluginCommand;
22609}
22610unsafe extern "C" {
22611 pub fn BNGetValidPluginCommandsForFunction(
22612 view: *mut BNBinaryView,
22613 func: *mut BNFunction,
22614 count: *mut usize,
22615 ) -> *mut BNPluginCommand;
22616}
22617unsafe extern "C" {
22618 pub fn BNGetValidPluginCommandsForLowLevelILFunction(
22619 view: *mut BNBinaryView,
22620 func: *mut BNLowLevelILFunction,
22621 count: *mut usize,
22622 ) -> *mut BNPluginCommand;
22623}
22624unsafe extern "C" {
22625 pub fn BNGetValidPluginCommandsForLowLevelILInstruction(
22626 view: *mut BNBinaryView,
22627 func: *mut BNLowLevelILFunction,
22628 instr: usize,
22629 count: *mut usize,
22630 ) -> *mut BNPluginCommand;
22631}
22632unsafe extern "C" {
22633 pub fn BNGetValidPluginCommandsForMediumLevelILFunction(
22634 view: *mut BNBinaryView,
22635 func: *mut BNMediumLevelILFunction,
22636 count: *mut usize,
22637 ) -> *mut BNPluginCommand;
22638}
22639unsafe extern "C" {
22640 pub fn BNGetValidPluginCommandsForMediumLevelILInstruction(
22641 view: *mut BNBinaryView,
22642 func: *mut BNMediumLevelILFunction,
22643 instr: usize,
22644 count: *mut usize,
22645 ) -> *mut BNPluginCommand;
22646}
22647unsafe extern "C" {
22648 pub fn BNGetValidPluginCommandsForHighLevelILFunction(
22649 view: *mut BNBinaryView,
22650 func: *mut BNHighLevelILFunction,
22651 count: *mut usize,
22652 ) -> *mut BNPluginCommand;
22653}
22654unsafe extern "C" {
22655 pub fn BNGetValidPluginCommandsForHighLevelILInstruction(
22656 view: *mut BNBinaryView,
22657 func: *mut BNHighLevelILFunction,
22658 instr: usize,
22659 count: *mut usize,
22660 ) -> *mut BNPluginCommand;
22661}
22662unsafe extern "C" {
22663 pub fn BNGetValidPluginCommandsForProject(
22664 project: *mut BNProject,
22665 count: *mut usize,
22666 ) -> *mut BNPluginCommand;
22667}
22668unsafe extern "C" {
22669 pub fn BNFreePluginCommandList(commands: *mut BNPluginCommand);
22670}
22671unsafe extern "C" {
22672 #[doc = " Calling conventions"]
22673 pub fn BNCreateCallingConvention(
22674 arch: *mut BNArchitecture,
22675 name: *const ::std::os::raw::c_char,
22676 cc: *mut BNCustomCallingConvention,
22677 ) -> *mut BNCallingConvention;
22678}
22679unsafe extern "C" {
22680 pub fn BNRegisterCallingConvention(arch: *mut BNArchitecture, cc: *mut BNCallingConvention);
22681}
22682unsafe extern "C" {
22683 pub fn BNNewCallingConventionReference(
22684 cc: *mut BNCallingConvention,
22685 ) -> *mut BNCallingConvention;
22686}
22687unsafe extern "C" {
22688 pub fn BNFreeCallingConvention(cc: *mut BNCallingConvention);
22689}
22690unsafe extern "C" {
22691 pub fn BNGetArchitectureCallingConventions(
22692 arch: *mut BNArchitecture,
22693 count: *mut usize,
22694 ) -> *mut *mut BNCallingConvention;
22695}
22696unsafe extern "C" {
22697 pub fn BNFreeCallingConventionList(list: *mut *mut BNCallingConvention, count: usize);
22698}
22699unsafe extern "C" {
22700 pub fn BNGetArchitectureCallingConventionByName(
22701 arch: *mut BNArchitecture,
22702 name: *const ::std::os::raw::c_char,
22703 ) -> *mut BNCallingConvention;
22704}
22705unsafe extern "C" {
22706 pub fn BNGetCallingConventionArchitecture(cc: *mut BNCallingConvention) -> *mut BNArchitecture;
22707}
22708unsafe extern "C" {
22709 pub fn BNGetCallingConventionName(cc: *mut BNCallingConvention) -> *mut ::std::os::raw::c_char;
22710}
22711unsafe extern "C" {
22712 pub fn BNGetCallerSavedRegisters(cc: *mut BNCallingConvention, count: *mut usize) -> *mut u32;
22713}
22714unsafe extern "C" {
22715 pub fn BNGetCalleeSavedRegisters(cc: *mut BNCallingConvention, count: *mut usize) -> *mut u32;
22716}
22717unsafe extern "C" {
22718 pub fn BNGetIntegerArgumentRegisters(
22719 cc: *mut BNCallingConvention,
22720 count: *mut usize,
22721 ) -> *mut u32;
22722}
22723unsafe extern "C" {
22724 pub fn BNGetFloatArgumentRegisters(cc: *mut BNCallingConvention, count: *mut usize)
22725 -> *mut u32;
22726}
22727unsafe extern "C" {
22728 pub fn BNAreArgumentRegistersSharedIndex(cc: *mut BNCallingConvention) -> bool;
22729}
22730unsafe extern "C" {
22731 pub fn BNAreArgumentRegistersUsedForVarArgs(cc: *mut BNCallingConvention) -> bool;
22732}
22733unsafe extern "C" {
22734 pub fn BNIsStackReservedForArgumentRegisters(cc: *mut BNCallingConvention) -> bool;
22735}
22736unsafe extern "C" {
22737 pub fn BNIsStackAdjustedOnReturn(cc: *mut BNCallingConvention) -> bool;
22738}
22739unsafe extern "C" {
22740 pub fn BNIsEligibleForHeuristics(cc: *mut BNCallingConvention) -> bool;
22741}
22742unsafe extern "C" {
22743 pub fn BNGetIntegerReturnValueRegister(cc: *mut BNCallingConvention) -> u32;
22744}
22745unsafe extern "C" {
22746 pub fn BNGetHighIntegerReturnValueRegister(cc: *mut BNCallingConvention) -> u32;
22747}
22748unsafe extern "C" {
22749 pub fn BNGetFloatReturnValueRegister(cc: *mut BNCallingConvention) -> u32;
22750}
22751unsafe extern "C" {
22752 pub fn BNGetGlobalPointerRegister(cc: *mut BNCallingConvention) -> u32;
22753}
22754unsafe extern "C" {
22755 pub fn BNGetImplicitlyDefinedRegisters(
22756 cc: *mut BNCallingConvention,
22757 count: *mut usize,
22758 ) -> *mut u32;
22759}
22760unsafe extern "C" {
22761 pub fn BNGetIncomingRegisterValue(
22762 cc: *mut BNCallingConvention,
22763 reg: u32,
22764 func: *mut BNFunction,
22765 ) -> BNRegisterValue;
22766}
22767unsafe extern "C" {
22768 pub fn BNGetIncomingFlagValue(
22769 cc: *mut BNCallingConvention,
22770 reg: u32,
22771 func: *mut BNFunction,
22772 ) -> BNRegisterValue;
22773}
22774unsafe extern "C" {
22775 pub fn BNGetVariablesForParametersDefaultPermittedArgs(
22776 cc: *mut BNCallingConvention,
22777 params: *const BNFunctionParameter,
22778 paramCount: usize,
22779 count: *mut usize,
22780 ) -> *mut BNVariable;
22781}
22782unsafe extern "C" {
22783 pub fn BNGetVariablesForParameters(
22784 cc: *mut BNCallingConvention,
22785 params: *const BNFunctionParameter,
22786 paramCount: usize,
22787 permittedArgs: *const u32,
22788 permittedArgCount: usize,
22789 count: *mut usize,
22790 ) -> *mut BNVariable;
22791}
22792unsafe extern "C" {
22793 pub fn BNGetParameterOrderingForVariables(
22794 cc: *mut BNCallingConvention,
22795 paramVars: *const BNVariable,
22796 paramTypes: *mut *const BNType,
22797 paramCount: usize,
22798 count: *mut usize,
22799 ) -> *mut BNVariable;
22800}
22801unsafe extern "C" {
22802 pub fn BNGetStackAdjustmentForVariables(
22803 cc: *mut BNCallingConvention,
22804 paramVars: *const BNVariable,
22805 paramTypes: *mut *const BNType,
22806 paramCount: usize,
22807 ) -> i64;
22808}
22809unsafe extern "C" {
22810 pub fn BNGetRegisterStackAdjustments(
22811 cc: *mut BNCallingConvention,
22812 returnRegs: *const u32,
22813 returnRegCount: usize,
22814 returnType: *mut BNType,
22815 params: *const BNVariable,
22816 paramCount: usize,
22817 types: *mut *const BNType,
22818 typeCount: usize,
22819 resultRegisters: *mut *mut u32,
22820 resultAdjustments: *mut *mut u32,
22821 ) -> usize;
22822}
22823unsafe extern "C" {
22824 pub fn BNGetIncomingVariableForParameterVariable(
22825 cc: *mut BNCallingConvention,
22826 var: *const BNVariable,
22827 func: *mut BNFunction,
22828 ) -> BNVariable;
22829}
22830unsafe extern "C" {
22831 pub fn BNGetParameterVariableForIncomingVariable(
22832 cc: *mut BNCallingConvention,
22833 var: *const BNVariable,
22834 func: *mut BNFunction,
22835 ) -> BNVariable;
22836}
22837unsafe extern "C" {
22838 pub fn BNGetDefaultIncomingVariableForParameterVariable(
22839 cc: *mut BNCallingConvention,
22840 var: *const BNVariable,
22841 ) -> BNVariable;
22842}
22843unsafe extern "C" {
22844 pub fn BNGetDefaultParameterVariableForIncomingVariable(
22845 cc: *mut BNCallingConvention,
22846 var: *const BNVariable,
22847 ) -> BNVariable;
22848}
22849unsafe extern "C" {
22850 pub fn BNGetArchitectureDefaultCallingConvention(
22851 arch: *mut BNArchitecture,
22852 ) -> *mut BNCallingConvention;
22853}
22854unsafe extern "C" {
22855 pub fn BNGetArchitectureCdeclCallingConvention(
22856 arch: *mut BNArchitecture,
22857 ) -> *mut BNCallingConvention;
22858}
22859unsafe extern "C" {
22860 pub fn BNGetArchitectureStdcallCallingConvention(
22861 arch: *mut BNArchitecture,
22862 ) -> *mut BNCallingConvention;
22863}
22864unsafe extern "C" {
22865 pub fn BNGetArchitectureFastcallCallingConvention(
22866 arch: *mut BNArchitecture,
22867 ) -> *mut BNCallingConvention;
22868}
22869unsafe extern "C" {
22870 pub fn BNSetArchitectureDefaultCallingConvention(
22871 arch: *mut BNArchitecture,
22872 cc: *mut BNCallingConvention,
22873 );
22874}
22875unsafe extern "C" {
22876 pub fn BNSetArchitectureCdeclCallingConvention(
22877 arch: *mut BNArchitecture,
22878 cc: *mut BNCallingConvention,
22879 );
22880}
22881unsafe extern "C" {
22882 pub fn BNSetArchitectureStdcallCallingConvention(
22883 arch: *mut BNArchitecture,
22884 cc: *mut BNCallingConvention,
22885 );
22886}
22887unsafe extern "C" {
22888 pub fn BNSetArchitectureFastcallCallingConvention(
22889 arch: *mut BNArchitecture,
22890 cc: *mut BNCallingConvention,
22891 );
22892}
22893unsafe extern "C" {
22894 #[doc = " Platforms"]
22895 pub fn BNCreatePlatform(
22896 arch: *mut BNArchitecture,
22897 name: *const ::std::os::raw::c_char,
22898 ) -> *mut BNPlatform;
22899}
22900unsafe extern "C" {
22901 pub fn BNCreatePlatformWithTypes(
22902 arch: *mut BNArchitecture,
22903 name: *const ::std::os::raw::c_char,
22904 typeFile: *const ::std::os::raw::c_char,
22905 includeDirs: *mut *const ::std::os::raw::c_char,
22906 includeDirCount: usize,
22907 ) -> *mut BNPlatform;
22908}
22909unsafe extern "C" {
22910 pub fn BNCreateCustomPlatform(
22911 arch: *mut BNArchitecture,
22912 name: *const ::std::os::raw::c_char,
22913 impl_: *mut BNCustomPlatform,
22914 ) -> *mut BNPlatform;
22915}
22916unsafe extern "C" {
22917 pub fn BNCreateCustomPlatformWithTypes(
22918 arch: *mut BNArchitecture,
22919 name: *const ::std::os::raw::c_char,
22920 impl_: *mut BNCustomPlatform,
22921 typeFile: *const ::std::os::raw::c_char,
22922 includeDirs: *mut *const ::std::os::raw::c_char,
22923 includeDirCount: usize,
22924 ) -> *mut BNPlatform;
22925}
22926unsafe extern "C" {
22927 pub fn BNRegisterPlatform(os: *const ::std::os::raw::c_char, platform: *mut BNPlatform);
22928}
22929unsafe extern "C" {
22930 pub fn BNNewPlatformReference(platform: *mut BNPlatform) -> *mut BNPlatform;
22931}
22932unsafe extern "C" {
22933 pub fn BNFreePlatform(platform: *mut BNPlatform);
22934}
22935unsafe extern "C" {
22936 pub fn BNGetPlatformName(platform: *mut BNPlatform) -> *mut ::std::os::raw::c_char;
22937}
22938unsafe extern "C" {
22939 pub fn BNGetPlatformArchitecture(platform: *mut BNPlatform) -> *mut BNArchitecture;
22940}
22941unsafe extern "C" {
22942 pub fn BNGetPlatformByName(name: *const ::std::os::raw::c_char) -> *mut BNPlatform;
22943}
22944unsafe extern "C" {
22945 pub fn BNGetPlatformList(count: *mut usize) -> *mut *mut BNPlatform;
22946}
22947unsafe extern "C" {
22948 pub fn BNGetPlatformListByArchitecture(
22949 arch: *mut BNArchitecture,
22950 count: *mut usize,
22951 ) -> *mut *mut BNPlatform;
22952}
22953unsafe extern "C" {
22954 pub fn BNGetPlatformListByOS(
22955 os: *const ::std::os::raw::c_char,
22956 count: *mut usize,
22957 ) -> *mut *mut BNPlatform;
22958}
22959unsafe extern "C" {
22960 pub fn BNGetPlatformListByOSAndArchitecture(
22961 os: *const ::std::os::raw::c_char,
22962 arch: *mut BNArchitecture,
22963 count: *mut usize,
22964 ) -> *mut *mut BNPlatform;
22965}
22966unsafe extern "C" {
22967 pub fn BNFreePlatformList(platform: *mut *mut BNPlatform, count: usize);
22968}
22969unsafe extern "C" {
22970 pub fn BNGetPlatformOSList(count: *mut usize) -> *mut *mut ::std::os::raw::c_char;
22971}
22972unsafe extern "C" {
22973 pub fn BNFreePlatformOSList(list: *mut *mut ::std::os::raw::c_char, count: usize);
22974}
22975unsafe extern "C" {
22976 pub fn BNGetPlatformDefaultCallingConvention(
22977 platform: *mut BNPlatform,
22978 ) -> *mut BNCallingConvention;
22979}
22980unsafe extern "C" {
22981 pub fn BNGetPlatformCdeclCallingConvention(
22982 platform: *mut BNPlatform,
22983 ) -> *mut BNCallingConvention;
22984}
22985unsafe extern "C" {
22986 pub fn BNGetPlatformStdcallCallingConvention(
22987 platform: *mut BNPlatform,
22988 ) -> *mut BNCallingConvention;
22989}
22990unsafe extern "C" {
22991 pub fn BNGetPlatformFastcallCallingConvention(
22992 platform: *mut BNPlatform,
22993 ) -> *mut BNCallingConvention;
22994}
22995unsafe extern "C" {
22996 pub fn BNGetPlatformCallingConventions(
22997 platform: *mut BNPlatform,
22998 count: *mut usize,
22999 ) -> *mut *mut BNCallingConvention;
23000}
23001unsafe extern "C" {
23002 pub fn BNGetPlatformSystemCallConvention(platform: *mut BNPlatform)
23003 -> *mut BNCallingConvention;
23004}
23005unsafe extern "C" {
23006 pub fn BNRegisterPlatformCallingConvention(
23007 platform: *mut BNPlatform,
23008 cc: *mut BNCallingConvention,
23009 );
23010}
23011unsafe extern "C" {
23012 pub fn BNRegisterPlatformDefaultCallingConvention(
23013 platform: *mut BNPlatform,
23014 cc: *mut BNCallingConvention,
23015 );
23016}
23017unsafe extern "C" {
23018 pub fn BNRegisterPlatformCdeclCallingConvention(
23019 platform: *mut BNPlatform,
23020 cc: *mut BNCallingConvention,
23021 );
23022}
23023unsafe extern "C" {
23024 pub fn BNRegisterPlatformStdcallCallingConvention(
23025 platform: *mut BNPlatform,
23026 cc: *mut BNCallingConvention,
23027 );
23028}
23029unsafe extern "C" {
23030 pub fn BNRegisterPlatformFastcallCallingConvention(
23031 platform: *mut BNPlatform,
23032 cc: *mut BNCallingConvention,
23033 );
23034}
23035unsafe extern "C" {
23036 pub fn BNSetPlatformSystemCallConvention(
23037 platform: *mut BNPlatform,
23038 cc: *mut BNCallingConvention,
23039 );
23040}
23041unsafe extern "C" {
23042 pub fn BNGetPlatformGlobalRegisters(platform: *mut BNPlatform, count: *mut usize) -> *mut u32;
23043}
23044unsafe extern "C" {
23045 pub fn BNGetPlatformGlobalRegisterType(platform: *mut BNPlatform, reg: u32) -> *mut BNType;
23046}
23047unsafe extern "C" {
23048 pub fn BNGetPlatformAddressSize(platform: *mut BNPlatform) -> usize;
23049}
23050unsafe extern "C" {
23051 pub fn BNPlatformAdjustTypeParserInput(
23052 platform: *mut BNPlatform,
23053 parser: *mut BNTypeParser,
23054 argumentsIn: *const *const ::std::os::raw::c_char,
23055 argumentsLenIn: usize,
23056 sourceFileNamesIn: *const *const ::std::os::raw::c_char,
23057 sourceFileValuesIn: *const *const ::std::os::raw::c_char,
23058 sourceFilesLenIn: usize,
23059 argumentsOut: *mut *mut *mut ::std::os::raw::c_char,
23060 argumentsLenOut: *mut usize,
23061 sourceFileNamesOut: *mut *mut *mut ::std::os::raw::c_char,
23062 sourceFileValuesOut: *mut *mut *mut ::std::os::raw::c_char,
23063 sourceFilesLenOut: *mut usize,
23064 );
23065}
23066unsafe extern "C" {
23067 pub fn BNGetArchitectureStandalonePlatform(arch: *mut BNArchitecture) -> *mut BNPlatform;
23068}
23069unsafe extern "C" {
23070 pub fn BNGetRelatedPlatform(
23071 platform: *mut BNPlatform,
23072 arch: *mut BNArchitecture,
23073 ) -> *mut BNPlatform;
23074}
23075unsafe extern "C" {
23076 pub fn BNAddRelatedPlatform(
23077 platform: *mut BNPlatform,
23078 arch: *mut BNArchitecture,
23079 related: *mut BNPlatform,
23080 );
23081}
23082unsafe extern "C" {
23083 pub fn BNGetRelatedPlatforms(
23084 platform: *mut BNPlatform,
23085 count: *mut usize,
23086 ) -> *mut *mut BNPlatform;
23087}
23088unsafe extern "C" {
23089 pub fn BNGetAssociatedPlatformByAddress(
23090 platform: *mut BNPlatform,
23091 addr: *mut u64,
23092 ) -> *mut BNPlatform;
23093}
23094unsafe extern "C" {
23095 pub fn BNGetPlatformTypeContainer(platform: *mut BNPlatform) -> *mut BNTypeContainer;
23096}
23097unsafe extern "C" {
23098 pub fn BNGetPlatformTypes(
23099 platform: *mut BNPlatform,
23100 count: *mut usize,
23101 ) -> *mut BNQualifiedNameAndType;
23102}
23103unsafe extern "C" {
23104 pub fn BNGetPlatformVariables(
23105 platform: *mut BNPlatform,
23106 count: *mut usize,
23107 ) -> *mut BNQualifiedNameAndType;
23108}
23109unsafe extern "C" {
23110 pub fn BNGetPlatformFunctions(
23111 platform: *mut BNPlatform,
23112 count: *mut usize,
23113 ) -> *mut BNQualifiedNameAndType;
23114}
23115unsafe extern "C" {
23116 pub fn BNGetPlatformSystemCalls(
23117 platform: *mut BNPlatform,
23118 count: *mut usize,
23119 ) -> *mut BNSystemCallInfo;
23120}
23121unsafe extern "C" {
23122 pub fn BNFreeSystemCallList(syscalls: *mut BNSystemCallInfo, count: usize);
23123}
23124unsafe extern "C" {
23125 pub fn BNGetPlatformTypeByName(
23126 platform: *mut BNPlatform,
23127 name: *mut BNQualifiedName,
23128 ) -> *mut BNType;
23129}
23130unsafe extern "C" {
23131 pub fn BNGetPlatformVariableByName(
23132 platform: *mut BNPlatform,
23133 name: *mut BNQualifiedName,
23134 ) -> *mut BNType;
23135}
23136unsafe extern "C" {
23137 pub fn BNGetPlatformFunctionByName(
23138 platform: *mut BNPlatform,
23139 name: *mut BNQualifiedName,
23140 exactMatch: bool,
23141 ) -> *mut BNType;
23142}
23143unsafe extern "C" {
23144 pub fn BNGetPlatformSystemCallName(
23145 platform: *mut BNPlatform,
23146 number: u32,
23147 ) -> *mut ::std::os::raw::c_char;
23148}
23149unsafe extern "C" {
23150 pub fn BNGetPlatformSystemCallType(platform: *mut BNPlatform, number: u32) -> *mut BNType;
23151}
23152unsafe extern "C" {
23153 pub fn BNGetPlatformTypeLibraries(
23154 platform: *mut BNPlatform,
23155 count: *mut usize,
23156 ) -> *mut *mut BNTypeLibrary;
23157}
23158unsafe extern "C" {
23159 pub fn BNGetPlatformTypeLibrariesByName(
23160 platform: *mut BNPlatform,
23161 depName: *const ::std::os::raw::c_char,
23162 count: *mut usize,
23163 ) -> *mut *mut BNTypeLibrary;
23164}
23165unsafe extern "C" {
23166 #[doc = " Download providers"]
23167 pub fn BNRegisterDownloadProvider(
23168 name: *const ::std::os::raw::c_char,
23169 callbacks: *mut BNDownloadProviderCallbacks,
23170 ) -> *mut BNDownloadProvider;
23171}
23172unsafe extern "C" {
23173 pub fn BNGetDownloadProviderList(count: *mut usize) -> *mut *mut BNDownloadProvider;
23174}
23175unsafe extern "C" {
23176 pub fn BNFreeDownloadProviderList(providers: *mut *mut BNDownloadProvider);
23177}
23178unsafe extern "C" {
23179 pub fn BNGetDownloadProviderByName(
23180 name: *const ::std::os::raw::c_char,
23181 ) -> *mut BNDownloadProvider;
23182}
23183unsafe extern "C" {
23184 pub fn BNGetDownloadProviderName(
23185 provider: *mut BNDownloadProvider,
23186 ) -> *mut ::std::os::raw::c_char;
23187}
23188unsafe extern "C" {
23189 pub fn BNCreateDownloadProviderInstance(
23190 provider: *mut BNDownloadProvider,
23191 ) -> *mut BNDownloadInstance;
23192}
23193unsafe extern "C" {
23194 pub fn BNInitDownloadInstance(
23195 provider: *mut BNDownloadProvider,
23196 callbacks: *mut BNDownloadInstanceCallbacks,
23197 ) -> *mut BNDownloadInstance;
23198}
23199unsafe extern "C" {
23200 pub fn BNNewDownloadInstanceReference(
23201 instance: *mut BNDownloadInstance,
23202 ) -> *mut BNDownloadInstance;
23203}
23204unsafe extern "C" {
23205 pub fn BNFreeDownloadInstance(instance: *mut BNDownloadInstance);
23206}
23207unsafe extern "C" {
23208 pub fn BNFreeDownloadInstanceResponse(response: *mut BNDownloadInstanceResponse);
23209}
23210unsafe extern "C" {
23211 pub fn BNPerformDownloadRequest(
23212 instance: *mut BNDownloadInstance,
23213 url: *const ::std::os::raw::c_char,
23214 callbacks: *mut BNDownloadInstanceOutputCallbacks,
23215 ) -> ::std::os::raw::c_int;
23216}
23217unsafe extern "C" {
23218 pub fn BNPerformCustomRequest(
23219 instance: *mut BNDownloadInstance,
23220 method: *const ::std::os::raw::c_char,
23221 url: *const ::std::os::raw::c_char,
23222 headerCount: u64,
23223 headerKeys: *const *const ::std::os::raw::c_char,
23224 headerValues: *const *const ::std::os::raw::c_char,
23225 response: *mut *mut BNDownloadInstanceResponse,
23226 callbacks: *mut BNDownloadInstanceInputOutputCallbacks,
23227 ) -> ::std::os::raw::c_int;
23228}
23229unsafe extern "C" {
23230 pub fn BNReadDataForDownloadInstance(
23231 instance: *mut BNDownloadInstance,
23232 data: *mut u8,
23233 len: u64,
23234 ) -> i64;
23235}
23236unsafe extern "C" {
23237 pub fn BNWriteDataForDownloadInstance(
23238 instance: *mut BNDownloadInstance,
23239 data: *mut u8,
23240 len: u64,
23241 ) -> u64;
23242}
23243unsafe extern "C" {
23244 pub fn BNNotifyProgressForDownloadInstance(
23245 instance: *mut BNDownloadInstance,
23246 progress: u64,
23247 total: u64,
23248 ) -> bool;
23249}
23250unsafe extern "C" {
23251 pub fn BNGetErrorForDownloadInstance(
23252 instance: *mut BNDownloadInstance,
23253 ) -> *mut ::std::os::raw::c_char;
23254}
23255unsafe extern "C" {
23256 pub fn BNSetErrorForDownloadInstance(
23257 instance: *mut BNDownloadInstance,
23258 error: *const ::std::os::raw::c_char,
23259 );
23260}
23261unsafe extern "C" {
23262 #[doc = " Websocket providers"]
23263 pub fn BNRegisterWebsocketProvider(
23264 name: *const ::std::os::raw::c_char,
23265 callbacks: *mut BNWebsocketProviderCallbacks,
23266 ) -> *mut BNWebsocketProvider;
23267}
23268unsafe extern "C" {
23269 pub fn BNGetWebsocketProviderList(count: *mut usize) -> *mut *mut BNWebsocketProvider;
23270}
23271unsafe extern "C" {
23272 pub fn BNFreeWebsocketProviderList(providers: *mut *mut BNWebsocketProvider);
23273}
23274unsafe extern "C" {
23275 pub fn BNGetWebsocketProviderByName(
23276 name: *const ::std::os::raw::c_char,
23277 ) -> *mut BNWebsocketProvider;
23278}
23279unsafe extern "C" {
23280 pub fn BNGetWebsocketProviderName(
23281 provider: *mut BNWebsocketProvider,
23282 ) -> *mut ::std::os::raw::c_char;
23283}
23284unsafe extern "C" {
23285 pub fn BNCreateWebsocketProviderClient(
23286 provider: *mut BNWebsocketProvider,
23287 ) -> *mut BNWebsocketClient;
23288}
23289unsafe extern "C" {
23290 pub fn BNInitWebsocketClient(
23291 provider: *mut BNWebsocketProvider,
23292 callbacks: *mut BNWebsocketClientCallbacks,
23293 ) -> *mut BNWebsocketClient;
23294}
23295unsafe extern "C" {
23296 pub fn BNNewWebsocketClientReference(client: *mut BNWebsocketClient) -> *mut BNWebsocketClient;
23297}
23298unsafe extern "C" {
23299 pub fn BNFreeWebsocketClient(client: *mut BNWebsocketClient);
23300}
23301unsafe extern "C" {
23302 pub fn BNConnectWebsocketClient(
23303 client: *mut BNWebsocketClient,
23304 url: *const ::std::os::raw::c_char,
23305 headerCount: u64,
23306 headerKeys: *const *const ::std::os::raw::c_char,
23307 headerValues: *const *const ::std::os::raw::c_char,
23308 callbacks: *mut BNWebsocketClientOutputCallbacks,
23309 ) -> bool;
23310}
23311unsafe extern "C" {
23312 pub fn BNNotifyWebsocketClientConnect(client: *mut BNWebsocketClient) -> bool;
23313}
23314unsafe extern "C" {
23315 pub fn BNNotifyWebsocketClientDisconnect(client: *mut BNWebsocketClient);
23316}
23317unsafe extern "C" {
23318 pub fn BNNotifyWebsocketClientError(
23319 client: *mut BNWebsocketClient,
23320 msg: *const ::std::os::raw::c_char,
23321 );
23322}
23323unsafe extern "C" {
23324 pub fn BNNotifyWebsocketClientReadData(
23325 client: *mut BNWebsocketClient,
23326 data: *mut u8,
23327 len: u64,
23328 ) -> bool;
23329}
23330unsafe extern "C" {
23331 pub fn BNWriteWebsocketClientData(
23332 client: *mut BNWebsocketClient,
23333 data: *const u8,
23334 len: u64,
23335 ) -> u64;
23336}
23337unsafe extern "C" {
23338 pub fn BNDisconnectWebsocketClient(client: *mut BNWebsocketClient) -> bool;
23339}
23340unsafe extern "C" {
23341 #[doc = " Scripting providers"]
23342 pub fn BNRegisterScriptingProvider(
23343 name: *const ::std::os::raw::c_char,
23344 apiName: *const ::std::os::raw::c_char,
23345 callbacks: *mut BNScriptingProviderCallbacks,
23346 ) -> *mut BNScriptingProvider;
23347}
23348unsafe extern "C" {
23349 pub fn BNGetScriptingProviderList(count: *mut usize) -> *mut *mut BNScriptingProvider;
23350}
23351unsafe extern "C" {
23352 pub fn BNFreeScriptingProviderList(providers: *mut *mut BNScriptingProvider);
23353}
23354unsafe extern "C" {
23355 pub fn BNGetScriptingProviderByName(
23356 name: *const ::std::os::raw::c_char,
23357 ) -> *mut BNScriptingProvider;
23358}
23359unsafe extern "C" {
23360 pub fn BNGetScriptingProviderByAPIName(
23361 name: *const ::std::os::raw::c_char,
23362 ) -> *mut BNScriptingProvider;
23363}
23364unsafe extern "C" {
23365 pub fn BNGetScriptingProviderName(
23366 provider: *mut BNScriptingProvider,
23367 ) -> *mut ::std::os::raw::c_char;
23368}
23369unsafe extern "C" {
23370 pub fn BNGetScriptingProviderAPIName(
23371 provider: *mut BNScriptingProvider,
23372 ) -> *mut ::std::os::raw::c_char;
23373}
23374unsafe extern "C" {
23375 pub fn BNCreateScriptingProviderInstance(
23376 provider: *mut BNScriptingProvider,
23377 ) -> *mut BNScriptingInstance;
23378}
23379unsafe extern "C" {
23380 pub fn BNLoadScriptingProviderModule(
23381 provider: *mut BNScriptingProvider,
23382 repository: *const ::std::os::raw::c_char,
23383 module: *const ::std::os::raw::c_char,
23384 force: bool,
23385 ) -> bool;
23386}
23387unsafe extern "C" {
23388 pub fn BNInstallScriptingProviderModules(
23389 provider: *mut BNScriptingProvider,
23390 modules: *const ::std::os::raw::c_char,
23391 ) -> bool;
23392}
23393unsafe extern "C" {
23394 pub fn BNInitScriptingInstance(
23395 provider: *mut BNScriptingProvider,
23396 callbacks: *mut BNScriptingInstanceCallbacks,
23397 ) -> *mut BNScriptingInstance;
23398}
23399unsafe extern "C" {
23400 pub fn BNNewScriptingInstanceReference(
23401 instance: *mut BNScriptingInstance,
23402 ) -> *mut BNScriptingInstance;
23403}
23404unsafe extern "C" {
23405 pub fn BNFreeScriptingInstance(instance: *mut BNScriptingInstance);
23406}
23407unsafe extern "C" {
23408 pub fn BNNotifyOutputForScriptingInstance(
23409 instance: *mut BNScriptingInstance,
23410 text: *const ::std::os::raw::c_char,
23411 );
23412}
23413unsafe extern "C" {
23414 pub fn BNNotifyWarningForScriptingInstance(
23415 instance: *mut BNScriptingInstance,
23416 text: *const ::std::os::raw::c_char,
23417 );
23418}
23419unsafe extern "C" {
23420 pub fn BNNotifyErrorForScriptingInstance(
23421 instance: *mut BNScriptingInstance,
23422 text: *const ::std::os::raw::c_char,
23423 );
23424}
23425unsafe extern "C" {
23426 pub fn BNNotifyInputReadyStateForScriptingInstance(
23427 instance: *mut BNScriptingInstance,
23428 state: BNScriptingProviderInputReadyState,
23429 );
23430}
23431unsafe extern "C" {
23432 pub fn BNRegisterScriptingInstanceOutputListener(
23433 instance: *mut BNScriptingInstance,
23434 callbacks: *mut BNScriptingOutputListener,
23435 );
23436}
23437unsafe extern "C" {
23438 pub fn BNUnregisterScriptingInstanceOutputListener(
23439 instance: *mut BNScriptingInstance,
23440 callbacks: *mut BNScriptingOutputListener,
23441 );
23442}
23443unsafe extern "C" {
23444 pub fn BNGetScriptingInstanceDelimiters(
23445 instance: *mut BNScriptingInstance,
23446 ) -> *mut ::std::os::raw::c_char;
23447}
23448unsafe extern "C" {
23449 pub fn BNSetScriptingInstanceDelimiters(
23450 instance: *mut BNScriptingInstance,
23451 delimiters: *const ::std::os::raw::c_char,
23452 );
23453}
23454unsafe extern "C" {
23455 pub fn BNGetScriptingInstanceInputReadyState(
23456 instance: *mut BNScriptingInstance,
23457 ) -> BNScriptingProviderInputReadyState;
23458}
23459unsafe extern "C" {
23460 pub fn BNExecuteScriptInput(
23461 instance: *mut BNScriptingInstance,
23462 input: *const ::std::os::raw::c_char,
23463 ) -> BNScriptingProviderExecuteResult;
23464}
23465unsafe extern "C" {
23466 pub fn BNExecuteScriptInputFromFilename(
23467 instance: *mut BNScriptingInstance,
23468 filename: *const ::std::os::raw::c_char,
23469 ) -> BNScriptingProviderExecuteResult;
23470}
23471unsafe extern "C" {
23472 pub fn BNCancelScriptInput(instance: *mut BNScriptingInstance);
23473}
23474unsafe extern "C" {
23475 pub fn BNScriptingInstanceReleaseBinaryView(
23476 instance: *mut BNScriptingInstance,
23477 view: *mut BNBinaryView,
23478 );
23479}
23480unsafe extern "C" {
23481 pub fn BNSetScriptingInstanceCurrentBinaryView(
23482 instance: *mut BNScriptingInstance,
23483 view: *mut BNBinaryView,
23484 );
23485}
23486unsafe extern "C" {
23487 pub fn BNSetScriptingInstanceCurrentFunction(
23488 instance: *mut BNScriptingInstance,
23489 func: *mut BNFunction,
23490 );
23491}
23492unsafe extern "C" {
23493 pub fn BNSetScriptingInstanceCurrentBasicBlock(
23494 instance: *mut BNScriptingInstance,
23495 block: *mut BNBasicBlock,
23496 );
23497}
23498unsafe extern "C" {
23499 pub fn BNSetScriptingInstanceCurrentAddress(instance: *mut BNScriptingInstance, addr: u64);
23500}
23501unsafe extern "C" {
23502 pub fn BNSetScriptingInstanceCurrentSelection(
23503 instance: *mut BNScriptingInstance,
23504 begin: u64,
23505 end: u64,
23506 );
23507}
23508unsafe extern "C" {
23509 pub fn BNScriptingInstanceCompleteInput(
23510 instance: *mut BNScriptingInstance,
23511 text: *const ::std::os::raw::c_char,
23512 state: u64,
23513 ) -> *mut ::std::os::raw::c_char;
23514}
23515unsafe extern "C" {
23516 pub fn BNStopScriptingInstance(instance: *mut BNScriptingInstance);
23517}
23518unsafe extern "C" {
23519 pub fn BNFuzzyMatchSingle(
23520 target: *const ::std::os::raw::c_char,
23521 query: *const ::std::os::raw::c_char,
23522 ) -> usize;
23523}
23524unsafe extern "C" {
23525 #[doc = " Main thread actions"]
23526 pub fn BNRegisterMainThread(callbacks: *mut BNMainThreadCallbacks);
23527}
23528unsafe extern "C" {
23529 pub fn BNNewMainThreadActionReference(
23530 action: *mut BNMainThreadAction,
23531 ) -> *mut BNMainThreadAction;
23532}
23533unsafe extern "C" {
23534 pub fn BNFreeMainThreadAction(action: *mut BNMainThreadAction);
23535}
23536unsafe extern "C" {
23537 pub fn BNExecuteMainThreadAction(action: *mut BNMainThreadAction);
23538}
23539unsafe extern "C" {
23540 pub fn BNIsMainThreadActionDone(action: *mut BNMainThreadAction) -> bool;
23541}
23542unsafe extern "C" {
23543 pub fn BNWaitForMainThreadAction(action: *mut BNMainThreadAction);
23544}
23545unsafe extern "C" {
23546 pub fn BNExecuteOnMainThread(
23547 ctxt: *mut ::std::os::raw::c_void,
23548 func: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
23549 ) -> *mut BNMainThreadAction;
23550}
23551unsafe extern "C" {
23552 pub fn BNExecuteOnMainThreadAndWait(
23553 ctxt: *mut ::std::os::raw::c_void,
23554 func: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
23555 );
23556}
23557unsafe extern "C" {
23558 pub fn BNIsMainThread() -> bool;
23559}
23560unsafe extern "C" {
23561 #[doc = " Worker thread queue management"]
23562 pub fn BNWorkerEnqueue(
23563 ctxt: *mut ::std::os::raw::c_void,
23564 action: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
23565 );
23566}
23567unsafe extern "C" {
23568 pub fn BNWorkerEnqueueNamed(
23569 ctxt: *mut ::std::os::raw::c_void,
23570 action: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
23571 name: *const ::std::os::raw::c_char,
23572 );
23573}
23574unsafe extern "C" {
23575 pub fn BNWorkerPriorityEnqueue(
23576 ctxt: *mut ::std::os::raw::c_void,
23577 action: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
23578 );
23579}
23580unsafe extern "C" {
23581 pub fn BNWorkerPriorityEnqueueNamed(
23582 ctxt: *mut ::std::os::raw::c_void,
23583 action: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
23584 name: *const ::std::os::raw::c_char,
23585 );
23586}
23587unsafe extern "C" {
23588 pub fn BNWorkerInteractiveEnqueue(
23589 ctxt: *mut ::std::os::raw::c_void,
23590 action: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
23591 );
23592}
23593unsafe extern "C" {
23594 pub fn BNWorkerInteractiveEnqueueNamed(
23595 ctxt: *mut ::std::os::raw::c_void,
23596 action: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
23597 name: *const ::std::os::raw::c_char,
23598 );
23599}
23600unsafe extern "C" {
23601 pub fn BNGetWorkerThreadCount() -> usize;
23602}
23603unsafe extern "C" {
23604 pub fn BNSetWorkerThreadCount(count: usize);
23605}
23606unsafe extern "C" {
23607 pub fn BNSetThreadName(name: *const ::std::os::raw::c_char);
23608}
23609unsafe extern "C" {
23610 #[doc = " Background task progress reporting"]
23611 pub fn BNBeginBackgroundTask(
23612 initialText: *const ::std::os::raw::c_char,
23613 canCancel: bool,
23614 ) -> *mut BNBackgroundTask;
23615}
23616unsafe extern "C" {
23617 pub fn BNFinishBackgroundTask(task: *mut BNBackgroundTask);
23618}
23619unsafe extern "C" {
23620 pub fn BNSetBackgroundTaskProgressText(
23621 task: *mut BNBackgroundTask,
23622 text: *const ::std::os::raw::c_char,
23623 );
23624}
23625unsafe extern "C" {
23626 pub fn BNIsBackgroundTaskCancelled(task: *mut BNBackgroundTask) -> bool;
23627}
23628unsafe extern "C" {
23629 pub fn BNGetRunningBackgroundTasks(count: *mut usize) -> *mut *mut BNBackgroundTask;
23630}
23631unsafe extern "C" {
23632 pub fn BNNewBackgroundTaskReference(task: *mut BNBackgroundTask) -> *mut BNBackgroundTask;
23633}
23634unsafe extern "C" {
23635 pub fn BNFreeBackgroundTask(task: *mut BNBackgroundTask);
23636}
23637unsafe extern "C" {
23638 pub fn BNFreeBackgroundTaskList(tasks: *mut *mut BNBackgroundTask, count: usize);
23639}
23640unsafe extern "C" {
23641 pub fn BNGetBackgroundTaskProgressText(
23642 task: *mut BNBackgroundTask,
23643 ) -> *mut ::std::os::raw::c_char;
23644}
23645unsafe extern "C" {
23646 pub fn BNGetBackgroundTaskRuntimeSeconds(task: *mut BNBackgroundTask) -> u64;
23647}
23648unsafe extern "C" {
23649 pub fn BNCanCancelBackgroundTask(task: *mut BNBackgroundTask) -> bool;
23650}
23651unsafe extern "C" {
23652 pub fn BNCancelBackgroundTask(task: *mut BNBackgroundTask);
23653}
23654unsafe extern "C" {
23655 pub fn BNIsBackgroundTaskFinished(task: *mut BNBackgroundTask) -> bool;
23656}
23657unsafe extern "C" {
23658 #[doc = " Interaction APIs"]
23659 pub fn BNRegisterInteractionHandler(callbacks: *mut BNInteractionHandlerCallbacks);
23660}
23661unsafe extern "C" {
23662 pub fn BNMarkdownToHTML(contents: *const ::std::os::raw::c_char)
23663 -> *mut ::std::os::raw::c_char;
23664}
23665unsafe extern "C" {
23666 pub fn BNShowPlainTextReport(
23667 view: *mut BNBinaryView,
23668 title: *const ::std::os::raw::c_char,
23669 contents: *const ::std::os::raw::c_char,
23670 );
23671}
23672unsafe extern "C" {
23673 pub fn BNShowMarkdownReport(
23674 view: *mut BNBinaryView,
23675 title: *const ::std::os::raw::c_char,
23676 contents: *const ::std::os::raw::c_char,
23677 plaintext: *const ::std::os::raw::c_char,
23678 );
23679}
23680unsafe extern "C" {
23681 pub fn BNShowHTMLReport(
23682 view: *mut BNBinaryView,
23683 title: *const ::std::os::raw::c_char,
23684 contents: *const ::std::os::raw::c_char,
23685 plaintext: *const ::std::os::raw::c_char,
23686 );
23687}
23688unsafe extern "C" {
23689 pub fn BNShowGraphReport(
23690 view: *mut BNBinaryView,
23691 title: *const ::std::os::raw::c_char,
23692 graph: *mut BNFlowGraph,
23693 );
23694}
23695unsafe extern "C" {
23696 pub fn BNShowReportCollection(
23697 title: *const ::std::os::raw::c_char,
23698 reports: *mut BNReportCollection,
23699 );
23700}
23701unsafe extern "C" {
23702 pub fn BNGetTextLineInput(
23703 result: *mut *mut ::std::os::raw::c_char,
23704 prompt: *const ::std::os::raw::c_char,
23705 title: *const ::std::os::raw::c_char,
23706 ) -> bool;
23707}
23708unsafe extern "C" {
23709 pub fn BNGetIntegerInput(
23710 result: *mut i64,
23711 prompt: *const ::std::os::raw::c_char,
23712 title: *const ::std::os::raw::c_char,
23713 ) -> bool;
23714}
23715unsafe extern "C" {
23716 pub fn BNGetAddressInput(
23717 result: *mut u64,
23718 prompt: *const ::std::os::raw::c_char,
23719 title: *const ::std::os::raw::c_char,
23720 view: *mut BNBinaryView,
23721 currentAddr: u64,
23722 ) -> bool;
23723}
23724unsafe extern "C" {
23725 pub fn BNGetChoiceInput(
23726 result: *mut usize,
23727 prompt: *const ::std::os::raw::c_char,
23728 title: *const ::std::os::raw::c_char,
23729 choices: *mut *const ::std::os::raw::c_char,
23730 count: usize,
23731 ) -> bool;
23732}
23733unsafe extern "C" {
23734 pub fn BNGetLargeChoiceInput(
23735 result: *mut usize,
23736 prompt: *const ::std::os::raw::c_char,
23737 title: *const ::std::os::raw::c_char,
23738 choices: *mut *const ::std::os::raw::c_char,
23739 count: usize,
23740 ) -> bool;
23741}
23742unsafe extern "C" {
23743 pub fn BNGetOpenFileNameInput(
23744 result: *mut *mut ::std::os::raw::c_char,
23745 prompt: *const ::std::os::raw::c_char,
23746 ext: *const ::std::os::raw::c_char,
23747 ) -> bool;
23748}
23749unsafe extern "C" {
23750 pub fn BNGetSaveFileNameInput(
23751 result: *mut *mut ::std::os::raw::c_char,
23752 prompt: *const ::std::os::raw::c_char,
23753 ext: *const ::std::os::raw::c_char,
23754 defaultName: *const ::std::os::raw::c_char,
23755 ) -> bool;
23756}
23757unsafe extern "C" {
23758 pub fn BNGetDirectoryNameInput(
23759 result: *mut *mut ::std::os::raw::c_char,
23760 prompt: *const ::std::os::raw::c_char,
23761 defaultName: *const ::std::os::raw::c_char,
23762 ) -> bool;
23763}
23764unsafe extern "C" {
23765 pub fn BNGetCheckboxInput(
23766 result: *mut i64,
23767 prompt: *const ::std::os::raw::c_char,
23768 title: *const ::std::os::raw::c_char,
23769 defaultChoice: *const i64,
23770 ) -> bool;
23771}
23772unsafe extern "C" {
23773 pub fn BNGetFormInput(
23774 fields: *mut BNFormInputField,
23775 count: usize,
23776 title: *const ::std::os::raw::c_char,
23777 ) -> bool;
23778}
23779unsafe extern "C" {
23780 pub fn BNFreeFormInputResults(fields: *mut BNFormInputField, count: usize);
23781}
23782unsafe extern "C" {
23783 pub fn BNShowMessageBox(
23784 title: *const ::std::os::raw::c_char,
23785 text: *const ::std::os::raw::c_char,
23786 buttons: BNMessageBoxButtonSet,
23787 icon: BNMessageBoxIcon,
23788 ) -> BNMessageBoxButtonResult;
23789}
23790unsafe extern "C" {
23791 pub fn BNOpenUrl(url: *const ::std::os::raw::c_char) -> bool;
23792}
23793unsafe extern "C" {
23794 pub fn BNRunProgressDialog(
23795 title: *const ::std::os::raw::c_char,
23796 canCancel: bool,
23797 task: ::std::option::Option<
23798 unsafe extern "C" fn(
23799 taskCtxt: *mut ::std::os::raw::c_void,
23800 progress: BNProgressFunction,
23801 progressCtxt: *mut ::std::os::raw::c_void,
23802 ),
23803 >,
23804 taskCtxt: *mut ::std::os::raw::c_void,
23805 ) -> bool;
23806}
23807unsafe extern "C" {
23808 pub fn BNCreateReportCollection() -> *mut BNReportCollection;
23809}
23810unsafe extern "C" {
23811 pub fn BNNewReportCollectionReference(
23812 reports: *mut BNReportCollection,
23813 ) -> *mut BNReportCollection;
23814}
23815unsafe extern "C" {
23816 pub fn BNFreeReportCollection(reports: *mut BNReportCollection);
23817}
23818unsafe extern "C" {
23819 pub fn BNGetReportCollectionCount(reports: *mut BNReportCollection) -> usize;
23820}
23821unsafe extern "C" {
23822 pub fn BNGetReportType(reports: *mut BNReportCollection, i: usize) -> BNReportType;
23823}
23824unsafe extern "C" {
23825 pub fn BNGetReportView(reports: *mut BNReportCollection, i: usize) -> *mut BNBinaryView;
23826}
23827unsafe extern "C" {
23828 pub fn BNGetReportTitle(
23829 reports: *mut BNReportCollection,
23830 i: usize,
23831 ) -> *mut ::std::os::raw::c_char;
23832}
23833unsafe extern "C" {
23834 pub fn BNGetReportContents(
23835 reports: *mut BNReportCollection,
23836 i: usize,
23837 ) -> *mut ::std::os::raw::c_char;
23838}
23839unsafe extern "C" {
23840 pub fn BNGetReportPlainText(
23841 reports: *mut BNReportCollection,
23842 i: usize,
23843 ) -> *mut ::std::os::raw::c_char;
23844}
23845unsafe extern "C" {
23846 pub fn BNGetReportFlowGraph(reports: *mut BNReportCollection, i: usize) -> *mut BNFlowGraph;
23847}
23848unsafe extern "C" {
23849 pub fn BNAddPlainTextReportToCollection(
23850 reports: *mut BNReportCollection,
23851 view: *mut BNBinaryView,
23852 title: *const ::std::os::raw::c_char,
23853 contents: *const ::std::os::raw::c_char,
23854 );
23855}
23856unsafe extern "C" {
23857 pub fn BNAddMarkdownReportToCollection(
23858 reports: *mut BNReportCollection,
23859 view: *mut BNBinaryView,
23860 title: *const ::std::os::raw::c_char,
23861 contents: *const ::std::os::raw::c_char,
23862 plaintext: *const ::std::os::raw::c_char,
23863 );
23864}
23865unsafe extern "C" {
23866 pub fn BNAddHTMLReportToCollection(
23867 reports: *mut BNReportCollection,
23868 view: *mut BNBinaryView,
23869 title: *const ::std::os::raw::c_char,
23870 contents: *const ::std::os::raw::c_char,
23871 plaintext: *const ::std::os::raw::c_char,
23872 );
23873}
23874unsafe extern "C" {
23875 pub fn BNAddGraphReportToCollection(
23876 reports: *mut BNReportCollection,
23877 view: *mut BNBinaryView,
23878 title: *const ::std::os::raw::c_char,
23879 graph: *mut BNFlowGraph,
23880 );
23881}
23882unsafe extern "C" {
23883 pub fn BNUpdateReportFlowGraph(
23884 reports: *mut BNReportCollection,
23885 i: usize,
23886 graph: *mut BNFlowGraph,
23887 );
23888}
23889unsafe extern "C" {
23890 #[doc = " Demangler"]
23891 pub fn BNDemangleMS(
23892 arch: *mut BNArchitecture,
23893 mangledName: *const ::std::os::raw::c_char,
23894 outType: *mut *mut BNType,
23895 outVarName: *mut *mut *mut ::std::os::raw::c_char,
23896 outVarNameElements: *mut usize,
23897 simplify: bool,
23898 ) -> bool;
23899}
23900unsafe extern "C" {
23901 pub fn BNDemangleMSWithOptions(
23902 arch: *mut BNArchitecture,
23903 mangledName: *const ::std::os::raw::c_char,
23904 outType: *mut *mut BNType,
23905 outVarName: *mut *mut *mut ::std::os::raw::c_char,
23906 outVarNameElements: *mut usize,
23907 view: *const BNBinaryView,
23908 ) -> bool;
23909}
23910unsafe extern "C" {
23911 pub fn BNDemangleMSPlatform(
23912 platform: *mut BNPlatform,
23913 mangledName: *const ::std::os::raw::c_char,
23914 outType: *mut *mut BNType,
23915 outVarName: *mut *mut *mut ::std::os::raw::c_char,
23916 outVarNameElements: *mut usize,
23917 simplify: bool,
23918 ) -> bool;
23919}
23920unsafe extern "C" {
23921 pub fn BNIsGNU3MangledString(mangledName: *const ::std::os::raw::c_char) -> bool;
23922}
23923unsafe extern "C" {
23924 pub fn BNDemangleGNU3(
23925 arch: *mut BNArchitecture,
23926 mangledName: *const ::std::os::raw::c_char,
23927 outType: *mut *mut BNType,
23928 outVarName: *mut *mut *mut ::std::os::raw::c_char,
23929 outVarNameElements: *mut usize,
23930 simplify: bool,
23931 ) -> bool;
23932}
23933unsafe extern "C" {
23934 pub fn BNDemangleGNU3WithOptions(
23935 arch: *mut BNArchitecture,
23936 mangledName: *const ::std::os::raw::c_char,
23937 outType: *mut *mut BNType,
23938 outVarName: *mut *mut *mut ::std::os::raw::c_char,
23939 outVarNameElements: *mut usize,
23940 view: *const BNBinaryView,
23941 ) -> bool;
23942}
23943unsafe extern "C" {
23944 pub fn BNFreeDemangledName(name: *mut *mut *mut ::std::os::raw::c_char, nameElements: usize);
23945}
23946unsafe extern "C" {
23947 pub fn BNDemangleLLVM(
23948 mangledName: *const ::std::os::raw::c_char,
23949 outVarName: *mut *mut *mut ::std::os::raw::c_char,
23950 outVarNameElements: *mut usize,
23951 simplify: bool,
23952 ) -> bool;
23953}
23954unsafe extern "C" {
23955 pub fn BNDemangleLLVMWithOptions(
23956 mangledName: *const ::std::os::raw::c_char,
23957 outVarName: *mut *mut *mut ::std::os::raw::c_char,
23958 outVarNameElements: *mut usize,
23959 view: *const BNBinaryView,
23960 ) -> bool;
23961}
23962unsafe extern "C" {
23963 pub fn BNRegisterDemangler(
23964 name: *const ::std::os::raw::c_char,
23965 callbacks: *mut BNDemanglerCallbacks,
23966 ) -> *mut BNDemangler;
23967}
23968unsafe extern "C" {
23969 pub fn BNGetDemanglerList(count: *mut usize) -> *mut *mut BNDemangler;
23970}
23971unsafe extern "C" {
23972 pub fn BNFreeDemanglerList(demanglers: *mut *mut BNDemangler);
23973}
23974unsafe extern "C" {
23975 pub fn BNGetDemanglerByName(name: *const ::std::os::raw::c_char) -> *mut BNDemangler;
23976}
23977unsafe extern "C" {
23978 pub fn BNGetDemanglerName(demangler: *mut BNDemangler) -> *mut ::std::os::raw::c_char;
23979}
23980unsafe extern "C" {
23981 pub fn BNPromoteDemangler(demangler: *mut BNDemangler);
23982}
23983unsafe extern "C" {
23984 pub fn BNIsDemanglerMangledName(
23985 demangler: *mut BNDemangler,
23986 name: *const ::std::os::raw::c_char,
23987 ) -> bool;
23988}
23989unsafe extern "C" {
23990 pub fn BNDemanglerDemangle(
23991 demangler: *mut BNDemangler,
23992 arch: *mut BNArchitecture,
23993 name: *const ::std::os::raw::c_char,
23994 outType: *mut *mut BNType,
23995 outVarName: *mut BNQualifiedName,
23996 view: *mut BNBinaryView,
23997 ) -> bool;
23998}
23999unsafe extern "C" {
24000 pub fn BNDemangleGeneric(
24001 arch: *mut BNArchitecture,
24002 name: *const ::std::os::raw::c_char,
24003 outType: *mut *mut BNType,
24004 outVarName: *mut BNQualifiedName,
24005 view: *mut BNBinaryView,
24006 simplify: bool,
24007 ) -> bool;
24008}
24009unsafe extern "C" {
24010 #[doc = " Plugin repository APIs"]
24011 pub fn BNPluginGetApis(
24012 p: *mut BNRepoPlugin,
24013 count: *mut usize,
24014 ) -> *mut *mut ::std::os::raw::c_char;
24015}
24016unsafe extern "C" {
24017 pub fn BNPluginGetAuthor(p: *mut BNRepoPlugin) -> *const ::std::os::raw::c_char;
24018}
24019unsafe extern "C" {
24020 pub fn BNPluginGetDescription(p: *mut BNRepoPlugin) -> *const ::std::os::raw::c_char;
24021}
24022unsafe extern "C" {
24023 pub fn BNPluginGetLicenseText(p: *mut BNRepoPlugin) -> *const ::std::os::raw::c_char;
24024}
24025unsafe extern "C" {
24026 pub fn BNPluginGetLongdescription(p: *mut BNRepoPlugin) -> *const ::std::os::raw::c_char;
24027}
24028unsafe extern "C" {
24029 pub fn BNPluginGetMinimumVersionInfo(p: *mut BNRepoPlugin) -> BNVersionInfo;
24030}
24031unsafe extern "C" {
24032 pub fn BNPluginGetMaximumVersionInfo(p: *mut BNRepoPlugin) -> BNVersionInfo;
24033}
24034unsafe extern "C" {
24035 pub fn BNParseVersionString(v: *const ::std::os::raw::c_char) -> BNVersionInfo;
24036}
24037unsafe extern "C" {
24038 pub fn BNVersionLessThan(smaller: BNVersionInfo, larger: BNVersionInfo) -> bool;
24039}
24040unsafe extern "C" {
24041 pub fn BNPluginGetName(p: *mut BNRepoPlugin) -> *const ::std::os::raw::c_char;
24042}
24043unsafe extern "C" {
24044 pub fn BNPluginGetProjectUrl(p: *mut BNRepoPlugin) -> *const ::std::os::raw::c_char;
24045}
24046unsafe extern "C" {
24047 pub fn BNPluginGetPackageUrl(p: *mut BNRepoPlugin) -> *const ::std::os::raw::c_char;
24048}
24049unsafe extern "C" {
24050 pub fn BNPluginGetAuthorUrl(p: *mut BNRepoPlugin) -> *const ::std::os::raw::c_char;
24051}
24052unsafe extern "C" {
24053 pub fn BNPluginGetVersion(p: *mut BNRepoPlugin) -> *const ::std::os::raw::c_char;
24054}
24055unsafe extern "C" {
24056 pub fn BNPluginGetCommit(p: *mut BNRepoPlugin) -> *const ::std::os::raw::c_char;
24057}
24058unsafe extern "C" {
24059 pub fn BNPluginGetViewOnly(p: *mut BNRepoPlugin) -> bool;
24060}
24061unsafe extern "C" {
24062 pub fn BNFreePluginTypes(r: *mut BNPluginType);
24063}
24064unsafe extern "C" {
24065 pub fn BNNewPluginReference(r: *mut BNRepoPlugin) -> *mut BNRepoPlugin;
24066}
24067unsafe extern "C" {
24068 pub fn BNFreePlugin(plugin: *mut BNRepoPlugin);
24069}
24070unsafe extern "C" {
24071 pub fn BNPluginGetPath(p: *mut BNRepoPlugin) -> *const ::std::os::raw::c_char;
24072}
24073unsafe extern "C" {
24074 pub fn BNPluginGetSubdir(p: *mut BNRepoPlugin) -> *const ::std::os::raw::c_char;
24075}
24076unsafe extern "C" {
24077 pub fn BNPluginGetDependencies(p: *mut BNRepoPlugin) -> *const ::std::os::raw::c_char;
24078}
24079unsafe extern "C" {
24080 pub fn BNPluginIsInstalled(p: *mut BNRepoPlugin) -> bool;
24081}
24082unsafe extern "C" {
24083 pub fn BNPluginIsEnabled(p: *mut BNRepoPlugin) -> bool;
24084}
24085unsafe extern "C" {
24086 pub fn BNPluginGetPluginStatus(p: *mut BNRepoPlugin) -> BNPluginStatus;
24087}
24088unsafe extern "C" {
24089 pub fn BNPluginGetPluginTypes(p: *mut BNRepoPlugin, count: *mut usize) -> *mut BNPluginType;
24090}
24091unsafe extern "C" {
24092 pub fn BNPluginEnable(p: *mut BNRepoPlugin, force: bool) -> bool;
24093}
24094unsafe extern "C" {
24095 pub fn BNPluginDisable(p: *mut BNRepoPlugin) -> bool;
24096}
24097unsafe extern "C" {
24098 pub fn BNPluginInstall(p: *mut BNRepoPlugin) -> bool;
24099}
24100unsafe extern "C" {
24101 pub fn BNPluginInstallDependencies(p: *mut BNRepoPlugin) -> bool;
24102}
24103unsafe extern "C" {
24104 pub fn BNPluginUninstall(p: *mut BNRepoPlugin) -> bool;
24105}
24106unsafe extern "C" {
24107 pub fn BNPluginUpdate(p: *mut BNRepoPlugin) -> bool;
24108}
24109unsafe extern "C" {
24110 pub fn BNPluginGetPlatforms(
24111 p: *mut BNRepoPlugin,
24112 count: *mut usize,
24113 ) -> *mut *mut ::std::os::raw::c_char;
24114}
24115unsafe extern "C" {
24116 pub fn BNFreePluginPlatforms(platforms: *mut *mut ::std::os::raw::c_char, count: usize);
24117}
24118unsafe extern "C" {
24119 pub fn BNPluginGetRepository(p: *mut BNRepoPlugin) -> *const ::std::os::raw::c_char;
24120}
24121unsafe extern "C" {
24122 pub fn BNPluginIsBeingDeleted(p: *mut BNRepoPlugin) -> bool;
24123}
24124unsafe extern "C" {
24125 pub fn BNPluginIsBeingUpdated(p: *mut BNRepoPlugin) -> bool;
24126}
24127unsafe extern "C" {
24128 pub fn BNPluginIsRunning(p: *mut BNRepoPlugin) -> bool;
24129}
24130unsafe extern "C" {
24131 pub fn BNPluginIsUpdatePending(p: *mut BNRepoPlugin) -> bool;
24132}
24133unsafe extern "C" {
24134 pub fn BNPluginIsDisablePending(p: *mut BNRepoPlugin) -> bool;
24135}
24136unsafe extern "C" {
24137 pub fn BNPluginIsDeletePending(p: *mut BNRepoPlugin) -> bool;
24138}
24139unsafe extern "C" {
24140 pub fn BNPluginIsUpdateAvailable(p: *mut BNRepoPlugin) -> bool;
24141}
24142unsafe extern "C" {
24143 pub fn BNPluginAreDependenciesBeingInstalled(p: *mut BNRepoPlugin) -> bool;
24144}
24145unsafe extern "C" {
24146 pub fn BNPluginGetProjectData(p: *mut BNRepoPlugin) -> *mut ::std::os::raw::c_char;
24147}
24148unsafe extern "C" {
24149 pub fn BNPluginGetLastUpdate(p: *mut BNRepoPlugin) -> u64;
24150}
24151unsafe extern "C" {
24152 pub fn BNNewRepositoryReference(r: *mut BNRepository) -> *mut BNRepository;
24153}
24154unsafe extern "C" {
24155 pub fn BNFreeRepository(r: *mut BNRepository);
24156}
24157unsafe extern "C" {
24158 pub fn BNRepositoryGetUrl(r: *mut BNRepository) -> *mut ::std::os::raw::c_char;
24159}
24160unsafe extern "C" {
24161 pub fn BNRepositoryGetRepoPath(r: *mut BNRepository) -> *mut ::std::os::raw::c_char;
24162}
24163unsafe extern "C" {
24164 pub fn BNRepositoryGetPlugins(
24165 r: *mut BNRepository,
24166 count: *mut usize,
24167 ) -> *mut *mut BNRepoPlugin;
24168}
24169unsafe extern "C" {
24170 pub fn BNFreeRepositoryPluginList(r: *mut *mut BNRepoPlugin);
24171}
24172unsafe extern "C" {
24173 pub fn BNRepositoryFreePluginDirectoryList(
24174 list: *mut *mut ::std::os::raw::c_char,
24175 count: usize,
24176 );
24177}
24178unsafe extern "C" {
24179 pub fn BNRepositoryGetPluginByPath(
24180 r: *mut BNRepository,
24181 pluginPath: *const ::std::os::raw::c_char,
24182 ) -> *mut BNRepoPlugin;
24183}
24184unsafe extern "C" {
24185 pub fn BNRepositoryGetPluginsPath(r: *mut BNRepository) -> *const ::std::os::raw::c_char;
24186}
24187unsafe extern "C" {
24188 pub fn BNCreateRepositoryManager(
24189 enabledPluginsPath: *const ::std::os::raw::c_char,
24190 ) -> *mut BNRepositoryManager;
24191}
24192unsafe extern "C" {
24193 pub fn BNNewRepositoryManagerReference(r: *mut BNRepositoryManager)
24194 -> *mut BNRepositoryManager;
24195}
24196unsafe extern "C" {
24197 pub fn BNFreeRepositoryManager(r: *mut BNRepositoryManager);
24198}
24199unsafe extern "C" {
24200 pub fn BNRepositoryManagerCheckForUpdates(r: *mut BNRepositoryManager) -> bool;
24201}
24202unsafe extern "C" {
24203 pub fn BNRepositoryManagerGetRepositories(
24204 r: *mut BNRepositoryManager,
24205 count: *mut usize,
24206 ) -> *mut *mut BNRepository;
24207}
24208unsafe extern "C" {
24209 pub fn BNFreeRepositoryManagerRepositoriesList(r: *mut *mut BNRepository);
24210}
24211unsafe extern "C" {
24212 pub fn BNRepositoryManagerAddRepository(
24213 r: *mut BNRepositoryManager,
24214 url: *const ::std::os::raw::c_char,
24215 repoPath: *const ::std::os::raw::c_char,
24216 ) -> bool;
24217}
24218unsafe extern "C" {
24219 pub fn BNRepositoryGetRepositoryByPath(
24220 r: *mut BNRepositoryManager,
24221 repoPath: *const ::std::os::raw::c_char,
24222 ) -> *mut BNRepository;
24223}
24224unsafe extern "C" {
24225 pub fn BNGetRepositoryManager() -> *mut BNRepositoryManager;
24226}
24227unsafe extern "C" {
24228 pub fn BNRepositoryManagerGetDefaultRepository(
24229 r: *mut BNRepositoryManager,
24230 ) -> *mut BNRepository;
24231}
24232unsafe extern "C" {
24233 #[doc = " Components"]
24234 pub fn BNNewComponentReference(component: *mut BNComponent) -> *mut BNComponent;
24235}
24236unsafe extern "C" {
24237 pub fn BNFreeComponent(component: *mut BNComponent);
24238}
24239unsafe extern "C" {
24240 pub fn BNComponentGetContainedFunctions(
24241 component: *mut BNComponent,
24242 count: *mut usize,
24243 ) -> *mut *mut BNFunction;
24244}
24245unsafe extern "C" {
24246 pub fn BNComponentGetContainedComponents(
24247 component: *mut BNComponent,
24248 count: *mut usize,
24249 ) -> *mut *mut BNComponent;
24250}
24251unsafe extern "C" {
24252 pub fn BNComponentGetContainedDataVariables(
24253 component: *mut BNComponent,
24254 count: *mut usize,
24255 ) -> *mut BNDataVariable;
24256}
24257unsafe extern "C" {
24258 pub fn BNComponentGetReferencedDataVariables(
24259 component: *mut BNComponent,
24260 count: *mut usize,
24261 ) -> *mut BNDataVariable;
24262}
24263unsafe extern "C" {
24264 pub fn BNComponentGetReferencedDataVariablesRecursive(
24265 component: *mut BNComponent,
24266 count: *mut usize,
24267 ) -> *mut BNDataVariable;
24268}
24269unsafe extern "C" {
24270 pub fn BNComponentGetReferencedTypes(
24271 component: *mut BNComponent,
24272 count: *mut usize,
24273 ) -> *mut *mut BNType;
24274}
24275unsafe extern "C" {
24276 pub fn BNComponentGetReferencedTypesRecursive(
24277 component: *mut BNComponent,
24278 count: *mut usize,
24279 ) -> *mut *mut BNType;
24280}
24281unsafe extern "C" {
24282 pub fn BNFreeComponents(components: *mut *mut BNComponent, count: usize);
24283}
24284unsafe extern "C" {
24285 pub fn BNComponentFreeReferencedTypes(types: *mut *mut BNType, count: usize);
24286}
24287unsafe extern "C" {
24288 pub fn BNComponentGetParent(component: *mut BNComponent) -> *mut BNComponent;
24289}
24290unsafe extern "C" {
24291 pub fn BNComponentContainsFunction(
24292 component: *mut BNComponent,
24293 function: *mut BNFunction,
24294 ) -> bool;
24295}
24296unsafe extern "C" {
24297 pub fn BNComponentContainsComponent(
24298 parent: *mut BNComponent,
24299 component: *mut BNComponent,
24300 ) -> bool;
24301}
24302unsafe extern "C" {
24303 pub fn BNComponentContainsDataVariable(component: *mut BNComponent, address: u64) -> bool;
24304}
24305unsafe extern "C" {
24306 pub fn BNComponentAddFunctionReference(
24307 component: *mut BNComponent,
24308 function: *mut BNFunction,
24309 ) -> bool;
24310}
24311unsafe extern "C" {
24312 pub fn BNComponentAddComponent(parent: *mut BNComponent, component: *mut BNComponent) -> bool;
24313}
24314unsafe extern "C" {
24315 pub fn BNComponentAddDataVariable(component: *mut BNComponent, address: u64) -> bool;
24316}
24317unsafe extern "C" {
24318 pub fn BNComponentRemoveComponent(component: *mut BNComponent) -> bool;
24319}
24320unsafe extern "C" {
24321 pub fn BNComponentRemoveFunctionReference(
24322 component: *mut BNComponent,
24323 function: *mut BNFunction,
24324 ) -> bool;
24325}
24326unsafe extern "C" {
24327 pub fn BNComponentRemoveAllFunctions(component: *mut BNComponent);
24328}
24329unsafe extern "C" {
24330 pub fn BNComponentRemoveDataVariable(component: *mut BNComponent, address: u64) -> bool;
24331}
24332unsafe extern "C" {
24333 pub fn BNComponentAddAllMembersFromComponent(
24334 component: *mut BNComponent,
24335 fromComponent: *mut BNComponent,
24336 );
24337}
24338unsafe extern "C" {
24339 pub fn BNComponentGetGuid(component: *mut BNComponent) -> *mut ::std::os::raw::c_char;
24340}
24341unsafe extern "C" {
24342 pub fn BNComponentsEqual(a: *mut BNComponent, b: *mut BNComponent) -> bool;
24343}
24344unsafe extern "C" {
24345 pub fn BNComponentsNotEqual(a: *mut BNComponent, b: *mut BNComponent) -> bool;
24346}
24347unsafe extern "C" {
24348 pub fn BNComponentGetDisplayName(component: *mut BNComponent) -> *mut ::std::os::raw::c_char;
24349}
24350unsafe extern "C" {
24351 pub fn BNComponentGetOriginalName(component: *mut BNComponent) -> *mut ::std::os::raw::c_char;
24352}
24353unsafe extern "C" {
24354 pub fn BNComponentSetName(component: *mut BNComponent, name: *const ::std::os::raw::c_char);
24355}
24356unsafe extern "C" {
24357 pub fn BNComponentGetView(component: *mut BNComponent) -> *mut BNBinaryView;
24358}
24359unsafe extern "C" {
24360 #[doc = " LLVM Services APIs"]
24361 pub fn BNLlvmServicesInit();
24362}
24363unsafe extern "C" {
24364 pub fn BNLlvmServicesAssemble(
24365 src: *const ::std::os::raw::c_char,
24366 dialect: ::std::os::raw::c_int,
24367 triplet: *const ::std::os::raw::c_char,
24368 codeModel: ::std::os::raw::c_int,
24369 relocMode: ::std::os::raw::c_int,
24370 outBytes: *mut *mut ::std::os::raw::c_char,
24371 outBytesLen: *mut ::std::os::raw::c_int,
24372 err: *mut *mut ::std::os::raw::c_char,
24373 errLen: *mut ::std::os::raw::c_int,
24374 ) -> ::std::os::raw::c_int;
24375}
24376unsafe extern "C" {
24377 pub fn BNLlvmServicesAssembleFree(
24378 outBytes: *mut ::std::os::raw::c_char,
24379 err: *mut ::std::os::raw::c_char,
24380 );
24381}
24382unsafe extern "C" {
24383 pub fn BNLlvmServicesDisasmInstruction(
24384 triplet: *const ::std::os::raw::c_char,
24385 src: *mut u8,
24386 srcLen: ::std::os::raw::c_int,
24387 addr: u64,
24388 result: *mut ::std::os::raw::c_char,
24389 resultMaxSize: usize,
24390 ) -> ::std::os::raw::c_int;
24391}
24392unsafe extern "C" {
24393 #[doc = " Filesystem functionality"]
24394 pub fn BNDeleteFile(path: *const ::std::os::raw::c_char) -> bool;
24395}
24396unsafe extern "C" {
24397 pub fn BNDeleteDirectory(path: *const ::std::os::raw::c_char) -> bool;
24398}
24399unsafe extern "C" {
24400 pub fn BNCreateDirectory(
24401 path: *const ::std::os::raw::c_char,
24402 createSubdirectories: bool,
24403 ) -> bool;
24404}
24405unsafe extern "C" {
24406 pub fn BNPathExists(path: *const ::std::os::raw::c_char) -> bool;
24407}
24408unsafe extern "C" {
24409 pub fn BNGetParentPath(path: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
24410}
24411unsafe extern "C" {
24412 pub fn BNIsPathDirectory(path: *const ::std::os::raw::c_char) -> bool;
24413}
24414unsafe extern "C" {
24415 pub fn BNIsPathRegularFile(path: *const ::std::os::raw::c_char) -> bool;
24416}
24417unsafe extern "C" {
24418 pub fn BNFileSize(path: *const ::std::os::raw::c_char, size: *mut u64) -> bool;
24419}
24420unsafe extern "C" {
24421 pub fn BNRenameFile(
24422 source: *const ::std::os::raw::c_char,
24423 dest: *const ::std::os::raw::c_char,
24424 ) -> bool;
24425}
24426unsafe extern "C" {
24427 pub fn BNCopyFile(
24428 source: *const ::std::os::raw::c_char,
24429 dest: *const ::std::os::raw::c_char,
24430 ) -> bool;
24431}
24432unsafe extern "C" {
24433 pub fn BNGetFileName(path: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
24434}
24435unsafe extern "C" {
24436 pub fn BNGetFileExtension(path: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
24437}
24438unsafe extern "C" {
24439 pub fn BNGetFilePathsInDirectory(
24440 path: *const ::std::os::raw::c_char,
24441 count: *mut usize,
24442 ) -> *mut *mut ::std::os::raw::c_char;
24443}
24444unsafe extern "C" {
24445 pub fn BNAppendPath(
24446 path: *const ::std::os::raw::c_char,
24447 part: *const ::std::os::raw::c_char,
24448 ) -> *mut ::std::os::raw::c_char;
24449}
24450unsafe extern "C" {
24451 pub fn BNFreePath(path: *mut ::std::os::raw::c_char);
24452}
24453unsafe extern "C" {
24454 pub fn BNGetSystemCacheDirectory() -> *mut ::std::os::raw::c_char;
24455}
24456unsafe extern "C" {
24457 #[doc = " Settings APIs"]
24458 pub fn BNCreateSettings(schemaId: *const ::std::os::raw::c_char) -> *mut BNSettings;
24459}
24460unsafe extern "C" {
24461 pub fn BNNewSettingsReference(settings: *mut BNSettings) -> *mut BNSettings;
24462}
24463unsafe extern "C" {
24464 pub fn BNFreeSettings(settings: *mut BNSettings);
24465}
24466unsafe extern "C" {
24467 pub fn BNLoadSettingsFile(
24468 settings: *mut BNSettings,
24469 fileName: *const ::std::os::raw::c_char,
24470 scope: BNSettingsScope,
24471 view: *mut BNBinaryView,
24472 ) -> bool;
24473}
24474unsafe extern "C" {
24475 pub fn BNSettingsSetResourceId(
24476 settings: *mut BNSettings,
24477 resourceId: *const ::std::os::raw::c_char,
24478 );
24479}
24480unsafe extern "C" {
24481 pub fn BNSettingsRegisterGroup(
24482 settings: *mut BNSettings,
24483 group: *const ::std::os::raw::c_char,
24484 title: *const ::std::os::raw::c_char,
24485 ) -> bool;
24486}
24487unsafe extern "C" {
24488 pub fn BNSettingsRegisterSetting(
24489 settings: *mut BNSettings,
24490 key: *const ::std::os::raw::c_char,
24491 properties: *const ::std::os::raw::c_char,
24492 ) -> bool;
24493}
24494unsafe extern "C" {
24495 pub fn BNSettingsContains(
24496 settings: *mut BNSettings,
24497 key: *const ::std::os::raw::c_char,
24498 ) -> bool;
24499}
24500unsafe extern "C" {
24501 pub fn BNSettingsIsEmpty(
24502 settings: *mut BNSettings,
24503 view: *mut BNBinaryView,
24504 func: *mut BNFunction,
24505 scope: BNSettingsScope,
24506 ) -> bool;
24507}
24508unsafe extern "C" {
24509 pub fn BNSettingsKeysList(
24510 settings: *mut BNSettings,
24511 inoutSize: *mut usize,
24512 ) -> *mut *const ::std::os::raw::c_char;
24513}
24514unsafe extern "C" {
24515 pub fn BNSettingsQueryPropertyString(
24516 settings: *mut BNSettings,
24517 key: *const ::std::os::raw::c_char,
24518 property: *const ::std::os::raw::c_char,
24519 ) -> *mut ::std::os::raw::c_char;
24520}
24521unsafe extern "C" {
24522 pub fn BNSettingsQueryPropertyStringList(
24523 settings: *mut BNSettings,
24524 key: *const ::std::os::raw::c_char,
24525 property: *const ::std::os::raw::c_char,
24526 inoutSize: *mut usize,
24527 ) -> *mut *const ::std::os::raw::c_char;
24528}
24529unsafe extern "C" {
24530 pub fn BNSettingsUpdateProperty(
24531 settings: *mut BNSettings,
24532 key: *const ::std::os::raw::c_char,
24533 property: *const ::std::os::raw::c_char,
24534 ) -> bool;
24535}
24536unsafe extern "C" {
24537 pub fn BNSettingsUpdateBoolProperty(
24538 settings: *mut BNSettings,
24539 key: *const ::std::os::raw::c_char,
24540 property: *const ::std::os::raw::c_char,
24541 value: bool,
24542 ) -> bool;
24543}
24544unsafe extern "C" {
24545 pub fn BNSettingsUpdateDoubleProperty(
24546 settings: *mut BNSettings,
24547 key: *const ::std::os::raw::c_char,
24548 property: *const ::std::os::raw::c_char,
24549 value: f64,
24550 ) -> bool;
24551}
24552unsafe extern "C" {
24553 pub fn BNSettingsUpdateInt64Property(
24554 settings: *mut BNSettings,
24555 key: *const ::std::os::raw::c_char,
24556 property: *const ::std::os::raw::c_char,
24557 value: i64,
24558 ) -> bool;
24559}
24560unsafe extern "C" {
24561 pub fn BNSettingsUpdateUInt64Property(
24562 settings: *mut BNSettings,
24563 key: *const ::std::os::raw::c_char,
24564 property: *const ::std::os::raw::c_char,
24565 value: u64,
24566 ) -> bool;
24567}
24568unsafe extern "C" {
24569 pub fn BNSettingsUpdateStringProperty(
24570 settings: *mut BNSettings,
24571 key: *const ::std::os::raw::c_char,
24572 property: *const ::std::os::raw::c_char,
24573 value: *const ::std::os::raw::c_char,
24574 ) -> bool;
24575}
24576unsafe extern "C" {
24577 pub fn BNSettingsUpdateStringListProperty(
24578 settings: *mut BNSettings,
24579 key: *const ::std::os::raw::c_char,
24580 property: *const ::std::os::raw::c_char,
24581 value: *mut *const ::std::os::raw::c_char,
24582 size: usize,
24583 ) -> bool;
24584}
24585unsafe extern "C" {
24586 pub fn BNSettingsDeserializeSchema(
24587 settings: *mut BNSettings,
24588 schema: *const ::std::os::raw::c_char,
24589 scope: BNSettingsScope,
24590 merge: bool,
24591 ) -> bool;
24592}
24593unsafe extern "C" {
24594 pub fn BNSettingsSerializeSchema(settings: *mut BNSettings) -> *mut ::std::os::raw::c_char;
24595}
24596unsafe extern "C" {
24597 pub fn BNDeserializeSettings(
24598 settings: *mut BNSettings,
24599 contents: *const ::std::os::raw::c_char,
24600 view: *mut BNBinaryView,
24601 func: *mut BNFunction,
24602 scope: BNSettingsScope,
24603 ) -> bool;
24604}
24605unsafe extern "C" {
24606 pub fn BNSerializeSettings(
24607 settings: *mut BNSettings,
24608 view: *mut BNBinaryView,
24609 func: *mut BNFunction,
24610 scope: BNSettingsScope,
24611 ) -> *mut ::std::os::raw::c_char;
24612}
24613unsafe extern "C" {
24614 pub fn BNSettingsReset(
24615 settings: *mut BNSettings,
24616 key: *const ::std::os::raw::c_char,
24617 view: *mut BNBinaryView,
24618 func: *mut BNFunction,
24619 scope: BNSettingsScope,
24620 ) -> bool;
24621}
24622unsafe extern "C" {
24623 pub fn BNSettingsResetAll(
24624 settings: *mut BNSettings,
24625 view: *mut BNBinaryView,
24626 func: *mut BNFunction,
24627 scope: BNSettingsScope,
24628 schemaOnly: bool,
24629 ) -> bool;
24630}
24631unsafe extern "C" {
24632 pub fn BNSettingsGetBool(
24633 settings: *mut BNSettings,
24634 key: *const ::std::os::raw::c_char,
24635 view: *mut BNBinaryView,
24636 func: *mut BNFunction,
24637 scope: *mut BNSettingsScope,
24638 ) -> bool;
24639}
24640unsafe extern "C" {
24641 pub fn BNSettingsGetDouble(
24642 settings: *mut BNSettings,
24643 key: *const ::std::os::raw::c_char,
24644 view: *mut BNBinaryView,
24645 func: *mut BNFunction,
24646 scope: *mut BNSettingsScope,
24647 ) -> f64;
24648}
24649unsafe extern "C" {
24650 pub fn BNSettingsGetInt64(
24651 settings: *mut BNSettings,
24652 key: *const ::std::os::raw::c_char,
24653 view: *mut BNBinaryView,
24654 func: *mut BNFunction,
24655 scope: *mut BNSettingsScope,
24656 ) -> i64;
24657}
24658unsafe extern "C" {
24659 pub fn BNSettingsGetUInt64(
24660 settings: *mut BNSettings,
24661 key: *const ::std::os::raw::c_char,
24662 view: *mut BNBinaryView,
24663 func: *mut BNFunction,
24664 scope: *mut BNSettingsScope,
24665 ) -> u64;
24666}
24667unsafe extern "C" {
24668 pub fn BNSettingsGetString(
24669 settings: *mut BNSettings,
24670 key: *const ::std::os::raw::c_char,
24671 view: *mut BNBinaryView,
24672 func: *mut BNFunction,
24673 scope: *mut BNSettingsScope,
24674 ) -> *mut ::std::os::raw::c_char;
24675}
24676unsafe extern "C" {
24677 pub fn BNSettingsGetStringList(
24678 settings: *mut BNSettings,
24679 key: *const ::std::os::raw::c_char,
24680 view: *mut BNBinaryView,
24681 func: *mut BNFunction,
24682 scope: *mut BNSettingsScope,
24683 inoutSize: *mut usize,
24684 ) -> *mut *const ::std::os::raw::c_char;
24685}
24686unsafe extern "C" {
24687 pub fn BNSettingsGetJson(
24688 settings: *mut BNSettings,
24689 key: *const ::std::os::raw::c_char,
24690 view: *mut BNBinaryView,
24691 func: *mut BNFunction,
24692 scope: *mut BNSettingsScope,
24693 ) -> *mut ::std::os::raw::c_char;
24694}
24695unsafe extern "C" {
24696 pub fn BNSettingsSetBool(
24697 settings: *mut BNSettings,
24698 view: *mut BNBinaryView,
24699 func: *mut BNFunction,
24700 scope: BNSettingsScope,
24701 key: *const ::std::os::raw::c_char,
24702 value: bool,
24703 ) -> bool;
24704}
24705unsafe extern "C" {
24706 pub fn BNSettingsSetDouble(
24707 settings: *mut BNSettings,
24708 view: *mut BNBinaryView,
24709 func: *mut BNFunction,
24710 scope: BNSettingsScope,
24711 key: *const ::std::os::raw::c_char,
24712 value: f64,
24713 ) -> bool;
24714}
24715unsafe extern "C" {
24716 pub fn BNSettingsSetInt64(
24717 settings: *mut BNSettings,
24718 view: *mut BNBinaryView,
24719 func: *mut BNFunction,
24720 scope: BNSettingsScope,
24721 key: *const ::std::os::raw::c_char,
24722 value: i64,
24723 ) -> bool;
24724}
24725unsafe extern "C" {
24726 pub fn BNSettingsSetUInt64(
24727 settings: *mut BNSettings,
24728 view: *mut BNBinaryView,
24729 func: *mut BNFunction,
24730 scope: BNSettingsScope,
24731 key: *const ::std::os::raw::c_char,
24732 value: u64,
24733 ) -> bool;
24734}
24735unsafe extern "C" {
24736 pub fn BNSettingsSetString(
24737 settings: *mut BNSettings,
24738 view: *mut BNBinaryView,
24739 func: *mut BNFunction,
24740 scope: BNSettingsScope,
24741 key: *const ::std::os::raw::c_char,
24742 value: *const ::std::os::raw::c_char,
24743 ) -> bool;
24744}
24745unsafe extern "C" {
24746 pub fn BNSettingsSetStringList(
24747 settings: *mut BNSettings,
24748 view: *mut BNBinaryView,
24749 func: *mut BNFunction,
24750 scope: BNSettingsScope,
24751 key: *const ::std::os::raw::c_char,
24752 value: *mut *const ::std::os::raw::c_char,
24753 size: usize,
24754 ) -> bool;
24755}
24756unsafe extern "C" {
24757 pub fn BNSettingsSetJson(
24758 settings: *mut BNSettings,
24759 view: *mut BNBinaryView,
24760 func: *mut BNFunction,
24761 scope: BNSettingsScope,
24762 key: *const ::std::os::raw::c_char,
24763 value: *const ::std::os::raw::c_char,
24764 ) -> bool;
24765}
24766unsafe extern "C" {
24767 #[doc = " Create Metadata of various types"]
24768 pub fn BNNewMetadataReference(data: *mut BNMetadata) -> *mut BNMetadata;
24769}
24770unsafe extern "C" {
24771 pub fn BNCreateMetadataBooleanData(data: bool) -> *mut BNMetadata;
24772}
24773unsafe extern "C" {
24774 pub fn BNCreateMetadataStringData(data: *const ::std::os::raw::c_char) -> *mut BNMetadata;
24775}
24776unsafe extern "C" {
24777 pub fn BNCreateMetadataUnsignedIntegerData(data: u64) -> *mut BNMetadata;
24778}
24779unsafe extern "C" {
24780 pub fn BNCreateMetadataSignedIntegerData(data: i64) -> *mut BNMetadata;
24781}
24782unsafe extern "C" {
24783 pub fn BNCreateMetadataDoubleData(data: f64) -> *mut BNMetadata;
24784}
24785unsafe extern "C" {
24786 pub fn BNCreateMetadataOfType(type_: BNMetadataType) -> *mut BNMetadata;
24787}
24788unsafe extern "C" {
24789 pub fn BNCreateMetadataRawData(data: *const u8, size: usize) -> *mut BNMetadata;
24790}
24791unsafe extern "C" {
24792 pub fn BNCreateMetadataArray(data: *mut *mut BNMetadata, size: usize) -> *mut BNMetadata;
24793}
24794unsafe extern "C" {
24795 pub fn BNCreateMetadataValueStore(
24796 keys: *mut *const ::std::os::raw::c_char,
24797 values: *mut *mut BNMetadata,
24798 size: usize,
24799 ) -> *mut BNMetadata;
24800}
24801unsafe extern "C" {
24802 pub fn BNCreateMetadataBooleanListData(data: *mut bool, size: usize) -> *mut BNMetadata;
24803}
24804unsafe extern "C" {
24805 pub fn BNCreateMetadataUnsignedIntegerListData(data: *mut u64, size: usize) -> *mut BNMetadata;
24806}
24807unsafe extern "C" {
24808 pub fn BNCreateMetadataSignedIntegerListData(data: *mut i64, size: usize) -> *mut BNMetadata;
24809}
24810unsafe extern "C" {
24811 pub fn BNCreateMetadataDoubleListData(data: *mut f64, size: usize) -> *mut BNMetadata;
24812}
24813unsafe extern "C" {
24814 pub fn BNCreateMetadataStringListData(
24815 data: *mut *const ::std::os::raw::c_char,
24816 size: usize,
24817 ) -> *mut BNMetadata;
24818}
24819unsafe extern "C" {
24820 pub fn BNMetadataIsEqual(lhs: *mut BNMetadata, rhs: *mut BNMetadata) -> bool;
24821}
24822unsafe extern "C" {
24823 pub fn BNMetadataSetValueForKey(
24824 data: *mut BNMetadata,
24825 key: *const ::std::os::raw::c_char,
24826 md: *mut BNMetadata,
24827 ) -> bool;
24828}
24829unsafe extern "C" {
24830 pub fn BNMetadataGetForKey(
24831 data: *mut BNMetadata,
24832 key: *const ::std::os::raw::c_char,
24833 ) -> *mut BNMetadata;
24834}
24835unsafe extern "C" {
24836 pub fn BNMetadataArrayAppend(data: *mut BNMetadata, md: *mut BNMetadata) -> bool;
24837}
24838unsafe extern "C" {
24839 pub fn BNMetadataRemoveKey(data: *mut BNMetadata, key: *const ::std::os::raw::c_char);
24840}
24841unsafe extern "C" {
24842 pub fn BNMetadataSize(data: *mut BNMetadata) -> usize;
24843}
24844unsafe extern "C" {
24845 pub fn BNMetadataGetForIndex(data: *mut BNMetadata, index: usize) -> *mut BNMetadata;
24846}
24847unsafe extern "C" {
24848 pub fn BNMetadataRemoveIndex(data: *mut BNMetadata, index: usize);
24849}
24850unsafe extern "C" {
24851 pub fn BNFreeMetadataArray(data: *mut *mut BNMetadata);
24852}
24853unsafe extern "C" {
24854 pub fn BNFreeMetadataValueStore(data: *mut BNMetadataValueStore);
24855}
24856unsafe extern "C" {
24857 pub fn BNFreeMetadata(data: *mut BNMetadata);
24858}
24859unsafe extern "C" {
24860 pub fn BNFreeMetadataRaw(data: *mut u8);
24861}
24862unsafe extern "C" {
24863 pub fn BNFreeMetadataBooleanList(arg1: *mut bool, arg2: usize);
24864}
24865unsafe extern "C" {
24866 pub fn BNFreeMetadataUnsignedIntegerList(arg1: *mut u64, arg2: usize);
24867}
24868unsafe extern "C" {
24869 pub fn BNFreeMetadataSignedIntegerList(arg1: *mut i64, arg2: usize);
24870}
24871unsafe extern "C" {
24872 pub fn BNFreeMetadataDoubleList(arg1: *mut f64, arg2: usize);
24873}
24874unsafe extern "C" {
24875 pub fn BNFreeMetadataStringList(arg1: *mut *mut ::std::os::raw::c_char, arg2: usize);
24876}
24877unsafe extern "C" {
24878 #[doc = " Retrieve Structured Data"]
24879 pub fn BNMetadataGetBoolean(data: *mut BNMetadata) -> bool;
24880}
24881unsafe extern "C" {
24882 pub fn BNMetadataGetString(data: *mut BNMetadata) -> *mut ::std::os::raw::c_char;
24883}
24884unsafe extern "C" {
24885 pub fn BNMetadataGetUnsignedInteger(data: *mut BNMetadata) -> u64;
24886}
24887unsafe extern "C" {
24888 pub fn BNMetadataGetSignedInteger(data: *mut BNMetadata) -> i64;
24889}
24890unsafe extern "C" {
24891 pub fn BNMetadataGetDouble(data: *mut BNMetadata) -> f64;
24892}
24893unsafe extern "C" {
24894 pub fn BNMetadataGetBooleanList(data: *mut BNMetadata, arg1: *mut usize) -> *mut bool;
24895}
24896unsafe extern "C" {
24897 pub fn BNMetadataGetStringList(
24898 data: *mut BNMetadata,
24899 arg1: *mut usize,
24900 ) -> *mut *mut ::std::os::raw::c_char;
24901}
24902unsafe extern "C" {
24903 pub fn BNMetadataGetUnsignedIntegerList(data: *mut BNMetadata, arg1: *mut usize) -> *mut u64;
24904}
24905unsafe extern "C" {
24906 pub fn BNMetadataGetSignedIntegerList(data: *mut BNMetadata, arg1: *mut usize) -> *mut i64;
24907}
24908unsafe extern "C" {
24909 pub fn BNMetadataGetDoubleList(data: *mut BNMetadata, arg1: *mut usize) -> *mut f64;
24910}
24911unsafe extern "C" {
24912 pub fn BNMetadataGetRaw(data: *mut BNMetadata, size: *mut usize) -> *mut u8;
24913}
24914unsafe extern "C" {
24915 pub fn BNMetadataGetArray(data: *mut BNMetadata, size: *mut usize) -> *mut *mut BNMetadata;
24916}
24917unsafe extern "C" {
24918 pub fn BNMetadataGetValueStore(data: *mut BNMetadata) -> *mut BNMetadataValueStore;
24919}
24920unsafe extern "C" {
24921 pub fn BNMetadataGetJsonString(data: *mut BNMetadata) -> *mut ::std::os::raw::c_char;
24922}
24923unsafe extern "C" {
24924 #[doc = " Query type of Metadata"]
24925 pub fn BNMetadataGetType(data: *mut BNMetadata) -> BNMetadataType;
24926}
24927unsafe extern "C" {
24928 pub fn BNMetadataIsBoolean(data: *mut BNMetadata) -> bool;
24929}
24930unsafe extern "C" {
24931 pub fn BNMetadataIsString(data: *mut BNMetadata) -> bool;
24932}
24933unsafe extern "C" {
24934 pub fn BNMetadataIsUnsignedInteger(data: *mut BNMetadata) -> bool;
24935}
24936unsafe extern "C" {
24937 pub fn BNMetadataIsSignedInteger(data: *mut BNMetadata) -> bool;
24938}
24939unsafe extern "C" {
24940 pub fn BNMetadataIsDouble(data: *mut BNMetadata) -> bool;
24941}
24942unsafe extern "C" {
24943 pub fn BNMetadataIsBooleanList(data: *mut BNMetadata) -> bool;
24944}
24945unsafe extern "C" {
24946 pub fn BNMetadataIsStringList(data: *mut BNMetadata) -> bool;
24947}
24948unsafe extern "C" {
24949 pub fn BNMetadataIsUnsignedIntegerList(data: *mut BNMetadata) -> bool;
24950}
24951unsafe extern "C" {
24952 pub fn BNMetadataIsSignedIntegerList(data: *mut BNMetadata) -> bool;
24953}
24954unsafe extern "C" {
24955 pub fn BNMetadataIsDoubleList(data: *mut BNMetadata) -> bool;
24956}
24957unsafe extern "C" {
24958 pub fn BNMetadataIsRaw(data: *mut BNMetadata) -> bool;
24959}
24960unsafe extern "C" {
24961 pub fn BNMetadataIsArray(data: *mut BNMetadata) -> bool;
24962}
24963unsafe extern "C" {
24964 pub fn BNMetadataIsKeyValueStore(data: *mut BNMetadata) -> bool;
24965}
24966unsafe extern "C" {
24967 #[doc = " Store/Query structured data to/from a BinaryView"]
24968 pub fn BNBinaryViewStoreMetadata(
24969 view: *mut BNBinaryView,
24970 key: *const ::std::os::raw::c_char,
24971 value: *mut BNMetadata,
24972 isAuto: bool,
24973 );
24974}
24975unsafe extern "C" {
24976 pub fn BNBinaryViewQueryMetadata(
24977 view: *mut BNBinaryView,
24978 key: *const ::std::os::raw::c_char,
24979 ) -> *mut BNMetadata;
24980}
24981unsafe extern "C" {
24982 pub fn BNBinaryViewRemoveMetadata(view: *mut BNBinaryView, key: *const ::std::os::raw::c_char);
24983}
24984unsafe extern "C" {
24985 pub fn BNBinaryViewGetMetadata(view: *mut BNBinaryView) -> *mut BNMetadata;
24986}
24987unsafe extern "C" {
24988 pub fn BNBinaryViewGetAutoMetadata(view: *mut BNBinaryView) -> *mut BNMetadata;
24989}
24990unsafe extern "C" {
24991 pub fn BNBinaryViewGetLoadSettingsTypeNames(
24992 view: *mut BNBinaryView,
24993 count: *mut usize,
24994 ) -> *mut *mut ::std::os::raw::c_char;
24995}
24996unsafe extern "C" {
24997 pub fn BNBinaryViewGetLoadSettings(
24998 view: *mut BNBinaryView,
24999 typeName: *const ::std::os::raw::c_char,
25000 ) -> *mut BNSettings;
25001}
25002unsafe extern "C" {
25003 pub fn BNBinaryViewSetLoadSettings(
25004 view: *mut BNBinaryView,
25005 typeName: *const ::std::os::raw::c_char,
25006 settings: *mut BNSettings,
25007 );
25008}
25009unsafe extern "C" {
25010 pub fn BNBinaryViewFinalizeNewSegments(view: *mut BNBinaryView) -> bool;
25011}
25012unsafe extern "C" {
25013 #[doc = " Relocation object methods"]
25014 pub fn BNNewRelocationReference(reloc: *mut BNRelocation) -> *mut BNRelocation;
25015}
25016unsafe extern "C" {
25017 pub fn BNFreeRelocation(reloc: *mut BNRelocation);
25018}
25019unsafe extern "C" {
25020 pub fn BNRelocationGetInfo(reloc: *mut BNRelocation) -> BNRelocationInfo;
25021}
25022unsafe extern "C" {
25023 pub fn BNRelocationGetArchitecture(reloc: *mut BNRelocation) -> *mut BNArchitecture;
25024}
25025unsafe extern "C" {
25026 pub fn BNRelocationGetTarget(reloc: *mut BNRelocation) -> u64;
25027}
25028unsafe extern "C" {
25029 pub fn BNRelocationGetReloc(reloc: *mut BNRelocation) -> u64;
25030}
25031unsafe extern "C" {
25032 pub fn BNRelocationGetSymbol(reloc: *mut BNRelocation) -> *mut BNSymbol;
25033}
25034unsafe extern "C" {
25035 #[doc = " Segment object methods"]
25036 pub fn BNCreateSegment(
25037 start: u64,
25038 length: u64,
25039 dataOffset: u64,
25040 dataLength: u64,
25041 flags: u32,
25042 autoDefined: bool,
25043 ) -> *mut BNSegment;
25044}
25045unsafe extern "C" {
25046 pub fn BNNewSegmentReference(seg: *mut BNSegment) -> *mut BNSegment;
25047}
25048unsafe extern "C" {
25049 pub fn BNFreeSegment(seg: *mut BNSegment);
25050}
25051unsafe extern "C" {
25052 pub fn BNSegmentGetStart(segment: *mut BNSegment) -> u64;
25053}
25054unsafe extern "C" {
25055 pub fn BNSegmentGetLength(segment: *mut BNSegment) -> u64;
25056}
25057unsafe extern "C" {
25058 pub fn BNSegmentGetEnd(segment: *mut BNSegment) -> u64;
25059}
25060unsafe extern "C" {
25061 pub fn BNSegmentGetDataEnd(segment: *mut BNSegment) -> u64;
25062}
25063unsafe extern "C" {
25064 pub fn BNSegmentGetDataOffset(segment: *mut BNSegment) -> u64;
25065}
25066unsafe extern "C" {
25067 pub fn BNSegmentGetDataLength(segment: *mut BNSegment) -> u64;
25068}
25069unsafe extern "C" {
25070 pub fn BNSegmentGetFlags(segment: *mut BNSegment) -> u32;
25071}
25072unsafe extern "C" {
25073 pub fn BNSegmentIsAutoDefined(segment: *mut BNSegment) -> bool;
25074}
25075unsafe extern "C" {
25076 #[doc = " Section object methods"]
25077 pub fn BNNewSectionReference(section: *mut BNSection) -> *mut BNSection;
25078}
25079unsafe extern "C" {
25080 pub fn BNFreeSection(section: *mut BNSection);
25081}
25082unsafe extern "C" {
25083 pub fn BNSectionGetName(section: *mut BNSection) -> *mut ::std::os::raw::c_char;
25084}
25085unsafe extern "C" {
25086 pub fn BNSectionGetType(section: *mut BNSection) -> *mut ::std::os::raw::c_char;
25087}
25088unsafe extern "C" {
25089 pub fn BNSectionGetStart(section: *mut BNSection) -> u64;
25090}
25091unsafe extern "C" {
25092 pub fn BNSectionGetLength(section: *mut BNSection) -> u64;
25093}
25094unsafe extern "C" {
25095 pub fn BNSectionGetEnd(section: *mut BNSection) -> u64;
25096}
25097unsafe extern "C" {
25098 pub fn BNSectionGetLinkedSection(section: *mut BNSection) -> *mut ::std::os::raw::c_char;
25099}
25100unsafe extern "C" {
25101 pub fn BNSectionGetInfoSection(section: *mut BNSection) -> *mut ::std::os::raw::c_char;
25102}
25103unsafe extern "C" {
25104 pub fn BNSectionGetInfoData(section: *mut BNSection) -> u64;
25105}
25106unsafe extern "C" {
25107 pub fn BNSectionGetAlign(section: *mut BNSection) -> u64;
25108}
25109unsafe extern "C" {
25110 pub fn BNSectionGetEntrySize(section: *mut BNSection) -> u64;
25111}
25112unsafe extern "C" {
25113 pub fn BNSectionGetSemantics(section: *mut BNSection) -> BNSectionSemantics;
25114}
25115unsafe extern "C" {
25116 pub fn BNSectionIsAutoDefined(section: *mut BNSection) -> bool;
25117}
25118unsafe extern "C" {
25119 #[doc = " Custom Data Render methods"]
25120 pub fn BNCreateDataRenderer(renderer: *mut BNCustomDataRenderer) -> *mut BNDataRenderer;
25121}
25122unsafe extern "C" {
25123 pub fn BNNewDataRendererReference(renderer: *mut BNDataRenderer) -> *mut BNDataRenderer;
25124}
25125unsafe extern "C" {
25126 pub fn BNIsValidForData(
25127 ctxt: *mut ::std::os::raw::c_void,
25128 view: *mut BNBinaryView,
25129 addr: u64,
25130 type_: *mut BNType,
25131 typeCtx: *mut BNTypeContext,
25132 ctxCount: usize,
25133 ) -> bool;
25134}
25135unsafe extern "C" {
25136 pub fn BNGetLinesForData(
25137 ctxt: *mut ::std::os::raw::c_void,
25138 view: *mut BNBinaryView,
25139 addr: u64,
25140 type_: *mut BNType,
25141 prefix: *const BNInstructionTextToken,
25142 prefixCount: usize,
25143 width: usize,
25144 count: *mut usize,
25145 typeCtx: *mut BNTypeContext,
25146 ctxCount: usize,
25147 language: *const ::std::os::raw::c_char,
25148 ) -> *mut BNDisassemblyTextLine;
25149}
25150unsafe extern "C" {
25151 pub fn BNRenderLinesForData(
25152 data: *mut BNBinaryView,
25153 addr: u64,
25154 type_: *mut BNType,
25155 prefix: *const BNInstructionTextToken,
25156 prefixCount: usize,
25157 width: usize,
25158 count: *mut usize,
25159 typeCtx: *mut BNTypeContext,
25160 ctxCount: usize,
25161 language: *const ::std::os::raw::c_char,
25162 ) -> *mut BNDisassemblyTextLine;
25163}
25164unsafe extern "C" {
25165 pub fn BNFreeDataRenderer(renderer: *mut BNDataRenderer);
25166}
25167unsafe extern "C" {
25168 pub fn BNGetDataRendererContainer() -> *mut BNDataRendererContainer;
25169}
25170unsafe extern "C" {
25171 pub fn BNRegisterGenericDataRenderer(
25172 container: *mut BNDataRendererContainer,
25173 renderer: *mut BNDataRenderer,
25174 );
25175}
25176unsafe extern "C" {
25177 pub fn BNRegisterTypeSpecificDataRenderer(
25178 container: *mut BNDataRendererContainer,
25179 renderer: *mut BNDataRenderer,
25180 );
25181}
25182unsafe extern "C" {
25183 pub fn BNParseExpression(
25184 view: *mut BNBinaryView,
25185 expression: *const ::std::os::raw::c_char,
25186 offset: *mut u64,
25187 here: u64,
25188 errorString: *mut *mut ::std::os::raw::c_char,
25189 ) -> bool;
25190}
25191unsafe extern "C" {
25192 pub fn BNFreeParseError(errorString: *mut ::std::os::raw::c_char);
25193}
25194unsafe extern "C" {
25195 pub fn BNGetCurrentStackTraceString() -> *mut ::std::os::raw::c_char;
25196}
25197unsafe extern "C" {
25198 pub fn BNRegisterObjectRefDebugTrace(
25199 typeName: *const ::std::os::raw::c_char,
25200 ) -> *mut ::std::os::raw::c_void;
25201}
25202unsafe extern "C" {
25203 pub fn BNUnregisterObjectRefDebugTrace(
25204 typeName: *const ::std::os::raw::c_char,
25205 trace: *mut ::std::os::raw::c_void,
25206 );
25207}
25208unsafe extern "C" {
25209 pub fn BNGetMemoryUsageInfo(count: *mut usize) -> *mut BNMemoryUsageInfo;
25210}
25211unsafe extern "C" {
25212 pub fn BNFreeMemoryUsageInfo(info: *mut BNMemoryUsageInfo, count: usize);
25213}
25214unsafe extern "C" {
25215 pub fn BNGetAddressRenderedWidth(addr: u64) -> u32;
25216}
25217unsafe extern "C" {
25218 pub fn BNRustSimplifyStrToFQN(
25219 arg1: *const ::std::os::raw::c_char,
25220 arg2: bool,
25221 ) -> BNQualifiedName;
25222}
25223unsafe extern "C" {
25224 pub fn BNRustSimplifyStrToStr(
25225 arg1: *const ::std::os::raw::c_char,
25226 ) -> *mut ::std::os::raw::c_char;
25227}
25228unsafe extern "C" {
25229 pub fn BNRegisterDebugInfoParser(
25230 name: *const ::std::os::raw::c_char,
25231 isValid: ::std::option::Option<
25232 unsafe extern "C" fn(
25233 arg1: *mut ::std::os::raw::c_void,
25234 arg2: *mut BNBinaryView,
25235 ) -> bool,
25236 >,
25237 parseInfo: ::std::option::Option<
25238 unsafe extern "C" fn(
25239 arg1: *mut ::std::os::raw::c_void,
25240 arg2: *mut BNDebugInfo,
25241 arg3: *mut BNBinaryView,
25242 arg4: *mut BNBinaryView,
25243 arg5: BNProgressFunction,
25244 arg6: *mut ::std::os::raw::c_void,
25245 ) -> bool,
25246 >,
25247 context: *mut ::std::os::raw::c_void,
25248 ) -> *mut BNDebugInfoParser;
25249}
25250unsafe extern "C" {
25251 pub fn BNUnregisterDebugInfoParser(rawName: *const ::std::os::raw::c_char);
25252}
25253unsafe extern "C" {
25254 pub fn BNGetDebugInfoParserByName(
25255 name: *const ::std::os::raw::c_char,
25256 ) -> *mut BNDebugInfoParser;
25257}
25258unsafe extern "C" {
25259 pub fn BNGetDebugInfoParsers(count: *mut usize) -> *mut *mut BNDebugInfoParser;
25260}
25261unsafe extern "C" {
25262 pub fn BNGetDebugInfoParsersForView(
25263 view: *mut BNBinaryView,
25264 count: *mut usize,
25265 ) -> *mut *mut BNDebugInfoParser;
25266}
25267unsafe extern "C" {
25268 pub fn BNGetDebugInfoParserName(parser: *mut BNDebugInfoParser) -> *mut ::std::os::raw::c_char;
25269}
25270unsafe extern "C" {
25271 pub fn BNIsDebugInfoParserValidForView(
25272 parser: *mut BNDebugInfoParser,
25273 view: *mut BNBinaryView,
25274 ) -> bool;
25275}
25276unsafe extern "C" {
25277 pub fn BNParseDebugInfo(
25278 parser: *mut BNDebugInfoParser,
25279 view: *mut BNBinaryView,
25280 debugFile: *mut BNBinaryView,
25281 existingDebugInfo: *mut BNDebugInfo,
25282 progress: BNProgressFunction,
25283 progressCtxt: *mut ::std::os::raw::c_void,
25284 ) -> *mut BNDebugInfo;
25285}
25286unsafe extern "C" {
25287 pub fn BNNewDebugInfoParserReference(parser: *mut BNDebugInfoParser) -> *mut BNDebugInfoParser;
25288}
25289unsafe extern "C" {
25290 pub fn BNFreeDebugInfoParserReference(parser: *mut BNDebugInfoParser);
25291}
25292unsafe extern "C" {
25293 pub fn BNFreeDebugInfoParserList(parsers: *mut *mut BNDebugInfoParser, count: usize);
25294}
25295unsafe extern "C" {
25296 pub fn BNNewDebugInfoReference(debugInfo: *mut BNDebugInfo) -> *mut BNDebugInfo;
25297}
25298unsafe extern "C" {
25299 pub fn BNFreeDebugInfoReference(debugInfo: *mut BNDebugInfo);
25300}
25301unsafe extern "C" {
25302 pub fn BNGetDebugParserNames(
25303 debugInfo: *mut BNDebugInfo,
25304 count: *mut usize,
25305 ) -> *mut *mut ::std::os::raw::c_char;
25306}
25307unsafe extern "C" {
25308 pub fn BNGetDebugInfoTypeContainer(
25309 debugInfo: *mut BNDebugInfo,
25310 parserName: *const ::std::os::raw::c_char,
25311 ) -> *mut BNTypeContainer;
25312}
25313unsafe extern "C" {
25314 pub fn BNRemoveDebugParserInfo(
25315 debugInfo: *mut BNDebugInfo,
25316 parserName: *const ::std::os::raw::c_char,
25317 ) -> bool;
25318}
25319unsafe extern "C" {
25320 pub fn BNRemoveDebugParserTypes(
25321 debugInfo: *mut BNDebugInfo,
25322 parserName: *const ::std::os::raw::c_char,
25323 ) -> bool;
25324}
25325unsafe extern "C" {
25326 pub fn BNRemoveDebugParserFunctions(
25327 debugInfo: *mut BNDebugInfo,
25328 parserName: *const ::std::os::raw::c_char,
25329 ) -> bool;
25330}
25331unsafe extern "C" {
25332 pub fn BNRemoveDebugParserDataVariables(
25333 debugInfo: *mut BNDebugInfo,
25334 parserName: *const ::std::os::raw::c_char,
25335 ) -> bool;
25336}
25337unsafe extern "C" {
25338 pub fn BNAddDebugType(
25339 debugInfo: *mut BNDebugInfo,
25340 name: *const ::std::os::raw::c_char,
25341 type_: *const BNType,
25342 components: *mut *const ::std::os::raw::c_char,
25343 components_count: usize,
25344 ) -> bool;
25345}
25346unsafe extern "C" {
25347 pub fn BNGetDebugTypes(
25348 debugInfo: *mut BNDebugInfo,
25349 name: *const ::std::os::raw::c_char,
25350 count: *mut usize,
25351 ) -> *mut BNNameAndType;
25352}
25353unsafe extern "C" {
25354 pub fn BNGetDebugTypeByName(
25355 debugInfo: *mut BNDebugInfo,
25356 parserName: *const ::std::os::raw::c_char,
25357 typeName: *const ::std::os::raw::c_char,
25358 ) -> *mut BNType;
25359}
25360unsafe extern "C" {
25361 pub fn BNGetDebugTypesByName(
25362 debugInfo: *mut BNDebugInfo,
25363 typeName: *const ::std::os::raw::c_char,
25364 count: *mut usize,
25365 ) -> *mut BNNameAndType;
25366}
25367unsafe extern "C" {
25368 pub fn BNRemoveDebugTypeByName(
25369 debugInfo: *mut BNDebugInfo,
25370 parserName: *const ::std::os::raw::c_char,
25371 typeName: *const ::std::os::raw::c_char,
25372 ) -> bool;
25373}
25374unsafe extern "C" {
25375 pub fn BNFreeDebugTypes(types: *mut BNNameAndType, count: usize);
25376}
25377unsafe extern "C" {
25378 pub fn BNAddDebugFunction(debugInfo: *mut BNDebugInfo, func: *mut BNDebugFunctionInfo) -> bool;
25379}
25380unsafe extern "C" {
25381 pub fn BNGetDebugFunctions(
25382 debugInfo: *mut BNDebugInfo,
25383 name: *const ::std::os::raw::c_char,
25384 count: *mut usize,
25385 ) -> *mut BNDebugFunctionInfo;
25386}
25387unsafe extern "C" {
25388 pub fn BNRemoveDebugFunctionByIndex(
25389 debugInfo: *mut BNDebugInfo,
25390 parserName: *const ::std::os::raw::c_char,
25391 index: usize,
25392 ) -> bool;
25393}
25394unsafe extern "C" {
25395 pub fn BNFreeDebugFunctions(functions: *mut BNDebugFunctionInfo, count: usize);
25396}
25397unsafe extern "C" {
25398 pub fn BNAddDebugDataVariable(
25399 debugInfo: *mut BNDebugInfo,
25400 address: u64,
25401 type_: *const BNType,
25402 name: *const ::std::os::raw::c_char,
25403 components: *mut *const ::std::os::raw::c_char,
25404 components_count: usize,
25405 ) -> bool;
25406}
25407unsafe extern "C" {
25408 pub fn BNAddDebugDataVariableInfo(
25409 debugInfo: *mut BNDebugInfo,
25410 var: *const BNDataVariableAndName,
25411 ) -> bool;
25412}
25413unsafe extern "C" {
25414 pub fn BNGetDebugDataVariables(
25415 debugInfo: *mut BNDebugInfo,
25416 name: *const ::std::os::raw::c_char,
25417 count: *mut usize,
25418 ) -> *mut BNDataVariableAndName;
25419}
25420unsafe extern "C" {
25421 pub fn BNGetDebugDataVariableByName(
25422 debugInfo: *mut BNDebugInfo,
25423 parserName: *const ::std::os::raw::c_char,
25424 variableName: *const ::std::os::raw::c_char,
25425 var: *mut BNDataVariableAndName,
25426 ) -> bool;
25427}
25428unsafe extern "C" {
25429 pub fn BNGetDebugDataVariableByAddress(
25430 debugInfo: *mut BNDebugInfo,
25431 parserName: *const ::std::os::raw::c_char,
25432 address: u64,
25433 var: *mut BNDataVariableAndName,
25434 ) -> bool;
25435}
25436unsafe extern "C" {
25437 pub fn BNGetDebugDataVariablesByName(
25438 debugInfo: *mut BNDebugInfo,
25439 variableName: *const ::std::os::raw::c_char,
25440 count: *mut usize,
25441 ) -> *mut BNDataVariableAndName;
25442}
25443unsafe extern "C" {
25444 pub fn BNGetDebugDataVariablesByAddress(
25445 debugInfo: *mut BNDebugInfo,
25446 address: u64,
25447 count: *mut usize,
25448 ) -> *mut BNDataVariableAndNameAndDebugParser;
25449}
25450unsafe extern "C" {
25451 pub fn BNRemoveDebugDataVariableByAddress(
25452 debugInfo: *mut BNDebugInfo,
25453 parserName: *const ::std::os::raw::c_char,
25454 address: u64,
25455 ) -> bool;
25456}
25457unsafe extern "C" {
25458 #[doc = " Secrets providers"]
25459 pub fn BNRegisterSecretsProvider(
25460 name: *const ::std::os::raw::c_char,
25461 callbacks: *mut BNSecretsProviderCallbacks,
25462 ) -> *mut BNSecretsProvider;
25463}
25464unsafe extern "C" {
25465 pub fn BNGetSecretsProviderList(count: *mut usize) -> *mut *mut BNSecretsProvider;
25466}
25467unsafe extern "C" {
25468 pub fn BNFreeSecretsProviderList(providers: *mut *mut BNSecretsProvider);
25469}
25470unsafe extern "C" {
25471 pub fn BNGetSecretsProviderByName(
25472 name: *const ::std::os::raw::c_char,
25473 ) -> *mut BNSecretsProvider;
25474}
25475unsafe extern "C" {
25476 pub fn BNGetSecretsProviderName(
25477 provider: *mut BNSecretsProvider,
25478 ) -> *mut ::std::os::raw::c_char;
25479}
25480unsafe extern "C" {
25481 pub fn BNSecretsProviderHasData(
25482 provider: *mut BNSecretsProvider,
25483 key: *const ::std::os::raw::c_char,
25484 ) -> bool;
25485}
25486unsafe extern "C" {
25487 pub fn BNGetSecretsProviderData(
25488 provider: *mut BNSecretsProvider,
25489 key: *const ::std::os::raw::c_char,
25490 ) -> *mut ::std::os::raw::c_char;
25491}
25492unsafe extern "C" {
25493 pub fn BNStoreSecretsProviderData(
25494 provider: *mut BNSecretsProvider,
25495 key: *const ::std::os::raw::c_char,
25496 data: *const ::std::os::raw::c_char,
25497 ) -> bool;
25498}
25499unsafe extern "C" {
25500 pub fn BNDeleteSecretsProviderData(
25501 provider: *mut BNSecretsProvider,
25502 key: *const ::std::os::raw::c_char,
25503 ) -> bool;
25504}
25505unsafe extern "C" {
25506 pub fn BNCreateSymbolQueue() -> *mut BNSymbolQueue;
25507}
25508unsafe extern "C" {
25509 pub fn BNDestroySymbolQueue(queue: *mut BNSymbolQueue);
25510}
25511unsafe extern "C" {
25512 pub fn BNAppendSymbolQueue(
25513 queue: *mut BNSymbolQueue,
25514 resolve: ::std::option::Option<
25515 unsafe extern "C" fn(
25516 ctxt: *mut ::std::os::raw::c_void,
25517 symbol: *mut *mut BNSymbol,
25518 type_: *mut BNTypeWithConfidence,
25519 ),
25520 >,
25521 resolveContext: *mut ::std::os::raw::c_void,
25522 add: ::std::option::Option<
25523 unsafe extern "C" fn(
25524 ctxt: *mut ::std::os::raw::c_void,
25525 symbol: *mut BNSymbol,
25526 type_: *mut BNTypeWithConfidence,
25527 ),
25528 >,
25529 addContext: *mut ::std::os::raw::c_void,
25530 );
25531}
25532unsafe extern "C" {
25533 pub fn BNProcessSymbolQueue(queue: *mut BNSymbolQueue);
25534}
25535unsafe extern "C" {
25536 pub fn BNCoreEnumToString(
25537 enumName: *const ::std::os::raw::c_char,
25538 value: usize,
25539 result: *mut *mut ::std::os::raw::c_char,
25540 ) -> bool;
25541}
25542unsafe extern "C" {
25543 pub fn BNCoreEnumFromString(
25544 enumName: *const ::std::os::raw::c_char,
25545 value: *const ::std::os::raw::c_char,
25546 result: *mut usize,
25547 ) -> bool;
25548}
25549unsafe extern "C" {
25550 #[doc = " Type Archives"]
25551 pub fn BNNewTypeArchiveReference(archive: *mut BNTypeArchive) -> *mut BNTypeArchive;
25552}
25553unsafe extern "C" {
25554 pub fn BNFreeTypeArchiveReference(archive: *mut BNTypeArchive);
25555}
25556unsafe extern "C" {
25557 pub fn BNFreeTypeArchiveList(archives: *mut *mut BNTypeArchive, count: usize);
25558}
25559unsafe extern "C" {
25560 pub fn BNOpenTypeArchive(path: *const ::std::os::raw::c_char) -> *mut BNTypeArchive;
25561}
25562unsafe extern "C" {
25563 pub fn BNCreateTypeArchive(
25564 path: *const ::std::os::raw::c_char,
25565 platform: *mut BNPlatform,
25566 ) -> *mut BNTypeArchive;
25567}
25568unsafe extern "C" {
25569 pub fn BNCreateTypeArchiveWithId(
25570 path: *const ::std::os::raw::c_char,
25571 platform: *mut BNPlatform,
25572 id: *const ::std::os::raw::c_char,
25573 ) -> *mut BNTypeArchive;
25574}
25575unsafe extern "C" {
25576 pub fn BNLookupTypeArchiveById(id: *const ::std::os::raw::c_char) -> *mut BNTypeArchive;
25577}
25578unsafe extern "C" {
25579 pub fn BNCloseTypeArchive(archive: *mut BNTypeArchive);
25580}
25581unsafe extern "C" {
25582 pub fn BNIsTypeArchive(path: *const ::std::os::raw::c_char) -> bool;
25583}
25584unsafe extern "C" {
25585 pub fn BNGetTypeArchiveId(archive: *mut BNTypeArchive) -> *mut ::std::os::raw::c_char;
25586}
25587unsafe extern "C" {
25588 pub fn BNGetTypeArchivePath(archive: *mut BNTypeArchive) -> *mut ::std::os::raw::c_char;
25589}
25590unsafe extern "C" {
25591 pub fn BNGetTypeArchivePlatform(archive: *mut BNTypeArchive) -> *mut BNPlatform;
25592}
25593unsafe extern "C" {
25594 pub fn BNGetTypeArchiveCurrentSnapshotId(
25595 archive: *mut BNTypeArchive,
25596 ) -> *mut ::std::os::raw::c_char;
25597}
25598unsafe extern "C" {
25599 pub fn BNSetTypeArchiveCurrentSnapshot(
25600 archive: *mut BNTypeArchive,
25601 id: *const ::std::os::raw::c_char,
25602 );
25603}
25604unsafe extern "C" {
25605 pub fn BNGetTypeArchiveAllSnapshotIds(
25606 archive: *mut BNTypeArchive,
25607 count: *mut usize,
25608 ) -> *mut *mut ::std::os::raw::c_char;
25609}
25610unsafe extern "C" {
25611 pub fn BNGetTypeArchiveSnapshotParentIds(
25612 archive: *mut BNTypeArchive,
25613 id: *const ::std::os::raw::c_char,
25614 count: *mut usize,
25615 ) -> *mut *mut ::std::os::raw::c_char;
25616}
25617unsafe extern "C" {
25618 pub fn BNGetTypeArchiveSnapshotChildIds(
25619 archive: *mut BNTypeArchive,
25620 id: *const ::std::os::raw::c_char,
25621 count: *mut usize,
25622 ) -> *mut *mut ::std::os::raw::c_char;
25623}
25624unsafe extern "C" {
25625 pub fn BNGetTypeArchiveTypeContainer(archive: *mut BNTypeArchive) -> *mut BNTypeContainer;
25626}
25627unsafe extern "C" {
25628 pub fn BNAddTypeArchiveTypes(
25629 archive: *mut BNTypeArchive,
25630 types: *const BNQualifiedNameAndType,
25631 count: usize,
25632 ) -> bool;
25633}
25634unsafe extern "C" {
25635 pub fn BNRenameTypeArchiveType(
25636 archive: *mut BNTypeArchive,
25637 id: *const ::std::os::raw::c_char,
25638 newName: *const BNQualifiedName,
25639 ) -> bool;
25640}
25641unsafe extern "C" {
25642 pub fn BNDeleteTypeArchiveType(
25643 archive: *mut BNTypeArchive,
25644 id: *const ::std::os::raw::c_char,
25645 ) -> bool;
25646}
25647unsafe extern "C" {
25648 pub fn BNGetTypeArchiveTypeById(
25649 archive: *mut BNTypeArchive,
25650 id: *const ::std::os::raw::c_char,
25651 snapshot: *const ::std::os::raw::c_char,
25652 ) -> *mut BNType;
25653}
25654unsafe extern "C" {
25655 pub fn BNGetTypeArchiveTypeByName(
25656 archive: *mut BNTypeArchive,
25657 name: *const BNQualifiedName,
25658 snapshot: *const ::std::os::raw::c_char,
25659 ) -> *mut BNType;
25660}
25661unsafe extern "C" {
25662 pub fn BNGetTypeArchiveTypeId(
25663 archive: *mut BNTypeArchive,
25664 name: *const BNQualifiedName,
25665 snapshot: *const ::std::os::raw::c_char,
25666 ) -> *mut ::std::os::raw::c_char;
25667}
25668unsafe extern "C" {
25669 pub fn BNGetTypeArchiveTypeName(
25670 archive: *mut BNTypeArchive,
25671 id: *const ::std::os::raw::c_char,
25672 snapshot: *const ::std::os::raw::c_char,
25673 ) -> BNQualifiedName;
25674}
25675unsafe extern "C" {
25676 pub fn BNGetTypeArchiveTypes(
25677 archive: *mut BNTypeArchive,
25678 snapshot: *const ::std::os::raw::c_char,
25679 count: *mut usize,
25680 ) -> *mut BNQualifiedNameTypeAndId;
25681}
25682unsafe extern "C" {
25683 pub fn BNGetTypeArchiveTypeIds(
25684 archive: *mut BNTypeArchive,
25685 snapshot: *const ::std::os::raw::c_char,
25686 count: *mut usize,
25687 ) -> *mut *mut ::std::os::raw::c_char;
25688}
25689unsafe extern "C" {
25690 pub fn BNGetTypeArchiveTypeNames(
25691 archive: *mut BNTypeArchive,
25692 snapshot: *const ::std::os::raw::c_char,
25693 count: *mut usize,
25694 ) -> *mut BNQualifiedName;
25695}
25696unsafe extern "C" {
25697 pub fn BNGetTypeArchiveTypeNamesAndIds(
25698 archive: *mut BNTypeArchive,
25699 snapshot: *const ::std::os::raw::c_char,
25700 names: *mut *mut BNQualifiedName,
25701 ids: *mut *mut *mut ::std::os::raw::c_char,
25702 count: *mut usize,
25703 ) -> bool;
25704}
25705unsafe extern "C" {
25706 pub fn BNGetTypeArchiveOutgoingDirectTypeReferences(
25707 archive: *mut BNTypeArchive,
25708 id: *const ::std::os::raw::c_char,
25709 snapshot: *const ::std::os::raw::c_char,
25710 count: *mut usize,
25711 ) -> *mut *mut ::std::os::raw::c_char;
25712}
25713unsafe extern "C" {
25714 pub fn BNGetTypeArchiveOutgoingRecursiveTypeReferences(
25715 archive: *mut BNTypeArchive,
25716 id: *const ::std::os::raw::c_char,
25717 snapshot: *const ::std::os::raw::c_char,
25718 count: *mut usize,
25719 ) -> *mut *mut ::std::os::raw::c_char;
25720}
25721unsafe extern "C" {
25722 pub fn BNGetTypeArchiveIncomingDirectTypeReferences(
25723 archive: *mut BNTypeArchive,
25724 id: *const ::std::os::raw::c_char,
25725 snapshot: *const ::std::os::raw::c_char,
25726 count: *mut usize,
25727 ) -> *mut *mut ::std::os::raw::c_char;
25728}
25729unsafe extern "C" {
25730 pub fn BNGetTypeArchiveIncomingRecursiveTypeReferences(
25731 archive: *mut BNTypeArchive,
25732 id: *const ::std::os::raw::c_char,
25733 snapshot: *const ::std::os::raw::c_char,
25734 count: *mut usize,
25735 ) -> *mut *mut ::std::os::raw::c_char;
25736}
25737unsafe extern "C" {
25738 pub fn BNTypeArchiveNewSnapshotTransaction(
25739 archive: *mut BNTypeArchive,
25740 func: ::std::option::Option<
25741 unsafe extern "C" fn(
25742 context: *mut ::std::os::raw::c_void,
25743 id: *const ::std::os::raw::c_char,
25744 ) -> bool,
25745 >,
25746 context: *mut ::std::os::raw::c_void,
25747 parents: *const *const ::std::os::raw::c_char,
25748 parentCount: usize,
25749 ) -> *mut ::std::os::raw::c_char;
25750}
25751unsafe extern "C" {
25752 pub fn BNRegisterTypeArchiveNotification(
25753 archive: *mut BNTypeArchive,
25754 notification: *mut BNTypeArchiveNotification,
25755 );
25756}
25757unsafe extern "C" {
25758 pub fn BNUnregisterTypeArchiveNotification(
25759 archive: *mut BNTypeArchive,
25760 notification: *mut BNTypeArchiveNotification,
25761 );
25762}
25763unsafe extern "C" {
25764 pub fn BNTypeArchiveStoreMetadata(
25765 archive: *mut BNTypeArchive,
25766 key: *const ::std::os::raw::c_char,
25767 value: *mut BNMetadata,
25768 ) -> bool;
25769}
25770unsafe extern "C" {
25771 pub fn BNTypeArchiveQueryMetadata(
25772 archive: *mut BNTypeArchive,
25773 key: *const ::std::os::raw::c_char,
25774 ) -> *mut BNMetadata;
25775}
25776unsafe extern "C" {
25777 pub fn BNTypeArchiveRemoveMetadata(
25778 archive: *mut BNTypeArchive,
25779 key: *const ::std::os::raw::c_char,
25780 ) -> bool;
25781}
25782unsafe extern "C" {
25783 pub fn BNTypeArchiveSerializeSnapshot(
25784 archive: *mut BNTypeArchive,
25785 snapshot: *const ::std::os::raw::c_char,
25786 ) -> *mut BNDataBuffer;
25787}
25788unsafe extern "C" {
25789 pub fn BNTypeArchiveDeserializeSnapshot(
25790 archive: *mut BNTypeArchive,
25791 buffer: *mut BNDataBuffer,
25792 ) -> *mut ::std::os::raw::c_char;
25793}
25794unsafe extern "C" {
25795 pub fn BNTypeArchiveMergeSnapshots(
25796 archive: *mut BNTypeArchive,
25797 baseSnapshot: *const ::std::os::raw::c_char,
25798 firstSnapshot: *const ::std::os::raw::c_char,
25799 secondSnapshot: *const ::std::os::raw::c_char,
25800 mergeConflictKeysIn: *const *const ::std::os::raw::c_char,
25801 mergeConflictValuesIn: *const *const ::std::os::raw::c_char,
25802 mergeConflictCountIn: usize,
25803 mergeConflictsOut: *mut *mut *mut ::std::os::raw::c_char,
25804 mergeConflictCountOut: *mut usize,
25805 result: *mut *mut ::std::os::raw::c_char,
25806 progress: BNProgressFunction,
25807 context: *mut ::std::os::raw::c_void,
25808 ) -> bool;
25809}
25810unsafe extern "C" {
25811 pub fn BNBinaryViewAttachTypeArchive(
25812 view: *mut BNBinaryView,
25813 id: *const ::std::os::raw::c_char,
25814 path: *const ::std::os::raw::c_char,
25815 ) -> *mut BNTypeArchive;
25816}
25817unsafe extern "C" {
25818 pub fn BNBinaryViewDetachTypeArchive(
25819 view: *mut BNBinaryView,
25820 id: *const ::std::os::raw::c_char,
25821 ) -> bool;
25822}
25823unsafe extern "C" {
25824 pub fn BNBinaryViewGetTypeArchive(
25825 view: *mut BNBinaryView,
25826 id: *const ::std::os::raw::c_char,
25827 ) -> *mut BNTypeArchive;
25828}
25829unsafe extern "C" {
25830 pub fn BNBinaryViewGetTypeArchives(
25831 view: *mut BNBinaryView,
25832 ids: *mut *mut *mut ::std::os::raw::c_char,
25833 paths: *mut *mut *mut ::std::os::raw::c_char,
25834 ) -> usize;
25835}
25836unsafe extern "C" {
25837 pub fn BNBinaryViewGetTypeArchivePath(
25838 view: *mut BNBinaryView,
25839 id: *const ::std::os::raw::c_char,
25840 ) -> *mut ::std::os::raw::c_char;
25841}
25842unsafe extern "C" {
25843 pub fn BNBinaryViewGetTypeArchiveTypeNameList(
25844 view: *mut BNBinaryView,
25845 names: *mut *mut BNQualifiedName,
25846 ) -> usize;
25847}
25848unsafe extern "C" {
25849 pub fn BNBinaryViewGetTypeArchiveTypeNames(
25850 view: *mut BNBinaryView,
25851 name: *mut BNQualifiedName,
25852 archiveIds: *mut *mut *mut ::std::os::raw::c_char,
25853 archiveTypeIds: *mut *mut *mut ::std::os::raw::c_char,
25854 ) -> usize;
25855}
25856unsafe extern "C" {
25857 pub fn BNBinaryViewGetAssociatedTypeArchiveTypes(
25858 view: *mut BNBinaryView,
25859 typeIds: *mut *mut *mut ::std::os::raw::c_char,
25860 archiveIds: *mut *mut *mut ::std::os::raw::c_char,
25861 archiveTypeIds: *mut *mut *mut ::std::os::raw::c_char,
25862 ) -> usize;
25863}
25864unsafe extern "C" {
25865 pub fn BNBinaryViewGetAssociatedTypesFromArchive(
25866 view: *mut BNBinaryView,
25867 archiveId: *const ::std::os::raw::c_char,
25868 typeIds: *mut *mut *mut ::std::os::raw::c_char,
25869 archiveTypeIds: *mut *mut *mut ::std::os::raw::c_char,
25870 ) -> usize;
25871}
25872unsafe extern "C" {
25873 pub fn BNBinaryViewGetAssociatedTypeArchiveTypeTarget(
25874 view: *mut BNBinaryView,
25875 typeId: *const ::std::os::raw::c_char,
25876 archiveId: *mut *mut ::std::os::raw::c_char,
25877 archiveTypeId: *mut *mut ::std::os::raw::c_char,
25878 ) -> bool;
25879}
25880unsafe extern "C" {
25881 pub fn BNBinaryViewGetAssociatedTypeArchiveTypeSource(
25882 view: *mut BNBinaryView,
25883 archiveId: *const ::std::os::raw::c_char,
25884 archiveTypeId: *const ::std::os::raw::c_char,
25885 typeId: *mut *mut ::std::os::raw::c_char,
25886 ) -> bool;
25887}
25888unsafe extern "C" {
25889 pub fn BNBinaryViewGetTypeArchiveSyncStatus(
25890 view: *mut BNBinaryView,
25891 typeId: *const ::std::os::raw::c_char,
25892 ) -> BNSyncStatus;
25893}
25894unsafe extern "C" {
25895 pub fn BNBinaryViewDisassociateTypeArchiveType(
25896 view: *mut BNBinaryView,
25897 typeId: *const ::std::os::raw::c_char,
25898 ) -> bool;
25899}
25900unsafe extern "C" {
25901 pub fn BNBinaryViewPullTypeArchiveTypes(
25902 view: *mut BNBinaryView,
25903 archiveId: *const ::std::os::raw::c_char,
25904 archiveTypeIds: *const *const ::std::os::raw::c_char,
25905 archiveTypeIdCount: usize,
25906 updatedArchiveTypeIds: *mut *mut *mut ::std::os::raw::c_char,
25907 updatedAnalysisTypeIds: *mut *mut *mut ::std::os::raw::c_char,
25908 updatedTypeCount: *mut usize,
25909 ) -> bool;
25910}
25911unsafe extern "C" {
25912 pub fn BNBinaryViewPushTypeArchiveTypes(
25913 view: *mut BNBinaryView,
25914 archiveId: *const ::std::os::raw::c_char,
25915 typeIds: *const *const ::std::os::raw::c_char,
25916 typeIdCount: usize,
25917 updatedAnalysisTypeIds: *mut *mut *mut ::std::os::raw::c_char,
25918 updatedArchiveTypeIds: *mut *mut *mut ::std::os::raw::c_char,
25919 updatedTypeCount: *mut usize,
25920 ) -> bool;
25921}
25922unsafe extern "C" {
25923 #[doc = " Base Address Detection"]
25924 pub fn BNCreateBaseAddressDetection(view: *mut BNBinaryView) -> *mut BNBaseAddressDetection;
25925}
25926unsafe extern "C" {
25927 pub fn BNDetectBaseAddress(
25928 bad: *mut BNBaseAddressDetection,
25929 settings: *mut BNBaseAddressDetectionSettings,
25930 ) -> bool;
25931}
25932unsafe extern "C" {
25933 pub fn BNGetBaseAddressDetectionScores(
25934 bad: *mut BNBaseAddressDetection,
25935 scores: *mut BNBaseAddressDetectionScore,
25936 count: usize,
25937 confidence: *mut BNBaseAddressDetectionConfidence,
25938 lastTestedBaseAddress: *mut u64,
25939 ) -> usize;
25940}
25941unsafe extern "C" {
25942 pub fn BNGetBaseAddressDetectionReasons(
25943 bad: *mut BNBaseAddressDetection,
25944 baseAddress: u64,
25945 count: *mut usize,
25946 ) -> *mut BNBaseAddressDetectionReason;
25947}
25948unsafe extern "C" {
25949 pub fn BNFreeBaseAddressDetectionReasons(reasons: *mut BNBaseAddressDetectionReason);
25950}
25951unsafe extern "C" {
25952 pub fn BNAbortBaseAddressDetection(bad: *mut BNBaseAddressDetection);
25953}
25954unsafe extern "C" {
25955 pub fn BNIsBaseAddressDetectionAborted(bad: *mut BNBaseAddressDetection) -> bool;
25956}
25957unsafe extern "C" {
25958 pub fn BNFreeBaseAddressDetection(bad: *mut BNBaseAddressDetection);
25959}
25960unsafe extern "C" {
25961 #[doc = " Unicode"]
25962 pub fn BNUnicodeUTF16ToUTF8(utf16: *const u8, len: usize) -> *mut ::std::os::raw::c_char;
25963}
25964unsafe extern "C" {
25965 pub fn BNUnicodeUTF32ToUTF8(utf32: *const u8) -> *mut ::std::os::raw::c_char;
25966}
25967unsafe extern "C" {
25968 pub fn BNUnicodeGetBlockRange(
25969 name: *const ::std::os::raw::c_char,
25970 rangeStart: *mut u32,
25971 rangeEnd: *mut u32,
25972 ) -> bool;
25973}
25974unsafe extern "C" {
25975 pub fn BNUnicodeGetBlocksForNames(
25976 names: *const *const ::std::os::raw::c_char,
25977 nameCount: usize,
25978 starts: *mut *mut *mut u32,
25979 ends: *mut *mut *mut u32,
25980 blockListCounts: *mut *mut usize,
25981 blockCount: *mut usize,
25982 );
25983}
25984unsafe extern "C" {
25985 pub fn BNFreeUnicodeBlockList(
25986 starts: *mut *mut u32,
25987 ends: *mut *mut u32,
25988 blockCounts: *mut usize,
25989 blockListCounts: usize,
25990 );
25991}
25992unsafe extern "C" {
25993 pub fn BNUnicodeGetBlockNames(names: *mut *mut *mut ::std::os::raw::c_char, count: *mut usize);
25994}
25995unsafe extern "C" {
25996 pub fn BNUnicodeGetBlockRanges(
25997 names: *mut *mut *mut ::std::os::raw::c_char,
25998 rangeStarts: *mut *mut u32,
25999 rangeEnds: *mut *mut u32,
26000 count: *mut usize,
26001 );
26002}
26003unsafe extern "C" {
26004 pub fn BNFreeUnicodeRangeList(starts: *mut u32, ends: *mut u32);
26005}
26006unsafe extern "C" {
26007 pub fn BNUnicodeGetUTF8String(
26008 starts: *mut *mut u32,
26009 ends: *mut *mut u32,
26010 blockListCounts: *mut usize,
26011 blockCount: usize,
26012 data: *const u8,
26013 offset: usize,
26014 dataLen: usize,
26015 ) -> *mut ::std::os::raw::c_char;
26016}
26017unsafe extern "C" {
26018 pub fn BNUnicodeToEscapedString(
26019 starts: *mut *mut u32,
26020 ends: *mut *mut u32,
26021 blockListCounts: *mut usize,
26022 blockCount: usize,
26023 utf8Enabled: bool,
26024 data: *const ::std::os::raw::c_void,
26025 dataLen: usize,
26026 ) -> *mut ::std::os::raw::c_char;
26027}
26028unsafe extern "C" {
26029 #[doc = " Collaboration"]
26030 pub fn BNCollaborationGetActiveRemote() -> *mut BNRemote;
26031}
26032unsafe extern "C" {
26033 pub fn BNCollaborationSetActiveRemote(remote: *mut BNRemote);
26034}
26035unsafe extern "C" {
26036 pub fn BNCollaborationStoreDataInKeychain(
26037 key: *const ::std::os::raw::c_char,
26038 dataKeys: *mut *const ::std::os::raw::c_char,
26039 dataValues: *mut *const ::std::os::raw::c_char,
26040 dataCount: usize,
26041 ) -> bool;
26042}
26043unsafe extern "C" {
26044 pub fn BNCollaborationHasDataInKeychain(key: *const ::std::os::raw::c_char) -> bool;
26045}
26046unsafe extern "C" {
26047 pub fn BNCollaborationGetDataFromKeychain(
26048 key: *const ::std::os::raw::c_char,
26049 foundKeys: *mut *mut *mut ::std::os::raw::c_char,
26050 foundValues: *mut *mut *mut ::std::os::raw::c_char,
26051 ) -> usize;
26052}
26053unsafe extern "C" {
26054 pub fn BNCollaborationDeleteDataFromKeychain(key: *const ::std::os::raw::c_char) -> bool;
26055}
26056unsafe extern "C" {
26057 pub fn BNCollaborationLoadRemotes() -> bool;
26058}
26059unsafe extern "C" {
26060 pub fn BNCollaborationGetRemotes(count: *mut usize) -> *mut *mut BNRemote;
26061}
26062unsafe extern "C" {
26063 pub fn BNCollaborationGetRemoteById(remoteId: *const ::std::os::raw::c_char) -> *mut BNRemote;
26064}
26065unsafe extern "C" {
26066 pub fn BNCollaborationGetRemoteByAddress(
26067 remoteAddress: *const ::std::os::raw::c_char,
26068 ) -> *mut BNRemote;
26069}
26070unsafe extern "C" {
26071 pub fn BNCollaborationGetRemoteByName(name: *const ::std::os::raw::c_char) -> *mut BNRemote;
26072}
26073unsafe extern "C" {
26074 pub fn BNCollaborationCreateRemote(
26075 name: *const ::std::os::raw::c_char,
26076 address: *const ::std::os::raw::c_char,
26077 ) -> *mut BNRemote;
26078}
26079unsafe extern "C" {
26080 pub fn BNCollaborationRemoveRemote(remote: *mut BNRemote);
26081}
26082unsafe extern "C" {
26083 pub fn BNCollaborationSaveRemotes();
26084}
26085unsafe extern "C" {
26086 pub fn BNCollaborationSyncDatabase(
26087 database: *mut BNDatabase,
26088 file: *mut BNRemoteFile,
26089 conflictHandler: BNCollaborationAnalysisConflictHandler,
26090 conflictHandlerCtxt: *mut ::std::os::raw::c_void,
26091 progress: BNProgressFunction,
26092 progressCtxt: *mut ::std::os::raw::c_void,
26093 nameChangeset: BNCollaborationNameChangesetFunction,
26094 nameChangesetCtxt: *mut ::std::os::raw::c_void,
26095 ) -> bool;
26096}
26097unsafe extern "C" {
26098 pub fn BNCollaborationSyncTypeArchive(
26099 archive: *mut BNTypeArchive,
26100 file: *mut BNRemoteFile,
26101 conflictHandler: ::std::option::Option<
26102 unsafe extern "C" fn(
26103 arg1: *mut ::std::os::raw::c_void,
26104 conflicts: *mut *mut BNTypeArchiveMergeConflict,
26105 conflictCount: usize,
26106 ) -> bool,
26107 >,
26108 conflictHandlerCtxt: *mut ::std::os::raw::c_void,
26109 progress: BNProgressFunction,
26110 progressCtxt: *mut ::std::os::raw::c_void,
26111 ) -> bool;
26112}
26113unsafe extern "C" {
26114 pub fn BNCollaborationPushTypeArchive(
26115 archive: *mut BNTypeArchive,
26116 file: *mut BNRemoteFile,
26117 count: *mut usize,
26118 progress: BNProgressFunction,
26119 progressCtxt: *mut ::std::os::raw::c_void,
26120 ) -> bool;
26121}
26122unsafe extern "C" {
26123 pub fn BNCollaborationPullTypeArchive(
26124 archive: *mut BNTypeArchive,
26125 file: *mut BNRemoteFile,
26126 count: *mut usize,
26127 conflictHandler: ::std::option::Option<
26128 unsafe extern "C" fn(
26129 arg1: *mut ::std::os::raw::c_void,
26130 conflicts: *mut *mut BNTypeArchiveMergeConflict,
26131 conflictCount: usize,
26132 ) -> bool,
26133 >,
26134 conflictHandlerCtxt: *mut ::std::os::raw::c_void,
26135 progress: BNProgressFunction,
26136 progressCtxt: *mut ::std::os::raw::c_void,
26137 ) -> bool;
26138}
26139unsafe extern "C" {
26140 pub fn BNCollaborationIsCollaborationTypeArchive(archive: *mut BNTypeArchive) -> bool;
26141}
26142unsafe extern "C" {
26143 pub fn BNCollaborationGetRemoteForLocalTypeArchive(
26144 archive: *mut BNTypeArchive,
26145 ) -> *mut BNRemote;
26146}
26147unsafe extern "C" {
26148 pub fn BNCollaborationGetRemoteProjectForLocalTypeArchive(
26149 archive: *mut BNTypeArchive,
26150 ) -> *mut BNRemoteProject;
26151}
26152unsafe extern "C" {
26153 pub fn BNCollaborationGetRemoteFileForLocalTypeArchive(
26154 archive: *mut BNTypeArchive,
26155 ) -> *mut BNRemoteFile;
26156}
26157unsafe extern "C" {
26158 pub fn BNCollaborationGetRemoteSnapshotFromLocalTypeArchive(
26159 archive: *mut BNTypeArchive,
26160 snapshotId: *const ::std::os::raw::c_char,
26161 ) -> *mut BNCollaborationSnapshot;
26162}
26163unsafe extern "C" {
26164 pub fn BNCollaborationGetLocalSnapshotFromRemoteTypeArchive(
26165 snapshot: *mut BNCollaborationSnapshot,
26166 archive: *mut BNTypeArchive,
26167 ) -> *mut ::std::os::raw::c_char;
26168}
26169unsafe extern "C" {
26170 pub fn BNCollaborationIsTypeArchiveSnapshotIgnored(
26171 archive: *mut BNTypeArchive,
26172 snapshot: *const ::std::os::raw::c_char,
26173 ) -> bool;
26174}
26175unsafe extern "C" {
26176 pub fn BNCollaborationSetSnapshotAuthor(
26177 database: *mut BNDatabase,
26178 snapshot: *mut BNSnapshot,
26179 author: *const ::std::os::raw::c_char,
26180 ) -> bool;
26181}
26182unsafe extern "C" {
26183 pub fn BNCollaborationDefaultProjectPath(
26184 project: *mut BNRemoteProject,
26185 ) -> *mut ::std::os::raw::c_char;
26186}
26187unsafe extern "C" {
26188 pub fn BNCollaborationDefaultFilePath(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
26189}
26190unsafe extern "C" {
26191 pub fn BNCollaborationDownloadFile(
26192 file: *mut BNRemoteFile,
26193 dbPath: *const ::std::os::raw::c_char,
26194 progress: BNProgressFunction,
26195 progressContext: *mut ::std::os::raw::c_void,
26196 ) -> *mut BNFileMetadata;
26197}
26198unsafe extern "C" {
26199 pub fn BNCollaborationUploadDatabase(
26200 metadata: *mut BNFileMetadata,
26201 project: *mut BNRemoteProject,
26202 folder: *mut BNRemoteFolder,
26203 progress: BNProgressFunction,
26204 progressContext: *mut ::std::os::raw::c_void,
26205 nameChangeset: BNCollaborationNameChangesetFunction,
26206 nameChangesetContext: *mut ::std::os::raw::c_void,
26207 ) -> *mut BNRemoteFile;
26208}
26209unsafe extern "C" {
26210 pub fn BNCollaborationIsCollaborationDatabase(database: *mut BNDatabase) -> bool;
26211}
26212unsafe extern "C" {
26213 pub fn BNCollaborationGetRemoteForLocalDatabase(
26214 database: *mut BNDatabase,
26215 result: *mut *mut BNRemote,
26216 ) -> bool;
26217}
26218unsafe extern "C" {
26219 pub fn BNCollaborationGetRemoteProjectForLocalDatabase(
26220 database: *mut BNDatabase,
26221 result: *mut *mut BNRemoteProject,
26222 ) -> bool;
26223}
26224unsafe extern "C" {
26225 pub fn BNCollaborationGetRemoteFileForLocalDatabase(
26226 database: *mut BNDatabase,
26227 result: *mut *mut BNRemoteFile,
26228 ) -> bool;
26229}
26230unsafe extern "C" {
26231 pub fn BNCollaborationAssignSnapshotMap(
26232 localSnapshot: *mut BNSnapshot,
26233 remoteSnapshot: *mut BNCollaborationSnapshot,
26234 ) -> bool;
26235}
26236unsafe extern "C" {
26237 pub fn BNCollaborationGetRemoteSnapshotFromLocal(
26238 snapshot: *mut BNSnapshot,
26239 result: *mut *mut BNCollaborationSnapshot,
26240 ) -> bool;
26241}
26242unsafe extern "C" {
26243 pub fn BNCollaborationGetLocalSnapshotFromRemote(
26244 snapshot: *mut BNCollaborationSnapshot,
26245 database: *mut BNDatabase,
26246 result: *mut *mut BNSnapshot,
26247 ) -> bool;
26248}
26249unsafe extern "C" {
26250 pub fn BNCollaborationDownloadTypeArchive(
26251 file: *mut BNRemoteFile,
26252 dbPath: *const ::std::os::raw::c_char,
26253 progress: BNProgressFunction,
26254 progressContext: *mut ::std::os::raw::c_void,
26255 result: *mut *mut BNTypeArchive,
26256 ) -> bool;
26257}
26258unsafe extern "C" {
26259 pub fn BNCollaborationUploadTypeArchive(
26260 archive: *mut BNTypeArchive,
26261 project: *mut BNRemoteProject,
26262 folder: *mut BNRemoteFolder,
26263 progress: BNProgressFunction,
26264 progressContext: *mut ::std::os::raw::c_void,
26265 coreFile: *mut BNProjectFile,
26266 result: *mut *mut BNRemoteFile,
26267 ) -> bool;
26268}
26269unsafe extern "C" {
26270 pub fn BNCollaborationDownloadDatabaseForFile(
26271 file: *mut BNRemoteFile,
26272 dbPath: *const ::std::os::raw::c_char,
26273 force: bool,
26274 progress: BNProgressFunction,
26275 progressContext: *mut ::std::os::raw::c_void,
26276 ) -> bool;
26277}
26278unsafe extern "C" {
26279 pub fn BNCollaborationMergeSnapshots(
26280 first: *mut BNSnapshot,
26281 second: *mut BNSnapshot,
26282 conflictHandler: BNCollaborationAnalysisConflictHandler,
26283 conflictHandlerCtxt: *mut ::std::os::raw::c_void,
26284 progress: BNProgressFunction,
26285 progressContext: *mut ::std::os::raw::c_void,
26286 ) -> *mut BNSnapshot;
26287}
26288unsafe extern "C" {
26289 pub fn BNCollaborationPullDatabase(
26290 database: *mut BNDatabase,
26291 file: *mut BNRemoteFile,
26292 count: *mut usize,
26293 conflictHandler: BNCollaborationAnalysisConflictHandler,
26294 conflictHandlerCtxt: *mut ::std::os::raw::c_void,
26295 progress: BNProgressFunction,
26296 progressContext: *mut ::std::os::raw::c_void,
26297 nameChangeset: BNCollaborationNameChangesetFunction,
26298 nameChangesetContext: *mut ::std::os::raw::c_void,
26299 ) -> bool;
26300}
26301unsafe extern "C" {
26302 pub fn BNCollaborationMergeDatabase(
26303 database: *mut BNDatabase,
26304 conflictHandler: BNCollaborationAnalysisConflictHandler,
26305 conflictHandlerCtxt: *mut ::std::os::raw::c_void,
26306 progress: BNProgressFunction,
26307 progressContext: *mut ::std::os::raw::c_void,
26308 ) -> bool;
26309}
26310unsafe extern "C" {
26311 pub fn BNCollaborationPushDatabase(
26312 database: *mut BNDatabase,
26313 file: *mut BNRemoteFile,
26314 count: *mut usize,
26315 progress: BNProgressFunction,
26316 progressContext: *mut ::std::os::raw::c_void,
26317 ) -> bool;
26318}
26319unsafe extern "C" {
26320 pub fn BNCollaborationDumpDatabase(database: *mut BNDatabase) -> bool;
26321}
26322unsafe extern "C" {
26323 pub fn BNCollaborationIgnoreSnapshot(
26324 database: *mut BNDatabase,
26325 snapshot: *mut BNSnapshot,
26326 ) -> bool;
26327}
26328unsafe extern "C" {
26329 pub fn BNCollaborationIsSnapshotIgnored(
26330 database: *mut BNDatabase,
26331 snapshot: *mut BNSnapshot,
26332 ) -> bool;
26333}
26334unsafe extern "C" {
26335 pub fn BNCollaborationGetSnapshotAuthor(
26336 database: *mut BNDatabase,
26337 snapshot: *mut BNSnapshot,
26338 result: *mut *mut ::std::os::raw::c_char,
26339 ) -> bool;
26340}
26341unsafe extern "C" {
26342 pub fn BNCollaborationFreeIdList(ids: *mut u64, size: usize);
26343}
26344unsafe extern "C" {
26345 pub fn BNCollaborationFreeSnapshotIdList(ids: *mut i64, size: usize);
26346}
26347unsafe extern "C" {
26348 #[doc = " LazyT"]
26349 pub fn BNCollaborationLazyTCreate(
26350 ctor: ::std::option::Option<
26351 unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void) -> *mut ::std::os::raw::c_void,
26352 >,
26353 context: *mut ::std::os::raw::c_void,
26354 ) -> *mut BNCollaborationLazyT;
26355}
26356unsafe extern "C" {
26357 pub fn BNCollaborationLazyTDereference(
26358 lazyT: *mut BNCollaborationLazyT,
26359 ) -> *mut ::std::os::raw::c_void;
26360}
26361unsafe extern "C" {
26362 pub fn BNCollaborationFreeLazyT(lazyT: *mut BNCollaborationLazyT);
26363}
26364unsafe extern "C" {
26365 #[doc = " Remote"]
26366 pub fn BNNewRemoteReference(remote: *mut BNRemote) -> *mut BNRemote;
26367}
26368unsafe extern "C" {
26369 pub fn BNFreeRemote(remote: *mut BNRemote);
26370}
26371unsafe extern "C" {
26372 pub fn BNFreeRemoteList(remotes: *mut *mut BNRemote, count: usize);
26373}
26374unsafe extern "C" {
26375 pub fn BNRemoteGetUniqueId(remote: *mut BNRemote) -> *mut ::std::os::raw::c_char;
26376}
26377unsafe extern "C" {
26378 pub fn BNRemoteGetName(remote: *mut BNRemote) -> *mut ::std::os::raw::c_char;
26379}
26380unsafe extern "C" {
26381 pub fn BNRemoteGetAddress(remote: *mut BNRemote) -> *mut ::std::os::raw::c_char;
26382}
26383unsafe extern "C" {
26384 pub fn BNRemoteHasLoadedMetadata(remote: *mut BNRemote) -> bool;
26385}
26386unsafe extern "C" {
26387 pub fn BNRemoteIsConnected(remote: *mut BNRemote) -> bool;
26388}
26389unsafe extern "C" {
26390 pub fn BNRemoteGetUsername(remote: *mut BNRemote) -> *mut ::std::os::raw::c_char;
26391}
26392unsafe extern "C" {
26393 pub fn BNRemoteGetToken(remote: *mut BNRemote) -> *mut ::std::os::raw::c_char;
26394}
26395unsafe extern "C" {
26396 pub fn BNRemoteGetServerVersion(remote: *mut BNRemote) -> ::std::os::raw::c_int;
26397}
26398unsafe extern "C" {
26399 pub fn BNRemoteGetServerBuildVersion(remote: *mut BNRemote) -> *mut ::std::os::raw::c_char;
26400}
26401unsafe extern "C" {
26402 pub fn BNRemoteGetServerBuildId(remote: *mut BNRemote) -> *mut ::std::os::raw::c_char;
26403}
26404unsafe extern "C" {
26405 pub fn BNRemoteGetAuthBackends(
26406 remote: *mut BNRemote,
26407 backendIds: *mut *mut *mut ::std::os::raw::c_char,
26408 backendNames: *mut *mut *mut ::std::os::raw::c_char,
26409 count: *mut usize,
26410 ) -> bool;
26411}
26412unsafe extern "C" {
26413 pub fn BNRemoteHasPulledProjects(remote: *mut BNRemote) -> bool;
26414}
26415unsafe extern "C" {
26416 pub fn BNRemoteHasPulledUsers(remote: *mut BNRemote) -> bool;
26417}
26418unsafe extern "C" {
26419 pub fn BNRemoteHasPulledGroups(remote: *mut BNRemote) -> bool;
26420}
26421unsafe extern "C" {
26422 pub fn BNRemoteIsAdmin(remote: *mut BNRemote) -> bool;
26423}
26424unsafe extern "C" {
26425 pub fn BNRemoteIsEnterprise(remote: *mut BNRemote) -> bool;
26426}
26427unsafe extern "C" {
26428 pub fn BNRemoteLoadMetadata(remote: *mut BNRemote) -> bool;
26429}
26430unsafe extern "C" {
26431 pub fn BNRemoteRequestAuthenticationToken(
26432 remote: *mut BNRemote,
26433 username: *const ::std::os::raw::c_char,
26434 password: *const ::std::os::raw::c_char,
26435 ) -> *mut ::std::os::raw::c_char;
26436}
26437unsafe extern "C" {
26438 pub fn BNRemoteConnect(
26439 remote: *mut BNRemote,
26440 username: *const ::std::os::raw::c_char,
26441 token: *const ::std::os::raw::c_char,
26442 ) -> bool;
26443}
26444unsafe extern "C" {
26445 pub fn BNRemoteDisconnect(remote: *mut BNRemote) -> bool;
26446}
26447unsafe extern "C" {
26448 pub fn BNRemoteGetProjects(
26449 remote: *mut BNRemote,
26450 count: *mut usize,
26451 ) -> *mut *mut BNRemoteProject;
26452}
26453unsafe extern "C" {
26454 pub fn BNRemoteGetProjectById(
26455 remote: *mut BNRemote,
26456 id: *const ::std::os::raw::c_char,
26457 ) -> *mut BNRemoteProject;
26458}
26459unsafe extern "C" {
26460 pub fn BNRemoteGetProjectByName(
26461 remote: *mut BNRemote,
26462 name: *const ::std::os::raw::c_char,
26463 ) -> *mut BNRemoteProject;
26464}
26465unsafe extern "C" {
26466 pub fn BNRemotePullProjects(
26467 remote: *mut BNRemote,
26468 progress: BNProgressFunction,
26469 progressContext: *mut ::std::os::raw::c_void,
26470 ) -> bool;
26471}
26472unsafe extern "C" {
26473 pub fn BNRemoteCreateProject(
26474 remote: *mut BNRemote,
26475 name: *const ::std::os::raw::c_char,
26476 description: *const ::std::os::raw::c_char,
26477 ) -> *mut BNRemoteProject;
26478}
26479unsafe extern "C" {
26480 pub fn BNRemoteImportLocalProject(
26481 remote: *mut BNRemote,
26482 localProject: *mut BNProject,
26483 progress: BNProgressFunction,
26484 progressCtxt: *mut ::std::os::raw::c_void,
26485 ) -> *mut BNRemoteProject;
26486}
26487unsafe extern "C" {
26488 pub fn BNRemotePushProject(
26489 remote: *mut BNRemote,
26490 project: *mut BNRemoteProject,
26491 extraFieldKeys: *mut *const ::std::os::raw::c_char,
26492 extraFieldValues: *mut *const ::std::os::raw::c_char,
26493 extraFieldCount: usize,
26494 ) -> bool;
26495}
26496unsafe extern "C" {
26497 pub fn BNRemoteDeleteProject(remote: *mut BNRemote, project: *mut BNRemoteProject) -> bool;
26498}
26499unsafe extern "C" {
26500 pub fn BNRemoteGetGroups(
26501 remote: *mut BNRemote,
26502 count: *mut usize,
26503 ) -> *mut *mut BNCollaborationGroup;
26504}
26505unsafe extern "C" {
26506 pub fn BNRemoteGetGroupById(remote: *mut BNRemote, id: u64) -> *mut BNCollaborationGroup;
26507}
26508unsafe extern "C" {
26509 pub fn BNRemoteGetGroupByName(
26510 remote: *mut BNRemote,
26511 name: *const ::std::os::raw::c_char,
26512 ) -> *mut BNCollaborationGroup;
26513}
26514unsafe extern "C" {
26515 pub fn BNRemoteSearchGroups(
26516 remote: *mut BNRemote,
26517 prefix: *const ::std::os::raw::c_char,
26518 groupIds: *mut *mut u64,
26519 groupNames: *mut *mut *mut ::std::os::raw::c_char,
26520 count: *mut usize,
26521 ) -> bool;
26522}
26523unsafe extern "C" {
26524 pub fn BNRemotePullGroups(
26525 remote: *mut BNRemote,
26526 progress: BNProgressFunction,
26527 progressContext: *mut ::std::os::raw::c_void,
26528 ) -> bool;
26529}
26530unsafe extern "C" {
26531 pub fn BNRemoteCreateGroup(
26532 remote: *mut BNRemote,
26533 name: *const ::std::os::raw::c_char,
26534 usernames: *mut *const ::std::os::raw::c_char,
26535 usernameCount: usize,
26536 ) -> *mut BNCollaborationGroup;
26537}
26538unsafe extern "C" {
26539 pub fn BNRemotePushGroup(
26540 remote: *mut BNRemote,
26541 group: *mut BNCollaborationGroup,
26542 extraFieldKeys: *mut *const ::std::os::raw::c_char,
26543 extraFieldValues: *mut *const ::std::os::raw::c_char,
26544 extraFieldCount: usize,
26545 ) -> bool;
26546}
26547unsafe extern "C" {
26548 pub fn BNRemoteDeleteGroup(remote: *mut BNRemote, group: *mut BNCollaborationGroup) -> bool;
26549}
26550unsafe extern "C" {
26551 pub fn BNRemoteGetUsers(
26552 remote: *mut BNRemote,
26553 count: *mut usize,
26554 ) -> *mut *mut BNCollaborationUser;
26555}
26556unsafe extern "C" {
26557 pub fn BNRemoteGetUserById(
26558 remote: *mut BNRemote,
26559 id: *const ::std::os::raw::c_char,
26560 ) -> *mut BNCollaborationUser;
26561}
26562unsafe extern "C" {
26563 pub fn BNRemoteGetUserByUsername(
26564 remote: *mut BNRemote,
26565 username: *const ::std::os::raw::c_char,
26566 ) -> *mut BNCollaborationUser;
26567}
26568unsafe extern "C" {
26569 pub fn BNRemoteGetCurrentUser(remote: *mut BNRemote) -> *mut BNCollaborationUser;
26570}
26571unsafe extern "C" {
26572 pub fn BNRemoteSearchUsers(
26573 remote: *mut BNRemote,
26574 prefix: *const ::std::os::raw::c_char,
26575 userIds: *mut *mut *mut ::std::os::raw::c_char,
26576 usernames: *mut *mut *mut ::std::os::raw::c_char,
26577 count: *mut usize,
26578 ) -> bool;
26579}
26580unsafe extern "C" {
26581 pub fn BNRemoteFindFiles(
26582 remote: *mut BNRemote,
26583 name: *const ::std::os::raw::c_char,
26584 count: *mut usize,
26585 ) -> *mut BNRemoteFileSearchMatch;
26586}
26587unsafe extern "C" {
26588 pub fn BNFreeRemoteFileSearchMatchList(matches: *mut BNRemoteFileSearchMatch, count: usize);
26589}
26590unsafe extern "C" {
26591 pub fn BNRemotePullUsers(
26592 remote: *mut BNRemote,
26593 progress: BNProgressFunction,
26594 progressContext: *mut ::std::os::raw::c_void,
26595 ) -> bool;
26596}
26597unsafe extern "C" {
26598 pub fn BNRemoteCreateUser(
26599 remote: *mut BNRemote,
26600 username: *const ::std::os::raw::c_char,
26601 email: *const ::std::os::raw::c_char,
26602 isActive: bool,
26603 password: *const ::std::os::raw::c_char,
26604 groupIds: *const u64,
26605 groupIdCount: usize,
26606 userPermissionIds: *const u64,
26607 userPermissionIdCount: usize,
26608 ) -> *mut BNCollaborationUser;
26609}
26610unsafe extern "C" {
26611 pub fn BNRemotePushUser(
26612 remote: *mut BNRemote,
26613 user: *mut BNCollaborationUser,
26614 extraFieldKeys: *mut *const ::std::os::raw::c_char,
26615 extraFieldValues: *mut *const ::std::os::raw::c_char,
26616 extraFieldCount: usize,
26617 ) -> bool;
26618}
26619unsafe extern "C" {
26620 pub fn BNRemoteRequest(
26621 remote: *mut BNRemote,
26622 request: *mut ::std::os::raw::c_void,
26623 ret: *mut ::std::os::raw::c_void,
26624 ) -> ::std::os::raw::c_int;
26625}
26626unsafe extern "C" {
26627 #[doc = " CollabGroup"]
26628 pub fn BNNewCollaborationGroupReference(
26629 group: *mut BNCollaborationGroup,
26630 ) -> *mut BNCollaborationGroup;
26631}
26632unsafe extern "C" {
26633 pub fn BNFreeCollaborationGroup(group: *mut BNCollaborationGroup);
26634}
26635unsafe extern "C" {
26636 pub fn BNFreeCollaborationGroupList(group: *mut *mut BNCollaborationGroup, count: usize);
26637}
26638unsafe extern "C" {
26639 pub fn BNCollaborationGroupGetRemote(group: *mut BNCollaborationGroup) -> *mut BNRemote;
26640}
26641unsafe extern "C" {
26642 pub fn BNCollaborationGroupGetUrl(
26643 group: *mut BNCollaborationGroup,
26644 ) -> *mut ::std::os::raw::c_char;
26645}
26646unsafe extern "C" {
26647 pub fn BNCollaborationGroupGetId(group: *mut BNCollaborationGroup) -> u64;
26648}
26649unsafe extern "C" {
26650 pub fn BNCollaborationGroupGetName(
26651 group: *mut BNCollaborationGroup,
26652 ) -> *mut ::std::os::raw::c_char;
26653}
26654unsafe extern "C" {
26655 pub fn BNCollaborationGroupSetName(
26656 group: *mut BNCollaborationGroup,
26657 name: *const ::std::os::raw::c_char,
26658 );
26659}
26660unsafe extern "C" {
26661 pub fn BNCollaborationGroupGetUsers(
26662 group: *mut BNCollaborationGroup,
26663 userIds: *mut *mut *mut ::std::os::raw::c_char,
26664 usernames: *mut *mut *mut ::std::os::raw::c_char,
26665 count: *mut usize,
26666 ) -> bool;
26667}
26668unsafe extern "C" {
26669 pub fn BNCollaborationGroupSetUsernames(
26670 group: *mut BNCollaborationGroup,
26671 names: *mut *const ::std::os::raw::c_char,
26672 count: usize,
26673 ) -> bool;
26674}
26675unsafe extern "C" {
26676 pub fn BNCollaborationGroupContainsUser(
26677 group: *mut BNCollaborationGroup,
26678 username: *const ::std::os::raw::c_char,
26679 ) -> bool;
26680}
26681unsafe extern "C" {
26682 #[doc = " CollabUser"]
26683 pub fn BNNewCollaborationUserReference(
26684 user: *mut BNCollaborationUser,
26685 ) -> *mut BNCollaborationUser;
26686}
26687unsafe extern "C" {
26688 pub fn BNFreeCollaborationUser(user: *mut BNCollaborationUser);
26689}
26690unsafe extern "C" {
26691 pub fn BNFreeCollaborationUserList(users: *mut *mut BNCollaborationUser, count: usize);
26692}
26693unsafe extern "C" {
26694 pub fn BNCollaborationUserGetRemote(user: *mut BNCollaborationUser) -> *mut BNRemote;
26695}
26696unsafe extern "C" {
26697 pub fn BNCollaborationUserGetUrl(user: *mut BNCollaborationUser)
26698 -> *mut ::std::os::raw::c_char;
26699}
26700unsafe extern "C" {
26701 pub fn BNCollaborationUserGetId(user: *mut BNCollaborationUser) -> *mut ::std::os::raw::c_char;
26702}
26703unsafe extern "C" {
26704 pub fn BNCollaborationUserGetUsername(
26705 user: *mut BNCollaborationUser,
26706 ) -> *mut ::std::os::raw::c_char;
26707}
26708unsafe extern "C" {
26709 pub fn BNCollaborationUserGetEmail(
26710 user: *mut BNCollaborationUser,
26711 ) -> *mut ::std::os::raw::c_char;
26712}
26713unsafe extern "C" {
26714 pub fn BNCollaborationUserGetLastLogin(
26715 user: *mut BNCollaborationUser,
26716 ) -> *mut ::std::os::raw::c_char;
26717}
26718unsafe extern "C" {
26719 pub fn BNCollaborationUserIsActive(user: *mut BNCollaborationUser) -> bool;
26720}
26721unsafe extern "C" {
26722 pub fn BNCollaborationUserSetUsername(
26723 user: *mut BNCollaborationUser,
26724 username: *const ::std::os::raw::c_char,
26725 ) -> bool;
26726}
26727unsafe extern "C" {
26728 pub fn BNCollaborationUserSetEmail(
26729 user: *mut BNCollaborationUser,
26730 email: *const ::std::os::raw::c_char,
26731 ) -> bool;
26732}
26733unsafe extern "C" {
26734 pub fn BNCollaborationUserSetIsActive(user: *mut BNCollaborationUser, isActive: bool) -> bool;
26735}
26736unsafe extern "C" {
26737 #[doc = " RemoteProject"]
26738 pub fn BNNewRemoteProjectReference(project: *mut BNRemoteProject) -> *mut BNRemoteProject;
26739}
26740unsafe extern "C" {
26741 pub fn BNFreeRemoteProject(project: *mut BNRemoteProject);
26742}
26743unsafe extern "C" {
26744 pub fn BNFreeRemoteProjectList(projects: *mut *mut BNRemoteProject, count: usize);
26745}
26746unsafe extern "C" {
26747 pub fn BNRemoteProjectGetCoreProject(project: *mut BNRemoteProject) -> *mut BNProject;
26748}
26749unsafe extern "C" {
26750 pub fn BNRemoteProjectIsOpen(project: *mut BNRemoteProject) -> bool;
26751}
26752unsafe extern "C" {
26753 pub fn BNRemoteProjectOpen(
26754 project: *mut BNRemoteProject,
26755 progress: BNProgressFunction,
26756 progressCtxt: *mut ::std::os::raw::c_void,
26757 ) -> bool;
26758}
26759unsafe extern "C" {
26760 pub fn BNRemoteProjectClose(project: *mut BNRemoteProject);
26761}
26762unsafe extern "C" {
26763 pub fn BNRemoteProjectGetRemote(project: *mut BNRemoteProject) -> *mut BNRemote;
26764}
26765unsafe extern "C" {
26766 pub fn BNRemoteProjectGetUrl(project: *mut BNRemoteProject) -> *mut ::std::os::raw::c_char;
26767}
26768unsafe extern "C" {
26769 pub fn BNRemoteProjectGetCreated(project: *mut BNRemoteProject) -> i64;
26770}
26771unsafe extern "C" {
26772 pub fn BNRemoteProjectGetLastModified(project: *mut BNRemoteProject) -> i64;
26773}
26774unsafe extern "C" {
26775 pub fn BNRemoteProjectGetId(project: *mut BNRemoteProject) -> *mut ::std::os::raw::c_char;
26776}
26777unsafe extern "C" {
26778 pub fn BNRemoteProjectGetName(project: *mut BNRemoteProject) -> *mut ::std::os::raw::c_char;
26779}
26780unsafe extern "C" {
26781 pub fn BNRemoteProjectSetName(
26782 project: *mut BNRemoteProject,
26783 name: *const ::std::os::raw::c_char,
26784 ) -> bool;
26785}
26786unsafe extern "C" {
26787 pub fn BNRemoteProjectGetDescription(
26788 project: *mut BNRemoteProject,
26789 ) -> *mut ::std::os::raw::c_char;
26790}
26791unsafe extern "C" {
26792 pub fn BNRemoteProjectSetDescription(
26793 project: *mut BNRemoteProject,
26794 description: *const ::std::os::raw::c_char,
26795 ) -> bool;
26796}
26797unsafe extern "C" {
26798 pub fn BNRemoteProjectGetReceivedFileCount(project: *mut BNRemoteProject) -> u64;
26799}
26800unsafe extern "C" {
26801 pub fn BNRemoteProjectGetReceivedFolderCount(project: *mut BNRemoteProject) -> u64;
26802}
26803unsafe extern "C" {
26804 pub fn BNRemoteProjectHasPulledFiles(project: *mut BNRemoteProject) -> bool;
26805}
26806unsafe extern "C" {
26807 pub fn BNRemoteProjectHasPulledFolders(project: *mut BNRemoteProject) -> bool;
26808}
26809unsafe extern "C" {
26810 pub fn BNRemoteProjectHasPulledGroupPermissions(project: *mut BNRemoteProject) -> bool;
26811}
26812unsafe extern "C" {
26813 pub fn BNRemoteProjectHasPulledUserPermissions(project: *mut BNRemoteProject) -> bool;
26814}
26815unsafe extern "C" {
26816 pub fn BNRemoteProjectIsAdmin(project: *mut BNRemoteProject) -> bool;
26817}
26818unsafe extern "C" {
26819 pub fn BNRemoteProjectGetFiles(
26820 project: *mut BNRemoteProject,
26821 count: *mut usize,
26822 ) -> *mut *mut BNRemoteFile;
26823}
26824unsafe extern "C" {
26825 pub fn BNRemoteProjectGetFileById(
26826 project: *mut BNRemoteProject,
26827 id: *const ::std::os::raw::c_char,
26828 ) -> *mut BNRemoteFile;
26829}
26830unsafe extern "C" {
26831 pub fn BNRemoteProjectGetFileByName(
26832 project: *mut BNRemoteProject,
26833 name: *const ::std::os::raw::c_char,
26834 ) -> *mut BNRemoteFile;
26835}
26836unsafe extern "C" {
26837 pub fn BNRemoteProjectPullFiles(
26838 project: *mut BNRemoteProject,
26839 progress: BNProgressFunction,
26840 progressContext: *mut ::std::os::raw::c_void,
26841 ) -> bool;
26842}
26843unsafe extern "C" {
26844 pub fn BNRemoteProjectCreateFile(
26845 project: *mut BNRemoteProject,
26846 filename: *const ::std::os::raw::c_char,
26847 contents: *mut u8,
26848 contentsSize: usize,
26849 name: *const ::std::os::raw::c_char,
26850 description: *const ::std::os::raw::c_char,
26851 folder: *mut BNRemoteFolder,
26852 type_: BNRemoteFileType,
26853 progress: BNProgressFunction,
26854 progressContext: *mut ::std::os::raw::c_void,
26855 ) -> *mut BNRemoteFile;
26856}
26857unsafe extern "C" {
26858 pub fn BNRemoteProjectPushFile(
26859 project: *mut BNRemoteProject,
26860 file: *mut BNRemoteFile,
26861 extraFieldKeys: *mut *const ::std::os::raw::c_char,
26862 extraFieldValues: *mut *const ::std::os::raw::c_char,
26863 extraFieldCount: usize,
26864 ) -> bool;
26865}
26866unsafe extern "C" {
26867 pub fn BNRemoteProjectDeleteFile(
26868 project: *mut BNRemoteProject,
26869 file: *mut BNRemoteFile,
26870 ) -> bool;
26871}
26872unsafe extern "C" {
26873 pub fn BNRemoteProjectGetFolders(
26874 project: *mut BNRemoteProject,
26875 count: *mut usize,
26876 ) -> *mut *mut BNRemoteFolder;
26877}
26878unsafe extern "C" {
26879 pub fn BNRemoteProjectGetFolderById(
26880 project: *mut BNRemoteProject,
26881 id: *const ::std::os::raw::c_char,
26882 ) -> *mut BNRemoteFolder;
26883}
26884unsafe extern "C" {
26885 pub fn BNRemoteProjectPullFolders(
26886 project: *mut BNRemoteProject,
26887 progress: BNProgressFunction,
26888 progressContext: *mut ::std::os::raw::c_void,
26889 ) -> bool;
26890}
26891unsafe extern "C" {
26892 pub fn BNRemoteProjectCreateFolder(
26893 project: *mut BNRemoteProject,
26894 name: *const ::std::os::raw::c_char,
26895 description: *const ::std::os::raw::c_char,
26896 parent: *mut BNRemoteFolder,
26897 progress: BNProgressFunction,
26898 progressContext: *mut ::std::os::raw::c_void,
26899 ) -> *mut BNRemoteFolder;
26900}
26901unsafe extern "C" {
26902 pub fn BNRemoteProjectPushFolder(
26903 project: *mut BNRemoteProject,
26904 folder: *mut BNRemoteFolder,
26905 extraFieldKeys: *mut *const ::std::os::raw::c_char,
26906 extraFieldValues: *mut *const ::std::os::raw::c_char,
26907 extraFieldCount: usize,
26908 ) -> bool;
26909}
26910unsafe extern "C" {
26911 pub fn BNRemoteProjectDeleteFolder(
26912 project: *mut BNRemoteProject,
26913 folder: *mut BNRemoteFolder,
26914 ) -> bool;
26915}
26916unsafe extern "C" {
26917 pub fn BNRemoteProjectGetGroupPermissions(
26918 project: *mut BNRemoteProject,
26919 count: *mut usize,
26920 ) -> *mut *mut BNCollaborationPermission;
26921}
26922unsafe extern "C" {
26923 pub fn BNRemoteProjectGetUserPermissions(
26924 project: *mut BNRemoteProject,
26925 count: *mut usize,
26926 ) -> *mut *mut BNCollaborationPermission;
26927}
26928unsafe extern "C" {
26929 pub fn BNRemoteProjectGetPermissionById(
26930 project: *mut BNRemoteProject,
26931 id: *const ::std::os::raw::c_char,
26932 ) -> *mut BNCollaborationPermission;
26933}
26934unsafe extern "C" {
26935 pub fn BNRemoteProjectPullGroupPermissions(
26936 project: *mut BNRemoteProject,
26937 progress: BNProgressFunction,
26938 progressContext: *mut ::std::os::raw::c_void,
26939 ) -> bool;
26940}
26941unsafe extern "C" {
26942 pub fn BNRemoteProjectPullUserPermissions(
26943 project: *mut BNRemoteProject,
26944 progress: BNProgressFunction,
26945 progressContext: *mut ::std::os::raw::c_void,
26946 ) -> bool;
26947}
26948unsafe extern "C" {
26949 pub fn BNRemoteProjectCreateGroupPermission(
26950 project: *mut BNRemoteProject,
26951 groupId: i64,
26952 level: BNCollaborationPermissionLevel,
26953 progress: BNProgressFunction,
26954 progressContext: *mut ::std::os::raw::c_void,
26955 ) -> *mut BNCollaborationPermission;
26956}
26957unsafe extern "C" {
26958 pub fn BNRemoteProjectCreateUserPermission(
26959 project: *mut BNRemoteProject,
26960 userId: *const ::std::os::raw::c_char,
26961 level: BNCollaborationPermissionLevel,
26962 progress: BNProgressFunction,
26963 progressContext: *mut ::std::os::raw::c_void,
26964 ) -> *mut BNCollaborationPermission;
26965}
26966unsafe extern "C" {
26967 pub fn BNRemoteProjectPushPermission(
26968 project: *mut BNRemoteProject,
26969 permission: *mut BNCollaborationPermission,
26970 extraFieldKeys: *mut *const ::std::os::raw::c_char,
26971 extraFieldValues: *mut *const ::std::os::raw::c_char,
26972 extraFieldCount: usize,
26973 ) -> bool;
26974}
26975unsafe extern "C" {
26976 pub fn BNRemoteProjectDeletePermission(
26977 project: *mut BNRemoteProject,
26978 permission: *mut BNCollaborationPermission,
26979 ) -> bool;
26980}
26981unsafe extern "C" {
26982 pub fn BNRemoteProjectCanUserView(
26983 project: *mut BNRemoteProject,
26984 username: *const ::std::os::raw::c_char,
26985 ) -> bool;
26986}
26987unsafe extern "C" {
26988 pub fn BNRemoteProjectCanUserEdit(
26989 project: *mut BNRemoteProject,
26990 username: *const ::std::os::raw::c_char,
26991 ) -> bool;
26992}
26993unsafe extern "C" {
26994 pub fn BNRemoteProjectCanUserAdmin(
26995 project: *mut BNRemoteProject,
26996 username: *const ::std::os::raw::c_char,
26997 ) -> bool;
26998}
26999unsafe extern "C" {
27000 #[doc = " RemoteFile"]
27001 pub fn BNNewRemoteFileReference(file: *mut BNRemoteFile) -> *mut BNRemoteFile;
27002}
27003unsafe extern "C" {
27004 pub fn BNFreeRemoteFile(file: *mut BNRemoteFile);
27005}
27006unsafe extern "C" {
27007 pub fn BNFreeRemoteFileList(files: *mut *mut BNRemoteFile, count: usize);
27008}
27009unsafe extern "C" {
27010 pub fn BNRemoteFileGetCoreFile(file: *mut BNRemoteFile) -> *mut BNProjectFile;
27011}
27012unsafe extern "C" {
27013 pub fn BNRemoteFileGetProject(file: *mut BNRemoteFile) -> *mut BNRemoteProject;
27014}
27015unsafe extern "C" {
27016 pub fn BNRemoteFileGetFolder(file: *mut BNRemoteFile) -> *mut BNRemoteFolder;
27017}
27018unsafe extern "C" {
27019 pub fn BNRemoteFileGetRemote(file: *mut BNRemoteFile) -> *mut BNRemote;
27020}
27021unsafe extern "C" {
27022 pub fn BNRemoteFileGetUrl(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
27023}
27024unsafe extern "C" {
27025 pub fn BNRemoteFileGetChatLogUrl(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
27026}
27027unsafe extern "C" {
27028 pub fn BNRemoteFileGetUserPositionsUrl(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
27029}
27030unsafe extern "C" {
27031 pub fn BNRemoteFileGetId(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
27032}
27033unsafe extern "C" {
27034 pub fn BNRemoteFileGetType(file: *mut BNRemoteFile) -> BNRemoteFileType;
27035}
27036unsafe extern "C" {
27037 pub fn BNRemoteFileGetCreated(file: *mut BNRemoteFile) -> i64;
27038}
27039unsafe extern "C" {
27040 pub fn BNRemoteFileGetCreatedBy(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
27041}
27042unsafe extern "C" {
27043 pub fn BNRemoteFileGetLastModified(file: *mut BNRemoteFile) -> i64;
27044}
27045unsafe extern "C" {
27046 pub fn BNRemoteFileGetLastSnapshot(file: *mut BNRemoteFile) -> i64;
27047}
27048unsafe extern "C" {
27049 pub fn BNRemoteFileGetLastSnapshotBy(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
27050}
27051unsafe extern "C" {
27052 pub fn BNRemoteFileGetLastSnapshotName(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
27053}
27054unsafe extern "C" {
27055 pub fn BNRemoteFileGetHash(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
27056}
27057unsafe extern "C" {
27058 pub fn BNRemoteFileGetName(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
27059}
27060unsafe extern "C" {
27061 pub fn BNRemoteFileGetDescription(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
27062}
27063unsafe extern "C" {
27064 pub fn BNRemoteFileGetMetadata(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
27065}
27066unsafe extern "C" {
27067 pub fn BNRemoteFileGetSize(file: *mut BNRemoteFile) -> u64;
27068}
27069unsafe extern "C" {
27070 pub fn BNRemoteFileHasPulledSnapshots(file: *mut BNRemoteFile) -> bool;
27071}
27072unsafe extern "C" {
27073 pub fn BNRemoteFileSetName(
27074 file: *mut BNRemoteFile,
27075 name: *const ::std::os::raw::c_char,
27076 ) -> bool;
27077}
27078unsafe extern "C" {
27079 pub fn BNRemoteFileSetDescription(
27080 file: *mut BNRemoteFile,
27081 description: *const ::std::os::raw::c_char,
27082 ) -> bool;
27083}
27084unsafe extern "C" {
27085 pub fn BNRemoteFileSetFolder(file: *mut BNRemoteFile, folder: *mut BNRemoteFolder) -> bool;
27086}
27087unsafe extern "C" {
27088 pub fn BNRemoteFileSetMetadata(
27089 file: *mut BNRemoteFile,
27090 metadata: *const ::std::os::raw::c_char,
27091 ) -> bool;
27092}
27093unsafe extern "C" {
27094 pub fn BNRemoteFileGetSnapshots(
27095 file: *mut BNRemoteFile,
27096 count: *mut usize,
27097 ) -> *mut *mut BNCollaborationSnapshot;
27098}
27099unsafe extern "C" {
27100 pub fn BNRemoteFileGetSnapshotById(
27101 file: *mut BNRemoteFile,
27102 id: *const ::std::os::raw::c_char,
27103 ) -> *mut BNCollaborationSnapshot;
27104}
27105unsafe extern "C" {
27106 pub fn BNRemoteFilePullSnapshots(
27107 file: *mut BNRemoteFile,
27108 progress: BNProgressFunction,
27109 progressContext: *mut ::std::os::raw::c_void,
27110 ) -> bool;
27111}
27112unsafe extern "C" {
27113 pub fn BNRemoteFileCreateSnapshot(
27114 file: *mut BNRemoteFile,
27115 name: *const ::std::os::raw::c_char,
27116 contents: *mut u8,
27117 contentsSize: usize,
27118 analysisCacheContents: *mut u8,
27119 analysisCacheContentsSize: usize,
27120 fileContents: *mut u8,
27121 fileContentsSize: usize,
27122 parentIds: *mut *const ::std::os::raw::c_char,
27123 parentIdCount: usize,
27124 progress: BNProgressFunction,
27125 progressContext: *mut ::std::os::raw::c_void,
27126 ) -> *mut BNCollaborationSnapshot;
27127}
27128unsafe extern "C" {
27129 pub fn BNRemoteFileDeleteSnapshot(
27130 file: *mut BNRemoteFile,
27131 snapshot: *mut BNCollaborationSnapshot,
27132 ) -> bool;
27133}
27134unsafe extern "C" {
27135 pub fn BNRemoteFileDownload(
27136 file: *mut BNRemoteFile,
27137 progress: BNProgressFunction,
27138 progressCtxt: *mut ::std::os::raw::c_void,
27139 ) -> bool;
27140}
27141unsafe extern "C" {
27142 pub fn BNRemoteFileDownloadContents(
27143 file: *mut BNRemoteFile,
27144 progress: BNProgressFunction,
27145 progressCtxt: *mut ::std::os::raw::c_void,
27146 data: *mut *mut u8,
27147 size: *mut usize,
27148 ) -> bool;
27149}
27150unsafe extern "C" {
27151 pub fn BNRemoteFileRequestUserPositions(file: *mut BNRemoteFile)
27152 -> *mut ::std::os::raw::c_char;
27153}
27154unsafe extern "C" {
27155 pub fn BNRemoteFileRequestChatLog(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
27156}
27157unsafe extern "C" {
27158 #[doc = " RemoteFolder"]
27159 pub fn BNNewRemoteFolderReference(folder: *mut BNRemoteFolder) -> *mut BNRemoteFolder;
27160}
27161unsafe extern "C" {
27162 pub fn BNFreeRemoteFolder(folder: *mut BNRemoteFolder);
27163}
27164unsafe extern "C" {
27165 pub fn BNFreeRemoteFolderList(folders: *mut *mut BNRemoteFolder, count: usize);
27166}
27167unsafe extern "C" {
27168 pub fn BNRemoteFolderGetCoreFolder(folder: *mut BNRemoteFolder) -> *mut BNProjectFolder;
27169}
27170unsafe extern "C" {
27171 pub fn BNRemoteFolderGetProject(folder: *mut BNRemoteFolder) -> *mut BNRemoteProject;
27172}
27173unsafe extern "C" {
27174 pub fn BNRemoteFolderGetRemote(folder: *mut BNRemoteFolder) -> *mut BNRemote;
27175}
27176unsafe extern "C" {
27177 pub fn BNRemoteFolderGetParent(
27178 folder: *mut BNRemoteFolder,
27179 parent: *mut *mut BNRemoteFolder,
27180 ) -> bool;
27181}
27182unsafe extern "C" {
27183 pub fn BNRemoteFolderGetUrl(folder: *mut BNRemoteFolder) -> *mut ::std::os::raw::c_char;
27184}
27185unsafe extern "C" {
27186 pub fn BNRemoteFolderGetId(folder: *mut BNRemoteFolder) -> *mut ::std::os::raw::c_char;
27187}
27188unsafe extern "C" {
27189 pub fn BNRemoteFolderGetParentId(
27190 folder: *mut BNRemoteFolder,
27191 result: *mut *mut ::std::os::raw::c_char,
27192 ) -> bool;
27193}
27194unsafe extern "C" {
27195 pub fn BNRemoteFolderGetName(folder: *mut BNRemoteFolder) -> *mut ::std::os::raw::c_char;
27196}
27197unsafe extern "C" {
27198 pub fn BNRemoteFolderGetDescription(folder: *mut BNRemoteFolder)
27199 -> *mut ::std::os::raw::c_char;
27200}
27201unsafe extern "C" {
27202 pub fn BNRemoteFolderSetName(
27203 folder: *mut BNRemoteFolder,
27204 name: *const ::std::os::raw::c_char,
27205 ) -> bool;
27206}
27207unsafe extern "C" {
27208 pub fn BNRemoteFolderSetDescription(
27209 folder: *mut BNRemoteFolder,
27210 description: *const ::std::os::raw::c_char,
27211 ) -> bool;
27212}
27213unsafe extern "C" {
27214 pub fn BNRemoteFolderSetParent(
27215 folder: *mut BNRemoteFolder,
27216 parent: *mut BNRemoteFolder,
27217 ) -> bool;
27218}
27219unsafe extern "C" {
27220 #[doc = " CollabPermission"]
27221 pub fn BNNewCollaborationPermissionReference(
27222 permission: *mut BNCollaborationPermission,
27223 ) -> *mut BNCollaborationPermission;
27224}
27225unsafe extern "C" {
27226 pub fn BNFreeCollaborationPermission(permission: *mut BNCollaborationPermission);
27227}
27228unsafe extern "C" {
27229 pub fn BNFreeCollaborationPermissionList(
27230 permissions: *mut *mut BNCollaborationPermission,
27231 count: usize,
27232 );
27233}
27234unsafe extern "C" {
27235 pub fn BNCollaborationPermissionGetProject(
27236 permission: *mut BNCollaborationPermission,
27237 ) -> *mut BNRemoteProject;
27238}
27239unsafe extern "C" {
27240 pub fn BNCollaborationPermissionGetRemote(
27241 permission: *mut BNCollaborationPermission,
27242 ) -> *mut BNRemote;
27243}
27244unsafe extern "C" {
27245 pub fn BNCollaborationPermissionGetId(
27246 permission: *mut BNCollaborationPermission,
27247 ) -> *mut ::std::os::raw::c_char;
27248}
27249unsafe extern "C" {
27250 pub fn BNCollaborationPermissionGetUrl(
27251 permission: *mut BNCollaborationPermission,
27252 ) -> *mut ::std::os::raw::c_char;
27253}
27254unsafe extern "C" {
27255 pub fn BNCollaborationPermissionGetGroupId(permission: *mut BNCollaborationPermission) -> u64;
27256}
27257unsafe extern "C" {
27258 pub fn BNCollaborationPermissionGetGroupName(
27259 permission: *mut BNCollaborationPermission,
27260 ) -> *mut ::std::os::raw::c_char;
27261}
27262unsafe extern "C" {
27263 pub fn BNCollaborationPermissionGetUserId(
27264 permission: *mut BNCollaborationPermission,
27265 ) -> *mut ::std::os::raw::c_char;
27266}
27267unsafe extern "C" {
27268 pub fn BNCollaborationPermissionGetUsername(
27269 permission: *mut BNCollaborationPermission,
27270 ) -> *mut ::std::os::raw::c_char;
27271}
27272unsafe extern "C" {
27273 pub fn BNCollaborationPermissionGetLevel(
27274 permission: *mut BNCollaborationPermission,
27275 ) -> BNCollaborationPermissionLevel;
27276}
27277unsafe extern "C" {
27278 pub fn BNCollaborationPermissionSetLevel(
27279 permission: *mut BNCollaborationPermission,
27280 level: BNCollaborationPermissionLevel,
27281 );
27282}
27283unsafe extern "C" {
27284 pub fn BNCollaborationPermissionCanView(permission: *mut BNCollaborationPermission) -> bool;
27285}
27286unsafe extern "C" {
27287 pub fn BNCollaborationPermissionCanEdit(permission: *mut BNCollaborationPermission) -> bool;
27288}
27289unsafe extern "C" {
27290 pub fn BNCollaborationPermissionCanAdmin(permission: *mut BNCollaborationPermission) -> bool;
27291}
27292unsafe extern "C" {
27293 #[doc = " AnalysisMergeConflict"]
27294 pub fn BNNewAnalysisMergeConflictReference(
27295 conflict: *mut BNAnalysisMergeConflict,
27296 ) -> *mut BNAnalysisMergeConflict;
27297}
27298unsafe extern "C" {
27299 pub fn BNFreeAnalysisMergeConflict(conflict: *mut BNAnalysisMergeConflict);
27300}
27301unsafe extern "C" {
27302 pub fn BNFreeAnalysisMergeConflictList(
27303 conflicts: *mut *mut BNAnalysisMergeConflict,
27304 count: usize,
27305 );
27306}
27307unsafe extern "C" {
27308 pub fn BNAnalysisMergeConflictGetDatabase(
27309 conflict: *mut BNAnalysisMergeConflict,
27310 ) -> *mut BNDatabase;
27311}
27312unsafe extern "C" {
27313 pub fn BNAnalysisMergeConflictGetType(
27314 conflict: *mut BNAnalysisMergeConflict,
27315 ) -> *mut ::std::os::raw::c_char;
27316}
27317unsafe extern "C" {
27318 pub fn BNAnalysisMergeConflictGetKey(
27319 conflict: *mut BNAnalysisMergeConflict,
27320 ) -> *mut ::std::os::raw::c_char;
27321}
27322unsafe extern "C" {
27323 pub fn BNAnalysisMergeConflictGetDataType(
27324 conflict: *mut BNAnalysisMergeConflict,
27325 ) -> BNMergeConflictDataType;
27326}
27327unsafe extern "C" {
27328 pub fn BNAnalysisMergeConflictGetBase(
27329 conflict: *mut BNAnalysisMergeConflict,
27330 ) -> *mut ::std::os::raw::c_char;
27331}
27332unsafe extern "C" {
27333 pub fn BNAnalysisMergeConflictGetFirst(
27334 conflict: *mut BNAnalysisMergeConflict,
27335 ) -> *mut ::std::os::raw::c_char;
27336}
27337unsafe extern "C" {
27338 pub fn BNAnalysisMergeConflictGetSecond(
27339 conflict: *mut BNAnalysisMergeConflict,
27340 ) -> *mut ::std::os::raw::c_char;
27341}
27342unsafe extern "C" {
27343 pub fn BNAnalysisMergeConflictGetBaseFile(
27344 conflict: *mut BNAnalysisMergeConflict,
27345 ) -> *mut BNFileMetadata;
27346}
27347unsafe extern "C" {
27348 pub fn BNAnalysisMergeConflictGetFirstFile(
27349 conflict: *mut BNAnalysisMergeConflict,
27350 ) -> *mut BNFileMetadata;
27351}
27352unsafe extern "C" {
27353 pub fn BNAnalysisMergeConflictGetSecondFile(
27354 conflict: *mut BNAnalysisMergeConflict,
27355 ) -> *mut BNFileMetadata;
27356}
27357unsafe extern "C" {
27358 pub fn BNAnalysisMergeConflictGetBaseSnapshot(
27359 conflict: *mut BNAnalysisMergeConflict,
27360 ) -> *mut BNSnapshot;
27361}
27362unsafe extern "C" {
27363 pub fn BNAnalysisMergeConflictGetFirstSnapshot(
27364 conflict: *mut BNAnalysisMergeConflict,
27365 ) -> *mut BNSnapshot;
27366}
27367unsafe extern "C" {
27368 pub fn BNAnalysisMergeConflictGetSecondSnapshot(
27369 conflict: *mut BNAnalysisMergeConflict,
27370 ) -> *mut BNSnapshot;
27371}
27372unsafe extern "C" {
27373 pub fn BNAnalysisMergeConflictGetPathItemString(
27374 conflict: *mut BNAnalysisMergeConflict,
27375 path: *const ::std::os::raw::c_char,
27376 ) -> *mut ::std::os::raw::c_char;
27377}
27378unsafe extern "C" {
27379 pub fn BNAnalysisMergeConflictGetPathItemSerialized(
27380 conflict: *mut BNAnalysisMergeConflict,
27381 path: *const ::std::os::raw::c_char,
27382 ) -> *mut ::std::os::raw::c_char;
27383}
27384unsafe extern "C" {
27385 pub fn BNAnalysisMergeConflictGetPathItem(
27386 conflict: *mut BNAnalysisMergeConflict,
27387 path: *const ::std::os::raw::c_char,
27388 ) -> *mut ::std::os::raw::c_void;
27389}
27390unsafe extern "C" {
27391 pub fn BNAnalysisMergeConflictSuccess(
27392 conflict: *mut BNAnalysisMergeConflict,
27393 value: *const ::std::os::raw::c_char,
27394 ) -> bool;
27395}
27396unsafe extern "C" {
27397 #[doc = " TypeArchiveMergeConflict"]
27398 pub fn BNNewTypeArchiveMergeConflictReference(
27399 conflict: *mut BNTypeArchiveMergeConflict,
27400 ) -> *mut BNTypeArchiveMergeConflict;
27401}
27402unsafe extern "C" {
27403 pub fn BNFreeTypeArchiveMergeConflict(conflict: *mut BNTypeArchiveMergeConflict);
27404}
27405unsafe extern "C" {
27406 pub fn BNFreeTypeArchiveMergeConflictList(
27407 conflicts: *mut *mut BNTypeArchiveMergeConflict,
27408 count: usize,
27409 );
27410}
27411unsafe extern "C" {
27412 pub fn BNTypeArchiveMergeConflictGetTypeArchive(
27413 conflict: *mut BNTypeArchiveMergeConflict,
27414 ) -> *mut BNTypeArchive;
27415}
27416unsafe extern "C" {
27417 pub fn BNTypeArchiveMergeConflictGetTypeId(
27418 conflict: *mut BNTypeArchiveMergeConflict,
27419 ) -> *mut ::std::os::raw::c_char;
27420}
27421unsafe extern "C" {
27422 pub fn BNTypeArchiveMergeConflictGetBaseSnapshotId(
27423 conflict: *mut BNTypeArchiveMergeConflict,
27424 ) -> *mut ::std::os::raw::c_char;
27425}
27426unsafe extern "C" {
27427 pub fn BNTypeArchiveMergeConflictGetFirstSnapshotId(
27428 conflict: *mut BNTypeArchiveMergeConflict,
27429 ) -> *mut ::std::os::raw::c_char;
27430}
27431unsafe extern "C" {
27432 pub fn BNTypeArchiveMergeConflictGetSecondSnapshotId(
27433 conflict: *mut BNTypeArchiveMergeConflict,
27434 ) -> *mut ::std::os::raw::c_char;
27435}
27436unsafe extern "C" {
27437 pub fn BNTypeArchiveMergeConflictSuccess(
27438 conflict: *mut BNTypeArchiveMergeConflict,
27439 value: *const ::std::os::raw::c_char,
27440 ) -> bool;
27441}
27442unsafe extern "C" {
27443 #[doc = " CollabSnapshot"]
27444 pub fn BNNewCollaborationSnapshotReference(
27445 snapshot: *mut BNCollaborationSnapshot,
27446 ) -> *mut BNCollaborationSnapshot;
27447}
27448unsafe extern "C" {
27449 pub fn BNFreeCollaborationSnapshot(snapshot: *mut BNCollaborationSnapshot);
27450}
27451unsafe extern "C" {
27452 pub fn BNFreeCollaborationSnapshotList(
27453 snapshots: *mut *mut BNCollaborationSnapshot,
27454 count: usize,
27455 );
27456}
27457unsafe extern "C" {
27458 pub fn BNCollaborationSnapshotGetFile(
27459 snapshot: *mut BNCollaborationSnapshot,
27460 ) -> *mut BNRemoteFile;
27461}
27462unsafe extern "C" {
27463 pub fn BNCollaborationSnapshotGetProject(
27464 snapshot: *mut BNCollaborationSnapshot,
27465 ) -> *mut BNRemoteProject;
27466}
27467unsafe extern "C" {
27468 pub fn BNCollaborationSnapshotGetRemote(
27469 snapshot: *mut BNCollaborationSnapshot,
27470 ) -> *mut BNRemote;
27471}
27472unsafe extern "C" {
27473 pub fn BNCollaborationSnapshotGetUrl(
27474 snapshot: *mut BNCollaborationSnapshot,
27475 ) -> *mut ::std::os::raw::c_char;
27476}
27477unsafe extern "C" {
27478 pub fn BNCollaborationSnapshotGetId(
27479 snapshot: *mut BNCollaborationSnapshot,
27480 ) -> *mut ::std::os::raw::c_char;
27481}
27482unsafe extern "C" {
27483 pub fn BNCollaborationSnapshotGetName(
27484 snapshot: *mut BNCollaborationSnapshot,
27485 ) -> *mut ::std::os::raw::c_char;
27486}
27487unsafe extern "C" {
27488 pub fn BNCollaborationSnapshotGetAuthor(
27489 snapshot: *mut BNCollaborationSnapshot,
27490 ) -> *mut ::std::os::raw::c_char;
27491}
27492unsafe extern "C" {
27493 pub fn BNCollaborationSnapshotGetCreated(snapshot: *mut BNCollaborationSnapshot) -> i64;
27494}
27495unsafe extern "C" {
27496 pub fn BNCollaborationSnapshotGetLastModified(snapshot: *mut BNCollaborationSnapshot) -> i64;
27497}
27498unsafe extern "C" {
27499 pub fn BNCollaborationSnapshotGetHash(
27500 snapshot: *mut BNCollaborationSnapshot,
27501 ) -> *mut ::std::os::raw::c_char;
27502}
27503unsafe extern "C" {
27504 pub fn BNCollaborationSnapshotGetSnapshotFileHash(
27505 snapshot: *mut BNCollaborationSnapshot,
27506 ) -> *mut ::std::os::raw::c_char;
27507}
27508unsafe extern "C" {
27509 pub fn BNCollaborationSnapshotHasPulledUndoEntries(
27510 snapshot: *mut BNCollaborationSnapshot,
27511 ) -> bool;
27512}
27513unsafe extern "C" {
27514 pub fn BNCollaborationSnapshotIsFinalized(snapshot: *mut BNCollaborationSnapshot) -> bool;
27515}
27516unsafe extern "C" {
27517 pub fn BNCollaborationSnapshotGetParentIds(
27518 snapshot: *mut BNCollaborationSnapshot,
27519 count: *mut usize,
27520 ) -> *mut *mut ::std::os::raw::c_char;
27521}
27522unsafe extern "C" {
27523 pub fn BNCollaborationSnapshotGetChildIds(
27524 snapshot: *mut BNCollaborationSnapshot,
27525 count: *mut usize,
27526 ) -> *mut *mut ::std::os::raw::c_char;
27527}
27528unsafe extern "C" {
27529 pub fn BNCollaborationSnapshotGetAnalysisCacheBuildId(
27530 snapshot: *mut BNCollaborationSnapshot,
27531 ) -> u64;
27532}
27533unsafe extern "C" {
27534 pub fn BNCollaborationSnapshotGetTitle(
27535 snapshot: *mut BNCollaborationSnapshot,
27536 ) -> *mut ::std::os::raw::c_char;
27537}
27538unsafe extern "C" {
27539 pub fn BNCollaborationSnapshotGetDescription(
27540 snapshot: *mut BNCollaborationSnapshot,
27541 ) -> *mut ::std::os::raw::c_char;
27542}
27543unsafe extern "C" {
27544 pub fn BNCollaborationSnapshotGetAuthorUsername(
27545 snapshot: *mut BNCollaborationSnapshot,
27546 ) -> *mut ::std::os::raw::c_char;
27547}
27548unsafe extern "C" {
27549 pub fn BNCollaborationSnapshotGetParents(
27550 snapshot: *mut BNCollaborationSnapshot,
27551 count: *mut usize,
27552 ) -> *mut *mut BNCollaborationSnapshot;
27553}
27554unsafe extern "C" {
27555 pub fn BNCollaborationSnapshotGetChildren(
27556 snapshot: *mut BNCollaborationSnapshot,
27557 count: *mut usize,
27558 ) -> *mut *mut BNCollaborationSnapshot;
27559}
27560unsafe extern "C" {
27561 pub fn BNCollaborationSnapshotGetUndoEntries(
27562 snapshot: *mut BNCollaborationSnapshot,
27563 count: *mut usize,
27564 ) -> *mut *mut BNCollaborationUndoEntry;
27565}
27566unsafe extern "C" {
27567 pub fn BNCollaborationSnapshotGetUndoEntryById(
27568 snapshot: *mut BNCollaborationSnapshot,
27569 id: u64,
27570 ) -> *mut BNCollaborationUndoEntry;
27571}
27572unsafe extern "C" {
27573 pub fn BNCollaborationSnapshotPullUndoEntries(
27574 snapshot: *mut BNCollaborationSnapshot,
27575 progress: BNProgressFunction,
27576 progressContext: *mut ::std::os::raw::c_void,
27577 ) -> bool;
27578}
27579unsafe extern "C" {
27580 pub fn BNCollaborationSnapshotCreateUndoEntry(
27581 snapshot: *mut BNCollaborationSnapshot,
27582 hasParent: bool,
27583 parent: u64,
27584 data: *const ::std::os::raw::c_char,
27585 ) -> *mut BNCollaborationUndoEntry;
27586}
27587unsafe extern "C" {
27588 pub fn BNCollaborationSnapshotFinalize(snapshot: *mut BNCollaborationSnapshot) -> bool;
27589}
27590unsafe extern "C" {
27591 pub fn BNCollaborationSnapshotDownloadSnapshotFile(
27592 snapshot: *mut BNCollaborationSnapshot,
27593 progress: BNProgressFunction,
27594 progressContext: *mut ::std::os::raw::c_void,
27595 data: *mut *mut u8,
27596 size: *mut usize,
27597 ) -> bool;
27598}
27599unsafe extern "C" {
27600 pub fn BNCollaborationSnapshotDownload(
27601 snapshot: *mut BNCollaborationSnapshot,
27602 progress: BNProgressFunction,
27603 progressContext: *mut ::std::os::raw::c_void,
27604 data: *mut *mut u8,
27605 size: *mut usize,
27606 ) -> bool;
27607}
27608unsafe extern "C" {
27609 pub fn BNCollaborationSnapshotDownloadAnalysisCache(
27610 snapshot: *mut BNCollaborationSnapshot,
27611 progress: BNProgressFunction,
27612 progressContext: *mut ::std::os::raw::c_void,
27613 data: *mut *mut u8,
27614 size: *mut usize,
27615 ) -> bool;
27616}
27617unsafe extern "C" {
27618 #[doc = " CollabUndoEntry"]
27619 pub fn BNNewCollaborationUndoEntryReference(
27620 entry: *mut BNCollaborationUndoEntry,
27621 ) -> *mut BNCollaborationUndoEntry;
27622}
27623unsafe extern "C" {
27624 pub fn BNFreeCollaborationUndoEntry(entry: *mut BNCollaborationUndoEntry);
27625}
27626unsafe extern "C" {
27627 pub fn BNFreeCollaborationUndoEntryList(
27628 entries: *mut *mut BNCollaborationUndoEntry,
27629 count: usize,
27630 );
27631}
27632unsafe extern "C" {
27633 pub fn BNCollaborationUndoEntryGetSnapshot(
27634 undoEntry: *mut BNCollaborationUndoEntry,
27635 ) -> *mut BNCollaborationSnapshot;
27636}
27637unsafe extern "C" {
27638 pub fn BNCollaborationUndoEntryGetFile(
27639 undoEntry: *mut BNCollaborationUndoEntry,
27640 ) -> *mut BNRemoteFile;
27641}
27642unsafe extern "C" {
27643 pub fn BNCollaborationUndoEntryGetProject(
27644 undoEntry: *mut BNCollaborationUndoEntry,
27645 ) -> *mut BNRemoteProject;
27646}
27647unsafe extern "C" {
27648 pub fn BNCollaborationUndoEntryGetRemote(
27649 undoEntry: *mut BNCollaborationUndoEntry,
27650 ) -> *mut BNRemote;
27651}
27652unsafe extern "C" {
27653 pub fn BNCollaborationUndoEntryGetUrl(
27654 undoEntry: *mut BNCollaborationUndoEntry,
27655 ) -> *mut ::std::os::raw::c_char;
27656}
27657unsafe extern "C" {
27658 pub fn BNCollaborationUndoEntryGetId(undoEntry: *mut BNCollaborationUndoEntry) -> u64;
27659}
27660unsafe extern "C" {
27661 pub fn BNCollaborationUndoEntryGetParentId(
27662 undoEntry: *mut BNCollaborationUndoEntry,
27663 parentId: *mut u64,
27664 ) -> bool;
27665}
27666unsafe extern "C" {
27667 pub fn BNCollaborationUndoEntryGetData(
27668 undoEntry: *mut BNCollaborationUndoEntry,
27669 data: *mut *mut ::std::os::raw::c_char,
27670 ) -> bool;
27671}
27672unsafe extern "C" {
27673 pub fn BNCollaborationUndoEntryGetParent(
27674 undoEntry: *mut BNCollaborationUndoEntry,
27675 ) -> *mut BNCollaborationUndoEntry;
27676}
27677unsafe extern "C" {
27678 #[doc = " CollabChangeset"]
27679 pub fn BNNewCollaborationChangesetReference(
27680 changeset: *mut BNCollaborationChangeset,
27681 ) -> *mut BNCollaborationChangeset;
27682}
27683unsafe extern "C" {
27684 pub fn BNFreeCollaborationChangeset(changeset: *mut BNCollaborationChangeset);
27685}
27686unsafe extern "C" {
27687 pub fn BNFreeCollaborationChangesetList(
27688 changesets: *mut *mut BNCollaborationChangeset,
27689 count: usize,
27690 );
27691}
27692unsafe extern "C" {
27693 pub fn BNCollaborationChangesetGetDatabase(
27694 changeset: *mut BNCollaborationChangeset,
27695 ) -> *mut BNDatabase;
27696}
27697unsafe extern "C" {
27698 pub fn BNCollaborationChangesetGetFile(
27699 changeset: *mut BNCollaborationChangeset,
27700 ) -> *mut BNRemoteFile;
27701}
27702unsafe extern "C" {
27703 pub fn BNCollaborationChangesetGetSnapshotIds(
27704 changeset: *mut BNCollaborationChangeset,
27705 count: *mut usize,
27706 ) -> *mut i64;
27707}
27708unsafe extern "C" {
27709 pub fn BNCollaborationChangesetGetAuthor(
27710 changeset: *mut BNCollaborationChangeset,
27711 ) -> *mut BNCollaborationUser;
27712}
27713unsafe extern "C" {
27714 pub fn BNCollaborationChangesetGetName(
27715 changeset: *mut BNCollaborationChangeset,
27716 ) -> *mut ::std::os::raw::c_char;
27717}
27718unsafe extern "C" {
27719 pub fn BNCollaborationChangesetSetName(
27720 changeset: *mut BNCollaborationChangeset,
27721 name: *const ::std::os::raw::c_char,
27722 ) -> bool;
27723}
27724unsafe extern "C" {
27725 #[doc = " AnalysisMergeConflictSplitter"]
27726 pub fn BNRegisterAnalysisMergeConflictSplitter(
27727 callbacks: *mut BNAnalysisMergeConflictSplitterCallbacks,
27728 ) -> *mut BNAnalysisMergeConflictSplitter;
27729}
27730unsafe extern "C" {
27731 pub fn BNGetAnalysisMergeConflictSplitterList(
27732 count: *mut usize,
27733 ) -> *mut *mut BNAnalysisMergeConflictSplitter;
27734}
27735unsafe extern "C" {
27736 pub fn BNFreeAnalysisMergeConflictSplitterList(
27737 splitters: *mut *mut BNAnalysisMergeConflictSplitter,
27738 count: usize,
27739 );
27740}
27741unsafe extern "C" {
27742 pub fn BNAnalysisMergeConflictSplitterGetName(
27743 splitter: *mut BNAnalysisMergeConflictSplitter,
27744 ) -> *mut ::std::os::raw::c_char;
27745}
27746unsafe extern "C" {
27747 pub fn BNAnalysisMergeConflictSplitterCanSplit(
27748 splitter: *mut BNAnalysisMergeConflictSplitter,
27749 key: *const ::std::os::raw::c_char,
27750 conflict: *mut BNAnalysisMergeConflict,
27751 ) -> bool;
27752}
27753unsafe extern "C" {
27754 pub fn BNAnalysisMergeConflictSplitterSplit(
27755 splitter: *mut BNAnalysisMergeConflictSplitter,
27756 originalKey: *const ::std::os::raw::c_char,
27757 originalConflict: *mut BNAnalysisMergeConflict,
27758 result: *mut BNKeyValueStore,
27759 newKeys: *mut *mut *mut ::std::os::raw::c_char,
27760 newConflicts: *mut *mut *mut BNAnalysisMergeConflict,
27761 newCount: *mut usize,
27762 ) -> bool;
27763}
27764unsafe extern "C" {
27765 #[doc = " High level token emitter"]
27766 pub fn BNNewHighLevelILTokenEmitterReference(
27767 emitter: *mut BNHighLevelILTokenEmitter,
27768 ) -> *mut BNHighLevelILTokenEmitter;
27769}
27770unsafe extern "C" {
27771 pub fn BNHighLevelILTokenPrependCollapseBlankIndicator(emitter: *mut BNHighLevelILTokenEmitter);
27772}
27773unsafe extern "C" {
27774 pub fn BNHighLevelILTokenPrependCollapseIndicator(
27775 emitter: *mut BNHighLevelILTokenEmitter,
27776 context: BNInstructionTextTokenContext,
27777 hash: u64,
27778 );
27779}
27780unsafe extern "C" {
27781 pub fn BNHighLevelILTokenEmitterHasCollapsableRegions(
27782 emitter: *mut BNHighLevelILTokenEmitter,
27783 ) -> bool;
27784}
27785unsafe extern "C" {
27786 pub fn BNHighLevelILTokenEmitterSetHasCollapsableRegions(
27787 emitter: *mut BNHighLevelILTokenEmitter,
27788 state: bool,
27789 );
27790}
27791unsafe extern "C" {
27792 pub fn BNFreeHighLevelILTokenEmitter(emitter: *mut BNHighLevelILTokenEmitter);
27793}
27794unsafe extern "C" {
27795 pub fn BNHighLevelILTokenEmitterAppend(
27796 emitter: *mut BNHighLevelILTokenEmitter,
27797 token: *mut BNInstructionTextToken,
27798 );
27799}
27800unsafe extern "C" {
27801 pub fn BNHighLevelILTokenEmitterInitLine(emitter: *mut BNHighLevelILTokenEmitter);
27802}
27803unsafe extern "C" {
27804 pub fn BNHighLevelILTokenEmitterNewLine(emitter: *mut BNHighLevelILTokenEmitter);
27805}
27806unsafe extern "C" {
27807 pub fn BNHighLevelILTokenEmitterIncreaseIndent(emitter: *mut BNHighLevelILTokenEmitter);
27808}
27809unsafe extern "C" {
27810 pub fn BNHighLevelILTokenEmitterDecreaseIndent(emitter: *mut BNHighLevelILTokenEmitter);
27811}
27812unsafe extern "C" {
27813 pub fn BNHighLevelILTokenEmitterScopeSeparator(emitter: *mut BNHighLevelILTokenEmitter);
27814}
27815unsafe extern "C" {
27816 pub fn BNHighLevelILTokenEmitterBeginScope(
27817 emitter: *mut BNHighLevelILTokenEmitter,
27818 type_: BNScopeType,
27819 );
27820}
27821unsafe extern "C" {
27822 pub fn BNHighLevelILTokenEmitterEndScope(
27823 emitter: *mut BNHighLevelILTokenEmitter,
27824 type_: BNScopeType,
27825 );
27826}
27827unsafe extern "C" {
27828 pub fn BNHighLevelILTokenEmitterScopeContinuation(
27829 emitter: *mut BNHighLevelILTokenEmitter,
27830 forceSameLine: bool,
27831 );
27832}
27833unsafe extern "C" {
27834 pub fn BNHighLevelILTokenEmitterFinalizeScope(emitter: *mut BNHighLevelILTokenEmitter);
27835}
27836unsafe extern "C" {
27837 pub fn BNHighLevelILTokenEmitterNoIndentForThisLine(emitter: *mut BNHighLevelILTokenEmitter);
27838}
27839unsafe extern "C" {
27840 pub fn BNHighLevelILTokenEmitterBeginForceZeroConfidence(
27841 emitter: *mut BNHighLevelILTokenEmitter,
27842 );
27843}
27844unsafe extern "C" {
27845 pub fn BNHighLevelILTokenEmitterEndForceZeroConfidence(emitter: *mut BNHighLevelILTokenEmitter);
27846}
27847unsafe extern "C" {
27848 pub fn BNHighLevelILTokenEmitterSetCurrentExpr(
27849 emitter: *mut BNHighLevelILTokenEmitter,
27850 expr: BNTokenEmitterExpr,
27851 ) -> BNTokenEmitterExpr;
27852}
27853unsafe extern "C" {
27854 pub fn BNHighLevelILTokenEmitterRestoreCurrentExpr(
27855 emitter: *mut BNHighLevelILTokenEmitter,
27856 expr: BNTokenEmitterExpr,
27857 );
27858}
27859unsafe extern "C" {
27860 pub fn BNHighLevelILTokenEmitterFinalize(emitter: *mut BNHighLevelILTokenEmitter);
27861}
27862unsafe extern "C" {
27863 pub fn BNHighLevelILTokenEmitterAppendOpenParen(emitter: *mut BNHighLevelILTokenEmitter);
27864}
27865unsafe extern "C" {
27866 pub fn BNHighLevelILTokenEmitterAppendCloseParen(emitter: *mut BNHighLevelILTokenEmitter);
27867}
27868unsafe extern "C" {
27869 pub fn BNHighLevelILTokenEmitterAppendOpenBracket(emitter: *mut BNHighLevelILTokenEmitter);
27870}
27871unsafe extern "C" {
27872 pub fn BNHighLevelILTokenEmitterAppendCloseBracket(emitter: *mut BNHighLevelILTokenEmitter);
27873}
27874unsafe extern "C" {
27875 pub fn BNHighLevelILTokenEmitterAppendOpenBrace(emitter: *mut BNHighLevelILTokenEmitter);
27876}
27877unsafe extern "C" {
27878 pub fn BNHighLevelILTokenEmitterAppendCloseBrace(emitter: *mut BNHighLevelILTokenEmitter);
27879}
27880unsafe extern "C" {
27881 pub fn BNHighLevelILTokenEmitterAppendSemicolon(emitter: *mut BNHighLevelILTokenEmitter);
27882}
27883unsafe extern "C" {
27884 pub fn BNHighLevelILTokenEmitterSetBraceRequirement(
27885 emitter: *mut BNHighLevelILTokenEmitter,
27886 required: BNBraceRequirement,
27887 );
27888}
27889unsafe extern "C" {
27890 pub fn BNHighLevelILTokenEmitterSetBracesAroundSwitchCases(
27891 emitter: *mut BNHighLevelILTokenEmitter,
27892 braces: bool,
27893 );
27894}
27895unsafe extern "C" {
27896 pub fn BNHighLevelILTokenEmitterSetDefaultBracesOnSameLine(
27897 emitter: *mut BNHighLevelILTokenEmitter,
27898 sameLine: bool,
27899 );
27900}
27901unsafe extern "C" {
27902 pub fn BNHighLevelILTokenEmitterSetSimpleScopeAllowed(
27903 emitter: *mut BNHighLevelILTokenEmitter,
27904 allowed: bool,
27905 );
27906}
27907unsafe extern "C" {
27908 pub fn BNHighLevelILTokenEmitterGetBraceRequirement(
27909 emitter: *mut BNHighLevelILTokenEmitter,
27910 ) -> BNBraceRequirement;
27911}
27912unsafe extern "C" {
27913 pub fn BNHighLevelILTokenEmitterHasBracesAroundSwitchCases(
27914 emitter: *mut BNHighLevelILTokenEmitter,
27915 ) -> bool;
27916}
27917unsafe extern "C" {
27918 pub fn BNHighLevelILTokenEmitterGetDefaultBracesOnSameLine(
27919 emitter: *mut BNHighLevelILTokenEmitter,
27920 ) -> bool;
27921}
27922unsafe extern "C" {
27923 pub fn BNHighLevelILTokenEmitterGetMaxTernarySimplficationTokens(
27924 emitter: *mut BNHighLevelILTokenEmitter,
27925 ) -> usize;
27926}
27927unsafe extern "C" {
27928 pub fn BNHighLevelILTokenEmitterIsSimpleScopeAllowed(
27929 emitter: *mut BNHighLevelILTokenEmitter,
27930 ) -> bool;
27931}
27932unsafe extern "C" {
27933 pub fn BNHighLevelILTokenEmitterGetCurrentTokens(
27934 emitter: *mut BNHighLevelILTokenEmitter,
27935 tokenCount: *mut usize,
27936 ) -> *mut BNInstructionTextToken;
27937}
27938unsafe extern "C" {
27939 pub fn BNHighLevelILTokenEmitterSetCurrentTokens(
27940 emitter: *mut BNHighLevelILTokenEmitter,
27941 tokens: *mut BNInstructionTextToken,
27942 tokenCount: usize,
27943 );
27944}
27945unsafe extern "C" {
27946 pub fn BNHighLevelILTokenEmitterGetLines(
27947 emitter: *mut BNHighLevelILTokenEmitter,
27948 count: *mut usize,
27949 ) -> *mut BNDisassemblyTextLine;
27950}
27951unsafe extern "C" {
27952 pub fn BNAddHighLevelILSizeToken(
27953 size: usize,
27954 type_: BNInstructionTextTokenType,
27955 tokens: *mut BNHighLevelILTokenEmitter,
27956 );
27957}
27958unsafe extern "C" {
27959 pub fn BNAddHighLevelILFloatSizeToken(
27960 size: usize,
27961 type_: BNInstructionTextTokenType,
27962 tokens: *mut BNHighLevelILTokenEmitter,
27963 );
27964}
27965unsafe extern "C" {
27966 pub fn BNAddHighLevelILVarTextToken(
27967 func: *mut BNHighLevelILFunction,
27968 var: *const BNVariable,
27969 tokens: *mut BNHighLevelILTokenEmitter,
27970 exprIndex: usize,
27971 size: usize,
27972 );
27973}
27974unsafe extern "C" {
27975 pub fn BNAddHighLevelILIntegerTextToken(
27976 func: *mut BNHighLevelILFunction,
27977 exprIndex: usize,
27978 val: i64,
27979 size: usize,
27980 tokens: *mut BNHighLevelILTokenEmitter,
27981 );
27982}
27983unsafe extern "C" {
27984 pub fn BNAddHighLevelILArrayIndexToken(
27985 func: *mut BNHighLevelILFunction,
27986 exprIndex: usize,
27987 val: i64,
27988 size: usize,
27989 tokens: *mut BNHighLevelILTokenEmitter,
27990 address: u64,
27991 );
27992}
27993unsafe extern "C" {
27994 pub fn BNAddHighLevelILPointerTextToken(
27995 func: *mut BNHighLevelILFunction,
27996 exprIndex: usize,
27997 val: i64,
27998 tokens: *mut BNHighLevelILTokenEmitter,
27999 settings: *mut BNDisassemblySettings,
28000 symbolDisplay: BNSymbolDisplayType,
28001 precedence: BNOperatorPrecedence,
28002 allowShortString: bool,
28003 ) -> BNSymbolDisplayResult;
28004}
28005unsafe extern "C" {
28006 pub fn BNAddHighLevelILConstantTextToken(
28007 func: *mut BNHighLevelILFunction,
28008 exprIndex: usize,
28009 val: i64,
28010 size: usize,
28011 tokens: *mut BNHighLevelILTokenEmitter,
28012 settings: *mut BNDisassemblySettings,
28013 precedence: BNOperatorPrecedence,
28014 );
28015}
28016unsafe extern "C" {
28017 pub fn BNAddNamesForOuterStructureMembers(
28018 data: *mut BNBinaryView,
28019 type_: *mut BNType,
28020 hlil: *mut BNHighLevelILFunction,
28021 varExpr: usize,
28022 nameCount: *mut usize,
28023 ) -> *mut *mut ::std::os::raw::c_char;
28024}
28025unsafe extern "C" {
28026 pub fn BNZeroExtend(value: i64, sourceSize: usize, destSize: usize) -> i64;
28027}
28028unsafe extern "C" {
28029 pub fn BNSignExtend(value: i64, sourceSize: usize, destSize: usize) -> i64;
28030}
28031unsafe extern "C" {
28032 pub fn BNMaskToSize(value: i64, size: usize) -> i64;
28033}
28034unsafe extern "C" {
28035 pub fn BNGetMaskForSize(size: usize) -> i64;
28036}
28037unsafe extern "C" {
28038 #[doc = " FirmwareNinja"]
28039 pub fn BNCreateFirmwareNinja(view: *mut BNBinaryView) -> *mut BNFirmwareNinja;
28040}
28041unsafe extern "C" {
28042 pub fn BNFreeFirmwareNinja(fn_: *mut BNFirmwareNinja);
28043}
28044unsafe extern "C" {
28045 pub fn BNFirmwareNinjaStoreCustomDevice(
28046 fn_: *mut BNFirmwareNinja,
28047 name: *const ::std::os::raw::c_char,
28048 start: u64,
28049 end: u64,
28050 info: *const ::std::os::raw::c_char,
28051 ) -> bool;
28052}
28053unsafe extern "C" {
28054 pub fn BNFirmwareNinjaRemoveCustomDevice(
28055 fn_: *mut BNFirmwareNinja,
28056 name: *const ::std::os::raw::c_char,
28057 ) -> bool;
28058}
28059unsafe extern "C" {
28060 pub fn BNFirmwareNinjaQueryCustomDevices(
28061 fn_: *mut BNFirmwareNinja,
28062 devices: *mut *mut BNFirmwareNinjaDevice,
28063 ) -> ::std::os::raw::c_int;
28064}
28065unsafe extern "C" {
28066 pub fn BNFirmwareNinjaFreeDevices(
28067 devices: *mut BNFirmwareNinjaDevice,
28068 size: ::std::os::raw::c_int,
28069 );
28070}
28071unsafe extern "C" {
28072 pub fn BNFirmwareNinjaQueryBoardNamesForArchitecture(
28073 fn_: *mut BNFirmwareNinja,
28074 arch: *mut BNArchitecture,
28075 boards: *mut *mut *mut ::std::os::raw::c_char,
28076 ) -> ::std::os::raw::c_int;
28077}
28078unsafe extern "C" {
28079 pub fn BNFirmwareNinjaFreeBoardNames(
28080 boards: *mut *mut ::std::os::raw::c_char,
28081 size: ::std::os::raw::c_int,
28082 );
28083}
28084unsafe extern "C" {
28085 pub fn BNFirmwareNinjaQueryBoardDevices(
28086 fn_: *mut BNFirmwareNinja,
28087 arch: *mut BNArchitecture,
28088 board: *const ::std::os::raw::c_char,
28089 devices: *mut *mut BNFirmwareNinjaDevice,
28090 ) -> ::std::os::raw::c_int;
28091}
28092unsafe extern "C" {
28093 pub fn BNFirmwareNinjaFindSectionsWithEntropy(
28094 fn_: *mut BNFirmwareNinja,
28095 sections: *mut *mut BNFirmwareNinjaSection,
28096 highCodeEntropyThreshold: f32,
28097 lowCodeEntropyThreshold: f32,
28098 blockSize: usize,
28099 mode: BNFirmwareNinjaSectionAnalysisMode,
28100 ) -> ::std::os::raw::c_int;
28101}
28102unsafe extern "C" {
28103 pub fn BNFirmwareNinjaFreeSections(
28104 sections: *mut BNFirmwareNinjaSection,
28105 size: ::std::os::raw::c_int,
28106 );
28107}
28108unsafe extern "C" {
28109 pub fn BNFirmwareNinjaGetFunctionMemoryAccesses(
28110 fn_: *mut BNFirmwareNinja,
28111 fma: *mut *mut *mut BNFirmwareNinjaFunctionMemoryAccesses,
28112 progress: BNProgressFunction,
28113 progressContext: *mut ::std::os::raw::c_void,
28114 ) -> ::std::os::raw::c_int;
28115}
28116unsafe extern "C" {
28117 pub fn BNFirmwareNinjaFreeFunctionMemoryAccesses(
28118 fma: *mut *mut BNFirmwareNinjaFunctionMemoryAccesses,
28119 size: ::std::os::raw::c_int,
28120 );
28121}
28122unsafe extern "C" {
28123 pub fn BNFirmwareNinjaStoreFunctionMemoryAccessesToMetadata(
28124 fn_: *mut BNFirmwareNinja,
28125 fma: *mut *mut BNFirmwareNinjaFunctionMemoryAccesses,
28126 size: ::std::os::raw::c_int,
28127 );
28128}
28129unsafe extern "C" {
28130 pub fn BNFirmwareNinjaQueryFunctionMemoryAccessesFromMetadata(
28131 fn_: *mut BNFirmwareNinja,
28132 fma: *mut *mut *mut BNFirmwareNinjaFunctionMemoryAccesses,
28133 ) -> ::std::os::raw::c_int;
28134}
28135unsafe extern "C" {
28136 pub fn BNFirmwareNinjaGetBoardDeviceAccesses(
28137 fn_: *mut BNFirmwareNinja,
28138 fma: *mut *mut BNFirmwareNinjaFunctionMemoryAccesses,
28139 size: ::std::os::raw::c_int,
28140 accesses: *mut *mut BNFirmwareNinjaDeviceAccesses,
28141 arch: *mut BNArchitecture,
28142 ) -> ::std::os::raw::c_int;
28143}
28144unsafe extern "C" {
28145 pub fn BNFirmwareNinjaFreeBoardDeviceAccesses(
28146 accesses: *mut BNFirmwareNinjaDeviceAccesses,
28147 size: ::std::os::raw::c_int,
28148 );
28149}
28150unsafe extern "C" {
28151 pub fn BNFirmwareNinjaGetMemoryRegionReferenceTree(
28152 fn_: *mut BNFirmwareNinja,
28153 start: u64,
28154 end: u64,
28155 fma: *mut *mut BNFirmwareNinjaFunctionMemoryAccesses,
28156 size: ::std::os::raw::c_int,
28157 value: *mut u64,
28158 ) -> *mut BNFirmwareNinjaReferenceNode;
28159}
28160unsafe extern "C" {
28161 pub fn BNFirmwareNinjaGetAddressReferenceTree(
28162 fn_: *mut BNFirmwareNinja,
28163 address: u64,
28164 fma: *mut *mut BNFirmwareNinjaFunctionMemoryAccesses,
28165 size: ::std::os::raw::c_int,
28166 value: *mut u64,
28167 ) -> *mut BNFirmwareNinjaReferenceNode;
28168}
28169unsafe extern "C" {
28170 pub fn BNFirmwareNinjaQueryRelationships(
28171 fn_: *mut BNFirmwareNinja,
28172 count: *mut usize,
28173 ) -> *mut *mut BNFirmwareNinjaRelationship;
28174}
28175unsafe extern "C" {
28176 pub fn BNFirmwareNinjaFreeRelationships(
28177 relationships: *mut *mut BNFirmwareNinjaRelationship,
28178 count: usize,
28179 );
28180}
28181unsafe extern "C" {
28182 pub fn BNFirmwareNinjaAddRelationship(
28183 fn_: *mut BNFirmwareNinja,
28184 rel: *mut BNFirmwareNinjaRelationship,
28185 );
28186}
28187unsafe extern "C" {
28188 pub fn BNFirmwareNinjaGetRelationshipByGuid(
28189 fn_: *mut BNFirmwareNinja,
28190 guid: *const ::std::os::raw::c_char,
28191 ) -> *mut BNFirmwareNinjaRelationship;
28192}
28193unsafe extern "C" {
28194 pub fn BNFirmwareNinjaRemoveRelationshipByGuid(
28195 fn_: *mut BNFirmwareNinja,
28196 guid: *const ::std::os::raw::c_char,
28197 );
28198}
28199unsafe extern "C" {
28200 pub fn BNFirmwareNinjaReferenceNodeIsFunction(node: *mut BNFirmwareNinjaReferenceNode) -> bool;
28201}
28202unsafe extern "C" {
28203 pub fn BNFirmwareNinjaReferenceNodeIsDataVariable(
28204 node: *mut BNFirmwareNinjaReferenceNode,
28205 ) -> bool;
28206}
28207unsafe extern "C" {
28208 pub fn BNFirmwareNinjaReferenceNodeHasChildren(node: *mut BNFirmwareNinjaReferenceNode)
28209 -> bool;
28210}
28211unsafe extern "C" {
28212 pub fn BNFirmwareNinjaReferenceNodeGetFunction(
28213 node: *mut BNFirmwareNinjaReferenceNode,
28214 ) -> *mut BNFunction;
28215}
28216unsafe extern "C" {
28217 pub fn BNFirmwareNinjaReferenceNodeGetDataVariable(
28218 node: *mut BNFirmwareNinjaReferenceNode,
28219 dataVariable: *mut BNDataVariable,
28220 ) -> bool;
28221}
28222unsafe extern "C" {
28223 pub fn BNFirmwareNinjaReferenceNodeGetChildren(
28224 parent: *mut BNFirmwareNinjaReferenceNode,
28225 count: *mut usize,
28226 ) -> *mut *mut BNFirmwareNinjaReferenceNode;
28227}
28228unsafe extern "C" {
28229 pub fn BNFreeFirmwareNinjaReferenceNode(node: *mut BNFirmwareNinjaReferenceNode);
28230}
28231unsafe extern "C" {
28232 pub fn BNNewFirmwareNinjaReferenceNodeReference(
28233 node: *mut BNFirmwareNinjaReferenceNode,
28234 ) -> *mut BNFirmwareNinjaReferenceNode;
28235}
28236unsafe extern "C" {
28237 pub fn BNFreeFirmwareNinjaReferenceNodes(
28238 nodes: *mut *mut BNFirmwareNinjaReferenceNode,
28239 count: usize,
28240 );
28241}
28242unsafe extern "C" {
28243 pub fn BNCreateFirmwareNinjaRelationship(
28244 view: *mut BNBinaryView,
28245 ) -> *mut BNFirmwareNinjaRelationship;
28246}
28247unsafe extern "C" {
28248 pub fn BNFreeFirmwareNinjaRelationship(rel: *mut BNFirmwareNinjaRelationship);
28249}
28250unsafe extern "C" {
28251 pub fn BNNewFirmwareNinjaRelationshipReference(
28252 rel: *mut BNFirmwareNinjaRelationship,
28253 ) -> *mut BNFirmwareNinjaRelationship;
28254}
28255unsafe extern "C" {
28256 pub fn BNFirmwareNinjaRelationshipSetPrimaryAddress(
28257 rel: *mut BNFirmwareNinjaRelationship,
28258 address: u64,
28259 );
28260}
28261unsafe extern "C" {
28262 pub fn BNFirmwareNinjaRelationshipSetPrimaryDataVariable(
28263 rel: *mut BNFirmwareNinjaRelationship,
28264 dataVariableAddress: u64,
28265 );
28266}
28267unsafe extern "C" {
28268 pub fn BNFirmwareNinjaRelationshipSetPrimaryFunction(
28269 rel: *mut BNFirmwareNinjaRelationship,
28270 function: *mut BNFunction,
28271 );
28272}
28273unsafe extern "C" {
28274 pub fn BNFirmwareNinjaRelationshipPrimaryIsDataVariable(
28275 rel: *mut BNFirmwareNinjaRelationship,
28276 ) -> bool;
28277}
28278unsafe extern "C" {
28279 pub fn BNFirmwareNinjaRelationshipPrimaryIsFunction(
28280 rel: *mut BNFirmwareNinjaRelationship,
28281 ) -> bool;
28282}
28283unsafe extern "C" {
28284 pub fn BNFirmwareNinjaRelationshipPrimaryIsAddress(
28285 rel: *mut BNFirmwareNinjaRelationship,
28286 ) -> bool;
28287}
28288unsafe extern "C" {
28289 pub fn BNFirmwareNinjaRelationshipGetPrimaryDataVariable(
28290 rel: *mut BNFirmwareNinjaRelationship,
28291 dataVariable: *mut BNDataVariable,
28292 ) -> bool;
28293}
28294unsafe extern "C" {
28295 pub fn BNFirmwareNinjaRelationshipGetPrimaryFunction(
28296 rel: *mut BNFirmwareNinjaRelationship,
28297 ) -> *mut BNFunction;
28298}
28299unsafe extern "C" {
28300 pub fn BNFirmwareNinjaRelationshipGetPrimaryAddress(
28301 rel: *mut BNFirmwareNinjaRelationship,
28302 result: *mut u64,
28303 ) -> bool;
28304}
28305unsafe extern "C" {
28306 pub fn BNFirmwareNinjaRelationshipSetSecondaryExternalAddress(
28307 rel: *mut BNFirmwareNinjaRelationship,
28308 projectFile: *mut BNProjectFile,
28309 address: u64,
28310 );
28311}
28312unsafe extern "C" {
28313 pub fn BNFirmwareNinjaRelationshipSetSecondaryExternalSymbol(
28314 rel: *mut BNFirmwareNinjaRelationship,
28315 projectFile: *mut BNProjectFile,
28316 symbol: *const ::std::os::raw::c_char,
28317 );
28318}
28319unsafe extern "C" {
28320 pub fn BNFirmwareNinjaRelationshipSetSecondaryAddress(
28321 rel: *mut BNFirmwareNinjaRelationship,
28322 address: u64,
28323 );
28324}
28325unsafe extern "C" {
28326 pub fn BNFirmwareNinjaRelationshipSetSecondaryDataVariable(
28327 rel: *mut BNFirmwareNinjaRelationship,
28328 dataVariableAddress: u64,
28329 );
28330}
28331unsafe extern "C" {
28332 pub fn BNFirmwareNinjaRelationshipSetSecondaryFunction(
28333 rel: *mut BNFirmwareNinjaRelationship,
28334 function: *mut BNFunction,
28335 );
28336}
28337unsafe extern "C" {
28338 pub fn BNFirmwareNinjaRelationshipSecondaryIsDataVariable(
28339 rel: *mut BNFirmwareNinjaRelationship,
28340 ) -> bool;
28341}
28342unsafe extern "C" {
28343 pub fn BNFirmwareNinjaRelationshipSecondaryIsFunction(
28344 rel: *mut BNFirmwareNinjaRelationship,
28345 ) -> bool;
28346}
28347unsafe extern "C" {
28348 pub fn BNFirmwareNinjaRelationshipSecondaryIsAddress(
28349 rel: *mut BNFirmwareNinjaRelationship,
28350 ) -> bool;
28351}
28352unsafe extern "C" {
28353 pub fn BNFirmwareNinjaRelationshipSecondaryIsExternalAddress(
28354 rel: *mut BNFirmwareNinjaRelationship,
28355 ) -> bool;
28356}
28357unsafe extern "C" {
28358 pub fn BNFirmwareNinjaRelationshipSecondaryIsExternalSymbol(
28359 rel: *mut BNFirmwareNinjaRelationship,
28360 ) -> bool;
28361}
28362unsafe extern "C" {
28363 pub fn BNFirmwareNinjaRelationshipGetSecondaryExternalProjectFile(
28364 rel: *mut BNFirmwareNinjaRelationship,
28365 ) -> *mut BNProjectFile;
28366}
28367unsafe extern "C" {
28368 pub fn BNFirmwareNinjaRelationshipGetSecondaryAddress(
28369 rel: *mut BNFirmwareNinjaRelationship,
28370 result: *mut u64,
28371 ) -> bool;
28372}
28373unsafe extern "C" {
28374 pub fn BNFirmwareNinjaRelationshipGetSecondaryDataVariable(
28375 rel: *mut BNFirmwareNinjaRelationship,
28376 dataVariable: *mut BNDataVariable,
28377 ) -> bool;
28378}
28379unsafe extern "C" {
28380 pub fn BNFirmwareNinjaRelationshipGetSecondaryFunction(
28381 rel: *mut BNFirmwareNinjaRelationship,
28382 ) -> *mut BNFunction;
28383}
28384unsafe extern "C" {
28385 pub fn BNFirmwareNinjaRelationshipGetSecondaryExternalSymbol(
28386 rel: *mut BNFirmwareNinjaRelationship,
28387 ) -> *mut ::std::os::raw::c_char;
28388}
28389unsafe extern "C" {
28390 pub fn BNFirmwareNinjaRelationshipSetDescription(
28391 rel: *mut BNFirmwareNinjaRelationship,
28392 description: *const ::std::os::raw::c_char,
28393 );
28394}
28395unsafe extern "C" {
28396 pub fn BNFirmwareNinjaRelationshipGetDescription(
28397 rel: *mut BNFirmwareNinjaRelationship,
28398 ) -> *mut ::std::os::raw::c_char;
28399}
28400unsafe extern "C" {
28401 pub fn BNFirmwareNinjaRelationshipSetProvenance(
28402 rel: *mut BNFirmwareNinjaRelationship,
28403 provenance: *const ::std::os::raw::c_char,
28404 );
28405}
28406unsafe extern "C" {
28407 pub fn BNFirmwareNinjaRelationshipGetProvenance(
28408 rel: *mut BNFirmwareNinjaRelationship,
28409 ) -> *mut ::std::os::raw::c_char;
28410}
28411unsafe extern "C" {
28412 pub fn BNFirmwareNinjaRelationshipGetGuid(
28413 rel: *mut BNFirmwareNinjaRelationship,
28414 ) -> *mut ::std::os::raw::c_char;
28415}
28416unsafe extern "C" {
28417 #[doc = " Line formatters"]
28418 pub fn BNRegisterLineFormatter(
28419 name: *const ::std::os::raw::c_char,
28420 callbacks: *mut BNCustomLineFormatter,
28421 ) -> *mut BNLineFormatter;
28422}
28423unsafe extern "C" {
28424 pub fn BNGetLineFormatterList(count: *mut usize) -> *mut *mut BNLineFormatter;
28425}
28426unsafe extern "C" {
28427 pub fn BNFreeLineFormatterList(formatters: *mut *mut BNLineFormatter);
28428}
28429unsafe extern "C" {
28430 pub fn BNGetLineFormatterByName(name: *const ::std::os::raw::c_char) -> *mut BNLineFormatter;
28431}
28432unsafe extern "C" {
28433 pub fn BNGetDefaultLineFormatter() -> *mut BNLineFormatter;
28434}
28435unsafe extern "C" {
28436 pub fn BNGetLineFormatterName(formatter: *mut BNLineFormatter) -> *mut ::std::os::raw::c_char;
28437}
28438unsafe extern "C" {
28439 pub fn BNFormatLines(
28440 formatter: *mut BNLineFormatter,
28441 inLines: *mut BNDisassemblyTextLine,
28442 inCount: usize,
28443 settings: *const BNLineFormatterSettings,
28444 outCount: *mut usize,
28445 ) -> *mut BNDisassemblyTextLine;
28446}
28447unsafe extern "C" {
28448 pub fn BNGetDefaultLineFormatterSettings(
28449 settings: *mut BNDisassemblySettings,
28450 func: *mut BNHighLevelILFunction,
28451 ) -> *mut BNLineFormatterSettings;
28452}
28453unsafe extern "C" {
28454 pub fn BNGetLanguageRepresentationLineFormatterSettings(
28455 settings: *mut BNDisassemblySettings,
28456 func: *mut BNLanguageRepresentationFunction,
28457 ) -> *mut BNLineFormatterSettings;
28458}
28459unsafe extern "C" {
28460 pub fn BNFreeLineFormatterSettings(settings: *mut BNLineFormatterSettings);
28461}
28462unsafe extern "C" {
28463 #[doc = " Render Layers"]
28464 pub fn BNRegisterRenderLayer(
28465 name: *const ::std::os::raw::c_char,
28466 callbacks: *mut BNRenderLayerCallbacks,
28467 enableState: BNRenderLayerDefaultEnableState,
28468 ) -> *mut BNRenderLayer;
28469}
28470unsafe extern "C" {
28471 pub fn BNGetRenderLayerList(count: *mut usize) -> *mut *mut BNRenderLayer;
28472}
28473unsafe extern "C" {
28474 pub fn BNFreeRenderLayerList(renderLayers: *mut *mut BNRenderLayer);
28475}
28476unsafe extern "C" {
28477 pub fn BNGetRenderLayerByName(name: *const ::std::os::raw::c_char) -> *mut BNRenderLayer;
28478}
28479unsafe extern "C" {
28480 pub fn BNGetRenderLayerName(renderLayer: *mut BNRenderLayer) -> *mut ::std::os::raw::c_char;
28481}
28482unsafe extern "C" {
28483 pub fn BNGetRenderLayerDefaultEnableState(
28484 renderLayer: *mut BNRenderLayer,
28485 ) -> BNRenderLayerDefaultEnableState;
28486}
28487unsafe extern "C" {
28488 pub fn BNApplyRenderLayerToFlowGraph(renderLayer: *mut BNRenderLayer, graph: *mut BNFlowGraph);
28489}
28490unsafe extern "C" {
28491 pub fn BNApplyRenderLayerToLinearViewObject(
28492 renderLayer: *mut BNRenderLayer,
28493 obj: *mut BNLinearViewObject,
28494 prev: *mut BNLinearViewObject,
28495 next: *mut BNLinearViewObject,
28496 inLines: *mut BNLinearDisassemblyLine,
28497 inLineCount: usize,
28498 outLines: *mut *mut BNLinearDisassemblyLine,
28499 outLineCount: *mut usize,
28500 );
28501}
28502unsafe extern "C" {
28503 pub fn BNFreeStringRef(ref_: *mut BNStringRef);
28504}
28505unsafe extern "C" {
28506 pub fn BNDuplicateStringRef(ref_: *mut BNStringRef) -> *mut BNStringRef;
28507}
28508unsafe extern "C" {
28509 pub fn BNGetStringRefContents(ref_: *mut BNStringRef) -> *const ::std::os::raw::c_char;
28510}
28511unsafe extern "C" {
28512 pub fn BNGetStringRefSize(ref_: *mut BNStringRef) -> usize;
28513}
28514unsafe extern "C" {
28515 pub fn BNCreateStringRef(str_: *const ::std::os::raw::c_char) -> *mut BNStringRef;
28516}
28517unsafe extern "C" {
28518 pub fn BNCreateStringRefOfLength(
28519 str_: *const ::std::os::raw::c_char,
28520 len: usize,
28521 ) -> *mut BNStringRef;
28522}
28523unsafe extern "C" {
28524 #[doc = " Constant Renderers"]
28525 pub fn BNRegisterConstantRenderer(
28526 name: *const ::std::os::raw::c_char,
28527 renderer: *mut BNCustomConstantRenderer,
28528 ) -> *mut BNConstantRenderer;
28529}
28530unsafe extern "C" {
28531 pub fn BNGetConstantRendererByName(
28532 name: *const ::std::os::raw::c_char,
28533 ) -> *mut BNConstantRenderer;
28534}
28535unsafe extern "C" {
28536 pub fn BNGetConstantRendererList(count: *mut usize) -> *mut *mut BNConstantRenderer;
28537}
28538unsafe extern "C" {
28539 pub fn BNFreeConstantRendererList(renderers: *mut *mut BNConstantRenderer);
28540}
28541unsafe extern "C" {
28542 pub fn BNGetConstantRendererName(
28543 renderer: *mut BNConstantRenderer,
28544 ) -> *mut ::std::os::raw::c_char;
28545}
28546unsafe extern "C" {
28547 pub fn BNIsConstantRendererValidForType(
28548 renderer: *mut BNConstantRenderer,
28549 il: *mut BNHighLevelILFunction,
28550 type_: *mut BNType,
28551 ) -> bool;
28552}
28553unsafe extern "C" {
28554 pub fn BNConstantRendererRenderConstant(
28555 renderer: *mut BNConstantRenderer,
28556 il: *mut BNHighLevelILFunction,
28557 exprIndex: usize,
28558 type_: *mut BNType,
28559 val: i64,
28560 tokens: *mut BNHighLevelILTokenEmitter,
28561 settings: *mut BNDisassemblySettings,
28562 precedence: BNOperatorPrecedence,
28563 ) -> bool;
28564}
28565unsafe extern "C" {
28566 pub fn BNConstantRendererRenderConstantPointer(
28567 renderer: *mut BNConstantRenderer,
28568 il: *mut BNHighLevelILFunction,
28569 exprIndex: usize,
28570 type_: *mut BNType,
28571 val: i64,
28572 tokens: *mut BNHighLevelILTokenEmitter,
28573 settings: *mut BNDisassemblySettings,
28574 symbolDisplay: BNSymbolDisplayType,
28575 precedence: BNOperatorPrecedence,
28576 ) -> bool;
28577}
28578unsafe extern "C" {
28579 #[doc = " String recognizers"]
28580 pub fn BNRegisterCustomStringType(info: *mut BNCustomStringTypeInfo)
28581 -> *mut BNCustomStringType;
28582}
28583unsafe extern "C" {
28584 pub fn BNGetCustomStringTypeByName(
28585 name: *const ::std::os::raw::c_char,
28586 ) -> *mut BNCustomStringType;
28587}
28588unsafe extern "C" {
28589 pub fn BNGetCustomStringTypeByID(id: u32) -> *mut BNCustomStringType;
28590}
28591unsafe extern "C" {
28592 pub fn BNGetCustomStringTypeList(count: *mut usize) -> *mut *mut BNCustomStringType;
28593}
28594unsafe extern "C" {
28595 pub fn BNFreeCustomStringTypeList(types: *mut *mut BNCustomStringType);
28596}
28597unsafe extern "C" {
28598 pub fn BNGetCustomStringTypeName(type_: *mut BNCustomStringType)
28599 -> *mut ::std::os::raw::c_char;
28600}
28601unsafe extern "C" {
28602 pub fn BNGetCustomStringTypePrefix(
28603 type_: *mut BNCustomStringType,
28604 ) -> *mut ::std::os::raw::c_char;
28605}
28606unsafe extern "C" {
28607 pub fn BNGetCustomStringTypePostfix(
28608 type_: *mut BNCustomStringType,
28609 ) -> *mut ::std::os::raw::c_char;
28610}
28611unsafe extern "C" {
28612 pub fn BNRegisterStringRecognizer(
28613 name: *const ::std::os::raw::c_char,
28614 recognizer: *mut BNCustomStringRecognizer,
28615 ) -> *mut BNStringRecognizer;
28616}
28617unsafe extern "C" {
28618 pub fn BNGetStringRecognizerByName(
28619 name: *const ::std::os::raw::c_char,
28620 ) -> *mut BNStringRecognizer;
28621}
28622unsafe extern "C" {
28623 pub fn BNGetStringRecognizerList(count: *mut usize) -> *mut *mut BNStringRecognizer;
28624}
28625unsafe extern "C" {
28626 pub fn BNFreeStringRecognizerList(recognizers: *mut *mut BNStringRecognizer);
28627}
28628unsafe extern "C" {
28629 pub fn BNGetStringRecognizerName(
28630 recognizer: *mut BNStringRecognizer,
28631 ) -> *mut ::std::os::raw::c_char;
28632}
28633unsafe extern "C" {
28634 pub fn BNIsStringRecognizerValidForType(
28635 recognizer: *mut BNStringRecognizer,
28636 il: *mut BNHighLevelILFunction,
28637 type_: *mut BNType,
28638 ) -> bool;
28639}
28640unsafe extern "C" {
28641 pub fn BNStringRecognizerRecognizeConstant(
28642 recognizer: *mut BNStringRecognizer,
28643 il: *mut BNHighLevelILFunction,
28644 exprIndex: usize,
28645 type_: *mut BNType,
28646 val: i64,
28647 out: *mut BNDerivedString,
28648 ) -> bool;
28649}
28650unsafe extern "C" {
28651 pub fn BNStringRecognizerRecognizeConstantPointer(
28652 recognizer: *mut BNStringRecognizer,
28653 il: *mut BNHighLevelILFunction,
28654 exprIndex: usize,
28655 type_: *mut BNType,
28656 val: i64,
28657 out: *mut BNDerivedString,
28658 ) -> bool;
28659}
28660unsafe extern "C" {
28661 pub fn BNStringRecognizerRecognizeExternPointer(
28662 recognizer: *mut BNStringRecognizer,
28663 il: *mut BNHighLevelILFunction,
28664 exprIndex: usize,
28665 type_: *mut BNType,
28666 val: i64,
28667 offset: u64,
28668 out: *mut BNDerivedString,
28669 ) -> bool;
28670}
28671unsafe extern "C" {
28672 pub fn BNStringRecognizerRecognizeImport(
28673 recognizer: *mut BNStringRecognizer,
28674 il: *mut BNHighLevelILFunction,
28675 exprIndex: usize,
28676 type_: *mut BNType,
28677 val: i64,
28678 out: *mut BNDerivedString,
28679 ) -> bool;
28680}