binaryninjacore_sys/Users/jwiens/vector35/binaryninja/api/target/debug/build/binaryninjacore-sys-0a58ae66d83e9e44/out/
bindings.rs

1/* automatically generated by rust-bindgen 0.71.1 */
2
3pub 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}