binaryninjacore_sys/home/jenkins/build/workspace/binaryninja-dev-pipeline/build/api/rust/target/release/build/binaryninjacore-sys-00e378059fb06cf6/out/
bindings.rs

1/* automatically generated by rust-bindgen 0.72.1 */
2
3pub const BN_CURRENT_UI_ABI_VERSION: u32 = 17;
4pub const BN_MINIMUM_UI_ABI_VERSION: u32 = 17;
5
6pub const BN_CURRENT_CORE_ABI_VERSION: u32 = 168;
7pub const BN_MINIMUM_CORE_ABI_VERSION: u32 = 168;
8pub const MAX_RELOCATION_SIZE: u32 = 8;
9#[repr(u8)]
10#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
11pub enum BNPluginLoadPhase {
12    NativePluginLoadPhase = 0,
13    ScriptingProviderLoadPhase = 1,
14    ScriptPluginLoadPhase = 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 BNPlugin {
314    _unused: [u8; 0],
315}
316#[repr(C)]
317#[derive(Debug, Copy, Clone)]
318pub struct BNComponent {
319    _unused: [u8; 0],
320}
321#[repr(C)]
322#[derive(Debug, Copy, Clone)]
323pub struct BNSettings {
324    _unused: [u8; 0],
325}
326#[repr(C)]
327#[derive(Debug, Copy, Clone)]
328pub struct BNMetadata {
329    _unused: [u8; 0],
330}
331#[repr(C)]
332#[derive(Debug, Copy, Clone)]
333pub struct BNReportCollection {
334    _unused: [u8; 0],
335}
336#[repr(C)]
337#[derive(Debug, Copy, Clone)]
338pub struct BNRelocation {
339    _unused: [u8; 0],
340}
341#[repr(C)]
342#[derive(Debug, Copy, Clone)]
343pub struct BNSegment {
344    _unused: [u8; 0],
345}
346#[repr(C)]
347#[derive(Debug, Copy, Clone)]
348pub struct BNSection {
349    _unused: [u8; 0],
350}
351#[repr(C)]
352#[derive(Debug, Copy, Clone)]
353pub struct BNRelocationHandler {
354    _unused: [u8; 0],
355}
356#[repr(C)]
357#[derive(Debug, Copy, Clone)]
358pub struct BNDataRenderer {
359    _unused: [u8; 0],
360}
361#[repr(C)]
362#[derive(Debug, Copy, Clone)]
363pub struct BNDataRendererContainer {
364    _unused: [u8; 0],
365}
366#[repr(C)]
367#[derive(Debug, Copy, Clone)]
368pub struct BNDisassemblyTextRenderer {
369    _unused: [u8; 0],
370}
371#[repr(C)]
372#[derive(Debug, Copy, Clone)]
373pub struct BNLinearViewObject {
374    _unused: [u8; 0],
375}
376#[repr(C)]
377#[derive(Debug, Copy, Clone)]
378pub struct BNLinearViewCursor {
379    _unused: [u8; 0],
380}
381#[repr(C)]
382#[derive(Debug, Copy, Clone)]
383pub struct BNDebugInfo {
384    _unused: [u8; 0],
385}
386#[repr(C)]
387#[derive(Debug, Copy, Clone)]
388pub struct BNDebugInfoParser {
389    _unused: [u8; 0],
390}
391#[repr(C)]
392#[derive(Debug, Copy, Clone)]
393pub struct BNSecretsProvider {
394    _unused: [u8; 0],
395}
396#[repr(C)]
397#[derive(Debug, Copy, Clone)]
398pub struct BNLogger {
399    _unused: [u8; 0],
400}
401#[repr(C)]
402#[derive(Debug, Copy, Clone)]
403pub struct BNSymbolQueue {
404    _unused: [u8; 0],
405}
406#[repr(C)]
407#[derive(Debug, Copy, Clone)]
408pub struct BNTypeArchive {
409    _unused: [u8; 0],
410}
411#[repr(C)]
412#[derive(Debug, Copy, Clone)]
413pub struct BNTypeContainer {
414    _unused: [u8; 0],
415}
416#[repr(C)]
417#[derive(Debug, Copy, Clone)]
418pub struct BNProject {
419    _unused: [u8; 0],
420}
421#[repr(C)]
422#[derive(Debug, Copy, Clone)]
423pub struct BNProjectFile {
424    _unused: [u8; 0],
425}
426#[repr(C)]
427#[derive(Debug, Copy, Clone)]
428pub struct BNExternalLibrary {
429    _unused: [u8; 0],
430}
431#[repr(C)]
432#[derive(Debug, Copy, Clone)]
433pub struct BNExternalLocation {
434    _unused: [u8; 0],
435}
436#[repr(C)]
437#[derive(Debug, Copy, Clone)]
438pub struct BNProjectFolder {
439    _unused: [u8; 0],
440}
441#[repr(C)]
442#[derive(Debug, Copy, Clone)]
443pub struct BNBaseAddressDetection {
444    _unused: [u8; 0],
445}
446#[repr(C)]
447#[derive(Debug, Copy, Clone)]
448pub struct BNCollaborationChangeset {
449    _unused: [u8; 0],
450}
451#[repr(C)]
452#[derive(Debug, Copy, Clone)]
453pub struct BNRemoteFile {
454    _unused: [u8; 0],
455}
456#[repr(C)]
457#[derive(Debug, Copy, Clone)]
458pub struct BNRemoteFolder {
459    _unused: [u8; 0],
460}
461#[repr(C)]
462#[derive(Debug, Copy, Clone)]
463pub struct BNCollaborationGroup {
464    _unused: [u8; 0],
465}
466#[repr(C)]
467#[derive(Debug, Copy, Clone)]
468pub struct BNCollaborationPermission {
469    _unused: [u8; 0],
470}
471#[repr(C)]
472#[derive(Debug, Copy, Clone)]
473pub struct BNRemoteProject {
474    _unused: [u8; 0],
475}
476#[repr(C)]
477#[derive(Debug, Copy, Clone)]
478pub struct BNRemote {
479    _unused: [u8; 0],
480}
481#[repr(C)]
482#[derive(Debug, Copy, Clone)]
483pub struct BNCollaborationSnapshot {
484    _unused: [u8; 0],
485}
486#[repr(C)]
487#[derive(Debug, Copy, Clone)]
488pub struct BNCollaborationUndoEntry {
489    _unused: [u8; 0],
490}
491#[repr(C)]
492#[derive(Debug, Copy, Clone)]
493pub struct BNCollaborationUser {
494    _unused: [u8; 0],
495}
496#[repr(C)]
497#[derive(Debug, Copy, Clone)]
498pub struct BNAnalysisMergeConflict {
499    _unused: [u8; 0],
500}
501#[repr(C)]
502#[derive(Debug, Copy, Clone)]
503pub struct BNAnalysisMergeConflictSplitter {
504    _unused: [u8; 0],
505}
506#[repr(C)]
507#[derive(Debug, Copy, Clone)]
508pub struct BNTypeArchiveMergeConflict {
509    _unused: [u8; 0],
510}
511#[repr(C)]
512#[derive(Debug, Copy, Clone)]
513pub struct BNCollaborationLazyT {
514    _unused: [u8; 0],
515}
516#[repr(C)]
517#[derive(Debug, Copy, Clone)]
518pub struct BNUndoAction {
519    _unused: [u8; 0],
520}
521#[repr(C)]
522#[derive(Debug, Copy, Clone)]
523pub struct BNUndoEntry {
524    _unused: [u8; 0],
525}
526#[repr(C)]
527#[derive(Debug, Copy, Clone)]
528pub struct BNDemangler {
529    _unused: [u8; 0],
530}
531#[repr(C)]
532#[derive(Debug, Copy, Clone)]
533pub struct BNFirmwareNinja {
534    _unused: [u8; 0],
535}
536#[repr(C)]
537#[derive(Debug, Copy, Clone)]
538pub struct BNFirmwareNinjaReferenceNode {
539    _unused: [u8; 0],
540}
541#[repr(C)]
542#[derive(Debug, Copy, Clone)]
543pub struct BNFirmwareNinjaRelationship {
544    _unused: [u8; 0],
545}
546#[repr(C)]
547#[derive(Debug, Copy, Clone)]
548pub struct BNLineFormatter {
549    _unused: [u8; 0],
550}
551#[repr(C)]
552#[derive(Debug, Copy, Clone)]
553pub struct BNRenderLayer {
554    _unused: [u8; 0],
555}
556#[repr(C)]
557#[derive(Debug, Copy, Clone)]
558pub struct BNStringRef {
559    _unused: [u8; 0],
560}
561#[repr(C)]
562#[derive(Debug, Copy, Clone)]
563pub struct BNConstantRenderer {
564    _unused: [u8; 0],
565}
566#[repr(C)]
567#[derive(Debug, Copy, Clone)]
568pub struct BNStringRecognizer {
569    _unused: [u8; 0],
570}
571#[repr(C)]
572#[derive(Debug, Copy, Clone)]
573pub struct BNCustomStringType {
574    _unused: [u8; 0],
575}
576#[repr(C)]
577#[derive(Debug, Copy, Clone)]
578pub struct BNVersionInfo {
579    pub major: u32,
580    pub minor: u32,
581    pub build: u32,
582    pub channel: *mut ::std::os::raw::c_char,
583}
584#[allow(clippy::unnecessary_operation, clippy::identity_op)]
585const _: () = {
586    ["Size of BNVersionInfo"][::std::mem::size_of::<BNVersionInfo>() - 24usize];
587    ["Alignment of BNVersionInfo"][::std::mem::align_of::<BNVersionInfo>() - 8usize];
588    ["Offset of field: BNVersionInfo::major"]
589        [::std::mem::offset_of!(BNVersionInfo, major) - 0usize];
590    ["Offset of field: BNVersionInfo::minor"]
591        [::std::mem::offset_of!(BNVersionInfo, minor) - 4usize];
592    ["Offset of field: BNVersionInfo::build"]
593        [::std::mem::offset_of!(BNVersionInfo, build) - 8usize];
594    ["Offset of field: BNVersionInfo::channel"]
595        [::std::mem::offset_of!(BNVersionInfo, channel) - 16usize];
596};
597impl Default for BNVersionInfo {
598    fn default() -> Self {
599        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
600        unsafe {
601            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
602            s.assume_init()
603        }
604    }
605}
606#[repr(C)]
607#[derive(Debug, Copy, Clone)]
608pub struct BNPluginVersionPlatform {
609    pub name: *mut ::std::os::raw::c_char,
610    pub downloadUrl: *mut ::std::os::raw::c_char,
611    pub untrackedDownloadUrl: *mut ::std::os::raw::c_char,
612}
613#[allow(clippy::unnecessary_operation, clippy::identity_op)]
614const _: () = {
615    ["Size of BNPluginVersionPlatform"][::std::mem::size_of::<BNPluginVersionPlatform>() - 24usize];
616    ["Alignment of BNPluginVersionPlatform"]
617        [::std::mem::align_of::<BNPluginVersionPlatform>() - 8usize];
618    ["Offset of field: BNPluginVersionPlatform::name"]
619        [::std::mem::offset_of!(BNPluginVersionPlatform, name) - 0usize];
620    ["Offset of field: BNPluginVersionPlatform::downloadUrl"]
621        [::std::mem::offset_of!(BNPluginVersionPlatform, downloadUrl) - 8usize];
622    ["Offset of field: BNPluginVersionPlatform::untrackedDownloadUrl"]
623        [::std::mem::offset_of!(BNPluginVersionPlatform, untrackedDownloadUrl) - 16usize];
624};
625impl Default for BNPluginVersionPlatform {
626    fn default() -> Self {
627        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
628        unsafe {
629            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
630            s.assume_init()
631        }
632    }
633}
634#[repr(C)]
635#[derive(Debug, Copy, Clone)]
636pub struct BNPluginVersion {
637    pub id: *mut ::std::os::raw::c_char,
638    pub versionString: *mut ::std::os::raw::c_char,
639    pub longDescription: *mut ::std::os::raw::c_char,
640    pub changelog: *mut ::std::os::raw::c_char,
641    pub minimumClientVersion: u64,
642    pub platforms: *mut BNPluginVersionPlatform,
643    pub platformCount: usize,
644    pub created: *mut ::std::os::raw::c_char,
645}
646#[allow(clippy::unnecessary_operation, clippy::identity_op)]
647const _: () = {
648    ["Size of BNPluginVersion"][::std::mem::size_of::<BNPluginVersion>() - 64usize];
649    ["Alignment of BNPluginVersion"][::std::mem::align_of::<BNPluginVersion>() - 8usize];
650    ["Offset of field: BNPluginVersion::id"][::std::mem::offset_of!(BNPluginVersion, id) - 0usize];
651    ["Offset of field: BNPluginVersion::versionString"]
652        [::std::mem::offset_of!(BNPluginVersion, versionString) - 8usize];
653    ["Offset of field: BNPluginVersion::longDescription"]
654        [::std::mem::offset_of!(BNPluginVersion, longDescription) - 16usize];
655    ["Offset of field: BNPluginVersion::changelog"]
656        [::std::mem::offset_of!(BNPluginVersion, changelog) - 24usize];
657    ["Offset of field: BNPluginVersion::minimumClientVersion"]
658        [::std::mem::offset_of!(BNPluginVersion, minimumClientVersion) - 32usize];
659    ["Offset of field: BNPluginVersion::platforms"]
660        [::std::mem::offset_of!(BNPluginVersion, platforms) - 40usize];
661    ["Offset of field: BNPluginVersion::platformCount"]
662        [::std::mem::offset_of!(BNPluginVersion, platformCount) - 48usize];
663    ["Offset of field: BNPluginVersion::created"]
664        [::std::mem::offset_of!(BNPluginVersion, created) - 56usize];
665};
666impl Default for BNPluginVersion {
667    fn default() -> Self {
668        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
669        unsafe {
670            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
671            s.assume_init()
672        }
673    }
674}
675#[repr(C)]
676#[derive(Debug, Copy, Clone)]
677pub struct BNRemoteFileSearchMatch {
678    pub projectId: *mut ::std::os::raw::c_char,
679    pub projectName: *mut ::std::os::raw::c_char,
680    pub fileId: *mut ::std::os::raw::c_char,
681    pub fileName: *mut ::std::os::raw::c_char,
682}
683#[allow(clippy::unnecessary_operation, clippy::identity_op)]
684const _: () = {
685    ["Size of BNRemoteFileSearchMatch"][::std::mem::size_of::<BNRemoteFileSearchMatch>() - 32usize];
686    ["Alignment of BNRemoteFileSearchMatch"]
687        [::std::mem::align_of::<BNRemoteFileSearchMatch>() - 8usize];
688    ["Offset of field: BNRemoteFileSearchMatch::projectId"]
689        [::std::mem::offset_of!(BNRemoteFileSearchMatch, projectId) - 0usize];
690    ["Offset of field: BNRemoteFileSearchMatch::projectName"]
691        [::std::mem::offset_of!(BNRemoteFileSearchMatch, projectName) - 8usize];
692    ["Offset of field: BNRemoteFileSearchMatch::fileId"]
693        [::std::mem::offset_of!(BNRemoteFileSearchMatch, fileId) - 16usize];
694    ["Offset of field: BNRemoteFileSearchMatch::fileName"]
695        [::std::mem::offset_of!(BNRemoteFileSearchMatch, fileName) - 24usize];
696};
697impl Default for BNRemoteFileSearchMatch {
698    fn default() -> Self {
699        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
700        unsafe {
701            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
702            s.assume_init()
703        }
704    }
705}
706pub type BNProgressFunction = ::std::option::Option<
707    unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void, arg2: usize, arg3: usize) -> bool,
708>;
709#[repr(u8)]
710#[doc = "! Console log levels"]
711#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
712pub enum BNLogLevel {
713    DebugLog = 0,
714    #[doc = "! Debug logging level, most verbose logging level"]
715    InfoLog = 1,
716    #[doc = "! Information logging level, default logging level"]
717    WarningLog = 2,
718    #[doc = "! Warning logging level, messages show with warning icon in the UI"]
719    ErrorLog = 3,
720    #[doc = "! Error logging level, messages show with error icon in the UI"]
721    AlertLog = 4,
722}
723#[repr(u8)]
724#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
725pub enum BNEndianness {
726    LittleEndian = 0,
727    BigEndian = 1,
728}
729#[repr(u8)]
730#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
731pub enum BNModificationStatus {
732    Original = 0,
733    Changed = 1,
734    Inserted = 2,
735}
736#[repr(u16)]
737#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
738pub enum BNTransformType {
739    #[doc = " Two-way transform of data, binary input/output"]
740    BinaryCodecTransform = 0,
741    #[doc = " Two-way transform of data, encoder output is text"]
742    TextCodecTransform = 1,
743    #[doc = " Two-way transform of data, encoder output is Unicode string (as UTF8)"]
744    UnicodeCodecTransform = 2,
745    #[doc = " One-way decode only"]
746    DecodeTransform = 3,
747    #[doc = " One-way encode only, output is binary"]
748    BinaryEncodeTransform = 4,
749    #[doc = " One-way encode only, output is text"]
750    TextEncodeTransform = 5,
751    #[doc = " Two-way encryption"]
752    EncryptTransform = 6,
753    #[doc = " Transform that can be undone by performing twice"]
754    InvertingTransform = 7,
755    #[doc = " Hash function"]
756    HashTransform = 8,
757}
758#[repr(u8)]
759#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
760pub enum BNTransformSessionMode {
761    #[doc = " Open the root file as-is (no unwrapping)"]
762    TransformSessionModeDisabled = 0,
763    #[doc = " Discover all paths (build the full context tree)"]
764    TransformSessionModeFull = 1,
765    #[doc = " Interactively request selection at each level of the container hierarchy"]
766    TransformSessionModeInteractive = 2,
767}
768#[repr(u8)]
769#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
770pub enum BNTransformResult {
771    TransformSuccess = 0,
772    TransformNotAttempted = 1,
773    TransformFailure = 2,
774    TransformRequiresPassword = 3,
775}
776#[repr(u8)]
777#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
778pub enum BNBranchType {
779    UnconditionalBranch = 0,
780    FalseBranch = 1,
781    TrueBranch = 2,
782    CallDestination = 3,
783    FunctionReturn = 4,
784    SystemCall = 5,
785    IndirectBranch = 6,
786    ExceptionBranch = 7,
787    UnresolvedBranch = 127,
788    UserDefinedBranch = 128,
789}
790#[repr(u8)]
791#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
792pub enum BNInstructionTextTokenType {
793    TextToken = 0,
794    InstructionToken = 1,
795    OperandSeparatorToken = 2,
796    RegisterToken = 3,
797    IntegerToken = 4,
798    PossibleAddressToken = 5,
799    BeginMemoryOperandToken = 6,
800    EndMemoryOperandToken = 7,
801    FloatingPointToken = 8,
802    AnnotationToken = 9,
803    CodeRelativeAddressToken = 10,
804    ArgumentNameToken = 11,
805    HexDumpByteValueToken = 12,
806    HexDumpSkippedByteToken = 13,
807    HexDumpInvalidByteToken = 14,
808    HexDumpTextToken = 15,
809    OpcodeToken = 16,
810    StringToken = 17,
811    CharacterConstantToken = 18,
812    KeywordToken = 19,
813    TypeNameToken = 20,
814    FieldNameToken = 21,
815    NameSpaceToken = 22,
816    NameSpaceSeparatorToken = 23,
817    TagToken = 24,
818    StructOffsetToken = 25,
819    StructOffsetByteValueToken = 26,
820    StructureHexDumpTextToken = 27,
821    GotoLabelToken = 28,
822    CommentToken = 29,
823    PossibleValueToken = 30,
824    PossibleValueTypeToken = 31,
825    ArrayIndexToken = 32,
826    IndentationToken = 33,
827    UnknownMemoryToken = 34,
828    EnumerationMemberToken = 35,
829    OperationToken = 36,
830    BaseStructureNameToken = 37,
831    BaseStructureSeparatorToken = 38,
832    BraceToken = 39,
833    #[doc = " The following are output by the analysis system automatically, these should\n not be used directly by the architecture plugins"]
834    CodeSymbolToken = 64,
835    #[doc = " The following are output by the analysis system automatically, these should\n not be used directly by the architecture plugins"]
836    DataSymbolToken = 65,
837    #[doc = " The following are output by the analysis system automatically, these should\n not be used directly by the architecture plugins"]
838    LocalVariableToken = 66,
839    #[doc = " The following are output by the analysis system automatically, these should\n not be used directly by the architecture plugins"]
840    ImportToken = 67,
841    #[doc = " The following are output by the analysis system automatically, these should\n not be used directly by the architecture plugins"]
842    AddressDisplayToken = 68,
843    #[doc = " The following are output by the analysis system automatically, these should\n not be used directly by the architecture plugins"]
844    IndirectImportToken = 69,
845    #[doc = " The following are output by the analysis system automatically, these should\n not be used directly by the architecture plugins"]
846    ExternalSymbolToken = 70,
847    #[doc = " The following are output by the analysis system automatically, these should\n not be used directly by the architecture plugins"]
848    StackVariableToken = 71,
849    #[doc = " The following are output by the analysis system automatically, these should\n not be used directly by the architecture plugins"]
850    AddressSeparatorToken = 72,
851    #[doc = " The following are output by the analysis system automatically, these should\n not be used directly by the architecture plugins"]
852    CollapsedInformationToken = 73,
853    #[doc = " The following are output by the analysis system automatically, these should\n not be used directly by the architecture plugins"]
854    CollapseStateIndicatorToken = 74,
855    #[doc = " The following are output by the analysis system automatically, these should\n not be used directly by the architecture plugins"]
856    NewLineToken = 75,
857}
858#[repr(u8)]
859#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
860pub enum BNInstructionTextTokenContext {
861    NoTokenContext = 0,
862    LocalVariableTokenContext = 1,
863    DataVariableTokenContext = 2,
864    FunctionReturnTokenContext = 3,
865    InstructionAddressTokenContext = 4,
866    ILInstructionIndexTokenContext = 5,
867    #[doc = " For Const Data arrays"]
868    ConstDataTokenContext = 6,
869    #[doc = " For ConstData strings"]
870    ConstStringDataTokenContext = 7,
871    #[doc = " For References to strings"]
872    StringReferenceTokenContext = 8,
873    #[doc = " For String DataVariables"]
874    StringDataVariableTokenContext = 9,
875    #[doc = " For displaying strings which aren't associated with an address"]
876    StringDisplayTokenContext = 10,
877    ContentCollapsedContext = 11,
878    ContentExpandedContext = 12,
879    ContentCollapsiblePadding = 13,
880    DerivedStringReferenceTokenContext = 14,
881}
882#[repr(u8)]
883#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
884pub enum BNLinearDisassemblyLineType {
885    BlankLineType = 0,
886    BasicLineType = 1,
887    CodeDisassemblyLineType = 2,
888    DataVariableLineType = 3,
889    HexDumpLineType = 4,
890    FunctionHeaderLineType = 5,
891    FunctionHeaderStartLineType = 6,
892    FunctionHeaderEndLineType = 7,
893    FunctionContinuationLineType = 8,
894    LocalVariableLineType = 9,
895    LocalVariableListEndLineType = 10,
896    FunctionEndLineType = 11,
897    NoteStartLineType = 12,
898    NoteLineType = 13,
899    NoteEndLineType = 14,
900    SectionStartLineType = 15,
901    SectionEndLineType = 16,
902    SectionSeparatorLineType = 17,
903    NonContiguousSeparatorLineType = 18,
904    AnalysisWarningLineType = 19,
905    CollapsedFunctionEndLineType = 20,
906}
907#[repr(u8)]
908#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
909pub enum BNTokenEscapingType {
910    NoTokenEscapingType = 0,
911    BackticksTokenEscapingType = 1,
912    QuotedStringEscapingType = 2,
913    ReplaceInvalidCharsEscapingType = 3,
914}
915#[repr(u8)]
916#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
917pub enum BNSymbolType {
918    FunctionSymbol = 0,
919    ImportAddressSymbol = 1,
920    ImportedFunctionSymbol = 2,
921    DataSymbol = 3,
922    ImportedDataSymbol = 4,
923    ExternalSymbol = 5,
924    LibraryFunctionSymbol = 6,
925    SymbolicFunctionSymbol = 7,
926    LocalLabelSymbol = 8,
927}
928#[repr(u8)]
929#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
930pub enum BNSymbolBinding {
931    NoBinding = 0,
932    LocalBinding = 1,
933    GlobalBinding = 2,
934    WeakBinding = 3,
935}
936#[repr(u8)]
937#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
938pub enum BNLowLevelILOperation {
939    LLIL_NOP = 0,
940    #[doc = " Not valid in SSA form (see LLIL_SET_REG_SSA)"]
941    LLIL_SET_REG = 1,
942    #[doc = " Not valid in SSA form (see LLIL_SET_REG_SPLIT_SSA)"]
943    LLIL_SET_REG_SPLIT = 2,
944    #[doc = " Not valid in SSA form (see LLIL_SET_FLAG_SSA)"]
945    LLIL_SET_FLAG = 3,
946    #[doc = " Not valid in SSA form (see LLIL_SET_REG_STACK_REL_SSA)"]
947    LLIL_SET_REG_STACK_REL = 4,
948    #[doc = " Not valid in SSA form (expanded)"]
949    LLIL_REG_STACK_PUSH = 5,
950    LLIL_ASSERT = 6,
951    LLIL_FORCE_VER = 7,
952    #[doc = " Not valid in SSA form (see LLIL_LOAD_SSA)"]
953    LLIL_LOAD = 8,
954    #[doc = " Not valid in SSA form (see LLIL_STORE_SSA)"]
955    LLIL_STORE = 9,
956    #[doc = " Not valid in SSA form (expanded)"]
957    LLIL_PUSH = 10,
958    #[doc = " Not valid in SSA form (expanded)"]
959    LLIL_POP = 11,
960    #[doc = " Not valid in SSA form (see LLIL_REG_SSA)"]
961    LLIL_REG = 12,
962    #[doc = " Not valid in SSA form (see LLIL_REG_SPLIT_SSA)"]
963    LLIL_REG_SPLIT = 13,
964    #[doc = " Not valid in SSA form (see LLIL_REG_STACK_REL_SSA)"]
965    LLIL_REG_STACK_REL = 14,
966    #[doc = " Not valid in SSA form (expanded)"]
967    LLIL_REG_STACK_POP = 15,
968    #[doc = " Not valid in SSA form (see LLIL_REG_STACK_FREE_REL_SSA,\n LLIL_REG_STACK_FREE_ABS_SSA)"]
969    LLIL_REG_STACK_FREE_REG = 16,
970    #[doc = " Not valid in SSA from (see LLIL_REG_STACK_FREE_REL_SSA)"]
971    LLIL_REG_STACK_FREE_REL = 17,
972    LLIL_CONST = 18,
973    LLIL_CONST_PTR = 19,
974    LLIL_EXTERN_PTR = 20,
975    LLIL_FLOAT_CONST = 21,
976    #[doc = " Not valid in SSA form (see LLIL_FLAG_SSA)"]
977    LLIL_FLAG = 22,
978    #[doc = " Not valid in SSA form (see LLIL_FLAG_BIT_SSA)"]
979    LLIL_FLAG_BIT = 23,
980    LLIL_ADD = 24,
981    LLIL_ADC = 25,
982    LLIL_SUB = 26,
983    LLIL_SBB = 27,
984    LLIL_AND = 28,
985    LLIL_OR = 29,
986    LLIL_XOR = 30,
987    LLIL_LSL = 31,
988    LLIL_LSR = 32,
989    LLIL_ASR = 33,
990    LLIL_ROL = 34,
991    LLIL_RLC = 35,
992    LLIL_ROR = 36,
993    LLIL_RRC = 37,
994    LLIL_MUL = 38,
995    LLIL_MULU_DP = 39,
996    LLIL_MULS_DP = 40,
997    LLIL_DIVU = 41,
998    LLIL_DIVU_DP = 42,
999    LLIL_DIVS = 43,
1000    LLIL_DIVS_DP = 44,
1001    LLIL_MODU = 45,
1002    LLIL_MODU_DP = 46,
1003    LLIL_MODS = 47,
1004    LLIL_MODS_DP = 48,
1005    LLIL_NEG = 49,
1006    LLIL_NOT = 50,
1007    LLIL_SX = 51,
1008    LLIL_ZX = 52,
1009    LLIL_LOW_PART = 53,
1010    LLIL_JUMP = 54,
1011    LLIL_JUMP_TO = 55,
1012    LLIL_CALL = 56,
1013    LLIL_CALL_STACK_ADJUST = 57,
1014    LLIL_TAILCALL = 58,
1015    LLIL_RET = 59,
1016    LLIL_NORET = 60,
1017    LLIL_IF = 61,
1018    LLIL_GOTO = 62,
1019    #[doc = " Valid only in Lifted IL"]
1020    LLIL_FLAG_COND = 63,
1021    #[doc = " Valid only in Lifted IL"]
1022    LLIL_FLAG_GROUP = 64,
1023    LLIL_CMP_E = 65,
1024    LLIL_CMP_NE = 66,
1025    LLIL_CMP_SLT = 67,
1026    LLIL_CMP_ULT = 68,
1027    LLIL_CMP_SLE = 69,
1028    LLIL_CMP_ULE = 70,
1029    LLIL_CMP_SGE = 71,
1030    LLIL_CMP_UGE = 72,
1031    LLIL_CMP_SGT = 73,
1032    LLIL_CMP_UGT = 74,
1033    LLIL_TEST_BIT = 75,
1034    LLIL_BOOL_TO_INT = 76,
1035    LLIL_ADD_OVERFLOW = 77,
1036    LLIL_SYSCALL = 78,
1037    LLIL_BP = 79,
1038    LLIL_TRAP = 80,
1039    LLIL_INTRINSIC = 81,
1040    LLIL_UNDEF = 82,
1041    LLIL_UNIMPL = 83,
1042    LLIL_UNIMPL_MEM = 84,
1043    #[doc = " Floating point"]
1044    LLIL_FADD = 85,
1045    #[doc = " Floating point"]
1046    LLIL_FSUB = 86,
1047    #[doc = " Floating point"]
1048    LLIL_FMUL = 87,
1049    #[doc = " Floating point"]
1050    LLIL_FDIV = 88,
1051    #[doc = " Floating point"]
1052    LLIL_FSQRT = 89,
1053    #[doc = " Floating point"]
1054    LLIL_FNEG = 90,
1055    #[doc = " Floating point"]
1056    LLIL_FABS = 91,
1057    #[doc = " Floating point"]
1058    LLIL_FLOAT_TO_INT = 92,
1059    #[doc = " Floating point"]
1060    LLIL_INT_TO_FLOAT = 93,
1061    #[doc = " Floating point"]
1062    LLIL_FLOAT_CONV = 94,
1063    #[doc = " Floating point"]
1064    LLIL_ROUND_TO_INT = 95,
1065    #[doc = " Floating point"]
1066    LLIL_FLOOR = 96,
1067    #[doc = " Floating point"]
1068    LLIL_CEIL = 97,
1069    #[doc = " Floating point"]
1070    LLIL_FTRUNC = 98,
1071    #[doc = " Floating point"]
1072    LLIL_FCMP_E = 99,
1073    #[doc = " Floating point"]
1074    LLIL_FCMP_NE = 100,
1075    #[doc = " Floating point"]
1076    LLIL_FCMP_LT = 101,
1077    #[doc = " Floating point"]
1078    LLIL_FCMP_LE = 102,
1079    #[doc = " Floating point"]
1080    LLIL_FCMP_GE = 103,
1081    #[doc = " Floating point"]
1082    LLIL_FCMP_GT = 104,
1083    #[doc = " Floating point"]
1084    LLIL_FCMP_O = 105,
1085    #[doc = " Floating point"]
1086    LLIL_FCMP_UO = 106,
1087    #[doc = " The following instructions are only used in SSA form"]
1088    LLIL_SET_REG_SSA = 107,
1089    #[doc = " The following instructions are only used in SSA form"]
1090    LLIL_SET_REG_SSA_PARTIAL = 108,
1091    #[doc = " The following instructions are only used in SSA form"]
1092    LLIL_SET_REG_SPLIT_SSA = 109,
1093    #[doc = " The following instructions are only used in SSA form"]
1094    LLIL_SET_REG_STACK_REL_SSA = 110,
1095    #[doc = " The following instructions are only used in SSA form"]
1096    LLIL_SET_REG_STACK_ABS_SSA = 111,
1097    #[doc = " Only valid within an LLIL_SET_REG_SPLIT_SSA instruction"]
1098    LLIL_REG_SPLIT_DEST_SSA = 112,
1099    #[doc = " Only valid within LLIL_SET_REG_STACK_REL_SSA or LLIL_SET_REG_STACK_ABS_SSA"]
1100    LLIL_REG_STACK_DEST_SSA = 113,
1101    LLIL_REG_SSA = 114,
1102    LLIL_REG_SSA_PARTIAL = 115,
1103    LLIL_REG_SPLIT_SSA = 116,
1104    LLIL_REG_STACK_REL_SSA = 117,
1105    LLIL_REG_STACK_ABS_SSA = 118,
1106    LLIL_REG_STACK_FREE_REL_SSA = 119,
1107    LLIL_REG_STACK_FREE_ABS_SSA = 120,
1108    LLIL_SET_FLAG_SSA = 121,
1109    LLIL_ASSERT_SSA = 122,
1110    LLIL_FORCE_VER_SSA = 123,
1111    LLIL_FLAG_SSA = 124,
1112    LLIL_FLAG_BIT_SSA = 125,
1113    LLIL_CALL_SSA = 126,
1114    LLIL_SYSCALL_SSA = 127,
1115    LLIL_TAILCALL_SSA = 128,
1116    #[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"]
1117    LLIL_CALL_PARAM = 129,
1118    #[doc = " Only valid within the LLIL_CALL_SSA or LLIL_SYSCALL_SSA instructions"]
1119    LLIL_CALL_STACK_SSA = 130,
1120    #[doc = " Only valid within the LLIL_CALL_SSA or LLIL_SYSCALL_SSA instructions"]
1121    LLIL_CALL_OUTPUT_SSA = 131,
1122    #[doc = " Only valid within the LLIL_CALL_PARAM instruction"]
1123    LLIL_SEPARATE_PARAM_LIST_SSA = 132,
1124    #[doc = " Only valid within the LLIL_CALL_PARAM or LLIL_SEPARATE_PARAM_LIST_SSA instructions"]
1125    LLIL_SHARED_PARAM_SLOT_SSA = 133,
1126    #[doc = " Only valid within the LLIL_MEMORY_INTRINSIC_SSA instruction"]
1127    LLIL_MEMORY_INTRINSIC_OUTPUT_SSA = 134,
1128    LLIL_LOAD_SSA = 135,
1129    LLIL_STORE_SSA = 136,
1130    LLIL_INTRINSIC_SSA = 137,
1131    LLIL_MEMORY_INTRINSIC_SSA = 138,
1132    LLIL_REG_PHI = 139,
1133    LLIL_REG_STACK_PHI = 140,
1134    LLIL_FLAG_PHI = 141,
1135    LLIL_MEM_PHI = 142,
1136}
1137#[repr(u8)]
1138#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1139pub enum BNLowLevelILFlagCondition {
1140    LLFC_E = 0,
1141    LLFC_NE = 1,
1142    LLFC_SLT = 2,
1143    LLFC_ULT = 3,
1144    LLFC_SLE = 4,
1145    LLFC_ULE = 5,
1146    LLFC_SGE = 6,
1147    LLFC_UGE = 7,
1148    LLFC_SGT = 8,
1149    LLFC_UGT = 9,
1150    LLFC_NEG = 10,
1151    LLFC_POS = 11,
1152    LLFC_O = 12,
1153    LLFC_NO = 13,
1154    LLFC_FE = 14,
1155    LLFC_FNE = 15,
1156    LLFC_FLT = 16,
1157    LLFC_FLE = 17,
1158    LLFC_FGE = 18,
1159    LLFC_FGT = 19,
1160    LLFC_FO = 20,
1161    LLFC_FUO = 21,
1162}
1163#[repr(u8)]
1164#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1165pub enum BNFlagRole {
1166    SpecialFlagRole = 0,
1167    ZeroFlagRole = 1,
1168    PositiveSignFlagRole = 2,
1169    NegativeSignFlagRole = 3,
1170    CarryFlagRole = 4,
1171    OverflowFlagRole = 5,
1172    HalfCarryFlagRole = 6,
1173    EvenParityFlagRole = 7,
1174    OddParityFlagRole = 8,
1175    OrderedFlagRole = 9,
1176    UnorderedFlagRole = 10,
1177    CarryFlagWithInvertedSubtractRole = 11,
1178}
1179#[repr(i8)]
1180#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1181pub enum BNFunctionGraphType {
1182    InvalidILViewType = -1,
1183    NormalFunctionGraph = 0,
1184    LowLevelILFunctionGraph = 1,
1185    LiftedILFunctionGraph = 2,
1186    LowLevelILSSAFormFunctionGraph = 3,
1187    MediumLevelILFunctionGraph = 4,
1188    MediumLevelILSSAFormFunctionGraph = 5,
1189    MappedMediumLevelILFunctionGraph = 6,
1190    MappedMediumLevelILSSAFormFunctionGraph = 7,
1191    HighLevelILFunctionGraph = 8,
1192    HighLevelILSSAFormFunctionGraph = 9,
1193    HighLevelLanguageRepresentationFunctionGraph = 10,
1194}
1195#[repr(C)]
1196#[derive(Debug, Copy, Clone)]
1197pub struct BNFunctionViewType {
1198    pub type_: BNFunctionGraphType,
1199    #[doc = " Only used for HighLevelLanguageRepresentationFunctionGraph"]
1200    pub name: *const ::std::os::raw::c_char,
1201}
1202#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1203const _: () = {
1204    ["Size of BNFunctionViewType"][::std::mem::size_of::<BNFunctionViewType>() - 16usize];
1205    ["Alignment of BNFunctionViewType"][::std::mem::align_of::<BNFunctionViewType>() - 8usize];
1206    ["Offset of field: BNFunctionViewType::type_"]
1207        [::std::mem::offset_of!(BNFunctionViewType, type_) - 0usize];
1208    ["Offset of field: BNFunctionViewType::name"]
1209        [::std::mem::offset_of!(BNFunctionViewType, name) - 8usize];
1210};
1211impl Default for BNFunctionViewType {
1212    fn default() -> Self {
1213        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1214        unsafe {
1215            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1216            s.assume_init()
1217        }
1218    }
1219}
1220#[repr(u8)]
1221#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1222pub enum BNDisassemblyOption {
1223    ShowAddress = 0,
1224    ShowOpcode = 1,
1225    ExpandLongOpcode = 2,
1226    ShowVariablesAtTopOfGraph = 3,
1227    ShowVariableTypesWhenAssigned = 4,
1228    ShowRegisterHighlight = 7,
1229    ShowFunctionAddress = 8,
1230    ShowFunctionHeader = 9,
1231    ShowTypeCasts = 10,
1232    #[doc = " Linear disassembly options"]
1233    GroupLinearDisassemblyFunctions = 64,
1234    #[doc = " Linear disassembly options"]
1235    HighLevelILLinearDisassembly = 65,
1236    #[doc = " Linear disassembly options"]
1237    WaitForIL = 66,
1238    #[doc = " Linear disassembly options"]
1239    IndentHLILBody = 67,
1240    #[doc = " Linear disassembly options"]
1241    DisableLineFormatting = 68,
1242    #[doc = " Debugging options"]
1243    ShowFlagUsage = 128,
1244    #[doc = " Debugging options"]
1245    ShowStackPointer = 129,
1246    #[doc = " Debugging options"]
1247    ShowILTypes = 130,
1248    #[doc = " Debugging options"]
1249    ShowILOpcodes = 131,
1250    #[doc = " Debugging options"]
1251    ShowCollapseIndicators = 132,
1252}
1253#[repr(u32)]
1254#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1255pub enum BNDisassemblyAddressMode {
1256    AbsoluteDisassemblyAddressMode = 0,
1257    RelativeToBinaryStartDisassemblyAddressMode = 1,
1258    RelativeToSegmentStartDisassemblyAddressMode = 2,
1259    RelativeToSectionStartDisassemblyAddressMode = 3,
1260    RelativeToFunctionStartDisassemblyAddressMode = 4,
1261    RelativeToAddressBaseOffsetDisassemblyAddressMode = 5,
1262    RelativeToDataStartDisassemblyAddressMode = 6,
1263    DisassemblyAddressModeMask = 65535,
1264    IncludeNameDisassemblyAddressModeFlag = 65536,
1265    DecimalDisassemblyAddressModeFlag = 131072,
1266    DisassemblyAddressModeFlagsMask = 4294901760,
1267}
1268#[repr(u8)]
1269#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1270pub enum BNDisassemblyCallParameterHints {
1271    NeverShowMatchingParameterHints = 0,
1272    AlwaysShowParameterHints = 1,
1273    NeverShowParameterHints = 2,
1274}
1275#[repr(u8)]
1276#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1277pub enum BNDisassemblyBlockLabels {
1278    NeverShowDefaultBlockLabels = 0,
1279    AlwaysShowBlockLabels = 1,
1280    NeverShowBlockLabels = 2,
1281}
1282#[repr(u8)]
1283#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1284pub enum BNTypeClass {
1285    VoidTypeClass = 0,
1286    BoolTypeClass = 1,
1287    IntegerTypeClass = 2,
1288    FloatTypeClass = 3,
1289    StructureTypeClass = 4,
1290    EnumerationTypeClass = 5,
1291    PointerTypeClass = 6,
1292    ArrayTypeClass = 7,
1293    FunctionTypeClass = 8,
1294    VarArgsTypeClass = 9,
1295    ValueTypeClass = 10,
1296    NamedTypeReferenceClass = 11,
1297    WideCharTypeClass = 12,
1298    FragmentTypeClass = 13,
1299}
1300#[repr(u8)]
1301#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1302pub enum BNNamedTypeReferenceClass {
1303    UnknownNamedTypeClass = 0,
1304    TypedefNamedTypeClass = 1,
1305    ClassNamedTypeClass = 2,
1306    StructNamedTypeClass = 3,
1307    UnionNamedTypeClass = 4,
1308    EnumNamedTypeClass = 5,
1309}
1310#[repr(u8)]
1311#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1312pub enum BNStructureVariant {
1313    ClassStructureType = 0,
1314    StructStructureType = 1,
1315    UnionStructureType = 2,
1316}
1317#[repr(u8)]
1318#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1319pub enum BNMemberScope {
1320    NoScope = 0,
1321    StaticScope = 1,
1322    VirtualScope = 2,
1323    ThunkScope = 3,
1324    FriendScope = 4,
1325}
1326#[repr(u8)]
1327#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1328pub enum BNMemberAccess {
1329    NoAccess = 0,
1330    PrivateAccess = 1,
1331    ProtectedAccess = 2,
1332    PublicAccess = 3,
1333}
1334#[repr(u8)]
1335#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1336pub enum BNReferenceType {
1337    PointerReferenceType = 0,
1338    ReferenceReferenceType = 1,
1339    RValueReferenceType = 2,
1340    NoReference = 3,
1341}
1342#[repr(u8)]
1343#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1344pub enum BNPointerSuffix {
1345    Ptr64Suffix = 0,
1346    UnalignedSuffix = 1,
1347    RestrictSuffix = 2,
1348    ReferenceSuffix = 3,
1349    LvalueSuffix = 4,
1350}
1351#[repr(u8)]
1352#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1353pub enum BNPointerBaseType {
1354    AbsolutePointerBaseType = 0,
1355    RelativeToConstantPointerBaseType = 1,
1356    RelativeToBinaryStartPointerBaseType = 2,
1357    RelativeToVariableAddressPointerBaseType = 3,
1358}
1359#[repr(u8)]
1360#[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"]
1361#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1362pub enum BNNameType {
1363    NoNameType = 0,
1364    ConstructorNameType = 1,
1365    DestructorNameType = 2,
1366    OperatorNewNameType = 3,
1367    OperatorDeleteNameType = 4,
1368    OperatorAssignNameType = 5,
1369    OperatorRightShiftNameType = 6,
1370    OperatorLeftShiftNameType = 7,
1371    OperatorNotNameType = 8,
1372    OperatorEqualNameType = 9,
1373    OperatorNotEqualNameType = 10,
1374    OperatorArrayNameType = 11,
1375    OperatorArrowNameType = 12,
1376    OperatorStarNameType = 13,
1377    OperatorIncrementNameType = 14,
1378    OperatorDecrementNameType = 15,
1379    OperatorMinusNameType = 16,
1380    OperatorPlusNameType = 17,
1381    OperatorBitAndNameType = 18,
1382    OperatorArrowStarNameType = 19,
1383    OperatorDivideNameType = 20,
1384    OperatorModulusNameType = 21,
1385    OperatorLessThanNameType = 22,
1386    OperatorLessThanEqualNameType = 23,
1387    OperatorGreaterThanNameType = 24,
1388    OperatorGreaterThanEqualNameType = 25,
1389    OperatorCommaNameType = 26,
1390    OperatorParenthesesNameType = 27,
1391    OperatorTildeNameType = 28,
1392    OperatorXorNameType = 29,
1393    OperatorBitOrNameType = 30,
1394    OperatorLogicalAndNameType = 31,
1395    OperatorLogicalOrNameType = 32,
1396    OperatorStarEqualNameType = 33,
1397    OperatorPlusEqualNameType = 34,
1398    OperatorMinusEqualNameType = 35,
1399    OperatorDivideEqualNameType = 36,
1400    OperatorModulusEqualNameType = 37,
1401    OperatorRightShiftEqualNameType = 38,
1402    OperatorLeftShiftEqualNameType = 39,
1403    OperatorAndEqualNameType = 40,
1404    OperatorOrEqualNameType = 41,
1405    OperatorXorEqualNameType = 42,
1406    VFTableNameType = 43,
1407    VBTableNameType = 44,
1408    VCallNameType = 45,
1409    TypeofNameType = 46,
1410    LocalStaticGuardNameType = 47,
1411    StringNameType = 48,
1412    VBaseDestructorNameType = 49,
1413    VectorDeletingDestructorNameType = 50,
1414    DefaultConstructorClosureNameType = 51,
1415    ScalarDeletingDestructorNameType = 52,
1416    VectorConstructorIteratorNameType = 53,
1417    VectorDestructorIteratorNameType = 54,
1418    VectorVBaseConstructorIteratorNameType = 55,
1419    VirtualDisplacementMapNameType = 56,
1420    EHVectorConstructorIteratorNameType = 57,
1421    EHVectorDestructorIteratorNameType = 58,
1422    EHVectorVBaseConstructorIteratorNameType = 59,
1423    CopyConstructorClosureNameType = 60,
1424    UDTReturningNameType = 61,
1425    LocalVFTableNameType = 62,
1426    LocalVFTableConstructorClosureNameType = 63,
1427    OperatorNewArrayNameType = 64,
1428    OperatorDeleteArrayNameType = 65,
1429    PlacementDeleteClosureNameType = 66,
1430    PlacementDeleteClosureArrayNameType = 67,
1431    OperatorReturnTypeNameType = 68,
1432    RttiTypeDescriptor = 69,
1433    RttiBaseClassDescriptor = 70,
1434    RttiBaseClassArray = 71,
1435    RttiClassHierarchyDescriptor = 72,
1436    RttiCompleteObjectLocator = 73,
1437    OperatorUnaryMinusNameType = 74,
1438    OperatorUnaryPlusNameType = 75,
1439    OperatorUnaryBitAndNameType = 76,
1440    OperatorUnaryStarNameType = 77,
1441    OmniCallSigNameType = 78,
1442    ManagedVectorConstructorIteratorNameType = 79,
1443    ManagedVectorDestructorIteratorNameType = 80,
1444    EHVectorCopyConstructorIteratorNameType = 81,
1445    EHVectorVBaseCopyConstructorIteratorNameType = 82,
1446    DynamicInitializerNameType = 83,
1447    DynamicAtExitDestructorNameType = 84,
1448    VectorCopyConstructorIteratorNameType = 85,
1449    VectorVBaseCopyConstructorIteratorNameType = 86,
1450    ManagedVectorCopyConstructorIteratorNameType = 87,
1451    LocalStaticThreadGuardNameType = 88,
1452    UserDefinedLiteralOperatorNameType = 89,
1453}
1454#[repr(u8)]
1455#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1456pub enum BNCallingConventionName {
1457    NoCallingConvention = 0,
1458    CdeclCallingConvention = 1,
1459    PascalCallingConvention = 2,
1460    ThisCallCallingConvention = 3,
1461    STDCallCallingConvention = 4,
1462    FastcallCallingConvention = 5,
1463    CLRCallCallingConvention = 6,
1464    EabiCallCallingConvention = 7,
1465    VectorCallCallingConvention = 8,
1466    SwiftCallingConvention = 9,
1467    SwiftAsyncCallingConvention = 10,
1468}
1469#[repr(u8)]
1470#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1471pub enum BNStringType {
1472    AsciiString = 0,
1473    Utf16String = 1,
1474    Utf32String = 2,
1475    Utf8String = 3,
1476}
1477#[repr(u8)]
1478#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1479pub enum BNIntegerDisplayType {
1480    DefaultIntegerDisplayType = 0,
1481    BinaryDisplayType = 1,
1482    SignedOctalDisplayType = 2,
1483    UnsignedOctalDisplayType = 3,
1484    SignedDecimalDisplayType = 4,
1485    UnsignedDecimalDisplayType = 5,
1486    SignedHexadecimalDisplayType = 6,
1487    UnsignedHexadecimalDisplayType = 7,
1488    CharacterConstantDisplayType = 8,
1489    PointerDisplayType = 9,
1490    FloatDisplayType = 10,
1491    DoubleDisplayType = 11,
1492    EnumerationDisplayType = 12,
1493    InvertedCharacterConstantDisplayType = 13,
1494    UnsignedComplementDecimalDisplayType = 14,
1495    UnsignedComplementHexadecimalDisplayType = 15,
1496}
1497#[repr(u8)]
1498#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1499pub enum BNFlowGraphOption {
1500    FlowGraphUsesBlockHighlights = 0,
1501    FlowGraphUsesInstructionHighlights = 1,
1502    FlowGraphIncludesUserComments = 2,
1503    FlowGraphAllowsPatching = 3,
1504    FlowGraphAllowsInlineInstructionEditing = 4,
1505    FlowGraphShowsSecondaryRegisterHighlighting = 5,
1506    FlowGraphIsAddressable = 6,
1507    FlowGraphIsWorkflowGraph = 7,
1508}
1509#[repr(u8)]
1510#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1511pub enum BNIntrinsicClass {
1512    GeneralIntrinsicClass = 0,
1513    MemoryIntrinsicClass = 1,
1514}
1515#[repr(u8)]
1516#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1517pub enum BNInlineDuringAnalysis {
1518    #[doc = " The called function should not be inlined."]
1519    DoNotInlineCall = 0,
1520    #[doc = " The called function should be inlined, with the inlined\n instructions preserving their original addresses.\n This was the only behavior available up through Binary Ninja 5.2."]
1521    InlinePreservingTargetInstructionAddresses = 1,
1522    #[doc = " The called function should be inlined, with the inlined\n instructions using the call site address as their address.\n This ensures that when the function is inlined into a caller\n multiple times, each occurrence can have different adjustments\n applied to it. The trade-off is that the instructions inlined\n at a given call site have the same address, which in turn\n prevents applying adjustments that depend on instruction\n address to only a subset of those instructions."]
1523    InlineUsingCallAddress = 2,
1524}
1525#[repr(C)]
1526#[derive(Debug, Copy, Clone)]
1527pub struct BNInlineDuringAnalysisWithConfidence {
1528    pub value: BNInlineDuringAnalysis,
1529    pub confidence: u8,
1530}
1531#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1532const _: () = {
1533    ["Size of BNInlineDuringAnalysisWithConfidence"]
1534        [::std::mem::size_of::<BNInlineDuringAnalysisWithConfidence>() - 2usize];
1535    ["Alignment of BNInlineDuringAnalysisWithConfidence"]
1536        [::std::mem::align_of::<BNInlineDuringAnalysisWithConfidence>() - 1usize];
1537    ["Offset of field: BNInlineDuringAnalysisWithConfidence::value"]
1538        [::std::mem::offset_of!(BNInlineDuringAnalysisWithConfidence, value) - 0usize];
1539    ["Offset of field: BNInlineDuringAnalysisWithConfidence::confidence"]
1540        [::std::mem::offset_of!(BNInlineDuringAnalysisWithConfidence, confidence) - 1usize];
1541};
1542impl Default for BNInlineDuringAnalysisWithConfidence {
1543    fn default() -> Self {
1544        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1545        unsafe {
1546            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1547            s.assume_init()
1548        }
1549    }
1550}
1551#[repr(C)]
1552#[derive(Debug, Copy, Clone)]
1553pub struct BNLowLevelILInstruction {
1554    pub operation: BNLowLevelILOperation,
1555    pub attributes: u32,
1556    pub size: usize,
1557    pub flags: u32,
1558    pub sourceOperand: u32,
1559    pub operands: [u64; 4usize],
1560    pub address: u64,
1561}
1562#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1563const _: () = {
1564    ["Size of BNLowLevelILInstruction"][::std::mem::size_of::<BNLowLevelILInstruction>() - 64usize];
1565    ["Alignment of BNLowLevelILInstruction"]
1566        [::std::mem::align_of::<BNLowLevelILInstruction>() - 8usize];
1567    ["Offset of field: BNLowLevelILInstruction::operation"]
1568        [::std::mem::offset_of!(BNLowLevelILInstruction, operation) - 0usize];
1569    ["Offset of field: BNLowLevelILInstruction::attributes"]
1570        [::std::mem::offset_of!(BNLowLevelILInstruction, attributes) - 4usize];
1571    ["Offset of field: BNLowLevelILInstruction::size"]
1572        [::std::mem::offset_of!(BNLowLevelILInstruction, size) - 8usize];
1573    ["Offset of field: BNLowLevelILInstruction::flags"]
1574        [::std::mem::offset_of!(BNLowLevelILInstruction, flags) - 16usize];
1575    ["Offset of field: BNLowLevelILInstruction::sourceOperand"]
1576        [::std::mem::offset_of!(BNLowLevelILInstruction, sourceOperand) - 20usize];
1577    ["Offset of field: BNLowLevelILInstruction::operands"]
1578        [::std::mem::offset_of!(BNLowLevelILInstruction, operands) - 24usize];
1579    ["Offset of field: BNLowLevelILInstruction::address"]
1580        [::std::mem::offset_of!(BNLowLevelILInstruction, address) - 56usize];
1581};
1582impl Default for BNLowLevelILInstruction {
1583    fn default() -> Self {
1584        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1585        unsafe {
1586            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1587            s.assume_init()
1588        }
1589    }
1590}
1591#[repr(C)]
1592#[derive(Debug, Default, Copy, Clone)]
1593pub struct BNLowLevelILLabel {
1594    pub resolved: bool,
1595    pub ref_: usize,
1596    pub operand: usize,
1597}
1598#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1599const _: () = {
1600    ["Size of BNLowLevelILLabel"][::std::mem::size_of::<BNLowLevelILLabel>() - 24usize];
1601    ["Alignment of BNLowLevelILLabel"][::std::mem::align_of::<BNLowLevelILLabel>() - 8usize];
1602    ["Offset of field: BNLowLevelILLabel::resolved"]
1603        [::std::mem::offset_of!(BNLowLevelILLabel, resolved) - 0usize];
1604    ["Offset of field: BNLowLevelILLabel::ref_"]
1605        [::std::mem::offset_of!(BNLowLevelILLabel, ref_) - 8usize];
1606    ["Offset of field: BNLowLevelILLabel::operand"]
1607        [::std::mem::offset_of!(BNLowLevelILLabel, operand) - 16usize];
1608};
1609#[repr(u8)]
1610#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1611pub enum BNImplicitRegisterExtend {
1612    NoExtend = 0,
1613    ZeroExtendToFullWidth = 1,
1614    SignExtendToFullWidth = 2,
1615}
1616#[repr(C)]
1617#[derive(Debug, Copy, Clone)]
1618pub struct BNRegisterInfo {
1619    pub fullWidthRegister: u32,
1620    pub offset: usize,
1621    pub size: usize,
1622    pub extend: BNImplicitRegisterExtend,
1623}
1624#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1625const _: () = {
1626    ["Size of BNRegisterInfo"][::std::mem::size_of::<BNRegisterInfo>() - 32usize];
1627    ["Alignment of BNRegisterInfo"][::std::mem::align_of::<BNRegisterInfo>() - 8usize];
1628    ["Offset of field: BNRegisterInfo::fullWidthRegister"]
1629        [::std::mem::offset_of!(BNRegisterInfo, fullWidthRegister) - 0usize];
1630    ["Offset of field: BNRegisterInfo::offset"]
1631        [::std::mem::offset_of!(BNRegisterInfo, offset) - 8usize];
1632    ["Offset of field: BNRegisterInfo::size"]
1633        [::std::mem::offset_of!(BNRegisterInfo, size) - 16usize];
1634    ["Offset of field: BNRegisterInfo::extend"]
1635        [::std::mem::offset_of!(BNRegisterInfo, extend) - 24usize];
1636};
1637impl Default for BNRegisterInfo {
1638    fn default() -> Self {
1639        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1640        unsafe {
1641            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1642            s.assume_init()
1643        }
1644    }
1645}
1646#[repr(C)]
1647#[derive(Debug, Default, Copy, Clone)]
1648pub struct BNRegisterStackInfo {
1649    pub firstStorageReg: u32,
1650    pub firstTopRelativeReg: u32,
1651    pub storageCount: u32,
1652    pub topRelativeCount: u32,
1653    pub stackTopReg: u32,
1654}
1655#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1656const _: () = {
1657    ["Size of BNRegisterStackInfo"][::std::mem::size_of::<BNRegisterStackInfo>() - 20usize];
1658    ["Alignment of BNRegisterStackInfo"][::std::mem::align_of::<BNRegisterStackInfo>() - 4usize];
1659    ["Offset of field: BNRegisterStackInfo::firstStorageReg"]
1660        [::std::mem::offset_of!(BNRegisterStackInfo, firstStorageReg) - 0usize];
1661    ["Offset of field: BNRegisterStackInfo::firstTopRelativeReg"]
1662        [::std::mem::offset_of!(BNRegisterStackInfo, firstTopRelativeReg) - 4usize];
1663    ["Offset of field: BNRegisterStackInfo::storageCount"]
1664        [::std::mem::offset_of!(BNRegisterStackInfo, storageCount) - 8usize];
1665    ["Offset of field: BNRegisterStackInfo::topRelativeCount"]
1666        [::std::mem::offset_of!(BNRegisterStackInfo, topRelativeCount) - 12usize];
1667    ["Offset of field: BNRegisterStackInfo::stackTopReg"]
1668        [::std::mem::offset_of!(BNRegisterStackInfo, stackTopReg) - 16usize];
1669};
1670#[repr(u32)]
1671#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1672pub enum BNRegisterValueType {
1673    UndeterminedValue = 0,
1674    EntryValue = 1,
1675    ConstantValue = 2,
1676    ConstantPointerValue = 3,
1677    ExternalPointerValue = 4,
1678    StackFrameOffset = 5,
1679    ReturnAddressValue = 6,
1680    ImportedAddressValue = 7,
1681    #[doc = " The following are only valid in BNPossibleValueSet"]
1682    SignedRangeValue = 8,
1683    #[doc = " The following are only valid in BNPossibleValueSet"]
1684    UnsignedRangeValue = 9,
1685    #[doc = " The following are only valid in BNPossibleValueSet"]
1686    LookupTableValue = 10,
1687    #[doc = " The following are only valid in BNPossibleValueSet"]
1688    InSetOfValues = 11,
1689    #[doc = " The following are only valid in BNPossibleValueSet"]
1690    NotInSetOfValues = 12,
1691    #[doc = " The following support constant data and values larger than 8 bytes"]
1692    ConstantDataValue = 32768,
1693    #[doc = " The following support constant data and values larger than 8 bytes"]
1694    ConstantDataZeroExtendValue = 32769,
1695    #[doc = " The following support constant data and values larger than 8 bytes"]
1696    ConstantDataSignExtendValue = 32770,
1697    #[doc = " The following support constant data and values larger than 8 bytes"]
1698    ConstantDataAggregateValue = 32771,
1699}
1700#[repr(u8)]
1701#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1702pub enum BNDataFlowQueryOption {
1703    #[doc = " Use addresses instead of index in the from list within\n LookupTableValue results"]
1704    FromAddressesInLookupTableQueryOption = 0,
1705    AllowReadingWritableMemoryQueryOption = 1,
1706}
1707#[repr(u32)]
1708#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1709pub enum BNPluginStatus {
1710    NotInstalledPluginStatus = 0,
1711    InstalledPluginStatus = 1,
1712    EnabledPluginStatus = 2,
1713    UpdateAvailablePluginStatus = 16,
1714    DeletePendingPluginStatus = 32,
1715    UpdatePendingPluginStatus = 64,
1716    DisablePendingPluginStatus = 128,
1717    PendingRestartPluginStatus = 512,
1718    BeingUpdatedPluginStatus = 1024,
1719    BeingDeletedPluginStatus = 2048,
1720    DependenciesBeingInstalledStatus = 4096,
1721}
1722#[repr(u8)]
1723#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1724pub enum BNPluginType {
1725    CorePluginType = 0,
1726    UiPluginType = 1,
1727    ArchitecturePluginType = 2,
1728    BinaryViewPluginType = 3,
1729    HelperPluginType = 4,
1730    SyncPluginType = 5,
1731}
1732#[repr(C)]
1733#[derive(Debug, Copy, Clone)]
1734pub struct BNLookupTableEntry {
1735    pub fromValues: *mut i64,
1736    pub fromCount: usize,
1737    pub toValue: i64,
1738}
1739#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1740const _: () = {
1741    ["Size of BNLookupTableEntry"][::std::mem::size_of::<BNLookupTableEntry>() - 24usize];
1742    ["Alignment of BNLookupTableEntry"][::std::mem::align_of::<BNLookupTableEntry>() - 8usize];
1743    ["Offset of field: BNLookupTableEntry::fromValues"]
1744        [::std::mem::offset_of!(BNLookupTableEntry, fromValues) - 0usize];
1745    ["Offset of field: BNLookupTableEntry::fromCount"]
1746        [::std::mem::offset_of!(BNLookupTableEntry, fromCount) - 8usize];
1747    ["Offset of field: BNLookupTableEntry::toValue"]
1748        [::std::mem::offset_of!(BNLookupTableEntry, toValue) - 16usize];
1749};
1750impl Default for BNLookupTableEntry {
1751    fn default() -> Self {
1752        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1753        unsafe {
1754            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1755            s.assume_init()
1756        }
1757    }
1758}
1759#[repr(C)]
1760#[derive(Debug, Copy, Clone)]
1761pub struct BNRegisterValue {
1762    pub state: BNRegisterValueType,
1763    pub value: i64,
1764    pub offset: i64,
1765    pub size: usize,
1766}
1767#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1768const _: () = {
1769    ["Size of BNRegisterValue"][::std::mem::size_of::<BNRegisterValue>() - 32usize];
1770    ["Alignment of BNRegisterValue"][::std::mem::align_of::<BNRegisterValue>() - 8usize];
1771    ["Offset of field: BNRegisterValue::state"]
1772        [::std::mem::offset_of!(BNRegisterValue, state) - 0usize];
1773    ["Offset of field: BNRegisterValue::value"]
1774        [::std::mem::offset_of!(BNRegisterValue, value) - 8usize];
1775    ["Offset of field: BNRegisterValue::offset"]
1776        [::std::mem::offset_of!(BNRegisterValue, offset) - 16usize];
1777    ["Offset of field: BNRegisterValue::size"]
1778        [::std::mem::offset_of!(BNRegisterValue, size) - 24usize];
1779};
1780impl Default for BNRegisterValue {
1781    fn default() -> Self {
1782        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1783        unsafe {
1784            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1785            s.assume_init()
1786        }
1787    }
1788}
1789#[repr(C)]
1790#[derive(Debug, Copy, Clone)]
1791pub struct BNRegisterValueWithConfidence {
1792    pub value: BNRegisterValue,
1793    pub confidence: u8,
1794}
1795#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1796const _: () = {
1797    ["Size of BNRegisterValueWithConfidence"]
1798        [::std::mem::size_of::<BNRegisterValueWithConfidence>() - 40usize];
1799    ["Alignment of BNRegisterValueWithConfidence"]
1800        [::std::mem::align_of::<BNRegisterValueWithConfidence>() - 8usize];
1801    ["Offset of field: BNRegisterValueWithConfidence::value"]
1802        [::std::mem::offset_of!(BNRegisterValueWithConfidence, value) - 0usize];
1803    ["Offset of field: BNRegisterValueWithConfidence::confidence"]
1804        [::std::mem::offset_of!(BNRegisterValueWithConfidence, confidence) - 32usize];
1805};
1806impl Default for BNRegisterValueWithConfidence {
1807    fn default() -> Self {
1808        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1809        unsafe {
1810            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1811            s.assume_init()
1812        }
1813    }
1814}
1815#[repr(C)]
1816#[derive(Debug, Default, Copy, Clone)]
1817pub struct BNValueRange {
1818    pub start: u64,
1819    pub end: u64,
1820    pub step: u64,
1821}
1822#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1823const _: () = {
1824    ["Size of BNValueRange"][::std::mem::size_of::<BNValueRange>() - 24usize];
1825    ["Alignment of BNValueRange"][::std::mem::align_of::<BNValueRange>() - 8usize];
1826    ["Offset of field: BNValueRange::start"][::std::mem::offset_of!(BNValueRange, start) - 0usize];
1827    ["Offset of field: BNValueRange::end"][::std::mem::offset_of!(BNValueRange, end) - 8usize];
1828    ["Offset of field: BNValueRange::step"][::std::mem::offset_of!(BNValueRange, step) - 16usize];
1829};
1830#[repr(C)]
1831#[derive(Debug, Copy, Clone)]
1832pub struct BNPossibleValueSet {
1833    pub state: BNRegisterValueType,
1834    pub value: i64,
1835    pub offset: i64,
1836    pub size: usize,
1837    pub ranges: *mut BNValueRange,
1838    pub valueSet: *mut i64,
1839    pub table: *mut BNLookupTableEntry,
1840    pub count: usize,
1841}
1842#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1843const _: () = {
1844    ["Size of BNPossibleValueSet"][::std::mem::size_of::<BNPossibleValueSet>() - 64usize];
1845    ["Alignment of BNPossibleValueSet"][::std::mem::align_of::<BNPossibleValueSet>() - 8usize];
1846    ["Offset of field: BNPossibleValueSet::state"]
1847        [::std::mem::offset_of!(BNPossibleValueSet, state) - 0usize];
1848    ["Offset of field: BNPossibleValueSet::value"]
1849        [::std::mem::offset_of!(BNPossibleValueSet, value) - 8usize];
1850    ["Offset of field: BNPossibleValueSet::offset"]
1851        [::std::mem::offset_of!(BNPossibleValueSet, offset) - 16usize];
1852    ["Offset of field: BNPossibleValueSet::size"]
1853        [::std::mem::offset_of!(BNPossibleValueSet, size) - 24usize];
1854    ["Offset of field: BNPossibleValueSet::ranges"]
1855        [::std::mem::offset_of!(BNPossibleValueSet, ranges) - 32usize];
1856    ["Offset of field: BNPossibleValueSet::valueSet"]
1857        [::std::mem::offset_of!(BNPossibleValueSet, valueSet) - 40usize];
1858    ["Offset of field: BNPossibleValueSet::table"]
1859        [::std::mem::offset_of!(BNPossibleValueSet, table) - 48usize];
1860    ["Offset of field: BNPossibleValueSet::count"]
1861        [::std::mem::offset_of!(BNPossibleValueSet, count) - 56usize];
1862};
1863impl Default for BNPossibleValueSet {
1864    fn default() -> Self {
1865        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1866        unsafe {
1867            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1868            s.assume_init()
1869        }
1870    }
1871}
1872#[repr(C)]
1873#[derive(Debug, Default, Copy, Clone)]
1874pub struct BNRegisterOrConstant {
1875    pub constant: bool,
1876    pub reg: u32,
1877    pub value: u64,
1878}
1879#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1880const _: () = {
1881    ["Size of BNRegisterOrConstant"][::std::mem::size_of::<BNRegisterOrConstant>() - 16usize];
1882    ["Alignment of BNRegisterOrConstant"][::std::mem::align_of::<BNRegisterOrConstant>() - 8usize];
1883    ["Offset of field: BNRegisterOrConstant::constant"]
1884        [::std::mem::offset_of!(BNRegisterOrConstant, constant) - 0usize];
1885    ["Offset of field: BNRegisterOrConstant::reg"]
1886        [::std::mem::offset_of!(BNRegisterOrConstant, reg) - 4usize];
1887    ["Offset of field: BNRegisterOrConstant::value"]
1888        [::std::mem::offset_of!(BNRegisterOrConstant, value) - 8usize];
1889};
1890#[repr(C)]
1891#[derive(Debug, Copy, Clone)]
1892pub struct BNDataVariable {
1893    pub address: u64,
1894    pub type_: *mut BNType,
1895    pub autoDiscovered: bool,
1896    pub typeConfidence: u8,
1897}
1898#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1899const _: () = {
1900    ["Size of BNDataVariable"][::std::mem::size_of::<BNDataVariable>() - 24usize];
1901    ["Alignment of BNDataVariable"][::std::mem::align_of::<BNDataVariable>() - 8usize];
1902    ["Offset of field: BNDataVariable::address"]
1903        [::std::mem::offset_of!(BNDataVariable, address) - 0usize];
1904    ["Offset of field: BNDataVariable::type_"]
1905        [::std::mem::offset_of!(BNDataVariable, type_) - 8usize];
1906    ["Offset of field: BNDataVariable::autoDiscovered"]
1907        [::std::mem::offset_of!(BNDataVariable, autoDiscovered) - 16usize];
1908    ["Offset of field: BNDataVariable::typeConfidence"]
1909        [::std::mem::offset_of!(BNDataVariable, typeConfidence) - 17usize];
1910};
1911impl Default for BNDataVariable {
1912    fn default() -> Self {
1913        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1914        unsafe {
1915            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1916            s.assume_init()
1917        }
1918    }
1919}
1920#[repr(C)]
1921#[derive(Debug, Copy, Clone)]
1922pub struct BNDataVariableAndName {
1923    pub address: u64,
1924    pub type_: *mut BNType,
1925    pub name: *mut ::std::os::raw::c_char,
1926    pub autoDiscovered: bool,
1927    pub typeConfidence: u8,
1928}
1929#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1930const _: () = {
1931    ["Size of BNDataVariableAndName"][::std::mem::size_of::<BNDataVariableAndName>() - 32usize];
1932    ["Alignment of BNDataVariableAndName"]
1933        [::std::mem::align_of::<BNDataVariableAndName>() - 8usize];
1934    ["Offset of field: BNDataVariableAndName::address"]
1935        [::std::mem::offset_of!(BNDataVariableAndName, address) - 0usize];
1936    ["Offset of field: BNDataVariableAndName::type_"]
1937        [::std::mem::offset_of!(BNDataVariableAndName, type_) - 8usize];
1938    ["Offset of field: BNDataVariableAndName::name"]
1939        [::std::mem::offset_of!(BNDataVariableAndName, name) - 16usize];
1940    ["Offset of field: BNDataVariableAndName::autoDiscovered"]
1941        [::std::mem::offset_of!(BNDataVariableAndName, autoDiscovered) - 24usize];
1942    ["Offset of field: BNDataVariableAndName::typeConfidence"]
1943        [::std::mem::offset_of!(BNDataVariableAndName, typeConfidence) - 25usize];
1944};
1945impl Default for BNDataVariableAndName {
1946    fn default() -> Self {
1947        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1948        unsafe {
1949            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1950            s.assume_init()
1951        }
1952    }
1953}
1954#[repr(C)]
1955#[derive(Debug, Copy, Clone)]
1956pub struct BNDataVariableAndNameAndDebugParser {
1957    pub address: u64,
1958    pub type_: *mut BNType,
1959    pub name: *mut ::std::os::raw::c_char,
1960    pub parser: *mut ::std::os::raw::c_char,
1961    pub autoDiscovered: bool,
1962    pub typeConfidence: u8,
1963}
1964#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1965const _: () = {
1966    ["Size of BNDataVariableAndNameAndDebugParser"]
1967        [::std::mem::size_of::<BNDataVariableAndNameAndDebugParser>() - 40usize];
1968    ["Alignment of BNDataVariableAndNameAndDebugParser"]
1969        [::std::mem::align_of::<BNDataVariableAndNameAndDebugParser>() - 8usize];
1970    ["Offset of field: BNDataVariableAndNameAndDebugParser::address"]
1971        [::std::mem::offset_of!(BNDataVariableAndNameAndDebugParser, address) - 0usize];
1972    ["Offset of field: BNDataVariableAndNameAndDebugParser::type_"]
1973        [::std::mem::offset_of!(BNDataVariableAndNameAndDebugParser, type_) - 8usize];
1974    ["Offset of field: BNDataVariableAndNameAndDebugParser::name"]
1975        [::std::mem::offset_of!(BNDataVariableAndNameAndDebugParser, name) - 16usize];
1976    ["Offset of field: BNDataVariableAndNameAndDebugParser::parser"]
1977        [::std::mem::offset_of!(BNDataVariableAndNameAndDebugParser, parser) - 24usize];
1978    ["Offset of field: BNDataVariableAndNameAndDebugParser::autoDiscovered"]
1979        [::std::mem::offset_of!(BNDataVariableAndNameAndDebugParser, autoDiscovered) - 32usize];
1980    ["Offset of field: BNDataVariableAndNameAndDebugParser::typeConfidence"]
1981        [::std::mem::offset_of!(BNDataVariableAndNameAndDebugParser, typeConfidence) - 33usize];
1982};
1983impl Default for BNDataVariableAndNameAndDebugParser {
1984    fn default() -> Self {
1985        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1986        unsafe {
1987            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1988            s.assume_init()
1989        }
1990    }
1991}
1992#[repr(u8)]
1993#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1994pub enum BNMediumLevelILOperation {
1995    MLIL_NOP = 0,
1996    #[doc = " Not valid in SSA form (see MLIL_SET_VAR_SSA)"]
1997    MLIL_SET_VAR = 1,
1998    #[doc = " Not valid in SSA form (see MLIL_SET_VAR_FIELD)"]
1999    MLIL_SET_VAR_FIELD = 2,
2000    #[doc = " Not valid in SSA form (see MLIL_SET_VAR_SPLIT_SSA)"]
2001    MLIL_SET_VAR_SPLIT = 3,
2002    MLIL_ASSERT = 4,
2003    MLIL_FORCE_VER = 5,
2004    #[doc = " Not valid in SSA form (see MLIL_LOAD_SSA)"]
2005    MLIL_LOAD = 6,
2006    #[doc = " Not valid in SSA form (see MLIL_LOAD_STRUCT_SSA)"]
2007    MLIL_LOAD_STRUCT = 7,
2008    #[doc = " Not valid in SSA form (see MLIL_STORE_SSA)"]
2009    MLIL_STORE = 8,
2010    #[doc = " Not valid in SSA form (see MLIL_STORE_STRUCT_SSA)"]
2011    MLIL_STORE_STRUCT = 9,
2012    #[doc = " Not valid in SSA form (see MLIL_VAR_SSA)"]
2013    MLIL_VAR = 10,
2014    #[doc = " Not valid in SSA form (see MLIL_VAR_SSA_FIELD)"]
2015    MLIL_VAR_FIELD = 11,
2016    #[doc = " Not valid in SSA form (see MLIL_VAR_SPLIT_SSA)"]
2017    MLIL_VAR_SPLIT = 12,
2018    MLIL_ADDRESS_OF = 13,
2019    MLIL_ADDRESS_OF_FIELD = 14,
2020    MLIL_CONST = 15,
2021    MLIL_CONST_DATA = 16,
2022    MLIL_CONST_PTR = 17,
2023    MLIL_EXTERN_PTR = 18,
2024    MLIL_FLOAT_CONST = 19,
2025    MLIL_IMPORT = 20,
2026    MLIL_ADD = 21,
2027    MLIL_ADC = 22,
2028    MLIL_SUB = 23,
2029    MLIL_SBB = 24,
2030    MLIL_AND = 25,
2031    MLIL_OR = 26,
2032    MLIL_XOR = 27,
2033    MLIL_LSL = 28,
2034    MLIL_LSR = 29,
2035    MLIL_ASR = 30,
2036    MLIL_ROL = 31,
2037    MLIL_RLC = 32,
2038    MLIL_ROR = 33,
2039    MLIL_RRC = 34,
2040    MLIL_MUL = 35,
2041    MLIL_MULU_DP = 36,
2042    MLIL_MULS_DP = 37,
2043    MLIL_DIVU = 38,
2044    MLIL_DIVU_DP = 39,
2045    MLIL_DIVS = 40,
2046    MLIL_DIVS_DP = 41,
2047    MLIL_MODU = 42,
2048    MLIL_MODU_DP = 43,
2049    MLIL_MODS = 44,
2050    MLIL_MODS_DP = 45,
2051    MLIL_NEG = 46,
2052    MLIL_NOT = 47,
2053    MLIL_SX = 48,
2054    MLIL_ZX = 49,
2055    MLIL_LOW_PART = 50,
2056    MLIL_JUMP = 51,
2057    MLIL_JUMP_TO = 52,
2058    #[doc = " Intermediate stages, does not appear in final forms"]
2059    MLIL_RET_HINT = 53,
2060    #[doc = " Not valid in SSA form (see MLIL_CALL_SSA)"]
2061    MLIL_CALL = 54,
2062    #[doc = " Not valid in SSA form (see MLIL_CALL_UNTYPED_SSA)"]
2063    MLIL_CALL_UNTYPED = 55,
2064    #[doc = " Only valid within MLIL_CALL, MLIL_SYSCALL, MLIL_TAILCALL family instructions"]
2065    MLIL_CALL_OUTPUT = 56,
2066    #[doc = " Only valid within MLIL_CALL, MLIL_SYSCALL, MLIL_TAILCALL family instructions"]
2067    MLIL_CALL_PARAM = 57,
2068    #[doc = " Only valid within the MLIL_CALL_PARAM or MLIL_CALL_PARAM_SSA instructions inside\n untyped call variants"]
2069    MLIL_SEPARATE_PARAM_LIST = 58,
2070    #[doc = " Only valid within the MLIL_CALL_PARAM, MLIL_CALL_PARAM_SSA, or\n MLIL_SEPARATE_PARAM_LIST instructions inside untyped call variants"]
2071    MLIL_SHARED_PARAM_SLOT = 59,
2072    MLIL_RET = 60,
2073    MLIL_NORET = 61,
2074    MLIL_IF = 62,
2075    MLIL_GOTO = 63,
2076    MLIL_CMP_E = 64,
2077    MLIL_CMP_NE = 65,
2078    MLIL_CMP_SLT = 66,
2079    MLIL_CMP_ULT = 67,
2080    MLIL_CMP_SLE = 68,
2081    MLIL_CMP_ULE = 69,
2082    MLIL_CMP_SGE = 70,
2083    MLIL_CMP_UGE = 71,
2084    MLIL_CMP_SGT = 72,
2085    MLIL_CMP_UGT = 73,
2086    MLIL_TEST_BIT = 74,
2087    MLIL_BOOL_TO_INT = 75,
2088    MLIL_ADD_OVERFLOW = 76,
2089    #[doc = " Not valid in SSA form (see MLIL_SYSCALL_SSA)"]
2090    MLIL_SYSCALL = 77,
2091    #[doc = " Not valid in SSA form (see MLIL_SYSCALL_UNTYPED_SSA)"]
2092    MLIL_SYSCALL_UNTYPED = 78,
2093    #[doc = " Not valid in SSA form (see MLIL_TAILCALL_SSA)"]
2094    MLIL_TAILCALL = 79,
2095    #[doc = " Not valid in SSA form (see MLIL_TAILCALL_UNTYPED_SSA)"]
2096    MLIL_TAILCALL_UNTYPED = 80,
2097    #[doc = " Not valid in SSA form (see MLIL_INTRINSIC_SSA)"]
2098    MLIL_INTRINSIC = 81,
2099    #[doc = " Not valid in SSA from (see MLIL_FREE_VAR_SLOT_SSA)"]
2100    MLIL_FREE_VAR_SLOT = 82,
2101    MLIL_BP = 83,
2102    MLIL_TRAP = 84,
2103    MLIL_UNDEF = 85,
2104    MLIL_UNIMPL = 86,
2105    MLIL_UNIMPL_MEM = 87,
2106    #[doc = " Floating point"]
2107    MLIL_FADD = 88,
2108    #[doc = " Floating point"]
2109    MLIL_FSUB = 89,
2110    #[doc = " Floating point"]
2111    MLIL_FMUL = 90,
2112    #[doc = " Floating point"]
2113    MLIL_FDIV = 91,
2114    #[doc = " Floating point"]
2115    MLIL_FSQRT = 92,
2116    #[doc = " Floating point"]
2117    MLIL_FNEG = 93,
2118    #[doc = " Floating point"]
2119    MLIL_FABS = 94,
2120    #[doc = " Floating point"]
2121    MLIL_FLOAT_TO_INT = 95,
2122    #[doc = " Floating point"]
2123    MLIL_INT_TO_FLOAT = 96,
2124    #[doc = " Floating point"]
2125    MLIL_FLOAT_CONV = 97,
2126    #[doc = " Floating point"]
2127    MLIL_ROUND_TO_INT = 98,
2128    #[doc = " Floating point"]
2129    MLIL_FLOOR = 99,
2130    #[doc = " Floating point"]
2131    MLIL_CEIL = 100,
2132    #[doc = " Floating point"]
2133    MLIL_FTRUNC = 101,
2134    #[doc = " Floating point"]
2135    MLIL_FCMP_E = 102,
2136    #[doc = " Floating point"]
2137    MLIL_FCMP_NE = 103,
2138    #[doc = " Floating point"]
2139    MLIL_FCMP_LT = 104,
2140    #[doc = " Floating point"]
2141    MLIL_FCMP_LE = 105,
2142    #[doc = " Floating point"]
2143    MLIL_FCMP_GE = 106,
2144    #[doc = " Floating point"]
2145    MLIL_FCMP_GT = 107,
2146    #[doc = " Floating point"]
2147    MLIL_FCMP_O = 108,
2148    #[doc = " Floating point"]
2149    MLIL_FCMP_UO = 109,
2150    #[doc = " The following instructions are only used in SSA form"]
2151    MLIL_SET_VAR_SSA = 110,
2152    #[doc = " The following instructions are only used in SSA form"]
2153    MLIL_SET_VAR_SSA_FIELD = 111,
2154    #[doc = " The following instructions are only used in SSA form"]
2155    MLIL_SET_VAR_SPLIT_SSA = 112,
2156    #[doc = " The following instructions are only used in SSA form"]
2157    MLIL_SET_VAR_ALIASED = 113,
2158    #[doc = " The following instructions are only used in SSA form"]
2159    MLIL_SET_VAR_ALIASED_FIELD = 114,
2160    #[doc = " The following instructions are only used in SSA form"]
2161    MLIL_VAR_SSA = 115,
2162    #[doc = " The following instructions are only used in SSA form"]
2163    MLIL_VAR_SSA_FIELD = 116,
2164    #[doc = " The following instructions are only used in SSA form"]
2165    MLIL_VAR_ALIASED = 117,
2166    #[doc = " The following instructions are only used in SSA form"]
2167    MLIL_VAR_ALIASED_FIELD = 118,
2168    #[doc = " The following instructions are only used in SSA form"]
2169    MLIL_VAR_SPLIT_SSA = 119,
2170    #[doc = " The following instructions are only used in SSA form"]
2171    MLIL_ASSERT_SSA = 120,
2172    #[doc = " The following instructions are only used in SSA form"]
2173    MLIL_FORCE_VER_SSA = 121,
2174    #[doc = " The following instructions are only used in SSA form"]
2175    MLIL_CALL_SSA = 122,
2176    #[doc = " The following instructions are only used in SSA form"]
2177    MLIL_CALL_UNTYPED_SSA = 123,
2178    #[doc = " The following instructions are only used in SSA form"]
2179    MLIL_SYSCALL_SSA = 124,
2180    #[doc = " The following instructions are only used in SSA form"]
2181    MLIL_SYSCALL_UNTYPED_SSA = 125,
2182    #[doc = " The following instructions are only used in SSA form"]
2183    MLIL_TAILCALL_SSA = 126,
2184    #[doc = " The following instructions are only used in SSA form"]
2185    MLIL_TAILCALL_UNTYPED_SSA = 127,
2186    #[doc = " Only valid within the MLIL_CALL_SSA, MLIL_SYSCALL_SSA, MLIL_TAILCALL_SSA, MLIL_INTRINSIC_SSA family\n instructions"]
2187    MLIL_CALL_PARAM_SSA = 128,
2188    #[doc = " Only valid within the MLIL_CALL_SSA or MLIL_SYSCALL_SSA, MLIL_TAILCALL_SSA family\n instructions"]
2189    MLIL_CALL_OUTPUT_SSA = 129,
2190    #[doc = " Only valid within the MLIL_MEMORY_INTRINSIC_SSA instruction"]
2191    MLIL_MEMORY_INTRINSIC_OUTPUT_SSA = 130,
2192    MLIL_LOAD_SSA = 131,
2193    MLIL_LOAD_STRUCT_SSA = 132,
2194    MLIL_STORE_SSA = 133,
2195    MLIL_STORE_STRUCT_SSA = 134,
2196    MLIL_INTRINSIC_SSA = 135,
2197    MLIL_MEMORY_INTRINSIC_SSA = 136,
2198    MLIL_FREE_VAR_SLOT_SSA = 137,
2199    MLIL_VAR_PHI = 138,
2200    MLIL_MEM_PHI = 139,
2201}
2202#[repr(C)]
2203#[derive(Debug, Copy, Clone)]
2204pub struct BNMediumLevelILInstruction {
2205    pub operation: BNMediumLevelILOperation,
2206    pub attributes: u32,
2207    pub sourceOperand: u32,
2208    pub size: usize,
2209    pub operands: [u64; 5usize],
2210    pub address: u64,
2211}
2212#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2213const _: () = {
2214    ["Size of BNMediumLevelILInstruction"]
2215        [::std::mem::size_of::<BNMediumLevelILInstruction>() - 72usize];
2216    ["Alignment of BNMediumLevelILInstruction"]
2217        [::std::mem::align_of::<BNMediumLevelILInstruction>() - 8usize];
2218    ["Offset of field: BNMediumLevelILInstruction::operation"]
2219        [::std::mem::offset_of!(BNMediumLevelILInstruction, operation) - 0usize];
2220    ["Offset of field: BNMediumLevelILInstruction::attributes"]
2221        [::std::mem::offset_of!(BNMediumLevelILInstruction, attributes) - 4usize];
2222    ["Offset of field: BNMediumLevelILInstruction::sourceOperand"]
2223        [::std::mem::offset_of!(BNMediumLevelILInstruction, sourceOperand) - 8usize];
2224    ["Offset of field: BNMediumLevelILInstruction::size"]
2225        [::std::mem::offset_of!(BNMediumLevelILInstruction, size) - 16usize];
2226    ["Offset of field: BNMediumLevelILInstruction::operands"]
2227        [::std::mem::offset_of!(BNMediumLevelILInstruction, operands) - 24usize];
2228    ["Offset of field: BNMediumLevelILInstruction::address"]
2229        [::std::mem::offset_of!(BNMediumLevelILInstruction, address) - 64usize];
2230};
2231impl Default for BNMediumLevelILInstruction {
2232    fn default() -> Self {
2233        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2234        unsafe {
2235            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2236            s.assume_init()
2237        }
2238    }
2239}
2240#[repr(C)]
2241#[derive(Debug, Default, Copy, Clone)]
2242pub struct BNMediumLevelILLabel {
2243    pub resolved: bool,
2244    pub ref_: usize,
2245    pub operand: usize,
2246}
2247#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2248const _: () = {
2249    ["Size of BNMediumLevelILLabel"][::std::mem::size_of::<BNMediumLevelILLabel>() - 24usize];
2250    ["Alignment of BNMediumLevelILLabel"][::std::mem::align_of::<BNMediumLevelILLabel>() - 8usize];
2251    ["Offset of field: BNMediumLevelILLabel::resolved"]
2252        [::std::mem::offset_of!(BNMediumLevelILLabel, resolved) - 0usize];
2253    ["Offset of field: BNMediumLevelILLabel::ref_"]
2254        [::std::mem::offset_of!(BNMediumLevelILLabel, ref_) - 8usize];
2255    ["Offset of field: BNMediumLevelILLabel::operand"]
2256        [::std::mem::offset_of!(BNMediumLevelILLabel, operand) - 16usize];
2257};
2258#[repr(u8)]
2259#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2260pub enum BNVariableSourceType {
2261    StackVariableSourceType = 0,
2262    RegisterVariableSourceType = 1,
2263    FlagVariableSourceType = 2,
2264}
2265#[repr(C)]
2266#[derive(Debug, Copy, Clone)]
2267pub struct BNVariable {
2268    pub type_: BNVariableSourceType,
2269    pub index: u32,
2270    pub storage: i64,
2271}
2272#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2273const _: () = {
2274    ["Size of BNVariable"][::std::mem::size_of::<BNVariable>() - 16usize];
2275    ["Alignment of BNVariable"][::std::mem::align_of::<BNVariable>() - 8usize];
2276    ["Offset of field: BNVariable::type_"][::std::mem::offset_of!(BNVariable, type_) - 0usize];
2277    ["Offset of field: BNVariable::index"][::std::mem::offset_of!(BNVariable, index) - 4usize];
2278    ["Offset of field: BNVariable::storage"][::std::mem::offset_of!(BNVariable, storage) - 8usize];
2279};
2280impl Default for BNVariable {
2281    fn default() -> Self {
2282        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2283        unsafe {
2284            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2285            s.assume_init()
2286        }
2287    }
2288}
2289#[repr(u8)]
2290#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2291pub enum BNHighLevelILOperation {
2292    HLIL_NOP = 0,
2293    HLIL_BLOCK = 1,
2294    HLIL_IF = 2,
2295    HLIL_WHILE = 3,
2296    HLIL_DO_WHILE = 4,
2297    HLIL_FOR = 5,
2298    HLIL_SWITCH = 6,
2299    HLIL_CASE = 7,
2300    HLIL_BREAK = 8,
2301    HLIL_CONTINUE = 9,
2302    HLIL_JUMP = 10,
2303    HLIL_RET = 11,
2304    HLIL_NORET = 12,
2305    HLIL_GOTO = 13,
2306    HLIL_LABEL = 14,
2307    HLIL_VAR_DECLARE = 15,
2308    HLIL_VAR_INIT = 16,
2309    HLIL_ASSIGN = 17,
2310    HLIL_ASSIGN_UNPACK = 18,
2311    HLIL_FORCE_VER = 19,
2312    HLIL_ASSERT = 20,
2313    HLIL_VAR = 21,
2314    HLIL_STRUCT_FIELD = 22,
2315    HLIL_ARRAY_INDEX = 23,
2316    HLIL_SPLIT = 24,
2317    HLIL_DEREF = 25,
2318    HLIL_DEREF_FIELD = 26,
2319    HLIL_ADDRESS_OF = 27,
2320    HLIL_CONST = 28,
2321    HLIL_CONST_DATA = 29,
2322    HLIL_CONST_PTR = 30,
2323    HLIL_EXTERN_PTR = 31,
2324    HLIL_FLOAT_CONST = 32,
2325    HLIL_IMPORT = 33,
2326    HLIL_ADD = 34,
2327    HLIL_ADC = 35,
2328    HLIL_SUB = 36,
2329    HLIL_SBB = 37,
2330    HLIL_AND = 38,
2331    HLIL_OR = 39,
2332    HLIL_XOR = 40,
2333    HLIL_LSL = 41,
2334    HLIL_LSR = 42,
2335    HLIL_ASR = 43,
2336    HLIL_ROL = 44,
2337    HLIL_RLC = 45,
2338    HLIL_ROR = 46,
2339    HLIL_RRC = 47,
2340    HLIL_MUL = 48,
2341    HLIL_MULU_DP = 49,
2342    HLIL_MULS_DP = 50,
2343    HLIL_DIVU = 51,
2344    HLIL_DIVU_DP = 52,
2345    HLIL_DIVS = 53,
2346    HLIL_DIVS_DP = 54,
2347    HLIL_MODU = 55,
2348    HLIL_MODU_DP = 56,
2349    HLIL_MODS = 57,
2350    HLIL_MODS_DP = 58,
2351    HLIL_NEG = 59,
2352    HLIL_NOT = 60,
2353    HLIL_SX = 61,
2354    HLIL_ZX = 62,
2355    HLIL_LOW_PART = 63,
2356    HLIL_CALL = 64,
2357    HLIL_CMP_E = 65,
2358    HLIL_CMP_NE = 66,
2359    HLIL_CMP_SLT = 67,
2360    HLIL_CMP_ULT = 68,
2361    HLIL_CMP_SLE = 69,
2362    HLIL_CMP_ULE = 70,
2363    HLIL_CMP_SGE = 71,
2364    HLIL_CMP_UGE = 72,
2365    HLIL_CMP_SGT = 73,
2366    HLIL_CMP_UGT = 74,
2367    HLIL_TEST_BIT = 75,
2368    HLIL_BOOL_TO_INT = 76,
2369    HLIL_ADD_OVERFLOW = 77,
2370    HLIL_SYSCALL = 78,
2371    HLIL_TAILCALL = 79,
2372    HLIL_INTRINSIC = 80,
2373    HLIL_BP = 81,
2374    HLIL_TRAP = 82,
2375    HLIL_UNDEF = 83,
2376    HLIL_UNIMPL = 84,
2377    HLIL_UNIMPL_MEM = 85,
2378    #[doc = " Floating point"]
2379    HLIL_FADD = 86,
2380    #[doc = " Floating point"]
2381    HLIL_FSUB = 87,
2382    #[doc = " Floating point"]
2383    HLIL_FMUL = 88,
2384    #[doc = " Floating point"]
2385    HLIL_FDIV = 89,
2386    #[doc = " Floating point"]
2387    HLIL_FSQRT = 90,
2388    #[doc = " Floating point"]
2389    HLIL_FNEG = 91,
2390    #[doc = " Floating point"]
2391    HLIL_FABS = 92,
2392    #[doc = " Floating point"]
2393    HLIL_FLOAT_TO_INT = 93,
2394    #[doc = " Floating point"]
2395    HLIL_INT_TO_FLOAT = 94,
2396    #[doc = " Floating point"]
2397    HLIL_FLOAT_CONV = 95,
2398    #[doc = " Floating point"]
2399    HLIL_ROUND_TO_INT = 96,
2400    #[doc = " Floating point"]
2401    HLIL_FLOOR = 97,
2402    #[doc = " Floating point"]
2403    HLIL_CEIL = 98,
2404    #[doc = " Floating point"]
2405    HLIL_FTRUNC = 99,
2406    #[doc = " Floating point"]
2407    HLIL_FCMP_E = 100,
2408    #[doc = " Floating point"]
2409    HLIL_FCMP_NE = 101,
2410    #[doc = " Floating point"]
2411    HLIL_FCMP_LT = 102,
2412    #[doc = " Floating point"]
2413    HLIL_FCMP_LE = 103,
2414    #[doc = " Floating point"]
2415    HLIL_FCMP_GE = 104,
2416    #[doc = " Floating point"]
2417    HLIL_FCMP_GT = 105,
2418    #[doc = " Floating point"]
2419    HLIL_FCMP_O = 106,
2420    #[doc = " Floating point"]
2421    HLIL_FCMP_UO = 107,
2422    #[doc = " Unreachable hint, typically used in switch statements that analysis knows\n has an unreachable default."]
2423    HLIL_UNREACHABLE = 108,
2424    #[doc = " The following instructions are only used in SSA form"]
2425    HLIL_WHILE_SSA = 109,
2426    #[doc = " The following instructions are only used in SSA form"]
2427    HLIL_DO_WHILE_SSA = 110,
2428    #[doc = " The following instructions are only used in SSA form"]
2429    HLIL_FOR_SSA = 111,
2430    #[doc = " The following instructions are only used in SSA form"]
2431    HLIL_VAR_INIT_SSA = 112,
2432    #[doc = " The following instructions are only used in SSA form"]
2433    HLIL_ASSIGN_MEM_SSA = 113,
2434    #[doc = " The following instructions are only used in SSA form"]
2435    HLIL_ASSIGN_UNPACK_MEM_SSA = 114,
2436    #[doc = " The following instructions are only used in SSA form"]
2437    HLIL_FORCE_VER_SSA = 115,
2438    #[doc = " The following instructions are only used in SSA form"]
2439    HLIL_ASSERT_SSA = 116,
2440    #[doc = " The following instructions are only used in SSA form"]
2441    HLIL_VAR_SSA = 117,
2442    #[doc = " The following instructions are only used in SSA form"]
2443    HLIL_ARRAY_INDEX_SSA = 118,
2444    #[doc = " The following instructions are only used in SSA form"]
2445    HLIL_DEREF_SSA = 119,
2446    #[doc = " The following instructions are only used in SSA form"]
2447    HLIL_DEREF_FIELD_SSA = 120,
2448    #[doc = " The following instructions are only used in SSA form"]
2449    HLIL_CALL_SSA = 121,
2450    #[doc = " The following instructions are only used in SSA form"]
2451    HLIL_SYSCALL_SSA = 122,
2452    #[doc = " The following instructions are only used in SSA form"]
2453    HLIL_INTRINSIC_SSA = 123,
2454    #[doc = " The following instructions are only used in SSA form"]
2455    HLIL_VAR_PHI = 124,
2456    #[doc = " The following instructions are only used in SSA form"]
2457    HLIL_MEM_PHI = 125,
2458}
2459#[repr(C)]
2460#[derive(Debug, Copy, Clone)]
2461pub struct BNHighLevelILInstruction {
2462    pub operation: BNHighLevelILOperation,
2463    pub attributes: u32,
2464    pub sourceOperand: u32,
2465    pub size: usize,
2466    pub operands: [u64; 5usize],
2467    pub address: u64,
2468    pub parent: usize,
2469}
2470#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2471const _: () = {
2472    ["Size of BNHighLevelILInstruction"]
2473        [::std::mem::size_of::<BNHighLevelILInstruction>() - 80usize];
2474    ["Alignment of BNHighLevelILInstruction"]
2475        [::std::mem::align_of::<BNHighLevelILInstruction>() - 8usize];
2476    ["Offset of field: BNHighLevelILInstruction::operation"]
2477        [::std::mem::offset_of!(BNHighLevelILInstruction, operation) - 0usize];
2478    ["Offset of field: BNHighLevelILInstruction::attributes"]
2479        [::std::mem::offset_of!(BNHighLevelILInstruction, attributes) - 4usize];
2480    ["Offset of field: BNHighLevelILInstruction::sourceOperand"]
2481        [::std::mem::offset_of!(BNHighLevelILInstruction, sourceOperand) - 8usize];
2482    ["Offset of field: BNHighLevelILInstruction::size"]
2483        [::std::mem::offset_of!(BNHighLevelILInstruction, size) - 16usize];
2484    ["Offset of field: BNHighLevelILInstruction::operands"]
2485        [::std::mem::offset_of!(BNHighLevelILInstruction, operands) - 24usize];
2486    ["Offset of field: BNHighLevelILInstruction::address"]
2487        [::std::mem::offset_of!(BNHighLevelILInstruction, address) - 64usize];
2488    ["Offset of field: BNHighLevelILInstruction::parent"]
2489        [::std::mem::offset_of!(BNHighLevelILInstruction, parent) - 72usize];
2490};
2491impl Default for BNHighLevelILInstruction {
2492    fn default() -> Self {
2493        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2494        unsafe {
2495            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2496            s.assume_init()
2497        }
2498    }
2499}
2500#[doc = " Callbacks"]
2501#[repr(C)]
2502#[derive(Debug, Copy, Clone)]
2503pub struct BNLogListener {
2504    pub context: *mut ::std::os::raw::c_void,
2505    pub log: ::std::option::Option<
2506        unsafe extern "C" fn(
2507            ctxt: *mut ::std::os::raw::c_void,
2508            sessionId: usize,
2509            level: BNLogLevel,
2510            msg: *const ::std::os::raw::c_char,
2511            logger_name: *const ::std::os::raw::c_char,
2512            tid: usize,
2513        ),
2514    >,
2515    pub logWithStackTrace: ::std::option::Option<
2516        unsafe extern "C" fn(
2517            ctxt: *mut ::std::os::raw::c_void,
2518            sessionId: usize,
2519            level: BNLogLevel,
2520            stackTrace: *const ::std::os::raw::c_char,
2521            msg: *const ::std::os::raw::c_char,
2522            logger_name: *const ::std::os::raw::c_char,
2523            tid: usize,
2524        ),
2525    >,
2526    pub close: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
2527    pub getLogLevel: ::std::option::Option<
2528        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> BNLogLevel,
2529    >,
2530}
2531#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2532const _: () = {
2533    ["Size of BNLogListener"][::std::mem::size_of::<BNLogListener>() - 40usize];
2534    ["Alignment of BNLogListener"][::std::mem::align_of::<BNLogListener>() - 8usize];
2535    ["Offset of field: BNLogListener::context"]
2536        [::std::mem::offset_of!(BNLogListener, context) - 0usize];
2537    ["Offset of field: BNLogListener::log"][::std::mem::offset_of!(BNLogListener, log) - 8usize];
2538    ["Offset of field: BNLogListener::logWithStackTrace"]
2539        [::std::mem::offset_of!(BNLogListener, logWithStackTrace) - 16usize];
2540    ["Offset of field: BNLogListener::close"]
2541        [::std::mem::offset_of!(BNLogListener, close) - 24usize];
2542    ["Offset of field: BNLogListener::getLogLevel"]
2543        [::std::mem::offset_of!(BNLogListener, getLogLevel) - 32usize];
2544};
2545impl Default for BNLogListener {
2546    fn default() -> Self {
2547        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2548        unsafe {
2549            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2550            s.assume_init()
2551        }
2552    }
2553}
2554#[repr(C)]
2555#[derive(Debug, Copy, Clone)]
2556pub struct BNNavigationHandler {
2557    pub context: *mut ::std::os::raw::c_void,
2558    pub getCurrentView: ::std::option::Option<
2559        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> *mut ::std::os::raw::c_char,
2560    >,
2561    pub getCurrentOffset:
2562        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> u64>,
2563    pub navigate: ::std::option::Option<
2564        unsafe extern "C" fn(
2565            ctxt: *mut ::std::os::raw::c_void,
2566            view: *const ::std::os::raw::c_char,
2567            offset: u64,
2568        ) -> bool,
2569    >,
2570}
2571#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2572const _: () = {
2573    ["Size of BNNavigationHandler"][::std::mem::size_of::<BNNavigationHandler>() - 32usize];
2574    ["Alignment of BNNavigationHandler"][::std::mem::align_of::<BNNavigationHandler>() - 8usize];
2575    ["Offset of field: BNNavigationHandler::context"]
2576        [::std::mem::offset_of!(BNNavigationHandler, context) - 0usize];
2577    ["Offset of field: BNNavigationHandler::getCurrentView"]
2578        [::std::mem::offset_of!(BNNavigationHandler, getCurrentView) - 8usize];
2579    ["Offset of field: BNNavigationHandler::getCurrentOffset"]
2580        [::std::mem::offset_of!(BNNavigationHandler, getCurrentOffset) - 16usize];
2581    ["Offset of field: BNNavigationHandler::navigate"]
2582        [::std::mem::offset_of!(BNNavigationHandler, navigate) - 24usize];
2583};
2584impl Default for BNNavigationHandler {
2585    fn default() -> Self {
2586        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2587        unsafe {
2588            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2589            s.assume_init()
2590        }
2591    }
2592}
2593#[repr(C)]
2594#[derive(Debug, Copy, Clone)]
2595pub struct BNNameSpace {
2596    pub name: *mut *mut ::std::os::raw::c_char,
2597    pub join: *mut ::std::os::raw::c_char,
2598    pub nameCount: usize,
2599}
2600#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2601const _: () = {
2602    ["Size of BNNameSpace"][::std::mem::size_of::<BNNameSpace>() - 24usize];
2603    ["Alignment of BNNameSpace"][::std::mem::align_of::<BNNameSpace>() - 8usize];
2604    ["Offset of field: BNNameSpace::name"][::std::mem::offset_of!(BNNameSpace, name) - 0usize];
2605    ["Offset of field: BNNameSpace::join"][::std::mem::offset_of!(BNNameSpace, join) - 8usize];
2606    ["Offset of field: BNNameSpace::nameCount"]
2607        [::std::mem::offset_of!(BNNameSpace, nameCount) - 16usize];
2608};
2609impl Default for BNNameSpace {
2610    fn default() -> Self {
2611        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2612        unsafe {
2613            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2614            s.assume_init()
2615        }
2616    }
2617}
2618#[repr(C)]
2619#[derive(Debug, Copy, Clone)]
2620pub struct BNQualifiedName {
2621    pub name: *mut *mut ::std::os::raw::c_char,
2622    pub join: *mut ::std::os::raw::c_char,
2623    pub nameCount: usize,
2624}
2625#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2626const _: () = {
2627    ["Size of BNQualifiedName"][::std::mem::size_of::<BNQualifiedName>() - 24usize];
2628    ["Alignment of BNQualifiedName"][::std::mem::align_of::<BNQualifiedName>() - 8usize];
2629    ["Offset of field: BNQualifiedName::name"]
2630        [::std::mem::offset_of!(BNQualifiedName, name) - 0usize];
2631    ["Offset of field: BNQualifiedName::join"]
2632        [::std::mem::offset_of!(BNQualifiedName, join) - 8usize];
2633    ["Offset of field: BNQualifiedName::nameCount"]
2634        [::std::mem::offset_of!(BNQualifiedName, nameCount) - 16usize];
2635};
2636impl Default for BNQualifiedName {
2637    fn default() -> Self {
2638        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2639        unsafe {
2640            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2641            s.assume_init()
2642        }
2643    }
2644}
2645#[repr(u8)]
2646#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2647pub enum BNDerivedStringLocationType {
2648    DataBackedStringLocation = 0,
2649    CodeStringLocation = 1,
2650}
2651#[repr(C)]
2652#[derive(Debug, Copy, Clone)]
2653pub struct BNDerivedStringLocation {
2654    pub locationType: BNDerivedStringLocationType,
2655    pub addr: u64,
2656    pub len: u64,
2657}
2658#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2659const _: () = {
2660    ["Size of BNDerivedStringLocation"][::std::mem::size_of::<BNDerivedStringLocation>() - 24usize];
2661    ["Alignment of BNDerivedStringLocation"]
2662        [::std::mem::align_of::<BNDerivedStringLocation>() - 8usize];
2663    ["Offset of field: BNDerivedStringLocation::locationType"]
2664        [::std::mem::offset_of!(BNDerivedStringLocation, locationType) - 0usize];
2665    ["Offset of field: BNDerivedStringLocation::addr"]
2666        [::std::mem::offset_of!(BNDerivedStringLocation, addr) - 8usize];
2667    ["Offset of field: BNDerivedStringLocation::len"]
2668        [::std::mem::offset_of!(BNDerivedStringLocation, len) - 16usize];
2669};
2670impl Default for BNDerivedStringLocation {
2671    fn default() -> Self {
2672        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2673        unsafe {
2674            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2675            s.assume_init()
2676        }
2677    }
2678}
2679#[repr(C)]
2680#[derive(Debug, Copy, Clone)]
2681pub struct BNDerivedString {
2682    pub value: *mut BNStringRef,
2683    pub locationValid: bool,
2684    pub location: BNDerivedStringLocation,
2685    pub customType: *mut BNCustomStringType,
2686}
2687#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2688const _: () = {
2689    ["Size of BNDerivedString"][::std::mem::size_of::<BNDerivedString>() - 48usize];
2690    ["Alignment of BNDerivedString"][::std::mem::align_of::<BNDerivedString>() - 8usize];
2691    ["Offset of field: BNDerivedString::value"]
2692        [::std::mem::offset_of!(BNDerivedString, value) - 0usize];
2693    ["Offset of field: BNDerivedString::locationValid"]
2694        [::std::mem::offset_of!(BNDerivedString, locationValid) - 8usize];
2695    ["Offset of field: BNDerivedString::location"]
2696        [::std::mem::offset_of!(BNDerivedString, location) - 16usize];
2697    ["Offset of field: BNDerivedString::customType"]
2698        [::std::mem::offset_of!(BNDerivedString, customType) - 40usize];
2699};
2700impl Default for BNDerivedString {
2701    fn default() -> Self {
2702        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2703        unsafe {
2704            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2705            s.assume_init()
2706        }
2707    }
2708}
2709#[repr(C)]
2710#[derive(Debug, Copy, Clone)]
2711pub struct BNBinaryDataNotification {
2712    pub context: *mut ::std::os::raw::c_void,
2713    pub notificationBarrier: ::std::option::Option<
2714        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, view: *mut BNBinaryView) -> u64,
2715    >,
2716    pub dataWritten: ::std::option::Option<
2717        unsafe extern "C" fn(
2718            ctxt: *mut ::std::os::raw::c_void,
2719            view: *mut BNBinaryView,
2720            offset: u64,
2721            len: usize,
2722        ),
2723    >,
2724    pub dataInserted: ::std::option::Option<
2725        unsafe extern "C" fn(
2726            ctxt: *mut ::std::os::raw::c_void,
2727            view: *mut BNBinaryView,
2728            offset: u64,
2729            len: usize,
2730        ),
2731    >,
2732    pub dataRemoved: ::std::option::Option<
2733        unsafe extern "C" fn(
2734            ctxt: *mut ::std::os::raw::c_void,
2735            view: *mut BNBinaryView,
2736            offset: u64,
2737            len: u64,
2738        ),
2739    >,
2740    pub functionAdded: ::std::option::Option<
2741        unsafe extern "C" fn(
2742            ctxt: *mut ::std::os::raw::c_void,
2743            view: *mut BNBinaryView,
2744            func: *mut BNFunction,
2745        ),
2746    >,
2747    pub functionRemoved: ::std::option::Option<
2748        unsafe extern "C" fn(
2749            ctxt: *mut ::std::os::raw::c_void,
2750            view: *mut BNBinaryView,
2751            func: *mut BNFunction,
2752        ),
2753    >,
2754    pub functionUpdated: ::std::option::Option<
2755        unsafe extern "C" fn(
2756            ctxt: *mut ::std::os::raw::c_void,
2757            view: *mut BNBinaryView,
2758            func: *mut BNFunction,
2759        ),
2760    >,
2761    pub functionUpdateRequested: ::std::option::Option<
2762        unsafe extern "C" fn(
2763            ctxt: *mut ::std::os::raw::c_void,
2764            view: *mut BNBinaryView,
2765            func: *mut BNFunction,
2766        ),
2767    >,
2768    pub dataVariableAdded: ::std::option::Option<
2769        unsafe extern "C" fn(
2770            ctxt: *mut ::std::os::raw::c_void,
2771            view: *mut BNBinaryView,
2772            var: *mut BNDataVariable,
2773        ),
2774    >,
2775    pub dataVariableRemoved: ::std::option::Option<
2776        unsafe extern "C" fn(
2777            ctxt: *mut ::std::os::raw::c_void,
2778            view: *mut BNBinaryView,
2779            var: *mut BNDataVariable,
2780        ),
2781    >,
2782    pub dataVariableUpdated: ::std::option::Option<
2783        unsafe extern "C" fn(
2784            ctxt: *mut ::std::os::raw::c_void,
2785            view: *mut BNBinaryView,
2786            var: *mut BNDataVariable,
2787        ),
2788    >,
2789    pub dataMetadataUpdated: ::std::option::Option<
2790        unsafe extern "C" fn(
2791            ctxt: *mut ::std::os::raw::c_void,
2792            view: *mut BNBinaryView,
2793            offset: u64,
2794        ),
2795    >,
2796    pub tagTypeUpdated: ::std::option::Option<
2797        unsafe extern "C" fn(
2798            ctxt: *mut ::std::os::raw::c_void,
2799            view: *mut BNBinaryView,
2800            tagType: *mut BNTagType,
2801        ),
2802    >,
2803    pub tagAdded: ::std::option::Option<
2804        unsafe extern "C" fn(
2805            ctxt: *mut ::std::os::raw::c_void,
2806            view: *mut BNBinaryView,
2807            tagRef: *mut BNTagReference,
2808        ),
2809    >,
2810    pub tagRemoved: ::std::option::Option<
2811        unsafe extern "C" fn(
2812            ctxt: *mut ::std::os::raw::c_void,
2813            view: *mut BNBinaryView,
2814            tagRef: *mut BNTagReference,
2815        ),
2816    >,
2817    pub tagUpdated: ::std::option::Option<
2818        unsafe extern "C" fn(
2819            ctxt: *mut ::std::os::raw::c_void,
2820            view: *mut BNBinaryView,
2821            tagRef: *mut BNTagReference,
2822        ),
2823    >,
2824    pub symbolAdded: ::std::option::Option<
2825        unsafe extern "C" fn(
2826            ctxt: *mut ::std::os::raw::c_void,
2827            view: *mut BNBinaryView,
2828            sym: *mut BNSymbol,
2829        ),
2830    >,
2831    pub symbolRemoved: ::std::option::Option<
2832        unsafe extern "C" fn(
2833            ctxt: *mut ::std::os::raw::c_void,
2834            view: *mut BNBinaryView,
2835            sym: *mut BNSymbol,
2836        ),
2837    >,
2838    pub symbolUpdated: ::std::option::Option<
2839        unsafe extern "C" fn(
2840            ctxt: *mut ::std::os::raw::c_void,
2841            view: *mut BNBinaryView,
2842            sym: *mut BNSymbol,
2843        ),
2844    >,
2845    pub stringFound: ::std::option::Option<
2846        unsafe extern "C" fn(
2847            ctxt: *mut ::std::os::raw::c_void,
2848            view: *mut BNBinaryView,
2849            type_: BNStringType,
2850            offset: u64,
2851            len: usize,
2852        ),
2853    >,
2854    pub stringRemoved: ::std::option::Option<
2855        unsafe extern "C" fn(
2856            ctxt: *mut ::std::os::raw::c_void,
2857            view: *mut BNBinaryView,
2858            type_: BNStringType,
2859            offset: u64,
2860            len: usize,
2861        ),
2862    >,
2863    pub derivedStringFound: ::std::option::Option<
2864        unsafe extern "C" fn(
2865            ctxt: *mut ::std::os::raw::c_void,
2866            view: *mut BNBinaryView,
2867            str_: *mut BNDerivedString,
2868        ),
2869    >,
2870    pub derivedStringRemoved: ::std::option::Option<
2871        unsafe extern "C" fn(
2872            ctxt: *mut ::std::os::raw::c_void,
2873            view: *mut BNBinaryView,
2874            str_: *mut BNDerivedString,
2875        ),
2876    >,
2877    pub typeDefined: ::std::option::Option<
2878        unsafe extern "C" fn(
2879            ctxt: *mut ::std::os::raw::c_void,
2880            view: *mut BNBinaryView,
2881            name: *mut BNQualifiedName,
2882            type_: *mut BNType,
2883        ),
2884    >,
2885    pub typeUndefined: ::std::option::Option<
2886        unsafe extern "C" fn(
2887            ctxt: *mut ::std::os::raw::c_void,
2888            view: *mut BNBinaryView,
2889            name: *mut BNQualifiedName,
2890            type_: *mut BNType,
2891        ),
2892    >,
2893    pub typeReferenceChanged: ::std::option::Option<
2894        unsafe extern "C" fn(
2895            ctxt: *mut ::std::os::raw::c_void,
2896            view: *mut BNBinaryView,
2897            name: *mut BNQualifiedName,
2898            type_: *mut BNType,
2899        ),
2900    >,
2901    pub typeFieldReferenceChanged: ::std::option::Option<
2902        unsafe extern "C" fn(
2903            ctxt: *mut ::std::os::raw::c_void,
2904            view: *mut BNBinaryView,
2905            name: *mut BNQualifiedName,
2906            offset: u64,
2907        ),
2908    >,
2909    pub segmentAdded: ::std::option::Option<
2910        unsafe extern "C" fn(
2911            ctxt: *mut ::std::os::raw::c_void,
2912            view: *mut BNBinaryView,
2913            segment: *mut BNSegment,
2914        ),
2915    >,
2916    pub segmentRemoved: ::std::option::Option<
2917        unsafe extern "C" fn(
2918            ctxt: *mut ::std::os::raw::c_void,
2919            view: *mut BNBinaryView,
2920            segment: *mut BNSegment,
2921        ),
2922    >,
2923    pub segmentUpdated: ::std::option::Option<
2924        unsafe extern "C" fn(
2925            ctxt: *mut ::std::os::raw::c_void,
2926            view: *mut BNBinaryView,
2927            segment: *mut BNSegment,
2928        ),
2929    >,
2930    pub sectionAdded: ::std::option::Option<
2931        unsafe extern "C" fn(
2932            ctxt: *mut ::std::os::raw::c_void,
2933            view: *mut BNBinaryView,
2934            section: *mut BNSection,
2935        ),
2936    >,
2937    pub sectionRemoved: ::std::option::Option<
2938        unsafe extern "C" fn(
2939            ctxt: *mut ::std::os::raw::c_void,
2940            view: *mut BNBinaryView,
2941            section: *mut BNSection,
2942        ),
2943    >,
2944    pub sectionUpdated: ::std::option::Option<
2945        unsafe extern "C" fn(
2946            ctxt: *mut ::std::os::raw::c_void,
2947            view: *mut BNBinaryView,
2948            section: *mut BNSection,
2949        ),
2950    >,
2951    pub componentNameUpdated: ::std::option::Option<
2952        unsafe extern "C" fn(
2953            ctxt: *mut ::std::os::raw::c_void,
2954            view: *mut BNBinaryView,
2955            previousName: *mut ::std::os::raw::c_char,
2956            component: *mut BNComponent,
2957        ),
2958    >,
2959    pub componentAdded: ::std::option::Option<
2960        unsafe extern "C" fn(
2961            ctxt: *mut ::std::os::raw::c_void,
2962            view: *mut BNBinaryView,
2963            component: *mut BNComponent,
2964        ),
2965    >,
2966    pub componentMoved: ::std::option::Option<
2967        unsafe extern "C" fn(
2968            ctxt: *mut ::std::os::raw::c_void,
2969            view: *mut BNBinaryView,
2970            formerParent: *mut BNComponent,
2971            newParent: *mut BNComponent,
2972            component: *mut BNComponent,
2973        ),
2974    >,
2975    pub componentRemoved: ::std::option::Option<
2976        unsafe extern "C" fn(
2977            ctxt: *mut ::std::os::raw::c_void,
2978            view: *mut BNBinaryView,
2979            formerParent: *mut BNComponent,
2980            component: *mut BNComponent,
2981        ),
2982    >,
2983    pub componentFunctionAdded: ::std::option::Option<
2984        unsafe extern "C" fn(
2985            ctxt: *mut ::std::os::raw::c_void,
2986            view: *mut BNBinaryView,
2987            component: *mut BNComponent,
2988            function: *mut BNFunction,
2989        ),
2990    >,
2991    pub componentFunctionRemoved: ::std::option::Option<
2992        unsafe extern "C" fn(
2993            ctxt: *mut ::std::os::raw::c_void,
2994            view: *mut BNBinaryView,
2995            component: *mut BNComponent,
2996            function: *mut BNFunction,
2997        ),
2998    >,
2999    pub componentDataVariableAdded: ::std::option::Option<
3000        unsafe extern "C" fn(
3001            ctxt: *mut ::std::os::raw::c_void,
3002            view: *mut BNBinaryView,
3003            component: *mut BNComponent,
3004            var: *mut BNDataVariable,
3005        ),
3006    >,
3007    pub componentDataVariableRemoved: ::std::option::Option<
3008        unsafe extern "C" fn(
3009            ctxt: *mut ::std::os::raw::c_void,
3010            view: *mut BNBinaryView,
3011            component: *mut BNComponent,
3012            var: *mut BNDataVariable,
3013        ),
3014    >,
3015    pub externalLibraryAdded: ::std::option::Option<
3016        unsafe extern "C" fn(
3017            ctxt: *mut ::std::os::raw::c_void,
3018            data: *mut BNBinaryView,
3019            library: *mut BNExternalLibrary,
3020        ),
3021    >,
3022    pub externalLibraryUpdated: ::std::option::Option<
3023        unsafe extern "C" fn(
3024            ctxt: *mut ::std::os::raw::c_void,
3025            data: *mut BNBinaryView,
3026            library: *mut BNExternalLibrary,
3027        ),
3028    >,
3029    pub externalLibraryRemoved: ::std::option::Option<
3030        unsafe extern "C" fn(
3031            ctxt: *mut ::std::os::raw::c_void,
3032            data: *mut BNBinaryView,
3033            library: *mut BNExternalLibrary,
3034        ),
3035    >,
3036    pub externalLocationAdded: ::std::option::Option<
3037        unsafe extern "C" fn(
3038            ctxt: *mut ::std::os::raw::c_void,
3039            data: *mut BNBinaryView,
3040            location: *mut BNExternalLocation,
3041        ),
3042    >,
3043    pub externalLocationUpdated: ::std::option::Option<
3044        unsafe extern "C" fn(
3045            ctxt: *mut ::std::os::raw::c_void,
3046            data: *mut BNBinaryView,
3047            location: *mut BNExternalLocation,
3048        ),
3049    >,
3050    pub externalLocationRemoved: ::std::option::Option<
3051        unsafe extern "C" fn(
3052            ctxt: *mut ::std::os::raw::c_void,
3053            data: *mut BNBinaryView,
3054            location: *mut BNExternalLocation,
3055        ),
3056    >,
3057    pub typeArchiveAttached: ::std::option::Option<
3058        unsafe extern "C" fn(
3059            ctxt: *mut ::std::os::raw::c_void,
3060            view: *mut BNBinaryView,
3061            id: *const ::std::os::raw::c_char,
3062            path: *const ::std::os::raw::c_char,
3063        ),
3064    >,
3065    pub typeArchiveDetached: ::std::option::Option<
3066        unsafe extern "C" fn(
3067            ctxt: *mut ::std::os::raw::c_void,
3068            view: *mut BNBinaryView,
3069            id: *const ::std::os::raw::c_char,
3070            path: *const ::std::os::raw::c_char,
3071        ),
3072    >,
3073    pub typeArchiveConnected: ::std::option::Option<
3074        unsafe extern "C" fn(
3075            ctxt: *mut ::std::os::raw::c_void,
3076            view: *mut BNBinaryView,
3077            archive: *mut BNTypeArchive,
3078        ),
3079    >,
3080    pub typeArchiveDisconnected: ::std::option::Option<
3081        unsafe extern "C" fn(
3082            ctxt: *mut ::std::os::raw::c_void,
3083            view: *mut BNBinaryView,
3084            archive: *mut BNTypeArchive,
3085        ),
3086    >,
3087    pub undoEntryAdded: ::std::option::Option<
3088        unsafe extern "C" fn(
3089            ctxt: *mut ::std::os::raw::c_void,
3090            view: *mut BNBinaryView,
3091            entry: *mut BNUndoEntry,
3092        ),
3093    >,
3094    pub undoEntryTaken: ::std::option::Option<
3095        unsafe extern "C" fn(
3096            ctxt: *mut ::std::os::raw::c_void,
3097            view: *mut BNBinaryView,
3098            entry: *mut BNUndoEntry,
3099        ),
3100    >,
3101    pub redoEntryTaken: ::std::option::Option<
3102        unsafe extern "C" fn(
3103            ctxt: *mut ::std::os::raw::c_void,
3104            view: *mut BNBinaryView,
3105            entry: *mut BNUndoEntry,
3106        ),
3107    >,
3108    pub rebased: ::std::option::Option<
3109        unsafe extern "C" fn(
3110            ctxt: *mut ::std::os::raw::c_void,
3111            oldView: *mut BNBinaryView,
3112            newView: *mut BNBinaryView,
3113        ),
3114    >,
3115}
3116#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3117const _: () = {
3118    ["Size of BNBinaryDataNotification"]
3119        [::std::mem::size_of::<BNBinaryDataNotification>() - 448usize];
3120    ["Alignment of BNBinaryDataNotification"]
3121        [::std::mem::align_of::<BNBinaryDataNotification>() - 8usize];
3122    ["Offset of field: BNBinaryDataNotification::context"]
3123        [::std::mem::offset_of!(BNBinaryDataNotification, context) - 0usize];
3124    ["Offset of field: BNBinaryDataNotification::notificationBarrier"]
3125        [::std::mem::offset_of!(BNBinaryDataNotification, notificationBarrier) - 8usize];
3126    ["Offset of field: BNBinaryDataNotification::dataWritten"]
3127        [::std::mem::offset_of!(BNBinaryDataNotification, dataWritten) - 16usize];
3128    ["Offset of field: BNBinaryDataNotification::dataInserted"]
3129        [::std::mem::offset_of!(BNBinaryDataNotification, dataInserted) - 24usize];
3130    ["Offset of field: BNBinaryDataNotification::dataRemoved"]
3131        [::std::mem::offset_of!(BNBinaryDataNotification, dataRemoved) - 32usize];
3132    ["Offset of field: BNBinaryDataNotification::functionAdded"]
3133        [::std::mem::offset_of!(BNBinaryDataNotification, functionAdded) - 40usize];
3134    ["Offset of field: BNBinaryDataNotification::functionRemoved"]
3135        [::std::mem::offset_of!(BNBinaryDataNotification, functionRemoved) - 48usize];
3136    ["Offset of field: BNBinaryDataNotification::functionUpdated"]
3137        [::std::mem::offset_of!(BNBinaryDataNotification, functionUpdated) - 56usize];
3138    ["Offset of field: BNBinaryDataNotification::functionUpdateRequested"]
3139        [::std::mem::offset_of!(BNBinaryDataNotification, functionUpdateRequested) - 64usize];
3140    ["Offset of field: BNBinaryDataNotification::dataVariableAdded"]
3141        [::std::mem::offset_of!(BNBinaryDataNotification, dataVariableAdded) - 72usize];
3142    ["Offset of field: BNBinaryDataNotification::dataVariableRemoved"]
3143        [::std::mem::offset_of!(BNBinaryDataNotification, dataVariableRemoved) - 80usize];
3144    ["Offset of field: BNBinaryDataNotification::dataVariableUpdated"]
3145        [::std::mem::offset_of!(BNBinaryDataNotification, dataVariableUpdated) - 88usize];
3146    ["Offset of field: BNBinaryDataNotification::dataMetadataUpdated"]
3147        [::std::mem::offset_of!(BNBinaryDataNotification, dataMetadataUpdated) - 96usize];
3148    ["Offset of field: BNBinaryDataNotification::tagTypeUpdated"]
3149        [::std::mem::offset_of!(BNBinaryDataNotification, tagTypeUpdated) - 104usize];
3150    ["Offset of field: BNBinaryDataNotification::tagAdded"]
3151        [::std::mem::offset_of!(BNBinaryDataNotification, tagAdded) - 112usize];
3152    ["Offset of field: BNBinaryDataNotification::tagRemoved"]
3153        [::std::mem::offset_of!(BNBinaryDataNotification, tagRemoved) - 120usize];
3154    ["Offset of field: BNBinaryDataNotification::tagUpdated"]
3155        [::std::mem::offset_of!(BNBinaryDataNotification, tagUpdated) - 128usize];
3156    ["Offset of field: BNBinaryDataNotification::symbolAdded"]
3157        [::std::mem::offset_of!(BNBinaryDataNotification, symbolAdded) - 136usize];
3158    ["Offset of field: BNBinaryDataNotification::symbolRemoved"]
3159        [::std::mem::offset_of!(BNBinaryDataNotification, symbolRemoved) - 144usize];
3160    ["Offset of field: BNBinaryDataNotification::symbolUpdated"]
3161        [::std::mem::offset_of!(BNBinaryDataNotification, symbolUpdated) - 152usize];
3162    ["Offset of field: BNBinaryDataNotification::stringFound"]
3163        [::std::mem::offset_of!(BNBinaryDataNotification, stringFound) - 160usize];
3164    ["Offset of field: BNBinaryDataNotification::stringRemoved"]
3165        [::std::mem::offset_of!(BNBinaryDataNotification, stringRemoved) - 168usize];
3166    ["Offset of field: BNBinaryDataNotification::derivedStringFound"]
3167        [::std::mem::offset_of!(BNBinaryDataNotification, derivedStringFound) - 176usize];
3168    ["Offset of field: BNBinaryDataNotification::derivedStringRemoved"]
3169        [::std::mem::offset_of!(BNBinaryDataNotification, derivedStringRemoved) - 184usize];
3170    ["Offset of field: BNBinaryDataNotification::typeDefined"]
3171        [::std::mem::offset_of!(BNBinaryDataNotification, typeDefined) - 192usize];
3172    ["Offset of field: BNBinaryDataNotification::typeUndefined"]
3173        [::std::mem::offset_of!(BNBinaryDataNotification, typeUndefined) - 200usize];
3174    ["Offset of field: BNBinaryDataNotification::typeReferenceChanged"]
3175        [::std::mem::offset_of!(BNBinaryDataNotification, typeReferenceChanged) - 208usize];
3176    ["Offset of field: BNBinaryDataNotification::typeFieldReferenceChanged"]
3177        [::std::mem::offset_of!(BNBinaryDataNotification, typeFieldReferenceChanged) - 216usize];
3178    ["Offset of field: BNBinaryDataNotification::segmentAdded"]
3179        [::std::mem::offset_of!(BNBinaryDataNotification, segmentAdded) - 224usize];
3180    ["Offset of field: BNBinaryDataNotification::segmentRemoved"]
3181        [::std::mem::offset_of!(BNBinaryDataNotification, segmentRemoved) - 232usize];
3182    ["Offset of field: BNBinaryDataNotification::segmentUpdated"]
3183        [::std::mem::offset_of!(BNBinaryDataNotification, segmentUpdated) - 240usize];
3184    ["Offset of field: BNBinaryDataNotification::sectionAdded"]
3185        [::std::mem::offset_of!(BNBinaryDataNotification, sectionAdded) - 248usize];
3186    ["Offset of field: BNBinaryDataNotification::sectionRemoved"]
3187        [::std::mem::offset_of!(BNBinaryDataNotification, sectionRemoved) - 256usize];
3188    ["Offset of field: BNBinaryDataNotification::sectionUpdated"]
3189        [::std::mem::offset_of!(BNBinaryDataNotification, sectionUpdated) - 264usize];
3190    ["Offset of field: BNBinaryDataNotification::componentNameUpdated"]
3191        [::std::mem::offset_of!(BNBinaryDataNotification, componentNameUpdated) - 272usize];
3192    ["Offset of field: BNBinaryDataNotification::componentAdded"]
3193        [::std::mem::offset_of!(BNBinaryDataNotification, componentAdded) - 280usize];
3194    ["Offset of field: BNBinaryDataNotification::componentMoved"]
3195        [::std::mem::offset_of!(BNBinaryDataNotification, componentMoved) - 288usize];
3196    ["Offset of field: BNBinaryDataNotification::componentRemoved"]
3197        [::std::mem::offset_of!(BNBinaryDataNotification, componentRemoved) - 296usize];
3198    ["Offset of field: BNBinaryDataNotification::componentFunctionAdded"]
3199        [::std::mem::offset_of!(BNBinaryDataNotification, componentFunctionAdded) - 304usize];
3200    ["Offset of field: BNBinaryDataNotification::componentFunctionRemoved"]
3201        [::std::mem::offset_of!(BNBinaryDataNotification, componentFunctionRemoved) - 312usize];
3202    ["Offset of field: BNBinaryDataNotification::componentDataVariableAdded"]
3203        [::std::mem::offset_of!(BNBinaryDataNotification, componentDataVariableAdded) - 320usize];
3204    ["Offset of field: BNBinaryDataNotification::componentDataVariableRemoved"]
3205        [::std::mem::offset_of!(BNBinaryDataNotification, componentDataVariableRemoved) - 328usize];
3206    ["Offset of field: BNBinaryDataNotification::externalLibraryAdded"]
3207        [::std::mem::offset_of!(BNBinaryDataNotification, externalLibraryAdded) - 336usize];
3208    ["Offset of field: BNBinaryDataNotification::externalLibraryUpdated"]
3209        [::std::mem::offset_of!(BNBinaryDataNotification, externalLibraryUpdated) - 344usize];
3210    ["Offset of field: BNBinaryDataNotification::externalLibraryRemoved"]
3211        [::std::mem::offset_of!(BNBinaryDataNotification, externalLibraryRemoved) - 352usize];
3212    ["Offset of field: BNBinaryDataNotification::externalLocationAdded"]
3213        [::std::mem::offset_of!(BNBinaryDataNotification, externalLocationAdded) - 360usize];
3214    ["Offset of field: BNBinaryDataNotification::externalLocationUpdated"]
3215        [::std::mem::offset_of!(BNBinaryDataNotification, externalLocationUpdated) - 368usize];
3216    ["Offset of field: BNBinaryDataNotification::externalLocationRemoved"]
3217        [::std::mem::offset_of!(BNBinaryDataNotification, externalLocationRemoved) - 376usize];
3218    ["Offset of field: BNBinaryDataNotification::typeArchiveAttached"]
3219        [::std::mem::offset_of!(BNBinaryDataNotification, typeArchiveAttached) - 384usize];
3220    ["Offset of field: BNBinaryDataNotification::typeArchiveDetached"]
3221        [::std::mem::offset_of!(BNBinaryDataNotification, typeArchiveDetached) - 392usize];
3222    ["Offset of field: BNBinaryDataNotification::typeArchiveConnected"]
3223        [::std::mem::offset_of!(BNBinaryDataNotification, typeArchiveConnected) - 400usize];
3224    ["Offset of field: BNBinaryDataNotification::typeArchiveDisconnected"]
3225        [::std::mem::offset_of!(BNBinaryDataNotification, typeArchiveDisconnected) - 408usize];
3226    ["Offset of field: BNBinaryDataNotification::undoEntryAdded"]
3227        [::std::mem::offset_of!(BNBinaryDataNotification, undoEntryAdded) - 416usize];
3228    ["Offset of field: BNBinaryDataNotification::undoEntryTaken"]
3229        [::std::mem::offset_of!(BNBinaryDataNotification, undoEntryTaken) - 424usize];
3230    ["Offset of field: BNBinaryDataNotification::redoEntryTaken"]
3231        [::std::mem::offset_of!(BNBinaryDataNotification, redoEntryTaken) - 432usize];
3232    ["Offset of field: BNBinaryDataNotification::rebased"]
3233        [::std::mem::offset_of!(BNBinaryDataNotification, rebased) - 440usize];
3234};
3235impl Default for BNBinaryDataNotification {
3236    fn default() -> Self {
3237        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3238        unsafe {
3239            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3240            s.assume_init()
3241        }
3242    }
3243}
3244#[repr(C)]
3245#[derive(Debug, Copy, Clone)]
3246pub struct BNProjectNotification {
3247    pub context: *mut ::std::os::raw::c_void,
3248    pub beforeOpenProject: ::std::option::Option<
3249        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, project: *mut BNProject) -> bool,
3250    >,
3251    pub afterOpenProject: ::std::option::Option<
3252        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, project: *mut BNProject),
3253    >,
3254    pub beforeCloseProject: ::std::option::Option<
3255        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, project: *mut BNProject) -> bool,
3256    >,
3257    pub afterCloseProject: ::std::option::Option<
3258        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, project: *mut BNProject),
3259    >,
3260    pub beforeProjectMetadataWritten: ::std::option::Option<
3261        unsafe extern "C" fn(
3262            ctxt: *mut ::std::os::raw::c_void,
3263            project: *mut BNProject,
3264            key: *mut ::std::os::raw::c_char,
3265            value: *mut BNMetadata,
3266        ) -> bool,
3267    >,
3268    pub afterProjectMetadataWritten: ::std::option::Option<
3269        unsafe extern "C" fn(
3270            ctxt: *mut ::std::os::raw::c_void,
3271            project: *mut BNProject,
3272            key: *mut ::std::os::raw::c_char,
3273            value: *mut BNMetadata,
3274        ),
3275    >,
3276    pub beforeProjectFileCreated: ::std::option::Option<
3277        unsafe extern "C" fn(
3278            ctxt: *mut ::std::os::raw::c_void,
3279            project: *mut BNProject,
3280            projectFile: *mut BNProjectFile,
3281        ) -> bool,
3282    >,
3283    pub afterProjectFileCreated: ::std::option::Option<
3284        unsafe extern "C" fn(
3285            ctxt: *mut ::std::os::raw::c_void,
3286            project: *mut BNProject,
3287            projectFile: *mut BNProjectFile,
3288        ),
3289    >,
3290    pub beforeProjectFileUpdated: ::std::option::Option<
3291        unsafe extern "C" fn(
3292            ctxt: *mut ::std::os::raw::c_void,
3293            project: *mut BNProject,
3294            projectFile: *mut BNProjectFile,
3295        ) -> bool,
3296    >,
3297    pub afterProjectFileUpdated: ::std::option::Option<
3298        unsafe extern "C" fn(
3299            ctxt: *mut ::std::os::raw::c_void,
3300            project: *mut BNProject,
3301            projectFile: *mut BNProjectFile,
3302        ),
3303    >,
3304    pub beforeProjectFileDeleted: ::std::option::Option<
3305        unsafe extern "C" fn(
3306            ctxt: *mut ::std::os::raw::c_void,
3307            project: *mut BNProject,
3308            projectFile: *mut BNProjectFile,
3309        ) -> bool,
3310    >,
3311    pub afterProjectFileDeleted: ::std::option::Option<
3312        unsafe extern "C" fn(
3313            ctxt: *mut ::std::os::raw::c_void,
3314            project: *mut BNProject,
3315            projectFile: *mut BNProjectFile,
3316        ),
3317    >,
3318    pub beforeProjectFolderCreated: ::std::option::Option<
3319        unsafe extern "C" fn(
3320            ctxt: *mut ::std::os::raw::c_void,
3321            project: *mut BNProject,
3322            projectFolder: *mut BNProjectFolder,
3323        ) -> bool,
3324    >,
3325    pub afterProjectFolderCreated: ::std::option::Option<
3326        unsafe extern "C" fn(
3327            ctxt: *mut ::std::os::raw::c_void,
3328            project: *mut BNProject,
3329            projectFolder: *mut BNProjectFolder,
3330        ),
3331    >,
3332    pub beforeProjectFolderUpdated: ::std::option::Option<
3333        unsafe extern "C" fn(
3334            ctxt: *mut ::std::os::raw::c_void,
3335            project: *mut BNProject,
3336            projectFolder: *mut BNProjectFolder,
3337        ) -> bool,
3338    >,
3339    pub afterProjectFolderUpdated: ::std::option::Option<
3340        unsafe extern "C" fn(
3341            ctxt: *mut ::std::os::raw::c_void,
3342            project: *mut BNProject,
3343            projectFolder: *mut BNProjectFolder,
3344        ),
3345    >,
3346    pub beforeProjectFolderDeleted: ::std::option::Option<
3347        unsafe extern "C" fn(
3348            ctxt: *mut ::std::os::raw::c_void,
3349            project: *mut BNProject,
3350            projectFolder: *mut BNProjectFolder,
3351        ) -> bool,
3352    >,
3353    pub afterProjectFolderDeleted: ::std::option::Option<
3354        unsafe extern "C" fn(
3355            ctxt: *mut ::std::os::raw::c_void,
3356            project: *mut BNProject,
3357            projectFolder: *mut BNProjectFolder,
3358        ),
3359    >,
3360}
3361#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3362const _: () = {
3363    ["Size of BNProjectNotification"][::std::mem::size_of::<BNProjectNotification>() - 152usize];
3364    ["Alignment of BNProjectNotification"]
3365        [::std::mem::align_of::<BNProjectNotification>() - 8usize];
3366    ["Offset of field: BNProjectNotification::context"]
3367        [::std::mem::offset_of!(BNProjectNotification, context) - 0usize];
3368    ["Offset of field: BNProjectNotification::beforeOpenProject"]
3369        [::std::mem::offset_of!(BNProjectNotification, beforeOpenProject) - 8usize];
3370    ["Offset of field: BNProjectNotification::afterOpenProject"]
3371        [::std::mem::offset_of!(BNProjectNotification, afterOpenProject) - 16usize];
3372    ["Offset of field: BNProjectNotification::beforeCloseProject"]
3373        [::std::mem::offset_of!(BNProjectNotification, beforeCloseProject) - 24usize];
3374    ["Offset of field: BNProjectNotification::afterCloseProject"]
3375        [::std::mem::offset_of!(BNProjectNotification, afterCloseProject) - 32usize];
3376    ["Offset of field: BNProjectNotification::beforeProjectMetadataWritten"]
3377        [::std::mem::offset_of!(BNProjectNotification, beforeProjectMetadataWritten) - 40usize];
3378    ["Offset of field: BNProjectNotification::afterProjectMetadataWritten"]
3379        [::std::mem::offset_of!(BNProjectNotification, afterProjectMetadataWritten) - 48usize];
3380    ["Offset of field: BNProjectNotification::beforeProjectFileCreated"]
3381        [::std::mem::offset_of!(BNProjectNotification, beforeProjectFileCreated) - 56usize];
3382    ["Offset of field: BNProjectNotification::afterProjectFileCreated"]
3383        [::std::mem::offset_of!(BNProjectNotification, afterProjectFileCreated) - 64usize];
3384    ["Offset of field: BNProjectNotification::beforeProjectFileUpdated"]
3385        [::std::mem::offset_of!(BNProjectNotification, beforeProjectFileUpdated) - 72usize];
3386    ["Offset of field: BNProjectNotification::afterProjectFileUpdated"]
3387        [::std::mem::offset_of!(BNProjectNotification, afterProjectFileUpdated) - 80usize];
3388    ["Offset of field: BNProjectNotification::beforeProjectFileDeleted"]
3389        [::std::mem::offset_of!(BNProjectNotification, beforeProjectFileDeleted) - 88usize];
3390    ["Offset of field: BNProjectNotification::afterProjectFileDeleted"]
3391        [::std::mem::offset_of!(BNProjectNotification, afterProjectFileDeleted) - 96usize];
3392    ["Offset of field: BNProjectNotification::beforeProjectFolderCreated"]
3393        [::std::mem::offset_of!(BNProjectNotification, beforeProjectFolderCreated) - 104usize];
3394    ["Offset of field: BNProjectNotification::afterProjectFolderCreated"]
3395        [::std::mem::offset_of!(BNProjectNotification, afterProjectFolderCreated) - 112usize];
3396    ["Offset of field: BNProjectNotification::beforeProjectFolderUpdated"]
3397        [::std::mem::offset_of!(BNProjectNotification, beforeProjectFolderUpdated) - 120usize];
3398    ["Offset of field: BNProjectNotification::afterProjectFolderUpdated"]
3399        [::std::mem::offset_of!(BNProjectNotification, afterProjectFolderUpdated) - 128usize];
3400    ["Offset of field: BNProjectNotification::beforeProjectFolderDeleted"]
3401        [::std::mem::offset_of!(BNProjectNotification, beforeProjectFolderDeleted) - 136usize];
3402    ["Offset of field: BNProjectNotification::afterProjectFolderDeleted"]
3403        [::std::mem::offset_of!(BNProjectNotification, afterProjectFolderDeleted) - 144usize];
3404};
3405impl Default for BNProjectNotification {
3406    fn default() -> Self {
3407        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3408        unsafe {
3409            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3410            s.assume_init()
3411        }
3412    }
3413}
3414#[repr(C)]
3415#[derive(Debug, Copy, Clone)]
3416pub struct BNFileAccessor {
3417    pub context: *mut ::std::os::raw::c_void,
3418    pub getLength:
3419        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> u64>,
3420    pub read: ::std::option::Option<
3421        unsafe extern "C" fn(
3422            ctxt: *mut ::std::os::raw::c_void,
3423            dest: *mut ::std::os::raw::c_void,
3424            offset: u64,
3425            len: usize,
3426        ) -> usize,
3427    >,
3428    pub write: ::std::option::Option<
3429        unsafe extern "C" fn(
3430            ctxt: *mut ::std::os::raw::c_void,
3431            offset: u64,
3432            src: *const ::std::os::raw::c_void,
3433            len: usize,
3434        ) -> usize,
3435    >,
3436}
3437#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3438const _: () = {
3439    ["Size of BNFileAccessor"][::std::mem::size_of::<BNFileAccessor>() - 32usize];
3440    ["Alignment of BNFileAccessor"][::std::mem::align_of::<BNFileAccessor>() - 8usize];
3441    ["Offset of field: BNFileAccessor::context"]
3442        [::std::mem::offset_of!(BNFileAccessor, context) - 0usize];
3443    ["Offset of field: BNFileAccessor::getLength"]
3444        [::std::mem::offset_of!(BNFileAccessor, getLength) - 8usize];
3445    ["Offset of field: BNFileAccessor::read"]
3446        [::std::mem::offset_of!(BNFileAccessor, read) - 16usize];
3447    ["Offset of field: BNFileAccessor::write"]
3448        [::std::mem::offset_of!(BNFileAccessor, write) - 24usize];
3449};
3450impl Default for BNFileAccessor {
3451    fn default() -> Self {
3452        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3453        unsafe {
3454            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3455            s.assume_init()
3456        }
3457    }
3458}
3459#[repr(C)]
3460#[derive(Debug, Copy, Clone)]
3461pub struct BNCustomBinaryView {
3462    pub context: *mut ::std::os::raw::c_void,
3463    pub init:
3464        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
3465    pub freeObject: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
3466    pub externalRefTaken:
3467        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
3468    pub externalRefReleased:
3469        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
3470    pub read: ::std::option::Option<
3471        unsafe extern "C" fn(
3472            ctxt: *mut ::std::os::raw::c_void,
3473            dest: *mut ::std::os::raw::c_void,
3474            offset: u64,
3475            len: usize,
3476        ) -> usize,
3477    >,
3478    pub write: ::std::option::Option<
3479        unsafe extern "C" fn(
3480            ctxt: *mut ::std::os::raw::c_void,
3481            offset: u64,
3482            src: *const ::std::os::raw::c_void,
3483            len: usize,
3484        ) -> usize,
3485    >,
3486    pub insert: ::std::option::Option<
3487        unsafe extern "C" fn(
3488            ctxt: *mut ::std::os::raw::c_void,
3489            offset: u64,
3490            src: *const ::std::os::raw::c_void,
3491            len: usize,
3492        ) -> usize,
3493    >,
3494    pub remove: ::std::option::Option<
3495        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, offset: u64, len: u64) -> usize,
3496    >,
3497    pub getModification: ::std::option::Option<
3498        unsafe extern "C" fn(
3499            ctxt: *mut ::std::os::raw::c_void,
3500            offset: u64,
3501        ) -> BNModificationStatus,
3502    >,
3503    pub isValidOffset: ::std::option::Option<
3504        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, offset: u64) -> bool,
3505    >,
3506    pub isOffsetReadable: ::std::option::Option<
3507        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, offset: u64) -> bool,
3508    >,
3509    pub isOffsetWritable: ::std::option::Option<
3510        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, offset: u64) -> bool,
3511    >,
3512    pub isOffsetExecutable: ::std::option::Option<
3513        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, offset: u64) -> bool,
3514    >,
3515    pub isOffsetBackedByFile: ::std::option::Option<
3516        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, offset: u64) -> bool,
3517    >,
3518    pub getNextValidOffset: ::std::option::Option<
3519        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, offset: u64) -> u64,
3520    >,
3521    pub getStart:
3522        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> u64>,
3523    pub getLength:
3524        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> u64>,
3525    pub getEntryPoint:
3526        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> u64>,
3527    pub isExecutable:
3528        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
3529    pub getDefaultEndianness: ::std::option::Option<
3530        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> BNEndianness,
3531    >,
3532    pub isRelocatable:
3533        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
3534    pub getAddressSize:
3535        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> usize>,
3536    pub save: ::std::option::Option<
3537        unsafe extern "C" fn(
3538            ctxt: *mut ::std::os::raw::c_void,
3539            accessor: *mut BNFileAccessor,
3540        ) -> bool,
3541    >,
3542    pub onAfterSnapshotDataApplied:
3543        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
3544}
3545#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3546const _: () = {
3547    ["Size of BNCustomBinaryView"][::std::mem::size_of::<BNCustomBinaryView>() - 200usize];
3548    ["Alignment of BNCustomBinaryView"][::std::mem::align_of::<BNCustomBinaryView>() - 8usize];
3549    ["Offset of field: BNCustomBinaryView::context"]
3550        [::std::mem::offset_of!(BNCustomBinaryView, context) - 0usize];
3551    ["Offset of field: BNCustomBinaryView::init"]
3552        [::std::mem::offset_of!(BNCustomBinaryView, init) - 8usize];
3553    ["Offset of field: BNCustomBinaryView::freeObject"]
3554        [::std::mem::offset_of!(BNCustomBinaryView, freeObject) - 16usize];
3555    ["Offset of field: BNCustomBinaryView::externalRefTaken"]
3556        [::std::mem::offset_of!(BNCustomBinaryView, externalRefTaken) - 24usize];
3557    ["Offset of field: BNCustomBinaryView::externalRefReleased"]
3558        [::std::mem::offset_of!(BNCustomBinaryView, externalRefReleased) - 32usize];
3559    ["Offset of field: BNCustomBinaryView::read"]
3560        [::std::mem::offset_of!(BNCustomBinaryView, read) - 40usize];
3561    ["Offset of field: BNCustomBinaryView::write"]
3562        [::std::mem::offset_of!(BNCustomBinaryView, write) - 48usize];
3563    ["Offset of field: BNCustomBinaryView::insert"]
3564        [::std::mem::offset_of!(BNCustomBinaryView, insert) - 56usize];
3565    ["Offset of field: BNCustomBinaryView::remove"]
3566        [::std::mem::offset_of!(BNCustomBinaryView, remove) - 64usize];
3567    ["Offset of field: BNCustomBinaryView::getModification"]
3568        [::std::mem::offset_of!(BNCustomBinaryView, getModification) - 72usize];
3569    ["Offset of field: BNCustomBinaryView::isValidOffset"]
3570        [::std::mem::offset_of!(BNCustomBinaryView, isValidOffset) - 80usize];
3571    ["Offset of field: BNCustomBinaryView::isOffsetReadable"]
3572        [::std::mem::offset_of!(BNCustomBinaryView, isOffsetReadable) - 88usize];
3573    ["Offset of field: BNCustomBinaryView::isOffsetWritable"]
3574        [::std::mem::offset_of!(BNCustomBinaryView, isOffsetWritable) - 96usize];
3575    ["Offset of field: BNCustomBinaryView::isOffsetExecutable"]
3576        [::std::mem::offset_of!(BNCustomBinaryView, isOffsetExecutable) - 104usize];
3577    ["Offset of field: BNCustomBinaryView::isOffsetBackedByFile"]
3578        [::std::mem::offset_of!(BNCustomBinaryView, isOffsetBackedByFile) - 112usize];
3579    ["Offset of field: BNCustomBinaryView::getNextValidOffset"]
3580        [::std::mem::offset_of!(BNCustomBinaryView, getNextValidOffset) - 120usize];
3581    ["Offset of field: BNCustomBinaryView::getStart"]
3582        [::std::mem::offset_of!(BNCustomBinaryView, getStart) - 128usize];
3583    ["Offset of field: BNCustomBinaryView::getLength"]
3584        [::std::mem::offset_of!(BNCustomBinaryView, getLength) - 136usize];
3585    ["Offset of field: BNCustomBinaryView::getEntryPoint"]
3586        [::std::mem::offset_of!(BNCustomBinaryView, getEntryPoint) - 144usize];
3587    ["Offset of field: BNCustomBinaryView::isExecutable"]
3588        [::std::mem::offset_of!(BNCustomBinaryView, isExecutable) - 152usize];
3589    ["Offset of field: BNCustomBinaryView::getDefaultEndianness"]
3590        [::std::mem::offset_of!(BNCustomBinaryView, getDefaultEndianness) - 160usize];
3591    ["Offset of field: BNCustomBinaryView::isRelocatable"]
3592        [::std::mem::offset_of!(BNCustomBinaryView, isRelocatable) - 168usize];
3593    ["Offset of field: BNCustomBinaryView::getAddressSize"]
3594        [::std::mem::offset_of!(BNCustomBinaryView, getAddressSize) - 176usize];
3595    ["Offset of field: BNCustomBinaryView::save"]
3596        [::std::mem::offset_of!(BNCustomBinaryView, save) - 184usize];
3597    ["Offset of field: BNCustomBinaryView::onAfterSnapshotDataApplied"]
3598        [::std::mem::offset_of!(BNCustomBinaryView, onAfterSnapshotDataApplied) - 192usize];
3599};
3600impl Default for BNCustomBinaryView {
3601    fn default() -> Self {
3602        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3603        unsafe {
3604            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3605            s.assume_init()
3606        }
3607    }
3608}
3609#[repr(C)]
3610#[derive(Debug, Copy, Clone)]
3611pub struct BNCustomBinaryViewType {
3612    pub context: *mut ::std::os::raw::c_void,
3613    pub create: ::std::option::Option<
3614        unsafe extern "C" fn(
3615            ctxt: *mut ::std::os::raw::c_void,
3616            data: *mut BNBinaryView,
3617        ) -> *mut BNBinaryView,
3618    >,
3619    pub parse: ::std::option::Option<
3620        unsafe extern "C" fn(
3621            ctxt: *mut ::std::os::raw::c_void,
3622            data: *mut BNBinaryView,
3623        ) -> *mut BNBinaryView,
3624    >,
3625    pub isValidForData: ::std::option::Option<
3626        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, data: *mut BNBinaryView) -> bool,
3627    >,
3628    pub isDeprecated:
3629        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
3630    pub isForceLoadable:
3631        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
3632    pub getLoadSettingsForData: ::std::option::Option<
3633        unsafe extern "C" fn(
3634            ctxt: *mut ::std::os::raw::c_void,
3635            data: *mut BNBinaryView,
3636        ) -> *mut BNSettings,
3637    >,
3638    pub hasNoInitialContent:
3639        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
3640}
3641#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3642const _: () = {
3643    ["Size of BNCustomBinaryViewType"][::std::mem::size_of::<BNCustomBinaryViewType>() - 64usize];
3644    ["Alignment of BNCustomBinaryViewType"]
3645        [::std::mem::align_of::<BNCustomBinaryViewType>() - 8usize];
3646    ["Offset of field: BNCustomBinaryViewType::context"]
3647        [::std::mem::offset_of!(BNCustomBinaryViewType, context) - 0usize];
3648    ["Offset of field: BNCustomBinaryViewType::create"]
3649        [::std::mem::offset_of!(BNCustomBinaryViewType, create) - 8usize];
3650    ["Offset of field: BNCustomBinaryViewType::parse"]
3651        [::std::mem::offset_of!(BNCustomBinaryViewType, parse) - 16usize];
3652    ["Offset of field: BNCustomBinaryViewType::isValidForData"]
3653        [::std::mem::offset_of!(BNCustomBinaryViewType, isValidForData) - 24usize];
3654    ["Offset of field: BNCustomBinaryViewType::isDeprecated"]
3655        [::std::mem::offset_of!(BNCustomBinaryViewType, isDeprecated) - 32usize];
3656    ["Offset of field: BNCustomBinaryViewType::isForceLoadable"]
3657        [::std::mem::offset_of!(BNCustomBinaryViewType, isForceLoadable) - 40usize];
3658    ["Offset of field: BNCustomBinaryViewType::getLoadSettingsForData"]
3659        [::std::mem::offset_of!(BNCustomBinaryViewType, getLoadSettingsForData) - 48usize];
3660    ["Offset of field: BNCustomBinaryViewType::hasNoInitialContent"]
3661        [::std::mem::offset_of!(BNCustomBinaryViewType, hasNoInitialContent) - 56usize];
3662};
3663impl Default for BNCustomBinaryViewType {
3664    fn default() -> Self {
3665        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3666        unsafe {
3667            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3668            s.assume_init()
3669        }
3670    }
3671}
3672#[repr(C)]
3673#[derive(Debug, Copy, Clone)]
3674pub struct BNTransformParameterInfo {
3675    pub name: *mut ::std::os::raw::c_char,
3676    pub longName: *mut ::std::os::raw::c_char,
3677    #[doc = " Variable length if zero"]
3678    pub fixedLength: usize,
3679}
3680#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3681const _: () = {
3682    ["Size of BNTransformParameterInfo"]
3683        [::std::mem::size_of::<BNTransformParameterInfo>() - 24usize];
3684    ["Alignment of BNTransformParameterInfo"]
3685        [::std::mem::align_of::<BNTransformParameterInfo>() - 8usize];
3686    ["Offset of field: BNTransformParameterInfo::name"]
3687        [::std::mem::offset_of!(BNTransformParameterInfo, name) - 0usize];
3688    ["Offset of field: BNTransformParameterInfo::longName"]
3689        [::std::mem::offset_of!(BNTransformParameterInfo, longName) - 8usize];
3690    ["Offset of field: BNTransformParameterInfo::fixedLength"]
3691        [::std::mem::offset_of!(BNTransformParameterInfo, fixedLength) - 16usize];
3692};
3693impl Default for BNTransformParameterInfo {
3694    fn default() -> Self {
3695        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3696        unsafe {
3697            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3698            s.assume_init()
3699        }
3700    }
3701}
3702#[repr(C)]
3703#[derive(Debug, Copy, Clone)]
3704pub struct BNTransformParameter {
3705    pub name: *const ::std::os::raw::c_char,
3706    pub value: *mut BNDataBuffer,
3707}
3708#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3709const _: () = {
3710    ["Size of BNTransformParameter"][::std::mem::size_of::<BNTransformParameter>() - 16usize];
3711    ["Alignment of BNTransformParameter"][::std::mem::align_of::<BNTransformParameter>() - 8usize];
3712    ["Offset of field: BNTransformParameter::name"]
3713        [::std::mem::offset_of!(BNTransformParameter, name) - 0usize];
3714    ["Offset of field: BNTransformParameter::value"]
3715        [::std::mem::offset_of!(BNTransformParameter, value) - 8usize];
3716};
3717impl Default for BNTransformParameter {
3718    fn default() -> Self {
3719        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3720        unsafe {
3721            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3722            s.assume_init()
3723        }
3724    }
3725}
3726#[repr(C)]
3727#[derive(Debug, Copy, Clone)]
3728pub struct BNCustomTransform {
3729    pub context: *mut ::std::os::raw::c_void,
3730    pub getParameters: ::std::option::Option<
3731        unsafe extern "C" fn(
3732            ctxt: *mut ::std::os::raw::c_void,
3733            count: *mut usize,
3734        ) -> *mut BNTransformParameterInfo,
3735    >,
3736    pub freeParameters: ::std::option::Option<
3737        unsafe extern "C" fn(params: *mut BNTransformParameterInfo, count: usize),
3738    >,
3739    pub decode: ::std::option::Option<
3740        unsafe extern "C" fn(
3741            ctxt: *mut ::std::os::raw::c_void,
3742            input: *mut BNDataBuffer,
3743            output: *mut BNDataBuffer,
3744            params: *mut BNTransformParameter,
3745            paramCount: usize,
3746        ) -> bool,
3747    >,
3748    pub encode: ::std::option::Option<
3749        unsafe extern "C" fn(
3750            ctxt: *mut ::std::os::raw::c_void,
3751            input: *mut BNDataBuffer,
3752            output: *mut BNDataBuffer,
3753            params: *mut BNTransformParameter,
3754            paramCount: usize,
3755        ) -> bool,
3756    >,
3757    pub decodeWithContext: ::std::option::Option<
3758        unsafe extern "C" fn(
3759            ctxt: *mut ::std::os::raw::c_void,
3760            context: *mut BNTransformContext,
3761            params: *mut BNTransformParameter,
3762            paramCount: usize,
3763        ) -> bool,
3764    >,
3765    pub canDecode: ::std::option::Option<
3766        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, input: *mut BNBinaryView) -> bool,
3767    >,
3768}
3769#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3770const _: () = {
3771    ["Size of BNCustomTransform"][::std::mem::size_of::<BNCustomTransform>() - 56usize];
3772    ["Alignment of BNCustomTransform"][::std::mem::align_of::<BNCustomTransform>() - 8usize];
3773    ["Offset of field: BNCustomTransform::context"]
3774        [::std::mem::offset_of!(BNCustomTransform, context) - 0usize];
3775    ["Offset of field: BNCustomTransform::getParameters"]
3776        [::std::mem::offset_of!(BNCustomTransform, getParameters) - 8usize];
3777    ["Offset of field: BNCustomTransform::freeParameters"]
3778        [::std::mem::offset_of!(BNCustomTransform, freeParameters) - 16usize];
3779    ["Offset of field: BNCustomTransform::decode"]
3780        [::std::mem::offset_of!(BNCustomTransform, decode) - 24usize];
3781    ["Offset of field: BNCustomTransform::encode"]
3782        [::std::mem::offset_of!(BNCustomTransform, encode) - 32usize];
3783    ["Offset of field: BNCustomTransform::decodeWithContext"]
3784        [::std::mem::offset_of!(BNCustomTransform, decodeWithContext) - 40usize];
3785    ["Offset of field: BNCustomTransform::canDecode"]
3786        [::std::mem::offset_of!(BNCustomTransform, canDecode) - 48usize];
3787};
3788impl Default for BNCustomTransform {
3789    fn default() -> Self {
3790        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3791        unsafe {
3792            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3793            s.assume_init()
3794        }
3795    }
3796}
3797#[repr(C)]
3798#[derive(Debug, Copy, Clone)]
3799pub struct BNInstructionInfo {
3800    pub length: usize,
3801    pub branchCount: usize,
3802    pub archTransitionByTargetAddr: bool,
3803    pub delaySlots: u8,
3804    pub branchType: [BNBranchType; 3usize],
3805    pub branchTarget: [u64; 3usize],
3806    #[doc = " If null, same architecture as instruction"]
3807    pub branchArch: [*mut BNArchitecture; 3usize],
3808}
3809#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3810const _: () = {
3811    ["Size of BNInstructionInfo"][::std::mem::size_of::<BNInstructionInfo>() - 72usize];
3812    ["Alignment of BNInstructionInfo"][::std::mem::align_of::<BNInstructionInfo>() - 8usize];
3813    ["Offset of field: BNInstructionInfo::length"]
3814        [::std::mem::offset_of!(BNInstructionInfo, length) - 0usize];
3815    ["Offset of field: BNInstructionInfo::branchCount"]
3816        [::std::mem::offset_of!(BNInstructionInfo, branchCount) - 8usize];
3817    ["Offset of field: BNInstructionInfo::archTransitionByTargetAddr"]
3818        [::std::mem::offset_of!(BNInstructionInfo, archTransitionByTargetAddr) - 16usize];
3819    ["Offset of field: BNInstructionInfo::delaySlots"]
3820        [::std::mem::offset_of!(BNInstructionInfo, delaySlots) - 17usize];
3821    ["Offset of field: BNInstructionInfo::branchType"]
3822        [::std::mem::offset_of!(BNInstructionInfo, branchType) - 18usize];
3823    ["Offset of field: BNInstructionInfo::branchTarget"]
3824        [::std::mem::offset_of!(BNInstructionInfo, branchTarget) - 24usize];
3825    ["Offset of field: BNInstructionInfo::branchArch"]
3826        [::std::mem::offset_of!(BNInstructionInfo, branchArch) - 48usize];
3827};
3828impl Default for BNInstructionInfo {
3829    fn default() -> Self {
3830        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3831        unsafe {
3832            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3833            s.assume_init()
3834        }
3835    }
3836}
3837#[repr(u8)]
3838#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3839pub enum BNRelocationType {
3840    ELFGlobalRelocationType = 0,
3841    ELFCopyRelocationType = 1,
3842    ELFJumpSlotRelocationType = 2,
3843    StandardRelocationType = 3,
3844    IgnoredRelocation = 4,
3845    UnhandledRelocation = 5,
3846}
3847#[repr(C)]
3848#[derive(Debug, Copy, Clone)]
3849pub struct BNRelocationInfo {
3850    #[doc = " BinaryNinja Relocation Type"]
3851    pub type_: BNRelocationType,
3852    #[doc = " PC Relative or Absolute (subtract address from relocation)"]
3853    pub pcRelative: bool,
3854    #[doc = " Relative to start of module (Add module base to relocation)"]
3855    pub baseRelative: bool,
3856    #[doc = " Base address for this binary view"]
3857    pub base: u64,
3858    #[doc = " Size of the data to be written"]
3859    pub size: usize,
3860    #[doc = " After addition/subtraction truncate to"]
3861    pub truncateSize: usize,
3862    #[doc = " Base type from relocation entry"]
3863    pub nativeType: u64,
3864    #[doc = " Addend value from relocation entry"]
3865    pub addend: usize,
3866    #[doc = " Addend should be subtracted"]
3867    pub hasSign: bool,
3868    #[doc = " Addend should be read from the BinaryView"]
3869    pub implicitAddend: bool,
3870    #[doc = " Relocation entry points to external symbol"]
3871    pub external: bool,
3872    #[doc = " Index into symbol table"]
3873    pub symbolIndex: usize,
3874    #[doc = " Index into the section table"]
3875    pub sectionIndex: usize,
3876    #[doc = " Absolute address or segment offset"]
3877    pub address: u64,
3878    #[doc = " Target (set automatically)"]
3879    pub target: u64,
3880    #[doc = " This relocation is effecting data not code"]
3881    pub dataRelocation: bool,
3882    pub relocationDataCache: [u8; 8usize],
3883    #[doc = " Link to relocation another related relocation"]
3884    pub prev: *mut BNRelocationInfo,
3885    #[doc = " Link to relocation another related relocation"]
3886    pub next: *mut BNRelocationInfo,
3887}
3888#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3889const _: () = {
3890    ["Size of BNRelocationInfo"][::std::mem::size_of::<BNRelocationInfo>() - 120usize];
3891    ["Alignment of BNRelocationInfo"][::std::mem::align_of::<BNRelocationInfo>() - 8usize];
3892    ["Offset of field: BNRelocationInfo::type_"]
3893        [::std::mem::offset_of!(BNRelocationInfo, type_) - 0usize];
3894    ["Offset of field: BNRelocationInfo::pcRelative"]
3895        [::std::mem::offset_of!(BNRelocationInfo, pcRelative) - 1usize];
3896    ["Offset of field: BNRelocationInfo::baseRelative"]
3897        [::std::mem::offset_of!(BNRelocationInfo, baseRelative) - 2usize];
3898    ["Offset of field: BNRelocationInfo::base"]
3899        [::std::mem::offset_of!(BNRelocationInfo, base) - 8usize];
3900    ["Offset of field: BNRelocationInfo::size"]
3901        [::std::mem::offset_of!(BNRelocationInfo, size) - 16usize];
3902    ["Offset of field: BNRelocationInfo::truncateSize"]
3903        [::std::mem::offset_of!(BNRelocationInfo, truncateSize) - 24usize];
3904    ["Offset of field: BNRelocationInfo::nativeType"]
3905        [::std::mem::offset_of!(BNRelocationInfo, nativeType) - 32usize];
3906    ["Offset of field: BNRelocationInfo::addend"]
3907        [::std::mem::offset_of!(BNRelocationInfo, addend) - 40usize];
3908    ["Offset of field: BNRelocationInfo::hasSign"]
3909        [::std::mem::offset_of!(BNRelocationInfo, hasSign) - 48usize];
3910    ["Offset of field: BNRelocationInfo::implicitAddend"]
3911        [::std::mem::offset_of!(BNRelocationInfo, implicitAddend) - 49usize];
3912    ["Offset of field: BNRelocationInfo::external"]
3913        [::std::mem::offset_of!(BNRelocationInfo, external) - 50usize];
3914    ["Offset of field: BNRelocationInfo::symbolIndex"]
3915        [::std::mem::offset_of!(BNRelocationInfo, symbolIndex) - 56usize];
3916    ["Offset of field: BNRelocationInfo::sectionIndex"]
3917        [::std::mem::offset_of!(BNRelocationInfo, sectionIndex) - 64usize];
3918    ["Offset of field: BNRelocationInfo::address"]
3919        [::std::mem::offset_of!(BNRelocationInfo, address) - 72usize];
3920    ["Offset of field: BNRelocationInfo::target"]
3921        [::std::mem::offset_of!(BNRelocationInfo, target) - 80usize];
3922    ["Offset of field: BNRelocationInfo::dataRelocation"]
3923        [::std::mem::offset_of!(BNRelocationInfo, dataRelocation) - 88usize];
3924    ["Offset of field: BNRelocationInfo::relocationDataCache"]
3925        [::std::mem::offset_of!(BNRelocationInfo, relocationDataCache) - 89usize];
3926    ["Offset of field: BNRelocationInfo::prev"]
3927        [::std::mem::offset_of!(BNRelocationInfo, prev) - 104usize];
3928    ["Offset of field: BNRelocationInfo::next"]
3929        [::std::mem::offset_of!(BNRelocationInfo, next) - 112usize];
3930};
3931impl Default for BNRelocationInfo {
3932    fn default() -> Self {
3933        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3934        unsafe {
3935            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3936            s.assume_init()
3937        }
3938    }
3939}
3940#[repr(C)]
3941#[derive(Debug, Copy, Clone)]
3942pub struct BNInstructionTextToken {
3943    pub type_: BNInstructionTextTokenType,
3944    pub text: *mut ::std::os::raw::c_char,
3945    pub value: u64,
3946    pub width: u64,
3947    pub size: usize,
3948    pub operand: usize,
3949    pub context: BNInstructionTextTokenContext,
3950    pub confidence: u8,
3951    pub address: u64,
3952    pub typeNames: *mut *mut ::std::os::raw::c_char,
3953    pub namesCount: usize,
3954    pub exprIndex: usize,
3955}
3956#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3957const _: () = {
3958    ["Size of BNInstructionTextToken"][::std::mem::size_of::<BNInstructionTextToken>() - 88usize];
3959    ["Alignment of BNInstructionTextToken"]
3960        [::std::mem::align_of::<BNInstructionTextToken>() - 8usize];
3961    ["Offset of field: BNInstructionTextToken::type_"]
3962        [::std::mem::offset_of!(BNInstructionTextToken, type_) - 0usize];
3963    ["Offset of field: BNInstructionTextToken::text"]
3964        [::std::mem::offset_of!(BNInstructionTextToken, text) - 8usize];
3965    ["Offset of field: BNInstructionTextToken::value"]
3966        [::std::mem::offset_of!(BNInstructionTextToken, value) - 16usize];
3967    ["Offset of field: BNInstructionTextToken::width"]
3968        [::std::mem::offset_of!(BNInstructionTextToken, width) - 24usize];
3969    ["Offset of field: BNInstructionTextToken::size"]
3970        [::std::mem::offset_of!(BNInstructionTextToken, size) - 32usize];
3971    ["Offset of field: BNInstructionTextToken::operand"]
3972        [::std::mem::offset_of!(BNInstructionTextToken, operand) - 40usize];
3973    ["Offset of field: BNInstructionTextToken::context"]
3974        [::std::mem::offset_of!(BNInstructionTextToken, context) - 48usize];
3975    ["Offset of field: BNInstructionTextToken::confidence"]
3976        [::std::mem::offset_of!(BNInstructionTextToken, confidence) - 49usize];
3977    ["Offset of field: BNInstructionTextToken::address"]
3978        [::std::mem::offset_of!(BNInstructionTextToken, address) - 56usize];
3979    ["Offset of field: BNInstructionTextToken::typeNames"]
3980        [::std::mem::offset_of!(BNInstructionTextToken, typeNames) - 64usize];
3981    ["Offset of field: BNInstructionTextToken::namesCount"]
3982        [::std::mem::offset_of!(BNInstructionTextToken, namesCount) - 72usize];
3983    ["Offset of field: BNInstructionTextToken::exprIndex"]
3984        [::std::mem::offset_of!(BNInstructionTextToken, exprIndex) - 80usize];
3985};
3986impl Default for BNInstructionTextToken {
3987    fn default() -> Self {
3988        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3989        unsafe {
3990            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3991            s.assume_init()
3992        }
3993    }
3994}
3995#[repr(C)]
3996#[derive(Debug, Copy, Clone)]
3997pub struct BNInstructionTextLine {
3998    pub tokens: *mut BNInstructionTextToken,
3999    pub count: usize,
4000}
4001#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4002const _: () = {
4003    ["Size of BNInstructionTextLine"][::std::mem::size_of::<BNInstructionTextLine>() - 16usize];
4004    ["Alignment of BNInstructionTextLine"]
4005        [::std::mem::align_of::<BNInstructionTextLine>() - 8usize];
4006    ["Offset of field: BNInstructionTextLine::tokens"]
4007        [::std::mem::offset_of!(BNInstructionTextLine, tokens) - 0usize];
4008    ["Offset of field: BNInstructionTextLine::count"]
4009        [::std::mem::offset_of!(BNInstructionTextLine, count) - 8usize];
4010};
4011impl Default for BNInstructionTextLine {
4012    fn default() -> Self {
4013        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4014        unsafe {
4015            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4016            s.assume_init()
4017        }
4018    }
4019}
4020#[repr(u8)]
4021#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
4022pub enum BNTypeDefinitionLineType {
4023    TypedefLineType = 0,
4024    StructDefinitionLineType = 1,
4025    StructFieldLineType = 2,
4026    StructDefinitionEndLineType = 3,
4027    EnumDefinitionLineType = 4,
4028    EnumMemberLineType = 5,
4029    EnumDefinitionEndLineType = 6,
4030    PaddingLineType = 7,
4031    UndefinedXrefLineType = 8,
4032    CollapsedPaddingLineType = 9,
4033    EmptyLineType = 10,
4034}
4035#[repr(C)]
4036#[derive(Debug, Copy, Clone)]
4037pub struct BNTypeDefinitionLine {
4038    pub lineType: BNTypeDefinitionLineType,
4039    pub tokens: *mut BNInstructionTextToken,
4040    pub count: usize,
4041    pub type_: *mut BNType,
4042    pub parentType: *mut BNType,
4043    pub rootType: *mut BNType,
4044    pub rootTypeName: *mut ::std::os::raw::c_char,
4045    pub baseType: *mut BNNamedTypeReference,
4046    pub baseOffset: u64,
4047    pub offset: u64,
4048    pub fieldIndex: usize,
4049}
4050#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4051const _: () = {
4052    ["Size of BNTypeDefinitionLine"][::std::mem::size_of::<BNTypeDefinitionLine>() - 88usize];
4053    ["Alignment of BNTypeDefinitionLine"][::std::mem::align_of::<BNTypeDefinitionLine>() - 8usize];
4054    ["Offset of field: BNTypeDefinitionLine::lineType"]
4055        [::std::mem::offset_of!(BNTypeDefinitionLine, lineType) - 0usize];
4056    ["Offset of field: BNTypeDefinitionLine::tokens"]
4057        [::std::mem::offset_of!(BNTypeDefinitionLine, tokens) - 8usize];
4058    ["Offset of field: BNTypeDefinitionLine::count"]
4059        [::std::mem::offset_of!(BNTypeDefinitionLine, count) - 16usize];
4060    ["Offset of field: BNTypeDefinitionLine::type_"]
4061        [::std::mem::offset_of!(BNTypeDefinitionLine, type_) - 24usize];
4062    ["Offset of field: BNTypeDefinitionLine::parentType"]
4063        [::std::mem::offset_of!(BNTypeDefinitionLine, parentType) - 32usize];
4064    ["Offset of field: BNTypeDefinitionLine::rootType"]
4065        [::std::mem::offset_of!(BNTypeDefinitionLine, rootType) - 40usize];
4066    ["Offset of field: BNTypeDefinitionLine::rootTypeName"]
4067        [::std::mem::offset_of!(BNTypeDefinitionLine, rootTypeName) - 48usize];
4068    ["Offset of field: BNTypeDefinitionLine::baseType"]
4069        [::std::mem::offset_of!(BNTypeDefinitionLine, baseType) - 56usize];
4070    ["Offset of field: BNTypeDefinitionLine::baseOffset"]
4071        [::std::mem::offset_of!(BNTypeDefinitionLine, baseOffset) - 64usize];
4072    ["Offset of field: BNTypeDefinitionLine::offset"]
4073        [::std::mem::offset_of!(BNTypeDefinitionLine, offset) - 72usize];
4074    ["Offset of field: BNTypeDefinitionLine::fieldIndex"]
4075        [::std::mem::offset_of!(BNTypeDefinitionLine, fieldIndex) - 80usize];
4076};
4077impl Default for BNTypeDefinitionLine {
4078    fn default() -> Self {
4079        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4080        unsafe {
4081            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4082            s.assume_init()
4083        }
4084    }
4085}
4086#[repr(C)]
4087#[derive(Debug, Copy, Clone)]
4088pub struct BNFlagConditionForSemanticClass {
4089    pub semanticClass: u32,
4090    pub condition: BNLowLevelILFlagCondition,
4091}
4092#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4093const _: () = {
4094    ["Size of BNFlagConditionForSemanticClass"]
4095        [::std::mem::size_of::<BNFlagConditionForSemanticClass>() - 8usize];
4096    ["Alignment of BNFlagConditionForSemanticClass"]
4097        [::std::mem::align_of::<BNFlagConditionForSemanticClass>() - 4usize];
4098    ["Offset of field: BNFlagConditionForSemanticClass::semanticClass"]
4099        [::std::mem::offset_of!(BNFlagConditionForSemanticClass, semanticClass) - 0usize];
4100    ["Offset of field: BNFlagConditionForSemanticClass::condition"]
4101        [::std::mem::offset_of!(BNFlagConditionForSemanticClass, condition) - 4usize];
4102};
4103impl Default for BNFlagConditionForSemanticClass {
4104    fn default() -> Self {
4105        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4106        unsafe {
4107            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4108            s.assume_init()
4109        }
4110    }
4111}
4112#[repr(C)]
4113#[derive(Debug, Copy, Clone)]
4114pub struct BNNameAndType {
4115    pub name: *mut ::std::os::raw::c_char,
4116    pub type_: *mut BNType,
4117    pub typeConfidence: u8,
4118}
4119#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4120const _: () = {
4121    ["Size of BNNameAndType"][::std::mem::size_of::<BNNameAndType>() - 24usize];
4122    ["Alignment of BNNameAndType"][::std::mem::align_of::<BNNameAndType>() - 8usize];
4123    ["Offset of field: BNNameAndType::name"][::std::mem::offset_of!(BNNameAndType, name) - 0usize];
4124    ["Offset of field: BNNameAndType::type_"]
4125        [::std::mem::offset_of!(BNNameAndType, type_) - 8usize];
4126    ["Offset of field: BNNameAndType::typeConfidence"]
4127        [::std::mem::offset_of!(BNNameAndType, typeConfidence) - 16usize];
4128};
4129impl Default for BNNameAndType {
4130    fn default() -> Self {
4131        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4132        unsafe {
4133            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4134            s.assume_init()
4135        }
4136    }
4137}
4138#[repr(C)]
4139#[derive(Debug, Copy, Clone)]
4140pub struct BNTypeWithConfidence {
4141    pub type_: *mut BNType,
4142    pub confidence: u8,
4143}
4144#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4145const _: () = {
4146    ["Size of BNTypeWithConfidence"][::std::mem::size_of::<BNTypeWithConfidence>() - 16usize];
4147    ["Alignment of BNTypeWithConfidence"][::std::mem::align_of::<BNTypeWithConfidence>() - 8usize];
4148    ["Offset of field: BNTypeWithConfidence::type_"]
4149        [::std::mem::offset_of!(BNTypeWithConfidence, type_) - 0usize];
4150    ["Offset of field: BNTypeWithConfidence::confidence"]
4151        [::std::mem::offset_of!(BNTypeWithConfidence, confidence) - 8usize];
4152};
4153impl Default for BNTypeWithConfidence {
4154    fn default() -> Self {
4155        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4156        unsafe {
4157            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4158            s.assume_init()
4159        }
4160    }
4161}
4162#[repr(u8)]
4163#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
4164pub enum BNFunctionAnalysisSkipOverride {
4165    DefaultFunctionAnalysisSkip = 0,
4166    NeverSkipFunctionAnalysis = 1,
4167    AlwaysSkipFunctionAnalysis = 2,
4168}
4169#[repr(C)]
4170#[derive(Debug, Copy, Clone)]
4171pub struct BNBasicBlockAnalysisContext {
4172    pub function: *mut BNFunction,
4173    #[doc = " IN"]
4174    pub analysisSkipOverride: BNFunctionAnalysisSkipOverride,
4175    pub guidedAnalysisMode: bool,
4176    pub triggerGuidedOnInvalidInstruction: bool,
4177    pub translateTailCalls: bool,
4178    pub disallowBranchToString: bool,
4179    pub maxFunctionSize: u64,
4180    pub indirectBranchesCount: usize,
4181    pub indirectBranches: *mut BNIndirectBranchInfo,
4182    pub indirectNoReturnCallsCount: usize,
4183    pub indirectNoReturnCalls: *mut BNArchitectureAndAddress,
4184    #[doc = " OUT; can be set directly"]
4185    pub maxSizeReached: bool,
4186    #[doc = " IN *and* OUT"]
4187    pub contextualFunctionReturnCount: usize,
4188    pub contextualFunctionReturnLocations: *mut BNArchitectureAndAddress,
4189    pub contextualFunctionReturnValues: *mut bool,
4190    #[doc = " OUT"]
4191    pub directRefCount: usize,
4192    pub directRefSources: *mut BNArchitectureAndAddress,
4193    pub directRefTargets: *mut u64,
4194    pub directNoReturnCallsCount: usize,
4195    pub directNoReturnCalls: *mut BNArchitectureAndAddress,
4196    pub haltedDisassemblyAddressesCount: usize,
4197    pub haltedDisassemblyAddresses: *mut BNArchitectureAndAddress,
4198    pub inlinedUnresolvedIndirectBranchCount: usize,
4199    pub inlinedUnresolvedIndirectBranches: *mut BNArchitectureAndAddress,
4200    pub functionArchContext: *mut ::std::os::raw::c_void,
4201}
4202#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4203const _: () = {
4204    ["Size of BNBasicBlockAnalysisContext"]
4205        [::std::mem::size_of::<BNBasicBlockAnalysisContext>() - 168usize];
4206    ["Alignment of BNBasicBlockAnalysisContext"]
4207        [::std::mem::align_of::<BNBasicBlockAnalysisContext>() - 8usize];
4208    ["Offset of field: BNBasicBlockAnalysisContext::function"]
4209        [::std::mem::offset_of!(BNBasicBlockAnalysisContext, function) - 0usize];
4210    ["Offset of field: BNBasicBlockAnalysisContext::analysisSkipOverride"]
4211        [::std::mem::offset_of!(BNBasicBlockAnalysisContext, analysisSkipOverride) - 8usize];
4212    ["Offset of field: BNBasicBlockAnalysisContext::guidedAnalysisMode"]
4213        [::std::mem::offset_of!(BNBasicBlockAnalysisContext, guidedAnalysisMode) - 9usize];
4214    ["Offset of field: BNBasicBlockAnalysisContext::triggerGuidedOnInvalidInstruction"][::std::mem::offset_of!(
4215        BNBasicBlockAnalysisContext,
4216        triggerGuidedOnInvalidInstruction
4217    )
4218        - 10usize];
4219    ["Offset of field: BNBasicBlockAnalysisContext::translateTailCalls"]
4220        [::std::mem::offset_of!(BNBasicBlockAnalysisContext, translateTailCalls) - 11usize];
4221    ["Offset of field: BNBasicBlockAnalysisContext::disallowBranchToString"]
4222        [::std::mem::offset_of!(BNBasicBlockAnalysisContext, disallowBranchToString) - 12usize];
4223    ["Offset of field: BNBasicBlockAnalysisContext::maxFunctionSize"]
4224        [::std::mem::offset_of!(BNBasicBlockAnalysisContext, maxFunctionSize) - 16usize];
4225    ["Offset of field: BNBasicBlockAnalysisContext::indirectBranchesCount"]
4226        [::std::mem::offset_of!(BNBasicBlockAnalysisContext, indirectBranchesCount) - 24usize];
4227    ["Offset of field: BNBasicBlockAnalysisContext::indirectBranches"]
4228        [::std::mem::offset_of!(BNBasicBlockAnalysisContext, indirectBranches) - 32usize];
4229    ["Offset of field: BNBasicBlockAnalysisContext::indirectNoReturnCallsCount"]
4230        [::std::mem::offset_of!(BNBasicBlockAnalysisContext, indirectNoReturnCallsCount) - 40usize];
4231    ["Offset of field: BNBasicBlockAnalysisContext::indirectNoReturnCalls"]
4232        [::std::mem::offset_of!(BNBasicBlockAnalysisContext, indirectNoReturnCalls) - 48usize];
4233    ["Offset of field: BNBasicBlockAnalysisContext::maxSizeReached"]
4234        [::std::mem::offset_of!(BNBasicBlockAnalysisContext, maxSizeReached) - 56usize];
4235    ["Offset of field: BNBasicBlockAnalysisContext::contextualFunctionReturnCount"][::std::mem::offset_of!(
4236        BNBasicBlockAnalysisContext,
4237        contextualFunctionReturnCount
4238    ) - 64usize];
4239    ["Offset of field: BNBasicBlockAnalysisContext::contextualFunctionReturnLocations"][::std::mem::offset_of!(
4240        BNBasicBlockAnalysisContext,
4241        contextualFunctionReturnLocations
4242    )
4243        - 72usize];
4244    ["Offset of field: BNBasicBlockAnalysisContext::contextualFunctionReturnValues"][::std::mem::offset_of!(
4245        BNBasicBlockAnalysisContext,
4246        contextualFunctionReturnValues
4247    ) - 80usize];
4248    ["Offset of field: BNBasicBlockAnalysisContext::directRefCount"]
4249        [::std::mem::offset_of!(BNBasicBlockAnalysisContext, directRefCount) - 88usize];
4250    ["Offset of field: BNBasicBlockAnalysisContext::directRefSources"]
4251        [::std::mem::offset_of!(BNBasicBlockAnalysisContext, directRefSources) - 96usize];
4252    ["Offset of field: BNBasicBlockAnalysisContext::directRefTargets"]
4253        [::std::mem::offset_of!(BNBasicBlockAnalysisContext, directRefTargets) - 104usize];
4254    ["Offset of field: BNBasicBlockAnalysisContext::directNoReturnCallsCount"]
4255        [::std::mem::offset_of!(BNBasicBlockAnalysisContext, directNoReturnCallsCount) - 112usize];
4256    ["Offset of field: BNBasicBlockAnalysisContext::directNoReturnCalls"]
4257        [::std::mem::offset_of!(BNBasicBlockAnalysisContext, directNoReturnCalls) - 120usize];
4258    ["Offset of field: BNBasicBlockAnalysisContext::haltedDisassemblyAddressesCount"][::std::mem::offset_of!(
4259        BNBasicBlockAnalysisContext,
4260        haltedDisassemblyAddressesCount
4261    ) - 128usize];
4262    ["Offset of field: BNBasicBlockAnalysisContext::haltedDisassemblyAddresses"][::std::mem::offset_of!(
4263        BNBasicBlockAnalysisContext,
4264        haltedDisassemblyAddresses
4265    ) - 136usize];
4266    ["Offset of field: BNBasicBlockAnalysisContext::inlinedUnresolvedIndirectBranchCount"][::std::mem::offset_of!(
4267        BNBasicBlockAnalysisContext,
4268        inlinedUnresolvedIndirectBranchCount
4269    )
4270        - 144usize];
4271    ["Offset of field: BNBasicBlockAnalysisContext::inlinedUnresolvedIndirectBranches"][::std::mem::offset_of!(
4272        BNBasicBlockAnalysisContext,
4273        inlinedUnresolvedIndirectBranches
4274    )
4275        - 152usize];
4276    ["Offset of field: BNBasicBlockAnalysisContext::functionArchContext"]
4277        [::std::mem::offset_of!(BNBasicBlockAnalysisContext, functionArchContext) - 160usize];
4278};
4279impl Default for BNBasicBlockAnalysisContext {
4280    fn default() -> Self {
4281        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4282        unsafe {
4283            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4284            s.assume_init()
4285        }
4286    }
4287}
4288#[repr(C)]
4289#[derive(Debug, Copy, Clone)]
4290pub struct BNFunctionLifterContext {
4291    #[doc = " IN"]
4292    pub platform: *mut BNPlatform,
4293    pub logger: *mut BNLogger,
4294    pub basicBlockCount: usize,
4295    pub basicBlocks: *mut *mut BNBasicBlock,
4296    pub inlinedRemappingEntryCount: usize,
4297    pub inlinedRemappingKeys: *mut BNArchitectureAndAddress,
4298    pub inlinedRemappingValues: *mut BNArchitectureAndAddress,
4299    pub indirectBranchesCount: usize,
4300    pub indirectBranches: *mut BNIndirectBranchInfo,
4301    pub noReturnCallsCount: usize,
4302    pub noReturnCalls: *mut BNArchitectureAndAddress,
4303    pub contextualFunctionReturnCount: usize,
4304    pub contextualFunctionReturnLocations: *mut BNArchitectureAndAddress,
4305    pub contextualFunctionReturnValues: *mut bool,
4306    pub inlinedCallsCount: usize,
4307    pub inlinedCalls: *mut u64,
4308    pub functionArchContext: *mut ::std::os::raw::c_void,
4309    #[doc = " OUT"]
4310    pub containsInlinedFunctions: *mut bool,
4311}
4312#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4313const _: () = {
4314    ["Size of BNFunctionLifterContext"]
4315        [::std::mem::size_of::<BNFunctionLifterContext>() - 144usize];
4316    ["Alignment of BNFunctionLifterContext"]
4317        [::std::mem::align_of::<BNFunctionLifterContext>() - 8usize];
4318    ["Offset of field: BNFunctionLifterContext::platform"]
4319        [::std::mem::offset_of!(BNFunctionLifterContext, platform) - 0usize];
4320    ["Offset of field: BNFunctionLifterContext::logger"]
4321        [::std::mem::offset_of!(BNFunctionLifterContext, logger) - 8usize];
4322    ["Offset of field: BNFunctionLifterContext::basicBlockCount"]
4323        [::std::mem::offset_of!(BNFunctionLifterContext, basicBlockCount) - 16usize];
4324    ["Offset of field: BNFunctionLifterContext::basicBlocks"]
4325        [::std::mem::offset_of!(BNFunctionLifterContext, basicBlocks) - 24usize];
4326    ["Offset of field: BNFunctionLifterContext::inlinedRemappingEntryCount"]
4327        [::std::mem::offset_of!(BNFunctionLifterContext, inlinedRemappingEntryCount) - 32usize];
4328    ["Offset of field: BNFunctionLifterContext::inlinedRemappingKeys"]
4329        [::std::mem::offset_of!(BNFunctionLifterContext, inlinedRemappingKeys) - 40usize];
4330    ["Offset of field: BNFunctionLifterContext::inlinedRemappingValues"]
4331        [::std::mem::offset_of!(BNFunctionLifterContext, inlinedRemappingValues) - 48usize];
4332    ["Offset of field: BNFunctionLifterContext::indirectBranchesCount"]
4333        [::std::mem::offset_of!(BNFunctionLifterContext, indirectBranchesCount) - 56usize];
4334    ["Offset of field: BNFunctionLifterContext::indirectBranches"]
4335        [::std::mem::offset_of!(BNFunctionLifterContext, indirectBranches) - 64usize];
4336    ["Offset of field: BNFunctionLifterContext::noReturnCallsCount"]
4337        [::std::mem::offset_of!(BNFunctionLifterContext, noReturnCallsCount) - 72usize];
4338    ["Offset of field: BNFunctionLifterContext::noReturnCalls"]
4339        [::std::mem::offset_of!(BNFunctionLifterContext, noReturnCalls) - 80usize];
4340    ["Offset of field: BNFunctionLifterContext::contextualFunctionReturnCount"]
4341        [::std::mem::offset_of!(BNFunctionLifterContext, contextualFunctionReturnCount) - 88usize];
4342    ["Offset of field: BNFunctionLifterContext::contextualFunctionReturnLocations"][::std::mem::offset_of!(
4343        BNFunctionLifterContext,
4344        contextualFunctionReturnLocations
4345    ) - 96usize];
4346    ["Offset of field: BNFunctionLifterContext::contextualFunctionReturnValues"][::std::mem::offset_of!(
4347        BNFunctionLifterContext,
4348        contextualFunctionReturnValues
4349    ) - 104usize];
4350    ["Offset of field: BNFunctionLifterContext::inlinedCallsCount"]
4351        [::std::mem::offset_of!(BNFunctionLifterContext, inlinedCallsCount) - 112usize];
4352    ["Offset of field: BNFunctionLifterContext::inlinedCalls"]
4353        [::std::mem::offset_of!(BNFunctionLifterContext, inlinedCalls) - 120usize];
4354    ["Offset of field: BNFunctionLifterContext::functionArchContext"]
4355        [::std::mem::offset_of!(BNFunctionLifterContext, functionArchContext) - 128usize];
4356    ["Offset of field: BNFunctionLifterContext::containsInlinedFunctions"]
4357        [::std::mem::offset_of!(BNFunctionLifterContext, containsInlinedFunctions) - 136usize];
4358};
4359impl Default for BNFunctionLifterContext {
4360    fn default() -> Self {
4361        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4362        unsafe {
4363            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4364            s.assume_init()
4365        }
4366    }
4367}
4368#[repr(C)]
4369#[derive(Debug, Copy, Clone)]
4370pub struct BNCustomArchitecture {
4371    pub context: *mut ::std::os::raw::c_void,
4372    pub init: ::std::option::Option<
4373        unsafe extern "C" fn(context: *mut ::std::os::raw::c_void, obj: *mut BNArchitecture),
4374    >,
4375    pub getEndianness: ::std::option::Option<
4376        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> BNEndianness,
4377    >,
4378    pub getAddressSize:
4379        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> usize>,
4380    pub getDefaultIntegerSize:
4381        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> usize>,
4382    pub getInstructionAlignment:
4383        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> usize>,
4384    pub getMaxInstructionLength:
4385        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> usize>,
4386    pub getOpcodeDisplayLength:
4387        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> usize>,
4388    pub getAssociatedArchitectureByAddress: ::std::option::Option<
4389        unsafe extern "C" fn(
4390            ctxt: *mut ::std::os::raw::c_void,
4391            addr: *mut u64,
4392        ) -> *mut BNArchitecture,
4393    >,
4394    pub getInstructionInfo: ::std::option::Option<
4395        unsafe extern "C" fn(
4396            ctxt: *mut ::std::os::raw::c_void,
4397            data: *const u8,
4398            addr: u64,
4399            maxLen: usize,
4400            result: *mut BNInstructionInfo,
4401        ) -> bool,
4402    >,
4403    pub getInstructionText: ::std::option::Option<
4404        unsafe extern "C" fn(
4405            ctxt: *mut ::std::os::raw::c_void,
4406            data: *const u8,
4407            addr: u64,
4408            len: *mut usize,
4409            result: *mut *mut BNInstructionTextToken,
4410            count: *mut usize,
4411        ) -> bool,
4412    >,
4413    pub getInstructionTextWithContext: ::std::option::Option<
4414        unsafe extern "C" fn(
4415            ctxt: *mut ::std::os::raw::c_void,
4416            data: *const u8,
4417            addr: u64,
4418            len: *mut usize,
4419            context: *mut ::std::os::raw::c_void,
4420            result: *mut *mut BNInstructionTextToken,
4421            count: *mut usize,
4422        ) -> bool,
4423    >,
4424    pub freeInstructionText: ::std::option::Option<
4425        unsafe extern "C" fn(tokens: *mut BNInstructionTextToken, count: usize),
4426    >,
4427    pub getInstructionLowLevelIL: ::std::option::Option<
4428        unsafe extern "C" fn(
4429            ctxt: *mut ::std::os::raw::c_void,
4430            data: *const u8,
4431            addr: u64,
4432            len: *mut usize,
4433            il: *mut BNLowLevelILFunction,
4434        ) -> bool,
4435    >,
4436    pub analyzeBasicBlocks: ::std::option::Option<
4437        unsafe extern "C" fn(
4438            ctxt: *mut ::std::os::raw::c_void,
4439            function: *mut BNFunction,
4440            context: *mut BNBasicBlockAnalysisContext,
4441        ),
4442    >,
4443    pub liftFunction: ::std::option::Option<
4444        unsafe extern "C" fn(
4445            ctext: *mut ::std::os::raw::c_void,
4446            function: *mut BNLowLevelILFunction,
4447            context: *mut BNFunctionLifterContext,
4448        ) -> bool,
4449    >,
4450    pub freeFunctionArchContext: ::std::option::Option<
4451        unsafe extern "C" fn(
4452            ctxt: *mut ::std::os::raw::c_void,
4453            context: *mut ::std::os::raw::c_void,
4454        ),
4455    >,
4456    pub getRegisterName: ::std::option::Option<
4457        unsafe extern "C" fn(
4458            ctxt: *mut ::std::os::raw::c_void,
4459            reg: u32,
4460        ) -> *mut ::std::os::raw::c_char,
4461    >,
4462    pub getFlagName: ::std::option::Option<
4463        unsafe extern "C" fn(
4464            ctxt: *mut ::std::os::raw::c_void,
4465            flag: u32,
4466        ) -> *mut ::std::os::raw::c_char,
4467    >,
4468    pub getFlagWriteTypeName: ::std::option::Option<
4469        unsafe extern "C" fn(
4470            ctxt: *mut ::std::os::raw::c_void,
4471            flags: u32,
4472        ) -> *mut ::std::os::raw::c_char,
4473    >,
4474    pub getSemanticFlagClassName: ::std::option::Option<
4475        unsafe extern "C" fn(
4476            ctxt: *mut ::std::os::raw::c_void,
4477            semClass: u32,
4478        ) -> *mut ::std::os::raw::c_char,
4479    >,
4480    pub getSemanticFlagGroupName: ::std::option::Option<
4481        unsafe extern "C" fn(
4482            ctxt: *mut ::std::os::raw::c_void,
4483            semGroup: u32,
4484        ) -> *mut ::std::os::raw::c_char,
4485    >,
4486    pub getFullWidthRegisters: ::std::option::Option<
4487        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
4488    >,
4489    pub getAllRegisters: ::std::option::Option<
4490        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
4491    >,
4492    pub getAllFlags: ::std::option::Option<
4493        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
4494    >,
4495    pub getAllFlagWriteTypes: ::std::option::Option<
4496        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
4497    >,
4498    pub getAllSemanticFlagClasses: ::std::option::Option<
4499        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
4500    >,
4501    pub getAllSemanticFlagGroups: ::std::option::Option<
4502        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
4503    >,
4504    pub getFlagRole: ::std::option::Option<
4505        unsafe extern "C" fn(
4506            ctxt: *mut ::std::os::raw::c_void,
4507            flag: u32,
4508            semClass: u32,
4509        ) -> BNFlagRole,
4510    >,
4511    pub getFlagsRequiredForFlagCondition: ::std::option::Option<
4512        unsafe extern "C" fn(
4513            ctxt: *mut ::std::os::raw::c_void,
4514            cond: BNLowLevelILFlagCondition,
4515            semClass: u32,
4516            count: *mut usize,
4517        ) -> *mut u32,
4518    >,
4519    pub getFlagsRequiredForSemanticFlagGroup: ::std::option::Option<
4520        unsafe extern "C" fn(
4521            ctxt: *mut ::std::os::raw::c_void,
4522            semGroup: u32,
4523            count: *mut usize,
4524        ) -> *mut u32,
4525    >,
4526    pub getFlagConditionsForSemanticFlagGroup: ::std::option::Option<
4527        unsafe extern "C" fn(
4528            ctxt: *mut ::std::os::raw::c_void,
4529            semGroup: u32,
4530            count: *mut usize,
4531        ) -> *mut BNFlagConditionForSemanticClass,
4532    >,
4533    pub freeFlagConditionsForSemanticFlagGroup: ::std::option::Option<
4534        unsafe extern "C" fn(
4535            ctxt: *mut ::std::os::raw::c_void,
4536            conditions: *mut BNFlagConditionForSemanticClass,
4537            count: usize,
4538        ),
4539    >,
4540    pub getFlagsWrittenByFlagWriteType: ::std::option::Option<
4541        unsafe extern "C" fn(
4542            ctxt: *mut ::std::os::raw::c_void,
4543            writeType: u32,
4544            count: *mut usize,
4545        ) -> *mut u32,
4546    >,
4547    pub getSemanticClassForFlagWriteType: ::std::option::Option<
4548        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, writeType: u32) -> u32,
4549    >,
4550    pub getFlagWriteLowLevelIL: ::std::option::Option<
4551        unsafe extern "C" fn(
4552            ctxt: *mut ::std::os::raw::c_void,
4553            op: BNLowLevelILOperation,
4554            size: usize,
4555            flagWriteType: u32,
4556            flag: u32,
4557            operands: *mut BNRegisterOrConstant,
4558            operandCount: usize,
4559            il: *mut BNLowLevelILFunction,
4560        ) -> usize,
4561    >,
4562    pub getFlagConditionLowLevelIL: ::std::option::Option<
4563        unsafe extern "C" fn(
4564            ctxt: *mut ::std::os::raw::c_void,
4565            cond: BNLowLevelILFlagCondition,
4566            semClass: u32,
4567            il: *mut BNLowLevelILFunction,
4568        ) -> usize,
4569    >,
4570    pub getSemanticFlagGroupLowLevelIL: ::std::option::Option<
4571        unsafe extern "C" fn(
4572            ctxt: *mut ::std::os::raw::c_void,
4573            semGroup: u32,
4574            il: *mut BNLowLevelILFunction,
4575        ) -> usize,
4576    >,
4577    pub freeRegisterList: ::std::option::Option<
4578        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, regs: *mut u32, count: usize),
4579    >,
4580    pub getRegisterInfo: ::std::option::Option<
4581        unsafe extern "C" fn(
4582            ctxt: *mut ::std::os::raw::c_void,
4583            reg: u32,
4584            result: *mut BNRegisterInfo,
4585        ),
4586    >,
4587    pub getStackPointerRegister:
4588        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> u32>,
4589    pub getLinkRegister:
4590        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> u32>,
4591    pub getGlobalRegisters: ::std::option::Option<
4592        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
4593    >,
4594    pub getSystemRegisters: ::std::option::Option<
4595        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
4596    >,
4597    pub getRegisterStackName: ::std::option::Option<
4598        unsafe extern "C" fn(
4599            ctxt: *mut ::std::os::raw::c_void,
4600            regStack: u32,
4601        ) -> *mut ::std::os::raw::c_char,
4602    >,
4603    pub getAllRegisterStacks: ::std::option::Option<
4604        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
4605    >,
4606    pub getRegisterStackInfo: ::std::option::Option<
4607        unsafe extern "C" fn(
4608            ctxt: *mut ::std::os::raw::c_void,
4609            regStack: u32,
4610            result: *mut BNRegisterStackInfo,
4611        ),
4612    >,
4613    pub getIntrinsicClass: ::std::option::Option<
4614        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, intrinsic: u32) -> BNIntrinsicClass,
4615    >,
4616    pub getIntrinsicName: ::std::option::Option<
4617        unsafe extern "C" fn(
4618            ctxt: *mut ::std::os::raw::c_void,
4619            intrinsic: u32,
4620        ) -> *mut ::std::os::raw::c_char,
4621    >,
4622    pub getAllIntrinsics: ::std::option::Option<
4623        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
4624    >,
4625    pub getIntrinsicInputs: ::std::option::Option<
4626        unsafe extern "C" fn(
4627            ctxt: *mut ::std::os::raw::c_void,
4628            intrinsic: u32,
4629            count: *mut usize,
4630        ) -> *mut BNNameAndType,
4631    >,
4632    pub freeNameAndTypeList: ::std::option::Option<
4633        unsafe extern "C" fn(
4634            ctxt: *mut ::std::os::raw::c_void,
4635            nt: *mut BNNameAndType,
4636            count: usize,
4637        ),
4638    >,
4639    pub getIntrinsicOutputs: ::std::option::Option<
4640        unsafe extern "C" fn(
4641            ctxt: *mut ::std::os::raw::c_void,
4642            intrinsic: u32,
4643            count: *mut usize,
4644        ) -> *mut BNTypeWithConfidence,
4645    >,
4646    pub freeTypeList: ::std::option::Option<
4647        unsafe extern "C" fn(
4648            ctxt: *mut ::std::os::raw::c_void,
4649            types: *mut BNTypeWithConfidence,
4650            count: usize,
4651        ),
4652    >,
4653    pub canAssemble:
4654        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
4655    pub assemble: ::std::option::Option<
4656        unsafe extern "C" fn(
4657            ctxt: *mut ::std::os::raw::c_void,
4658            code: *const ::std::os::raw::c_char,
4659            addr: u64,
4660            result: *mut BNDataBuffer,
4661            errors: *mut *mut ::std::os::raw::c_char,
4662        ) -> bool,
4663    >,
4664    pub isNeverBranchPatchAvailable: ::std::option::Option<
4665        unsafe extern "C" fn(
4666            ctxt: *mut ::std::os::raw::c_void,
4667            data: *const u8,
4668            addr: u64,
4669            len: usize,
4670        ) -> bool,
4671    >,
4672    pub isAlwaysBranchPatchAvailable: ::std::option::Option<
4673        unsafe extern "C" fn(
4674            ctxt: *mut ::std::os::raw::c_void,
4675            data: *const u8,
4676            addr: u64,
4677            len: usize,
4678        ) -> bool,
4679    >,
4680    pub isInvertBranchPatchAvailable: ::std::option::Option<
4681        unsafe extern "C" fn(
4682            ctxt: *mut ::std::os::raw::c_void,
4683            data: *const u8,
4684            addr: u64,
4685            len: usize,
4686        ) -> bool,
4687    >,
4688    pub isSkipAndReturnZeroPatchAvailable: ::std::option::Option<
4689        unsafe extern "C" fn(
4690            ctxt: *mut ::std::os::raw::c_void,
4691            data: *const u8,
4692            addr: u64,
4693            len: usize,
4694        ) -> bool,
4695    >,
4696    pub isSkipAndReturnValuePatchAvailable: ::std::option::Option<
4697        unsafe extern "C" fn(
4698            ctxt: *mut ::std::os::raw::c_void,
4699            data: *const u8,
4700            addr: u64,
4701            len: usize,
4702        ) -> bool,
4703    >,
4704    pub convertToNop: ::std::option::Option<
4705        unsafe extern "C" fn(
4706            ctxt: *mut ::std::os::raw::c_void,
4707            data: *mut u8,
4708            addr: u64,
4709            len: usize,
4710        ) -> bool,
4711    >,
4712    pub alwaysBranch: ::std::option::Option<
4713        unsafe extern "C" fn(
4714            ctxt: *mut ::std::os::raw::c_void,
4715            data: *mut u8,
4716            addr: u64,
4717            len: usize,
4718        ) -> bool,
4719    >,
4720    pub invertBranch: ::std::option::Option<
4721        unsafe extern "C" fn(
4722            ctxt: *mut ::std::os::raw::c_void,
4723            data: *mut u8,
4724            addr: u64,
4725            len: usize,
4726        ) -> bool,
4727    >,
4728    pub skipAndReturnValue: ::std::option::Option<
4729        unsafe extern "C" fn(
4730            ctxt: *mut ::std::os::raw::c_void,
4731            data: *mut u8,
4732            addr: u64,
4733            len: usize,
4734            value: u64,
4735        ) -> bool,
4736    >,
4737}
4738#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4739const _: () = {
4740    ["Size of BNCustomArchitecture"][::std::mem::size_of::<BNCustomArchitecture>() - 520usize];
4741    ["Alignment of BNCustomArchitecture"][::std::mem::align_of::<BNCustomArchitecture>() - 8usize];
4742    ["Offset of field: BNCustomArchitecture::context"]
4743        [::std::mem::offset_of!(BNCustomArchitecture, context) - 0usize];
4744    ["Offset of field: BNCustomArchitecture::init"]
4745        [::std::mem::offset_of!(BNCustomArchitecture, init) - 8usize];
4746    ["Offset of field: BNCustomArchitecture::getEndianness"]
4747        [::std::mem::offset_of!(BNCustomArchitecture, getEndianness) - 16usize];
4748    ["Offset of field: BNCustomArchitecture::getAddressSize"]
4749        [::std::mem::offset_of!(BNCustomArchitecture, getAddressSize) - 24usize];
4750    ["Offset of field: BNCustomArchitecture::getDefaultIntegerSize"]
4751        [::std::mem::offset_of!(BNCustomArchitecture, getDefaultIntegerSize) - 32usize];
4752    ["Offset of field: BNCustomArchitecture::getInstructionAlignment"]
4753        [::std::mem::offset_of!(BNCustomArchitecture, getInstructionAlignment) - 40usize];
4754    ["Offset of field: BNCustomArchitecture::getMaxInstructionLength"]
4755        [::std::mem::offset_of!(BNCustomArchitecture, getMaxInstructionLength) - 48usize];
4756    ["Offset of field: BNCustomArchitecture::getOpcodeDisplayLength"]
4757        [::std::mem::offset_of!(BNCustomArchitecture, getOpcodeDisplayLength) - 56usize];
4758    ["Offset of field: BNCustomArchitecture::getAssociatedArchitectureByAddress"][::std::mem::offset_of!(
4759        BNCustomArchitecture,
4760        getAssociatedArchitectureByAddress
4761    ) - 64usize];
4762    ["Offset of field: BNCustomArchitecture::getInstructionInfo"]
4763        [::std::mem::offset_of!(BNCustomArchitecture, getInstructionInfo) - 72usize];
4764    ["Offset of field: BNCustomArchitecture::getInstructionText"]
4765        [::std::mem::offset_of!(BNCustomArchitecture, getInstructionText) - 80usize];
4766    ["Offset of field: BNCustomArchitecture::getInstructionTextWithContext"]
4767        [::std::mem::offset_of!(BNCustomArchitecture, getInstructionTextWithContext) - 88usize];
4768    ["Offset of field: BNCustomArchitecture::freeInstructionText"]
4769        [::std::mem::offset_of!(BNCustomArchitecture, freeInstructionText) - 96usize];
4770    ["Offset of field: BNCustomArchitecture::getInstructionLowLevelIL"]
4771        [::std::mem::offset_of!(BNCustomArchitecture, getInstructionLowLevelIL) - 104usize];
4772    ["Offset of field: BNCustomArchitecture::analyzeBasicBlocks"]
4773        [::std::mem::offset_of!(BNCustomArchitecture, analyzeBasicBlocks) - 112usize];
4774    ["Offset of field: BNCustomArchitecture::liftFunction"]
4775        [::std::mem::offset_of!(BNCustomArchitecture, liftFunction) - 120usize];
4776    ["Offset of field: BNCustomArchitecture::freeFunctionArchContext"]
4777        [::std::mem::offset_of!(BNCustomArchitecture, freeFunctionArchContext) - 128usize];
4778    ["Offset of field: BNCustomArchitecture::getRegisterName"]
4779        [::std::mem::offset_of!(BNCustomArchitecture, getRegisterName) - 136usize];
4780    ["Offset of field: BNCustomArchitecture::getFlagName"]
4781        [::std::mem::offset_of!(BNCustomArchitecture, getFlagName) - 144usize];
4782    ["Offset of field: BNCustomArchitecture::getFlagWriteTypeName"]
4783        [::std::mem::offset_of!(BNCustomArchitecture, getFlagWriteTypeName) - 152usize];
4784    ["Offset of field: BNCustomArchitecture::getSemanticFlagClassName"]
4785        [::std::mem::offset_of!(BNCustomArchitecture, getSemanticFlagClassName) - 160usize];
4786    ["Offset of field: BNCustomArchitecture::getSemanticFlagGroupName"]
4787        [::std::mem::offset_of!(BNCustomArchitecture, getSemanticFlagGroupName) - 168usize];
4788    ["Offset of field: BNCustomArchitecture::getFullWidthRegisters"]
4789        [::std::mem::offset_of!(BNCustomArchitecture, getFullWidthRegisters) - 176usize];
4790    ["Offset of field: BNCustomArchitecture::getAllRegisters"]
4791        [::std::mem::offset_of!(BNCustomArchitecture, getAllRegisters) - 184usize];
4792    ["Offset of field: BNCustomArchitecture::getAllFlags"]
4793        [::std::mem::offset_of!(BNCustomArchitecture, getAllFlags) - 192usize];
4794    ["Offset of field: BNCustomArchitecture::getAllFlagWriteTypes"]
4795        [::std::mem::offset_of!(BNCustomArchitecture, getAllFlagWriteTypes) - 200usize];
4796    ["Offset of field: BNCustomArchitecture::getAllSemanticFlagClasses"]
4797        [::std::mem::offset_of!(BNCustomArchitecture, getAllSemanticFlagClasses) - 208usize];
4798    ["Offset of field: BNCustomArchitecture::getAllSemanticFlagGroups"]
4799        [::std::mem::offset_of!(BNCustomArchitecture, getAllSemanticFlagGroups) - 216usize];
4800    ["Offset of field: BNCustomArchitecture::getFlagRole"]
4801        [::std::mem::offset_of!(BNCustomArchitecture, getFlagRole) - 224usize];
4802    ["Offset of field: BNCustomArchitecture::getFlagsRequiredForFlagCondition"]
4803        [::std::mem::offset_of!(BNCustomArchitecture, getFlagsRequiredForFlagCondition) - 232usize];
4804    ["Offset of field: BNCustomArchitecture::getFlagsRequiredForSemanticFlagGroup"][::std::mem::offset_of!(
4805        BNCustomArchitecture,
4806        getFlagsRequiredForSemanticFlagGroup
4807    ) - 240usize];
4808    ["Offset of field: BNCustomArchitecture::getFlagConditionsForSemanticFlagGroup"][::std::mem::offset_of!(
4809        BNCustomArchitecture,
4810        getFlagConditionsForSemanticFlagGroup
4811    ) - 248usize];
4812    ["Offset of field: BNCustomArchitecture::freeFlagConditionsForSemanticFlagGroup"][::std::mem::offset_of!(
4813        BNCustomArchitecture,
4814        freeFlagConditionsForSemanticFlagGroup
4815    ) - 256usize];
4816    ["Offset of field: BNCustomArchitecture::getFlagsWrittenByFlagWriteType"]
4817        [::std::mem::offset_of!(BNCustomArchitecture, getFlagsWrittenByFlagWriteType) - 264usize];
4818    ["Offset of field: BNCustomArchitecture::getSemanticClassForFlagWriteType"]
4819        [::std::mem::offset_of!(BNCustomArchitecture, getSemanticClassForFlagWriteType) - 272usize];
4820    ["Offset of field: BNCustomArchitecture::getFlagWriteLowLevelIL"]
4821        [::std::mem::offset_of!(BNCustomArchitecture, getFlagWriteLowLevelIL) - 280usize];
4822    ["Offset of field: BNCustomArchitecture::getFlagConditionLowLevelIL"]
4823        [::std::mem::offset_of!(BNCustomArchitecture, getFlagConditionLowLevelIL) - 288usize];
4824    ["Offset of field: BNCustomArchitecture::getSemanticFlagGroupLowLevelIL"]
4825        [::std::mem::offset_of!(BNCustomArchitecture, getSemanticFlagGroupLowLevelIL) - 296usize];
4826    ["Offset of field: BNCustomArchitecture::freeRegisterList"]
4827        [::std::mem::offset_of!(BNCustomArchitecture, freeRegisterList) - 304usize];
4828    ["Offset of field: BNCustomArchitecture::getRegisterInfo"]
4829        [::std::mem::offset_of!(BNCustomArchitecture, getRegisterInfo) - 312usize];
4830    ["Offset of field: BNCustomArchitecture::getStackPointerRegister"]
4831        [::std::mem::offset_of!(BNCustomArchitecture, getStackPointerRegister) - 320usize];
4832    ["Offset of field: BNCustomArchitecture::getLinkRegister"]
4833        [::std::mem::offset_of!(BNCustomArchitecture, getLinkRegister) - 328usize];
4834    ["Offset of field: BNCustomArchitecture::getGlobalRegisters"]
4835        [::std::mem::offset_of!(BNCustomArchitecture, getGlobalRegisters) - 336usize];
4836    ["Offset of field: BNCustomArchitecture::getSystemRegisters"]
4837        [::std::mem::offset_of!(BNCustomArchitecture, getSystemRegisters) - 344usize];
4838    ["Offset of field: BNCustomArchitecture::getRegisterStackName"]
4839        [::std::mem::offset_of!(BNCustomArchitecture, getRegisterStackName) - 352usize];
4840    ["Offset of field: BNCustomArchitecture::getAllRegisterStacks"]
4841        [::std::mem::offset_of!(BNCustomArchitecture, getAllRegisterStacks) - 360usize];
4842    ["Offset of field: BNCustomArchitecture::getRegisterStackInfo"]
4843        [::std::mem::offset_of!(BNCustomArchitecture, getRegisterStackInfo) - 368usize];
4844    ["Offset of field: BNCustomArchitecture::getIntrinsicClass"]
4845        [::std::mem::offset_of!(BNCustomArchitecture, getIntrinsicClass) - 376usize];
4846    ["Offset of field: BNCustomArchitecture::getIntrinsicName"]
4847        [::std::mem::offset_of!(BNCustomArchitecture, getIntrinsicName) - 384usize];
4848    ["Offset of field: BNCustomArchitecture::getAllIntrinsics"]
4849        [::std::mem::offset_of!(BNCustomArchitecture, getAllIntrinsics) - 392usize];
4850    ["Offset of field: BNCustomArchitecture::getIntrinsicInputs"]
4851        [::std::mem::offset_of!(BNCustomArchitecture, getIntrinsicInputs) - 400usize];
4852    ["Offset of field: BNCustomArchitecture::freeNameAndTypeList"]
4853        [::std::mem::offset_of!(BNCustomArchitecture, freeNameAndTypeList) - 408usize];
4854    ["Offset of field: BNCustomArchitecture::getIntrinsicOutputs"]
4855        [::std::mem::offset_of!(BNCustomArchitecture, getIntrinsicOutputs) - 416usize];
4856    ["Offset of field: BNCustomArchitecture::freeTypeList"]
4857        [::std::mem::offset_of!(BNCustomArchitecture, freeTypeList) - 424usize];
4858    ["Offset of field: BNCustomArchitecture::canAssemble"]
4859        [::std::mem::offset_of!(BNCustomArchitecture, canAssemble) - 432usize];
4860    ["Offset of field: BNCustomArchitecture::assemble"]
4861        [::std::mem::offset_of!(BNCustomArchitecture, assemble) - 440usize];
4862    ["Offset of field: BNCustomArchitecture::isNeverBranchPatchAvailable"]
4863        [::std::mem::offset_of!(BNCustomArchitecture, isNeverBranchPatchAvailable) - 448usize];
4864    ["Offset of field: BNCustomArchitecture::isAlwaysBranchPatchAvailable"]
4865        [::std::mem::offset_of!(BNCustomArchitecture, isAlwaysBranchPatchAvailable) - 456usize];
4866    ["Offset of field: BNCustomArchitecture::isInvertBranchPatchAvailable"]
4867        [::std::mem::offset_of!(BNCustomArchitecture, isInvertBranchPatchAvailable) - 464usize];
4868    ["Offset of field: BNCustomArchitecture::isSkipAndReturnZeroPatchAvailable"][::std::mem::offset_of!(
4869        BNCustomArchitecture,
4870        isSkipAndReturnZeroPatchAvailable
4871    ) - 472usize];
4872    ["Offset of field: BNCustomArchitecture::isSkipAndReturnValuePatchAvailable"][::std::mem::offset_of!(
4873        BNCustomArchitecture,
4874        isSkipAndReturnValuePatchAvailable
4875    ) - 480usize];
4876    ["Offset of field: BNCustomArchitecture::convertToNop"]
4877        [::std::mem::offset_of!(BNCustomArchitecture, convertToNop) - 488usize];
4878    ["Offset of field: BNCustomArchitecture::alwaysBranch"]
4879        [::std::mem::offset_of!(BNCustomArchitecture, alwaysBranch) - 496usize];
4880    ["Offset of field: BNCustomArchitecture::invertBranch"]
4881        [::std::mem::offset_of!(BNCustomArchitecture, invertBranch) - 504usize];
4882    ["Offset of field: BNCustomArchitecture::skipAndReturnValue"]
4883        [::std::mem::offset_of!(BNCustomArchitecture, skipAndReturnValue) - 512usize];
4884};
4885impl Default for BNCustomArchitecture {
4886    fn default() -> Self {
4887        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4888        unsafe {
4889            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4890            s.assume_init()
4891        }
4892    }
4893}
4894#[repr(C)]
4895#[derive(Debug, Copy, Clone)]
4896pub struct BNCustomPlatform {
4897    pub context: *mut ::std::os::raw::c_void,
4898    pub init: ::std::option::Option<
4899        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, obj: *mut BNPlatform),
4900    >,
4901    pub viewInit: ::std::option::Option<
4902        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, view: *mut BNBinaryView),
4903    >,
4904    pub getGlobalRegisters: ::std::option::Option<
4905        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
4906    >,
4907    pub freeRegisterList: ::std::option::Option<
4908        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, regs: *mut u32, len: usize),
4909    >,
4910    pub getGlobalRegisterType: ::std::option::Option<
4911        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, reg: u32) -> *mut BNType,
4912    >,
4913    pub getAddressSize:
4914        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> usize>,
4915    pub adjustTypeParserInput: ::std::option::Option<
4916        unsafe extern "C" fn(
4917            ctxt: *mut ::std::os::raw::c_void,
4918            parser: *mut BNTypeParser,
4919            argumentsIn: *const *const ::std::os::raw::c_char,
4920            argumentsLenIn: usize,
4921            sourceFileNamesIn: *const *const ::std::os::raw::c_char,
4922            sourceFileValuesIn: *const *const ::std::os::raw::c_char,
4923            sourceFilesLenIn: usize,
4924            argumentsOut: *mut *mut *mut ::std::os::raw::c_char,
4925            argumentsLenOut: *mut usize,
4926            sourceFileNamesOut: *mut *mut *mut ::std::os::raw::c_char,
4927            sourceFileValuesOut: *mut *mut *mut ::std::os::raw::c_char,
4928            sourceFilesLenOut: *mut usize,
4929        ),
4930    >,
4931    pub freeTypeParserInput: ::std::option::Option<
4932        unsafe extern "C" fn(
4933            ctxt: *mut ::std::os::raw::c_void,
4934            arguments: *mut *mut ::std::os::raw::c_char,
4935            argumentsLen: usize,
4936            sourceFileNames: *mut *mut ::std::os::raw::c_char,
4937            sourceFileValues: *mut *mut ::std::os::raw::c_char,
4938            sourceFilesLen: usize,
4939        ),
4940    >,
4941    pub getFallbackEnabled:
4942        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
4943}
4944#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4945const _: () = {
4946    ["Size of BNCustomPlatform"][::std::mem::size_of::<BNCustomPlatform>() - 80usize];
4947    ["Alignment of BNCustomPlatform"][::std::mem::align_of::<BNCustomPlatform>() - 8usize];
4948    ["Offset of field: BNCustomPlatform::context"]
4949        [::std::mem::offset_of!(BNCustomPlatform, context) - 0usize];
4950    ["Offset of field: BNCustomPlatform::init"]
4951        [::std::mem::offset_of!(BNCustomPlatform, init) - 8usize];
4952    ["Offset of field: BNCustomPlatform::viewInit"]
4953        [::std::mem::offset_of!(BNCustomPlatform, viewInit) - 16usize];
4954    ["Offset of field: BNCustomPlatform::getGlobalRegisters"]
4955        [::std::mem::offset_of!(BNCustomPlatform, getGlobalRegisters) - 24usize];
4956    ["Offset of field: BNCustomPlatform::freeRegisterList"]
4957        [::std::mem::offset_of!(BNCustomPlatform, freeRegisterList) - 32usize];
4958    ["Offset of field: BNCustomPlatform::getGlobalRegisterType"]
4959        [::std::mem::offset_of!(BNCustomPlatform, getGlobalRegisterType) - 40usize];
4960    ["Offset of field: BNCustomPlatform::getAddressSize"]
4961        [::std::mem::offset_of!(BNCustomPlatform, getAddressSize) - 48usize];
4962    ["Offset of field: BNCustomPlatform::adjustTypeParserInput"]
4963        [::std::mem::offset_of!(BNCustomPlatform, adjustTypeParserInput) - 56usize];
4964    ["Offset of field: BNCustomPlatform::freeTypeParserInput"]
4965        [::std::mem::offset_of!(BNCustomPlatform, freeTypeParserInput) - 64usize];
4966    ["Offset of field: BNCustomPlatform::getFallbackEnabled"]
4967        [::std::mem::offset_of!(BNCustomPlatform, getFallbackEnabled) - 72usize];
4968};
4969impl Default for BNCustomPlatform {
4970    fn default() -> Self {
4971        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4972        unsafe {
4973            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4974            s.assume_init()
4975        }
4976    }
4977}
4978#[repr(C)]
4979#[derive(Debug, Copy, Clone)]
4980pub struct BNBasicBlockEdge {
4981    pub type_: BNBranchType,
4982    pub target: *mut BNBasicBlock,
4983    pub backEdge: bool,
4984    pub fallThrough: bool,
4985}
4986#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4987const _: () = {
4988    ["Size of BNBasicBlockEdge"][::std::mem::size_of::<BNBasicBlockEdge>() - 24usize];
4989    ["Alignment of BNBasicBlockEdge"][::std::mem::align_of::<BNBasicBlockEdge>() - 8usize];
4990    ["Offset of field: BNBasicBlockEdge::type_"]
4991        [::std::mem::offset_of!(BNBasicBlockEdge, type_) - 0usize];
4992    ["Offset of field: BNBasicBlockEdge::target"]
4993        [::std::mem::offset_of!(BNBasicBlockEdge, target) - 8usize];
4994    ["Offset of field: BNBasicBlockEdge::backEdge"]
4995        [::std::mem::offset_of!(BNBasicBlockEdge, backEdge) - 16usize];
4996    ["Offset of field: BNBasicBlockEdge::fallThrough"]
4997        [::std::mem::offset_of!(BNBasicBlockEdge, fallThrough) - 17usize];
4998};
4999impl Default for BNBasicBlockEdge {
5000    fn default() -> Self {
5001        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5002        unsafe {
5003            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5004            s.assume_init()
5005        }
5006    }
5007}
5008#[repr(C)]
5009#[derive(Debug, Copy, Clone)]
5010pub struct BNPendingBasicBlockEdge {
5011    pub type_: BNBranchType,
5012    pub arch: *mut BNArchitecture,
5013    pub target: u64,
5014    pub fallThrough: bool,
5015}
5016#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5017const _: () = {
5018    ["Size of BNPendingBasicBlockEdge"][::std::mem::size_of::<BNPendingBasicBlockEdge>() - 32usize];
5019    ["Alignment of BNPendingBasicBlockEdge"]
5020        [::std::mem::align_of::<BNPendingBasicBlockEdge>() - 8usize];
5021    ["Offset of field: BNPendingBasicBlockEdge::type_"]
5022        [::std::mem::offset_of!(BNPendingBasicBlockEdge, type_) - 0usize];
5023    ["Offset of field: BNPendingBasicBlockEdge::arch"]
5024        [::std::mem::offset_of!(BNPendingBasicBlockEdge, arch) - 8usize];
5025    ["Offset of field: BNPendingBasicBlockEdge::target"]
5026        [::std::mem::offset_of!(BNPendingBasicBlockEdge, target) - 16usize];
5027    ["Offset of field: BNPendingBasicBlockEdge::fallThrough"]
5028        [::std::mem::offset_of!(BNPendingBasicBlockEdge, fallThrough) - 24usize];
5029};
5030impl Default for BNPendingBasicBlockEdge {
5031    fn default() -> Self {
5032        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5033        unsafe {
5034            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5035            s.assume_init()
5036        }
5037    }
5038}
5039#[repr(C)]
5040#[derive(Debug, Default, Copy, Clone)]
5041pub struct BNPoint {
5042    pub x: f32,
5043    pub y: f32,
5044}
5045#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5046const _: () = {
5047    ["Size of BNPoint"][::std::mem::size_of::<BNPoint>() - 8usize];
5048    ["Alignment of BNPoint"][::std::mem::align_of::<BNPoint>() - 4usize];
5049    ["Offset of field: BNPoint::x"][::std::mem::offset_of!(BNPoint, x) - 0usize];
5050    ["Offset of field: BNPoint::y"][::std::mem::offset_of!(BNPoint, y) - 4usize];
5051};
5052#[repr(u8)]
5053#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
5054pub enum BNThemeColor {
5055    #[doc = " Hex dump colors"]
5056    AddressColor = 0,
5057    #[doc = " Hex dump colors"]
5058    ModifiedColor = 1,
5059    #[doc = " Hex dump colors"]
5060    InsertedColor = 2,
5061    #[doc = " Hex dump colors"]
5062    NotPresentColor = 3,
5063    #[doc = " Hex dump colors"]
5064    SelectionColor = 4,
5065    #[doc = " Hex dump colors"]
5066    OutlineColor = 5,
5067    #[doc = " Hex dump colors"]
5068    BackgroundHighlightDarkColor = 6,
5069    #[doc = " Hex dump colors"]
5070    BackgroundHighlightLightColor = 7,
5071    #[doc = " Hex dump colors"]
5072    BoldBackgroundHighlightDarkColor = 8,
5073    #[doc = " Hex dump colors"]
5074    BoldBackgroundHighlightLightColor = 9,
5075    #[doc = " Hex dump colors"]
5076    AlphanumericHighlightColor = 10,
5077    #[doc = " Hex dump colors"]
5078    PrintableHighlightColor = 11,
5079    #[doc = " Graph colors"]
5080    GraphBackgroundDarkColor = 12,
5081    #[doc = " Graph colors"]
5082    GraphBackgroundLightColor = 13,
5083    #[doc = " Graph colors"]
5084    GraphNodeDarkColor = 14,
5085    #[doc = " Graph colors"]
5086    GraphNodeLightColor = 15,
5087    #[doc = " Graph colors"]
5088    GraphNodeOutlineColor = 16,
5089    #[doc = " Graph colors"]
5090    GraphNodeShadowColor = 17,
5091    #[doc = " Graph colors"]
5092    GraphEntryNodeIndicatorColor = 18,
5093    #[doc = " Graph colors"]
5094    GraphExitNodeIndicatorColor = 19,
5095    #[doc = " Graph colors"]
5096    GraphExitNoreturnNodeIndicatorColor = 20,
5097    #[doc = " Graph colors"]
5098    TrueBranchColor = 21,
5099    #[doc = " Graph colors"]
5100    FalseBranchColor = 22,
5101    #[doc = " Graph colors"]
5102    UnconditionalBranchColor = 23,
5103    #[doc = " Graph colors"]
5104    AltTrueBranchColor = 24,
5105    #[doc = " Graph colors"]
5106    AltFalseBranchColor = 25,
5107    #[doc = " Graph colors"]
5108    AltUnconditionalBranchColor = 26,
5109    #[doc = " Disassembly colors"]
5110    InstructionColor = 27,
5111    #[doc = " Disassembly colors"]
5112    RegisterColor = 28,
5113    #[doc = " Disassembly colors"]
5114    NumberColor = 29,
5115    #[doc = " Disassembly colors"]
5116    CodeSymbolColor = 30,
5117    #[doc = " Disassembly colors"]
5118    DataSymbolColor = 31,
5119    #[doc = " Disassembly colors"]
5120    LocalVariableColor = 32,
5121    #[doc = " Disassembly colors"]
5122    StackVariableColor = 33,
5123    #[doc = " Disassembly colors"]
5124    ImportColor = 34,
5125    #[doc = " Disassembly colors"]
5126    ExportColor = 35,
5127    #[doc = " Disassembly colors"]
5128    InstructionHighlightColor = 36,
5129    #[doc = " Disassembly colors"]
5130    RelatedInstructionHighlightColor = 37,
5131    #[doc = " Disassembly colors"]
5132    TokenHighlightColor = 38,
5133    #[doc = " Disassembly colors"]
5134    TokenSelectionColor = 39,
5135    #[doc = " Disassembly colors"]
5136    AnnotationColor = 40,
5137    #[doc = " Disassembly colors"]
5138    OpcodeColor = 41,
5139    #[doc = " Disassembly colors"]
5140    LinearDisassemblyFunctionHeaderColor = 42,
5141    #[doc = " Disassembly colors"]
5142    LinearDisassemblyBlockColor = 43,
5143    #[doc = " Disassembly colors"]
5144    LinearDisassemblyNoteColor = 44,
5145    #[doc = " Disassembly colors"]
5146    LinearDisassemblySeparatorColor = 45,
5147    #[doc = " Disassembly colors"]
5148    LinearDisassemblyCodeFoldColor = 46,
5149    #[doc = " Disassembly colors"]
5150    StringColor = 47,
5151    #[doc = " Disassembly colors"]
5152    TypeNameColor = 48,
5153    #[doc = " Disassembly colors"]
5154    FieldNameColor = 49,
5155    #[doc = " Disassembly colors"]
5156    KeywordColor = 50,
5157    #[doc = " Disassembly colors"]
5158    UncertainColor = 51,
5159    #[doc = " Disassembly colors"]
5160    NameSpaceColor = 52,
5161    #[doc = " Disassembly colors"]
5162    NameSpaceSeparatorColor = 53,
5163    #[doc = " Disassembly colors"]
5164    GotoLabelColor = 54,
5165    #[doc = " Disassembly colors"]
5166    CommentColor = 55,
5167    #[doc = " Disassembly colors"]
5168    OperationColor = 56,
5169    #[doc = " Disassembly colors"]
5170    BaseStructureNameColor = 57,
5171    #[doc = " Disassembly colors"]
5172    IndentationLineColor = 58,
5173    #[doc = " Disassembly colors"]
5174    IndentationLineHighlightColor = 59,
5175    #[doc = " Script console colors"]
5176    ScriptConsoleOutputColor = 60,
5177    #[doc = " Script console colors"]
5178    ScriptConsoleWarningColor = 61,
5179    #[doc = " Script console colors"]
5180    ScriptConsoleErrorColor = 62,
5181    #[doc = " Script console colors"]
5182    ScriptConsoleEchoColor = 63,
5183    #[doc = " Highlighting colors"]
5184    BlueStandardHighlightColor = 64,
5185    #[doc = " Highlighting colors"]
5186    GreenStandardHighlightColor = 65,
5187    #[doc = " Highlighting colors"]
5188    CyanStandardHighlightColor = 66,
5189    #[doc = " Highlighting colors"]
5190    RedStandardHighlightColor = 67,
5191    #[doc = " Highlighting colors"]
5192    MagentaStandardHighlightColor = 68,
5193    #[doc = " Highlighting colors"]
5194    YellowStandardHighlightColor = 69,
5195    #[doc = " Highlighting colors"]
5196    OrangeStandardHighlightColor = 70,
5197    #[doc = " Highlighting colors"]
5198    WhiteStandardHighlightColor = 71,
5199    #[doc = " Highlighting colors"]
5200    BlackStandardHighlightColor = 72,
5201    #[doc = " MiniGraph"]
5202    MiniGraphOverlayColor = 73,
5203    #[doc = " FeatureMap"]
5204    FeatureMapBaseColor = 74,
5205    #[doc = " FeatureMap"]
5206    FeatureMapNavLineColor = 75,
5207    #[doc = " FeatureMap"]
5208    FeatureMapNavHighlightColor = 76,
5209    #[doc = " FeatureMap"]
5210    FeatureMapDataVariableColor = 77,
5211    #[doc = " FeatureMap"]
5212    FeatureMapAsciiStringColor = 78,
5213    #[doc = " FeatureMap"]
5214    FeatureMapUnicodeStringColor = 79,
5215    #[doc = " FeatureMap"]
5216    FeatureMapFunctionColor = 80,
5217    #[doc = " FeatureMap"]
5218    FeatureMapImportColor = 81,
5219    #[doc = " FeatureMap"]
5220    FeatureMapExternColor = 82,
5221    #[doc = " FeatureMap"]
5222    FeatureMapLibraryColor = 83,
5223    #[doc = " Sidebar colors"]
5224    SidebarBackgroundColor = 84,
5225    #[doc = " Sidebar colors"]
5226    SidebarInactiveIconColor = 85,
5227    #[doc = " Sidebar colors"]
5228    SidebarHoverIconColor = 86,
5229    #[doc = " Sidebar colors"]
5230    SidebarActiveIconColor = 87,
5231    #[doc = " Sidebar colors"]
5232    SidebarFocusedIconColor = 88,
5233    #[doc = " Sidebar colors"]
5234    SidebarHoverBackgroundColor = 89,
5235    #[doc = " Sidebar colors"]
5236    SidebarActiveBackgroundColor = 90,
5237    #[doc = " Sidebar colors"]
5238    SidebarFocusedBackgroundColor = 91,
5239    #[doc = " Sidebar colors"]
5240    SidebarActiveIndicatorLineColor = 92,
5241    #[doc = " Deprecated, has no effect (paints as QPalette::Window)"]
5242    SidebarHeaderBackgroundColor = 93,
5243    SidebarHeaderTextColor = 94,
5244    SidebarWidgetBackgroundColor = 95,
5245    #[doc = " Pane colors"]
5246    ActivePaneBackgroundColor = 96,
5247    #[doc = " Pane colors"]
5248    InactivePaneBackgroundColor = 97,
5249    #[doc = " Pane colors"]
5250    FocusedPaneBackgroundColor = 98,
5251    #[doc = " Tab colors"]
5252    TabBarTabActiveColor = 99,
5253    #[doc = " Tab colors"]
5254    TabBarTabHoverColor = 100,
5255    #[doc = " Tab colors"]
5256    TabBarTabInactiveColor = 101,
5257    #[doc = " Tab colors"]
5258    TabBarTabBorderColor = 102,
5259    #[doc = " Tab colors"]
5260    TabBarTabGlowColor = 103,
5261    #[doc = " Status colors"]
5262    StatusBarServerConnectedColor = 104,
5263    #[doc = " Status colors"]
5264    StatusBarServerDisconnectedColor = 105,
5265    #[doc = " Status colors"]
5266    StatusBarServerWarningColor = 106,
5267    #[doc = " Status colors"]
5268    StatusBarProjectColor = 107,
5269    #[doc = " Brace colors"]
5270    BraceOption1Color = 108,
5271    #[doc = " Brace colors"]
5272    BraceOption2Color = 109,
5273    #[doc = " Brace colors"]
5274    BraceOption3Color = 110,
5275    #[doc = " Brace colors"]
5276    BraceOption4Color = 111,
5277    #[doc = " Brace colors"]
5278    BraceOption5Color = 112,
5279    #[doc = " Brace colors"]
5280    BraceOption6Color = 113,
5281    #[doc = " Type class colors"]
5282    VoidTypeColor = 114,
5283    #[doc = " Type class colors"]
5284    StructureTypeColor = 115,
5285    #[doc = " Type class colors"]
5286    EnumerationTypeColor = 116,
5287    #[doc = " Type class colors"]
5288    FunctionTypeColor = 117,
5289    #[doc = " Type class colors"]
5290    BoolTypeColor = 118,
5291    #[doc = " Type class colors"]
5292    IntegerTypeColor = 119,
5293    #[doc = " Type class colors"]
5294    FloatTypeColor = 120,
5295    #[doc = " Type class colors"]
5296    PointerTypeColor = 121,
5297    #[doc = " Type class colors"]
5298    ArrayTypeColor = 122,
5299    #[doc = " Type class colors"]
5300    VarArgsTypeColor = 123,
5301    #[doc = " Type class colors"]
5302    ValueTypeColor = 124,
5303    #[doc = " Type class colors"]
5304    NamedTypeReferenceColor = 125,
5305    #[doc = " Type class colors"]
5306    WideCharTypeColor = 126,
5307}
5308#[repr(u8)]
5309#[doc = " The following edge styles map to Qt's Qt::PenStyle enumeration"]
5310#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
5311pub enum BNEdgePenStyle {
5312    #[doc = " no line at all."]
5313    NoPen = 0,
5314    #[doc = " A plain line (default)"]
5315    SolidLine = 1,
5316    #[doc = " Dashes separated by a few pixels."]
5317    DashLine = 2,
5318    #[doc = " Dots separated by a few pixels."]
5319    DotLine = 3,
5320    #[doc = " Alternate dots and dashes."]
5321    DashDotLine = 4,
5322    #[doc = " One dash, two dots, one dash, two dots."]
5323    DashDotDotLine = 5,
5324}
5325#[repr(C)]
5326#[derive(Debug, Copy, Clone)]
5327pub struct BNEdgeStyle {
5328    pub style: BNEdgePenStyle,
5329    pub width: usize,
5330    pub color: BNThemeColor,
5331}
5332#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5333const _: () = {
5334    ["Size of BNEdgeStyle"][::std::mem::size_of::<BNEdgeStyle>() - 24usize];
5335    ["Alignment of BNEdgeStyle"][::std::mem::align_of::<BNEdgeStyle>() - 8usize];
5336    ["Offset of field: BNEdgeStyle::style"][::std::mem::offset_of!(BNEdgeStyle, style) - 0usize];
5337    ["Offset of field: BNEdgeStyle::width"][::std::mem::offset_of!(BNEdgeStyle, width) - 8usize];
5338    ["Offset of field: BNEdgeStyle::color"][::std::mem::offset_of!(BNEdgeStyle, color) - 16usize];
5339};
5340impl Default for BNEdgeStyle {
5341    fn default() -> Self {
5342        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5343        unsafe {
5344            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5345            s.assume_init()
5346        }
5347    }
5348}
5349#[repr(C)]
5350#[derive(Debug, Copy, Clone)]
5351pub struct BNFlowGraphEdge {
5352    pub type_: BNBranchType,
5353    pub target: *mut BNFlowGraphNode,
5354    pub points: *mut BNPoint,
5355    pub pointCount: usize,
5356    pub backEdge: bool,
5357    pub style: BNEdgeStyle,
5358}
5359#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5360const _: () = {
5361    ["Size of BNFlowGraphEdge"][::std::mem::size_of::<BNFlowGraphEdge>() - 64usize];
5362    ["Alignment of BNFlowGraphEdge"][::std::mem::align_of::<BNFlowGraphEdge>() - 8usize];
5363    ["Offset of field: BNFlowGraphEdge::type_"]
5364        [::std::mem::offset_of!(BNFlowGraphEdge, type_) - 0usize];
5365    ["Offset of field: BNFlowGraphEdge::target"]
5366        [::std::mem::offset_of!(BNFlowGraphEdge, target) - 8usize];
5367    ["Offset of field: BNFlowGraphEdge::points"]
5368        [::std::mem::offset_of!(BNFlowGraphEdge, points) - 16usize];
5369    ["Offset of field: BNFlowGraphEdge::pointCount"]
5370        [::std::mem::offset_of!(BNFlowGraphEdge, pointCount) - 24usize];
5371    ["Offset of field: BNFlowGraphEdge::backEdge"]
5372        [::std::mem::offset_of!(BNFlowGraphEdge, backEdge) - 32usize];
5373    ["Offset of field: BNFlowGraphEdge::style"]
5374        [::std::mem::offset_of!(BNFlowGraphEdge, style) - 40usize];
5375};
5376impl Default for BNFlowGraphEdge {
5377    fn default() -> Self {
5378        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5379        unsafe {
5380            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5381            s.assume_init()
5382        }
5383    }
5384}
5385#[repr(u8)]
5386#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
5387pub enum BNHighlightColorStyle {
5388    StandardHighlightColor = 0,
5389    MixedHighlightColor = 1,
5390    CustomHighlightColor = 2,
5391}
5392#[repr(u8)]
5393#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
5394pub enum BNHighlightStandardColor {
5395    NoHighlightColor = 0,
5396    BlueHighlightColor = 1,
5397    GreenHighlightColor = 2,
5398    CyanHighlightColor = 3,
5399    RedHighlightColor = 4,
5400    MagentaHighlightColor = 5,
5401    YellowHighlightColor = 6,
5402    OrangeHighlightColor = 7,
5403    WhiteHighlightColor = 8,
5404    BlackHighlightColor = 9,
5405}
5406#[repr(C)]
5407#[derive(Debug, Copy, Clone)]
5408pub struct BNHighlightColor {
5409    pub style: BNHighlightColorStyle,
5410    pub color: BNHighlightStandardColor,
5411    pub mixColor: BNHighlightStandardColor,
5412    pub mix: u8,
5413    pub r: u8,
5414    pub g: u8,
5415    pub b: u8,
5416    pub alpha: u8,
5417}
5418#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5419const _: () = {
5420    ["Size of BNHighlightColor"][::std::mem::size_of::<BNHighlightColor>() - 8usize];
5421    ["Alignment of BNHighlightColor"][::std::mem::align_of::<BNHighlightColor>() - 1usize];
5422    ["Offset of field: BNHighlightColor::style"]
5423        [::std::mem::offset_of!(BNHighlightColor, style) - 0usize];
5424    ["Offset of field: BNHighlightColor::color"]
5425        [::std::mem::offset_of!(BNHighlightColor, color) - 1usize];
5426    ["Offset of field: BNHighlightColor::mixColor"]
5427        [::std::mem::offset_of!(BNHighlightColor, mixColor) - 2usize];
5428    ["Offset of field: BNHighlightColor::mix"]
5429        [::std::mem::offset_of!(BNHighlightColor, mix) - 3usize];
5430    ["Offset of field: BNHighlightColor::r"][::std::mem::offset_of!(BNHighlightColor, r) - 4usize];
5431    ["Offset of field: BNHighlightColor::g"][::std::mem::offset_of!(BNHighlightColor, g) - 5usize];
5432    ["Offset of field: BNHighlightColor::b"][::std::mem::offset_of!(BNHighlightColor, b) - 6usize];
5433    ["Offset of field: BNHighlightColor::alpha"]
5434        [::std::mem::offset_of!(BNHighlightColor, alpha) - 7usize];
5435};
5436impl Default for BNHighlightColor {
5437    fn default() -> Self {
5438        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5439        unsafe {
5440            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5441            s.assume_init()
5442        }
5443    }
5444}
5445#[repr(C)]
5446#[derive(Debug, Copy, Clone)]
5447pub struct BNDisassemblyTextLineTypeInfo {
5448    pub hasTypeInfo: bool,
5449    pub parentType: *mut BNType,
5450    pub fieldIndex: usize,
5451    pub offset: u64,
5452}
5453#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5454const _: () = {
5455    ["Size of BNDisassemblyTextLineTypeInfo"]
5456        [::std::mem::size_of::<BNDisassemblyTextLineTypeInfo>() - 32usize];
5457    ["Alignment of BNDisassemblyTextLineTypeInfo"]
5458        [::std::mem::align_of::<BNDisassemblyTextLineTypeInfo>() - 8usize];
5459    ["Offset of field: BNDisassemblyTextLineTypeInfo::hasTypeInfo"]
5460        [::std::mem::offset_of!(BNDisassemblyTextLineTypeInfo, hasTypeInfo) - 0usize];
5461    ["Offset of field: BNDisassemblyTextLineTypeInfo::parentType"]
5462        [::std::mem::offset_of!(BNDisassemblyTextLineTypeInfo, parentType) - 8usize];
5463    ["Offset of field: BNDisassemblyTextLineTypeInfo::fieldIndex"]
5464        [::std::mem::offset_of!(BNDisassemblyTextLineTypeInfo, fieldIndex) - 16usize];
5465    ["Offset of field: BNDisassemblyTextLineTypeInfo::offset"]
5466        [::std::mem::offset_of!(BNDisassemblyTextLineTypeInfo, offset) - 24usize];
5467};
5468impl Default for BNDisassemblyTextLineTypeInfo {
5469    fn default() -> Self {
5470        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5471        unsafe {
5472            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5473            s.assume_init()
5474        }
5475    }
5476}
5477#[repr(C)]
5478#[derive(Debug, Copy, Clone)]
5479pub struct BNDisassemblyTextLine {
5480    pub addr: u64,
5481    pub instrIndex: usize,
5482    pub tokens: *mut BNInstructionTextToken,
5483    pub count: usize,
5484    pub highlight: BNHighlightColor,
5485    pub tags: *mut *mut BNTag,
5486    pub tagCount: usize,
5487    pub typeInfo: BNDisassemblyTextLineTypeInfo,
5488}
5489#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5490const _: () = {
5491    ["Size of BNDisassemblyTextLine"][::std::mem::size_of::<BNDisassemblyTextLine>() - 88usize];
5492    ["Alignment of BNDisassemblyTextLine"]
5493        [::std::mem::align_of::<BNDisassemblyTextLine>() - 8usize];
5494    ["Offset of field: BNDisassemblyTextLine::addr"]
5495        [::std::mem::offset_of!(BNDisassemblyTextLine, addr) - 0usize];
5496    ["Offset of field: BNDisassemblyTextLine::instrIndex"]
5497        [::std::mem::offset_of!(BNDisassemblyTextLine, instrIndex) - 8usize];
5498    ["Offset of field: BNDisassemblyTextLine::tokens"]
5499        [::std::mem::offset_of!(BNDisassemblyTextLine, tokens) - 16usize];
5500    ["Offset of field: BNDisassemblyTextLine::count"]
5501        [::std::mem::offset_of!(BNDisassemblyTextLine, count) - 24usize];
5502    ["Offset of field: BNDisassemblyTextLine::highlight"]
5503        [::std::mem::offset_of!(BNDisassemblyTextLine, highlight) - 32usize];
5504    ["Offset of field: BNDisassemblyTextLine::tags"]
5505        [::std::mem::offset_of!(BNDisassemblyTextLine, tags) - 40usize];
5506    ["Offset of field: BNDisassemblyTextLine::tagCount"]
5507        [::std::mem::offset_of!(BNDisassemblyTextLine, tagCount) - 48usize];
5508    ["Offset of field: BNDisassemblyTextLine::typeInfo"]
5509        [::std::mem::offset_of!(BNDisassemblyTextLine, typeInfo) - 56usize];
5510};
5511impl Default for BNDisassemblyTextLine {
5512    fn default() -> Self {
5513        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5514        unsafe {
5515            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5516            s.assume_init()
5517        }
5518    }
5519}
5520#[repr(C)]
5521#[derive(Debug, Copy, Clone)]
5522pub struct BNLinearDisassemblyLine {
5523    pub type_: BNLinearDisassemblyLineType,
5524    pub function: *mut BNFunction,
5525    pub block: *mut BNBasicBlock,
5526    pub contents: BNDisassemblyTextLine,
5527}
5528#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5529const _: () = {
5530    ["Size of BNLinearDisassemblyLine"]
5531        [::std::mem::size_of::<BNLinearDisassemblyLine>() - 112usize];
5532    ["Alignment of BNLinearDisassemblyLine"]
5533        [::std::mem::align_of::<BNLinearDisassemblyLine>() - 8usize];
5534    ["Offset of field: BNLinearDisassemblyLine::type_"]
5535        [::std::mem::offset_of!(BNLinearDisassemblyLine, type_) - 0usize];
5536    ["Offset of field: BNLinearDisassemblyLine::function"]
5537        [::std::mem::offset_of!(BNLinearDisassemblyLine, function) - 8usize];
5538    ["Offset of field: BNLinearDisassemblyLine::block"]
5539        [::std::mem::offset_of!(BNLinearDisassemblyLine, block) - 16usize];
5540    ["Offset of field: BNLinearDisassemblyLine::contents"]
5541        [::std::mem::offset_of!(BNLinearDisassemblyLine, contents) - 24usize];
5542};
5543impl Default for BNLinearDisassemblyLine {
5544    fn default() -> Self {
5545        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5546        unsafe {
5547            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5548            s.assume_init()
5549        }
5550    }
5551}
5552#[repr(C)]
5553#[derive(Debug, Copy, Clone)]
5554pub struct BNReferenceSource {
5555    pub func: *mut BNFunction,
5556    pub arch: *mut BNArchitecture,
5557    pub addr: u64,
5558}
5559#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5560const _: () = {
5561    ["Size of BNReferenceSource"][::std::mem::size_of::<BNReferenceSource>() - 24usize];
5562    ["Alignment of BNReferenceSource"][::std::mem::align_of::<BNReferenceSource>() - 8usize];
5563    ["Offset of field: BNReferenceSource::func"]
5564        [::std::mem::offset_of!(BNReferenceSource, func) - 0usize];
5565    ["Offset of field: BNReferenceSource::arch"]
5566        [::std::mem::offset_of!(BNReferenceSource, arch) - 8usize];
5567    ["Offset of field: BNReferenceSource::addr"]
5568        [::std::mem::offset_of!(BNReferenceSource, addr) - 16usize];
5569};
5570impl Default for BNReferenceSource {
5571    fn default() -> Self {
5572        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5573        unsafe {
5574            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5575            s.assume_init()
5576        }
5577    }
5578}
5579#[repr(C)]
5580#[derive(Debug, Copy, Clone)]
5581pub struct BNTypeFieldReference {
5582    pub func: *mut BNFunction,
5583    pub arch: *mut BNArchitecture,
5584    pub addr: u64,
5585    pub size: usize,
5586    pub incomingType: BNTypeWithConfidence,
5587}
5588#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5589const _: () = {
5590    ["Size of BNTypeFieldReference"][::std::mem::size_of::<BNTypeFieldReference>() - 48usize];
5591    ["Alignment of BNTypeFieldReference"][::std::mem::align_of::<BNTypeFieldReference>() - 8usize];
5592    ["Offset of field: BNTypeFieldReference::func"]
5593        [::std::mem::offset_of!(BNTypeFieldReference, func) - 0usize];
5594    ["Offset of field: BNTypeFieldReference::arch"]
5595        [::std::mem::offset_of!(BNTypeFieldReference, arch) - 8usize];
5596    ["Offset of field: BNTypeFieldReference::addr"]
5597        [::std::mem::offset_of!(BNTypeFieldReference, addr) - 16usize];
5598    ["Offset of field: BNTypeFieldReference::size"]
5599        [::std::mem::offset_of!(BNTypeFieldReference, size) - 24usize];
5600    ["Offset of field: BNTypeFieldReference::incomingType"]
5601        [::std::mem::offset_of!(BNTypeFieldReference, incomingType) - 32usize];
5602};
5603impl Default for BNTypeFieldReference {
5604    fn default() -> Self {
5605        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5606        unsafe {
5607            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5608            s.assume_init()
5609        }
5610    }
5611}
5612#[repr(C)]
5613#[derive(Debug, Copy, Clone)]
5614pub struct BNILReferenceSource {
5615    pub func: *mut BNFunction,
5616    pub arch: *mut BNArchitecture,
5617    pub addr: u64,
5618    pub type_: BNFunctionGraphType,
5619    pub exprId: usize,
5620}
5621#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5622const _: () = {
5623    ["Size of BNILReferenceSource"][::std::mem::size_of::<BNILReferenceSource>() - 40usize];
5624    ["Alignment of BNILReferenceSource"][::std::mem::align_of::<BNILReferenceSource>() - 8usize];
5625    ["Offset of field: BNILReferenceSource::func"]
5626        [::std::mem::offset_of!(BNILReferenceSource, func) - 0usize];
5627    ["Offset of field: BNILReferenceSource::arch"]
5628        [::std::mem::offset_of!(BNILReferenceSource, arch) - 8usize];
5629    ["Offset of field: BNILReferenceSource::addr"]
5630        [::std::mem::offset_of!(BNILReferenceSource, addr) - 16usize];
5631    ["Offset of field: BNILReferenceSource::type_"]
5632        [::std::mem::offset_of!(BNILReferenceSource, type_) - 24usize];
5633    ["Offset of field: BNILReferenceSource::exprId"]
5634        [::std::mem::offset_of!(BNILReferenceSource, exprId) - 32usize];
5635};
5636impl Default for BNILReferenceSource {
5637    fn default() -> Self {
5638        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5639        unsafe {
5640            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5641            s.assume_init()
5642        }
5643    }
5644}
5645#[repr(C)]
5646#[derive(Debug, Copy, Clone)]
5647pub struct BNTypeFieldReferenceSizeInfo {
5648    pub offset: u64,
5649    pub sizes: *mut usize,
5650    pub count: usize,
5651}
5652#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5653const _: () = {
5654    ["Size of BNTypeFieldReferenceSizeInfo"]
5655        [::std::mem::size_of::<BNTypeFieldReferenceSizeInfo>() - 24usize];
5656    ["Alignment of BNTypeFieldReferenceSizeInfo"]
5657        [::std::mem::align_of::<BNTypeFieldReferenceSizeInfo>() - 8usize];
5658    ["Offset of field: BNTypeFieldReferenceSizeInfo::offset"]
5659        [::std::mem::offset_of!(BNTypeFieldReferenceSizeInfo, offset) - 0usize];
5660    ["Offset of field: BNTypeFieldReferenceSizeInfo::sizes"]
5661        [::std::mem::offset_of!(BNTypeFieldReferenceSizeInfo, sizes) - 8usize];
5662    ["Offset of field: BNTypeFieldReferenceSizeInfo::count"]
5663        [::std::mem::offset_of!(BNTypeFieldReferenceSizeInfo, count) - 16usize];
5664};
5665impl Default for BNTypeFieldReferenceSizeInfo {
5666    fn default() -> Self {
5667        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5668        unsafe {
5669            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5670            s.assume_init()
5671        }
5672    }
5673}
5674#[repr(C)]
5675#[derive(Debug, Copy, Clone)]
5676pub struct BNTypeFieldReferenceTypeInfo {
5677    pub offset: u64,
5678    pub types: *mut BNTypeWithConfidence,
5679    pub count: usize,
5680}
5681#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5682const _: () = {
5683    ["Size of BNTypeFieldReferenceTypeInfo"]
5684        [::std::mem::size_of::<BNTypeFieldReferenceTypeInfo>() - 24usize];
5685    ["Alignment of BNTypeFieldReferenceTypeInfo"]
5686        [::std::mem::align_of::<BNTypeFieldReferenceTypeInfo>() - 8usize];
5687    ["Offset of field: BNTypeFieldReferenceTypeInfo::offset"]
5688        [::std::mem::offset_of!(BNTypeFieldReferenceTypeInfo, offset) - 0usize];
5689    ["Offset of field: BNTypeFieldReferenceTypeInfo::types"]
5690        [::std::mem::offset_of!(BNTypeFieldReferenceTypeInfo, types) - 8usize];
5691    ["Offset of field: BNTypeFieldReferenceTypeInfo::count"]
5692        [::std::mem::offset_of!(BNTypeFieldReferenceTypeInfo, count) - 16usize];
5693};
5694impl Default for BNTypeFieldReferenceTypeInfo {
5695    fn default() -> Self {
5696        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5697        unsafe {
5698            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5699            s.assume_init()
5700        }
5701    }
5702}
5703#[repr(C)]
5704#[derive(Debug, Copy, Clone)]
5705pub struct BNVariableReferenceSource {
5706    pub var: BNVariable,
5707    pub source: BNILReferenceSource,
5708}
5709#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5710const _: () = {
5711    ["Size of BNVariableReferenceSource"]
5712        [::std::mem::size_of::<BNVariableReferenceSource>() - 56usize];
5713    ["Alignment of BNVariableReferenceSource"]
5714        [::std::mem::align_of::<BNVariableReferenceSource>() - 8usize];
5715    ["Offset of field: BNVariableReferenceSource::var"]
5716        [::std::mem::offset_of!(BNVariableReferenceSource, var) - 0usize];
5717    ["Offset of field: BNVariableReferenceSource::source"]
5718        [::std::mem::offset_of!(BNVariableReferenceSource, source) - 16usize];
5719};
5720impl Default for BNVariableReferenceSource {
5721    fn default() -> Self {
5722        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5723        unsafe {
5724            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5725            s.assume_init()
5726        }
5727    }
5728}
5729#[repr(u8)]
5730#[doc = " This describes how a type is referenced"]
5731#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
5732pub enum BNTypeReferenceType {
5733    #[doc = " Type A contains type B"]
5734    DirectTypeReferenceType = 0,
5735    #[doc = " All other cases, e.g., type A contains a pointer to type B"]
5736    IndirectTypeReferenceType = 1,
5737    #[doc = " The nature of the reference is unknown"]
5738    UnknownTypeReferenceType = 2,
5739}
5740#[repr(C)]
5741#[derive(Debug, Copy, Clone)]
5742pub struct BNTypeReferenceSource {
5743    pub name: BNQualifiedName,
5744    pub offset: u64,
5745    pub type_: BNTypeReferenceType,
5746}
5747#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5748const _: () = {
5749    ["Size of BNTypeReferenceSource"][::std::mem::size_of::<BNTypeReferenceSource>() - 40usize];
5750    ["Alignment of BNTypeReferenceSource"]
5751        [::std::mem::align_of::<BNTypeReferenceSource>() - 8usize];
5752    ["Offset of field: BNTypeReferenceSource::name"]
5753        [::std::mem::offset_of!(BNTypeReferenceSource, name) - 0usize];
5754    ["Offset of field: BNTypeReferenceSource::offset"]
5755        [::std::mem::offset_of!(BNTypeReferenceSource, offset) - 24usize];
5756    ["Offset of field: BNTypeReferenceSource::type_"]
5757        [::std::mem::offset_of!(BNTypeReferenceSource, type_) - 32usize];
5758};
5759impl Default for BNTypeReferenceSource {
5760    fn default() -> Self {
5761        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5762        unsafe {
5763            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5764            s.assume_init()
5765        }
5766    }
5767}
5768#[repr(u8)]
5769#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
5770pub enum BNTagTypeType {
5771    UserTagType = 0,
5772    NotificationTagType = 1,
5773    BookmarksTagType = 2,
5774}
5775#[repr(u8)]
5776#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
5777pub enum BNTagReferenceType {
5778    AddressTagReference = 0,
5779    FunctionTagReference = 1,
5780    DataTagReference = 2,
5781}
5782#[repr(C)]
5783#[derive(Debug, Copy, Clone)]
5784pub struct BNTagReference {
5785    pub refType: BNTagReferenceType,
5786    pub autoDefined: bool,
5787    pub tag: *mut BNTag,
5788    pub arch: *mut BNArchitecture,
5789    pub func: *mut BNFunction,
5790    pub addr: u64,
5791}
5792#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5793const _: () = {
5794    ["Size of BNTagReference"][::std::mem::size_of::<BNTagReference>() - 40usize];
5795    ["Alignment of BNTagReference"][::std::mem::align_of::<BNTagReference>() - 8usize];
5796    ["Offset of field: BNTagReference::refType"]
5797        [::std::mem::offset_of!(BNTagReference, refType) - 0usize];
5798    ["Offset of field: BNTagReference::autoDefined"]
5799        [::std::mem::offset_of!(BNTagReference, autoDefined) - 1usize];
5800    ["Offset of field: BNTagReference::tag"][::std::mem::offset_of!(BNTagReference, tag) - 8usize];
5801    ["Offset of field: BNTagReference::arch"]
5802        [::std::mem::offset_of!(BNTagReference, arch) - 16usize];
5803    ["Offset of field: BNTagReference::func"]
5804        [::std::mem::offset_of!(BNTagReference, func) - 24usize];
5805    ["Offset of field: BNTagReference::addr"]
5806        [::std::mem::offset_of!(BNTagReference, addr) - 32usize];
5807};
5808impl Default for BNTagReference {
5809    fn default() -> Self {
5810        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5811        unsafe {
5812            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5813            s.assume_init()
5814        }
5815    }
5816}
5817#[repr(C)]
5818#[derive(Debug, Copy, Clone)]
5819pub struct BNCallingConventionWithConfidence {
5820    pub convention: *mut BNCallingConvention,
5821    pub confidence: u8,
5822}
5823#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5824const _: () = {
5825    ["Size of BNCallingConventionWithConfidence"]
5826        [::std::mem::size_of::<BNCallingConventionWithConfidence>() - 16usize];
5827    ["Alignment of BNCallingConventionWithConfidence"]
5828        [::std::mem::align_of::<BNCallingConventionWithConfidence>() - 8usize];
5829    ["Offset of field: BNCallingConventionWithConfidence::convention"]
5830        [::std::mem::offset_of!(BNCallingConventionWithConfidence, convention) - 0usize];
5831    ["Offset of field: BNCallingConventionWithConfidence::confidence"]
5832        [::std::mem::offset_of!(BNCallingConventionWithConfidence, confidence) - 8usize];
5833};
5834impl Default for BNCallingConventionWithConfidence {
5835    fn default() -> Self {
5836        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5837        unsafe {
5838            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5839            s.assume_init()
5840        }
5841    }
5842}
5843#[repr(C)]
5844#[derive(Debug, Default, Copy, Clone)]
5845pub struct BNBoolWithConfidence {
5846    pub value: bool,
5847    pub confidence: u8,
5848}
5849#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5850const _: () = {
5851    ["Size of BNBoolWithConfidence"][::std::mem::size_of::<BNBoolWithConfidence>() - 2usize];
5852    ["Alignment of BNBoolWithConfidence"][::std::mem::align_of::<BNBoolWithConfidence>() - 1usize];
5853    ["Offset of field: BNBoolWithConfidence::value"]
5854        [::std::mem::offset_of!(BNBoolWithConfidence, value) - 0usize];
5855    ["Offset of field: BNBoolWithConfidence::confidence"]
5856        [::std::mem::offset_of!(BNBoolWithConfidence, confidence) - 1usize];
5857};
5858#[repr(C)]
5859#[derive(Debug, Default, Copy, Clone)]
5860pub struct BNOffsetWithConfidence {
5861    pub value: i64,
5862    pub confidence: u8,
5863}
5864#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5865const _: () = {
5866    ["Size of BNOffsetWithConfidence"][::std::mem::size_of::<BNOffsetWithConfidence>() - 16usize];
5867    ["Alignment of BNOffsetWithConfidence"]
5868        [::std::mem::align_of::<BNOffsetWithConfidence>() - 8usize];
5869    ["Offset of field: BNOffsetWithConfidence::value"]
5870        [::std::mem::offset_of!(BNOffsetWithConfidence, value) - 0usize];
5871    ["Offset of field: BNOffsetWithConfidence::confidence"]
5872        [::std::mem::offset_of!(BNOffsetWithConfidence, confidence) - 8usize];
5873};
5874#[repr(C)]
5875#[derive(Debug, Copy, Clone)]
5876pub struct BNParameterVariablesWithConfidence {
5877    pub vars: *mut BNVariable,
5878    pub count: usize,
5879    pub confidence: u8,
5880}
5881#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5882const _: () = {
5883    ["Size of BNParameterVariablesWithConfidence"]
5884        [::std::mem::size_of::<BNParameterVariablesWithConfidence>() - 24usize];
5885    ["Alignment of BNParameterVariablesWithConfidence"]
5886        [::std::mem::align_of::<BNParameterVariablesWithConfidence>() - 8usize];
5887    ["Offset of field: BNParameterVariablesWithConfidence::vars"]
5888        [::std::mem::offset_of!(BNParameterVariablesWithConfidence, vars) - 0usize];
5889    ["Offset of field: BNParameterVariablesWithConfidence::count"]
5890        [::std::mem::offset_of!(BNParameterVariablesWithConfidence, count) - 8usize];
5891    ["Offset of field: BNParameterVariablesWithConfidence::confidence"]
5892        [::std::mem::offset_of!(BNParameterVariablesWithConfidence, confidence) - 16usize];
5893};
5894impl Default for BNParameterVariablesWithConfidence {
5895    fn default() -> Self {
5896        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5897        unsafe {
5898            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5899            s.assume_init()
5900        }
5901    }
5902}
5903#[repr(C)]
5904#[derive(Debug, Copy, Clone)]
5905pub struct BNRegisterSetWithConfidence {
5906    pub regs: *mut u32,
5907    pub count: usize,
5908    pub confidence: u8,
5909}
5910#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5911const _: () = {
5912    ["Size of BNRegisterSetWithConfidence"]
5913        [::std::mem::size_of::<BNRegisterSetWithConfidence>() - 24usize];
5914    ["Alignment of BNRegisterSetWithConfidence"]
5915        [::std::mem::align_of::<BNRegisterSetWithConfidence>() - 8usize];
5916    ["Offset of field: BNRegisterSetWithConfidence::regs"]
5917        [::std::mem::offset_of!(BNRegisterSetWithConfidence, regs) - 0usize];
5918    ["Offset of field: BNRegisterSetWithConfidence::count"]
5919        [::std::mem::offset_of!(BNRegisterSetWithConfidence, count) - 8usize];
5920    ["Offset of field: BNRegisterSetWithConfidence::confidence"]
5921        [::std::mem::offset_of!(BNRegisterSetWithConfidence, confidence) - 16usize];
5922};
5923impl Default for BNRegisterSetWithConfidence {
5924    fn default() -> Self {
5925        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5926        unsafe {
5927            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5928            s.assume_init()
5929        }
5930    }
5931}
5932#[repr(C)]
5933#[derive(Debug, Copy, Clone)]
5934pub struct BNFunctionParameter {
5935    pub name: *mut ::std::os::raw::c_char,
5936    pub type_: *mut BNType,
5937    pub typeConfidence: u8,
5938    pub defaultLocation: bool,
5939    pub location: BNVariable,
5940}
5941#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5942const _: () = {
5943    ["Size of BNFunctionParameter"][::std::mem::size_of::<BNFunctionParameter>() - 40usize];
5944    ["Alignment of BNFunctionParameter"][::std::mem::align_of::<BNFunctionParameter>() - 8usize];
5945    ["Offset of field: BNFunctionParameter::name"]
5946        [::std::mem::offset_of!(BNFunctionParameter, name) - 0usize];
5947    ["Offset of field: BNFunctionParameter::type_"]
5948        [::std::mem::offset_of!(BNFunctionParameter, type_) - 8usize];
5949    ["Offset of field: BNFunctionParameter::typeConfidence"]
5950        [::std::mem::offset_of!(BNFunctionParameter, typeConfidence) - 16usize];
5951    ["Offset of field: BNFunctionParameter::defaultLocation"]
5952        [::std::mem::offset_of!(BNFunctionParameter, defaultLocation) - 17usize];
5953    ["Offset of field: BNFunctionParameter::location"]
5954        [::std::mem::offset_of!(BNFunctionParameter, location) - 24usize];
5955};
5956impl Default for BNFunctionParameter {
5957    fn default() -> Self {
5958        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5959        unsafe {
5960            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5961            s.assume_init()
5962        }
5963    }
5964}
5965#[repr(C)]
5966#[derive(Debug, Copy, Clone)]
5967pub struct BNQualifiedNameAndType {
5968    pub name: BNQualifiedName,
5969    pub type_: *mut BNType,
5970}
5971#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5972const _: () = {
5973    ["Size of BNQualifiedNameAndType"][::std::mem::size_of::<BNQualifiedNameAndType>() - 32usize];
5974    ["Alignment of BNQualifiedNameAndType"]
5975        [::std::mem::align_of::<BNQualifiedNameAndType>() - 8usize];
5976    ["Offset of field: BNQualifiedNameAndType::name"]
5977        [::std::mem::offset_of!(BNQualifiedNameAndType, name) - 0usize];
5978    ["Offset of field: BNQualifiedNameAndType::type_"]
5979        [::std::mem::offset_of!(BNQualifiedNameAndType, type_) - 24usize];
5980};
5981impl Default for BNQualifiedNameAndType {
5982    fn default() -> Self {
5983        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5984        unsafe {
5985            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5986            s.assume_init()
5987        }
5988    }
5989}
5990#[repr(C)]
5991#[derive(Debug, Copy, Clone)]
5992pub struct BNQualifiedNameTypeAndId {
5993    pub name: BNQualifiedName,
5994    pub id: *mut ::std::os::raw::c_char,
5995    pub type_: *mut BNType,
5996}
5997#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5998const _: () = {
5999    ["Size of BNQualifiedNameTypeAndId"]
6000        [::std::mem::size_of::<BNQualifiedNameTypeAndId>() - 40usize];
6001    ["Alignment of BNQualifiedNameTypeAndId"]
6002        [::std::mem::align_of::<BNQualifiedNameTypeAndId>() - 8usize];
6003    ["Offset of field: BNQualifiedNameTypeAndId::name"]
6004        [::std::mem::offset_of!(BNQualifiedNameTypeAndId, name) - 0usize];
6005    ["Offset of field: BNQualifiedNameTypeAndId::id"]
6006        [::std::mem::offset_of!(BNQualifiedNameTypeAndId, id) - 24usize];
6007    ["Offset of field: BNQualifiedNameTypeAndId::type_"]
6008        [::std::mem::offset_of!(BNQualifiedNameTypeAndId, type_) - 32usize];
6009};
6010impl Default for BNQualifiedNameTypeAndId {
6011    fn default() -> Self {
6012        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6013        unsafe {
6014            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6015            s.assume_init()
6016        }
6017    }
6018}
6019#[repr(C)]
6020#[derive(Debug, Copy, Clone)]
6021pub struct BNStructureMember {
6022    pub type_: *mut BNType,
6023    pub name: *mut ::std::os::raw::c_char,
6024    pub offset: u64,
6025    pub typeConfidence: u8,
6026    pub access: BNMemberAccess,
6027    pub scope: BNMemberScope,
6028    pub bitPosition: u8,
6029    pub bitWidth: u8,
6030}
6031#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6032const _: () = {
6033    ["Size of BNStructureMember"][::std::mem::size_of::<BNStructureMember>() - 32usize];
6034    ["Alignment of BNStructureMember"][::std::mem::align_of::<BNStructureMember>() - 8usize];
6035    ["Offset of field: BNStructureMember::type_"]
6036        [::std::mem::offset_of!(BNStructureMember, type_) - 0usize];
6037    ["Offset of field: BNStructureMember::name"]
6038        [::std::mem::offset_of!(BNStructureMember, name) - 8usize];
6039    ["Offset of field: BNStructureMember::offset"]
6040        [::std::mem::offset_of!(BNStructureMember, offset) - 16usize];
6041    ["Offset of field: BNStructureMember::typeConfidence"]
6042        [::std::mem::offset_of!(BNStructureMember, typeConfidence) - 24usize];
6043    ["Offset of field: BNStructureMember::access"]
6044        [::std::mem::offset_of!(BNStructureMember, access) - 25usize];
6045    ["Offset of field: BNStructureMember::scope"]
6046        [::std::mem::offset_of!(BNStructureMember, scope) - 26usize];
6047    ["Offset of field: BNStructureMember::bitPosition"]
6048        [::std::mem::offset_of!(BNStructureMember, bitPosition) - 27usize];
6049    ["Offset of field: BNStructureMember::bitWidth"]
6050        [::std::mem::offset_of!(BNStructureMember, bitWidth) - 28usize];
6051};
6052impl Default for BNStructureMember {
6053    fn default() -> Self {
6054        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6055        unsafe {
6056            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6057            s.assume_init()
6058        }
6059    }
6060}
6061#[repr(C)]
6062#[derive(Debug, Copy, Clone)]
6063pub struct BNInheritedStructureMember {
6064    pub base: *mut BNNamedTypeReference,
6065    pub baseOffset: u64,
6066    pub member: BNStructureMember,
6067    pub memberIndex: usize,
6068}
6069#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6070const _: () = {
6071    ["Size of BNInheritedStructureMember"]
6072        [::std::mem::size_of::<BNInheritedStructureMember>() - 56usize];
6073    ["Alignment of BNInheritedStructureMember"]
6074        [::std::mem::align_of::<BNInheritedStructureMember>() - 8usize];
6075    ["Offset of field: BNInheritedStructureMember::base"]
6076        [::std::mem::offset_of!(BNInheritedStructureMember, base) - 0usize];
6077    ["Offset of field: BNInheritedStructureMember::baseOffset"]
6078        [::std::mem::offset_of!(BNInheritedStructureMember, baseOffset) - 8usize];
6079    ["Offset of field: BNInheritedStructureMember::member"]
6080        [::std::mem::offset_of!(BNInheritedStructureMember, member) - 16usize];
6081    ["Offset of field: BNInheritedStructureMember::memberIndex"]
6082        [::std::mem::offset_of!(BNInheritedStructureMember, memberIndex) - 48usize];
6083};
6084impl Default for BNInheritedStructureMember {
6085    fn default() -> Self {
6086        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6087        unsafe {
6088            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6089            s.assume_init()
6090        }
6091    }
6092}
6093#[repr(C)]
6094#[derive(Debug, Copy, Clone)]
6095pub struct BNBaseStructure {
6096    pub type_: *mut BNNamedTypeReference,
6097    pub offset: u64,
6098    pub width: u64,
6099}
6100#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6101const _: () = {
6102    ["Size of BNBaseStructure"][::std::mem::size_of::<BNBaseStructure>() - 24usize];
6103    ["Alignment of BNBaseStructure"][::std::mem::align_of::<BNBaseStructure>() - 8usize];
6104    ["Offset of field: BNBaseStructure::type_"]
6105        [::std::mem::offset_of!(BNBaseStructure, type_) - 0usize];
6106    ["Offset of field: BNBaseStructure::offset"]
6107        [::std::mem::offset_of!(BNBaseStructure, offset) - 8usize];
6108    ["Offset of field: BNBaseStructure::width"]
6109        [::std::mem::offset_of!(BNBaseStructure, width) - 16usize];
6110};
6111impl Default for BNBaseStructure {
6112    fn default() -> Self {
6113        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6114        unsafe {
6115            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6116            s.assume_init()
6117        }
6118    }
6119}
6120#[repr(C)]
6121#[derive(Debug, Copy, Clone)]
6122pub struct BNEnumerationMember {
6123    pub name: *mut ::std::os::raw::c_char,
6124    pub value: u64,
6125    pub isDefault: bool,
6126}
6127#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6128const _: () = {
6129    ["Size of BNEnumerationMember"][::std::mem::size_of::<BNEnumerationMember>() - 24usize];
6130    ["Alignment of BNEnumerationMember"][::std::mem::align_of::<BNEnumerationMember>() - 8usize];
6131    ["Offset of field: BNEnumerationMember::name"]
6132        [::std::mem::offset_of!(BNEnumerationMember, name) - 0usize];
6133    ["Offset of field: BNEnumerationMember::value"]
6134        [::std::mem::offset_of!(BNEnumerationMember, value) - 8usize];
6135    ["Offset of field: BNEnumerationMember::isDefault"]
6136        [::std::mem::offset_of!(BNEnumerationMember, isDefault) - 16usize];
6137};
6138impl Default for BNEnumerationMember {
6139    fn default() -> Self {
6140        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6141        unsafe {
6142            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6143            s.assume_init()
6144        }
6145    }
6146}
6147#[repr(C)]
6148#[derive(Debug, Copy, Clone)]
6149pub struct BNFunctionRecognizer {
6150    pub context: *mut ::std::os::raw::c_void,
6151    pub recognizeLowLevelIL: ::std::option::Option<
6152        unsafe extern "C" fn(
6153            ctxt: *mut ::std::os::raw::c_void,
6154            data: *mut BNBinaryView,
6155            func: *mut BNFunction,
6156            il: *mut BNLowLevelILFunction,
6157        ) -> bool,
6158    >,
6159    pub recognizeMediumLevelIL: ::std::option::Option<
6160        unsafe extern "C" fn(
6161            ctxt: *mut ::std::os::raw::c_void,
6162            data: *mut BNBinaryView,
6163            func: *mut BNFunction,
6164            il: *mut BNMediumLevelILFunction,
6165        ) -> bool,
6166    >,
6167}
6168#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6169const _: () = {
6170    ["Size of BNFunctionRecognizer"][::std::mem::size_of::<BNFunctionRecognizer>() - 24usize];
6171    ["Alignment of BNFunctionRecognizer"][::std::mem::align_of::<BNFunctionRecognizer>() - 8usize];
6172    ["Offset of field: BNFunctionRecognizer::context"]
6173        [::std::mem::offset_of!(BNFunctionRecognizer, context) - 0usize];
6174    ["Offset of field: BNFunctionRecognizer::recognizeLowLevelIL"]
6175        [::std::mem::offset_of!(BNFunctionRecognizer, recognizeLowLevelIL) - 8usize];
6176    ["Offset of field: BNFunctionRecognizer::recognizeMediumLevelIL"]
6177        [::std::mem::offset_of!(BNFunctionRecognizer, recognizeMediumLevelIL) - 16usize];
6178};
6179impl Default for BNFunctionRecognizer {
6180    fn default() -> Self {
6181        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6182        unsafe {
6183            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6184            s.assume_init()
6185        }
6186    }
6187}
6188#[repr(C)]
6189#[derive(Debug, Copy, Clone)]
6190pub struct BNCustomRelocationHandler {
6191    pub context: *mut ::std::os::raw::c_void,
6192    pub freeObject: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
6193    pub getRelocationInfo: ::std::option::Option<
6194        unsafe extern "C" fn(
6195            ctxt: *mut ::std::os::raw::c_void,
6196            view: *mut BNBinaryView,
6197            arch: *mut BNArchitecture,
6198            result: *mut BNRelocationInfo,
6199            resultCount: usize,
6200        ) -> bool,
6201    >,
6202    pub applyRelocation: ::std::option::Option<
6203        unsafe extern "C" fn(
6204            ctxt: *mut ::std::os::raw::c_void,
6205            view: *mut BNBinaryView,
6206            arch: *mut BNArchitecture,
6207            reloc: *mut BNRelocation,
6208            dest: *mut u8,
6209            len: usize,
6210        ) -> bool,
6211    >,
6212    pub getOperandForExternalRelocation: ::std::option::Option<
6213        unsafe extern "C" fn(
6214            ctxt: *mut ::std::os::raw::c_void,
6215            data: *const u8,
6216            addr: u64,
6217            length: usize,
6218            il: *mut BNLowLevelILFunction,
6219            relocation: *mut BNRelocation,
6220        ) -> usize,
6221    >,
6222}
6223#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6224const _: () = {
6225    ["Size of BNCustomRelocationHandler"]
6226        [::std::mem::size_of::<BNCustomRelocationHandler>() - 40usize];
6227    ["Alignment of BNCustomRelocationHandler"]
6228        [::std::mem::align_of::<BNCustomRelocationHandler>() - 8usize];
6229    ["Offset of field: BNCustomRelocationHandler::context"]
6230        [::std::mem::offset_of!(BNCustomRelocationHandler, context) - 0usize];
6231    ["Offset of field: BNCustomRelocationHandler::freeObject"]
6232        [::std::mem::offset_of!(BNCustomRelocationHandler, freeObject) - 8usize];
6233    ["Offset of field: BNCustomRelocationHandler::getRelocationInfo"]
6234        [::std::mem::offset_of!(BNCustomRelocationHandler, getRelocationInfo) - 16usize];
6235    ["Offset of field: BNCustomRelocationHandler::applyRelocation"]
6236        [::std::mem::offset_of!(BNCustomRelocationHandler, applyRelocation) - 24usize];
6237    ["Offset of field: BNCustomRelocationHandler::getOperandForExternalRelocation"][::std::mem::offset_of!(
6238        BNCustomRelocationHandler,
6239        getOperandForExternalRelocation
6240    ) - 32usize];
6241};
6242impl Default for BNCustomRelocationHandler {
6243    fn default() -> Self {
6244        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6245        unsafe {
6246            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6247            s.assume_init()
6248        }
6249    }
6250}
6251#[repr(u8)]
6252#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
6253pub enum BNTypeParserOption {
6254    IncludeSystemTypes = 0,
6255    BuiltinMacros = 1,
6256}
6257#[repr(C)]
6258#[derive(Debug, Copy, Clone)]
6259pub struct BNParsedType {
6260    pub name: BNQualifiedName,
6261    pub type_: *mut BNType,
6262    pub isUser: bool,
6263}
6264#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6265const _: () = {
6266    ["Size of BNParsedType"][::std::mem::size_of::<BNParsedType>() - 40usize];
6267    ["Alignment of BNParsedType"][::std::mem::align_of::<BNParsedType>() - 8usize];
6268    ["Offset of field: BNParsedType::name"][::std::mem::offset_of!(BNParsedType, name) - 0usize];
6269    ["Offset of field: BNParsedType::type_"][::std::mem::offset_of!(BNParsedType, type_) - 24usize];
6270    ["Offset of field: BNParsedType::isUser"]
6271        [::std::mem::offset_of!(BNParsedType, isUser) - 32usize];
6272};
6273impl Default for BNParsedType {
6274    fn default() -> Self {
6275        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6276        unsafe {
6277            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6278            s.assume_init()
6279        }
6280    }
6281}
6282#[repr(C)]
6283#[derive(Debug, Copy, Clone)]
6284pub struct BNTypeParserResult {
6285    pub types: *mut BNParsedType,
6286    pub variables: *mut BNParsedType,
6287    pub functions: *mut BNParsedType,
6288    pub typeCount: usize,
6289    pub variableCount: usize,
6290    pub functionCount: usize,
6291}
6292#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6293const _: () = {
6294    ["Size of BNTypeParserResult"][::std::mem::size_of::<BNTypeParserResult>() - 48usize];
6295    ["Alignment of BNTypeParserResult"][::std::mem::align_of::<BNTypeParserResult>() - 8usize];
6296    ["Offset of field: BNTypeParserResult::types"]
6297        [::std::mem::offset_of!(BNTypeParserResult, types) - 0usize];
6298    ["Offset of field: BNTypeParserResult::variables"]
6299        [::std::mem::offset_of!(BNTypeParserResult, variables) - 8usize];
6300    ["Offset of field: BNTypeParserResult::functions"]
6301        [::std::mem::offset_of!(BNTypeParserResult, functions) - 16usize];
6302    ["Offset of field: BNTypeParserResult::typeCount"]
6303        [::std::mem::offset_of!(BNTypeParserResult, typeCount) - 24usize];
6304    ["Offset of field: BNTypeParserResult::variableCount"]
6305        [::std::mem::offset_of!(BNTypeParserResult, variableCount) - 32usize];
6306    ["Offset of field: BNTypeParserResult::functionCount"]
6307        [::std::mem::offset_of!(BNTypeParserResult, functionCount) - 40usize];
6308};
6309impl Default for BNTypeParserResult {
6310    fn default() -> Self {
6311        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6312        unsafe {
6313            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6314            s.assume_init()
6315        }
6316    }
6317}
6318#[repr(u8)]
6319#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
6320pub enum BNTypeParserErrorSeverity {
6321    IgnoredSeverity = 0,
6322    NoteSeverity = 1,
6323    RemarkSeverity = 2,
6324    WarningSeverity = 3,
6325    ErrorSeverity = 4,
6326    FatalSeverity = 5,
6327}
6328#[repr(C)]
6329#[derive(Debug, Copy, Clone)]
6330pub struct BNTypeParserError {
6331    pub severity: BNTypeParserErrorSeverity,
6332    pub message: *mut ::std::os::raw::c_char,
6333    pub fileName: *mut ::std::os::raw::c_char,
6334    pub line: u64,
6335    pub column: u64,
6336}
6337#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6338const _: () = {
6339    ["Size of BNTypeParserError"][::std::mem::size_of::<BNTypeParserError>() - 40usize];
6340    ["Alignment of BNTypeParserError"][::std::mem::align_of::<BNTypeParserError>() - 8usize];
6341    ["Offset of field: BNTypeParserError::severity"]
6342        [::std::mem::offset_of!(BNTypeParserError, severity) - 0usize];
6343    ["Offset of field: BNTypeParserError::message"]
6344        [::std::mem::offset_of!(BNTypeParserError, message) - 8usize];
6345    ["Offset of field: BNTypeParserError::fileName"]
6346        [::std::mem::offset_of!(BNTypeParserError, fileName) - 16usize];
6347    ["Offset of field: BNTypeParserError::line"]
6348        [::std::mem::offset_of!(BNTypeParserError, line) - 24usize];
6349    ["Offset of field: BNTypeParserError::column"]
6350        [::std::mem::offset_of!(BNTypeParserError, column) - 32usize];
6351};
6352impl Default for BNTypeParserError {
6353    fn default() -> Self {
6354        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6355        unsafe {
6356            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6357            s.assume_init()
6358        }
6359    }
6360}
6361#[repr(C)]
6362#[derive(Debug, Copy, Clone)]
6363pub struct BNQualifiedNameList {
6364    pub names: *mut BNQualifiedName,
6365    pub count: usize,
6366}
6367#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6368const _: () = {
6369    ["Size of BNQualifiedNameList"][::std::mem::size_of::<BNQualifiedNameList>() - 16usize];
6370    ["Alignment of BNQualifiedNameList"][::std::mem::align_of::<BNQualifiedNameList>() - 8usize];
6371    ["Offset of field: BNQualifiedNameList::names"]
6372        [::std::mem::offset_of!(BNQualifiedNameList, names) - 0usize];
6373    ["Offset of field: BNQualifiedNameList::count"]
6374        [::std::mem::offset_of!(BNQualifiedNameList, count) - 8usize];
6375};
6376impl Default for BNQualifiedNameList {
6377    fn default() -> Self {
6378        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6379        unsafe {
6380            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6381            s.assume_init()
6382        }
6383    }
6384}
6385#[repr(u8)]
6386#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
6387pub enum BNUpdateResult {
6388    UpdateFailed = 0,
6389    UpdateSuccess = 1,
6390    AlreadyUpToDate = 2,
6391    UpdateAvailable = 3,
6392}
6393#[repr(C)]
6394#[derive(Debug, Copy, Clone)]
6395pub struct BNUpdateChannel {
6396    pub name: *mut ::std::os::raw::c_char,
6397    pub description: *mut ::std::os::raw::c_char,
6398    pub latestVersion: *mut ::std::os::raw::c_char,
6399}
6400#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6401const _: () = {
6402    ["Size of BNUpdateChannel"][::std::mem::size_of::<BNUpdateChannel>() - 24usize];
6403    ["Alignment of BNUpdateChannel"][::std::mem::align_of::<BNUpdateChannel>() - 8usize];
6404    ["Offset of field: BNUpdateChannel::name"]
6405        [::std::mem::offset_of!(BNUpdateChannel, name) - 0usize];
6406    ["Offset of field: BNUpdateChannel::description"]
6407        [::std::mem::offset_of!(BNUpdateChannel, description) - 8usize];
6408    ["Offset of field: BNUpdateChannel::latestVersion"]
6409        [::std::mem::offset_of!(BNUpdateChannel, latestVersion) - 16usize];
6410};
6411impl Default for BNUpdateChannel {
6412    fn default() -> Self {
6413        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6414        unsafe {
6415            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6416            s.assume_init()
6417        }
6418    }
6419}
6420#[repr(C)]
6421#[derive(Debug, Copy, Clone)]
6422pub struct BNChangelogEntry {
6423    pub version: BNVersionInfo,
6424    pub notes: *mut ::std::os::raw::c_char,
6425    pub time: u64,
6426}
6427#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6428const _: () = {
6429    ["Size of BNChangelogEntry"][::std::mem::size_of::<BNChangelogEntry>() - 40usize];
6430    ["Alignment of BNChangelogEntry"][::std::mem::align_of::<BNChangelogEntry>() - 8usize];
6431    ["Offset of field: BNChangelogEntry::version"]
6432        [::std::mem::offset_of!(BNChangelogEntry, version) - 0usize];
6433    ["Offset of field: BNChangelogEntry::notes"]
6434        [::std::mem::offset_of!(BNChangelogEntry, notes) - 24usize];
6435    ["Offset of field: BNChangelogEntry::time"]
6436        [::std::mem::offset_of!(BNChangelogEntry, time) - 32usize];
6437};
6438impl Default for BNChangelogEntry {
6439    fn default() -> Self {
6440        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6441        unsafe {
6442            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6443            s.assume_init()
6444        }
6445    }
6446}
6447#[repr(C)]
6448#[derive(Debug, Copy, Clone)]
6449pub struct BNUpdateVersionNew {
6450    pub version: BNVersionInfo,
6451    pub name: *mut ::std::os::raw::c_char,
6452    pub time: u64,
6453}
6454#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6455const _: () = {
6456    ["Size of BNUpdateVersionNew"][::std::mem::size_of::<BNUpdateVersionNew>() - 40usize];
6457    ["Alignment of BNUpdateVersionNew"][::std::mem::align_of::<BNUpdateVersionNew>() - 8usize];
6458    ["Offset of field: BNUpdateVersionNew::version"]
6459        [::std::mem::offset_of!(BNUpdateVersionNew, version) - 0usize];
6460    ["Offset of field: BNUpdateVersionNew::name"]
6461        [::std::mem::offset_of!(BNUpdateVersionNew, name) - 24usize];
6462    ["Offset of field: BNUpdateVersionNew::time"]
6463        [::std::mem::offset_of!(BNUpdateVersionNew, time) - 32usize];
6464};
6465impl Default for BNUpdateVersionNew {
6466    fn default() -> Self {
6467        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6468        unsafe {
6469            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6470            s.assume_init()
6471        }
6472    }
6473}
6474#[repr(C)]
6475#[derive(Debug, Copy, Clone)]
6476pub struct BNUpdateChannelFullInfo {
6477    pub versions: *mut BNUpdateVersionNew,
6478    pub versionCount: u64,
6479    pub changelogEntries: *mut BNChangelogEntry,
6480    pub changelogEntryCount: u64,
6481    pub name: *mut ::std::os::raw::c_char,
6482    pub desc: *mut ::std::os::raw::c_char,
6483    pub latestVersion: *mut ::std::os::raw::c_char,
6484}
6485#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6486const _: () = {
6487    ["Size of BNUpdateChannelFullInfo"][::std::mem::size_of::<BNUpdateChannelFullInfo>() - 56usize];
6488    ["Alignment of BNUpdateChannelFullInfo"]
6489        [::std::mem::align_of::<BNUpdateChannelFullInfo>() - 8usize];
6490    ["Offset of field: BNUpdateChannelFullInfo::versions"]
6491        [::std::mem::offset_of!(BNUpdateChannelFullInfo, versions) - 0usize];
6492    ["Offset of field: BNUpdateChannelFullInfo::versionCount"]
6493        [::std::mem::offset_of!(BNUpdateChannelFullInfo, versionCount) - 8usize];
6494    ["Offset of field: BNUpdateChannelFullInfo::changelogEntries"]
6495        [::std::mem::offset_of!(BNUpdateChannelFullInfo, changelogEntries) - 16usize];
6496    ["Offset of field: BNUpdateChannelFullInfo::changelogEntryCount"]
6497        [::std::mem::offset_of!(BNUpdateChannelFullInfo, changelogEntryCount) - 24usize];
6498    ["Offset of field: BNUpdateChannelFullInfo::name"]
6499        [::std::mem::offset_of!(BNUpdateChannelFullInfo, name) - 32usize];
6500    ["Offset of field: BNUpdateChannelFullInfo::desc"]
6501        [::std::mem::offset_of!(BNUpdateChannelFullInfo, desc) - 40usize];
6502    ["Offset of field: BNUpdateChannelFullInfo::latestVersion"]
6503        [::std::mem::offset_of!(BNUpdateChannelFullInfo, latestVersion) - 48usize];
6504};
6505impl Default for BNUpdateChannelFullInfo {
6506    fn default() -> Self {
6507        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6508        unsafe {
6509            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6510            s.assume_init()
6511        }
6512    }
6513}
6514#[repr(C)]
6515#[derive(Debug, Copy, Clone)]
6516pub struct BNUpdateVersion {
6517    pub version: *mut ::std::os::raw::c_char,
6518    pub notes: *mut ::std::os::raw::c_char,
6519    pub time: u64,
6520}
6521#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6522const _: () = {
6523    ["Size of BNUpdateVersion"][::std::mem::size_of::<BNUpdateVersion>() - 24usize];
6524    ["Alignment of BNUpdateVersion"][::std::mem::align_of::<BNUpdateVersion>() - 8usize];
6525    ["Offset of field: BNUpdateVersion::version"]
6526        [::std::mem::offset_of!(BNUpdateVersion, version) - 0usize];
6527    ["Offset of field: BNUpdateVersion::notes"]
6528        [::std::mem::offset_of!(BNUpdateVersion, notes) - 8usize];
6529    ["Offset of field: BNUpdateVersion::time"]
6530        [::std::mem::offset_of!(BNUpdateVersion, time) - 16usize];
6531};
6532impl Default for BNUpdateVersion {
6533    fn default() -> Self {
6534        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6535        unsafe {
6536            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6537            s.assume_init()
6538        }
6539    }
6540}
6541#[repr(C)]
6542#[derive(Debug, Copy, Clone)]
6543pub struct BNStringReference {
6544    pub type_: BNStringType,
6545    pub start: u64,
6546    pub length: usize,
6547}
6548#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6549const _: () = {
6550    ["Size of BNStringReference"][::std::mem::size_of::<BNStringReference>() - 24usize];
6551    ["Alignment of BNStringReference"][::std::mem::align_of::<BNStringReference>() - 8usize];
6552    ["Offset of field: BNStringReference::type_"]
6553        [::std::mem::offset_of!(BNStringReference, type_) - 0usize];
6554    ["Offset of field: BNStringReference::start"]
6555        [::std::mem::offset_of!(BNStringReference, start) - 8usize];
6556    ["Offset of field: BNStringReference::length"]
6557        [::std::mem::offset_of!(BNStringReference, length) - 16usize];
6558};
6559impl Default for BNStringReference {
6560    fn default() -> Self {
6561        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6562        unsafe {
6563            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6564            s.assume_init()
6565        }
6566    }
6567}
6568#[repr(u8)]
6569#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
6570pub enum BNPluginCommandType {
6571    DefaultPluginCommand = 0,
6572    AddressPluginCommand = 1,
6573    RangePluginCommand = 2,
6574    FunctionPluginCommand = 3,
6575    LowLevelILFunctionPluginCommand = 4,
6576    LowLevelILInstructionPluginCommand = 5,
6577    MediumLevelILFunctionPluginCommand = 6,
6578    MediumLevelILInstructionPluginCommand = 7,
6579    HighLevelILFunctionPluginCommand = 8,
6580    HighLevelILInstructionPluginCommand = 9,
6581    ProjectPluginCommand = 10,
6582    GlobalPluginCommand = 11,
6583}
6584#[repr(C)]
6585#[derive(Debug, Copy, Clone)]
6586pub struct BNPluginCommand {
6587    pub name: *mut ::std::os::raw::c_char,
6588    pub description: *mut ::std::os::raw::c_char,
6589    pub type_: BNPluginCommandType,
6590    pub context: *mut ::std::os::raw::c_void,
6591    pub globalCommand:
6592        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
6593    pub defaultCommand: ::std::option::Option<
6594        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, view: *mut BNBinaryView),
6595    >,
6596    pub addressCommand: ::std::option::Option<
6597        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, view: *mut BNBinaryView, addr: u64),
6598    >,
6599    pub rangeCommand: ::std::option::Option<
6600        unsafe extern "C" fn(
6601            ctxt: *mut ::std::os::raw::c_void,
6602            view: *mut BNBinaryView,
6603            addr: u64,
6604            len: u64,
6605        ),
6606    >,
6607    pub functionCommand: ::std::option::Option<
6608        unsafe extern "C" fn(
6609            ctxt: *mut ::std::os::raw::c_void,
6610            view: *mut BNBinaryView,
6611            func: *mut BNFunction,
6612        ),
6613    >,
6614    pub lowLevelILFunctionCommand: ::std::option::Option<
6615        unsafe extern "C" fn(
6616            ctxt: *mut ::std::os::raw::c_void,
6617            view: *mut BNBinaryView,
6618            func: *mut BNLowLevelILFunction,
6619        ),
6620    >,
6621    pub lowLevelILInstructionCommand: ::std::option::Option<
6622        unsafe extern "C" fn(
6623            ctxt: *mut ::std::os::raw::c_void,
6624            view: *mut BNBinaryView,
6625            func: *mut BNLowLevelILFunction,
6626            instr: usize,
6627        ),
6628    >,
6629    pub mediumLevelILFunctionCommand: ::std::option::Option<
6630        unsafe extern "C" fn(
6631            ctxt: *mut ::std::os::raw::c_void,
6632            view: *mut BNBinaryView,
6633            func: *mut BNMediumLevelILFunction,
6634        ),
6635    >,
6636    pub mediumLevelILInstructionCommand: ::std::option::Option<
6637        unsafe extern "C" fn(
6638            ctxt: *mut ::std::os::raw::c_void,
6639            view: *mut BNBinaryView,
6640            func: *mut BNMediumLevelILFunction,
6641            instr: usize,
6642        ),
6643    >,
6644    pub highLevelILFunctionCommand: ::std::option::Option<
6645        unsafe extern "C" fn(
6646            ctxt: *mut ::std::os::raw::c_void,
6647            view: *mut BNBinaryView,
6648            func: *mut BNHighLevelILFunction,
6649        ),
6650    >,
6651    pub highLevelILInstructionCommand: ::std::option::Option<
6652        unsafe extern "C" fn(
6653            ctxt: *mut ::std::os::raw::c_void,
6654            view: *mut BNBinaryView,
6655            func: *mut BNHighLevelILFunction,
6656            instr: usize,
6657        ),
6658    >,
6659    pub projectCommand: ::std::option::Option<
6660        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, view: *mut BNProject),
6661    >,
6662    pub globalIsValid:
6663        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
6664    pub defaultIsValid: ::std::option::Option<
6665        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, view: *mut BNBinaryView) -> bool,
6666    >,
6667    pub addressIsValid: ::std::option::Option<
6668        unsafe extern "C" fn(
6669            ctxt: *mut ::std::os::raw::c_void,
6670            view: *mut BNBinaryView,
6671            addr: u64,
6672        ) -> bool,
6673    >,
6674    pub rangeIsValid: ::std::option::Option<
6675        unsafe extern "C" fn(
6676            ctxt: *mut ::std::os::raw::c_void,
6677            view: *mut BNBinaryView,
6678            addr: u64,
6679            len: u64,
6680        ) -> bool,
6681    >,
6682    pub functionIsValid: ::std::option::Option<
6683        unsafe extern "C" fn(
6684            ctxt: *mut ::std::os::raw::c_void,
6685            view: *mut BNBinaryView,
6686            func: *mut BNFunction,
6687        ) -> bool,
6688    >,
6689    pub lowLevelILFunctionIsValid: ::std::option::Option<
6690        unsafe extern "C" fn(
6691            ctxt: *mut ::std::os::raw::c_void,
6692            view: *mut BNBinaryView,
6693            func: *mut BNLowLevelILFunction,
6694        ) -> bool,
6695    >,
6696    pub lowLevelILInstructionIsValid: ::std::option::Option<
6697        unsafe extern "C" fn(
6698            ctxt: *mut ::std::os::raw::c_void,
6699            view: *mut BNBinaryView,
6700            func: *mut BNLowLevelILFunction,
6701            instr: usize,
6702        ) -> bool,
6703    >,
6704    pub mediumLevelILFunctionIsValid: ::std::option::Option<
6705        unsafe extern "C" fn(
6706            ctxt: *mut ::std::os::raw::c_void,
6707            view: *mut BNBinaryView,
6708            func: *mut BNMediumLevelILFunction,
6709        ) -> bool,
6710    >,
6711    pub mediumLevelILInstructionIsValid: ::std::option::Option<
6712        unsafe extern "C" fn(
6713            ctxt: *mut ::std::os::raw::c_void,
6714            view: *mut BNBinaryView,
6715            func: *mut BNMediumLevelILFunction,
6716            instr: usize,
6717        ) -> bool,
6718    >,
6719    pub highLevelILFunctionIsValid: ::std::option::Option<
6720        unsafe extern "C" fn(
6721            ctxt: *mut ::std::os::raw::c_void,
6722            view: *mut BNBinaryView,
6723            func: *mut BNHighLevelILFunction,
6724        ) -> bool,
6725    >,
6726    pub highLevelILInstructionIsValid: ::std::option::Option<
6727        unsafe extern "C" fn(
6728            ctxt: *mut ::std::os::raw::c_void,
6729            view: *mut BNBinaryView,
6730            func: *mut BNHighLevelILFunction,
6731            instr: usize,
6732        ) -> bool,
6733    >,
6734    pub projectIsValid: ::std::option::Option<
6735        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, view: *mut BNProject) -> bool,
6736    >,
6737}
6738#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6739const _: () = {
6740    ["Size of BNPluginCommand"][::std::mem::size_of::<BNPluginCommand>() - 224usize];
6741    ["Alignment of BNPluginCommand"][::std::mem::align_of::<BNPluginCommand>() - 8usize];
6742    ["Offset of field: BNPluginCommand::name"]
6743        [::std::mem::offset_of!(BNPluginCommand, name) - 0usize];
6744    ["Offset of field: BNPluginCommand::description"]
6745        [::std::mem::offset_of!(BNPluginCommand, description) - 8usize];
6746    ["Offset of field: BNPluginCommand::type_"]
6747        [::std::mem::offset_of!(BNPluginCommand, type_) - 16usize];
6748    ["Offset of field: BNPluginCommand::context"]
6749        [::std::mem::offset_of!(BNPluginCommand, context) - 24usize];
6750    ["Offset of field: BNPluginCommand::globalCommand"]
6751        [::std::mem::offset_of!(BNPluginCommand, globalCommand) - 32usize];
6752    ["Offset of field: BNPluginCommand::defaultCommand"]
6753        [::std::mem::offset_of!(BNPluginCommand, defaultCommand) - 40usize];
6754    ["Offset of field: BNPluginCommand::addressCommand"]
6755        [::std::mem::offset_of!(BNPluginCommand, addressCommand) - 48usize];
6756    ["Offset of field: BNPluginCommand::rangeCommand"]
6757        [::std::mem::offset_of!(BNPluginCommand, rangeCommand) - 56usize];
6758    ["Offset of field: BNPluginCommand::functionCommand"]
6759        [::std::mem::offset_of!(BNPluginCommand, functionCommand) - 64usize];
6760    ["Offset of field: BNPluginCommand::lowLevelILFunctionCommand"]
6761        [::std::mem::offset_of!(BNPluginCommand, lowLevelILFunctionCommand) - 72usize];
6762    ["Offset of field: BNPluginCommand::lowLevelILInstructionCommand"]
6763        [::std::mem::offset_of!(BNPluginCommand, lowLevelILInstructionCommand) - 80usize];
6764    ["Offset of field: BNPluginCommand::mediumLevelILFunctionCommand"]
6765        [::std::mem::offset_of!(BNPluginCommand, mediumLevelILFunctionCommand) - 88usize];
6766    ["Offset of field: BNPluginCommand::mediumLevelILInstructionCommand"]
6767        [::std::mem::offset_of!(BNPluginCommand, mediumLevelILInstructionCommand) - 96usize];
6768    ["Offset of field: BNPluginCommand::highLevelILFunctionCommand"]
6769        [::std::mem::offset_of!(BNPluginCommand, highLevelILFunctionCommand) - 104usize];
6770    ["Offset of field: BNPluginCommand::highLevelILInstructionCommand"]
6771        [::std::mem::offset_of!(BNPluginCommand, highLevelILInstructionCommand) - 112usize];
6772    ["Offset of field: BNPluginCommand::projectCommand"]
6773        [::std::mem::offset_of!(BNPluginCommand, projectCommand) - 120usize];
6774    ["Offset of field: BNPluginCommand::globalIsValid"]
6775        [::std::mem::offset_of!(BNPluginCommand, globalIsValid) - 128usize];
6776    ["Offset of field: BNPluginCommand::defaultIsValid"]
6777        [::std::mem::offset_of!(BNPluginCommand, defaultIsValid) - 136usize];
6778    ["Offset of field: BNPluginCommand::addressIsValid"]
6779        [::std::mem::offset_of!(BNPluginCommand, addressIsValid) - 144usize];
6780    ["Offset of field: BNPluginCommand::rangeIsValid"]
6781        [::std::mem::offset_of!(BNPluginCommand, rangeIsValid) - 152usize];
6782    ["Offset of field: BNPluginCommand::functionIsValid"]
6783        [::std::mem::offset_of!(BNPluginCommand, functionIsValid) - 160usize];
6784    ["Offset of field: BNPluginCommand::lowLevelILFunctionIsValid"]
6785        [::std::mem::offset_of!(BNPluginCommand, lowLevelILFunctionIsValid) - 168usize];
6786    ["Offset of field: BNPluginCommand::lowLevelILInstructionIsValid"]
6787        [::std::mem::offset_of!(BNPluginCommand, lowLevelILInstructionIsValid) - 176usize];
6788    ["Offset of field: BNPluginCommand::mediumLevelILFunctionIsValid"]
6789        [::std::mem::offset_of!(BNPluginCommand, mediumLevelILFunctionIsValid) - 184usize];
6790    ["Offset of field: BNPluginCommand::mediumLevelILInstructionIsValid"]
6791        [::std::mem::offset_of!(BNPluginCommand, mediumLevelILInstructionIsValid) - 192usize];
6792    ["Offset of field: BNPluginCommand::highLevelILFunctionIsValid"]
6793        [::std::mem::offset_of!(BNPluginCommand, highLevelILFunctionIsValid) - 200usize];
6794    ["Offset of field: BNPluginCommand::highLevelILInstructionIsValid"]
6795        [::std::mem::offset_of!(BNPluginCommand, highLevelILInstructionIsValid) - 208usize];
6796    ["Offset of field: BNPluginCommand::projectIsValid"]
6797        [::std::mem::offset_of!(BNPluginCommand, projectIsValid) - 216usize];
6798};
6799impl Default for BNPluginCommand {
6800    fn default() -> Self {
6801        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6802        unsafe {
6803            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6804            s.assume_init()
6805        }
6806    }
6807}
6808#[repr(C)]
6809#[derive(Debug, Copy, Clone)]
6810pub struct BNCustomCallingConvention {
6811    pub context: *mut ::std::os::raw::c_void,
6812    pub freeObject: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
6813    pub getCallerSavedRegisters: ::std::option::Option<
6814        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
6815    >,
6816    pub getCalleeSavedRegisters: ::std::option::Option<
6817        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
6818    >,
6819    pub getIntegerArgumentRegisters: ::std::option::Option<
6820        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
6821    >,
6822    pub getFloatArgumentRegisters: ::std::option::Option<
6823        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
6824    >,
6825    pub getRequiredArgumentRegisters: ::std::option::Option<
6826        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
6827    >,
6828    pub getRequiredClobberedRegisters: ::std::option::Option<
6829        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
6830    >,
6831    pub freeRegisterList: ::std::option::Option<
6832        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, regs: *mut u32, len: usize),
6833    >,
6834    pub areArgumentRegistersSharedIndex:
6835        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
6836    pub isStackReservedForArgumentRegisters:
6837        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
6838    pub isStackAdjustedOnReturn:
6839        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
6840    pub isEligibleForHeuristics:
6841        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
6842    pub getIntegerReturnValueRegister:
6843        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> u32>,
6844    pub getHighIntegerReturnValueRegister:
6845        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> u32>,
6846    pub getFloatReturnValueRegister:
6847        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> u32>,
6848    pub getGlobalPointerRegister:
6849        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> u32>,
6850    pub getImplicitlyDefinedRegisters: ::std::option::Option<
6851        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
6852    >,
6853    pub getIncomingRegisterValue: ::std::option::Option<
6854        unsafe extern "C" fn(
6855            ctxt: *mut ::std::os::raw::c_void,
6856            reg: u32,
6857            func: *mut BNFunction,
6858            result: *mut BNRegisterValue,
6859        ),
6860    >,
6861    pub getIncomingFlagValue: ::std::option::Option<
6862        unsafe extern "C" fn(
6863            ctxt: *mut ::std::os::raw::c_void,
6864            flag: u32,
6865            func: *mut BNFunction,
6866            result: *mut BNRegisterValue,
6867        ),
6868    >,
6869    pub getIncomingVariableForParameterVariable: ::std::option::Option<
6870        unsafe extern "C" fn(
6871            ctxt: *mut ::std::os::raw::c_void,
6872            var: *const BNVariable,
6873            func: *mut BNFunction,
6874            result: *mut BNVariable,
6875        ),
6876    >,
6877    pub getParameterVariableForIncomingVariable: ::std::option::Option<
6878        unsafe extern "C" fn(
6879            ctxt: *mut ::std::os::raw::c_void,
6880            var: *const BNVariable,
6881            func: *mut BNFunction,
6882            result: *mut BNVariable,
6883        ),
6884    >,
6885    pub areArgumentRegistersUsedForVarArgs:
6886        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
6887}
6888#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6889const _: () = {
6890    ["Size of BNCustomCallingConvention"]
6891        [::std::mem::size_of::<BNCustomCallingConvention>() - 184usize];
6892    ["Alignment of BNCustomCallingConvention"]
6893        [::std::mem::align_of::<BNCustomCallingConvention>() - 8usize];
6894    ["Offset of field: BNCustomCallingConvention::context"]
6895        [::std::mem::offset_of!(BNCustomCallingConvention, context) - 0usize];
6896    ["Offset of field: BNCustomCallingConvention::freeObject"]
6897        [::std::mem::offset_of!(BNCustomCallingConvention, freeObject) - 8usize];
6898    ["Offset of field: BNCustomCallingConvention::getCallerSavedRegisters"]
6899        [::std::mem::offset_of!(BNCustomCallingConvention, getCallerSavedRegisters) - 16usize];
6900    ["Offset of field: BNCustomCallingConvention::getCalleeSavedRegisters"]
6901        [::std::mem::offset_of!(BNCustomCallingConvention, getCalleeSavedRegisters) - 24usize];
6902    ["Offset of field: BNCustomCallingConvention::getIntegerArgumentRegisters"]
6903        [::std::mem::offset_of!(BNCustomCallingConvention, getIntegerArgumentRegisters) - 32usize];
6904    ["Offset of field: BNCustomCallingConvention::getFloatArgumentRegisters"]
6905        [::std::mem::offset_of!(BNCustomCallingConvention, getFloatArgumentRegisters) - 40usize];
6906    ["Offset of field: BNCustomCallingConvention::getRequiredArgumentRegisters"]
6907        [::std::mem::offset_of!(BNCustomCallingConvention, getRequiredArgumentRegisters) - 48usize];
6908    ["Offset of field: BNCustomCallingConvention::getRequiredClobberedRegisters"][::std::mem::offset_of!(
6909        BNCustomCallingConvention,
6910        getRequiredClobberedRegisters
6911    ) - 56usize];
6912    ["Offset of field: BNCustomCallingConvention::freeRegisterList"]
6913        [::std::mem::offset_of!(BNCustomCallingConvention, freeRegisterList) - 64usize];
6914    ["Offset of field: BNCustomCallingConvention::areArgumentRegistersSharedIndex"][::std::mem::offset_of!(
6915        BNCustomCallingConvention,
6916        areArgumentRegistersSharedIndex
6917    ) - 72usize];
6918    ["Offset of field: BNCustomCallingConvention::isStackReservedForArgumentRegisters"][::std::mem::offset_of!(
6919        BNCustomCallingConvention,
6920        isStackReservedForArgumentRegisters
6921    )
6922        - 80usize];
6923    ["Offset of field: BNCustomCallingConvention::isStackAdjustedOnReturn"]
6924        [::std::mem::offset_of!(BNCustomCallingConvention, isStackAdjustedOnReturn) - 88usize];
6925    ["Offset of field: BNCustomCallingConvention::isEligibleForHeuristics"]
6926        [::std::mem::offset_of!(BNCustomCallingConvention, isEligibleForHeuristics) - 96usize];
6927    ["Offset of field: BNCustomCallingConvention::getIntegerReturnValueRegister"][::std::mem::offset_of!(
6928        BNCustomCallingConvention,
6929        getIntegerReturnValueRegister
6930    ) - 104usize];
6931    ["Offset of field: BNCustomCallingConvention::getHighIntegerReturnValueRegister"][::std::mem::offset_of!(
6932        BNCustomCallingConvention,
6933        getHighIntegerReturnValueRegister
6934    ) - 112usize];
6935    ["Offset of field: BNCustomCallingConvention::getFloatReturnValueRegister"]
6936        [::std::mem::offset_of!(BNCustomCallingConvention, getFloatReturnValueRegister) - 120usize];
6937    ["Offset of field: BNCustomCallingConvention::getGlobalPointerRegister"]
6938        [::std::mem::offset_of!(BNCustomCallingConvention, getGlobalPointerRegister) - 128usize];
6939    ["Offset of field: BNCustomCallingConvention::getImplicitlyDefinedRegisters"][::std::mem::offset_of!(
6940        BNCustomCallingConvention,
6941        getImplicitlyDefinedRegisters
6942    ) - 136usize];
6943    ["Offset of field: BNCustomCallingConvention::getIncomingRegisterValue"]
6944        [::std::mem::offset_of!(BNCustomCallingConvention, getIncomingRegisterValue) - 144usize];
6945    ["Offset of field: BNCustomCallingConvention::getIncomingFlagValue"]
6946        [::std::mem::offset_of!(BNCustomCallingConvention, getIncomingFlagValue) - 152usize];
6947    ["Offset of field: BNCustomCallingConvention::getIncomingVariableForParameterVariable"][::std::mem::offset_of!(
6948        BNCustomCallingConvention,
6949        getIncomingVariableForParameterVariable
6950    )
6951        - 160usize];
6952    ["Offset of field: BNCustomCallingConvention::getParameterVariableForIncomingVariable"][::std::mem::offset_of!(
6953        BNCustomCallingConvention,
6954        getParameterVariableForIncomingVariable
6955    )
6956        - 168usize];
6957    ["Offset of field: BNCustomCallingConvention::areArgumentRegistersUsedForVarArgs"][::std::mem::offset_of!(
6958        BNCustomCallingConvention,
6959        areArgumentRegistersUsedForVarArgs
6960    )
6961        - 176usize];
6962};
6963impl Default for BNCustomCallingConvention {
6964    fn default() -> Self {
6965        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6966        unsafe {
6967            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6968            s.assume_init()
6969        }
6970    }
6971}
6972#[repr(C)]
6973#[derive(Debug, Copy, Clone)]
6974pub struct BNVariableNameAndType {
6975    pub var: BNVariable,
6976    pub type_: *mut BNType,
6977    pub name: *mut ::std::os::raw::c_char,
6978    pub autoDefined: bool,
6979    pub typeConfidence: u8,
6980}
6981#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6982const _: () = {
6983    ["Size of BNVariableNameAndType"][::std::mem::size_of::<BNVariableNameAndType>() - 40usize];
6984    ["Alignment of BNVariableNameAndType"]
6985        [::std::mem::align_of::<BNVariableNameAndType>() - 8usize];
6986    ["Offset of field: BNVariableNameAndType::var"]
6987        [::std::mem::offset_of!(BNVariableNameAndType, var) - 0usize];
6988    ["Offset of field: BNVariableNameAndType::type_"]
6989        [::std::mem::offset_of!(BNVariableNameAndType, type_) - 16usize];
6990    ["Offset of field: BNVariableNameAndType::name"]
6991        [::std::mem::offset_of!(BNVariableNameAndType, name) - 24usize];
6992    ["Offset of field: BNVariableNameAndType::autoDefined"]
6993        [::std::mem::offset_of!(BNVariableNameAndType, autoDefined) - 32usize];
6994    ["Offset of field: BNVariableNameAndType::typeConfidence"]
6995        [::std::mem::offset_of!(BNVariableNameAndType, typeConfidence) - 33usize];
6996};
6997impl Default for BNVariableNameAndType {
6998    fn default() -> Self {
6999        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7000        unsafe {
7001            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7002            s.assume_init()
7003        }
7004    }
7005}
7006#[repr(C)]
7007#[derive(Debug, Copy, Clone)]
7008pub struct BNStackVariableReference {
7009    pub sourceOperand: u32,
7010    pub typeConfidence: u8,
7011    pub type_: *mut BNType,
7012    pub name: *mut ::std::os::raw::c_char,
7013    pub varIdentifier: u64,
7014    pub referencedOffset: i64,
7015    pub size: usize,
7016}
7017#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7018const _: () = {
7019    ["Size of BNStackVariableReference"]
7020        [::std::mem::size_of::<BNStackVariableReference>() - 48usize];
7021    ["Alignment of BNStackVariableReference"]
7022        [::std::mem::align_of::<BNStackVariableReference>() - 8usize];
7023    ["Offset of field: BNStackVariableReference::sourceOperand"]
7024        [::std::mem::offset_of!(BNStackVariableReference, sourceOperand) - 0usize];
7025    ["Offset of field: BNStackVariableReference::typeConfidence"]
7026        [::std::mem::offset_of!(BNStackVariableReference, typeConfidence) - 4usize];
7027    ["Offset of field: BNStackVariableReference::type_"]
7028        [::std::mem::offset_of!(BNStackVariableReference, type_) - 8usize];
7029    ["Offset of field: BNStackVariableReference::name"]
7030        [::std::mem::offset_of!(BNStackVariableReference, name) - 16usize];
7031    ["Offset of field: BNStackVariableReference::varIdentifier"]
7032        [::std::mem::offset_of!(BNStackVariableReference, varIdentifier) - 24usize];
7033    ["Offset of field: BNStackVariableReference::referencedOffset"]
7034        [::std::mem::offset_of!(BNStackVariableReference, referencedOffset) - 32usize];
7035    ["Offset of field: BNStackVariableReference::size"]
7036        [::std::mem::offset_of!(BNStackVariableReference, size) - 40usize];
7037};
7038impl Default for BNStackVariableReference {
7039    fn default() -> Self {
7040        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7041        unsafe {
7042            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7043            s.assume_init()
7044        }
7045    }
7046}
7047#[repr(C)]
7048#[derive(Debug, Copy, Clone)]
7049pub struct BNIndirectBranchInfo {
7050    pub sourceArch: *mut BNArchitecture,
7051    pub sourceAddr: u64,
7052    pub destArch: *mut BNArchitecture,
7053    pub destAddr: u64,
7054    pub autoDefined: bool,
7055}
7056#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7057const _: () = {
7058    ["Size of BNIndirectBranchInfo"][::std::mem::size_of::<BNIndirectBranchInfo>() - 40usize];
7059    ["Alignment of BNIndirectBranchInfo"][::std::mem::align_of::<BNIndirectBranchInfo>() - 8usize];
7060    ["Offset of field: BNIndirectBranchInfo::sourceArch"]
7061        [::std::mem::offset_of!(BNIndirectBranchInfo, sourceArch) - 0usize];
7062    ["Offset of field: BNIndirectBranchInfo::sourceAddr"]
7063        [::std::mem::offset_of!(BNIndirectBranchInfo, sourceAddr) - 8usize];
7064    ["Offset of field: BNIndirectBranchInfo::destArch"]
7065        [::std::mem::offset_of!(BNIndirectBranchInfo, destArch) - 16usize];
7066    ["Offset of field: BNIndirectBranchInfo::destAddr"]
7067        [::std::mem::offset_of!(BNIndirectBranchInfo, destAddr) - 24usize];
7068    ["Offset of field: BNIndirectBranchInfo::autoDefined"]
7069        [::std::mem::offset_of!(BNIndirectBranchInfo, autoDefined) - 32usize];
7070};
7071impl Default for BNIndirectBranchInfo {
7072    fn default() -> Self {
7073        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7074        unsafe {
7075            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7076            s.assume_init()
7077        }
7078    }
7079}
7080#[repr(C)]
7081#[derive(Debug, Copy, Clone)]
7082pub struct BNArchitectureAndAddress {
7083    pub arch: *mut BNArchitecture,
7084    pub address: u64,
7085}
7086#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7087const _: () = {
7088    ["Size of BNArchitectureAndAddress"]
7089        [::std::mem::size_of::<BNArchitectureAndAddress>() - 16usize];
7090    ["Alignment of BNArchitectureAndAddress"]
7091        [::std::mem::align_of::<BNArchitectureAndAddress>() - 8usize];
7092    ["Offset of field: BNArchitectureAndAddress::arch"]
7093        [::std::mem::offset_of!(BNArchitectureAndAddress, arch) - 0usize];
7094    ["Offset of field: BNArchitectureAndAddress::address"]
7095        [::std::mem::offset_of!(BNArchitectureAndAddress, address) - 8usize];
7096};
7097impl Default for BNArchitectureAndAddress {
7098    fn default() -> Self {
7099        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7100        unsafe {
7101            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7102            s.assume_init()
7103        }
7104    }
7105}
7106#[repr(C)]
7107#[derive(Debug, Copy, Clone)]
7108pub struct BNUserVariableValue {
7109    pub var: BNVariable,
7110    pub defSite: BNArchitectureAndAddress,
7111    pub after: bool,
7112    pub value: BNPossibleValueSet,
7113}
7114#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7115const _: () = {
7116    ["Size of BNUserVariableValue"][::std::mem::size_of::<BNUserVariableValue>() - 104usize];
7117    ["Alignment of BNUserVariableValue"][::std::mem::align_of::<BNUserVariableValue>() - 8usize];
7118    ["Offset of field: BNUserVariableValue::var"]
7119        [::std::mem::offset_of!(BNUserVariableValue, var) - 0usize];
7120    ["Offset of field: BNUserVariableValue::defSite"]
7121        [::std::mem::offset_of!(BNUserVariableValue, defSite) - 16usize];
7122    ["Offset of field: BNUserVariableValue::after"]
7123        [::std::mem::offset_of!(BNUserVariableValue, after) - 32usize];
7124    ["Offset of field: BNUserVariableValue::value"]
7125        [::std::mem::offset_of!(BNUserVariableValue, value) - 40usize];
7126};
7127impl Default for BNUserVariableValue {
7128    fn default() -> Self {
7129        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7130        unsafe {
7131            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7132            s.assume_init()
7133        }
7134    }
7135}
7136#[repr(C)]
7137#[derive(Debug, Copy, Clone)]
7138pub struct BNVariableFieldResolutionInfo {
7139    pub location: BNArchitectureAndAddress,
7140    pub var: BNVariable,
7141    pub info: *mut BNFieldResolutionInfo,
7142}
7143#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7144const _: () = {
7145    ["Size of BNVariableFieldResolutionInfo"]
7146        [::std::mem::size_of::<BNVariableFieldResolutionInfo>() - 40usize];
7147    ["Alignment of BNVariableFieldResolutionInfo"]
7148        [::std::mem::align_of::<BNVariableFieldResolutionInfo>() - 8usize];
7149    ["Offset of field: BNVariableFieldResolutionInfo::location"]
7150        [::std::mem::offset_of!(BNVariableFieldResolutionInfo, location) - 0usize];
7151    ["Offset of field: BNVariableFieldResolutionInfo::var"]
7152        [::std::mem::offset_of!(BNVariableFieldResolutionInfo, var) - 16usize];
7153    ["Offset of field: BNVariableFieldResolutionInfo::info"]
7154        [::std::mem::offset_of!(BNVariableFieldResolutionInfo, info) - 32usize];
7155};
7156impl Default for BNVariableFieldResolutionInfo {
7157    fn default() -> Self {
7158        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7159        unsafe {
7160            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7161            s.assume_init()
7162        }
7163    }
7164}
7165#[repr(u8)]
7166#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
7167pub enum BNFunctionUpdateType {
7168    UserFunctionUpdate = 0,
7169    FullAutoFunctionUpdate = 1,
7170    IncrementalAutoFunctionUpdate = 2,
7171}
7172#[repr(u8)]
7173#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
7174pub enum BNAnalysisState {
7175    #[doc = " Entry point before any analysis begins"]
7176    InitialState = 0,
7177    #[doc = " Module-level analysis is deferred; On-demand function analysis is permitted"]
7178    HoldState = 1,
7179    #[doc = " No active analysis; system is idle and ready"]
7180    IdleState = 2,
7181    #[doc = " Context gathering and auxiliary data preparation"]
7182    DiscoveryState = 3,
7183    #[doc = " Instruction decoding and control flow discovery"]
7184    DisassembleState = 4,
7185    #[doc = " Core semantic and structural analysis"]
7186    AnalyzeState = 5,
7187    #[doc = " Supplemental analysis: sweeping, type resolution, and pattern matching"]
7188    ExtendedAnalyzeState = 6,
7189}
7190#[repr(C)]
7191#[derive(Debug, Copy, Clone)]
7192pub struct BNActiveAnalysisInfo {
7193    pub func: *mut BNFunction,
7194    pub analysisTime: u64,
7195    pub updateCount: usize,
7196    pub submitCount: usize,
7197}
7198#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7199const _: () = {
7200    ["Size of BNActiveAnalysisInfo"][::std::mem::size_of::<BNActiveAnalysisInfo>() - 32usize];
7201    ["Alignment of BNActiveAnalysisInfo"][::std::mem::align_of::<BNActiveAnalysisInfo>() - 8usize];
7202    ["Offset of field: BNActiveAnalysisInfo::func"]
7203        [::std::mem::offset_of!(BNActiveAnalysisInfo, func) - 0usize];
7204    ["Offset of field: BNActiveAnalysisInfo::analysisTime"]
7205        [::std::mem::offset_of!(BNActiveAnalysisInfo, analysisTime) - 8usize];
7206    ["Offset of field: BNActiveAnalysisInfo::updateCount"]
7207        [::std::mem::offset_of!(BNActiveAnalysisInfo, updateCount) - 16usize];
7208    ["Offset of field: BNActiveAnalysisInfo::submitCount"]
7209        [::std::mem::offset_of!(BNActiveAnalysisInfo, submitCount) - 24usize];
7210};
7211impl Default for BNActiveAnalysisInfo {
7212    fn default() -> Self {
7213        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7214        unsafe {
7215            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7216            s.assume_init()
7217        }
7218    }
7219}
7220#[repr(C)]
7221#[derive(Debug, Copy, Clone)]
7222pub struct BNAnalysisInfo {
7223    pub state: BNAnalysisState,
7224    pub analysisTime: u64,
7225    pub activeInfo: *mut BNActiveAnalysisInfo,
7226    pub count: usize,
7227}
7228#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7229const _: () = {
7230    ["Size of BNAnalysisInfo"][::std::mem::size_of::<BNAnalysisInfo>() - 32usize];
7231    ["Alignment of BNAnalysisInfo"][::std::mem::align_of::<BNAnalysisInfo>() - 8usize];
7232    ["Offset of field: BNAnalysisInfo::state"]
7233        [::std::mem::offset_of!(BNAnalysisInfo, state) - 0usize];
7234    ["Offset of field: BNAnalysisInfo::analysisTime"]
7235        [::std::mem::offset_of!(BNAnalysisInfo, analysisTime) - 8usize];
7236    ["Offset of field: BNAnalysisInfo::activeInfo"]
7237        [::std::mem::offset_of!(BNAnalysisInfo, activeInfo) - 16usize];
7238    ["Offset of field: BNAnalysisInfo::count"]
7239        [::std::mem::offset_of!(BNAnalysisInfo, count) - 24usize];
7240};
7241impl Default for BNAnalysisInfo {
7242    fn default() -> Self {
7243        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7244        unsafe {
7245            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7246            s.assume_init()
7247        }
7248    }
7249}
7250#[repr(C)]
7251#[derive(Debug, Copy, Clone)]
7252pub struct BNAnalysisProgress {
7253    pub state: BNAnalysisState,
7254    pub count: usize,
7255    pub total: usize,
7256}
7257#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7258const _: () = {
7259    ["Size of BNAnalysisProgress"][::std::mem::size_of::<BNAnalysisProgress>() - 24usize];
7260    ["Alignment of BNAnalysisProgress"][::std::mem::align_of::<BNAnalysisProgress>() - 8usize];
7261    ["Offset of field: BNAnalysisProgress::state"]
7262        [::std::mem::offset_of!(BNAnalysisProgress, state) - 0usize];
7263    ["Offset of field: BNAnalysisProgress::count"]
7264        [::std::mem::offset_of!(BNAnalysisProgress, count) - 8usize];
7265    ["Offset of field: BNAnalysisProgress::total"]
7266        [::std::mem::offset_of!(BNAnalysisProgress, total) - 16usize];
7267};
7268impl Default for BNAnalysisProgress {
7269    fn default() -> Self {
7270        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7271        unsafe {
7272            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7273            s.assume_init()
7274        }
7275    }
7276}
7277#[repr(u8)]
7278#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
7279pub enum BNAnalysisMode {
7280    FullAnalysisMode = 0,
7281    IntermediateAnalysisMode = 1,
7282    BasicAnalysisMode = 2,
7283    ControlFlowAnalysisMode = 3,
7284}
7285#[repr(C)]
7286#[derive(Debug, Copy, Clone)]
7287pub struct BNAnalysisParameters {
7288    pub maxAnalysisTime: u64,
7289    pub maxFunctionSize: u64,
7290    pub maxFunctionAnalysisTime: u64,
7291    pub maxFunctionUpdateCount: usize,
7292    pub maxFunctionSubmitCount: usize,
7293    pub suppressNewAutoFunctionAnalysis: bool,
7294    pub mode: BNAnalysisMode,
7295    pub alwaysAnalyzeIndirectBranches: bool,
7296    pub advancedAnalysisCacheSize: usize,
7297}
7298#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7299const _: () = {
7300    ["Size of BNAnalysisParameters"][::std::mem::size_of::<BNAnalysisParameters>() - 56usize];
7301    ["Alignment of BNAnalysisParameters"][::std::mem::align_of::<BNAnalysisParameters>() - 8usize];
7302    ["Offset of field: BNAnalysisParameters::maxAnalysisTime"]
7303        [::std::mem::offset_of!(BNAnalysisParameters, maxAnalysisTime) - 0usize];
7304    ["Offset of field: BNAnalysisParameters::maxFunctionSize"]
7305        [::std::mem::offset_of!(BNAnalysisParameters, maxFunctionSize) - 8usize];
7306    ["Offset of field: BNAnalysisParameters::maxFunctionAnalysisTime"]
7307        [::std::mem::offset_of!(BNAnalysisParameters, maxFunctionAnalysisTime) - 16usize];
7308    ["Offset of field: BNAnalysisParameters::maxFunctionUpdateCount"]
7309        [::std::mem::offset_of!(BNAnalysisParameters, maxFunctionUpdateCount) - 24usize];
7310    ["Offset of field: BNAnalysisParameters::maxFunctionSubmitCount"]
7311        [::std::mem::offset_of!(BNAnalysisParameters, maxFunctionSubmitCount) - 32usize];
7312    ["Offset of field: BNAnalysisParameters::suppressNewAutoFunctionAnalysis"]
7313        [::std::mem::offset_of!(BNAnalysisParameters, suppressNewAutoFunctionAnalysis) - 40usize];
7314    ["Offset of field: BNAnalysisParameters::mode"]
7315        [::std::mem::offset_of!(BNAnalysisParameters, mode) - 41usize];
7316    ["Offset of field: BNAnalysisParameters::alwaysAnalyzeIndirectBranches"]
7317        [::std::mem::offset_of!(BNAnalysisParameters, alwaysAnalyzeIndirectBranches) - 42usize];
7318    ["Offset of field: BNAnalysisParameters::advancedAnalysisCacheSize"]
7319        [::std::mem::offset_of!(BNAnalysisParameters, advancedAnalysisCacheSize) - 48usize];
7320};
7321impl Default for BNAnalysisParameters {
7322    fn default() -> Self {
7323        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7324        unsafe {
7325            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7326            s.assume_init()
7327        }
7328    }
7329}
7330#[repr(C)]
7331#[derive(Debug, Copy, Clone)]
7332pub struct BNDownloadInstanceResponse {
7333    pub statusCode: u16,
7334    pub headerCount: u64,
7335    pub headerKeys: *mut *mut ::std::os::raw::c_char,
7336    pub headerValues: *mut *mut ::std::os::raw::c_char,
7337}
7338#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7339const _: () = {
7340    ["Size of BNDownloadInstanceResponse"]
7341        [::std::mem::size_of::<BNDownloadInstanceResponse>() - 32usize];
7342    ["Alignment of BNDownloadInstanceResponse"]
7343        [::std::mem::align_of::<BNDownloadInstanceResponse>() - 8usize];
7344    ["Offset of field: BNDownloadInstanceResponse::statusCode"]
7345        [::std::mem::offset_of!(BNDownloadInstanceResponse, statusCode) - 0usize];
7346    ["Offset of field: BNDownloadInstanceResponse::headerCount"]
7347        [::std::mem::offset_of!(BNDownloadInstanceResponse, headerCount) - 8usize];
7348    ["Offset of field: BNDownloadInstanceResponse::headerKeys"]
7349        [::std::mem::offset_of!(BNDownloadInstanceResponse, headerKeys) - 16usize];
7350    ["Offset of field: BNDownloadInstanceResponse::headerValues"]
7351        [::std::mem::offset_of!(BNDownloadInstanceResponse, headerValues) - 24usize];
7352};
7353impl Default for BNDownloadInstanceResponse {
7354    fn default() -> Self {
7355        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7356        unsafe {
7357            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7358            s.assume_init()
7359        }
7360    }
7361}
7362#[repr(C)]
7363#[derive(Debug, Copy, Clone)]
7364pub struct BNDownloadInstanceInputOutputCallbacks {
7365    pub readCallback: ::std::option::Option<
7366        unsafe extern "C" fn(data: *mut u8, len: u64, ctxt: *mut ::std::os::raw::c_void) -> i64,
7367    >,
7368    pub readContext: *mut ::std::os::raw::c_void,
7369    pub writeCallback: ::std::option::Option<
7370        unsafe extern "C" fn(data: *mut u8, len: u64, ctxt: *mut ::std::os::raw::c_void) -> u64,
7371    >,
7372    pub writeContext: *mut ::std::os::raw::c_void,
7373    pub progressCallback: BNProgressFunction,
7374    pub progressContext: *mut ::std::os::raw::c_void,
7375}
7376#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7377const _: () = {
7378    ["Size of BNDownloadInstanceInputOutputCallbacks"]
7379        [::std::mem::size_of::<BNDownloadInstanceInputOutputCallbacks>() - 48usize];
7380    ["Alignment of BNDownloadInstanceInputOutputCallbacks"]
7381        [::std::mem::align_of::<BNDownloadInstanceInputOutputCallbacks>() - 8usize];
7382    ["Offset of field: BNDownloadInstanceInputOutputCallbacks::readCallback"]
7383        [::std::mem::offset_of!(BNDownloadInstanceInputOutputCallbacks, readCallback) - 0usize];
7384    ["Offset of field: BNDownloadInstanceInputOutputCallbacks::readContext"]
7385        [::std::mem::offset_of!(BNDownloadInstanceInputOutputCallbacks, readContext) - 8usize];
7386    ["Offset of field: BNDownloadInstanceInputOutputCallbacks::writeCallback"]
7387        [::std::mem::offset_of!(BNDownloadInstanceInputOutputCallbacks, writeCallback) - 16usize];
7388    ["Offset of field: BNDownloadInstanceInputOutputCallbacks::writeContext"]
7389        [::std::mem::offset_of!(BNDownloadInstanceInputOutputCallbacks, writeContext) - 24usize];
7390    ["Offset of field: BNDownloadInstanceInputOutputCallbacks::progressCallback"][::std::mem::offset_of!(
7391        BNDownloadInstanceInputOutputCallbacks,
7392        progressCallback
7393    ) - 32usize];
7394    ["Offset of field: BNDownloadInstanceInputOutputCallbacks::progressContext"]
7395        [::std::mem::offset_of!(BNDownloadInstanceInputOutputCallbacks, progressContext) - 40usize];
7396};
7397impl Default for BNDownloadInstanceInputOutputCallbacks {
7398    fn default() -> Self {
7399        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7400        unsafe {
7401            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7402            s.assume_init()
7403        }
7404    }
7405}
7406#[repr(C)]
7407#[derive(Debug, Copy, Clone)]
7408pub struct BNDownloadInstanceOutputCallbacks {
7409    pub writeCallback: ::std::option::Option<
7410        unsafe extern "C" fn(data: *mut u8, len: u64, ctxt: *mut ::std::os::raw::c_void) -> u64,
7411    >,
7412    pub writeContext: *mut ::std::os::raw::c_void,
7413    pub progressCallback: BNProgressFunction,
7414    pub progressContext: *mut ::std::os::raw::c_void,
7415}
7416#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7417const _: () = {
7418    ["Size of BNDownloadInstanceOutputCallbacks"]
7419        [::std::mem::size_of::<BNDownloadInstanceOutputCallbacks>() - 32usize];
7420    ["Alignment of BNDownloadInstanceOutputCallbacks"]
7421        [::std::mem::align_of::<BNDownloadInstanceOutputCallbacks>() - 8usize];
7422    ["Offset of field: BNDownloadInstanceOutputCallbacks::writeCallback"]
7423        [::std::mem::offset_of!(BNDownloadInstanceOutputCallbacks, writeCallback) - 0usize];
7424    ["Offset of field: BNDownloadInstanceOutputCallbacks::writeContext"]
7425        [::std::mem::offset_of!(BNDownloadInstanceOutputCallbacks, writeContext) - 8usize];
7426    ["Offset of field: BNDownloadInstanceOutputCallbacks::progressCallback"]
7427        [::std::mem::offset_of!(BNDownloadInstanceOutputCallbacks, progressCallback) - 16usize];
7428    ["Offset of field: BNDownloadInstanceOutputCallbacks::progressContext"]
7429        [::std::mem::offset_of!(BNDownloadInstanceOutputCallbacks, progressContext) - 24usize];
7430};
7431impl Default for BNDownloadInstanceOutputCallbacks {
7432    fn default() -> Self {
7433        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7434        unsafe {
7435            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7436            s.assume_init()
7437        }
7438    }
7439}
7440#[repr(C)]
7441#[derive(Debug, Copy, Clone)]
7442pub struct BNDownloadInstanceCallbacks {
7443    pub context: *mut ::std::os::raw::c_void,
7444    pub destroyInstance:
7445        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
7446    pub performRequest: ::std::option::Option<
7447        unsafe extern "C" fn(
7448            ctxt: *mut ::std::os::raw::c_void,
7449            url: *const ::std::os::raw::c_char,
7450        ) -> ::std::os::raw::c_int,
7451    >,
7452    pub performCustomRequest: ::std::option::Option<
7453        unsafe extern "C" fn(
7454            ctxt: *mut ::std::os::raw::c_void,
7455            method: *const ::std::os::raw::c_char,
7456            url: *const ::std::os::raw::c_char,
7457            headerCount: u64,
7458            headerKeys: *const *const ::std::os::raw::c_char,
7459            headerValues: *const *const ::std::os::raw::c_char,
7460            response: *mut *mut BNDownloadInstanceResponse,
7461        ) -> ::std::os::raw::c_int,
7462    >,
7463    pub freeResponse: ::std::option::Option<
7464        unsafe extern "C" fn(
7465            ctxt: *mut ::std::os::raw::c_void,
7466            response: *mut BNDownloadInstanceResponse,
7467        ),
7468    >,
7469}
7470#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7471const _: () = {
7472    ["Size of BNDownloadInstanceCallbacks"]
7473        [::std::mem::size_of::<BNDownloadInstanceCallbacks>() - 40usize];
7474    ["Alignment of BNDownloadInstanceCallbacks"]
7475        [::std::mem::align_of::<BNDownloadInstanceCallbacks>() - 8usize];
7476    ["Offset of field: BNDownloadInstanceCallbacks::context"]
7477        [::std::mem::offset_of!(BNDownloadInstanceCallbacks, context) - 0usize];
7478    ["Offset of field: BNDownloadInstanceCallbacks::destroyInstance"]
7479        [::std::mem::offset_of!(BNDownloadInstanceCallbacks, destroyInstance) - 8usize];
7480    ["Offset of field: BNDownloadInstanceCallbacks::performRequest"]
7481        [::std::mem::offset_of!(BNDownloadInstanceCallbacks, performRequest) - 16usize];
7482    ["Offset of field: BNDownloadInstanceCallbacks::performCustomRequest"]
7483        [::std::mem::offset_of!(BNDownloadInstanceCallbacks, performCustomRequest) - 24usize];
7484    ["Offset of field: BNDownloadInstanceCallbacks::freeResponse"]
7485        [::std::mem::offset_of!(BNDownloadInstanceCallbacks, freeResponse) - 32usize];
7486};
7487impl Default for BNDownloadInstanceCallbacks {
7488    fn default() -> Self {
7489        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7490        unsafe {
7491            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7492            s.assume_init()
7493        }
7494    }
7495}
7496#[repr(C)]
7497#[derive(Debug, Copy, Clone)]
7498pub struct BNDownloadProviderCallbacks {
7499    pub context: *mut ::std::os::raw::c_void,
7500    pub createInstance: ::std::option::Option<
7501        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> *mut BNDownloadInstance,
7502    >,
7503}
7504#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7505const _: () = {
7506    ["Size of BNDownloadProviderCallbacks"]
7507        [::std::mem::size_of::<BNDownloadProviderCallbacks>() - 16usize];
7508    ["Alignment of BNDownloadProviderCallbacks"]
7509        [::std::mem::align_of::<BNDownloadProviderCallbacks>() - 8usize];
7510    ["Offset of field: BNDownloadProviderCallbacks::context"]
7511        [::std::mem::offset_of!(BNDownloadProviderCallbacks, context) - 0usize];
7512    ["Offset of field: BNDownloadProviderCallbacks::createInstance"]
7513        [::std::mem::offset_of!(BNDownloadProviderCallbacks, createInstance) - 8usize];
7514};
7515impl Default for BNDownloadProviderCallbacks {
7516    fn default() -> Self {
7517        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7518        unsafe {
7519            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7520            s.assume_init()
7521        }
7522    }
7523}
7524#[repr(C)]
7525#[derive(Debug, Copy, Clone)]
7526pub struct BNWebsocketClientOutputCallbacks {
7527    pub context: *mut ::std::os::raw::c_void,
7528    pub connectedCallback:
7529        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
7530    pub disconnectedCallback:
7531        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
7532    pub errorCallback: ::std::option::Option<
7533        unsafe extern "C" fn(msg: *const ::std::os::raw::c_char, ctxt: *mut ::std::os::raw::c_void),
7534    >,
7535    pub readCallback: ::std::option::Option<
7536        unsafe extern "C" fn(data: *mut u8, len: u64, ctxt: *mut ::std::os::raw::c_void) -> bool,
7537    >,
7538}
7539#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7540const _: () = {
7541    ["Size of BNWebsocketClientOutputCallbacks"]
7542        [::std::mem::size_of::<BNWebsocketClientOutputCallbacks>() - 40usize];
7543    ["Alignment of BNWebsocketClientOutputCallbacks"]
7544        [::std::mem::align_of::<BNWebsocketClientOutputCallbacks>() - 8usize];
7545    ["Offset of field: BNWebsocketClientOutputCallbacks::context"]
7546        [::std::mem::offset_of!(BNWebsocketClientOutputCallbacks, context) - 0usize];
7547    ["Offset of field: BNWebsocketClientOutputCallbacks::connectedCallback"]
7548        [::std::mem::offset_of!(BNWebsocketClientOutputCallbacks, connectedCallback) - 8usize];
7549    ["Offset of field: BNWebsocketClientOutputCallbacks::disconnectedCallback"]
7550        [::std::mem::offset_of!(BNWebsocketClientOutputCallbacks, disconnectedCallback) - 16usize];
7551    ["Offset of field: BNWebsocketClientOutputCallbacks::errorCallback"]
7552        [::std::mem::offset_of!(BNWebsocketClientOutputCallbacks, errorCallback) - 24usize];
7553    ["Offset of field: BNWebsocketClientOutputCallbacks::readCallback"]
7554        [::std::mem::offset_of!(BNWebsocketClientOutputCallbacks, readCallback) - 32usize];
7555};
7556impl Default for BNWebsocketClientOutputCallbacks {
7557    fn default() -> Self {
7558        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7559        unsafe {
7560            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7561            s.assume_init()
7562        }
7563    }
7564}
7565#[repr(C)]
7566#[derive(Debug, Copy, Clone)]
7567pub struct BNWebsocketClientCallbacks {
7568    pub context: *mut ::std::os::raw::c_void,
7569    pub destroyClient:
7570        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
7571    pub connect: ::std::option::Option<
7572        unsafe extern "C" fn(
7573            ctxt: *mut ::std::os::raw::c_void,
7574            host: *const ::std::os::raw::c_char,
7575            headerCount: u64,
7576            headerKeys: *const *const ::std::os::raw::c_char,
7577            headerValues: *const *const ::std::os::raw::c_char,
7578        ) -> bool,
7579    >,
7580    pub write: ::std::option::Option<
7581        unsafe extern "C" fn(data: *const u8, len: u64, ctxt: *mut ::std::os::raw::c_void) -> bool,
7582    >,
7583    pub disconnect:
7584        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
7585}
7586#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7587const _: () = {
7588    ["Size of BNWebsocketClientCallbacks"]
7589        [::std::mem::size_of::<BNWebsocketClientCallbacks>() - 40usize];
7590    ["Alignment of BNWebsocketClientCallbacks"]
7591        [::std::mem::align_of::<BNWebsocketClientCallbacks>() - 8usize];
7592    ["Offset of field: BNWebsocketClientCallbacks::context"]
7593        [::std::mem::offset_of!(BNWebsocketClientCallbacks, context) - 0usize];
7594    ["Offset of field: BNWebsocketClientCallbacks::destroyClient"]
7595        [::std::mem::offset_of!(BNWebsocketClientCallbacks, destroyClient) - 8usize];
7596    ["Offset of field: BNWebsocketClientCallbacks::connect"]
7597        [::std::mem::offset_of!(BNWebsocketClientCallbacks, connect) - 16usize];
7598    ["Offset of field: BNWebsocketClientCallbacks::write"]
7599        [::std::mem::offset_of!(BNWebsocketClientCallbacks, write) - 24usize];
7600    ["Offset of field: BNWebsocketClientCallbacks::disconnect"]
7601        [::std::mem::offset_of!(BNWebsocketClientCallbacks, disconnect) - 32usize];
7602};
7603impl Default for BNWebsocketClientCallbacks {
7604    fn default() -> Self {
7605        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7606        unsafe {
7607            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7608            s.assume_init()
7609        }
7610    }
7611}
7612#[repr(C)]
7613#[derive(Debug, Copy, Clone)]
7614pub struct BNWebsocketProviderCallbacks {
7615    pub context: *mut ::std::os::raw::c_void,
7616    pub createClient: ::std::option::Option<
7617        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> *mut BNWebsocketClient,
7618    >,
7619}
7620#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7621const _: () = {
7622    ["Size of BNWebsocketProviderCallbacks"]
7623        [::std::mem::size_of::<BNWebsocketProviderCallbacks>() - 16usize];
7624    ["Alignment of BNWebsocketProviderCallbacks"]
7625        [::std::mem::align_of::<BNWebsocketProviderCallbacks>() - 8usize];
7626    ["Offset of field: BNWebsocketProviderCallbacks::context"]
7627        [::std::mem::offset_of!(BNWebsocketProviderCallbacks, context) - 0usize];
7628    ["Offset of field: BNWebsocketProviderCallbacks::createClient"]
7629        [::std::mem::offset_of!(BNWebsocketProviderCallbacks, createClient) - 8usize];
7630};
7631impl Default for BNWebsocketProviderCallbacks {
7632    fn default() -> Self {
7633        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7634        unsafe {
7635            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7636            s.assume_init()
7637        }
7638    }
7639}
7640#[repr(u8)]
7641#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
7642pub enum BNFindFlag {
7643    FindCaseSensitive = 0,
7644    FindCaseInsensitive = 1,
7645    FindIgnoreWhitespace = 2,
7646}
7647#[repr(u8)]
7648#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
7649pub enum BNScriptingProviderInputReadyState {
7650    NotReadyForInput = 0,
7651    ReadyForScriptExecution = 1,
7652    ReadyForScriptProgramInput = 2,
7653}
7654#[repr(u8)]
7655#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
7656pub enum BNScriptingProviderExecuteResult {
7657    InvalidScriptInput = 0,
7658    IncompleteScriptInput = 1,
7659    SuccessfulScriptExecution = 2,
7660    ScriptExecutionCancelled = 3,
7661}
7662#[repr(C)]
7663#[derive(Debug, Copy, Clone)]
7664pub struct BNScriptingInstanceCallbacks {
7665    pub context: *mut ::std::os::raw::c_void,
7666    pub destroyInstance:
7667        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
7668    pub externalRefTaken:
7669        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
7670    pub externalRefReleased:
7671        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
7672    pub executeScriptInput: ::std::option::Option<
7673        unsafe extern "C" fn(
7674            ctxt: *mut ::std::os::raw::c_void,
7675            input: *const ::std::os::raw::c_char,
7676        ) -> BNScriptingProviderExecuteResult,
7677    >,
7678    pub executeScriptInputFromFilename: ::std::option::Option<
7679        unsafe extern "C" fn(
7680            ctxt: *mut ::std::os::raw::c_void,
7681            input: *const ::std::os::raw::c_char,
7682        ) -> BNScriptingProviderExecuteResult,
7683    >,
7684    pub cancelScriptInput:
7685        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
7686    pub releaseBinaryView: ::std::option::Option<
7687        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, view: *mut BNBinaryView),
7688    >,
7689    pub setCurrentBinaryView: ::std::option::Option<
7690        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, view: *mut BNBinaryView),
7691    >,
7692    pub setCurrentFunction: ::std::option::Option<
7693        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, func: *mut BNFunction),
7694    >,
7695    pub setCurrentBasicBlock: ::std::option::Option<
7696        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, block: *mut BNBasicBlock),
7697    >,
7698    pub setCurrentAddress:
7699        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, addr: u64)>,
7700    pub setCurrentSelection: ::std::option::Option<
7701        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, begin: u64, end: u64),
7702    >,
7703    pub completeInput: ::std::option::Option<
7704        unsafe extern "C" fn(
7705            ctxt: *mut ::std::os::raw::c_void,
7706            text: *const ::std::os::raw::c_char,
7707            state: u64,
7708        ) -> *mut ::std::os::raw::c_char,
7709    >,
7710    pub stop: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
7711    pub canCompleteArguments: ::std::option::Option<
7712        unsafe extern "C" fn(
7713            ctx: *mut ::std::os::raw::c_void,
7714            text: *const ::std::os::raw::c_char,
7715        ) -> bool,
7716    >,
7717    pub completeArguments: ::std::option::Option<
7718        unsafe extern "C" fn(
7719            ctxt: *mut ::std::os::raw::c_void,
7720            text: *const ::std::os::raw::c_char,
7721            argumentStart: *mut u64,
7722        ) -> *mut ::std::os::raw::c_char,
7723    >,
7724}
7725#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7726const _: () = {
7727    ["Size of BNScriptingInstanceCallbacks"]
7728        [::std::mem::size_of::<BNScriptingInstanceCallbacks>() - 136usize];
7729    ["Alignment of BNScriptingInstanceCallbacks"]
7730        [::std::mem::align_of::<BNScriptingInstanceCallbacks>() - 8usize];
7731    ["Offset of field: BNScriptingInstanceCallbacks::context"]
7732        [::std::mem::offset_of!(BNScriptingInstanceCallbacks, context) - 0usize];
7733    ["Offset of field: BNScriptingInstanceCallbacks::destroyInstance"]
7734        [::std::mem::offset_of!(BNScriptingInstanceCallbacks, destroyInstance) - 8usize];
7735    ["Offset of field: BNScriptingInstanceCallbacks::externalRefTaken"]
7736        [::std::mem::offset_of!(BNScriptingInstanceCallbacks, externalRefTaken) - 16usize];
7737    ["Offset of field: BNScriptingInstanceCallbacks::externalRefReleased"]
7738        [::std::mem::offset_of!(BNScriptingInstanceCallbacks, externalRefReleased) - 24usize];
7739    ["Offset of field: BNScriptingInstanceCallbacks::executeScriptInput"]
7740        [::std::mem::offset_of!(BNScriptingInstanceCallbacks, executeScriptInput) - 32usize];
7741    ["Offset of field: BNScriptingInstanceCallbacks::executeScriptInputFromFilename"][::std::mem::offset_of!(
7742        BNScriptingInstanceCallbacks,
7743        executeScriptInputFromFilename
7744    ) - 40usize];
7745    ["Offset of field: BNScriptingInstanceCallbacks::cancelScriptInput"]
7746        [::std::mem::offset_of!(BNScriptingInstanceCallbacks, cancelScriptInput) - 48usize];
7747    ["Offset of field: BNScriptingInstanceCallbacks::releaseBinaryView"]
7748        [::std::mem::offset_of!(BNScriptingInstanceCallbacks, releaseBinaryView) - 56usize];
7749    ["Offset of field: BNScriptingInstanceCallbacks::setCurrentBinaryView"]
7750        [::std::mem::offset_of!(BNScriptingInstanceCallbacks, setCurrentBinaryView) - 64usize];
7751    ["Offset of field: BNScriptingInstanceCallbacks::setCurrentFunction"]
7752        [::std::mem::offset_of!(BNScriptingInstanceCallbacks, setCurrentFunction) - 72usize];
7753    ["Offset of field: BNScriptingInstanceCallbacks::setCurrentBasicBlock"]
7754        [::std::mem::offset_of!(BNScriptingInstanceCallbacks, setCurrentBasicBlock) - 80usize];
7755    ["Offset of field: BNScriptingInstanceCallbacks::setCurrentAddress"]
7756        [::std::mem::offset_of!(BNScriptingInstanceCallbacks, setCurrentAddress) - 88usize];
7757    ["Offset of field: BNScriptingInstanceCallbacks::setCurrentSelection"]
7758        [::std::mem::offset_of!(BNScriptingInstanceCallbacks, setCurrentSelection) - 96usize];
7759    ["Offset of field: BNScriptingInstanceCallbacks::completeInput"]
7760        [::std::mem::offset_of!(BNScriptingInstanceCallbacks, completeInput) - 104usize];
7761    ["Offset of field: BNScriptingInstanceCallbacks::stop"]
7762        [::std::mem::offset_of!(BNScriptingInstanceCallbacks, stop) - 112usize];
7763    ["Offset of field: BNScriptingInstanceCallbacks::canCompleteArguments"]
7764        [::std::mem::offset_of!(BNScriptingInstanceCallbacks, canCompleteArguments) - 120usize];
7765    ["Offset of field: BNScriptingInstanceCallbacks::completeArguments"]
7766        [::std::mem::offset_of!(BNScriptingInstanceCallbacks, completeArguments) - 128usize];
7767};
7768impl Default for BNScriptingInstanceCallbacks {
7769    fn default() -> Self {
7770        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7771        unsafe {
7772            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7773            s.assume_init()
7774        }
7775    }
7776}
7777#[repr(C)]
7778#[derive(Debug, Copy, Clone)]
7779pub struct BNScriptingProviderCallbacks {
7780    pub context: *mut ::std::os::raw::c_void,
7781    pub createInstance: ::std::option::Option<
7782        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> *mut BNScriptingInstance,
7783    >,
7784    pub loadModule: ::std::option::Option<
7785        unsafe extern "C" fn(
7786            ctxt: *mut ::std::os::raw::c_void,
7787            repoPath: *const ::std::os::raw::c_char,
7788            pluginPath: *const ::std::os::raw::c_char,
7789            force: bool,
7790        ) -> bool,
7791    >,
7792    pub installModules: ::std::option::Option<
7793        unsafe extern "C" fn(
7794            ctxt: *mut ::std::os::raw::c_void,
7795            modules: *const ::std::os::raw::c_char,
7796        ) -> bool,
7797    >,
7798}
7799#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7800const _: () = {
7801    ["Size of BNScriptingProviderCallbacks"]
7802        [::std::mem::size_of::<BNScriptingProviderCallbacks>() - 32usize];
7803    ["Alignment of BNScriptingProviderCallbacks"]
7804        [::std::mem::align_of::<BNScriptingProviderCallbacks>() - 8usize];
7805    ["Offset of field: BNScriptingProviderCallbacks::context"]
7806        [::std::mem::offset_of!(BNScriptingProviderCallbacks, context) - 0usize];
7807    ["Offset of field: BNScriptingProviderCallbacks::createInstance"]
7808        [::std::mem::offset_of!(BNScriptingProviderCallbacks, createInstance) - 8usize];
7809    ["Offset of field: BNScriptingProviderCallbacks::loadModule"]
7810        [::std::mem::offset_of!(BNScriptingProviderCallbacks, loadModule) - 16usize];
7811    ["Offset of field: BNScriptingProviderCallbacks::installModules"]
7812        [::std::mem::offset_of!(BNScriptingProviderCallbacks, installModules) - 24usize];
7813};
7814impl Default for BNScriptingProviderCallbacks {
7815    fn default() -> Self {
7816        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7817        unsafe {
7818            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7819            s.assume_init()
7820        }
7821    }
7822}
7823#[repr(C)]
7824#[derive(Debug, Copy, Clone)]
7825pub struct BNScriptingOutputListener {
7826    pub context: *mut ::std::os::raw::c_void,
7827    pub output: ::std::option::Option<
7828        unsafe extern "C" fn(
7829            ctxt: *mut ::std::os::raw::c_void,
7830            text: *const ::std::os::raw::c_char,
7831        ),
7832    >,
7833    pub warning: ::std::option::Option<
7834        unsafe extern "C" fn(
7835            ctxt: *mut ::std::os::raw::c_void,
7836            text: *const ::std::os::raw::c_char,
7837        ),
7838    >,
7839    pub error: ::std::option::Option<
7840        unsafe extern "C" fn(
7841            ctxt: *mut ::std::os::raw::c_void,
7842            text: *const ::std::os::raw::c_char,
7843        ),
7844    >,
7845    pub inputReadyStateChanged: ::std::option::Option<
7846        unsafe extern "C" fn(
7847            ctxt: *mut ::std::os::raw::c_void,
7848            state: BNScriptingProviderInputReadyState,
7849        ),
7850    >,
7851}
7852#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7853const _: () = {
7854    ["Size of BNScriptingOutputListener"]
7855        [::std::mem::size_of::<BNScriptingOutputListener>() - 40usize];
7856    ["Alignment of BNScriptingOutputListener"]
7857        [::std::mem::align_of::<BNScriptingOutputListener>() - 8usize];
7858    ["Offset of field: BNScriptingOutputListener::context"]
7859        [::std::mem::offset_of!(BNScriptingOutputListener, context) - 0usize];
7860    ["Offset of field: BNScriptingOutputListener::output"]
7861        [::std::mem::offset_of!(BNScriptingOutputListener, output) - 8usize];
7862    ["Offset of field: BNScriptingOutputListener::warning"]
7863        [::std::mem::offset_of!(BNScriptingOutputListener, warning) - 16usize];
7864    ["Offset of field: BNScriptingOutputListener::error"]
7865        [::std::mem::offset_of!(BNScriptingOutputListener, error) - 24usize];
7866    ["Offset of field: BNScriptingOutputListener::inputReadyStateChanged"]
7867        [::std::mem::offset_of!(BNScriptingOutputListener, inputReadyStateChanged) - 32usize];
7868};
7869impl Default for BNScriptingOutputListener {
7870    fn default() -> Self {
7871        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7872        unsafe {
7873            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7874            s.assume_init()
7875        }
7876    }
7877}
7878#[repr(C)]
7879#[derive(Debug, Copy, Clone)]
7880pub struct BNMainThreadCallbacks {
7881    pub context: *mut ::std::os::raw::c_void,
7882    pub addAction: ::std::option::Option<
7883        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, action: *mut BNMainThreadAction),
7884    >,
7885}
7886#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7887const _: () = {
7888    ["Size of BNMainThreadCallbacks"][::std::mem::size_of::<BNMainThreadCallbacks>() - 16usize];
7889    ["Alignment of BNMainThreadCallbacks"]
7890        [::std::mem::align_of::<BNMainThreadCallbacks>() - 8usize];
7891    ["Offset of field: BNMainThreadCallbacks::context"]
7892        [::std::mem::offset_of!(BNMainThreadCallbacks, context) - 0usize];
7893    ["Offset of field: BNMainThreadCallbacks::addAction"]
7894        [::std::mem::offset_of!(BNMainThreadCallbacks, addAction) - 8usize];
7895};
7896impl Default for BNMainThreadCallbacks {
7897    fn default() -> Self {
7898        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7899        unsafe {
7900            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7901            s.assume_init()
7902        }
7903    }
7904}
7905#[repr(C)]
7906#[derive(Copy, Clone)]
7907pub struct BNTypeParserCallbacks {
7908    pub context: *mut ::std::os::raw::c_void,
7909    pub getOptionText: ::std::option::Option<
7910        unsafe extern "C" fn(
7911            ctxt: *mut ::std::os::raw::c_void,
7912            option: BNTypeParserOption,
7913            value: *const ::std::os::raw::c_char,
7914            result: *mut *mut ::std::os::raw::c_char,
7915        ) -> bool,
7916    >,
7917    pub preprocessSource: ::std::option::Option<
7918        unsafe extern "C" fn(
7919            ctxt: *mut ::std::os::raw::c_void,
7920            source: *const ::std::os::raw::c_char,
7921            fileName: *const ::std::os::raw::c_char,
7922            platform: *mut BNPlatform,
7923            existingTypes: *mut BNTypeContainer,
7924            options: *const *const ::std::os::raw::c_char,
7925            optionCount: usize,
7926            includeDirs: *const *const ::std::os::raw::c_char,
7927            includeDirCount: usize,
7928            output: *mut *mut ::std::os::raw::c_char,
7929            errors: *mut *mut BNTypeParserError,
7930            errorCount: *mut usize,
7931        ) -> bool,
7932    >,
7933    pub parseTypesFromSource: ::std::option::Option<
7934        unsafe extern "C" fn(
7935            ctxt: *mut ::std::os::raw::c_void,
7936            source: *const ::std::os::raw::c_char,
7937            fileName: *const ::std::os::raw::c_char,
7938            platform: *mut BNPlatform,
7939            existingTypes: *mut BNTypeContainer,
7940            options: *const *const ::std::os::raw::c_char,
7941            optionCount: usize,
7942            includeDirs: *const *const ::std::os::raw::c_char,
7943            includeDirCount: usize,
7944            autoTypeSource: *const ::std::os::raw::c_char,
7945            result: *mut BNTypeParserResult,
7946            errors: *mut *mut BNTypeParserError,
7947            errorCount: *mut usize,
7948        ) -> bool,
7949    >,
7950    pub parseTypeString: ::std::option::Option<
7951        unsafe extern "C" fn(
7952            ctxt: *mut ::std::os::raw::c_void,
7953            source: *const ::std::os::raw::c_char,
7954            platform: *mut BNPlatform,
7955            existingTypes: *mut BNTypeContainer,
7956            result: *mut BNQualifiedNameAndType,
7957            errors: *mut *mut BNTypeParserError,
7958            errorCount: *mut usize,
7959        ) -> bool,
7960    >,
7961    pub freeString: ::std::option::Option<
7962        unsafe extern "C" fn(
7963            ctxt: *mut ::std::os::raw::c_void,
7964            string: *mut ::std::os::raw::c_char,
7965        ),
7966    >,
7967    pub freeResult: ::std::option::Option<
7968        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, result: *mut BNTypeParserResult),
7969    >,
7970    pub freeErrorList: ::std::option::Option<
7971        unsafe extern "C" fn(
7972            ctxt: *mut ::std::os::raw::c_void,
7973            errors: *mut BNTypeParserError,
7974            errorCount: usize,
7975        ),
7976    >,
7977}
7978#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7979const _: () = {
7980    ["Size of BNTypeParserCallbacks"][::std::mem::size_of::<BNTypeParserCallbacks>() - 64usize];
7981    ["Alignment of BNTypeParserCallbacks"]
7982        [::std::mem::align_of::<BNTypeParserCallbacks>() - 8usize];
7983    ["Offset of field: BNTypeParserCallbacks::context"]
7984        [::std::mem::offset_of!(BNTypeParserCallbacks, context) - 0usize];
7985    ["Offset of field: BNTypeParserCallbacks::getOptionText"]
7986        [::std::mem::offset_of!(BNTypeParserCallbacks, getOptionText) - 8usize];
7987    ["Offset of field: BNTypeParserCallbacks::preprocessSource"]
7988        [::std::mem::offset_of!(BNTypeParserCallbacks, preprocessSource) - 16usize];
7989    ["Offset of field: BNTypeParserCallbacks::parseTypesFromSource"]
7990        [::std::mem::offset_of!(BNTypeParserCallbacks, parseTypesFromSource) - 24usize];
7991    ["Offset of field: BNTypeParserCallbacks::parseTypeString"]
7992        [::std::mem::offset_of!(BNTypeParserCallbacks, parseTypeString) - 32usize];
7993    ["Offset of field: BNTypeParserCallbacks::freeString"]
7994        [::std::mem::offset_of!(BNTypeParserCallbacks, freeString) - 40usize];
7995    ["Offset of field: BNTypeParserCallbacks::freeResult"]
7996        [::std::mem::offset_of!(BNTypeParserCallbacks, freeResult) - 48usize];
7997    ["Offset of field: BNTypeParserCallbacks::freeErrorList"]
7998        [::std::mem::offset_of!(BNTypeParserCallbacks, freeErrorList) - 56usize];
7999};
8000impl Default for BNTypeParserCallbacks {
8001    fn default() -> Self {
8002        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8003        unsafe {
8004            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8005            s.assume_init()
8006        }
8007    }
8008}
8009#[repr(C)]
8010#[derive(Debug, Copy, Clone)]
8011pub struct BNTypePrinterCallbacks {
8012    pub context: *mut ::std::os::raw::c_void,
8013    pub getTypeTokens: ::std::option::Option<
8014        unsafe extern "C" fn(
8015            ctxt: *mut ::std::os::raw::c_void,
8016            type_: *mut BNType,
8017            platform: *mut BNPlatform,
8018            name: *mut BNQualifiedName,
8019            baseConfidence: u8,
8020            escaping: BNTokenEscapingType,
8021            result: *mut *mut BNInstructionTextToken,
8022            resultCount: *mut usize,
8023        ) -> bool,
8024    >,
8025    pub getTypeTokensBeforeName: ::std::option::Option<
8026        unsafe extern "C" fn(
8027            ctxt: *mut ::std::os::raw::c_void,
8028            type_: *mut BNType,
8029            platform: *mut BNPlatform,
8030            baseConfidence: u8,
8031            parentType: *mut BNType,
8032            escaping: BNTokenEscapingType,
8033            result: *mut *mut BNInstructionTextToken,
8034            resultCount: *mut usize,
8035        ) -> bool,
8036    >,
8037    pub getTypeTokensAfterName: ::std::option::Option<
8038        unsafe extern "C" fn(
8039            ctxt: *mut ::std::os::raw::c_void,
8040            type_: *mut BNType,
8041            platform: *mut BNPlatform,
8042            baseConfidence: u8,
8043            parentType: *mut BNType,
8044            escaping: BNTokenEscapingType,
8045            result: *mut *mut BNInstructionTextToken,
8046            resultCount: *mut usize,
8047        ) -> bool,
8048    >,
8049    pub getTypeString: ::std::option::Option<
8050        unsafe extern "C" fn(
8051            ctxt: *mut ::std::os::raw::c_void,
8052            type_: *mut BNType,
8053            platform: *mut BNPlatform,
8054            name: *mut BNQualifiedName,
8055            escaping: BNTokenEscapingType,
8056            result: *mut *mut ::std::os::raw::c_char,
8057        ) -> bool,
8058    >,
8059    pub getTypeStringBeforeName: ::std::option::Option<
8060        unsafe extern "C" fn(
8061            ctxt: *mut ::std::os::raw::c_void,
8062            type_: *mut BNType,
8063            platform: *mut BNPlatform,
8064            escaping: BNTokenEscapingType,
8065            result: *mut *mut ::std::os::raw::c_char,
8066        ) -> bool,
8067    >,
8068    pub getTypeStringAfterName: ::std::option::Option<
8069        unsafe extern "C" fn(
8070            ctxt: *mut ::std::os::raw::c_void,
8071            type_: *mut BNType,
8072            platform: *mut BNPlatform,
8073            escaping: BNTokenEscapingType,
8074            result: *mut *mut ::std::os::raw::c_char,
8075        ) -> bool,
8076    >,
8077    pub getTypeLines: ::std::option::Option<
8078        unsafe extern "C" fn(
8079            ctxt: *mut ::std::os::raw::c_void,
8080            type_: *mut BNType,
8081            types: *mut BNTypeContainer,
8082            name: *mut BNQualifiedName,
8083            paddingCols: ::std::os::raw::c_int,
8084            collapsed: bool,
8085            escaping: BNTokenEscapingType,
8086            result: *mut *mut BNTypeDefinitionLine,
8087            resultCount: *mut usize,
8088        ) -> bool,
8089    >,
8090    pub printAllTypes: ::std::option::Option<
8091        unsafe extern "C" fn(
8092            ctxt: *mut ::std::os::raw::c_void,
8093            names: *mut BNQualifiedName,
8094            types: *mut *mut BNType,
8095            typeCount: usize,
8096            data: *mut BNBinaryView,
8097            paddingCols: ::std::os::raw::c_int,
8098            escaping: BNTokenEscapingType,
8099            result: *mut *mut ::std::os::raw::c_char,
8100        ) -> bool,
8101    >,
8102    pub freeTokens: ::std::option::Option<
8103        unsafe extern "C" fn(
8104            ctxt: *mut ::std::os::raw::c_void,
8105            tokens: *mut BNInstructionTextToken,
8106            count: usize,
8107        ),
8108    >,
8109    pub freeString: ::std::option::Option<
8110        unsafe extern "C" fn(
8111            ctxt: *mut ::std::os::raw::c_void,
8112            string: *mut ::std::os::raw::c_char,
8113        ),
8114    >,
8115    pub freeLines: ::std::option::Option<
8116        unsafe extern "C" fn(
8117            ctxt: *mut ::std::os::raw::c_void,
8118            lines: *mut BNTypeDefinitionLine,
8119            count: usize,
8120        ),
8121    >,
8122}
8123#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8124const _: () = {
8125    ["Size of BNTypePrinterCallbacks"][::std::mem::size_of::<BNTypePrinterCallbacks>() - 96usize];
8126    ["Alignment of BNTypePrinterCallbacks"]
8127        [::std::mem::align_of::<BNTypePrinterCallbacks>() - 8usize];
8128    ["Offset of field: BNTypePrinterCallbacks::context"]
8129        [::std::mem::offset_of!(BNTypePrinterCallbacks, context) - 0usize];
8130    ["Offset of field: BNTypePrinterCallbacks::getTypeTokens"]
8131        [::std::mem::offset_of!(BNTypePrinterCallbacks, getTypeTokens) - 8usize];
8132    ["Offset of field: BNTypePrinterCallbacks::getTypeTokensBeforeName"]
8133        [::std::mem::offset_of!(BNTypePrinterCallbacks, getTypeTokensBeforeName) - 16usize];
8134    ["Offset of field: BNTypePrinterCallbacks::getTypeTokensAfterName"]
8135        [::std::mem::offset_of!(BNTypePrinterCallbacks, getTypeTokensAfterName) - 24usize];
8136    ["Offset of field: BNTypePrinterCallbacks::getTypeString"]
8137        [::std::mem::offset_of!(BNTypePrinterCallbacks, getTypeString) - 32usize];
8138    ["Offset of field: BNTypePrinterCallbacks::getTypeStringBeforeName"]
8139        [::std::mem::offset_of!(BNTypePrinterCallbacks, getTypeStringBeforeName) - 40usize];
8140    ["Offset of field: BNTypePrinterCallbacks::getTypeStringAfterName"]
8141        [::std::mem::offset_of!(BNTypePrinterCallbacks, getTypeStringAfterName) - 48usize];
8142    ["Offset of field: BNTypePrinterCallbacks::getTypeLines"]
8143        [::std::mem::offset_of!(BNTypePrinterCallbacks, getTypeLines) - 56usize];
8144    ["Offset of field: BNTypePrinterCallbacks::printAllTypes"]
8145        [::std::mem::offset_of!(BNTypePrinterCallbacks, printAllTypes) - 64usize];
8146    ["Offset of field: BNTypePrinterCallbacks::freeTokens"]
8147        [::std::mem::offset_of!(BNTypePrinterCallbacks, freeTokens) - 72usize];
8148    ["Offset of field: BNTypePrinterCallbacks::freeString"]
8149        [::std::mem::offset_of!(BNTypePrinterCallbacks, freeString) - 80usize];
8150    ["Offset of field: BNTypePrinterCallbacks::freeLines"]
8151        [::std::mem::offset_of!(BNTypePrinterCallbacks, freeLines) - 88usize];
8152};
8153impl Default for BNTypePrinterCallbacks {
8154    fn default() -> Self {
8155        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8156        unsafe {
8157            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8158            s.assume_init()
8159        }
8160    }
8161}
8162#[repr(C)]
8163#[derive(Debug, Default, Copy, Clone)]
8164pub struct BNConstantReference {
8165    pub value: i64,
8166    pub size: usize,
8167    pub pointer: bool,
8168    pub intermediate: bool,
8169}
8170#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8171const _: () = {
8172    ["Size of BNConstantReference"][::std::mem::size_of::<BNConstantReference>() - 24usize];
8173    ["Alignment of BNConstantReference"][::std::mem::align_of::<BNConstantReference>() - 8usize];
8174    ["Offset of field: BNConstantReference::value"]
8175        [::std::mem::offset_of!(BNConstantReference, value) - 0usize];
8176    ["Offset of field: BNConstantReference::size"]
8177        [::std::mem::offset_of!(BNConstantReference, size) - 8usize];
8178    ["Offset of field: BNConstantReference::pointer"]
8179        [::std::mem::offset_of!(BNConstantReference, pointer) - 16usize];
8180    ["Offset of field: BNConstantReference::intermediate"]
8181        [::std::mem::offset_of!(BNConstantReference, intermediate) - 17usize];
8182};
8183#[repr(C)]
8184#[derive(Debug, Copy, Clone)]
8185pub struct BNMetadataValueStore {
8186    pub size: usize,
8187    pub keys: *mut *mut ::std::os::raw::c_char,
8188    pub values: *mut *mut BNMetadata,
8189}
8190#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8191const _: () = {
8192    ["Size of BNMetadataValueStore"][::std::mem::size_of::<BNMetadataValueStore>() - 24usize];
8193    ["Alignment of BNMetadataValueStore"][::std::mem::align_of::<BNMetadataValueStore>() - 8usize];
8194    ["Offset of field: BNMetadataValueStore::size"]
8195        [::std::mem::offset_of!(BNMetadataValueStore, size) - 0usize];
8196    ["Offset of field: BNMetadataValueStore::keys"]
8197        [::std::mem::offset_of!(BNMetadataValueStore, keys) - 8usize];
8198    ["Offset of field: BNMetadataValueStore::values"]
8199        [::std::mem::offset_of!(BNMetadataValueStore, values) - 16usize];
8200};
8201impl Default for BNMetadataValueStore {
8202    fn default() -> Self {
8203        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8204        unsafe {
8205            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8206            s.assume_init()
8207        }
8208    }
8209}
8210#[repr(u8)]
8211#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
8212pub enum BNSaveOption {
8213    RemoveUndoData = 0,
8214    TrimSnapshots = 1,
8215    PurgeOriginalFilenamePath = 2,
8216}
8217#[repr(u8)]
8218#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
8219pub enum BNMessageBoxIcon {
8220    InformationIcon = 0,
8221    QuestionIcon = 1,
8222    WarningIcon = 2,
8223    ErrorIcon = 3,
8224}
8225#[repr(u8)]
8226#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
8227pub enum BNMessageBoxButtonSet {
8228    OKButtonSet = 0,
8229    YesNoButtonSet = 1,
8230    YesNoCancelButtonSet = 2,
8231}
8232#[repr(u8)]
8233#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
8234pub enum BNMessageBoxButtonResult {
8235    NoButton = 0,
8236    YesButton = 1,
8237    OKButton = 2,
8238    CancelButton = 3,
8239}
8240#[repr(u8)]
8241#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
8242pub enum BNFormInputFieldType {
8243    LabelFormField = 0,
8244    SeparatorFormField = 1,
8245    TextLineFormField = 2,
8246    MultilineTextFormField = 3,
8247    IntegerFormField = 4,
8248    AddressFormField = 5,
8249    ChoiceFormField = 6,
8250    OpenFileNameFormField = 7,
8251    SaveFileNameFormField = 8,
8252    DirectoryNameFormField = 9,
8253    CheckboxFormField = 10,
8254}
8255#[repr(C)]
8256#[derive(Debug, Copy, Clone)]
8257pub struct BNFormInputField {
8258    pub type_: BNFormInputFieldType,
8259    pub prompt: *const ::std::os::raw::c_char,
8260    #[doc = " For AddressFormField"]
8261    pub view: *mut BNBinaryView,
8262    #[doc = " For AddressFormField"]
8263    pub currentAddress: u64,
8264    #[doc = " For ChoiceFormField"]
8265    pub choices: *mut *const ::std::os::raw::c_char,
8266    #[doc = " For ChoiceFormField"]
8267    pub count: usize,
8268    #[doc = " For OpenFileNameFormField, SaveFileNameFormField"]
8269    pub ext: *const ::std::os::raw::c_char,
8270    #[doc = " For SaveFileNameFormField"]
8271    pub defaultName: *const ::std::os::raw::c_char,
8272    pub intResult: i64,
8273    pub addressResult: u64,
8274    pub stringResult: *mut ::std::os::raw::c_char,
8275    pub indexResult: usize,
8276    pub hasDefault: bool,
8277    pub intDefault: i64,
8278    pub addressDefault: u64,
8279    pub stringDefault: *const ::std::os::raw::c_char,
8280    pub indexDefault: usize,
8281}
8282#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8283const _: () = {
8284    ["Size of BNFormInputField"][::std::mem::size_of::<BNFormInputField>() - 136usize];
8285    ["Alignment of BNFormInputField"][::std::mem::align_of::<BNFormInputField>() - 8usize];
8286    ["Offset of field: BNFormInputField::type_"]
8287        [::std::mem::offset_of!(BNFormInputField, type_) - 0usize];
8288    ["Offset of field: BNFormInputField::prompt"]
8289        [::std::mem::offset_of!(BNFormInputField, prompt) - 8usize];
8290    ["Offset of field: BNFormInputField::view"]
8291        [::std::mem::offset_of!(BNFormInputField, view) - 16usize];
8292    ["Offset of field: BNFormInputField::currentAddress"]
8293        [::std::mem::offset_of!(BNFormInputField, currentAddress) - 24usize];
8294    ["Offset of field: BNFormInputField::choices"]
8295        [::std::mem::offset_of!(BNFormInputField, choices) - 32usize];
8296    ["Offset of field: BNFormInputField::count"]
8297        [::std::mem::offset_of!(BNFormInputField, count) - 40usize];
8298    ["Offset of field: BNFormInputField::ext"]
8299        [::std::mem::offset_of!(BNFormInputField, ext) - 48usize];
8300    ["Offset of field: BNFormInputField::defaultName"]
8301        [::std::mem::offset_of!(BNFormInputField, defaultName) - 56usize];
8302    ["Offset of field: BNFormInputField::intResult"]
8303        [::std::mem::offset_of!(BNFormInputField, intResult) - 64usize];
8304    ["Offset of field: BNFormInputField::addressResult"]
8305        [::std::mem::offset_of!(BNFormInputField, addressResult) - 72usize];
8306    ["Offset of field: BNFormInputField::stringResult"]
8307        [::std::mem::offset_of!(BNFormInputField, stringResult) - 80usize];
8308    ["Offset of field: BNFormInputField::indexResult"]
8309        [::std::mem::offset_of!(BNFormInputField, indexResult) - 88usize];
8310    ["Offset of field: BNFormInputField::hasDefault"]
8311        [::std::mem::offset_of!(BNFormInputField, hasDefault) - 96usize];
8312    ["Offset of field: BNFormInputField::intDefault"]
8313        [::std::mem::offset_of!(BNFormInputField, intDefault) - 104usize];
8314    ["Offset of field: BNFormInputField::addressDefault"]
8315        [::std::mem::offset_of!(BNFormInputField, addressDefault) - 112usize];
8316    ["Offset of field: BNFormInputField::stringDefault"]
8317        [::std::mem::offset_of!(BNFormInputField, stringDefault) - 120usize];
8318    ["Offset of field: BNFormInputField::indexDefault"]
8319        [::std::mem::offset_of!(BNFormInputField, indexDefault) - 128usize];
8320};
8321impl Default for BNFormInputField {
8322    fn default() -> Self {
8323        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8324        unsafe {
8325            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8326            s.assume_init()
8327        }
8328    }
8329}
8330#[repr(C)]
8331#[derive(Debug, Copy, Clone)]
8332pub struct BNInteractionHandlerCallbacks {
8333    pub context: *mut ::std::os::raw::c_void,
8334    pub showPlainTextReport: ::std::option::Option<
8335        unsafe extern "C" fn(
8336            ctxt: *mut ::std::os::raw::c_void,
8337            view: *mut BNBinaryView,
8338            title: *const ::std::os::raw::c_char,
8339            contents: *const ::std::os::raw::c_char,
8340        ),
8341    >,
8342    pub showMarkdownReport: ::std::option::Option<
8343        unsafe extern "C" fn(
8344            ctxt: *mut ::std::os::raw::c_void,
8345            view: *mut BNBinaryView,
8346            title: *const ::std::os::raw::c_char,
8347            contents: *const ::std::os::raw::c_char,
8348            plaintext: *const ::std::os::raw::c_char,
8349        ),
8350    >,
8351    pub showHTMLReport: ::std::option::Option<
8352        unsafe extern "C" fn(
8353            ctxt: *mut ::std::os::raw::c_void,
8354            view: *mut BNBinaryView,
8355            title: *const ::std::os::raw::c_char,
8356            contents: *const ::std::os::raw::c_char,
8357            plaintext: *const ::std::os::raw::c_char,
8358        ),
8359    >,
8360    pub showGraphReport: ::std::option::Option<
8361        unsafe extern "C" fn(
8362            ctxt: *mut ::std::os::raw::c_void,
8363            view: *mut BNBinaryView,
8364            title: *const ::std::os::raw::c_char,
8365            graph: *mut BNFlowGraph,
8366        ),
8367    >,
8368    pub showReportCollection: ::std::option::Option<
8369        unsafe extern "C" fn(
8370            ctxt: *mut ::std::os::raw::c_void,
8371            title: *const ::std::os::raw::c_char,
8372            reports: *mut BNReportCollection,
8373        ),
8374    >,
8375    pub getTextLineInput: ::std::option::Option<
8376        unsafe extern "C" fn(
8377            ctxt: *mut ::std::os::raw::c_void,
8378            result: *mut *mut ::std::os::raw::c_char,
8379            prompt: *const ::std::os::raw::c_char,
8380            title: *const ::std::os::raw::c_char,
8381        ) -> bool,
8382    >,
8383    pub getIntegerInput: ::std::option::Option<
8384        unsafe extern "C" fn(
8385            ctxt: *mut ::std::os::raw::c_void,
8386            result: *mut i64,
8387            prompt: *const ::std::os::raw::c_char,
8388            title: *const ::std::os::raw::c_char,
8389        ) -> bool,
8390    >,
8391    pub getAddressInput: ::std::option::Option<
8392        unsafe extern "C" fn(
8393            ctxt: *mut ::std::os::raw::c_void,
8394            result: *mut u64,
8395            prompt: *const ::std::os::raw::c_char,
8396            title: *const ::std::os::raw::c_char,
8397            view: *mut BNBinaryView,
8398            currentAddr: u64,
8399        ) -> bool,
8400    >,
8401    pub getChoiceInput: ::std::option::Option<
8402        unsafe extern "C" fn(
8403            ctxt: *mut ::std::os::raw::c_void,
8404            result: *mut usize,
8405            prompt: *const ::std::os::raw::c_char,
8406            title: *const ::std::os::raw::c_char,
8407            choices: *mut *const ::std::os::raw::c_char,
8408            count: usize,
8409        ) -> bool,
8410    >,
8411    pub getLargeChoiceInput: ::std::option::Option<
8412        unsafe extern "C" fn(
8413            ctxt: *mut ::std::os::raw::c_void,
8414            result: *mut usize,
8415            prompt: *const ::std::os::raw::c_char,
8416            title: *const ::std::os::raw::c_char,
8417            choices: *mut *const ::std::os::raw::c_char,
8418            count: usize,
8419        ) -> bool,
8420    >,
8421    pub getOpenFileNameInput: ::std::option::Option<
8422        unsafe extern "C" fn(
8423            ctxt: *mut ::std::os::raw::c_void,
8424            result: *mut *mut ::std::os::raw::c_char,
8425            prompt: *const ::std::os::raw::c_char,
8426            ext: *const ::std::os::raw::c_char,
8427        ) -> bool,
8428    >,
8429    pub getSaveFileNameInput: ::std::option::Option<
8430        unsafe extern "C" fn(
8431            ctxt: *mut ::std::os::raw::c_void,
8432            result: *mut *mut ::std::os::raw::c_char,
8433            prompt: *const ::std::os::raw::c_char,
8434            ext: *const ::std::os::raw::c_char,
8435            defaultName: *const ::std::os::raw::c_char,
8436        ) -> bool,
8437    >,
8438    pub getDirectoryNameInput: ::std::option::Option<
8439        unsafe extern "C" fn(
8440            ctxt: *mut ::std::os::raw::c_void,
8441            result: *mut *mut ::std::os::raw::c_char,
8442            prompt: *const ::std::os::raw::c_char,
8443            defaultName: *const ::std::os::raw::c_char,
8444        ) -> bool,
8445    >,
8446    pub getCheckboxInput: ::std::option::Option<
8447        unsafe extern "C" fn(
8448            ctxt: *mut ::std::os::raw::c_void,
8449            result: *mut i64,
8450            prompt: *const ::std::os::raw::c_char,
8451            title: *const ::std::os::raw::c_char,
8452            defaultChoice: *const i64,
8453        ) -> bool,
8454    >,
8455    pub getFormInput: ::std::option::Option<
8456        unsafe extern "C" fn(
8457            ctxt: *mut ::std::os::raw::c_void,
8458            fields: *mut BNFormInputField,
8459            count: usize,
8460            title: *const ::std::os::raw::c_char,
8461        ) -> bool,
8462    >,
8463    pub showMessageBox: ::std::option::Option<
8464        unsafe extern "C" fn(
8465            ctxt: *mut ::std::os::raw::c_void,
8466            title: *const ::std::os::raw::c_char,
8467            text: *const ::std::os::raw::c_char,
8468            buttons: BNMessageBoxButtonSet,
8469            icon: BNMessageBoxIcon,
8470        ) -> BNMessageBoxButtonResult,
8471    >,
8472    pub openUrl: ::std::option::Option<
8473        unsafe extern "C" fn(
8474            ctxt: *mut ::std::os::raw::c_void,
8475            url: *const ::std::os::raw::c_char,
8476        ) -> bool,
8477    >,
8478    pub runProgressDialog: ::std::option::Option<
8479        unsafe extern "C" fn(
8480            ctxt: *mut ::std::os::raw::c_void,
8481            title: *const ::std::os::raw::c_char,
8482            canCancel: bool,
8483            task: ::std::option::Option<
8484                unsafe extern "C" fn(
8485                    taskCtxt: *mut ::std::os::raw::c_void,
8486                    progress: BNProgressFunction,
8487                    progressCtxt: *mut ::std::os::raw::c_void,
8488                ),
8489            >,
8490            taskCtxt: *mut ::std::os::raw::c_void,
8491        ) -> bool,
8492    >,
8493}
8494#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8495const _: () = {
8496    ["Size of BNInteractionHandlerCallbacks"]
8497        [::std::mem::size_of::<BNInteractionHandlerCallbacks>() - 152usize];
8498    ["Alignment of BNInteractionHandlerCallbacks"]
8499        [::std::mem::align_of::<BNInteractionHandlerCallbacks>() - 8usize];
8500    ["Offset of field: BNInteractionHandlerCallbacks::context"]
8501        [::std::mem::offset_of!(BNInteractionHandlerCallbacks, context) - 0usize];
8502    ["Offset of field: BNInteractionHandlerCallbacks::showPlainTextReport"]
8503        [::std::mem::offset_of!(BNInteractionHandlerCallbacks, showPlainTextReport) - 8usize];
8504    ["Offset of field: BNInteractionHandlerCallbacks::showMarkdownReport"]
8505        [::std::mem::offset_of!(BNInteractionHandlerCallbacks, showMarkdownReport) - 16usize];
8506    ["Offset of field: BNInteractionHandlerCallbacks::showHTMLReport"]
8507        [::std::mem::offset_of!(BNInteractionHandlerCallbacks, showHTMLReport) - 24usize];
8508    ["Offset of field: BNInteractionHandlerCallbacks::showGraphReport"]
8509        [::std::mem::offset_of!(BNInteractionHandlerCallbacks, showGraphReport) - 32usize];
8510    ["Offset of field: BNInteractionHandlerCallbacks::showReportCollection"]
8511        [::std::mem::offset_of!(BNInteractionHandlerCallbacks, showReportCollection) - 40usize];
8512    ["Offset of field: BNInteractionHandlerCallbacks::getTextLineInput"]
8513        [::std::mem::offset_of!(BNInteractionHandlerCallbacks, getTextLineInput) - 48usize];
8514    ["Offset of field: BNInteractionHandlerCallbacks::getIntegerInput"]
8515        [::std::mem::offset_of!(BNInteractionHandlerCallbacks, getIntegerInput) - 56usize];
8516    ["Offset of field: BNInteractionHandlerCallbacks::getAddressInput"]
8517        [::std::mem::offset_of!(BNInteractionHandlerCallbacks, getAddressInput) - 64usize];
8518    ["Offset of field: BNInteractionHandlerCallbacks::getChoiceInput"]
8519        [::std::mem::offset_of!(BNInteractionHandlerCallbacks, getChoiceInput) - 72usize];
8520    ["Offset of field: BNInteractionHandlerCallbacks::getLargeChoiceInput"]
8521        [::std::mem::offset_of!(BNInteractionHandlerCallbacks, getLargeChoiceInput) - 80usize];
8522    ["Offset of field: BNInteractionHandlerCallbacks::getOpenFileNameInput"]
8523        [::std::mem::offset_of!(BNInteractionHandlerCallbacks, getOpenFileNameInput) - 88usize];
8524    ["Offset of field: BNInteractionHandlerCallbacks::getSaveFileNameInput"]
8525        [::std::mem::offset_of!(BNInteractionHandlerCallbacks, getSaveFileNameInput) - 96usize];
8526    ["Offset of field: BNInteractionHandlerCallbacks::getDirectoryNameInput"]
8527        [::std::mem::offset_of!(BNInteractionHandlerCallbacks, getDirectoryNameInput) - 104usize];
8528    ["Offset of field: BNInteractionHandlerCallbacks::getCheckboxInput"]
8529        [::std::mem::offset_of!(BNInteractionHandlerCallbacks, getCheckboxInput) - 112usize];
8530    ["Offset of field: BNInteractionHandlerCallbacks::getFormInput"]
8531        [::std::mem::offset_of!(BNInteractionHandlerCallbacks, getFormInput) - 120usize];
8532    ["Offset of field: BNInteractionHandlerCallbacks::showMessageBox"]
8533        [::std::mem::offset_of!(BNInteractionHandlerCallbacks, showMessageBox) - 128usize];
8534    ["Offset of field: BNInteractionHandlerCallbacks::openUrl"]
8535        [::std::mem::offset_of!(BNInteractionHandlerCallbacks, openUrl) - 136usize];
8536    ["Offset of field: BNInteractionHandlerCallbacks::runProgressDialog"]
8537        [::std::mem::offset_of!(BNInteractionHandlerCallbacks, runProgressDialog) - 144usize];
8538};
8539impl Default for BNInteractionHandlerCallbacks {
8540    fn default() -> Self {
8541        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8542        unsafe {
8543            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8544            s.assume_init()
8545        }
8546    }
8547}
8548#[repr(C)]
8549#[derive(Debug, Copy, Clone)]
8550pub struct BNObjectDestructionCallbacks {
8551    pub context: *mut ::std::os::raw::c_void,
8552    #[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."]
8553    pub destructBinaryView: ::std::option::Option<
8554        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, view: *mut BNBinaryView),
8555    >,
8556    pub destructFileMetadata: ::std::option::Option<
8557        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, file: *mut BNFileMetadata),
8558    >,
8559    pub destructFunction: ::std::option::Option<
8560        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, func: *mut BNFunction),
8561    >,
8562}
8563#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8564const _: () = {
8565    ["Size of BNObjectDestructionCallbacks"]
8566        [::std::mem::size_of::<BNObjectDestructionCallbacks>() - 32usize];
8567    ["Alignment of BNObjectDestructionCallbacks"]
8568        [::std::mem::align_of::<BNObjectDestructionCallbacks>() - 8usize];
8569    ["Offset of field: BNObjectDestructionCallbacks::context"]
8570        [::std::mem::offset_of!(BNObjectDestructionCallbacks, context) - 0usize];
8571    ["Offset of field: BNObjectDestructionCallbacks::destructBinaryView"]
8572        [::std::mem::offset_of!(BNObjectDestructionCallbacks, destructBinaryView) - 8usize];
8573    ["Offset of field: BNObjectDestructionCallbacks::destructFileMetadata"]
8574        [::std::mem::offset_of!(BNObjectDestructionCallbacks, destructFileMetadata) - 16usize];
8575    ["Offset of field: BNObjectDestructionCallbacks::destructFunction"]
8576        [::std::mem::offset_of!(BNObjectDestructionCallbacks, destructFunction) - 24usize];
8577};
8578impl Default for BNObjectDestructionCallbacks {
8579    fn default() -> Self {
8580        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8581        unsafe {
8582            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8583            s.assume_init()
8584        }
8585    }
8586}
8587#[repr(C)]
8588#[derive(Debug, Copy, Clone)]
8589pub struct BNTypeContext {
8590    pub type_: *mut BNType,
8591    pub offset: usize,
8592}
8593#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8594const _: () = {
8595    ["Size of BNTypeContext"][::std::mem::size_of::<BNTypeContext>() - 16usize];
8596    ["Alignment of BNTypeContext"][::std::mem::align_of::<BNTypeContext>() - 8usize];
8597    ["Offset of field: BNTypeContext::type_"]
8598        [::std::mem::offset_of!(BNTypeContext, type_) - 0usize];
8599    ["Offset of field: BNTypeContext::offset"]
8600        [::std::mem::offset_of!(BNTypeContext, offset) - 8usize];
8601};
8602impl Default for BNTypeContext {
8603    fn default() -> Self {
8604        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8605        unsafe {
8606            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8607            s.assume_init()
8608        }
8609    }
8610}
8611#[repr(C)]
8612#[derive(Debug, Copy, Clone)]
8613pub struct BNCustomDataRenderer {
8614    pub context: *mut ::std::os::raw::c_void,
8615    pub freeObject: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
8616    pub isValidForData: ::std::option::Option<
8617        unsafe extern "C" fn(
8618            ctxt: *mut ::std::os::raw::c_void,
8619            view: *mut BNBinaryView,
8620            addr: u64,
8621            type_: *mut BNType,
8622            typeCtx: *mut BNTypeContext,
8623            ctxCount: usize,
8624        ) -> bool,
8625    >,
8626    pub getLinesForData: ::std::option::Option<
8627        unsafe extern "C" fn(
8628            ctxt: *mut ::std::os::raw::c_void,
8629            view: *mut BNBinaryView,
8630            addr: u64,
8631            type_: *mut BNType,
8632            prefix: *const BNInstructionTextToken,
8633            prefixCount: usize,
8634            width: usize,
8635            count: *mut usize,
8636            typeCtx: *mut BNTypeContext,
8637            ctxCount: usize,
8638            language: *const ::std::os::raw::c_char,
8639        ) -> *mut BNDisassemblyTextLine,
8640    >,
8641    pub freeLines: ::std::option::Option<
8642        unsafe extern "C" fn(
8643            ctx: *mut ::std::os::raw::c_void,
8644            lines: *mut BNDisassemblyTextLine,
8645            count: usize,
8646        ),
8647    >,
8648}
8649#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8650const _: () = {
8651    ["Size of BNCustomDataRenderer"][::std::mem::size_of::<BNCustomDataRenderer>() - 40usize];
8652    ["Alignment of BNCustomDataRenderer"][::std::mem::align_of::<BNCustomDataRenderer>() - 8usize];
8653    ["Offset of field: BNCustomDataRenderer::context"]
8654        [::std::mem::offset_of!(BNCustomDataRenderer, context) - 0usize];
8655    ["Offset of field: BNCustomDataRenderer::freeObject"]
8656        [::std::mem::offset_of!(BNCustomDataRenderer, freeObject) - 8usize];
8657    ["Offset of field: BNCustomDataRenderer::isValidForData"]
8658        [::std::mem::offset_of!(BNCustomDataRenderer, isValidForData) - 16usize];
8659    ["Offset of field: BNCustomDataRenderer::getLinesForData"]
8660        [::std::mem::offset_of!(BNCustomDataRenderer, getLinesForData) - 24usize];
8661    ["Offset of field: BNCustomDataRenderer::freeLines"]
8662        [::std::mem::offset_of!(BNCustomDataRenderer, freeLines) - 32usize];
8663};
8664impl Default for BNCustomDataRenderer {
8665    fn default() -> Self {
8666        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8667        unsafe {
8668            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8669            s.assume_init()
8670        }
8671    }
8672}
8673#[repr(u8)]
8674#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
8675pub enum BNSectionSemantics {
8676    DefaultSectionSemantics = 0,
8677    ReadOnlyCodeSectionSemantics = 1,
8678    ReadOnlyDataSectionSemantics = 2,
8679    ReadWriteDataSectionSemantics = 3,
8680    ExternalSectionSemantics = 4,
8681}
8682#[repr(C)]
8683#[derive(Debug, Default, Copy, Clone)]
8684pub struct BNAddressRange {
8685    pub start: u64,
8686    pub end: u64,
8687}
8688#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8689const _: () = {
8690    ["Size of BNAddressRange"][::std::mem::size_of::<BNAddressRange>() - 16usize];
8691    ["Alignment of BNAddressRange"][::std::mem::align_of::<BNAddressRange>() - 8usize];
8692    ["Offset of field: BNAddressRange::start"]
8693        [::std::mem::offset_of!(BNAddressRange, start) - 0usize];
8694    ["Offset of field: BNAddressRange::end"][::std::mem::offset_of!(BNAddressRange, end) - 8usize];
8695};
8696#[repr(C)]
8697#[derive(Debug, Copy, Clone)]
8698pub struct BNSystemCallInfo {
8699    pub number: u32,
8700    pub name: BNQualifiedName,
8701    pub type_: *mut BNType,
8702}
8703#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8704const _: () = {
8705    ["Size of BNSystemCallInfo"][::std::mem::size_of::<BNSystemCallInfo>() - 40usize];
8706    ["Alignment of BNSystemCallInfo"][::std::mem::align_of::<BNSystemCallInfo>() - 8usize];
8707    ["Offset of field: BNSystemCallInfo::number"]
8708        [::std::mem::offset_of!(BNSystemCallInfo, number) - 0usize];
8709    ["Offset of field: BNSystemCallInfo::name"]
8710        [::std::mem::offset_of!(BNSystemCallInfo, name) - 8usize];
8711    ["Offset of field: BNSystemCallInfo::type_"]
8712        [::std::mem::offset_of!(BNSystemCallInfo, type_) - 32usize];
8713};
8714impl Default for BNSystemCallInfo {
8715    fn default() -> Self {
8716        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8717        unsafe {
8718            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8719            s.assume_init()
8720        }
8721    }
8722}
8723#[repr(u8)]
8724#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
8725pub enum BNILBranchDependence {
8726    NotBranchDependent = 0,
8727    TrueBranchDependent = 1,
8728    FalseBranchDependent = 2,
8729}
8730#[repr(C)]
8731#[derive(Debug, Copy, Clone)]
8732pub struct BNILBranchInstructionAndDependence {
8733    pub branch: usize,
8734    pub dependence: BNILBranchDependence,
8735}
8736#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8737const _: () = {
8738    ["Size of BNILBranchInstructionAndDependence"]
8739        [::std::mem::size_of::<BNILBranchInstructionAndDependence>() - 16usize];
8740    ["Alignment of BNILBranchInstructionAndDependence"]
8741        [::std::mem::align_of::<BNILBranchInstructionAndDependence>() - 8usize];
8742    ["Offset of field: BNILBranchInstructionAndDependence::branch"]
8743        [::std::mem::offset_of!(BNILBranchInstructionAndDependence, branch) - 0usize];
8744    ["Offset of field: BNILBranchInstructionAndDependence::dependence"]
8745        [::std::mem::offset_of!(BNILBranchInstructionAndDependence, dependence) - 8usize];
8746};
8747impl Default for BNILBranchInstructionAndDependence {
8748    fn default() -> Self {
8749        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8750        unsafe {
8751            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8752            s.assume_init()
8753        }
8754    }
8755}
8756#[repr(C)]
8757#[derive(Debug, Copy, Clone)]
8758pub struct BNPerformanceInfo {
8759    pub name: *mut ::std::os::raw::c_char,
8760    pub seconds: f64,
8761}
8762#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8763const _: () = {
8764    ["Size of BNPerformanceInfo"][::std::mem::size_of::<BNPerformanceInfo>() - 16usize];
8765    ["Alignment of BNPerformanceInfo"][::std::mem::align_of::<BNPerformanceInfo>() - 8usize];
8766    ["Offset of field: BNPerformanceInfo::name"]
8767        [::std::mem::offset_of!(BNPerformanceInfo, name) - 0usize];
8768    ["Offset of field: BNPerformanceInfo::seconds"]
8769        [::std::mem::offset_of!(BNPerformanceInfo, seconds) - 8usize];
8770};
8771impl Default for BNPerformanceInfo {
8772    fn default() -> Self {
8773        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8774        unsafe {
8775            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8776            s.assume_init()
8777        }
8778    }
8779}
8780#[repr(C)]
8781#[derive(Debug, Copy, Clone)]
8782pub struct BNMemoryUsageInfo {
8783    pub name: *mut ::std::os::raw::c_char,
8784    pub value: u64,
8785}
8786#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8787const _: () = {
8788    ["Size of BNMemoryUsageInfo"][::std::mem::size_of::<BNMemoryUsageInfo>() - 16usize];
8789    ["Alignment of BNMemoryUsageInfo"][::std::mem::align_of::<BNMemoryUsageInfo>() - 8usize];
8790    ["Offset of field: BNMemoryUsageInfo::name"]
8791        [::std::mem::offset_of!(BNMemoryUsageInfo, name) - 0usize];
8792    ["Offset of field: BNMemoryUsageInfo::value"]
8793        [::std::mem::offset_of!(BNMemoryUsageInfo, value) - 8usize];
8794};
8795impl Default for BNMemoryUsageInfo {
8796    fn default() -> Self {
8797        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8798        unsafe {
8799            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8800            s.assume_init()
8801        }
8802    }
8803}
8804#[repr(u8)]
8805#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
8806pub enum BNMetadataType {
8807    InvalidDataType = 0,
8808    BooleanDataType = 1,
8809    StringDataType = 2,
8810    UnsignedIntegerDataType = 3,
8811    SignedIntegerDataType = 4,
8812    DoubleDataType = 5,
8813    RawDataType = 6,
8814    KeyValueDataType = 7,
8815    ArrayDataType = 8,
8816}
8817#[repr(C)]
8818#[derive(Debug, Default, Copy, Clone)]
8819pub struct BNRegisterStackAdjustment {
8820    pub regStack: u32,
8821    pub adjustment: i32,
8822    pub confidence: u8,
8823}
8824#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8825const _: () = {
8826    ["Size of BNRegisterStackAdjustment"]
8827        [::std::mem::size_of::<BNRegisterStackAdjustment>() - 12usize];
8828    ["Alignment of BNRegisterStackAdjustment"]
8829        [::std::mem::align_of::<BNRegisterStackAdjustment>() - 4usize];
8830    ["Offset of field: BNRegisterStackAdjustment::regStack"]
8831        [::std::mem::offset_of!(BNRegisterStackAdjustment, regStack) - 0usize];
8832    ["Offset of field: BNRegisterStackAdjustment::adjustment"]
8833        [::std::mem::offset_of!(BNRegisterStackAdjustment, adjustment) - 4usize];
8834    ["Offset of field: BNRegisterStackAdjustment::confidence"]
8835        [::std::mem::offset_of!(BNRegisterStackAdjustment, confidence) - 8usize];
8836};
8837#[repr(u8)]
8838#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
8839pub enum BNReportType {
8840    PlainTextReportType = 0,
8841    MarkdownReportType = 1,
8842    HTMLReportType = 2,
8843    FlowGraphReportType = 3,
8844}
8845#[repr(C)]
8846#[derive(Debug, Copy, Clone)]
8847pub struct BNCustomFlowGraph {
8848    pub context: *mut ::std::os::raw::c_void,
8849    pub prepareForLayout:
8850        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
8851    pub populateNodes:
8852        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
8853    pub completeLayout:
8854        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
8855    pub update: ::std::option::Option<
8856        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> *mut BNFlowGraph,
8857    >,
8858    pub freeObject: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
8859    pub externalRefTaken:
8860        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
8861    pub externalRefReleased:
8862        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
8863}
8864#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8865const _: () = {
8866    ["Size of BNCustomFlowGraph"][::std::mem::size_of::<BNCustomFlowGraph>() - 64usize];
8867    ["Alignment of BNCustomFlowGraph"][::std::mem::align_of::<BNCustomFlowGraph>() - 8usize];
8868    ["Offset of field: BNCustomFlowGraph::context"]
8869        [::std::mem::offset_of!(BNCustomFlowGraph, context) - 0usize];
8870    ["Offset of field: BNCustomFlowGraph::prepareForLayout"]
8871        [::std::mem::offset_of!(BNCustomFlowGraph, prepareForLayout) - 8usize];
8872    ["Offset of field: BNCustomFlowGraph::populateNodes"]
8873        [::std::mem::offset_of!(BNCustomFlowGraph, populateNodes) - 16usize];
8874    ["Offset of field: BNCustomFlowGraph::completeLayout"]
8875        [::std::mem::offset_of!(BNCustomFlowGraph, completeLayout) - 24usize];
8876    ["Offset of field: BNCustomFlowGraph::update"]
8877        [::std::mem::offset_of!(BNCustomFlowGraph, update) - 32usize];
8878    ["Offset of field: BNCustomFlowGraph::freeObject"]
8879        [::std::mem::offset_of!(BNCustomFlowGraph, freeObject) - 40usize];
8880    ["Offset of field: BNCustomFlowGraph::externalRefTaken"]
8881        [::std::mem::offset_of!(BNCustomFlowGraph, externalRefTaken) - 48usize];
8882    ["Offset of field: BNCustomFlowGraph::externalRefReleased"]
8883        [::std::mem::offset_of!(BNCustomFlowGraph, externalRefReleased) - 56usize];
8884};
8885impl Default for BNCustomFlowGraph {
8886    fn default() -> Self {
8887        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8888        unsafe {
8889            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8890            s.assume_init()
8891        }
8892    }
8893}
8894#[repr(C)]
8895#[derive(Debug, Copy, Clone)]
8896pub struct BNCustomFlowGraphLayout {
8897    pub context: *mut ::std::os::raw::c_void,
8898    pub layout: ::std::option::Option<
8899        unsafe extern "C" fn(
8900            ctxt: *mut ::std::os::raw::c_void,
8901            graph: *mut BNFlowGraph,
8902            nodes: *mut *mut BNFlowGraphNode,
8903            nodeCount: usize,
8904        ) -> bool,
8905    >,
8906}
8907#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8908const _: () = {
8909    ["Size of BNCustomFlowGraphLayout"][::std::mem::size_of::<BNCustomFlowGraphLayout>() - 16usize];
8910    ["Alignment of BNCustomFlowGraphLayout"]
8911        [::std::mem::align_of::<BNCustomFlowGraphLayout>() - 8usize];
8912    ["Offset of field: BNCustomFlowGraphLayout::context"]
8913        [::std::mem::offset_of!(BNCustomFlowGraphLayout, context) - 0usize];
8914    ["Offset of field: BNCustomFlowGraphLayout::layout"]
8915        [::std::mem::offset_of!(BNCustomFlowGraphLayout, layout) - 8usize];
8916};
8917impl Default for BNCustomFlowGraphLayout {
8918    fn default() -> Self {
8919        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8920        unsafe {
8921            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8922            s.assume_init()
8923        }
8924    }
8925}
8926#[repr(C)]
8927#[derive(Debug, Default, Copy, Clone)]
8928pub struct BNRange {
8929    pub start: u64,
8930    pub end: u64,
8931}
8932#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8933const _: () = {
8934    ["Size of BNRange"][::std::mem::size_of::<BNRange>() - 16usize];
8935    ["Alignment of BNRange"][::std::mem::align_of::<BNRange>() - 8usize];
8936    ["Offset of field: BNRange::start"][::std::mem::offset_of!(BNRange, start) - 0usize];
8937    ["Offset of field: BNRange::end"][::std::mem::offset_of!(BNRange, end) - 8usize];
8938};
8939#[repr(u8)]
8940#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
8941pub enum BNAnalysisSkipReason {
8942    NoSkipReason = 0,
8943    AlwaysSkipReason = 1,
8944    ExceedFunctionSizeSkipReason = 2,
8945    ExceedFunctionAnalysisTimeSkipReason = 3,
8946    ExceedFunctionUpdateCountSkipReason = 4,
8947    NewAutoFunctionAnalysisSuppressedReason = 5,
8948    BasicAnalysisSkipReason = 6,
8949    IntermediateAnalysisSkipReason = 7,
8950    AnalysisPipelineSuspendedReason = 8,
8951}
8952#[repr(u8)]
8953#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
8954pub enum BNSettingsScope {
8955    SettingsInvalidScope = 0,
8956    SettingsAutoScope = 1,
8957    SettingsDefaultScope = 2,
8958    SettingsUserScope = 4,
8959    SettingsProjectScope = 8,
8960    SettingsResourceScope = 16,
8961}
8962#[repr(u8)]
8963#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
8964pub enum BNLinearViewObjectIdentifierType {
8965    SingleLinearViewObject = 0,
8966    AddressLinearViewObject = 1,
8967    AddressRangeLinearViewObject = 2,
8968}
8969#[repr(C)]
8970#[derive(Debug, Copy, Clone)]
8971pub struct BNLinearViewObjectIdentifier {
8972    pub name: *mut ::std::os::raw::c_char,
8973    pub type_: BNLinearViewObjectIdentifierType,
8974    pub start: u64,
8975    pub end: u64,
8976}
8977#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8978const _: () = {
8979    ["Size of BNLinearViewObjectIdentifier"]
8980        [::std::mem::size_of::<BNLinearViewObjectIdentifier>() - 32usize];
8981    ["Alignment of BNLinearViewObjectIdentifier"]
8982        [::std::mem::align_of::<BNLinearViewObjectIdentifier>() - 8usize];
8983    ["Offset of field: BNLinearViewObjectIdentifier::name"]
8984        [::std::mem::offset_of!(BNLinearViewObjectIdentifier, name) - 0usize];
8985    ["Offset of field: BNLinearViewObjectIdentifier::type_"]
8986        [::std::mem::offset_of!(BNLinearViewObjectIdentifier, type_) - 8usize];
8987    ["Offset of field: BNLinearViewObjectIdentifier::start"]
8988        [::std::mem::offset_of!(BNLinearViewObjectIdentifier, start) - 16usize];
8989    ["Offset of field: BNLinearViewObjectIdentifier::end"]
8990        [::std::mem::offset_of!(BNLinearViewObjectIdentifier, end) - 24usize];
8991};
8992impl Default for BNLinearViewObjectIdentifier {
8993    fn default() -> Self {
8994        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8995        unsafe {
8996            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8997            s.assume_init()
8998        }
8999    }
9000}
9001#[repr(u8)]
9002#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9003pub enum BNBinaryViewEventType {
9004    BinaryViewFinalizationEvent = 0,
9005    BinaryViewInitialAnalysisCompletionEvent = 1,
9006}
9007#[repr(u8)]
9008#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9009pub enum BNDeadStoreElimination {
9010    DefaultDeadStoreElimination = 0,
9011    PreventDeadStoreElimination = 1,
9012    AllowDeadStoreElimination = 2,
9013}
9014#[repr(u8)]
9015#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9016pub enum BNExprFolding {
9017    DefaultExprFolding = 0,
9018    PreventExprFolding = 1,
9019    AllowExprFolding = 2,
9020}
9021#[repr(u8)]
9022#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9023pub enum BNEarlyReturn {
9024    DefaultEarlyReturn = 0,
9025    PreventEarlyReturn = 1,
9026    SmallestSideEarlyReturn = 2,
9027    TrueSideEarlyReturn = 3,
9028    FalseSideEarlyReturn = 4,
9029}
9030#[repr(u8)]
9031#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9032pub enum BNSwitchRecovery {
9033    DefaultSwitchRecovery = 0,
9034    PreventSwitchRecovery = 1,
9035    AllowSwitchRecovery = 2,
9036}
9037#[repr(C)]
9038#[derive(Debug, Copy, Clone)]
9039pub struct BNDebugFunctionInfo {
9040    pub shortName: *mut ::std::os::raw::c_char,
9041    pub fullName: *mut ::std::os::raw::c_char,
9042    pub rawName: *mut ::std::os::raw::c_char,
9043    pub address: u64,
9044    pub type_: *mut BNType,
9045    pub platform: *mut BNPlatform,
9046    pub components: *mut *mut ::std::os::raw::c_char,
9047    pub componentN: usize,
9048    pub localVariables: *mut BNVariableNameAndType,
9049    pub localVariableN: usize,
9050}
9051#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9052const _: () = {
9053    ["Size of BNDebugFunctionInfo"][::std::mem::size_of::<BNDebugFunctionInfo>() - 80usize];
9054    ["Alignment of BNDebugFunctionInfo"][::std::mem::align_of::<BNDebugFunctionInfo>() - 8usize];
9055    ["Offset of field: BNDebugFunctionInfo::shortName"]
9056        [::std::mem::offset_of!(BNDebugFunctionInfo, shortName) - 0usize];
9057    ["Offset of field: BNDebugFunctionInfo::fullName"]
9058        [::std::mem::offset_of!(BNDebugFunctionInfo, fullName) - 8usize];
9059    ["Offset of field: BNDebugFunctionInfo::rawName"]
9060        [::std::mem::offset_of!(BNDebugFunctionInfo, rawName) - 16usize];
9061    ["Offset of field: BNDebugFunctionInfo::address"]
9062        [::std::mem::offset_of!(BNDebugFunctionInfo, address) - 24usize];
9063    ["Offset of field: BNDebugFunctionInfo::type_"]
9064        [::std::mem::offset_of!(BNDebugFunctionInfo, type_) - 32usize];
9065    ["Offset of field: BNDebugFunctionInfo::platform"]
9066        [::std::mem::offset_of!(BNDebugFunctionInfo, platform) - 40usize];
9067    ["Offset of field: BNDebugFunctionInfo::components"]
9068        [::std::mem::offset_of!(BNDebugFunctionInfo, components) - 48usize];
9069    ["Offset of field: BNDebugFunctionInfo::componentN"]
9070        [::std::mem::offset_of!(BNDebugFunctionInfo, componentN) - 56usize];
9071    ["Offset of field: BNDebugFunctionInfo::localVariables"]
9072        [::std::mem::offset_of!(BNDebugFunctionInfo, localVariables) - 64usize];
9073    ["Offset of field: BNDebugFunctionInfo::localVariableN"]
9074        [::std::mem::offset_of!(BNDebugFunctionInfo, localVariableN) - 72usize];
9075};
9076impl Default for BNDebugFunctionInfo {
9077    fn default() -> Self {
9078        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9079        unsafe {
9080            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9081            s.assume_init()
9082        }
9083    }
9084}
9085#[repr(C)]
9086#[derive(Debug, Copy, Clone)]
9087pub struct BNSecretsProviderCallbacks {
9088    pub context: *mut ::std::os::raw::c_void,
9089    pub hasData: ::std::option::Option<
9090        unsafe extern "C" fn(
9091            ctxt: *mut ::std::os::raw::c_void,
9092            key: *const ::std::os::raw::c_char,
9093        ) -> bool,
9094    >,
9095    pub getData: ::std::option::Option<
9096        unsafe extern "C" fn(
9097            ctxt: *mut ::std::os::raw::c_void,
9098            key: *const ::std::os::raw::c_char,
9099        ) -> *mut ::std::os::raw::c_char,
9100    >,
9101    pub storeData: ::std::option::Option<
9102        unsafe extern "C" fn(
9103            ctxt: *mut ::std::os::raw::c_void,
9104            key: *const ::std::os::raw::c_char,
9105            data: *const ::std::os::raw::c_char,
9106        ) -> bool,
9107    >,
9108    pub deleteData: ::std::option::Option<
9109        unsafe extern "C" fn(
9110            ctxt: *mut ::std::os::raw::c_void,
9111            key: *const ::std::os::raw::c_char,
9112        ) -> bool,
9113    >,
9114}
9115#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9116const _: () = {
9117    ["Size of BNSecretsProviderCallbacks"]
9118        [::std::mem::size_of::<BNSecretsProviderCallbacks>() - 40usize];
9119    ["Alignment of BNSecretsProviderCallbacks"]
9120        [::std::mem::align_of::<BNSecretsProviderCallbacks>() - 8usize];
9121    ["Offset of field: BNSecretsProviderCallbacks::context"]
9122        [::std::mem::offset_of!(BNSecretsProviderCallbacks, context) - 0usize];
9123    ["Offset of field: BNSecretsProviderCallbacks::hasData"]
9124        [::std::mem::offset_of!(BNSecretsProviderCallbacks, hasData) - 8usize];
9125    ["Offset of field: BNSecretsProviderCallbacks::getData"]
9126        [::std::mem::offset_of!(BNSecretsProviderCallbacks, getData) - 16usize];
9127    ["Offset of field: BNSecretsProviderCallbacks::storeData"]
9128        [::std::mem::offset_of!(BNSecretsProviderCallbacks, storeData) - 24usize];
9129    ["Offset of field: BNSecretsProviderCallbacks::deleteData"]
9130        [::std::mem::offset_of!(BNSecretsProviderCallbacks, deleteData) - 32usize];
9131};
9132impl Default for BNSecretsProviderCallbacks {
9133    fn default() -> Self {
9134        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9135        unsafe {
9136            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9137            s.assume_init()
9138        }
9139    }
9140}
9141#[repr(C)]
9142#[derive(Debug, Copy, Clone)]
9143pub struct BNMergedVariable {
9144    pub target: BNVariable,
9145    pub sources: *mut BNVariable,
9146    pub sourceCount: usize,
9147}
9148#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9149const _: () = {
9150    ["Size of BNMergedVariable"][::std::mem::size_of::<BNMergedVariable>() - 32usize];
9151    ["Alignment of BNMergedVariable"][::std::mem::align_of::<BNMergedVariable>() - 8usize];
9152    ["Offset of field: BNMergedVariable::target"]
9153        [::std::mem::offset_of!(BNMergedVariable, target) - 0usize];
9154    ["Offset of field: BNMergedVariable::sources"]
9155        [::std::mem::offset_of!(BNMergedVariable, sources) - 16usize];
9156    ["Offset of field: BNMergedVariable::sourceCount"]
9157        [::std::mem::offset_of!(BNMergedVariable, sourceCount) - 24usize];
9158};
9159impl Default for BNMergedVariable {
9160    fn default() -> Self {
9161        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9162        unsafe {
9163            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9164            s.assume_init()
9165        }
9166    }
9167}
9168#[repr(C)]
9169#[derive(Debug, Copy, Clone)]
9170pub struct BNEnterpriseServerCallbacks {
9171    pub context: *mut ::std::os::raw::c_void,
9172    pub licenseStatusChanged: ::std::option::Option<
9173        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, stillValid: bool),
9174    >,
9175}
9176#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9177const _: () = {
9178    ["Size of BNEnterpriseServerCallbacks"]
9179        [::std::mem::size_of::<BNEnterpriseServerCallbacks>() - 16usize];
9180    ["Alignment of BNEnterpriseServerCallbacks"]
9181        [::std::mem::align_of::<BNEnterpriseServerCallbacks>() - 8usize];
9182    ["Offset of field: BNEnterpriseServerCallbacks::context"]
9183        [::std::mem::offset_of!(BNEnterpriseServerCallbacks, context) - 0usize];
9184    ["Offset of field: BNEnterpriseServerCallbacks::licenseStatusChanged"]
9185        [::std::mem::offset_of!(BNEnterpriseServerCallbacks, licenseStatusChanged) - 8usize];
9186};
9187impl Default for BNEnterpriseServerCallbacks {
9188    fn default() -> Self {
9189        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9190        unsafe {
9191            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9192            s.assume_init()
9193        }
9194    }
9195}
9196#[repr(C)]
9197#[derive(Debug, Copy, Clone)]
9198pub struct BNTypeArchiveNotification {
9199    pub context: *mut ::std::os::raw::c_void,
9200    pub typeAdded: ::std::option::Option<
9201        unsafe extern "C" fn(
9202            ctxt: *mut ::std::os::raw::c_void,
9203            archive: *mut BNTypeArchive,
9204            id: *const ::std::os::raw::c_char,
9205            definition: *mut BNType,
9206        ),
9207    >,
9208    pub typeUpdated: ::std::option::Option<
9209        unsafe extern "C" fn(
9210            ctxt: *mut ::std::os::raw::c_void,
9211            archive: *mut BNTypeArchive,
9212            id: *const ::std::os::raw::c_char,
9213            oldDefinition: *mut BNType,
9214            newDefinition: *mut BNType,
9215        ),
9216    >,
9217    pub typeRenamed: ::std::option::Option<
9218        unsafe extern "C" fn(
9219            ctxt: *mut ::std::os::raw::c_void,
9220            archive: *mut BNTypeArchive,
9221            id: *const ::std::os::raw::c_char,
9222            oldName: *const BNQualifiedName,
9223            newName: *const BNQualifiedName,
9224        ),
9225    >,
9226    pub typeDeleted: ::std::option::Option<
9227        unsafe extern "C" fn(
9228            ctxt: *mut ::std::os::raw::c_void,
9229            archive: *mut BNTypeArchive,
9230            id: *const ::std::os::raw::c_char,
9231            definition: *mut BNType,
9232        ),
9233    >,
9234}
9235#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9236const _: () = {
9237    ["Size of BNTypeArchiveNotification"]
9238        [::std::mem::size_of::<BNTypeArchiveNotification>() - 40usize];
9239    ["Alignment of BNTypeArchiveNotification"]
9240        [::std::mem::align_of::<BNTypeArchiveNotification>() - 8usize];
9241    ["Offset of field: BNTypeArchiveNotification::context"]
9242        [::std::mem::offset_of!(BNTypeArchiveNotification, context) - 0usize];
9243    ["Offset of field: BNTypeArchiveNotification::typeAdded"]
9244        [::std::mem::offset_of!(BNTypeArchiveNotification, typeAdded) - 8usize];
9245    ["Offset of field: BNTypeArchiveNotification::typeUpdated"]
9246        [::std::mem::offset_of!(BNTypeArchiveNotification, typeUpdated) - 16usize];
9247    ["Offset of field: BNTypeArchiveNotification::typeRenamed"]
9248        [::std::mem::offset_of!(BNTypeArchiveNotification, typeRenamed) - 24usize];
9249    ["Offset of field: BNTypeArchiveNotification::typeDeleted"]
9250        [::std::mem::offset_of!(BNTypeArchiveNotification, typeDeleted) - 32usize];
9251};
9252impl Default for BNTypeArchiveNotification {
9253    fn default() -> Self {
9254        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9255        unsafe {
9256            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9257            s.assume_init()
9258        }
9259    }
9260}
9261#[repr(u8)]
9262#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9263pub enum BNTypeContainerType {
9264    AnalysisTypeContainerType = 0,
9265    AnalysisAutoTypeContainerType = 1,
9266    AnalysisUserTypeContainerType = 2,
9267    TypeLibraryTypeContainerType = 3,
9268    TypeArchiveTypeContainerType = 4,
9269    DebugInfoTypeContainerType = 5,
9270    PlatformTypeContainerType = 6,
9271    EmptyTypeContainerType = 7,
9272    OtherTypeContainerType = 8,
9273}
9274#[repr(u8)]
9275#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9276pub enum BNSyncStatus {
9277    NotSyncedSyncStatus = 0,
9278    NoChangesSyncStatus = 1,
9279    UnknownSyncStatus = 2,
9280    CanPushSyncStatus = 3,
9281    CanPullSyncStatus = 4,
9282    CanPushAndPullSyncStatus = 5,
9283    ConflictSyncStatus = 6,
9284}
9285#[repr(u8)]
9286#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9287pub enum BNBaseAddressDetectionPOISetting {
9288    POIAnalysisStringsOnly = 0,
9289    POIAnalysisFunctionsOnly = 1,
9290    POIAnalysisAll = 2,
9291}
9292#[repr(u8)]
9293#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9294pub enum BNBaseAddressDetectionPOIType {
9295    POIString = 0,
9296    POIFunction = 1,
9297    POIDataVariable = 2,
9298    POIFileStart = 3,
9299    POIFileEnd = 4,
9300}
9301#[repr(u8)]
9302#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9303pub enum BNBaseAddressDetectionConfidence {
9304    NoConfidence = 0,
9305    LowConfidence = 1,
9306    HighConfidence = 2,
9307}
9308#[repr(C)]
9309#[derive(Debug, Copy, Clone)]
9310pub struct BNBaseAddressDetectionSettings {
9311    pub Architecture: *const ::std::os::raw::c_char,
9312    pub Analysis: *const ::std::os::raw::c_char,
9313    pub MinStrlen: u32,
9314    pub Alignment: u32,
9315    pub LowerBoundary: u64,
9316    pub UpperBoundary: u64,
9317    pub POIAnalysis: BNBaseAddressDetectionPOISetting,
9318    pub MaxPointersPerCluster: u32,
9319}
9320#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9321const _: () = {
9322    ["Size of BNBaseAddressDetectionSettings"]
9323        [::std::mem::size_of::<BNBaseAddressDetectionSettings>() - 48usize];
9324    ["Alignment of BNBaseAddressDetectionSettings"]
9325        [::std::mem::align_of::<BNBaseAddressDetectionSettings>() - 8usize];
9326    ["Offset of field: BNBaseAddressDetectionSettings::Architecture"]
9327        [::std::mem::offset_of!(BNBaseAddressDetectionSettings, Architecture) - 0usize];
9328    ["Offset of field: BNBaseAddressDetectionSettings::Analysis"]
9329        [::std::mem::offset_of!(BNBaseAddressDetectionSettings, Analysis) - 8usize];
9330    ["Offset of field: BNBaseAddressDetectionSettings::MinStrlen"]
9331        [::std::mem::offset_of!(BNBaseAddressDetectionSettings, MinStrlen) - 16usize];
9332    ["Offset of field: BNBaseAddressDetectionSettings::Alignment"]
9333        [::std::mem::offset_of!(BNBaseAddressDetectionSettings, Alignment) - 20usize];
9334    ["Offset of field: BNBaseAddressDetectionSettings::LowerBoundary"]
9335        [::std::mem::offset_of!(BNBaseAddressDetectionSettings, LowerBoundary) - 24usize];
9336    ["Offset of field: BNBaseAddressDetectionSettings::UpperBoundary"]
9337        [::std::mem::offset_of!(BNBaseAddressDetectionSettings, UpperBoundary) - 32usize];
9338    ["Offset of field: BNBaseAddressDetectionSettings::POIAnalysis"]
9339        [::std::mem::offset_of!(BNBaseAddressDetectionSettings, POIAnalysis) - 40usize];
9340    ["Offset of field: BNBaseAddressDetectionSettings::MaxPointersPerCluster"]
9341        [::std::mem::offset_of!(BNBaseAddressDetectionSettings, MaxPointersPerCluster) - 44usize];
9342};
9343impl Default for BNBaseAddressDetectionSettings {
9344    fn default() -> Self {
9345        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9346        unsafe {
9347            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9348            s.assume_init()
9349        }
9350    }
9351}
9352#[repr(C)]
9353#[derive(Debug, Copy, Clone)]
9354pub struct BNBaseAddressDetectionReason {
9355    pub Pointer: u64,
9356    pub POIOffset: u64,
9357    pub POIType: BNBaseAddressDetectionPOIType,
9358}
9359#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9360const _: () = {
9361    ["Size of BNBaseAddressDetectionReason"]
9362        [::std::mem::size_of::<BNBaseAddressDetectionReason>() - 24usize];
9363    ["Alignment of BNBaseAddressDetectionReason"]
9364        [::std::mem::align_of::<BNBaseAddressDetectionReason>() - 8usize];
9365    ["Offset of field: BNBaseAddressDetectionReason::Pointer"]
9366        [::std::mem::offset_of!(BNBaseAddressDetectionReason, Pointer) - 0usize];
9367    ["Offset of field: BNBaseAddressDetectionReason::POIOffset"]
9368        [::std::mem::offset_of!(BNBaseAddressDetectionReason, POIOffset) - 8usize];
9369    ["Offset of field: BNBaseAddressDetectionReason::POIType"]
9370        [::std::mem::offset_of!(BNBaseAddressDetectionReason, POIType) - 16usize];
9371};
9372impl Default for BNBaseAddressDetectionReason {
9373    fn default() -> Self {
9374        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9375        unsafe {
9376            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9377            s.assume_init()
9378        }
9379    }
9380}
9381#[repr(C)]
9382#[derive(Debug, Default, Copy, Clone)]
9383pub struct BNBaseAddressDetectionScore {
9384    pub Score: usize,
9385    pub BaseAddress: u64,
9386}
9387#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9388const _: () = {
9389    ["Size of BNBaseAddressDetectionScore"]
9390        [::std::mem::size_of::<BNBaseAddressDetectionScore>() - 16usize];
9391    ["Alignment of BNBaseAddressDetectionScore"]
9392        [::std::mem::align_of::<BNBaseAddressDetectionScore>() - 8usize];
9393    ["Offset of field: BNBaseAddressDetectionScore::Score"]
9394        [::std::mem::offset_of!(BNBaseAddressDetectionScore, Score) - 0usize];
9395    ["Offset of field: BNBaseAddressDetectionScore::BaseAddress"]
9396        [::std::mem::offset_of!(BNBaseAddressDetectionScore, BaseAddress) - 8usize];
9397};
9398#[repr(u8)]
9399#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9400pub enum BNCollaborationPermissionLevel {
9401    AdminPermission = 1,
9402    EditPermission = 2,
9403    ViewPermission = 3,
9404}
9405#[repr(u8)]
9406#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9407pub enum BNRemoteFileType {
9408    #[doc = " \"RW\""]
9409    RawDataFileType = 0,
9410    #[doc = " \"BV\""]
9411    BinaryViewAnalysisFileType = 1,
9412    #[doc = " \"TA\""]
9413    TypeArchiveFileType = 2,
9414    #[doc = " Others"]
9415    UnknownFileType = 3,
9416}
9417#[repr(u8)]
9418#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9419pub enum BNMergeConflictDataType {
9420    TextConflictDataType = 0,
9421    JsonConflictDataType = 1,
9422    BinaryConflictDataType = 2,
9423}
9424#[repr(C)]
9425#[derive(Debug, Copy, Clone)]
9426pub struct BNAnalysisMergeConflictSplitterCallbacks {
9427    pub context: *mut ::std::os::raw::c_void,
9428    pub getName: ::std::option::Option<
9429        unsafe extern "C" fn(context: *mut ::std::os::raw::c_void) -> *mut ::std::os::raw::c_char,
9430    >,
9431    pub reset: ::std::option::Option<unsafe extern "C" fn(context: *mut ::std::os::raw::c_void)>,
9432    pub finished: ::std::option::Option<unsafe extern "C" fn(context: *mut ::std::os::raw::c_void)>,
9433    pub canSplit: ::std::option::Option<
9434        unsafe extern "C" fn(
9435            context: *mut ::std::os::raw::c_void,
9436            key: *const ::std::os::raw::c_char,
9437            conflict: *const BNAnalysisMergeConflict,
9438        ) -> bool,
9439    >,
9440    pub split: ::std::option::Option<
9441        unsafe extern "C" fn(
9442            context: *mut ::std::os::raw::c_void,
9443            originalKey: *const ::std::os::raw::c_char,
9444            originalConflict: *const BNAnalysisMergeConflict,
9445            result: *mut BNKeyValueStore,
9446            newKeys: *mut *mut *mut ::std::os::raw::c_char,
9447            newConflicts: *mut *mut *mut BNAnalysisMergeConflict,
9448            newCount: *mut usize,
9449        ) -> bool,
9450    >,
9451    pub freeName: ::std::option::Option<
9452        unsafe extern "C" fn(
9453            context: *mut ::std::os::raw::c_void,
9454            name: *mut ::std::os::raw::c_char,
9455        ),
9456    >,
9457    pub freeKeyList: ::std::option::Option<
9458        unsafe extern "C" fn(
9459            context: *mut ::std::os::raw::c_void,
9460            keyList: *mut *mut ::std::os::raw::c_char,
9461            count: usize,
9462        ),
9463    >,
9464    pub freeConflictList: ::std::option::Option<
9465        unsafe extern "C" fn(
9466            context: *mut ::std::os::raw::c_void,
9467            conflictList: *mut *mut BNAnalysisMergeConflict,
9468            count: usize,
9469        ),
9470    >,
9471}
9472#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9473const _: () = {
9474    ["Size of BNAnalysisMergeConflictSplitterCallbacks"]
9475        [::std::mem::size_of::<BNAnalysisMergeConflictSplitterCallbacks>() - 72usize];
9476    ["Alignment of BNAnalysisMergeConflictSplitterCallbacks"]
9477        [::std::mem::align_of::<BNAnalysisMergeConflictSplitterCallbacks>() - 8usize];
9478    ["Offset of field: BNAnalysisMergeConflictSplitterCallbacks::context"]
9479        [::std::mem::offset_of!(BNAnalysisMergeConflictSplitterCallbacks, context) - 0usize];
9480    ["Offset of field: BNAnalysisMergeConflictSplitterCallbacks::getName"]
9481        [::std::mem::offset_of!(BNAnalysisMergeConflictSplitterCallbacks, getName) - 8usize];
9482    ["Offset of field: BNAnalysisMergeConflictSplitterCallbacks::reset"]
9483        [::std::mem::offset_of!(BNAnalysisMergeConflictSplitterCallbacks, reset) - 16usize];
9484    ["Offset of field: BNAnalysisMergeConflictSplitterCallbacks::finished"]
9485        [::std::mem::offset_of!(BNAnalysisMergeConflictSplitterCallbacks, finished) - 24usize];
9486    ["Offset of field: BNAnalysisMergeConflictSplitterCallbacks::canSplit"]
9487        [::std::mem::offset_of!(BNAnalysisMergeConflictSplitterCallbacks, canSplit) - 32usize];
9488    ["Offset of field: BNAnalysisMergeConflictSplitterCallbacks::split"]
9489        [::std::mem::offset_of!(BNAnalysisMergeConflictSplitterCallbacks, split) - 40usize];
9490    ["Offset of field: BNAnalysisMergeConflictSplitterCallbacks::freeName"]
9491        [::std::mem::offset_of!(BNAnalysisMergeConflictSplitterCallbacks, freeName) - 48usize];
9492    ["Offset of field: BNAnalysisMergeConflictSplitterCallbacks::freeKeyList"]
9493        [::std::mem::offset_of!(BNAnalysisMergeConflictSplitterCallbacks, freeKeyList) - 56usize];
9494    ["Offset of field: BNAnalysisMergeConflictSplitterCallbacks::freeConflictList"][::std::mem::offset_of!(
9495        BNAnalysisMergeConflictSplitterCallbacks,
9496        freeConflictList
9497    ) - 64usize];
9498};
9499impl Default for BNAnalysisMergeConflictSplitterCallbacks {
9500    fn default() -> Self {
9501        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9502        unsafe {
9503            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9504            s.assume_init()
9505        }
9506    }
9507}
9508#[repr(C)]
9509#[derive(Debug, Copy, Clone)]
9510pub struct BNDemanglerCallbacks {
9511    pub context: *mut ::std::os::raw::c_void,
9512    pub isMangledString: ::std::option::Option<
9513        unsafe extern "C" fn(
9514            ctxt: *mut ::std::os::raw::c_void,
9515            name: *const ::std::os::raw::c_char,
9516        ) -> bool,
9517    >,
9518    pub demangle: ::std::option::Option<
9519        unsafe extern "C" fn(
9520            ctxt: *mut ::std::os::raw::c_void,
9521            arch: *mut BNArchitecture,
9522            name: *const ::std::os::raw::c_char,
9523            outType: *mut *mut BNType,
9524            outVarName: *mut BNQualifiedName,
9525            view: *mut BNBinaryView,
9526        ) -> bool,
9527    >,
9528    pub freeVarName: ::std::option::Option<
9529        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, name: *mut BNQualifiedName),
9530    >,
9531}
9532#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9533const _: () = {
9534    ["Size of BNDemanglerCallbacks"][::std::mem::size_of::<BNDemanglerCallbacks>() - 32usize];
9535    ["Alignment of BNDemanglerCallbacks"][::std::mem::align_of::<BNDemanglerCallbacks>() - 8usize];
9536    ["Offset of field: BNDemanglerCallbacks::context"]
9537        [::std::mem::offset_of!(BNDemanglerCallbacks, context) - 0usize];
9538    ["Offset of field: BNDemanglerCallbacks::isMangledString"]
9539        [::std::mem::offset_of!(BNDemanglerCallbacks, isMangledString) - 8usize];
9540    ["Offset of field: BNDemanglerCallbacks::demangle"]
9541        [::std::mem::offset_of!(BNDemanglerCallbacks, demangle) - 16usize];
9542    ["Offset of field: BNDemanglerCallbacks::freeVarName"]
9543        [::std::mem::offset_of!(BNDemanglerCallbacks, freeVarName) - 24usize];
9544};
9545impl Default for BNDemanglerCallbacks {
9546    fn default() -> Self {
9547        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9548        unsafe {
9549            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9550            s.assume_init()
9551        }
9552    }
9553}
9554#[repr(u8)]
9555#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9556pub enum BNScopeType {
9557    OneLineScopeType = 0,
9558    HasSubScopeScopeType = 1,
9559    BlockScopeType = 2,
9560    SwitchScopeType = 3,
9561    CaseScopeType = 4,
9562}
9563#[repr(u8)]
9564#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9565pub enum BNBraceRequirement {
9566    OptionalBraces = 0,
9567    BracesNotAllowed = 1,
9568    BracesAlwaysRequired = 2,
9569}
9570#[repr(C)]
9571#[derive(Debug, Default, Copy, Clone)]
9572pub struct BNTokenEmitterExpr {
9573    pub address: u64,
9574    pub sourceOperand: u32,
9575    pub exprIndex: usize,
9576    pub instrIndex: usize,
9577}
9578#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9579const _: () = {
9580    ["Size of BNTokenEmitterExpr"][::std::mem::size_of::<BNTokenEmitterExpr>() - 32usize];
9581    ["Alignment of BNTokenEmitterExpr"][::std::mem::align_of::<BNTokenEmitterExpr>() - 8usize];
9582    ["Offset of field: BNTokenEmitterExpr::address"]
9583        [::std::mem::offset_of!(BNTokenEmitterExpr, address) - 0usize];
9584    ["Offset of field: BNTokenEmitterExpr::sourceOperand"]
9585        [::std::mem::offset_of!(BNTokenEmitterExpr, sourceOperand) - 8usize];
9586    ["Offset of field: BNTokenEmitterExpr::exprIndex"]
9587        [::std::mem::offset_of!(BNTokenEmitterExpr, exprIndex) - 16usize];
9588    ["Offset of field: BNTokenEmitterExpr::instrIndex"]
9589        [::std::mem::offset_of!(BNTokenEmitterExpr, instrIndex) - 24usize];
9590};
9591#[repr(u8)]
9592#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9593pub enum BNOperatorPrecedence {
9594    TopLevelOperatorPrecedence = 0,
9595    AssignmentOperatorPrecedence = 1,
9596    TernaryOperatorPrecedence = 2,
9597    LogicalOrOperatorPrecedence = 3,
9598    LogicalAndOperatorPrecedence = 4,
9599    BitwiseOrOperatorPrecedence = 5,
9600    BitwiseXorOperatorPrecedence = 6,
9601    BitwiseAndOperatorPrecedence = 7,
9602    EqualityOperatorPrecedence = 8,
9603    CompareOperatorPrecedence = 9,
9604    ShiftOperatorPrecedence = 10,
9605    AddOperatorPrecedence = 11,
9606    SubOperatorPrecedence = 12,
9607    MultiplyOperatorPrecedence = 13,
9608    DivideOperatorPrecedence = 14,
9609    LowUnaryOperatorPrecedence = 15,
9610    UnaryOperatorPrecedence = 16,
9611    HighUnaryOperatorPrecedence = 17,
9612    MemberAndFunctionOperatorPrecedence = 18,
9613    ScopeOperatorPrecedence = 19,
9614}
9615#[repr(u8)]
9616#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9617pub enum BNSymbolDisplayType {
9618    DisplaySymbolOnly = 0,
9619    AddressOfDataSymbols = 1,
9620    DereferenceNonDataSymbols = 2,
9621}
9622#[repr(u8)]
9623#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9624pub enum BNSymbolDisplayResult {
9625    NoSymbolAvailable = 0,
9626    DataSymbolResult = 1,
9627    OtherSymbolResult = 2,
9628}
9629#[repr(C)]
9630#[derive(Debug, Copy, Clone)]
9631pub struct BNCustomLanguageRepresentationFunction {
9632    pub context: *mut ::std::os::raw::c_void,
9633    pub freeObject: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
9634    pub externalRefTaken:
9635        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
9636    pub externalRefReleased:
9637        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
9638    pub initTokenEmitter: ::std::option::Option<
9639        unsafe extern "C" fn(
9640            ctxt: *mut ::std::os::raw::c_void,
9641            tokens: *mut BNHighLevelILTokenEmitter,
9642        ),
9643    >,
9644    pub getExprText: ::std::option::Option<
9645        unsafe extern "C" fn(
9646            ctxt: *mut ::std::os::raw::c_void,
9647            il: *mut BNHighLevelILFunction,
9648            exprIndex: usize,
9649            tokens: *mut BNHighLevelILTokenEmitter,
9650            settings: *mut BNDisassemblySettings,
9651            asFullAst: bool,
9652            precedence: BNOperatorPrecedence,
9653            statement: bool,
9654        ),
9655    >,
9656    pub beginLines: ::std::option::Option<
9657        unsafe extern "C" fn(
9658            ctxt: *mut ::std::os::raw::c_void,
9659            il: *mut BNHighLevelILFunction,
9660            exprIndex: usize,
9661            tokens: *mut BNHighLevelILTokenEmitter,
9662        ),
9663    >,
9664    pub endLines: ::std::option::Option<
9665        unsafe extern "C" fn(
9666            ctxt: *mut ::std::os::raw::c_void,
9667            il: *mut BNHighLevelILFunction,
9668            exprIndex: usize,
9669            tokens: *mut BNHighLevelILTokenEmitter,
9670        ),
9671    >,
9672    pub getCommentStartString: ::std::option::Option<
9673        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> *mut ::std::os::raw::c_char,
9674    >,
9675    pub getCommentEndString: ::std::option::Option<
9676        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> *mut ::std::os::raw::c_char,
9677    >,
9678    pub getAnnotationStartString: ::std::option::Option<
9679        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> *mut ::std::os::raw::c_char,
9680    >,
9681    pub getAnnotationEndString: ::std::option::Option<
9682        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> *mut ::std::os::raw::c_char,
9683    >,
9684}
9685#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9686const _: () = {
9687    ["Size of BNCustomLanguageRepresentationFunction"]
9688        [::std::mem::size_of::<BNCustomLanguageRepresentationFunction>() - 96usize];
9689    ["Alignment of BNCustomLanguageRepresentationFunction"]
9690        [::std::mem::align_of::<BNCustomLanguageRepresentationFunction>() - 8usize];
9691    ["Offset of field: BNCustomLanguageRepresentationFunction::context"]
9692        [::std::mem::offset_of!(BNCustomLanguageRepresentationFunction, context) - 0usize];
9693    ["Offset of field: BNCustomLanguageRepresentationFunction::freeObject"]
9694        [::std::mem::offset_of!(BNCustomLanguageRepresentationFunction, freeObject) - 8usize];
9695    ["Offset of field: BNCustomLanguageRepresentationFunction::externalRefTaken"][::std::mem::offset_of!(
9696        BNCustomLanguageRepresentationFunction,
9697        externalRefTaken
9698    ) - 16usize];
9699    ["Offset of field: BNCustomLanguageRepresentationFunction::externalRefReleased"][::std::mem::offset_of!(
9700        BNCustomLanguageRepresentationFunction,
9701        externalRefReleased
9702    ) - 24usize];
9703    ["Offset of field: BNCustomLanguageRepresentationFunction::initTokenEmitter"][::std::mem::offset_of!(
9704        BNCustomLanguageRepresentationFunction,
9705        initTokenEmitter
9706    ) - 32usize];
9707    ["Offset of field: BNCustomLanguageRepresentationFunction::getExprText"]
9708        [::std::mem::offset_of!(BNCustomLanguageRepresentationFunction, getExprText) - 40usize];
9709    ["Offset of field: BNCustomLanguageRepresentationFunction::beginLines"]
9710        [::std::mem::offset_of!(BNCustomLanguageRepresentationFunction, beginLines) - 48usize];
9711    ["Offset of field: BNCustomLanguageRepresentationFunction::endLines"]
9712        [::std::mem::offset_of!(BNCustomLanguageRepresentationFunction, endLines) - 56usize];
9713    ["Offset of field: BNCustomLanguageRepresentationFunction::getCommentStartString"][::std::mem::offset_of!(
9714        BNCustomLanguageRepresentationFunction,
9715        getCommentStartString
9716    ) - 64usize];
9717    ["Offset of field: BNCustomLanguageRepresentationFunction::getCommentEndString"][::std::mem::offset_of!(
9718        BNCustomLanguageRepresentationFunction,
9719        getCommentEndString
9720    ) - 72usize];
9721    ["Offset of field: BNCustomLanguageRepresentationFunction::getAnnotationStartString"][::std::mem::offset_of!(
9722        BNCustomLanguageRepresentationFunction,
9723        getAnnotationStartString
9724    )
9725        - 80usize];
9726    ["Offset of field: BNCustomLanguageRepresentationFunction::getAnnotationEndString"][::std::mem::offset_of!(
9727        BNCustomLanguageRepresentationFunction,
9728        getAnnotationEndString
9729    )
9730        - 88usize];
9731};
9732impl Default for BNCustomLanguageRepresentationFunction {
9733    fn default() -> Self {
9734        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9735        unsafe {
9736            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9737            s.assume_init()
9738        }
9739    }
9740}
9741#[repr(C)]
9742#[derive(Debug, Copy, Clone)]
9743pub struct BNCustomLanguageRepresentationFunctionType {
9744    pub context: *mut ::std::os::raw::c_void,
9745    pub create: ::std::option::Option<
9746        unsafe extern "C" fn(
9747            ctxt: *mut ::std::os::raw::c_void,
9748            arch: *mut BNArchitecture,
9749            owner: *mut BNFunction,
9750            highLevelIL: *mut BNHighLevelILFunction,
9751        ) -> *mut BNLanguageRepresentationFunction,
9752    >,
9753    pub isValid: ::std::option::Option<
9754        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, view: *mut BNBinaryView) -> bool,
9755    >,
9756    pub getTypePrinter: ::std::option::Option<
9757        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> *mut BNTypePrinter,
9758    >,
9759    pub getTypeParser: ::std::option::Option<
9760        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> *mut BNTypeParser,
9761    >,
9762    pub getLineFormatter: ::std::option::Option<
9763        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> *mut BNLineFormatter,
9764    >,
9765    pub getFunctionTypeTokens: ::std::option::Option<
9766        unsafe extern "C" fn(
9767            ctxt: *mut ::std::os::raw::c_void,
9768            func: *mut BNFunction,
9769            settings: *mut BNDisassemblySettings,
9770            count: *mut usize,
9771        ) -> *mut BNDisassemblyTextLine,
9772    >,
9773    pub freeLines: ::std::option::Option<
9774        unsafe extern "C" fn(
9775            ctxt: *mut ::std::os::raw::c_void,
9776            lines: *mut BNDisassemblyTextLine,
9777            count: usize,
9778        ),
9779    >,
9780}
9781#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9782const _: () = {
9783    ["Size of BNCustomLanguageRepresentationFunctionType"]
9784        [::std::mem::size_of::<BNCustomLanguageRepresentationFunctionType>() - 64usize];
9785    ["Alignment of BNCustomLanguageRepresentationFunctionType"]
9786        [::std::mem::align_of::<BNCustomLanguageRepresentationFunctionType>() - 8usize];
9787    ["Offset of field: BNCustomLanguageRepresentationFunctionType::context"]
9788        [::std::mem::offset_of!(BNCustomLanguageRepresentationFunctionType, context) - 0usize];
9789    ["Offset of field: BNCustomLanguageRepresentationFunctionType::create"]
9790        [::std::mem::offset_of!(BNCustomLanguageRepresentationFunctionType, create) - 8usize];
9791    ["Offset of field: BNCustomLanguageRepresentationFunctionType::isValid"]
9792        [::std::mem::offset_of!(BNCustomLanguageRepresentationFunctionType, isValid) - 16usize];
9793    ["Offset of field: BNCustomLanguageRepresentationFunctionType::getTypePrinter"][::std::mem::offset_of!(
9794        BNCustomLanguageRepresentationFunctionType,
9795        getTypePrinter
9796    ) - 24usize];
9797    ["Offset of field: BNCustomLanguageRepresentationFunctionType::getTypeParser"][::std::mem::offset_of!(
9798        BNCustomLanguageRepresentationFunctionType,
9799        getTypeParser
9800    ) - 32usize];
9801    ["Offset of field: BNCustomLanguageRepresentationFunctionType::getLineFormatter"][::std::mem::offset_of!(
9802        BNCustomLanguageRepresentationFunctionType,
9803        getLineFormatter
9804    ) - 40usize];
9805    ["Offset of field: BNCustomLanguageRepresentationFunctionType::getFunctionTypeTokens"][::std::mem::offset_of!(
9806        BNCustomLanguageRepresentationFunctionType,
9807        getFunctionTypeTokens
9808    )
9809        - 48usize];
9810    ["Offset of field: BNCustomLanguageRepresentationFunctionType::freeLines"]
9811        [::std::mem::offset_of!(BNCustomLanguageRepresentationFunctionType, freeLines) - 56usize];
9812};
9813impl Default for BNCustomLanguageRepresentationFunctionType {
9814    fn default() -> Self {
9815        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9816        unsafe {
9817            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9818            s.assume_init()
9819        }
9820    }
9821}
9822#[repr(u8)]
9823#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9824pub enum BNBuiltinType {
9825    BuiltinNone = 0,
9826    BuiltinMemcpy = 1,
9827    BuiltinMemset = 2,
9828    BuiltinStrncpy = 3,
9829    BuiltinStrcpy = 4,
9830    BuiltinWcscpy = 5,
9831    BuiltinWmemcpy = 6,
9832}
9833#[repr(C)]
9834#[derive(Debug, Default, Copy, Clone)]
9835pub struct BNSegmentInfo {
9836    pub start: u64,
9837    pub length: u64,
9838    pub dataOffset: u64,
9839    pub dataLength: u64,
9840    pub flags: u32,
9841}
9842#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9843const _: () = {
9844    ["Size of BNSegmentInfo"][::std::mem::size_of::<BNSegmentInfo>() - 40usize];
9845    ["Alignment of BNSegmentInfo"][::std::mem::align_of::<BNSegmentInfo>() - 8usize];
9846    ["Offset of field: BNSegmentInfo::start"]
9847        [::std::mem::offset_of!(BNSegmentInfo, start) - 0usize];
9848    ["Offset of field: BNSegmentInfo::length"]
9849        [::std::mem::offset_of!(BNSegmentInfo, length) - 8usize];
9850    ["Offset of field: BNSegmentInfo::dataOffset"]
9851        [::std::mem::offset_of!(BNSegmentInfo, dataOffset) - 16usize];
9852    ["Offset of field: BNSegmentInfo::dataLength"]
9853        [::std::mem::offset_of!(BNSegmentInfo, dataLength) - 24usize];
9854    ["Offset of field: BNSegmentInfo::flags"]
9855        [::std::mem::offset_of!(BNSegmentInfo, flags) - 32usize];
9856};
9857#[repr(C)]
9858#[derive(Debug, Copy, Clone)]
9859pub struct BNSectionInfo {
9860    pub name: *const ::std::os::raw::c_char,
9861    pub start: u64,
9862    pub length: u64,
9863    pub semantics: BNSectionSemantics,
9864    pub type_: *const ::std::os::raw::c_char,
9865    pub align: u64,
9866    pub entrySize: u64,
9867    pub linkedSection: *const ::std::os::raw::c_char,
9868    pub infoSection: *const ::std::os::raw::c_char,
9869    pub infoData: u64,
9870}
9871#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9872const _: () = {
9873    ["Size of BNSectionInfo"][::std::mem::size_of::<BNSectionInfo>() - 80usize];
9874    ["Alignment of BNSectionInfo"][::std::mem::align_of::<BNSectionInfo>() - 8usize];
9875    ["Offset of field: BNSectionInfo::name"][::std::mem::offset_of!(BNSectionInfo, name) - 0usize];
9876    ["Offset of field: BNSectionInfo::start"]
9877        [::std::mem::offset_of!(BNSectionInfo, start) - 8usize];
9878    ["Offset of field: BNSectionInfo::length"]
9879        [::std::mem::offset_of!(BNSectionInfo, length) - 16usize];
9880    ["Offset of field: BNSectionInfo::semantics"]
9881        [::std::mem::offset_of!(BNSectionInfo, semantics) - 24usize];
9882    ["Offset of field: BNSectionInfo::type_"]
9883        [::std::mem::offset_of!(BNSectionInfo, type_) - 32usize];
9884    ["Offset of field: BNSectionInfo::align"]
9885        [::std::mem::offset_of!(BNSectionInfo, align) - 40usize];
9886    ["Offset of field: BNSectionInfo::entrySize"]
9887        [::std::mem::offset_of!(BNSectionInfo, entrySize) - 48usize];
9888    ["Offset of field: BNSectionInfo::linkedSection"]
9889        [::std::mem::offset_of!(BNSectionInfo, linkedSection) - 56usize];
9890    ["Offset of field: BNSectionInfo::infoSection"]
9891        [::std::mem::offset_of!(BNSectionInfo, infoSection) - 64usize];
9892    ["Offset of field: BNSectionInfo::infoData"]
9893        [::std::mem::offset_of!(BNSectionInfo, infoData) - 72usize];
9894};
9895impl Default for BNSectionInfo {
9896    fn default() -> Self {
9897        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9898        unsafe {
9899            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9900            s.assume_init()
9901        }
9902    }
9903}
9904#[repr(C)]
9905#[derive(Debug, Copy, Clone)]
9906pub struct BNMemoryRegionInfo {
9907    pub name: *mut ::std::os::raw::c_char,
9908    pub displayName: *mut ::std::os::raw::c_char,
9909    pub start: u64,
9910    pub length: u64,
9911    pub flags: u32,
9912    pub enabled: bool,
9913    pub rebaseable: bool,
9914    pub fill: u8,
9915    pub hasTarget: bool,
9916    pub absoluteAddressMode: bool,
9917    pub local: bool,
9918}
9919#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9920const _: () = {
9921    ["Size of BNMemoryRegionInfo"][::std::mem::size_of::<BNMemoryRegionInfo>() - 48usize];
9922    ["Alignment of BNMemoryRegionInfo"][::std::mem::align_of::<BNMemoryRegionInfo>() - 8usize];
9923    ["Offset of field: BNMemoryRegionInfo::name"]
9924        [::std::mem::offset_of!(BNMemoryRegionInfo, name) - 0usize];
9925    ["Offset of field: BNMemoryRegionInfo::displayName"]
9926        [::std::mem::offset_of!(BNMemoryRegionInfo, displayName) - 8usize];
9927    ["Offset of field: BNMemoryRegionInfo::start"]
9928        [::std::mem::offset_of!(BNMemoryRegionInfo, start) - 16usize];
9929    ["Offset of field: BNMemoryRegionInfo::length"]
9930        [::std::mem::offset_of!(BNMemoryRegionInfo, length) - 24usize];
9931    ["Offset of field: BNMemoryRegionInfo::flags"]
9932        [::std::mem::offset_of!(BNMemoryRegionInfo, flags) - 32usize];
9933    ["Offset of field: BNMemoryRegionInfo::enabled"]
9934        [::std::mem::offset_of!(BNMemoryRegionInfo, enabled) - 36usize];
9935    ["Offset of field: BNMemoryRegionInfo::rebaseable"]
9936        [::std::mem::offset_of!(BNMemoryRegionInfo, rebaseable) - 37usize];
9937    ["Offset of field: BNMemoryRegionInfo::fill"]
9938        [::std::mem::offset_of!(BNMemoryRegionInfo, fill) - 38usize];
9939    ["Offset of field: BNMemoryRegionInfo::hasTarget"]
9940        [::std::mem::offset_of!(BNMemoryRegionInfo, hasTarget) - 39usize];
9941    ["Offset of field: BNMemoryRegionInfo::absoluteAddressMode"]
9942        [::std::mem::offset_of!(BNMemoryRegionInfo, absoluteAddressMode) - 40usize];
9943    ["Offset of field: BNMemoryRegionInfo::local"]
9944        [::std::mem::offset_of!(BNMemoryRegionInfo, local) - 41usize];
9945};
9946impl Default for BNMemoryRegionInfo {
9947    fn default() -> Self {
9948        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9949        unsafe {
9950            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9951            s.assume_init()
9952        }
9953    }
9954}
9955#[repr(C)]
9956#[derive(Debug, Copy, Clone)]
9957pub struct BNResolvedMemoryRange {
9958    pub start: u64,
9959    pub length: u64,
9960    pub regions: *mut BNMemoryRegionInfo,
9961    pub regionCount: usize,
9962}
9963#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9964const _: () = {
9965    ["Size of BNResolvedMemoryRange"][::std::mem::size_of::<BNResolvedMemoryRange>() - 32usize];
9966    ["Alignment of BNResolvedMemoryRange"]
9967        [::std::mem::align_of::<BNResolvedMemoryRange>() - 8usize];
9968    ["Offset of field: BNResolvedMemoryRange::start"]
9969        [::std::mem::offset_of!(BNResolvedMemoryRange, start) - 0usize];
9970    ["Offset of field: BNResolvedMemoryRange::length"]
9971        [::std::mem::offset_of!(BNResolvedMemoryRange, length) - 8usize];
9972    ["Offset of field: BNResolvedMemoryRange::regions"]
9973        [::std::mem::offset_of!(BNResolvedMemoryRange, regions) - 16usize];
9974    ["Offset of field: BNResolvedMemoryRange::regionCount"]
9975        [::std::mem::offset_of!(BNResolvedMemoryRange, regionCount) - 24usize];
9976};
9977impl Default for BNResolvedMemoryRange {
9978    fn default() -> Self {
9979        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9980        unsafe {
9981            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9982            s.assume_init()
9983        }
9984    }
9985}
9986pub type BNCollaborationAnalysisConflictHandler = ::std::option::Option<
9987    unsafe extern "C" fn(
9988        arg1: *mut ::std::os::raw::c_void,
9989        keys: *mut *const ::std::os::raw::c_char,
9990        conflicts: *mut *mut BNAnalysisMergeConflict,
9991        conflictCount: usize,
9992    ) -> bool,
9993>;
9994pub type BNCollaborationNameChangesetFunction = ::std::option::Option<
9995    unsafe extern "C" fn(
9996        arg1: *mut ::std::os::raw::c_void,
9997        arg2: *mut BNCollaborationChangeset,
9998    ) -> bool,
9999>;
10000#[repr(C)]
10001#[derive(Debug, Copy, Clone)]
10002pub struct BNFirmwareNinjaDevice {
10003    pub name: *mut ::std::os::raw::c_char,
10004    pub start: u64,
10005    pub end: u64,
10006    pub info: *mut ::std::os::raw::c_char,
10007}
10008#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10009const _: () = {
10010    ["Size of BNFirmwareNinjaDevice"][::std::mem::size_of::<BNFirmwareNinjaDevice>() - 32usize];
10011    ["Alignment of BNFirmwareNinjaDevice"]
10012        [::std::mem::align_of::<BNFirmwareNinjaDevice>() - 8usize];
10013    ["Offset of field: BNFirmwareNinjaDevice::name"]
10014        [::std::mem::offset_of!(BNFirmwareNinjaDevice, name) - 0usize];
10015    ["Offset of field: BNFirmwareNinjaDevice::start"]
10016        [::std::mem::offset_of!(BNFirmwareNinjaDevice, start) - 8usize];
10017    ["Offset of field: BNFirmwareNinjaDevice::end"]
10018        [::std::mem::offset_of!(BNFirmwareNinjaDevice, end) - 16usize];
10019    ["Offset of field: BNFirmwareNinjaDevice::info"]
10020        [::std::mem::offset_of!(BNFirmwareNinjaDevice, info) - 24usize];
10021};
10022impl Default for BNFirmwareNinjaDevice {
10023    fn default() -> Self {
10024        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10025        unsafe {
10026            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10027            s.assume_init()
10028        }
10029    }
10030}
10031#[repr(u8)]
10032#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
10033pub enum BNFirmwareNinjaSectionType {
10034    CodeSectionType = 0,
10035    DataSectionType = 1,
10036    CompressionSectionType = 2,
10037    PaddingSectionType = 3,
10038}
10039#[repr(u8)]
10040#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
10041pub enum BNFirmwareNinjaSectionAnalysisMode {
10042    DefaultSectionAnalysisMode = 0,
10043    IgnorePaddingSectionAnalysisMode = 1,
10044    DetectStringsSectionAnalysisMode = 2,
10045}
10046#[repr(C)]
10047#[derive(Debug, Copy, Clone)]
10048pub struct BNFirmwareNinjaSection {
10049    pub type_: BNFirmwareNinjaSectionType,
10050    pub start: u64,
10051    pub end: u64,
10052    pub entropy: f32,
10053}
10054#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10055const _: () = {
10056    ["Size of BNFirmwareNinjaSection"][::std::mem::size_of::<BNFirmwareNinjaSection>() - 32usize];
10057    ["Alignment of BNFirmwareNinjaSection"]
10058        [::std::mem::align_of::<BNFirmwareNinjaSection>() - 8usize];
10059    ["Offset of field: BNFirmwareNinjaSection::type_"]
10060        [::std::mem::offset_of!(BNFirmwareNinjaSection, type_) - 0usize];
10061    ["Offset of field: BNFirmwareNinjaSection::start"]
10062        [::std::mem::offset_of!(BNFirmwareNinjaSection, start) - 8usize];
10063    ["Offset of field: BNFirmwareNinjaSection::end"]
10064        [::std::mem::offset_of!(BNFirmwareNinjaSection, end) - 16usize];
10065    ["Offset of field: BNFirmwareNinjaSection::entropy"]
10066        [::std::mem::offset_of!(BNFirmwareNinjaSection, entropy) - 24usize];
10067};
10068impl Default for BNFirmwareNinjaSection {
10069    fn default() -> Self {
10070        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10071        unsafe {
10072            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10073            s.assume_init()
10074        }
10075    }
10076}
10077#[repr(u8)]
10078#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
10079pub enum BNFirmwareNinjaMemoryHeuristic {
10080    NoMemoryHeuristic = 0,
10081    HasReadBarrierMemoryHeuristic = 1,
10082    HasWriteBarrierMemoryHeuristic = 2,
10083    StoreToOOBMemoryMemoryHeuristic = 3,
10084    LoadFromOOBMemoryMemoryHeuristic = 4,
10085    RepeatLoadStoreMemoryHeuristic = 5,
10086    CallParamOOBPointerMemoryHeuristic = 6,
10087}
10088#[repr(u8)]
10089#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
10090pub enum BNFirmwareNinjaMemoryAccessType {
10091    NoMemoryAccessType = 0,
10092    ReadMemoryAccessType = 1,
10093    WriteMemoryAccessType = 2,
10094}
10095#[repr(C)]
10096#[derive(Debug, Copy, Clone)]
10097pub struct BNFirmwareNinjaMemoryAccess {
10098    pub instrAddress: u64,
10099    pub memAddress: BNRegisterValue,
10100    pub heuristic: BNFirmwareNinjaMemoryHeuristic,
10101    pub type_: BNFirmwareNinjaMemoryAccessType,
10102    pub value: BNRegisterValue,
10103}
10104#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10105const _: () = {
10106    ["Size of BNFirmwareNinjaMemoryAccess"]
10107        [::std::mem::size_of::<BNFirmwareNinjaMemoryAccess>() - 80usize];
10108    ["Alignment of BNFirmwareNinjaMemoryAccess"]
10109        [::std::mem::align_of::<BNFirmwareNinjaMemoryAccess>() - 8usize];
10110    ["Offset of field: BNFirmwareNinjaMemoryAccess::instrAddress"]
10111        [::std::mem::offset_of!(BNFirmwareNinjaMemoryAccess, instrAddress) - 0usize];
10112    ["Offset of field: BNFirmwareNinjaMemoryAccess::memAddress"]
10113        [::std::mem::offset_of!(BNFirmwareNinjaMemoryAccess, memAddress) - 8usize];
10114    ["Offset of field: BNFirmwareNinjaMemoryAccess::heuristic"]
10115        [::std::mem::offset_of!(BNFirmwareNinjaMemoryAccess, heuristic) - 40usize];
10116    ["Offset of field: BNFirmwareNinjaMemoryAccess::type_"]
10117        [::std::mem::offset_of!(BNFirmwareNinjaMemoryAccess, type_) - 41usize];
10118    ["Offset of field: BNFirmwareNinjaMemoryAccess::value"]
10119        [::std::mem::offset_of!(BNFirmwareNinjaMemoryAccess, value) - 48usize];
10120};
10121impl Default for BNFirmwareNinjaMemoryAccess {
10122    fn default() -> Self {
10123        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10124        unsafe {
10125            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10126            s.assume_init()
10127        }
10128    }
10129}
10130#[repr(C)]
10131#[derive(Debug, Copy, Clone)]
10132pub struct BNFirmwareNinjaFunctionMemoryAccesses {
10133    pub start: u64,
10134    pub count: usize,
10135    pub accesses: *mut *mut BNFirmwareNinjaMemoryAccess,
10136}
10137#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10138const _: () = {
10139    ["Size of BNFirmwareNinjaFunctionMemoryAccesses"]
10140        [::std::mem::size_of::<BNFirmwareNinjaFunctionMemoryAccesses>() - 24usize];
10141    ["Alignment of BNFirmwareNinjaFunctionMemoryAccesses"]
10142        [::std::mem::align_of::<BNFirmwareNinjaFunctionMemoryAccesses>() - 8usize];
10143    ["Offset of field: BNFirmwareNinjaFunctionMemoryAccesses::start"]
10144        [::std::mem::offset_of!(BNFirmwareNinjaFunctionMemoryAccesses, start) - 0usize];
10145    ["Offset of field: BNFirmwareNinjaFunctionMemoryAccesses::count"]
10146        [::std::mem::offset_of!(BNFirmwareNinjaFunctionMemoryAccesses, count) - 8usize];
10147    ["Offset of field: BNFirmwareNinjaFunctionMemoryAccesses::accesses"]
10148        [::std::mem::offset_of!(BNFirmwareNinjaFunctionMemoryAccesses, accesses) - 16usize];
10149};
10150impl Default for BNFirmwareNinjaFunctionMemoryAccesses {
10151    fn default() -> Self {
10152        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10153        unsafe {
10154            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10155            s.assume_init()
10156        }
10157    }
10158}
10159#[repr(C)]
10160#[derive(Debug, Copy, Clone)]
10161pub struct BNFirmwareNinjaDeviceAccesses {
10162    pub name: *mut ::std::os::raw::c_char,
10163    pub total: usize,
10164    pub unique: usize,
10165}
10166#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10167const _: () = {
10168    ["Size of BNFirmwareNinjaDeviceAccesses"]
10169        [::std::mem::size_of::<BNFirmwareNinjaDeviceAccesses>() - 24usize];
10170    ["Alignment of BNFirmwareNinjaDeviceAccesses"]
10171        [::std::mem::align_of::<BNFirmwareNinjaDeviceAccesses>() - 8usize];
10172    ["Offset of field: BNFirmwareNinjaDeviceAccesses::name"]
10173        [::std::mem::offset_of!(BNFirmwareNinjaDeviceAccesses, name) - 0usize];
10174    ["Offset of field: BNFirmwareNinjaDeviceAccesses::total"]
10175        [::std::mem::offset_of!(BNFirmwareNinjaDeviceAccesses, total) - 8usize];
10176    ["Offset of field: BNFirmwareNinjaDeviceAccesses::unique"]
10177        [::std::mem::offset_of!(BNFirmwareNinjaDeviceAccesses, unique) - 16usize];
10178};
10179impl Default for BNFirmwareNinjaDeviceAccesses {
10180    fn default() -> Self {
10181        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10182        unsafe {
10183            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10184            s.assume_init()
10185        }
10186    }
10187}
10188#[repr(C)]
10189#[derive(Debug, Copy, Clone)]
10190pub struct BNLineFormatterSettings {
10191    pub highLevelIL: *mut BNHighLevelILFunction,
10192    pub desiredLineLength: usize,
10193    pub minimumContentLength: usize,
10194    pub tabWidth: usize,
10195    pub maximumAnnotationLength: usize,
10196    pub stringWrappingWidth: usize,
10197    pub languageName: *mut ::std::os::raw::c_char,
10198    pub commentStartString: *mut ::std::os::raw::c_char,
10199    pub commentEndString: *mut ::std::os::raw::c_char,
10200    pub annotationStartString: *mut ::std::os::raw::c_char,
10201    pub annotationEndString: *mut ::std::os::raw::c_char,
10202}
10203#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10204const _: () = {
10205    ["Size of BNLineFormatterSettings"][::std::mem::size_of::<BNLineFormatterSettings>() - 88usize];
10206    ["Alignment of BNLineFormatterSettings"]
10207        [::std::mem::align_of::<BNLineFormatterSettings>() - 8usize];
10208    ["Offset of field: BNLineFormatterSettings::highLevelIL"]
10209        [::std::mem::offset_of!(BNLineFormatterSettings, highLevelIL) - 0usize];
10210    ["Offset of field: BNLineFormatterSettings::desiredLineLength"]
10211        [::std::mem::offset_of!(BNLineFormatterSettings, desiredLineLength) - 8usize];
10212    ["Offset of field: BNLineFormatterSettings::minimumContentLength"]
10213        [::std::mem::offset_of!(BNLineFormatterSettings, minimumContentLength) - 16usize];
10214    ["Offset of field: BNLineFormatterSettings::tabWidth"]
10215        [::std::mem::offset_of!(BNLineFormatterSettings, tabWidth) - 24usize];
10216    ["Offset of field: BNLineFormatterSettings::maximumAnnotationLength"]
10217        [::std::mem::offset_of!(BNLineFormatterSettings, maximumAnnotationLength) - 32usize];
10218    ["Offset of field: BNLineFormatterSettings::stringWrappingWidth"]
10219        [::std::mem::offset_of!(BNLineFormatterSettings, stringWrappingWidth) - 40usize];
10220    ["Offset of field: BNLineFormatterSettings::languageName"]
10221        [::std::mem::offset_of!(BNLineFormatterSettings, languageName) - 48usize];
10222    ["Offset of field: BNLineFormatterSettings::commentStartString"]
10223        [::std::mem::offset_of!(BNLineFormatterSettings, commentStartString) - 56usize];
10224    ["Offset of field: BNLineFormatterSettings::commentEndString"]
10225        [::std::mem::offset_of!(BNLineFormatterSettings, commentEndString) - 64usize];
10226    ["Offset of field: BNLineFormatterSettings::annotationStartString"]
10227        [::std::mem::offset_of!(BNLineFormatterSettings, annotationStartString) - 72usize];
10228    ["Offset of field: BNLineFormatterSettings::annotationEndString"]
10229        [::std::mem::offset_of!(BNLineFormatterSettings, annotationEndString) - 80usize];
10230};
10231impl Default for BNLineFormatterSettings {
10232    fn default() -> Self {
10233        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10234        unsafe {
10235            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10236            s.assume_init()
10237        }
10238    }
10239}
10240#[repr(C)]
10241#[derive(Debug, Copy, Clone)]
10242pub struct BNCustomLineFormatter {
10243    pub context: *mut ::std::os::raw::c_void,
10244    pub formatLines: ::std::option::Option<
10245        unsafe extern "C" fn(
10246            ctxt: *mut ::std::os::raw::c_void,
10247            inLines: *mut BNDisassemblyTextLine,
10248            inCount: usize,
10249            settings: *const BNLineFormatterSettings,
10250            outCount: *mut usize,
10251        ) -> *mut BNDisassemblyTextLine,
10252    >,
10253    pub freeLines: ::std::option::Option<
10254        unsafe extern "C" fn(
10255            ctxt: *mut ::std::os::raw::c_void,
10256            lines: *mut BNDisassemblyTextLine,
10257            count: usize,
10258        ),
10259    >,
10260}
10261#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10262const _: () = {
10263    ["Size of BNCustomLineFormatter"][::std::mem::size_of::<BNCustomLineFormatter>() - 24usize];
10264    ["Alignment of BNCustomLineFormatter"]
10265        [::std::mem::align_of::<BNCustomLineFormatter>() - 8usize];
10266    ["Offset of field: BNCustomLineFormatter::context"]
10267        [::std::mem::offset_of!(BNCustomLineFormatter, context) - 0usize];
10268    ["Offset of field: BNCustomLineFormatter::formatLines"]
10269        [::std::mem::offset_of!(BNCustomLineFormatter, formatLines) - 8usize];
10270    ["Offset of field: BNCustomLineFormatter::freeLines"]
10271        [::std::mem::offset_of!(BNCustomLineFormatter, freeLines) - 16usize];
10272};
10273impl Default for BNCustomLineFormatter {
10274    fn default() -> Self {
10275        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10276        unsafe {
10277            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10278            s.assume_init()
10279        }
10280    }
10281}
10282#[repr(C)]
10283#[derive(Debug, Copy, Clone)]
10284pub struct BNRenderLayerCallbacks {
10285    pub context: *mut ::std::os::raw::c_void,
10286    pub applyToFlowGraph: ::std::option::Option<
10287        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, graph: *mut BNFlowGraph),
10288    >,
10289    pub applyToLinearViewObject: ::std::option::Option<
10290        unsafe extern "C" fn(
10291            ctxt: *mut ::std::os::raw::c_void,
10292            obj: *mut BNLinearViewObject,
10293            prev: *mut BNLinearViewObject,
10294            next: *mut BNLinearViewObject,
10295            inLines: *mut BNLinearDisassemblyLine,
10296            inLineCount: usize,
10297            outLines: *mut *mut BNLinearDisassemblyLine,
10298            outLineCount: *mut usize,
10299        ),
10300    >,
10301    pub freeLines: ::std::option::Option<
10302        unsafe extern "C" fn(
10303            ctxt: *mut ::std::os::raw::c_void,
10304            lines: *mut BNLinearDisassemblyLine,
10305            count: usize,
10306        ),
10307    >,
10308}
10309#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10310const _: () = {
10311    ["Size of BNRenderLayerCallbacks"][::std::mem::size_of::<BNRenderLayerCallbacks>() - 32usize];
10312    ["Alignment of BNRenderLayerCallbacks"]
10313        [::std::mem::align_of::<BNRenderLayerCallbacks>() - 8usize];
10314    ["Offset of field: BNRenderLayerCallbacks::context"]
10315        [::std::mem::offset_of!(BNRenderLayerCallbacks, context) - 0usize];
10316    ["Offset of field: BNRenderLayerCallbacks::applyToFlowGraph"]
10317        [::std::mem::offset_of!(BNRenderLayerCallbacks, applyToFlowGraph) - 8usize];
10318    ["Offset of field: BNRenderLayerCallbacks::applyToLinearViewObject"]
10319        [::std::mem::offset_of!(BNRenderLayerCallbacks, applyToLinearViewObject) - 16usize];
10320    ["Offset of field: BNRenderLayerCallbacks::freeLines"]
10321        [::std::mem::offset_of!(BNRenderLayerCallbacks, freeLines) - 24usize];
10322};
10323impl Default for BNRenderLayerCallbacks {
10324    fn default() -> Self {
10325        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10326        unsafe {
10327            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10328            s.assume_init()
10329        }
10330    }
10331}
10332#[repr(u8)]
10333#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
10334pub enum BNRenderLayerDefaultEnableState {
10335    DisabledByDefaultRenderLayerDefaultEnableState = 0,
10336    EnabledByDefaultRenderLayerDefaultEnableState = 1,
10337    AlwaysEnabledRenderLayerDefaultEnableState = 2,
10338}
10339#[repr(C)]
10340#[derive(Debug, Default, Copy, Clone)]
10341pub struct BNExprMapInfo {
10342    pub lowerIndex: usize,
10343    pub higherIndex: usize,
10344    pub mapLowerToHigher: bool,
10345    pub mapHigherToLower: bool,
10346    pub lowerToHigherDirect: bool,
10347    pub higherToLowerDirect: bool,
10348}
10349#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10350const _: () = {
10351    ["Size of BNExprMapInfo"][::std::mem::size_of::<BNExprMapInfo>() - 24usize];
10352    ["Alignment of BNExprMapInfo"][::std::mem::align_of::<BNExprMapInfo>() - 8usize];
10353    ["Offset of field: BNExprMapInfo::lowerIndex"]
10354        [::std::mem::offset_of!(BNExprMapInfo, lowerIndex) - 0usize];
10355    ["Offset of field: BNExprMapInfo::higherIndex"]
10356        [::std::mem::offset_of!(BNExprMapInfo, higherIndex) - 8usize];
10357    ["Offset of field: BNExprMapInfo::mapLowerToHigher"]
10358        [::std::mem::offset_of!(BNExprMapInfo, mapLowerToHigher) - 16usize];
10359    ["Offset of field: BNExprMapInfo::mapHigherToLower"]
10360        [::std::mem::offset_of!(BNExprMapInfo, mapHigherToLower) - 17usize];
10361    ["Offset of field: BNExprMapInfo::lowerToHigherDirect"]
10362        [::std::mem::offset_of!(BNExprMapInfo, lowerToHigherDirect) - 18usize];
10363    ["Offset of field: BNExprMapInfo::higherToLowerDirect"]
10364        [::std::mem::offset_of!(BNExprMapInfo, higherToLowerDirect) - 19usize];
10365};
10366#[repr(C)]
10367#[derive(Debug, Copy, Clone)]
10368pub struct BNAllTypeReferences {
10369    pub codeRefs: *mut BNReferenceSource,
10370    pub codeRefCount: usize,
10371    pub dataRefs: *mut u64,
10372    pub dataRefCount: usize,
10373    pub typeRefs: *mut BNTypeReferenceSource,
10374    pub typeRefCount: usize,
10375}
10376#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10377const _: () = {
10378    ["Size of BNAllTypeReferences"][::std::mem::size_of::<BNAllTypeReferences>() - 48usize];
10379    ["Alignment of BNAllTypeReferences"][::std::mem::align_of::<BNAllTypeReferences>() - 8usize];
10380    ["Offset of field: BNAllTypeReferences::codeRefs"]
10381        [::std::mem::offset_of!(BNAllTypeReferences, codeRefs) - 0usize];
10382    ["Offset of field: BNAllTypeReferences::codeRefCount"]
10383        [::std::mem::offset_of!(BNAllTypeReferences, codeRefCount) - 8usize];
10384    ["Offset of field: BNAllTypeReferences::dataRefs"]
10385        [::std::mem::offset_of!(BNAllTypeReferences, dataRefs) - 16usize];
10386    ["Offset of field: BNAllTypeReferences::dataRefCount"]
10387        [::std::mem::offset_of!(BNAllTypeReferences, dataRefCount) - 24usize];
10388    ["Offset of field: BNAllTypeReferences::typeRefs"]
10389        [::std::mem::offset_of!(BNAllTypeReferences, typeRefs) - 32usize];
10390    ["Offset of field: BNAllTypeReferences::typeRefCount"]
10391        [::std::mem::offset_of!(BNAllTypeReferences, typeRefCount) - 40usize];
10392};
10393impl Default for BNAllTypeReferences {
10394    fn default() -> Self {
10395        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10396        unsafe {
10397            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10398            s.assume_init()
10399        }
10400    }
10401}
10402#[repr(C)]
10403#[derive(Debug, Copy, Clone)]
10404pub struct BNAllTypeFieldReferences {
10405    pub codeRefs: *mut BNTypeFieldReference,
10406    pub codeRefCount: usize,
10407    pub dataRefsTo: *mut u64,
10408    pub dataRefToCount: usize,
10409    pub dataRefsFrom: *mut u64,
10410    pub dataRefFromCount: usize,
10411    pub typeRefs: *mut BNTypeReferenceSource,
10412    pub typeRefCount: usize,
10413}
10414#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10415const _: () = {
10416    ["Size of BNAllTypeFieldReferences"]
10417        [::std::mem::size_of::<BNAllTypeFieldReferences>() - 64usize];
10418    ["Alignment of BNAllTypeFieldReferences"]
10419        [::std::mem::align_of::<BNAllTypeFieldReferences>() - 8usize];
10420    ["Offset of field: BNAllTypeFieldReferences::codeRefs"]
10421        [::std::mem::offset_of!(BNAllTypeFieldReferences, codeRefs) - 0usize];
10422    ["Offset of field: BNAllTypeFieldReferences::codeRefCount"]
10423        [::std::mem::offset_of!(BNAllTypeFieldReferences, codeRefCount) - 8usize];
10424    ["Offset of field: BNAllTypeFieldReferences::dataRefsTo"]
10425        [::std::mem::offset_of!(BNAllTypeFieldReferences, dataRefsTo) - 16usize];
10426    ["Offset of field: BNAllTypeFieldReferences::dataRefToCount"]
10427        [::std::mem::offset_of!(BNAllTypeFieldReferences, dataRefToCount) - 24usize];
10428    ["Offset of field: BNAllTypeFieldReferences::dataRefsFrom"]
10429        [::std::mem::offset_of!(BNAllTypeFieldReferences, dataRefsFrom) - 32usize];
10430    ["Offset of field: BNAllTypeFieldReferences::dataRefFromCount"]
10431        [::std::mem::offset_of!(BNAllTypeFieldReferences, dataRefFromCount) - 40usize];
10432    ["Offset of field: BNAllTypeFieldReferences::typeRefs"]
10433        [::std::mem::offset_of!(BNAllTypeFieldReferences, typeRefs) - 48usize];
10434    ["Offset of field: BNAllTypeFieldReferences::typeRefCount"]
10435        [::std::mem::offset_of!(BNAllTypeFieldReferences, typeRefCount) - 56usize];
10436};
10437impl Default for BNAllTypeFieldReferences {
10438    fn default() -> Self {
10439        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10440        unsafe {
10441            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10442            s.assume_init()
10443        }
10444    }
10445}
10446#[repr(C)]
10447#[derive(Debug, Copy, Clone)]
10448pub struct BNTypeAttribute {
10449    pub name: *mut ::std::os::raw::c_char,
10450    pub value: *mut ::std::os::raw::c_char,
10451}
10452#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10453const _: () = {
10454    ["Size of BNTypeAttribute"][::std::mem::size_of::<BNTypeAttribute>() - 16usize];
10455    ["Alignment of BNTypeAttribute"][::std::mem::align_of::<BNTypeAttribute>() - 8usize];
10456    ["Offset of field: BNTypeAttribute::name"]
10457        [::std::mem::offset_of!(BNTypeAttribute, name) - 0usize];
10458    ["Offset of field: BNTypeAttribute::value"]
10459        [::std::mem::offset_of!(BNTypeAttribute, value) - 8usize];
10460};
10461impl Default for BNTypeAttribute {
10462    fn default() -> Self {
10463        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10464        unsafe {
10465            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10466            s.assume_init()
10467        }
10468    }
10469}
10470#[repr(C)]
10471#[derive(Debug, Copy, Clone)]
10472pub struct BNCustomConstantRenderer {
10473    pub context: *mut ::std::os::raw::c_void,
10474    pub isValidForType: ::std::option::Option<
10475        unsafe extern "C" fn(
10476            ctxt: *mut ::std::os::raw::c_void,
10477            hlil: *mut BNHighLevelILFunction,
10478            type_: *mut BNType,
10479        ) -> bool,
10480    >,
10481    pub renderConstant: ::std::option::Option<
10482        unsafe extern "C" fn(
10483            ctxt: *mut ::std::os::raw::c_void,
10484            hlil: *mut BNHighLevelILFunction,
10485            expr: usize,
10486            type_: *mut BNType,
10487            val: i64,
10488            tokens: *mut BNHighLevelILTokenEmitter,
10489            settings: *mut BNDisassemblySettings,
10490            precedence: BNOperatorPrecedence,
10491        ) -> bool,
10492    >,
10493    pub renderConstantPointer: ::std::option::Option<
10494        unsafe extern "C" fn(
10495            ctxt: *mut ::std::os::raw::c_void,
10496            hlil: *mut BNHighLevelILFunction,
10497            expr: usize,
10498            type_: *mut BNType,
10499            val: i64,
10500            tokens: *mut BNHighLevelILTokenEmitter,
10501            settings: *mut BNDisassemblySettings,
10502            symbolDisplay: BNSymbolDisplayType,
10503            precedence: BNOperatorPrecedence,
10504        ) -> bool,
10505    >,
10506}
10507#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10508const _: () = {
10509    ["Size of BNCustomConstantRenderer"]
10510        [::std::mem::size_of::<BNCustomConstantRenderer>() - 32usize];
10511    ["Alignment of BNCustomConstantRenderer"]
10512        [::std::mem::align_of::<BNCustomConstantRenderer>() - 8usize];
10513    ["Offset of field: BNCustomConstantRenderer::context"]
10514        [::std::mem::offset_of!(BNCustomConstantRenderer, context) - 0usize];
10515    ["Offset of field: BNCustomConstantRenderer::isValidForType"]
10516        [::std::mem::offset_of!(BNCustomConstantRenderer, isValidForType) - 8usize];
10517    ["Offset of field: BNCustomConstantRenderer::renderConstant"]
10518        [::std::mem::offset_of!(BNCustomConstantRenderer, renderConstant) - 16usize];
10519    ["Offset of field: BNCustomConstantRenderer::renderConstantPointer"]
10520        [::std::mem::offset_of!(BNCustomConstantRenderer, renderConstantPointer) - 24usize];
10521};
10522impl Default for BNCustomConstantRenderer {
10523    fn default() -> Self {
10524        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10525        unsafe {
10526            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10527            s.assume_init()
10528        }
10529    }
10530}
10531#[repr(C)]
10532#[derive(Debug, Copy, Clone)]
10533pub struct BNCustomStringRecognizer {
10534    pub context: *mut ::std::os::raw::c_void,
10535    pub isValidForType: ::std::option::Option<
10536        unsafe extern "C" fn(
10537            ctxt: *mut ::std::os::raw::c_void,
10538            hlil: *mut BNHighLevelILFunction,
10539            type_: *mut BNType,
10540        ) -> bool,
10541    >,
10542    pub recognizeConstant: ::std::option::Option<
10543        unsafe extern "C" fn(
10544            ctxt: *mut ::std::os::raw::c_void,
10545            hlil: *mut BNHighLevelILFunction,
10546            expr: usize,
10547            type_: *mut BNType,
10548            val: i64,
10549            result: *mut BNDerivedString,
10550        ) -> bool,
10551    >,
10552    pub recognizeConstantPointer: ::std::option::Option<
10553        unsafe extern "C" fn(
10554            ctxt: *mut ::std::os::raw::c_void,
10555            hlil: *mut BNHighLevelILFunction,
10556            expr: usize,
10557            type_: *mut BNType,
10558            val: i64,
10559            result: *mut BNDerivedString,
10560        ) -> bool,
10561    >,
10562    pub recognizeExternPointer: ::std::option::Option<
10563        unsafe extern "C" fn(
10564            ctxt: *mut ::std::os::raw::c_void,
10565            hlil: *mut BNHighLevelILFunction,
10566            expr: usize,
10567            type_: *mut BNType,
10568            val: i64,
10569            offset: u64,
10570            result: *mut BNDerivedString,
10571        ) -> bool,
10572    >,
10573    pub recognizeImport: ::std::option::Option<
10574        unsafe extern "C" fn(
10575            ctxt: *mut ::std::os::raw::c_void,
10576            hlil: *mut BNHighLevelILFunction,
10577            expr: usize,
10578            type_: *mut BNType,
10579            val: i64,
10580            result: *mut BNDerivedString,
10581        ) -> bool,
10582    >,
10583    pub recognizeConstantData: ::std::option::Option<
10584        unsafe extern "C" fn(
10585            ctxt: *mut ::std::os::raw::c_void,
10586            hlil: *mut BNHighLevelILFunction,
10587            expr: usize,
10588            result: *mut BNDerivedString,
10589        ) -> bool,
10590    >,
10591}
10592#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10593const _: () = {
10594    ["Size of BNCustomStringRecognizer"]
10595        [::std::mem::size_of::<BNCustomStringRecognizer>() - 56usize];
10596    ["Alignment of BNCustomStringRecognizer"]
10597        [::std::mem::align_of::<BNCustomStringRecognizer>() - 8usize];
10598    ["Offset of field: BNCustomStringRecognizer::context"]
10599        [::std::mem::offset_of!(BNCustomStringRecognizer, context) - 0usize];
10600    ["Offset of field: BNCustomStringRecognizer::isValidForType"]
10601        [::std::mem::offset_of!(BNCustomStringRecognizer, isValidForType) - 8usize];
10602    ["Offset of field: BNCustomStringRecognizer::recognizeConstant"]
10603        [::std::mem::offset_of!(BNCustomStringRecognizer, recognizeConstant) - 16usize];
10604    ["Offset of field: BNCustomStringRecognizer::recognizeConstantPointer"]
10605        [::std::mem::offset_of!(BNCustomStringRecognizer, recognizeConstantPointer) - 24usize];
10606    ["Offset of field: BNCustomStringRecognizer::recognizeExternPointer"]
10607        [::std::mem::offset_of!(BNCustomStringRecognizer, recognizeExternPointer) - 32usize];
10608    ["Offset of field: BNCustomStringRecognizer::recognizeImport"]
10609        [::std::mem::offset_of!(BNCustomStringRecognizer, recognizeImport) - 40usize];
10610    ["Offset of field: BNCustomStringRecognizer::recognizeConstantData"]
10611        [::std::mem::offset_of!(BNCustomStringRecognizer, recognizeConstantData) - 48usize];
10612};
10613impl Default for BNCustomStringRecognizer {
10614    fn default() -> Self {
10615        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10616        unsafe {
10617            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10618            s.assume_init()
10619        }
10620    }
10621}
10622#[repr(C)]
10623#[derive(Debug, Copy, Clone)]
10624pub struct BNCustomStringTypeInfo {
10625    pub name: *mut ::std::os::raw::c_char,
10626    pub stringPrefix: *mut ::std::os::raw::c_char,
10627    pub stringPostfix: *mut ::std::os::raw::c_char,
10628}
10629#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10630const _: () = {
10631    ["Size of BNCustomStringTypeInfo"][::std::mem::size_of::<BNCustomStringTypeInfo>() - 24usize];
10632    ["Alignment of BNCustomStringTypeInfo"]
10633        [::std::mem::align_of::<BNCustomStringTypeInfo>() - 8usize];
10634    ["Offset of field: BNCustomStringTypeInfo::name"]
10635        [::std::mem::offset_of!(BNCustomStringTypeInfo, name) - 0usize];
10636    ["Offset of field: BNCustomStringTypeInfo::stringPrefix"]
10637        [::std::mem::offset_of!(BNCustomStringTypeInfo, stringPrefix) - 8usize];
10638    ["Offset of field: BNCustomStringTypeInfo::stringPostfix"]
10639        [::std::mem::offset_of!(BNCustomStringTypeInfo, stringPostfix) - 16usize];
10640};
10641impl Default for BNCustomStringTypeInfo {
10642    fn default() -> Self {
10643        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10644        unsafe {
10645            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10646            s.assume_init()
10647        }
10648    }
10649}
10650unsafe extern "C" {
10651    pub fn BNAllocString(contents: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
10652}
10653unsafe extern "C" {
10654    pub fn BNAllocStringWithLength(
10655        contents: *const ::std::os::raw::c_char,
10656        len: usize,
10657    ) -> *mut ::std::os::raw::c_char;
10658}
10659unsafe extern "C" {
10660    pub fn BNFreeString(str_: *mut ::std::os::raw::c_char);
10661}
10662unsafe extern "C" {
10663    pub fn BNAllocStringList(
10664        contents: *mut *const ::std::os::raw::c_char,
10665        size: usize,
10666    ) -> *mut *mut ::std::os::raw::c_char;
10667}
10668unsafe extern "C" {
10669    pub fn BNFreeStringList(strs: *mut *mut ::std::os::raw::c_char, count: usize);
10670}
10671unsafe extern "C" {
10672    pub fn BNShutdown();
10673}
10674unsafe extern "C" {
10675    pub fn BNIsShutdownRequested() -> bool;
10676}
10677unsafe extern "C" {
10678    pub fn BNGetVersionInfo() -> BNVersionInfo;
10679}
10680unsafe extern "C" {
10681    pub fn BNGetVersionString() -> *mut ::std::os::raw::c_char;
10682}
10683unsafe extern "C" {
10684    pub fn BNGetBuildId() -> u32;
10685}
10686unsafe extern "C" {
10687    pub fn BNGetCurrentCoreABIVersion() -> u32;
10688}
10689unsafe extern "C" {
10690    pub fn BNGetMinimumCoreABIVersion() -> u32;
10691}
10692unsafe extern "C" {
10693    pub fn BNGetSerialNumber() -> *mut ::std::os::raw::c_char;
10694}
10695unsafe extern "C" {
10696    pub fn BNGetLicenseExpirationTime() -> u64;
10697}
10698unsafe extern "C" {
10699    pub fn BNIsLicenseValidated() -> bool;
10700}
10701unsafe extern "C" {
10702    pub fn BNGetLicensedUserEmail() -> *mut ::std::os::raw::c_char;
10703}
10704unsafe extern "C" {
10705    pub fn BNGetProduct() -> *mut ::std::os::raw::c_char;
10706}
10707unsafe extern "C" {
10708    pub fn BNGetProductType() -> *mut ::std::os::raw::c_char;
10709}
10710unsafe extern "C" {
10711    pub fn BNGetLicenseCount() -> ::std::os::raw::c_int;
10712}
10713unsafe extern "C" {
10714    pub fn BNIsUIEnabled() -> bool;
10715}
10716unsafe extern "C" {
10717    pub fn BNSetLicense(licenseData: *const ::std::os::raw::c_char);
10718}
10719unsafe extern "C" {
10720    pub fn BNIsDatabase(filename: *const ::std::os::raw::c_char) -> bool;
10721}
10722unsafe extern "C" {
10723    pub fn BNIsDatabaseFromData(data: *const ::std::os::raw::c_void, len: usize) -> bool;
10724}
10725unsafe extern "C" {
10726    pub fn BNAuthenticateEnterpriseServerWithToken(
10727        token: *const ::std::os::raw::c_char,
10728        remember: bool,
10729    ) -> bool;
10730}
10731unsafe extern "C" {
10732    pub fn BNAuthenticateEnterpriseServerWithCredentials(
10733        username: *const ::std::os::raw::c_char,
10734        password: *const ::std::os::raw::c_char,
10735        remember: bool,
10736    ) -> bool;
10737}
10738unsafe extern "C" {
10739    pub fn BNAuthenticateEnterpriseServerWithMethod(
10740        method: *const ::std::os::raw::c_char,
10741        remember: bool,
10742    ) -> bool;
10743}
10744unsafe extern "C" {
10745    pub fn BNGetEnterpriseServerAuthenticationMethods(
10746        methods: *mut *mut *mut ::std::os::raw::c_char,
10747        names: *mut *mut *mut ::std::os::raw::c_char,
10748    ) -> usize;
10749}
10750unsafe extern "C" {
10751    pub fn BNDeauthenticateEnterpriseServer() -> bool;
10752}
10753unsafe extern "C" {
10754    pub fn BNCancelEnterpriseServerAuthentication();
10755}
10756unsafe extern "C" {
10757    pub fn BNConnectEnterpriseServer() -> bool;
10758}
10759unsafe extern "C" {
10760    pub fn BNUpdateEnterpriseServerLicense(timeout: u64) -> bool;
10761}
10762unsafe extern "C" {
10763    pub fn BNReleaseEnterpriseServerLicense() -> bool;
10764}
10765unsafe extern "C" {
10766    pub fn BNIsEnterpriseServerConnected() -> bool;
10767}
10768unsafe extern "C" {
10769    pub fn BNIsEnterpriseServerAuthenticated() -> bool;
10770}
10771unsafe extern "C" {
10772    pub fn BNGetEnterpriseServerUsername() -> *mut ::std::os::raw::c_char;
10773}
10774unsafe extern "C" {
10775    pub fn BNGetEnterpriseServerToken() -> *mut ::std::os::raw::c_char;
10776}
10777unsafe extern "C" {
10778    pub fn BNGetEnterpriseServerUrl() -> *mut ::std::os::raw::c_char;
10779}
10780unsafe extern "C" {
10781    pub fn BNSetEnterpriseServerUrl(url: *const ::std::os::raw::c_char) -> bool;
10782}
10783unsafe extern "C" {
10784    pub fn BNGetEnterpriseServerName() -> *mut ::std::os::raw::c_char;
10785}
10786unsafe extern "C" {
10787    pub fn BNGetEnterpriseServerId() -> *mut ::std::os::raw::c_char;
10788}
10789unsafe extern "C" {
10790    pub fn BNGetEnterpriseServerVersion() -> u64;
10791}
10792unsafe extern "C" {
10793    pub fn BNGetEnterpriseServerBuildId() -> *mut ::std::os::raw::c_char;
10794}
10795unsafe extern "C" {
10796    pub fn BNGetEnterpriseServerLicenseExpirationTime() -> u64;
10797}
10798unsafe extern "C" {
10799    pub fn BNGetEnterpriseServerLicenseDuration() -> u64;
10800}
10801unsafe extern "C" {
10802    pub fn BNIsEnterpriseServerFloatingLicense() -> bool;
10803}
10804unsafe extern "C" {
10805    pub fn BNGetEnterpriseServerReservationTimeLimit() -> u64;
10806}
10807unsafe extern "C" {
10808    pub fn BNIsEnterpriseServerLicenseStillActivated() -> bool;
10809}
10810unsafe extern "C" {
10811    pub fn BNGetEnterpriseServerLastError() -> *mut ::std::os::raw::c_char;
10812}
10813unsafe extern "C" {
10814    pub fn BNRegisterEnterpriseServerNotification(notify: *mut BNEnterpriseServerCallbacks);
10815}
10816unsafe extern "C" {
10817    pub fn BNUnregisterEnterpriseServerNotification(notify: *mut BNEnterpriseServerCallbacks);
10818}
10819unsafe extern "C" {
10820    pub fn BNIsEnterpriseServerInitialized() -> bool;
10821}
10822unsafe extern "C" {
10823    pub fn BNInitializeEnterpriseServer() -> bool;
10824}
10825unsafe extern "C" {
10826    pub fn BNRegisterObjectDestructionCallbacks(callbacks: *mut BNObjectDestructionCallbacks);
10827}
10828unsafe extern "C" {
10829    pub fn BNUnregisterObjectDestructionCallbacks(callbacks: *mut BNObjectDestructionCallbacks);
10830}
10831unsafe extern "C" {
10832    pub fn BNGetUniqueIdentifierString() -> *mut ::std::os::raw::c_char;
10833}
10834unsafe extern "C" {
10835    #[doc = " Plugin initialization"]
10836    pub fn BNInitPlugins(allowUserPlugins: bool) -> bool;
10837}
10838unsafe extern "C" {
10839    pub fn BNDisablePlugins();
10840}
10841unsafe extern "C" {
10842    pub fn BNIsPluginsEnabled() -> bool;
10843}
10844unsafe extern "C" {
10845    pub fn BNGetInstallDirectory() -> *mut ::std::os::raw::c_char;
10846}
10847unsafe extern "C" {
10848    pub fn BNGetBundledPluginDirectory() -> *mut ::std::os::raw::c_char;
10849}
10850unsafe extern "C" {
10851    pub fn BNGetBundledScriptPluginDirectory() -> *mut ::std::os::raw::c_char;
10852}
10853unsafe extern "C" {
10854    pub fn BNSetBundledPluginDirectory(path: *const ::std::os::raw::c_char);
10855}
10856unsafe extern "C" {
10857    pub fn BNSetBundledScriptPluginDirectory(path: *const ::std::os::raw::c_char);
10858}
10859unsafe extern "C" {
10860    pub fn BNGetUserDirectory() -> *mut ::std::os::raw::c_char;
10861}
10862unsafe extern "C" {
10863    pub fn BNGetUserPluginDirectory() -> *mut ::std::os::raw::c_char;
10864}
10865unsafe extern "C" {
10866    pub fn BNGetRepositoriesDirectory() -> *mut ::std::os::raw::c_char;
10867}
10868unsafe extern "C" {
10869    pub fn BNGetSettingsFileName() -> *mut ::std::os::raw::c_char;
10870}
10871unsafe extern "C" {
10872    pub fn BNSaveLastRun();
10873}
10874unsafe extern "C" {
10875    pub fn BNGetPathRelativeToBundledPluginDirectory(
10876        path: *const ::std::os::raw::c_char,
10877    ) -> *mut ::std::os::raw::c_char;
10878}
10879unsafe extern "C" {
10880    pub fn BNGetPathRelativeToUserPluginDirectory(
10881        path: *const ::std::os::raw::c_char,
10882    ) -> *mut ::std::os::raw::c_char;
10883}
10884unsafe extern "C" {
10885    pub fn BNGetPathRelativeToUserDirectory(
10886        path: *const ::std::os::raw::c_char,
10887    ) -> *mut ::std::os::raw::c_char;
10888}
10889unsafe extern "C" {
10890    pub fn BNExecuteWorkerProcess(
10891        path: *const ::std::os::raw::c_char,
10892        args: *mut *const ::std::os::raw::c_char,
10893        input: *mut BNDataBuffer,
10894        output: *mut *mut ::std::os::raw::c_char,
10895        error: *mut *mut ::std::os::raw::c_char,
10896        stdoutIsText: bool,
10897        stderrIsText: bool,
10898    ) -> bool;
10899}
10900unsafe extern "C" {
10901    pub fn BNSetCurrentPluginLoadOrder(order: BNPluginLoadPhase);
10902}
10903unsafe extern "C" {
10904    pub fn BNAddRequiredPluginDependency(name: *const ::std::os::raw::c_char);
10905}
10906unsafe extern "C" {
10907    pub fn BNAddOptionalPluginDependency(name: *const ::std::os::raw::c_char);
10908}
10909unsafe extern "C" {
10910    #[doc = " Logging"]
10911    pub fn BNLog(
10912        session: usize,
10913        level: BNLogLevel,
10914        logger_name: *const ::std::os::raw::c_char,
10915        tid: usize,
10916        fmt: *const ::std::os::raw::c_char,
10917        ...
10918    );
10919}
10920unsafe extern "C" {
10921    pub fn BNLogDebug(fmt: *const ::std::os::raw::c_char, ...);
10922}
10923unsafe extern "C" {
10924    pub fn BNLogInfo(fmt: *const ::std::os::raw::c_char, ...);
10925}
10926unsafe extern "C" {
10927    pub fn BNLogWarn(fmt: *const ::std::os::raw::c_char, ...);
10928}
10929unsafe extern "C" {
10930    pub fn BNLogError(fmt: *const ::std::os::raw::c_char, ...);
10931}
10932unsafe extern "C" {
10933    pub fn BNLogAlert(fmt: *const ::std::os::raw::c_char, ...);
10934}
10935unsafe extern "C" {
10936    pub fn BNLogString(
10937        session: usize,
10938        level: BNLogLevel,
10939        logger_name: *const ::std::os::raw::c_char,
10940        tid: usize,
10941        str_: *const ::std::os::raw::c_char,
10942    );
10943}
10944unsafe extern "C" {
10945    pub fn BNLogWithStackTrace(
10946        session: usize,
10947        level: BNLogLevel,
10948        logger_name: *const ::std::os::raw::c_char,
10949        tid: usize,
10950        stackTrace: *const ::std::os::raw::c_char,
10951        fmt: *const ::std::os::raw::c_char,
10952        ...
10953    );
10954}
10955unsafe extern "C" {
10956    pub fn BNLogDebugWithStackTrace(
10957        stackTrace: *const ::std::os::raw::c_char,
10958        fmt: *const ::std::os::raw::c_char,
10959        ...
10960    );
10961}
10962unsafe extern "C" {
10963    pub fn BNLogInfoWithStackTrace(
10964        stackTrace: *const ::std::os::raw::c_char,
10965        fmt: *const ::std::os::raw::c_char,
10966        ...
10967    );
10968}
10969unsafe extern "C" {
10970    pub fn BNLogWarnWithStackTrace(
10971        stackTrace: *const ::std::os::raw::c_char,
10972        fmt: *const ::std::os::raw::c_char,
10973        ...
10974    );
10975}
10976unsafe extern "C" {
10977    pub fn BNLogErrorWithStackTrace(
10978        stackTrace: *const ::std::os::raw::c_char,
10979        fmt: *const ::std::os::raw::c_char,
10980        ...
10981    );
10982}
10983unsafe extern "C" {
10984    pub fn BNLogAlertWithStackTrace(
10985        stackTrace: *const ::std::os::raw::c_char,
10986        fmt: *const ::std::os::raw::c_char,
10987        ...
10988    );
10989}
10990unsafe extern "C" {
10991    pub fn BNLogStringWithStackTrace(
10992        session: usize,
10993        level: BNLogLevel,
10994        logger_name: *const ::std::os::raw::c_char,
10995        tid: usize,
10996        stackTrace: *const ::std::os::raw::c_char,
10997        str_: *const ::std::os::raw::c_char,
10998    );
10999}
11000unsafe extern "C" {
11001    pub fn BNNewLoggerReference(logger: *mut BNLogger) -> *mut BNLogger;
11002}
11003unsafe extern "C" {
11004    pub fn BNFreeLogger(logger: *mut BNLogger);
11005}
11006unsafe extern "C" {
11007    pub fn BNLoggerLog(
11008        logger: *mut BNLogger,
11009        level: BNLogLevel,
11010        fmt: *const ::std::os::raw::c_char,
11011        ...
11012    );
11013}
11014unsafe extern "C" {
11015    pub fn BNLoggerLogString(
11016        logger: *mut BNLogger,
11017        level: BNLogLevel,
11018        msg: *const ::std::os::raw::c_char,
11019    );
11020}
11021unsafe extern "C" {
11022    pub fn BNLoggerLogWithStackTrace(
11023        logger: *mut BNLogger,
11024        level: BNLogLevel,
11025        stackTrace: *const ::std::os::raw::c_char,
11026        fmt: *const ::std::os::raw::c_char,
11027        ...
11028    );
11029}
11030unsafe extern "C" {
11031    pub fn BNLoggerLogStringWithStackTrace(
11032        logger: *mut BNLogger,
11033        level: BNLogLevel,
11034        stackTrace: *const ::std::os::raw::c_char,
11035        msg: *const ::std::os::raw::c_char,
11036    );
11037}
11038unsafe extern "C" {
11039    pub fn BNLoggerGetName(logger: *mut BNLogger) -> *mut ::std::os::raw::c_char;
11040}
11041unsafe extern "C" {
11042    pub fn BNLoggerGetSessionId(logger: *mut BNLogger) -> usize;
11043}
11044unsafe extern "C" {
11045    pub fn BNLogCreateLogger(
11046        loggerName: *const ::std::os::raw::c_char,
11047        sessionId: usize,
11048    ) -> *mut BNLogger;
11049}
11050unsafe extern "C" {
11051    pub fn BNLogGetLogger(
11052        loggerName: *const ::std::os::raw::c_char,
11053        sessionId: usize,
11054    ) -> *mut BNLogger;
11055}
11056unsafe extern "C" {
11057    pub fn BNLogGetLoggerNames(count: *mut usize) -> *mut *mut ::std::os::raw::c_char;
11058}
11059unsafe extern "C" {
11060    pub fn BNRegisterLogListener(listener: *mut BNLogListener);
11061}
11062unsafe extern "C" {
11063    pub fn BNUnregisterLogListener(listener: *mut BNLogListener);
11064}
11065unsafe extern "C" {
11066    pub fn BNUpdateLogListeners();
11067}
11068unsafe extern "C" {
11069    pub fn BNLogToStdout(minimumLevel: BNLogLevel);
11070}
11071unsafe extern "C" {
11072    pub fn BNLogToStderr(minimumLevel: BNLogLevel);
11073}
11074unsafe extern "C" {
11075    pub fn BNLogToFile(
11076        minimumLevel: BNLogLevel,
11077        path: *const ::std::os::raw::c_char,
11078        append: bool,
11079    ) -> bool;
11080}
11081unsafe extern "C" {
11082    pub fn BNCloseLogs();
11083}
11084unsafe extern "C" {
11085    #[doc = " Temporary files"]
11086    pub fn BNCreateTemporaryFile() -> *mut BNTemporaryFile;
11087}
11088unsafe extern "C" {
11089    pub fn BNCreateTemporaryFileWithContents(data: *mut BNDataBuffer) -> *mut BNTemporaryFile;
11090}
11091unsafe extern "C" {
11092    pub fn BNNewTemporaryFileReference(file: *mut BNTemporaryFile) -> *mut BNTemporaryFile;
11093}
11094unsafe extern "C" {
11095    pub fn BNFreeTemporaryFile(file: *mut BNTemporaryFile);
11096}
11097unsafe extern "C" {
11098    pub fn BNGetTemporaryFilePath(file: *mut BNTemporaryFile) -> *mut ::std::os::raw::c_char;
11099}
11100unsafe extern "C" {
11101    pub fn BNGetTemporaryFileContents(file: *mut BNTemporaryFile) -> *mut BNDataBuffer;
11102}
11103unsafe extern "C" {
11104    #[doc = " Data buffer management"]
11105    pub fn BNCreateDataBuffer(data: *const ::std::os::raw::c_void, len: usize)
11106    -> *mut BNDataBuffer;
11107}
11108unsafe extern "C" {
11109    pub fn BNDuplicateDataBuffer(buf: *mut BNDataBuffer) -> *mut BNDataBuffer;
11110}
11111unsafe extern "C" {
11112    pub fn BNFreeDataBuffer(buf: *mut BNDataBuffer);
11113}
11114unsafe extern "C" {
11115    pub fn BNGetDataBufferContents(buf: *mut BNDataBuffer) -> *mut ::std::os::raw::c_void;
11116}
11117unsafe extern "C" {
11118    pub fn BNGetDataBufferContentsAt(
11119        buf: *mut BNDataBuffer,
11120        offset: usize,
11121    ) -> *mut ::std::os::raw::c_void;
11122}
11123unsafe extern "C" {
11124    pub fn BNGetDataBufferLength(buf: *mut BNDataBuffer) -> usize;
11125}
11126unsafe extern "C" {
11127    pub fn BNGetDataBufferSlice(
11128        buf: *mut BNDataBuffer,
11129        start: usize,
11130        len: usize,
11131    ) -> *mut BNDataBuffer;
11132}
11133unsafe extern "C" {
11134    pub fn BNSetDataBufferLength(buf: *mut BNDataBuffer, len: usize);
11135}
11136unsafe extern "C" {
11137    pub fn BNClearDataBuffer(buf: *mut BNDataBuffer);
11138}
11139unsafe extern "C" {
11140    pub fn BNSetDataBufferContents(
11141        buf: *mut BNDataBuffer,
11142        data: *mut ::std::os::raw::c_void,
11143        len: usize,
11144    );
11145}
11146unsafe extern "C" {
11147    pub fn BNAssignDataBuffer(dest: *mut BNDataBuffer, src: *mut BNDataBuffer);
11148}
11149unsafe extern "C" {
11150    pub fn BNAppendDataBuffer(dest: *mut BNDataBuffer, src: *mut BNDataBuffer);
11151}
11152unsafe extern "C" {
11153    pub fn BNAppendDataBufferContents(
11154        dest: *mut BNDataBuffer,
11155        src: *const ::std::os::raw::c_void,
11156        len: usize,
11157    );
11158}
11159unsafe extern "C" {
11160    pub fn BNGetDataBufferByte(buf: *mut BNDataBuffer, offset: usize) -> u8;
11161}
11162unsafe extern "C" {
11163    pub fn BNSetDataBufferByte(buf: *mut BNDataBuffer, offset: usize, val: u8);
11164}
11165unsafe extern "C" {
11166    pub fn BNDataBufferToEscapedString(
11167        buf: *mut BNDataBuffer,
11168        nullTerminates: bool,
11169        escapePrintable: bool,
11170    ) -> *mut ::std::os::raw::c_char;
11171}
11172unsafe extern "C" {
11173    pub fn BNDecodeEscapedString(str_: *const ::std::os::raw::c_char) -> *mut BNDataBuffer;
11174}
11175unsafe extern "C" {
11176    pub fn BNDataBufferToBase64(buf: *mut BNDataBuffer) -> *mut ::std::os::raw::c_char;
11177}
11178unsafe extern "C" {
11179    pub fn BNDecodeBase64(str_: *const ::std::os::raw::c_char) -> *mut BNDataBuffer;
11180}
11181unsafe extern "C" {
11182    pub fn BNZlibCompress(buf: *mut BNDataBuffer) -> *mut BNDataBuffer;
11183}
11184unsafe extern "C" {
11185    pub fn BNZlibDecompress(buf: *mut BNDataBuffer) -> *mut BNDataBuffer;
11186}
11187unsafe extern "C" {
11188    pub fn BNLzmaDecompress(buf: *mut BNDataBuffer) -> *mut BNDataBuffer;
11189}
11190unsafe extern "C" {
11191    pub fn BNLzma2Decompress(buf: *mut BNDataBuffer) -> *mut BNDataBuffer;
11192}
11193unsafe extern "C" {
11194    pub fn BNXzDecompress(buf: *mut BNDataBuffer) -> *mut BNDataBuffer;
11195}
11196unsafe extern "C" {
11197    #[doc = " Save settings"]
11198    pub fn BNCreateSaveSettings() -> *mut BNSaveSettings;
11199}
11200unsafe extern "C" {
11201    pub fn BNNewSaveSettingsReference(settings: *mut BNSaveSettings) -> *mut BNSaveSettings;
11202}
11203unsafe extern "C" {
11204    pub fn BNFreeSaveSettings(settings: *mut BNSaveSettings);
11205}
11206unsafe extern "C" {
11207    pub fn BNIsSaveSettingsOptionSet(settings: *mut BNSaveSettings, option: BNSaveOption) -> bool;
11208}
11209unsafe extern "C" {
11210    pub fn BNSetSaveSettingsOption(
11211        settings: *mut BNSaveSettings,
11212        option: BNSaveOption,
11213        state: bool,
11214    );
11215}
11216unsafe extern "C" {
11217    pub fn BNGetSaveSettingsName(settings: *mut BNSaveSettings) -> *mut ::std::os::raw::c_char;
11218}
11219unsafe extern "C" {
11220    pub fn BNSetSaveSettingsName(
11221        settings: *mut BNSaveSettings,
11222        name: *const ::std::os::raw::c_char,
11223    );
11224}
11225unsafe extern "C" {
11226    #[doc = " File metadata object"]
11227    pub fn BNCreateFileMetadata() -> *mut BNFileMetadata;
11228}
11229unsafe extern "C" {
11230    pub fn BNNewFileReference(file: *mut BNFileMetadata) -> *mut BNFileMetadata;
11231}
11232unsafe extern "C" {
11233    pub fn BNFreeFileMetadata(file: *mut BNFileMetadata);
11234}
11235unsafe extern "C" {
11236    pub fn BNCloseFile(file: *mut BNFileMetadata);
11237}
11238unsafe extern "C" {
11239    pub fn BNSetFileMetadataNavigationHandler(
11240        file: *mut BNFileMetadata,
11241        handler: *mut BNNavigationHandler,
11242    );
11243}
11244unsafe extern "C" {
11245    pub fn BNIsFileModified(file: *mut BNFileMetadata) -> bool;
11246}
11247unsafe extern "C" {
11248    pub fn BNIsAnalysisChanged(file: *mut BNFileMetadata) -> bool;
11249}
11250unsafe extern "C" {
11251    pub fn BNMarkFileModified(file: *mut BNFileMetadata);
11252}
11253unsafe extern "C" {
11254    pub fn BNMarkFileSaved(file: *mut BNFileMetadata);
11255}
11256unsafe extern "C" {
11257    pub fn BNIsBackedByDatabase(
11258        file: *mut BNFileMetadata,
11259        binaryViewType: *const ::std::os::raw::c_char,
11260    ) -> bool;
11261}
11262unsafe extern "C" {
11263    pub fn BNCreateDatabase(
11264        data: *mut BNBinaryView,
11265        path: *const ::std::os::raw::c_char,
11266        settings: *mut BNSaveSettings,
11267    ) -> bool;
11268}
11269unsafe extern "C" {
11270    pub fn BNCreateDatabaseWithProgress(
11271        data: *mut BNBinaryView,
11272        path: *const ::std::os::raw::c_char,
11273        ctxt: *mut ::std::os::raw::c_void,
11274        progress: BNProgressFunction,
11275        settings: *mut BNSaveSettings,
11276    ) -> bool;
11277}
11278unsafe extern "C" {
11279    pub fn BNOpenExistingDatabase(
11280        file: *mut BNFileMetadata,
11281        path: *const ::std::os::raw::c_char,
11282    ) -> *mut BNBinaryView;
11283}
11284unsafe extern "C" {
11285    pub fn BNOpenExistingDatabaseWithProgress(
11286        file: *mut BNFileMetadata,
11287        path: *const ::std::os::raw::c_char,
11288        ctxt: *mut ::std::os::raw::c_void,
11289        progress: BNProgressFunction,
11290    ) -> *mut BNBinaryView;
11291}
11292unsafe extern "C" {
11293    pub fn BNOpenDatabaseForConfiguration(
11294        file: *mut BNFileMetadata,
11295        path: *const ::std::os::raw::c_char,
11296    ) -> *mut BNBinaryView;
11297}
11298unsafe extern "C" {
11299    pub fn BNSaveAutoSnapshot(data: *mut BNBinaryView, settings: *mut BNSaveSettings) -> bool;
11300}
11301unsafe extern "C" {
11302    pub fn BNSaveAutoSnapshotWithProgress(
11303        data: *mut BNBinaryView,
11304        ctxt: *mut ::std::os::raw::c_void,
11305        progress: BNProgressFunction,
11306        settings: *mut BNSaveSettings,
11307    ) -> bool;
11308}
11309unsafe extern "C" {
11310    pub fn BNGetSnapshotData(
11311        file: *mut BNFileMetadata,
11312        data: *mut BNKeyValueStore,
11313        cache: *mut BNKeyValueStore,
11314        ctxt: *mut ::std::os::raw::c_void,
11315        progress: BNProgressFunction,
11316    );
11317}
11318unsafe extern "C" {
11319    pub fn BNApplySnapshotData(
11320        file: *mut BNFileMetadata,
11321        view: *mut BNBinaryView,
11322        data: *mut BNKeyValueStore,
11323        cache: *mut BNKeyValueStore,
11324        ctxt: *mut ::std::os::raw::c_void,
11325        progress: BNProgressFunction,
11326        openForConfiguration: bool,
11327        restoreRawView: bool,
11328    );
11329}
11330unsafe extern "C" {
11331    pub fn BNGetFileMetadataDatabase(file: *mut BNFileMetadata) -> *mut BNDatabase;
11332}
11333unsafe extern "C" {
11334    #[doc = " Key value store"]
11335    pub fn BNCreateKeyValueStore() -> *mut BNKeyValueStore;
11336}
11337unsafe extern "C" {
11338    pub fn BNCreateKeyValueStoreFromDataBuffer(buffer: *mut BNDataBuffer) -> *mut BNKeyValueStore;
11339}
11340unsafe extern "C" {
11341    pub fn BNNewKeyValueStoreReference(store: *mut BNKeyValueStore) -> *mut BNKeyValueStore;
11342}
11343unsafe extern "C" {
11344    pub fn BNFreeKeyValueStore(store: *mut BNKeyValueStore);
11345}
11346unsafe extern "C" {
11347    pub fn BNGetKeyValueStoreKeys(
11348        store: *mut BNKeyValueStore,
11349        count: *mut usize,
11350    ) -> *mut *mut ::std::os::raw::c_char;
11351}
11352unsafe extern "C" {
11353    pub fn BNKeyValueStoreHasValue(
11354        store: *mut BNKeyValueStore,
11355        name: *const ::std::os::raw::c_char,
11356    ) -> bool;
11357}
11358unsafe extern "C" {
11359    pub fn BNGetKeyValueStoreValue(
11360        store: *mut BNKeyValueStore,
11361        name: *const ::std::os::raw::c_char,
11362    ) -> *mut ::std::os::raw::c_char;
11363}
11364unsafe extern "C" {
11365    pub fn BNGetKeyValueStoreValueHash(
11366        store: *mut BNKeyValueStore,
11367        name: *const ::std::os::raw::c_char,
11368    ) -> *mut BNDataBuffer;
11369}
11370unsafe extern "C" {
11371    pub fn BNGetKeyValueStoreBuffer(
11372        store: *mut BNKeyValueStore,
11373        name: *const ::std::os::raw::c_char,
11374    ) -> *mut BNDataBuffer;
11375}
11376unsafe extern "C" {
11377    pub fn BNSetKeyValueStoreValue(
11378        store: *mut BNKeyValueStore,
11379        name: *const ::std::os::raw::c_char,
11380        value: *const ::std::os::raw::c_char,
11381    ) -> bool;
11382}
11383unsafe extern "C" {
11384    pub fn BNSetKeyValueStoreBuffer(
11385        store: *mut BNKeyValueStore,
11386        name: *const ::std::os::raw::c_char,
11387        value: *const BNDataBuffer,
11388    ) -> bool;
11389}
11390unsafe extern "C" {
11391    pub fn BNGetKeyValueStoreSerializedData(store: *mut BNKeyValueStore) -> *mut BNDataBuffer;
11392}
11393unsafe extern "C" {
11394    pub fn BNBeginKeyValueStoreNamespace(
11395        store: *mut BNKeyValueStore,
11396        name: *const ::std::os::raw::c_char,
11397    );
11398}
11399unsafe extern "C" {
11400    pub fn BNEndKeyValueStoreNamespace(store: *mut BNKeyValueStore);
11401}
11402unsafe extern "C" {
11403    pub fn BNIsKeyValueStoreEmpty(store: *mut BNKeyValueStore) -> bool;
11404}
11405unsafe extern "C" {
11406    pub fn BNGetKeyValueStoreValueSize(store: *mut BNKeyValueStore) -> usize;
11407}
11408unsafe extern "C" {
11409    pub fn BNGetKeyValueStoreDataSize(store: *mut BNKeyValueStore) -> usize;
11410}
11411unsafe extern "C" {
11412    pub fn BNGetKeyValueStoreValueStorageSize(store: *mut BNKeyValueStore) -> usize;
11413}
11414unsafe extern "C" {
11415    pub fn BNGetKeyValueStoreNamespaceSize(store: *mut BNKeyValueStore) -> usize;
11416}
11417unsafe extern "C" {
11418    #[doc = " Project object"]
11419    pub fn BNNewProjectReference(project: *mut BNProject) -> *mut BNProject;
11420}
11421unsafe extern "C" {
11422    pub fn BNFreeProject(project: *mut BNProject);
11423}
11424unsafe extern "C" {
11425    pub fn BNFreeProjectList(projects: *mut *mut BNProject, count: usize);
11426}
11427unsafe extern "C" {
11428    pub fn BNGetOpenProjects(count: *mut usize) -> *mut *mut BNProject;
11429}
11430unsafe extern "C" {
11431    pub fn BNCreateProject(
11432        path: *const ::std::os::raw::c_char,
11433        name: *const ::std::os::raw::c_char,
11434    ) -> *mut BNProject;
11435}
11436unsafe extern "C" {
11437    pub fn BNOpenProject(path: *const ::std::os::raw::c_char) -> *mut BNProject;
11438}
11439unsafe extern "C" {
11440    pub fn BNProjectOpen(project: *mut BNProject) -> bool;
11441}
11442unsafe extern "C" {
11443    pub fn BNProjectClose(project: *mut BNProject) -> bool;
11444}
11445unsafe extern "C" {
11446    pub fn BNProjectGetId(project: *mut BNProject) -> *mut ::std::os::raw::c_char;
11447}
11448unsafe extern "C" {
11449    pub fn BNProjectIsOpen(project: *mut BNProject) -> bool;
11450}
11451unsafe extern "C" {
11452    pub fn BNProjectGetPath(project: *mut BNProject) -> *mut ::std::os::raw::c_char;
11453}
11454unsafe extern "C" {
11455    pub fn BNProjectGetFilePathInProject(
11456        project: *mut BNProject,
11457        file: *mut BNProjectFile,
11458    ) -> *mut ::std::os::raw::c_char;
11459}
11460unsafe extern "C" {
11461    pub fn BNProjectGetName(project: *mut BNProject) -> *mut ::std::os::raw::c_char;
11462}
11463unsafe extern "C" {
11464    pub fn BNProjectSetName(project: *mut BNProject, name: *const ::std::os::raw::c_char) -> bool;
11465}
11466unsafe extern "C" {
11467    pub fn BNProjectGetDescription(project: *mut BNProject) -> *mut ::std::os::raw::c_char;
11468}
11469unsafe extern "C" {
11470    pub fn BNProjectSetDescription(
11471        project: *mut BNProject,
11472        description: *const ::std::os::raw::c_char,
11473    ) -> bool;
11474}
11475unsafe extern "C" {
11476    pub fn BNProjectQueryMetadata(
11477        project: *mut BNProject,
11478        key: *const ::std::os::raw::c_char,
11479    ) -> *mut BNMetadata;
11480}
11481unsafe extern "C" {
11482    pub fn BNProjectStoreMetadata(
11483        project: *mut BNProject,
11484        key: *const ::std::os::raw::c_char,
11485        value: *mut BNMetadata,
11486    ) -> bool;
11487}
11488unsafe extern "C" {
11489    pub fn BNProjectRemoveMetadata(
11490        project: *mut BNProject,
11491        key: *const ::std::os::raw::c_char,
11492    ) -> bool;
11493}
11494unsafe extern "C" {
11495    pub fn BNProjectCreateFileFromPath(
11496        project: *mut BNProject,
11497        path: *const ::std::os::raw::c_char,
11498        folder: *mut BNProjectFolder,
11499        name: *const ::std::os::raw::c_char,
11500        description: *const ::std::os::raw::c_char,
11501        ctxt: *mut ::std::os::raw::c_void,
11502        progress: BNProgressFunction,
11503    ) -> *mut BNProjectFile;
11504}
11505unsafe extern "C" {
11506    pub fn BNProjectCreateFileFromPathUnsafe(
11507        project: *mut BNProject,
11508        path: *const ::std::os::raw::c_char,
11509        folder: *mut BNProjectFolder,
11510        name: *const ::std::os::raw::c_char,
11511        description: *const ::std::os::raw::c_char,
11512        id: *const ::std::os::raw::c_char,
11513        creationTimestamp: i64,
11514        ctxt: *mut ::std::os::raw::c_void,
11515        progress: BNProgressFunction,
11516    ) -> *mut BNProjectFile;
11517}
11518unsafe extern "C" {
11519    pub fn BNProjectCreateFile(
11520        project: *mut BNProject,
11521        contents: *const u8,
11522        contentsSize: usize,
11523        folder: *mut BNProjectFolder,
11524        name: *const ::std::os::raw::c_char,
11525        description: *const ::std::os::raw::c_char,
11526        ctxt: *mut ::std::os::raw::c_void,
11527        progress: BNProgressFunction,
11528    ) -> *mut BNProjectFile;
11529}
11530unsafe extern "C" {
11531    pub fn BNProjectCreateFileUnsafe(
11532        project: *mut BNProject,
11533        contents: *const u8,
11534        contentsSize: usize,
11535        folder: *mut BNProjectFolder,
11536        name: *const ::std::os::raw::c_char,
11537        description: *const ::std::os::raw::c_char,
11538        id: *const ::std::os::raw::c_char,
11539        creationTimestamp: i64,
11540        ctxt: *mut ::std::os::raw::c_void,
11541        progress: BNProgressFunction,
11542    ) -> *mut BNProjectFile;
11543}
11544unsafe extern "C" {
11545    pub fn BNProjectGetFiles(project: *mut BNProject, count: *mut usize)
11546    -> *mut *mut BNProjectFile;
11547}
11548unsafe extern "C" {
11549    pub fn BNProjectGetFileById(
11550        project: *mut BNProject,
11551        id: *const ::std::os::raw::c_char,
11552    ) -> *mut BNProjectFile;
11553}
11554unsafe extern "C" {
11555    pub fn BNProjectGetFileByPathOnDisk(
11556        project: *mut BNProject,
11557        path: *const ::std::os::raw::c_char,
11558    ) -> *mut BNProjectFile;
11559}
11560unsafe extern "C" {
11561    pub fn BNProjectGetFilesByPathInProject(
11562        project: *mut BNProject,
11563        path: *const ::std::os::raw::c_char,
11564        count: *mut usize,
11565    ) -> *mut *mut BNProjectFile;
11566}
11567unsafe extern "C" {
11568    pub fn BNProjectGetFilesInFolder(
11569        project: *mut BNProject,
11570        folder: *mut BNProjectFolder,
11571        count: *mut usize,
11572    ) -> *mut *mut BNProjectFile;
11573}
11574unsafe extern "C" {
11575    pub fn BNProjectPushFile(project: *mut BNProject, file: *mut BNProjectFile) -> bool;
11576}
11577unsafe extern "C" {
11578    pub fn BNProjectDeleteFile(project: *mut BNProject, file: *mut BNProjectFile) -> bool;
11579}
11580unsafe extern "C" {
11581    pub fn BNProjectCreateFolderFromPath(
11582        project: *mut BNProject,
11583        path: *const ::std::os::raw::c_char,
11584        parent: *mut BNProjectFolder,
11585        description: *const ::std::os::raw::c_char,
11586        ctxt: *mut ::std::os::raw::c_void,
11587        progress: BNProgressFunction,
11588    ) -> *mut BNProjectFolder;
11589}
11590unsafe extern "C" {
11591    pub fn BNProjectCreateFolder(
11592        project: *mut BNProject,
11593        parent: *mut BNProjectFolder,
11594        name: *const ::std::os::raw::c_char,
11595        description: *const ::std::os::raw::c_char,
11596    ) -> *mut BNProjectFolder;
11597}
11598unsafe extern "C" {
11599    pub fn BNProjectCreateFolderUnsafe(
11600        project: *mut BNProject,
11601        parent: *mut BNProjectFolder,
11602        name: *const ::std::os::raw::c_char,
11603        description: *const ::std::os::raw::c_char,
11604        id: *const ::std::os::raw::c_char,
11605    ) -> *mut BNProjectFolder;
11606}
11607unsafe extern "C" {
11608    pub fn BNProjectGetFolders(
11609        project: *mut BNProject,
11610        count: *mut usize,
11611    ) -> *mut *mut BNProjectFolder;
11612}
11613unsafe extern "C" {
11614    pub fn BNProjectGetFolderById(
11615        project: *mut BNProject,
11616        id: *const ::std::os::raw::c_char,
11617    ) -> *mut BNProjectFolder;
11618}
11619unsafe extern "C" {
11620    pub fn BNProjectPushFolder(project: *mut BNProject, folder: *mut BNProjectFolder) -> bool;
11621}
11622unsafe extern "C" {
11623    pub fn BNProjectDeleteFolder(
11624        project: *mut BNProject,
11625        folder: *mut BNProjectFolder,
11626        ctxt: *mut ::std::os::raw::c_void,
11627        progress: BNProgressFunction,
11628    ) -> bool;
11629}
11630unsafe extern "C" {
11631    pub fn BNProjectBeginBulkOperation(project: *mut BNProject) -> bool;
11632}
11633unsafe extern "C" {
11634    pub fn BNProjectEndBulkOperation(project: *mut BNProject) -> bool;
11635}
11636unsafe extern "C" {
11637    pub fn BNProjectGetRemoteProject(project: *mut BNProject) -> *mut BNRemoteProject;
11638}
11639unsafe extern "C" {
11640    #[doc = " ProjectFile object"]
11641    pub fn BNNewProjectFileReference(file: *mut BNProjectFile) -> *mut BNProjectFile;
11642}
11643unsafe extern "C" {
11644    pub fn BNFreeProjectFile(file: *mut BNProjectFile);
11645}
11646unsafe extern "C" {
11647    pub fn BNFreeProjectFileList(files: *mut *mut BNProjectFile, count: usize);
11648}
11649unsafe extern "C" {
11650    pub fn BNProjectFileGetPathOnDisk(file: *mut BNProjectFile) -> *mut ::std::os::raw::c_char;
11651}
11652unsafe extern "C" {
11653    pub fn BNProjectFileGetPathInProject(file: *const BNProjectFile)
11654    -> *mut ::std::os::raw::c_char;
11655}
11656unsafe extern "C" {
11657    pub fn BNProjectFileExistsOnDisk(file: *mut BNProjectFile) -> bool;
11658}
11659unsafe extern "C" {
11660    pub fn BNProjectFileGetName(file: *mut BNProjectFile) -> *mut ::std::os::raw::c_char;
11661}
11662unsafe extern "C" {
11663    pub fn BNProjectFileSetName(
11664        file: *mut BNProjectFile,
11665        name: *const ::std::os::raw::c_char,
11666    ) -> bool;
11667}
11668unsafe extern "C" {
11669    pub fn BNProjectFileGetDescription(file: *mut BNProjectFile) -> *mut ::std::os::raw::c_char;
11670}
11671unsafe extern "C" {
11672    pub fn BNProjectFileSetDescription(
11673        file: *mut BNProjectFile,
11674        description: *const ::std::os::raw::c_char,
11675    ) -> bool;
11676}
11677unsafe extern "C" {
11678    pub fn BNProjectFileGetId(file: *mut BNProjectFile) -> *mut ::std::os::raw::c_char;
11679}
11680unsafe extern "C" {
11681    pub fn BNProjectFileGetFolder(file: *mut BNProjectFile) -> *mut BNProjectFolder;
11682}
11683unsafe extern "C" {
11684    pub fn BNProjectFileSetFolder(file: *mut BNProjectFile, folder: *mut BNProjectFolder) -> bool;
11685}
11686unsafe extern "C" {
11687    pub fn BNProjectFileGetProject(file: *mut BNProjectFile) -> *mut BNProject;
11688}
11689unsafe extern "C" {
11690    pub fn BNProjectFileExport(
11691        file: *mut BNProjectFile,
11692        destination: *const ::std::os::raw::c_char,
11693    ) -> bool;
11694}
11695unsafe extern "C" {
11696    pub fn BNProjectFileGetCreationTimestamp(file: *mut BNProjectFile) -> i64;
11697}
11698unsafe extern "C" {
11699    pub fn BNProjectFileAddDependency(file: *mut BNProjectFile, dep: *mut BNProjectFile) -> bool;
11700}
11701unsafe extern "C" {
11702    pub fn BNProjectFileRemoveDependency(file: *mut BNProjectFile, dep: *mut BNProjectFile)
11703    -> bool;
11704}
11705unsafe extern "C" {
11706    pub fn BNProjectFileGetDependencies(
11707        file: *mut BNProjectFile,
11708        count: *mut usize,
11709    ) -> *mut *mut BNProjectFile;
11710}
11711unsafe extern "C" {
11712    pub fn BNProjectFileGetRequiredBy(
11713        file: *mut BNProjectFile,
11714        count: *mut usize,
11715    ) -> *mut *mut BNProjectFile;
11716}
11717unsafe extern "C" {
11718    #[doc = " ProjectFolder object"]
11719    pub fn BNNewProjectFolderReference(folder: *mut BNProjectFolder) -> *mut BNProjectFolder;
11720}
11721unsafe extern "C" {
11722    pub fn BNFreeProjectFolder(folder: *mut BNProjectFolder);
11723}
11724unsafe extern "C" {
11725    pub fn BNFreeProjectFolderList(folders: *mut *mut BNProjectFolder, count: usize);
11726}
11727unsafe extern "C" {
11728    pub fn BNProjectFolderGetId(folder: *mut BNProjectFolder) -> *mut ::std::os::raw::c_char;
11729}
11730unsafe extern "C" {
11731    pub fn BNProjectFolderGetName(folder: *mut BNProjectFolder) -> *mut ::std::os::raw::c_char;
11732}
11733unsafe extern "C" {
11734    pub fn BNProjectFolderSetName(
11735        folder: *mut BNProjectFolder,
11736        name: *const ::std::os::raw::c_char,
11737    ) -> bool;
11738}
11739unsafe extern "C" {
11740    pub fn BNProjectFolderGetDescription(
11741        folder: *mut BNProjectFolder,
11742    ) -> *mut ::std::os::raw::c_char;
11743}
11744unsafe extern "C" {
11745    pub fn BNProjectFolderSetDescription(
11746        folder: *mut BNProjectFolder,
11747        description: *const ::std::os::raw::c_char,
11748    ) -> bool;
11749}
11750unsafe extern "C" {
11751    pub fn BNProjectFolderGetParent(folder: *mut BNProjectFolder) -> *mut BNProjectFolder;
11752}
11753unsafe extern "C" {
11754    pub fn BNProjectFolderSetParent(
11755        folder: *mut BNProjectFolder,
11756        parent: *mut BNProjectFolder,
11757    ) -> bool;
11758}
11759unsafe extern "C" {
11760    pub fn BNProjectFolderGetProject(folder: *mut BNProjectFolder) -> *mut BNProject;
11761}
11762unsafe extern "C" {
11763    pub fn BNProjectFolderExport(
11764        folder: *mut BNProjectFolder,
11765        destination: *const ::std::os::raw::c_char,
11766        ctxt: *mut ::std::os::raw::c_void,
11767        progress: BNProgressFunction,
11768    ) -> bool;
11769}
11770unsafe extern "C" {
11771    pub fn BNProjectFolderGetFiles(
11772        folder: *mut BNProjectFolder,
11773        count: *mut usize,
11774    ) -> *mut *mut BNProjectFile;
11775}
11776unsafe extern "C" {
11777    #[doc = " ExternalLibrary object"]
11778    pub fn BNNewExternalLibraryReference(lib: *mut BNExternalLibrary) -> *mut BNExternalLibrary;
11779}
11780unsafe extern "C" {
11781    pub fn BNFreeExternalLibrary(lib: *mut BNExternalLibrary);
11782}
11783unsafe extern "C" {
11784    pub fn BNFreeExternalLibraryList(libs: *mut *mut BNExternalLibrary, count: usize);
11785}
11786unsafe extern "C" {
11787    pub fn BNExternalLibraryGetName(lib: *mut BNExternalLibrary) -> *mut ::std::os::raw::c_char;
11788}
11789unsafe extern "C" {
11790    pub fn BNExternalLibrarySetBackingFile(lib: *mut BNExternalLibrary, file: *mut BNProjectFile);
11791}
11792unsafe extern "C" {
11793    pub fn BNExternalLibraryGetBackingFile(lib: *mut BNExternalLibrary) -> *mut BNProjectFile;
11794}
11795unsafe extern "C" {
11796    #[doc = " ExternalLocation object"]
11797    pub fn BNNewExternalLocationReference(loc: *mut BNExternalLocation) -> *mut BNExternalLocation;
11798}
11799unsafe extern "C" {
11800    pub fn BNFreeExternalLocation(loc: *mut BNExternalLocation);
11801}
11802unsafe extern "C" {
11803    pub fn BNFreeExternalLocationList(locs: *mut *mut BNExternalLocation, count: usize);
11804}
11805unsafe extern "C" {
11806    pub fn BNExternalLocationGetSourceSymbol(loc: *mut BNExternalLocation) -> *mut BNSymbol;
11807}
11808unsafe extern "C" {
11809    pub fn BNExternalLocationGetTargetAddress(loc: *mut BNExternalLocation) -> u64;
11810}
11811unsafe extern "C" {
11812    pub fn BNExternalLocationGetTargetSymbol(
11813        loc: *mut BNExternalLocation,
11814    ) -> *mut ::std::os::raw::c_char;
11815}
11816unsafe extern "C" {
11817    pub fn BNExternalLocationGetExternalLibrary(
11818        loc: *mut BNExternalLocation,
11819    ) -> *mut BNExternalLibrary;
11820}
11821unsafe extern "C" {
11822    pub fn BNExternalLocationHasTargetAddress(loc: *mut BNExternalLocation) -> bool;
11823}
11824unsafe extern "C" {
11825    pub fn BNExternalLocationHasTargetSymbol(loc: *mut BNExternalLocation) -> bool;
11826}
11827unsafe extern "C" {
11828    pub fn BNExternalLocationSetTargetAddress(
11829        loc: *mut BNExternalLocation,
11830        address: *mut u64,
11831    ) -> bool;
11832}
11833unsafe extern "C" {
11834    pub fn BNExternalLocationSetTargetSymbol(
11835        loc: *mut BNExternalLocation,
11836        symbol: *const ::std::os::raw::c_char,
11837    ) -> bool;
11838}
11839unsafe extern "C" {
11840    pub fn BNExternalLocationSetExternalLibrary(
11841        loc: *mut BNExternalLocation,
11842        library: *mut BNExternalLibrary,
11843    );
11844}
11845unsafe extern "C" {
11846    #[doc = " Database object"]
11847    pub fn BNNewDatabaseReference(database: *mut BNDatabase) -> *mut BNDatabase;
11848}
11849unsafe extern "C" {
11850    pub fn BNFreeDatabase(database: *mut BNDatabase);
11851}
11852unsafe extern "C" {
11853    pub fn BNSetDatabaseCurrentSnapshot(database: *mut BNDatabase, id: i64);
11854}
11855unsafe extern "C" {
11856    pub fn BNGetDatabaseCurrentSnapshot(database: *mut BNDatabase) -> *mut BNSnapshot;
11857}
11858unsafe extern "C" {
11859    pub fn BNGetDatabaseSnapshots(
11860        database: *mut BNDatabase,
11861        count: *mut usize,
11862    ) -> *mut *mut BNSnapshot;
11863}
11864unsafe extern "C" {
11865    pub fn BNGetDatabaseSnapshot(database: *mut BNDatabase, id: i64) -> *mut BNSnapshot;
11866}
11867unsafe extern "C" {
11868    pub fn BNWriteDatabaseSnapshotData(
11869        database: *mut BNDatabase,
11870        parents: *mut i64,
11871        parentCount: usize,
11872        file: *mut BNBinaryView,
11873        name: *const ::std::os::raw::c_char,
11874        data: *mut BNKeyValueStore,
11875        autoSave: bool,
11876        ctxt: *mut ::std::os::raw::c_void,
11877        progress: BNProgressFunction,
11878    ) -> i64;
11879}
11880unsafe extern "C" {
11881    pub fn BNTrimDatabaseSnapshot(database: *mut BNDatabase, id: i64) -> bool;
11882}
11883unsafe extern "C" {
11884    pub fn BNRemoveDatabaseSnapshot(database: *mut BNDatabase, id: i64) -> bool;
11885}
11886unsafe extern "C" {
11887    pub fn BNGetDatabaseGlobalKeys(
11888        database: *mut BNDatabase,
11889        count: *mut usize,
11890    ) -> *mut *mut ::std::os::raw::c_char;
11891}
11892unsafe extern "C" {
11893    pub fn BNDatabaseHasGlobal(
11894        database: *mut BNDatabase,
11895        key: *const ::std::os::raw::c_char,
11896    ) -> ::std::os::raw::c_int;
11897}
11898unsafe extern "C" {
11899    pub fn BNReadDatabaseGlobal(
11900        database: *mut BNDatabase,
11901        key: *const ::std::os::raw::c_char,
11902    ) -> *mut ::std::os::raw::c_char;
11903}
11904unsafe extern "C" {
11905    pub fn BNWriteDatabaseGlobal(
11906        database: *mut BNDatabase,
11907        key: *const ::std::os::raw::c_char,
11908        val: *const ::std::os::raw::c_char,
11909    ) -> bool;
11910}
11911unsafe extern "C" {
11912    pub fn BNReadDatabaseGlobalData(
11913        database: *mut BNDatabase,
11914        key: *const ::std::os::raw::c_char,
11915    ) -> *mut BNDataBuffer;
11916}
11917unsafe extern "C" {
11918    pub fn BNWriteDatabaseGlobalData(
11919        database: *mut BNDatabase,
11920        key: *const ::std::os::raw::c_char,
11921        val: *mut BNDataBuffer,
11922    ) -> bool;
11923}
11924unsafe extern "C" {
11925    pub fn BNGetDatabaseFile(database: *mut BNDatabase) -> *mut BNFileMetadata;
11926}
11927unsafe extern "C" {
11928    pub fn BNDatabaseReloadConnection(database: *mut BNDatabase);
11929}
11930unsafe extern "C" {
11931    pub fn BNReadDatabaseAnalysisCache(database: *mut BNDatabase) -> *mut BNKeyValueStore;
11932}
11933unsafe extern "C" {
11934    pub fn BNWriteDatabaseAnalysisCache(
11935        database: *mut BNDatabase,
11936        val: *mut BNKeyValueStore,
11937    ) -> bool;
11938}
11939unsafe extern "C" {
11940    pub fn BNSnapshotHasData(db: *mut BNDatabase, id: i64) -> bool;
11941}
11942unsafe extern "C" {
11943    #[doc = " Database snapshots"]
11944    pub fn BNNewSnapshotReference(snapshot: *mut BNSnapshot) -> *mut BNSnapshot;
11945}
11946unsafe extern "C" {
11947    pub fn BNFreeSnapshot(snapshot: *mut BNSnapshot);
11948}
11949unsafe extern "C" {
11950    pub fn BNFreeSnapshotList(snapshots: *mut *mut BNSnapshot, count: usize);
11951}
11952unsafe extern "C" {
11953    pub fn BNGetSnapshotDatabase(snapshot: *mut BNSnapshot) -> *mut BNDatabase;
11954}
11955unsafe extern "C" {
11956    pub fn BNGetSnapshotId(snapshot: *mut BNSnapshot) -> i64;
11957}
11958unsafe extern "C" {
11959    pub fn BNGetSnapshotFirstParent(snapshot: *mut BNSnapshot) -> *mut BNSnapshot;
11960}
11961unsafe extern "C" {
11962    pub fn BNGetSnapshotParents(
11963        snapshot: *mut BNSnapshot,
11964        count: *mut usize,
11965    ) -> *mut *mut BNSnapshot;
11966}
11967unsafe extern "C" {
11968    pub fn BNGetSnapshotChildren(
11969        snapshot: *mut BNSnapshot,
11970        count: *mut usize,
11971    ) -> *mut *mut BNSnapshot;
11972}
11973unsafe extern "C" {
11974    pub fn BNGetSnapshotName(snapshot: *mut BNSnapshot) -> *mut ::std::os::raw::c_char;
11975}
11976unsafe extern "C" {
11977    pub fn BNSetSnapshotName(snapshot: *mut BNSnapshot, name: *const ::std::os::raw::c_char);
11978}
11979unsafe extern "C" {
11980    pub fn BNIsSnapshotAutoSave(snapshot: *mut BNSnapshot) -> bool;
11981}
11982unsafe extern "C" {
11983    pub fn BNSnapshotHasContents(snapshot: *mut BNSnapshot) -> bool;
11984}
11985unsafe extern "C" {
11986    pub fn BNSnapshotHasUndo(snapshot: *mut BNSnapshot) -> bool;
11987}
11988unsafe extern "C" {
11989    pub fn BNGetSnapshotFileContents(snapshot: *mut BNSnapshot) -> *mut BNDataBuffer;
11990}
11991unsafe extern "C" {
11992    pub fn BNGetSnapshotFileContentsHash(snapshot: *mut BNSnapshot) -> *mut BNDataBuffer;
11993}
11994unsafe extern "C" {
11995    pub fn BNReadSnapshotData(snapshot: *mut BNSnapshot) -> *mut BNKeyValueStore;
11996}
11997unsafe extern "C" {
11998    pub fn BNReadSnapshotDataWithProgress(
11999        snapshot: *mut BNSnapshot,
12000        ctxt: *mut ::std::os::raw::c_void,
12001        progress: BNProgressFunction,
12002    ) -> *mut BNKeyValueStore;
12003}
12004unsafe extern "C" {
12005    pub fn BNGetSnapshotUndoData(snapshot: *mut BNSnapshot) -> *mut BNDataBuffer;
12006}
12007unsafe extern "C" {
12008    pub fn BNGetSnapshotUndoEntries(
12009        snapshot: *mut BNSnapshot,
12010        count: *mut usize,
12011    ) -> *mut *mut BNUndoEntry;
12012}
12013unsafe extern "C" {
12014    pub fn BNGetSnapshotUndoEntriesWithProgress(
12015        snapshot: *mut BNSnapshot,
12016        ctxt: *mut ::std::os::raw::c_void,
12017        progress: BNProgressFunction,
12018        count: *mut usize,
12019    ) -> *mut *mut BNUndoEntry;
12020}
12021unsafe extern "C" {
12022    pub fn BNSnapshotHasAncestor(snapshot: *mut BNSnapshot, other: *mut BNSnapshot) -> bool;
12023}
12024unsafe extern "C" {
12025    pub fn BNSnapshotStoreData(
12026        snapshot: *mut BNSnapshot,
12027        data: *mut BNKeyValueStore,
12028        ctxt: *mut ::std::os::raw::c_void,
12029        progress: BNProgressFunction,
12030    ) -> bool;
12031}
12032unsafe extern "C" {
12033    #[doc = " Undo actions"]
12034    pub fn BNNewUndoActionReference(action: *mut BNUndoAction) -> *mut BNUndoAction;
12035}
12036unsafe extern "C" {
12037    pub fn BNFreeUndoAction(action: *mut BNUndoAction);
12038}
12039unsafe extern "C" {
12040    pub fn BNFreeUndoActionList(actions: *mut *mut BNUndoAction, count: usize);
12041}
12042unsafe extern "C" {
12043    pub fn BNUndoActionGetSummaryText(action: *mut BNUndoAction) -> *mut ::std::os::raw::c_char;
12044}
12045unsafe extern "C" {
12046    pub fn BNUndoActionGetSummary(
12047        action: *mut BNUndoAction,
12048        tokenCount: *mut usize,
12049    ) -> *mut BNInstructionTextToken;
12050}
12051unsafe extern "C" {
12052    #[doc = " Undo entries"]
12053    pub fn BNNewUndoEntryReference(entry: *mut BNUndoEntry) -> *mut BNUndoEntry;
12054}
12055unsafe extern "C" {
12056    pub fn BNFreeUndoEntry(entry: *mut BNUndoEntry);
12057}
12058unsafe extern "C" {
12059    pub fn BNFreeUndoEntryList(entrys: *mut *mut BNUndoEntry, count: usize);
12060}
12061unsafe extern "C" {
12062    pub fn BNUndoEntryGetId(entry: *mut BNUndoEntry) -> *mut ::std::os::raw::c_char;
12063}
12064unsafe extern "C" {
12065    pub fn BNUndoEntryGetActions(
12066        entry: *mut BNUndoEntry,
12067        count: *mut usize,
12068    ) -> *mut *mut BNUndoAction;
12069}
12070unsafe extern "C" {
12071    pub fn BNUndoEntryGetTimestamp(entry: *mut BNUndoEntry) -> u64;
12072}
12073unsafe extern "C" {
12074    pub fn BNRebase(data: *mut BNBinaryView, address: u64) -> bool;
12075}
12076unsafe extern "C" {
12077    pub fn BNRebaseWithProgress(
12078        data: *mut BNBinaryView,
12079        address: u64,
12080        ctxt: *mut ::std::os::raw::c_void,
12081        progress: BNProgressFunction,
12082    ) -> bool;
12083}
12084unsafe extern "C" {
12085    pub fn BNCreateSnapshotedView(
12086        data: *mut BNBinaryView,
12087        viewName: *const ::std::os::raw::c_char,
12088    ) -> bool;
12089}
12090unsafe extern "C" {
12091    pub fn BNCreateSnapshotedViewWithProgress(
12092        data: *mut BNBinaryView,
12093        viewName: *const ::std::os::raw::c_char,
12094        ctxt: *mut ::std::os::raw::c_void,
12095        progress: BNProgressFunction,
12096    ) -> bool;
12097}
12098unsafe extern "C" {
12099    pub fn BNGetOriginalFilename(file: *mut BNFileMetadata) -> *mut ::std::os::raw::c_char;
12100}
12101unsafe extern "C" {
12102    pub fn BNSetOriginalFilename(file: *mut BNFileMetadata, name: *const ::std::os::raw::c_char);
12103}
12104unsafe extern "C" {
12105    pub fn BNGetFilename(file: *mut BNFileMetadata) -> *mut ::std::os::raw::c_char;
12106}
12107unsafe extern "C" {
12108    pub fn BNSetFilename(file: *mut BNFileMetadata, name: *const ::std::os::raw::c_char);
12109}
12110unsafe extern "C" {
12111    pub fn BNGetVirtualPath(file: *mut BNFileMetadata) -> *mut ::std::os::raw::c_char;
12112}
12113unsafe extern "C" {
12114    pub fn BNSetVirtualPath(file: *mut BNFileMetadata, path: *const ::std::os::raw::c_char);
12115}
12116unsafe extern "C" {
12117    pub fn BNGetDisplayName(file: *mut BNFileMetadata) -> *mut ::std::os::raw::c_char;
12118}
12119unsafe extern "C" {
12120    pub fn BNSetDisplayName(file: *mut BNFileMetadata, name: *const ::std::os::raw::c_char);
12121}
12122unsafe extern "C" {
12123    pub fn BNGetProjectFile(file: *mut BNFileMetadata) -> *mut BNProjectFile;
12124}
12125unsafe extern "C" {
12126    pub fn BNSetProjectFile(file: *mut BNFileMetadata, pfile: *mut BNProjectFile);
12127}
12128unsafe extern "C" {
12129    pub fn BNBeginUndoActions(
12130        file: *mut BNFileMetadata,
12131        anonymousAllowed: bool,
12132    ) -> *mut ::std::os::raw::c_char;
12133}
12134unsafe extern "C" {
12135    pub fn BNCommitUndoActions(file: *mut BNFileMetadata, id: *const ::std::os::raw::c_char);
12136}
12137unsafe extern "C" {
12138    pub fn BNRevertUndoActions(file: *mut BNFileMetadata, id: *const ::std::os::raw::c_char);
12139}
12140unsafe extern "C" {
12141    pub fn BNForgetUndoActions(file: *mut BNFileMetadata, id: *const ::std::os::raw::c_char);
12142}
12143unsafe extern "C" {
12144    pub fn BNCanUndo(file: *mut BNFileMetadata) -> bool;
12145}
12146unsafe extern "C" {
12147    pub fn BNUndo(file: *mut BNFileMetadata) -> bool;
12148}
12149unsafe extern "C" {
12150    pub fn BNCanRedo(file: *mut BNFileMetadata) -> bool;
12151}
12152unsafe extern "C" {
12153    pub fn BNRedo(file: *mut BNFileMetadata) -> bool;
12154}
12155unsafe extern "C" {
12156    pub fn BNGetUndoEntries(file: *mut BNFileMetadata, count: *mut usize) -> *mut *mut BNUndoEntry;
12157}
12158unsafe extern "C" {
12159    pub fn BNGetRedoEntries(file: *mut BNFileMetadata, count: *mut usize) -> *mut *mut BNUndoEntry;
12160}
12161unsafe extern "C" {
12162    pub fn BNGetLastUndoEntry(file: *mut BNFileMetadata) -> *mut BNUndoEntry;
12163}
12164unsafe extern "C" {
12165    pub fn BNGetLastRedoEntry(file: *mut BNFileMetadata) -> *mut BNUndoEntry;
12166}
12167unsafe extern "C" {
12168    pub fn BNGetLastUndoEntryTitle(file: *mut BNFileMetadata) -> *mut ::std::os::raw::c_char;
12169}
12170unsafe extern "C" {
12171    pub fn BNGetLastRedoEntryTitle(file: *mut BNFileMetadata) -> *mut ::std::os::raw::c_char;
12172}
12173unsafe extern "C" {
12174    pub fn BNFreeUndoEntries(entries: *mut *mut BNUndoEntry, count: usize);
12175}
12176unsafe extern "C" {
12177    pub fn BNClearUndoEntries(file: *mut BNFileMetadata);
12178}
12179unsafe extern "C" {
12180    pub fn BNNewUserReference(user: *mut BNUser) -> *mut BNUser;
12181}
12182unsafe extern "C" {
12183    pub fn BNFreeUser(user: *mut BNUser);
12184}
12185unsafe extern "C" {
12186    pub fn BNGetUsers(file: *mut BNFileMetadata, count: *mut usize) -> *mut *mut BNUser;
12187}
12188unsafe extern "C" {
12189    pub fn BNFreeUserList(users: *mut *mut BNUser, count: usize);
12190}
12191unsafe extern "C" {
12192    pub fn BNGetUserName(user: *mut BNUser) -> *mut ::std::os::raw::c_char;
12193}
12194unsafe extern "C" {
12195    pub fn BNGetUserEmail(user: *mut BNUser) -> *mut ::std::os::raw::c_char;
12196}
12197unsafe extern "C" {
12198    pub fn BNGetUserId(user: *mut BNUser) -> *mut ::std::os::raw::c_char;
12199}
12200unsafe extern "C" {
12201    pub fn BNGetCurrentView(file: *mut BNFileMetadata) -> *mut ::std::os::raw::c_char;
12202}
12203unsafe extern "C" {
12204    pub fn BNGetCurrentOffset(file: *mut BNFileMetadata) -> u64;
12205}
12206unsafe extern "C" {
12207    pub fn BNNavigate(
12208        file: *mut BNFileMetadata,
12209        view: *const ::std::os::raw::c_char,
12210        offset: u64,
12211    ) -> bool;
12212}
12213unsafe extern "C" {
12214    pub fn BNGetFileViewOfType(
12215        file: *mut BNFileMetadata,
12216        name: *const ::std::os::raw::c_char,
12217    ) -> *mut BNBinaryView;
12218}
12219unsafe extern "C" {
12220    pub fn BNGetExistingViews(
12221        file: *mut BNFileMetadata,
12222        count: *mut usize,
12223    ) -> *mut *mut ::std::os::raw::c_char;
12224}
12225unsafe extern "C" {
12226    pub fn BNFileMetadataGetSessionId(file: *mut BNFileMetadata) -> usize;
12227}
12228unsafe extern "C" {
12229    pub fn BNIsSnapshotDataAppliedWithoutError(view: *mut BNFileMetadata) -> bool;
12230}
12231unsafe extern "C" {
12232    pub fn BNUnregisterViewOfType(
12233        file: *mut BNFileMetadata,
12234        type_: *const ::std::os::raw::c_char,
12235        view: *mut BNBinaryView,
12236    );
12237}
12238unsafe extern "C" {
12239    #[doc = " Memory Map"]
12240    pub fn BNGetBaseMemoryMapDescription(view: *mut BNBinaryView) -> *mut ::std::os::raw::c_char;
12241}
12242unsafe extern "C" {
12243    pub fn BNGetMemoryMapDescription(view: *mut BNBinaryView) -> *mut ::std::os::raw::c_char;
12244}
12245unsafe extern "C" {
12246    pub fn BNSetLogicalMemoryMapEnabled(view: *mut BNBinaryView, enabled: bool);
12247}
12248unsafe extern "C" {
12249    pub fn BNIsMemoryMapActivated(view: *mut BNBinaryView) -> bool;
12250}
12251unsafe extern "C" {
12252    pub fn BNAddBinaryMemoryRegion(
12253        view: *mut BNBinaryView,
12254        name: *const ::std::os::raw::c_char,
12255        start: u64,
12256        data: *mut BNBinaryView,
12257        flags: u32,
12258    ) -> bool;
12259}
12260unsafe extern "C" {
12261    pub fn BNAddDataMemoryRegion(
12262        view: *mut BNBinaryView,
12263        name: *const ::std::os::raw::c_char,
12264        start: u64,
12265        data: *mut BNDataBuffer,
12266        flags: u32,
12267    ) -> bool;
12268}
12269unsafe extern "C" {
12270    pub fn BNAddUnbackedMemoryRegion(
12271        view: *mut BNBinaryView,
12272        name: *const ::std::os::raw::c_char,
12273        start: u64,
12274        length: u64,
12275        flags: u32,
12276        fill: u8,
12277    ) -> bool;
12278}
12279unsafe extern "C" {
12280    pub fn BNAddRemoteMemoryRegion(
12281        view: *mut BNBinaryView,
12282        name: *const ::std::os::raw::c_char,
12283        start: u64,
12284        accessor: *mut BNFileAccessor,
12285        flags: u32,
12286    ) -> bool;
12287}
12288unsafe extern "C" {
12289    pub fn BNRemoveMemoryRegion(
12290        view: *mut BNBinaryView,
12291        name: *const ::std::os::raw::c_char,
12292    ) -> bool;
12293}
12294unsafe extern "C" {
12295    pub fn BNGetActiveMemoryRegionAt(
12296        view: *mut BNBinaryView,
12297        addr: u64,
12298    ) -> *mut ::std::os::raw::c_char;
12299}
12300unsafe extern "C" {
12301    pub fn BNGetMemoryRegionFlags(
12302        view: *mut BNBinaryView,
12303        name: *const ::std::os::raw::c_char,
12304    ) -> u32;
12305}
12306unsafe extern "C" {
12307    pub fn BNSetMemoryRegionFlags(
12308        view: *mut BNBinaryView,
12309        name: *const ::std::os::raw::c_char,
12310        flags: u32,
12311    ) -> bool;
12312}
12313unsafe extern "C" {
12314    pub fn BNIsMemoryRegionEnabled(
12315        view: *mut BNBinaryView,
12316        name: *const ::std::os::raw::c_char,
12317    ) -> bool;
12318}
12319unsafe extern "C" {
12320    pub fn BNSetMemoryRegionEnabled(
12321        view: *mut BNBinaryView,
12322        name: *const ::std::os::raw::c_char,
12323        enable: bool,
12324    ) -> bool;
12325}
12326unsafe extern "C" {
12327    pub fn BNIsMemoryRegionRebaseable(
12328        view: *mut BNBinaryView,
12329        name: *const ::std::os::raw::c_char,
12330    ) -> bool;
12331}
12332unsafe extern "C" {
12333    pub fn BNSetMemoryRegionRebaseable(
12334        view: *mut BNBinaryView,
12335        name: *const ::std::os::raw::c_char,
12336        rebaseable: bool,
12337    ) -> bool;
12338}
12339unsafe extern "C" {
12340    pub fn BNGetMemoryRegionFill(
12341        view: *mut BNBinaryView,
12342        name: *const ::std::os::raw::c_char,
12343    ) -> u8;
12344}
12345unsafe extern "C" {
12346    pub fn BNSetMemoryRegionFill(
12347        view: *mut BNBinaryView,
12348        name: *const ::std::os::raw::c_char,
12349        fill: u8,
12350    ) -> bool;
12351}
12352unsafe extern "C" {
12353    pub fn BNGetMemoryRegionDisplayName(
12354        view: *mut BNBinaryView,
12355        name: *const ::std::os::raw::c_char,
12356    ) -> *mut ::std::os::raw::c_char;
12357}
12358unsafe extern "C" {
12359    pub fn BNSetMemoryRegionDisplayName(
12360        view: *mut BNBinaryView,
12361        name: *const ::std::os::raw::c_char,
12362        displayName: *const ::std::os::raw::c_char,
12363    ) -> bool;
12364}
12365unsafe extern "C" {
12366    pub fn BNIsMemoryRegionLocal(
12367        view: *mut BNBinaryView,
12368        name: *const ::std::os::raw::c_char,
12369    ) -> bool;
12370}
12371unsafe extern "C" {
12372    pub fn BNGetMemoryRegionInfo(
12373        view: *mut BNBinaryView,
12374        name: *const ::std::os::raw::c_char,
12375        result: *mut BNMemoryRegionInfo,
12376    ) -> bool;
12377}
12378unsafe extern "C" {
12379    pub fn BNGetActiveMemoryRegionInfoAt(
12380        view: *mut BNBinaryView,
12381        addr: u64,
12382        result: *mut BNMemoryRegionInfo,
12383    ) -> bool;
12384}
12385unsafe extern "C" {
12386    pub fn BNGetResolvedMemoryRangeAt(
12387        view: *mut BNBinaryView,
12388        addr: u64,
12389        result: *mut BNResolvedMemoryRange,
12390    ) -> bool;
12391}
12392unsafe extern "C" {
12393    pub fn BNFreeMemoryRegionInfo(info: *mut BNMemoryRegionInfo);
12394}
12395unsafe extern "C" {
12396    pub fn BNFreeResolvedMemoryRange(range: *mut BNResolvedMemoryRange);
12397}
12398unsafe extern "C" {
12399    pub fn BNGetMemoryRegions(
12400        view: *mut BNBinaryView,
12401        count: *mut usize,
12402    ) -> *mut BNMemoryRegionInfo;
12403}
12404unsafe extern "C" {
12405    pub fn BNFreeMemoryRegions(regions: *mut BNMemoryRegionInfo, count: usize);
12406}
12407unsafe extern "C" {
12408    pub fn BNGetResolvedMemoryRanges(
12409        view: *mut BNBinaryView,
12410        count: *mut usize,
12411    ) -> *mut BNResolvedMemoryRange;
12412}
12413unsafe extern "C" {
12414    pub fn BNFreeResolvedMemoryRanges(ranges: *mut BNResolvedMemoryRange, count: usize);
12415}
12416unsafe extern "C" {
12417    pub fn BNResetMemoryMap(view: *mut BNBinaryView);
12418}
12419unsafe extern "C" {
12420    #[doc = " Binary view access"]
12421    pub fn BNNewViewReference(view: *mut BNBinaryView) -> *mut BNBinaryView;
12422}
12423unsafe extern "C" {
12424    pub fn BNFreeBinaryView(view: *mut BNBinaryView);
12425}
12426unsafe extern "C" {
12427    pub fn BNGetFileForView(view: *mut BNBinaryView) -> *mut BNFileMetadata;
12428}
12429unsafe extern "C" {
12430    pub fn BNGetViewType(view: *mut BNBinaryView) -> *mut ::std::os::raw::c_char;
12431}
12432unsafe extern "C" {
12433    pub fn BNGetParentView(view: *mut BNBinaryView) -> *mut BNBinaryView;
12434}
12435unsafe extern "C" {
12436    pub fn BNReadViewData(
12437        view: *mut BNBinaryView,
12438        dest: *mut ::std::os::raw::c_void,
12439        offset: u64,
12440        len: usize,
12441    ) -> usize;
12442}
12443unsafe extern "C" {
12444    pub fn BNReadViewBuffer(view: *mut BNBinaryView, offset: u64, len: usize) -> *mut BNDataBuffer;
12445}
12446unsafe extern "C" {
12447    pub fn BNGetViewDataPointer(view: *mut BNBinaryView) -> *const u8;
12448}
12449unsafe extern "C" {
12450    pub fn BNGetViewDataLength(view: *mut BNBinaryView) -> usize;
12451}
12452unsafe extern "C" {
12453    pub fn BNWriteViewData(
12454        view: *mut BNBinaryView,
12455        offset: u64,
12456        data: *const ::std::os::raw::c_void,
12457        len: usize,
12458    ) -> usize;
12459}
12460unsafe extern "C" {
12461    pub fn BNWriteViewBuffer(
12462        view: *mut BNBinaryView,
12463        offset: u64,
12464        data: *mut BNDataBuffer,
12465    ) -> usize;
12466}
12467unsafe extern "C" {
12468    pub fn BNInsertViewData(
12469        view: *mut BNBinaryView,
12470        offset: u64,
12471        data: *const ::std::os::raw::c_void,
12472        len: usize,
12473    ) -> usize;
12474}
12475unsafe extern "C" {
12476    pub fn BNInsertViewBuffer(
12477        view: *mut BNBinaryView,
12478        offset: u64,
12479        data: *mut BNDataBuffer,
12480    ) -> usize;
12481}
12482unsafe extern "C" {
12483    pub fn BNRemoveViewData(view: *mut BNBinaryView, offset: u64, len: u64) -> usize;
12484}
12485unsafe extern "C" {
12486    pub fn BNNotifyDataWritten(view: *mut BNBinaryView, offset: u64, len: usize);
12487}
12488unsafe extern "C" {
12489    pub fn BNNotifyDataInserted(view: *mut BNBinaryView, offset: u64, len: usize);
12490}
12491unsafe extern "C" {
12492    pub fn BNNotifyDataRemoved(view: *mut BNBinaryView, offset: u64, len: u64);
12493}
12494unsafe extern "C" {
12495    pub fn BNGetEntropy(
12496        view: *mut BNBinaryView,
12497        offset: u64,
12498        len: usize,
12499        blockSize: usize,
12500        result: *mut f32,
12501    ) -> usize;
12502}
12503unsafe extern "C" {
12504    pub fn BNGetModification(view: *mut BNBinaryView, offset: u64) -> BNModificationStatus;
12505}
12506unsafe extern "C" {
12507    pub fn BNGetModificationArray(
12508        view: *mut BNBinaryView,
12509        offset: u64,
12510        result: *mut BNModificationStatus,
12511        len: usize,
12512    ) -> usize;
12513}
12514unsafe extern "C" {
12515    pub fn BNIsValidOffset(view: *mut BNBinaryView, offset: u64) -> bool;
12516}
12517unsafe extern "C" {
12518    pub fn BNIsOffsetReadable(view: *mut BNBinaryView, offset: u64) -> bool;
12519}
12520unsafe extern "C" {
12521    pub fn BNIsOffsetWritable(view: *mut BNBinaryView, offset: u64) -> bool;
12522}
12523unsafe extern "C" {
12524    pub fn BNIsOffsetExecutable(view: *mut BNBinaryView, offset: u64) -> bool;
12525}
12526unsafe extern "C" {
12527    pub fn BNIsOffsetBackedByFile(view: *mut BNBinaryView, offset: u64) -> bool;
12528}
12529unsafe extern "C" {
12530    pub fn BNIsOffsetCodeSemantics(view: *mut BNBinaryView, offset: u64) -> bool;
12531}
12532unsafe extern "C" {
12533    pub fn BNIsOffsetExternSemantics(view: *mut BNBinaryView, offset: u64) -> bool;
12534}
12535unsafe extern "C" {
12536    pub fn BNIsOffsetWritableSemantics(view: *mut BNBinaryView, offset: u64) -> bool;
12537}
12538unsafe extern "C" {
12539    pub fn BNIsOffsetReadOnlySemantics(view: *mut BNBinaryView, offset: u64) -> bool;
12540}
12541unsafe extern "C" {
12542    pub fn BNGetNextValidOffset(view: *mut BNBinaryView, offset: u64) -> u64;
12543}
12544unsafe extern "C" {
12545    pub fn BNGetImageBase(view: *mut BNBinaryView) -> u64;
12546}
12547unsafe extern "C" {
12548    pub fn BNGetOriginalImageBase(view: *mut BNBinaryView) -> u64;
12549}
12550unsafe extern "C" {
12551    pub fn BNSetOriginalImageBase(view: *mut BNBinaryView, imageBase: u64);
12552}
12553unsafe extern "C" {
12554    pub fn BNGetStartOffset(view: *mut BNBinaryView) -> u64;
12555}
12556unsafe extern "C" {
12557    pub fn BNGetEndOffset(view: *mut BNBinaryView) -> u64;
12558}
12559unsafe extern "C" {
12560    pub fn BNGetViewLength(view: *mut BNBinaryView) -> u64;
12561}
12562unsafe extern "C" {
12563    pub fn BNGetEntryPoint(view: *mut BNBinaryView) -> u64;
12564}
12565unsafe extern "C" {
12566    pub fn BNGetDefaultArchitecture(view: *mut BNBinaryView) -> *mut BNArchitecture;
12567}
12568unsafe extern "C" {
12569    pub fn BNSetDefaultArchitecture(view: *mut BNBinaryView, arch: *mut BNArchitecture);
12570}
12571unsafe extern "C" {
12572    pub fn BNGetDefaultPlatform(view: *mut BNBinaryView) -> *mut BNPlatform;
12573}
12574unsafe extern "C" {
12575    pub fn BNSetDefaultPlatform(view: *mut BNBinaryView, platform: *mut BNPlatform);
12576}
12577unsafe extern "C" {
12578    pub fn BNGetDefaultEndianness(view: *mut BNBinaryView) -> BNEndianness;
12579}
12580unsafe extern "C" {
12581    pub fn BNIsRelocatable(view: *mut BNBinaryView) -> bool;
12582}
12583unsafe extern "C" {
12584    pub fn BNGetViewAddressSize(view: *mut BNBinaryView) -> usize;
12585}
12586unsafe extern "C" {
12587    pub fn BNIsViewModified(view: *mut BNBinaryView) -> bool;
12588}
12589unsafe extern "C" {
12590    pub fn BNIsExecutableView(view: *mut BNBinaryView) -> bool;
12591}
12592unsafe extern "C" {
12593    pub fn BNSaveToFile(view: *mut BNBinaryView, file: *mut BNFileAccessor) -> bool;
12594}
12595unsafe extern "C" {
12596    pub fn BNSaveToFilename(
12597        view: *mut BNBinaryView,
12598        filename: *const ::std::os::raw::c_char,
12599    ) -> bool;
12600}
12601unsafe extern "C" {
12602    pub fn BNDefineRelocation(
12603        view: *mut BNBinaryView,
12604        arch: *mut BNArchitecture,
12605        info: *mut BNRelocationInfo,
12606        target: u64,
12607        reloc: u64,
12608    );
12609}
12610unsafe extern "C" {
12611    pub fn BNDefineSymbolRelocation(
12612        view: *mut BNBinaryView,
12613        arch: *mut BNArchitecture,
12614        info: *mut BNRelocationInfo,
12615        target: *mut BNSymbol,
12616        reloc: u64,
12617    );
12618}
12619unsafe extern "C" {
12620    pub fn BNGetRelocationRanges(view: *mut BNBinaryView, count: *mut usize) -> *mut BNRange;
12621}
12622unsafe extern "C" {
12623    pub fn BNGetRelocationRangesAtAddress(
12624        view: *mut BNBinaryView,
12625        addr: u64,
12626        count: *mut usize,
12627    ) -> *mut BNRange;
12628}
12629unsafe extern "C" {
12630    pub fn BNGetRelocationRangesInRange(
12631        view: *mut BNBinaryView,
12632        addr: u64,
12633        size: u64,
12634        count: *mut usize,
12635    ) -> *mut BNRange;
12636}
12637unsafe extern "C" {
12638    pub fn BNRangeContainsRelocation(view: *mut BNBinaryView, addr: u64, size: usize) -> bool;
12639}
12640unsafe extern "C" {
12641    pub fn BNGetRelocationsAt(
12642        view: *mut BNBinaryView,
12643        addr: u64,
12644        count: *mut usize,
12645    ) -> *mut *mut BNRelocation;
12646}
12647unsafe extern "C" {
12648    pub fn BNFreeRelocationList(relocations: *mut *mut BNRelocation, count: usize);
12649}
12650unsafe extern "C" {
12651    pub fn BNFreeRelocationRanges(ranges: *mut BNRange);
12652}
12653unsafe extern "C" {
12654    pub fn BNGetNextRelocation(
12655        view: *mut BNBinaryView,
12656        addr: u64,
12657        maxAddr: u64,
12658    ) -> *mut BNRelocation;
12659}
12660unsafe extern "C" {
12661    pub fn BNRegisterDataNotification(
12662        view: *mut BNBinaryView,
12663        notify: *mut BNBinaryDataNotification,
12664    );
12665}
12666unsafe extern "C" {
12667    pub fn BNUnregisterDataNotification(
12668        view: *mut BNBinaryView,
12669        notify: *mut BNBinaryDataNotification,
12670    );
12671}
12672unsafe extern "C" {
12673    pub fn BNRegisterProjectNotification(
12674        project: *mut BNProject,
12675        notify: *mut BNProjectNotification,
12676    );
12677}
12678unsafe extern "C" {
12679    pub fn BNUnregisterProjectNotification(
12680        project: *mut BNProject,
12681        notify: *mut BNProjectNotification,
12682    );
12683}
12684unsafe extern "C" {
12685    pub fn BNCanAssemble(view: *mut BNBinaryView, arch: *mut BNArchitecture) -> bool;
12686}
12687unsafe extern "C" {
12688    pub fn BNIsNeverBranchPatchAvailable(
12689        view: *mut BNBinaryView,
12690        arch: *mut BNArchitecture,
12691        addr: u64,
12692    ) -> bool;
12693}
12694unsafe extern "C" {
12695    pub fn BNIsAlwaysBranchPatchAvailable(
12696        view: *mut BNBinaryView,
12697        arch: *mut BNArchitecture,
12698        addr: u64,
12699    ) -> bool;
12700}
12701unsafe extern "C" {
12702    pub fn BNIsInvertBranchPatchAvailable(
12703        view: *mut BNBinaryView,
12704        arch: *mut BNArchitecture,
12705        addr: u64,
12706    ) -> bool;
12707}
12708unsafe extern "C" {
12709    pub fn BNIsSkipAndReturnZeroPatchAvailable(
12710        view: *mut BNBinaryView,
12711        arch: *mut BNArchitecture,
12712        addr: u64,
12713    ) -> bool;
12714}
12715unsafe extern "C" {
12716    pub fn BNIsSkipAndReturnValuePatchAvailable(
12717        view: *mut BNBinaryView,
12718        arch: *mut BNArchitecture,
12719        addr: u64,
12720    ) -> bool;
12721}
12722unsafe extern "C" {
12723    pub fn BNConvertToNop(view: *mut BNBinaryView, arch: *mut BNArchitecture, addr: u64) -> bool;
12724}
12725unsafe extern "C" {
12726    pub fn BNAlwaysBranch(view: *mut BNBinaryView, arch: *mut BNArchitecture, addr: u64) -> bool;
12727}
12728unsafe extern "C" {
12729    pub fn BNInvertBranch(view: *mut BNBinaryView, arch: *mut BNArchitecture, addr: u64) -> bool;
12730}
12731unsafe extern "C" {
12732    pub fn BNSkipAndReturnValue(
12733        view: *mut BNBinaryView,
12734        arch: *mut BNArchitecture,
12735        addr: u64,
12736        value: u64,
12737    ) -> bool;
12738}
12739unsafe extern "C" {
12740    pub fn BNGetInstructionLength(
12741        view: *mut BNBinaryView,
12742        arch: *mut BNArchitecture,
12743        addr: u64,
12744    ) -> usize;
12745}
12746unsafe extern "C" {
12747    pub fn BNFindNextData(
12748        view: *mut BNBinaryView,
12749        start: u64,
12750        data: *mut BNDataBuffer,
12751        result: *mut u64,
12752        flags: BNFindFlag,
12753    ) -> bool;
12754}
12755unsafe extern "C" {
12756    pub fn BNFindNextText(
12757        view: *mut BNBinaryView,
12758        start: u64,
12759        data: *const ::std::os::raw::c_char,
12760        result: *mut u64,
12761        settings: *mut BNDisassemblySettings,
12762        flags: BNFindFlag,
12763        viewType: BNFunctionViewType,
12764    ) -> bool;
12765}
12766unsafe extern "C" {
12767    pub fn BNFindNextConstant(
12768        view: *mut BNBinaryView,
12769        start: u64,
12770        constant: u64,
12771        result: *mut u64,
12772        settings: *mut BNDisassemblySettings,
12773        viewType: BNFunctionViewType,
12774    ) -> bool;
12775}
12776unsafe extern "C" {
12777    pub fn BNFindNextDataWithProgress(
12778        view: *mut BNBinaryView,
12779        start: u64,
12780        end: u64,
12781        data: *mut BNDataBuffer,
12782        result: *mut u64,
12783        flags: BNFindFlag,
12784        ctxt: *mut ::std::os::raw::c_void,
12785        progress: BNProgressFunction,
12786    ) -> bool;
12787}
12788unsafe extern "C" {
12789    pub fn BNFindNextTextWithProgress(
12790        view: *mut BNBinaryView,
12791        start: u64,
12792        end: u64,
12793        data: *const ::std::os::raw::c_char,
12794        result: *mut u64,
12795        settings: *mut BNDisassemblySettings,
12796        flags: BNFindFlag,
12797        viewType: BNFunctionViewType,
12798        ctxt: *mut ::std::os::raw::c_void,
12799        progress: BNProgressFunction,
12800    ) -> bool;
12801}
12802unsafe extern "C" {
12803    pub fn BNFindNextConstantWithProgress(
12804        view: *mut BNBinaryView,
12805        start: u64,
12806        end: u64,
12807        constant: u64,
12808        result: *mut u64,
12809        settings: *mut BNDisassemblySettings,
12810        viewType: BNFunctionViewType,
12811        ctxt: *mut ::std::os::raw::c_void,
12812        progress: BNProgressFunction,
12813    ) -> bool;
12814}
12815unsafe extern "C" {
12816    pub fn BNFindAllDataWithProgress(
12817        view: *mut BNBinaryView,
12818        start: u64,
12819        end: u64,
12820        data: *mut BNDataBuffer,
12821        flags: BNFindFlag,
12822        ctxt: *mut ::std::os::raw::c_void,
12823        progress: BNProgressFunction,
12824        matchCtxt: *mut ::std::os::raw::c_void,
12825        matchCallback: ::std::option::Option<
12826            unsafe extern "C" fn(
12827                matchCtxt: *mut ::std::os::raw::c_void,
12828                addr: u64,
12829                match_: *mut BNDataBuffer,
12830            ) -> bool,
12831        >,
12832    ) -> bool;
12833}
12834unsafe extern "C" {
12835    pub fn BNFindAllTextWithProgress(
12836        view: *mut BNBinaryView,
12837        start: u64,
12838        end: u64,
12839        data: *const ::std::os::raw::c_char,
12840        settings: *mut BNDisassemblySettings,
12841        flags: BNFindFlag,
12842        viewType: BNFunctionViewType,
12843        ctxt: *mut ::std::os::raw::c_void,
12844        progress: BNProgressFunction,
12845        matchCtxt: *mut ::std::os::raw::c_void,
12846        matchCallback: ::std::option::Option<
12847            unsafe extern "C" fn(
12848                matchCtxt: *mut ::std::os::raw::c_void,
12849                addr: u64,
12850                match_: *const ::std::os::raw::c_char,
12851                line: *mut BNLinearDisassemblyLine,
12852            ) -> bool,
12853        >,
12854    ) -> bool;
12855}
12856unsafe extern "C" {
12857    pub fn BNFindAllConstantWithProgress(
12858        view: *mut BNBinaryView,
12859        start: u64,
12860        end: u64,
12861        constant: u64,
12862        settings: *mut BNDisassemblySettings,
12863        viewType: BNFunctionViewType,
12864        ctxt: *mut ::std::os::raw::c_void,
12865        progress: BNProgressFunction,
12866        matchCtxt: *mut ::std::os::raw::c_void,
12867        matchCallback: ::std::option::Option<
12868            unsafe extern "C" fn(
12869                matchCtxt: *mut ::std::os::raw::c_void,
12870                addr: u64,
12871                line: *mut BNLinearDisassemblyLine,
12872            ) -> bool,
12873        >,
12874    ) -> bool;
12875}
12876unsafe extern "C" {
12877    pub fn BNSearch(
12878        view: *mut BNBinaryView,
12879        query: *const ::std::os::raw::c_char,
12880        context: *mut ::std::os::raw::c_void,
12881        progressCallback: BNProgressFunction,
12882        matchContext: *mut ::std::os::raw::c_void,
12883        callback: ::std::option::Option<
12884            unsafe extern "C" fn(
12885                arg1: *mut ::std::os::raw::c_void,
12886                arg2: u64,
12887                arg3: *mut BNDataBuffer,
12888            ) -> bool,
12889        >,
12890    ) -> bool;
12891}
12892unsafe extern "C" {
12893    pub fn BNDetectSearchMode(query: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
12894}
12895unsafe extern "C" {
12896    pub fn BNPerformSearch(
12897        query: *const ::std::os::raw::c_char,
12898        buffer: *const u8,
12899        size: usize,
12900        callback: BNProgressFunction,
12901        context: *mut ::std::os::raw::c_void,
12902    ) -> bool;
12903}
12904unsafe extern "C" {
12905    pub fn BNBeginBulkAddSegments(view: *mut BNBinaryView);
12906}
12907unsafe extern "C" {
12908    pub fn BNEndBulkAddSegments(view: *mut BNBinaryView);
12909}
12910unsafe extern "C" {
12911    pub fn BNCancelBulkAddSegments(view: *mut BNBinaryView);
12912}
12913unsafe extern "C" {
12914    pub fn BNAddAutoSegment(
12915        view: *mut BNBinaryView,
12916        start: u64,
12917        length: u64,
12918        dataOffset: u64,
12919        dataLength: u64,
12920        flags: u32,
12921    );
12922}
12923unsafe extern "C" {
12924    pub fn BNAddAutoSegments(
12925        view: *mut BNBinaryView,
12926        segmentInfo: *const BNSegmentInfo,
12927        count: usize,
12928    );
12929}
12930unsafe extern "C" {
12931    pub fn BNRemoveAutoSegment(view: *mut BNBinaryView, start: u64, length: u64);
12932}
12933unsafe extern "C" {
12934    pub fn BNAddUserSegment(
12935        view: *mut BNBinaryView,
12936        start: u64,
12937        length: u64,
12938        dataOffset: u64,
12939        dataLength: u64,
12940        flags: u32,
12941    );
12942}
12943unsafe extern "C" {
12944    pub fn BNAddUserSegments(
12945        view: *mut BNBinaryView,
12946        segmentInfo: *const BNSegmentInfo,
12947        count: usize,
12948    );
12949}
12950unsafe extern "C" {
12951    pub fn BNRemoveUserSegment(view: *mut BNBinaryView, start: u64, length: u64);
12952}
12953unsafe extern "C" {
12954    pub fn BNGetSegments(view: *mut BNBinaryView, count: *mut usize) -> *mut *mut BNSegment;
12955}
12956unsafe extern "C" {
12957    pub fn BNFreeSegmentList(segments: *mut *mut BNSegment, count: usize);
12958}
12959unsafe extern "C" {
12960    pub fn BNGetSegmentAt(view: *mut BNBinaryView, addr: u64) -> *mut BNSegment;
12961}
12962unsafe extern "C" {
12963    pub fn BNGetAddressForDataOffset(view: *mut BNBinaryView, offset: u64, addr: *mut u64) -> bool;
12964}
12965unsafe extern "C" {
12966    pub fn BNGetComponentByGuid(
12967        view: *mut BNBinaryView,
12968        guid: *const ::std::os::raw::c_char,
12969    ) -> *mut BNComponent;
12970}
12971unsafe extern "C" {
12972    pub fn BNGetRootComponent(view: *mut BNBinaryView) -> *mut BNComponent;
12973}
12974unsafe extern "C" {
12975    pub fn BNCreateComponent(view: *mut BNBinaryView) -> *mut BNComponent;
12976}
12977unsafe extern "C" {
12978    pub fn BNCreateComponentWithParent(
12979        view: *mut BNBinaryView,
12980        parentGUID: *const ::std::os::raw::c_char,
12981    ) -> *mut BNComponent;
12982}
12983unsafe extern "C" {
12984    pub fn BNCreateComponentWithName(
12985        view: *mut BNBinaryView,
12986        name: *const ::std::os::raw::c_char,
12987    ) -> *mut BNComponent;
12988}
12989unsafe extern "C" {
12990    pub fn BNCreateComponentWithParentAndName(
12991        view: *mut BNBinaryView,
12992        parentGUID: *const ::std::os::raw::c_char,
12993        name: *const ::std::os::raw::c_char,
12994    ) -> *mut BNComponent;
12995}
12996unsafe extern "C" {
12997    pub fn BNGetComponentByPath(
12998        view: *mut BNBinaryView,
12999        path: *const ::std::os::raw::c_char,
13000    ) -> *mut BNComponent;
13001}
13002unsafe extern "C" {
13003    pub fn BNRemoveComponent(view: *mut BNBinaryView, component: *mut BNComponent) -> bool;
13004}
13005unsafe extern "C" {
13006    pub fn BNRemoveComponentByGuid(
13007        view: *mut BNBinaryView,
13008        guid: *const ::std::os::raw::c_char,
13009    ) -> bool;
13010}
13011unsafe extern "C" {
13012    pub fn BNAddAutoSection(
13013        view: *mut BNBinaryView,
13014        name: *const ::std::os::raw::c_char,
13015        start: u64,
13016        length: u64,
13017        semantics: BNSectionSemantics,
13018        type_: *const ::std::os::raw::c_char,
13019        align: u64,
13020        entrySize: u64,
13021        linkedSection: *const ::std::os::raw::c_char,
13022        infoSection: *const ::std::os::raw::c_char,
13023        infoData: u64,
13024    );
13025}
13026unsafe extern "C" {
13027    pub fn BNAddAutoSections(
13028        view: *mut BNBinaryView,
13029        sectionInfo: *const BNSectionInfo,
13030        count: usize,
13031    );
13032}
13033unsafe extern "C" {
13034    pub fn BNRemoveAutoSection(view: *mut BNBinaryView, name: *const ::std::os::raw::c_char);
13035}
13036unsafe extern "C" {
13037    pub fn BNAddUserSection(
13038        view: *mut BNBinaryView,
13039        name: *const ::std::os::raw::c_char,
13040        start: u64,
13041        length: u64,
13042        semantics: BNSectionSemantics,
13043        type_: *const ::std::os::raw::c_char,
13044        align: u64,
13045        entrySize: u64,
13046        linkedSection: *const ::std::os::raw::c_char,
13047        infoSection: *const ::std::os::raw::c_char,
13048        infoData: u64,
13049    );
13050}
13051unsafe extern "C" {
13052    pub fn BNAddUserSections(
13053        view: *mut BNBinaryView,
13054        sectionInfo: *const BNSectionInfo,
13055        count: usize,
13056    );
13057}
13058unsafe extern "C" {
13059    pub fn BNRemoveUserSection(view: *mut BNBinaryView, name: *const ::std::os::raw::c_char);
13060}
13061unsafe extern "C" {
13062    pub fn BNGetSections(view: *mut BNBinaryView, count: *mut usize) -> *mut *mut BNSection;
13063}
13064unsafe extern "C" {
13065    pub fn BNGetSectionsAt(
13066        view: *mut BNBinaryView,
13067        addr: u64,
13068        count: *mut usize,
13069    ) -> *mut *mut BNSection;
13070}
13071unsafe extern "C" {
13072    pub fn BNFreeSectionList(sections: *mut *mut BNSection, count: usize);
13073}
13074unsafe extern "C" {
13075    pub fn BNGetSectionByName(
13076        view: *mut BNBinaryView,
13077        name: *const ::std::os::raw::c_char,
13078    ) -> *mut BNSection;
13079}
13080unsafe extern "C" {
13081    pub fn BNGetUniqueSectionNames(
13082        view: *mut BNBinaryView,
13083        names: *mut *const ::std::os::raw::c_char,
13084        count: usize,
13085    ) -> *mut *mut ::std::os::raw::c_char;
13086}
13087unsafe extern "C" {
13088    pub fn BNGetAllocatedRanges(view: *mut BNBinaryView, count: *mut usize) -> *mut BNAddressRange;
13089}
13090unsafe extern "C" {
13091    pub fn BNGetMappedAddressRanges(
13092        view: *mut BNBinaryView,
13093        count: *mut usize,
13094    ) -> *mut BNAddressRange;
13095}
13096unsafe extern "C" {
13097    pub fn BNGetBackedAddressRanges(
13098        view: *mut BNBinaryView,
13099        count: *mut usize,
13100    ) -> *mut BNAddressRange;
13101}
13102unsafe extern "C" {
13103    pub fn BNFreeAddressRanges(ranges: *mut BNAddressRange);
13104}
13105unsafe extern "C" {
13106    pub fn BNGetNameSpaces(view: *mut BNBinaryView, count: *mut usize) -> *mut BNNameSpace;
13107}
13108unsafe extern "C" {
13109    pub fn BNFreeNameSpaceList(nameSpace: *mut BNNameSpace, count: usize);
13110}
13111unsafe extern "C" {
13112    pub fn BNGetExternalNameSpace() -> BNNameSpace;
13113}
13114unsafe extern "C" {
13115    pub fn BNGetInternalNameSpace() -> BNNameSpace;
13116}
13117unsafe extern "C" {
13118    pub fn BNFreeNameSpace(name: *mut BNNameSpace);
13119}
13120unsafe extern "C" {
13121    pub fn BNGetGlobalPointerValue(view: *mut BNBinaryView) -> BNRegisterValueWithConfidence;
13122}
13123unsafe extern "C" {
13124    pub fn BNUserGlobalPointerValueSet(view: *mut BNBinaryView) -> bool;
13125}
13126unsafe extern "C" {
13127    pub fn BNClearUserGlobalPointerValue(view: *mut BNBinaryView);
13128}
13129unsafe extern "C" {
13130    pub fn BNSetUserGlobalPointerValue(
13131        view: *mut BNBinaryView,
13132        value: BNRegisterValueWithConfidence,
13133    );
13134}
13135unsafe extern "C" {
13136    pub fn BNStringifyUnicodeData(
13137        data: *mut BNBinaryView,
13138        arch: *mut BNArchitecture,
13139        buffer: *const BNDataBuffer,
13140        nullTerminates: bool,
13141        allowShortStrings: bool,
13142        string: *mut *mut ::std::os::raw::c_char,
13143        type_: *mut BNStringType,
13144    ) -> bool;
13145}
13146unsafe extern "C" {
13147    #[doc = " Raw binary data view"]
13148    pub fn BNCreateBinaryDataView(file: *mut BNFileMetadata) -> *mut BNBinaryView;
13149}
13150unsafe extern "C" {
13151    pub fn BNCreateBinaryDataViewFromBuffer(
13152        file: *mut BNFileMetadata,
13153        buf: *mut BNDataBuffer,
13154    ) -> *mut BNBinaryView;
13155}
13156unsafe extern "C" {
13157    pub fn BNCreateBinaryDataViewFromData(
13158        file: *mut BNFileMetadata,
13159        data: *const ::std::os::raw::c_void,
13160        len: usize,
13161    ) -> *mut BNBinaryView;
13162}
13163unsafe extern "C" {
13164    pub fn BNCreateBinaryDataViewFromFilename(
13165        file: *mut BNFileMetadata,
13166        filename: *const ::std::os::raw::c_char,
13167    ) -> *mut BNBinaryView;
13168}
13169unsafe extern "C" {
13170    pub fn BNCreateBinaryDataViewFromFile(
13171        file: *mut BNFileMetadata,
13172        accessor: *mut BNFileAccessor,
13173    ) -> *mut BNBinaryView;
13174}
13175unsafe extern "C" {
13176    #[doc = " Creation of new types of binary views"]
13177    pub fn BNCreateCustomBinaryView(
13178        name: *const ::std::os::raw::c_char,
13179        file: *mut BNFileMetadata,
13180        parent: *mut BNBinaryView,
13181        view: *mut BNCustomBinaryView,
13182    ) -> *mut BNBinaryView;
13183}
13184unsafe extern "C" {
13185    pub fn BNGetBinaryViewTypeByName(name: *const ::std::os::raw::c_char) -> *mut BNBinaryViewType;
13186}
13187unsafe extern "C" {
13188    pub fn BNGetBinaryViewTypes(count: *mut usize) -> *mut *mut BNBinaryViewType;
13189}
13190unsafe extern "C" {
13191    pub fn BNGetBinaryViewTypesForData(
13192        data: *mut BNBinaryView,
13193        count: *mut usize,
13194    ) -> *mut *mut BNBinaryViewType;
13195}
13196unsafe extern "C" {
13197    pub fn BNFreeBinaryViewTypeList(types: *mut *mut BNBinaryViewType);
13198}
13199unsafe extern "C" {
13200    pub fn BNGetBinaryViewTypeName(type_: *mut BNBinaryViewType) -> *mut ::std::os::raw::c_char;
13201}
13202unsafe extern "C" {
13203    pub fn BNGetBinaryViewTypeLongName(type_: *mut BNBinaryViewType)
13204    -> *mut ::std::os::raw::c_char;
13205}
13206unsafe extern "C" {
13207    pub fn BNIsBinaryViewTypeDeprecated(type_: *mut BNBinaryViewType) -> bool;
13208}
13209unsafe extern "C" {
13210    pub fn BNCreateBinaryViewOfType(
13211        type_: *mut BNBinaryViewType,
13212        data: *mut BNBinaryView,
13213    ) -> *mut BNBinaryView;
13214}
13215unsafe extern "C" {
13216    pub fn BNParseBinaryViewOfType(
13217        type_: *mut BNBinaryViewType,
13218        data: *mut BNBinaryView,
13219    ) -> *mut BNBinaryView;
13220}
13221unsafe extern "C" {
13222    pub fn BNIsBinaryViewTypeValidForData(
13223        type_: *mut BNBinaryViewType,
13224        data: *mut BNBinaryView,
13225    ) -> bool;
13226}
13227unsafe extern "C" {
13228    pub fn BNIsBinaryViewTypeForceLoadable(type_: *mut BNBinaryViewType) -> bool;
13229}
13230unsafe extern "C" {
13231    pub fn BNBinaryViewTypeHasNoInitialContent(type_: *mut BNBinaryViewType) -> bool;
13232}
13233unsafe extern "C" {
13234    pub fn BNGetBinaryViewDefaultLoadSettingsForData(
13235        type_: *mut BNBinaryViewType,
13236        data: *mut BNBinaryView,
13237    ) -> *mut BNSettings;
13238}
13239unsafe extern "C" {
13240    pub fn BNGetBinaryViewLoadSettingsForData(
13241        type_: *mut BNBinaryViewType,
13242        data: *mut BNBinaryView,
13243    ) -> *mut BNSettings;
13244}
13245unsafe extern "C" {
13246    pub fn BNRegisterBinaryViewType(
13247        name: *const ::std::os::raw::c_char,
13248        longName: *const ::std::os::raw::c_char,
13249        type_: *mut BNCustomBinaryViewType,
13250    ) -> *mut BNBinaryViewType;
13251}
13252unsafe extern "C" {
13253    pub fn BNRegisterArchitectureForViewType(
13254        type_: *mut BNBinaryViewType,
13255        id: u32,
13256        endian: BNEndianness,
13257        arch: *mut BNArchitecture,
13258    );
13259}
13260unsafe extern "C" {
13261    pub fn BNGetArchitectureForViewType(
13262        type_: *mut BNBinaryViewType,
13263        id: u32,
13264        endian: BNEndianness,
13265    ) -> *mut BNArchitecture;
13266}
13267unsafe extern "C" {
13268    pub fn BNRegisterPlatformForViewType(
13269        type_: *mut BNBinaryViewType,
13270        id: u32,
13271        arch: *mut BNArchitecture,
13272        platform: *mut BNPlatform,
13273    );
13274}
13275unsafe extern "C" {
13276    pub fn BNGetPlatformForViewType(
13277        type_: *mut BNBinaryViewType,
13278        id: u32,
13279        arch: *mut BNArchitecture,
13280    ) -> *mut BNPlatform;
13281}
13282unsafe extern "C" {
13283    pub fn BNRegisterDefaultPlatformForViewType(
13284        type_: *mut BNBinaryViewType,
13285        arch: *mut BNArchitecture,
13286        platform: *mut BNPlatform,
13287    );
13288}
13289unsafe extern "C" {
13290    #[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."]
13291    pub fn BNRegisterPlatformRecognizerForViewType(
13292        type_: *mut BNBinaryViewType,
13293        id: u64,
13294        endian: BNEndianness,
13295        callback: ::std::option::Option<
13296            unsafe extern "C" fn(
13297                ctx: *mut ::std::os::raw::c_void,
13298                view: *mut BNBinaryView,
13299                metadata: *mut BNMetadata,
13300            ) -> *mut BNPlatform,
13301        >,
13302        ctx: *mut ::std::os::raw::c_void,
13303    );
13304}
13305unsafe extern "C" {
13306    #[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."]
13307    pub fn BNRecognizePlatformForViewType(
13308        type_: *mut BNBinaryViewType,
13309        id: u64,
13310        endian: BNEndianness,
13311        view: *mut BNBinaryView,
13312        metadata: *mut BNMetadata,
13313    ) -> *mut BNPlatform;
13314}
13315unsafe extern "C" {
13316    pub fn BNRegisterBinaryViewEvent(
13317        type_: BNBinaryViewEventType,
13318        callback: ::std::option::Option<
13319            unsafe extern "C" fn(ctx: *mut ::std::os::raw::c_void, view: *mut BNBinaryView),
13320        >,
13321        ctx: *mut ::std::os::raw::c_void,
13322    );
13323}
13324unsafe extern "C" {
13325    #[doc = " Stream reader object"]
13326    pub fn BNCreateBinaryReader(view: *mut BNBinaryView) -> *mut BNBinaryReader;
13327}
13328unsafe extern "C" {
13329    pub fn BNFreeBinaryReader(stream: *mut BNBinaryReader);
13330}
13331unsafe extern "C" {
13332    pub fn BNGetBinaryReaderEndianness(stream: *mut BNBinaryReader) -> BNEndianness;
13333}
13334unsafe extern "C" {
13335    pub fn BNSetBinaryReaderEndianness(stream: *mut BNBinaryReader, endian: BNEndianness);
13336}
13337unsafe extern "C" {
13338    pub fn BNReadData(
13339        stream: *mut BNBinaryReader,
13340        dest: *mut ::std::os::raw::c_void,
13341        len: usize,
13342    ) -> bool;
13343}
13344unsafe extern "C" {
13345    pub fn BNRead8(stream: *mut BNBinaryReader, result: *mut u8) -> bool;
13346}
13347unsafe extern "C" {
13348    pub fn BNRead16(stream: *mut BNBinaryReader, result: *mut u16) -> bool;
13349}
13350unsafe extern "C" {
13351    pub fn BNRead32(stream: *mut BNBinaryReader, result: *mut u32) -> bool;
13352}
13353unsafe extern "C" {
13354    pub fn BNRead64(stream: *mut BNBinaryReader, result: *mut u64) -> bool;
13355}
13356unsafe extern "C" {
13357    pub fn BNReadLE16(stream: *mut BNBinaryReader, result: *mut u16) -> bool;
13358}
13359unsafe extern "C" {
13360    pub fn BNReadLE32(stream: *mut BNBinaryReader, result: *mut u32) -> bool;
13361}
13362unsafe extern "C" {
13363    pub fn BNReadLE64(stream: *mut BNBinaryReader, result: *mut u64) -> bool;
13364}
13365unsafe extern "C" {
13366    pub fn BNReadBE16(stream: *mut BNBinaryReader, result: *mut u16) -> bool;
13367}
13368unsafe extern "C" {
13369    pub fn BNReadBE32(stream: *mut BNBinaryReader, result: *mut u32) -> bool;
13370}
13371unsafe extern "C" {
13372    pub fn BNReadBE64(stream: *mut BNBinaryReader, result: *mut u64) -> bool;
13373}
13374unsafe extern "C" {
13375    pub fn BNReadPointer(
13376        view: *mut BNBinaryView,
13377        stream: *mut BNBinaryReader,
13378        result: *mut u64,
13379    ) -> bool;
13380}
13381unsafe extern "C" {
13382    pub fn BNGetReaderPosition(stream: *mut BNBinaryReader) -> u64;
13383}
13384unsafe extern "C" {
13385    pub fn BNSeekBinaryReader(stream: *mut BNBinaryReader, offset: u64);
13386}
13387unsafe extern "C" {
13388    pub fn BNSeekBinaryReaderRelative(stream: *mut BNBinaryReader, offset: i64);
13389}
13390unsafe extern "C" {
13391    pub fn BNGetBinaryReaderVirtualBase(stream: *mut BNBinaryReader) -> u64;
13392}
13393unsafe extern "C" {
13394    pub fn BNSetBinaryReaderVirtualBase(stream: *mut BNBinaryReader, base: u64);
13395}
13396unsafe extern "C" {
13397    pub fn BNIsEndOfFile(stream: *mut BNBinaryReader) -> bool;
13398}
13399unsafe extern "C" {
13400    #[doc = " Stream writer object"]
13401    pub fn BNCreateBinaryWriter(view: *mut BNBinaryView) -> *mut BNBinaryWriter;
13402}
13403unsafe extern "C" {
13404    pub fn BNFreeBinaryWriter(stream: *mut BNBinaryWriter);
13405}
13406unsafe extern "C" {
13407    pub fn BNGetBinaryWriterEndianness(stream: *mut BNBinaryWriter) -> BNEndianness;
13408}
13409unsafe extern "C" {
13410    pub fn BNSetBinaryWriterEndianness(stream: *mut BNBinaryWriter, endian: BNEndianness);
13411}
13412unsafe extern "C" {
13413    pub fn BNWriteData(
13414        stream: *mut BNBinaryWriter,
13415        src: *const ::std::os::raw::c_void,
13416        len: usize,
13417    ) -> bool;
13418}
13419unsafe extern "C" {
13420    pub fn BNWrite8(stream: *mut BNBinaryWriter, val: u8) -> bool;
13421}
13422unsafe extern "C" {
13423    pub fn BNWrite16(stream: *mut BNBinaryWriter, val: u16) -> bool;
13424}
13425unsafe extern "C" {
13426    pub fn BNWrite32(stream: *mut BNBinaryWriter, val: u32) -> bool;
13427}
13428unsafe extern "C" {
13429    pub fn BNWrite64(stream: *mut BNBinaryWriter, val: u64) -> bool;
13430}
13431unsafe extern "C" {
13432    pub fn BNWriteLE16(stream: *mut BNBinaryWriter, val: u16) -> bool;
13433}
13434unsafe extern "C" {
13435    pub fn BNWriteLE32(stream: *mut BNBinaryWriter, val: u32) -> bool;
13436}
13437unsafe extern "C" {
13438    pub fn BNWriteLE64(stream: *mut BNBinaryWriter, val: u64) -> bool;
13439}
13440unsafe extern "C" {
13441    pub fn BNWriteBE16(stream: *mut BNBinaryWriter, val: u16) -> bool;
13442}
13443unsafe extern "C" {
13444    pub fn BNWriteBE32(stream: *mut BNBinaryWriter, val: u32) -> bool;
13445}
13446unsafe extern "C" {
13447    pub fn BNWriteBE64(stream: *mut BNBinaryWriter, val: u64) -> bool;
13448}
13449unsafe extern "C" {
13450    pub fn BNGetWriterPosition(stream: *mut BNBinaryWriter) -> u64;
13451}
13452unsafe extern "C" {
13453    pub fn BNSeekBinaryWriter(stream: *mut BNBinaryWriter, offset: u64);
13454}
13455unsafe extern "C" {
13456    pub fn BNSeekBinaryWriterRelative(stream: *mut BNBinaryWriter, offset: i64);
13457}
13458unsafe extern "C" {
13459    #[doc = " Transforms"]
13460    pub fn BNGetTransformByName(name: *const ::std::os::raw::c_char) -> *mut BNTransform;
13461}
13462unsafe extern "C" {
13463    pub fn BNGetTransformTypeList(count: *mut usize) -> *mut *mut BNTransform;
13464}
13465unsafe extern "C" {
13466    pub fn BNFreeTransformTypeList(xforms: *mut *mut BNTransform);
13467}
13468unsafe extern "C" {
13469    pub fn BNRegisterTransformType(
13470        type_: BNTransformType,
13471        name: *const ::std::os::raw::c_char,
13472        longName: *const ::std::os::raw::c_char,
13473        group: *const ::std::os::raw::c_char,
13474        xform: *mut BNCustomTransform,
13475    ) -> *mut BNTransform;
13476}
13477unsafe extern "C" {
13478    pub fn BNRegisterTransformTypeWithCapabilities(
13479        type_: BNTransformType,
13480        capabilities: u32,
13481        name: *const ::std::os::raw::c_char,
13482        longName: *const ::std::os::raw::c_char,
13483        group: *const ::std::os::raw::c_char,
13484        xform: *mut BNCustomTransform,
13485    ) -> *mut BNTransform;
13486}
13487unsafe extern "C" {
13488    pub fn BNGetTransformType(xform: *mut BNTransform) -> BNTransformType;
13489}
13490unsafe extern "C" {
13491    pub fn BNGetTransformCapabilities(xform: *mut BNTransform) -> u32;
13492}
13493unsafe extern "C" {
13494    pub fn BNTransformSupportsDetection(xform: *mut BNTransform) -> bool;
13495}
13496unsafe extern "C" {
13497    pub fn BNTransformSupportsContext(xform: *mut BNTransform) -> bool;
13498}
13499unsafe extern "C" {
13500    pub fn BNGetTransformName(xform: *mut BNTransform) -> *mut ::std::os::raw::c_char;
13501}
13502unsafe extern "C" {
13503    pub fn BNGetTransformLongName(xform: *mut BNTransform) -> *mut ::std::os::raw::c_char;
13504}
13505unsafe extern "C" {
13506    pub fn BNGetTransformGroup(xform: *mut BNTransform) -> *mut ::std::os::raw::c_char;
13507}
13508unsafe extern "C" {
13509    pub fn BNGetTransformParameterList(
13510        xform: *mut BNTransform,
13511        count: *mut usize,
13512    ) -> *mut BNTransformParameterInfo;
13513}
13514unsafe extern "C" {
13515    pub fn BNFreeTransformParameterList(params: *mut BNTransformParameterInfo, count: usize);
13516}
13517unsafe extern "C" {
13518    pub fn BNDecode(
13519        xform: *mut BNTransform,
13520        input: *mut BNDataBuffer,
13521        output: *mut BNDataBuffer,
13522        params: *mut BNTransformParameter,
13523        paramCount: usize,
13524    ) -> bool;
13525}
13526unsafe extern "C" {
13527    pub fn BNEncode(
13528        xform: *mut BNTransform,
13529        input: *mut BNDataBuffer,
13530        output: *mut BNDataBuffer,
13531        params: *mut BNTransformParameter,
13532        paramCount: usize,
13533    ) -> bool;
13534}
13535unsafe extern "C" {
13536    pub fn BNDecodeWithContext(
13537        xform: *mut BNTransform,
13538        context: *mut BNTransformContext,
13539        params: *mut BNTransformParameter,
13540        paramCount: usize,
13541    ) -> bool;
13542}
13543unsafe extern "C" {
13544    pub fn BNCanDecode(xform: *mut BNTransform, input: *mut BNBinaryView) -> bool;
13545}
13546unsafe extern "C" {
13547    #[doc = " Transform Context"]
13548    pub fn BNNewTransformContextReference(
13549        context: *mut BNTransformContext,
13550    ) -> *mut BNTransformContext;
13551}
13552unsafe extern "C" {
13553    pub fn BNFreeTransformContext(context: *mut BNTransformContext);
13554}
13555unsafe extern "C" {
13556    pub fn BNTransformContextGetInput(context: *mut BNTransformContext) -> *mut BNBinaryView;
13557}
13558unsafe extern "C" {
13559    pub fn BNTransformContextGetFileName(
13560        context: *mut BNTransformContext,
13561    ) -> *mut ::std::os::raw::c_char;
13562}
13563unsafe extern "C" {
13564    pub fn BNTransformContextGetAvailableTransforms(
13565        context: *mut BNTransformContext,
13566        count: *mut usize,
13567    ) -> *mut *mut ::std::os::raw::c_char;
13568}
13569unsafe extern "C" {
13570    pub fn BNTransformContextGetTransformName(
13571        context: *mut BNTransformContext,
13572    ) -> *mut ::std::os::raw::c_char;
13573}
13574unsafe extern "C" {
13575    pub fn BNTransformContextSetTransformName(
13576        context: *mut BNTransformContext,
13577        transformName: *const ::std::os::raw::c_char,
13578    );
13579}
13580unsafe extern "C" {
13581    pub fn BNTransformContextSetTransformParameters(
13582        context: *mut BNTransformContext,
13583        params: *mut BNTransformParameter,
13584        paramCount: usize,
13585    );
13586}
13587unsafe extern "C" {
13588    pub fn BNTransformContextSetTransformParameter(
13589        context: *mut BNTransformContext,
13590        name: *const ::std::os::raw::c_char,
13591        data: *mut BNDataBuffer,
13592    );
13593}
13594unsafe extern "C" {
13595    pub fn BNTransformContextHasTransformParameter(
13596        context: *mut BNTransformContext,
13597        name: *const ::std::os::raw::c_char,
13598    ) -> bool;
13599}
13600unsafe extern "C" {
13601    pub fn BNTransformContextClearTransformParameter(
13602        context: *mut BNTransformContext,
13603        name: *const ::std::os::raw::c_char,
13604    );
13605}
13606unsafe extern "C" {
13607    pub fn BNTransformContextGetExtractionMessage(
13608        context: *mut BNTransformContext,
13609    ) -> *mut ::std::os::raw::c_char;
13610}
13611unsafe extern "C" {
13612    pub fn BNTransformContextGetExtractionResult(
13613        context: *mut BNTransformContext,
13614    ) -> BNTransformResult;
13615}
13616unsafe extern "C" {
13617    pub fn BNTransformContextGetTransformResult(
13618        context: *mut BNTransformContext,
13619    ) -> BNTransformResult;
13620}
13621unsafe extern "C" {
13622    pub fn BNTransformContextSetTransformResult(
13623        context: *mut BNTransformContext,
13624        result: BNTransformResult,
13625    );
13626}
13627unsafe extern "C" {
13628    pub fn BNTransformContextGetMetadata(context: *mut BNTransformContext) -> *mut BNMetadata;
13629}
13630unsafe extern "C" {
13631    pub fn BNTransformContextGetParent(context: *mut BNTransformContext)
13632    -> *mut BNTransformContext;
13633}
13634unsafe extern "C" {
13635    pub fn BNTransformContextGetChildCount(context: *mut BNTransformContext) -> usize;
13636}
13637unsafe extern "C" {
13638    pub fn BNTransformContextGetChildren(
13639        context: *mut BNTransformContext,
13640        count: *mut usize,
13641    ) -> *mut *mut BNTransformContext;
13642}
13643unsafe extern "C" {
13644    pub fn BNFreeTransformContextList(contexts: *mut *mut BNTransformContext, count: usize);
13645}
13646unsafe extern "C" {
13647    pub fn BNTransformContextGetChild(
13648        context: *mut BNTransformContext,
13649        filename: *const ::std::os::raw::c_char,
13650    ) -> *mut BNTransformContext;
13651}
13652unsafe extern "C" {
13653    pub fn BNTransformContextSetChild(
13654        context: *mut BNTransformContext,
13655        data: *mut BNDataBuffer,
13656        filename: *const ::std::os::raw::c_char,
13657        result: BNTransformResult,
13658        message: *const ::std::os::raw::c_char,
13659        filenameIsDescriptor: bool,
13660    ) -> *mut BNTransformContext;
13661}
13662unsafe extern "C" {
13663    pub fn BNTransformContextIsLeaf(context: *mut BNTransformContext) -> bool;
13664}
13665unsafe extern "C" {
13666    pub fn BNTransformContextIsRoot(context: *mut BNTransformContext) -> bool;
13667}
13668unsafe extern "C" {
13669    pub fn BNTransformContextGetAvailableFiles(
13670        context: *mut BNTransformContext,
13671        count: *mut usize,
13672    ) -> *mut *mut ::std::os::raw::c_char;
13673}
13674unsafe extern "C" {
13675    pub fn BNTransformContextSetAvailableFiles(
13676        context: *mut BNTransformContext,
13677        files: *mut *const ::std::os::raw::c_char,
13678        count: usize,
13679    );
13680}
13681unsafe extern "C" {
13682    pub fn BNTransformContextHasAvailableFiles(context: *mut BNTransformContext) -> bool;
13683}
13684unsafe extern "C" {
13685    pub fn BNTransformContextGetRequestedFiles(
13686        context: *mut BNTransformContext,
13687        count: *mut usize,
13688    ) -> *mut *mut ::std::os::raw::c_char;
13689}
13690unsafe extern "C" {
13691    pub fn BNTransformContextSetRequestedFiles(
13692        context: *mut BNTransformContext,
13693        files: *mut *const ::std::os::raw::c_char,
13694        count: usize,
13695    );
13696}
13697unsafe extern "C" {
13698    pub fn BNTransformContextHasRequestedFiles(context: *mut BNTransformContext) -> bool;
13699}
13700unsafe extern "C" {
13701    pub fn BNTransformContextIsDatabase(context: *mut BNTransformContext) -> bool;
13702}
13703unsafe extern "C" {
13704    pub fn BNTransformContextIsInteractive(context: *mut BNTransformContext) -> bool;
13705}
13706unsafe extern "C" {
13707    pub fn BNTransformContextGetSettings(context: *mut BNTransformContext) -> *mut BNSettings;
13708}
13709unsafe extern "C" {
13710    #[doc = " Transform Session"]
13711    pub fn BNCreateTransformSession(
13712        filename: *const ::std::os::raw::c_char,
13713        options: *const ::std::os::raw::c_char,
13714    ) -> *mut BNTransformSession;
13715}
13716unsafe extern "C" {
13717    pub fn BNCreateTransformSessionWithMode(
13718        filename: *const ::std::os::raw::c_char,
13719        mode: BNTransformSessionMode,
13720        options: *const ::std::os::raw::c_char,
13721    ) -> *mut BNTransformSession;
13722}
13723unsafe extern "C" {
13724    pub fn BNCreateTransformSessionFromBinaryView(
13725        initialView: *mut BNBinaryView,
13726        options: *const ::std::os::raw::c_char,
13727    ) -> *mut BNTransformSession;
13728}
13729unsafe extern "C" {
13730    pub fn BNCreateTransformSessionFromBinaryViewWithMode(
13731        initialView: *mut BNBinaryView,
13732        mode: BNTransformSessionMode,
13733        options: *const ::std::os::raw::c_char,
13734    ) -> *mut BNTransformSession;
13735}
13736unsafe extern "C" {
13737    pub fn BNCreateTransformSessionFromTransformContextWithMode(
13738        context: *mut BNTransformContext,
13739        mode: BNTransformSessionMode,
13740        options: *const ::std::os::raw::c_char,
13741    ) -> *mut BNTransformSession;
13742}
13743unsafe extern "C" {
13744    pub fn BNNewTransformSessionReference(
13745        session: *mut BNTransformSession,
13746    ) -> *mut BNTransformSession;
13747}
13748unsafe extern "C" {
13749    pub fn BNFreeTransformSession(session: *mut BNTransformSession);
13750}
13751unsafe extern "C" {
13752    pub fn BNTransformSessionSetInteractive(session: *mut BNTransformSession, interactive: bool);
13753}
13754unsafe extern "C" {
13755    pub fn BNTransformSessionGetCurrentView(session: *mut BNTransformSession) -> *mut BNBinaryView;
13756}
13757unsafe extern "C" {
13758    pub fn BNTransformSessionGetRootContext(
13759        session: *mut BNTransformSession,
13760    ) -> *mut BNTransformContext;
13761}
13762unsafe extern "C" {
13763    pub fn BNTransformSessionGetCurrentContext(
13764        session: *mut BNTransformSession,
13765    ) -> *mut BNTransformContext;
13766}
13767unsafe extern "C" {
13768    pub fn BNTransformSessionProcessFrom(
13769        session: *mut BNTransformSession,
13770        context: *mut BNTransformContext,
13771    ) -> bool;
13772}
13773unsafe extern "C" {
13774    pub fn BNTransformSessionProcess(session: *mut BNTransformSession) -> bool;
13775}
13776unsafe extern "C" {
13777    pub fn BNTransformSessionHasAnyStages(session: *mut BNTransformSession) -> bool;
13778}
13779unsafe extern "C" {
13780    pub fn BNTransformSessionHasSinglePath(session: *mut BNTransformSession) -> bool;
13781}
13782unsafe extern "C" {
13783    pub fn BNTransformSessionGetSelectedContexts(
13784        session: *mut BNTransformSession,
13785        count: *mut usize,
13786    ) -> *mut *mut BNTransformContext;
13787}
13788unsafe extern "C" {
13789    pub fn BNTransformSessionSetSelectedContexts(
13790        session: *mut BNTransformSession,
13791        contexts: *mut *mut BNTransformContext,
13792        count: usize,
13793    );
13794}
13795unsafe extern "C" {
13796    #[doc = " Architectures"]
13797    pub fn BNGetArchitectureByName(name: *const ::std::os::raw::c_char) -> *mut BNArchitecture;
13798}
13799unsafe extern "C" {
13800    pub fn BNGetArchitectureList(count: *mut usize) -> *mut *mut BNArchitecture;
13801}
13802unsafe extern "C" {
13803    pub fn BNFreeArchitectureList(archs: *mut *mut BNArchitecture);
13804}
13805unsafe extern "C" {
13806    pub fn BNRegisterArchitecture(
13807        name: *const ::std::os::raw::c_char,
13808        arch: *mut BNCustomArchitecture,
13809    ) -> *mut BNArchitecture;
13810}
13811unsafe extern "C" {
13812    pub fn BNRegisterArchitectureExtension(
13813        name: *const ::std::os::raw::c_char,
13814        base: *mut BNArchitecture,
13815        arch: *mut BNCustomArchitecture,
13816    ) -> *mut BNArchitecture;
13817}
13818unsafe extern "C" {
13819    pub fn BNAddArchitectureRedirection(
13820        arch: *mut BNArchitecture,
13821        from: *mut BNArchitecture,
13822        to: *mut BNArchitecture,
13823    );
13824}
13825unsafe extern "C" {
13826    pub fn BNRegisterArchitectureHook(
13827        base: *mut BNArchitecture,
13828        arch: *mut BNCustomArchitecture,
13829    ) -> *mut BNArchitecture;
13830}
13831unsafe extern "C" {
13832    pub fn BNFinalizeArchitectureHook(base: *mut BNArchitecture);
13833}
13834unsafe extern "C" {
13835    pub fn BNGetNativeTypeParserArchitecture() -> *mut BNArchitecture;
13836}
13837unsafe extern "C" {
13838    pub fn BNGetArchitectureName(arch: *mut BNArchitecture) -> *mut ::std::os::raw::c_char;
13839}
13840unsafe extern "C" {
13841    pub fn BNGetArchitectureEndianness(arch: *mut BNArchitecture) -> BNEndianness;
13842}
13843unsafe extern "C" {
13844    pub fn BNGetArchitectureAddressSize(arch: *mut BNArchitecture) -> usize;
13845}
13846unsafe extern "C" {
13847    pub fn BNGetArchitectureDefaultIntegerSize(arch: *mut BNArchitecture) -> usize;
13848}
13849unsafe extern "C" {
13850    pub fn BNGetArchitectureInstructionAlignment(arch: *mut BNArchitecture) -> usize;
13851}
13852unsafe extern "C" {
13853    pub fn BNGetArchitectureMaxInstructionLength(arch: *mut BNArchitecture) -> usize;
13854}
13855unsafe extern "C" {
13856    pub fn BNGetArchitectureOpcodeDisplayLength(arch: *mut BNArchitecture) -> usize;
13857}
13858unsafe extern "C" {
13859    pub fn BNGetAssociatedArchitectureByAddress(
13860        arch: *mut BNArchitecture,
13861        addr: *mut u64,
13862    ) -> *mut BNArchitecture;
13863}
13864unsafe extern "C" {
13865    pub fn BNGetInstructionInfo(
13866        arch: *mut BNArchitecture,
13867        data: *const u8,
13868        addr: u64,
13869        maxLen: usize,
13870        result: *mut BNInstructionInfo,
13871    ) -> bool;
13872}
13873unsafe extern "C" {
13874    pub fn BNGetInstructionText(
13875        arch: *mut BNArchitecture,
13876        data: *const u8,
13877        addr: u64,
13878        len: *mut usize,
13879        result: *mut *mut BNInstructionTextToken,
13880        count: *mut usize,
13881    ) -> bool;
13882}
13883unsafe extern "C" {
13884    pub fn BNGetInstructionTextWithContext(
13885        arch: *mut BNArchitecture,
13886        data: *const u8,
13887        addr: u64,
13888        len: *mut usize,
13889        context: *mut ::std::os::raw::c_void,
13890        result: *mut *mut BNInstructionTextToken,
13891        count: *mut usize,
13892    ) -> bool;
13893}
13894unsafe extern "C" {
13895    pub fn BNGetInstructionLowLevelIL(
13896        arch: *mut BNArchitecture,
13897        data: *const u8,
13898        addr: u64,
13899        len: *mut usize,
13900        il: *mut BNLowLevelILFunction,
13901    ) -> bool;
13902}
13903unsafe extern "C" {
13904    pub fn BNFreeInstructionText(tokens: *mut BNInstructionTextToken, count: usize);
13905}
13906unsafe extern "C" {
13907    pub fn BNArchitectureSetDefaultAnalyzeBasicBlocksCallback(
13908        callback: *mut ::std::os::raw::c_void,
13909    ) -> bool;
13910}
13911unsafe extern "C" {
13912    pub fn BNArchitectureDefaultAnalyzeBasicBlocks(
13913        function: *mut BNFunction,
13914        context: *mut BNBasicBlockAnalysisContext,
13915    );
13916}
13917unsafe extern "C" {
13918    pub fn BNArchitectureAnalyzeBasicBlocks(
13919        arch: *mut BNArchitecture,
13920        function: *mut BNFunction,
13921        context: *mut BNBasicBlockAnalysisContext,
13922    );
13923}
13924unsafe extern "C" {
13925    pub fn BNArchitectureSetDefaultLiftFunctionCallback(
13926        callback: *mut ::std::os::raw::c_void,
13927    ) -> bool;
13928}
13929unsafe extern "C" {
13930    pub fn BNArchitectureDefaultLiftFunction(
13931        function: *mut BNLowLevelILFunction,
13932        context: *mut BNFunctionLifterContext,
13933    ) -> bool;
13934}
13935unsafe extern "C" {
13936    pub fn BNArchitectureLiftFunction(
13937        arch: *mut BNArchitecture,
13938        function: *mut BNLowLevelILFunction,
13939        context: *mut BNFunctionLifterContext,
13940    ) -> bool;
13941}
13942unsafe extern "C" {
13943    pub fn BNArchitectureFreeFunctionArchContext(
13944        arch: *mut BNArchitecture,
13945        context: *mut ::std::os::raw::c_void,
13946    );
13947}
13948unsafe extern "C" {
13949    pub fn BNFreeInstructionTextLines(lines: *mut BNInstructionTextLine, count: usize);
13950}
13951unsafe extern "C" {
13952    pub fn BNGetArchitectureRegisterName(
13953        arch: *mut BNArchitecture,
13954        reg: u32,
13955    ) -> *mut ::std::os::raw::c_char;
13956}
13957unsafe extern "C" {
13958    pub fn BNGetArchitectureFlagName(
13959        arch: *mut BNArchitecture,
13960        flag: u32,
13961    ) -> *mut ::std::os::raw::c_char;
13962}
13963unsafe extern "C" {
13964    pub fn BNGetArchitectureFlagWriteTypeName(
13965        arch: *mut BNArchitecture,
13966        flags: u32,
13967    ) -> *mut ::std::os::raw::c_char;
13968}
13969unsafe extern "C" {
13970    pub fn BNGetArchitectureSemanticFlagClassName(
13971        arch: *mut BNArchitecture,
13972        semClass: u32,
13973    ) -> *mut ::std::os::raw::c_char;
13974}
13975unsafe extern "C" {
13976    pub fn BNGetArchitectureSemanticFlagGroupName(
13977        arch: *mut BNArchitecture,
13978        semGroup: u32,
13979    ) -> *mut ::std::os::raw::c_char;
13980}
13981unsafe extern "C" {
13982    pub fn BNGetFullWidthArchitectureRegisters(
13983        arch: *mut BNArchitecture,
13984        count: *mut usize,
13985    ) -> *mut u32;
13986}
13987unsafe extern "C" {
13988    pub fn BNGetAllArchitectureRegisters(arch: *mut BNArchitecture, count: *mut usize) -> *mut u32;
13989}
13990unsafe extern "C" {
13991    pub fn BNGetAllArchitectureFlags(arch: *mut BNArchitecture, count: *mut usize) -> *mut u32;
13992}
13993unsafe extern "C" {
13994    pub fn BNGetAllArchitectureFlagWriteTypes(
13995        arch: *mut BNArchitecture,
13996        count: *mut usize,
13997    ) -> *mut u32;
13998}
13999unsafe extern "C" {
14000    pub fn BNGetAllArchitectureSemanticFlagClasses(
14001        arch: *mut BNArchitecture,
14002        count: *mut usize,
14003    ) -> *mut u32;
14004}
14005unsafe extern "C" {
14006    pub fn BNGetAllArchitectureSemanticFlagGroups(
14007        arch: *mut BNArchitecture,
14008        count: *mut usize,
14009    ) -> *mut u32;
14010}
14011unsafe extern "C" {
14012    pub fn BNGetArchitectureFlagRole(
14013        arch: *mut BNArchitecture,
14014        flag: u32,
14015        semClass: u32,
14016    ) -> BNFlagRole;
14017}
14018unsafe extern "C" {
14019    pub fn BNGetArchitectureFlagsRequiredForFlagCondition(
14020        arch: *mut BNArchitecture,
14021        cond: BNLowLevelILFlagCondition,
14022        semClass: u32,
14023        count: *mut usize,
14024    ) -> *mut u32;
14025}
14026unsafe extern "C" {
14027    pub fn BNGetArchitectureFlagsRequiredForSemanticFlagGroup(
14028        arch: *mut BNArchitecture,
14029        semGroup: u32,
14030        count: *mut usize,
14031    ) -> *mut u32;
14032}
14033unsafe extern "C" {
14034    pub fn BNGetArchitectureFlagConditionsForSemanticFlagGroup(
14035        arch: *mut BNArchitecture,
14036        semGroup: u32,
14037        count: *mut usize,
14038    ) -> *mut BNFlagConditionForSemanticClass;
14039}
14040unsafe extern "C" {
14041    pub fn BNFreeFlagConditionsForSemanticFlagGroup(
14042        conditions: *mut BNFlagConditionForSemanticClass,
14043    );
14044}
14045unsafe extern "C" {
14046    pub fn BNGetArchitectureFlagsWrittenByFlagWriteType(
14047        arch: *mut BNArchitecture,
14048        writeType: u32,
14049        count: *mut usize,
14050    ) -> *mut u32;
14051}
14052unsafe extern "C" {
14053    pub fn BNGetArchitectureSemanticClassForFlagWriteType(
14054        arch: *mut BNArchitecture,
14055        writeType: u32,
14056    ) -> u32;
14057}
14058unsafe extern "C" {
14059    pub fn BNGetArchitectureFlagWriteLowLevelIL(
14060        arch: *mut BNArchitecture,
14061        op: BNLowLevelILOperation,
14062        size: usize,
14063        flagWriteType: u32,
14064        flag: u32,
14065        operands: *mut BNRegisterOrConstant,
14066        operandCount: usize,
14067        il: *mut BNLowLevelILFunction,
14068    ) -> usize;
14069}
14070unsafe extern "C" {
14071    pub fn BNGetDefaultArchitectureFlagWriteLowLevelIL(
14072        arch: *mut BNArchitecture,
14073        op: BNLowLevelILOperation,
14074        size: usize,
14075        role: BNFlagRole,
14076        operands: *mut BNRegisterOrConstant,
14077        operandCount: usize,
14078        il: *mut BNLowLevelILFunction,
14079    ) -> usize;
14080}
14081unsafe extern "C" {
14082    pub fn BNGetArchitectureFlagConditionLowLevelIL(
14083        arch: *mut BNArchitecture,
14084        cond: BNLowLevelILFlagCondition,
14085        semClass: u32,
14086        il: *mut BNLowLevelILFunction,
14087    ) -> usize;
14088}
14089unsafe extern "C" {
14090    pub fn BNGetDefaultArchitectureFlagConditionLowLevelIL(
14091        arch: *mut BNArchitecture,
14092        cond: BNLowLevelILFlagCondition,
14093        semClass: u32,
14094        il: *mut BNLowLevelILFunction,
14095    ) -> usize;
14096}
14097unsafe extern "C" {
14098    pub fn BNGetArchitectureSemanticFlagGroupLowLevelIL(
14099        arch: *mut BNArchitecture,
14100        semGroup: u32,
14101        il: *mut BNLowLevelILFunction,
14102    ) -> usize;
14103}
14104unsafe extern "C" {
14105    pub fn BNGetModifiedArchitectureRegistersOnWrite(
14106        arch: *mut BNArchitecture,
14107        reg: u32,
14108        count: *mut usize,
14109    ) -> *mut u32;
14110}
14111unsafe extern "C" {
14112    pub fn BNFreeRegisterList(regs: *mut u32);
14113}
14114unsafe extern "C" {
14115    pub fn BNGetArchitectureRegisterInfo(arch: *mut BNArchitecture, reg: u32) -> BNRegisterInfo;
14116}
14117unsafe extern "C" {
14118    pub fn BNGetArchitectureStackPointerRegister(arch: *mut BNArchitecture) -> u32;
14119}
14120unsafe extern "C" {
14121    pub fn BNGetArchitectureLinkRegister(arch: *mut BNArchitecture) -> u32;
14122}
14123unsafe extern "C" {
14124    pub fn BNGetArchitectureGlobalRegisters(
14125        arch: *mut BNArchitecture,
14126        count: *mut usize,
14127    ) -> *mut u32;
14128}
14129unsafe extern "C" {
14130    pub fn BNIsArchitectureGlobalRegister(arch: *mut BNArchitecture, reg: u32) -> bool;
14131}
14132unsafe extern "C" {
14133    pub fn BNGetArchitectureSystemRegisters(
14134        arch: *mut BNArchitecture,
14135        count: *mut usize,
14136    ) -> *mut u32;
14137}
14138unsafe extern "C" {
14139    pub fn BNIsArchitectureSystemRegister(arch: *mut BNArchitecture, reg: u32) -> bool;
14140}
14141unsafe extern "C" {
14142    pub fn BNGetArchitectureRegisterByName(
14143        arch: *mut BNArchitecture,
14144        name: *const ::std::os::raw::c_char,
14145    ) -> u32;
14146}
14147unsafe extern "C" {
14148    pub fn BNGetArchitectureRegisterStackName(
14149        arch: *mut BNArchitecture,
14150        regStack: u32,
14151    ) -> *mut ::std::os::raw::c_char;
14152}
14153unsafe extern "C" {
14154    pub fn BNGetAllArchitectureRegisterStacks(
14155        arch: *mut BNArchitecture,
14156        count: *mut usize,
14157    ) -> *mut u32;
14158}
14159unsafe extern "C" {
14160    pub fn BNGetArchitectureRegisterStackInfo(
14161        arch: *mut BNArchitecture,
14162        regStack: u32,
14163    ) -> BNRegisterStackInfo;
14164}
14165unsafe extern "C" {
14166    pub fn BNGetArchitectureRegisterStackForRegister(arch: *mut BNArchitecture, reg: u32) -> u32;
14167}
14168unsafe extern "C" {
14169    pub fn BNGetArchitectureIntrinsicClass(
14170        arch: *mut BNArchitecture,
14171        intrinsic: u32,
14172    ) -> BNIntrinsicClass;
14173}
14174unsafe extern "C" {
14175    pub fn BNGetArchitectureIntrinsicName(
14176        arch: *mut BNArchitecture,
14177        intrinsic: u32,
14178    ) -> *mut ::std::os::raw::c_char;
14179}
14180unsafe extern "C" {
14181    pub fn BNGetAllArchitectureIntrinsics(arch: *mut BNArchitecture, count: *mut usize)
14182    -> *mut u32;
14183}
14184unsafe extern "C" {
14185    pub fn BNGetArchitectureIntrinsicInputs(
14186        arch: *mut BNArchitecture,
14187        intrinsic: u32,
14188        count: *mut usize,
14189    ) -> *mut BNNameAndType;
14190}
14191unsafe extern "C" {
14192    pub fn BNFreeNameAndTypeList(nt: *mut BNNameAndType, count: usize);
14193}
14194unsafe extern "C" {
14195    pub fn BNGetArchitectureIntrinsicOutputs(
14196        arch: *mut BNArchitecture,
14197        intrinsic: u32,
14198        count: *mut usize,
14199    ) -> *mut BNTypeWithConfidence;
14200}
14201unsafe extern "C" {
14202    pub fn BNFreeOutputTypeList(types: *mut BNTypeWithConfidence, count: usize);
14203}
14204unsafe extern "C" {
14205    pub fn BNCanArchitectureAssemble(arch: *mut BNArchitecture) -> bool;
14206}
14207unsafe extern "C" {
14208    pub fn BNAssemble(
14209        arch: *mut BNArchitecture,
14210        code: *const ::std::os::raw::c_char,
14211        addr: u64,
14212        result: *mut BNDataBuffer,
14213        errors: *mut *mut ::std::os::raw::c_char,
14214    ) -> bool;
14215}
14216unsafe extern "C" {
14217    pub fn BNIsArchitectureNeverBranchPatchAvailable(
14218        arch: *mut BNArchitecture,
14219        data: *const u8,
14220        addr: u64,
14221        len: usize,
14222    ) -> bool;
14223}
14224unsafe extern "C" {
14225    pub fn BNIsArchitectureAlwaysBranchPatchAvailable(
14226        arch: *mut BNArchitecture,
14227        data: *const u8,
14228        addr: u64,
14229        len: usize,
14230    ) -> bool;
14231}
14232unsafe extern "C" {
14233    pub fn BNIsArchitectureInvertBranchPatchAvailable(
14234        arch: *mut BNArchitecture,
14235        data: *const u8,
14236        addr: u64,
14237        len: usize,
14238    ) -> bool;
14239}
14240unsafe extern "C" {
14241    pub fn BNIsArchitectureSkipAndReturnZeroPatchAvailable(
14242        arch: *mut BNArchitecture,
14243        data: *const u8,
14244        addr: u64,
14245        len: usize,
14246    ) -> bool;
14247}
14248unsafe extern "C" {
14249    pub fn BNIsArchitectureSkipAndReturnValuePatchAvailable(
14250        arch: *mut BNArchitecture,
14251        data: *const u8,
14252        addr: u64,
14253        len: usize,
14254    ) -> bool;
14255}
14256unsafe extern "C" {
14257    pub fn BNArchitectureConvertToNop(
14258        arch: *mut BNArchitecture,
14259        data: *mut u8,
14260        addr: u64,
14261        len: usize,
14262    ) -> bool;
14263}
14264unsafe extern "C" {
14265    pub fn BNArchitectureAlwaysBranch(
14266        arch: *mut BNArchitecture,
14267        data: *mut u8,
14268        addr: u64,
14269        len: usize,
14270    ) -> bool;
14271}
14272unsafe extern "C" {
14273    pub fn BNArchitectureInvertBranch(
14274        arch: *mut BNArchitecture,
14275        data: *mut u8,
14276        addr: u64,
14277        len: usize,
14278    ) -> bool;
14279}
14280unsafe extern "C" {
14281    pub fn BNArchitectureSkipAndReturnValue(
14282        arch: *mut BNArchitecture,
14283        data: *mut u8,
14284        addr: u64,
14285        len: usize,
14286        value: u64,
14287    ) -> bool;
14288}
14289unsafe extern "C" {
14290    pub fn BNRegisterArchitectureFunctionRecognizer(
14291        arch: *mut BNArchitecture,
14292        rec: *mut BNFunctionRecognizer,
14293    );
14294}
14295unsafe extern "C" {
14296    pub fn BNArchitectureRegisterRelocationHandler(
14297        arch: *mut BNArchitecture,
14298        viewName: *const ::std::os::raw::c_char,
14299        handler: *mut BNRelocationHandler,
14300    );
14301}
14302unsafe extern "C" {
14303    pub fn BNCreateRelocationHandler(
14304        handler: *mut BNCustomRelocationHandler,
14305    ) -> *mut BNRelocationHandler;
14306}
14307unsafe extern "C" {
14308    pub fn BNArchitectureGetRelocationHandler(
14309        arch: *mut BNArchitecture,
14310        viewName: *const ::std::os::raw::c_char,
14311    ) -> *mut BNRelocationHandler;
14312}
14313unsafe extern "C" {
14314    pub fn BNNewRelocationHandlerReference(
14315        handler: *mut BNRelocationHandler,
14316    ) -> *mut BNRelocationHandler;
14317}
14318unsafe extern "C" {
14319    pub fn BNFreeRelocationHandler(handler: *mut BNRelocationHandler);
14320}
14321unsafe extern "C" {
14322    pub fn BNRelocationHandlerGetRelocationInfo(
14323        handler: *mut BNRelocationHandler,
14324        data: *mut BNBinaryView,
14325        arch: *mut BNArchitecture,
14326        info: *mut BNRelocationInfo,
14327        infoCount: usize,
14328    ) -> bool;
14329}
14330unsafe extern "C" {
14331    pub fn BNRelocationHandlerApplyRelocation(
14332        handler: *mut BNRelocationHandler,
14333        view: *mut BNBinaryView,
14334        arch: *mut BNArchitecture,
14335        reloc: *mut BNRelocation,
14336        dest: *mut u8,
14337        len: usize,
14338    ) -> bool;
14339}
14340unsafe extern "C" {
14341    pub fn BNRelocationHandlerDefaultApplyRelocation(
14342        handler: *mut BNRelocationHandler,
14343        view: *mut BNBinaryView,
14344        arch: *mut BNArchitecture,
14345        reloc: *mut BNRelocation,
14346        dest: *mut u8,
14347        len: usize,
14348    ) -> bool;
14349}
14350unsafe extern "C" {
14351    pub fn BNRelocationHandlerGetOperandForExternalRelocation(
14352        handler: *mut BNRelocationHandler,
14353        data: *const u8,
14354        addr: u64,
14355        length: usize,
14356        il: *const BNLowLevelILFunction,
14357        relocation: *mut BNRelocation,
14358    ) -> usize;
14359}
14360unsafe extern "C" {
14361    #[doc = " Analysis"]
14362    pub fn BNAddAnalysisOption(view: *mut BNBinaryView, name: *const ::std::os::raw::c_char);
14363}
14364unsafe extern "C" {
14365    pub fn BNAddFunctionForAnalysis(
14366        view: *mut BNBinaryView,
14367        platform: *mut BNPlatform,
14368        addr: u64,
14369        autoDiscovered: bool,
14370        type_: *mut BNType,
14371    ) -> *mut BNFunction;
14372}
14373unsafe extern "C" {
14374    pub fn BNAddEntryPointForAnalysis(
14375        view: *mut BNBinaryView,
14376        platform: *mut BNPlatform,
14377        addr: u64,
14378    );
14379}
14380unsafe extern "C" {
14381    pub fn BNRemoveAnalysisFunction(
14382        view: *mut BNBinaryView,
14383        func: *mut BNFunction,
14384        updateRefs: bool,
14385    );
14386}
14387unsafe extern "C" {
14388    pub fn BNCreateUserFunction(
14389        view: *mut BNBinaryView,
14390        platform: *mut BNPlatform,
14391        addr: u64,
14392    ) -> *mut BNFunction;
14393}
14394unsafe extern "C" {
14395    pub fn BNRemoveUserFunction(view: *mut BNBinaryView, func: *mut BNFunction);
14396}
14397unsafe extern "C" {
14398    pub fn BNHasInitialAnalysis(view: *mut BNBinaryView) -> bool;
14399}
14400unsafe extern "C" {
14401    pub fn BNSetAnalysisHold(view: *mut BNBinaryView, enable: bool);
14402}
14403unsafe extern "C" {
14404    pub fn BNGetFunctionAnalysisUpdateDisabled(view: *mut BNBinaryView) -> bool;
14405}
14406unsafe extern "C" {
14407    pub fn BNSetFunctionAnalysisUpdateDisabled(view: *mut BNBinaryView, disabled: bool);
14408}
14409unsafe extern "C" {
14410    pub fn BNUpdateAnalysisAndWait(view: *mut BNBinaryView);
14411}
14412unsafe extern "C" {
14413    pub fn BNUpdateAnalysis(view: *mut BNBinaryView);
14414}
14415unsafe extern "C" {
14416    pub fn BNAbortAnalysis(view: *mut BNBinaryView);
14417}
14418unsafe extern "C" {
14419    pub fn BNAnalysisIsAborted(view: *mut BNBinaryView) -> bool;
14420}
14421unsafe extern "C" {
14422    pub fn BNIsFunctionUpdateNeeded(func: *mut BNFunction) -> bool;
14423}
14424unsafe extern "C" {
14425    pub fn BNRequestAdvancedFunctionAnalysisData(func: *mut BNFunction);
14426}
14427unsafe extern "C" {
14428    pub fn BNReleaseAdvancedFunctionAnalysisData(func: *mut BNFunction);
14429}
14430unsafe extern "C" {
14431    pub fn BNReleaseAdvancedFunctionAnalysisDataMultiple(func: *mut BNFunction, count: usize);
14432}
14433unsafe extern "C" {
14434    pub fn BNNewFunctionReference(func: *mut BNFunction) -> *mut BNFunction;
14435}
14436unsafe extern "C" {
14437    pub fn BNFreeFunction(func: *mut BNFunction);
14438}
14439unsafe extern "C" {
14440    pub fn BNGetAnalysisFunctionList(
14441        view: *mut BNBinaryView,
14442        count: *mut usize,
14443    ) -> *mut *mut BNFunction;
14444}
14445unsafe extern "C" {
14446    pub fn BNFreeFunctionList(funcs: *mut *mut BNFunction, count: usize);
14447}
14448unsafe extern "C" {
14449    pub fn BNHasFunctions(view: *mut BNBinaryView) -> bool;
14450}
14451unsafe extern "C" {
14452    pub fn BNHasSymbols(view: *mut BNBinaryView) -> bool;
14453}
14454unsafe extern "C" {
14455    pub fn BNHasDataVariables(view: *mut BNBinaryView) -> bool;
14456}
14457unsafe extern "C" {
14458    pub fn BNGetAnalysisFunction(
14459        view: *mut BNBinaryView,
14460        platform: *mut BNPlatform,
14461        addr: u64,
14462    ) -> *mut BNFunction;
14463}
14464unsafe extern "C" {
14465    pub fn BNGetRecentAnalysisFunctionForAddress(
14466        view: *mut BNBinaryView,
14467        addr: u64,
14468    ) -> *mut BNFunction;
14469}
14470unsafe extern "C" {
14471    pub fn BNGetAnalysisFunctionsForAddress(
14472        view: *mut BNBinaryView,
14473        addr: u64,
14474        count: *mut usize,
14475    ) -> *mut *mut BNFunction;
14476}
14477unsafe extern "C" {
14478    pub fn BNGetAnalysisFunctionsContainingAddress(
14479        view: *mut BNBinaryView,
14480        addr: u64,
14481        count: *mut usize,
14482    ) -> *mut *mut BNFunction;
14483}
14484unsafe extern "C" {
14485    pub fn BNGetAnalysisEntryPoint(view: *mut BNBinaryView) -> *mut BNFunction;
14486}
14487unsafe extern "C" {
14488    pub fn BNGetAllEntryFunctions(
14489        view: *mut BNBinaryView,
14490        count: *mut usize,
14491    ) -> *mut *mut BNFunction;
14492}
14493unsafe extern "C" {
14494    pub fn BNAddToEntryFunctions(view: *mut BNBinaryView, func: *mut BNFunction);
14495}
14496unsafe extern "C" {
14497    pub fn BNGetGlobalCommentForAddress(
14498        view: *mut BNBinaryView,
14499        addr: u64,
14500    ) -> *mut ::std::os::raw::c_char;
14501}
14502unsafe extern "C" {
14503    pub fn BNGetGlobalCommentedAddresses(view: *mut BNBinaryView, count: *mut usize) -> *mut u64;
14504}
14505unsafe extern "C" {
14506    pub fn BNSetGlobalCommentForAddress(
14507        view: *mut BNBinaryView,
14508        addr: u64,
14509        comment: *const ::std::os::raw::c_char,
14510    );
14511}
14512unsafe extern "C" {
14513    pub fn BNGetFunctionData(func: *mut BNFunction) -> *mut BNBinaryView;
14514}
14515unsafe extern "C" {
14516    pub fn BNGetFunctionArchitecture(func: *mut BNFunction) -> *mut BNArchitecture;
14517}
14518unsafe extern "C" {
14519    pub fn BNGetFunctionPlatform(func: *mut BNFunction) -> *mut BNPlatform;
14520}
14521unsafe extern "C" {
14522    pub fn BNGetFunctionStart(func: *mut BNFunction) -> u64;
14523}
14524unsafe extern "C" {
14525    pub fn BNGetFunctionSymbol(func: *mut BNFunction) -> *mut BNSymbol;
14526}
14527unsafe extern "C" {
14528    pub fn BNWasFunctionAutomaticallyDiscovered(func: *mut BNFunction) -> bool;
14529}
14530unsafe extern "C" {
14531    pub fn BNFunctionHasUserAnnotations(func: *mut BNFunction) -> bool;
14532}
14533unsafe extern "C" {
14534    pub fn BNCanFunctionReturn(func: *mut BNFunction) -> BNBoolWithConfidence;
14535}
14536unsafe extern "C" {
14537    pub fn BNIsFunctionPure(func: *mut BNFunction) -> BNBoolWithConfidence;
14538}
14539unsafe extern "C" {
14540    pub fn BNSetFunctionAutoType(func: *mut BNFunction, type_: *mut BNType);
14541}
14542unsafe extern "C" {
14543    pub fn BNSetFunctionUserType(func: *mut BNFunction, type_: *mut BNType);
14544}
14545unsafe extern "C" {
14546    pub fn BNFunctionHasUserType(func: *mut BNFunction) -> bool;
14547}
14548unsafe extern "C" {
14549    pub fn BNGetFunctionComment(func: *mut BNFunction) -> *mut ::std::os::raw::c_char;
14550}
14551unsafe extern "C" {
14552    pub fn BNGetCommentForAddress(func: *mut BNFunction, addr: u64) -> *mut ::std::os::raw::c_char;
14553}
14554unsafe extern "C" {
14555    pub fn BNGetCommentedAddresses(func: *mut BNFunction, count: *mut usize) -> *mut u64;
14556}
14557unsafe extern "C" {
14558    pub fn BNFreeAddressList(addrs: *mut u64);
14559}
14560unsafe extern "C" {
14561    pub fn BNSetFunctionComment(func: *mut BNFunction, comment: *const ::std::os::raw::c_char);
14562}
14563unsafe extern "C" {
14564    pub fn BNSetCommentForAddress(
14565        func: *mut BNFunction,
14566        addr: u64,
14567        comment: *const ::std::os::raw::c_char,
14568    );
14569}
14570unsafe extern "C" {
14571    pub fn BNAddUserCodeReference(
14572        func: *mut BNFunction,
14573        fromArch: *mut BNArchitecture,
14574        fromAddr: u64,
14575        toAddr: u64,
14576    );
14577}
14578unsafe extern "C" {
14579    pub fn BNRemoveUserCodeReference(
14580        func: *mut BNFunction,
14581        fromArch: *mut BNArchitecture,
14582        fromAddr: u64,
14583        toAddr: u64,
14584    );
14585}
14586unsafe extern "C" {
14587    pub fn BNAddUserTypeReference(
14588        func: *mut BNFunction,
14589        fromArch: *mut BNArchitecture,
14590        fromAddr: u64,
14591        name: *mut BNQualifiedName,
14592    );
14593}
14594unsafe extern "C" {
14595    pub fn BNRemoveUserTypeReference(
14596        func: *mut BNFunction,
14597        fromArch: *mut BNArchitecture,
14598        fromAddr: u64,
14599        name: *mut BNQualifiedName,
14600    );
14601}
14602unsafe extern "C" {
14603    pub fn BNAddUserTypeFieldReference(
14604        func: *mut BNFunction,
14605        fromArch: *mut BNArchitecture,
14606        fromAddr: u64,
14607        name: *mut BNQualifiedName,
14608        offset: u64,
14609        size: usize,
14610    );
14611}
14612unsafe extern "C" {
14613    pub fn BNRemoveUserTypeFieldReference(
14614        func: *mut BNFunction,
14615        fromArch: *mut BNArchitecture,
14616        fromAddr: u64,
14617        name: *mut BNQualifiedName,
14618        offset: u64,
14619        size: usize,
14620    );
14621}
14622unsafe extern "C" {
14623    pub fn BNGetForeignFunctionLiftedIL(
14624        func: *const BNFunction,
14625        logger: *const BNLogger,
14626        inlinedCallsCount: usize,
14627        inlinedCalls: *const u64,
14628    ) -> *mut BNLowLevelILFunction;
14629}
14630unsafe extern "C" {
14631    pub fn BNNewBasicBlockReference(block: *mut BNBasicBlock) -> *mut BNBasicBlock;
14632}
14633unsafe extern "C" {
14634    pub fn BNFreeBasicBlock(block: *mut BNBasicBlock);
14635}
14636unsafe extern "C" {
14637    pub fn BNGetFunctionBasicBlockList(
14638        func: *mut BNFunction,
14639        count: *mut usize,
14640    ) -> *mut *mut BNBasicBlock;
14641}
14642unsafe extern "C" {
14643    pub fn BNFreeBasicBlockList(blocks: *mut *mut BNBasicBlock, count: usize);
14644}
14645unsafe extern "C" {
14646    pub fn BNGetFunctionBasicBlockAtAddress(
14647        func: *mut BNFunction,
14648        arch: *mut BNArchitecture,
14649        addr: u64,
14650    ) -> *mut BNBasicBlock;
14651}
14652unsafe extern "C" {
14653    pub fn BNGetRecentBasicBlockForAddress(view: *mut BNBinaryView, addr: u64)
14654    -> *mut BNBasicBlock;
14655}
14656unsafe extern "C" {
14657    pub fn BNGetBasicBlocksForAddress(
14658        view: *mut BNBinaryView,
14659        addr: u64,
14660        count: *mut usize,
14661    ) -> *mut *mut BNBasicBlock;
14662}
14663unsafe extern "C" {
14664    pub fn BNGetBasicBlocksStartingAtAddress(
14665        view: *mut BNBinaryView,
14666        addr: u64,
14667        count: *mut usize,
14668    ) -> *mut *mut BNBasicBlock;
14669}
14670unsafe extern "C" {
14671    pub fn BNGetFunctionHighestAddress(func: *mut BNFunction) -> u64;
14672}
14673unsafe extern "C" {
14674    pub fn BNGetFunctionLowestAddress(func: *mut BNFunction) -> u64;
14675}
14676unsafe extern "C" {
14677    pub fn BNGetFunctionAddressRanges(
14678        func: *mut BNFunction,
14679        count: *mut usize,
14680    ) -> *mut BNAddressRange;
14681}
14682unsafe extern "C" {
14683    pub fn BNGetFunctionLowLevelIL(func: *mut BNFunction) -> *mut BNLowLevelILFunction;
14684}
14685unsafe extern "C" {
14686    pub fn BNGetFunctionLowLevelILIfAvailable(func: *mut BNFunction) -> *mut BNLowLevelILFunction;
14687}
14688unsafe extern "C" {
14689    pub fn BNFreeILInstructionList(list: *mut usize);
14690}
14691unsafe extern "C" {
14692    pub fn BNGetFunctionMediumLevelIL(func: *mut BNFunction) -> *mut BNMediumLevelILFunction;
14693}
14694unsafe extern "C" {
14695    pub fn BNGetFunctionMediumLevelILIfAvailable(
14696        func: *mut BNFunction,
14697    ) -> *mut BNMediumLevelILFunction;
14698}
14699unsafe extern "C" {
14700    pub fn BNGetFunctionMappedMediumLevelIL(func: *mut BNFunction) -> *mut BNMediumLevelILFunction;
14701}
14702unsafe extern "C" {
14703    pub fn BNGetFunctionMappedMediumLevelILIfAvailable(
14704        func: *mut BNFunction,
14705    ) -> *mut BNMediumLevelILFunction;
14706}
14707unsafe extern "C" {
14708    pub fn BNGetFunctionHighLevelIL(func: *mut BNFunction) -> *mut BNHighLevelILFunction;
14709}
14710unsafe extern "C" {
14711    pub fn BNGetFunctionHighLevelILIfAvailable(func: *mut BNFunction)
14712    -> *mut BNHighLevelILFunction;
14713}
14714unsafe extern "C" {
14715    pub fn BNGetFunctionLanguageRepresentation(
14716        func: *mut BNFunction,
14717        language: *const ::std::os::raw::c_char,
14718    ) -> *mut BNLanguageRepresentationFunction;
14719}
14720unsafe extern "C" {
14721    pub fn BNGetFunctionLanguageRepresentationIfAvailable(
14722        func: *mut BNFunction,
14723        language: *const ::std::os::raw::c_char,
14724    ) -> *mut BNLanguageRepresentationFunction;
14725}
14726unsafe extern "C" {
14727    pub fn BNGetConstantData(
14728        func: *mut BNFunction,
14729        state: BNRegisterValueType,
14730        value: u64,
14731        size: usize,
14732        builtin: *mut BNBuiltinType,
14733    ) -> *mut BNDataBuffer;
14734}
14735unsafe extern "C" {
14736    pub fn BNGetRegisterValueAtInstruction(
14737        func: *mut BNFunction,
14738        arch: *mut BNArchitecture,
14739        addr: u64,
14740        reg: u32,
14741    ) -> BNRegisterValue;
14742}
14743unsafe extern "C" {
14744    pub fn BNGetRegisterValueAfterInstruction(
14745        func: *mut BNFunction,
14746        arch: *mut BNArchitecture,
14747        addr: u64,
14748        reg: u32,
14749    ) -> BNRegisterValue;
14750}
14751unsafe extern "C" {
14752    pub fn BNGetStackContentsAtInstruction(
14753        func: *mut BNFunction,
14754        arch: *mut BNArchitecture,
14755        addr: u64,
14756        offset: i64,
14757        size: usize,
14758    ) -> BNRegisterValue;
14759}
14760unsafe extern "C" {
14761    pub fn BNGetStackContentsAfterInstruction(
14762        func: *mut BNFunction,
14763        arch: *mut BNArchitecture,
14764        addr: u64,
14765        offset: i64,
14766        size: usize,
14767    ) -> BNRegisterValue;
14768}
14769unsafe extern "C" {
14770    pub fn BNGetParameterValueAtInstruction(
14771        func: *mut BNFunction,
14772        arch: *mut BNArchitecture,
14773        addr: u64,
14774        functionType: *mut BNType,
14775        i: usize,
14776    ) -> BNRegisterValue;
14777}
14778unsafe extern "C" {
14779    pub fn BNGetParameterValueAtLowLevelILInstruction(
14780        func: *mut BNFunction,
14781        instr: usize,
14782        functionType: *mut BNType,
14783        i: usize,
14784    ) -> BNRegisterValue;
14785}
14786unsafe extern "C" {
14787    pub fn BNGetRegistersReadByInstruction(
14788        func: *mut BNFunction,
14789        arch: *mut BNArchitecture,
14790        addr: u64,
14791        count: *mut usize,
14792    ) -> *mut u32;
14793}
14794unsafe extern "C" {
14795    pub fn BNGetRegistersWrittenByInstruction(
14796        func: *mut BNFunction,
14797        arch: *mut BNArchitecture,
14798        addr: u64,
14799        count: *mut usize,
14800    ) -> *mut u32;
14801}
14802unsafe extern "C" {
14803    pub fn BNGetStackVariablesReferencedByInstruction(
14804        func: *mut BNFunction,
14805        arch: *mut BNArchitecture,
14806        addr: u64,
14807        count: *mut usize,
14808    ) -> *mut BNStackVariableReference;
14809}
14810unsafe extern "C" {
14811    pub fn BNGetStackVariablesReferencedByInstructionIfAvailable(
14812        func: *mut BNFunction,
14813        arch: *mut BNArchitecture,
14814        addr: u64,
14815        count: *mut usize,
14816    ) -> *mut BNStackVariableReference;
14817}
14818unsafe extern "C" {
14819    pub fn BNFreeStackVariableReferenceList(refs: *mut BNStackVariableReference, count: usize);
14820}
14821unsafe extern "C" {
14822    pub fn BNGetConstantsReferencedByInstruction(
14823        func: *mut BNFunction,
14824        arch: *mut BNArchitecture,
14825        addr: u64,
14826        count: *mut usize,
14827    ) -> *mut BNConstantReference;
14828}
14829unsafe extern "C" {
14830    pub fn BNGetConstantsReferencedByInstructionIfAvailable(
14831        func: *mut BNFunction,
14832        arch: *mut BNArchitecture,
14833        addr: u64,
14834        count: *mut usize,
14835    ) -> *mut BNConstantReference;
14836}
14837unsafe extern "C" {
14838    pub fn BNFreeConstantReferenceList(refs: *mut BNConstantReference);
14839}
14840unsafe extern "C" {
14841    pub fn BNGetFunctionLiftedIL(func: *mut BNFunction) -> *mut BNLowLevelILFunction;
14842}
14843unsafe extern "C" {
14844    pub fn BNGetFunctionLiftedILIfAvailable(func: *mut BNFunction) -> *mut BNLowLevelILFunction;
14845}
14846unsafe extern "C" {
14847    pub fn BNGetLiftedILFlagUsesForDefinition(
14848        func: *mut BNFunction,
14849        i: usize,
14850        flag: u32,
14851        count: *mut usize,
14852    ) -> *mut usize;
14853}
14854unsafe extern "C" {
14855    pub fn BNGetLiftedILFlagDefinitionsForUse(
14856        func: *mut BNFunction,
14857        i: usize,
14858        flag: u32,
14859        count: *mut usize,
14860    ) -> *mut usize;
14861}
14862unsafe extern "C" {
14863    pub fn BNGetFlagsReadByLiftedILInstruction(
14864        func: *mut BNFunction,
14865        i: usize,
14866        count: *mut usize,
14867    ) -> *mut u32;
14868}
14869unsafe extern "C" {
14870    pub fn BNGetFlagsWrittenByLiftedILInstruction(
14871        func: *mut BNFunction,
14872        i: usize,
14873        count: *mut usize,
14874    ) -> *mut u32;
14875}
14876unsafe extern "C" {
14877    pub fn BNGetFunctionType(func: *mut BNFunction) -> *mut BNType;
14878}
14879unsafe extern "C" {
14880    pub fn BNGetFunctionReturnType(func: *mut BNFunction) -> BNTypeWithConfidence;
14881}
14882unsafe extern "C" {
14883    pub fn BNGetFunctionReturnRegisters(func: *mut BNFunction) -> BNRegisterSetWithConfidence;
14884}
14885unsafe extern "C" {
14886    pub fn BNGetFunctionCallingConvention(
14887        func: *mut BNFunction,
14888    ) -> BNCallingConventionWithConfidence;
14889}
14890unsafe extern "C" {
14891    pub fn BNGetFunctionParameterVariables(
14892        func: *mut BNFunction,
14893    ) -> BNParameterVariablesWithConfidence;
14894}
14895unsafe extern "C" {
14896    pub fn BNFreeParameterVariables(vars: *mut BNParameterVariablesWithConfidence);
14897}
14898unsafe extern "C" {
14899    pub fn BNFunctionHasVariableArguments(func: *mut BNFunction) -> BNBoolWithConfidence;
14900}
14901unsafe extern "C" {
14902    pub fn BNGetFunctionStackAdjustment(func: *mut BNFunction) -> BNOffsetWithConfidence;
14903}
14904unsafe extern "C" {
14905    pub fn BNGetFunctionRegisterStackAdjustments(
14906        func: *mut BNFunction,
14907        count: *mut usize,
14908    ) -> *mut BNRegisterStackAdjustment;
14909}
14910unsafe extern "C" {
14911    pub fn BNFreeRegisterStackAdjustments(adjustments: *mut BNRegisterStackAdjustment);
14912}
14913unsafe extern "C" {
14914    pub fn BNGetFunctionClobberedRegisters(func: *mut BNFunction) -> BNRegisterSetWithConfidence;
14915}
14916unsafe extern "C" {
14917    pub fn BNFreeRegisterSet(regs: *mut BNRegisterSetWithConfidence);
14918}
14919unsafe extern "C" {
14920    pub fn BNSetAutoFunctionReturnType(func: *mut BNFunction, type_: *mut BNTypeWithConfidence);
14921}
14922unsafe extern "C" {
14923    pub fn BNSetAutoFunctionReturnRegisters(
14924        func: *mut BNFunction,
14925        regs: *mut BNRegisterSetWithConfidence,
14926    );
14927}
14928unsafe extern "C" {
14929    pub fn BNSetAutoFunctionCallingConvention(
14930        func: *mut BNFunction,
14931        convention: *mut BNCallingConventionWithConfidence,
14932    );
14933}
14934unsafe extern "C" {
14935    pub fn BNSetAutoFunctionParameterVariables(
14936        func: *mut BNFunction,
14937        vars: *mut BNParameterVariablesWithConfidence,
14938    );
14939}
14940unsafe extern "C" {
14941    pub fn BNSetAutoFunctionHasVariableArguments(
14942        func: *mut BNFunction,
14943        varArgs: *mut BNBoolWithConfidence,
14944    );
14945}
14946unsafe extern "C" {
14947    pub fn BNSetAutoFunctionCanReturn(func: *mut BNFunction, returns: *mut BNBoolWithConfidence);
14948}
14949unsafe extern "C" {
14950    pub fn BNSetAutoFunctionPure(func: *mut BNFunction, pure_: *mut BNBoolWithConfidence);
14951}
14952unsafe extern "C" {
14953    pub fn BNSetAutoFunctionStackAdjustment(
14954        func: *mut BNFunction,
14955        stackAdjust: *mut BNOffsetWithConfidence,
14956    );
14957}
14958unsafe extern "C" {
14959    pub fn BNSetAutoFunctionRegisterStackAdjustments(
14960        func: *mut BNFunction,
14961        adjustments: *mut BNRegisterStackAdjustment,
14962        count: usize,
14963    );
14964}
14965unsafe extern "C" {
14966    pub fn BNSetAutoFunctionClobberedRegisters(
14967        func: *mut BNFunction,
14968        regs: *mut BNRegisterSetWithConfidence,
14969    );
14970}
14971unsafe extern "C" {
14972    pub fn BNSetUserFunctionReturnType(func: *mut BNFunction, type_: *mut BNTypeWithConfidence);
14973}
14974unsafe extern "C" {
14975    pub fn BNSetUserFunctionReturnRegisters(
14976        func: *mut BNFunction,
14977        regs: *mut BNRegisterSetWithConfidence,
14978    );
14979}
14980unsafe extern "C" {
14981    pub fn BNSetUserFunctionCallingConvention(
14982        func: *mut BNFunction,
14983        convention: *mut BNCallingConventionWithConfidence,
14984    );
14985}
14986unsafe extern "C" {
14987    pub fn BNSetUserFunctionParameterVariables(
14988        func: *mut BNFunction,
14989        vars: *mut BNParameterVariablesWithConfidence,
14990    );
14991}
14992unsafe extern "C" {
14993    pub fn BNSetUserFunctionHasVariableArguments(
14994        func: *mut BNFunction,
14995        varArgs: *mut BNBoolWithConfidence,
14996    );
14997}
14998unsafe extern "C" {
14999    pub fn BNSetUserFunctionCanReturn(func: *mut BNFunction, returns: *mut BNBoolWithConfidence);
15000}
15001unsafe extern "C" {
15002    pub fn BNSetUserFunctionPure(func: *mut BNFunction, pure_: *mut BNBoolWithConfidence);
15003}
15004unsafe extern "C" {
15005    pub fn BNSetUserFunctionStackAdjustment(
15006        func: *mut BNFunction,
15007        stackAdjust: *mut BNOffsetWithConfidence,
15008    );
15009}
15010unsafe extern "C" {
15011    pub fn BNSetUserFunctionRegisterStackAdjustments(
15012        func: *mut BNFunction,
15013        adjustments: *mut BNRegisterStackAdjustment,
15014        count: usize,
15015    );
15016}
15017unsafe extern "C" {
15018    pub fn BNSetUserFunctionClobberedRegisters(
15019        func: *mut BNFunction,
15020        regs: *mut BNRegisterSetWithConfidence,
15021    );
15022}
15023unsafe extern "C" {
15024    pub fn BNApplyImportedTypes(func: *mut BNFunction, sym: *mut BNSymbol, type_: *mut BNType);
15025}
15026unsafe extern "C" {
15027    pub fn BNApplyAutoDiscoveredFunctionType(func: *mut BNFunction, type_: *mut BNType);
15028}
15029unsafe extern "C" {
15030    pub fn BNFunctionHasExplicitlyDefinedType(func: *mut BNFunction) -> bool;
15031}
15032unsafe extern "C" {
15033    pub fn BNGetFunctionTypeTokens(
15034        func: *mut BNFunction,
15035        settings: *mut BNDisassemblySettings,
15036        count: *mut usize,
15037    ) -> *mut BNDisassemblyTextLine;
15038}
15039unsafe extern "C" {
15040    pub fn BNGetFunctionGlobalPointerValue(func: *mut BNFunction) -> BNRegisterValueWithConfidence;
15041}
15042unsafe extern "C" {
15043    pub fn BNFunctionUsesIncomingGlobalPointer(func: *mut BNFunction) -> bool;
15044}
15045unsafe extern "C" {
15046    pub fn BNGetFunctionRegisterValueAtExit(
15047        func: *mut BNFunction,
15048        reg: u32,
15049    ) -> BNRegisterValueWithConfidence;
15050}
15051unsafe extern "C" {
15052    pub fn BNIsFunctionInlinedDuringAnalysis(func: *mut BNFunction) -> BNBoolWithConfidence;
15053}
15054unsafe extern "C" {
15055    pub fn BNGetFunctionInlinedDuringAnalysis(
15056        func: *mut BNFunction,
15057    ) -> BNInlineDuringAnalysisWithConfidence;
15058}
15059unsafe extern "C" {
15060    pub fn BNSetAutoFunctionInlinedDuringAnalysis(
15061        func: *mut BNFunction,
15062        inlined: BNInlineDuringAnalysisWithConfidence,
15063    );
15064}
15065unsafe extern "C" {
15066    pub fn BNSetUserFunctionInlinedDuringAnalysis(
15067        func: *mut BNFunction,
15068        inlined: BNInlineDuringAnalysisWithConfidence,
15069    );
15070}
15071unsafe extern "C" {
15072    pub fn BNGetInstructionContainingAddress(
15073        func: *mut BNFunction,
15074        arch: *mut BNArchitecture,
15075        addr: u64,
15076        start: *mut u64,
15077    ) -> bool;
15078}
15079unsafe extern "C" {
15080    pub fn BNGetBasicBlockFunction(block: *mut BNBasicBlock) -> *mut BNFunction;
15081}
15082unsafe extern "C" {
15083    pub fn BNGetBasicBlockArchitecture(block: *mut BNBasicBlock) -> *mut BNArchitecture;
15084}
15085unsafe extern "C" {
15086    pub fn BNGetBasicBlockSource(block: *mut BNBasicBlock) -> *mut BNBasicBlock;
15087}
15088unsafe extern "C" {
15089    pub fn BNGetBasicBlockStart(block: *mut BNBasicBlock) -> u64;
15090}
15091unsafe extern "C" {
15092    pub fn BNSetBasicBlockEnd(block: *mut BNBasicBlock, end: u64);
15093}
15094unsafe extern "C" {
15095    pub fn BNGetBasicBlockEnd(block: *mut BNBasicBlock) -> u64;
15096}
15097unsafe extern "C" {
15098    pub fn BNGetBasicBlockLength(block: *mut BNBasicBlock) -> u64;
15099}
15100unsafe extern "C" {
15101    pub fn BNGetBasicBlockOutgoingEdges(
15102        block: *mut BNBasicBlock,
15103        count: *mut usize,
15104    ) -> *mut BNBasicBlockEdge;
15105}
15106unsafe extern "C" {
15107    pub fn BNGetBasicBlockIncomingEdges(
15108        block: *mut BNBasicBlock,
15109        count: *mut usize,
15110    ) -> *mut BNBasicBlockEdge;
15111}
15112unsafe extern "C" {
15113    pub fn BNFreeBasicBlockEdgeList(edges: *mut BNBasicBlockEdge, count: usize);
15114}
15115unsafe extern "C" {
15116    pub fn BNBasicBlockHasUndeterminedOutgoingEdges(block: *mut BNBasicBlock) -> bool;
15117}
15118unsafe extern "C" {
15119    pub fn BNBasicBlockAddPendingOutgoingEdge(
15120        block: *mut BNBasicBlock,
15121        type_: BNBranchType,
15122        addr: u64,
15123        arch: *mut BNArchitecture,
15124        fallThrough: bool,
15125    );
15126}
15127unsafe extern "C" {
15128    pub fn BNGetBasicBlockPendingOutgoingEdges(
15129        block: *mut BNBasicBlock,
15130        count: *mut usize,
15131    ) -> *mut BNPendingBasicBlockEdge;
15132}
15133unsafe extern "C" {
15134    pub fn BNFreePendingBasicBlockEdgeList(edges: *mut BNPendingBasicBlockEdge);
15135}
15136unsafe extern "C" {
15137    pub fn BNClearBasicBlockPendingOutgoingEdges(block: *mut BNBasicBlock);
15138}
15139unsafe extern "C" {
15140    pub fn BNBasicBlockSetUndeterminedOutgoingEdges(block: *mut BNBasicBlock, value: bool);
15141}
15142unsafe extern "C" {
15143    pub fn BNBasicBlockHasInstructionData(block: *mut BNBasicBlock) -> bool;
15144}
15145unsafe extern "C" {
15146    pub fn BNBasicBlockGetInstructionData(
15147        block: *mut BNBasicBlock,
15148        addr: u64,
15149        len: *mut usize,
15150    ) -> *const u8;
15151}
15152unsafe extern "C" {
15153    pub fn BNBasicBlockAddInstructionData(
15154        block: *mut BNBasicBlock,
15155        data: *const ::std::os::raw::c_void,
15156        len: usize,
15157    );
15158}
15159unsafe extern "C" {
15160    pub fn BNBasicBlockSetFallThroughToFunction(block: *mut BNBasicBlock, value: bool);
15161}
15162unsafe extern "C" {
15163    pub fn BNBasicBlockIsFallThroughToFunction(block: *mut BNBasicBlock) -> bool;
15164}
15165unsafe extern "C" {
15166    pub fn BNBasicBlockCanExit(block: *mut BNBasicBlock) -> bool;
15167}
15168unsafe extern "C" {
15169    pub fn BNBasicBlockSetCanExit(block: *mut BNBasicBlock, value: bool);
15170}
15171unsafe extern "C" {
15172    pub fn BNBasicBlockSetHasInvalidInstructions(block: *mut BNBasicBlock, value: bool);
15173}
15174unsafe extern "C" {
15175    pub fn BNBasicBlockHasInvalidInstructions(block: *mut BNBasicBlock) -> bool;
15176}
15177unsafe extern "C" {
15178    pub fn BNGetBasicBlockIndex(block: *mut BNBasicBlock) -> usize;
15179}
15180unsafe extern "C" {
15181    pub fn BNGetBasicBlockDominators(
15182        block: *mut BNBasicBlock,
15183        count: *mut usize,
15184        post: bool,
15185    ) -> *mut *mut BNBasicBlock;
15186}
15187unsafe extern "C" {
15188    pub fn BNGetBasicBlockStrictDominators(
15189        block: *mut BNBasicBlock,
15190        count: *mut usize,
15191        post: bool,
15192    ) -> *mut *mut BNBasicBlock;
15193}
15194unsafe extern "C" {
15195    pub fn BNGetBasicBlockImmediateDominator(
15196        block: *mut BNBasicBlock,
15197        post: bool,
15198    ) -> *mut BNBasicBlock;
15199}
15200unsafe extern "C" {
15201    pub fn BNGetBasicBlockDominatorTreeChildren(
15202        block: *mut BNBasicBlock,
15203        count: *mut usize,
15204        post: bool,
15205    ) -> *mut *mut BNBasicBlock;
15206}
15207unsafe extern "C" {
15208    pub fn BNGetBasicBlockDominanceFrontier(
15209        block: *mut BNBasicBlock,
15210        count: *mut usize,
15211        post: bool,
15212    ) -> *mut *mut BNBasicBlock;
15213}
15214unsafe extern "C" {
15215    pub fn BNGetBasicBlockIteratedDominanceFrontier(
15216        blocks: *mut *mut BNBasicBlock,
15217        incomingCount: usize,
15218        outputCount: *mut usize,
15219    ) -> *mut *mut BNBasicBlock;
15220}
15221unsafe extern "C" {
15222    pub fn BNIsILBasicBlock(block: *mut BNBasicBlock) -> bool;
15223}
15224unsafe extern "C" {
15225    pub fn BNIsLowLevelILBasicBlock(block: *mut BNBasicBlock) -> bool;
15226}
15227unsafe extern "C" {
15228    pub fn BNIsMediumLevelILBasicBlock(block: *mut BNBasicBlock) -> bool;
15229}
15230unsafe extern "C" {
15231    pub fn BNIsHighLevelILBasicBlock(block: *mut BNBasicBlock) -> bool;
15232}
15233unsafe extern "C" {
15234    pub fn BNGetBasicBlockFunctionGraphType(block: *mut BNBasicBlock) -> BNFunctionGraphType;
15235}
15236unsafe extern "C" {
15237    pub fn BNGetBasicBlockLowLevelILFunction(block: *mut BNBasicBlock)
15238    -> *mut BNLowLevelILFunction;
15239}
15240unsafe extern "C" {
15241    pub fn BNGetBasicBlockMediumLevelILFunction(
15242        block: *mut BNBasicBlock,
15243    ) -> *mut BNMediumLevelILFunction;
15244}
15245unsafe extern "C" {
15246    pub fn BNGetBasicBlockHighLevelILFunction(
15247        block: *mut BNBasicBlock,
15248    ) -> *mut BNHighLevelILFunction;
15249}
15250unsafe extern "C" {
15251    pub fn BNGetBasicBlockInstructionContainingAddress(
15252        block: *mut BNBasicBlock,
15253        addr: u64,
15254        start: *mut u64,
15255    ) -> bool;
15256}
15257unsafe extern "C" {
15258    pub fn BNGetBasicBlockSourceBlock(block: *mut BNBasicBlock) -> *mut BNBasicBlock;
15259}
15260unsafe extern "C" {
15261    pub fn BNGetBasicBlockDisassemblyText(
15262        block: *mut BNBasicBlock,
15263        settings: *mut BNDisassemblySettings,
15264        count: *mut usize,
15265    ) -> *mut BNDisassemblyTextLine;
15266}
15267unsafe extern "C" {
15268    pub fn BNFreeDisassemblyTextLines(lines: *mut BNDisassemblyTextLine, count: usize);
15269}
15270unsafe extern "C" {
15271    pub fn BNGetDisplayStringForInteger(
15272        binaryView: *mut BNBinaryView,
15273        type_: BNIntegerDisplayType,
15274        value: u64,
15275        inputWidth: usize,
15276        isSigned: bool,
15277    ) -> *mut ::std::os::raw::c_char;
15278}
15279unsafe extern "C" {
15280    pub fn BNCreateDisassemblyTextRenderer(
15281        func: *mut BNFunction,
15282        settings: *mut BNDisassemblySettings,
15283    ) -> *mut BNDisassemblyTextRenderer;
15284}
15285unsafe extern "C" {
15286    pub fn BNCreateLowLevelILDisassemblyTextRenderer(
15287        func: *mut BNLowLevelILFunction,
15288        settings: *mut BNDisassemblySettings,
15289    ) -> *mut BNDisassemblyTextRenderer;
15290}
15291unsafe extern "C" {
15292    pub fn BNCreateMediumLevelILDisassemblyTextRenderer(
15293        func: *mut BNMediumLevelILFunction,
15294        settings: *mut BNDisassemblySettings,
15295    ) -> *mut BNDisassemblyTextRenderer;
15296}
15297unsafe extern "C" {
15298    pub fn BNCreateHighLevelILDisassemblyTextRenderer(
15299        func: *mut BNHighLevelILFunction,
15300        settings: *mut BNDisassemblySettings,
15301    ) -> *mut BNDisassemblyTextRenderer;
15302}
15303unsafe extern "C" {
15304    pub fn BNNewDisassemblyTextRendererReference(
15305        renderer: *mut BNDisassemblyTextRenderer,
15306    ) -> *mut BNDisassemblyTextRenderer;
15307}
15308unsafe extern "C" {
15309    pub fn BNFreeDisassemblyTextRenderer(renderer: *mut BNDisassemblyTextRenderer);
15310}
15311unsafe extern "C" {
15312    pub fn BNGetDisassemblyTextRendererFunction(
15313        renderer: *mut BNDisassemblyTextRenderer,
15314    ) -> *mut BNFunction;
15315}
15316unsafe extern "C" {
15317    pub fn BNGetDisassemblyTextRendererLowLevelILFunction(
15318        renderer: *mut BNDisassemblyTextRenderer,
15319    ) -> *mut BNLowLevelILFunction;
15320}
15321unsafe extern "C" {
15322    pub fn BNGetDisassemblyTextRendererMediumLevelILFunction(
15323        renderer: *mut BNDisassemblyTextRenderer,
15324    ) -> *mut BNMediumLevelILFunction;
15325}
15326unsafe extern "C" {
15327    pub fn BNGetDisassemblyTextRendererHighLevelILFunction(
15328        renderer: *mut BNDisassemblyTextRenderer,
15329    ) -> *mut BNHighLevelILFunction;
15330}
15331unsafe extern "C" {
15332    pub fn BNGetDisassemblyTextRendererBasicBlock(
15333        renderer: *mut BNDisassemblyTextRenderer,
15334    ) -> *mut BNBasicBlock;
15335}
15336unsafe extern "C" {
15337    pub fn BNGetDisassemblyTextRendererArchitecture(
15338        renderer: *mut BNDisassemblyTextRenderer,
15339    ) -> *mut BNArchitecture;
15340}
15341unsafe extern "C" {
15342    pub fn BNGetDisassemblyTextRendererSettings(
15343        renderer: *mut BNDisassemblyTextRenderer,
15344    ) -> *mut BNDisassemblySettings;
15345}
15346unsafe extern "C" {
15347    pub fn BNSetDisassemblyTextRendererBasicBlock(
15348        renderer: *mut BNDisassemblyTextRenderer,
15349        block: *mut BNBasicBlock,
15350    );
15351}
15352unsafe extern "C" {
15353    pub fn BNSetDisassemblyTextRendererArchitecture(
15354        renderer: *mut BNDisassemblyTextRenderer,
15355        arch: *mut BNArchitecture,
15356    );
15357}
15358unsafe extern "C" {
15359    pub fn BNSetDisassemblyTextRendererSettings(
15360        renderer: *mut BNDisassemblyTextRenderer,
15361        settings: *mut BNDisassemblySettings,
15362    );
15363}
15364unsafe extern "C" {
15365    pub fn BNIsILDisassemblyTextRenderer(renderer: *mut BNDisassemblyTextRenderer) -> bool;
15366}
15367unsafe extern "C" {
15368    pub fn BNDisassemblyTextRendererHasDataFlow(renderer: *mut BNDisassemblyTextRenderer) -> bool;
15369}
15370unsafe extern "C" {
15371    pub fn BNGetDisassemblyTextRendererInstructionAnnotations(
15372        renderer: *mut BNDisassemblyTextRenderer,
15373        addr: u64,
15374        count: *mut usize,
15375    ) -> *mut BNInstructionTextToken;
15376}
15377unsafe extern "C" {
15378    pub fn BNGetDisassemblyTextRendererInstructionText(
15379        renderer: *mut BNDisassemblyTextRenderer,
15380        addr: u64,
15381        len: *mut usize,
15382        result: *mut *mut BNDisassemblyTextLine,
15383        count: *mut usize,
15384    ) -> bool;
15385}
15386unsafe extern "C" {
15387    pub fn BNGetDisassemblyTextRendererLines(
15388        renderer: *mut BNDisassemblyTextRenderer,
15389        addr: u64,
15390        len: *mut usize,
15391        result: *mut *mut BNDisassemblyTextLine,
15392        count: *mut usize,
15393    ) -> bool;
15394}
15395unsafe extern "C" {
15396    pub fn BNPostProcessDisassemblyTextRendererLines(
15397        renderer: *mut BNDisassemblyTextRenderer,
15398        addr: u64,
15399        len: usize,
15400        inLines: *mut BNDisassemblyTextLine,
15401        inCount: usize,
15402        outCount: *mut usize,
15403        indentSpaces: *const ::std::os::raw::c_char,
15404    ) -> *mut BNDisassemblyTextLine;
15405}
15406unsafe extern "C" {
15407    pub fn BNResetDisassemblyTextRendererDeduplicatedComments(
15408        renderer: *mut BNDisassemblyTextRenderer,
15409    );
15410}
15411unsafe extern "C" {
15412    pub fn BNGetDisassemblyTextRendererSymbolTokens(
15413        renderer: *mut BNDisassemblyTextRenderer,
15414        addr: u64,
15415        size: usize,
15416        operand: usize,
15417        result: *mut *mut BNInstructionTextToken,
15418        count: *mut usize,
15419    ) -> bool;
15420}
15421unsafe extern "C" {
15422    pub fn BNGetDisassemblyTextRendererSymbolTokensStatic(
15423        addr: u64,
15424        size: usize,
15425        operand: usize,
15426        data: *mut BNBinaryView,
15427        maxSymbolWidth: usize,
15428        func: *mut BNFunction,
15429        confidence: u8,
15430        symbolDisplay: BNSymbolDisplayType,
15431        precedence: BNOperatorPrecedence,
15432        instrAddr: u64,
15433        exprIndex: u64,
15434        result: *mut *mut BNInstructionTextToken,
15435        count: *mut usize,
15436    ) -> BNSymbolDisplayResult;
15437}
15438unsafe extern "C" {
15439    pub fn BNGetDisassemblyTextRendererStackVariableReferenceTokens(
15440        renderer: *mut BNDisassemblyTextRenderer,
15441        ref_: *mut BNStackVariableReference,
15442        count: *mut usize,
15443    ) -> *mut BNInstructionTextToken;
15444}
15445unsafe extern "C" {
15446    pub fn BNIsIntegerToken(type_: BNInstructionTextTokenType) -> bool;
15447}
15448unsafe extern "C" {
15449    pub fn BNGetDisassemblyTextRendererIntegerTokens(
15450        renderer: *mut BNDisassemblyTextRenderer,
15451        token: *mut BNInstructionTextToken,
15452        arch: *mut BNArchitecture,
15453        addr: u64,
15454        count: *mut usize,
15455    ) -> *mut BNInstructionTextToken;
15456}
15457unsafe extern "C" {
15458    pub fn BNDisassemblyTextRendererWrapComment(
15459        renderer: *mut BNDisassemblyTextRenderer,
15460        inLine: *const BNDisassemblyTextLine,
15461        outLineCount: *mut usize,
15462        comment: *const ::std::os::raw::c_char,
15463        hasAutoAnnotations: bool,
15464        leadingSpaces: *const ::std::os::raw::c_char,
15465        indentSpaces: *const ::std::os::raw::c_char,
15466    ) -> *mut BNDisassemblyTextLine;
15467}
15468unsafe extern "C" {
15469    pub fn BNGetStringLiteralPrefix(type_: BNStringType) -> *mut ::std::os::raw::c_char;
15470}
15471unsafe extern "C" {
15472    pub fn BNMarkFunctionAsRecentlyUsed(func: *mut BNFunction);
15473}
15474unsafe extern "C" {
15475    pub fn BNMarkBasicBlockAsRecentlyUsed(block: *mut BNBasicBlock);
15476}
15477unsafe extern "C" {
15478    pub fn BNGetCodeReferences(
15479        view: *mut BNBinaryView,
15480        addr: u64,
15481        count: *mut usize,
15482        limit: bool,
15483        maxItems: usize,
15484    ) -> *mut BNReferenceSource;
15485}
15486unsafe extern "C" {
15487    pub fn BNGetCodeReferencesInRange(
15488        view: *mut BNBinaryView,
15489        addr: u64,
15490        len: u64,
15491        count: *mut usize,
15492        limit: bool,
15493        maxItems: usize,
15494    ) -> *mut BNReferenceSource;
15495}
15496unsafe extern "C" {
15497    pub fn BNFreeCodeReferences(refs: *mut BNReferenceSource, count: usize);
15498}
15499unsafe extern "C" {
15500    pub fn BNFreeTypeFieldReferences(refs: *mut BNTypeFieldReference, count: usize);
15501}
15502unsafe extern "C" {
15503    pub fn BNFreeILReferences(refs: *mut BNILReferenceSource, count: usize);
15504}
15505unsafe extern "C" {
15506    pub fn BNGetCodeReferencesFrom(
15507        view: *mut BNBinaryView,
15508        src: *mut BNReferenceSource,
15509        count: *mut usize,
15510    ) -> *mut u64;
15511}
15512unsafe extern "C" {
15513    pub fn BNGetCodeReferencesFromInRange(
15514        view: *mut BNBinaryView,
15515        src: *mut BNReferenceSource,
15516        len: u64,
15517        count: *mut usize,
15518    ) -> *mut u64;
15519}
15520unsafe extern "C" {
15521    pub fn BNGetDataReferences(
15522        view: *mut BNBinaryView,
15523        addr: u64,
15524        count: *mut usize,
15525        limit: bool,
15526        maxItems: usize,
15527    ) -> *mut u64;
15528}
15529unsafe extern "C" {
15530    pub fn BNGetDataReferencesInRange(
15531        view: *mut BNBinaryView,
15532        addr: u64,
15533        len: u64,
15534        count: *mut usize,
15535        limit: bool,
15536        maxItems: usize,
15537    ) -> *mut u64;
15538}
15539unsafe extern "C" {
15540    pub fn BNGetDataReferencesFrom(
15541        view: *mut BNBinaryView,
15542        addr: u64,
15543        count: *mut usize,
15544    ) -> *mut u64;
15545}
15546unsafe extern "C" {
15547    pub fn BNGetDataReferencesFromInRange(
15548        view: *mut BNBinaryView,
15549        addr: u64,
15550        len: u64,
15551        count: *mut usize,
15552    ) -> *mut u64;
15553}
15554unsafe extern "C" {
15555    pub fn BNAddDataReference(view: *mut BNBinaryView, fromAddr: u64, toAddr: u64);
15556}
15557unsafe extern "C" {
15558    pub fn BNRemoveDataReference(view: *mut BNBinaryView, fromAddr: u64, toAddr: u64);
15559}
15560unsafe extern "C" {
15561    pub fn BNAddUserDataReference(view: *mut BNBinaryView, fromAddr: u64, toAddr: u64);
15562}
15563unsafe extern "C" {
15564    pub fn BNRemoveUserDataReference(view: *mut BNBinaryView, fromAddr: u64, toAddr: u64);
15565}
15566unsafe extern "C" {
15567    pub fn BNFreeDataReferences(refs: *mut u64);
15568}
15569unsafe extern "C" {
15570    pub fn BNFreeTypeReferences(refs: *mut BNTypeReferenceSource, count: usize);
15571}
15572unsafe extern "C" {
15573    pub fn BNFreeTypeFieldReferenceSizeInfo(refs: *mut BNTypeFieldReferenceSizeInfo, count: usize);
15574}
15575unsafe extern "C" {
15576    pub fn BNFreeTypeFieldReferenceTypeInfo(refs: *mut BNTypeFieldReferenceTypeInfo, count: usize);
15577}
15578unsafe extern "C" {
15579    pub fn BNFreeTypeFieldReferenceSizes(refs: *mut usize, count: usize);
15580}
15581unsafe extern "C" {
15582    pub fn BNFreeTypeFieldReferenceTypes(refs: *mut BNTypeWithConfidence, count: usize);
15583}
15584unsafe extern "C" {
15585    #[doc = " References to type"]
15586    pub fn BNGetCodeReferencesForType(
15587        view: *mut BNBinaryView,
15588        type_: *mut BNQualifiedName,
15589        count: *mut usize,
15590        limit: bool,
15591        maxItems: usize,
15592    ) -> *mut BNReferenceSource;
15593}
15594unsafe extern "C" {
15595    pub fn BNGetDataReferencesForType(
15596        view: *mut BNBinaryView,
15597        type_: *mut BNQualifiedName,
15598        count: *mut usize,
15599        limit: bool,
15600        maxItems: usize,
15601    ) -> *mut u64;
15602}
15603unsafe extern "C" {
15604    pub fn BNGetTypeReferencesForType(
15605        view: *mut BNBinaryView,
15606        type_: *mut BNQualifiedName,
15607        count: *mut usize,
15608        limit: bool,
15609        maxItems: usize,
15610    ) -> *mut BNTypeReferenceSource;
15611}
15612unsafe extern "C" {
15613    #[doc = " References to type field"]
15614    pub fn BNGetCodeReferencesForTypeField(
15615        view: *mut BNBinaryView,
15616        type_: *mut BNQualifiedName,
15617        offset: u64,
15618        count: *mut usize,
15619        limit: bool,
15620        maxItems: usize,
15621    ) -> *mut BNTypeFieldReference;
15622}
15623unsafe extern "C" {
15624    pub fn BNGetDataReferencesForTypeField(
15625        view: *mut BNBinaryView,
15626        type_: *mut BNQualifiedName,
15627        offset: u64,
15628        count: *mut usize,
15629        limit: bool,
15630        maxItems: usize,
15631    ) -> *mut u64;
15632}
15633unsafe extern "C" {
15634    pub fn BNGetDataReferencesFromForTypeField(
15635        view: *mut BNBinaryView,
15636        type_: *mut BNQualifiedName,
15637        offset: u64,
15638        count: *mut usize,
15639        limit: bool,
15640        maxItems: usize,
15641    ) -> *mut u64;
15642}
15643unsafe extern "C" {
15644    pub fn BNGetTypeReferencesForTypeField(
15645        view: *mut BNBinaryView,
15646        type_: *mut BNQualifiedName,
15647        offset: u64,
15648        count: *mut usize,
15649        limit: bool,
15650        maxItems: usize,
15651    ) -> *mut BNTypeReferenceSource;
15652}
15653unsafe extern "C" {
15654    pub fn BNGetAllReferencesForType(
15655        view: *mut BNBinaryView,
15656        type_: *mut BNQualifiedName,
15657        limit: bool,
15658        maxItems: usize,
15659    ) -> BNAllTypeReferences;
15660}
15661unsafe extern "C" {
15662    pub fn BNFreeAllTypeReferences(refs: *mut BNAllTypeReferences);
15663}
15664unsafe extern "C" {
15665    pub fn BNGetAllReferencesForTypeField(
15666        view: *mut BNBinaryView,
15667        type_: *mut BNQualifiedName,
15668        offset: u64,
15669        limit: bool,
15670        maxItems: usize,
15671    ) -> BNAllTypeFieldReferences;
15672}
15673unsafe extern "C" {
15674    pub fn BNFreeAllTypeFieldReferences(refs: *mut BNAllTypeFieldReferences);
15675}
15676unsafe extern "C" {
15677    pub fn BNGetCodeReferencesForTypeFrom(
15678        view: *mut BNBinaryView,
15679        addr: *mut BNReferenceSource,
15680        count: *mut usize,
15681    ) -> *mut BNTypeReferenceSource;
15682}
15683unsafe extern "C" {
15684    pub fn BNGetCodeReferencesForTypeFromInRange(
15685        view: *mut BNBinaryView,
15686        addr: *mut BNReferenceSource,
15687        len: u64,
15688        count: *mut usize,
15689    ) -> *mut BNTypeReferenceSource;
15690}
15691unsafe extern "C" {
15692    pub fn BNGetCodeReferencesForTypeFieldsFrom(
15693        view: *mut BNBinaryView,
15694        addr: *mut BNReferenceSource,
15695        count: *mut usize,
15696    ) -> *mut BNTypeReferenceSource;
15697}
15698unsafe extern "C" {
15699    pub fn BNGetCodeReferencesForTypeFieldsFromInRange(
15700        view: *mut BNBinaryView,
15701        addr: *mut BNReferenceSource,
15702        len: u64,
15703        count: *mut usize,
15704    ) -> *mut BNTypeReferenceSource;
15705}
15706unsafe extern "C" {
15707    pub fn BNGetAllFieldsReferenced(
15708        view: *mut BNBinaryView,
15709        type_: *mut BNQualifiedName,
15710        count: *mut usize,
15711    ) -> *mut u64;
15712}
15713unsafe extern "C" {
15714    pub fn BNGetAllSizesReferenced(
15715        view: *mut BNBinaryView,
15716        type_: *mut BNQualifiedName,
15717        count: *mut usize,
15718    ) -> *mut BNTypeFieldReferenceSizeInfo;
15719}
15720unsafe extern "C" {
15721    pub fn BNGetAllTypesReferenced(
15722        view: *mut BNBinaryView,
15723        type_: *mut BNQualifiedName,
15724        count: *mut usize,
15725    ) -> *mut BNTypeFieldReferenceTypeInfo;
15726}
15727unsafe extern "C" {
15728    pub fn BNGetSizesReferenced(
15729        view: *mut BNBinaryView,
15730        type_: *mut BNQualifiedName,
15731        offset: u64,
15732        count: *mut usize,
15733    ) -> *mut usize;
15734}
15735unsafe extern "C" {
15736    pub fn BNGetTypesReferenced(
15737        view: *mut BNBinaryView,
15738        type_: *mut BNQualifiedName,
15739        offset: u64,
15740        count: *mut usize,
15741    ) -> *mut BNTypeWithConfidence;
15742}
15743unsafe extern "C" {
15744    pub fn BNGetOutgoingDirectTypeReferences(
15745        view: *mut BNBinaryView,
15746        type_: *mut BNQualifiedName,
15747        count: *mut usize,
15748    ) -> *mut BNQualifiedName;
15749}
15750unsafe extern "C" {
15751    pub fn BNGetOutgoingRecursiveTypeReferences(
15752        view: *mut BNBinaryView,
15753        types: *mut BNQualifiedName,
15754        typeCount: usize,
15755        count: *mut usize,
15756    ) -> *mut BNQualifiedName;
15757}
15758unsafe extern "C" {
15759    pub fn BNGetIncomingDirectTypeReferences(
15760        view: *mut BNBinaryView,
15761        type_: *mut BNQualifiedName,
15762        count: *mut usize,
15763    ) -> *mut BNQualifiedName;
15764}
15765unsafe extern "C" {
15766    pub fn BNGetIncomingRecursiveTypeReferences(
15767        view: *mut BNBinaryView,
15768        types: *mut BNQualifiedName,
15769        typeCount: usize,
15770        count: *mut usize,
15771    ) -> *mut BNQualifiedName;
15772}
15773unsafe extern "C" {
15774    pub fn BNRegisterGlobalFunctionRecognizer(rec: *mut BNFunctionRecognizer);
15775}
15776unsafe extern "C" {
15777    pub fn BNGetStringAtAddress(
15778        view: *mut BNBinaryView,
15779        addr: u64,
15780        strRef: *mut BNStringReference,
15781    ) -> bool;
15782}
15783unsafe extern "C" {
15784    pub fn BNGetStrings(view: *mut BNBinaryView, count: *mut usize) -> *mut BNStringReference;
15785}
15786unsafe extern "C" {
15787    pub fn BNGetStringsInRange(
15788        view: *mut BNBinaryView,
15789        start: u64,
15790        len: u64,
15791        count: *mut usize,
15792    ) -> *mut BNStringReference;
15793}
15794unsafe extern "C" {
15795    pub fn BNFreeStringReferenceList(strings: *mut BNStringReference);
15796}
15797unsafe extern "C" {
15798    pub fn BNGetDerivedStrings(view: *mut BNBinaryView, count: *mut usize) -> *mut BNDerivedString;
15799}
15800unsafe extern "C" {
15801    pub fn BNGetDerivedStringCodeReferences(
15802        view: *mut BNBinaryView,
15803        str_: *mut BNDerivedString,
15804        count: *mut usize,
15805        limit: bool,
15806        maxItems: usize,
15807    ) -> *mut BNReferenceSource;
15808}
15809unsafe extern "C" {
15810    pub fn BNFreeDerivedStringList(strings: *mut BNDerivedString, count: usize);
15811}
15812unsafe extern "C" {
15813    pub fn BNGetStackLayout(func: *mut BNFunction, count: *mut usize)
15814    -> *mut BNVariableNameAndType;
15815}
15816unsafe extern "C" {
15817    pub fn BNFreeVariableNameAndTypeList(vars: *mut BNVariableNameAndType, count: usize);
15818}
15819unsafe extern "C" {
15820    pub fn BNCreateAutoStackVariable(
15821        func: *mut BNFunction,
15822        offset: i64,
15823        type_: *mut BNTypeWithConfidence,
15824        name: *const ::std::os::raw::c_char,
15825    );
15826}
15827unsafe extern "C" {
15828    pub fn BNCreateUserStackVariable(
15829        func: *mut BNFunction,
15830        offset: i64,
15831        type_: *mut BNTypeWithConfidence,
15832        name: *const ::std::os::raw::c_char,
15833    );
15834}
15835unsafe extern "C" {
15836    pub fn BNDeleteAutoStackVariable(func: *mut BNFunction, offset: i64);
15837}
15838unsafe extern "C" {
15839    pub fn BNDeleteUserStackVariable(func: *mut BNFunction, offset: i64);
15840}
15841unsafe extern "C" {
15842    pub fn BNGetStackVariableAtFrameOffset(
15843        func: *mut BNFunction,
15844        arch: *mut BNArchitecture,
15845        addr: u64,
15846        offset: i64,
15847        var: *mut BNVariableNameAndType,
15848    ) -> bool;
15849}
15850unsafe extern "C" {
15851    pub fn BNGetStackVariableAtFrameOffsetAfterInstruction(
15852        func: *mut BNFunction,
15853        arch: *mut BNArchitecture,
15854        addr: u64,
15855        offset: i64,
15856        var: *mut BNVariableNameAndType,
15857    ) -> bool;
15858}
15859unsafe extern "C" {
15860    pub fn BNFreeVariableNameAndType(var: *mut BNVariableNameAndType);
15861}
15862unsafe extern "C" {
15863    pub fn BNGetFunctionVariables(
15864        func: *mut BNFunction,
15865        count: *mut usize,
15866    ) -> *mut BNVariableNameAndType;
15867}
15868unsafe extern "C" {
15869    pub fn BNCreateAutoVariable(
15870        func: *mut BNFunction,
15871        var: *const BNVariable,
15872        type_: *mut BNTypeWithConfidence,
15873        name: *const ::std::os::raw::c_char,
15874        ignoreDisjointUses: bool,
15875    );
15876}
15877unsafe extern "C" {
15878    pub fn BNCreateUserVariable(
15879        func: *mut BNFunction,
15880        var: *const BNVariable,
15881        type_: *mut BNTypeWithConfidence,
15882        name: *const ::std::os::raw::c_char,
15883        ignoreDisjointUses: bool,
15884    );
15885}
15886unsafe extern "C" {
15887    pub fn BNDeleteUserVariable(func: *mut BNFunction, var: *const BNVariable);
15888}
15889unsafe extern "C" {
15890    pub fn BNIsVariableUserDefined(func: *mut BNFunction, var: *const BNVariable) -> bool;
15891}
15892unsafe extern "C" {
15893    pub fn BNGetVariableType(func: *mut BNFunction, var: *const BNVariable)
15894    -> BNTypeWithConfidence;
15895}
15896unsafe extern "C" {
15897    pub fn BNGetVariableName(
15898        func: *mut BNFunction,
15899        var: *const BNVariable,
15900    ) -> *mut ::std::os::raw::c_char;
15901}
15902unsafe extern "C" {
15903    pub fn BNGetVariableNameOrDefault(
15904        func: *mut BNFunction,
15905        var: *const BNVariable,
15906    ) -> *mut ::std::os::raw::c_char;
15907}
15908unsafe extern "C" {
15909    pub fn BNGetLastSeenVariableNameOrDefault(
15910        func: *mut BNFunction,
15911        var: *const BNVariable,
15912    ) -> *mut ::std::os::raw::c_char;
15913}
15914unsafe extern "C" {
15915    pub fn BNToVariableIdentifier(var: *const BNVariable) -> u64;
15916}
15917unsafe extern "C" {
15918    pub fn BNFromVariableIdentifier(id: u64) -> BNVariable;
15919}
15920unsafe extern "C" {
15921    pub fn BNGetFunctionVariableDeadStoreElimination(
15922        func: *mut BNFunction,
15923        var: *const BNVariable,
15924    ) -> BNDeadStoreElimination;
15925}
15926unsafe extern "C" {
15927    pub fn BNSetFunctionVariableDeadStoreElimination(
15928        func: *mut BNFunction,
15929        var: *const BNVariable,
15930        mode: BNDeadStoreElimination,
15931    );
15932}
15933unsafe extern "C" {
15934    pub fn BNGetExprFolding(func: *mut BNFunction, addr: u64) -> BNExprFolding;
15935}
15936unsafe extern "C" {
15937    pub fn BNSetExprFolding(func: *mut BNFunction, addr: u64, mode: BNExprFolding);
15938}
15939unsafe extern "C" {
15940    pub fn BNIsConditionInverted(func: *mut BNFunction, addr: u64) -> bool;
15941}
15942unsafe extern "C" {
15943    pub fn BNSetConditionInverted(func: *mut BNFunction, addr: u64, invert: bool);
15944}
15945unsafe extern "C" {
15946    pub fn BNGetEarlyReturn(func: *mut BNFunction, addr: u64) -> BNEarlyReturn;
15947}
15948unsafe extern "C" {
15949    pub fn BNSetEarlyReturn(func: *mut BNFunction, addr: u64, mode: BNEarlyReturn);
15950}
15951unsafe extern "C" {
15952    pub fn BNGetSwitchRecovery(func: *mut BNFunction, addr: u64) -> BNSwitchRecovery;
15953}
15954unsafe extern "C" {
15955    pub fn BNSetSwitchRecovery(func: *mut BNFunction, addr: u64, mode: BNSwitchRecovery);
15956}
15957unsafe extern "C" {
15958    pub fn BNGetMergedVariables(func: *mut BNFunction, count: *mut usize) -> *mut BNMergedVariable;
15959}
15960unsafe extern "C" {
15961    pub fn BNFreeMergedVariableList(vars: *mut BNMergedVariable, count: usize);
15962}
15963unsafe extern "C" {
15964    pub fn BNMergeVariables(
15965        func: *mut BNFunction,
15966        target: *const BNVariable,
15967        sources: *const BNVariable,
15968        sourceCount: usize,
15969    );
15970}
15971unsafe extern "C" {
15972    pub fn BNUnmergeVariables(
15973        func: *mut BNFunction,
15974        target: *const BNVariable,
15975        sources: *const BNVariable,
15976        sourceCount: usize,
15977    );
15978}
15979unsafe extern "C" {
15980    pub fn BNGetSplitVariables(func: *mut BNFunction, count: *mut usize) -> *mut BNVariable;
15981}
15982unsafe extern "C" {
15983    pub fn BNSplitVariable(func: *mut BNFunction, var: *const BNVariable);
15984}
15985unsafe extern "C" {
15986    pub fn BNUnsplitVariable(func: *mut BNFunction, var: *const BNVariable);
15987}
15988unsafe extern "C" {
15989    pub fn BNGetFunctionCallSites(
15990        func: *mut BNFunction,
15991        count: *mut usize,
15992    ) -> *mut BNReferenceSource;
15993}
15994unsafe extern "C" {
15995    pub fn BNGetCallees(
15996        view: *mut BNBinaryView,
15997        callSite: *mut BNReferenceSource,
15998        count: *mut usize,
15999    ) -> *mut u64;
16000}
16001unsafe extern "C" {
16002    pub fn BNGetCallers(
16003        view: *mut BNBinaryView,
16004        callee: u64,
16005        count: *mut usize,
16006    ) -> *mut BNReferenceSource;
16007}
16008unsafe extern "C" {
16009    pub fn BNSetAutoIndirectBranches(
16010        func: *mut BNFunction,
16011        sourceArch: *mut BNArchitecture,
16012        source: u64,
16013        branches: *mut BNArchitectureAndAddress,
16014        count: usize,
16015    );
16016}
16017unsafe extern "C" {
16018    pub fn BNSetUserIndirectBranches(
16019        func: *mut BNFunction,
16020        sourceArch: *mut BNArchitecture,
16021        source: u64,
16022        branches: *mut BNArchitectureAndAddress,
16023        count: usize,
16024    );
16025}
16026unsafe extern "C" {
16027    pub fn BNSetGuidedSourceBlocks(
16028        func: *mut BNFunction,
16029        addresses: *mut BNArchitectureAndAddress,
16030        count: usize,
16031    );
16032}
16033unsafe extern "C" {
16034    pub fn BNAddGuidedSourceBlocks(
16035        func: *mut BNFunction,
16036        addresses: *mut BNArchitectureAndAddress,
16037        count: usize,
16038    );
16039}
16040unsafe extern "C" {
16041    pub fn BNRemoveGuidedSourceBlocks(
16042        func: *mut BNFunction,
16043        addresses: *mut BNArchitectureAndAddress,
16044        count: usize,
16045    );
16046}
16047unsafe extern "C" {
16048    pub fn BNIsGuidedSourceBlock(
16049        func: *mut BNFunction,
16050        arch: *mut BNArchitecture,
16051        addr: u64,
16052    ) -> bool;
16053}
16054unsafe extern "C" {
16055    pub fn BNGetGuidedSourceBlocks(
16056        func: *mut BNFunction,
16057        count: *mut usize,
16058    ) -> *mut BNArchitectureAndAddress;
16059}
16060unsafe extern "C" {
16061    pub fn BNHasGuidedSourceBlocks(func: *mut BNFunction) -> bool;
16062}
16063unsafe extern "C" {
16064    pub fn BNFreeArchitectureAndAddressList(addresses: *mut BNArchitectureAndAddress);
16065}
16066unsafe extern "C" {
16067    pub fn BNGetIndirectBranches(
16068        func: *mut BNFunction,
16069        count: *mut usize,
16070    ) -> *mut BNIndirectBranchInfo;
16071}
16072unsafe extern "C" {
16073    pub fn BNGetIndirectBranchesAt(
16074        func: *mut BNFunction,
16075        arch: *mut BNArchitecture,
16076        addr: u64,
16077        count: *mut usize,
16078    ) -> *mut BNIndirectBranchInfo;
16079}
16080unsafe extern "C" {
16081    pub fn BNFreeIndirectBranchList(branches: *mut BNIndirectBranchInfo);
16082}
16083unsafe extern "C" {
16084    pub fn BNGetCalleeForAnalysis(
16085        func: *mut BNFunction,
16086        platform: *mut BNPlatform,
16087        addr: u64,
16088        exact: bool,
16089    ) -> *mut BNFunction;
16090}
16091unsafe extern "C" {
16092    pub fn BNGetUnresolvedIndirectBranches(
16093        func: *mut BNFunction,
16094        count: *mut usize,
16095    ) -> *mut BNArchitectureAndAddress;
16096}
16097unsafe extern "C" {
16098    pub fn BNHasUnresolvedIndirectBranches(func: *mut BNFunction) -> bool;
16099}
16100unsafe extern "C" {
16101    pub fn BNFunctionToggleRegion(func: *mut BNFunction, hash: u64);
16102}
16103unsafe extern "C" {
16104    pub fn BNFunctionIsRegionCollapsed(func: *mut BNFunction, hash: u64) -> bool;
16105}
16106unsafe extern "C" {
16107    pub fn BNFunctionExpandAll(func: *mut BNFunction);
16108}
16109unsafe extern "C" {
16110    pub fn BNFunctionCollapseRegion(func: *mut BNFunction, hash: u64);
16111}
16112unsafe extern "C" {
16113    pub fn BNFunctionExpandRegion(func: *mut BNFunction, hash: u64);
16114}
16115unsafe extern "C" {
16116    pub fn BNFunctionStoreMetadata(
16117        func: *mut BNFunction,
16118        key: *const ::std::os::raw::c_char,
16119        value: *mut BNMetadata,
16120        isAuto: bool,
16121    );
16122}
16123unsafe extern "C" {
16124    pub fn BNFunctionQueryMetadata(
16125        func: *mut BNFunction,
16126        key: *const ::std::os::raw::c_char,
16127    ) -> *mut BNMetadata;
16128}
16129unsafe extern "C" {
16130    pub fn BNFunctionRemoveMetadata(func: *mut BNFunction, key: *const ::std::os::raw::c_char);
16131}
16132unsafe extern "C" {
16133    pub fn BNFunctionGetMetadata(func: *mut BNFunction) -> *mut BNMetadata;
16134}
16135unsafe extern "C" {
16136    pub fn BNFunctionGetAutoMetadata(func: *mut BNFunction) -> *mut BNMetadata;
16137}
16138unsafe extern "C" {
16139    pub fn BNSetAutoCallTypeAdjustment(
16140        func: *mut BNFunction,
16141        arch: *mut BNArchitecture,
16142        addr: u64,
16143        type_: *mut BNTypeWithConfidence,
16144    );
16145}
16146unsafe extern "C" {
16147    pub fn BNSetUserCallTypeAdjustment(
16148        func: *mut BNFunction,
16149        arch: *mut BNArchitecture,
16150        addr: u64,
16151        type_: *mut BNTypeWithConfidence,
16152    );
16153}
16154unsafe extern "C" {
16155    pub fn BNSetAutoCallStackAdjustment(
16156        func: *mut BNFunction,
16157        arch: *mut BNArchitecture,
16158        addr: u64,
16159        adjust: i64,
16160        confidence: u8,
16161    );
16162}
16163unsafe extern "C" {
16164    pub fn BNSetUserCallStackAdjustment(
16165        func: *mut BNFunction,
16166        arch: *mut BNArchitecture,
16167        addr: u64,
16168        adjust: i64,
16169        confidence: u8,
16170    );
16171}
16172unsafe extern "C" {
16173    pub fn BNSetAutoCallRegisterStackAdjustment(
16174        func: *mut BNFunction,
16175        arch: *mut BNArchitecture,
16176        addr: u64,
16177        adjust: *mut BNRegisterStackAdjustment,
16178        count: usize,
16179    );
16180}
16181unsafe extern "C" {
16182    pub fn BNSetUserCallRegisterStackAdjustment(
16183        func: *mut BNFunction,
16184        arch: *mut BNArchitecture,
16185        addr: u64,
16186        adjust: *mut BNRegisterStackAdjustment,
16187        count: usize,
16188    );
16189}
16190unsafe extern "C" {
16191    pub fn BNSetAutoCallRegisterStackAdjustmentForRegisterStack(
16192        func: *mut BNFunction,
16193        arch: *mut BNArchitecture,
16194        addr: u64,
16195        regStack: u32,
16196        adjust: i32,
16197        confidence: u8,
16198    );
16199}
16200unsafe extern "C" {
16201    pub fn BNSetUserCallRegisterStackAdjustmentForRegisterStack(
16202        func: *mut BNFunction,
16203        arch: *mut BNArchitecture,
16204        addr: u64,
16205        regStack: u32,
16206        adjust: i32,
16207        confidence: u8,
16208    );
16209}
16210unsafe extern "C" {
16211    pub fn BNGetCallTypeAdjustment(
16212        func: *mut BNFunction,
16213        arch: *mut BNArchitecture,
16214        addr: u64,
16215    ) -> BNTypeWithConfidence;
16216}
16217unsafe extern "C" {
16218    pub fn BNGetCallStackAdjustment(
16219        func: *mut BNFunction,
16220        arch: *mut BNArchitecture,
16221        addr: u64,
16222    ) -> BNOffsetWithConfidence;
16223}
16224unsafe extern "C" {
16225    pub fn BNGetCallRegisterStackAdjustment(
16226        func: *mut BNFunction,
16227        arch: *mut BNArchitecture,
16228        addr: u64,
16229        count: *mut usize,
16230    ) -> *mut BNRegisterStackAdjustment;
16231}
16232unsafe extern "C" {
16233    pub fn BNGetCallRegisterStackAdjustmentForRegisterStack(
16234        func: *mut BNFunction,
16235        arch: *mut BNArchitecture,
16236        addr: u64,
16237        regStack: u32,
16238    ) -> BNRegisterStackAdjustment;
16239}
16240unsafe extern "C" {
16241    pub fn BNIsCallInstruction(func: *mut BNFunction, arch: *mut BNArchitecture, addr: u64)
16242    -> bool;
16243}
16244unsafe extern "C" {
16245    pub fn BNGetFunctionBlockAnnotations(
16246        func: *mut BNFunction,
16247        arch: *mut BNArchitecture,
16248        addr: u64,
16249        count: *mut usize,
16250    ) -> *mut BNInstructionTextLine;
16251}
16252unsafe extern "C" {
16253    pub fn BNGetIntegerConstantDisplayType(
16254        func: *mut BNFunction,
16255        arch: *mut BNArchitecture,
16256        instrAddr: u64,
16257        value: u64,
16258        operand: usize,
16259    ) -> BNIntegerDisplayType;
16260}
16261unsafe extern "C" {
16262    pub fn BNSetIntegerConstantDisplayType(
16263        func: *mut BNFunction,
16264        arch: *mut BNArchitecture,
16265        instrAddr: u64,
16266        value: u64,
16267        operand: usize,
16268        type_: BNIntegerDisplayType,
16269        typeID: *const ::std::os::raw::c_char,
16270    );
16271}
16272unsafe extern "C" {
16273    pub fn BNGetIntegerConstantDisplayTypeEnumerationType(
16274        func: *mut BNFunction,
16275        arch: *mut BNArchitecture,
16276        instrAddr: u64,
16277        value: u64,
16278        operand: usize,
16279    ) -> *mut ::std::os::raw::c_char;
16280}
16281unsafe extern "C" {
16282    pub fn BNIsFunctionTooLarge(func: *mut BNFunction) -> bool;
16283}
16284unsafe extern "C" {
16285    pub fn BNIsFunctionAnalysisSkipped(func: *mut BNFunction) -> bool;
16286}
16287unsafe extern "C" {
16288    pub fn BNGetAnalysisSkipReason(func: *mut BNFunction) -> BNAnalysisSkipReason;
16289}
16290unsafe extern "C" {
16291    pub fn BNGetFunctionAnalysisSkipOverride(
16292        func: *mut BNFunction,
16293    ) -> BNFunctionAnalysisSkipOverride;
16294}
16295unsafe extern "C" {
16296    pub fn BNSetFunctionAnalysisSkipOverride(
16297        func: *mut BNFunction,
16298        skip: BNFunctionAnalysisSkipOverride,
16299    );
16300}
16301unsafe extern "C" {
16302    pub fn BNGetGotoLabelName(func: *mut BNFunction, labelId: u64) -> *mut ::std::os::raw::c_char;
16303}
16304unsafe extern "C" {
16305    pub fn BNSetUserGotoLabelName(
16306        func: *mut BNFunction,
16307        labelId: u64,
16308        name: *const ::std::os::raw::c_char,
16309    );
16310}
16311unsafe extern "C" {
16312    #[doc = " BNAnalyzeBasicBlockContext operations"]
16313    pub fn BNAnalyzeBasicBlocksContextCreateBasicBlock(
16314        abb: *mut BNBasicBlockAnalysisContext,
16315        arch: *mut BNArchitecture,
16316        addr: u64,
16317    ) -> *mut BNBasicBlock;
16318}
16319unsafe extern "C" {
16320    pub fn BNAnalyzeBasicBlocksContextAddBasicBlockToFunction(
16321        abb: *mut BNBasicBlockAnalysisContext,
16322        block: *mut BNBasicBlock,
16323    );
16324}
16325unsafe extern "C" {
16326    pub fn BNAnalyzeBasicBlocksContextAddTempReference(
16327        abb: *mut BNBasicBlockAnalysisContext,
16328        target: *mut BNFunction,
16329    );
16330}
16331unsafe extern "C" {
16332    pub fn BNAnalyzeBasicBlocksContextSetDirectCodeReferences(
16333        abb: *mut BNBasicBlockAnalysisContext,
16334        sources: *mut BNArchitectureAndAddress,
16335        targets: *mut u64,
16336        count: usize,
16337    );
16338}
16339unsafe extern "C" {
16340    pub fn BNAnalyzeBasicBlocksContextSetDirectNoReturnCalls(
16341        abb: *mut BNBasicBlockAnalysisContext,
16342        sources: *mut BNArchitectureAndAddress,
16343        count: usize,
16344    );
16345}
16346unsafe extern "C" {
16347    pub fn BNAnalyzeBasicBlocksContextSetContextualFunctionReturns(
16348        abb: *mut BNBasicBlockAnalysisContext,
16349        sources: *mut BNArchitectureAndAddress,
16350        values: *mut bool,
16351        count: usize,
16352    );
16353}
16354unsafe extern "C" {
16355    pub fn BNAnalyzeBasicBlocksContextSetHaltedDisassemblyAddresses(
16356        abb: *mut BNBasicBlockAnalysisContext,
16357        sources: *mut BNArchitectureAndAddress,
16358        count: usize,
16359    );
16360}
16361unsafe extern "C" {
16362    pub fn BNAnalyzeBasicBlocksContextSetInlinedUnresolvedIndirectBranches(
16363        abb: *mut BNBasicBlockAnalysisContext,
16364        locations: *mut BNArchitectureAndAddress,
16365        count: usize,
16366    );
16367}
16368unsafe extern "C" {
16369    pub fn BNGetParametersForAnalysis(view: *mut BNBinaryView) -> BNAnalysisParameters;
16370}
16371unsafe extern "C" {
16372    pub fn BNSetParametersForAnalysis(view: *mut BNBinaryView, params: BNAnalysisParameters);
16373}
16374unsafe extern "C" {
16375    pub fn BNGetMaxFunctionSizeForAnalysis(view: *mut BNBinaryView) -> u64;
16376}
16377unsafe extern "C" {
16378    pub fn BNSetMaxFunctionSizeForAnalysis(view: *mut BNBinaryView, size: u64);
16379}
16380unsafe extern "C" {
16381    pub fn BNGetNewAutoFunctionAnalysisSuppressed(view: *mut BNBinaryView) -> bool;
16382}
16383unsafe extern "C" {
16384    pub fn BNSetNewAutoFunctionAnalysisSuppressed(view: *mut BNBinaryView, suppress: bool);
16385}
16386unsafe extern "C" {
16387    pub fn BNAddAnalysisCompletionEvent(
16388        view: *mut BNBinaryView,
16389        ctxt: *mut ::std::os::raw::c_void,
16390        callback: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
16391    ) -> *mut BNAnalysisCompletionEvent;
16392}
16393unsafe extern "C" {
16394    pub fn BNNewAnalysisCompletionEventReference(
16395        event: *mut BNAnalysisCompletionEvent,
16396    ) -> *mut BNAnalysisCompletionEvent;
16397}
16398unsafe extern "C" {
16399    pub fn BNFreeAnalysisCompletionEvent(event: *mut BNAnalysisCompletionEvent);
16400}
16401unsafe extern "C" {
16402    pub fn BNCancelAnalysisCompletionEvent(event: *mut BNAnalysisCompletionEvent);
16403}
16404unsafe extern "C" {
16405    pub fn BNShouldSkipTargetAnalysis(
16406        view: *mut BNBinaryView,
16407        source: *mut BNArchitectureAndAddress,
16408        sourceFunc: *mut BNFunction,
16409        sourceEnd: u64,
16410        target: *mut BNArchitectureAndAddress,
16411    ) -> bool;
16412}
16413unsafe extern "C" {
16414    pub fn BNGetAnalysisInfo(view: *mut BNBinaryView) -> *mut BNAnalysisInfo;
16415}
16416unsafe extern "C" {
16417    pub fn BNFreeAnalysisInfo(info: *mut BNAnalysisInfo);
16418}
16419unsafe extern "C" {
16420    pub fn BNGetAnalysisProgress(view: *mut BNBinaryView) -> BNAnalysisProgress;
16421}
16422unsafe extern "C" {
16423    pub fn BNGetAnalysisState(view: *mut BNBinaryView) -> BNAnalysisState;
16424}
16425unsafe extern "C" {
16426    pub fn BNGetBackgroundAnalysisTask(view: *mut BNBinaryView) -> *mut BNBackgroundTask;
16427}
16428unsafe extern "C" {
16429    pub fn BNGetNextFunctionStartAfterAddress(view: *mut BNBinaryView, addr: u64) -> u64;
16430}
16431unsafe extern "C" {
16432    pub fn BNGetNextBasicBlockStartAfterAddress(view: *mut BNBinaryView, addr: u64) -> u64;
16433}
16434unsafe extern "C" {
16435    pub fn BNGetNextDataAfterAddress(view: *mut BNBinaryView, addr: u64) -> u64;
16436}
16437unsafe extern "C" {
16438    pub fn BNGetNextDataVariableStartAfterAddress(view: *mut BNBinaryView, addr: u64) -> u64;
16439}
16440unsafe extern "C" {
16441    pub fn BNGetPreviousFunctionStartBeforeAddress(view: *mut BNBinaryView, addr: u64) -> u64;
16442}
16443unsafe extern "C" {
16444    pub fn BNGetPreviousBasicBlockStartBeforeAddress(view: *mut BNBinaryView, addr: u64) -> u64;
16445}
16446unsafe extern "C" {
16447    pub fn BNGetPreviousBasicBlockEndBeforeAddress(view: *mut BNBinaryView, addr: u64) -> u64;
16448}
16449unsafe extern "C" {
16450    pub fn BNGetPreviousDataBeforeAddress(view: *mut BNBinaryView, addr: u64) -> u64;
16451}
16452unsafe extern "C" {
16453    pub fn BNGetPreviousDataVariableStartBeforeAddress(view: *mut BNBinaryView, addr: u64) -> u64;
16454}
16455unsafe extern "C" {
16456    pub fn BNCreateLinearViewDisassembly(
16457        view: *mut BNBinaryView,
16458        settings: *mut BNDisassemblySettings,
16459    ) -> *mut BNLinearViewObject;
16460}
16461unsafe extern "C" {
16462    pub fn BNCreateLinearViewLiftedIL(
16463        view: *mut BNBinaryView,
16464        settings: *mut BNDisassemblySettings,
16465    ) -> *mut BNLinearViewObject;
16466}
16467unsafe extern "C" {
16468    pub fn BNCreateLinearViewLowLevelIL(
16469        view: *mut BNBinaryView,
16470        settings: *mut BNDisassemblySettings,
16471    ) -> *mut BNLinearViewObject;
16472}
16473unsafe extern "C" {
16474    pub fn BNCreateLinearViewLowLevelILSSAForm(
16475        view: *mut BNBinaryView,
16476        settings: *mut BNDisassemblySettings,
16477    ) -> *mut BNLinearViewObject;
16478}
16479unsafe extern "C" {
16480    pub fn BNCreateLinearViewMediumLevelIL(
16481        view: *mut BNBinaryView,
16482        settings: *mut BNDisassemblySettings,
16483    ) -> *mut BNLinearViewObject;
16484}
16485unsafe extern "C" {
16486    pub fn BNCreateLinearViewMediumLevelILSSAForm(
16487        view: *mut BNBinaryView,
16488        settings: *mut BNDisassemblySettings,
16489    ) -> *mut BNLinearViewObject;
16490}
16491unsafe extern "C" {
16492    pub fn BNCreateLinearViewMappedMediumLevelIL(
16493        view: *mut BNBinaryView,
16494        settings: *mut BNDisassemblySettings,
16495    ) -> *mut BNLinearViewObject;
16496}
16497unsafe extern "C" {
16498    pub fn BNCreateLinearViewMappedMediumLevelILSSAForm(
16499        view: *mut BNBinaryView,
16500        settings: *mut BNDisassemblySettings,
16501    ) -> *mut BNLinearViewObject;
16502}
16503unsafe extern "C" {
16504    pub fn BNCreateLinearViewHighLevelIL(
16505        view: *mut BNBinaryView,
16506        settings: *mut BNDisassemblySettings,
16507    ) -> *mut BNLinearViewObject;
16508}
16509unsafe extern "C" {
16510    pub fn BNCreateLinearViewHighLevelILSSAForm(
16511        view: *mut BNBinaryView,
16512        settings: *mut BNDisassemblySettings,
16513    ) -> *mut BNLinearViewObject;
16514}
16515unsafe extern "C" {
16516    pub fn BNCreateLinearViewLanguageRepresentation(
16517        view: *mut BNBinaryView,
16518        settings: *mut BNDisassemblySettings,
16519        language: *const ::std::os::raw::c_char,
16520    ) -> *mut BNLinearViewObject;
16521}
16522unsafe extern "C" {
16523    pub fn BNCreateLinearViewDataOnly(
16524        view: *mut BNBinaryView,
16525        settings: *mut BNDisassemblySettings,
16526    ) -> *mut BNLinearViewObject;
16527}
16528unsafe extern "C" {
16529    pub fn BNCreateLinearViewSingleFunctionDisassembly(
16530        func: *mut BNFunction,
16531        settings: *mut BNDisassemblySettings,
16532    ) -> *mut BNLinearViewObject;
16533}
16534unsafe extern "C" {
16535    pub fn BNCreateLinearViewSingleFunctionLiftedIL(
16536        func: *mut BNFunction,
16537        settings: *mut BNDisassemblySettings,
16538    ) -> *mut BNLinearViewObject;
16539}
16540unsafe extern "C" {
16541    pub fn BNCreateLinearViewSingleFunctionLowLevelIL(
16542        func: *mut BNFunction,
16543        settings: *mut BNDisassemblySettings,
16544    ) -> *mut BNLinearViewObject;
16545}
16546unsafe extern "C" {
16547    pub fn BNCreateLinearViewSingleFunctionLowLevelILSSAForm(
16548        func: *mut BNFunction,
16549        settings: *mut BNDisassemblySettings,
16550    ) -> *mut BNLinearViewObject;
16551}
16552unsafe extern "C" {
16553    pub fn BNCreateLinearViewSingleFunctionMediumLevelIL(
16554        func: *mut BNFunction,
16555        settings: *mut BNDisassemblySettings,
16556    ) -> *mut BNLinearViewObject;
16557}
16558unsafe extern "C" {
16559    pub fn BNCreateLinearViewSingleFunctionMediumLevelILSSAForm(
16560        func: *mut BNFunction,
16561        settings: *mut BNDisassemblySettings,
16562    ) -> *mut BNLinearViewObject;
16563}
16564unsafe extern "C" {
16565    pub fn BNCreateLinearViewSingleFunctionMappedMediumLevelIL(
16566        func: *mut BNFunction,
16567        settings: *mut BNDisassemblySettings,
16568    ) -> *mut BNLinearViewObject;
16569}
16570unsafe extern "C" {
16571    pub fn BNCreateLinearViewSingleFunctionMappedMediumLevelILSSAForm(
16572        func: *mut BNFunction,
16573        settings: *mut BNDisassemblySettings,
16574    ) -> *mut BNLinearViewObject;
16575}
16576unsafe extern "C" {
16577    pub fn BNCreateLinearViewSingleFunctionHighLevelIL(
16578        func: *mut BNFunction,
16579        settings: *mut BNDisassemblySettings,
16580    ) -> *mut BNLinearViewObject;
16581}
16582unsafe extern "C" {
16583    pub fn BNCreateLinearViewSingleFunctionHighLevelILSSAForm(
16584        func: *mut BNFunction,
16585        settings: *mut BNDisassemblySettings,
16586    ) -> *mut BNLinearViewObject;
16587}
16588unsafe extern "C" {
16589    pub fn BNCreateLinearViewSingleFunctionLanguageRepresentation(
16590        func: *mut BNFunction,
16591        settings: *mut BNDisassemblySettings,
16592        language: *const ::std::os::raw::c_char,
16593    ) -> *mut BNLinearViewObject;
16594}
16595unsafe extern "C" {
16596    pub fn BNNewLinearViewObjectReference(obj: *mut BNLinearViewObject) -> *mut BNLinearViewObject;
16597}
16598unsafe extern "C" {
16599    pub fn BNFreeLinearViewObject(obj: *mut BNLinearViewObject);
16600}
16601unsafe extern "C" {
16602    pub fn BNGetFirstLinearViewObjectChild(obj: *mut BNLinearViewObject)
16603    -> *mut BNLinearViewObject;
16604}
16605unsafe extern "C" {
16606    pub fn BNGetLastLinearViewObjectChild(obj: *mut BNLinearViewObject) -> *mut BNLinearViewObject;
16607}
16608unsafe extern "C" {
16609    pub fn BNGetPreviousLinearViewObjectChild(
16610        parent: *mut BNLinearViewObject,
16611        child: *mut BNLinearViewObject,
16612    ) -> *mut BNLinearViewObject;
16613}
16614unsafe extern "C" {
16615    pub fn BNGetNextLinearViewObjectChild(
16616        parent: *mut BNLinearViewObject,
16617        child: *mut BNLinearViewObject,
16618    ) -> *mut BNLinearViewObject;
16619}
16620unsafe extern "C" {
16621    pub fn BNGetLinearViewObjectChildForAddress(
16622        parent: *mut BNLinearViewObject,
16623        addr: u64,
16624    ) -> *mut BNLinearViewObject;
16625}
16626unsafe extern "C" {
16627    pub fn BNGetLinearViewObjectChildForIdentifier(
16628        parent: *mut BNLinearViewObject,
16629        id: *mut BNLinearViewObjectIdentifier,
16630    ) -> *mut BNLinearViewObject;
16631}
16632unsafe extern "C" {
16633    pub fn BNGetLinearViewObjectLines(
16634        obj: *mut BNLinearViewObject,
16635        prev: *mut BNLinearViewObject,
16636        next: *mut BNLinearViewObject,
16637        count: *mut usize,
16638    ) -> *mut BNLinearDisassemblyLine;
16639}
16640unsafe extern "C" {
16641    pub fn BNFreeLinearDisassemblyLines(lines: *mut BNLinearDisassemblyLine, count: usize);
16642}
16643unsafe extern "C" {
16644    pub fn BNGetLinearViewObjectStart(obj: *mut BNLinearViewObject) -> u64;
16645}
16646unsafe extern "C" {
16647    pub fn BNGetLinearViewObjectEnd(obj: *mut BNLinearViewObject) -> u64;
16648}
16649unsafe extern "C" {
16650    pub fn BNGetLinearViewObjectIdentifier(
16651        obj: *mut BNLinearViewObject,
16652    ) -> BNLinearViewObjectIdentifier;
16653}
16654unsafe extern "C" {
16655    pub fn BNFreeLinearViewObjectIdentifier(id: *mut BNLinearViewObjectIdentifier);
16656}
16657unsafe extern "C" {
16658    pub fn BNCompareLinearViewObjectChildren(
16659        obj: *mut BNLinearViewObject,
16660        a: *mut BNLinearViewObject,
16661        b: *mut BNLinearViewObject,
16662    ) -> ::std::os::raw::c_int;
16663}
16664unsafe extern "C" {
16665    pub fn BNGetLinearViewObjectOrderingIndexTotal(obj: *mut BNLinearViewObject) -> u64;
16666}
16667unsafe extern "C" {
16668    pub fn BNGetLinearViewObjectOrderingIndexForChild(
16669        parent: *mut BNLinearViewObject,
16670        child: *mut BNLinearViewObject,
16671    ) -> u64;
16672}
16673unsafe extern "C" {
16674    pub fn BNGetLinearViewObjectChildForOrderingIndex(
16675        parent: *mut BNLinearViewObject,
16676        idx: u64,
16677    ) -> *mut BNLinearViewObject;
16678}
16679unsafe extern "C" {
16680    pub fn BNCreateLinearViewCursor(root: *mut BNLinearViewObject) -> *mut BNLinearViewCursor;
16681}
16682unsafe extern "C" {
16683    pub fn BNDuplicateLinearViewCursor(cursor: *mut BNLinearViewCursor) -> *mut BNLinearViewCursor;
16684}
16685unsafe extern "C" {
16686    pub fn BNNewLinearViewCursorReference(
16687        cursor: *mut BNLinearViewCursor,
16688    ) -> *mut BNLinearViewCursor;
16689}
16690unsafe extern "C" {
16691    pub fn BNFreeLinearViewCursor(cursor: *mut BNLinearViewCursor);
16692}
16693unsafe extern "C" {
16694    pub fn BNIsLinearViewCursorBeforeBegin(cursor: *mut BNLinearViewCursor) -> bool;
16695}
16696unsafe extern "C" {
16697    pub fn BNIsLinearViewCursorAfterEnd(cursor: *mut BNLinearViewCursor) -> bool;
16698}
16699unsafe extern "C" {
16700    pub fn BNGetLinearViewCursorCurrentObject(
16701        cursor: *mut BNLinearViewCursor,
16702    ) -> *mut BNLinearViewObject;
16703}
16704unsafe extern "C" {
16705    pub fn BNGetLinearViewCursorPath(
16706        cursor: *mut BNLinearViewCursor,
16707        count: *mut usize,
16708    ) -> *mut BNLinearViewObjectIdentifier;
16709}
16710unsafe extern "C" {
16711    pub fn BNFreeLinearViewCursorPath(objs: *mut BNLinearViewObjectIdentifier, count: usize);
16712}
16713unsafe extern "C" {
16714    pub fn BNGetLinearViewCursorPathObjects(
16715        cursor: *mut BNLinearViewCursor,
16716        count: *mut usize,
16717    ) -> *mut *mut BNLinearViewObject;
16718}
16719unsafe extern "C" {
16720    pub fn BNFreeLinearViewCursorPathObjects(objs: *mut *mut BNLinearViewObject, count: usize);
16721}
16722unsafe extern "C" {
16723    pub fn BNGetLinearViewCursorOrderingIndex(cursor: *mut BNLinearViewCursor) -> BNAddressRange;
16724}
16725unsafe extern "C" {
16726    pub fn BNGetLinearViewCursorOrderingIndexTotal(cursor: *mut BNLinearViewCursor) -> u64;
16727}
16728unsafe extern "C" {
16729    pub fn BNSeekLinearViewCursorToBegin(cursor: *mut BNLinearViewCursor);
16730}
16731unsafe extern "C" {
16732    pub fn BNSeekLinearViewCursorToEnd(cursor: *mut BNLinearViewCursor);
16733}
16734unsafe extern "C" {
16735    pub fn BNSeekLinearViewCursorToAddress(cursor: *mut BNLinearViewCursor, addr: u64);
16736}
16737unsafe extern "C" {
16738    pub fn BNSeekLinearViewCursorToPath(
16739        cursor: *mut BNLinearViewCursor,
16740        ids: *mut BNLinearViewObjectIdentifier,
16741        count: usize,
16742    ) -> bool;
16743}
16744unsafe extern "C" {
16745    pub fn BNSeekLinearViewCursorToPathAndAddress(
16746        cursor: *mut BNLinearViewCursor,
16747        ids: *mut BNLinearViewObjectIdentifier,
16748        count: usize,
16749        addr: u64,
16750    ) -> bool;
16751}
16752unsafe extern "C" {
16753    pub fn BNSeekLinearViewCursorToCursorPath(
16754        cursor: *mut BNLinearViewCursor,
16755        path: *mut BNLinearViewCursor,
16756    ) -> bool;
16757}
16758unsafe extern "C" {
16759    pub fn BNSeekLinearViewCursorToCursorPathAndAddress(
16760        cursor: *mut BNLinearViewCursor,
16761        path: *mut BNLinearViewCursor,
16762        addr: u64,
16763    ) -> bool;
16764}
16765unsafe extern "C" {
16766    pub fn BNSeekLinearViewCursorToOrderingIndex(cursor: *mut BNLinearViewCursor, idx: u64);
16767}
16768unsafe extern "C" {
16769    pub fn BNLinearViewCursorNext(cursor: *mut BNLinearViewCursor) -> bool;
16770}
16771unsafe extern "C" {
16772    pub fn BNLinearViewCursorPrevious(cursor: *mut BNLinearViewCursor) -> bool;
16773}
16774unsafe extern "C" {
16775    pub fn BNGetLinearViewCursorLines(
16776        cursor: *mut BNLinearViewCursor,
16777        count: *mut usize,
16778    ) -> *mut BNLinearDisassemblyLine;
16779}
16780unsafe extern "C" {
16781    pub fn BNCompareLinearViewCursors(
16782        a: *mut BNLinearViewCursor,
16783        b: *mut BNLinearViewCursor,
16784    ) -> ::std::os::raw::c_int;
16785}
16786unsafe extern "C" {
16787    pub fn BNGetLinearViewCursorRenderLayers(
16788        cursor: *mut BNLinearViewCursor,
16789        count: *mut usize,
16790    ) -> *mut *mut BNRenderLayer;
16791}
16792unsafe extern "C" {
16793    pub fn BNAddLinearViewCursorRenderLayer(
16794        cursor: *mut BNLinearViewCursor,
16795        layer: *mut BNRenderLayer,
16796    );
16797}
16798unsafe extern "C" {
16799    pub fn BNRemoveLinearViewCursorRenderLayer(
16800        cursor: *mut BNLinearViewCursor,
16801        layer: *mut BNRenderLayer,
16802    );
16803}
16804unsafe extern "C" {
16805    pub fn BNDefineDataVariable(
16806        view: *mut BNBinaryView,
16807        addr: u64,
16808        type_: *mut BNTypeWithConfidence,
16809    );
16810}
16811unsafe extern "C" {
16812    pub fn BNDefineUserDataVariable(
16813        view: *mut BNBinaryView,
16814        addr: u64,
16815        type_: *mut BNTypeWithConfidence,
16816    );
16817}
16818unsafe extern "C" {
16819    pub fn BNUndefineDataVariable(view: *mut BNBinaryView, addr: u64, blacklist: bool);
16820}
16821unsafe extern "C" {
16822    pub fn BNUndefineUserDataVariable(view: *mut BNBinaryView, addr: u64);
16823}
16824unsafe extern "C" {
16825    pub fn BNGetDataVariables(view: *mut BNBinaryView, count: *mut usize) -> *mut BNDataVariable;
16826}
16827unsafe extern "C" {
16828    pub fn BNFreeDataVariable(var: *mut BNDataVariable);
16829}
16830unsafe extern "C" {
16831    pub fn BNFreeDataVariables(vars: *mut BNDataVariable, count: usize);
16832}
16833unsafe extern "C" {
16834    pub fn BNFreeDataVariableAndName(var: *mut BNDataVariableAndName);
16835}
16836unsafe extern "C" {
16837    pub fn BNFreeDataVariablesAndName(vars: *mut BNDataVariableAndName, count: usize);
16838}
16839unsafe extern "C" {
16840    pub fn BNFreeDataVariableAndNameAndDebugParserList(
16841        vars: *mut BNDataVariableAndNameAndDebugParser,
16842        count: usize,
16843    );
16844}
16845unsafe extern "C" {
16846    pub fn BNGetDataVariableAtAddress(
16847        view: *mut BNBinaryView,
16848        addr: u64,
16849        var: *mut BNDataVariable,
16850    ) -> bool;
16851}
16852unsafe extern "C" {
16853    pub fn BNParseTypeString(
16854        view: *mut BNBinaryView,
16855        text: *const ::std::os::raw::c_char,
16856        result: *mut BNQualifiedNameAndType,
16857        errors: *mut *mut ::std::os::raw::c_char,
16858        typesAllowRedefinition: *mut BNQualifiedNameList,
16859        importDepencencies: bool,
16860    ) -> bool;
16861}
16862unsafe extern "C" {
16863    pub fn BNParseTypesString(
16864        view: *mut BNBinaryView,
16865        text: *const ::std::os::raw::c_char,
16866        options: *const *const ::std::os::raw::c_char,
16867        optionCount: usize,
16868        includeDirs: *const *const ::std::os::raw::c_char,
16869        includeDirCount: usize,
16870        result: *mut BNTypeParserResult,
16871        errors: *mut *mut ::std::os::raw::c_char,
16872        typesAllowRedefinition: *mut BNQualifiedNameList,
16873        importDepencencies: bool,
16874    ) -> bool;
16875}
16876unsafe extern "C" {
16877    pub fn BNFreeQualifiedNameAndType(obj: *mut BNQualifiedNameAndType);
16878}
16879unsafe extern "C" {
16880    pub fn BNFreeQualifiedNameAndTypeArray(obj: *mut BNQualifiedNameAndType, count: usize);
16881}
16882unsafe extern "C" {
16883    pub fn BNFreeQualifiedNameTypeAndId(obj: *mut BNQualifiedNameTypeAndId);
16884}
16885unsafe extern "C" {
16886    pub fn BNEscapeTypeName(
16887        name: *const ::std::os::raw::c_char,
16888        escaping: BNTokenEscapingType,
16889    ) -> *mut ::std::os::raw::c_char;
16890}
16891unsafe extern "C" {
16892    pub fn BNUnescapeTypeName(
16893        name: *const ::std::os::raw::c_char,
16894        escaping: BNTokenEscapingType,
16895    ) -> *mut ::std::os::raw::c_char;
16896}
16897unsafe extern "C" {
16898    pub fn BNGetAnalysisTypeList(
16899        view: *mut BNBinaryView,
16900        count: *mut usize,
16901    ) -> *mut BNQualifiedNameAndType;
16902}
16903unsafe extern "C" {
16904    pub fn BNGetAnalysisDependencySortedTypeList(
16905        view: *mut BNBinaryView,
16906        count: *mut usize,
16907    ) -> *mut BNQualifiedNameAndType;
16908}
16909unsafe extern "C" {
16910    pub fn BNFreeTypeAndNameList(types: *mut BNQualifiedNameAndType, count: usize);
16911}
16912unsafe extern "C" {
16913    pub fn BNFreeTypeIdList(types: *mut BNQualifiedNameTypeAndId, count: usize);
16914}
16915unsafe extern "C" {
16916    pub fn BNGetAnalysisTypeNames(
16917        view: *mut BNBinaryView,
16918        count: *mut usize,
16919        matching: *const ::std::os::raw::c_char,
16920    ) -> *mut BNQualifiedName;
16921}
16922unsafe extern "C" {
16923    pub fn BNFreeTypeNameList(names: *mut BNQualifiedName, count: usize);
16924}
16925unsafe extern "C" {
16926    pub fn BNGetAnalysisTypeContainer(view: *mut BNBinaryView) -> *mut BNTypeContainer;
16927}
16928unsafe extern "C" {
16929    pub fn BNGetAnalysisAutoTypeContainer(view: *mut BNBinaryView) -> *mut BNTypeContainer;
16930}
16931unsafe extern "C" {
16932    pub fn BNGetAnalysisUserTypeContainer(view: *mut BNBinaryView) -> *mut BNTypeContainer;
16933}
16934unsafe extern "C" {
16935    pub fn BNGetAnalysisTypeByName(
16936        view: *mut BNBinaryView,
16937        name: *mut BNQualifiedName,
16938    ) -> *mut BNType;
16939}
16940unsafe extern "C" {
16941    pub fn BNGetAnalysisTypeByRef(
16942        view: *mut BNBinaryView,
16943        ref_: *mut BNNamedTypeReference,
16944    ) -> *mut BNType;
16945}
16946unsafe extern "C" {
16947    pub fn BNGetAnalysisTypeById(
16948        view: *mut BNBinaryView,
16949        id: *const ::std::os::raw::c_char,
16950    ) -> *mut BNType;
16951}
16952unsafe extern "C" {
16953    pub fn BNGetAnalysisTypeId(
16954        view: *mut BNBinaryView,
16955        name: *mut BNQualifiedName,
16956    ) -> *mut ::std::os::raw::c_char;
16957}
16958unsafe extern "C" {
16959    pub fn BNGetAnalysisTypeNameById(
16960        view: *mut BNBinaryView,
16961        id: *const ::std::os::raw::c_char,
16962    ) -> BNQualifiedName;
16963}
16964unsafe extern "C" {
16965    pub fn BNIsAnalysisTypeAutoDefined(view: *mut BNBinaryView, name: *mut BNQualifiedName)
16966    -> bool;
16967}
16968unsafe extern "C" {
16969    pub fn BNDefineAnalysisType(
16970        view: *mut BNBinaryView,
16971        id: *const ::std::os::raw::c_char,
16972        defaultName: *mut BNQualifiedName,
16973        type_: *mut BNType,
16974    ) -> BNQualifiedName;
16975}
16976unsafe extern "C" {
16977    pub fn BNDefineUserAnalysisType(
16978        view: *mut BNBinaryView,
16979        name: *mut BNQualifiedName,
16980        type_: *mut BNType,
16981    );
16982}
16983unsafe extern "C" {
16984    pub fn BNDefineAnalysisTypes(
16985        view: *mut BNBinaryView,
16986        types: *mut BNQualifiedNameTypeAndId,
16987        count: usize,
16988        progress: BNProgressFunction,
16989        progressContext: *mut ::std::os::raw::c_void,
16990        resultIds: *mut *mut *mut ::std::os::raw::c_char,
16991        resultNames: *mut *mut BNQualifiedName,
16992    ) -> usize;
16993}
16994unsafe extern "C" {
16995    pub fn BNDefineUserAnalysisTypes(
16996        view: *mut BNBinaryView,
16997        types: *mut BNQualifiedNameAndType,
16998        count: usize,
16999        progress: BNProgressFunction,
17000        progressContext: *mut ::std::os::raw::c_void,
17001    );
17002}
17003unsafe extern "C" {
17004    pub fn BNUndefineAnalysisType(view: *mut BNBinaryView, id: *const ::std::os::raw::c_char);
17005}
17006unsafe extern "C" {
17007    pub fn BNUndefineUserAnalysisType(view: *mut BNBinaryView, name: *mut BNQualifiedName);
17008}
17009unsafe extern "C" {
17010    pub fn BNRenameAnalysisType(
17011        view: *mut BNBinaryView,
17012        oldName: *mut BNQualifiedName,
17013        newName: *mut BNQualifiedName,
17014    );
17015}
17016unsafe extern "C" {
17017    pub fn BNGetAnalysisSystemCallType(
17018        view: *mut BNBinaryView,
17019        platform: *mut BNPlatform,
17020        id: u32,
17021    ) -> *mut BNType;
17022}
17023unsafe extern "C" {
17024    pub fn BNGetAnalysisSystemCallName(
17025        view: *mut BNBinaryView,
17026        platform: *mut BNPlatform,
17027        id: u32,
17028    ) -> *mut ::std::os::raw::c_char;
17029}
17030unsafe extern "C" {
17031    pub fn BNGenerateAutoTypeId(
17032        source: *const ::std::os::raw::c_char,
17033        name: *mut BNQualifiedName,
17034    ) -> *mut ::std::os::raw::c_char;
17035}
17036unsafe extern "C" {
17037    pub fn BNGenerateAutoPlatformTypeId(
17038        platform: *mut BNPlatform,
17039        name: *mut BNQualifiedName,
17040    ) -> *mut ::std::os::raw::c_char;
17041}
17042unsafe extern "C" {
17043    pub fn BNGenerateAutoDemangledTypeId(name: *mut BNQualifiedName)
17044    -> *mut ::std::os::raw::c_char;
17045}
17046unsafe extern "C" {
17047    pub fn BNGetAutoPlatformTypeIdSource(platform: *mut BNPlatform) -> *mut ::std::os::raw::c_char;
17048}
17049unsafe extern "C" {
17050    pub fn BNGetAutoDemangledTypeIdSource() -> *mut ::std::os::raw::c_char;
17051}
17052unsafe extern "C" {
17053    pub fn BNGenerateAutoDebugTypeId(name: *mut BNQualifiedName) -> *mut ::std::os::raw::c_char;
17054}
17055unsafe extern "C" {
17056    pub fn BNGetAutoDebugTypeIdSource() -> *mut ::std::os::raw::c_char;
17057}
17058unsafe extern "C" {
17059    pub fn BNRegisterPlatformTypes(view: *mut BNBinaryView, platform: *mut BNPlatform);
17060}
17061unsafe extern "C" {
17062    pub fn BNLookupImportedTypePlatform(
17063        view: *mut BNBinaryView,
17064        typeName: *const BNQualifiedName,
17065        platform: *mut *mut BNPlatform,
17066        resultName: *mut BNQualifiedName,
17067    ) -> bool;
17068}
17069unsafe extern "C" {
17070    pub fn BNReanalyzeAllFunctions(view: *mut BNBinaryView);
17071}
17072unsafe extern "C" {
17073    pub fn BNAnalyzeFunction(func: *mut BNFunction);
17074}
17075unsafe extern "C" {
17076    pub fn BNReanalyzeFunction(func: *mut BNFunction, type_: BNFunctionUpdateType);
17077}
17078unsafe extern "C" {
17079    pub fn BNMarkUpdatesRequired(func: *mut BNFunction, type_: BNFunctionUpdateType);
17080}
17081unsafe extern "C" {
17082    pub fn BNMarkCallerUpdatesRequired(func: *mut BNFunction, type_: BNFunctionUpdateType);
17083}
17084unsafe extern "C" {
17085    pub fn BNGetInstructionHighlight(
17086        func: *mut BNFunction,
17087        arch: *mut BNArchitecture,
17088        addr: u64,
17089    ) -> BNHighlightColor;
17090}
17091unsafe extern "C" {
17092    pub fn BNSetAutoInstructionHighlight(
17093        func: *mut BNFunction,
17094        arch: *mut BNArchitecture,
17095        addr: u64,
17096        color: BNHighlightColor,
17097    );
17098}
17099unsafe extern "C" {
17100    pub fn BNSetUserInstructionHighlight(
17101        func: *mut BNFunction,
17102        arch: *mut BNArchitecture,
17103        addr: u64,
17104        color: BNHighlightColor,
17105    );
17106}
17107unsafe extern "C" {
17108    pub fn BNGetBasicBlockHighlight(block: *mut BNBasicBlock) -> BNHighlightColor;
17109}
17110unsafe extern "C" {
17111    pub fn BNSetAutoBasicBlockHighlight(block: *mut BNBasicBlock, color: BNHighlightColor);
17112}
17113unsafe extern "C" {
17114    pub fn BNSetUserBasicBlockHighlight(block: *mut BNBasicBlock, color: BNHighlightColor);
17115}
17116unsafe extern "C" {
17117    pub fn BNFreeTypeContainer(container: *mut BNTypeContainer);
17118}
17119unsafe extern "C" {
17120    pub fn BNDuplicateTypeContainer(container: *mut BNTypeContainer) -> *mut BNTypeContainer;
17121}
17122unsafe extern "C" {
17123    pub fn BNTypeContainerGetId(container: *mut BNTypeContainer) -> *mut ::std::os::raw::c_char;
17124}
17125unsafe extern "C" {
17126    pub fn BNTypeContainerGetName(container: *mut BNTypeContainer) -> *mut ::std::os::raw::c_char;
17127}
17128unsafe extern "C" {
17129    pub fn BNTypeContainerGetType(container: *mut BNTypeContainer) -> BNTypeContainerType;
17130}
17131unsafe extern "C" {
17132    pub fn BNTypeContainerIsMutable(container: *mut BNTypeContainer) -> bool;
17133}
17134unsafe extern "C" {
17135    pub fn BNTypeContainerGetPlatform(container: *mut BNTypeContainer) -> *mut BNPlatform;
17136}
17137unsafe extern "C" {
17138    pub fn BNTypeContainerAddTypes(
17139        container: *mut BNTypeContainer,
17140        typeNames: *const BNQualifiedName,
17141        types: *mut *mut BNType,
17142        typeCount: usize,
17143        progress: BNProgressFunction,
17144        progressContext: *mut ::std::os::raw::c_void,
17145        resultNames: *mut *mut BNQualifiedName,
17146        resultIds: *mut *mut *mut ::std::os::raw::c_char,
17147        resultCount: *mut usize,
17148    ) -> bool;
17149}
17150unsafe extern "C" {
17151    pub fn BNTypeContainerRenameType(
17152        container: *mut BNTypeContainer,
17153        typeId: *const ::std::os::raw::c_char,
17154        newName: *const BNQualifiedName,
17155    ) -> bool;
17156}
17157unsafe extern "C" {
17158    pub fn BNTypeContainerDeleteType(
17159        container: *mut BNTypeContainer,
17160        typeId: *const ::std::os::raw::c_char,
17161    ) -> bool;
17162}
17163unsafe extern "C" {
17164    pub fn BNTypeContainerGetTypeId(
17165        container: *mut BNTypeContainer,
17166        typeName: *const BNQualifiedName,
17167        result: *mut *mut ::std::os::raw::c_char,
17168    ) -> bool;
17169}
17170unsafe extern "C" {
17171    pub fn BNTypeContainerGetTypeName(
17172        container: *mut BNTypeContainer,
17173        typeId: *const ::std::os::raw::c_char,
17174        result: *mut BNQualifiedName,
17175    ) -> bool;
17176}
17177unsafe extern "C" {
17178    pub fn BNTypeContainerGetTypeById(
17179        container: *mut BNTypeContainer,
17180        typeId: *const ::std::os::raw::c_char,
17181        result: *mut *mut BNType,
17182    ) -> bool;
17183}
17184unsafe extern "C" {
17185    pub fn BNTypeContainerGetTypes(
17186        container: *mut BNTypeContainer,
17187        typeIds: *mut *mut *mut ::std::os::raw::c_char,
17188        typeNames: *mut *mut BNQualifiedName,
17189        types: *mut *mut *mut BNType,
17190        count: *mut usize,
17191    ) -> bool;
17192}
17193unsafe extern "C" {
17194    pub fn BNTypeContainerGetTypeByName(
17195        container: *mut BNTypeContainer,
17196        typeName: *const BNQualifiedName,
17197        result: *mut *mut BNType,
17198    ) -> bool;
17199}
17200unsafe extern "C" {
17201    pub fn BNTypeContainerGetTypeIds(
17202        container: *mut BNTypeContainer,
17203        typeIds: *mut *mut *mut ::std::os::raw::c_char,
17204        count: *mut usize,
17205    ) -> bool;
17206}
17207unsafe extern "C" {
17208    pub fn BNTypeContainerGetTypeNames(
17209        container: *mut BNTypeContainer,
17210        typeNames: *mut *mut BNQualifiedName,
17211        count: *mut usize,
17212    ) -> bool;
17213}
17214unsafe extern "C" {
17215    pub fn BNTypeContainerGetTypeNamesAndIds(
17216        container: *mut BNTypeContainer,
17217        typeIds: *mut *mut *mut ::std::os::raw::c_char,
17218        typeNames: *mut *mut BNQualifiedName,
17219        count: *mut usize,
17220    ) -> bool;
17221}
17222unsafe extern "C" {
17223    pub fn BNTypeContainerGetTypeCount(container: *mut BNTypeContainer) -> usize;
17224}
17225unsafe extern "C" {
17226    pub fn BNTypeContainerParseTypeString(
17227        container: *mut BNTypeContainer,
17228        source: *const ::std::os::raw::c_char,
17229        importDepencencies: bool,
17230        result: *mut BNQualifiedNameAndType,
17231        errors: *mut *mut BNTypeParserError,
17232        errorCount: *mut usize,
17233    ) -> bool;
17234}
17235unsafe extern "C" {
17236    pub fn BNTypeContainerParseTypesFromSource(
17237        container: *mut BNTypeContainer,
17238        source: *const ::std::os::raw::c_char,
17239        fileName: *const ::std::os::raw::c_char,
17240        options: *const *const ::std::os::raw::c_char,
17241        optionCount: usize,
17242        includeDirs: *const *const ::std::os::raw::c_char,
17243        includeDirCount: usize,
17244        autoTypeSource: *const ::std::os::raw::c_char,
17245        importDepencencies: bool,
17246        result: *mut BNTypeParserResult,
17247        errors: *mut *mut BNTypeParserError,
17248        errorCount: *mut usize,
17249    ) -> bool;
17250}
17251unsafe extern "C" {
17252    pub fn BNGetEmptyTypeContainer() -> *mut BNTypeContainer;
17253}
17254unsafe extern "C" {
17255    pub fn BNCreateTagType(view: *mut BNBinaryView) -> *mut BNTagType;
17256}
17257unsafe extern "C" {
17258    pub fn BNNewTagTypeReference(tagType: *mut BNTagType) -> *mut BNTagType;
17259}
17260unsafe extern "C" {
17261    pub fn BNFreeTagType(tagType: *mut BNTagType);
17262}
17263unsafe extern "C" {
17264    pub fn BNFreeTagTypeList(tagTypes: *mut *mut BNTagType, count: usize);
17265}
17266unsafe extern "C" {
17267    pub fn BNTagTypeGetView(tagType: *mut BNTagType) -> *mut BNBinaryView;
17268}
17269unsafe extern "C" {
17270    pub fn BNTagTypeGetId(tagType: *mut BNTagType) -> *mut ::std::os::raw::c_char;
17271}
17272unsafe extern "C" {
17273    pub fn BNTagTypeGetName(tagType: *mut BNTagType) -> *mut ::std::os::raw::c_char;
17274}
17275unsafe extern "C" {
17276    pub fn BNTagTypeSetName(tagType: *mut BNTagType, name: *const ::std::os::raw::c_char);
17277}
17278unsafe extern "C" {
17279    pub fn BNTagTypeGetIcon(tagType: *mut BNTagType) -> *mut ::std::os::raw::c_char;
17280}
17281unsafe extern "C" {
17282    pub fn BNTagTypeSetIcon(tagType: *mut BNTagType, icon: *const ::std::os::raw::c_char);
17283}
17284unsafe extern "C" {
17285    pub fn BNTagTypeGetVisible(tagType: *mut BNTagType) -> bool;
17286}
17287unsafe extern "C" {
17288    pub fn BNTagTypeSetVisible(tagType: *mut BNTagType, visible: bool);
17289}
17290unsafe extern "C" {
17291    pub fn BNTagTypeGetType(tagType: *mut BNTagType) -> BNTagTypeType;
17292}
17293unsafe extern "C" {
17294    pub fn BNTagTypeSetType(tagType: *mut BNTagType, type_: BNTagTypeType);
17295}
17296unsafe extern "C" {
17297    pub fn BNCreateTag(type_: *mut BNTagType, data: *const ::std::os::raw::c_char) -> *mut BNTag;
17298}
17299unsafe extern "C" {
17300    pub fn BNNewTagReference(tag: *mut BNTag) -> *mut BNTag;
17301}
17302unsafe extern "C" {
17303    pub fn BNFreeTag(tag: *mut BNTag);
17304}
17305unsafe extern "C" {
17306    pub fn BNFreeTagList(tags: *mut *mut BNTag, count: usize);
17307}
17308unsafe extern "C" {
17309    pub fn BNTagGetId(tag: *mut BNTag) -> *mut ::std::os::raw::c_char;
17310}
17311unsafe extern "C" {
17312    pub fn BNTagGetType(tag: *mut BNTag) -> *mut BNTagType;
17313}
17314unsafe extern "C" {
17315    pub fn BNTagGetData(tag: *mut BNTag) -> *mut ::std::os::raw::c_char;
17316}
17317unsafe extern "C" {
17318    pub fn BNTagSetData(tag: *mut BNTag, data: *const ::std::os::raw::c_char);
17319}
17320unsafe extern "C" {
17321    pub fn BNAddTagType(view: *mut BNBinaryView, tagType: *mut BNTagType);
17322}
17323unsafe extern "C" {
17324    pub fn BNRemoveTagType(view: *mut BNBinaryView, tagType: *mut BNTagType);
17325}
17326unsafe extern "C" {
17327    pub fn BNGetTagType(
17328        view: *mut BNBinaryView,
17329        name: *const ::std::os::raw::c_char,
17330    ) -> *mut BNTagType;
17331}
17332unsafe extern "C" {
17333    pub fn BNGetTagTypeWithType(
17334        view: *mut BNBinaryView,
17335        name: *const ::std::os::raw::c_char,
17336        type_: BNTagTypeType,
17337    ) -> *mut BNTagType;
17338}
17339unsafe extern "C" {
17340    pub fn BNGetTagTypeById(
17341        view: *mut BNBinaryView,
17342        id: *const ::std::os::raw::c_char,
17343    ) -> *mut BNTagType;
17344}
17345unsafe extern "C" {
17346    pub fn BNGetTagTypeByIdWithType(
17347        view: *mut BNBinaryView,
17348        id: *const ::std::os::raw::c_char,
17349        type_: BNTagTypeType,
17350    ) -> *mut BNTagType;
17351}
17352unsafe extern "C" {
17353    pub fn BNGetTagTypes(view: *mut BNBinaryView, count: *mut usize) -> *mut *mut BNTagType;
17354}
17355unsafe extern "C" {
17356    pub fn BNAddTag(view: *mut BNBinaryView, tag: *mut BNTag, user: bool);
17357}
17358unsafe extern "C" {
17359    pub fn BNGetTag(view: *mut BNBinaryView, tagId: *const ::std::os::raw::c_char) -> *mut BNTag;
17360}
17361unsafe extern "C" {
17362    pub fn BNRemoveTag(view: *mut BNBinaryView, tag: *mut BNTag, user: bool);
17363}
17364unsafe extern "C" {
17365    pub fn BNGetAllTagReferences(view: *mut BNBinaryView, count: *mut usize)
17366    -> *mut BNTagReference;
17367}
17368unsafe extern "C" {
17369    pub fn BNGetAllAddressTagReferences(
17370        view: *mut BNBinaryView,
17371        count: *mut usize,
17372    ) -> *mut BNTagReference;
17373}
17374unsafe extern "C" {
17375    pub fn BNGetAllFunctionTagReferences(
17376        view: *mut BNBinaryView,
17377        count: *mut usize,
17378    ) -> *mut BNTagReference;
17379}
17380unsafe extern "C" {
17381    pub fn BNGetAllTagReferencesOfType(
17382        view: *mut BNBinaryView,
17383        tagType: *mut BNTagType,
17384        count: *mut usize,
17385    ) -> *mut BNTagReference;
17386}
17387unsafe extern "C" {
17388    pub fn BNGetTagReferencesOfType(
17389        view: *mut BNBinaryView,
17390        tagType: *mut BNTagType,
17391        count: *mut usize,
17392    ) -> *mut BNTagReference;
17393}
17394unsafe extern "C" {
17395    pub fn BNGetDataTagReferences(
17396        view: *mut BNBinaryView,
17397        count: *mut usize,
17398    ) -> *mut BNTagReference;
17399}
17400unsafe extern "C" {
17401    pub fn BNGetAutoDataTagReferences(
17402        view: *mut BNBinaryView,
17403        count: *mut usize,
17404    ) -> *mut BNTagReference;
17405}
17406unsafe extern "C" {
17407    pub fn BNGetUserDataTagReferences(
17408        view: *mut BNBinaryView,
17409        count: *mut usize,
17410    ) -> *mut BNTagReference;
17411}
17412unsafe extern "C" {
17413    pub fn BNRemoveTagReference(view: *mut BNBinaryView, ref_: BNTagReference);
17414}
17415unsafe extern "C" {
17416    pub fn BNFreeTagReferences(refs: *mut BNTagReference, count: usize);
17417}
17418unsafe extern "C" {
17419    pub fn BNGetDataTags(view: *mut BNBinaryView, addr: u64, count: *mut usize) -> *mut *mut BNTag;
17420}
17421unsafe extern "C" {
17422    pub fn BNGetAutoDataTags(
17423        view: *mut BNBinaryView,
17424        addr: u64,
17425        count: *mut usize,
17426    ) -> *mut *mut BNTag;
17427}
17428unsafe extern "C" {
17429    pub fn BNGetUserDataTags(
17430        view: *mut BNBinaryView,
17431        addr: u64,
17432        count: *mut usize,
17433    ) -> *mut *mut BNTag;
17434}
17435unsafe extern "C" {
17436    pub fn BNGetDataTagsOfType(
17437        view: *mut BNBinaryView,
17438        addr: u64,
17439        tagType: *mut BNTagType,
17440        count: *mut usize,
17441    ) -> *mut *mut BNTag;
17442}
17443unsafe extern "C" {
17444    pub fn BNGetAutoDataTagsOfType(
17445        view: *mut BNBinaryView,
17446        addr: u64,
17447        tagType: *mut BNTagType,
17448        count: *mut usize,
17449    ) -> *mut *mut BNTag;
17450}
17451unsafe extern "C" {
17452    pub fn BNGetUserDataTagsOfType(
17453        view: *mut BNBinaryView,
17454        addr: u64,
17455        tagType: *mut BNTagType,
17456        count: *mut usize,
17457    ) -> *mut *mut BNTag;
17458}
17459unsafe extern "C" {
17460    pub fn BNGetDataTagsInRange(
17461        view: *mut BNBinaryView,
17462        start: u64,
17463        end: u64,
17464        count: *mut usize,
17465    ) -> *mut BNTagReference;
17466}
17467unsafe extern "C" {
17468    pub fn BNGetAutoDataTagsInRange(
17469        view: *mut BNBinaryView,
17470        start: u64,
17471        end: u64,
17472        count: *mut usize,
17473    ) -> *mut BNTagReference;
17474}
17475unsafe extern "C" {
17476    pub fn BNGetUserDataTagsInRange(
17477        view: *mut BNBinaryView,
17478        start: u64,
17479        end: u64,
17480        count: *mut usize,
17481    ) -> *mut BNTagReference;
17482}
17483unsafe extern "C" {
17484    pub fn BNAddAutoDataTag(view: *mut BNBinaryView, addr: u64, tag: *mut BNTag);
17485}
17486unsafe extern "C" {
17487    pub fn BNRemoveAutoDataTag(view: *mut BNBinaryView, addr: u64, tag: *mut BNTag);
17488}
17489unsafe extern "C" {
17490    pub fn BNRemoveAutoDataTagsOfType(view: *mut BNBinaryView, addr: u64, tagType: *mut BNTagType);
17491}
17492unsafe extern "C" {
17493    pub fn BNAddUserDataTag(view: *mut BNBinaryView, addr: u64, tag: *mut BNTag);
17494}
17495unsafe extern "C" {
17496    pub fn BNRemoveUserDataTag(view: *mut BNBinaryView, addr: u64, tag: *mut BNTag);
17497}
17498unsafe extern "C" {
17499    pub fn BNRemoveUserDataTagsOfType(view: *mut BNBinaryView, addr: u64, tagType: *mut BNTagType);
17500}
17501unsafe extern "C" {
17502    pub fn BNGetTagReferencesOfTypeCount(view: *mut BNBinaryView, tagType: *mut BNTagType)
17503    -> usize;
17504}
17505unsafe extern "C" {
17506    pub fn BNGetAllTagReferencesOfTypeCount(
17507        view: *mut BNBinaryView,
17508        tagType: *mut BNTagType,
17509    ) -> usize;
17510}
17511unsafe extern "C" {
17512    pub fn BNGetAllTagReferenceTypeCounts(
17513        view: *mut BNBinaryView,
17514        tagTypes: *mut *mut *mut BNTagType,
17515        counts: *mut *mut usize,
17516        count: *mut usize,
17517    );
17518}
17519unsafe extern "C" {
17520    pub fn BNFreeTagReferenceTypeCounts(
17521        tagTypes: *mut *mut BNTagType,
17522        counts: *mut usize,
17523        count: usize,
17524    );
17525}
17526unsafe extern "C" {
17527    pub fn BNGetFunctionAllTagReferences(
17528        func: *mut BNFunction,
17529        count: *mut usize,
17530    ) -> *mut BNTagReference;
17531}
17532unsafe extern "C" {
17533    pub fn BNGetFunctionTagReferencesOfType(
17534        func: *mut BNFunction,
17535        tagType: *mut BNTagType,
17536        count: *mut usize,
17537    ) -> *mut BNTagReference;
17538}
17539unsafe extern "C" {
17540    pub fn BNGetAddressTagReferences(
17541        func: *mut BNFunction,
17542        count: *mut usize,
17543    ) -> *mut BNTagReference;
17544}
17545unsafe extern "C" {
17546    pub fn BNGetAutoAddressTagReferences(
17547        func: *mut BNFunction,
17548        count: *mut usize,
17549    ) -> *mut BNTagReference;
17550}
17551unsafe extern "C" {
17552    pub fn BNGetUserAddressTagReferences(
17553        func: *mut BNFunction,
17554        count: *mut usize,
17555    ) -> *mut BNTagReference;
17556}
17557unsafe extern "C" {
17558    pub fn BNGetAddressTags(
17559        func: *mut BNFunction,
17560        arch: *mut BNArchitecture,
17561        addr: u64,
17562        count: *mut usize,
17563    ) -> *mut *mut BNTag;
17564}
17565unsafe extern "C" {
17566    pub fn BNGetAutoAddressTags(
17567        func: *mut BNFunction,
17568        arch: *mut BNArchitecture,
17569        addr: u64,
17570        count: *mut usize,
17571    ) -> *mut *mut BNTag;
17572}
17573unsafe extern "C" {
17574    pub fn BNGetUserAddressTags(
17575        func: *mut BNFunction,
17576        arch: *mut BNArchitecture,
17577        addr: u64,
17578        count: *mut usize,
17579    ) -> *mut *mut BNTag;
17580}
17581unsafe extern "C" {
17582    pub fn BNGetAddressTagsOfType(
17583        func: *mut BNFunction,
17584        arch: *mut BNArchitecture,
17585        addr: u64,
17586        tagType: *mut BNTagType,
17587        count: *mut usize,
17588    ) -> *mut *mut BNTag;
17589}
17590unsafe extern "C" {
17591    pub fn BNGetAutoAddressTagsOfType(
17592        func: *mut BNFunction,
17593        arch: *mut BNArchitecture,
17594        addr: u64,
17595        tagType: *mut BNTagType,
17596        count: *mut usize,
17597    ) -> *mut *mut BNTag;
17598}
17599unsafe extern "C" {
17600    pub fn BNGetUserAddressTagsOfType(
17601        func: *mut BNFunction,
17602        arch: *mut BNArchitecture,
17603        addr: u64,
17604        tagType: *mut BNTagType,
17605        count: *mut usize,
17606    ) -> *mut *mut BNTag;
17607}
17608unsafe extern "C" {
17609    pub fn BNGetAddressTagsInRange(
17610        func: *mut BNFunction,
17611        arch: *mut BNArchitecture,
17612        start: u64,
17613        end: u64,
17614        count: *mut usize,
17615    ) -> *mut BNTagReference;
17616}
17617unsafe extern "C" {
17618    pub fn BNGetAutoAddressTagsInRange(
17619        func: *mut BNFunction,
17620        arch: *mut BNArchitecture,
17621        start: u64,
17622        end: u64,
17623        count: *mut usize,
17624    ) -> *mut BNTagReference;
17625}
17626unsafe extern "C" {
17627    pub fn BNGetUserAddressTagsInRange(
17628        func: *mut BNFunction,
17629        arch: *mut BNArchitecture,
17630        start: u64,
17631        end: u64,
17632        count: *mut usize,
17633    ) -> *mut BNTagReference;
17634}
17635unsafe extern "C" {
17636    pub fn BNAddAutoAddressTag(
17637        func: *mut BNFunction,
17638        arch: *mut BNArchitecture,
17639        addr: u64,
17640        tag: *mut BNTag,
17641    );
17642}
17643unsafe extern "C" {
17644    pub fn BNRemoveAutoAddressTag(
17645        func: *mut BNFunction,
17646        arch: *mut BNArchitecture,
17647        addr: u64,
17648        tag: *mut BNTag,
17649    );
17650}
17651unsafe extern "C" {
17652    pub fn BNRemoveAutoAddressTagsOfType(
17653        func: *mut BNFunction,
17654        arch: *mut BNArchitecture,
17655        addr: u64,
17656        tagType: *mut BNTagType,
17657    );
17658}
17659unsafe extern "C" {
17660    pub fn BNAddUserAddressTag(
17661        func: *mut BNFunction,
17662        arch: *mut BNArchitecture,
17663        addr: u64,
17664        tag: *mut BNTag,
17665    );
17666}
17667unsafe extern "C" {
17668    pub fn BNRemoveUserAddressTag(
17669        func: *mut BNFunction,
17670        arch: *mut BNArchitecture,
17671        addr: u64,
17672        tag: *mut BNTag,
17673    );
17674}
17675unsafe extern "C" {
17676    pub fn BNRemoveUserAddressTagsOfType(
17677        func: *mut BNFunction,
17678        arch: *mut BNArchitecture,
17679        addr: u64,
17680        tagType: *mut BNTagType,
17681    );
17682}
17683unsafe extern "C" {
17684    pub fn BNGetFunctionTagReferences(
17685        func: *mut BNFunction,
17686        count: *mut usize,
17687    ) -> *mut BNTagReference;
17688}
17689unsafe extern "C" {
17690    pub fn BNGetAutoFunctionTagReferences(
17691        func: *mut BNFunction,
17692        count: *mut usize,
17693    ) -> *mut BNTagReference;
17694}
17695unsafe extern "C" {
17696    pub fn BNGetUserFunctionTagReferences(
17697        func: *mut BNFunction,
17698        count: *mut usize,
17699    ) -> *mut BNTagReference;
17700}
17701unsafe extern "C" {
17702    pub fn BNGetFunctionTags(func: *mut BNFunction, count: *mut usize) -> *mut *mut BNTag;
17703}
17704unsafe extern "C" {
17705    pub fn BNGetAutoFunctionTags(func: *mut BNFunction, count: *mut usize) -> *mut *mut BNTag;
17706}
17707unsafe extern "C" {
17708    pub fn BNGetUserFunctionTags(func: *mut BNFunction, count: *mut usize) -> *mut *mut BNTag;
17709}
17710unsafe extern "C" {
17711    pub fn BNGetFunctionTagsOfType(
17712        func: *mut BNFunction,
17713        tagType: *mut BNTagType,
17714        count: *mut usize,
17715    ) -> *mut *mut BNTag;
17716}
17717unsafe extern "C" {
17718    pub fn BNGetAutoFunctionTagsOfType(
17719        func: *mut BNFunction,
17720        tagType: *mut BNTagType,
17721        count: *mut usize,
17722    ) -> *mut *mut BNTag;
17723}
17724unsafe extern "C" {
17725    pub fn BNGetUserFunctionTagsOfType(
17726        func: *mut BNFunction,
17727        tagType: *mut BNTagType,
17728        count: *mut usize,
17729    ) -> *mut *mut BNTag;
17730}
17731unsafe extern "C" {
17732    pub fn BNAddAutoFunctionTag(func: *mut BNFunction, tag: *mut BNTag);
17733}
17734unsafe extern "C" {
17735    pub fn BNRemoveAutoFunctionTag(func: *mut BNFunction, tag: *mut BNTag);
17736}
17737unsafe extern "C" {
17738    pub fn BNRemoveAutoFunctionTagsOfType(func: *mut BNFunction, tagType: *mut BNTagType);
17739}
17740unsafe extern "C" {
17741    pub fn BNAddUserFunctionTag(func: *mut BNFunction, tag: *mut BNTag);
17742}
17743unsafe extern "C" {
17744    pub fn BNRemoveUserFunctionTag(func: *mut BNFunction, tag: *mut BNTag);
17745}
17746unsafe extern "C" {
17747    pub fn BNRemoveUserFunctionTagsOfType(func: *mut BNFunction, tagType: *mut BNTagType);
17748}
17749unsafe extern "C" {
17750    pub fn BNGetFunctionAnalysisPerformanceInfo(
17751        func: *mut BNFunction,
17752        count: *mut usize,
17753    ) -> *mut BNPerformanceInfo;
17754}
17755unsafe extern "C" {
17756    pub fn BNFreeAnalysisPerformanceInfo(info: *mut BNPerformanceInfo, count: usize);
17757}
17758unsafe extern "C" {
17759    pub fn BNGetUnresolvedStackAdjustmentGraph(func: *mut BNFunction) -> *mut BNFlowGraph;
17760}
17761unsafe extern "C" {
17762    pub fn BNSetUserVariableValue(
17763        func: *mut BNFunction,
17764        var: *const BNVariable,
17765        defSite: *const BNArchitectureAndAddress,
17766        after: bool,
17767        value: *const BNPossibleValueSet,
17768    );
17769}
17770unsafe extern "C" {
17771    pub fn BNClearUserVariableValue(
17772        func: *mut BNFunction,
17773        var: *const BNVariable,
17774        defSite: *const BNArchitectureAndAddress,
17775        after: bool,
17776    );
17777}
17778unsafe extern "C" {
17779    pub fn BNGetAllUserVariableValues(
17780        func: *mut BNFunction,
17781        count: *mut usize,
17782    ) -> *mut BNUserVariableValue;
17783}
17784unsafe extern "C" {
17785    pub fn BNFreeUserVariableValues(result: *mut BNUserVariableValue);
17786}
17787unsafe extern "C" {
17788    pub fn BNParsePossibleValueSet(
17789        view: *mut BNBinaryView,
17790        valueText: *const ::std::os::raw::c_char,
17791        state: BNRegisterValueType,
17792        result: *mut BNPossibleValueSet,
17793        here: u64,
17794        errors: *mut *mut ::std::os::raw::c_char,
17795    ) -> bool;
17796}
17797unsafe extern "C" {
17798    pub fn BNCreateForcedVariableVersion(
17799        func: *mut BNFunction,
17800        var: *const BNVariable,
17801        defSite: *const BNArchitectureAndAddress,
17802    );
17803}
17804unsafe extern "C" {
17805    pub fn BNClearForcedVariableVersion(
17806        func: *mut BNFunction,
17807        var: *const BNVariable,
17808        defSite: *const BNArchitectureAndAddress,
17809    );
17810}
17811unsafe extern "C" {
17812    pub fn BNSetFieldResolutionForVariableAt(
17813        func: *mut BNFunction,
17814        var: *const BNVariable,
17815        defSite: *const BNArchitectureAndAddress,
17816        info: *const BNFieldResolutionInfo,
17817    );
17818}
17819unsafe extern "C" {
17820    pub fn BNGetFieldResolutionForVariableAt(
17821        func: *mut BNFunction,
17822        var: *const BNVariable,
17823        defSite: *const BNArchitectureAndAddress,
17824    ) -> *mut BNFieldResolutionInfo;
17825}
17826unsafe extern "C" {
17827    pub fn BNGetAllVariableFieldResolutions(
17828        func: *mut BNFunction,
17829        count: *mut usize,
17830    ) -> *mut BNVariableFieldResolutionInfo;
17831}
17832unsafe extern "C" {
17833    pub fn BNFreeVariableFieldResolutions(result: *mut BNVariableFieldResolutionInfo, count: usize);
17834}
17835unsafe extern "C" {
17836    pub fn BNClearFieldResolutionForVariableAt(
17837        func: *mut BNFunction,
17838        var: *const BNVariable,
17839        defSite: *const BNArchitectureAndAddress,
17840    );
17841}
17842unsafe extern "C" {
17843    pub fn BNRequestFunctionDebugReport(func: *mut BNFunction, name: *const ::std::os::raw::c_char);
17844}
17845unsafe extern "C" {
17846    pub fn BNFunctionCheckForDebugReport(
17847        func: *mut BNFunction,
17848        name: *const ::std::os::raw::c_char,
17849    ) -> bool;
17850}
17851unsafe extern "C" {
17852    pub fn BNGetMediumLevelILVariableReferences(
17853        func: *mut BNFunction,
17854        var: *mut BNVariable,
17855        count: *mut usize,
17856    ) -> *mut BNILReferenceSource;
17857}
17858unsafe extern "C" {
17859    pub fn BNGetMediumLevelILVariableReferencesFrom(
17860        func: *mut BNFunction,
17861        arch: *mut BNArchitecture,
17862        address: u64,
17863        count: *mut usize,
17864    ) -> *mut BNVariableReferenceSource;
17865}
17866unsafe extern "C" {
17867    pub fn BNGetMediumLevelILVariableReferencesInRange(
17868        func: *mut BNFunction,
17869        arch: *mut BNArchitecture,
17870        address: u64,
17871        len: u64,
17872        count: *mut usize,
17873    ) -> *mut BNVariableReferenceSource;
17874}
17875unsafe extern "C" {
17876    pub fn BNGetMediumLevelILVariableReferencesIfAvailable(
17877        func: *mut BNFunction,
17878        var: *mut BNVariable,
17879        count: *mut usize,
17880    ) -> *mut BNILReferenceSource;
17881}
17882unsafe extern "C" {
17883    pub fn BNGetMediumLevelILVariableReferencesFromIfAvailable(
17884        func: *mut BNFunction,
17885        arch: *mut BNArchitecture,
17886        address: u64,
17887        count: *mut usize,
17888    ) -> *mut BNVariableReferenceSource;
17889}
17890unsafe extern "C" {
17891    pub fn BNGetMediumLevelILVariableReferencesInRangeIfAvailable(
17892        func: *mut BNFunction,
17893        arch: *mut BNArchitecture,
17894        address: u64,
17895        len: u64,
17896        count: *mut usize,
17897    ) -> *mut BNVariableReferenceSource;
17898}
17899unsafe extern "C" {
17900    pub fn BNGetHighLevelILVariableReferences(
17901        func: *mut BNFunction,
17902        var: *mut BNVariable,
17903        count: *mut usize,
17904    ) -> *mut BNILReferenceSource;
17905}
17906unsafe extern "C" {
17907    pub fn BNGetHighLevelILVariableReferencesFrom(
17908        func: *mut BNFunction,
17909        arch: *mut BNArchitecture,
17910        address: u64,
17911        count: *mut usize,
17912    ) -> *mut BNVariableReferenceSource;
17913}
17914unsafe extern "C" {
17915    pub fn BNGetHighLevelILVariableReferencesInRange(
17916        func: *mut BNFunction,
17917        arch: *mut BNArchitecture,
17918        address: u64,
17919        len: u64,
17920        count: *mut usize,
17921    ) -> *mut BNVariableReferenceSource;
17922}
17923unsafe extern "C" {
17924    pub fn BNGetHighLevelILVariableReferencesIfAvailable(
17925        func: *mut BNFunction,
17926        var: *mut BNVariable,
17927        count: *mut usize,
17928    ) -> *mut BNILReferenceSource;
17929}
17930unsafe extern "C" {
17931    pub fn BNGetHighLevelILVariableReferencesFromIfAvailable(
17932        func: *mut BNFunction,
17933        arch: *mut BNArchitecture,
17934        address: u64,
17935        count: *mut usize,
17936    ) -> *mut BNVariableReferenceSource;
17937}
17938unsafe extern "C" {
17939    pub fn BNGetHighLevelILVariableReferencesInRangeIfAvailable(
17940        func: *mut BNFunction,
17941        arch: *mut BNArchitecture,
17942        address: u64,
17943        len: u64,
17944        count: *mut usize,
17945    ) -> *mut BNVariableReferenceSource;
17946}
17947unsafe extern "C" {
17948    pub fn BNFreeVariableList(vars: *mut BNVariable);
17949}
17950unsafe extern "C" {
17951    pub fn BNFreeVariableReferenceSourceList(vars: *mut BNVariableReferenceSource, count: usize);
17952}
17953unsafe extern "C" {
17954    #[doc = " Analysis Context"]
17955    pub fn BNCreateAnalysisContext() -> *mut BNAnalysisContext;
17956}
17957unsafe extern "C" {
17958    pub fn BNNewAnalysisContextReference(
17959        analysisContext: *mut BNAnalysisContext,
17960    ) -> *mut BNAnalysisContext;
17961}
17962unsafe extern "C" {
17963    pub fn BNFreeAnalysisContext(analysisContext: *mut BNAnalysisContext);
17964}
17965unsafe extern "C" {
17966    pub fn BNAnalysisContextGetBinaryView(
17967        analysisContext: *mut BNAnalysisContext,
17968    ) -> *mut BNBinaryView;
17969}
17970unsafe extern "C" {
17971    pub fn BNAnalysisContextGetFunction(analysisContext: *mut BNAnalysisContext)
17972    -> *mut BNFunction;
17973}
17974unsafe extern "C" {
17975    pub fn BNAnalysisContextGetLiftedILFunction(
17976        analysisContext: *mut BNAnalysisContext,
17977    ) -> *mut BNLowLevelILFunction;
17978}
17979unsafe extern "C" {
17980    pub fn BNAnalysisContextGetLowLevelILFunction(
17981        analysisContext: *mut BNAnalysisContext,
17982    ) -> *mut BNLowLevelILFunction;
17983}
17984unsafe extern "C" {
17985    pub fn BNAnalysisContextGetMediumLevelILFunction(
17986        analysisContext: *mut BNAnalysisContext,
17987    ) -> *mut BNMediumLevelILFunction;
17988}
17989unsafe extern "C" {
17990    pub fn BNAnalysisContextGetHighLevelILFunction(
17991        analysisContext: *mut BNAnalysisContext,
17992    ) -> *mut BNHighLevelILFunction;
17993}
17994unsafe extern "C" {
17995    pub fn BNSetBasicBlockList(
17996        analysisContext: *mut BNAnalysisContext,
17997        basicBlocks: *mut *mut BNBasicBlock,
17998        count: usize,
17999    );
18000}
18001unsafe extern "C" {
18002    pub fn BNSetLiftedILFunction(
18003        analysisContext: *mut BNAnalysisContext,
18004        liftedIL: *mut BNLowLevelILFunction,
18005    );
18006}
18007unsafe extern "C" {
18008    pub fn BNSetLowLevelILFunction(
18009        analysisContext: *mut BNAnalysisContext,
18010        lowLevelIL: *mut BNLowLevelILFunction,
18011    );
18012}
18013unsafe extern "C" {
18014    pub fn BNSetMediumLevelILFunction(
18015        analysisContext: *mut BNAnalysisContext,
18016        mediumLevelIL: *mut BNMediumLevelILFunction,
18017        llilSSAToMLILSSAInstrMap: *mut usize,
18018        instrCount: usize,
18019        llilSSAToMLILSSAExprMap: *mut BNExprMapInfo,
18020        exprCount: usize,
18021    );
18022}
18023unsafe extern "C" {
18024    pub fn BNSetHighLevelILFunction(
18025        analysisContext: *mut BNAnalysisContext,
18026        highLevelIL: *mut BNHighLevelILFunction,
18027    );
18028}
18029unsafe extern "C" {
18030    pub fn BNAnalysisContextInform(
18031        analysisContext: *mut BNAnalysisContext,
18032        request: *const ::std::os::raw::c_char,
18033    ) -> bool;
18034}
18035unsafe extern "C" {
18036    #[doc = " Settings cache access"]
18037    pub fn BNAnalysisContextGetSettingBool(
18038        analysisContext: *mut BNAnalysisContext,
18039        key: *const ::std::os::raw::c_char,
18040    ) -> bool;
18041}
18042unsafe extern "C" {
18043    pub fn BNAnalysisContextGetSettingDouble(
18044        analysisContext: *mut BNAnalysisContext,
18045        key: *const ::std::os::raw::c_char,
18046    ) -> f64;
18047}
18048unsafe extern "C" {
18049    pub fn BNAnalysisContextGetSettingInt64(
18050        analysisContext: *mut BNAnalysisContext,
18051        key: *const ::std::os::raw::c_char,
18052    ) -> i64;
18053}
18054unsafe extern "C" {
18055    pub fn BNAnalysisContextGetSettingUInt64(
18056        analysisContext: *mut BNAnalysisContext,
18057        key: *const ::std::os::raw::c_char,
18058    ) -> u64;
18059}
18060unsafe extern "C" {
18061    pub fn BNAnalysisContextGetSettingString(
18062        analysisContext: *mut BNAnalysisContext,
18063        key: *const ::std::os::raw::c_char,
18064    ) -> *mut ::std::os::raw::c_char;
18065}
18066unsafe extern "C" {
18067    pub fn BNAnalysisContextGetSettingStringList(
18068        analysisContext: *mut BNAnalysisContext,
18069        key: *const ::std::os::raw::c_char,
18070        count: *mut usize,
18071    ) -> *mut *mut ::std::os::raw::c_char;
18072}
18073unsafe extern "C" {
18074    #[doc = " Memory map access"]
18075    pub fn BNAnalysisContextIsValidOffset(
18076        analysisContext: *mut BNAnalysisContext,
18077        offset: u64,
18078    ) -> bool;
18079}
18080unsafe extern "C" {
18081    pub fn BNAnalysisContextIsOffsetReadable(
18082        analysisContext: *mut BNAnalysisContext,
18083        offset: u64,
18084    ) -> bool;
18085}
18086unsafe extern "C" {
18087    pub fn BNAnalysisContextIsOffsetWritable(
18088        analysisContext: *mut BNAnalysisContext,
18089        offset: u64,
18090    ) -> bool;
18091}
18092unsafe extern "C" {
18093    pub fn BNAnalysisContextIsOffsetExecutable(
18094        analysisContext: *mut BNAnalysisContext,
18095        offset: u64,
18096    ) -> bool;
18097}
18098unsafe extern "C" {
18099    pub fn BNAnalysisContextIsOffsetBackedByFile(
18100        analysisContext: *mut BNAnalysisContext,
18101        offset: u64,
18102    ) -> bool;
18103}
18104unsafe extern "C" {
18105    pub fn BNAnalysisContextIsOffsetCodeSemantics(
18106        analysisContext: *mut BNAnalysisContext,
18107        offset: u64,
18108    ) -> bool;
18109}
18110unsafe extern "C" {
18111    pub fn BNAnalysisContextIsOffsetExternSemantics(
18112        analysisContext: *mut BNAnalysisContext,
18113        offset: u64,
18114    ) -> bool;
18115}
18116unsafe extern "C" {
18117    pub fn BNAnalysisContextIsOffsetWritableSemantics(
18118        analysisContext: *mut BNAnalysisContext,
18119        offset: u64,
18120    ) -> bool;
18121}
18122unsafe extern "C" {
18123    pub fn BNAnalysisContextIsOffsetReadOnlySemantics(
18124        analysisContext: *mut BNAnalysisContext,
18125        offset: u64,
18126    ) -> bool;
18127}
18128unsafe extern "C" {
18129    pub fn BNAnalysisContextGetSections(
18130        analysisContext: *mut BNAnalysisContext,
18131        count: *mut usize,
18132    ) -> *mut *mut BNSection;
18133}
18134unsafe extern "C" {
18135    pub fn BNAnalysisContextGetSectionByName(
18136        analysisContext: *mut BNAnalysisContext,
18137        name: *const ::std::os::raw::c_char,
18138    ) -> *mut BNSection;
18139}
18140unsafe extern "C" {
18141    pub fn BNAnalysisContextGetSectionsAt(
18142        analysisContext: *mut BNAnalysisContext,
18143        addr: u64,
18144        count: *mut usize,
18145    ) -> *mut *mut BNSection;
18146}
18147unsafe extern "C" {
18148    pub fn BNAnalysisContextGetStart(analysisContext: *mut BNAnalysisContext) -> u64;
18149}
18150unsafe extern "C" {
18151    pub fn BNAnalysisContextGetEnd(analysisContext: *mut BNAnalysisContext) -> u64;
18152}
18153unsafe extern "C" {
18154    pub fn BNAnalysisContextGetLength(analysisContext: *mut BNAnalysisContext) -> u64;
18155}
18156unsafe extern "C" {
18157    pub fn BNAnalysisContextGetNextValidOffset(
18158        analysisContext: *mut BNAnalysisContext,
18159        offset: u64,
18160    ) -> u64;
18161}
18162unsafe extern "C" {
18163    pub fn BNAnalysisContextGetNextMappedAddress(
18164        analysisContext: *mut BNAnalysisContext,
18165        addr: u64,
18166        flags: u32,
18167    ) -> u64;
18168}
18169unsafe extern "C" {
18170    pub fn BNAnalysisContextGetNextBackedAddress(
18171        analysisContext: *mut BNAnalysisContext,
18172        addr: u64,
18173        flags: u32,
18174    ) -> u64;
18175}
18176unsafe extern "C" {
18177    pub fn BNAnalysisContextGetSegmentAt(
18178        analysisContext: *mut BNAnalysisContext,
18179        addr: u64,
18180    ) -> *mut BNSegment;
18181}
18182unsafe extern "C" {
18183    pub fn BNAnalysisContextGetMappedAddressRanges(
18184        analysisContext: *mut BNAnalysisContext,
18185        count: *mut usize,
18186    ) -> *mut BNAddressRange;
18187}
18188unsafe extern "C" {
18189    pub fn BNAnalysisContextGetBackedAddressRanges(
18190        analysisContext: *mut BNAnalysisContext,
18191        count: *mut usize,
18192    ) -> *mut BNAddressRange;
18193}
18194unsafe extern "C" {
18195    #[doc = " Activity"]
18196    pub fn BNCreateActivity(
18197        configuration: *const ::std::os::raw::c_char,
18198        ctxt: *mut ::std::os::raw::c_void,
18199        action: ::std::option::Option<
18200            unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void, arg2: *mut BNAnalysisContext),
18201        >,
18202    ) -> *mut BNActivity;
18203}
18204unsafe extern "C" {
18205    pub fn BNCreateActivityWithEligibility(
18206        configuration: *const ::std::os::raw::c_char,
18207        ctxt: *mut ::std::os::raw::c_void,
18208        action: ::std::option::Option<
18209            unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void, arg2: *mut BNAnalysisContext),
18210        >,
18211        eligibilityHandler: ::std::option::Option<
18212            unsafe extern "C" fn(
18213                arg1: *mut ::std::os::raw::c_void,
18214                arg2: *mut BNActivity,
18215                arg3: *mut BNAnalysisContext,
18216            ) -> bool,
18217        >,
18218    ) -> *mut BNActivity;
18219}
18220unsafe extern "C" {
18221    pub fn BNNewActivityReference(activity: *mut BNActivity) -> *mut BNActivity;
18222}
18223unsafe extern "C" {
18224    pub fn BNFreeActivity(activity: *mut BNActivity);
18225}
18226unsafe extern "C" {
18227    pub fn BNActivityGetName(activity: *mut BNActivity) -> *mut ::std::os::raw::c_char;
18228}
18229unsafe extern "C" {
18230    #[doc = " Workflow"]
18231    pub fn BNCreateWorkflow(name: *const ::std::os::raw::c_char) -> *mut BNWorkflow;
18232}
18233unsafe extern "C" {
18234    pub fn BNNewWorkflowReference(workflow: *mut BNWorkflow) -> *mut BNWorkflow;
18235}
18236unsafe extern "C" {
18237    pub fn BNFreeWorkflow(workflow: *mut BNWorkflow);
18238}
18239unsafe extern "C" {
18240    pub fn BNGetWorkflowList(count: *mut usize) -> *mut *mut BNWorkflow;
18241}
18242unsafe extern "C" {
18243    pub fn BNFreeWorkflowList(workflows: *mut *mut BNWorkflow, count: usize);
18244}
18245unsafe extern "C" {
18246    pub fn BNWorkflowGet(name: *const ::std::os::raw::c_char) -> *mut BNWorkflow;
18247}
18248unsafe extern "C" {
18249    pub fn BNWorkflowGetOrCreate(name: *const ::std::os::raw::c_char) -> *mut BNWorkflow;
18250}
18251unsafe extern "C" {
18252    pub fn BNRegisterWorkflow(
18253        workflow: *mut BNWorkflow,
18254        configuration: *const ::std::os::raw::c_char,
18255    ) -> bool;
18256}
18257unsafe extern "C" {
18258    pub fn BNWorkflowClone(
18259        workflow: *mut BNWorkflow,
18260        name: *const ::std::os::raw::c_char,
18261        activity: *const ::std::os::raw::c_char,
18262    ) -> *mut BNWorkflow;
18263}
18264unsafe extern "C" {
18265    pub fn BNWorkflowRegisterActivity(
18266        workflow: *mut BNWorkflow,
18267        activity: *mut BNActivity,
18268        subactivities: *mut *const ::std::os::raw::c_char,
18269        size: usize,
18270    ) -> *mut BNActivity;
18271}
18272unsafe extern "C" {
18273    pub fn BNWorkflowContains(
18274        workflow: *mut BNWorkflow,
18275        activity: *const ::std::os::raw::c_char,
18276    ) -> bool;
18277}
18278unsafe extern "C" {
18279    pub fn BNWorkflowGetConfiguration(
18280        workflow: *mut BNWorkflow,
18281        activity: *const ::std::os::raw::c_char,
18282    ) -> *mut ::std::os::raw::c_char;
18283}
18284unsafe extern "C" {
18285    pub fn BNGetWorkflowName(workflow: *mut BNWorkflow) -> *mut ::std::os::raw::c_char;
18286}
18287unsafe extern "C" {
18288    pub fn BNWorkflowIsRegistered(workflow: *mut BNWorkflow) -> bool;
18289}
18290unsafe extern "C" {
18291    pub fn BNWorkflowSize(workflow: *mut BNWorkflow) -> usize;
18292}
18293unsafe extern "C" {
18294    pub fn BNWorkflowGetActivity(
18295        workflow: *mut BNWorkflow,
18296        activity: *const ::std::os::raw::c_char,
18297    ) -> *mut BNActivity;
18298}
18299unsafe extern "C" {
18300    pub fn BNWorkflowGetActivityRoots(
18301        workflow: *mut BNWorkflow,
18302        activity: *const ::std::os::raw::c_char,
18303        inoutSize: *mut usize,
18304    ) -> *mut *const ::std::os::raw::c_char;
18305}
18306unsafe extern "C" {
18307    pub fn BNWorkflowGetSubactivities(
18308        workflow: *mut BNWorkflow,
18309        activity: *const ::std::os::raw::c_char,
18310        immediate: bool,
18311        inoutSize: *mut usize,
18312    ) -> *mut *const ::std::os::raw::c_char;
18313}
18314unsafe extern "C" {
18315    pub fn BNWorkflowAssignSubactivities(
18316        workflow: *mut BNWorkflow,
18317        activity: *const ::std::os::raw::c_char,
18318        activities: *mut *const ::std::os::raw::c_char,
18319        size: usize,
18320    ) -> bool;
18321}
18322unsafe extern "C" {
18323    pub fn BNWorkflowClear(workflow: *mut BNWorkflow) -> bool;
18324}
18325unsafe extern "C" {
18326    pub fn BNWorkflowInsert(
18327        workflow: *mut BNWorkflow,
18328        activity: *const ::std::os::raw::c_char,
18329        activities: *mut *const ::std::os::raw::c_char,
18330        size: usize,
18331    ) -> bool;
18332}
18333unsafe extern "C" {
18334    pub fn BNWorkflowInsertAfter(
18335        workflow: *mut BNWorkflow,
18336        activity: *const ::std::os::raw::c_char,
18337        activities: *mut *const ::std::os::raw::c_char,
18338        size: usize,
18339    ) -> bool;
18340}
18341unsafe extern "C" {
18342    pub fn BNWorkflowRemove(
18343        workflow: *mut BNWorkflow,
18344        activity: *const ::std::os::raw::c_char,
18345    ) -> bool;
18346}
18347unsafe extern "C" {
18348    pub fn BNWorkflowReplace(
18349        workflow: *mut BNWorkflow,
18350        activity: *const ::std::os::raw::c_char,
18351        newActivity: *const ::std::os::raw::c_char,
18352    ) -> bool;
18353}
18354unsafe extern "C" {
18355    pub fn BNWorkflowGetGraph(
18356        workflow: *mut BNWorkflow,
18357        activity: *const ::std::os::raw::c_char,
18358        sequential: bool,
18359    ) -> *mut BNFlowGraph;
18360}
18361unsafe extern "C" {
18362    pub fn BNWorkflowShowReport(workflow: *mut BNWorkflow, name: *const ::std::os::raw::c_char);
18363}
18364unsafe extern "C" {
18365    pub fn BNWorkflowGetEligibilitySettings(
18366        workflow: *mut BNWorkflow,
18367        inoutSize: *mut usize,
18368    ) -> *mut *const ::std::os::raw::c_char;
18369}
18370unsafe extern "C" {
18371    #[doc = " BinaryView Workflow Machine"]
18372    pub fn BNGetWorkflowForBinaryView(view: *mut BNBinaryView) -> *mut BNWorkflow;
18373}
18374unsafe extern "C" {
18375    pub fn BNPostWorkflowRequestForBinaryView(
18376        view: *mut BNBinaryView,
18377        request: *const ::std::os::raw::c_char,
18378    ) -> *mut ::std::os::raw::c_char;
18379}
18380unsafe extern "C" {
18381    pub fn BNGetWorkflowGraphForBinaryView(
18382        view: *mut BNBinaryView,
18383        name: *const ::std::os::raw::c_char,
18384        sequential: bool,
18385    ) -> *mut BNFlowGraph;
18386}
18387unsafe extern "C" {
18388    pub fn BNShowWorkflowReportForBinaryView(
18389        view: *mut BNBinaryView,
18390        name: *const ::std::os::raw::c_char,
18391    );
18392}
18393unsafe extern "C" {
18394    #[doc = " Function Workflow Machine"]
18395    pub fn BNGetWorkflowForFunction(func: *mut BNFunction) -> *mut BNWorkflow;
18396}
18397unsafe extern "C" {
18398    pub fn BNPostWorkflowRequestForFunction(
18399        func: *mut BNFunction,
18400        request: *const ::std::os::raw::c_char,
18401    ) -> *mut ::std::os::raw::c_char;
18402}
18403unsafe extern "C" {
18404    pub fn BNGetWorkflowGraphForFunction(
18405        func: *mut BNFunction,
18406        name: *const ::std::os::raw::c_char,
18407        sequential: bool,
18408    ) -> *mut BNFlowGraph;
18409}
18410unsafe extern "C" {
18411    pub fn BNShowWorkflowReportForFunction(
18412        func: *mut BNFunction,
18413        name: *const ::std::os::raw::c_char,
18414    );
18415}
18416unsafe extern "C" {
18417    #[doc = " Provenance"]
18418    pub fn BNGetProvenanceString(func: *mut BNFunction) -> *mut ::std::os::raw::c_char;
18419}
18420unsafe extern "C" {
18421    #[doc = " Disassembly settings"]
18422    pub fn BNCreateDisassemblySettings() -> *mut BNDisassemblySettings;
18423}
18424unsafe extern "C" {
18425    pub fn BNDefaultDisassemblySettings() -> *mut BNDisassemblySettings;
18426}
18427unsafe extern "C" {
18428    pub fn BNDefaultGraphDisassemblySettings() -> *mut BNDisassemblySettings;
18429}
18430unsafe extern "C" {
18431    pub fn BNDefaultLinearDisassemblySettings() -> *mut BNDisassemblySettings;
18432}
18433unsafe extern "C" {
18434    pub fn BNNewDisassemblySettingsReference(
18435        settings: *mut BNDisassemblySettings,
18436    ) -> *mut BNDisassemblySettings;
18437}
18438unsafe extern "C" {
18439    pub fn BNDuplicateDisassemblySettings(
18440        settings: *mut BNDisassemblySettings,
18441    ) -> *mut BNDisassemblySettings;
18442}
18443unsafe extern "C" {
18444    pub fn BNFreeDisassemblySettings(settings: *mut BNDisassemblySettings);
18445}
18446unsafe extern "C" {
18447    pub fn BNIsDisassemblySettingsOptionSet(
18448        settings: *mut BNDisassemblySettings,
18449        option: BNDisassemblyOption,
18450    ) -> bool;
18451}
18452unsafe extern "C" {
18453    pub fn BNSetDisassemblySettingsOption(
18454        settings: *mut BNDisassemblySettings,
18455        option: BNDisassemblyOption,
18456        state: bool,
18457    );
18458}
18459unsafe extern "C" {
18460    pub fn BNGetDisassemblyWidth(settings: *mut BNDisassemblySettings) -> usize;
18461}
18462unsafe extern "C" {
18463    pub fn BNSetDisassemblyWidth(settings: *mut BNDisassemblySettings, width: usize);
18464}
18465unsafe extern "C" {
18466    pub fn BNGetDisassemblyMaximumSymbolWidth(settings: *mut BNDisassemblySettings) -> usize;
18467}
18468unsafe extern "C" {
18469    pub fn BNSetDisassemblyMaximumSymbolWidth(settings: *mut BNDisassemblySettings, width: usize);
18470}
18471unsafe extern "C" {
18472    pub fn BNGetDisassemblyGutterWidth(settings: *mut BNDisassemblySettings) -> usize;
18473}
18474unsafe extern "C" {
18475    pub fn BNSetDisassemblyGutterWidth(settings: *mut BNDisassemblySettings, width: usize);
18476}
18477unsafe extern "C" {
18478    pub fn BNGetDisassemblyAddressMode(
18479        settings: *mut BNDisassemblySettings,
18480    ) -> BNDisassemblyAddressMode;
18481}
18482unsafe extern "C" {
18483    pub fn BNSetDisassemblyAddressMode(
18484        settings: *mut BNDisassemblySettings,
18485        mode: BNDisassemblyAddressMode,
18486    );
18487}
18488unsafe extern "C" {
18489    pub fn BNGetDisassemblyAddressBaseOffset(settings: *mut BNDisassemblySettings) -> u64;
18490}
18491unsafe extern "C" {
18492    pub fn BNSetDisassemblyAddressBaseOffset(
18493        settings: *mut BNDisassemblySettings,
18494        addressBaseOffset: u64,
18495    );
18496}
18497unsafe extern "C" {
18498    pub fn BNGetDisassemblyCallParameterHints(
18499        settings: *mut BNDisassemblySettings,
18500    ) -> BNDisassemblyCallParameterHints;
18501}
18502unsafe extern "C" {
18503    pub fn BNSetDisassemblyCallParameterHints(
18504        settings: *mut BNDisassemblySettings,
18505        hints: BNDisassemblyCallParameterHints,
18506    );
18507}
18508unsafe extern "C" {
18509    pub fn BNGetDisassemblyBlockLabels(
18510        settings: *mut BNDisassemblySettings,
18511    ) -> BNDisassemblyBlockLabels;
18512}
18513unsafe extern "C" {
18514    pub fn BNSetDisassemblyBlockLabels(
18515        settings: *mut BNDisassemblySettings,
18516        labels: BNDisassemblyBlockLabels,
18517    );
18518}
18519unsafe extern "C" {
18520    #[doc = " Flow graphs"]
18521    pub fn BNCreateFlowGraph() -> *mut BNFlowGraph;
18522}
18523unsafe extern "C" {
18524    pub fn BNCreateFunctionGraph(
18525        func: *mut BNFunction,
18526        type_: BNFunctionViewType,
18527        settings: *mut BNDisassemblySettings,
18528    ) -> *mut BNFlowGraph;
18529}
18530unsafe extern "C" {
18531    pub fn BNCreateLowLevelILFunctionGraph(
18532        func: *mut BNLowLevelILFunction,
18533        settings: *mut BNDisassemblySettings,
18534    ) -> *mut BNFlowGraph;
18535}
18536unsafe extern "C" {
18537    pub fn BNCreateMediumLevelILFunctionGraph(
18538        func: *mut BNMediumLevelILFunction,
18539        settings: *mut BNDisassemblySettings,
18540    ) -> *mut BNFlowGraph;
18541}
18542unsafe extern "C" {
18543    pub fn BNCreateHighLevelILFunctionGraph(
18544        func: *mut BNHighLevelILFunction,
18545        settings: *mut BNDisassemblySettings,
18546    ) -> *mut BNFlowGraph;
18547}
18548unsafe extern "C" {
18549    pub fn BNCreateImmediateFunctionGraph(
18550        func: *mut BNFunction,
18551        type_: BNFunctionViewType,
18552        settings: *mut BNDisassemblySettings,
18553    ) -> *mut BNFlowGraph;
18554}
18555unsafe extern "C" {
18556    pub fn BNCreateLowLevelILImmediateFunctionGraph(
18557        func: *mut BNLowLevelILFunction,
18558        settings: *mut BNDisassemblySettings,
18559    ) -> *mut BNFlowGraph;
18560}
18561unsafe extern "C" {
18562    pub fn BNCreateMediumLevelILImmediateFunctionGraph(
18563        func: *mut BNMediumLevelILFunction,
18564        settings: *mut BNDisassemblySettings,
18565    ) -> *mut BNFlowGraph;
18566}
18567unsafe extern "C" {
18568    pub fn BNCreateHighLevelILImmediateFunctionGraph(
18569        func: *mut BNHighLevelILFunction,
18570        settings: *mut BNDisassemblySettings,
18571    ) -> *mut BNFlowGraph;
18572}
18573unsafe extern "C" {
18574    pub fn BNCreateCustomFlowGraph(callbacks: *mut BNCustomFlowGraph) -> *mut BNFlowGraph;
18575}
18576unsafe extern "C" {
18577    pub fn BNNewFlowGraphReference(graph: *mut BNFlowGraph) -> *mut BNFlowGraph;
18578}
18579unsafe extern "C" {
18580    pub fn BNFreeFlowGraph(graph: *mut BNFlowGraph);
18581}
18582unsafe extern "C" {
18583    pub fn BNGetFunctionForFlowGraph(graph: *mut BNFlowGraph) -> *mut BNFunction;
18584}
18585unsafe extern "C" {
18586    pub fn BNSetFunctionForFlowGraph(graph: *mut BNFlowGraph, func: *mut BNFunction);
18587}
18588unsafe extern "C" {
18589    pub fn BNGetViewForFlowGraph(graph: *mut BNFlowGraph) -> *mut BNBinaryView;
18590}
18591unsafe extern "C" {
18592    pub fn BNSetViewForFlowGraph(graph: *mut BNFlowGraph, view: *mut BNBinaryView);
18593}
18594unsafe extern "C" {
18595    pub fn BNGetHorizontalFlowGraphNodeMargin(graph: *mut BNFlowGraph) -> ::std::os::raw::c_int;
18596}
18597unsafe extern "C" {
18598    pub fn BNGetVerticalFlowGraphNodeMargin(graph: *mut BNFlowGraph) -> ::std::os::raw::c_int;
18599}
18600unsafe extern "C" {
18601    pub fn BNSetFlowGraphNodeMargins(
18602        graph: *mut BNFlowGraph,
18603        horiz: ::std::os::raw::c_int,
18604        vert: ::std::os::raw::c_int,
18605    );
18606}
18607unsafe extern "C" {
18608    pub fn BNStartFlowGraphLayout(
18609        graph: *mut BNFlowGraph,
18610        ctxt: *mut ::std::os::raw::c_void,
18611        func: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
18612    ) -> *mut BNFlowGraphLayoutRequest;
18613}
18614unsafe extern "C" {
18615    pub fn BNIsFlowGraphLayoutComplete(graph: *mut BNFlowGraph) -> bool;
18616}
18617unsafe extern "C" {
18618    pub fn BNNewFlowGraphLayoutRequestReference(
18619        layout: *mut BNFlowGraphLayoutRequest,
18620    ) -> *mut BNFlowGraphLayoutRequest;
18621}
18622unsafe extern "C" {
18623    pub fn BNFreeFlowGraphLayoutRequest(layout: *mut BNFlowGraphLayoutRequest);
18624}
18625unsafe extern "C" {
18626    pub fn BNIsFlowGraphLayoutRequestComplete(layout: *mut BNFlowGraphLayoutRequest) -> bool;
18627}
18628unsafe extern "C" {
18629    pub fn BNGetGraphForFlowGraphLayoutRequest(
18630        layout: *mut BNFlowGraphLayoutRequest,
18631    ) -> *mut BNFlowGraph;
18632}
18633unsafe extern "C" {
18634    pub fn BNAbortFlowGraphLayoutRequest(graph: *mut BNFlowGraphLayoutRequest);
18635}
18636unsafe extern "C" {
18637    pub fn BNIsILFlowGraph(graph: *mut BNFlowGraph) -> bool;
18638}
18639unsafe extern "C" {
18640    pub fn BNIsLowLevelILFlowGraph(graph: *mut BNFlowGraph) -> bool;
18641}
18642unsafe extern "C" {
18643    pub fn BNIsMediumLevelILFlowGraph(graph: *mut BNFlowGraph) -> bool;
18644}
18645unsafe extern "C" {
18646    pub fn BNIsHighLevelILFlowGraph(graph: *mut BNFlowGraph) -> bool;
18647}
18648unsafe extern "C" {
18649    pub fn BNGetFlowGraphLowLevelILFunction(graph: *mut BNFlowGraph) -> *mut BNLowLevelILFunction;
18650}
18651unsafe extern "C" {
18652    pub fn BNGetFlowGraphMediumLevelILFunction(
18653        graph: *mut BNFlowGraph,
18654    ) -> *mut BNMediumLevelILFunction;
18655}
18656unsafe extern "C" {
18657    pub fn BNGetFlowGraphHighLevelILFunction(graph: *mut BNFlowGraph)
18658    -> *mut BNHighLevelILFunction;
18659}
18660unsafe extern "C" {
18661    pub fn BNSetFlowGraphLowLevelILFunction(
18662        graph: *mut BNFlowGraph,
18663        func: *mut BNLowLevelILFunction,
18664    );
18665}
18666unsafe extern "C" {
18667    pub fn BNSetFlowGraphMediumLevelILFunction(
18668        graph: *mut BNFlowGraph,
18669        func: *mut BNMediumLevelILFunction,
18670    );
18671}
18672unsafe extern "C" {
18673    pub fn BNSetFlowGraphHighLevelILFunction(
18674        graph: *mut BNFlowGraph,
18675        func: *mut BNHighLevelILFunction,
18676    );
18677}
18678unsafe extern "C" {
18679    pub fn BNGetFlowGraphNodes(
18680        graph: *mut BNFlowGraph,
18681        count: *mut usize,
18682    ) -> *mut *mut BNFlowGraphNode;
18683}
18684unsafe extern "C" {
18685    pub fn BNGetFlowGraphNode(graph: *mut BNFlowGraph, i: usize) -> *mut BNFlowGraphNode;
18686}
18687unsafe extern "C" {
18688    pub fn BNGetFlowGraphNodesInRegion(
18689        graph: *mut BNFlowGraph,
18690        left: ::std::os::raw::c_int,
18691        top: ::std::os::raw::c_int,
18692        right: ::std::os::raw::c_int,
18693        bottom: ::std::os::raw::c_int,
18694        count: *mut usize,
18695    ) -> *mut *mut BNFlowGraphNode;
18696}
18697unsafe extern "C" {
18698    pub fn BNFreeFlowGraphNodeList(nodes: *mut *mut BNFlowGraphNode, count: usize);
18699}
18700unsafe extern "C" {
18701    pub fn BNGetFlowGraphNodeCount(graph: *mut BNFlowGraph) -> usize;
18702}
18703unsafe extern "C" {
18704    pub fn BNFlowGraphHasNodes(graph: *mut BNFlowGraph) -> bool;
18705}
18706unsafe extern "C" {
18707    pub fn BNAddFlowGraphNode(graph: *mut BNFlowGraph, node: *mut BNFlowGraphNode) -> usize;
18708}
18709unsafe extern "C" {
18710    pub fn BNReplaceFlowGraphNode(graph: *mut BNFlowGraph, i: usize, newNode: *mut BNFlowGraphNode);
18711}
18712unsafe extern "C" {
18713    pub fn BNClearFlowGraphNodes(graph: *mut BNFlowGraph);
18714}
18715unsafe extern "C" {
18716    pub fn BNGetFlowGraphWidth(graph: *mut BNFlowGraph) -> ::std::os::raw::c_int;
18717}
18718unsafe extern "C" {
18719    pub fn BNGetFlowGraphHeight(graph: *mut BNFlowGraph) -> ::std::os::raw::c_int;
18720}
18721unsafe extern "C" {
18722    pub fn BNFlowGraphSetWidth(graph: *mut BNFlowGraph, width: ::std::os::raw::c_int);
18723}
18724unsafe extern "C" {
18725    pub fn BNFlowGraphSetHeight(graph: *mut BNFlowGraph, height: ::std::os::raw::c_int);
18726}
18727unsafe extern "C" {
18728    pub fn BNGetFlowGraphRenderLayers(
18729        graph: *mut BNFlowGraph,
18730        count: *mut usize,
18731    ) -> *mut *mut BNRenderLayer;
18732}
18733unsafe extern "C" {
18734    pub fn BNAddFlowGraphRenderLayer(graph: *mut BNFlowGraph, layer: *mut BNRenderLayer);
18735}
18736unsafe extern "C" {
18737    pub fn BNRemoveFlowGraphRenderLayer(graph: *mut BNFlowGraph, layer: *mut BNRenderLayer);
18738}
18739unsafe extern "C" {
18740    pub fn BNCreateFlowGraphNode(graph: *mut BNFlowGraph) -> *mut BNFlowGraphNode;
18741}
18742unsafe extern "C" {
18743    pub fn BNNewFlowGraphNodeReference(node: *mut BNFlowGraphNode) -> *mut BNFlowGraphNode;
18744}
18745unsafe extern "C" {
18746    pub fn BNFreeFlowGraphNode(node: *mut BNFlowGraphNode);
18747}
18748unsafe extern "C" {
18749    pub fn BNGetFlowGraphNodeOwner(node: *mut BNFlowGraphNode) -> *mut BNFlowGraph;
18750}
18751unsafe extern "C" {
18752    pub fn BNGetFlowGraphBasicBlock(node: *mut BNFlowGraphNode) -> *mut BNBasicBlock;
18753}
18754unsafe extern "C" {
18755    pub fn BNSetFlowGraphBasicBlock(node: *mut BNFlowGraphNode, block: *mut BNBasicBlock);
18756}
18757unsafe extern "C" {
18758    pub fn BNFlowGraphNodeSetX(node: *mut BNFlowGraphNode, x: ::std::os::raw::c_int);
18759}
18760unsafe extern "C" {
18761    pub fn BNFlowGraphNodeSetY(node: *mut BNFlowGraphNode, y: ::std::os::raw::c_int);
18762}
18763unsafe extern "C" {
18764    pub fn BNGetFlowGraphNodeX(node: *mut BNFlowGraphNode) -> ::std::os::raw::c_int;
18765}
18766unsafe extern "C" {
18767    pub fn BNGetFlowGraphNodeY(node: *mut BNFlowGraphNode) -> ::std::os::raw::c_int;
18768}
18769unsafe extern "C" {
18770    pub fn BNGetFlowGraphNodeWidth(node: *mut BNFlowGraphNode) -> ::std::os::raw::c_int;
18771}
18772unsafe extern "C" {
18773    pub fn BNGetFlowGraphNodeHeight(node: *mut BNFlowGraphNode) -> ::std::os::raw::c_int;
18774}
18775unsafe extern "C" {
18776    pub fn BNGetFlowGraphNodeLines(
18777        node: *mut BNFlowGraphNode,
18778        count: *mut usize,
18779    ) -> *mut BNDisassemblyTextLine;
18780}
18781unsafe extern "C" {
18782    pub fn BNSetFlowGraphNodeLines(
18783        node: *mut BNFlowGraphNode,
18784        lines: *mut BNDisassemblyTextLine,
18785        count: usize,
18786    );
18787}
18788unsafe extern "C" {
18789    pub fn BNGetFlowGraphNodeOutgoingEdges(
18790        node: *mut BNFlowGraphNode,
18791        count: *mut usize,
18792    ) -> *mut BNFlowGraphEdge;
18793}
18794unsafe extern "C" {
18795    pub fn BNGetFlowGraphNodeIncomingEdges(
18796        node: *mut BNFlowGraphNode,
18797        count: *mut usize,
18798    ) -> *mut BNFlowGraphEdge;
18799}
18800unsafe extern "C" {
18801    pub fn BNFreeFlowGraphNodeEdgeList(edges: *mut BNFlowGraphEdge, count: usize);
18802}
18803unsafe extern "C" {
18804    pub fn BNAddFlowGraphNodeOutgoingEdge(
18805        node: *mut BNFlowGraphNode,
18806        type_: BNBranchType,
18807        target: *mut BNFlowGraphNode,
18808        edgeStyle: BNEdgeStyle,
18809    );
18810}
18811unsafe extern "C" {
18812    pub fn BNGetFlowGraphNodeHighlight(node: *mut BNFlowGraphNode) -> BNHighlightColor;
18813}
18814unsafe extern "C" {
18815    pub fn BNSetFlowGraphNodeHighlight(node: *mut BNFlowGraphNode, color: BNHighlightColor);
18816}
18817unsafe extern "C" {
18818    pub fn BNFinishPrepareForLayout(graph: *mut BNFlowGraph);
18819}
18820unsafe extern "C" {
18821    pub fn BNFlowGraphUpdateQueryMode(graph: *mut BNFlowGraph) -> bool;
18822}
18823unsafe extern "C" {
18824    pub fn BNFlowGraphHasUpdates(graph: *mut BNFlowGraph) -> bool;
18825}
18826unsafe extern "C" {
18827    pub fn BNUpdateFlowGraph(graph: *mut BNFlowGraph) -> *mut BNFlowGraph;
18828}
18829unsafe extern "C" {
18830    pub fn BNSetFlowGraphOption(graph: *mut BNFlowGraph, option: BNFlowGraphOption, value: bool);
18831}
18832unsafe extern "C" {
18833    pub fn BNIsFlowGraphOptionSet(graph: *mut BNFlowGraph, option: BNFlowGraphOption) -> bool;
18834}
18835unsafe extern "C" {
18836    pub fn BNIsNodeValidForFlowGraph(graph: *mut BNFlowGraph, node: *mut BNFlowGraphNode) -> bool;
18837}
18838unsafe extern "C" {
18839    pub fn BNFlowGraphNodeSetVisibilityRegion(
18840        node: *mut BNFlowGraphNode,
18841        x: ::std::os::raw::c_int,
18842        y: ::std::os::raw::c_int,
18843        w: ::std::os::raw::c_int,
18844        h: ::std::os::raw::c_int,
18845    );
18846}
18847unsafe extern "C" {
18848    pub fn BNFlowGraphNodeSetOutgoingEdgePoints(
18849        node: *mut BNFlowGraphNode,
18850        edgeNum: usize,
18851        points: *mut BNPoint,
18852        pointCount: usize,
18853    );
18854}
18855unsafe extern "C" {
18856    pub fn BNGetFlowGraphLayouts(count: *mut usize) -> *mut *mut BNFlowGraphLayout;
18857}
18858unsafe extern "C" {
18859    pub fn BNFreeFlowGraphLayoutList(layouts: *mut *mut BNFlowGraphLayout);
18860}
18861unsafe extern "C" {
18862    pub fn BNRegisterFlowGraphLayout(
18863        name: *const ::std::os::raw::c_char,
18864        callbacks: *mut BNCustomFlowGraphLayout,
18865    ) -> *mut BNFlowGraphLayout;
18866}
18867unsafe extern "C" {
18868    pub fn BNGetFlowGraphLayoutByName(
18869        name: *const ::std::os::raw::c_char,
18870    ) -> *mut BNFlowGraphLayout;
18871}
18872unsafe extern "C" {
18873    pub fn BNGetFlowGraphLayoutName(layout: *mut BNFlowGraphLayout) -> *mut ::std::os::raw::c_char;
18874}
18875unsafe extern "C" {
18876    pub fn BNFlowGraphLayoutLayout(
18877        layout: *mut BNFlowGraphLayout,
18878        graph: *mut BNFlowGraph,
18879        nodes: *mut *mut BNFlowGraphNode,
18880        nodeCount: usize,
18881    ) -> bool;
18882}
18883unsafe extern "C" {
18884    #[doc = " Symbols"]
18885    pub fn BNCreateSymbol(
18886        type_: BNSymbolType,
18887        shortName: *const ::std::os::raw::c_char,
18888        fullName: *const ::std::os::raw::c_char,
18889        rawName: *const ::std::os::raw::c_char,
18890        addr: u64,
18891        binding: BNSymbolBinding,
18892        nameSpace: *const BNNameSpace,
18893        ordinal: u64,
18894    ) -> *mut BNSymbol;
18895}
18896unsafe extern "C" {
18897    pub fn BNNewSymbolReference(sym: *mut BNSymbol) -> *mut BNSymbol;
18898}
18899unsafe extern "C" {
18900    pub fn BNFreeSymbol(sym: *mut BNSymbol);
18901}
18902unsafe extern "C" {
18903    pub fn BNGetSymbolType(sym: *mut BNSymbol) -> BNSymbolType;
18904}
18905unsafe extern "C" {
18906    pub fn BNGetSymbolBinding(sym: *mut BNSymbol) -> BNSymbolBinding;
18907}
18908unsafe extern "C" {
18909    pub fn BNGetSymbolNameSpace(sym: *mut BNSymbol) -> BNNameSpace;
18910}
18911unsafe extern "C" {
18912    pub fn BNGetSymbolShortName(sym: *mut BNSymbol) -> *mut ::std::os::raw::c_char;
18913}
18914unsafe extern "C" {
18915    pub fn BNGetSymbolShortNameRef(sym: *mut BNSymbol) -> *mut BNStringRef;
18916}
18917unsafe extern "C" {
18918    pub fn BNGetSymbolFullName(sym: *mut BNSymbol) -> *mut ::std::os::raw::c_char;
18919}
18920unsafe extern "C" {
18921    pub fn BNGetSymbolFullNameRef(sym: *mut BNSymbol) -> *mut BNStringRef;
18922}
18923unsafe extern "C" {
18924    pub fn BNGetSymbolRawName(sym: *mut BNSymbol) -> *mut ::std::os::raw::c_char;
18925}
18926unsafe extern "C" {
18927    pub fn BNGetSymbolRawNameRef(sym: *mut BNSymbol) -> *mut BNStringRef;
18928}
18929unsafe extern "C" {
18930    pub fn BNGetSymbolRawBytes(
18931        sym: *mut BNSymbol,
18932        count: *mut usize,
18933    ) -> *mut ::std::os::raw::c_void;
18934}
18935unsafe extern "C" {
18936    pub fn BNFreeSymbolRawBytes(bytes: *mut ::std::os::raw::c_void);
18937}
18938unsafe extern "C" {
18939    pub fn BNGetSymbolAddress(sym: *mut BNSymbol) -> u64;
18940}
18941unsafe extern "C" {
18942    pub fn BNGetSymbolOrdinal(sym: *mut BNSymbol) -> u64;
18943}
18944unsafe extern "C" {
18945    pub fn BNIsSymbolAutoDefined(sym: *mut BNSymbol) -> bool;
18946}
18947unsafe extern "C" {
18948    pub fn BNGetSymbolByAddress(
18949        view: *mut BNBinaryView,
18950        addr: u64,
18951        nameSpace: *const BNNameSpace,
18952    ) -> *mut BNSymbol;
18953}
18954unsafe extern "C" {
18955    pub fn BNGetSymbolByRawName(
18956        view: *mut BNBinaryView,
18957        name: *const ::std::os::raw::c_char,
18958        nameSpace: *const BNNameSpace,
18959    ) -> *mut BNSymbol;
18960}
18961unsafe extern "C" {
18962    pub fn BNGetSymbolsByName(
18963        view: *mut BNBinaryView,
18964        name: *const ::std::os::raw::c_char,
18965        count: *mut usize,
18966        nameSpace: *const BNNameSpace,
18967    ) -> *mut *mut BNSymbol;
18968}
18969unsafe extern "C" {
18970    pub fn BNGetSymbolsByRawName(
18971        view: *mut BNBinaryView,
18972        name: *const ::std::os::raw::c_char,
18973        count: *mut usize,
18974        nameSpace: *const BNNameSpace,
18975    ) -> *mut *mut BNSymbol;
18976}
18977unsafe extern "C" {
18978    pub fn BNGetSymbols(
18979        view: *mut BNBinaryView,
18980        count: *mut usize,
18981        nameSpace: *const BNNameSpace,
18982    ) -> *mut *mut BNSymbol;
18983}
18984unsafe extern "C" {
18985    pub fn BNGetSymbolsInRange(
18986        view: *mut BNBinaryView,
18987        start: u64,
18988        len: u64,
18989        count: *mut usize,
18990        nameSpace: *const BNNameSpace,
18991    ) -> *mut *mut BNSymbol;
18992}
18993unsafe extern "C" {
18994    pub fn BNGetSymbolsOfType(
18995        view: *mut BNBinaryView,
18996        type_: BNSymbolType,
18997        count: *mut usize,
18998        nameSpace: *const BNNameSpace,
18999    ) -> *mut *mut BNSymbol;
19000}
19001unsafe extern "C" {
19002    pub fn BNGetSymbolsOfTypeInRange(
19003        view: *mut BNBinaryView,
19004        type_: BNSymbolType,
19005        start: u64,
19006        len: u64,
19007        count: *mut usize,
19008        nameSpace: *const BNNameSpace,
19009    ) -> *mut *mut BNSymbol;
19010}
19011unsafe extern "C" {
19012    pub fn BNFreeSymbolList(syms: *mut *mut BNSymbol, count: usize);
19013}
19014unsafe extern "C" {
19015    pub fn BNGetVisibleSymbols(
19016        view: *mut BNBinaryView,
19017        count: *mut usize,
19018        nameSpace: *const BNNameSpace,
19019    ) -> *mut *mut BNSymbol;
19020}
19021unsafe extern "C" {
19022    pub fn BNDefineAutoSymbol(view: *mut BNBinaryView, sym: *mut BNSymbol);
19023}
19024unsafe extern "C" {
19025    pub fn BNUndefineAutoSymbol(view: *mut BNBinaryView, sym: *mut BNSymbol);
19026}
19027unsafe extern "C" {
19028    pub fn BNDefineUserSymbol(view: *mut BNBinaryView, sym: *mut BNSymbol);
19029}
19030unsafe extern "C" {
19031    pub fn BNUndefineUserSymbol(view: *mut BNBinaryView, sym: *mut BNSymbol);
19032}
19033unsafe extern "C" {
19034    pub fn BNDefineImportedFunction(
19035        view: *mut BNBinaryView,
19036        importAddressSym: *mut BNSymbol,
19037        func: *mut BNFunction,
19038        type_: *mut BNType,
19039    );
19040}
19041unsafe extern "C" {
19042    pub fn BNDefineAutoSymbolAndVariableOrFunction(
19043        view: *mut BNBinaryView,
19044        platform: *mut BNPlatform,
19045        sym: *mut BNSymbol,
19046        type_: *mut BNTypeWithConfidence,
19047    ) -> *mut BNSymbol;
19048}
19049unsafe extern "C" {
19050    pub fn BNBeginBulkModifySymbols(view: *mut BNBinaryView);
19051}
19052unsafe extern "C" {
19053    pub fn BNEndBulkModifySymbols(view: *mut BNBinaryView);
19054}
19055unsafe extern "C" {
19056    pub fn BNGetDebugInfo(view: *mut BNBinaryView) -> *mut BNDebugInfo;
19057}
19058unsafe extern "C" {
19059    pub fn BNApplyDebugInfo(view: *mut BNBinaryView, newDebugInfo: *mut BNDebugInfo);
19060}
19061unsafe extern "C" {
19062    pub fn BNSetDebugInfo(view: *mut BNBinaryView, newDebugInfo: *mut BNDebugInfo);
19063}
19064unsafe extern "C" {
19065    pub fn BNIsApplyingDebugInfo(view: *mut BNBinaryView) -> bool;
19066}
19067unsafe extern "C" {
19068    pub fn BNImportedFunctionFromImportAddressSymbol(
19069        sym: *mut BNSymbol,
19070        addr: u64,
19071    ) -> *mut BNSymbol;
19072}
19073unsafe extern "C" {
19074    #[doc = " Low-level IL"]
19075    pub fn BNCreateLowLevelILFunction(
19076        arch: *mut BNArchitecture,
19077        func: *mut BNFunction,
19078    ) -> *mut BNLowLevelILFunction;
19079}
19080unsafe extern "C" {
19081    pub fn BNNewLowLevelILFunctionReference(
19082        func: *mut BNLowLevelILFunction,
19083    ) -> *mut BNLowLevelILFunction;
19084}
19085unsafe extern "C" {
19086    pub fn BNFreeLowLevelILFunction(func: *mut BNLowLevelILFunction);
19087}
19088unsafe extern "C" {
19089    pub fn BNGetLowLevelILOwnerFunction(func: *mut BNLowLevelILFunction) -> *mut BNFunction;
19090}
19091unsafe extern "C" {
19092    pub fn BNLowLevelILGetCurrentAddress(func: *mut BNLowLevelILFunction) -> u64;
19093}
19094unsafe extern "C" {
19095    pub fn BNLowLevelILSetCurrentAddress(
19096        func: *mut BNLowLevelILFunction,
19097        arch: *mut BNArchitecture,
19098        addr: u64,
19099    );
19100}
19101unsafe extern "C" {
19102    pub fn BNLowLevelILSetCurrentSourceBlock(
19103        func: *mut BNLowLevelILFunction,
19104        source: *mut BNBasicBlock,
19105    );
19106}
19107unsafe extern "C" {
19108    pub fn BNLowLevelILGetInstructionStart(
19109        func: *mut BNLowLevelILFunction,
19110        arch: *mut BNArchitecture,
19111        addr: u64,
19112    ) -> usize;
19113}
19114unsafe extern "C" {
19115    pub fn BNLowLevelILGetInstructionsAt(
19116        func: *mut BNLowLevelILFunction,
19117        arch: *mut BNArchitecture,
19118        addr: u64,
19119        count: *mut usize,
19120    ) -> *mut usize;
19121}
19122unsafe extern "C" {
19123    pub fn BNLowLevelILGetExitsForInstruction(
19124        func: *mut BNLowLevelILFunction,
19125        instr: usize,
19126        count: *mut usize,
19127    ) -> *mut usize;
19128}
19129unsafe extern "C" {
19130    pub fn BNLowLevelILClearIndirectBranches(func: *mut BNLowLevelILFunction);
19131}
19132unsafe extern "C" {
19133    pub fn BNLowLevelILSetIndirectBranches(
19134        func: *mut BNLowLevelILFunction,
19135        branches: *mut BNArchitectureAndAddress,
19136        count: usize,
19137    );
19138}
19139unsafe extern "C" {
19140    pub fn BNLowLevelILAddExpr(
19141        func: *mut BNLowLevelILFunction,
19142        operation: BNLowLevelILOperation,
19143        size: usize,
19144        flags: u32,
19145        a: u64,
19146        b: u64,
19147        c: u64,
19148        d: u64,
19149    ) -> usize;
19150}
19151unsafe extern "C" {
19152    pub fn BNLowLevelILAddExprWithLocation(
19153        func: *mut BNLowLevelILFunction,
19154        addr: u64,
19155        sourceOperand: u32,
19156        operation: BNLowLevelILOperation,
19157        size: usize,
19158        flags: u32,
19159        a: u64,
19160        b: u64,
19161        c: u64,
19162        d: u64,
19163    ) -> usize;
19164}
19165unsafe extern "C" {
19166    pub fn BNLowLevelILSetExprSourceOperand(
19167        func: *mut BNLowLevelILFunction,
19168        expr: usize,
19169        operand: u32,
19170    );
19171}
19172unsafe extern "C" {
19173    pub fn BNLowLevelILAddInstruction(func: *mut BNLowLevelILFunction, expr: usize) -> usize;
19174}
19175unsafe extern "C" {
19176    pub fn BNLowLevelILGoto(
19177        func: *mut BNLowLevelILFunction,
19178        label: *mut BNLowLevelILLabel,
19179    ) -> usize;
19180}
19181unsafe extern "C" {
19182    pub fn BNLowLevelILGotoWithLocation(
19183        func: *mut BNLowLevelILFunction,
19184        label: *mut BNLowLevelILLabel,
19185        addr: u64,
19186        sourceOperand: u32,
19187    ) -> usize;
19188}
19189unsafe extern "C" {
19190    pub fn BNLowLevelILIf(
19191        func: *mut BNLowLevelILFunction,
19192        op: u64,
19193        t: *mut BNLowLevelILLabel,
19194        f: *mut BNLowLevelILLabel,
19195    ) -> usize;
19196}
19197unsafe extern "C" {
19198    pub fn BNLowLevelILIfWithLocation(
19199        func: *mut BNLowLevelILFunction,
19200        op: u64,
19201        t: *mut BNLowLevelILLabel,
19202        f: *mut BNLowLevelILLabel,
19203        addr: u64,
19204        sourceOperand: u32,
19205    ) -> usize;
19206}
19207unsafe extern "C" {
19208    pub fn BNLowLevelILInitLabel(label: *mut BNLowLevelILLabel);
19209}
19210unsafe extern "C" {
19211    pub fn BNLowLevelILMarkLabel(func: *mut BNLowLevelILFunction, label: *mut BNLowLevelILLabel);
19212}
19213unsafe extern "C" {
19214    pub fn BNFinalizeLowLevelILFunction(func: *mut BNLowLevelILFunction);
19215}
19216unsafe extern "C" {
19217    pub fn BNGenerateLowLevelILSSAForm(func: *mut BNLowLevelILFunction);
19218}
19219unsafe extern "C" {
19220    pub fn BNLowLevelILFunctionHasIndirectBranches(func: *mut BNLowLevelILFunction) -> bool;
19221}
19222unsafe extern "C" {
19223    pub fn BNPrepareToCopyLowLevelILFunction(
19224        func: *mut BNLowLevelILFunction,
19225        src: *mut BNLowLevelILFunction,
19226    );
19227}
19228unsafe extern "C" {
19229    pub fn BNPrepareToCopyLowLevelILBasicBlock(
19230        func: *mut BNLowLevelILFunction,
19231        block: *mut BNBasicBlock,
19232    );
19233}
19234unsafe extern "C" {
19235    pub fn BNGetLabelForLowLevelILSourceInstruction(
19236        func: *mut BNLowLevelILFunction,
19237        instr: usize,
19238    ) -> *mut BNLowLevelILLabel;
19239}
19240unsafe extern "C" {
19241    pub fn BNPrepareToCopyForeignFunction(
19242        dst: *mut BNLowLevelILFunction,
19243        src: *mut BNLowLevelILFunction,
19244        count: *mut usize,
19245    ) -> *mut *mut BNBasicBlock;
19246}
19247unsafe extern "C" {
19248    pub fn BNLowLevelILAddLabelMap(
19249        func: *mut BNLowLevelILFunction,
19250        values: *mut u64,
19251        labels: *mut *mut BNLowLevelILLabel,
19252        count: usize,
19253    ) -> usize;
19254}
19255unsafe extern "C" {
19256    pub fn BNLowLevelILAddOperandList(
19257        func: *mut BNLowLevelILFunction,
19258        operands: *mut u64,
19259        count: usize,
19260    ) -> usize;
19261}
19262unsafe extern "C" {
19263    pub fn BNLowLevelILGetOperandList(
19264        func: *mut BNLowLevelILFunction,
19265        expr: usize,
19266        operand: usize,
19267        count: *mut usize,
19268    ) -> *mut u64;
19269}
19270unsafe extern "C" {
19271    pub fn BNLowLevelILFreeOperandList(operands: *mut u64);
19272}
19273unsafe extern "C" {
19274    pub fn BNLowLevelILGetOperand(func: *mut BNLowLevelILFunction, offset: usize) -> u64;
19275}
19276unsafe extern "C" {
19277    pub fn BNCacheLowLevelILPossibleValueSet(
19278        func: *mut BNLowLevelILFunction,
19279        pvs: *mut BNPossibleValueSet,
19280    ) -> usize;
19281}
19282unsafe extern "C" {
19283    pub fn BNGetCachedLowLevelILPossibleValueSet(
19284        func: *mut BNLowLevelILFunction,
19285        idx: usize,
19286    ) -> BNPossibleValueSet;
19287}
19288unsafe extern "C" {
19289    pub fn BNGetLowLevelILByIndex(
19290        func: *mut BNLowLevelILFunction,
19291        i: usize,
19292    ) -> BNLowLevelILInstruction;
19293}
19294unsafe extern "C" {
19295    pub fn BNGetLowLevelILIndexForInstruction(func: *mut BNLowLevelILFunction, i: usize) -> usize;
19296}
19297unsafe extern "C" {
19298    pub fn BNGetLowLevelILInstructionForExpr(func: *mut BNLowLevelILFunction, expr: usize)
19299    -> usize;
19300}
19301unsafe extern "C" {
19302    pub fn BNGetLowLevelILInstructionCount(func: *mut BNLowLevelILFunction) -> usize;
19303}
19304unsafe extern "C" {
19305    pub fn BNGetLowLevelILExprCount(func: *mut BNLowLevelILFunction) -> usize;
19306}
19307unsafe extern "C" {
19308    pub fn BNUpdateLowLevelILOperand(
19309        func: *mut BNLowLevelILFunction,
19310        instr: usize,
19311        operandIndex: usize,
19312        value: u64,
19313    );
19314}
19315unsafe extern "C" {
19316    pub fn BNReplaceLowLevelILExpr(func: *mut BNLowLevelILFunction, expr: usize, newExpr: usize);
19317}
19318unsafe extern "C" {
19319    pub fn BNSetLowLevelILExprAttributes(
19320        func: *mut BNLowLevelILFunction,
19321        expr: usize,
19322        attributes: u32,
19323    );
19324}
19325unsafe extern "C" {
19326    pub fn BNAddLowLevelILLabelForAddress(
19327        func: *mut BNLowLevelILFunction,
19328        arch: *mut BNArchitecture,
19329        addr: u64,
19330    );
19331}
19332unsafe extern "C" {
19333    pub fn BNGetLowLevelILLabelForAddress(
19334        func: *mut BNLowLevelILFunction,
19335        arch: *mut BNArchitecture,
19336        addr: u64,
19337    ) -> *mut BNLowLevelILLabel;
19338}
19339unsafe extern "C" {
19340    pub fn BNPrepareBlockTranslation(
19341        func: *mut BNLowLevelILFunction,
19342        arch: *mut BNArchitecture,
19343        addr: u64,
19344    );
19345}
19346unsafe extern "C" {
19347    pub fn BNGetLowLevelILExprText(
19348        func: *mut BNLowLevelILFunction,
19349        arch: *mut BNArchitecture,
19350        i: usize,
19351        settings: *mut BNDisassemblySettings,
19352        tokens: *mut *mut BNInstructionTextToken,
19353        count: *mut usize,
19354    ) -> bool;
19355}
19356unsafe extern "C" {
19357    pub fn BNGetLowLevelILInstructionText(
19358        il: *mut BNLowLevelILFunction,
19359        func: *mut BNFunction,
19360        arch: *mut BNArchitecture,
19361        i: usize,
19362        settings: *mut BNDisassemblySettings,
19363        tokens: *mut *mut BNInstructionTextToken,
19364        count: *mut usize,
19365    ) -> bool;
19366}
19367unsafe extern "C" {
19368    pub fn BNGetLowLevelILTemporaryRegisterCount(func: *mut BNLowLevelILFunction) -> u32;
19369}
19370unsafe extern "C" {
19371    pub fn BNGetLowLevelILTemporaryFlagCount(func: *mut BNLowLevelILFunction) -> u32;
19372}
19373unsafe extern "C" {
19374    pub fn BNGetLowLevelILBasicBlockList(
19375        func: *mut BNLowLevelILFunction,
19376        count: *mut usize,
19377    ) -> *mut *mut BNBasicBlock;
19378}
19379unsafe extern "C" {
19380    pub fn BNGetLowLevelILBasicBlockForInstruction(
19381        func: *mut BNLowLevelILFunction,
19382        i: usize,
19383    ) -> *mut BNBasicBlock;
19384}
19385unsafe extern "C" {
19386    pub fn BNGetLowLevelILSSAForm(func: *mut BNLowLevelILFunction) -> *mut BNLowLevelILFunction;
19387}
19388unsafe extern "C" {
19389    pub fn BNGetLowLevelILNonSSAForm(func: *mut BNLowLevelILFunction) -> *mut BNLowLevelILFunction;
19390}
19391unsafe extern "C" {
19392    pub fn BNGetLowLevelILSSAInstructionIndex(
19393        func: *mut BNLowLevelILFunction,
19394        instr: usize,
19395    ) -> usize;
19396}
19397unsafe extern "C" {
19398    pub fn BNGetLowLevelILNonSSAInstructionIndex(
19399        func: *mut BNLowLevelILFunction,
19400        instr: usize,
19401    ) -> usize;
19402}
19403unsafe extern "C" {
19404    pub fn BNGetLowLevelILSSAExprIndex(func: *mut BNLowLevelILFunction, expr: usize) -> usize;
19405}
19406unsafe extern "C" {
19407    pub fn BNGetLowLevelILNonSSAExprIndex(func: *mut BNLowLevelILFunction, expr: usize) -> usize;
19408}
19409unsafe extern "C" {
19410    pub fn BNGetLowLevelILSSARegisterDefinition(
19411        func: *mut BNLowLevelILFunction,
19412        reg: u32,
19413        version: usize,
19414    ) -> usize;
19415}
19416unsafe extern "C" {
19417    pub fn BNGetLowLevelILSSAFlagDefinition(
19418        func: *mut BNLowLevelILFunction,
19419        reg: u32,
19420        version: usize,
19421    ) -> usize;
19422}
19423unsafe extern "C" {
19424    pub fn BNGetLowLevelILSSAMemoryDefinition(
19425        func: *mut BNLowLevelILFunction,
19426        version: usize,
19427    ) -> usize;
19428}
19429unsafe extern "C" {
19430    pub fn BNGetLowLevelILSSARegisterUses(
19431        func: *mut BNLowLevelILFunction,
19432        reg: u32,
19433        version: usize,
19434        count: *mut usize,
19435    ) -> *mut usize;
19436}
19437unsafe extern "C" {
19438    pub fn BNGetLowLevelILSSAFlagUses(
19439        func: *mut BNLowLevelILFunction,
19440        reg: u32,
19441        version: usize,
19442        count: *mut usize,
19443    ) -> *mut usize;
19444}
19445unsafe extern "C" {
19446    pub fn BNGetLowLevelILSSAMemoryUses(
19447        func: *mut BNLowLevelILFunction,
19448        version: usize,
19449        count: *mut usize,
19450    ) -> *mut usize;
19451}
19452unsafe extern "C" {
19453    pub fn BNGetLowLevelILSSARegisterValue(
19454        func: *mut BNLowLevelILFunction,
19455        reg: u32,
19456        version: usize,
19457    ) -> BNRegisterValue;
19458}
19459unsafe extern "C" {
19460    pub fn BNGetLowLevelILSSAFlagValue(
19461        func: *mut BNLowLevelILFunction,
19462        flag: u32,
19463        version: usize,
19464    ) -> BNRegisterValue;
19465}
19466unsafe extern "C" {
19467    pub fn BNGetLowLevelILExprValue(
19468        func: *mut BNLowLevelILFunction,
19469        expr: usize,
19470    ) -> BNRegisterValue;
19471}
19472unsafe extern "C" {
19473    pub fn BNGetLowLevelILPossibleExprValues(
19474        func: *mut BNLowLevelILFunction,
19475        expr: usize,
19476        options: *mut BNDataFlowQueryOption,
19477        optionCount: usize,
19478    ) -> BNPossibleValueSet;
19479}
19480unsafe extern "C" {
19481    pub fn BNGetLowLevelILRegisterValueAtInstruction(
19482        func: *mut BNLowLevelILFunction,
19483        reg: u32,
19484        instr: usize,
19485    ) -> BNRegisterValue;
19486}
19487unsafe extern "C" {
19488    pub fn BNGetLowLevelILRegisterValueAfterInstruction(
19489        func: *mut BNLowLevelILFunction,
19490        reg: u32,
19491        instr: usize,
19492    ) -> BNRegisterValue;
19493}
19494unsafe extern "C" {
19495    pub fn BNGetLowLevelILPossibleRegisterValuesAtInstruction(
19496        func: *mut BNLowLevelILFunction,
19497        reg: u32,
19498        instr: usize,
19499        options: *mut BNDataFlowQueryOption,
19500        optionCount: usize,
19501    ) -> BNPossibleValueSet;
19502}
19503unsafe extern "C" {
19504    pub fn BNGetLowLevelILPossibleRegisterValuesAfterInstruction(
19505        func: *mut BNLowLevelILFunction,
19506        reg: u32,
19507        instr: usize,
19508        options: *mut BNDataFlowQueryOption,
19509        optionCount: usize,
19510    ) -> BNPossibleValueSet;
19511}
19512unsafe extern "C" {
19513    pub fn BNGetLowLevelILFlagValueAtInstruction(
19514        func: *mut BNLowLevelILFunction,
19515        flag: u32,
19516        instr: usize,
19517    ) -> BNRegisterValue;
19518}
19519unsafe extern "C" {
19520    pub fn BNGetLowLevelILFlagValueAfterInstruction(
19521        func: *mut BNLowLevelILFunction,
19522        flag: u32,
19523        instr: usize,
19524    ) -> BNRegisterValue;
19525}
19526unsafe extern "C" {
19527    pub fn BNGetLowLevelILPossibleFlagValuesAtInstruction(
19528        func: *mut BNLowLevelILFunction,
19529        flag: u32,
19530        instr: usize,
19531        options: *mut BNDataFlowQueryOption,
19532        optionCount: usize,
19533    ) -> BNPossibleValueSet;
19534}
19535unsafe extern "C" {
19536    pub fn BNGetLowLevelILPossibleFlagValuesAfterInstruction(
19537        func: *mut BNLowLevelILFunction,
19538        flag: u32,
19539        instr: usize,
19540        options: *mut BNDataFlowQueryOption,
19541        optionCount: usize,
19542    ) -> BNPossibleValueSet;
19543}
19544unsafe extern "C" {
19545    pub fn BNGetLowLevelILStackContentsAtInstruction(
19546        func: *mut BNLowLevelILFunction,
19547        offset: i64,
19548        len: usize,
19549        instr: usize,
19550    ) -> BNRegisterValue;
19551}
19552unsafe extern "C" {
19553    pub fn BNGetLowLevelILStackContentsAfterInstruction(
19554        func: *mut BNLowLevelILFunction,
19555        offset: i64,
19556        len: usize,
19557        instr: usize,
19558    ) -> BNRegisterValue;
19559}
19560unsafe extern "C" {
19561    pub fn BNGetLowLevelILPossibleStackContentsAtInstruction(
19562        func: *mut BNLowLevelILFunction,
19563        offset: i64,
19564        len: usize,
19565        instr: usize,
19566        options: *mut BNDataFlowQueryOption,
19567        optionCount: usize,
19568    ) -> BNPossibleValueSet;
19569}
19570unsafe extern "C" {
19571    pub fn BNGetLowLevelILPossibleStackContentsAfterInstruction(
19572        func: *mut BNLowLevelILFunction,
19573        offset: i64,
19574        len: usize,
19575        instr: usize,
19576        options: *mut BNDataFlowQueryOption,
19577        optionCount: usize,
19578    ) -> BNPossibleValueSet;
19579}
19580unsafe extern "C" {
19581    pub fn BNGetLowLevelRegisters(func: *mut BNLowLevelILFunction, count: *mut usize) -> *mut u32;
19582}
19583unsafe extern "C" {
19584    pub fn BNGetLowLevelRegisterStacks(
19585        func: *mut BNLowLevelILFunction,
19586        count: *mut usize,
19587    ) -> *mut u32;
19588}
19589unsafe extern "C" {
19590    pub fn BNGetLowLevelFlags(func: *mut BNLowLevelILFunction, count: *mut usize) -> *mut u32;
19591}
19592unsafe extern "C" {
19593    pub fn BNGetLowLevelSSARegistersWithoutVersions(
19594        func: *mut BNLowLevelILFunction,
19595        count: *mut usize,
19596    ) -> *mut u32;
19597}
19598unsafe extern "C" {
19599    pub fn BNGetLowLevelSSARegisterStacksWithoutVersions(
19600        func: *mut BNLowLevelILFunction,
19601        count: *mut usize,
19602    ) -> *mut u32;
19603}
19604unsafe extern "C" {
19605    pub fn BNGetLowLevelSSAFlagsWithoutVersions(
19606        func: *mut BNLowLevelILFunction,
19607        count: *mut usize,
19608    ) -> *mut u32;
19609}
19610unsafe extern "C" {
19611    pub fn BNGetLowLevelRegisterSSAVersions(
19612        func: *mut BNLowLevelILFunction,
19613        var: u32,
19614        count: *mut usize,
19615    ) -> *mut usize;
19616}
19617unsafe extern "C" {
19618    pub fn BNGetLowLevelRegisterStackSSAVersions(
19619        func: *mut BNLowLevelILFunction,
19620        var: u32,
19621        count: *mut usize,
19622    ) -> *mut usize;
19623}
19624unsafe extern "C" {
19625    pub fn BNGetLowLevelFlagSSAVersions(
19626        func: *mut BNLowLevelILFunction,
19627        var: u32,
19628        count: *mut usize,
19629    ) -> *mut usize;
19630}
19631unsafe extern "C" {
19632    pub fn BNGetLowLevelMemoryVersions(
19633        func: *mut BNLowLevelILFunction,
19634        count: *mut usize,
19635    ) -> *mut usize;
19636}
19637unsafe extern "C" {
19638    pub fn BNFreeLLILVariablesList(vars: *mut u32);
19639}
19640unsafe extern "C" {
19641    pub fn BNFreeLLILVariableVersionList(versions: *mut usize);
19642}
19643unsafe extern "C" {
19644    pub fn BNGetMediumLevelILForLowLevelIL(
19645        func: *mut BNLowLevelILFunction,
19646    ) -> *mut BNMediumLevelILFunction;
19647}
19648unsafe extern "C" {
19649    pub fn BNGetMappedMediumLevelIL(
19650        func: *mut BNLowLevelILFunction,
19651    ) -> *mut BNMediumLevelILFunction;
19652}
19653unsafe extern "C" {
19654    pub fn BNGetMediumLevelILInstructionIndex(
19655        func: *mut BNLowLevelILFunction,
19656        instr: usize,
19657    ) -> usize;
19658}
19659unsafe extern "C" {
19660    pub fn BNGetMediumLevelILExprIndex(func: *mut BNLowLevelILFunction, expr: usize) -> usize;
19661}
19662unsafe extern "C" {
19663    pub fn BNGetMediumLevelILExprIndexes(
19664        func: *mut BNLowLevelILFunction,
19665        expr: usize,
19666        count: *mut usize,
19667    ) -> *mut usize;
19668}
19669unsafe extern "C" {
19670    pub fn BNGetMappedMediumLevelILInstructionIndex(
19671        func: *mut BNLowLevelILFunction,
19672        instr: usize,
19673    ) -> usize;
19674}
19675unsafe extern "C" {
19676    pub fn BNGetMappedMediumLevelILExprIndex(func: *mut BNLowLevelILFunction, expr: usize)
19677    -> usize;
19678}
19679unsafe extern "C" {
19680    #[doc = " Medium-level IL"]
19681    pub fn BNCreateMediumLevelILFunction(
19682        arch: *mut BNArchitecture,
19683        func: *mut BNFunction,
19684        lowLevelIL: *mut BNLowLevelILFunction,
19685    ) -> *mut BNMediumLevelILFunction;
19686}
19687unsafe extern "C" {
19688    pub fn BNNewMediumLevelILFunctionReference(
19689        func: *mut BNMediumLevelILFunction,
19690    ) -> *mut BNMediumLevelILFunction;
19691}
19692unsafe extern "C" {
19693    pub fn BNFreeMediumLevelILFunction(func: *mut BNMediumLevelILFunction);
19694}
19695unsafe extern "C" {
19696    pub fn BNGetMediumLevelILOwnerFunction(func: *mut BNMediumLevelILFunction) -> *mut BNFunction;
19697}
19698unsafe extern "C" {
19699    pub fn BNMediumLevelILGetCurrentAddress(func: *mut BNMediumLevelILFunction) -> u64;
19700}
19701unsafe extern "C" {
19702    pub fn BNMediumLevelILSetCurrentAddress(
19703        func: *mut BNMediumLevelILFunction,
19704        arch: *mut BNArchitecture,
19705        addr: u64,
19706    );
19707}
19708unsafe extern "C" {
19709    pub fn BNMediumLevelILGetInstructionStart(
19710        func: *mut BNMediumLevelILFunction,
19711        arch: *mut BNArchitecture,
19712        addr: u64,
19713    ) -> usize;
19714}
19715unsafe extern "C" {
19716    pub fn BNMediumLevelILAddExpr(
19717        func: *mut BNMediumLevelILFunction,
19718        operation: BNMediumLevelILOperation,
19719        size: usize,
19720        a: u64,
19721        b: u64,
19722        c: u64,
19723        d: u64,
19724        e: u64,
19725    ) -> usize;
19726}
19727unsafe extern "C" {
19728    pub fn BNMediumLevelILAddExprWithLocation(
19729        func: *mut BNMediumLevelILFunction,
19730        operation: BNMediumLevelILOperation,
19731        addr: u64,
19732        sourceOperand: u32,
19733        size: usize,
19734        a: u64,
19735        b: u64,
19736        c: u64,
19737        d: u64,
19738        e: u64,
19739    ) -> usize;
19740}
19741unsafe extern "C" {
19742    pub fn BNMediumLevelILAddInstruction(func: *mut BNMediumLevelILFunction, expr: usize) -> usize;
19743}
19744unsafe extern "C" {
19745    pub fn BNMediumLevelILGoto(
19746        func: *mut BNMediumLevelILFunction,
19747        label: *mut BNMediumLevelILLabel,
19748    ) -> usize;
19749}
19750unsafe extern "C" {
19751    pub fn BNMediumLevelILGotoWithLocation(
19752        func: *mut BNMediumLevelILFunction,
19753        label: *mut BNMediumLevelILLabel,
19754        addr: u64,
19755        sourceOperand: u32,
19756    ) -> usize;
19757}
19758unsafe extern "C" {
19759    pub fn BNMediumLevelILIf(
19760        func: *mut BNMediumLevelILFunction,
19761        op: u64,
19762        t: *mut BNMediumLevelILLabel,
19763        f: *mut BNMediumLevelILLabel,
19764    ) -> usize;
19765}
19766unsafe extern "C" {
19767    pub fn BNMediumLevelILIfWithLocation(
19768        func: *mut BNMediumLevelILFunction,
19769        op: u64,
19770        t: *mut BNMediumLevelILLabel,
19771        f: *mut BNMediumLevelILLabel,
19772        addr: u64,
19773        sourceOperand: u32,
19774    ) -> usize;
19775}
19776unsafe extern "C" {
19777    pub fn BNMediumLevelILInitLabel(label: *mut BNMediumLevelILLabel);
19778}
19779unsafe extern "C" {
19780    pub fn BNMediumLevelILMarkLabel(
19781        func: *mut BNMediumLevelILFunction,
19782        label: *mut BNMediumLevelILLabel,
19783    );
19784}
19785unsafe extern "C" {
19786    pub fn BNFinalizeMediumLevelILFunction(func: *mut BNMediumLevelILFunction);
19787}
19788unsafe extern "C" {
19789    pub fn BNGenerateMediumLevelILSSAForm(
19790        func: *mut BNMediumLevelILFunction,
19791        analyzeConditionals: bool,
19792        handleAliases: bool,
19793        knownNotAliases: *mut BNVariable,
19794        knownNotAliasCount: usize,
19795        knownAliases: *mut BNVariable,
19796        knownAliasCount: usize,
19797    );
19798}
19799unsafe extern "C" {
19800    pub fn BNPrepareToCopyMediumLevelILFunction(
19801        func: *mut BNMediumLevelILFunction,
19802        src: *mut BNMediumLevelILFunction,
19803    );
19804}
19805unsafe extern "C" {
19806    pub fn BNPrepareToCopyMediumLevelILBasicBlock(
19807        func: *mut BNMediumLevelILFunction,
19808        block: *mut BNBasicBlock,
19809    );
19810}
19811unsafe extern "C" {
19812    pub fn BNGetLabelForMediumLevelILSourceInstruction(
19813        func: *mut BNMediumLevelILFunction,
19814        instr: usize,
19815    ) -> *mut BNMediumLevelILLabel;
19816}
19817unsafe extern "C" {
19818    pub fn BNMediumLevelILAddLabelMap(
19819        func: *mut BNMediumLevelILFunction,
19820        values: *mut u64,
19821        labels: *mut *mut BNMediumLevelILLabel,
19822        count: usize,
19823    ) -> usize;
19824}
19825unsafe extern "C" {
19826    pub fn BNMediumLevelILAddOperandList(
19827        func: *mut BNMediumLevelILFunction,
19828        operands: *mut u64,
19829        count: usize,
19830    ) -> usize;
19831}
19832unsafe extern "C" {
19833    pub fn BNMediumLevelILGetOperandList(
19834        func: *mut BNMediumLevelILFunction,
19835        expr: usize,
19836        operand: usize,
19837        count: *mut usize,
19838    ) -> *mut u64;
19839}
19840unsafe extern "C" {
19841    pub fn BNMediumLevelILFreeOperandList(operands: *mut u64);
19842}
19843unsafe extern "C" {
19844    pub fn BNMediumLevelILGetOperand(func: *mut BNMediumLevelILFunction, offset: usize) -> u64;
19845}
19846unsafe extern "C" {
19847    pub fn BNCacheMediumLevelILPossibleValueSet(
19848        func: *mut BNMediumLevelILFunction,
19849        pvs: *mut BNPossibleValueSet,
19850    ) -> usize;
19851}
19852unsafe extern "C" {
19853    pub fn BNGetCachedMediumLevelILPossibleValueSet(
19854        func: *mut BNMediumLevelILFunction,
19855        idx: usize,
19856    ) -> BNPossibleValueSet;
19857}
19858unsafe extern "C" {
19859    pub fn BNGetMediumLevelILByIndex(
19860        func: *mut BNMediumLevelILFunction,
19861        i: usize,
19862    ) -> BNMediumLevelILInstruction;
19863}
19864unsafe extern "C" {
19865    pub fn BNGetMediumLevelILIndexForInstruction(
19866        func: *mut BNMediumLevelILFunction,
19867        i: usize,
19868    ) -> usize;
19869}
19870unsafe extern "C" {
19871    pub fn BNGetMediumLevelILInstructionForExpr(
19872        func: *mut BNMediumLevelILFunction,
19873        expr: usize,
19874    ) -> usize;
19875}
19876unsafe extern "C" {
19877    pub fn BNGetMediumLevelILInstructionCount(func: *mut BNMediumLevelILFunction) -> usize;
19878}
19879unsafe extern "C" {
19880    pub fn BNGetMediumLevelILExprCount(func: *mut BNMediumLevelILFunction) -> usize;
19881}
19882unsafe extern "C" {
19883    pub fn BNUpdateMediumLevelILOperand(
19884        func: *mut BNMediumLevelILFunction,
19885        instr: usize,
19886        operandIndex: usize,
19887        value: u64,
19888    );
19889}
19890unsafe extern "C" {
19891    pub fn BNMarkMediumLevelILInstructionForRemoval(
19892        func: *mut BNMediumLevelILFunction,
19893        instr: usize,
19894    );
19895}
19896unsafe extern "C" {
19897    pub fn BNReplaceMediumLevelILInstruction(
19898        func: *mut BNMediumLevelILFunction,
19899        instr: usize,
19900        expr: usize,
19901    );
19902}
19903unsafe extern "C" {
19904    pub fn BNReplaceMediumLevelILExpr(
19905        func: *mut BNMediumLevelILFunction,
19906        expr: usize,
19907        newExpr: usize,
19908    );
19909}
19910unsafe extern "C" {
19911    pub fn BNSetMediumLevelILExprAttributes(
19912        func: *mut BNMediumLevelILFunction,
19913        expr: usize,
19914        attributes: u32,
19915    );
19916}
19917unsafe extern "C" {
19918    pub fn BNGetMediumLevelILExprText(
19919        func: *mut BNMediumLevelILFunction,
19920        arch: *mut BNArchitecture,
19921        i: usize,
19922        tokens: *mut *mut BNInstructionTextToken,
19923        count: *mut usize,
19924        settings: *mut BNDisassemblySettings,
19925    ) -> bool;
19926}
19927unsafe extern "C" {
19928    pub fn BNGetMediumLevelILInstructionText(
19929        il: *mut BNMediumLevelILFunction,
19930        func: *mut BNFunction,
19931        arch: *mut BNArchitecture,
19932        i: usize,
19933        tokens: *mut *mut BNInstructionTextToken,
19934        count: *mut usize,
19935        settings: *mut BNDisassemblySettings,
19936    ) -> bool;
19937}
19938unsafe extern "C" {
19939    pub fn BNGetMediumLevelILBasicBlockList(
19940        func: *mut BNMediumLevelILFunction,
19941        count: *mut usize,
19942    ) -> *mut *mut BNBasicBlock;
19943}
19944unsafe extern "C" {
19945    pub fn BNGetMediumLevelILBasicBlockForInstruction(
19946        func: *mut BNMediumLevelILFunction,
19947        i: usize,
19948    ) -> *mut BNBasicBlock;
19949}
19950unsafe extern "C" {
19951    pub fn BNGetMediumLevelILSSAForm(
19952        func: *mut BNMediumLevelILFunction,
19953    ) -> *mut BNMediumLevelILFunction;
19954}
19955unsafe extern "C" {
19956    pub fn BNGetMediumLevelILNonSSAForm(
19957        func: *mut BNMediumLevelILFunction,
19958    ) -> *mut BNMediumLevelILFunction;
19959}
19960unsafe extern "C" {
19961    pub fn BNGetMediumLevelILSSAInstructionIndex(
19962        func: *mut BNMediumLevelILFunction,
19963        instr: usize,
19964    ) -> usize;
19965}
19966unsafe extern "C" {
19967    pub fn BNGetMediumLevelILNonSSAInstructionIndex(
19968        func: *mut BNMediumLevelILFunction,
19969        instr: usize,
19970    ) -> usize;
19971}
19972unsafe extern "C" {
19973    pub fn BNGetMediumLevelILSSAExprIndex(func: *mut BNMediumLevelILFunction, expr: usize)
19974    -> usize;
19975}
19976unsafe extern "C" {
19977    pub fn BNGetMediumLevelILNonSSAExprIndex(
19978        func: *mut BNMediumLevelILFunction,
19979        expr: usize,
19980    ) -> usize;
19981}
19982unsafe extern "C" {
19983    pub fn BNGetMediumLevelILSSAVarDefinition(
19984        func: *mut BNMediumLevelILFunction,
19985        var: *const BNVariable,
19986        version: usize,
19987    ) -> usize;
19988}
19989unsafe extern "C" {
19990    pub fn BNGetMediumLevelILSSAMemoryDefinition(
19991        func: *mut BNMediumLevelILFunction,
19992        version: usize,
19993    ) -> usize;
19994}
19995unsafe extern "C" {
19996    pub fn BNGetMediumLevelILSSAVarUses(
19997        func: *mut BNMediumLevelILFunction,
19998        var: *const BNVariable,
19999        version: usize,
20000        count: *mut usize,
20001    ) -> *mut usize;
20002}
20003unsafe extern "C" {
20004    pub fn BNGetMediumLevelILSSAMemoryUses(
20005        func: *mut BNMediumLevelILFunction,
20006        version: usize,
20007        count: *mut usize,
20008    ) -> *mut usize;
20009}
20010unsafe extern "C" {
20011    pub fn BNIsMediumLevelILSSAVarLive(
20012        func: *mut BNMediumLevelILFunction,
20013        var: *const BNVariable,
20014        version: usize,
20015    ) -> bool;
20016}
20017unsafe extern "C" {
20018    pub fn BNIsMediumLevelILSSAVarLiveAt(
20019        func: *mut BNMediumLevelILFunction,
20020        var: *const BNVariable,
20021        version: usize,
20022        instr: usize,
20023    ) -> bool;
20024}
20025unsafe extern "C" {
20026    pub fn BNIsMediumLevelILVarLiveAt(
20027        func: *mut BNMediumLevelILFunction,
20028        var: *const BNVariable,
20029        instr: usize,
20030    ) -> bool;
20031}
20032unsafe extern "C" {
20033    pub fn BNGetMediumLevelILVariables(
20034        func: *mut BNMediumLevelILFunction,
20035        count: *mut usize,
20036    ) -> *mut BNVariable;
20037}
20038unsafe extern "C" {
20039    pub fn BNGetMediumLevelILAliasedVariables(
20040        func: *mut BNMediumLevelILFunction,
20041        count: *mut usize,
20042    ) -> *mut BNVariable;
20043}
20044unsafe extern "C" {
20045    pub fn BNGetMediumLevelILVariableSSAVersions(
20046        func: *mut BNMediumLevelILFunction,
20047        var: *const BNVariable,
20048        count: *mut usize,
20049    ) -> *mut usize;
20050}
20051unsafe extern "C" {
20052    pub fn BNGetMediumLevelILVariableDefinitions(
20053        func: *mut BNMediumLevelILFunction,
20054        var: *const BNVariable,
20055        count: *mut usize,
20056    ) -> *mut usize;
20057}
20058unsafe extern "C" {
20059    pub fn BNGetMediumLevelILVariableUses(
20060        func: *mut BNMediumLevelILFunction,
20061        var: *const BNVariable,
20062        count: *mut usize,
20063    ) -> *mut usize;
20064}
20065unsafe extern "C" {
20066    pub fn BNGetMediumLevelILLiveInstructionsForVariable(
20067        func: *mut BNMediumLevelILFunction,
20068        var: *const BNVariable,
20069        includeLastUse: bool,
20070        count: *mut usize,
20071    ) -> *mut usize;
20072}
20073unsafe extern "C" {
20074    pub fn BNGetDefaultIndexForMediumLevelILVariableDefinition(
20075        func: *mut BNMediumLevelILFunction,
20076        var: *const BNVariable,
20077        instrIndex: usize,
20078    ) -> u32;
20079}
20080unsafe extern "C" {
20081    pub fn BNGetMediumLevelILSSAVarValue(
20082        func: *mut BNMediumLevelILFunction,
20083        var: *const BNVariable,
20084        version: usize,
20085    ) -> BNRegisterValue;
20086}
20087unsafe extern "C" {
20088    pub fn BNGetMediumLevelILExprValue(
20089        func: *mut BNMediumLevelILFunction,
20090        expr: usize,
20091    ) -> BNRegisterValue;
20092}
20093unsafe extern "C" {
20094    pub fn BNGetMediumLevelILPossibleSSAVarValues(
20095        func: *mut BNMediumLevelILFunction,
20096        var: *const BNVariable,
20097        version: usize,
20098        instr: usize,
20099        options: *mut BNDataFlowQueryOption,
20100        optionCount: usize,
20101    ) -> BNPossibleValueSet;
20102}
20103unsafe extern "C" {
20104    pub fn BNGetMediumLevelILPossibleExprValues(
20105        func: *mut BNMediumLevelILFunction,
20106        expr: usize,
20107        options: *mut BNDataFlowQueryOption,
20108        optionCount: usize,
20109    ) -> BNPossibleValueSet;
20110}
20111unsafe extern "C" {
20112    pub fn BNGetMediumLevelILSSAVarVersionAtILInstruction(
20113        func: *mut BNMediumLevelILFunction,
20114        var: *const BNVariable,
20115        instr: usize,
20116    ) -> usize;
20117}
20118unsafe extern "C" {
20119    pub fn BNGetMediumLevelILSSAVarVersionAfterILInstruction(
20120        func: *mut BNMediumLevelILFunction,
20121        var: *const BNVariable,
20122        instr: usize,
20123    ) -> usize;
20124}
20125unsafe extern "C" {
20126    pub fn BNGetMediumLevelILSSAMemoryVersionAtILInstruction(
20127        func: *mut BNMediumLevelILFunction,
20128        instr: usize,
20129    ) -> usize;
20130}
20131unsafe extern "C" {
20132    pub fn BNGetMediumLevelILSSAMemoryVersionAfterILInstruction(
20133        func: *mut BNMediumLevelILFunction,
20134        instr: usize,
20135    ) -> usize;
20136}
20137unsafe extern "C" {
20138    pub fn BNGetMediumLevelILVariableForRegisterAtInstruction(
20139        func: *mut BNMediumLevelILFunction,
20140        reg: u32,
20141        instr: usize,
20142    ) -> BNVariable;
20143}
20144unsafe extern "C" {
20145    pub fn BNGetMediumLevelILVariableForRegisterAfterInstruction(
20146        func: *mut BNMediumLevelILFunction,
20147        reg: u32,
20148        instr: usize,
20149    ) -> BNVariable;
20150}
20151unsafe extern "C" {
20152    pub fn BNGetMediumLevelILVariableForFlagAtInstruction(
20153        func: *mut BNMediumLevelILFunction,
20154        flag: u32,
20155        instr: usize,
20156    ) -> BNVariable;
20157}
20158unsafe extern "C" {
20159    pub fn BNGetMediumLevelILVariableForFlagAfterInstruction(
20160        func: *mut BNMediumLevelILFunction,
20161        flag: u32,
20162        instr: usize,
20163    ) -> BNVariable;
20164}
20165unsafe extern "C" {
20166    pub fn BNGetMediumLevelILVariableForStackLocationAtInstruction(
20167        func: *mut BNMediumLevelILFunction,
20168        offset: i64,
20169        instr: usize,
20170    ) -> BNVariable;
20171}
20172unsafe extern "C" {
20173    pub fn BNGetMediumLevelILVariableForStackLocationAfterInstruction(
20174        func: *mut BNMediumLevelILFunction,
20175        offset: i64,
20176        instr: usize,
20177    ) -> BNVariable;
20178}
20179unsafe extern "C" {
20180    pub fn BNGetMediumLevelILRegisterValueAtInstruction(
20181        func: *mut BNMediumLevelILFunction,
20182        reg: u32,
20183        instr: usize,
20184    ) -> BNRegisterValue;
20185}
20186unsafe extern "C" {
20187    pub fn BNGetMediumLevelILRegisterValueAfterInstruction(
20188        func: *mut BNMediumLevelILFunction,
20189        reg: u32,
20190        instr: usize,
20191    ) -> BNRegisterValue;
20192}
20193unsafe extern "C" {
20194    pub fn BNGetMediumLevelILPossibleRegisterValuesAtInstruction(
20195        func: *mut BNMediumLevelILFunction,
20196        reg: u32,
20197        instr: usize,
20198        options: *mut BNDataFlowQueryOption,
20199        optionCount: usize,
20200    ) -> BNPossibleValueSet;
20201}
20202unsafe extern "C" {
20203    pub fn BNGetMediumLevelILPossibleRegisterValuesAfterInstruction(
20204        func: *mut BNMediumLevelILFunction,
20205        reg: u32,
20206        instr: usize,
20207        options: *mut BNDataFlowQueryOption,
20208        optionCount: usize,
20209    ) -> BNPossibleValueSet;
20210}
20211unsafe extern "C" {
20212    pub fn BNGetMediumLevelILFlagValueAtInstruction(
20213        func: *mut BNMediumLevelILFunction,
20214        flag: u32,
20215        instr: usize,
20216    ) -> BNRegisterValue;
20217}
20218unsafe extern "C" {
20219    pub fn BNGetMediumLevelILFlagValueAfterInstruction(
20220        func: *mut BNMediumLevelILFunction,
20221        flag: u32,
20222        instr: usize,
20223    ) -> BNRegisterValue;
20224}
20225unsafe extern "C" {
20226    pub fn BNGetMediumLevelILPossibleFlagValuesAtInstruction(
20227        func: *mut BNMediumLevelILFunction,
20228        flag: u32,
20229        instr: usize,
20230        options: *mut BNDataFlowQueryOption,
20231        optionCount: usize,
20232    ) -> BNPossibleValueSet;
20233}
20234unsafe extern "C" {
20235    pub fn BNGetMediumLevelILPossibleFlagValuesAfterInstruction(
20236        func: *mut BNMediumLevelILFunction,
20237        flag: u32,
20238        instr: usize,
20239        options: *mut BNDataFlowQueryOption,
20240        optionCount: usize,
20241    ) -> BNPossibleValueSet;
20242}
20243unsafe extern "C" {
20244    pub fn BNGetMediumLevelILStackContentsAtInstruction(
20245        func: *mut BNMediumLevelILFunction,
20246        offset: i64,
20247        len: usize,
20248        instr: usize,
20249    ) -> BNRegisterValue;
20250}
20251unsafe extern "C" {
20252    pub fn BNGetMediumLevelILStackContentsAfterInstruction(
20253        func: *mut BNMediumLevelILFunction,
20254        offset: i64,
20255        len: usize,
20256        instr: usize,
20257    ) -> BNRegisterValue;
20258}
20259unsafe extern "C" {
20260    pub fn BNGetMediumLevelILPossibleStackContentsAtInstruction(
20261        func: *mut BNMediumLevelILFunction,
20262        offset: i64,
20263        len: usize,
20264        instr: usize,
20265        options: *mut BNDataFlowQueryOption,
20266        optionCount: usize,
20267    ) -> BNPossibleValueSet;
20268}
20269unsafe extern "C" {
20270    pub fn BNGetMediumLevelILPossibleStackContentsAfterInstruction(
20271        func: *mut BNMediumLevelILFunction,
20272        offset: i64,
20273        len: usize,
20274        instr: usize,
20275        options: *mut BNDataFlowQueryOption,
20276        optionCount: usize,
20277    ) -> BNPossibleValueSet;
20278}
20279unsafe extern "C" {
20280    pub fn BNGetMediumLevelILBranchDependence(
20281        func: *mut BNMediumLevelILFunction,
20282        curInstr: usize,
20283        branchInstr: usize,
20284    ) -> BNILBranchDependence;
20285}
20286unsafe extern "C" {
20287    pub fn BNGetAllMediumLevelILBranchDependence(
20288        func: *mut BNMediumLevelILFunction,
20289        instr: usize,
20290        count: *mut usize,
20291    ) -> *mut BNILBranchInstructionAndDependence;
20292}
20293unsafe extern "C" {
20294    pub fn BNFreeILBranchDependenceList(branches: *mut BNILBranchInstructionAndDependence);
20295}
20296unsafe extern "C" {
20297    pub fn BNGetLowLevelILForMediumLevelIL(
20298        func: *mut BNMediumLevelILFunction,
20299    ) -> *mut BNLowLevelILFunction;
20300}
20301unsafe extern "C" {
20302    pub fn BNGetLowLevelILInstructionIndex(
20303        func: *mut BNMediumLevelILFunction,
20304        instr: usize,
20305    ) -> usize;
20306}
20307unsafe extern "C" {
20308    pub fn BNGetLowLevelILExprIndex(func: *mut BNMediumLevelILFunction, expr: usize) -> usize;
20309}
20310unsafe extern "C" {
20311    pub fn BNGetLowLevelILExprIndexes(
20312        func: *mut BNMediumLevelILFunction,
20313        expr: usize,
20314        count: *mut usize,
20315    ) -> *mut usize;
20316}
20317unsafe extern "C" {
20318    pub fn BNGetHighLevelILForMediumLevelIL(
20319        func: *mut BNMediumLevelILFunction,
20320    ) -> *mut BNHighLevelILFunction;
20321}
20322unsafe extern "C" {
20323    pub fn BNGetHighLevelILInstructionIndex(
20324        func: *mut BNMediumLevelILFunction,
20325        instr: usize,
20326    ) -> usize;
20327}
20328unsafe extern "C" {
20329    pub fn BNGetHighLevelILExprIndex(func: *mut BNMediumLevelILFunction, expr: usize) -> usize;
20330}
20331unsafe extern "C" {
20332    pub fn BNGetHighLevelILExprIndexes(
20333        func: *mut BNMediumLevelILFunction,
20334        expr: usize,
20335        count: *mut usize,
20336    ) -> *mut usize;
20337}
20338unsafe extern "C" {
20339    pub fn BNGetMediumLevelILExprType(
20340        func: *mut BNMediumLevelILFunction,
20341        expr: usize,
20342    ) -> BNTypeWithConfidence;
20343}
20344unsafe extern "C" {
20345    pub fn BNSetMediumLevelILExprType(
20346        func: *mut BNMediumLevelILFunction,
20347        expr: usize,
20348        type_: *mut BNTypeWithConfidence,
20349    );
20350}
20351unsafe extern "C" {
20352    #[doc = " High-level IL"]
20353    pub fn BNCreateHighLevelILFunction(
20354        arch: *mut BNArchitecture,
20355        func: *mut BNFunction,
20356    ) -> *mut BNHighLevelILFunction;
20357}
20358unsafe extern "C" {
20359    pub fn BNNewHighLevelILFunctionReference(
20360        func: *mut BNHighLevelILFunction,
20361    ) -> *mut BNHighLevelILFunction;
20362}
20363unsafe extern "C" {
20364    pub fn BNFreeHighLevelILFunction(func: *mut BNHighLevelILFunction);
20365}
20366unsafe extern "C" {
20367    pub fn BNGetHighLevelILOwnerFunction(func: *mut BNHighLevelILFunction) -> *mut BNFunction;
20368}
20369unsafe extern "C" {
20370    pub fn BNHighLevelILGetCurrentAddress(func: *mut BNHighLevelILFunction) -> u64;
20371}
20372unsafe extern "C" {
20373    pub fn BNHighLevelILSetCurrentAddress(
20374        func: *mut BNHighLevelILFunction,
20375        arch: *mut BNArchitecture,
20376        addr: u64,
20377    );
20378}
20379unsafe extern "C" {
20380    pub fn BNHighLevelILAddExpr(
20381        func: *mut BNHighLevelILFunction,
20382        operation: BNHighLevelILOperation,
20383        size: usize,
20384        a: u64,
20385        b: u64,
20386        c: u64,
20387        d: u64,
20388        e: u64,
20389    ) -> usize;
20390}
20391unsafe extern "C" {
20392    pub fn BNHighLevelILAddExprWithLocation(
20393        func: *mut BNHighLevelILFunction,
20394        operation: BNHighLevelILOperation,
20395        addr: u64,
20396        sourceOperand: u32,
20397        size: usize,
20398        a: u64,
20399        b: u64,
20400        c: u64,
20401        d: u64,
20402        e: u64,
20403    ) -> usize;
20404}
20405unsafe extern "C" {
20406    pub fn BNGetHighLevelILRootExpr(func: *mut BNHighLevelILFunction) -> usize;
20407}
20408unsafe extern "C" {
20409    pub fn BNSetHighLevelILRootExpr(func: *mut BNHighLevelILFunction, expr: usize);
20410}
20411unsafe extern "C" {
20412    pub fn BNFinalizeHighLevelILFunction(func: *mut BNHighLevelILFunction);
20413}
20414unsafe extern "C" {
20415    pub fn BNGenerateHighLevelILSSAForm(
20416        func: *mut BNHighLevelILFunction,
20417        aliases: *mut BNVariable,
20418        aliasCount: usize,
20419    );
20420}
20421unsafe extern "C" {
20422    pub fn BNHighLevelILAddOperandList(
20423        func: *mut BNHighLevelILFunction,
20424        operands: *mut u64,
20425        count: usize,
20426    ) -> usize;
20427}
20428unsafe extern "C" {
20429    pub fn BNHighLevelILGetOperandList(
20430        func: *mut BNHighLevelILFunction,
20431        expr: usize,
20432        operand: usize,
20433        count: *mut usize,
20434    ) -> *mut u64;
20435}
20436unsafe extern "C" {
20437    pub fn BNHighLevelILFreeOperandList(operands: *mut u64);
20438}
20439unsafe extern "C" {
20440    pub fn BNHighLevelILGetOperand(func: *mut BNHighLevelILFunction, offset: usize) -> u64;
20441}
20442unsafe extern "C" {
20443    pub fn BNCacheHighLevelILPossibleValueSet(
20444        func: *mut BNHighLevelILFunction,
20445        pvs: *mut BNPossibleValueSet,
20446    ) -> usize;
20447}
20448unsafe extern "C" {
20449    pub fn BNGetCachedHighLevelILPossibleValueSet(
20450        func: *mut BNHighLevelILFunction,
20451        idx: usize,
20452    ) -> BNPossibleValueSet;
20453}
20454unsafe extern "C" {
20455    pub fn BNGetHighLevelILByIndex(
20456        func: *mut BNHighLevelILFunction,
20457        i: usize,
20458        asFullAst: bool,
20459    ) -> BNHighLevelILInstruction;
20460}
20461unsafe extern "C" {
20462    pub fn BNGetHighLevelILIndexForInstruction(func: *mut BNHighLevelILFunction, i: usize)
20463    -> usize;
20464}
20465unsafe extern "C" {
20466    pub fn BNGetHighLevelILInstructionForExpr(
20467        func: *mut BNHighLevelILFunction,
20468        expr: usize,
20469    ) -> usize;
20470}
20471unsafe extern "C" {
20472    pub fn BNGetHighLevelILInstructionCount(func: *mut BNHighLevelILFunction) -> usize;
20473}
20474unsafe extern "C" {
20475    pub fn BNGetHighLevelILExprCount(func: *mut BNHighLevelILFunction) -> usize;
20476}
20477unsafe extern "C" {
20478    pub fn BNGetMediumLevelILForHighLevelILFunction(
20479        func: *mut BNHighLevelILFunction,
20480    ) -> *mut BNMediumLevelILFunction;
20481}
20482unsafe extern "C" {
20483    pub fn BNGetMediumLevelILExprIndexFromHighLevelIL(
20484        func: *mut BNHighLevelILFunction,
20485        expr: usize,
20486    ) -> usize;
20487}
20488unsafe extern "C" {
20489    pub fn BNGetMediumLevelILExprIndexesFromHighLevelIL(
20490        func: *mut BNHighLevelILFunction,
20491        expr: usize,
20492        count: *mut usize,
20493    ) -> *mut usize;
20494}
20495unsafe extern "C" {
20496    pub fn BNUpdateHighLevelILOperand(
20497        func: *mut BNHighLevelILFunction,
20498        instr: usize,
20499        operandIndex: usize,
20500        value: u64,
20501    );
20502}
20503unsafe extern "C" {
20504    pub fn BNReplaceHighLevelILExpr(func: *mut BNHighLevelILFunction, expr: usize, newExpr: usize);
20505}
20506unsafe extern "C" {
20507    pub fn BNSetHighLevelILExprAttributes(
20508        func: *mut BNHighLevelILFunction,
20509        expr: usize,
20510        attributes: u32,
20511    );
20512}
20513unsafe extern "C" {
20514    pub fn BNGetHighLevelILExprText(
20515        func: *mut BNHighLevelILFunction,
20516        expr: usize,
20517        asFullAst: bool,
20518        count: *mut usize,
20519        settings: *mut BNDisassemblySettings,
20520    ) -> *mut BNDisassemblyTextLine;
20521}
20522unsafe extern "C" {
20523    pub fn BNGetHighLevelILExprType(
20524        func: *mut BNHighLevelILFunction,
20525        expr: usize,
20526    ) -> BNTypeWithConfidence;
20527}
20528unsafe extern "C" {
20529    pub fn BNSetHighLevelILExprType(
20530        func: *mut BNHighLevelILFunction,
20531        expr: usize,
20532        type_: *mut BNTypeWithConfidence,
20533    );
20534}
20535unsafe extern "C" {
20536    pub fn BNGetHighLevelILBasicBlockList(
20537        func: *mut BNHighLevelILFunction,
20538        count: *mut usize,
20539    ) -> *mut *mut BNBasicBlock;
20540}
20541unsafe extern "C" {
20542    pub fn BNGetHighLevelILBasicBlockForInstruction(
20543        func: *mut BNHighLevelILFunction,
20544        i: usize,
20545    ) -> *mut BNBasicBlock;
20546}
20547unsafe extern "C" {
20548    pub fn BNGetHighLevelILSSAForm(func: *mut BNHighLevelILFunction) -> *mut BNHighLevelILFunction;
20549}
20550unsafe extern "C" {
20551    pub fn BNGetHighLevelILNonSSAForm(
20552        func: *mut BNHighLevelILFunction,
20553    ) -> *mut BNHighLevelILFunction;
20554}
20555unsafe extern "C" {
20556    pub fn BNGetHighLevelILSSAInstructionIndex(
20557        func: *mut BNHighLevelILFunction,
20558        instr: usize,
20559    ) -> usize;
20560}
20561unsafe extern "C" {
20562    pub fn BNGetHighLevelILNonSSAInstructionIndex(
20563        func: *mut BNHighLevelILFunction,
20564        instr: usize,
20565    ) -> usize;
20566}
20567unsafe extern "C" {
20568    pub fn BNGetHighLevelILSSAExprIndex(func: *mut BNHighLevelILFunction, expr: usize) -> usize;
20569}
20570unsafe extern "C" {
20571    pub fn BNGetHighLevelILNonSSAExprIndex(func: *mut BNHighLevelILFunction, expr: usize) -> usize;
20572}
20573unsafe extern "C" {
20574    pub fn BNGetHighLevelILSSAVarDefinition(
20575        func: *mut BNHighLevelILFunction,
20576        var: *const BNVariable,
20577        version: usize,
20578    ) -> usize;
20579}
20580unsafe extern "C" {
20581    pub fn BNGetHighLevelILSSAMemoryDefinition(
20582        func: *mut BNHighLevelILFunction,
20583        version: usize,
20584    ) -> usize;
20585}
20586unsafe extern "C" {
20587    pub fn BNGetHighLevelILSSAVarUses(
20588        func: *mut BNHighLevelILFunction,
20589        var: *const BNVariable,
20590        version: usize,
20591        count: *mut usize,
20592    ) -> *mut usize;
20593}
20594unsafe extern "C" {
20595    pub fn BNGetHighLevelILSSAMemoryUses(
20596        func: *mut BNHighLevelILFunction,
20597        version: usize,
20598        count: *mut usize,
20599    ) -> *mut usize;
20600}
20601unsafe extern "C" {
20602    pub fn BNIsHighLevelILSSAVarLive(
20603        func: *mut BNHighLevelILFunction,
20604        var: *const BNVariable,
20605        version: usize,
20606    ) -> bool;
20607}
20608unsafe extern "C" {
20609    pub fn BNIsHighLevelILSSAVarLiveAt(
20610        func: *mut BNHighLevelILFunction,
20611        var: *const BNVariable,
20612        version: usize,
20613        instr: usize,
20614    ) -> bool;
20615}
20616unsafe extern "C" {
20617    pub fn BNIsHighLevelILVarLiveAt(
20618        func: *mut BNHighLevelILFunction,
20619        var: *const BNVariable,
20620        instr: usize,
20621    ) -> bool;
20622}
20623unsafe extern "C" {
20624    pub fn BNHighLevelILHasSideEffects(func: *mut BNHighLevelILFunction, exprIndex: usize) -> bool;
20625}
20626unsafe extern "C" {
20627    pub fn BNGetHighLevelILExprScopeType(
20628        func: *mut BNHighLevelILFunction,
20629        exprIndex: usize,
20630    ) -> BNScopeType;
20631}
20632unsafe extern "C" {
20633    pub fn BNGetHighLevelILVariables(
20634        func: *mut BNHighLevelILFunction,
20635        count: *mut usize,
20636    ) -> *mut BNVariable;
20637}
20638unsafe extern "C" {
20639    pub fn BNGetHighLevelILAliasedVariables(
20640        func: *mut BNHighLevelILFunction,
20641        count: *mut usize,
20642    ) -> *mut BNVariable;
20643}
20644unsafe extern "C" {
20645    pub fn BNGetHighLevelILVariableSSAVersions(
20646        func: *mut BNHighLevelILFunction,
20647        var: *const BNVariable,
20648        count: *mut usize,
20649    ) -> *mut usize;
20650}
20651unsafe extern "C" {
20652    pub fn BNGetHighLevelILVariableDefinitions(
20653        func: *mut BNHighLevelILFunction,
20654        var: *const BNVariable,
20655        count: *mut usize,
20656    ) -> *mut usize;
20657}
20658unsafe extern "C" {
20659    pub fn BNGetHighLevelILVariableUses(
20660        func: *mut BNHighLevelILFunction,
20661        var: *const BNVariable,
20662        count: *mut usize,
20663    ) -> *mut usize;
20664}
20665unsafe extern "C" {
20666    pub fn BNGetHighLevelILSSAVarVersionAtILInstruction(
20667        func: *mut BNHighLevelILFunction,
20668        var: *const BNVariable,
20669        instr: usize,
20670    ) -> usize;
20671}
20672unsafe extern "C" {
20673    pub fn BNGetHighLevelILSSAMemoryVersionAtILInstruction(
20674        func: *mut BNHighLevelILFunction,
20675        instr: usize,
20676    ) -> usize;
20677}
20678unsafe extern "C" {
20679    pub fn BNGetHighLevelILExprIndexForLabel(func: *mut BNHighLevelILFunction, label: u64)
20680    -> usize;
20681}
20682unsafe extern "C" {
20683    pub fn BNGetHighLevelILUsesForLabel(
20684        func: *mut BNHighLevelILFunction,
20685        label: u64,
20686        count: *mut usize,
20687    ) -> *mut usize;
20688}
20689unsafe extern "C" {
20690    pub fn BNHighLevelILExprLessThan(
20691        leftFunc: *mut BNHighLevelILFunction,
20692        leftExpr: usize,
20693        rightFunc: *mut BNHighLevelILFunction,
20694        rightExpr: usize,
20695    ) -> bool;
20696}
20697unsafe extern "C" {
20698    pub fn BNHighLevelILExprEqual(
20699        leftFunc: *mut BNHighLevelILFunction,
20700        leftExpr: usize,
20701        rightFunc: *mut BNHighLevelILFunction,
20702        rightExpr: usize,
20703    ) -> bool;
20704}
20705unsafe extern "C" {
20706    pub fn BNSetHighLevelILDerivedStringReferenceForExpr(
20707        func: *mut BNHighLevelILFunction,
20708        expr: usize,
20709        str_: *mut BNDerivedString,
20710    );
20711}
20712unsafe extern "C" {
20713    pub fn BNRemoveHighLevelILDerivedStringReferenceForExpr(
20714        func: *mut BNHighLevelILFunction,
20715        expr: usize,
20716    );
20717}
20718unsafe extern "C" {
20719    pub fn BNGetHighLevelILDerivedStringReferenceForExpr(
20720        func: *mut BNHighLevelILFunction,
20721        expr: usize,
20722        out: *mut BNDerivedString,
20723    ) -> bool;
20724}
20725unsafe extern "C" {
20726    #[doc = " Type Libraries"]
20727    pub fn BNNewTypeLibrary(
20728        arch: *mut BNArchitecture,
20729        name: *const ::std::os::raw::c_char,
20730    ) -> *mut BNTypeLibrary;
20731}
20732unsafe extern "C" {
20733    pub fn BNNewTypeLibraryReference(lib: *mut BNTypeLibrary) -> *mut BNTypeLibrary;
20734}
20735unsafe extern "C" {
20736    pub fn BNDuplicateTypeLibrary(lib: *mut BNTypeLibrary) -> *mut BNTypeLibrary;
20737}
20738unsafe extern "C" {
20739    pub fn BNLoadTypeLibraryFromFile(path: *const ::std::os::raw::c_char) -> *mut BNTypeLibrary;
20740}
20741unsafe extern "C" {
20742    pub fn BNTypeLibraryDecompressToFile(
20743        lib: *mut BNTypeLibrary,
20744        output: *const ::std::os::raw::c_char,
20745    ) -> bool;
20746}
20747unsafe extern "C" {
20748    pub fn BNFreeTypeLibrary(lib: *mut BNTypeLibrary);
20749}
20750unsafe extern "C" {
20751    pub fn BNLookupTypeLibraryByName(
20752        arch: *mut BNArchitecture,
20753        name: *const ::std::os::raw::c_char,
20754    ) -> *mut BNTypeLibrary;
20755}
20756unsafe extern "C" {
20757    pub fn BNLookupTypeLibraryByGuid(
20758        arch: *mut BNArchitecture,
20759        guid: *const ::std::os::raw::c_char,
20760    ) -> *mut BNTypeLibrary;
20761}
20762unsafe extern "C" {
20763    pub fn BNGetArchitectureTypeLibraries(
20764        arch: *mut BNArchitecture,
20765        count: *mut usize,
20766    ) -> *mut *mut BNTypeLibrary;
20767}
20768unsafe extern "C" {
20769    pub fn BNFreeTypeLibraryList(lib: *mut *mut BNTypeLibrary, count: usize);
20770}
20771unsafe extern "C" {
20772    pub fn BNFinalizeTypeLibrary(lib: *mut BNTypeLibrary) -> bool;
20773}
20774unsafe extern "C" {
20775    pub fn BNRegisterTypeLibrary(lib: *mut BNTypeLibrary);
20776}
20777unsafe extern "C" {
20778    pub fn BNGetTypeLibraryArchitecture(lib: *mut BNTypeLibrary) -> *mut BNArchitecture;
20779}
20780unsafe extern "C" {
20781    pub fn BNSetTypeLibraryName(lib: *mut BNTypeLibrary, name: *const ::std::os::raw::c_char);
20782}
20783unsafe extern "C" {
20784    pub fn BNGetTypeLibraryName(lib: *mut BNTypeLibrary) -> *mut ::std::os::raw::c_char;
20785}
20786unsafe extern "C" {
20787    pub fn BNAddTypeLibraryAlternateName(
20788        lib: *mut BNTypeLibrary,
20789        name: *const ::std::os::raw::c_char,
20790    );
20791}
20792unsafe extern "C" {
20793    pub fn BNGetTypeLibraryAlternateNames(
20794        lib: *mut BNTypeLibrary,
20795        count: *mut usize,
20796    ) -> *mut *mut ::std::os::raw::c_char;
20797}
20798unsafe extern "C" {
20799    pub fn BNSetTypeLibraryDependencyName(
20800        lib: *mut BNTypeLibrary,
20801        name: *const ::std::os::raw::c_char,
20802    );
20803}
20804unsafe extern "C" {
20805    pub fn BNGetTypeLibraryDependencyName(lib: *mut BNTypeLibrary) -> *mut ::std::os::raw::c_char;
20806}
20807unsafe extern "C" {
20808    pub fn BNSetTypeLibraryGuid(lib: *mut BNTypeLibrary, name: *const ::std::os::raw::c_char);
20809}
20810unsafe extern "C" {
20811    pub fn BNGetTypeLibraryGuid(lib: *mut BNTypeLibrary) -> *mut ::std::os::raw::c_char;
20812}
20813unsafe extern "C" {
20814    pub fn BNClearTypeLibraryPlatforms(lib: *mut BNTypeLibrary);
20815}
20816unsafe extern "C" {
20817    pub fn BNAddTypeLibraryPlatform(lib: *mut BNTypeLibrary, platform: *mut BNPlatform);
20818}
20819unsafe extern "C" {
20820    pub fn BNGetTypeLibraryPlatforms(
20821        lib: *mut BNTypeLibrary,
20822        count: *mut usize,
20823    ) -> *mut *mut ::std::os::raw::c_char;
20824}
20825unsafe extern "C" {
20826    pub fn BNTypeLibraryStoreMetadata(
20827        lib: *mut BNTypeLibrary,
20828        key: *const ::std::os::raw::c_char,
20829        value: *mut BNMetadata,
20830    );
20831}
20832unsafe extern "C" {
20833    pub fn BNTypeLibraryQueryMetadata(
20834        lib: *mut BNTypeLibrary,
20835        key: *const ::std::os::raw::c_char,
20836    ) -> *mut BNMetadata;
20837}
20838unsafe extern "C" {
20839    pub fn BNTypeLibraryGetMetadata(lib: *mut BNTypeLibrary) -> *mut BNMetadata;
20840}
20841unsafe extern "C" {
20842    pub fn BNTypeLibraryRemoveMetadata(lib: *mut BNTypeLibrary, key: *const ::std::os::raw::c_char);
20843}
20844unsafe extern "C" {
20845    pub fn BNGetTypeLibraryTypeContainer(lib: *mut BNTypeLibrary) -> *mut BNTypeContainer;
20846}
20847unsafe extern "C" {
20848    pub fn BNAddTypeLibraryNamedObject(
20849        lib: *mut BNTypeLibrary,
20850        name: *mut BNQualifiedName,
20851        type_: *mut BNType,
20852    );
20853}
20854unsafe extern "C" {
20855    pub fn BNRemoveTypeLibraryNamedObject(lib: *mut BNTypeLibrary, name: *mut BNQualifiedName);
20856}
20857unsafe extern "C" {
20858    pub fn BNAddTypeLibraryNamedType(
20859        lib: *mut BNTypeLibrary,
20860        name: *mut BNQualifiedName,
20861        type_: *mut BNType,
20862    );
20863}
20864unsafe extern "C" {
20865    pub fn BNRemoveTypeLibraryNamedType(lib: *mut BNTypeLibrary, name: *mut BNQualifiedName);
20866}
20867unsafe extern "C" {
20868    pub fn BNAddTypeLibraryNamedTypeSource(
20869        lib: *mut BNTypeLibrary,
20870        name: *mut BNQualifiedName,
20871        source: *const ::std::os::raw::c_char,
20872    );
20873}
20874unsafe extern "C" {
20875    pub fn BNGetTypeLibraryNamedObject(
20876        lib: *mut BNTypeLibrary,
20877        name: *mut BNQualifiedName,
20878    ) -> *mut BNType;
20879}
20880unsafe extern "C" {
20881    pub fn BNGetTypeLibraryNamedType(
20882        lib: *mut BNTypeLibrary,
20883        name: *mut BNQualifiedName,
20884    ) -> *mut BNType;
20885}
20886unsafe extern "C" {
20887    pub fn BNGetTypeLibraryNamedTypeSource(
20888        lib: *mut BNTypeLibrary,
20889        name: *mut BNQualifiedName,
20890    ) -> *mut ::std::os::raw::c_char;
20891}
20892unsafe extern "C" {
20893    pub fn BNGetTypeLibraryNamedObjects(
20894        lib: *mut BNTypeLibrary,
20895        count: *mut usize,
20896    ) -> *mut BNQualifiedNameAndType;
20897}
20898unsafe extern "C" {
20899    pub fn BNGetTypeLibraryNamedTypes(
20900        lib: *mut BNTypeLibrary,
20901        count: *mut usize,
20902    ) -> *mut BNQualifiedNameAndType;
20903}
20904unsafe extern "C" {
20905    pub fn BNWriteTypeLibraryToFile(
20906        lib: *mut BNTypeLibrary,
20907        path: *const ::std::os::raw::c_char,
20908    ) -> bool;
20909}
20910unsafe extern "C" {
20911    pub fn BNAddBinaryViewTypeLibrary(view: *mut BNBinaryView, lib: *mut BNTypeLibrary);
20912}
20913unsafe extern "C" {
20914    pub fn BNGetBinaryViewTypeLibrary(
20915        view: *mut BNBinaryView,
20916        name: *const ::std::os::raw::c_char,
20917    ) -> *mut BNTypeLibrary;
20918}
20919unsafe extern "C" {
20920    pub fn BNGetBinaryViewTypeLibraries(
20921        view: *mut BNBinaryView,
20922        count: *mut usize,
20923    ) -> *mut *mut BNTypeLibrary;
20924}
20925unsafe extern "C" {
20926    pub fn BNBinaryViewImportTypeLibraryType(
20927        view: *mut BNBinaryView,
20928        lib: *mut *mut BNTypeLibrary,
20929        name: *mut BNQualifiedName,
20930    ) -> *mut BNType;
20931}
20932unsafe extern "C" {
20933    pub fn BNBinaryViewImportTypeLibraryObject(
20934        view: *mut BNBinaryView,
20935        lib: *mut *mut BNTypeLibrary,
20936        name: *mut BNQualifiedName,
20937    ) -> *mut BNType;
20938}
20939unsafe extern "C" {
20940    pub fn BNBinaryViewImportTypeLibraryTypeByGuid(
20941        view: *mut BNBinaryView,
20942        guid: *const ::std::os::raw::c_char,
20943    ) -> *mut BNType;
20944}
20945unsafe extern "C" {
20946    pub fn BNBinaryViewGetTypeNameByGuid(
20947        view: *mut BNBinaryView,
20948        guid: *const ::std::os::raw::c_char,
20949    ) -> BNQualifiedName;
20950}
20951unsafe extern "C" {
20952    pub fn BNBinaryViewExportTypeToTypeLibrary(
20953        view: *mut BNBinaryView,
20954        lib: *mut BNTypeLibrary,
20955        name: *mut BNQualifiedName,
20956        type_: *mut BNType,
20957    );
20958}
20959unsafe extern "C" {
20960    pub fn BNBinaryViewExportObjectToTypeLibrary(
20961        view: *mut BNBinaryView,
20962        lib: *mut BNTypeLibrary,
20963        name: *mut BNQualifiedName,
20964        type_: *mut BNType,
20965    );
20966}
20967unsafe extern "C" {
20968    pub fn BNBinaryViewSetManualDependencies(
20969        view: *mut BNBinaryView,
20970        viewTypeNames: *mut BNQualifiedName,
20971        libTypeNames: *mut BNQualifiedName,
20972        libNames: *mut *mut ::std::os::raw::c_char,
20973        count: usize,
20974    );
20975}
20976unsafe extern "C" {
20977    pub fn BNBinaryViewRecordImportedObjectLibrary(
20978        view: *mut BNBinaryView,
20979        tgtPlatform: *mut BNPlatform,
20980        tgtAddr: u64,
20981        lib: *mut BNTypeLibrary,
20982        name: *mut BNQualifiedName,
20983    );
20984}
20985unsafe extern "C" {
20986    pub fn BNBinaryViewLookupImportedObjectLibrary(
20987        view: *mut BNBinaryView,
20988        tgtPlatform: *mut BNPlatform,
20989        tgtAddr: u64,
20990        lib: *mut *mut BNTypeLibrary,
20991        name: *mut BNQualifiedName,
20992    ) -> bool;
20993}
20994unsafe extern "C" {
20995    pub fn BNBinaryViewLookupImportedTypeLibrary(
20996        view: *mut BNBinaryView,
20997        typeName: *const BNQualifiedName,
20998        lib: *mut *mut BNTypeLibrary,
20999        resultName: *mut BNQualifiedName,
21000    ) -> bool;
21001}
21002unsafe extern "C" {
21003    #[doc = " Language Representation"]
21004    pub fn BNRegisterLanguageRepresentationFunctionType(
21005        name: *const ::std::os::raw::c_char,
21006        type_: *mut BNCustomLanguageRepresentationFunctionType,
21007    ) -> *mut BNLanguageRepresentationFunctionType;
21008}
21009unsafe extern "C" {
21010    pub fn BNGetLanguageRepresentationFunctionTypeByName(
21011        name: *const ::std::os::raw::c_char,
21012    ) -> *mut BNLanguageRepresentationFunctionType;
21013}
21014unsafe extern "C" {
21015    pub fn BNGetLanguageRepresentationFunctionTypeList(
21016        count: *mut usize,
21017    ) -> *mut *mut BNLanguageRepresentationFunctionType;
21018}
21019unsafe extern "C" {
21020    pub fn BNFreeLanguageRepresentationFunctionTypeList(
21021        types: *mut *mut BNLanguageRepresentationFunctionType,
21022    );
21023}
21024unsafe extern "C" {
21025    pub fn BNGetLanguageRepresentationFunctionTypeName(
21026        type_: *mut BNLanguageRepresentationFunctionType,
21027    ) -> *mut ::std::os::raw::c_char;
21028}
21029unsafe extern "C" {
21030    pub fn BNCreateLanguageRepresentationFunction(
21031        type_: *mut BNLanguageRepresentationFunctionType,
21032        arch: *mut BNArchitecture,
21033        func: *mut BNFunction,
21034        highLevelIL: *mut BNHighLevelILFunction,
21035    ) -> *mut BNLanguageRepresentationFunction;
21036}
21037unsafe extern "C" {
21038    pub fn BNIsLanguageRepresentationFunctionTypeValid(
21039        type_: *mut BNLanguageRepresentationFunctionType,
21040        view: *mut BNBinaryView,
21041    ) -> bool;
21042}
21043unsafe extern "C" {
21044    pub fn BNGetLanguageRepresentationFunctionTypePrinter(
21045        type_: *mut BNLanguageRepresentationFunctionType,
21046    ) -> *mut BNTypePrinter;
21047}
21048unsafe extern "C" {
21049    pub fn BNGetLanguageRepresentationFunctionTypeParser(
21050        type_: *mut BNLanguageRepresentationFunctionType,
21051    ) -> *mut BNTypeParser;
21052}
21053unsafe extern "C" {
21054    pub fn BNGetLanguageRepresentationFunctionTypeLineFormatter(
21055        type_: *mut BNLanguageRepresentationFunctionType,
21056    ) -> *mut BNLineFormatter;
21057}
21058unsafe extern "C" {
21059    pub fn BNGetLanguageRepresentationFunctionTypeFunctionTypeTokens(
21060        type_: *mut BNLanguageRepresentationFunctionType,
21061        func: *mut BNFunction,
21062        settings: *mut BNDisassemblySettings,
21063        count: *mut usize,
21064    ) -> *mut BNDisassemblyTextLine;
21065}
21066unsafe extern "C" {
21067    pub fn BNCreateCustomLanguageRepresentationFunction(
21068        type_: *mut BNLanguageRepresentationFunctionType,
21069        arch: *mut BNArchitecture,
21070        func: *mut BNFunction,
21071        highLevelIL: *mut BNHighLevelILFunction,
21072        callbacks: *mut BNCustomLanguageRepresentationFunction,
21073    ) -> *mut BNLanguageRepresentationFunction;
21074}
21075unsafe extern "C" {
21076    pub fn BNNewLanguageRepresentationFunctionReference(
21077        func: *mut BNLanguageRepresentationFunction,
21078    ) -> *mut BNLanguageRepresentationFunction;
21079}
21080unsafe extern "C" {
21081    pub fn BNFreeLanguageRepresentationFunction(func: *mut BNLanguageRepresentationFunction);
21082}
21083unsafe extern "C" {
21084    pub fn BNGetLanguageRepresentationType(
21085        func: *mut BNLanguageRepresentationFunction,
21086    ) -> *mut BNLanguageRepresentationFunctionType;
21087}
21088unsafe extern "C" {
21089    pub fn BNGetLanguageRepresentationArchitecture(
21090        func: *mut BNLanguageRepresentationFunction,
21091    ) -> *mut BNArchitecture;
21092}
21093unsafe extern "C" {
21094    pub fn BNGetLanguageRepresentationOwnerFunction(
21095        func: *mut BNLanguageRepresentationFunction,
21096    ) -> *mut BNFunction;
21097}
21098unsafe extern "C" {
21099    pub fn BNGetLanguageRepresentationILFunction(
21100        func: *mut BNLanguageRepresentationFunction,
21101    ) -> *mut BNHighLevelILFunction;
21102}
21103unsafe extern "C" {
21104    pub fn BNGetLanguageRepresentationFunctionExprText(
21105        func: *mut BNLanguageRepresentationFunction,
21106        il: *mut BNHighLevelILFunction,
21107        exprIndex: usize,
21108        settings: *mut BNDisassemblySettings,
21109        asFullAst: bool,
21110        precedence: BNOperatorPrecedence,
21111        statement: bool,
21112        count: *mut usize,
21113    ) -> *mut BNDisassemblyTextLine;
21114}
21115unsafe extern "C" {
21116    pub fn BNGetLanguageRepresentationFunctionLinearLines(
21117        func: *mut BNLanguageRepresentationFunction,
21118        il: *mut BNHighLevelILFunction,
21119        exprIndex: usize,
21120        settings: *mut BNDisassemblySettings,
21121        asFullAst: bool,
21122        count: *mut usize,
21123    ) -> *mut BNDisassemblyTextLine;
21124}
21125unsafe extern "C" {
21126    pub fn BNGetLanguageRepresentationFunctionBlockLines(
21127        func: *mut BNLanguageRepresentationFunction,
21128        block: *mut BNBasicBlock,
21129        settings: *mut BNDisassemblySettings,
21130        count: *mut usize,
21131    ) -> *mut BNDisassemblyTextLine;
21132}
21133unsafe extern "C" {
21134    pub fn BNGetLanguageRepresentationFunctionHighlight(
21135        func: *mut BNLanguageRepresentationFunction,
21136        block: *mut BNBasicBlock,
21137    ) -> BNHighlightColor;
21138}
21139unsafe extern "C" {
21140    pub fn BNGetLanguageRepresentationFunctionCommentStartString(
21141        func: *mut BNLanguageRepresentationFunction,
21142    ) -> *mut ::std::os::raw::c_char;
21143}
21144unsafe extern "C" {
21145    pub fn BNGetLanguageRepresentationFunctionCommentEndString(
21146        func: *mut BNLanguageRepresentationFunction,
21147    ) -> *mut ::std::os::raw::c_char;
21148}
21149unsafe extern "C" {
21150    pub fn BNGetLanguageRepresentationFunctionAnnotationStartString(
21151        func: *mut BNLanguageRepresentationFunction,
21152    ) -> *mut ::std::os::raw::c_char;
21153}
21154unsafe extern "C" {
21155    pub fn BNGetLanguageRepresentationFunctionAnnotationEndString(
21156        func: *mut BNLanguageRepresentationFunction,
21157    ) -> *mut ::std::os::raw::c_char;
21158}
21159unsafe extern "C" {
21160    pub fn BNNewFieldResolutionInfoReference(
21161        info: *mut BNFieldResolutionInfo,
21162    ) -> *mut BNFieldResolutionInfo;
21163}
21164unsafe extern "C" {
21165    pub fn BNFreeFieldResolutionInfo(info: *mut BNFieldResolutionInfo);
21166}
21167unsafe extern "C" {
21168    #[doc = " Types"]
21169    pub fn BNTypesEqual(a: *mut BNType, b: *mut BNType) -> bool;
21170}
21171unsafe extern "C" {
21172    pub fn BNTypesNotEqual(a: *mut BNType, b: *mut BNType) -> bool;
21173}
21174unsafe extern "C" {
21175    pub fn BNCreateVoidType() -> *mut BNType;
21176}
21177unsafe extern "C" {
21178    pub fn BNCreateBoolType() -> *mut BNType;
21179}
21180unsafe extern "C" {
21181    pub fn BNCreateIntegerType(
21182        width: usize,
21183        sign: *mut BNBoolWithConfidence,
21184        altName: *const ::std::os::raw::c_char,
21185    ) -> *mut BNType;
21186}
21187unsafe extern "C" {
21188    pub fn BNCreateFloatType(width: usize, altName: *const ::std::os::raw::c_char) -> *mut BNType;
21189}
21190unsafe extern "C" {
21191    pub fn BNCreateWideCharType(
21192        width: usize,
21193        altName: *const ::std::os::raw::c_char,
21194    ) -> *mut BNType;
21195}
21196unsafe extern "C" {
21197    pub fn BNCreateStructureType(s: *mut BNStructure) -> *mut BNType;
21198}
21199unsafe extern "C" {
21200    pub fn BNCreateEnumerationType(
21201        arch: *mut BNArchitecture,
21202        e: *mut BNEnumeration,
21203        width: usize,
21204        isSigned: *mut BNBoolWithConfidence,
21205    ) -> *mut BNType;
21206}
21207unsafe extern "C" {
21208    pub fn BNCreateEnumerationTypeOfWidth(
21209        e: *mut BNEnumeration,
21210        width: usize,
21211        isSigned: *mut BNBoolWithConfidence,
21212    ) -> *mut BNType;
21213}
21214unsafe extern "C" {
21215    pub fn BNCreatePointerType(
21216        arch: *mut BNArchitecture,
21217        type_: *const BNTypeWithConfidence,
21218        cnst: *mut BNBoolWithConfidence,
21219        vltl: *mut BNBoolWithConfidence,
21220        refType: BNReferenceType,
21221    ) -> *mut BNType;
21222}
21223unsafe extern "C" {
21224    pub fn BNCreatePointerTypeOfWidth(
21225        width: usize,
21226        type_: *const BNTypeWithConfidence,
21227        cnst: *mut BNBoolWithConfidence,
21228        vltl: *mut BNBoolWithConfidence,
21229        refType: BNReferenceType,
21230    ) -> *mut BNType;
21231}
21232unsafe extern "C" {
21233    pub fn BNCreateFragmentType(
21234        width: usize,
21235        type_: *const BNTypeWithConfidence,
21236        offset: u64,
21237        endianness: BNEndianness,
21238    ) -> *mut BNType;
21239}
21240unsafe extern "C" {
21241    pub fn BNCreateFragmentTypeBits(
21242        width: usize,
21243        type_: *const BNTypeWithConfidence,
21244        originalFragmentOffsetBytes: u64,
21245        originalFragmentWidthBytes: usize,
21246        endianness: BNEndianness,
21247        fragmentStartBit: usize,
21248        fragmentWidthBits: usize,
21249        fragmentTruncatedStartBits: usize,
21250        wrapBit: usize,
21251    ) -> *mut BNType;
21252}
21253unsafe extern "C" {
21254    pub fn BNCreateArrayType(type_: *const BNTypeWithConfidence, elem: u64) -> *mut BNType;
21255}
21256unsafe extern "C" {
21257    pub fn BNCreateFunctionType(
21258        returnValue: *mut BNTypeWithConfidence,
21259        callingConvention: *mut BNCallingConventionWithConfidence,
21260        params: *mut BNFunctionParameter,
21261        paramCount: usize,
21262        varArg: *mut BNBoolWithConfidence,
21263        canReturn: *mut BNBoolWithConfidence,
21264        stackAdjust: *mut BNOffsetWithConfidence,
21265        regStackAdjustRegs: *mut u32,
21266        regStackAdjustValues: *mut BNOffsetWithConfidence,
21267        regStackAdjustCount: usize,
21268        returnRegs: *mut BNRegisterSetWithConfidence,
21269        ft: BNNameType,
21270        pure_: *mut BNBoolWithConfidence,
21271    ) -> *mut BNType;
21272}
21273unsafe extern "C" {
21274    pub fn BNCreateVarArgsType() -> *mut BNType;
21275}
21276unsafe extern "C" {
21277    pub fn BNCreateValueType(value: *const ::std::os::raw::c_char) -> *mut BNType;
21278}
21279unsafe extern "C" {
21280    pub fn BNGetNameTypeString(classFunctionType: BNNameType) -> *mut ::std::os::raw::c_char;
21281}
21282unsafe extern "C" {
21283    pub fn BNNewTypeReference(type_: *mut BNType) -> *mut BNType;
21284}
21285unsafe extern "C" {
21286    pub fn BNDuplicateType(type_: *mut BNType) -> *mut BNType;
21287}
21288unsafe extern "C" {
21289    pub fn BNGetTypeAndName(
21290        type_: *mut BNType,
21291        name: *mut BNQualifiedName,
21292        escaping: BNTokenEscapingType,
21293    ) -> *mut ::std::os::raw::c_char;
21294}
21295unsafe extern "C" {
21296    pub fn BNFreeType(type_: *mut BNType);
21297}
21298unsafe extern "C" {
21299    pub fn BNFreeTypeList(types: *mut *mut BNType, count: usize);
21300}
21301unsafe extern "C" {
21302    pub fn BNTypeSetIgnored(type_: *mut BNType, ignored: bool) -> *mut BNType;
21303}
21304unsafe extern "C" {
21305    pub fn BNCreateTypeBuilderFromType(type_: *mut BNType) -> *mut BNTypeBuilder;
21306}
21307unsafe extern "C" {
21308    pub fn BNCreateVoidTypeBuilder() -> *mut BNTypeBuilder;
21309}
21310unsafe extern "C" {
21311    pub fn BNCreateBoolTypeBuilder() -> *mut BNTypeBuilder;
21312}
21313unsafe extern "C" {
21314    pub fn BNCreateIntegerTypeBuilder(
21315        width: usize,
21316        sign: *mut BNBoolWithConfidence,
21317        altName: *const ::std::os::raw::c_char,
21318    ) -> *mut BNTypeBuilder;
21319}
21320unsafe extern "C" {
21321    pub fn BNCreateFloatTypeBuilder(
21322        width: usize,
21323        altName: *const ::std::os::raw::c_char,
21324    ) -> *mut BNTypeBuilder;
21325}
21326unsafe extern "C" {
21327    pub fn BNCreateWideCharTypeBuilder(
21328        width: usize,
21329        altName: *const ::std::os::raw::c_char,
21330    ) -> *mut BNTypeBuilder;
21331}
21332unsafe extern "C" {
21333    pub fn BNCreateStructureTypeBuilder(s: *mut BNStructure) -> *mut BNTypeBuilder;
21334}
21335unsafe extern "C" {
21336    pub fn BNCreateStructureTypeBuilderWithBuilder(
21337        s: *mut BNStructureBuilder,
21338    ) -> *mut BNTypeBuilder;
21339}
21340unsafe extern "C" {
21341    pub fn BNCreateEnumerationTypeBuilder(
21342        arch: *mut BNArchitecture,
21343        e: *mut BNEnumeration,
21344        width: usize,
21345        isSigned: *mut BNBoolWithConfidence,
21346    ) -> *mut BNTypeBuilder;
21347}
21348unsafe extern "C" {
21349    pub fn BNCreateEnumerationTypeBuilderWithBuilder(
21350        arch: *mut BNArchitecture,
21351        e: *mut BNEnumerationBuilder,
21352        width: usize,
21353        isSigned: *mut BNBoolWithConfidence,
21354    ) -> *mut BNTypeBuilder;
21355}
21356unsafe extern "C" {
21357    pub fn BNCreatePointerTypeBuilder(
21358        arch: *mut BNArchitecture,
21359        type_: *const BNTypeWithConfidence,
21360        cnst: *mut BNBoolWithConfidence,
21361        vltl: *mut BNBoolWithConfidence,
21362        refType: BNReferenceType,
21363    ) -> *mut BNTypeBuilder;
21364}
21365unsafe extern "C" {
21366    pub fn BNCreatePointerTypeBuilderOfWidth(
21367        width: usize,
21368        type_: *const BNTypeWithConfidence,
21369        cnst: *mut BNBoolWithConfidence,
21370        vltl: *mut BNBoolWithConfidence,
21371        refType: BNReferenceType,
21372    ) -> *mut BNTypeBuilder;
21373}
21374unsafe extern "C" {
21375    pub fn BNCreateFragmentTypeBuilder(
21376        width: usize,
21377        type_: *const BNTypeWithConfidence,
21378        offset: u64,
21379        endianness: BNEndianness,
21380    ) -> *mut BNTypeBuilder;
21381}
21382unsafe extern "C" {
21383    pub fn BNCreateFragmentTypeBuilderBits(
21384        width: usize,
21385        type_: *const BNTypeWithConfidence,
21386        originalFragmentOffsetBytes: u64,
21387        originalFragmentWidthBytes: usize,
21388        endianness: BNEndianness,
21389        fragmentStartBit: usize,
21390        fragmentWidthBits: usize,
21391        fragmentTruncatedStartBits: usize,
21392        wrapBit: usize,
21393    ) -> *mut BNTypeBuilder;
21394}
21395unsafe extern "C" {
21396    pub fn BNCreateArrayTypeBuilder(
21397        type_: *const BNTypeWithConfidence,
21398        elem: u64,
21399    ) -> *mut BNTypeBuilder;
21400}
21401unsafe extern "C" {
21402    pub fn BNCreateFunctionTypeBuilder(
21403        returnValue: *mut BNTypeWithConfidence,
21404        callingConvention: *mut BNCallingConventionWithConfidence,
21405        params: *mut BNFunctionParameter,
21406        paramCount: usize,
21407        varArg: *mut BNBoolWithConfidence,
21408        canReturn: *mut BNBoolWithConfidence,
21409        stackAdjust: *mut BNOffsetWithConfidence,
21410        regStackAdjustRegs: *mut u32,
21411        regStackAdjustValues: *mut BNOffsetWithConfidence,
21412        regStackAdjustCount: usize,
21413        returnRegs: *mut BNRegisterSetWithConfidence,
21414        ft: BNNameType,
21415        pure_: *mut BNBoolWithConfidence,
21416    ) -> *mut BNTypeBuilder;
21417}
21418unsafe extern "C" {
21419    pub fn BNCreateVarArgsTypeBuilder() -> *mut BNTypeBuilder;
21420}
21421unsafe extern "C" {
21422    pub fn BNCreateValueTypeBuilder(value: *const ::std::os::raw::c_char) -> *mut BNTypeBuilder;
21423}
21424unsafe extern "C" {
21425    pub fn BNFinalizeTypeBuilder(type_: *mut BNTypeBuilder) -> *mut BNType;
21426}
21427unsafe extern "C" {
21428    pub fn BNDuplicateTypeBuilder(type_: *mut BNTypeBuilder) -> *mut BNTypeBuilder;
21429}
21430unsafe extern "C" {
21431    pub fn BNGetTypeBuilderTypeAndName(
21432        type_: *mut BNTypeBuilder,
21433        name: *mut BNQualifiedName,
21434    ) -> *mut ::std::os::raw::c_char;
21435}
21436unsafe extern "C" {
21437    pub fn BNFreeTypeBuilder(type_: *mut BNTypeBuilder);
21438}
21439unsafe extern "C" {
21440    pub fn BNTypeGetTypeName(nt: *mut BNType) -> BNQualifiedName;
21441}
21442unsafe extern "C" {
21443    pub fn BNGetTypeClass(type_: *mut BNType) -> BNTypeClass;
21444}
21445unsafe extern "C" {
21446    pub fn BNGetTypeWidth(type_: *mut BNType) -> u64;
21447}
21448unsafe extern "C" {
21449    pub fn BNGetTypeAlignment(type_: *mut BNType) -> usize;
21450}
21451unsafe extern "C" {
21452    pub fn BNGetIntegerTypeDisplayType(type_: *mut BNType) -> BNIntegerDisplayType;
21453}
21454unsafe extern "C" {
21455    pub fn BNSetIntegerTypeDisplayType(
21456        type_: *mut BNTypeBuilder,
21457        displayType: BNIntegerDisplayType,
21458    );
21459}
21460unsafe extern "C" {
21461    pub fn BNIsTypeSigned(type_: *mut BNType) -> BNBoolWithConfidence;
21462}
21463unsafe extern "C" {
21464    pub fn BNIsTypeConst(type_: *mut BNType) -> BNBoolWithConfidence;
21465}
21466unsafe extern "C" {
21467    pub fn BNIsTypeVolatile(type_: *mut BNType) -> BNBoolWithConfidence;
21468}
21469unsafe extern "C" {
21470    pub fn BNIsTypeFloatingPoint(type_: *mut BNType) -> bool;
21471}
21472unsafe extern "C" {
21473    pub fn BNGetChildType(type_: *mut BNType) -> BNTypeWithConfidence;
21474}
21475unsafe extern "C" {
21476    pub fn BNGetTypeCallingConvention(type_: *mut BNType) -> BNCallingConventionWithConfidence;
21477}
21478unsafe extern "C" {
21479    pub fn BNGetTypeCallingConventionName(type_: *mut BNType) -> BNCallingConventionName;
21480}
21481unsafe extern "C" {
21482    pub fn BNGetTypeParameters(type_: *mut BNType, count: *mut usize) -> *mut BNFunctionParameter;
21483}
21484unsafe extern "C" {
21485    pub fn BNFreeTypeParameterList(types: *mut BNFunctionParameter, count: usize);
21486}
21487unsafe extern "C" {
21488    pub fn BNTypeHasVariableArguments(type_: *mut BNType) -> BNBoolWithConfidence;
21489}
21490unsafe extern "C" {
21491    pub fn BNTypeHasTemplateArguments(type_: *mut BNType) -> bool;
21492}
21493unsafe extern "C" {
21494    pub fn BNFunctionTypeCanReturn(type_: *mut BNType) -> BNBoolWithConfidence;
21495}
21496unsafe extern "C" {
21497    pub fn BNIsTypePure(type_: *mut BNType) -> BNBoolWithConfidence;
21498}
21499unsafe extern "C" {
21500    pub fn BNGetTypeStructure(type_: *mut BNType) -> *mut BNStructure;
21501}
21502unsafe extern "C" {
21503    pub fn BNGetTypeEnumeration(type_: *mut BNType) -> *mut BNEnumeration;
21504}
21505unsafe extern "C" {
21506    pub fn BNGetTypeNamedTypeReference(type_: *mut BNType) -> *mut BNNamedTypeReference;
21507}
21508unsafe extern "C" {
21509    pub fn BNGetTypeElementCount(type_: *mut BNType) -> u64;
21510}
21511unsafe extern "C" {
21512    pub fn BNGetTypeOffset(type_: *mut BNType) -> u64;
21513}
21514unsafe extern "C" {
21515    pub fn BNGetTypeFragmentOriginalOffsetBytes(type_: *mut BNType) -> u64;
21516}
21517unsafe extern "C" {
21518    pub fn BNGetTypeFragmentOriginalWidthBytes(type_: *mut BNType) -> usize;
21519}
21520unsafe extern "C" {
21521    pub fn BNGetTypeFragmentStartBit(type_: *mut BNType) -> usize;
21522}
21523unsafe extern "C" {
21524    pub fn BNGetTypeFragmentWidthBits(type_: *mut BNType) -> usize;
21525}
21526unsafe extern "C" {
21527    pub fn BNGetTypeFragmentTruncatedStartBits(type_: *mut BNType) -> usize;
21528}
21529unsafe extern "C" {
21530    pub fn BNGetTypeFragmentWrapBit(type_: *mut BNType) -> usize;
21531}
21532unsafe extern "C" {
21533    pub fn BNGetTypeFragmentEndianness(type_: *mut BNType) -> BNEndianness;
21534}
21535unsafe extern "C" {
21536    pub fn BNGetTypeStackAdjustment(type_: *mut BNType) -> BNOffsetWithConfidence;
21537}
21538unsafe extern "C" {
21539    pub fn BNTypeGetStructureName(type_: *mut BNType) -> BNQualifiedName;
21540}
21541unsafe extern "C" {
21542    pub fn BNGetRegisteredTypeName(type_: *mut BNType) -> *mut BNNamedTypeReference;
21543}
21544unsafe extern "C" {
21545    pub fn BNTypeGetReferenceType(type_: *mut BNType) -> BNReferenceType;
21546}
21547unsafe extern "C" {
21548    pub fn BNTypeGetPointerBaseType(type_: *mut BNType) -> BNPointerBaseType;
21549}
21550unsafe extern "C" {
21551    pub fn BNTypeGetPointerBaseOffset(type_: *mut BNType) -> i64;
21552}
21553unsafe extern "C" {
21554    pub fn BNTypeGetNameType(type_: *mut BNType) -> BNNameType;
21555}
21556unsafe extern "C" {
21557    pub fn BNGetTypeAlternateName(type_: *mut BNType) -> *mut ::std::os::raw::c_char;
21558}
21559unsafe extern "C" {
21560    pub fn BNTypeGetSystemCallNumber(type_: *mut BNType) -> u32;
21561}
21562unsafe extern "C" {
21563    pub fn BNTypeIsSystemCall(type_: *mut BNType) -> bool;
21564}
21565unsafe extern "C" {
21566    pub fn BNGetTypePointerSuffix(type_: *mut BNType, count: *mut usize) -> *mut BNPointerSuffix;
21567}
21568unsafe extern "C" {
21569    pub fn BNGetTypePointerSuffixString(type_: *mut BNType) -> *mut ::std::os::raw::c_char;
21570}
21571unsafe extern "C" {
21572    pub fn BNGetTypePointerSuffixTokens(
21573        type_: *mut BNType,
21574        baseConfidence: u8,
21575        count: *mut usize,
21576    ) -> *mut BNInstructionTextToken;
21577}
21578unsafe extern "C" {
21579    pub fn BNFreePointerSuffixList(suffix: *mut BNPointerSuffix, count: usize);
21580}
21581unsafe extern "C" {
21582    pub fn BNTypeShouldDisplayReturnType(type_: *mut BNType) -> bool;
21583}
21584unsafe extern "C" {
21585    pub fn BNGetTypeAttributes(type_: *mut BNType, count: *mut usize) -> *mut BNTypeAttribute;
21586}
21587unsafe extern "C" {
21588    pub fn BNGetTypeAttributeByName(
21589        type_: *mut BNType,
21590        name: *const ::std::os::raw::c_char,
21591    ) -> *mut ::std::os::raw::c_char;
21592}
21593unsafe extern "C" {
21594    pub fn BNFreeTypeAttributeList(attr: *mut BNTypeAttribute, count: usize);
21595}
21596unsafe extern "C" {
21597    pub fn BNDerefNamedTypeReference(view: *mut BNBinaryView, type_: *mut BNType) -> *mut BNType;
21598}
21599unsafe extern "C" {
21600    pub fn BNGetTypeString(
21601        type_: *mut BNType,
21602        platform: *mut BNPlatform,
21603        escaping: BNTokenEscapingType,
21604    ) -> *mut ::std::os::raw::c_char;
21605}
21606unsafe extern "C" {
21607    pub fn BNGetTypeStringBeforeName(
21608        type_: *mut BNType,
21609        platform: *mut BNPlatform,
21610        escaping: BNTokenEscapingType,
21611    ) -> *mut ::std::os::raw::c_char;
21612}
21613unsafe extern "C" {
21614    pub fn BNGetTypeStringAfterName(
21615        type_: *mut BNType,
21616        platform: *mut BNPlatform,
21617        escaping: BNTokenEscapingType,
21618    ) -> *mut ::std::os::raw::c_char;
21619}
21620unsafe extern "C" {
21621    pub fn BNGetTypeTokens(
21622        type_: *mut BNType,
21623        platform: *mut BNPlatform,
21624        baseConfidence: u8,
21625        escaping: BNTokenEscapingType,
21626        count: *mut usize,
21627    ) -> *mut BNInstructionTextToken;
21628}
21629unsafe extern "C" {
21630    pub fn BNGetTypeTokensBeforeName(
21631        type_: *mut BNType,
21632        platform: *mut BNPlatform,
21633        baseConfidence: u8,
21634        escaping: BNTokenEscapingType,
21635        count: *mut usize,
21636    ) -> *mut BNInstructionTextToken;
21637}
21638unsafe extern "C" {
21639    pub fn BNGetTypeTokensAfterName(
21640        type_: *mut BNType,
21641        platform: *mut BNPlatform,
21642        baseConfidence: u8,
21643        escaping: BNTokenEscapingType,
21644        count: *mut usize,
21645    ) -> *mut BNInstructionTextToken;
21646}
21647unsafe extern "C" {
21648    pub fn BNTypeWithReplacedStructure(
21649        type_: *mut BNType,
21650        from: *mut BNStructure,
21651        to: *mut BNStructure,
21652    ) -> *mut BNType;
21653}
21654unsafe extern "C" {
21655    pub fn BNTypeWithReplacedEnumeration(
21656        type_: *mut BNType,
21657        from: *mut BNEnumeration,
21658        to: *mut BNEnumeration,
21659    ) -> *mut BNType;
21660}
21661unsafe extern "C" {
21662    pub fn BNTypeWithReplacedNamedTypeReference(
21663        type_: *mut BNType,
21664        from: *mut BNNamedTypeReference,
21665        to: *mut BNNamedTypeReference,
21666    ) -> *mut BNType;
21667}
21668unsafe extern "C" {
21669    pub fn BNAddTypeMemberTokens(
21670        type_: *mut BNType,
21671        data: *mut BNBinaryView,
21672        tokens: *mut *mut BNInstructionTextToken,
21673        tokenCount: *mut usize,
21674        offset: i64,
21675        nameList: *mut *mut *mut ::std::os::raw::c_char,
21676        nameCount: *mut usize,
21677        size: usize,
21678        indirect: bool,
21679        info: *mut BNFieldResolutionInfo,
21680    ) -> bool;
21681}
21682unsafe extern "C" {
21683    pub fn BNGetTypeLines(
21684        type_: *mut BNType,
21685        types: *mut BNTypeContainer,
21686        name: *const ::std::os::raw::c_char,
21687        paddingCols: ::std::os::raw::c_int,
21688        collapsed: bool,
21689        escaping: BNTokenEscapingType,
21690        count: *mut usize,
21691    ) -> *mut BNTypeDefinitionLine;
21692}
21693unsafe extern "C" {
21694    pub fn BNFreeTypeDefinitionLineList(list: *mut BNTypeDefinitionLine, count: usize);
21695}
21696unsafe extern "C" {
21697    pub fn BNEnumerateTypesForAccess(
21698        type_: *mut BNType,
21699        data: *mut BNBinaryView,
21700        offset: u64,
21701        size: usize,
21702        baseConfidence: u8,
21703        terminal: ::std::option::Option<
21704            unsafe extern "C" fn(
21705                arg1: *mut ::std::os::raw::c_void,
21706                arg2: *mut BNTypeWithConfidence,
21707                arg3: *mut BNFieldResolutionInfo,
21708            ),
21709        >,
21710        ctxt: *mut ::std::os::raw::c_void,
21711    ) -> bool;
21712}
21713unsafe extern "C" {
21714    pub fn BNTypeBuilderGetTypeName(nt: *mut BNTypeBuilder) -> BNQualifiedName;
21715}
21716unsafe extern "C" {
21717    pub fn BNTypeBuilderSetTypeName(type_: *mut BNTypeBuilder, name: *mut BNQualifiedName);
21718}
21719unsafe extern "C" {
21720    pub fn BNTypeBuilderSetAlternateName(
21721        type_: *mut BNTypeBuilder,
21722        name: *const ::std::os::raw::c_char,
21723    );
21724}
21725unsafe extern "C" {
21726    pub fn BNGetTypeBuilderClass(type_: *mut BNTypeBuilder) -> BNTypeClass;
21727}
21728unsafe extern "C" {
21729    pub fn BNTypeBuilderSetSystemCallNumber(type_: *mut BNTypeBuilder, v: bool, n: u32);
21730}
21731unsafe extern "C" {
21732    pub fn BNGetTypeBuilderWidth(type_: *mut BNTypeBuilder) -> u64;
21733}
21734unsafe extern "C" {
21735    pub fn BNGetTypeBuilderAlignment(type_: *mut BNTypeBuilder) -> usize;
21736}
21737unsafe extern "C" {
21738    pub fn BNIsTypeBuilderSigned(type_: *mut BNTypeBuilder) -> BNBoolWithConfidence;
21739}
21740unsafe extern "C" {
21741    pub fn BNIsTypeBuilderConst(type_: *mut BNTypeBuilder) -> BNBoolWithConfidence;
21742}
21743unsafe extern "C" {
21744    pub fn BNIsTypeBuilderVolatile(type_: *mut BNTypeBuilder) -> BNBoolWithConfidence;
21745}
21746unsafe extern "C" {
21747    pub fn BNIsTypeBuilderFloatingPoint(type_: *mut BNTypeBuilder) -> bool;
21748}
21749unsafe extern "C" {
21750    pub fn BNGetTypeBuilderChildType(type_: *mut BNTypeBuilder) -> BNTypeWithConfidence;
21751}
21752unsafe extern "C" {
21753    pub fn BNGetTypeBuilderCallingConvention(
21754        type_: *mut BNTypeBuilder,
21755    ) -> BNCallingConventionWithConfidence;
21756}
21757unsafe extern "C" {
21758    pub fn BNGetTypeBuilderCallingConventionName(
21759        type_: *mut BNTypeBuilder,
21760    ) -> BNCallingConventionName;
21761}
21762unsafe extern "C" {
21763    pub fn BNGetTypeBuilderParameters(
21764        type_: *mut BNTypeBuilder,
21765        count: *mut usize,
21766    ) -> *mut BNFunctionParameter;
21767}
21768unsafe extern "C" {
21769    pub fn BNTypeBuilderHasVariableArguments(type_: *mut BNTypeBuilder) -> BNBoolWithConfidence;
21770}
21771unsafe extern "C" {
21772    pub fn BNFunctionTypeBuilderCanReturn(type_: *mut BNTypeBuilder) -> BNBoolWithConfidence;
21773}
21774unsafe extern "C" {
21775    pub fn BNIsTypeBuilderPure(type_: *mut BNTypeBuilder) -> BNBoolWithConfidence;
21776}
21777unsafe extern "C" {
21778    pub fn BNGetTypeBuilderStructure(type_: *mut BNTypeBuilder) -> *mut BNStructure;
21779}
21780unsafe extern "C" {
21781    pub fn BNGetTypeBuilderEnumeration(type_: *mut BNTypeBuilder) -> *mut BNEnumeration;
21782}
21783unsafe extern "C" {
21784    pub fn BNGetTypeBuilderNamedTypeReference(
21785        type_: *mut BNTypeBuilder,
21786    ) -> *mut BNNamedTypeReference;
21787}
21788unsafe extern "C" {
21789    pub fn BNSetTypeBuilderNamedTypeReference(
21790        type_: *mut BNTypeBuilder,
21791        ntr: *mut BNNamedTypeReference,
21792    );
21793}
21794unsafe extern "C" {
21795    pub fn BNGetTypeBuilderElementCount(type_: *mut BNTypeBuilder) -> u64;
21796}
21797unsafe extern "C" {
21798    pub fn BNGetTypeBuilderOffset(type_: *mut BNTypeBuilder) -> u64;
21799}
21800unsafe extern "C" {
21801    pub fn BNGetTypeBuilderFragmentOriginalOffsetBytes(type_: *mut BNTypeBuilder) -> u64;
21802}
21803unsafe extern "C" {
21804    pub fn BNGetTypeBuilderFragmentOriginalWidthBytes(type_: *mut BNTypeBuilder) -> usize;
21805}
21806unsafe extern "C" {
21807    pub fn BNGetTypeBuilderFragmentStartBit(type_: *mut BNTypeBuilder) -> usize;
21808}
21809unsafe extern "C" {
21810    pub fn BNGetTypeBuilderFragmentWidthBits(type_: *mut BNTypeBuilder) -> usize;
21811}
21812unsafe extern "C" {
21813    pub fn BNGetTypeBuilderFragmentTruncatedStartBits(type_: *mut BNTypeBuilder) -> usize;
21814}
21815unsafe extern "C" {
21816    pub fn BNGetTypeBuilderFragmentWrapBit(type_: *mut BNTypeBuilder) -> usize;
21817}
21818unsafe extern "C" {
21819    pub fn BNGetTypeBuilderFragmentEndianness(type_: *mut BNTypeBuilder) -> BNEndianness;
21820}
21821unsafe extern "C" {
21822    pub fn BNSetTypeBuilderOffset(type_: *mut BNTypeBuilder, offset: u64);
21823}
21824unsafe extern "C" {
21825    pub fn BNSetTypeBuilderPointerBase(
21826        type_: *mut BNTypeBuilder,
21827        baseType: BNPointerBaseType,
21828        baseOffset: i64,
21829    );
21830}
21831unsafe extern "C" {
21832    pub fn BNSetTypeBuilderFragmentOriginalOffsetBytes(type_: *mut BNTypeBuilder, offset: u64);
21833}
21834unsafe extern "C" {
21835    pub fn BNSetTypeBuilderFragmentOriginalWidthBytes(type_: *mut BNTypeBuilder, size: usize);
21836}
21837unsafe extern "C" {
21838    pub fn BNSetTypeBuilderFragmentStartBit(type_: *mut BNTypeBuilder, startBit: usize);
21839}
21840unsafe extern "C" {
21841    pub fn BNSetTypeBuilderFragmentWidthBits(type_: *mut BNTypeBuilder, widthBits: usize);
21842}
21843unsafe extern "C" {
21844    pub fn BNSetTypeBuilderFragmentTruncatedStartBits(
21845        type_: *mut BNTypeBuilder,
21846        truncatedBits: usize,
21847    );
21848}
21849unsafe extern "C" {
21850    pub fn BNSetTypeBuilderFragmentWrapBit(type_: *mut BNTypeBuilder, wrapBit: usize);
21851}
21852unsafe extern "C" {
21853    pub fn BNSetTypeBuilderFragmentEndianness(type_: *mut BNTypeBuilder, endianness: BNEndianness);
21854}
21855unsafe extern "C" {
21856    pub fn BNSetFunctionTypeBuilderCanReturn(
21857        type_: *mut BNTypeBuilder,
21858        canReturn: *mut BNBoolWithConfidence,
21859    );
21860}
21861unsafe extern "C" {
21862    pub fn BNSetTypeBuilderPure(type_: *mut BNTypeBuilder, pure_: *mut BNBoolWithConfidence);
21863}
21864unsafe extern "C" {
21865    pub fn BNSetFunctionTypeBuilderParameters(
21866        type_: *mut BNTypeBuilder,
21867        params: *mut BNFunctionParameter,
21868        paramCount: usize,
21869    );
21870}
21871unsafe extern "C" {
21872    pub fn BNTypeBuilderSetWidth(type_: *mut BNTypeBuilder, width: usize);
21873}
21874unsafe extern "C" {
21875    pub fn BNTypeBuilderSetAlignment(type_: *mut BNTypeBuilder, alignment: usize);
21876}
21877unsafe extern "C" {
21878    pub fn BNTypeBuilderSetConst(type_: *mut BNTypeBuilder, cnst: *mut BNBoolWithConfidence);
21879}
21880unsafe extern "C" {
21881    pub fn BNTypeBuilderSetVolatile(type_: *mut BNTypeBuilder, vltl: *mut BNBoolWithConfidence);
21882}
21883unsafe extern "C" {
21884    pub fn BNTypeBuilderSetSigned(type_: *mut BNTypeBuilder, sign: *mut BNBoolWithConfidence);
21885}
21886unsafe extern "C" {
21887    pub fn BNTypeBuilderSetChildType(type_: *mut BNTypeBuilder, child: *mut BNTypeWithConfidence);
21888}
21889unsafe extern "C" {
21890    pub fn BNTypeBuilderSetCallingConvention(
21891        type_: *mut BNTypeBuilder,
21892        cc: *mut BNCallingConventionWithConfidence,
21893    );
21894}
21895unsafe extern "C" {
21896    pub fn BNTypeBuilderSetCallingConventionName(
21897        type_: *mut BNTypeBuilder,
21898        cc: BNCallingConventionName,
21899    );
21900}
21901unsafe extern "C" {
21902    pub fn BNGetTypeBuilderStackAdjustment(type_: *mut BNTypeBuilder) -> BNOffsetWithConfidence;
21903}
21904unsafe extern "C" {
21905    pub fn BNTypeBuilderGetStructureName(type_: *mut BNTypeBuilder) -> BNQualifiedName;
21906}
21907unsafe extern "C" {
21908    pub fn BNTypeBuilderGetReferenceType(type_: *mut BNTypeBuilder) -> BNReferenceType;
21909}
21910unsafe extern "C" {
21911    pub fn BNTypeBuilderGetPointerBaseType(type_: *mut BNTypeBuilder) -> BNPointerBaseType;
21912}
21913unsafe extern "C" {
21914    pub fn BNTypeBuilderGetPointerBaseOffset(type_: *mut BNTypeBuilder) -> i64;
21915}
21916unsafe extern "C" {
21917    pub fn BNGetTypeBuilderAlternateName(type_: *mut BNTypeBuilder) -> *mut ::std::os::raw::c_char;
21918}
21919unsafe extern "C" {
21920    pub fn BNTypeBuilderIsSystemCall(type_: *mut BNTypeBuilder) -> bool;
21921}
21922unsafe extern "C" {
21923    pub fn BNTypeBuilderGetSystemCallNumber(type_: *mut BNTypeBuilder) -> u32;
21924}
21925unsafe extern "C" {
21926    pub fn BNTypeBuilderSetStackAdjustment(
21927        type_: *mut BNTypeBuilder,
21928        adjust: *mut BNOffsetWithConfidence,
21929    );
21930}
21931unsafe extern "C" {
21932    pub fn BNGetTypeBuilderPointerSuffix(
21933        type_: *mut BNTypeBuilder,
21934        count: *mut usize,
21935    ) -> *mut BNPointerSuffix;
21936}
21937unsafe extern "C" {
21938    pub fn BNGetTypeBuilderPointerSuffixString(
21939        type_: *mut BNTypeBuilder,
21940    ) -> *mut ::std::os::raw::c_char;
21941}
21942unsafe extern "C" {
21943    pub fn BNGetTypeBuilderPointerSuffixTokens(
21944        type_: *mut BNTypeBuilder,
21945        baseConfidence: u8,
21946        count: *mut usize,
21947    ) -> *mut BNInstructionTextToken;
21948}
21949unsafe extern "C" {
21950    pub fn BNAddTypeBuilderPointerSuffix(type_: *mut BNTypeBuilder, ps: BNPointerSuffix);
21951}
21952unsafe extern "C" {
21953    pub fn BNSetTypeBuilderPointerSuffix(
21954        type_: *mut BNTypeBuilder,
21955        suffix: *mut BNPointerSuffix,
21956        count: usize,
21957    );
21958}
21959unsafe extern "C" {
21960    pub fn BNGetTypeBuilderNameType(type_: *mut BNTypeBuilder) -> BNNameType;
21961}
21962unsafe extern "C" {
21963    pub fn BNTypeBuilderHasTemplateArguments(type_: *mut BNTypeBuilder) -> bool;
21964}
21965unsafe extern "C" {
21966    pub fn BNSetTypeBuilderNameType(type_: *mut BNTypeBuilder, nameType: BNNameType);
21967}
21968unsafe extern "C" {
21969    pub fn BNSetTypeBuilderHasTemplateArguments(
21970        type_: *mut BNTypeBuilder,
21971        hasTemplateArguments: bool,
21972    );
21973}
21974unsafe extern "C" {
21975    pub fn BNSetTypeBuilderAttribute(
21976        type_: *mut BNTypeBuilder,
21977        name: *const ::std::os::raw::c_char,
21978        value: *const ::std::os::raw::c_char,
21979    );
21980}
21981unsafe extern "C" {
21982    pub fn BNSetTypeBuilderAttributeList(
21983        type_: *mut BNTypeBuilder,
21984        attrs: *mut BNTypeAttribute,
21985        count: usize,
21986    );
21987}
21988unsafe extern "C" {
21989    pub fn BNRemoveTypeBuilderAttribute(
21990        type_: *mut BNTypeBuilder,
21991        name: *const ::std::os::raw::c_char,
21992    );
21993}
21994unsafe extern "C" {
21995    pub fn BNGetTypeBuilderAttributes(
21996        type_: *mut BNTypeBuilder,
21997        count: *mut usize,
21998    ) -> *mut BNTypeAttribute;
21999}
22000unsafe extern "C" {
22001    pub fn BNGetTypeBuilderAttributeByName(
22002        type_: *mut BNTypeBuilder,
22003        name: *const ::std::os::raw::c_char,
22004    ) -> *mut ::std::os::raw::c_char;
22005}
22006unsafe extern "C" {
22007    pub fn BNGetTypeBuilderString(
22008        type_: *mut BNTypeBuilder,
22009        platform: *mut BNPlatform,
22010    ) -> *mut ::std::os::raw::c_char;
22011}
22012unsafe extern "C" {
22013    pub fn BNGetTypeBuilderStringBeforeName(
22014        type_: *mut BNTypeBuilder,
22015        platform: *mut BNPlatform,
22016    ) -> *mut ::std::os::raw::c_char;
22017}
22018unsafe extern "C" {
22019    pub fn BNGetTypeBuilderStringAfterName(
22020        type_: *mut BNTypeBuilder,
22021        platform: *mut BNPlatform,
22022    ) -> *mut ::std::os::raw::c_char;
22023}
22024unsafe extern "C" {
22025    pub fn BNGetTypeBuilderTokens(
22026        type_: *mut BNTypeBuilder,
22027        platform: *mut BNPlatform,
22028        baseConfidence: u8,
22029        count: *mut usize,
22030    ) -> *mut BNInstructionTextToken;
22031}
22032unsafe extern "C" {
22033    pub fn BNGetTypeBuilderTokensBeforeName(
22034        type_: *mut BNTypeBuilder,
22035        platform: *mut BNPlatform,
22036        baseConfidence: u8,
22037        count: *mut usize,
22038    ) -> *mut BNInstructionTextToken;
22039}
22040unsafe extern "C" {
22041    pub fn BNGetTypeBuilderTokensAfterName(
22042        type_: *mut BNTypeBuilder,
22043        platform: *mut BNPlatform,
22044        baseConfidence: u8,
22045        count: *mut usize,
22046    ) -> *mut BNInstructionTextToken;
22047}
22048unsafe extern "C" {
22049    pub fn BNCreateNamedTypeReference(
22050        nt: *mut BNNamedTypeReference,
22051        width: usize,
22052        align: usize,
22053        cnst: *mut BNBoolWithConfidence,
22054        vltl: *mut BNBoolWithConfidence,
22055    ) -> *mut BNType;
22056}
22057unsafe extern "C" {
22058    pub fn BNCreateNamedTypeReferenceFromTypeAndId(
22059        id: *const ::std::os::raw::c_char,
22060        name: *mut BNQualifiedName,
22061        type_: *mut BNType,
22062    ) -> *mut BNType;
22063}
22064unsafe extern "C" {
22065    pub fn BNCreateNamedTypeReferenceFromType(
22066        view: *mut BNBinaryView,
22067        name: *mut BNQualifiedName,
22068    ) -> *mut BNType;
22069}
22070unsafe extern "C" {
22071    pub fn BNCreateNamedTypeReferenceBuilder(
22072        nt: *mut BNNamedTypeReference,
22073        width: usize,
22074        align: usize,
22075        cnst: *mut BNBoolWithConfidence,
22076        vltl: *mut BNBoolWithConfidence,
22077    ) -> *mut BNTypeBuilder;
22078}
22079unsafe extern "C" {
22080    pub fn BNCreateNamedTypeReferenceBuilderWithBuilder(
22081        nt: *mut BNNamedTypeReferenceBuilder,
22082        width: usize,
22083        align: usize,
22084        cnst: *mut BNBoolWithConfidence,
22085        vltl: *mut BNBoolWithConfidence,
22086    ) -> *mut BNTypeBuilder;
22087}
22088unsafe extern "C" {
22089    pub fn BNCreateNamedTypeReferenceBuilderFromTypeAndId(
22090        id: *const ::std::os::raw::c_char,
22091        name: *mut BNQualifiedName,
22092        type_: *mut BNType,
22093    ) -> *mut BNTypeBuilder;
22094}
22095unsafe extern "C" {
22096    pub fn BNCreateNamedTypeReferenceBuilderFromType(
22097        view: *mut BNBinaryView,
22098        name: *mut BNQualifiedName,
22099    ) -> *mut BNTypeBuilder;
22100}
22101unsafe extern "C" {
22102    pub fn BNCreateNamedType(
22103        cls: BNNamedTypeReferenceClass,
22104        id: *const ::std::os::raw::c_char,
22105        name: *mut BNQualifiedName,
22106    ) -> *mut BNNamedTypeReference;
22107}
22108unsafe extern "C" {
22109    pub fn BNGetTypeReferenceClass(nt: *mut BNNamedTypeReference) -> BNNamedTypeReferenceClass;
22110}
22111unsafe extern "C" {
22112    pub fn BNGetTypeReferenceId(nt: *mut BNNamedTypeReference) -> *mut ::std::os::raw::c_char;
22113}
22114unsafe extern "C" {
22115    pub fn BNGetTypeReferenceName(nt: *mut BNNamedTypeReference) -> BNQualifiedName;
22116}
22117unsafe extern "C" {
22118    pub fn BNFreeQualifiedName(name: *mut BNQualifiedName);
22119}
22120unsafe extern "C" {
22121    pub fn BNFreeQualifiedNameArray(names: *mut BNQualifiedName, count: usize);
22122}
22123unsafe extern "C" {
22124    pub fn BNFreeNamedTypeReference(nt: *mut BNNamedTypeReference);
22125}
22126unsafe extern "C" {
22127    pub fn BNNewNamedTypeReference(nt: *mut BNNamedTypeReference) -> *mut BNNamedTypeReference;
22128}
22129unsafe extern "C" {
22130    pub fn BNCreateNamedTypeBuilder(
22131        cls: BNNamedTypeReferenceClass,
22132        id: *const ::std::os::raw::c_char,
22133        name: *mut BNQualifiedName,
22134    ) -> *mut BNNamedTypeReferenceBuilder;
22135}
22136unsafe extern "C" {
22137    pub fn BNFreeNamedTypeReferenceBuilder(s: *mut BNNamedTypeReferenceBuilder);
22138}
22139unsafe extern "C" {
22140    pub fn BNSetNamedTypeReferenceBuilderTypeClass(
22141        s: *mut BNNamedTypeReferenceBuilder,
22142        type_: BNNamedTypeReferenceClass,
22143    );
22144}
22145unsafe extern "C" {
22146    pub fn BNSetNamedTypeReferenceBuilderTypeId(
22147        s: *mut BNNamedTypeReferenceBuilder,
22148        id: *const ::std::os::raw::c_char,
22149    );
22150}
22151unsafe extern "C" {
22152    pub fn BNSetNamedTypeReferenceBuilderName(
22153        s: *mut BNNamedTypeReferenceBuilder,
22154        name: *mut BNQualifiedName,
22155    );
22156}
22157unsafe extern "C" {
22158    pub fn BNFinalizeNamedTypeReferenceBuilder(
22159        s: *mut BNNamedTypeReferenceBuilder,
22160    ) -> *mut BNNamedTypeReference;
22161}
22162unsafe extern "C" {
22163    pub fn BNGetTypeReferenceBuilderClass(
22164        nt: *mut BNNamedTypeReferenceBuilder,
22165    ) -> BNNamedTypeReferenceClass;
22166}
22167unsafe extern "C" {
22168    pub fn BNGetTypeReferenceBuilderId(
22169        nt: *mut BNNamedTypeReferenceBuilder,
22170    ) -> *mut ::std::os::raw::c_char;
22171}
22172unsafe extern "C" {
22173    pub fn BNGetTypeReferenceBuilderName(nt: *mut BNNamedTypeReferenceBuilder) -> BNQualifiedName;
22174}
22175unsafe extern "C" {
22176    pub fn BNSetNamedTypeReferenceBuilder(
22177        type_: *mut BNTypeBuilder,
22178        nt: *mut BNNamedTypeReferenceBuilder,
22179    );
22180}
22181unsafe extern "C" {
22182    pub fn BNCreateStructureBuilder() -> *mut BNStructureBuilder;
22183}
22184unsafe extern "C" {
22185    pub fn BNCreateStructureBuilderWithOptions(
22186        type_: BNStructureVariant,
22187        packed: bool,
22188    ) -> *mut BNStructureBuilder;
22189}
22190unsafe extern "C" {
22191    pub fn BNCreateStructureBuilderFromStructure(s: *mut BNStructure) -> *mut BNStructureBuilder;
22192}
22193unsafe extern "C" {
22194    pub fn BNDuplicateStructureBuilder(s: *mut BNStructureBuilder) -> *mut BNStructureBuilder;
22195}
22196unsafe extern "C" {
22197    pub fn BNFinalizeStructureBuilder(s: *mut BNStructureBuilder) -> *mut BNStructure;
22198}
22199unsafe extern "C" {
22200    pub fn BNNewStructureReference(s: *mut BNStructure) -> *mut BNStructure;
22201}
22202unsafe extern "C" {
22203    pub fn BNFreeStructure(s: *mut BNStructure);
22204}
22205unsafe extern "C" {
22206    pub fn BNFreeStructureBuilder(s: *mut BNStructureBuilder);
22207}
22208unsafe extern "C" {
22209    pub fn BNSetStructureBuilder(type_: *mut BNTypeBuilder, s: *mut BNStructureBuilder);
22210}
22211unsafe extern "C" {
22212    pub fn BNGetStructureMemberByName(
22213        s: *mut BNStructure,
22214        name: *const ::std::os::raw::c_char,
22215    ) -> *mut BNStructureMember;
22216}
22217unsafe extern "C" {
22218    pub fn BNGetStructureMemberAtOffset(
22219        s: *mut BNStructure,
22220        offset: i64,
22221        idx: *mut usize,
22222    ) -> *mut BNStructureMember;
22223}
22224unsafe extern "C" {
22225    pub fn BNFreeStructureMember(s: *mut BNStructureMember);
22226}
22227unsafe extern "C" {
22228    pub fn BNGetStructureMembers(s: *mut BNStructure, count: *mut usize) -> *mut BNStructureMember;
22229}
22230unsafe extern "C" {
22231    pub fn BNFreeStructureMemberList(members: *mut BNStructureMember, count: usize);
22232}
22233unsafe extern "C" {
22234    pub fn BNGetStructureMembersIncludingInherited(
22235        s: *mut BNStructure,
22236        types: *mut BNTypeContainer,
22237        count: *mut usize,
22238    ) -> *mut BNInheritedStructureMember;
22239}
22240unsafe extern "C" {
22241    pub fn BNFreeInheritedStructureMemberList(
22242        members: *mut BNInheritedStructureMember,
22243        count: usize,
22244    );
22245}
22246unsafe extern "C" {
22247    pub fn BNGetMemberIncludingInheritedAtOffset(
22248        s: *mut BNStructure,
22249        view: *mut BNBinaryView,
22250        offset: i64,
22251    ) -> *mut BNInheritedStructureMember;
22252}
22253unsafe extern "C" {
22254    pub fn BNFreeInheritedStructureMember(members: *mut BNInheritedStructureMember);
22255}
22256unsafe extern "C" {
22257    pub fn BNGetStructureWidth(s: *mut BNStructure) -> u64;
22258}
22259unsafe extern "C" {
22260    pub fn BNGetStructurePointerOffset(s: *mut BNStructure) -> i64;
22261}
22262unsafe extern "C" {
22263    pub fn BNGetStructureAlignment(s: *mut BNStructure) -> usize;
22264}
22265unsafe extern "C" {
22266    pub fn BNIsStructurePacked(s: *mut BNStructure) -> bool;
22267}
22268unsafe extern "C" {
22269    pub fn BNIsStructureUnion(s: *mut BNStructure) -> bool;
22270}
22271unsafe extern "C" {
22272    pub fn BNStructurePropagatesDataVariableReferences(s: *mut BNStructure) -> bool;
22273}
22274unsafe extern "C" {
22275    pub fn BNGetStructureType(s: *mut BNStructure) -> BNStructureVariant;
22276}
22277unsafe extern "C" {
22278    pub fn BNGetBaseStructuresForStructure(
22279        s: *mut BNStructure,
22280        count: *mut usize,
22281    ) -> *mut BNBaseStructure;
22282}
22283unsafe extern "C" {
22284    pub fn BNFreeBaseStructureList(bases: *mut BNBaseStructure, count: usize);
22285}
22286unsafe extern "C" {
22287    pub fn BNResolveStructureMemberOrBaseMember(
22288        s: *mut BNStructure,
22289        data: *mut BNBinaryView,
22290        offset: u64,
22291        size: usize,
22292        callbackContext: *mut ::std::os::raw::c_void,
22293        resolveFunc: ::std::option::Option<
22294            unsafe extern "C" fn(
22295                ctxt: *mut ::std::os::raw::c_void,
22296                baseName: *mut BNNamedTypeReference,
22297                resolvedStruct: *mut BNStructure,
22298                memberIndex: usize,
22299                structOffset: u64,
22300                adjustedOffset: u64,
22301                member: BNStructureMember,
22302            ),
22303        >,
22304        memberIndexHintValid: bool,
22305        memberIndexHint: usize,
22306    ) -> bool;
22307}
22308unsafe extern "C" {
22309    pub fn BNStructureWithReplacedStructure(
22310        s: *mut BNStructure,
22311        from: *mut BNStructure,
22312        to: *mut BNStructure,
22313    ) -> *mut BNStructure;
22314}
22315unsafe extern "C" {
22316    pub fn BNStructureWithReplacedEnumeration(
22317        s: *mut BNStructure,
22318        from: *mut BNEnumeration,
22319        to: *mut BNEnumeration,
22320    ) -> *mut BNStructure;
22321}
22322unsafe extern "C" {
22323    pub fn BNStructureWithReplacedNamedTypeReference(
22324        s: *mut BNStructure,
22325        from: *mut BNNamedTypeReference,
22326        to: *mut BNNamedTypeReference,
22327    ) -> *mut BNStructure;
22328}
22329unsafe extern "C" {
22330    pub fn BNGetStructureBuilderMemberByName(
22331        s: *mut BNStructureBuilder,
22332        name: *const ::std::os::raw::c_char,
22333    ) -> *mut BNStructureMember;
22334}
22335unsafe extern "C" {
22336    pub fn BNGetStructureBuilderMemberAtOffset(
22337        s: *mut BNStructureBuilder,
22338        offset: i64,
22339        idx: *mut usize,
22340    ) -> *mut BNStructureMember;
22341}
22342unsafe extern "C" {
22343    pub fn BNGetStructureBuilderMembers(
22344        s: *mut BNStructureBuilder,
22345        count: *mut usize,
22346    ) -> *mut BNStructureMember;
22347}
22348unsafe extern "C" {
22349    pub fn BNGetStructureBuilderWidth(s: *mut BNStructureBuilder) -> u64;
22350}
22351unsafe extern "C" {
22352    pub fn BNSetStructureBuilderWidth(s: *mut BNStructureBuilder, width: u64);
22353}
22354unsafe extern "C" {
22355    pub fn BNGetStructureBuilderPointerOffset(s: *mut BNStructureBuilder) -> i64;
22356}
22357unsafe extern "C" {
22358    pub fn BNSetStructureBuilderPointerOffset(s: *mut BNStructureBuilder, offset: i64);
22359}
22360unsafe extern "C" {
22361    pub fn BNGetStructureBuilderAlignment(s: *mut BNStructureBuilder) -> usize;
22362}
22363unsafe extern "C" {
22364    pub fn BNSetStructureBuilderAlignment(s: *mut BNStructureBuilder, align: usize);
22365}
22366unsafe extern "C" {
22367    pub fn BNIsStructureBuilderPacked(s: *mut BNStructureBuilder) -> bool;
22368}
22369unsafe extern "C" {
22370    pub fn BNSetStructureBuilderPacked(s: *mut BNStructureBuilder, packed: bool);
22371}
22372unsafe extern "C" {
22373    pub fn BNIsStructureBuilderUnion(s: *mut BNStructureBuilder) -> bool;
22374}
22375unsafe extern "C" {
22376    pub fn BNSetStructureBuilderType(s: *mut BNStructureBuilder, type_: BNStructureVariant);
22377}
22378unsafe extern "C" {
22379    pub fn BNStructureBuilderPropagatesDataVariableReferences(s: *mut BNStructureBuilder) -> bool;
22380}
22381unsafe extern "C" {
22382    pub fn BNSetStructureBuilderPropagatesDataVariableReferences(
22383        s: *mut BNStructureBuilder,
22384        value: bool,
22385    );
22386}
22387unsafe extern "C" {
22388    pub fn BNGetStructureBuilderType(s: *mut BNStructureBuilder) -> BNStructureVariant;
22389}
22390unsafe extern "C" {
22391    pub fn BNGetBaseStructuresForStructureBuilder(
22392        s: *mut BNStructureBuilder,
22393        count: *mut usize,
22394    ) -> *mut BNBaseStructure;
22395}
22396unsafe extern "C" {
22397    pub fn BNSetBaseStructuresForStructureBuilder(
22398        s: *mut BNStructureBuilder,
22399        bases: *mut BNBaseStructure,
22400        count: usize,
22401    );
22402}
22403unsafe extern "C" {
22404    pub fn BNAddStructureBuilderMember(
22405        s: *mut BNStructureBuilder,
22406        type_: *const BNTypeWithConfidence,
22407        name: *const ::std::os::raw::c_char,
22408        access: BNMemberAccess,
22409        scope: BNMemberScope,
22410    );
22411}
22412unsafe extern "C" {
22413    pub fn BNAddStructureBuilderMemberAtOffset(
22414        s: *mut BNStructureBuilder,
22415        type_: *const BNTypeWithConfidence,
22416        name: *const ::std::os::raw::c_char,
22417        offset: u64,
22418        overwriteExisting: bool,
22419        access: BNMemberAccess,
22420        scope: BNMemberScope,
22421        bitPosition: u8,
22422        bitWidth: u8,
22423    );
22424}
22425unsafe extern "C" {
22426    pub fn BNRemoveStructureBuilderMember(s: *mut BNStructureBuilder, idx: usize);
22427}
22428unsafe extern "C" {
22429    pub fn BNReplaceStructureBuilderMember(
22430        s: *mut BNStructureBuilder,
22431        idx: usize,
22432        type_: *const BNTypeWithConfidence,
22433        name: *const ::std::os::raw::c_char,
22434        overwriteExisting: bool,
22435    );
22436}
22437unsafe extern "C" {
22438    pub fn BNCreateEnumerationBuilder() -> *mut BNEnumerationBuilder;
22439}
22440unsafe extern "C" {
22441    pub fn BNCreateEnumerationBuilderFromEnumeration(
22442        e: *mut BNEnumeration,
22443    ) -> *mut BNEnumerationBuilder;
22444}
22445unsafe extern "C" {
22446    pub fn BNDuplicateEnumerationBuilder(e: *mut BNEnumerationBuilder)
22447    -> *mut BNEnumerationBuilder;
22448}
22449unsafe extern "C" {
22450    pub fn BNFinalizeEnumerationBuilder(e: *mut BNEnumerationBuilder) -> *mut BNEnumeration;
22451}
22452unsafe extern "C" {
22453    pub fn BNNewEnumerationReference(e: *mut BNEnumeration) -> *mut BNEnumeration;
22454}
22455unsafe extern "C" {
22456    pub fn BNFreeEnumeration(e: *mut BNEnumeration);
22457}
22458unsafe extern "C" {
22459    pub fn BNFreeEnumerationBuilder(e: *mut BNEnumerationBuilder);
22460}
22461unsafe extern "C" {
22462    pub fn BNSetEnumerationBuilder(type_: *mut BNTypeBuilder, e: *mut BNEnumerationBuilder);
22463}
22464unsafe extern "C" {
22465    pub fn BNGetEnumerationMembers(
22466        e: *mut BNEnumeration,
22467        count: *mut usize,
22468    ) -> *mut BNEnumerationMember;
22469}
22470unsafe extern "C" {
22471    pub fn BNGetEnumerationTokensForValue(
22472        e: *mut BNEnumeration,
22473        value: u64,
22474        width: u64,
22475        count: *mut usize,
22476        type_: *mut BNType,
22477    ) -> *mut BNInstructionTextToken;
22478}
22479unsafe extern "C" {
22480    pub fn BNFreeEnumerationMemberList(members: *mut BNEnumerationMember, count: usize);
22481}
22482unsafe extern "C" {
22483    pub fn BNGetEnumerationBuilderMembers(
22484        e: *mut BNEnumerationBuilder,
22485        count: *mut usize,
22486    ) -> *mut BNEnumerationMember;
22487}
22488unsafe extern "C" {
22489    pub fn BNAddEnumerationBuilderMember(
22490        e: *mut BNEnumerationBuilder,
22491        name: *const ::std::os::raw::c_char,
22492    );
22493}
22494unsafe extern "C" {
22495    pub fn BNAddEnumerationBuilderMemberWithValue(
22496        e: *mut BNEnumerationBuilder,
22497        name: *const ::std::os::raw::c_char,
22498        value: u64,
22499    );
22500}
22501unsafe extern "C" {
22502    pub fn BNRemoveEnumerationBuilderMember(e: *mut BNEnumerationBuilder, idx: usize);
22503}
22504unsafe extern "C" {
22505    pub fn BNReplaceEnumerationBuilderMember(
22506        e: *mut BNEnumerationBuilder,
22507        idx: usize,
22508        name: *const ::std::os::raw::c_char,
22509        value: u64,
22510    );
22511}
22512unsafe extern "C" {
22513    pub fn BNCreateStructureFromOffsetAccess(
22514        view: *mut BNBinaryView,
22515        name: *mut BNQualifiedName,
22516        newMember: *mut bool,
22517    ) -> *mut BNStructure;
22518}
22519unsafe extern "C" {
22520    pub fn BNCreateStructureMemberFromAccess(
22521        view: *mut BNBinaryView,
22522        name: *mut BNQualifiedName,
22523        offset: u64,
22524    ) -> BNTypeWithConfidence;
22525}
22526unsafe extern "C" {
22527    pub fn BNAddExpressionParserMagicValue(
22528        view: *mut BNBinaryView,
22529        name: *const ::std::os::raw::c_char,
22530        value: u64,
22531    );
22532}
22533unsafe extern "C" {
22534    pub fn BNRemoveExpressionParserMagicValue(
22535        view: *mut BNBinaryView,
22536        name: *const ::std::os::raw::c_char,
22537    );
22538}
22539unsafe extern "C" {
22540    pub fn BNAddExpressionParserMagicValues(
22541        view: *mut BNBinaryView,
22542        names: *mut *const ::std::os::raw::c_char,
22543        values: *mut u64,
22544        count: usize,
22545    );
22546}
22547unsafe extern "C" {
22548    pub fn BNRemoveExpressionParserMagicValues(
22549        view: *mut BNBinaryView,
22550        names: *mut *const ::std::os::raw::c_char,
22551        count: usize,
22552    );
22553}
22554unsafe extern "C" {
22555    pub fn BNGetExpressionParserMagicValue(
22556        view: *mut BNBinaryView,
22557        name: *const ::std::os::raw::c_char,
22558        value: *mut u64,
22559    ) -> bool;
22560}
22561unsafe extern "C" {
22562    pub fn BNGetFunctionParentComponents(
22563        view: *mut BNBinaryView,
22564        func: *mut BNFunction,
22565        count: *mut usize,
22566    ) -> *mut *mut BNComponent;
22567}
22568unsafe extern "C" {
22569    pub fn BNGetDataVariableParentComponents(
22570        view: *mut BNBinaryView,
22571        dataVariable: u64,
22572        count: *mut usize,
22573    ) -> *mut *mut BNComponent;
22574}
22575unsafe extern "C" {
22576    pub fn BNCheckForStringAnnotationType(
22577        view: *mut BNBinaryView,
22578        addr: u64,
22579        value: *mut *mut ::std::os::raw::c_char,
22580        strType: *mut BNStringType,
22581        allowShortStrings: bool,
22582        allowLargeStrings: bool,
22583        childWidth: usize,
22584    ) -> bool;
22585}
22586unsafe extern "C" {
22587    pub fn BNLoadFilename(
22588        filename: *const ::std::os::raw::c_char,
22589        updateAnalysis: bool,
22590        options: *const ::std::os::raw::c_char,
22591        progress: BNProgressFunction,
22592        progressContext: *mut ::std::os::raw::c_void,
22593    ) -> *mut BNBinaryView;
22594}
22595unsafe extern "C" {
22596    pub fn BNLoadProjectFile(
22597        projectFile: *mut BNProjectFile,
22598        updateAnalysis: bool,
22599        options: *const ::std::os::raw::c_char,
22600        progress: BNProgressFunction,
22601        progressContext: *mut ::std::os::raw::c_void,
22602    ) -> *mut BNBinaryView;
22603}
22604unsafe extern "C" {
22605    pub fn BNLoadBinaryView(
22606        view: *mut BNBinaryView,
22607        updateAnalysis: bool,
22608        options: *const ::std::os::raw::c_char,
22609        progress: BNProgressFunction,
22610        progressContext: *mut ::std::os::raw::c_void,
22611    ) -> *mut BNBinaryView;
22612}
22613unsafe extern "C" {
22614    pub fn BNParseTextFormat(filename: *const ::std::os::raw::c_char) -> *mut BNBinaryView;
22615}
22616unsafe extern "C" {
22617    pub fn BNBinaryViewAddExternalLibrary(
22618        view: *mut BNBinaryView,
22619        name: *const ::std::os::raw::c_char,
22620        backingFile: *mut BNProjectFile,
22621        isAuto: bool,
22622    ) -> *mut BNExternalLibrary;
22623}
22624unsafe extern "C" {
22625    pub fn BNBinaryViewRemoveExternalLibrary(
22626        view: *mut BNBinaryView,
22627        name: *const ::std::os::raw::c_char,
22628    );
22629}
22630unsafe extern "C" {
22631    pub fn BNBinaryViewGetExternalLibrary(
22632        view: *mut BNBinaryView,
22633        name: *const ::std::os::raw::c_char,
22634    ) -> *mut BNExternalLibrary;
22635}
22636unsafe extern "C" {
22637    pub fn BNBinaryViewGetExternalLibraries(
22638        view: *mut BNBinaryView,
22639        count: *mut usize,
22640    ) -> *mut *mut BNExternalLibrary;
22641}
22642unsafe extern "C" {
22643    pub fn BNBinaryViewAddExternalLocation(
22644        view: *mut BNBinaryView,
22645        sourceSymbol: *mut BNSymbol,
22646        library: *mut BNExternalLibrary,
22647        targetSymbol: *const ::std::os::raw::c_char,
22648        targetAddress: *mut u64,
22649        isAuto: bool,
22650    ) -> *mut BNExternalLocation;
22651}
22652unsafe extern "C" {
22653    pub fn BNBinaryViewRemoveExternalLocation(view: *mut BNBinaryView, sourceSymbol: *mut BNSymbol);
22654}
22655unsafe extern "C" {
22656    pub fn BNBinaryViewGetExternalLocation(
22657        view: *mut BNBinaryView,
22658        sourceSymbol: *mut BNSymbol,
22659    ) -> *mut BNExternalLocation;
22660}
22661unsafe extern "C" {
22662    pub fn BNBinaryViewGetExternalLocations(
22663        view: *mut BNBinaryView,
22664        count: *mut usize,
22665    ) -> *mut *mut BNExternalLocation;
22666}
22667unsafe extern "C" {
22668    #[doc = " Source code processing"]
22669    pub fn BNPreprocessSource(
22670        source: *const ::std::os::raw::c_char,
22671        fileName: *const ::std::os::raw::c_char,
22672        output: *mut *mut ::std::os::raw::c_char,
22673        errors: *mut *mut ::std::os::raw::c_char,
22674        includeDirs: *mut *const ::std::os::raw::c_char,
22675        includeDirCount: usize,
22676    ) -> bool;
22677}
22678unsafe extern "C" {
22679    pub fn BNParseTypesFromSource(
22680        platform: *mut BNPlatform,
22681        source: *const ::std::os::raw::c_char,
22682        fileName: *const ::std::os::raw::c_char,
22683        result: *mut BNTypeParserResult,
22684        errors: *mut *mut ::std::os::raw::c_char,
22685        includeDirs: *mut *const ::std::os::raw::c_char,
22686        includeDirCount: usize,
22687        autoTypeSource: *const ::std::os::raw::c_char,
22688    ) -> bool;
22689}
22690unsafe extern "C" {
22691    pub fn BNParseTypesFromSourceFile(
22692        platform: *mut BNPlatform,
22693        fileName: *const ::std::os::raw::c_char,
22694        result: *mut BNTypeParserResult,
22695        errors: *mut *mut ::std::os::raw::c_char,
22696        includeDirs: *mut *const ::std::os::raw::c_char,
22697        includeDirCount: usize,
22698        autoTypeSource: *const ::std::os::raw::c_char,
22699    ) -> bool;
22700}
22701unsafe extern "C" {
22702    pub fn BNRegisterTypeParser(
22703        name: *const ::std::os::raw::c_char,
22704        callbacks: *mut BNTypeParserCallbacks,
22705    ) -> *mut BNTypeParser;
22706}
22707unsafe extern "C" {
22708    pub fn BNGetTypeParserList(count: *mut usize) -> *mut *mut BNTypeParser;
22709}
22710unsafe extern "C" {
22711    pub fn BNFreeTypeParserList(parsers: *mut *mut BNTypeParser);
22712}
22713unsafe extern "C" {
22714    pub fn BNGetTypeParserByName(name: *const ::std::os::raw::c_char) -> *mut BNTypeParser;
22715}
22716unsafe extern "C" {
22717    pub fn BNGetDefaultTypeParser() -> *mut BNTypeParser;
22718}
22719unsafe extern "C" {
22720    pub fn BNGetTypeParserName(parser: *mut BNTypeParser) -> *mut ::std::os::raw::c_char;
22721}
22722unsafe extern "C" {
22723    pub fn BNGetTypeParserOptionText(
22724        parser: *mut BNTypeParser,
22725        option: BNTypeParserOption,
22726        value: *const ::std::os::raw::c_char,
22727        result: *mut *mut ::std::os::raw::c_char,
22728    ) -> bool;
22729}
22730unsafe extern "C" {
22731    pub fn BNTypeParserPreprocessSource(
22732        parser: *mut BNTypeParser,
22733        source: *const ::std::os::raw::c_char,
22734        fileName: *const ::std::os::raw::c_char,
22735        platform: *mut BNPlatform,
22736        existingTypes: *mut BNTypeContainer,
22737        options: *const *const ::std::os::raw::c_char,
22738        optionCount: usize,
22739        includeDirs: *const *const ::std::os::raw::c_char,
22740        includeDirCount: usize,
22741        output: *mut *mut ::std::os::raw::c_char,
22742        errors: *mut *mut BNTypeParserError,
22743        errorCount: *mut usize,
22744    ) -> bool;
22745}
22746unsafe extern "C" {
22747    pub fn BNTypeParserParseTypesFromSource(
22748        parser: *mut BNTypeParser,
22749        source: *const ::std::os::raw::c_char,
22750        fileName: *const ::std::os::raw::c_char,
22751        platform: *mut BNPlatform,
22752        existingTypes: *mut BNTypeContainer,
22753        options: *const *const ::std::os::raw::c_char,
22754        optionCount: usize,
22755        includeDirs: *const *const ::std::os::raw::c_char,
22756        includeDirCount: usize,
22757        autoTypeSource: *const ::std::os::raw::c_char,
22758        result: *mut BNTypeParserResult,
22759        errors: *mut *mut BNTypeParserError,
22760        errorCount: *mut usize,
22761    ) -> bool;
22762}
22763unsafe extern "C" {
22764    pub fn BNTypeParserParseTypeString(
22765        parser: *mut BNTypeParser,
22766        source: *const ::std::os::raw::c_char,
22767        platform: *mut BNPlatform,
22768        existingTypes: *mut BNTypeContainer,
22769        result: *mut BNQualifiedNameAndType,
22770        errors: *mut *mut BNTypeParserError,
22771        errorCount: *mut usize,
22772    ) -> bool;
22773}
22774unsafe extern "C" {
22775    pub fn BNParseTypeParserOptionsText(
22776        optionsText: *const ::std::os::raw::c_char,
22777        count: *mut usize,
22778    ) -> *mut *mut ::std::os::raw::c_char;
22779}
22780unsafe extern "C" {
22781    pub fn BNFormatTypeParserParseErrors(
22782        errors: *mut BNTypeParserError,
22783        count: usize,
22784    ) -> *mut ::std::os::raw::c_char;
22785}
22786unsafe extern "C" {
22787    pub fn BNRegisterTypePrinter(
22788        name: *const ::std::os::raw::c_char,
22789        callbacks: *mut BNTypePrinterCallbacks,
22790    ) -> *mut BNTypePrinter;
22791}
22792unsafe extern "C" {
22793    pub fn BNGetTypePrinterList(count: *mut usize) -> *mut *mut BNTypePrinter;
22794}
22795unsafe extern "C" {
22796    pub fn BNFreeTypePrinterList(printers: *mut *mut BNTypePrinter);
22797}
22798unsafe extern "C" {
22799    pub fn BNGetTypePrinterByName(name: *const ::std::os::raw::c_char) -> *mut BNTypePrinter;
22800}
22801unsafe extern "C" {
22802    pub fn BNGetTypePrinterName(printer: *mut BNTypePrinter) -> *mut ::std::os::raw::c_char;
22803}
22804unsafe extern "C" {
22805    pub fn BNGetTypePrinterTypeTokens(
22806        printer: *mut BNTypePrinter,
22807        type_: *mut BNType,
22808        platform: *mut BNPlatform,
22809        name: *mut BNQualifiedName,
22810        baseConfidence: u8,
22811        escaping: BNTokenEscapingType,
22812        result: *mut *mut BNInstructionTextToken,
22813        resultCount: *mut usize,
22814    ) -> bool;
22815}
22816unsafe extern "C" {
22817    pub fn BNGetTypePrinterTypeTokensBeforeName(
22818        printer: *mut BNTypePrinter,
22819        type_: *mut BNType,
22820        platform: *mut BNPlatform,
22821        baseConfidence: u8,
22822        parentType: *mut BNType,
22823        escaping: BNTokenEscapingType,
22824        result: *mut *mut BNInstructionTextToken,
22825        resultCount: *mut usize,
22826    ) -> bool;
22827}
22828unsafe extern "C" {
22829    pub fn BNGetTypePrinterTypeTokensAfterName(
22830        printer: *mut BNTypePrinter,
22831        type_: *mut BNType,
22832        platform: *mut BNPlatform,
22833        baseConfidence: u8,
22834        parentType: *mut BNType,
22835        escaping: BNTokenEscapingType,
22836        result: *mut *mut BNInstructionTextToken,
22837        resultCount: *mut usize,
22838    ) -> bool;
22839}
22840unsafe extern "C" {
22841    pub fn BNGetTypePrinterTypeString(
22842        printer: *mut BNTypePrinter,
22843        type_: *mut BNType,
22844        platform: *mut BNPlatform,
22845        name: *mut BNQualifiedName,
22846        escaping: BNTokenEscapingType,
22847        result: *mut *mut ::std::os::raw::c_char,
22848    ) -> bool;
22849}
22850unsafe extern "C" {
22851    pub fn BNGetTypePrinterTypeStringBeforeName(
22852        printer: *mut BNTypePrinter,
22853        type_: *mut BNType,
22854        platform: *mut BNPlatform,
22855        escaping: BNTokenEscapingType,
22856        result: *mut *mut ::std::os::raw::c_char,
22857    ) -> bool;
22858}
22859unsafe extern "C" {
22860    pub fn BNGetTypePrinterTypeStringAfterName(
22861        printer: *mut BNTypePrinter,
22862        type_: *mut BNType,
22863        platform: *mut BNPlatform,
22864        escaping: BNTokenEscapingType,
22865        result: *mut *mut ::std::os::raw::c_char,
22866    ) -> bool;
22867}
22868unsafe extern "C" {
22869    pub fn BNGetTypePrinterTypeLines(
22870        printer: *mut BNTypePrinter,
22871        type_: *mut BNType,
22872        types: *mut BNTypeContainer,
22873        name: *mut BNQualifiedName,
22874        paddingCols: ::std::os::raw::c_int,
22875        collapsed: bool,
22876        escaping: BNTokenEscapingType,
22877        result: *mut *mut BNTypeDefinitionLine,
22878        resultCount: *mut usize,
22879    ) -> bool;
22880}
22881unsafe extern "C" {
22882    pub fn BNTypePrinterPrintAllTypes(
22883        printer: *mut BNTypePrinter,
22884        names: *mut BNQualifiedName,
22885        types: *mut *mut BNType,
22886        typeCount: usize,
22887        data: *mut BNBinaryView,
22888        paddingCols: ::std::os::raw::c_int,
22889        escaping: BNTokenEscapingType,
22890        result: *mut *mut ::std::os::raw::c_char,
22891    ) -> bool;
22892}
22893unsafe extern "C" {
22894    pub fn BNTypePrinterDefaultPrintAllTypes(
22895        printer: *mut BNTypePrinter,
22896        names: *mut BNQualifiedName,
22897        types: *mut *mut BNType,
22898        typeCount: usize,
22899        data: *mut BNBinaryView,
22900        paddingCols: ::std::os::raw::c_int,
22901        escaping: BNTokenEscapingType,
22902        result: *mut *mut ::std::os::raw::c_char,
22903    ) -> bool;
22904}
22905unsafe extern "C" {
22906    pub fn BNFreeTypeParserResult(result: *mut BNTypeParserResult);
22907}
22908unsafe extern "C" {
22909    pub fn BNFreeTypeParserErrors(errors: *mut BNTypeParserError, count: usize);
22910}
22911unsafe extern "C" {
22912    #[doc = " Updates"]
22913    pub fn BNGetUpdateChannels(
22914        count: *mut usize,
22915        errors: *mut *mut ::std::os::raw::c_char,
22916    ) -> *mut BNUpdateChannel;
22917}
22918unsafe extern "C" {
22919    pub fn BNFreeUpdateChannelList(list: *mut BNUpdateChannel, count: usize);
22920}
22921unsafe extern "C" {
22922    pub fn BNGetUpdateChannelVersions(
22923        channel: *const ::std::os::raw::c_char,
22924        count: *mut usize,
22925        errors: *mut *mut ::std::os::raw::c_char,
22926    ) -> *mut BNUpdateVersion;
22927}
22928unsafe extern "C" {
22929    pub fn BNFreeUpdateChannelVersionList(list: *mut BNUpdateVersion, count: usize);
22930}
22931unsafe extern "C" {
22932    pub fn BNGetFullInfoUpdateChannels(
22933        count: *mut usize,
22934        errors: *mut *mut ::std::os::raw::c_char,
22935    ) -> *mut BNUpdateChannelFullInfo;
22936}
22937unsafe extern "C" {
22938    pub fn BNFreeFullInfoUpdateChannels(list: *mut BNUpdateChannelFullInfo, count: usize);
22939}
22940unsafe extern "C" {
22941    pub fn BNAreUpdatesAvailable(
22942        channel: *const ::std::os::raw::c_char,
22943        expireTime: *mut u64,
22944        serverTime: *mut u64,
22945        errors: *mut *mut ::std::os::raw::c_char,
22946    ) -> bool;
22947}
22948unsafe extern "C" {
22949    pub fn BNUpdateToVersion(
22950        channel: *const ::std::os::raw::c_char,
22951        version: *const ::std::os::raw::c_char,
22952        errors: *mut *mut ::std::os::raw::c_char,
22953        progress: BNProgressFunction,
22954        context: *mut ::std::os::raw::c_void,
22955    ) -> BNUpdateResult;
22956}
22957unsafe extern "C" {
22958    pub fn BNUpdateToLatestVersion(
22959        channel: *const ::std::os::raw::c_char,
22960        errors: *mut *mut ::std::os::raw::c_char,
22961        progress: BNProgressFunction,
22962        context: *mut ::std::os::raw::c_void,
22963    ) -> BNUpdateResult;
22964}
22965unsafe extern "C" {
22966    pub fn BNAreAutoUpdatesEnabled() -> bool;
22967}
22968unsafe extern "C" {
22969    pub fn BNSetAutoUpdatesEnabled(enabled: bool);
22970}
22971unsafe extern "C" {
22972    pub fn BNGetTimeSinceLastUpdateCheck() -> u64;
22973}
22974unsafe extern "C" {
22975    pub fn BNUpdatesChecked();
22976}
22977unsafe extern "C" {
22978    pub fn BNGetActiveUpdateChannel() -> *mut ::std::os::raw::c_char;
22979}
22980unsafe extern "C" {
22981    pub fn BNSetActiveUpdateChannel(channel: *const ::std::os::raw::c_char);
22982}
22983unsafe extern "C" {
22984    pub fn BNIsUpdateInstallationPending() -> bool;
22985}
22986unsafe extern "C" {
22987    pub fn BNInstallPendingUpdate(errors: *mut *mut ::std::os::raw::c_char);
22988}
22989unsafe extern "C" {
22990    #[doc = " Plugin commands"]
22991    pub fn BNRegisterPluginCommandGlobal(
22992        name: *const ::std::os::raw::c_char,
22993        description: *const ::std::os::raw::c_char,
22994        action: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
22995        isValid: ::std::option::Option<
22996            unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool,
22997        >,
22998        context: *mut ::std::os::raw::c_void,
22999    );
23000}
23001unsafe extern "C" {
23002    pub fn BNRegisterPluginCommand(
23003        name: *const ::std::os::raw::c_char,
23004        description: *const ::std::os::raw::c_char,
23005        action: ::std::option::Option<
23006            unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, view: *mut BNBinaryView),
23007        >,
23008        isValid: ::std::option::Option<
23009            unsafe extern "C" fn(
23010                ctxt: *mut ::std::os::raw::c_void,
23011                view: *mut BNBinaryView,
23012            ) -> bool,
23013        >,
23014        context: *mut ::std::os::raw::c_void,
23015    );
23016}
23017unsafe extern "C" {
23018    pub fn BNRegisterPluginCommandForAddress(
23019        name: *const ::std::os::raw::c_char,
23020        description: *const ::std::os::raw::c_char,
23021        action: ::std::option::Option<
23022            unsafe extern "C" fn(
23023                ctxt: *mut ::std::os::raw::c_void,
23024                view: *mut BNBinaryView,
23025                addr: u64,
23026            ),
23027        >,
23028        isValid: ::std::option::Option<
23029            unsafe extern "C" fn(
23030                ctxt: *mut ::std::os::raw::c_void,
23031                view: *mut BNBinaryView,
23032                addr: u64,
23033            ) -> bool,
23034        >,
23035        context: *mut ::std::os::raw::c_void,
23036    );
23037}
23038unsafe extern "C" {
23039    pub fn BNRegisterPluginCommandForRange(
23040        name: *const ::std::os::raw::c_char,
23041        description: *const ::std::os::raw::c_char,
23042        action: ::std::option::Option<
23043            unsafe extern "C" fn(
23044                ctxt: *mut ::std::os::raw::c_void,
23045                view: *mut BNBinaryView,
23046                addr: u64,
23047                len: u64,
23048            ),
23049        >,
23050        isValid: ::std::option::Option<
23051            unsafe extern "C" fn(
23052                ctxt: *mut ::std::os::raw::c_void,
23053                view: *mut BNBinaryView,
23054                addr: u64,
23055                len: u64,
23056            ) -> bool,
23057        >,
23058        context: *mut ::std::os::raw::c_void,
23059    );
23060}
23061unsafe extern "C" {
23062    pub fn BNRegisterPluginCommandForFunction(
23063        name: *const ::std::os::raw::c_char,
23064        description: *const ::std::os::raw::c_char,
23065        action: ::std::option::Option<
23066            unsafe extern "C" fn(
23067                ctxt: *mut ::std::os::raw::c_void,
23068                view: *mut BNBinaryView,
23069                func: *mut BNFunction,
23070            ),
23071        >,
23072        isValid: ::std::option::Option<
23073            unsafe extern "C" fn(
23074                ctxt: *mut ::std::os::raw::c_void,
23075                view: *mut BNBinaryView,
23076                func: *mut BNFunction,
23077            ) -> bool,
23078        >,
23079        context: *mut ::std::os::raw::c_void,
23080    );
23081}
23082unsafe extern "C" {
23083    pub fn BNRegisterPluginCommandForLowLevelILFunction(
23084        name: *const ::std::os::raw::c_char,
23085        description: *const ::std::os::raw::c_char,
23086        action: ::std::option::Option<
23087            unsafe extern "C" fn(
23088                ctxt: *mut ::std::os::raw::c_void,
23089                view: *mut BNBinaryView,
23090                func: *mut BNLowLevelILFunction,
23091            ),
23092        >,
23093        isValid: ::std::option::Option<
23094            unsafe extern "C" fn(
23095                ctxt: *mut ::std::os::raw::c_void,
23096                view: *mut BNBinaryView,
23097                func: *mut BNLowLevelILFunction,
23098            ) -> bool,
23099        >,
23100        context: *mut ::std::os::raw::c_void,
23101    );
23102}
23103unsafe extern "C" {
23104    pub fn BNRegisterPluginCommandForLowLevelILInstruction(
23105        name: *const ::std::os::raw::c_char,
23106        description: *const ::std::os::raw::c_char,
23107        action: ::std::option::Option<
23108            unsafe extern "C" fn(
23109                ctxt: *mut ::std::os::raw::c_void,
23110                view: *mut BNBinaryView,
23111                func: *mut BNLowLevelILFunction,
23112                instr: usize,
23113            ),
23114        >,
23115        isValid: ::std::option::Option<
23116            unsafe extern "C" fn(
23117                ctxt: *mut ::std::os::raw::c_void,
23118                view: *mut BNBinaryView,
23119                func: *mut BNLowLevelILFunction,
23120                instr: usize,
23121            ) -> bool,
23122        >,
23123        context: *mut ::std::os::raw::c_void,
23124    );
23125}
23126unsafe extern "C" {
23127    pub fn BNRegisterPluginCommandForMediumLevelILFunction(
23128        name: *const ::std::os::raw::c_char,
23129        description: *const ::std::os::raw::c_char,
23130        action: ::std::option::Option<
23131            unsafe extern "C" fn(
23132                ctxt: *mut ::std::os::raw::c_void,
23133                view: *mut BNBinaryView,
23134                func: *mut BNMediumLevelILFunction,
23135            ),
23136        >,
23137        isValid: ::std::option::Option<
23138            unsafe extern "C" fn(
23139                ctxt: *mut ::std::os::raw::c_void,
23140                view: *mut BNBinaryView,
23141                func: *mut BNMediumLevelILFunction,
23142            ) -> bool,
23143        >,
23144        context: *mut ::std::os::raw::c_void,
23145    );
23146}
23147unsafe extern "C" {
23148    pub fn BNRegisterPluginCommandForMediumLevelILInstruction(
23149        name: *const ::std::os::raw::c_char,
23150        description: *const ::std::os::raw::c_char,
23151        action: ::std::option::Option<
23152            unsafe extern "C" fn(
23153                ctxt: *mut ::std::os::raw::c_void,
23154                view: *mut BNBinaryView,
23155                func: *mut BNMediumLevelILFunction,
23156                instr: usize,
23157            ),
23158        >,
23159        isValid: ::std::option::Option<
23160            unsafe extern "C" fn(
23161                ctxt: *mut ::std::os::raw::c_void,
23162                view: *mut BNBinaryView,
23163                func: *mut BNMediumLevelILFunction,
23164                instr: usize,
23165            ) -> bool,
23166        >,
23167        context: *mut ::std::os::raw::c_void,
23168    );
23169}
23170unsafe extern "C" {
23171    pub fn BNRegisterPluginCommandForHighLevelILFunction(
23172        name: *const ::std::os::raw::c_char,
23173        description: *const ::std::os::raw::c_char,
23174        action: ::std::option::Option<
23175            unsafe extern "C" fn(
23176                ctxt: *mut ::std::os::raw::c_void,
23177                view: *mut BNBinaryView,
23178                func: *mut BNHighLevelILFunction,
23179            ),
23180        >,
23181        isValid: ::std::option::Option<
23182            unsafe extern "C" fn(
23183                ctxt: *mut ::std::os::raw::c_void,
23184                view: *mut BNBinaryView,
23185                func: *mut BNHighLevelILFunction,
23186            ) -> bool,
23187        >,
23188        context: *mut ::std::os::raw::c_void,
23189    );
23190}
23191unsafe extern "C" {
23192    pub fn BNRegisterPluginCommandForHighLevelILInstruction(
23193        name: *const ::std::os::raw::c_char,
23194        description: *const ::std::os::raw::c_char,
23195        action: ::std::option::Option<
23196            unsafe extern "C" fn(
23197                ctxt: *mut ::std::os::raw::c_void,
23198                view: *mut BNBinaryView,
23199                func: *mut BNHighLevelILFunction,
23200                instr: usize,
23201            ),
23202        >,
23203        isValid: ::std::option::Option<
23204            unsafe extern "C" fn(
23205                ctxt: *mut ::std::os::raw::c_void,
23206                view: *mut BNBinaryView,
23207                func: *mut BNHighLevelILFunction,
23208                instr: usize,
23209            ) -> bool,
23210        >,
23211        context: *mut ::std::os::raw::c_void,
23212    );
23213}
23214unsafe extern "C" {
23215    pub fn BNRegisterPluginCommandForProject(
23216        name: *const ::std::os::raw::c_char,
23217        description: *const ::std::os::raw::c_char,
23218        action: ::std::option::Option<
23219            unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, project: *mut BNProject),
23220        >,
23221        isValid: ::std::option::Option<
23222            unsafe extern "C" fn(
23223                ctxt: *mut ::std::os::raw::c_void,
23224                project: *mut BNProject,
23225            ) -> bool,
23226        >,
23227        context: *mut ::std::os::raw::c_void,
23228    );
23229}
23230unsafe extern "C" {
23231    pub fn BNGetAllPluginCommands(count: *mut usize) -> *mut BNPluginCommand;
23232}
23233unsafe extern "C" {
23234    pub fn BNGetValidPluginCommandsGlobal(count: *mut usize) -> *mut BNPluginCommand;
23235}
23236unsafe extern "C" {
23237    pub fn BNGetValidPluginCommands(
23238        view: *mut BNBinaryView,
23239        count: *mut usize,
23240    ) -> *mut BNPluginCommand;
23241}
23242unsafe extern "C" {
23243    pub fn BNGetValidPluginCommandsForAddress(
23244        view: *mut BNBinaryView,
23245        addr: u64,
23246        count: *mut usize,
23247    ) -> *mut BNPluginCommand;
23248}
23249unsafe extern "C" {
23250    pub fn BNGetValidPluginCommandsForRange(
23251        view: *mut BNBinaryView,
23252        addr: u64,
23253        len: u64,
23254        count: *mut usize,
23255    ) -> *mut BNPluginCommand;
23256}
23257unsafe extern "C" {
23258    pub fn BNGetValidPluginCommandsForFunction(
23259        view: *mut BNBinaryView,
23260        func: *mut BNFunction,
23261        count: *mut usize,
23262    ) -> *mut BNPluginCommand;
23263}
23264unsafe extern "C" {
23265    pub fn BNGetValidPluginCommandsForLowLevelILFunction(
23266        view: *mut BNBinaryView,
23267        func: *mut BNLowLevelILFunction,
23268        count: *mut usize,
23269    ) -> *mut BNPluginCommand;
23270}
23271unsafe extern "C" {
23272    pub fn BNGetValidPluginCommandsForLowLevelILInstruction(
23273        view: *mut BNBinaryView,
23274        func: *mut BNLowLevelILFunction,
23275        instr: usize,
23276        count: *mut usize,
23277    ) -> *mut BNPluginCommand;
23278}
23279unsafe extern "C" {
23280    pub fn BNGetValidPluginCommandsForMediumLevelILFunction(
23281        view: *mut BNBinaryView,
23282        func: *mut BNMediumLevelILFunction,
23283        count: *mut usize,
23284    ) -> *mut BNPluginCommand;
23285}
23286unsafe extern "C" {
23287    pub fn BNGetValidPluginCommandsForMediumLevelILInstruction(
23288        view: *mut BNBinaryView,
23289        func: *mut BNMediumLevelILFunction,
23290        instr: usize,
23291        count: *mut usize,
23292    ) -> *mut BNPluginCommand;
23293}
23294unsafe extern "C" {
23295    pub fn BNGetValidPluginCommandsForHighLevelILFunction(
23296        view: *mut BNBinaryView,
23297        func: *mut BNHighLevelILFunction,
23298        count: *mut usize,
23299    ) -> *mut BNPluginCommand;
23300}
23301unsafe extern "C" {
23302    pub fn BNGetValidPluginCommandsForHighLevelILInstruction(
23303        view: *mut BNBinaryView,
23304        func: *mut BNHighLevelILFunction,
23305        instr: usize,
23306        count: *mut usize,
23307    ) -> *mut BNPluginCommand;
23308}
23309unsafe extern "C" {
23310    pub fn BNGetValidPluginCommandsForProject(
23311        project: *mut BNProject,
23312        count: *mut usize,
23313    ) -> *mut BNPluginCommand;
23314}
23315unsafe extern "C" {
23316    pub fn BNFreePluginCommandList(commands: *mut BNPluginCommand);
23317}
23318unsafe extern "C" {
23319    #[doc = " Calling conventions"]
23320    pub fn BNCreateCallingConvention(
23321        arch: *mut BNArchitecture,
23322        name: *const ::std::os::raw::c_char,
23323        cc: *mut BNCustomCallingConvention,
23324    ) -> *mut BNCallingConvention;
23325}
23326unsafe extern "C" {
23327    pub fn BNRegisterCallingConvention(arch: *mut BNArchitecture, cc: *mut BNCallingConvention);
23328}
23329unsafe extern "C" {
23330    pub fn BNNewCallingConventionReference(
23331        cc: *mut BNCallingConvention,
23332    ) -> *mut BNCallingConvention;
23333}
23334unsafe extern "C" {
23335    pub fn BNFreeCallingConvention(cc: *mut BNCallingConvention);
23336}
23337unsafe extern "C" {
23338    pub fn BNGetArchitectureCallingConventions(
23339        arch: *mut BNArchitecture,
23340        count: *mut usize,
23341    ) -> *mut *mut BNCallingConvention;
23342}
23343unsafe extern "C" {
23344    pub fn BNFreeCallingConventionList(list: *mut *mut BNCallingConvention, count: usize);
23345}
23346unsafe extern "C" {
23347    pub fn BNGetArchitectureCallingConventionByName(
23348        arch: *mut BNArchitecture,
23349        name: *const ::std::os::raw::c_char,
23350    ) -> *mut BNCallingConvention;
23351}
23352unsafe extern "C" {
23353    pub fn BNGetCallingConventionArchitecture(cc: *mut BNCallingConvention) -> *mut BNArchitecture;
23354}
23355unsafe extern "C" {
23356    pub fn BNGetCallingConventionName(cc: *mut BNCallingConvention) -> *mut ::std::os::raw::c_char;
23357}
23358unsafe extern "C" {
23359    pub fn BNGetCallerSavedRegisters(cc: *mut BNCallingConvention, count: *mut usize) -> *mut u32;
23360}
23361unsafe extern "C" {
23362    pub fn BNGetCalleeSavedRegisters(cc: *mut BNCallingConvention, count: *mut usize) -> *mut u32;
23363}
23364unsafe extern "C" {
23365    pub fn BNGetIntegerArgumentRegisters(
23366        cc: *mut BNCallingConvention,
23367        count: *mut usize,
23368    ) -> *mut u32;
23369}
23370unsafe extern "C" {
23371    pub fn BNGetFloatArgumentRegisters(cc: *mut BNCallingConvention, count: *mut usize)
23372    -> *mut u32;
23373}
23374unsafe extern "C" {
23375    pub fn BNGetRequiredArgumentRegisters(
23376        cc: *mut BNCallingConvention,
23377        count: *mut usize,
23378    ) -> *mut u32;
23379}
23380unsafe extern "C" {
23381    pub fn BNGetRequiredClobberedRegisters(
23382        cc: *mut BNCallingConvention,
23383        count: *mut usize,
23384    ) -> *mut u32;
23385}
23386unsafe extern "C" {
23387    pub fn BNAreArgumentRegistersSharedIndex(cc: *mut BNCallingConvention) -> bool;
23388}
23389unsafe extern "C" {
23390    pub fn BNAreArgumentRegistersUsedForVarArgs(cc: *mut BNCallingConvention) -> bool;
23391}
23392unsafe extern "C" {
23393    pub fn BNIsStackReservedForArgumentRegisters(cc: *mut BNCallingConvention) -> bool;
23394}
23395unsafe extern "C" {
23396    pub fn BNIsStackAdjustedOnReturn(cc: *mut BNCallingConvention) -> bool;
23397}
23398unsafe extern "C" {
23399    pub fn BNIsEligibleForHeuristics(cc: *mut BNCallingConvention) -> bool;
23400}
23401unsafe extern "C" {
23402    pub fn BNGetIntegerReturnValueRegister(cc: *mut BNCallingConvention) -> u32;
23403}
23404unsafe extern "C" {
23405    pub fn BNGetHighIntegerReturnValueRegister(cc: *mut BNCallingConvention) -> u32;
23406}
23407unsafe extern "C" {
23408    pub fn BNGetFloatReturnValueRegister(cc: *mut BNCallingConvention) -> u32;
23409}
23410unsafe extern "C" {
23411    pub fn BNGetGlobalPointerRegister(cc: *mut BNCallingConvention) -> u32;
23412}
23413unsafe extern "C" {
23414    pub fn BNGetImplicitlyDefinedRegisters(
23415        cc: *mut BNCallingConvention,
23416        count: *mut usize,
23417    ) -> *mut u32;
23418}
23419unsafe extern "C" {
23420    pub fn BNGetIncomingRegisterValue(
23421        cc: *mut BNCallingConvention,
23422        reg: u32,
23423        func: *mut BNFunction,
23424    ) -> BNRegisterValue;
23425}
23426unsafe extern "C" {
23427    pub fn BNGetIncomingFlagValue(
23428        cc: *mut BNCallingConvention,
23429        reg: u32,
23430        func: *mut BNFunction,
23431    ) -> BNRegisterValue;
23432}
23433unsafe extern "C" {
23434    pub fn BNGetVariablesForParametersDefaultPermittedArgs(
23435        cc: *mut BNCallingConvention,
23436        params: *const BNFunctionParameter,
23437        paramCount: usize,
23438        count: *mut usize,
23439    ) -> *mut BNVariable;
23440}
23441unsafe extern "C" {
23442    pub fn BNGetVariablesForParameters(
23443        cc: *mut BNCallingConvention,
23444        params: *const BNFunctionParameter,
23445        paramCount: usize,
23446        permittedArgs: *const u32,
23447        permittedArgCount: usize,
23448        count: *mut usize,
23449    ) -> *mut BNVariable;
23450}
23451unsafe extern "C" {
23452    pub fn BNGetParameterOrderingForVariables(
23453        cc: *mut BNCallingConvention,
23454        paramVars: *const BNVariable,
23455        paramTypes: *mut *const BNType,
23456        paramCount: usize,
23457        count: *mut usize,
23458    ) -> *mut BNVariable;
23459}
23460unsafe extern "C" {
23461    pub fn BNGetStackAdjustmentForVariables(
23462        cc: *mut BNCallingConvention,
23463        paramVars: *const BNVariable,
23464        paramTypes: *mut *const BNType,
23465        paramCount: usize,
23466    ) -> i64;
23467}
23468unsafe extern "C" {
23469    pub fn BNGetRegisterStackAdjustments(
23470        cc: *mut BNCallingConvention,
23471        returnRegs: *const u32,
23472        returnRegCount: usize,
23473        returnType: *mut BNType,
23474        params: *const BNVariable,
23475        paramCount: usize,
23476        types: *mut *const BNType,
23477        typeCount: usize,
23478        resultRegisters: *mut *mut u32,
23479        resultAdjustments: *mut *mut u32,
23480    ) -> usize;
23481}
23482unsafe extern "C" {
23483    pub fn BNGetIncomingVariableForParameterVariable(
23484        cc: *mut BNCallingConvention,
23485        var: *const BNVariable,
23486        func: *mut BNFunction,
23487    ) -> BNVariable;
23488}
23489unsafe extern "C" {
23490    pub fn BNGetParameterVariableForIncomingVariable(
23491        cc: *mut BNCallingConvention,
23492        var: *const BNVariable,
23493        func: *mut BNFunction,
23494    ) -> BNVariable;
23495}
23496unsafe extern "C" {
23497    pub fn BNGetDefaultIncomingVariableForParameterVariable(
23498        cc: *mut BNCallingConvention,
23499        var: *const BNVariable,
23500    ) -> BNVariable;
23501}
23502unsafe extern "C" {
23503    pub fn BNGetDefaultParameterVariableForIncomingVariable(
23504        cc: *mut BNCallingConvention,
23505        var: *const BNVariable,
23506    ) -> BNVariable;
23507}
23508unsafe extern "C" {
23509    pub fn BNGetArchitectureDefaultCallingConvention(
23510        arch: *mut BNArchitecture,
23511    ) -> *mut BNCallingConvention;
23512}
23513unsafe extern "C" {
23514    pub fn BNGetArchitectureCdeclCallingConvention(
23515        arch: *mut BNArchitecture,
23516    ) -> *mut BNCallingConvention;
23517}
23518unsafe extern "C" {
23519    pub fn BNGetArchitectureStdcallCallingConvention(
23520        arch: *mut BNArchitecture,
23521    ) -> *mut BNCallingConvention;
23522}
23523unsafe extern "C" {
23524    pub fn BNGetArchitectureFastcallCallingConvention(
23525        arch: *mut BNArchitecture,
23526    ) -> *mut BNCallingConvention;
23527}
23528unsafe extern "C" {
23529    pub fn BNSetArchitectureDefaultCallingConvention(
23530        arch: *mut BNArchitecture,
23531        cc: *mut BNCallingConvention,
23532    );
23533}
23534unsafe extern "C" {
23535    pub fn BNSetArchitectureCdeclCallingConvention(
23536        arch: *mut BNArchitecture,
23537        cc: *mut BNCallingConvention,
23538    );
23539}
23540unsafe extern "C" {
23541    pub fn BNSetArchitectureStdcallCallingConvention(
23542        arch: *mut BNArchitecture,
23543        cc: *mut BNCallingConvention,
23544    );
23545}
23546unsafe extern "C" {
23547    pub fn BNSetArchitectureFastcallCallingConvention(
23548        arch: *mut BNArchitecture,
23549        cc: *mut BNCallingConvention,
23550    );
23551}
23552unsafe extern "C" {
23553    #[doc = " Platforms"]
23554    pub fn BNCreatePlatform(
23555        arch: *mut BNArchitecture,
23556        name: *const ::std::os::raw::c_char,
23557    ) -> *mut BNPlatform;
23558}
23559unsafe extern "C" {
23560    pub fn BNCreatePlatformWithTypes(
23561        arch: *mut BNArchitecture,
23562        name: *const ::std::os::raw::c_char,
23563        typeFile: *const ::std::os::raw::c_char,
23564        includeDirs: *mut *const ::std::os::raw::c_char,
23565        includeDirCount: usize,
23566    ) -> *mut BNPlatform;
23567}
23568unsafe extern "C" {
23569    pub fn BNCreateCustomPlatform(
23570        arch: *mut BNArchitecture,
23571        name: *const ::std::os::raw::c_char,
23572        impl_: *mut BNCustomPlatform,
23573    ) -> *mut BNPlatform;
23574}
23575unsafe extern "C" {
23576    pub fn BNCreateCustomPlatformWithTypes(
23577        arch: *mut BNArchitecture,
23578        name: *const ::std::os::raw::c_char,
23579        impl_: *mut BNCustomPlatform,
23580        typeFile: *const ::std::os::raw::c_char,
23581        includeDirs: *mut *const ::std::os::raw::c_char,
23582        includeDirCount: usize,
23583    ) -> *mut BNPlatform;
23584}
23585unsafe extern "C" {
23586    pub fn BNRegisterPlatform(os: *const ::std::os::raw::c_char, platform: *mut BNPlatform);
23587}
23588unsafe extern "C" {
23589    pub fn BNNewPlatformReference(platform: *mut BNPlatform) -> *mut BNPlatform;
23590}
23591unsafe extern "C" {
23592    pub fn BNFreePlatform(platform: *mut BNPlatform);
23593}
23594unsafe extern "C" {
23595    pub fn BNGetPlatformName(platform: *mut BNPlatform) -> *mut ::std::os::raw::c_char;
23596}
23597unsafe extern "C" {
23598    pub fn BNGetPlatformArchitecture(platform: *mut BNPlatform) -> *mut BNArchitecture;
23599}
23600unsafe extern "C" {
23601    pub fn BNGetPlatformByName(name: *const ::std::os::raw::c_char) -> *mut BNPlatform;
23602}
23603unsafe extern "C" {
23604    pub fn BNGetPlatformList(count: *mut usize) -> *mut *mut BNPlatform;
23605}
23606unsafe extern "C" {
23607    pub fn BNGetPlatformListByArchitecture(
23608        arch: *mut BNArchitecture,
23609        count: *mut usize,
23610    ) -> *mut *mut BNPlatform;
23611}
23612unsafe extern "C" {
23613    pub fn BNGetPlatformListByOS(
23614        os: *const ::std::os::raw::c_char,
23615        count: *mut usize,
23616    ) -> *mut *mut BNPlatform;
23617}
23618unsafe extern "C" {
23619    pub fn BNGetPlatformListByOSAndArchitecture(
23620        os: *const ::std::os::raw::c_char,
23621        arch: *mut BNArchitecture,
23622        count: *mut usize,
23623    ) -> *mut *mut BNPlatform;
23624}
23625unsafe extern "C" {
23626    pub fn BNFreePlatformList(platform: *mut *mut BNPlatform, count: usize);
23627}
23628unsafe extern "C" {
23629    pub fn BNGetPlatformOSList(count: *mut usize) -> *mut *mut ::std::os::raw::c_char;
23630}
23631unsafe extern "C" {
23632    pub fn BNFreePlatformOSList(list: *mut *mut ::std::os::raw::c_char, count: usize);
23633}
23634unsafe extern "C" {
23635    pub fn BNGetPlatformDefaultCallingConvention(
23636        platform: *mut BNPlatform,
23637    ) -> *mut BNCallingConvention;
23638}
23639unsafe extern "C" {
23640    pub fn BNGetPlatformCdeclCallingConvention(
23641        platform: *mut BNPlatform,
23642    ) -> *mut BNCallingConvention;
23643}
23644unsafe extern "C" {
23645    pub fn BNGetPlatformStdcallCallingConvention(
23646        platform: *mut BNPlatform,
23647    ) -> *mut BNCallingConvention;
23648}
23649unsafe extern "C" {
23650    pub fn BNGetPlatformFastcallCallingConvention(
23651        platform: *mut BNPlatform,
23652    ) -> *mut BNCallingConvention;
23653}
23654unsafe extern "C" {
23655    pub fn BNGetPlatformCallingConventions(
23656        platform: *mut BNPlatform,
23657        count: *mut usize,
23658    ) -> *mut *mut BNCallingConvention;
23659}
23660unsafe extern "C" {
23661    pub fn BNGetPlatformSystemCallConvention(platform: *mut BNPlatform)
23662    -> *mut BNCallingConvention;
23663}
23664unsafe extern "C" {
23665    pub fn BNRegisterPlatformCallingConvention(
23666        platform: *mut BNPlatform,
23667        cc: *mut BNCallingConvention,
23668    );
23669}
23670unsafe extern "C" {
23671    pub fn BNRegisterPlatformDefaultCallingConvention(
23672        platform: *mut BNPlatform,
23673        cc: *mut BNCallingConvention,
23674    );
23675}
23676unsafe extern "C" {
23677    pub fn BNRegisterPlatformCdeclCallingConvention(
23678        platform: *mut BNPlatform,
23679        cc: *mut BNCallingConvention,
23680    );
23681}
23682unsafe extern "C" {
23683    pub fn BNRegisterPlatformStdcallCallingConvention(
23684        platform: *mut BNPlatform,
23685        cc: *mut BNCallingConvention,
23686    );
23687}
23688unsafe extern "C" {
23689    pub fn BNRegisterPlatformFastcallCallingConvention(
23690        platform: *mut BNPlatform,
23691        cc: *mut BNCallingConvention,
23692    );
23693}
23694unsafe extern "C" {
23695    pub fn BNSetPlatformSystemCallConvention(
23696        platform: *mut BNPlatform,
23697        cc: *mut BNCallingConvention,
23698    );
23699}
23700unsafe extern "C" {
23701    pub fn BNGetPlatformGlobalRegisters(platform: *mut BNPlatform, count: *mut usize) -> *mut u32;
23702}
23703unsafe extern "C" {
23704    pub fn BNGetPlatformGlobalRegisterType(platform: *mut BNPlatform, reg: u32) -> *mut BNType;
23705}
23706unsafe extern "C" {
23707    pub fn BNGetPlatformAddressSize(platform: *mut BNPlatform) -> usize;
23708}
23709unsafe extern "C" {
23710    pub fn BNPlatformAdjustTypeParserInput(
23711        platform: *mut BNPlatform,
23712        parser: *mut BNTypeParser,
23713        argumentsIn: *const *const ::std::os::raw::c_char,
23714        argumentsLenIn: usize,
23715        sourceFileNamesIn: *const *const ::std::os::raw::c_char,
23716        sourceFileValuesIn: *const *const ::std::os::raw::c_char,
23717        sourceFilesLenIn: usize,
23718        argumentsOut: *mut *mut *mut ::std::os::raw::c_char,
23719        argumentsLenOut: *mut usize,
23720        sourceFileNamesOut: *mut *mut *mut ::std::os::raw::c_char,
23721        sourceFileValuesOut: *mut *mut *mut ::std::os::raw::c_char,
23722        sourceFilesLenOut: *mut usize,
23723    );
23724}
23725unsafe extern "C" {
23726    pub fn BNGetArchitectureStandalonePlatform(arch: *mut BNArchitecture) -> *mut BNPlatform;
23727}
23728unsafe extern "C" {
23729    pub fn BNGetRelatedPlatform(
23730        platform: *mut BNPlatform,
23731        arch: *mut BNArchitecture,
23732    ) -> *mut BNPlatform;
23733}
23734unsafe extern "C" {
23735    pub fn BNAddRelatedPlatform(
23736        platform: *mut BNPlatform,
23737        arch: *mut BNArchitecture,
23738        related: *mut BNPlatform,
23739    );
23740}
23741unsafe extern "C" {
23742    pub fn BNGetRelatedPlatforms(
23743        platform: *mut BNPlatform,
23744        count: *mut usize,
23745    ) -> *mut *mut BNPlatform;
23746}
23747unsafe extern "C" {
23748    pub fn BNGetAssociatedPlatformByAddress(
23749        platform: *mut BNPlatform,
23750        addr: *mut u64,
23751    ) -> *mut BNPlatform;
23752}
23753unsafe extern "C" {
23754    pub fn BNGetPlatformTypeContainer(platform: *mut BNPlatform) -> *mut BNTypeContainer;
23755}
23756unsafe extern "C" {
23757    pub fn BNGetPlatformTypes(
23758        platform: *mut BNPlatform,
23759        count: *mut usize,
23760    ) -> *mut BNQualifiedNameAndType;
23761}
23762unsafe extern "C" {
23763    pub fn BNGetPlatformVariables(
23764        platform: *mut BNPlatform,
23765        count: *mut usize,
23766    ) -> *mut BNQualifiedNameAndType;
23767}
23768unsafe extern "C" {
23769    pub fn BNGetPlatformFunctions(
23770        platform: *mut BNPlatform,
23771        count: *mut usize,
23772    ) -> *mut BNQualifiedNameAndType;
23773}
23774unsafe extern "C" {
23775    pub fn BNGetPlatformSystemCalls(
23776        platform: *mut BNPlatform,
23777        count: *mut usize,
23778    ) -> *mut BNSystemCallInfo;
23779}
23780unsafe extern "C" {
23781    pub fn BNFreeSystemCallList(syscalls: *mut BNSystemCallInfo, count: usize);
23782}
23783unsafe extern "C" {
23784    pub fn BNGetPlatformTypeByName(
23785        platform: *mut BNPlatform,
23786        name: *mut BNQualifiedName,
23787    ) -> *mut BNType;
23788}
23789unsafe extern "C" {
23790    pub fn BNGetPlatformVariableByName(
23791        platform: *mut BNPlatform,
23792        name: *mut BNQualifiedName,
23793    ) -> *mut BNType;
23794}
23795unsafe extern "C" {
23796    pub fn BNGetPlatformFunctionByName(
23797        platform: *mut BNPlatform,
23798        name: *mut BNQualifiedName,
23799        exactMatch: bool,
23800    ) -> *mut BNType;
23801}
23802unsafe extern "C" {
23803    pub fn BNGetPlatformSystemCallName(
23804        platform: *mut BNPlatform,
23805        number: u32,
23806    ) -> *mut ::std::os::raw::c_char;
23807}
23808unsafe extern "C" {
23809    pub fn BNGetPlatformSystemCallType(platform: *mut BNPlatform, number: u32) -> *mut BNType;
23810}
23811unsafe extern "C" {
23812    pub fn BNGetPlatformTypeLibraries(
23813        platform: *mut BNPlatform,
23814        count: *mut usize,
23815    ) -> *mut *mut BNTypeLibrary;
23816}
23817unsafe extern "C" {
23818    pub fn BNGetPlatformTypeLibrariesByName(
23819        platform: *mut BNPlatform,
23820        depName: *const ::std::os::raw::c_char,
23821        count: *mut usize,
23822    ) -> *mut *mut BNTypeLibrary;
23823}
23824unsafe extern "C" {
23825    #[doc = " Download providers"]
23826    pub fn BNRegisterDownloadProvider(
23827        name: *const ::std::os::raw::c_char,
23828        callbacks: *mut BNDownloadProviderCallbacks,
23829    ) -> *mut BNDownloadProvider;
23830}
23831unsafe extern "C" {
23832    pub fn BNGetDownloadProviderList(count: *mut usize) -> *mut *mut BNDownloadProvider;
23833}
23834unsafe extern "C" {
23835    pub fn BNFreeDownloadProviderList(providers: *mut *mut BNDownloadProvider);
23836}
23837unsafe extern "C" {
23838    pub fn BNGetDownloadProviderByName(
23839        name: *const ::std::os::raw::c_char,
23840    ) -> *mut BNDownloadProvider;
23841}
23842unsafe extern "C" {
23843    pub fn BNGetDownloadProviderName(
23844        provider: *mut BNDownloadProvider,
23845    ) -> *mut ::std::os::raw::c_char;
23846}
23847unsafe extern "C" {
23848    pub fn BNCreateDownloadProviderInstance(
23849        provider: *mut BNDownloadProvider,
23850    ) -> *mut BNDownloadInstance;
23851}
23852unsafe extern "C" {
23853    pub fn BNInitDownloadInstance(
23854        provider: *mut BNDownloadProvider,
23855        callbacks: *mut BNDownloadInstanceCallbacks,
23856    ) -> *mut BNDownloadInstance;
23857}
23858unsafe extern "C" {
23859    pub fn BNNewDownloadInstanceReference(
23860        instance: *mut BNDownloadInstance,
23861    ) -> *mut BNDownloadInstance;
23862}
23863unsafe extern "C" {
23864    pub fn BNFreeDownloadInstance(instance: *mut BNDownloadInstance);
23865}
23866unsafe extern "C" {
23867    pub fn BNFreeDownloadInstanceResponse(response: *mut BNDownloadInstanceResponse);
23868}
23869unsafe extern "C" {
23870    pub fn BNPerformDownloadRequest(
23871        instance: *mut BNDownloadInstance,
23872        url: *const ::std::os::raw::c_char,
23873        callbacks: *mut BNDownloadInstanceOutputCallbacks,
23874    ) -> ::std::os::raw::c_int;
23875}
23876unsafe extern "C" {
23877    pub fn BNPerformCustomRequest(
23878        instance: *mut BNDownloadInstance,
23879        method: *const ::std::os::raw::c_char,
23880        url: *const ::std::os::raw::c_char,
23881        headerCount: u64,
23882        headerKeys: *const *const ::std::os::raw::c_char,
23883        headerValues: *const *const ::std::os::raw::c_char,
23884        response: *mut *mut BNDownloadInstanceResponse,
23885        callbacks: *mut BNDownloadInstanceInputOutputCallbacks,
23886    ) -> ::std::os::raw::c_int;
23887}
23888unsafe extern "C" {
23889    pub fn BNReadDataForDownloadInstance(
23890        instance: *mut BNDownloadInstance,
23891        data: *mut u8,
23892        len: u64,
23893    ) -> i64;
23894}
23895unsafe extern "C" {
23896    pub fn BNWriteDataForDownloadInstance(
23897        instance: *mut BNDownloadInstance,
23898        data: *mut u8,
23899        len: u64,
23900    ) -> u64;
23901}
23902unsafe extern "C" {
23903    pub fn BNNotifyProgressForDownloadInstance(
23904        instance: *mut BNDownloadInstance,
23905        progress: u64,
23906        total: u64,
23907    ) -> bool;
23908}
23909unsafe extern "C" {
23910    pub fn BNGetErrorForDownloadInstance(
23911        instance: *mut BNDownloadInstance,
23912    ) -> *mut ::std::os::raw::c_char;
23913}
23914unsafe extern "C" {
23915    pub fn BNSetErrorForDownloadInstance(
23916        instance: *mut BNDownloadInstance,
23917        error: *const ::std::os::raw::c_char,
23918    );
23919}
23920unsafe extern "C" {
23921    #[doc = " Websocket providers"]
23922    pub fn BNRegisterWebsocketProvider(
23923        name: *const ::std::os::raw::c_char,
23924        callbacks: *mut BNWebsocketProviderCallbacks,
23925    ) -> *mut BNWebsocketProvider;
23926}
23927unsafe extern "C" {
23928    pub fn BNGetWebsocketProviderList(count: *mut usize) -> *mut *mut BNWebsocketProvider;
23929}
23930unsafe extern "C" {
23931    pub fn BNFreeWebsocketProviderList(providers: *mut *mut BNWebsocketProvider);
23932}
23933unsafe extern "C" {
23934    pub fn BNGetWebsocketProviderByName(
23935        name: *const ::std::os::raw::c_char,
23936    ) -> *mut BNWebsocketProvider;
23937}
23938unsafe extern "C" {
23939    pub fn BNGetWebsocketProviderName(
23940        provider: *mut BNWebsocketProvider,
23941    ) -> *mut ::std::os::raw::c_char;
23942}
23943unsafe extern "C" {
23944    pub fn BNCreateWebsocketProviderClient(
23945        provider: *mut BNWebsocketProvider,
23946    ) -> *mut BNWebsocketClient;
23947}
23948unsafe extern "C" {
23949    pub fn BNInitWebsocketClient(
23950        provider: *mut BNWebsocketProvider,
23951        callbacks: *mut BNWebsocketClientCallbacks,
23952    ) -> *mut BNWebsocketClient;
23953}
23954unsafe extern "C" {
23955    pub fn BNNewWebsocketClientReference(client: *mut BNWebsocketClient) -> *mut BNWebsocketClient;
23956}
23957unsafe extern "C" {
23958    pub fn BNFreeWebsocketClient(client: *mut BNWebsocketClient);
23959}
23960unsafe extern "C" {
23961    pub fn BNConnectWebsocketClient(
23962        client: *mut BNWebsocketClient,
23963        url: *const ::std::os::raw::c_char,
23964        headerCount: u64,
23965        headerKeys: *const *const ::std::os::raw::c_char,
23966        headerValues: *const *const ::std::os::raw::c_char,
23967        callbacks: *mut BNWebsocketClientOutputCallbacks,
23968    ) -> bool;
23969}
23970unsafe extern "C" {
23971    pub fn BNNotifyWebsocketClientConnect(client: *mut BNWebsocketClient) -> bool;
23972}
23973unsafe extern "C" {
23974    pub fn BNNotifyWebsocketClientDisconnect(client: *mut BNWebsocketClient);
23975}
23976unsafe extern "C" {
23977    pub fn BNNotifyWebsocketClientError(
23978        client: *mut BNWebsocketClient,
23979        msg: *const ::std::os::raw::c_char,
23980    );
23981}
23982unsafe extern "C" {
23983    pub fn BNNotifyWebsocketClientReadData(
23984        client: *mut BNWebsocketClient,
23985        data: *mut u8,
23986        len: u64,
23987    ) -> bool;
23988}
23989unsafe extern "C" {
23990    pub fn BNWriteWebsocketClientData(
23991        client: *mut BNWebsocketClient,
23992        data: *const u8,
23993        len: u64,
23994    ) -> u64;
23995}
23996unsafe extern "C" {
23997    pub fn BNDisconnectWebsocketClient(client: *mut BNWebsocketClient) -> bool;
23998}
23999unsafe extern "C" {
24000    #[doc = " Scripting providers"]
24001    pub fn BNRegisterScriptingProvider(
24002        name: *const ::std::os::raw::c_char,
24003        apiName: *const ::std::os::raw::c_char,
24004        callbacks: *mut BNScriptingProviderCallbacks,
24005    ) -> *mut BNScriptingProvider;
24006}
24007unsafe extern "C" {
24008    pub fn BNGetScriptingProviderList(count: *mut usize) -> *mut *mut BNScriptingProvider;
24009}
24010unsafe extern "C" {
24011    pub fn BNFreeScriptingProviderList(providers: *mut *mut BNScriptingProvider);
24012}
24013unsafe extern "C" {
24014    pub fn BNGetScriptingProviderByName(
24015        name: *const ::std::os::raw::c_char,
24016    ) -> *mut BNScriptingProvider;
24017}
24018unsafe extern "C" {
24019    pub fn BNGetScriptingProviderByAPIName(
24020        name: *const ::std::os::raw::c_char,
24021    ) -> *mut BNScriptingProvider;
24022}
24023unsafe extern "C" {
24024    pub fn BNGetScriptingProviderName(
24025        provider: *mut BNScriptingProvider,
24026    ) -> *mut ::std::os::raw::c_char;
24027}
24028unsafe extern "C" {
24029    pub fn BNGetScriptingProviderAPIName(
24030        provider: *mut BNScriptingProvider,
24031    ) -> *mut ::std::os::raw::c_char;
24032}
24033unsafe extern "C" {
24034    pub fn BNCreateScriptingProviderInstance(
24035        provider: *mut BNScriptingProvider,
24036    ) -> *mut BNScriptingInstance;
24037}
24038unsafe extern "C" {
24039    pub fn BNLoadScriptingProviderModule(
24040        provider: *mut BNScriptingProvider,
24041        repository: *const ::std::os::raw::c_char,
24042        module: *const ::std::os::raw::c_char,
24043        force: bool,
24044    ) -> bool;
24045}
24046unsafe extern "C" {
24047    pub fn BNInstallScriptingProviderModules(
24048        provider: *mut BNScriptingProvider,
24049        modules: *const ::std::os::raw::c_char,
24050    ) -> bool;
24051}
24052unsafe extern "C" {
24053    pub fn BNInitScriptingInstance(
24054        provider: *mut BNScriptingProvider,
24055        callbacks: *mut BNScriptingInstanceCallbacks,
24056    ) -> *mut BNScriptingInstance;
24057}
24058unsafe extern "C" {
24059    pub fn BNNewScriptingInstanceReference(
24060        instance: *mut BNScriptingInstance,
24061    ) -> *mut BNScriptingInstance;
24062}
24063unsafe extern "C" {
24064    pub fn BNFreeScriptingInstance(instance: *mut BNScriptingInstance);
24065}
24066unsafe extern "C" {
24067    pub fn BNNotifyOutputForScriptingInstance(
24068        instance: *mut BNScriptingInstance,
24069        text: *const ::std::os::raw::c_char,
24070    );
24071}
24072unsafe extern "C" {
24073    pub fn BNNotifyWarningForScriptingInstance(
24074        instance: *mut BNScriptingInstance,
24075        text: *const ::std::os::raw::c_char,
24076    );
24077}
24078unsafe extern "C" {
24079    pub fn BNNotifyErrorForScriptingInstance(
24080        instance: *mut BNScriptingInstance,
24081        text: *const ::std::os::raw::c_char,
24082    );
24083}
24084unsafe extern "C" {
24085    pub fn BNNotifyInputReadyStateForScriptingInstance(
24086        instance: *mut BNScriptingInstance,
24087        state: BNScriptingProviderInputReadyState,
24088    );
24089}
24090unsafe extern "C" {
24091    pub fn BNRegisterScriptingInstanceOutputListener(
24092        instance: *mut BNScriptingInstance,
24093        callbacks: *mut BNScriptingOutputListener,
24094    );
24095}
24096unsafe extern "C" {
24097    pub fn BNUnregisterScriptingInstanceOutputListener(
24098        instance: *mut BNScriptingInstance,
24099        callbacks: *mut BNScriptingOutputListener,
24100    );
24101}
24102unsafe extern "C" {
24103    pub fn BNGetScriptingInstanceDelimiters(
24104        instance: *mut BNScriptingInstance,
24105    ) -> *mut ::std::os::raw::c_char;
24106}
24107unsafe extern "C" {
24108    pub fn BNSetScriptingInstanceDelimiters(
24109        instance: *mut BNScriptingInstance,
24110        delimiters: *const ::std::os::raw::c_char,
24111    );
24112}
24113unsafe extern "C" {
24114    pub fn BNGetScriptingInstanceInputReadyState(
24115        instance: *mut BNScriptingInstance,
24116    ) -> BNScriptingProviderInputReadyState;
24117}
24118unsafe extern "C" {
24119    pub fn BNExecuteScriptInput(
24120        instance: *mut BNScriptingInstance,
24121        input: *const ::std::os::raw::c_char,
24122    ) -> BNScriptingProviderExecuteResult;
24123}
24124unsafe extern "C" {
24125    pub fn BNExecuteScriptInputFromFilename(
24126        instance: *mut BNScriptingInstance,
24127        filename: *const ::std::os::raw::c_char,
24128    ) -> BNScriptingProviderExecuteResult;
24129}
24130unsafe extern "C" {
24131    pub fn BNCancelScriptInput(instance: *mut BNScriptingInstance);
24132}
24133unsafe extern "C" {
24134    pub fn BNScriptingInstanceReleaseBinaryView(
24135        instance: *mut BNScriptingInstance,
24136        view: *mut BNBinaryView,
24137    );
24138}
24139unsafe extern "C" {
24140    pub fn BNSetScriptingInstanceCurrentBinaryView(
24141        instance: *mut BNScriptingInstance,
24142        view: *mut BNBinaryView,
24143    );
24144}
24145unsafe extern "C" {
24146    pub fn BNSetScriptingInstanceCurrentFunction(
24147        instance: *mut BNScriptingInstance,
24148        func: *mut BNFunction,
24149    );
24150}
24151unsafe extern "C" {
24152    pub fn BNSetScriptingInstanceCurrentBasicBlock(
24153        instance: *mut BNScriptingInstance,
24154        block: *mut BNBasicBlock,
24155    );
24156}
24157unsafe extern "C" {
24158    pub fn BNSetScriptingInstanceCurrentAddress(instance: *mut BNScriptingInstance, addr: u64);
24159}
24160unsafe extern "C" {
24161    pub fn BNSetScriptingInstanceCurrentSelection(
24162        instance: *mut BNScriptingInstance,
24163        begin: u64,
24164        end: u64,
24165    );
24166}
24167unsafe extern "C" {
24168    pub fn BNScriptingInstanceCompleteInput(
24169        instance: *mut BNScriptingInstance,
24170        text: *const ::std::os::raw::c_char,
24171        state: u64,
24172    ) -> *mut ::std::os::raw::c_char;
24173}
24174unsafe extern "C" {
24175    pub fn BNScriptingInstanceCanCompleteArguments(
24176        instance: *mut BNScriptingInstance,
24177        text: *const ::std::os::raw::c_char,
24178    ) -> bool;
24179}
24180unsafe extern "C" {
24181    pub fn BNScriptingInstanceCompleteArguments(
24182        instance: *mut BNScriptingInstance,
24183        text: *const ::std::os::raw::c_char,
24184        argumentStart: *mut u64,
24185    ) -> *mut ::std::os::raw::c_char;
24186}
24187unsafe extern "C" {
24188    pub fn BNStopScriptingInstance(instance: *mut BNScriptingInstance);
24189}
24190unsafe extern "C" {
24191    pub fn BNFuzzyMatchSingle(
24192        target: *const ::std::os::raw::c_char,
24193        query: *const ::std::os::raw::c_char,
24194    ) -> usize;
24195}
24196unsafe extern "C" {
24197    #[doc = " Main thread actions"]
24198    pub fn BNRegisterMainThread(callbacks: *mut BNMainThreadCallbacks);
24199}
24200unsafe extern "C" {
24201    pub fn BNNewMainThreadActionReference(
24202        action: *mut BNMainThreadAction,
24203    ) -> *mut BNMainThreadAction;
24204}
24205unsafe extern "C" {
24206    pub fn BNFreeMainThreadAction(action: *mut BNMainThreadAction);
24207}
24208unsafe extern "C" {
24209    pub fn BNExecuteMainThreadAction(action: *mut BNMainThreadAction);
24210}
24211unsafe extern "C" {
24212    pub fn BNIsMainThreadActionDone(action: *mut BNMainThreadAction) -> bool;
24213}
24214unsafe extern "C" {
24215    pub fn BNWaitForMainThreadAction(action: *mut BNMainThreadAction);
24216}
24217unsafe extern "C" {
24218    pub fn BNExecuteOnMainThread(
24219        ctxt: *mut ::std::os::raw::c_void,
24220        func: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
24221    ) -> *mut BNMainThreadAction;
24222}
24223unsafe extern "C" {
24224    pub fn BNExecuteOnMainThreadAndWait(
24225        ctxt: *mut ::std::os::raw::c_void,
24226        func: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
24227    );
24228}
24229unsafe extern "C" {
24230    pub fn BNIsMainThread() -> bool;
24231}
24232unsafe extern "C" {
24233    #[doc = " Worker thread queue management"]
24234    pub fn BNWorkerEnqueue(
24235        ctxt: *mut ::std::os::raw::c_void,
24236        action: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
24237    );
24238}
24239unsafe extern "C" {
24240    pub fn BNWorkerEnqueueNamed(
24241        ctxt: *mut ::std::os::raw::c_void,
24242        action: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
24243        name: *const ::std::os::raw::c_char,
24244    );
24245}
24246unsafe extern "C" {
24247    pub fn BNWorkerPriorityEnqueue(
24248        ctxt: *mut ::std::os::raw::c_void,
24249        action: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
24250    );
24251}
24252unsafe extern "C" {
24253    pub fn BNWorkerPriorityEnqueueNamed(
24254        ctxt: *mut ::std::os::raw::c_void,
24255        action: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
24256        name: *const ::std::os::raw::c_char,
24257    );
24258}
24259unsafe extern "C" {
24260    pub fn BNWorkerInteractiveEnqueue(
24261        ctxt: *mut ::std::os::raw::c_void,
24262        action: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
24263    );
24264}
24265unsafe extern "C" {
24266    pub fn BNWorkerInteractiveEnqueueNamed(
24267        ctxt: *mut ::std::os::raw::c_void,
24268        action: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
24269        name: *const ::std::os::raw::c_char,
24270    );
24271}
24272unsafe extern "C" {
24273    pub fn BNGetWorkerThreadCount() -> usize;
24274}
24275unsafe extern "C" {
24276    pub fn BNSetWorkerThreadCount(count: usize);
24277}
24278unsafe extern "C" {
24279    pub fn BNSetThreadName(name: *const ::std::os::raw::c_char);
24280}
24281unsafe extern "C" {
24282    #[doc = " Background task progress reporting"]
24283    pub fn BNBeginBackgroundTask(
24284        initialText: *const ::std::os::raw::c_char,
24285        canCancel: bool,
24286    ) -> *mut BNBackgroundTask;
24287}
24288unsafe extern "C" {
24289    pub fn BNFinishBackgroundTask(task: *mut BNBackgroundTask);
24290}
24291unsafe extern "C" {
24292    pub fn BNSetBackgroundTaskProgressText(
24293        task: *mut BNBackgroundTask,
24294        text: *const ::std::os::raw::c_char,
24295    );
24296}
24297unsafe extern "C" {
24298    pub fn BNIsBackgroundTaskCancelled(task: *mut BNBackgroundTask) -> bool;
24299}
24300unsafe extern "C" {
24301    pub fn BNGetRunningBackgroundTasks(count: *mut usize) -> *mut *mut BNBackgroundTask;
24302}
24303unsafe extern "C" {
24304    pub fn BNNewBackgroundTaskReference(task: *mut BNBackgroundTask) -> *mut BNBackgroundTask;
24305}
24306unsafe extern "C" {
24307    pub fn BNFreeBackgroundTask(task: *mut BNBackgroundTask);
24308}
24309unsafe extern "C" {
24310    pub fn BNFreeBackgroundTaskList(tasks: *mut *mut BNBackgroundTask, count: usize);
24311}
24312unsafe extern "C" {
24313    pub fn BNGetBackgroundTaskProgressText(
24314        task: *mut BNBackgroundTask,
24315    ) -> *mut ::std::os::raw::c_char;
24316}
24317unsafe extern "C" {
24318    pub fn BNGetBackgroundTaskRuntimeSeconds(task: *mut BNBackgroundTask) -> u64;
24319}
24320unsafe extern "C" {
24321    pub fn BNCanCancelBackgroundTask(task: *mut BNBackgroundTask) -> bool;
24322}
24323unsafe extern "C" {
24324    pub fn BNCancelBackgroundTask(task: *mut BNBackgroundTask);
24325}
24326unsafe extern "C" {
24327    pub fn BNIsBackgroundTaskFinished(task: *mut BNBackgroundTask) -> bool;
24328}
24329unsafe extern "C" {
24330    #[doc = " Interaction APIs"]
24331    pub fn BNRegisterInteractionHandler(callbacks: *mut BNInteractionHandlerCallbacks);
24332}
24333unsafe extern "C" {
24334    pub fn BNMarkdownToHTML(contents: *const ::std::os::raw::c_char)
24335    -> *mut ::std::os::raw::c_char;
24336}
24337unsafe extern "C" {
24338    pub fn BNShowPlainTextReport(
24339        view: *mut BNBinaryView,
24340        title: *const ::std::os::raw::c_char,
24341        contents: *const ::std::os::raw::c_char,
24342    );
24343}
24344unsafe extern "C" {
24345    pub fn BNShowMarkdownReport(
24346        view: *mut BNBinaryView,
24347        title: *const ::std::os::raw::c_char,
24348        contents: *const ::std::os::raw::c_char,
24349        plaintext: *const ::std::os::raw::c_char,
24350    );
24351}
24352unsafe extern "C" {
24353    pub fn BNShowHTMLReport(
24354        view: *mut BNBinaryView,
24355        title: *const ::std::os::raw::c_char,
24356        contents: *const ::std::os::raw::c_char,
24357        plaintext: *const ::std::os::raw::c_char,
24358    );
24359}
24360unsafe extern "C" {
24361    pub fn BNShowGraphReport(
24362        view: *mut BNBinaryView,
24363        title: *const ::std::os::raw::c_char,
24364        graph: *mut BNFlowGraph,
24365    );
24366}
24367unsafe extern "C" {
24368    pub fn BNShowReportCollection(
24369        title: *const ::std::os::raw::c_char,
24370        reports: *mut BNReportCollection,
24371    );
24372}
24373unsafe extern "C" {
24374    pub fn BNGetTextLineInput(
24375        result: *mut *mut ::std::os::raw::c_char,
24376        prompt: *const ::std::os::raw::c_char,
24377        title: *const ::std::os::raw::c_char,
24378    ) -> bool;
24379}
24380unsafe extern "C" {
24381    pub fn BNGetIntegerInput(
24382        result: *mut i64,
24383        prompt: *const ::std::os::raw::c_char,
24384        title: *const ::std::os::raw::c_char,
24385    ) -> bool;
24386}
24387unsafe extern "C" {
24388    pub fn BNGetAddressInput(
24389        result: *mut u64,
24390        prompt: *const ::std::os::raw::c_char,
24391        title: *const ::std::os::raw::c_char,
24392        view: *mut BNBinaryView,
24393        currentAddr: u64,
24394    ) -> bool;
24395}
24396unsafe extern "C" {
24397    pub fn BNGetChoiceInput(
24398        result: *mut usize,
24399        prompt: *const ::std::os::raw::c_char,
24400        title: *const ::std::os::raw::c_char,
24401        choices: *mut *const ::std::os::raw::c_char,
24402        count: usize,
24403    ) -> bool;
24404}
24405unsafe extern "C" {
24406    pub fn BNGetLargeChoiceInput(
24407        result: *mut usize,
24408        prompt: *const ::std::os::raw::c_char,
24409        title: *const ::std::os::raw::c_char,
24410        choices: *mut *const ::std::os::raw::c_char,
24411        count: usize,
24412    ) -> bool;
24413}
24414unsafe extern "C" {
24415    pub fn BNGetOpenFileNameInput(
24416        result: *mut *mut ::std::os::raw::c_char,
24417        prompt: *const ::std::os::raw::c_char,
24418        ext: *const ::std::os::raw::c_char,
24419    ) -> bool;
24420}
24421unsafe extern "C" {
24422    pub fn BNGetSaveFileNameInput(
24423        result: *mut *mut ::std::os::raw::c_char,
24424        prompt: *const ::std::os::raw::c_char,
24425        ext: *const ::std::os::raw::c_char,
24426        defaultName: *const ::std::os::raw::c_char,
24427    ) -> bool;
24428}
24429unsafe extern "C" {
24430    pub fn BNGetDirectoryNameInput(
24431        result: *mut *mut ::std::os::raw::c_char,
24432        prompt: *const ::std::os::raw::c_char,
24433        defaultName: *const ::std::os::raw::c_char,
24434    ) -> bool;
24435}
24436unsafe extern "C" {
24437    pub fn BNGetCheckboxInput(
24438        result: *mut i64,
24439        prompt: *const ::std::os::raw::c_char,
24440        title: *const ::std::os::raw::c_char,
24441        defaultChoice: *const i64,
24442    ) -> bool;
24443}
24444unsafe extern "C" {
24445    pub fn BNGetFormInput(
24446        fields: *mut BNFormInputField,
24447        count: usize,
24448        title: *const ::std::os::raw::c_char,
24449    ) -> bool;
24450}
24451unsafe extern "C" {
24452    pub fn BNFreeFormInputResults(fields: *mut BNFormInputField, count: usize);
24453}
24454unsafe extern "C" {
24455    pub fn BNShowMessageBox(
24456        title: *const ::std::os::raw::c_char,
24457        text: *const ::std::os::raw::c_char,
24458        buttons: BNMessageBoxButtonSet,
24459        icon: BNMessageBoxIcon,
24460    ) -> BNMessageBoxButtonResult;
24461}
24462unsafe extern "C" {
24463    pub fn BNOpenUrl(url: *const ::std::os::raw::c_char) -> bool;
24464}
24465unsafe extern "C" {
24466    pub fn BNRunProgressDialog(
24467        title: *const ::std::os::raw::c_char,
24468        canCancel: bool,
24469        task: ::std::option::Option<
24470            unsafe extern "C" fn(
24471                taskCtxt: *mut ::std::os::raw::c_void,
24472                progress: BNProgressFunction,
24473                progressCtxt: *mut ::std::os::raw::c_void,
24474            ),
24475        >,
24476        taskCtxt: *mut ::std::os::raw::c_void,
24477    ) -> bool;
24478}
24479unsafe extern "C" {
24480    pub fn BNCreateReportCollection() -> *mut BNReportCollection;
24481}
24482unsafe extern "C" {
24483    pub fn BNNewReportCollectionReference(
24484        reports: *mut BNReportCollection,
24485    ) -> *mut BNReportCollection;
24486}
24487unsafe extern "C" {
24488    pub fn BNFreeReportCollection(reports: *mut BNReportCollection);
24489}
24490unsafe extern "C" {
24491    pub fn BNGetReportCollectionCount(reports: *mut BNReportCollection) -> usize;
24492}
24493unsafe extern "C" {
24494    pub fn BNGetReportType(reports: *mut BNReportCollection, i: usize) -> BNReportType;
24495}
24496unsafe extern "C" {
24497    pub fn BNGetReportView(reports: *mut BNReportCollection, i: usize) -> *mut BNBinaryView;
24498}
24499unsafe extern "C" {
24500    pub fn BNGetReportTitle(
24501        reports: *mut BNReportCollection,
24502        i: usize,
24503    ) -> *mut ::std::os::raw::c_char;
24504}
24505unsafe extern "C" {
24506    pub fn BNGetReportContents(
24507        reports: *mut BNReportCollection,
24508        i: usize,
24509    ) -> *mut ::std::os::raw::c_char;
24510}
24511unsafe extern "C" {
24512    pub fn BNGetReportPlainText(
24513        reports: *mut BNReportCollection,
24514        i: usize,
24515    ) -> *mut ::std::os::raw::c_char;
24516}
24517unsafe extern "C" {
24518    pub fn BNGetReportFlowGraph(reports: *mut BNReportCollection, i: usize) -> *mut BNFlowGraph;
24519}
24520unsafe extern "C" {
24521    pub fn BNAddPlainTextReportToCollection(
24522        reports: *mut BNReportCollection,
24523        view: *mut BNBinaryView,
24524        title: *const ::std::os::raw::c_char,
24525        contents: *const ::std::os::raw::c_char,
24526    );
24527}
24528unsafe extern "C" {
24529    pub fn BNAddMarkdownReportToCollection(
24530        reports: *mut BNReportCollection,
24531        view: *mut BNBinaryView,
24532        title: *const ::std::os::raw::c_char,
24533        contents: *const ::std::os::raw::c_char,
24534        plaintext: *const ::std::os::raw::c_char,
24535    );
24536}
24537unsafe extern "C" {
24538    pub fn BNAddHTMLReportToCollection(
24539        reports: *mut BNReportCollection,
24540        view: *mut BNBinaryView,
24541        title: *const ::std::os::raw::c_char,
24542        contents: *const ::std::os::raw::c_char,
24543        plaintext: *const ::std::os::raw::c_char,
24544    );
24545}
24546unsafe extern "C" {
24547    pub fn BNAddGraphReportToCollection(
24548        reports: *mut BNReportCollection,
24549        view: *mut BNBinaryView,
24550        title: *const ::std::os::raw::c_char,
24551        graph: *mut BNFlowGraph,
24552    );
24553}
24554unsafe extern "C" {
24555    pub fn BNUpdateReportFlowGraph(
24556        reports: *mut BNReportCollection,
24557        i: usize,
24558        graph: *mut BNFlowGraph,
24559    );
24560}
24561unsafe extern "C" {
24562    #[doc = " Demangler"]
24563    pub fn BNDemangleMS(
24564        arch: *mut BNArchitecture,
24565        mangledName: *const ::std::os::raw::c_char,
24566        outType: *mut *mut BNType,
24567        outVarName: *mut *mut *mut ::std::os::raw::c_char,
24568        outVarNameElements: *mut usize,
24569        simplify: bool,
24570    ) -> bool;
24571}
24572unsafe extern "C" {
24573    pub fn BNDemangleMSWithOptions(
24574        arch: *mut BNArchitecture,
24575        mangledName: *const ::std::os::raw::c_char,
24576        outType: *mut *mut BNType,
24577        outVarName: *mut *mut *mut ::std::os::raw::c_char,
24578        outVarNameElements: *mut usize,
24579        view: *const BNBinaryView,
24580    ) -> bool;
24581}
24582unsafe extern "C" {
24583    pub fn BNDemangleMSPlatform(
24584        platform: *mut BNPlatform,
24585        mangledName: *const ::std::os::raw::c_char,
24586        outType: *mut *mut BNType,
24587        outVarName: *mut *mut *mut ::std::os::raw::c_char,
24588        outVarNameElements: *mut usize,
24589        simplify: bool,
24590    ) -> bool;
24591}
24592unsafe extern "C" {
24593    pub fn BNIsGNU3MangledString(mangledName: *const ::std::os::raw::c_char) -> bool;
24594}
24595unsafe extern "C" {
24596    pub fn BNDemangleGNU3(
24597        arch: *mut BNArchitecture,
24598        mangledName: *const ::std::os::raw::c_char,
24599        outType: *mut *mut BNType,
24600        outVarName: *mut *mut *mut ::std::os::raw::c_char,
24601        outVarNameElements: *mut usize,
24602        simplify: bool,
24603    ) -> bool;
24604}
24605unsafe extern "C" {
24606    pub fn BNDemangleGNU3WithOptions(
24607        arch: *mut BNArchitecture,
24608        mangledName: *const ::std::os::raw::c_char,
24609        outType: *mut *mut BNType,
24610        outVarName: *mut *mut *mut ::std::os::raw::c_char,
24611        outVarNameElements: *mut usize,
24612        view: *const BNBinaryView,
24613    ) -> bool;
24614}
24615unsafe extern "C" {
24616    pub fn BNFreeDemangledName(name: *mut *mut *mut ::std::os::raw::c_char, nameElements: usize);
24617}
24618unsafe extern "C" {
24619    pub fn BNDemangleLLVM(
24620        mangledName: *const ::std::os::raw::c_char,
24621        outVarName: *mut *mut *mut ::std::os::raw::c_char,
24622        outVarNameElements: *mut usize,
24623        simplify: bool,
24624    ) -> bool;
24625}
24626unsafe extern "C" {
24627    pub fn BNDemangleLLVMWithOptions(
24628        mangledName: *const ::std::os::raw::c_char,
24629        outVarName: *mut *mut *mut ::std::os::raw::c_char,
24630        outVarNameElements: *mut usize,
24631        view: *const BNBinaryView,
24632    ) -> bool;
24633}
24634unsafe extern "C" {
24635    pub fn BNRegisterDemangler(
24636        name: *const ::std::os::raw::c_char,
24637        callbacks: *mut BNDemanglerCallbacks,
24638    ) -> *mut BNDemangler;
24639}
24640unsafe extern "C" {
24641    pub fn BNGetDemanglerList(count: *mut usize) -> *mut *mut BNDemangler;
24642}
24643unsafe extern "C" {
24644    pub fn BNFreeDemanglerList(demanglers: *mut *mut BNDemangler);
24645}
24646unsafe extern "C" {
24647    pub fn BNGetDemanglerByName(name: *const ::std::os::raw::c_char) -> *mut BNDemangler;
24648}
24649unsafe extern "C" {
24650    pub fn BNGetDemanglerName(demangler: *mut BNDemangler) -> *mut ::std::os::raw::c_char;
24651}
24652unsafe extern "C" {
24653    pub fn BNPromoteDemangler(demangler: *mut BNDemangler);
24654}
24655unsafe extern "C" {
24656    pub fn BNIsDemanglerMangledName(
24657        demangler: *mut BNDemangler,
24658        name: *const ::std::os::raw::c_char,
24659    ) -> bool;
24660}
24661unsafe extern "C" {
24662    pub fn BNDemanglerDemangle(
24663        demangler: *mut BNDemangler,
24664        arch: *mut BNArchitecture,
24665        name: *const ::std::os::raw::c_char,
24666        outType: *mut *mut BNType,
24667        outVarName: *mut BNQualifiedName,
24668        view: *mut BNBinaryView,
24669    ) -> bool;
24670}
24671unsafe extern "C" {
24672    pub fn BNDemangleGeneric(
24673        arch: *mut BNArchitecture,
24674        name: *const ::std::os::raw::c_char,
24675        outType: *mut *mut BNType,
24676        outVarName: *mut BNQualifiedName,
24677        view: *mut BNBinaryView,
24678        simplify: bool,
24679    ) -> bool;
24680}
24681unsafe extern "C" {
24682    #[doc = " Plugin repository APIs"]
24683    pub fn BNPluginGetApis(p: *mut BNPlugin, count: *mut usize)
24684    -> *mut *mut ::std::os::raw::c_char;
24685}
24686unsafe extern "C" {
24687    pub fn BNPluginGetAuthor(p: *mut BNPlugin) -> *const ::std::os::raw::c_char;
24688}
24689unsafe extern "C" {
24690    pub fn BNPluginGetDescription(p: *mut BNPlugin) -> *const ::std::os::raw::c_char;
24691}
24692unsafe extern "C" {
24693    pub fn BNPluginGetLicenseText(p: *mut BNPlugin) -> *const ::std::os::raw::c_char;
24694}
24695unsafe extern "C" {
24696    pub fn BNPluginGetMinimumVersionInfo(p: *mut BNPlugin) -> BNVersionInfo;
24697}
24698unsafe extern "C" {
24699    pub fn BNPluginGetMaximumVersionInfo(p: *mut BNPlugin) -> BNVersionInfo;
24700}
24701unsafe extern "C" {
24702    pub fn BNParseVersionString(v: *const ::std::os::raw::c_char) -> BNVersionInfo;
24703}
24704unsafe extern "C" {
24705    pub fn BNVersionLessThan(smaller: BNVersionInfo, larger: BNVersionInfo) -> bool;
24706}
24707unsafe extern "C" {
24708    pub fn BNPluginVersionIDLessThan(
24709        p: *mut BNPlugin,
24710        smaller: *const ::std::os::raw::c_char,
24711        larger: *const ::std::os::raw::c_char,
24712    ) -> bool;
24713}
24714unsafe extern "C" {
24715    pub fn BNPluginGetName(p: *mut BNPlugin) -> *const ::std::os::raw::c_char;
24716}
24717unsafe extern "C" {
24718    pub fn BNPluginGetProjectUrl(p: *mut BNPlugin) -> *const ::std::os::raw::c_char;
24719}
24720unsafe extern "C" {
24721    pub fn BNPluginGetPackageUrl(p: *mut BNPlugin) -> *const ::std::os::raw::c_char;
24722}
24723unsafe extern "C" {
24724    pub fn BNPluginGetAuthorUrl(p: *mut BNPlugin) -> *const ::std::os::raw::c_char;
24725}
24726unsafe extern "C" {
24727    pub fn BNPluginGetVersions(p: *mut BNPlugin, count: *mut usize) -> *mut BNPluginVersion;
24728}
24729unsafe extern "C" {
24730    pub fn BNFreePluginVersions(r: *mut BNPluginVersion, count: usize);
24731}
24732unsafe extern "C" {
24733    pub fn BNPluginGetCurrentVersionID(p: *mut BNPlugin) -> *const ::std::os::raw::c_char;
24734}
24735unsafe extern "C" {
24736    pub fn BNPluginGetCurrentVersion(p: *mut BNPlugin) -> BNPluginVersion;
24737}
24738unsafe extern "C" {
24739    pub fn BNPluginFreeVersion(v: BNPluginVersion);
24740}
24741unsafe extern "C" {
24742    pub fn BNPluginGetCommit(p: *mut BNPlugin) -> *const ::std::os::raw::c_char;
24743}
24744unsafe extern "C" {
24745    pub fn BNPluginGetViewOnly(p: *mut BNPlugin) -> bool;
24746}
24747unsafe extern "C" {
24748    pub fn BNPluginGetIsPaid(p: *mut BNPlugin) -> bool;
24749}
24750unsafe extern "C" {
24751    pub fn BNFreePluginTypes(r: *mut BNPluginType);
24752}
24753unsafe extern "C" {
24754    pub fn BNNewPluginReference(r: *mut BNPlugin) -> *mut BNPlugin;
24755}
24756unsafe extern "C" {
24757    pub fn BNFreePlugin(plugin: *mut BNPlugin);
24758}
24759unsafe extern "C" {
24760    pub fn BNPluginGetPath(p: *mut BNPlugin) -> *const ::std::os::raw::c_char;
24761}
24762unsafe extern "C" {
24763    pub fn BNPluginGetSubdir(p: *mut BNPlugin) -> *const ::std::os::raw::c_char;
24764}
24765unsafe extern "C" {
24766    pub fn BNPluginGetDependencies(p: *mut BNPlugin) -> *const ::std::os::raw::c_char;
24767}
24768unsafe extern "C" {
24769    pub fn BNPluginGetLongdescription(p: *mut BNPlugin) -> *const ::std::os::raw::c_char;
24770}
24771unsafe extern "C" {
24772    pub fn BNPluginGetLastUpdate(p: *mut BNPlugin) -> u64;
24773}
24774unsafe extern "C" {
24775    pub fn BNPluginIsInstalled(p: *mut BNPlugin) -> bool;
24776}
24777unsafe extern "C" {
24778    pub fn BNPluginIsEnabled(p: *mut BNPlugin) -> bool;
24779}
24780unsafe extern "C" {
24781    pub fn BNPluginGetPluginStatus(p: *mut BNPlugin) -> BNPluginStatus;
24782}
24783unsafe extern "C" {
24784    pub fn BNPluginGetPluginTypes(p: *mut BNPlugin, count: *mut usize) -> *mut BNPluginType;
24785}
24786unsafe extern "C" {
24787    pub fn BNPluginEnable(p: *mut BNPlugin, force: bool) -> bool;
24788}
24789unsafe extern "C" {
24790    pub fn BNPluginDisable(p: *mut BNPlugin) -> bool;
24791}
24792unsafe extern "C" {
24793    pub fn BNPluginInstall(p: *mut BNPlugin, versionID: *const ::std::os::raw::c_char) -> bool;
24794}
24795unsafe extern "C" {
24796    pub fn BNPluginInstallDependencies(p: *mut BNPlugin) -> bool;
24797}
24798unsafe extern "C" {
24799    pub fn BNPluginUninstall(p: *mut BNPlugin) -> bool;
24800}
24801unsafe extern "C" {
24802    pub fn BNPluginUpdate(p: *mut BNPlugin, versionID: *const ::std::os::raw::c_char) -> bool;
24803}
24804unsafe extern "C" {
24805    pub fn BNPluginGetPlatforms(
24806        p: *mut BNPlugin,
24807        count: *mut usize,
24808    ) -> *mut *mut ::std::os::raw::c_char;
24809}
24810unsafe extern "C" {
24811    pub fn BNFreePluginPlatforms(platforms: *mut *mut ::std::os::raw::c_char, count: usize);
24812}
24813unsafe extern "C" {
24814    pub fn BNPluginGetRepository(p: *mut BNPlugin) -> *const ::std::os::raw::c_char;
24815}
24816unsafe extern "C" {
24817    pub fn BNPluginIsBeingDeleted(p: *mut BNPlugin) -> bool;
24818}
24819unsafe extern "C" {
24820    pub fn BNPluginIsBeingUpdated(p: *mut BNPlugin) -> bool;
24821}
24822unsafe extern "C" {
24823    pub fn BNPluginIsRunning(p: *mut BNPlugin) -> bool;
24824}
24825unsafe extern "C" {
24826    pub fn BNPluginIsUpdatePending(p: *mut BNPlugin) -> bool;
24827}
24828unsafe extern "C" {
24829    pub fn BNPluginIsDisablePending(p: *mut BNPlugin) -> bool;
24830}
24831unsafe extern "C" {
24832    pub fn BNPluginIsDeletePending(p: *mut BNPlugin) -> bool;
24833}
24834unsafe extern "C" {
24835    pub fn BNPluginIsUpdateAvailable(p: *mut BNPlugin) -> bool;
24836}
24837unsafe extern "C" {
24838    pub fn BNPluginAreDependenciesBeingInstalled(p: *mut BNPlugin) -> bool;
24839}
24840unsafe extern "C" {
24841    pub fn BNPluginGetProjectData(p: *mut BNPlugin) -> *mut ::std::os::raw::c_char;
24842}
24843unsafe extern "C" {
24844    pub fn BNPluginGetCurrentVersionCreationDate(p: *mut BNPlugin) -> *mut ::std::os::raw::c_char;
24845}
24846unsafe extern "C" {
24847    pub fn BNNewRepositoryReference(r: *mut BNRepository) -> *mut BNRepository;
24848}
24849unsafe extern "C" {
24850    pub fn BNFreeRepository(r: *mut BNRepository);
24851}
24852unsafe extern "C" {
24853    pub fn BNRepositoryGetUrl(r: *mut BNRepository) -> *mut ::std::os::raw::c_char;
24854}
24855unsafe extern "C" {
24856    pub fn BNRepositoryGetRepoPath(r: *mut BNRepository) -> *mut ::std::os::raw::c_char;
24857}
24858unsafe extern "C" {
24859    pub fn BNRepositoryGetPlugins(r: *mut BNRepository, count: *mut usize) -> *mut *mut BNPlugin;
24860}
24861unsafe extern "C" {
24862    pub fn BNFreeRepositoryPluginList(r: *mut *mut BNPlugin);
24863}
24864unsafe extern "C" {
24865    pub fn BNRepositoryFreePluginDirectoryList(
24866        list: *mut *mut ::std::os::raw::c_char,
24867        count: usize,
24868    );
24869}
24870unsafe extern "C" {
24871    pub fn BNRepositoryGetPluginByPath(
24872        r: *mut BNRepository,
24873        pluginPath: *const ::std::os::raw::c_char,
24874    ) -> *mut BNPlugin;
24875}
24876unsafe extern "C" {
24877    pub fn BNRepositoryGetPluginsPath(r: *mut BNRepository) -> *const ::std::os::raw::c_char;
24878}
24879unsafe extern "C" {
24880    pub fn BNRepositoryManagerCheckForUpdates() -> bool;
24881}
24882unsafe extern "C" {
24883    pub fn BNRepositoryManagerGetRepositories(count: *mut usize) -> *mut *mut BNRepository;
24884}
24885unsafe extern "C" {
24886    pub fn BNFreeRepositoryManagerRepositoriesList(r: *mut *mut BNRepository);
24887}
24888unsafe extern "C" {
24889    pub fn BNRepositoryManagerAddRepository(
24890        url: *const ::std::os::raw::c_char,
24891        repoPath: *const ::std::os::raw::c_char,
24892    ) -> bool;
24893}
24894unsafe extern "C" {
24895    pub fn BNRepositoryGetRepositoryByPath(
24896        repoPath: *const ::std::os::raw::c_char,
24897    ) -> *mut BNRepository;
24898}
24899unsafe extern "C" {
24900    pub fn BNRepositoryManagerGetDefaultRepository() -> *mut BNRepository;
24901}
24902unsafe extern "C" {
24903    #[doc = " Components"]
24904    pub fn BNNewComponentReference(component: *mut BNComponent) -> *mut BNComponent;
24905}
24906unsafe extern "C" {
24907    pub fn BNFreeComponent(component: *mut BNComponent);
24908}
24909unsafe extern "C" {
24910    pub fn BNComponentGetContainedFunctions(
24911        component: *mut BNComponent,
24912        count: *mut usize,
24913    ) -> *mut *mut BNFunction;
24914}
24915unsafe extern "C" {
24916    pub fn BNComponentGetContainedComponents(
24917        component: *mut BNComponent,
24918        count: *mut usize,
24919    ) -> *mut *mut BNComponent;
24920}
24921unsafe extern "C" {
24922    pub fn BNComponentGetContainedDataVariables(
24923        component: *mut BNComponent,
24924        count: *mut usize,
24925    ) -> *mut BNDataVariable;
24926}
24927unsafe extern "C" {
24928    pub fn BNComponentGetReferencedDataVariables(
24929        component: *mut BNComponent,
24930        count: *mut usize,
24931    ) -> *mut BNDataVariable;
24932}
24933unsafe extern "C" {
24934    pub fn BNComponentGetReferencedDataVariablesRecursive(
24935        component: *mut BNComponent,
24936        count: *mut usize,
24937    ) -> *mut BNDataVariable;
24938}
24939unsafe extern "C" {
24940    pub fn BNComponentGetReferencedTypes(
24941        component: *mut BNComponent,
24942        count: *mut usize,
24943    ) -> *mut *mut BNType;
24944}
24945unsafe extern "C" {
24946    pub fn BNComponentGetReferencedTypesRecursive(
24947        component: *mut BNComponent,
24948        count: *mut usize,
24949    ) -> *mut *mut BNType;
24950}
24951unsafe extern "C" {
24952    pub fn BNFreeComponents(components: *mut *mut BNComponent, count: usize);
24953}
24954unsafe extern "C" {
24955    pub fn BNComponentFreeReferencedTypes(types: *mut *mut BNType, count: usize);
24956}
24957unsafe extern "C" {
24958    pub fn BNComponentGetParent(component: *mut BNComponent) -> *mut BNComponent;
24959}
24960unsafe extern "C" {
24961    pub fn BNComponentContainsFunction(
24962        component: *mut BNComponent,
24963        function: *mut BNFunction,
24964    ) -> bool;
24965}
24966unsafe extern "C" {
24967    pub fn BNComponentContainsComponent(
24968        parent: *mut BNComponent,
24969        component: *mut BNComponent,
24970    ) -> bool;
24971}
24972unsafe extern "C" {
24973    pub fn BNComponentContainsDataVariable(component: *mut BNComponent, address: u64) -> bool;
24974}
24975unsafe extern "C" {
24976    pub fn BNComponentAddFunctionReference(
24977        component: *mut BNComponent,
24978        function: *mut BNFunction,
24979    ) -> bool;
24980}
24981unsafe extern "C" {
24982    pub fn BNComponentAddComponent(parent: *mut BNComponent, component: *mut BNComponent) -> bool;
24983}
24984unsafe extern "C" {
24985    pub fn BNComponentAddDataVariable(component: *mut BNComponent, address: u64) -> bool;
24986}
24987unsafe extern "C" {
24988    pub fn BNComponentRemoveComponent(component: *mut BNComponent) -> bool;
24989}
24990unsafe extern "C" {
24991    pub fn BNComponentRemoveFunctionReference(
24992        component: *mut BNComponent,
24993        function: *mut BNFunction,
24994    ) -> bool;
24995}
24996unsafe extern "C" {
24997    pub fn BNComponentRemoveAllFunctions(component: *mut BNComponent);
24998}
24999unsafe extern "C" {
25000    pub fn BNComponentRemoveDataVariable(component: *mut BNComponent, address: u64) -> bool;
25001}
25002unsafe extern "C" {
25003    pub fn BNComponentAddAllMembersFromComponent(
25004        component: *mut BNComponent,
25005        fromComponent: *mut BNComponent,
25006    );
25007}
25008unsafe extern "C" {
25009    pub fn BNComponentGetGuid(component: *mut BNComponent) -> *mut ::std::os::raw::c_char;
25010}
25011unsafe extern "C" {
25012    pub fn BNComponentsEqual(a: *mut BNComponent, b: *mut BNComponent) -> bool;
25013}
25014unsafe extern "C" {
25015    pub fn BNComponentsNotEqual(a: *mut BNComponent, b: *mut BNComponent) -> bool;
25016}
25017unsafe extern "C" {
25018    pub fn BNComponentGetDisplayName(component: *mut BNComponent) -> *mut ::std::os::raw::c_char;
25019}
25020unsafe extern "C" {
25021    pub fn BNComponentGetOriginalName(component: *mut BNComponent) -> *mut ::std::os::raw::c_char;
25022}
25023unsafe extern "C" {
25024    pub fn BNComponentSetName(component: *mut BNComponent, name: *const ::std::os::raw::c_char);
25025}
25026unsafe extern "C" {
25027    pub fn BNComponentGetView(component: *mut BNComponent) -> *mut BNBinaryView;
25028}
25029unsafe extern "C" {
25030    #[doc = " LLVM Services APIs"]
25031    pub fn BNLlvmServicesInit();
25032}
25033unsafe extern "C" {
25034    pub fn BNLlvmServicesAssemble(
25035        src: *const ::std::os::raw::c_char,
25036        dialect: ::std::os::raw::c_int,
25037        triplet: *const ::std::os::raw::c_char,
25038        codeModel: ::std::os::raw::c_int,
25039        relocMode: ::std::os::raw::c_int,
25040        outBytes: *mut *mut ::std::os::raw::c_char,
25041        outBytesLen: *mut ::std::os::raw::c_int,
25042        err: *mut *mut ::std::os::raw::c_char,
25043        errLen: *mut ::std::os::raw::c_int,
25044    ) -> ::std::os::raw::c_int;
25045}
25046unsafe extern "C" {
25047    pub fn BNLlvmServicesAssembleFree(
25048        outBytes: *mut ::std::os::raw::c_char,
25049        err: *mut ::std::os::raw::c_char,
25050    );
25051}
25052unsafe extern "C" {
25053    pub fn BNLlvmServicesDisasmInstruction(
25054        triplet: *const ::std::os::raw::c_char,
25055        src: *mut u8,
25056        srcLen: ::std::os::raw::c_int,
25057        addr: u64,
25058        result: *mut ::std::os::raw::c_char,
25059        resultMaxSize: usize,
25060    ) -> ::std::os::raw::c_int;
25061}
25062unsafe extern "C" {
25063    #[doc = " Filesystem functionality"]
25064    pub fn BNDeleteFile(path: *const ::std::os::raw::c_char) -> bool;
25065}
25066unsafe extern "C" {
25067    pub fn BNDeleteDirectory(path: *const ::std::os::raw::c_char) -> bool;
25068}
25069unsafe extern "C" {
25070    pub fn BNCreateDirectory(
25071        path: *const ::std::os::raw::c_char,
25072        createSubdirectories: bool,
25073    ) -> bool;
25074}
25075unsafe extern "C" {
25076    pub fn BNPathExists(path: *const ::std::os::raw::c_char) -> bool;
25077}
25078unsafe extern "C" {
25079    pub fn BNGetParentPath(path: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
25080}
25081unsafe extern "C" {
25082    pub fn BNIsPathDirectory(path: *const ::std::os::raw::c_char) -> bool;
25083}
25084unsafe extern "C" {
25085    pub fn BNIsPathRegularFile(path: *const ::std::os::raw::c_char) -> bool;
25086}
25087unsafe extern "C" {
25088    pub fn BNFileSize(path: *const ::std::os::raw::c_char, size: *mut u64) -> bool;
25089}
25090unsafe extern "C" {
25091    pub fn BNRenameFile(
25092        source: *const ::std::os::raw::c_char,
25093        dest: *const ::std::os::raw::c_char,
25094    ) -> bool;
25095}
25096unsafe extern "C" {
25097    pub fn BNCopyFile(
25098        source: *const ::std::os::raw::c_char,
25099        dest: *const ::std::os::raw::c_char,
25100    ) -> bool;
25101}
25102unsafe extern "C" {
25103    pub fn BNGetFileName(path: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
25104}
25105unsafe extern "C" {
25106    pub fn BNGetFileExtension(path: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
25107}
25108unsafe extern "C" {
25109    pub fn BNGetFilePathsInDirectory(
25110        path: *const ::std::os::raw::c_char,
25111        count: *mut usize,
25112    ) -> *mut *mut ::std::os::raw::c_char;
25113}
25114unsafe extern "C" {
25115    pub fn BNAppendPath(
25116        path: *const ::std::os::raw::c_char,
25117        part: *const ::std::os::raw::c_char,
25118    ) -> *mut ::std::os::raw::c_char;
25119}
25120unsafe extern "C" {
25121    pub fn BNFreePath(path: *mut ::std::os::raw::c_char);
25122}
25123unsafe extern "C" {
25124    pub fn BNGetSystemCacheDirectory() -> *mut ::std::os::raw::c_char;
25125}
25126unsafe extern "C" {
25127    #[doc = " Settings APIs"]
25128    pub fn BNCreateSettings(schemaId: *const ::std::os::raw::c_char) -> *mut BNSettings;
25129}
25130unsafe extern "C" {
25131    pub fn BNNewSettingsReference(settings: *mut BNSettings) -> *mut BNSettings;
25132}
25133unsafe extern "C" {
25134    pub fn BNFreeSettings(settings: *mut BNSettings);
25135}
25136unsafe extern "C" {
25137    pub fn BNLoadSettingsFile(
25138        settings: *mut BNSettings,
25139        fileName: *const ::std::os::raw::c_char,
25140        scope: BNSettingsScope,
25141        view: *mut BNBinaryView,
25142    ) -> bool;
25143}
25144unsafe extern "C" {
25145    pub fn BNSettingsSetResourceId(
25146        settings: *mut BNSettings,
25147        resourceId: *const ::std::os::raw::c_char,
25148    );
25149}
25150unsafe extern "C" {
25151    pub fn BNSettingsRegisterGroup(
25152        settings: *mut BNSettings,
25153        group: *const ::std::os::raw::c_char,
25154        title: *const ::std::os::raw::c_char,
25155    ) -> bool;
25156}
25157unsafe extern "C" {
25158    pub fn BNSettingsRegisterSetting(
25159        settings: *mut BNSettings,
25160        key: *const ::std::os::raw::c_char,
25161        properties: *const ::std::os::raw::c_char,
25162    ) -> bool;
25163}
25164unsafe extern "C" {
25165    pub fn BNSettingsContains(
25166        settings: *mut BNSettings,
25167        key: *const ::std::os::raw::c_char,
25168    ) -> bool;
25169}
25170unsafe extern "C" {
25171    pub fn BNSettingsIsEmpty(
25172        settings: *mut BNSettings,
25173        view: *mut BNBinaryView,
25174        func: *mut BNFunction,
25175        scope: BNSettingsScope,
25176    ) -> bool;
25177}
25178unsafe extern "C" {
25179    pub fn BNSettingsKeysList(
25180        settings: *mut BNSettings,
25181        inoutSize: *mut usize,
25182    ) -> *mut *const ::std::os::raw::c_char;
25183}
25184unsafe extern "C" {
25185    pub fn BNSettingsQueryPropertyString(
25186        settings: *mut BNSettings,
25187        key: *const ::std::os::raw::c_char,
25188        property: *const ::std::os::raw::c_char,
25189    ) -> *mut ::std::os::raw::c_char;
25190}
25191unsafe extern "C" {
25192    pub fn BNSettingsQueryPropertyStringList(
25193        settings: *mut BNSettings,
25194        key: *const ::std::os::raw::c_char,
25195        property: *const ::std::os::raw::c_char,
25196        inoutSize: *mut usize,
25197    ) -> *mut *const ::std::os::raw::c_char;
25198}
25199unsafe extern "C" {
25200    pub fn BNSettingsUpdateProperty(
25201        settings: *mut BNSettings,
25202        key: *const ::std::os::raw::c_char,
25203        property: *const ::std::os::raw::c_char,
25204    ) -> bool;
25205}
25206unsafe extern "C" {
25207    pub fn BNSettingsUpdateBoolProperty(
25208        settings: *mut BNSettings,
25209        key: *const ::std::os::raw::c_char,
25210        property: *const ::std::os::raw::c_char,
25211        value: bool,
25212    ) -> bool;
25213}
25214unsafe extern "C" {
25215    pub fn BNSettingsUpdateDoubleProperty(
25216        settings: *mut BNSettings,
25217        key: *const ::std::os::raw::c_char,
25218        property: *const ::std::os::raw::c_char,
25219        value: f64,
25220    ) -> bool;
25221}
25222unsafe extern "C" {
25223    pub fn BNSettingsUpdateInt64Property(
25224        settings: *mut BNSettings,
25225        key: *const ::std::os::raw::c_char,
25226        property: *const ::std::os::raw::c_char,
25227        value: i64,
25228    ) -> bool;
25229}
25230unsafe extern "C" {
25231    pub fn BNSettingsUpdateUInt64Property(
25232        settings: *mut BNSettings,
25233        key: *const ::std::os::raw::c_char,
25234        property: *const ::std::os::raw::c_char,
25235        value: u64,
25236    ) -> bool;
25237}
25238unsafe extern "C" {
25239    pub fn BNSettingsUpdateStringProperty(
25240        settings: *mut BNSettings,
25241        key: *const ::std::os::raw::c_char,
25242        property: *const ::std::os::raw::c_char,
25243        value: *const ::std::os::raw::c_char,
25244    ) -> bool;
25245}
25246unsafe extern "C" {
25247    pub fn BNSettingsUpdateStringListProperty(
25248        settings: *mut BNSettings,
25249        key: *const ::std::os::raw::c_char,
25250        property: *const ::std::os::raw::c_char,
25251        value: *mut *const ::std::os::raw::c_char,
25252        size: usize,
25253    ) -> bool;
25254}
25255unsafe extern "C" {
25256    pub fn BNSettingsDeserializeSchema(
25257        settings: *mut BNSettings,
25258        schema: *const ::std::os::raw::c_char,
25259        scope: BNSettingsScope,
25260        merge: bool,
25261    ) -> bool;
25262}
25263unsafe extern "C" {
25264    pub fn BNSettingsSerializeSchema(settings: *mut BNSettings) -> *mut ::std::os::raw::c_char;
25265}
25266unsafe extern "C" {
25267    pub fn BNDeserializeSettings(
25268        settings: *mut BNSettings,
25269        contents: *const ::std::os::raw::c_char,
25270        view: *mut BNBinaryView,
25271        func: *mut BNFunction,
25272        scope: BNSettingsScope,
25273    ) -> bool;
25274}
25275unsafe extern "C" {
25276    pub fn BNSerializeSettings(
25277        settings: *mut BNSettings,
25278        view: *mut BNBinaryView,
25279        func: *mut BNFunction,
25280        scope: BNSettingsScope,
25281    ) -> *mut ::std::os::raw::c_char;
25282}
25283unsafe extern "C" {
25284    pub fn BNSettingsReset(
25285        settings: *mut BNSettings,
25286        key: *const ::std::os::raw::c_char,
25287        view: *mut BNBinaryView,
25288        func: *mut BNFunction,
25289        scope: BNSettingsScope,
25290    ) -> bool;
25291}
25292unsafe extern "C" {
25293    pub fn BNSettingsResetAll(
25294        settings: *mut BNSettings,
25295        view: *mut BNBinaryView,
25296        func: *mut BNFunction,
25297        scope: BNSettingsScope,
25298        schemaOnly: bool,
25299    ) -> bool;
25300}
25301unsafe extern "C" {
25302    pub fn BNSettingsGetBool(
25303        settings: *mut BNSettings,
25304        key: *const ::std::os::raw::c_char,
25305        view: *mut BNBinaryView,
25306        func: *mut BNFunction,
25307        scope: *mut BNSettingsScope,
25308    ) -> bool;
25309}
25310unsafe extern "C" {
25311    pub fn BNSettingsGetDouble(
25312        settings: *mut BNSettings,
25313        key: *const ::std::os::raw::c_char,
25314        view: *mut BNBinaryView,
25315        func: *mut BNFunction,
25316        scope: *mut BNSettingsScope,
25317    ) -> f64;
25318}
25319unsafe extern "C" {
25320    pub fn BNSettingsGetInt64(
25321        settings: *mut BNSettings,
25322        key: *const ::std::os::raw::c_char,
25323        view: *mut BNBinaryView,
25324        func: *mut BNFunction,
25325        scope: *mut BNSettingsScope,
25326    ) -> i64;
25327}
25328unsafe extern "C" {
25329    pub fn BNSettingsGetUInt64(
25330        settings: *mut BNSettings,
25331        key: *const ::std::os::raw::c_char,
25332        view: *mut BNBinaryView,
25333        func: *mut BNFunction,
25334        scope: *mut BNSettingsScope,
25335    ) -> u64;
25336}
25337unsafe extern "C" {
25338    pub fn BNSettingsGetString(
25339        settings: *mut BNSettings,
25340        key: *const ::std::os::raw::c_char,
25341        view: *mut BNBinaryView,
25342        func: *mut BNFunction,
25343        scope: *mut BNSettingsScope,
25344    ) -> *mut ::std::os::raw::c_char;
25345}
25346unsafe extern "C" {
25347    pub fn BNSettingsGetStringList(
25348        settings: *mut BNSettings,
25349        key: *const ::std::os::raw::c_char,
25350        view: *mut BNBinaryView,
25351        func: *mut BNFunction,
25352        scope: *mut BNSettingsScope,
25353        inoutSize: *mut usize,
25354    ) -> *mut *const ::std::os::raw::c_char;
25355}
25356unsafe extern "C" {
25357    pub fn BNSettingsGetJson(
25358        settings: *mut BNSettings,
25359        key: *const ::std::os::raw::c_char,
25360        view: *mut BNBinaryView,
25361        func: *mut BNFunction,
25362        scope: *mut BNSettingsScope,
25363    ) -> *mut ::std::os::raw::c_char;
25364}
25365unsafe extern "C" {
25366    pub fn BNSettingsSetBool(
25367        settings: *mut BNSettings,
25368        view: *mut BNBinaryView,
25369        func: *mut BNFunction,
25370        scope: BNSettingsScope,
25371        key: *const ::std::os::raw::c_char,
25372        value: bool,
25373    ) -> bool;
25374}
25375unsafe extern "C" {
25376    pub fn BNSettingsSetDouble(
25377        settings: *mut BNSettings,
25378        view: *mut BNBinaryView,
25379        func: *mut BNFunction,
25380        scope: BNSettingsScope,
25381        key: *const ::std::os::raw::c_char,
25382        value: f64,
25383    ) -> bool;
25384}
25385unsafe extern "C" {
25386    pub fn BNSettingsSetInt64(
25387        settings: *mut BNSettings,
25388        view: *mut BNBinaryView,
25389        func: *mut BNFunction,
25390        scope: BNSettingsScope,
25391        key: *const ::std::os::raw::c_char,
25392        value: i64,
25393    ) -> bool;
25394}
25395unsafe extern "C" {
25396    pub fn BNSettingsSetUInt64(
25397        settings: *mut BNSettings,
25398        view: *mut BNBinaryView,
25399        func: *mut BNFunction,
25400        scope: BNSettingsScope,
25401        key: *const ::std::os::raw::c_char,
25402        value: u64,
25403    ) -> bool;
25404}
25405unsafe extern "C" {
25406    pub fn BNSettingsSetString(
25407        settings: *mut BNSettings,
25408        view: *mut BNBinaryView,
25409        func: *mut BNFunction,
25410        scope: BNSettingsScope,
25411        key: *const ::std::os::raw::c_char,
25412        value: *const ::std::os::raw::c_char,
25413    ) -> bool;
25414}
25415unsafe extern "C" {
25416    pub fn BNSettingsSetStringList(
25417        settings: *mut BNSettings,
25418        view: *mut BNBinaryView,
25419        func: *mut BNFunction,
25420        scope: BNSettingsScope,
25421        key: *const ::std::os::raw::c_char,
25422        value: *mut *const ::std::os::raw::c_char,
25423        size: usize,
25424    ) -> bool;
25425}
25426unsafe extern "C" {
25427    pub fn BNSettingsSetJson(
25428        settings: *mut BNSettings,
25429        view: *mut BNBinaryView,
25430        func: *mut BNFunction,
25431        scope: BNSettingsScope,
25432        key: *const ::std::os::raw::c_char,
25433        value: *const ::std::os::raw::c_char,
25434    ) -> bool;
25435}
25436unsafe extern "C" {
25437    #[doc = " Create Metadata of various types"]
25438    pub fn BNNewMetadataReference(data: *mut BNMetadata) -> *mut BNMetadata;
25439}
25440unsafe extern "C" {
25441    pub fn BNCreateMetadataBooleanData(data: bool) -> *mut BNMetadata;
25442}
25443unsafe extern "C" {
25444    pub fn BNCreateMetadataStringData(data: *const ::std::os::raw::c_char) -> *mut BNMetadata;
25445}
25446unsafe extern "C" {
25447    pub fn BNCreateMetadataUnsignedIntegerData(data: u64) -> *mut BNMetadata;
25448}
25449unsafe extern "C" {
25450    pub fn BNCreateMetadataSignedIntegerData(data: i64) -> *mut BNMetadata;
25451}
25452unsafe extern "C" {
25453    pub fn BNCreateMetadataDoubleData(data: f64) -> *mut BNMetadata;
25454}
25455unsafe extern "C" {
25456    pub fn BNCreateMetadataOfType(type_: BNMetadataType) -> *mut BNMetadata;
25457}
25458unsafe extern "C" {
25459    pub fn BNCreateMetadataRawData(data: *const u8, size: usize) -> *mut BNMetadata;
25460}
25461unsafe extern "C" {
25462    pub fn BNCreateMetadataArray(data: *mut *mut BNMetadata, size: usize) -> *mut BNMetadata;
25463}
25464unsafe extern "C" {
25465    pub fn BNCreateMetadataValueStore(
25466        keys: *mut *const ::std::os::raw::c_char,
25467        values: *mut *mut BNMetadata,
25468        size: usize,
25469    ) -> *mut BNMetadata;
25470}
25471unsafe extern "C" {
25472    pub fn BNCreateMetadataBooleanListData(data: *mut bool, size: usize) -> *mut BNMetadata;
25473}
25474unsafe extern "C" {
25475    pub fn BNCreateMetadataUnsignedIntegerListData(data: *mut u64, size: usize) -> *mut BNMetadata;
25476}
25477unsafe extern "C" {
25478    pub fn BNCreateMetadataSignedIntegerListData(data: *mut i64, size: usize) -> *mut BNMetadata;
25479}
25480unsafe extern "C" {
25481    pub fn BNCreateMetadataDoubleListData(data: *mut f64, size: usize) -> *mut BNMetadata;
25482}
25483unsafe extern "C" {
25484    pub fn BNCreateMetadataStringListData(
25485        data: *mut *const ::std::os::raw::c_char,
25486        size: usize,
25487    ) -> *mut BNMetadata;
25488}
25489unsafe extern "C" {
25490    pub fn BNMetadataIsEqual(lhs: *mut BNMetadata, rhs: *mut BNMetadata) -> bool;
25491}
25492unsafe extern "C" {
25493    pub fn BNMetadataSetValueForKey(
25494        data: *mut BNMetadata,
25495        key: *const ::std::os::raw::c_char,
25496        md: *mut BNMetadata,
25497    ) -> bool;
25498}
25499unsafe extern "C" {
25500    pub fn BNMetadataGetForKey(
25501        data: *mut BNMetadata,
25502        key: *const ::std::os::raw::c_char,
25503    ) -> *mut BNMetadata;
25504}
25505unsafe extern "C" {
25506    pub fn BNMetadataArrayAppend(data: *mut BNMetadata, md: *mut BNMetadata) -> bool;
25507}
25508unsafe extern "C" {
25509    pub fn BNMetadataRemoveKey(data: *mut BNMetadata, key: *const ::std::os::raw::c_char);
25510}
25511unsafe extern "C" {
25512    pub fn BNMetadataSize(data: *mut BNMetadata) -> usize;
25513}
25514unsafe extern "C" {
25515    pub fn BNMetadataGetForIndex(data: *mut BNMetadata, index: usize) -> *mut BNMetadata;
25516}
25517unsafe extern "C" {
25518    pub fn BNMetadataRemoveIndex(data: *mut BNMetadata, index: usize);
25519}
25520unsafe extern "C" {
25521    pub fn BNFreeMetadataArray(data: *mut *mut BNMetadata);
25522}
25523unsafe extern "C" {
25524    pub fn BNFreeMetadataValueStore(data: *mut BNMetadataValueStore);
25525}
25526unsafe extern "C" {
25527    pub fn BNFreeMetadata(data: *mut BNMetadata);
25528}
25529unsafe extern "C" {
25530    pub fn BNFreeMetadataRaw(data: *mut u8);
25531}
25532unsafe extern "C" {
25533    pub fn BNFreeMetadataBooleanList(arg1: *mut bool, arg2: usize);
25534}
25535unsafe extern "C" {
25536    pub fn BNFreeMetadataUnsignedIntegerList(arg1: *mut u64, arg2: usize);
25537}
25538unsafe extern "C" {
25539    pub fn BNFreeMetadataSignedIntegerList(arg1: *mut i64, arg2: usize);
25540}
25541unsafe extern "C" {
25542    pub fn BNFreeMetadataDoubleList(arg1: *mut f64, arg2: usize);
25543}
25544unsafe extern "C" {
25545    pub fn BNFreeMetadataStringList(arg1: *mut *mut ::std::os::raw::c_char, arg2: usize);
25546}
25547unsafe extern "C" {
25548    #[doc = " Retrieve Structured Data"]
25549    pub fn BNMetadataGetBoolean(data: *mut BNMetadata) -> bool;
25550}
25551unsafe extern "C" {
25552    pub fn BNMetadataGetString(data: *mut BNMetadata) -> *mut ::std::os::raw::c_char;
25553}
25554unsafe extern "C" {
25555    pub fn BNMetadataGetUnsignedInteger(data: *mut BNMetadata) -> u64;
25556}
25557unsafe extern "C" {
25558    pub fn BNMetadataGetSignedInteger(data: *mut BNMetadata) -> i64;
25559}
25560unsafe extern "C" {
25561    pub fn BNMetadataGetDouble(data: *mut BNMetadata) -> f64;
25562}
25563unsafe extern "C" {
25564    pub fn BNMetadataGetBooleanList(data: *mut BNMetadata, arg1: *mut usize) -> *mut bool;
25565}
25566unsafe extern "C" {
25567    pub fn BNMetadataGetStringList(
25568        data: *mut BNMetadata,
25569        arg1: *mut usize,
25570    ) -> *mut *mut ::std::os::raw::c_char;
25571}
25572unsafe extern "C" {
25573    pub fn BNMetadataGetUnsignedIntegerList(data: *mut BNMetadata, arg1: *mut usize) -> *mut u64;
25574}
25575unsafe extern "C" {
25576    pub fn BNMetadataGetSignedIntegerList(data: *mut BNMetadata, arg1: *mut usize) -> *mut i64;
25577}
25578unsafe extern "C" {
25579    pub fn BNMetadataGetDoubleList(data: *mut BNMetadata, arg1: *mut usize) -> *mut f64;
25580}
25581unsafe extern "C" {
25582    pub fn BNMetadataGetRaw(data: *mut BNMetadata, size: *mut usize) -> *mut u8;
25583}
25584unsafe extern "C" {
25585    pub fn BNMetadataGetArray(data: *mut BNMetadata, size: *mut usize) -> *mut *mut BNMetadata;
25586}
25587unsafe extern "C" {
25588    pub fn BNMetadataGetValueStore(data: *mut BNMetadata) -> *mut BNMetadataValueStore;
25589}
25590unsafe extern "C" {
25591    pub fn BNMetadataGetJsonString(data: *mut BNMetadata) -> *mut ::std::os::raw::c_char;
25592}
25593unsafe extern "C" {
25594    #[doc = " Query type of Metadata"]
25595    pub fn BNMetadataGetType(data: *mut BNMetadata) -> BNMetadataType;
25596}
25597unsafe extern "C" {
25598    pub fn BNMetadataIsBoolean(data: *mut BNMetadata) -> bool;
25599}
25600unsafe extern "C" {
25601    pub fn BNMetadataIsString(data: *mut BNMetadata) -> bool;
25602}
25603unsafe extern "C" {
25604    pub fn BNMetadataIsUnsignedInteger(data: *mut BNMetadata) -> bool;
25605}
25606unsafe extern "C" {
25607    pub fn BNMetadataIsSignedInteger(data: *mut BNMetadata) -> bool;
25608}
25609unsafe extern "C" {
25610    pub fn BNMetadataIsDouble(data: *mut BNMetadata) -> bool;
25611}
25612unsafe extern "C" {
25613    pub fn BNMetadataIsBooleanList(data: *mut BNMetadata) -> bool;
25614}
25615unsafe extern "C" {
25616    pub fn BNMetadataIsStringList(data: *mut BNMetadata) -> bool;
25617}
25618unsafe extern "C" {
25619    pub fn BNMetadataIsUnsignedIntegerList(data: *mut BNMetadata) -> bool;
25620}
25621unsafe extern "C" {
25622    pub fn BNMetadataIsSignedIntegerList(data: *mut BNMetadata) -> bool;
25623}
25624unsafe extern "C" {
25625    pub fn BNMetadataIsDoubleList(data: *mut BNMetadata) -> bool;
25626}
25627unsafe extern "C" {
25628    pub fn BNMetadataIsRaw(data: *mut BNMetadata) -> bool;
25629}
25630unsafe extern "C" {
25631    pub fn BNMetadataIsArray(data: *mut BNMetadata) -> bool;
25632}
25633unsafe extern "C" {
25634    pub fn BNMetadataIsKeyValueStore(data: *mut BNMetadata) -> bool;
25635}
25636unsafe extern "C" {
25637    #[doc = " Store/Query structured data to/from a BinaryView"]
25638    pub fn BNBinaryViewStoreMetadata(
25639        view: *mut BNBinaryView,
25640        key: *const ::std::os::raw::c_char,
25641        value: *mut BNMetadata,
25642        isAuto: bool,
25643    );
25644}
25645unsafe extern "C" {
25646    pub fn BNBinaryViewQueryMetadata(
25647        view: *mut BNBinaryView,
25648        key: *const ::std::os::raw::c_char,
25649    ) -> *mut BNMetadata;
25650}
25651unsafe extern "C" {
25652    pub fn BNBinaryViewRemoveMetadata(view: *mut BNBinaryView, key: *const ::std::os::raw::c_char);
25653}
25654unsafe extern "C" {
25655    pub fn BNBinaryViewGetMetadata(view: *mut BNBinaryView) -> *mut BNMetadata;
25656}
25657unsafe extern "C" {
25658    pub fn BNBinaryViewGetAutoMetadata(view: *mut BNBinaryView) -> *mut BNMetadata;
25659}
25660unsafe extern "C" {
25661    pub fn BNBinaryViewGetLoadSettingsTypeNames(
25662        view: *mut BNBinaryView,
25663        count: *mut usize,
25664    ) -> *mut *mut ::std::os::raw::c_char;
25665}
25666unsafe extern "C" {
25667    pub fn BNBinaryViewGetLoadSettings(
25668        view: *mut BNBinaryView,
25669        typeName: *const ::std::os::raw::c_char,
25670    ) -> *mut BNSettings;
25671}
25672unsafe extern "C" {
25673    pub fn BNBinaryViewSetLoadSettings(
25674        view: *mut BNBinaryView,
25675        typeName: *const ::std::os::raw::c_char,
25676        settings: *mut BNSettings,
25677    );
25678}
25679unsafe extern "C" {
25680    pub fn BNBinaryViewFinalizeNewSegments(view: *mut BNBinaryView) -> bool;
25681}
25682unsafe extern "C" {
25683    #[doc = " Relocation object methods"]
25684    pub fn BNNewRelocationReference(reloc: *mut BNRelocation) -> *mut BNRelocation;
25685}
25686unsafe extern "C" {
25687    pub fn BNFreeRelocation(reloc: *mut BNRelocation);
25688}
25689unsafe extern "C" {
25690    pub fn BNRelocationGetInfo(reloc: *mut BNRelocation) -> BNRelocationInfo;
25691}
25692unsafe extern "C" {
25693    pub fn BNRelocationGetArchitecture(reloc: *mut BNRelocation) -> *mut BNArchitecture;
25694}
25695unsafe extern "C" {
25696    pub fn BNRelocationGetTarget(reloc: *mut BNRelocation) -> u64;
25697}
25698unsafe extern "C" {
25699    pub fn BNRelocationGetReloc(reloc: *mut BNRelocation) -> u64;
25700}
25701unsafe extern "C" {
25702    pub fn BNRelocationGetSymbol(reloc: *mut BNRelocation) -> *mut BNSymbol;
25703}
25704unsafe extern "C" {
25705    #[doc = " Segment object methods"]
25706    pub fn BNCreateSegment(
25707        start: u64,
25708        length: u64,
25709        dataOffset: u64,
25710        dataLength: u64,
25711        flags: u32,
25712        autoDefined: bool,
25713    ) -> *mut BNSegment;
25714}
25715unsafe extern "C" {
25716    pub fn BNNewSegmentReference(seg: *mut BNSegment) -> *mut BNSegment;
25717}
25718unsafe extern "C" {
25719    pub fn BNFreeSegment(seg: *mut BNSegment);
25720}
25721unsafe extern "C" {
25722    pub fn BNSegmentGetStart(segment: *mut BNSegment) -> u64;
25723}
25724unsafe extern "C" {
25725    pub fn BNSegmentGetLength(segment: *mut BNSegment) -> u64;
25726}
25727unsafe extern "C" {
25728    pub fn BNSegmentGetEnd(segment: *mut BNSegment) -> u64;
25729}
25730unsafe extern "C" {
25731    pub fn BNSegmentGetDataEnd(segment: *mut BNSegment) -> u64;
25732}
25733unsafe extern "C" {
25734    pub fn BNSegmentGetDataOffset(segment: *mut BNSegment) -> u64;
25735}
25736unsafe extern "C" {
25737    pub fn BNSegmentGetDataLength(segment: *mut BNSegment) -> u64;
25738}
25739unsafe extern "C" {
25740    pub fn BNSegmentGetFlags(segment: *mut BNSegment) -> u32;
25741}
25742unsafe extern "C" {
25743    pub fn BNSegmentIsAutoDefined(segment: *mut BNSegment) -> bool;
25744}
25745unsafe extern "C" {
25746    #[doc = " Section object methods"]
25747    pub fn BNNewSectionReference(section: *mut BNSection) -> *mut BNSection;
25748}
25749unsafe extern "C" {
25750    pub fn BNFreeSection(section: *mut BNSection);
25751}
25752unsafe extern "C" {
25753    pub fn BNSectionGetName(section: *mut BNSection) -> *mut ::std::os::raw::c_char;
25754}
25755unsafe extern "C" {
25756    pub fn BNSectionGetType(section: *mut BNSection) -> *mut ::std::os::raw::c_char;
25757}
25758unsafe extern "C" {
25759    pub fn BNSectionGetStart(section: *mut BNSection) -> u64;
25760}
25761unsafe extern "C" {
25762    pub fn BNSectionGetLength(section: *mut BNSection) -> u64;
25763}
25764unsafe extern "C" {
25765    pub fn BNSectionGetEnd(section: *mut BNSection) -> u64;
25766}
25767unsafe extern "C" {
25768    pub fn BNSectionGetLinkedSection(section: *mut BNSection) -> *mut ::std::os::raw::c_char;
25769}
25770unsafe extern "C" {
25771    pub fn BNSectionGetInfoSection(section: *mut BNSection) -> *mut ::std::os::raw::c_char;
25772}
25773unsafe extern "C" {
25774    pub fn BNSectionGetInfoData(section: *mut BNSection) -> u64;
25775}
25776unsafe extern "C" {
25777    pub fn BNSectionGetAlign(section: *mut BNSection) -> u64;
25778}
25779unsafe extern "C" {
25780    pub fn BNSectionGetEntrySize(section: *mut BNSection) -> u64;
25781}
25782unsafe extern "C" {
25783    pub fn BNSectionGetSemantics(section: *mut BNSection) -> BNSectionSemantics;
25784}
25785unsafe extern "C" {
25786    pub fn BNSectionIsAutoDefined(section: *mut BNSection) -> bool;
25787}
25788unsafe extern "C" {
25789    #[doc = " Custom Data Render methods"]
25790    pub fn BNCreateDataRenderer(renderer: *mut BNCustomDataRenderer) -> *mut BNDataRenderer;
25791}
25792unsafe extern "C" {
25793    pub fn BNNewDataRendererReference(renderer: *mut BNDataRenderer) -> *mut BNDataRenderer;
25794}
25795unsafe extern "C" {
25796    pub fn BNIsValidForData(
25797        ctxt: *mut ::std::os::raw::c_void,
25798        view: *mut BNBinaryView,
25799        addr: u64,
25800        type_: *mut BNType,
25801        typeCtx: *mut BNTypeContext,
25802        ctxCount: usize,
25803    ) -> bool;
25804}
25805unsafe extern "C" {
25806    pub fn BNGetLinesForData(
25807        ctxt: *mut ::std::os::raw::c_void,
25808        view: *mut BNBinaryView,
25809        addr: u64,
25810        type_: *mut BNType,
25811        prefix: *const BNInstructionTextToken,
25812        prefixCount: usize,
25813        width: usize,
25814        count: *mut usize,
25815        typeCtx: *mut BNTypeContext,
25816        ctxCount: usize,
25817        language: *const ::std::os::raw::c_char,
25818    ) -> *mut BNDisassemblyTextLine;
25819}
25820unsafe extern "C" {
25821    pub fn BNRenderLinesForData(
25822        data: *mut BNBinaryView,
25823        addr: u64,
25824        type_: *mut BNType,
25825        prefix: *const BNInstructionTextToken,
25826        prefixCount: usize,
25827        width: usize,
25828        count: *mut usize,
25829        typeCtx: *mut BNTypeContext,
25830        ctxCount: usize,
25831        language: *const ::std::os::raw::c_char,
25832    ) -> *mut BNDisassemblyTextLine;
25833}
25834unsafe extern "C" {
25835    pub fn BNFreeDataRenderer(renderer: *mut BNDataRenderer);
25836}
25837unsafe extern "C" {
25838    pub fn BNGetDataRendererContainer() -> *mut BNDataRendererContainer;
25839}
25840unsafe extern "C" {
25841    pub fn BNRegisterGenericDataRenderer(
25842        container: *mut BNDataRendererContainer,
25843        renderer: *mut BNDataRenderer,
25844    );
25845}
25846unsafe extern "C" {
25847    pub fn BNRegisterTypeSpecificDataRenderer(
25848        container: *mut BNDataRendererContainer,
25849        renderer: *mut BNDataRenderer,
25850    );
25851}
25852unsafe extern "C" {
25853    pub fn BNParseExpression(
25854        view: *mut BNBinaryView,
25855        expression: *const ::std::os::raw::c_char,
25856        offset: *mut u64,
25857        here: u64,
25858        errorString: *mut *mut ::std::os::raw::c_char,
25859    ) -> bool;
25860}
25861unsafe extern "C" {
25862    pub fn BNFreeParseError(errorString: *mut ::std::os::raw::c_char);
25863}
25864unsafe extern "C" {
25865    pub fn BNGetCurrentStackTraceString() -> *mut ::std::os::raw::c_char;
25866}
25867unsafe extern "C" {
25868    pub fn BNRegisterObjectRefDebugTrace(
25869        typeName: *const ::std::os::raw::c_char,
25870    ) -> *mut ::std::os::raw::c_void;
25871}
25872unsafe extern "C" {
25873    pub fn BNUnregisterObjectRefDebugTrace(
25874        typeName: *const ::std::os::raw::c_char,
25875        trace: *mut ::std::os::raw::c_void,
25876    );
25877}
25878unsafe extern "C" {
25879    pub fn BNGetMemoryUsageInfo(count: *mut usize) -> *mut BNMemoryUsageInfo;
25880}
25881unsafe extern "C" {
25882    pub fn BNFreeMemoryUsageInfo(info: *mut BNMemoryUsageInfo, count: usize);
25883}
25884unsafe extern "C" {
25885    pub fn BNGetAddressRenderedWidth(addr: u64) -> u32;
25886}
25887unsafe extern "C" {
25888    pub fn BNRustSimplifyStrToFQN(
25889        arg1: *const ::std::os::raw::c_char,
25890        arg2: bool,
25891    ) -> BNQualifiedName;
25892}
25893unsafe extern "C" {
25894    pub fn BNRustSimplifyStrToStr(
25895        arg1: *const ::std::os::raw::c_char,
25896    ) -> *mut ::std::os::raw::c_char;
25897}
25898unsafe extern "C" {
25899    pub fn BNRegisterDebugInfoParser(
25900        name: *const ::std::os::raw::c_char,
25901        isValid: ::std::option::Option<
25902            unsafe extern "C" fn(
25903                arg1: *mut ::std::os::raw::c_void,
25904                arg2: *mut BNBinaryView,
25905            ) -> bool,
25906        >,
25907        parseInfo: ::std::option::Option<
25908            unsafe extern "C" fn(
25909                arg1: *mut ::std::os::raw::c_void,
25910                arg2: *mut BNDebugInfo,
25911                arg3: *mut BNBinaryView,
25912                arg4: *mut BNBinaryView,
25913                arg5: BNProgressFunction,
25914                arg6: *mut ::std::os::raw::c_void,
25915            ) -> bool,
25916        >,
25917        context: *mut ::std::os::raw::c_void,
25918    ) -> *mut BNDebugInfoParser;
25919}
25920unsafe extern "C" {
25921    pub fn BNUnregisterDebugInfoParser(rawName: *const ::std::os::raw::c_char);
25922}
25923unsafe extern "C" {
25924    pub fn BNGetDebugInfoParserByName(
25925        name: *const ::std::os::raw::c_char,
25926    ) -> *mut BNDebugInfoParser;
25927}
25928unsafe extern "C" {
25929    pub fn BNGetDebugInfoParsers(count: *mut usize) -> *mut *mut BNDebugInfoParser;
25930}
25931unsafe extern "C" {
25932    pub fn BNGetDebugInfoParsersForView(
25933        view: *mut BNBinaryView,
25934        count: *mut usize,
25935    ) -> *mut *mut BNDebugInfoParser;
25936}
25937unsafe extern "C" {
25938    pub fn BNGetDebugInfoParserName(parser: *mut BNDebugInfoParser) -> *mut ::std::os::raw::c_char;
25939}
25940unsafe extern "C" {
25941    pub fn BNIsDebugInfoParserValidForView(
25942        parser: *mut BNDebugInfoParser,
25943        view: *mut BNBinaryView,
25944    ) -> bool;
25945}
25946unsafe extern "C" {
25947    pub fn BNParseDebugInfo(
25948        parser: *mut BNDebugInfoParser,
25949        view: *mut BNBinaryView,
25950        debugFile: *mut BNBinaryView,
25951        existingDebugInfo: *mut BNDebugInfo,
25952        progress: BNProgressFunction,
25953        progressCtxt: *mut ::std::os::raw::c_void,
25954    ) -> *mut BNDebugInfo;
25955}
25956unsafe extern "C" {
25957    pub fn BNNewDebugInfoParserReference(parser: *mut BNDebugInfoParser) -> *mut BNDebugInfoParser;
25958}
25959unsafe extern "C" {
25960    pub fn BNFreeDebugInfoParserReference(parser: *mut BNDebugInfoParser);
25961}
25962unsafe extern "C" {
25963    pub fn BNFreeDebugInfoParserList(parsers: *mut *mut BNDebugInfoParser, count: usize);
25964}
25965unsafe extern "C" {
25966    pub fn BNNewDebugInfoReference(debugInfo: *mut BNDebugInfo) -> *mut BNDebugInfo;
25967}
25968unsafe extern "C" {
25969    pub fn BNFreeDebugInfoReference(debugInfo: *mut BNDebugInfo);
25970}
25971unsafe extern "C" {
25972    pub fn BNGetDebugParserNames(
25973        debugInfo: *mut BNDebugInfo,
25974        count: *mut usize,
25975    ) -> *mut *mut ::std::os::raw::c_char;
25976}
25977unsafe extern "C" {
25978    pub fn BNGetDebugInfoTypeContainer(
25979        debugInfo: *mut BNDebugInfo,
25980        parserName: *const ::std::os::raw::c_char,
25981    ) -> *mut BNTypeContainer;
25982}
25983unsafe extern "C" {
25984    pub fn BNRemoveDebugParserInfo(
25985        debugInfo: *mut BNDebugInfo,
25986        parserName: *const ::std::os::raw::c_char,
25987    ) -> bool;
25988}
25989unsafe extern "C" {
25990    pub fn BNRemoveDebugParserTypes(
25991        debugInfo: *mut BNDebugInfo,
25992        parserName: *const ::std::os::raw::c_char,
25993    ) -> bool;
25994}
25995unsafe extern "C" {
25996    pub fn BNRemoveDebugParserFunctions(
25997        debugInfo: *mut BNDebugInfo,
25998        parserName: *const ::std::os::raw::c_char,
25999    ) -> bool;
26000}
26001unsafe extern "C" {
26002    pub fn BNRemoveDebugParserDataVariables(
26003        debugInfo: *mut BNDebugInfo,
26004        parserName: *const ::std::os::raw::c_char,
26005    ) -> bool;
26006}
26007unsafe extern "C" {
26008    pub fn BNAddDebugType(
26009        debugInfo: *mut BNDebugInfo,
26010        name: *const ::std::os::raw::c_char,
26011        type_: *const BNType,
26012        components: *mut *const ::std::os::raw::c_char,
26013        components_count: usize,
26014    ) -> bool;
26015}
26016unsafe extern "C" {
26017    pub fn BNGetDebugTypes(
26018        debugInfo: *mut BNDebugInfo,
26019        name: *const ::std::os::raw::c_char,
26020        count: *mut usize,
26021    ) -> *mut BNNameAndType;
26022}
26023unsafe extern "C" {
26024    pub fn BNGetDebugTypeByName(
26025        debugInfo: *mut BNDebugInfo,
26026        parserName: *const ::std::os::raw::c_char,
26027        typeName: *const ::std::os::raw::c_char,
26028    ) -> *mut BNType;
26029}
26030unsafe extern "C" {
26031    pub fn BNGetDebugTypesByName(
26032        debugInfo: *mut BNDebugInfo,
26033        typeName: *const ::std::os::raw::c_char,
26034        count: *mut usize,
26035    ) -> *mut BNNameAndType;
26036}
26037unsafe extern "C" {
26038    pub fn BNRemoveDebugTypeByName(
26039        debugInfo: *mut BNDebugInfo,
26040        parserName: *const ::std::os::raw::c_char,
26041        typeName: *const ::std::os::raw::c_char,
26042    ) -> bool;
26043}
26044unsafe extern "C" {
26045    pub fn BNFreeDebugTypes(types: *mut BNNameAndType, count: usize);
26046}
26047unsafe extern "C" {
26048    pub fn BNAddDebugFunction(debugInfo: *mut BNDebugInfo, func: *mut BNDebugFunctionInfo) -> bool;
26049}
26050unsafe extern "C" {
26051    pub fn BNGetDebugFunctions(
26052        debugInfo: *mut BNDebugInfo,
26053        name: *const ::std::os::raw::c_char,
26054        count: *mut usize,
26055    ) -> *mut BNDebugFunctionInfo;
26056}
26057unsafe extern "C" {
26058    pub fn BNRemoveDebugFunctionByIndex(
26059        debugInfo: *mut BNDebugInfo,
26060        parserName: *const ::std::os::raw::c_char,
26061        index: usize,
26062    ) -> bool;
26063}
26064unsafe extern "C" {
26065    pub fn BNFreeDebugFunctions(functions: *mut BNDebugFunctionInfo, count: usize);
26066}
26067unsafe extern "C" {
26068    pub fn BNAddDebugDataVariable(
26069        debugInfo: *mut BNDebugInfo,
26070        address: u64,
26071        type_: *const BNType,
26072        name: *const ::std::os::raw::c_char,
26073        components: *mut *const ::std::os::raw::c_char,
26074        components_count: usize,
26075    ) -> bool;
26076}
26077unsafe extern "C" {
26078    pub fn BNAddDebugDataVariableInfo(
26079        debugInfo: *mut BNDebugInfo,
26080        var: *const BNDataVariableAndName,
26081    ) -> bool;
26082}
26083unsafe extern "C" {
26084    pub fn BNGetDebugDataVariables(
26085        debugInfo: *mut BNDebugInfo,
26086        name: *const ::std::os::raw::c_char,
26087        count: *mut usize,
26088    ) -> *mut BNDataVariableAndName;
26089}
26090unsafe extern "C" {
26091    pub fn BNGetDebugDataVariableByName(
26092        debugInfo: *mut BNDebugInfo,
26093        parserName: *const ::std::os::raw::c_char,
26094        variableName: *const ::std::os::raw::c_char,
26095        var: *mut BNDataVariableAndName,
26096    ) -> bool;
26097}
26098unsafe extern "C" {
26099    pub fn BNGetDebugDataVariableByAddress(
26100        debugInfo: *mut BNDebugInfo,
26101        parserName: *const ::std::os::raw::c_char,
26102        address: u64,
26103        var: *mut BNDataVariableAndName,
26104    ) -> bool;
26105}
26106unsafe extern "C" {
26107    pub fn BNGetDebugDataVariablesByName(
26108        debugInfo: *mut BNDebugInfo,
26109        variableName: *const ::std::os::raw::c_char,
26110        count: *mut usize,
26111    ) -> *mut BNDataVariableAndName;
26112}
26113unsafe extern "C" {
26114    pub fn BNGetDebugDataVariablesByAddress(
26115        debugInfo: *mut BNDebugInfo,
26116        address: u64,
26117        count: *mut usize,
26118    ) -> *mut BNDataVariableAndNameAndDebugParser;
26119}
26120unsafe extern "C" {
26121    pub fn BNRemoveDebugDataVariableByAddress(
26122        debugInfo: *mut BNDebugInfo,
26123        parserName: *const ::std::os::raw::c_char,
26124        address: u64,
26125    ) -> bool;
26126}
26127unsafe extern "C" {
26128    #[doc = " Secrets providers"]
26129    pub fn BNRegisterSecretsProvider(
26130        name: *const ::std::os::raw::c_char,
26131        callbacks: *mut BNSecretsProviderCallbacks,
26132    ) -> *mut BNSecretsProvider;
26133}
26134unsafe extern "C" {
26135    pub fn BNGetSecretsProviderList(count: *mut usize) -> *mut *mut BNSecretsProvider;
26136}
26137unsafe extern "C" {
26138    pub fn BNFreeSecretsProviderList(providers: *mut *mut BNSecretsProvider);
26139}
26140unsafe extern "C" {
26141    pub fn BNGetSecretsProviderByName(
26142        name: *const ::std::os::raw::c_char,
26143    ) -> *mut BNSecretsProvider;
26144}
26145unsafe extern "C" {
26146    pub fn BNGetSecretsProviderName(
26147        provider: *mut BNSecretsProvider,
26148    ) -> *mut ::std::os::raw::c_char;
26149}
26150unsafe extern "C" {
26151    pub fn BNSecretsProviderHasData(
26152        provider: *mut BNSecretsProvider,
26153        key: *const ::std::os::raw::c_char,
26154    ) -> bool;
26155}
26156unsafe extern "C" {
26157    pub fn BNGetSecretsProviderData(
26158        provider: *mut BNSecretsProvider,
26159        key: *const ::std::os::raw::c_char,
26160    ) -> *mut ::std::os::raw::c_char;
26161}
26162unsafe extern "C" {
26163    pub fn BNStoreSecretsProviderData(
26164        provider: *mut BNSecretsProvider,
26165        key: *const ::std::os::raw::c_char,
26166        data: *const ::std::os::raw::c_char,
26167    ) -> bool;
26168}
26169unsafe extern "C" {
26170    pub fn BNDeleteSecretsProviderData(
26171        provider: *mut BNSecretsProvider,
26172        key: *const ::std::os::raw::c_char,
26173    ) -> bool;
26174}
26175unsafe extern "C" {
26176    pub fn BNCreateSymbolQueue() -> *mut BNSymbolQueue;
26177}
26178unsafe extern "C" {
26179    pub fn BNDestroySymbolQueue(queue: *mut BNSymbolQueue);
26180}
26181unsafe extern "C" {
26182    pub fn BNAppendSymbolQueue(
26183        queue: *mut BNSymbolQueue,
26184        resolve: ::std::option::Option<
26185            unsafe extern "C" fn(
26186                ctxt: *mut ::std::os::raw::c_void,
26187                symbol: *mut *mut BNSymbol,
26188                type_: *mut BNTypeWithConfidence,
26189            ),
26190        >,
26191        resolveContext: *mut ::std::os::raw::c_void,
26192        add: ::std::option::Option<
26193            unsafe extern "C" fn(
26194                ctxt: *mut ::std::os::raw::c_void,
26195                symbol: *mut BNSymbol,
26196                type_: *mut BNTypeWithConfidence,
26197            ),
26198        >,
26199        addContext: *mut ::std::os::raw::c_void,
26200    );
26201}
26202unsafe extern "C" {
26203    pub fn BNProcessSymbolQueue(queue: *mut BNSymbolQueue);
26204}
26205unsafe extern "C" {
26206    pub fn BNCoreEnumToString(
26207        enumName: *const ::std::os::raw::c_char,
26208        value: usize,
26209        result: *mut *mut ::std::os::raw::c_char,
26210    ) -> bool;
26211}
26212unsafe extern "C" {
26213    pub fn BNCoreEnumFromString(
26214        enumName: *const ::std::os::raw::c_char,
26215        value: *const ::std::os::raw::c_char,
26216        result: *mut usize,
26217    ) -> bool;
26218}
26219unsafe extern "C" {
26220    #[doc = " Type Archives"]
26221    pub fn BNNewTypeArchiveReference(archive: *mut BNTypeArchive) -> *mut BNTypeArchive;
26222}
26223unsafe extern "C" {
26224    pub fn BNFreeTypeArchiveReference(archive: *mut BNTypeArchive);
26225}
26226unsafe extern "C" {
26227    pub fn BNFreeTypeArchiveList(archives: *mut *mut BNTypeArchive, count: usize);
26228}
26229unsafe extern "C" {
26230    pub fn BNOpenTypeArchive(path: *const ::std::os::raw::c_char) -> *mut BNTypeArchive;
26231}
26232unsafe extern "C" {
26233    pub fn BNCreateTypeArchive(
26234        path: *const ::std::os::raw::c_char,
26235        platform: *mut BNPlatform,
26236    ) -> *mut BNTypeArchive;
26237}
26238unsafe extern "C" {
26239    pub fn BNCreateTypeArchiveWithId(
26240        path: *const ::std::os::raw::c_char,
26241        platform: *mut BNPlatform,
26242        id: *const ::std::os::raw::c_char,
26243    ) -> *mut BNTypeArchive;
26244}
26245unsafe extern "C" {
26246    pub fn BNLookupTypeArchiveById(id: *const ::std::os::raw::c_char) -> *mut BNTypeArchive;
26247}
26248unsafe extern "C" {
26249    pub fn BNCloseTypeArchive(archive: *mut BNTypeArchive);
26250}
26251unsafe extern "C" {
26252    pub fn BNIsTypeArchive(path: *const ::std::os::raw::c_char) -> bool;
26253}
26254unsafe extern "C" {
26255    pub fn BNGetTypeArchiveId(archive: *mut BNTypeArchive) -> *mut ::std::os::raw::c_char;
26256}
26257unsafe extern "C" {
26258    pub fn BNGetTypeArchivePath(archive: *mut BNTypeArchive) -> *mut ::std::os::raw::c_char;
26259}
26260unsafe extern "C" {
26261    pub fn BNGetTypeArchivePlatform(archive: *mut BNTypeArchive) -> *mut BNPlatform;
26262}
26263unsafe extern "C" {
26264    pub fn BNGetTypeArchiveCurrentSnapshotId(
26265        archive: *mut BNTypeArchive,
26266    ) -> *mut ::std::os::raw::c_char;
26267}
26268unsafe extern "C" {
26269    pub fn BNSetTypeArchiveCurrentSnapshot(
26270        archive: *mut BNTypeArchive,
26271        id: *const ::std::os::raw::c_char,
26272    );
26273}
26274unsafe extern "C" {
26275    pub fn BNGetTypeArchiveAllSnapshotIds(
26276        archive: *mut BNTypeArchive,
26277        count: *mut usize,
26278    ) -> *mut *mut ::std::os::raw::c_char;
26279}
26280unsafe extern "C" {
26281    pub fn BNGetTypeArchiveSnapshotParentIds(
26282        archive: *mut BNTypeArchive,
26283        id: *const ::std::os::raw::c_char,
26284        count: *mut usize,
26285    ) -> *mut *mut ::std::os::raw::c_char;
26286}
26287unsafe extern "C" {
26288    pub fn BNGetTypeArchiveSnapshotChildIds(
26289        archive: *mut BNTypeArchive,
26290        id: *const ::std::os::raw::c_char,
26291        count: *mut usize,
26292    ) -> *mut *mut ::std::os::raw::c_char;
26293}
26294unsafe extern "C" {
26295    pub fn BNGetTypeArchiveTypeContainer(archive: *mut BNTypeArchive) -> *mut BNTypeContainer;
26296}
26297unsafe extern "C" {
26298    pub fn BNAddTypeArchiveTypes(
26299        archive: *mut BNTypeArchive,
26300        types: *const BNQualifiedNameAndType,
26301        count: usize,
26302    ) -> bool;
26303}
26304unsafe extern "C" {
26305    pub fn BNRenameTypeArchiveType(
26306        archive: *mut BNTypeArchive,
26307        id: *const ::std::os::raw::c_char,
26308        newName: *const BNQualifiedName,
26309    ) -> bool;
26310}
26311unsafe extern "C" {
26312    pub fn BNDeleteTypeArchiveType(
26313        archive: *mut BNTypeArchive,
26314        id: *const ::std::os::raw::c_char,
26315    ) -> bool;
26316}
26317unsafe extern "C" {
26318    pub fn BNGetTypeArchiveTypeById(
26319        archive: *mut BNTypeArchive,
26320        id: *const ::std::os::raw::c_char,
26321        snapshot: *const ::std::os::raw::c_char,
26322    ) -> *mut BNType;
26323}
26324unsafe extern "C" {
26325    pub fn BNGetTypeArchiveTypeByName(
26326        archive: *mut BNTypeArchive,
26327        name: *const BNQualifiedName,
26328        snapshot: *const ::std::os::raw::c_char,
26329    ) -> *mut BNType;
26330}
26331unsafe extern "C" {
26332    pub fn BNGetTypeArchiveTypeId(
26333        archive: *mut BNTypeArchive,
26334        name: *const BNQualifiedName,
26335        snapshot: *const ::std::os::raw::c_char,
26336    ) -> *mut ::std::os::raw::c_char;
26337}
26338unsafe extern "C" {
26339    pub fn BNGetTypeArchiveTypeName(
26340        archive: *mut BNTypeArchive,
26341        id: *const ::std::os::raw::c_char,
26342        snapshot: *const ::std::os::raw::c_char,
26343    ) -> BNQualifiedName;
26344}
26345unsafe extern "C" {
26346    pub fn BNGetTypeArchiveTypes(
26347        archive: *mut BNTypeArchive,
26348        snapshot: *const ::std::os::raw::c_char,
26349        count: *mut usize,
26350    ) -> *mut BNQualifiedNameTypeAndId;
26351}
26352unsafe extern "C" {
26353    pub fn BNGetTypeArchiveTypeIds(
26354        archive: *mut BNTypeArchive,
26355        snapshot: *const ::std::os::raw::c_char,
26356        count: *mut usize,
26357    ) -> *mut *mut ::std::os::raw::c_char;
26358}
26359unsafe extern "C" {
26360    pub fn BNGetTypeArchiveTypeNames(
26361        archive: *mut BNTypeArchive,
26362        snapshot: *const ::std::os::raw::c_char,
26363        count: *mut usize,
26364    ) -> *mut BNQualifiedName;
26365}
26366unsafe extern "C" {
26367    pub fn BNGetTypeArchiveTypeNamesAndIds(
26368        archive: *mut BNTypeArchive,
26369        snapshot: *const ::std::os::raw::c_char,
26370        names: *mut *mut BNQualifiedName,
26371        ids: *mut *mut *mut ::std::os::raw::c_char,
26372        count: *mut usize,
26373    ) -> bool;
26374}
26375unsafe extern "C" {
26376    pub fn BNGetTypeArchiveOutgoingDirectTypeReferences(
26377        archive: *mut BNTypeArchive,
26378        id: *const ::std::os::raw::c_char,
26379        snapshot: *const ::std::os::raw::c_char,
26380        count: *mut usize,
26381    ) -> *mut *mut ::std::os::raw::c_char;
26382}
26383unsafe extern "C" {
26384    pub fn BNGetTypeArchiveOutgoingRecursiveTypeReferences(
26385        archive: *mut BNTypeArchive,
26386        id: *const ::std::os::raw::c_char,
26387        snapshot: *const ::std::os::raw::c_char,
26388        count: *mut usize,
26389    ) -> *mut *mut ::std::os::raw::c_char;
26390}
26391unsafe extern "C" {
26392    pub fn BNGetTypeArchiveIncomingDirectTypeReferences(
26393        archive: *mut BNTypeArchive,
26394        id: *const ::std::os::raw::c_char,
26395        snapshot: *const ::std::os::raw::c_char,
26396        count: *mut usize,
26397    ) -> *mut *mut ::std::os::raw::c_char;
26398}
26399unsafe extern "C" {
26400    pub fn BNGetTypeArchiveIncomingRecursiveTypeReferences(
26401        archive: *mut BNTypeArchive,
26402        id: *const ::std::os::raw::c_char,
26403        snapshot: *const ::std::os::raw::c_char,
26404        count: *mut usize,
26405    ) -> *mut *mut ::std::os::raw::c_char;
26406}
26407unsafe extern "C" {
26408    pub fn BNTypeArchiveNewSnapshotTransaction(
26409        archive: *mut BNTypeArchive,
26410        func: ::std::option::Option<
26411            unsafe extern "C" fn(
26412                context: *mut ::std::os::raw::c_void,
26413                id: *const ::std::os::raw::c_char,
26414            ) -> bool,
26415        >,
26416        context: *mut ::std::os::raw::c_void,
26417        parents: *const *const ::std::os::raw::c_char,
26418        parentCount: usize,
26419    ) -> *mut ::std::os::raw::c_char;
26420}
26421unsafe extern "C" {
26422    pub fn BNRegisterTypeArchiveNotification(
26423        archive: *mut BNTypeArchive,
26424        notification: *mut BNTypeArchiveNotification,
26425    );
26426}
26427unsafe extern "C" {
26428    pub fn BNUnregisterTypeArchiveNotification(
26429        archive: *mut BNTypeArchive,
26430        notification: *mut BNTypeArchiveNotification,
26431    );
26432}
26433unsafe extern "C" {
26434    pub fn BNTypeArchiveStoreMetadata(
26435        archive: *mut BNTypeArchive,
26436        key: *const ::std::os::raw::c_char,
26437        value: *mut BNMetadata,
26438    ) -> bool;
26439}
26440unsafe extern "C" {
26441    pub fn BNTypeArchiveQueryMetadata(
26442        archive: *mut BNTypeArchive,
26443        key: *const ::std::os::raw::c_char,
26444    ) -> *mut BNMetadata;
26445}
26446unsafe extern "C" {
26447    pub fn BNTypeArchiveRemoveMetadata(
26448        archive: *mut BNTypeArchive,
26449        key: *const ::std::os::raw::c_char,
26450    ) -> bool;
26451}
26452unsafe extern "C" {
26453    pub fn BNTypeArchiveSerializeSnapshot(
26454        archive: *mut BNTypeArchive,
26455        snapshot: *const ::std::os::raw::c_char,
26456    ) -> *mut BNDataBuffer;
26457}
26458unsafe extern "C" {
26459    pub fn BNTypeArchiveDeserializeSnapshot(
26460        archive: *mut BNTypeArchive,
26461        buffer: *mut BNDataBuffer,
26462    ) -> *mut ::std::os::raw::c_char;
26463}
26464unsafe extern "C" {
26465    pub fn BNTypeArchiveMergeSnapshots(
26466        archive: *mut BNTypeArchive,
26467        baseSnapshot: *const ::std::os::raw::c_char,
26468        firstSnapshot: *const ::std::os::raw::c_char,
26469        secondSnapshot: *const ::std::os::raw::c_char,
26470        mergeConflictKeysIn: *const *const ::std::os::raw::c_char,
26471        mergeConflictValuesIn: *const *const ::std::os::raw::c_char,
26472        mergeConflictCountIn: usize,
26473        mergeConflictsOut: *mut *mut *mut ::std::os::raw::c_char,
26474        mergeConflictCountOut: *mut usize,
26475        result: *mut *mut ::std::os::raw::c_char,
26476        progress: BNProgressFunction,
26477        context: *mut ::std::os::raw::c_void,
26478    ) -> bool;
26479}
26480unsafe extern "C" {
26481    pub fn BNBinaryViewAttachTypeArchive(
26482        view: *mut BNBinaryView,
26483        id: *const ::std::os::raw::c_char,
26484        path: *const ::std::os::raw::c_char,
26485    ) -> *mut BNTypeArchive;
26486}
26487unsafe extern "C" {
26488    pub fn BNBinaryViewDetachTypeArchive(
26489        view: *mut BNBinaryView,
26490        id: *const ::std::os::raw::c_char,
26491    ) -> bool;
26492}
26493unsafe extern "C" {
26494    pub fn BNBinaryViewGetTypeArchive(
26495        view: *mut BNBinaryView,
26496        id: *const ::std::os::raw::c_char,
26497    ) -> *mut BNTypeArchive;
26498}
26499unsafe extern "C" {
26500    pub fn BNBinaryViewGetTypeArchives(
26501        view: *mut BNBinaryView,
26502        ids: *mut *mut *mut ::std::os::raw::c_char,
26503        paths: *mut *mut *mut ::std::os::raw::c_char,
26504    ) -> usize;
26505}
26506unsafe extern "C" {
26507    pub fn BNBinaryViewGetTypeArchivePath(
26508        view: *mut BNBinaryView,
26509        id: *const ::std::os::raw::c_char,
26510    ) -> *mut ::std::os::raw::c_char;
26511}
26512unsafe extern "C" {
26513    pub fn BNBinaryViewGetTypeArchiveTypeNameList(
26514        view: *mut BNBinaryView,
26515        names: *mut *mut BNQualifiedName,
26516    ) -> usize;
26517}
26518unsafe extern "C" {
26519    pub fn BNBinaryViewGetTypeArchiveTypeNames(
26520        view: *mut BNBinaryView,
26521        name: *mut BNQualifiedName,
26522        archiveIds: *mut *mut *mut ::std::os::raw::c_char,
26523        archiveTypeIds: *mut *mut *mut ::std::os::raw::c_char,
26524    ) -> usize;
26525}
26526unsafe extern "C" {
26527    pub fn BNBinaryViewGetAssociatedTypeArchiveTypes(
26528        view: *mut BNBinaryView,
26529        typeIds: *mut *mut *mut ::std::os::raw::c_char,
26530        archiveIds: *mut *mut *mut ::std::os::raw::c_char,
26531        archiveTypeIds: *mut *mut *mut ::std::os::raw::c_char,
26532    ) -> usize;
26533}
26534unsafe extern "C" {
26535    pub fn BNBinaryViewGetAssociatedTypesFromArchive(
26536        view: *mut BNBinaryView,
26537        archiveId: *const ::std::os::raw::c_char,
26538        typeIds: *mut *mut *mut ::std::os::raw::c_char,
26539        archiveTypeIds: *mut *mut *mut ::std::os::raw::c_char,
26540    ) -> usize;
26541}
26542unsafe extern "C" {
26543    pub fn BNBinaryViewGetAssociatedTypeArchiveTypeTarget(
26544        view: *mut BNBinaryView,
26545        typeId: *const ::std::os::raw::c_char,
26546        archiveId: *mut *mut ::std::os::raw::c_char,
26547        archiveTypeId: *mut *mut ::std::os::raw::c_char,
26548    ) -> bool;
26549}
26550unsafe extern "C" {
26551    pub fn BNBinaryViewGetAssociatedTypeArchiveTypeSource(
26552        view: *mut BNBinaryView,
26553        archiveId: *const ::std::os::raw::c_char,
26554        archiveTypeId: *const ::std::os::raw::c_char,
26555        typeId: *mut *mut ::std::os::raw::c_char,
26556    ) -> bool;
26557}
26558unsafe extern "C" {
26559    pub fn BNBinaryViewGetTypeArchiveSyncStatus(
26560        view: *mut BNBinaryView,
26561        typeId: *const ::std::os::raw::c_char,
26562    ) -> BNSyncStatus;
26563}
26564unsafe extern "C" {
26565    pub fn BNBinaryViewDisassociateTypeArchiveType(
26566        view: *mut BNBinaryView,
26567        typeId: *const ::std::os::raw::c_char,
26568    ) -> bool;
26569}
26570unsafe extern "C" {
26571    pub fn BNBinaryViewPullTypeArchiveTypes(
26572        view: *mut BNBinaryView,
26573        archiveId: *const ::std::os::raw::c_char,
26574        archiveTypeIds: *const *const ::std::os::raw::c_char,
26575        archiveTypeIdCount: usize,
26576        updatedArchiveTypeIds: *mut *mut *mut ::std::os::raw::c_char,
26577        updatedAnalysisTypeIds: *mut *mut *mut ::std::os::raw::c_char,
26578        updatedTypeCount: *mut usize,
26579    ) -> bool;
26580}
26581unsafe extern "C" {
26582    pub fn BNBinaryViewPushTypeArchiveTypes(
26583        view: *mut BNBinaryView,
26584        archiveId: *const ::std::os::raw::c_char,
26585        typeIds: *const *const ::std::os::raw::c_char,
26586        typeIdCount: usize,
26587        updatedAnalysisTypeIds: *mut *mut *mut ::std::os::raw::c_char,
26588        updatedArchiveTypeIds: *mut *mut *mut ::std::os::raw::c_char,
26589        updatedTypeCount: *mut usize,
26590    ) -> bool;
26591}
26592unsafe extern "C" {
26593    #[doc = " Base Address Detection"]
26594    pub fn BNCreateBaseAddressDetection(view: *mut BNBinaryView) -> *mut BNBaseAddressDetection;
26595}
26596unsafe extern "C" {
26597    pub fn BNDetectBaseAddress(
26598        bad: *mut BNBaseAddressDetection,
26599        settings: *mut BNBaseAddressDetectionSettings,
26600    ) -> bool;
26601}
26602unsafe extern "C" {
26603    pub fn BNGetBaseAddressDetectionScores(
26604        bad: *mut BNBaseAddressDetection,
26605        scores: *mut BNBaseAddressDetectionScore,
26606        count: usize,
26607        confidence: *mut BNBaseAddressDetectionConfidence,
26608        lastTestedBaseAddress: *mut u64,
26609    ) -> usize;
26610}
26611unsafe extern "C" {
26612    pub fn BNGetBaseAddressDetectionReasons(
26613        bad: *mut BNBaseAddressDetection,
26614        baseAddress: u64,
26615        count: *mut usize,
26616    ) -> *mut BNBaseAddressDetectionReason;
26617}
26618unsafe extern "C" {
26619    pub fn BNFreeBaseAddressDetectionReasons(reasons: *mut BNBaseAddressDetectionReason);
26620}
26621unsafe extern "C" {
26622    pub fn BNAbortBaseAddressDetection(bad: *mut BNBaseAddressDetection);
26623}
26624unsafe extern "C" {
26625    pub fn BNIsBaseAddressDetectionAborted(bad: *mut BNBaseAddressDetection) -> bool;
26626}
26627unsafe extern "C" {
26628    pub fn BNFreeBaseAddressDetection(bad: *mut BNBaseAddressDetection);
26629}
26630unsafe extern "C" {
26631    #[doc = " Unicode"]
26632    pub fn BNUnicodeUTF16ToUTF8(utf16: *const u8, len: usize) -> *mut ::std::os::raw::c_char;
26633}
26634unsafe extern "C" {
26635    pub fn BNUnicodeUTF32ToUTF8(utf32: *const u8) -> *mut ::std::os::raw::c_char;
26636}
26637unsafe extern "C" {
26638    pub fn BNUnicodeGetBlockRange(
26639        name: *const ::std::os::raw::c_char,
26640        rangeStart: *mut u32,
26641        rangeEnd: *mut u32,
26642    ) -> bool;
26643}
26644unsafe extern "C" {
26645    pub fn BNUnicodeGetBlocksForNames(
26646        names: *const *const ::std::os::raw::c_char,
26647        nameCount: usize,
26648        starts: *mut *mut *mut u32,
26649        ends: *mut *mut *mut u32,
26650        blockListCounts: *mut *mut usize,
26651        blockCount: *mut usize,
26652    );
26653}
26654unsafe extern "C" {
26655    pub fn BNFreeUnicodeBlockList(
26656        starts: *mut *mut u32,
26657        ends: *mut *mut u32,
26658        blockCounts: *mut usize,
26659        blockListCounts: usize,
26660    );
26661}
26662unsafe extern "C" {
26663    pub fn BNUnicodeGetBlockNames(names: *mut *mut *mut ::std::os::raw::c_char, count: *mut usize);
26664}
26665unsafe extern "C" {
26666    pub fn BNUnicodeGetBlockRanges(
26667        names: *mut *mut *mut ::std::os::raw::c_char,
26668        rangeStarts: *mut *mut u32,
26669        rangeEnds: *mut *mut u32,
26670        count: *mut usize,
26671    );
26672}
26673unsafe extern "C" {
26674    pub fn BNFreeUnicodeRangeList(starts: *mut u32, ends: *mut u32);
26675}
26676unsafe extern "C" {
26677    pub fn BNUnicodeGetUTF8String(
26678        starts: *mut *mut u32,
26679        ends: *mut *mut u32,
26680        blockListCounts: *mut usize,
26681        blockCount: usize,
26682        data: *const u8,
26683        offset: usize,
26684        dataLen: usize,
26685    ) -> *mut ::std::os::raw::c_char;
26686}
26687unsafe extern "C" {
26688    pub fn BNUnicodeToEscapedString(
26689        starts: *mut *mut u32,
26690        ends: *mut *mut u32,
26691        blockListCounts: *mut usize,
26692        blockCount: usize,
26693        utf8Enabled: bool,
26694        data: *const ::std::os::raw::c_void,
26695        dataLen: usize,
26696    ) -> *mut ::std::os::raw::c_char;
26697}
26698unsafe extern "C" {
26699    #[doc = " Collaboration"]
26700    pub fn BNCollaborationGetActiveRemote() -> *mut BNRemote;
26701}
26702unsafe extern "C" {
26703    pub fn BNCollaborationSetActiveRemote(remote: *mut BNRemote);
26704}
26705unsafe extern "C" {
26706    pub fn BNCollaborationStoreDataInKeychain(
26707        key: *const ::std::os::raw::c_char,
26708        dataKeys: *mut *const ::std::os::raw::c_char,
26709        dataValues: *mut *const ::std::os::raw::c_char,
26710        dataCount: usize,
26711    ) -> bool;
26712}
26713unsafe extern "C" {
26714    pub fn BNCollaborationHasDataInKeychain(key: *const ::std::os::raw::c_char) -> bool;
26715}
26716unsafe extern "C" {
26717    pub fn BNCollaborationGetDataFromKeychain(
26718        key: *const ::std::os::raw::c_char,
26719        foundKeys: *mut *mut *mut ::std::os::raw::c_char,
26720        foundValues: *mut *mut *mut ::std::os::raw::c_char,
26721    ) -> usize;
26722}
26723unsafe extern "C" {
26724    pub fn BNCollaborationDeleteDataFromKeychain(key: *const ::std::os::raw::c_char) -> bool;
26725}
26726unsafe extern "C" {
26727    pub fn BNCollaborationLoadRemotes() -> bool;
26728}
26729unsafe extern "C" {
26730    pub fn BNCollaborationGetRemotes(count: *mut usize) -> *mut *mut BNRemote;
26731}
26732unsafe extern "C" {
26733    pub fn BNCollaborationGetRemoteById(remoteId: *const ::std::os::raw::c_char) -> *mut BNRemote;
26734}
26735unsafe extern "C" {
26736    pub fn BNCollaborationGetRemoteByAddress(
26737        remoteAddress: *const ::std::os::raw::c_char,
26738    ) -> *mut BNRemote;
26739}
26740unsafe extern "C" {
26741    pub fn BNCollaborationGetRemoteByName(name: *const ::std::os::raw::c_char) -> *mut BNRemote;
26742}
26743unsafe extern "C" {
26744    pub fn BNCollaborationCreateRemote(
26745        name: *const ::std::os::raw::c_char,
26746        address: *const ::std::os::raw::c_char,
26747    ) -> *mut BNRemote;
26748}
26749unsafe extern "C" {
26750    pub fn BNCollaborationRemoveRemote(remote: *mut BNRemote);
26751}
26752unsafe extern "C" {
26753    pub fn BNCollaborationSaveRemotes();
26754}
26755unsafe extern "C" {
26756    pub fn BNCollaborationSyncDatabase(
26757        database: *mut BNDatabase,
26758        file: *mut BNRemoteFile,
26759        conflictHandler: BNCollaborationAnalysisConflictHandler,
26760        conflictHandlerCtxt: *mut ::std::os::raw::c_void,
26761        progress: BNProgressFunction,
26762        progressCtxt: *mut ::std::os::raw::c_void,
26763        nameChangeset: BNCollaborationNameChangesetFunction,
26764        nameChangesetCtxt: *mut ::std::os::raw::c_void,
26765    ) -> bool;
26766}
26767unsafe extern "C" {
26768    pub fn BNCollaborationSyncTypeArchive(
26769        archive: *mut BNTypeArchive,
26770        file: *mut BNRemoteFile,
26771        conflictHandler: ::std::option::Option<
26772            unsafe extern "C" fn(
26773                arg1: *mut ::std::os::raw::c_void,
26774                conflicts: *mut *mut BNTypeArchiveMergeConflict,
26775                conflictCount: usize,
26776            ) -> bool,
26777        >,
26778        conflictHandlerCtxt: *mut ::std::os::raw::c_void,
26779        progress: BNProgressFunction,
26780        progressCtxt: *mut ::std::os::raw::c_void,
26781    ) -> bool;
26782}
26783unsafe extern "C" {
26784    pub fn BNCollaborationPushTypeArchive(
26785        archive: *mut BNTypeArchive,
26786        file: *mut BNRemoteFile,
26787        count: *mut usize,
26788        progress: BNProgressFunction,
26789        progressCtxt: *mut ::std::os::raw::c_void,
26790    ) -> bool;
26791}
26792unsafe extern "C" {
26793    pub fn BNCollaborationPullTypeArchive(
26794        archive: *mut BNTypeArchive,
26795        file: *mut BNRemoteFile,
26796        count: *mut usize,
26797        conflictHandler: ::std::option::Option<
26798            unsafe extern "C" fn(
26799                arg1: *mut ::std::os::raw::c_void,
26800                conflicts: *mut *mut BNTypeArchiveMergeConflict,
26801                conflictCount: usize,
26802            ) -> bool,
26803        >,
26804        conflictHandlerCtxt: *mut ::std::os::raw::c_void,
26805        progress: BNProgressFunction,
26806        progressCtxt: *mut ::std::os::raw::c_void,
26807    ) -> bool;
26808}
26809unsafe extern "C" {
26810    pub fn BNCollaborationIsCollaborationTypeArchive(archive: *mut BNTypeArchive) -> bool;
26811}
26812unsafe extern "C" {
26813    pub fn BNCollaborationGetRemoteForLocalTypeArchive(
26814        archive: *mut BNTypeArchive,
26815    ) -> *mut BNRemote;
26816}
26817unsafe extern "C" {
26818    pub fn BNCollaborationGetRemoteProjectForLocalTypeArchive(
26819        archive: *mut BNTypeArchive,
26820    ) -> *mut BNRemoteProject;
26821}
26822unsafe extern "C" {
26823    pub fn BNCollaborationGetRemoteFileForLocalTypeArchive(
26824        archive: *mut BNTypeArchive,
26825    ) -> *mut BNRemoteFile;
26826}
26827unsafe extern "C" {
26828    pub fn BNCollaborationGetRemoteSnapshotFromLocalTypeArchive(
26829        archive: *mut BNTypeArchive,
26830        snapshotId: *const ::std::os::raw::c_char,
26831    ) -> *mut BNCollaborationSnapshot;
26832}
26833unsafe extern "C" {
26834    pub fn BNCollaborationGetLocalSnapshotFromRemoteTypeArchive(
26835        snapshot: *mut BNCollaborationSnapshot,
26836        archive: *mut BNTypeArchive,
26837    ) -> *mut ::std::os::raw::c_char;
26838}
26839unsafe extern "C" {
26840    pub fn BNCollaborationIsTypeArchiveSnapshotIgnored(
26841        archive: *mut BNTypeArchive,
26842        snapshot: *const ::std::os::raw::c_char,
26843    ) -> bool;
26844}
26845unsafe extern "C" {
26846    pub fn BNCollaborationSetSnapshotAuthor(
26847        database: *mut BNDatabase,
26848        snapshot: *mut BNSnapshot,
26849        author: *const ::std::os::raw::c_char,
26850    ) -> bool;
26851}
26852unsafe extern "C" {
26853    pub fn BNCollaborationDefaultProjectPath(
26854        project: *mut BNRemoteProject,
26855    ) -> *mut ::std::os::raw::c_char;
26856}
26857unsafe extern "C" {
26858    pub fn BNCollaborationDefaultFilePath(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
26859}
26860unsafe extern "C" {
26861    pub fn BNCollaborationDownloadFile(
26862        file: *mut BNRemoteFile,
26863        dbPath: *const ::std::os::raw::c_char,
26864        progress: BNProgressFunction,
26865        progressContext: *mut ::std::os::raw::c_void,
26866    ) -> *mut BNFileMetadata;
26867}
26868unsafe extern "C" {
26869    pub fn BNCollaborationUploadDatabase(
26870        metadata: *mut BNFileMetadata,
26871        project: *mut BNRemoteProject,
26872        folder: *mut BNRemoteFolder,
26873        progress: BNProgressFunction,
26874        progressContext: *mut ::std::os::raw::c_void,
26875        nameChangeset: BNCollaborationNameChangesetFunction,
26876        nameChangesetContext: *mut ::std::os::raw::c_void,
26877    ) -> *mut BNRemoteFile;
26878}
26879unsafe extern "C" {
26880    pub fn BNCollaborationIsCollaborationDatabase(database: *mut BNDatabase) -> bool;
26881}
26882unsafe extern "C" {
26883    pub fn BNCollaborationGetRemoteForLocalDatabase(
26884        database: *mut BNDatabase,
26885        result: *mut *mut BNRemote,
26886    ) -> bool;
26887}
26888unsafe extern "C" {
26889    pub fn BNCollaborationGetRemoteProjectForLocalDatabase(
26890        database: *mut BNDatabase,
26891        result: *mut *mut BNRemoteProject,
26892    ) -> bool;
26893}
26894unsafe extern "C" {
26895    pub fn BNCollaborationGetRemoteFileForLocalDatabase(
26896        database: *mut BNDatabase,
26897        result: *mut *mut BNRemoteFile,
26898    ) -> bool;
26899}
26900unsafe extern "C" {
26901    pub fn BNCollaborationAssignSnapshotMap(
26902        localSnapshot: *mut BNSnapshot,
26903        remoteSnapshot: *mut BNCollaborationSnapshot,
26904    ) -> bool;
26905}
26906unsafe extern "C" {
26907    pub fn BNCollaborationGetRemoteSnapshotFromLocal(
26908        snapshot: *mut BNSnapshot,
26909        result: *mut *mut BNCollaborationSnapshot,
26910    ) -> bool;
26911}
26912unsafe extern "C" {
26913    pub fn BNCollaborationGetLocalSnapshotFromRemote(
26914        snapshot: *mut BNCollaborationSnapshot,
26915        database: *mut BNDatabase,
26916        result: *mut *mut BNSnapshot,
26917    ) -> bool;
26918}
26919unsafe extern "C" {
26920    pub fn BNCollaborationDownloadTypeArchive(
26921        file: *mut BNRemoteFile,
26922        dbPath: *const ::std::os::raw::c_char,
26923        progress: BNProgressFunction,
26924        progressContext: *mut ::std::os::raw::c_void,
26925        result: *mut *mut BNTypeArchive,
26926    ) -> bool;
26927}
26928unsafe extern "C" {
26929    pub fn BNCollaborationUploadTypeArchive(
26930        archive: *mut BNTypeArchive,
26931        project: *mut BNRemoteProject,
26932        folder: *mut BNRemoteFolder,
26933        progress: BNProgressFunction,
26934        progressContext: *mut ::std::os::raw::c_void,
26935        coreFile: *mut BNProjectFile,
26936        result: *mut *mut BNRemoteFile,
26937    ) -> bool;
26938}
26939unsafe extern "C" {
26940    pub fn BNCollaborationDownloadDatabaseForFile(
26941        file: *mut BNRemoteFile,
26942        dbPath: *const ::std::os::raw::c_char,
26943        force: bool,
26944        progress: BNProgressFunction,
26945        progressContext: *mut ::std::os::raw::c_void,
26946    ) -> bool;
26947}
26948unsafe extern "C" {
26949    pub fn BNCollaborationMergeSnapshots(
26950        first: *mut BNSnapshot,
26951        second: *mut BNSnapshot,
26952        conflictHandler: BNCollaborationAnalysisConflictHandler,
26953        conflictHandlerCtxt: *mut ::std::os::raw::c_void,
26954        progress: BNProgressFunction,
26955        progressContext: *mut ::std::os::raw::c_void,
26956    ) -> *mut BNSnapshot;
26957}
26958unsafe extern "C" {
26959    pub fn BNCollaborationPullDatabase(
26960        database: *mut BNDatabase,
26961        file: *mut BNRemoteFile,
26962        count: *mut usize,
26963        conflictHandler: BNCollaborationAnalysisConflictHandler,
26964        conflictHandlerCtxt: *mut ::std::os::raw::c_void,
26965        progress: BNProgressFunction,
26966        progressContext: *mut ::std::os::raw::c_void,
26967        nameChangeset: BNCollaborationNameChangesetFunction,
26968        nameChangesetContext: *mut ::std::os::raw::c_void,
26969    ) -> bool;
26970}
26971unsafe extern "C" {
26972    pub fn BNCollaborationMergeDatabase(
26973        database: *mut BNDatabase,
26974        conflictHandler: BNCollaborationAnalysisConflictHandler,
26975        conflictHandlerCtxt: *mut ::std::os::raw::c_void,
26976        progress: BNProgressFunction,
26977        progressContext: *mut ::std::os::raw::c_void,
26978    ) -> bool;
26979}
26980unsafe extern "C" {
26981    pub fn BNCollaborationPushDatabase(
26982        database: *mut BNDatabase,
26983        file: *mut BNRemoteFile,
26984        count: *mut usize,
26985        progress: BNProgressFunction,
26986        progressContext: *mut ::std::os::raw::c_void,
26987    ) -> bool;
26988}
26989unsafe extern "C" {
26990    pub fn BNCollaborationDumpDatabase(database: *mut BNDatabase) -> bool;
26991}
26992unsafe extern "C" {
26993    pub fn BNCollaborationIgnoreSnapshot(
26994        database: *mut BNDatabase,
26995        snapshot: *mut BNSnapshot,
26996    ) -> bool;
26997}
26998unsafe extern "C" {
26999    pub fn BNCollaborationIsSnapshotIgnored(
27000        database: *mut BNDatabase,
27001        snapshot: *mut BNSnapshot,
27002    ) -> bool;
27003}
27004unsafe extern "C" {
27005    pub fn BNCollaborationGetSnapshotAuthor(
27006        database: *mut BNDatabase,
27007        snapshot: *mut BNSnapshot,
27008        result: *mut *mut ::std::os::raw::c_char,
27009    ) -> bool;
27010}
27011unsafe extern "C" {
27012    pub fn BNCollaborationFreeIdList(ids: *mut u64, size: usize);
27013}
27014unsafe extern "C" {
27015    pub fn BNCollaborationFreeSnapshotIdList(ids: *mut i64, size: usize);
27016}
27017unsafe extern "C" {
27018    #[doc = " LazyT"]
27019    pub fn BNCollaborationLazyTCreate(
27020        ctor: ::std::option::Option<
27021            unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void) -> *mut ::std::os::raw::c_void,
27022        >,
27023        context: *mut ::std::os::raw::c_void,
27024    ) -> *mut BNCollaborationLazyT;
27025}
27026unsafe extern "C" {
27027    pub fn BNCollaborationLazyTDereference(
27028        lazyT: *mut BNCollaborationLazyT,
27029    ) -> *mut ::std::os::raw::c_void;
27030}
27031unsafe extern "C" {
27032    pub fn BNCollaborationFreeLazyT(lazyT: *mut BNCollaborationLazyT);
27033}
27034unsafe extern "C" {
27035    #[doc = " Remote"]
27036    pub fn BNNewRemoteReference(remote: *mut BNRemote) -> *mut BNRemote;
27037}
27038unsafe extern "C" {
27039    pub fn BNFreeRemote(remote: *mut BNRemote);
27040}
27041unsafe extern "C" {
27042    pub fn BNFreeRemoteList(remotes: *mut *mut BNRemote, count: usize);
27043}
27044unsafe extern "C" {
27045    pub fn BNRemoteGetUniqueId(remote: *mut BNRemote) -> *mut ::std::os::raw::c_char;
27046}
27047unsafe extern "C" {
27048    pub fn BNRemoteGetName(remote: *mut BNRemote) -> *mut ::std::os::raw::c_char;
27049}
27050unsafe extern "C" {
27051    pub fn BNRemoteGetAddress(remote: *mut BNRemote) -> *mut ::std::os::raw::c_char;
27052}
27053unsafe extern "C" {
27054    pub fn BNRemoteHasLoadedMetadata(remote: *mut BNRemote) -> bool;
27055}
27056unsafe extern "C" {
27057    pub fn BNRemoteIsConnected(remote: *mut BNRemote) -> bool;
27058}
27059unsafe extern "C" {
27060    pub fn BNRemoteGetUsername(remote: *mut BNRemote) -> *mut ::std::os::raw::c_char;
27061}
27062unsafe extern "C" {
27063    pub fn BNRemoteGetToken(remote: *mut BNRemote) -> *mut ::std::os::raw::c_char;
27064}
27065unsafe extern "C" {
27066    pub fn BNRemoteGetServerVersion(remote: *mut BNRemote) -> ::std::os::raw::c_int;
27067}
27068unsafe extern "C" {
27069    pub fn BNRemoteGetServerBuildVersion(remote: *mut BNRemote) -> BNVersionInfo;
27070}
27071unsafe extern "C" {
27072    pub fn BNRemoteGetServerBuildId(remote: *mut BNRemote) -> *mut ::std::os::raw::c_char;
27073}
27074unsafe extern "C" {
27075    pub fn BNRemoteGetAuthBackends(
27076        remote: *mut BNRemote,
27077        backendIds: *mut *mut *mut ::std::os::raw::c_char,
27078        backendNames: *mut *mut *mut ::std::os::raw::c_char,
27079        count: *mut usize,
27080    ) -> bool;
27081}
27082unsafe extern "C" {
27083    pub fn BNRemoteHasPulledProjects(remote: *mut BNRemote) -> bool;
27084}
27085unsafe extern "C" {
27086    pub fn BNRemoteHasPulledUsers(remote: *mut BNRemote) -> bool;
27087}
27088unsafe extern "C" {
27089    pub fn BNRemoteHasPulledGroups(remote: *mut BNRemote) -> bool;
27090}
27091unsafe extern "C" {
27092    pub fn BNRemoteIsAdmin(remote: *mut BNRemote) -> bool;
27093}
27094unsafe extern "C" {
27095    pub fn BNRemoteIsEnterprise(remote: *mut BNRemote) -> bool;
27096}
27097unsafe extern "C" {
27098    pub fn BNRemoteLoadMetadata(remote: *mut BNRemote) -> bool;
27099}
27100unsafe extern "C" {
27101    pub fn BNRemoteRequestAuthenticationToken(
27102        remote: *mut BNRemote,
27103        username: *const ::std::os::raw::c_char,
27104        password: *const ::std::os::raw::c_char,
27105    ) -> *mut ::std::os::raw::c_char;
27106}
27107unsafe extern "C" {
27108    pub fn BNRemoteConnect(
27109        remote: *mut BNRemote,
27110        username: *const ::std::os::raw::c_char,
27111        token: *const ::std::os::raw::c_char,
27112    ) -> bool;
27113}
27114unsafe extern "C" {
27115    pub fn BNRemoteDisconnect(remote: *mut BNRemote) -> bool;
27116}
27117unsafe extern "C" {
27118    pub fn BNRemoteGetProjects(
27119        remote: *mut BNRemote,
27120        count: *mut usize,
27121    ) -> *mut *mut BNRemoteProject;
27122}
27123unsafe extern "C" {
27124    pub fn BNRemoteGetProjectById(
27125        remote: *mut BNRemote,
27126        id: *const ::std::os::raw::c_char,
27127    ) -> *mut BNRemoteProject;
27128}
27129unsafe extern "C" {
27130    pub fn BNRemoteGetProjectByName(
27131        remote: *mut BNRemote,
27132        name: *const ::std::os::raw::c_char,
27133    ) -> *mut BNRemoteProject;
27134}
27135unsafe extern "C" {
27136    pub fn BNRemotePullProjects(
27137        remote: *mut BNRemote,
27138        progress: BNProgressFunction,
27139        progressContext: *mut ::std::os::raw::c_void,
27140    ) -> bool;
27141}
27142unsafe extern "C" {
27143    pub fn BNRemoteCreateProject(
27144        remote: *mut BNRemote,
27145        name: *const ::std::os::raw::c_char,
27146        description: *const ::std::os::raw::c_char,
27147    ) -> *mut BNRemoteProject;
27148}
27149unsafe extern "C" {
27150    pub fn BNRemoteImportLocalProject(
27151        remote: *mut BNRemote,
27152        localProject: *mut BNProject,
27153        progress: BNProgressFunction,
27154        progressCtxt: *mut ::std::os::raw::c_void,
27155    ) -> *mut BNRemoteProject;
27156}
27157unsafe extern "C" {
27158    pub fn BNRemotePushProject(
27159        remote: *mut BNRemote,
27160        project: *mut BNRemoteProject,
27161        extraFieldKeys: *mut *const ::std::os::raw::c_char,
27162        extraFieldValues: *mut *const ::std::os::raw::c_char,
27163        extraFieldCount: usize,
27164    ) -> bool;
27165}
27166unsafe extern "C" {
27167    pub fn BNRemoteDeleteProject(remote: *mut BNRemote, project: *mut BNRemoteProject) -> bool;
27168}
27169unsafe extern "C" {
27170    pub fn BNRemoteGetGroups(
27171        remote: *mut BNRemote,
27172        count: *mut usize,
27173    ) -> *mut *mut BNCollaborationGroup;
27174}
27175unsafe extern "C" {
27176    pub fn BNRemoteGetGroupById(remote: *mut BNRemote, id: u64) -> *mut BNCollaborationGroup;
27177}
27178unsafe extern "C" {
27179    pub fn BNRemoteGetGroupByName(
27180        remote: *mut BNRemote,
27181        name: *const ::std::os::raw::c_char,
27182    ) -> *mut BNCollaborationGroup;
27183}
27184unsafe extern "C" {
27185    pub fn BNRemoteSearchGroups(
27186        remote: *mut BNRemote,
27187        prefix: *const ::std::os::raw::c_char,
27188        groupIds: *mut *mut u64,
27189        groupNames: *mut *mut *mut ::std::os::raw::c_char,
27190        count: *mut usize,
27191    ) -> bool;
27192}
27193unsafe extern "C" {
27194    pub fn BNRemotePullGroups(
27195        remote: *mut BNRemote,
27196        progress: BNProgressFunction,
27197        progressContext: *mut ::std::os::raw::c_void,
27198    ) -> bool;
27199}
27200unsafe extern "C" {
27201    pub fn BNRemoteCreateGroup(
27202        remote: *mut BNRemote,
27203        name: *const ::std::os::raw::c_char,
27204        users: *mut *mut BNCollaborationUser,
27205        userCount: usize,
27206    ) -> *mut BNCollaborationGroup;
27207}
27208unsafe extern "C" {
27209    pub fn BNRemotePushGroup(
27210        remote: *mut BNRemote,
27211        group: *mut BNCollaborationGroup,
27212        extraFieldKeys: *mut *const ::std::os::raw::c_char,
27213        extraFieldValues: *mut *const ::std::os::raw::c_char,
27214        extraFieldCount: usize,
27215    ) -> bool;
27216}
27217unsafe extern "C" {
27218    pub fn BNRemoteDeleteGroup(remote: *mut BNRemote, group: *mut BNCollaborationGroup) -> bool;
27219}
27220unsafe extern "C" {
27221    pub fn BNRemoteGetUsers(
27222        remote: *mut BNRemote,
27223        count: *mut usize,
27224    ) -> *mut *mut BNCollaborationUser;
27225}
27226unsafe extern "C" {
27227    pub fn BNRemoteGetUserById(
27228        remote: *mut BNRemote,
27229        id: *const ::std::os::raw::c_char,
27230    ) -> *mut BNCollaborationUser;
27231}
27232unsafe extern "C" {
27233    pub fn BNRemoteGetUserByUsername(
27234        remote: *mut BNRemote,
27235        username: *const ::std::os::raw::c_char,
27236    ) -> *mut BNCollaborationUser;
27237}
27238unsafe extern "C" {
27239    pub fn BNRemoteGetCurrentUser(remote: *mut BNRemote) -> *mut BNCollaborationUser;
27240}
27241unsafe extern "C" {
27242    pub fn BNRemoteSearchUsers(
27243        remote: *mut BNRemote,
27244        prefix: *const ::std::os::raw::c_char,
27245        userIds: *mut *mut *mut ::std::os::raw::c_char,
27246        usernames: *mut *mut *mut ::std::os::raw::c_char,
27247        count: *mut usize,
27248    ) -> bool;
27249}
27250unsafe extern "C" {
27251    pub fn BNRemoteFindFiles(
27252        remote: *mut BNRemote,
27253        name: *const ::std::os::raw::c_char,
27254        count: *mut usize,
27255    ) -> *mut BNRemoteFileSearchMatch;
27256}
27257unsafe extern "C" {
27258    pub fn BNFreeRemoteFileSearchMatchList(matches: *mut BNRemoteFileSearchMatch, count: usize);
27259}
27260unsafe extern "C" {
27261    pub fn BNRemotePullUsers(
27262        remote: *mut BNRemote,
27263        progress: BNProgressFunction,
27264        progressContext: *mut ::std::os::raw::c_void,
27265    ) -> bool;
27266}
27267unsafe extern "C" {
27268    pub fn BNRemoteCreateUser(
27269        remote: *mut BNRemote,
27270        username: *const ::std::os::raw::c_char,
27271        email: *const ::std::os::raw::c_char,
27272        isActive: bool,
27273        password: *const ::std::os::raw::c_char,
27274        groupIds: *const u64,
27275        groupIdCount: usize,
27276        userPermissionIds: *const u64,
27277        userPermissionIdCount: usize,
27278    ) -> *mut BNCollaborationUser;
27279}
27280unsafe extern "C" {
27281    pub fn BNRemotePushUser(
27282        remote: *mut BNRemote,
27283        user: *mut BNCollaborationUser,
27284        extraFieldKeys: *mut *const ::std::os::raw::c_char,
27285        extraFieldValues: *mut *const ::std::os::raw::c_char,
27286        extraFieldCount: usize,
27287    ) -> bool;
27288}
27289unsafe extern "C" {
27290    pub fn BNRemoteRequest(
27291        remote: *mut BNRemote,
27292        request: *mut ::std::os::raw::c_void,
27293        ret: *mut ::std::os::raw::c_void,
27294    ) -> ::std::os::raw::c_int;
27295}
27296unsafe extern "C" {
27297    #[doc = " CollabGroup"]
27298    pub fn BNNewCollaborationGroupReference(
27299        group: *mut BNCollaborationGroup,
27300    ) -> *mut BNCollaborationGroup;
27301}
27302unsafe extern "C" {
27303    pub fn BNFreeCollaborationGroup(group: *mut BNCollaborationGroup);
27304}
27305unsafe extern "C" {
27306    pub fn BNFreeCollaborationGroupList(group: *mut *mut BNCollaborationGroup, count: usize);
27307}
27308unsafe extern "C" {
27309    pub fn BNCollaborationGroupGetRemote(group: *mut BNCollaborationGroup) -> *mut BNRemote;
27310}
27311unsafe extern "C" {
27312    pub fn BNCollaborationGroupGetUrl(
27313        group: *mut BNCollaborationGroup,
27314    ) -> *mut ::std::os::raw::c_char;
27315}
27316unsafe extern "C" {
27317    pub fn BNCollaborationGroupGetId(group: *mut BNCollaborationGroup) -> u64;
27318}
27319unsafe extern "C" {
27320    pub fn BNCollaborationGroupGetName(
27321        group: *mut BNCollaborationGroup,
27322    ) -> *mut ::std::os::raw::c_char;
27323}
27324unsafe extern "C" {
27325    pub fn BNCollaborationGroupSetName(
27326        group: *mut BNCollaborationGroup,
27327        name: *const ::std::os::raw::c_char,
27328    );
27329}
27330unsafe extern "C" {
27331    pub fn BNCollaborationGroupGetUsers(
27332        group: *mut BNCollaborationGroup,
27333        count: *mut usize,
27334    ) -> *mut *mut BNCollaborationUser;
27335}
27336unsafe extern "C" {
27337    pub fn BNCollaborationGroupSetUsers(
27338        group: *mut BNCollaborationGroup,
27339        users: *mut *mut BNCollaborationUser,
27340        count: usize,
27341    ) -> bool;
27342}
27343unsafe extern "C" {
27344    pub fn BNCollaborationGroupContainsUser(
27345        group: *mut BNCollaborationGroup,
27346        user: *mut BNCollaborationUser,
27347    ) -> bool;
27348}
27349unsafe extern "C" {
27350    #[doc = " CollabUser"]
27351    pub fn BNNewCollaborationUserReference(
27352        user: *mut BNCollaborationUser,
27353    ) -> *mut BNCollaborationUser;
27354}
27355unsafe extern "C" {
27356    pub fn BNFreeCollaborationUser(user: *mut BNCollaborationUser);
27357}
27358unsafe extern "C" {
27359    pub fn BNFreeCollaborationUserList(users: *mut *mut BNCollaborationUser, count: usize);
27360}
27361unsafe extern "C" {
27362    pub fn BNCollaborationUserGetRemote(user: *mut BNCollaborationUser) -> *mut BNRemote;
27363}
27364unsafe extern "C" {
27365    pub fn BNCollaborationUserGetUrl(user: *mut BNCollaborationUser)
27366    -> *mut ::std::os::raw::c_char;
27367}
27368unsafe extern "C" {
27369    pub fn BNCollaborationUserGetId(user: *mut BNCollaborationUser) -> *mut ::std::os::raw::c_char;
27370}
27371unsafe extern "C" {
27372    pub fn BNCollaborationUserGetUsername(
27373        user: *mut BNCollaborationUser,
27374    ) -> *mut ::std::os::raw::c_char;
27375}
27376unsafe extern "C" {
27377    pub fn BNCollaborationUserGetEmail(
27378        user: *mut BNCollaborationUser,
27379    ) -> *mut ::std::os::raw::c_char;
27380}
27381unsafe extern "C" {
27382    pub fn BNCollaborationUserGetLastLogin(
27383        user: *mut BNCollaborationUser,
27384    ) -> *mut ::std::os::raw::c_char;
27385}
27386unsafe extern "C" {
27387    pub fn BNCollaborationUserIsActive(user: *mut BNCollaborationUser) -> bool;
27388}
27389unsafe extern "C" {
27390    pub fn BNCollaborationUserSetUsername(
27391        user: *mut BNCollaborationUser,
27392        username: *const ::std::os::raw::c_char,
27393    ) -> bool;
27394}
27395unsafe extern "C" {
27396    pub fn BNCollaborationUserSetEmail(
27397        user: *mut BNCollaborationUser,
27398        email: *const ::std::os::raw::c_char,
27399    ) -> bool;
27400}
27401unsafe extern "C" {
27402    pub fn BNCollaborationUserSetIsActive(user: *mut BNCollaborationUser, isActive: bool) -> bool;
27403}
27404unsafe extern "C" {
27405    #[doc = " RemoteProject"]
27406    pub fn BNNewRemoteProjectReference(project: *mut BNRemoteProject) -> *mut BNRemoteProject;
27407}
27408unsafe extern "C" {
27409    pub fn BNFreeRemoteProject(project: *mut BNRemoteProject);
27410}
27411unsafe extern "C" {
27412    pub fn BNFreeRemoteProjectList(projects: *mut *mut BNRemoteProject, count: usize);
27413}
27414unsafe extern "C" {
27415    pub fn BNRemoteProjectGetCoreProject(project: *mut BNRemoteProject) -> *mut BNProject;
27416}
27417unsafe extern "C" {
27418    pub fn BNRemoteProjectIsOpen(project: *mut BNRemoteProject) -> bool;
27419}
27420unsafe extern "C" {
27421    pub fn BNRemoteProjectOpen(
27422        project: *mut BNRemoteProject,
27423        progress: BNProgressFunction,
27424        progressCtxt: *mut ::std::os::raw::c_void,
27425    ) -> bool;
27426}
27427unsafe extern "C" {
27428    pub fn BNRemoteProjectClose(project: *mut BNRemoteProject);
27429}
27430unsafe extern "C" {
27431    pub fn BNRemoteProjectGetRemote(project: *mut BNRemoteProject) -> *mut BNRemote;
27432}
27433unsafe extern "C" {
27434    pub fn BNRemoteProjectGetUrl(project: *mut BNRemoteProject) -> *mut ::std::os::raw::c_char;
27435}
27436unsafe extern "C" {
27437    pub fn BNRemoteProjectGetCreated(project: *mut BNRemoteProject) -> i64;
27438}
27439unsafe extern "C" {
27440    pub fn BNRemoteProjectGetLastModified(project: *mut BNRemoteProject) -> i64;
27441}
27442unsafe extern "C" {
27443    pub fn BNRemoteProjectGetId(project: *mut BNRemoteProject) -> *mut ::std::os::raw::c_char;
27444}
27445unsafe extern "C" {
27446    pub fn BNRemoteProjectGetName(project: *mut BNRemoteProject) -> *mut ::std::os::raw::c_char;
27447}
27448unsafe extern "C" {
27449    pub fn BNRemoteProjectSetName(
27450        project: *mut BNRemoteProject,
27451        name: *const ::std::os::raw::c_char,
27452    ) -> bool;
27453}
27454unsafe extern "C" {
27455    pub fn BNRemoteProjectGetDescription(
27456        project: *mut BNRemoteProject,
27457    ) -> *mut ::std::os::raw::c_char;
27458}
27459unsafe extern "C" {
27460    pub fn BNRemoteProjectSetDescription(
27461        project: *mut BNRemoteProject,
27462        description: *const ::std::os::raw::c_char,
27463    ) -> bool;
27464}
27465unsafe extern "C" {
27466    pub fn BNRemoteProjectGetReceivedFileCount(project: *mut BNRemoteProject) -> u64;
27467}
27468unsafe extern "C" {
27469    pub fn BNRemoteProjectGetReceivedFolderCount(project: *mut BNRemoteProject) -> u64;
27470}
27471unsafe extern "C" {
27472    pub fn BNRemoteProjectHasPulledFiles(project: *mut BNRemoteProject) -> bool;
27473}
27474unsafe extern "C" {
27475    pub fn BNRemoteProjectHasPulledFolders(project: *mut BNRemoteProject) -> bool;
27476}
27477unsafe extern "C" {
27478    pub fn BNRemoteProjectHasPulledGroupPermissions(project: *mut BNRemoteProject) -> bool;
27479}
27480unsafe extern "C" {
27481    pub fn BNRemoteProjectHasPulledUserPermissions(project: *mut BNRemoteProject) -> bool;
27482}
27483unsafe extern "C" {
27484    pub fn BNRemoteProjectIsAdmin(project: *mut BNRemoteProject) -> bool;
27485}
27486unsafe extern "C" {
27487    pub fn BNRemoteProjectGetFiles(
27488        project: *mut BNRemoteProject,
27489        count: *mut usize,
27490    ) -> *mut *mut BNRemoteFile;
27491}
27492unsafe extern "C" {
27493    pub fn BNRemoteProjectGetFileById(
27494        project: *mut BNRemoteProject,
27495        id: *const ::std::os::raw::c_char,
27496    ) -> *mut BNRemoteFile;
27497}
27498unsafe extern "C" {
27499    pub fn BNRemoteProjectGetFileByName(
27500        project: *mut BNRemoteProject,
27501        name: *const ::std::os::raw::c_char,
27502    ) -> *mut BNRemoteFile;
27503}
27504unsafe extern "C" {
27505    pub fn BNRemoteProjectPullFiles(
27506        project: *mut BNRemoteProject,
27507        progress: BNProgressFunction,
27508        progressContext: *mut ::std::os::raw::c_void,
27509    ) -> bool;
27510}
27511unsafe extern "C" {
27512    pub fn BNRemoteProjectCreateFile(
27513        project: *mut BNRemoteProject,
27514        filename: *const ::std::os::raw::c_char,
27515        contents: *mut u8,
27516        contentsSize: usize,
27517        name: *const ::std::os::raw::c_char,
27518        description: *const ::std::os::raw::c_char,
27519        folder: *mut BNRemoteFolder,
27520        type_: BNRemoteFileType,
27521        progress: BNProgressFunction,
27522        progressContext: *mut ::std::os::raw::c_void,
27523    ) -> *mut BNRemoteFile;
27524}
27525unsafe extern "C" {
27526    pub fn BNRemoteProjectPushFile(
27527        project: *mut BNRemoteProject,
27528        file: *mut BNRemoteFile,
27529        extraFieldKeys: *mut *const ::std::os::raw::c_char,
27530        extraFieldValues: *mut *const ::std::os::raw::c_char,
27531        extraFieldCount: usize,
27532    ) -> bool;
27533}
27534unsafe extern "C" {
27535    pub fn BNRemoteProjectDeleteFile(
27536        project: *mut BNRemoteProject,
27537        file: *mut BNRemoteFile,
27538    ) -> bool;
27539}
27540unsafe extern "C" {
27541    pub fn BNRemoteProjectGetFolders(
27542        project: *mut BNRemoteProject,
27543        count: *mut usize,
27544    ) -> *mut *mut BNRemoteFolder;
27545}
27546unsafe extern "C" {
27547    pub fn BNRemoteProjectGetFolderById(
27548        project: *mut BNRemoteProject,
27549        id: *const ::std::os::raw::c_char,
27550    ) -> *mut BNRemoteFolder;
27551}
27552unsafe extern "C" {
27553    pub fn BNRemoteProjectPullFolders(
27554        project: *mut BNRemoteProject,
27555        progress: BNProgressFunction,
27556        progressContext: *mut ::std::os::raw::c_void,
27557    ) -> bool;
27558}
27559unsafe extern "C" {
27560    pub fn BNRemoteProjectCreateFolder(
27561        project: *mut BNRemoteProject,
27562        name: *const ::std::os::raw::c_char,
27563        description: *const ::std::os::raw::c_char,
27564        parent: *mut BNRemoteFolder,
27565        progress: BNProgressFunction,
27566        progressContext: *mut ::std::os::raw::c_void,
27567    ) -> *mut BNRemoteFolder;
27568}
27569unsafe extern "C" {
27570    pub fn BNRemoteProjectPushFolder(
27571        project: *mut BNRemoteProject,
27572        folder: *mut BNRemoteFolder,
27573        extraFieldKeys: *mut *const ::std::os::raw::c_char,
27574        extraFieldValues: *mut *const ::std::os::raw::c_char,
27575        extraFieldCount: usize,
27576    ) -> bool;
27577}
27578unsafe extern "C" {
27579    pub fn BNRemoteProjectDeleteFolder(
27580        project: *mut BNRemoteProject,
27581        folder: *mut BNRemoteFolder,
27582    ) -> bool;
27583}
27584unsafe extern "C" {
27585    pub fn BNRemoteProjectGetGroupPermissions(
27586        project: *mut BNRemoteProject,
27587        count: *mut usize,
27588    ) -> *mut *mut BNCollaborationPermission;
27589}
27590unsafe extern "C" {
27591    pub fn BNRemoteProjectGetUserPermissions(
27592        project: *mut BNRemoteProject,
27593        count: *mut usize,
27594    ) -> *mut *mut BNCollaborationPermission;
27595}
27596unsafe extern "C" {
27597    pub fn BNRemoteProjectGetPermissionById(
27598        project: *mut BNRemoteProject,
27599        id: *const ::std::os::raw::c_char,
27600    ) -> *mut BNCollaborationPermission;
27601}
27602unsafe extern "C" {
27603    pub fn BNRemoteProjectPullGroupPermissions(
27604        project: *mut BNRemoteProject,
27605        progress: BNProgressFunction,
27606        progressContext: *mut ::std::os::raw::c_void,
27607    ) -> bool;
27608}
27609unsafe extern "C" {
27610    pub fn BNRemoteProjectPullUserPermissions(
27611        project: *mut BNRemoteProject,
27612        progress: BNProgressFunction,
27613        progressContext: *mut ::std::os::raw::c_void,
27614    ) -> bool;
27615}
27616unsafe extern "C" {
27617    pub fn BNRemoteProjectCreateGroupPermission(
27618        project: *mut BNRemoteProject,
27619        groupId: i64,
27620        level: BNCollaborationPermissionLevel,
27621        progress: BNProgressFunction,
27622        progressContext: *mut ::std::os::raw::c_void,
27623    ) -> *mut BNCollaborationPermission;
27624}
27625unsafe extern "C" {
27626    pub fn BNRemoteProjectCreateUserPermission(
27627        project: *mut BNRemoteProject,
27628        userId: *const ::std::os::raw::c_char,
27629        level: BNCollaborationPermissionLevel,
27630        progress: BNProgressFunction,
27631        progressContext: *mut ::std::os::raw::c_void,
27632    ) -> *mut BNCollaborationPermission;
27633}
27634unsafe extern "C" {
27635    pub fn BNRemoteProjectPushPermission(
27636        project: *mut BNRemoteProject,
27637        permission: *mut BNCollaborationPermission,
27638        extraFieldKeys: *mut *const ::std::os::raw::c_char,
27639        extraFieldValues: *mut *const ::std::os::raw::c_char,
27640        extraFieldCount: usize,
27641    ) -> bool;
27642}
27643unsafe extern "C" {
27644    pub fn BNRemoteProjectDeletePermission(
27645        project: *mut BNRemoteProject,
27646        permission: *mut BNCollaborationPermission,
27647    ) -> bool;
27648}
27649unsafe extern "C" {
27650    pub fn BNRemoteProjectCanUserView(
27651        project: *mut BNRemoteProject,
27652        user: *mut BNCollaborationUser,
27653    ) -> bool;
27654}
27655unsafe extern "C" {
27656    pub fn BNRemoteProjectCanUserEdit(
27657        project: *mut BNRemoteProject,
27658        user: *mut BNCollaborationUser,
27659    ) -> bool;
27660}
27661unsafe extern "C" {
27662    pub fn BNRemoteProjectCanUserAdmin(
27663        project: *mut BNRemoteProject,
27664        user: *mut BNCollaborationUser,
27665    ) -> bool;
27666}
27667unsafe extern "C" {
27668    #[doc = " RemoteFile"]
27669    pub fn BNNewRemoteFileReference(file: *mut BNRemoteFile) -> *mut BNRemoteFile;
27670}
27671unsafe extern "C" {
27672    pub fn BNFreeRemoteFile(file: *mut BNRemoteFile);
27673}
27674unsafe extern "C" {
27675    pub fn BNFreeRemoteFileList(files: *mut *mut BNRemoteFile, count: usize);
27676}
27677unsafe extern "C" {
27678    pub fn BNRemoteFileGetCoreFile(file: *mut BNRemoteFile) -> *mut BNProjectFile;
27679}
27680unsafe extern "C" {
27681    pub fn BNRemoteFileGetProject(file: *mut BNRemoteFile) -> *mut BNRemoteProject;
27682}
27683unsafe extern "C" {
27684    pub fn BNRemoteFileGetFolder(file: *mut BNRemoteFile) -> *mut BNRemoteFolder;
27685}
27686unsafe extern "C" {
27687    pub fn BNRemoteFileGetRemote(file: *mut BNRemoteFile) -> *mut BNRemote;
27688}
27689unsafe extern "C" {
27690    pub fn BNRemoteFileGetUrl(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
27691}
27692unsafe extern "C" {
27693    pub fn BNRemoteFileGetChatLogUrl(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
27694}
27695unsafe extern "C" {
27696    pub fn BNRemoteFileGetUserPositionsUrl(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
27697}
27698unsafe extern "C" {
27699    pub fn BNRemoteFileGetId(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
27700}
27701unsafe extern "C" {
27702    pub fn BNRemoteFileGetType(file: *mut BNRemoteFile) -> BNRemoteFileType;
27703}
27704unsafe extern "C" {
27705    pub fn BNRemoteFileGetCreated(file: *mut BNRemoteFile) -> i64;
27706}
27707unsafe extern "C" {
27708    pub fn BNRemoteFileGetCreatedBy(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
27709}
27710unsafe extern "C" {
27711    pub fn BNRemoteFileGetLastModified(file: *mut BNRemoteFile) -> i64;
27712}
27713unsafe extern "C" {
27714    pub fn BNRemoteFileGetLastSnapshot(file: *mut BNRemoteFile) -> i64;
27715}
27716unsafe extern "C" {
27717    pub fn BNRemoteFileGetLastSnapshotBy(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
27718}
27719unsafe extern "C" {
27720    pub fn BNRemoteFileGetLastSnapshotName(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
27721}
27722unsafe extern "C" {
27723    pub fn BNRemoteFileGetHash(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
27724}
27725unsafe extern "C" {
27726    pub fn BNRemoteFileGetName(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
27727}
27728unsafe extern "C" {
27729    pub fn BNRemoteFileGetDescription(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
27730}
27731unsafe extern "C" {
27732    pub fn BNRemoteFileGetMetadata(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
27733}
27734unsafe extern "C" {
27735    pub fn BNRemoteFileGetSize(file: *mut BNRemoteFile) -> u64;
27736}
27737unsafe extern "C" {
27738    pub fn BNRemoteFileHasPulledSnapshots(file: *mut BNRemoteFile) -> bool;
27739}
27740unsafe extern "C" {
27741    pub fn BNRemoteFileSetName(
27742        file: *mut BNRemoteFile,
27743        name: *const ::std::os::raw::c_char,
27744    ) -> bool;
27745}
27746unsafe extern "C" {
27747    pub fn BNRemoteFileSetDescription(
27748        file: *mut BNRemoteFile,
27749        description: *const ::std::os::raw::c_char,
27750    ) -> bool;
27751}
27752unsafe extern "C" {
27753    pub fn BNRemoteFileSetFolder(file: *mut BNRemoteFile, folder: *mut BNRemoteFolder) -> bool;
27754}
27755unsafe extern "C" {
27756    pub fn BNRemoteFileSetMetadata(
27757        file: *mut BNRemoteFile,
27758        metadata: *const ::std::os::raw::c_char,
27759    ) -> bool;
27760}
27761unsafe extern "C" {
27762    pub fn BNRemoteFileGetSnapshots(
27763        file: *mut BNRemoteFile,
27764        count: *mut usize,
27765    ) -> *mut *mut BNCollaborationSnapshot;
27766}
27767unsafe extern "C" {
27768    pub fn BNRemoteFileGetSnapshotById(
27769        file: *mut BNRemoteFile,
27770        id: *const ::std::os::raw::c_char,
27771    ) -> *mut BNCollaborationSnapshot;
27772}
27773unsafe extern "C" {
27774    pub fn BNRemoteFilePullSnapshots(
27775        file: *mut BNRemoteFile,
27776        progress: BNProgressFunction,
27777        progressContext: *mut ::std::os::raw::c_void,
27778    ) -> bool;
27779}
27780unsafe extern "C" {
27781    pub fn BNRemoteFileCreateSnapshot(
27782        file: *mut BNRemoteFile,
27783        name: *const ::std::os::raw::c_char,
27784        contents: *mut u8,
27785        contentsSize: usize,
27786        analysisCacheContents: *mut u8,
27787        analysisCacheContentsSize: usize,
27788        fileContents: *mut u8,
27789        fileContentsSize: usize,
27790        parentIds: *mut *const ::std::os::raw::c_char,
27791        parentIdCount: usize,
27792        progress: BNProgressFunction,
27793        progressContext: *mut ::std::os::raw::c_void,
27794    ) -> *mut BNCollaborationSnapshot;
27795}
27796unsafe extern "C" {
27797    pub fn BNRemoteFileDeleteSnapshot(
27798        file: *mut BNRemoteFile,
27799        snapshot: *mut BNCollaborationSnapshot,
27800    ) -> bool;
27801}
27802unsafe extern "C" {
27803    pub fn BNRemoteFileDownload(
27804        file: *mut BNRemoteFile,
27805        progress: BNProgressFunction,
27806        progressCtxt: *mut ::std::os::raw::c_void,
27807    ) -> bool;
27808}
27809unsafe extern "C" {
27810    pub fn BNRemoteFileDownloadContents(
27811        file: *mut BNRemoteFile,
27812        progress: BNProgressFunction,
27813        progressCtxt: *mut ::std::os::raw::c_void,
27814        data: *mut *mut u8,
27815        size: *mut usize,
27816    ) -> bool;
27817}
27818unsafe extern "C" {
27819    pub fn BNRemoteFileRequestUserPositions(file: *mut BNRemoteFile)
27820    -> *mut ::std::os::raw::c_char;
27821}
27822unsafe extern "C" {
27823    pub fn BNRemoteFileRequestChatLog(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
27824}
27825unsafe extern "C" {
27826    #[doc = " RemoteFolder"]
27827    pub fn BNNewRemoteFolderReference(folder: *mut BNRemoteFolder) -> *mut BNRemoteFolder;
27828}
27829unsafe extern "C" {
27830    pub fn BNFreeRemoteFolder(folder: *mut BNRemoteFolder);
27831}
27832unsafe extern "C" {
27833    pub fn BNFreeRemoteFolderList(folders: *mut *mut BNRemoteFolder, count: usize);
27834}
27835unsafe extern "C" {
27836    pub fn BNRemoteFolderGetCoreFolder(folder: *mut BNRemoteFolder) -> *mut BNProjectFolder;
27837}
27838unsafe extern "C" {
27839    pub fn BNRemoteFolderGetProject(folder: *mut BNRemoteFolder) -> *mut BNRemoteProject;
27840}
27841unsafe extern "C" {
27842    pub fn BNRemoteFolderGetRemote(folder: *mut BNRemoteFolder) -> *mut BNRemote;
27843}
27844unsafe extern "C" {
27845    pub fn BNRemoteFolderGetParent(
27846        folder: *mut BNRemoteFolder,
27847        parent: *mut *mut BNRemoteFolder,
27848    ) -> bool;
27849}
27850unsafe extern "C" {
27851    pub fn BNRemoteFolderGetUrl(folder: *mut BNRemoteFolder) -> *mut ::std::os::raw::c_char;
27852}
27853unsafe extern "C" {
27854    pub fn BNRemoteFolderGetId(folder: *mut BNRemoteFolder) -> *mut ::std::os::raw::c_char;
27855}
27856unsafe extern "C" {
27857    pub fn BNRemoteFolderGetParentId(
27858        folder: *mut BNRemoteFolder,
27859        result: *mut *mut ::std::os::raw::c_char,
27860    ) -> bool;
27861}
27862unsafe extern "C" {
27863    pub fn BNRemoteFolderGetName(folder: *mut BNRemoteFolder) -> *mut ::std::os::raw::c_char;
27864}
27865unsafe extern "C" {
27866    pub fn BNRemoteFolderGetDescription(folder: *mut BNRemoteFolder)
27867    -> *mut ::std::os::raw::c_char;
27868}
27869unsafe extern "C" {
27870    pub fn BNRemoteFolderSetName(
27871        folder: *mut BNRemoteFolder,
27872        name: *const ::std::os::raw::c_char,
27873    ) -> bool;
27874}
27875unsafe extern "C" {
27876    pub fn BNRemoteFolderSetDescription(
27877        folder: *mut BNRemoteFolder,
27878        description: *const ::std::os::raw::c_char,
27879    ) -> bool;
27880}
27881unsafe extern "C" {
27882    pub fn BNRemoteFolderSetParent(
27883        folder: *mut BNRemoteFolder,
27884        parent: *mut BNRemoteFolder,
27885    ) -> bool;
27886}
27887unsafe extern "C" {
27888    #[doc = " CollabPermission"]
27889    pub fn BNNewCollaborationPermissionReference(
27890        permission: *mut BNCollaborationPermission,
27891    ) -> *mut BNCollaborationPermission;
27892}
27893unsafe extern "C" {
27894    pub fn BNFreeCollaborationPermission(permission: *mut BNCollaborationPermission);
27895}
27896unsafe extern "C" {
27897    pub fn BNFreeCollaborationPermissionList(
27898        permissions: *mut *mut BNCollaborationPermission,
27899        count: usize,
27900    );
27901}
27902unsafe extern "C" {
27903    pub fn BNCollaborationPermissionGetProject(
27904        permission: *mut BNCollaborationPermission,
27905    ) -> *mut BNRemoteProject;
27906}
27907unsafe extern "C" {
27908    pub fn BNCollaborationPermissionGetRemote(
27909        permission: *mut BNCollaborationPermission,
27910    ) -> *mut BNRemote;
27911}
27912unsafe extern "C" {
27913    pub fn BNCollaborationPermissionGetId(
27914        permission: *mut BNCollaborationPermission,
27915    ) -> *mut ::std::os::raw::c_char;
27916}
27917unsafe extern "C" {
27918    pub fn BNCollaborationPermissionGetUrl(
27919        permission: *mut BNCollaborationPermission,
27920    ) -> *mut ::std::os::raw::c_char;
27921}
27922unsafe extern "C" {
27923    pub fn BNCollaborationPermissionGetGroupId(permission: *mut BNCollaborationPermission) -> u64;
27924}
27925unsafe extern "C" {
27926    pub fn BNCollaborationPermissionGetGroupName(
27927        permission: *mut BNCollaborationPermission,
27928    ) -> *mut ::std::os::raw::c_char;
27929}
27930unsafe extern "C" {
27931    pub fn BNCollaborationPermissionGetUserId(
27932        permission: *mut BNCollaborationPermission,
27933    ) -> *mut ::std::os::raw::c_char;
27934}
27935unsafe extern "C" {
27936    pub fn BNCollaborationPermissionGetUsername(
27937        permission: *mut BNCollaborationPermission,
27938    ) -> *mut ::std::os::raw::c_char;
27939}
27940unsafe extern "C" {
27941    pub fn BNCollaborationPermissionGetLevel(
27942        permission: *mut BNCollaborationPermission,
27943    ) -> BNCollaborationPermissionLevel;
27944}
27945unsafe extern "C" {
27946    pub fn BNCollaborationPermissionSetLevel(
27947        permission: *mut BNCollaborationPermission,
27948        level: BNCollaborationPermissionLevel,
27949    );
27950}
27951unsafe extern "C" {
27952    pub fn BNCollaborationPermissionCanView(permission: *mut BNCollaborationPermission) -> bool;
27953}
27954unsafe extern "C" {
27955    pub fn BNCollaborationPermissionCanEdit(permission: *mut BNCollaborationPermission) -> bool;
27956}
27957unsafe extern "C" {
27958    pub fn BNCollaborationPermissionCanAdmin(permission: *mut BNCollaborationPermission) -> bool;
27959}
27960unsafe extern "C" {
27961    #[doc = " AnalysisMergeConflict"]
27962    pub fn BNNewAnalysisMergeConflictReference(
27963        conflict: *mut BNAnalysisMergeConflict,
27964    ) -> *mut BNAnalysisMergeConflict;
27965}
27966unsafe extern "C" {
27967    pub fn BNFreeAnalysisMergeConflict(conflict: *mut BNAnalysisMergeConflict);
27968}
27969unsafe extern "C" {
27970    pub fn BNFreeAnalysisMergeConflictList(
27971        conflicts: *mut *mut BNAnalysisMergeConflict,
27972        count: usize,
27973    );
27974}
27975unsafe extern "C" {
27976    pub fn BNAnalysisMergeConflictGetDatabase(
27977        conflict: *mut BNAnalysisMergeConflict,
27978    ) -> *mut BNDatabase;
27979}
27980unsafe extern "C" {
27981    pub fn BNAnalysisMergeConflictGetType(
27982        conflict: *mut BNAnalysisMergeConflict,
27983    ) -> *mut ::std::os::raw::c_char;
27984}
27985unsafe extern "C" {
27986    pub fn BNAnalysisMergeConflictGetKey(
27987        conflict: *mut BNAnalysisMergeConflict,
27988    ) -> *mut ::std::os::raw::c_char;
27989}
27990unsafe extern "C" {
27991    pub fn BNAnalysisMergeConflictGetDataType(
27992        conflict: *mut BNAnalysisMergeConflict,
27993    ) -> BNMergeConflictDataType;
27994}
27995unsafe extern "C" {
27996    pub fn BNAnalysisMergeConflictGetBase(
27997        conflict: *mut BNAnalysisMergeConflict,
27998    ) -> *mut ::std::os::raw::c_char;
27999}
28000unsafe extern "C" {
28001    pub fn BNAnalysisMergeConflictGetFirst(
28002        conflict: *mut BNAnalysisMergeConflict,
28003    ) -> *mut ::std::os::raw::c_char;
28004}
28005unsafe extern "C" {
28006    pub fn BNAnalysisMergeConflictGetSecond(
28007        conflict: *mut BNAnalysisMergeConflict,
28008    ) -> *mut ::std::os::raw::c_char;
28009}
28010unsafe extern "C" {
28011    pub fn BNAnalysisMergeConflictGetBaseFile(
28012        conflict: *mut BNAnalysisMergeConflict,
28013    ) -> *mut BNFileMetadata;
28014}
28015unsafe extern "C" {
28016    pub fn BNAnalysisMergeConflictGetFirstFile(
28017        conflict: *mut BNAnalysisMergeConflict,
28018    ) -> *mut BNFileMetadata;
28019}
28020unsafe extern "C" {
28021    pub fn BNAnalysisMergeConflictGetSecondFile(
28022        conflict: *mut BNAnalysisMergeConflict,
28023    ) -> *mut BNFileMetadata;
28024}
28025unsafe extern "C" {
28026    pub fn BNAnalysisMergeConflictGetBaseSnapshot(
28027        conflict: *mut BNAnalysisMergeConflict,
28028    ) -> *mut BNSnapshot;
28029}
28030unsafe extern "C" {
28031    pub fn BNAnalysisMergeConflictGetFirstSnapshot(
28032        conflict: *mut BNAnalysisMergeConflict,
28033    ) -> *mut BNSnapshot;
28034}
28035unsafe extern "C" {
28036    pub fn BNAnalysisMergeConflictGetSecondSnapshot(
28037        conflict: *mut BNAnalysisMergeConflict,
28038    ) -> *mut BNSnapshot;
28039}
28040unsafe extern "C" {
28041    pub fn BNAnalysisMergeConflictGetPathItemString(
28042        conflict: *mut BNAnalysisMergeConflict,
28043        path: *const ::std::os::raw::c_char,
28044    ) -> *mut ::std::os::raw::c_char;
28045}
28046unsafe extern "C" {
28047    pub fn BNAnalysisMergeConflictGetPathItemSerialized(
28048        conflict: *mut BNAnalysisMergeConflict,
28049        path: *const ::std::os::raw::c_char,
28050    ) -> *mut ::std::os::raw::c_char;
28051}
28052unsafe extern "C" {
28053    pub fn BNAnalysisMergeConflictGetPathItem(
28054        conflict: *mut BNAnalysisMergeConflict,
28055        path: *const ::std::os::raw::c_char,
28056    ) -> *mut ::std::os::raw::c_void;
28057}
28058unsafe extern "C" {
28059    pub fn BNAnalysisMergeConflictSuccess(
28060        conflict: *mut BNAnalysisMergeConflict,
28061        value: *const ::std::os::raw::c_char,
28062    ) -> bool;
28063}
28064unsafe extern "C" {
28065    #[doc = " TypeArchiveMergeConflict"]
28066    pub fn BNNewTypeArchiveMergeConflictReference(
28067        conflict: *mut BNTypeArchiveMergeConflict,
28068    ) -> *mut BNTypeArchiveMergeConflict;
28069}
28070unsafe extern "C" {
28071    pub fn BNFreeTypeArchiveMergeConflict(conflict: *mut BNTypeArchiveMergeConflict);
28072}
28073unsafe extern "C" {
28074    pub fn BNFreeTypeArchiveMergeConflictList(
28075        conflicts: *mut *mut BNTypeArchiveMergeConflict,
28076        count: usize,
28077    );
28078}
28079unsafe extern "C" {
28080    pub fn BNTypeArchiveMergeConflictGetTypeArchive(
28081        conflict: *mut BNTypeArchiveMergeConflict,
28082    ) -> *mut BNTypeArchive;
28083}
28084unsafe extern "C" {
28085    pub fn BNTypeArchiveMergeConflictGetTypeId(
28086        conflict: *mut BNTypeArchiveMergeConflict,
28087    ) -> *mut ::std::os::raw::c_char;
28088}
28089unsafe extern "C" {
28090    pub fn BNTypeArchiveMergeConflictGetBaseSnapshotId(
28091        conflict: *mut BNTypeArchiveMergeConflict,
28092    ) -> *mut ::std::os::raw::c_char;
28093}
28094unsafe extern "C" {
28095    pub fn BNTypeArchiveMergeConflictGetFirstSnapshotId(
28096        conflict: *mut BNTypeArchiveMergeConflict,
28097    ) -> *mut ::std::os::raw::c_char;
28098}
28099unsafe extern "C" {
28100    pub fn BNTypeArchiveMergeConflictGetSecondSnapshotId(
28101        conflict: *mut BNTypeArchiveMergeConflict,
28102    ) -> *mut ::std::os::raw::c_char;
28103}
28104unsafe extern "C" {
28105    pub fn BNTypeArchiveMergeConflictSuccess(
28106        conflict: *mut BNTypeArchiveMergeConflict,
28107        value: *const ::std::os::raw::c_char,
28108    ) -> bool;
28109}
28110unsafe extern "C" {
28111    #[doc = " CollabSnapshot"]
28112    pub fn BNNewCollaborationSnapshotReference(
28113        snapshot: *mut BNCollaborationSnapshot,
28114    ) -> *mut BNCollaborationSnapshot;
28115}
28116unsafe extern "C" {
28117    pub fn BNFreeCollaborationSnapshot(snapshot: *mut BNCollaborationSnapshot);
28118}
28119unsafe extern "C" {
28120    pub fn BNFreeCollaborationSnapshotList(
28121        snapshots: *mut *mut BNCollaborationSnapshot,
28122        count: usize,
28123    );
28124}
28125unsafe extern "C" {
28126    pub fn BNCollaborationSnapshotGetFile(
28127        snapshot: *mut BNCollaborationSnapshot,
28128    ) -> *mut BNRemoteFile;
28129}
28130unsafe extern "C" {
28131    pub fn BNCollaborationSnapshotGetProject(
28132        snapshot: *mut BNCollaborationSnapshot,
28133    ) -> *mut BNRemoteProject;
28134}
28135unsafe extern "C" {
28136    pub fn BNCollaborationSnapshotGetRemote(
28137        snapshot: *mut BNCollaborationSnapshot,
28138    ) -> *mut BNRemote;
28139}
28140unsafe extern "C" {
28141    pub fn BNCollaborationSnapshotGetUrl(
28142        snapshot: *mut BNCollaborationSnapshot,
28143    ) -> *mut ::std::os::raw::c_char;
28144}
28145unsafe extern "C" {
28146    pub fn BNCollaborationSnapshotGetId(
28147        snapshot: *mut BNCollaborationSnapshot,
28148    ) -> *mut ::std::os::raw::c_char;
28149}
28150unsafe extern "C" {
28151    pub fn BNCollaborationSnapshotGetName(
28152        snapshot: *mut BNCollaborationSnapshot,
28153    ) -> *mut ::std::os::raw::c_char;
28154}
28155unsafe extern "C" {
28156    pub fn BNCollaborationSnapshotGetAuthor(
28157        snapshot: *mut BNCollaborationSnapshot,
28158    ) -> *mut ::std::os::raw::c_char;
28159}
28160unsafe extern "C" {
28161    pub fn BNCollaborationSnapshotGetCreated(snapshot: *mut BNCollaborationSnapshot) -> i64;
28162}
28163unsafe extern "C" {
28164    pub fn BNCollaborationSnapshotGetLastModified(snapshot: *mut BNCollaborationSnapshot) -> i64;
28165}
28166unsafe extern "C" {
28167    pub fn BNCollaborationSnapshotGetHash(
28168        snapshot: *mut BNCollaborationSnapshot,
28169    ) -> *mut ::std::os::raw::c_char;
28170}
28171unsafe extern "C" {
28172    pub fn BNCollaborationSnapshotGetSnapshotFileHash(
28173        snapshot: *mut BNCollaborationSnapshot,
28174    ) -> *mut ::std::os::raw::c_char;
28175}
28176unsafe extern "C" {
28177    pub fn BNCollaborationSnapshotHasPulledUndoEntries(
28178        snapshot: *mut BNCollaborationSnapshot,
28179    ) -> bool;
28180}
28181unsafe extern "C" {
28182    pub fn BNCollaborationSnapshotIsFinalized(snapshot: *mut BNCollaborationSnapshot) -> bool;
28183}
28184unsafe extern "C" {
28185    pub fn BNCollaborationSnapshotGetParentIds(
28186        snapshot: *mut BNCollaborationSnapshot,
28187        count: *mut usize,
28188    ) -> *mut *mut ::std::os::raw::c_char;
28189}
28190unsafe extern "C" {
28191    pub fn BNCollaborationSnapshotGetChildIds(
28192        snapshot: *mut BNCollaborationSnapshot,
28193        count: *mut usize,
28194    ) -> *mut *mut ::std::os::raw::c_char;
28195}
28196unsafe extern "C" {
28197    pub fn BNCollaborationSnapshotGetAnalysisCacheBuildId(
28198        snapshot: *mut BNCollaborationSnapshot,
28199    ) -> u64;
28200}
28201unsafe extern "C" {
28202    pub fn BNCollaborationSnapshotGetTitle(
28203        snapshot: *mut BNCollaborationSnapshot,
28204    ) -> *mut ::std::os::raw::c_char;
28205}
28206unsafe extern "C" {
28207    pub fn BNCollaborationSnapshotGetDescription(
28208        snapshot: *mut BNCollaborationSnapshot,
28209    ) -> *mut ::std::os::raw::c_char;
28210}
28211unsafe extern "C" {
28212    pub fn BNCollaborationSnapshotGetAuthorUsername(
28213        snapshot: *mut BNCollaborationSnapshot,
28214    ) -> *mut ::std::os::raw::c_char;
28215}
28216unsafe extern "C" {
28217    pub fn BNCollaborationSnapshotGetParents(
28218        snapshot: *mut BNCollaborationSnapshot,
28219        count: *mut usize,
28220    ) -> *mut *mut BNCollaborationSnapshot;
28221}
28222unsafe extern "C" {
28223    pub fn BNCollaborationSnapshotGetChildren(
28224        snapshot: *mut BNCollaborationSnapshot,
28225        count: *mut usize,
28226    ) -> *mut *mut BNCollaborationSnapshot;
28227}
28228unsafe extern "C" {
28229    pub fn BNCollaborationSnapshotGetUndoEntries(
28230        snapshot: *mut BNCollaborationSnapshot,
28231        count: *mut usize,
28232    ) -> *mut *mut BNCollaborationUndoEntry;
28233}
28234unsafe extern "C" {
28235    pub fn BNCollaborationSnapshotGetUndoEntryById(
28236        snapshot: *mut BNCollaborationSnapshot,
28237        id: u64,
28238    ) -> *mut BNCollaborationUndoEntry;
28239}
28240unsafe extern "C" {
28241    pub fn BNCollaborationSnapshotPullUndoEntries(
28242        snapshot: *mut BNCollaborationSnapshot,
28243        progress: BNProgressFunction,
28244        progressContext: *mut ::std::os::raw::c_void,
28245    ) -> bool;
28246}
28247unsafe extern "C" {
28248    pub fn BNCollaborationSnapshotCreateUndoEntry(
28249        snapshot: *mut BNCollaborationSnapshot,
28250        hasParent: bool,
28251        parent: u64,
28252        data: *const ::std::os::raw::c_char,
28253    ) -> *mut BNCollaborationUndoEntry;
28254}
28255unsafe extern "C" {
28256    pub fn BNCollaborationSnapshotFinalize(snapshot: *mut BNCollaborationSnapshot) -> bool;
28257}
28258unsafe extern "C" {
28259    pub fn BNCollaborationSnapshotDownloadSnapshotFile(
28260        snapshot: *mut BNCollaborationSnapshot,
28261        progress: BNProgressFunction,
28262        progressContext: *mut ::std::os::raw::c_void,
28263        data: *mut *mut u8,
28264        size: *mut usize,
28265    ) -> bool;
28266}
28267unsafe extern "C" {
28268    pub fn BNCollaborationSnapshotDownload(
28269        snapshot: *mut BNCollaborationSnapshot,
28270        progress: BNProgressFunction,
28271        progressContext: *mut ::std::os::raw::c_void,
28272        data: *mut *mut u8,
28273        size: *mut usize,
28274    ) -> bool;
28275}
28276unsafe extern "C" {
28277    pub fn BNCollaborationSnapshotDownloadAnalysisCache(
28278        snapshot: *mut BNCollaborationSnapshot,
28279        progress: BNProgressFunction,
28280        progressContext: *mut ::std::os::raw::c_void,
28281        data: *mut *mut u8,
28282        size: *mut usize,
28283    ) -> bool;
28284}
28285unsafe extern "C" {
28286    #[doc = " CollabUndoEntry"]
28287    pub fn BNNewCollaborationUndoEntryReference(
28288        entry: *mut BNCollaborationUndoEntry,
28289    ) -> *mut BNCollaborationUndoEntry;
28290}
28291unsafe extern "C" {
28292    pub fn BNFreeCollaborationUndoEntry(entry: *mut BNCollaborationUndoEntry);
28293}
28294unsafe extern "C" {
28295    pub fn BNFreeCollaborationUndoEntryList(
28296        entries: *mut *mut BNCollaborationUndoEntry,
28297        count: usize,
28298    );
28299}
28300unsafe extern "C" {
28301    pub fn BNCollaborationUndoEntryGetSnapshot(
28302        undoEntry: *mut BNCollaborationUndoEntry,
28303    ) -> *mut BNCollaborationSnapshot;
28304}
28305unsafe extern "C" {
28306    pub fn BNCollaborationUndoEntryGetFile(
28307        undoEntry: *mut BNCollaborationUndoEntry,
28308    ) -> *mut BNRemoteFile;
28309}
28310unsafe extern "C" {
28311    pub fn BNCollaborationUndoEntryGetProject(
28312        undoEntry: *mut BNCollaborationUndoEntry,
28313    ) -> *mut BNRemoteProject;
28314}
28315unsafe extern "C" {
28316    pub fn BNCollaborationUndoEntryGetRemote(
28317        undoEntry: *mut BNCollaborationUndoEntry,
28318    ) -> *mut BNRemote;
28319}
28320unsafe extern "C" {
28321    pub fn BNCollaborationUndoEntryGetUrl(
28322        undoEntry: *mut BNCollaborationUndoEntry,
28323    ) -> *mut ::std::os::raw::c_char;
28324}
28325unsafe extern "C" {
28326    pub fn BNCollaborationUndoEntryGetId(undoEntry: *mut BNCollaborationUndoEntry) -> u64;
28327}
28328unsafe extern "C" {
28329    pub fn BNCollaborationUndoEntryGetParentId(
28330        undoEntry: *mut BNCollaborationUndoEntry,
28331        parentId: *mut u64,
28332    ) -> bool;
28333}
28334unsafe extern "C" {
28335    pub fn BNCollaborationUndoEntryGetData(
28336        undoEntry: *mut BNCollaborationUndoEntry,
28337        data: *mut *mut ::std::os::raw::c_char,
28338    ) -> bool;
28339}
28340unsafe extern "C" {
28341    pub fn BNCollaborationUndoEntryGetParent(
28342        undoEntry: *mut BNCollaborationUndoEntry,
28343    ) -> *mut BNCollaborationUndoEntry;
28344}
28345unsafe extern "C" {
28346    #[doc = " CollabChangeset"]
28347    pub fn BNNewCollaborationChangesetReference(
28348        changeset: *mut BNCollaborationChangeset,
28349    ) -> *mut BNCollaborationChangeset;
28350}
28351unsafe extern "C" {
28352    pub fn BNFreeCollaborationChangeset(changeset: *mut BNCollaborationChangeset);
28353}
28354unsafe extern "C" {
28355    pub fn BNFreeCollaborationChangesetList(
28356        changesets: *mut *mut BNCollaborationChangeset,
28357        count: usize,
28358    );
28359}
28360unsafe extern "C" {
28361    pub fn BNCollaborationChangesetGetDatabase(
28362        changeset: *mut BNCollaborationChangeset,
28363    ) -> *mut BNDatabase;
28364}
28365unsafe extern "C" {
28366    pub fn BNCollaborationChangesetGetFile(
28367        changeset: *mut BNCollaborationChangeset,
28368    ) -> *mut BNRemoteFile;
28369}
28370unsafe extern "C" {
28371    pub fn BNCollaborationChangesetGetSnapshotIds(
28372        changeset: *mut BNCollaborationChangeset,
28373        count: *mut usize,
28374    ) -> *mut i64;
28375}
28376unsafe extern "C" {
28377    pub fn BNCollaborationChangesetGetAuthor(
28378        changeset: *mut BNCollaborationChangeset,
28379    ) -> *mut BNCollaborationUser;
28380}
28381unsafe extern "C" {
28382    pub fn BNCollaborationChangesetGetName(
28383        changeset: *mut BNCollaborationChangeset,
28384    ) -> *mut ::std::os::raw::c_char;
28385}
28386unsafe extern "C" {
28387    pub fn BNCollaborationChangesetSetName(
28388        changeset: *mut BNCollaborationChangeset,
28389        name: *const ::std::os::raw::c_char,
28390    ) -> bool;
28391}
28392unsafe extern "C" {
28393    #[doc = " AnalysisMergeConflictSplitter"]
28394    pub fn BNRegisterAnalysisMergeConflictSplitter(
28395        callbacks: *mut BNAnalysisMergeConflictSplitterCallbacks,
28396    ) -> *mut BNAnalysisMergeConflictSplitter;
28397}
28398unsafe extern "C" {
28399    pub fn BNGetAnalysisMergeConflictSplitterList(
28400        count: *mut usize,
28401    ) -> *mut *mut BNAnalysisMergeConflictSplitter;
28402}
28403unsafe extern "C" {
28404    pub fn BNFreeAnalysisMergeConflictSplitterList(
28405        splitters: *mut *mut BNAnalysisMergeConflictSplitter,
28406        count: usize,
28407    );
28408}
28409unsafe extern "C" {
28410    pub fn BNAnalysisMergeConflictSplitterGetName(
28411        splitter: *mut BNAnalysisMergeConflictSplitter,
28412    ) -> *mut ::std::os::raw::c_char;
28413}
28414unsafe extern "C" {
28415    pub fn BNAnalysisMergeConflictSplitterCanSplit(
28416        splitter: *mut BNAnalysisMergeConflictSplitter,
28417        key: *const ::std::os::raw::c_char,
28418        conflict: *mut BNAnalysisMergeConflict,
28419    ) -> bool;
28420}
28421unsafe extern "C" {
28422    pub fn BNAnalysisMergeConflictSplitterSplit(
28423        splitter: *mut BNAnalysisMergeConflictSplitter,
28424        originalKey: *const ::std::os::raw::c_char,
28425        originalConflict: *mut BNAnalysisMergeConflict,
28426        result: *mut BNKeyValueStore,
28427        newKeys: *mut *mut *mut ::std::os::raw::c_char,
28428        newConflicts: *mut *mut *mut BNAnalysisMergeConflict,
28429        newCount: *mut usize,
28430    ) -> bool;
28431}
28432unsafe extern "C" {
28433    #[doc = " High level token emitter"]
28434    pub fn BNNewHighLevelILTokenEmitterReference(
28435        emitter: *mut BNHighLevelILTokenEmitter,
28436    ) -> *mut BNHighLevelILTokenEmitter;
28437}
28438unsafe extern "C" {
28439    pub fn BNHighLevelILTokenPrependCollapseBlankIndicator(emitter: *mut BNHighLevelILTokenEmitter);
28440}
28441unsafe extern "C" {
28442    pub fn BNHighLevelILTokenPrependCollapseIndicator(
28443        emitter: *mut BNHighLevelILTokenEmitter,
28444        context: BNInstructionTextTokenContext,
28445        hash: u64,
28446    );
28447}
28448unsafe extern "C" {
28449    pub fn BNHighLevelILTokenEmitterHasCollapsableRegions(
28450        emitter: *mut BNHighLevelILTokenEmitter,
28451    ) -> bool;
28452}
28453unsafe extern "C" {
28454    pub fn BNHighLevelILTokenEmitterSetHasCollapsableRegions(
28455        emitter: *mut BNHighLevelILTokenEmitter,
28456        state: bool,
28457    );
28458}
28459unsafe extern "C" {
28460    pub fn BNFreeHighLevelILTokenEmitter(emitter: *mut BNHighLevelILTokenEmitter);
28461}
28462unsafe extern "C" {
28463    pub fn BNHighLevelILTokenEmitterAppend(
28464        emitter: *mut BNHighLevelILTokenEmitter,
28465        token: *mut BNInstructionTextToken,
28466    );
28467}
28468unsafe extern "C" {
28469    pub fn BNHighLevelILTokenEmitterInitLine(emitter: *mut BNHighLevelILTokenEmitter);
28470}
28471unsafe extern "C" {
28472    pub fn BNHighLevelILTokenEmitterNewLine(emitter: *mut BNHighLevelILTokenEmitter);
28473}
28474unsafe extern "C" {
28475    pub fn BNHighLevelILTokenEmitterIncreaseIndent(emitter: *mut BNHighLevelILTokenEmitter);
28476}
28477unsafe extern "C" {
28478    pub fn BNHighLevelILTokenEmitterDecreaseIndent(emitter: *mut BNHighLevelILTokenEmitter);
28479}
28480unsafe extern "C" {
28481    pub fn BNHighLevelILTokenEmitterScopeSeparator(emitter: *mut BNHighLevelILTokenEmitter);
28482}
28483unsafe extern "C" {
28484    pub fn BNHighLevelILTokenEmitterBeginScope(
28485        emitter: *mut BNHighLevelILTokenEmitter,
28486        type_: BNScopeType,
28487    );
28488}
28489unsafe extern "C" {
28490    pub fn BNHighLevelILTokenEmitterEndScope(
28491        emitter: *mut BNHighLevelILTokenEmitter,
28492        type_: BNScopeType,
28493    );
28494}
28495unsafe extern "C" {
28496    pub fn BNHighLevelILTokenEmitterScopeContinuation(
28497        emitter: *mut BNHighLevelILTokenEmitter,
28498        forceSameLine: bool,
28499    );
28500}
28501unsafe extern "C" {
28502    pub fn BNHighLevelILTokenEmitterFinalizeScope(emitter: *mut BNHighLevelILTokenEmitter);
28503}
28504unsafe extern "C" {
28505    pub fn BNHighLevelILTokenEmitterNoIndentForThisLine(emitter: *mut BNHighLevelILTokenEmitter);
28506}
28507unsafe extern "C" {
28508    pub fn BNHighLevelILTokenEmitterBeginForceZeroConfidence(
28509        emitter: *mut BNHighLevelILTokenEmitter,
28510    );
28511}
28512unsafe extern "C" {
28513    pub fn BNHighLevelILTokenEmitterEndForceZeroConfidence(emitter: *mut BNHighLevelILTokenEmitter);
28514}
28515unsafe extern "C" {
28516    pub fn BNHighLevelILTokenEmitterSetCurrentExpr(
28517        emitter: *mut BNHighLevelILTokenEmitter,
28518        expr: BNTokenEmitterExpr,
28519    ) -> BNTokenEmitterExpr;
28520}
28521unsafe extern "C" {
28522    pub fn BNHighLevelILTokenEmitterRestoreCurrentExpr(
28523        emitter: *mut BNHighLevelILTokenEmitter,
28524        expr: BNTokenEmitterExpr,
28525    );
28526}
28527unsafe extern "C" {
28528    pub fn BNHighLevelILTokenEmitterFinalize(emitter: *mut BNHighLevelILTokenEmitter);
28529}
28530unsafe extern "C" {
28531    pub fn BNHighLevelILTokenEmitterAppendOpenParen(emitter: *mut BNHighLevelILTokenEmitter);
28532}
28533unsafe extern "C" {
28534    pub fn BNHighLevelILTokenEmitterAppendCloseParen(emitter: *mut BNHighLevelILTokenEmitter);
28535}
28536unsafe extern "C" {
28537    pub fn BNHighLevelILTokenEmitterAppendOpenBracket(emitter: *mut BNHighLevelILTokenEmitter);
28538}
28539unsafe extern "C" {
28540    pub fn BNHighLevelILTokenEmitterAppendCloseBracket(emitter: *mut BNHighLevelILTokenEmitter);
28541}
28542unsafe extern "C" {
28543    pub fn BNHighLevelILTokenEmitterAppendOpenBrace(emitter: *mut BNHighLevelILTokenEmitter);
28544}
28545unsafe extern "C" {
28546    pub fn BNHighLevelILTokenEmitterAppendCloseBrace(emitter: *mut BNHighLevelILTokenEmitter);
28547}
28548unsafe extern "C" {
28549    pub fn BNHighLevelILTokenEmitterAppendSemicolon(emitter: *mut BNHighLevelILTokenEmitter);
28550}
28551unsafe extern "C" {
28552    pub fn BNHighLevelILTokenEmitterSetBraceRequirement(
28553        emitter: *mut BNHighLevelILTokenEmitter,
28554        required: BNBraceRequirement,
28555    );
28556}
28557unsafe extern "C" {
28558    pub fn BNHighLevelILTokenEmitterSetBracesAroundSwitchCases(
28559        emitter: *mut BNHighLevelILTokenEmitter,
28560        braces: bool,
28561    );
28562}
28563unsafe extern "C" {
28564    pub fn BNHighLevelILTokenEmitterSetDefaultBracesOnSameLine(
28565        emitter: *mut BNHighLevelILTokenEmitter,
28566        sameLine: bool,
28567    );
28568}
28569unsafe extern "C" {
28570    pub fn BNHighLevelILTokenEmitterSetSimpleScopeAllowed(
28571        emitter: *mut BNHighLevelILTokenEmitter,
28572        allowed: bool,
28573    );
28574}
28575unsafe extern "C" {
28576    pub fn BNHighLevelILTokenEmitterGetBraceRequirement(
28577        emitter: *mut BNHighLevelILTokenEmitter,
28578    ) -> BNBraceRequirement;
28579}
28580unsafe extern "C" {
28581    pub fn BNHighLevelILTokenEmitterHasBracesAroundSwitchCases(
28582        emitter: *mut BNHighLevelILTokenEmitter,
28583    ) -> bool;
28584}
28585unsafe extern "C" {
28586    pub fn BNHighLevelILTokenEmitterGetDefaultBracesOnSameLine(
28587        emitter: *mut BNHighLevelILTokenEmitter,
28588    ) -> bool;
28589}
28590unsafe extern "C" {
28591    pub fn BNHighLevelILTokenEmitterGetMaxTernarySimplficationTokens(
28592        emitter: *mut BNHighLevelILTokenEmitter,
28593    ) -> usize;
28594}
28595unsafe extern "C" {
28596    pub fn BNHighLevelILTokenEmitterIsSimpleScopeAllowed(
28597        emitter: *mut BNHighLevelILTokenEmitter,
28598    ) -> bool;
28599}
28600unsafe extern "C" {
28601    pub fn BNHighLevelILTokenEmitterGetCurrentTokens(
28602        emitter: *mut BNHighLevelILTokenEmitter,
28603        tokenCount: *mut usize,
28604    ) -> *mut BNInstructionTextToken;
28605}
28606unsafe extern "C" {
28607    pub fn BNHighLevelILTokenEmitterSetCurrentTokens(
28608        emitter: *mut BNHighLevelILTokenEmitter,
28609        tokens: *mut BNInstructionTextToken,
28610        tokenCount: usize,
28611    );
28612}
28613unsafe extern "C" {
28614    pub fn BNHighLevelILTokenEmitterGetLines(
28615        emitter: *mut BNHighLevelILTokenEmitter,
28616        count: *mut usize,
28617    ) -> *mut BNDisassemblyTextLine;
28618}
28619unsafe extern "C" {
28620    pub fn BNAddHighLevelILSizeToken(
28621        size: usize,
28622        type_: BNInstructionTextTokenType,
28623        tokens: *mut BNHighLevelILTokenEmitter,
28624    );
28625}
28626unsafe extern "C" {
28627    pub fn BNAddHighLevelILFloatSizeToken(
28628        size: usize,
28629        type_: BNInstructionTextTokenType,
28630        tokens: *mut BNHighLevelILTokenEmitter,
28631    );
28632}
28633unsafe extern "C" {
28634    pub fn BNAddHighLevelILVarTextToken(
28635        func: *mut BNHighLevelILFunction,
28636        var: *const BNVariable,
28637        tokens: *mut BNHighLevelILTokenEmitter,
28638        exprIndex: usize,
28639        size: usize,
28640    );
28641}
28642unsafe extern "C" {
28643    pub fn BNAddHighLevelILIntegerTextToken(
28644        func: *mut BNHighLevelILFunction,
28645        exprIndex: usize,
28646        val: i64,
28647        size: usize,
28648        tokens: *mut BNHighLevelILTokenEmitter,
28649    );
28650}
28651unsafe extern "C" {
28652    pub fn BNAddHighLevelILArrayIndexToken(
28653        func: *mut BNHighLevelILFunction,
28654        exprIndex: usize,
28655        val: i64,
28656        size: usize,
28657        tokens: *mut BNHighLevelILTokenEmitter,
28658        address: u64,
28659    );
28660}
28661unsafe extern "C" {
28662    pub fn BNAddHighLevelILPointerTextToken(
28663        func: *mut BNHighLevelILFunction,
28664        exprIndex: usize,
28665        val: i64,
28666        tokens: *mut BNHighLevelILTokenEmitter,
28667        settings: *mut BNDisassemblySettings,
28668        symbolDisplay: BNSymbolDisplayType,
28669        precedence: BNOperatorPrecedence,
28670        allowShortString: bool,
28671    ) -> BNSymbolDisplayResult;
28672}
28673unsafe extern "C" {
28674    pub fn BNAddHighLevelILConstantTextToken(
28675        func: *mut BNHighLevelILFunction,
28676        exprIndex: usize,
28677        val: i64,
28678        size: usize,
28679        tokens: *mut BNHighLevelILTokenEmitter,
28680        settings: *mut BNDisassemblySettings,
28681        precedence: BNOperatorPrecedence,
28682    );
28683}
28684unsafe extern "C" {
28685    pub fn BNAddNamesForOuterStructureMembers(
28686        data: *mut BNBinaryView,
28687        type_: *mut BNType,
28688        hlil: *mut BNHighLevelILFunction,
28689        varExpr: usize,
28690        nameCount: *mut usize,
28691    ) -> *mut *mut ::std::os::raw::c_char;
28692}
28693unsafe extern "C" {
28694    pub fn BNZeroExtend(value: i64, sourceSize: usize, destSize: usize) -> i64;
28695}
28696unsafe extern "C" {
28697    pub fn BNSignExtend(value: i64, sourceSize: usize, destSize: usize) -> i64;
28698}
28699unsafe extern "C" {
28700    pub fn BNMaskToSize(value: i64, size: usize) -> i64;
28701}
28702unsafe extern "C" {
28703    pub fn BNGetMaskForSize(size: usize) -> i64;
28704}
28705unsafe extern "C" {
28706    #[doc = " FirmwareNinja"]
28707    pub fn BNCreateFirmwareNinja(view: *mut BNBinaryView) -> *mut BNFirmwareNinja;
28708}
28709unsafe extern "C" {
28710    pub fn BNFreeFirmwareNinja(fn_: *mut BNFirmwareNinja);
28711}
28712unsafe extern "C" {
28713    pub fn BNFirmwareNinjaStoreCustomDevice(
28714        fn_: *mut BNFirmwareNinja,
28715        name: *const ::std::os::raw::c_char,
28716        start: u64,
28717        end: u64,
28718        info: *const ::std::os::raw::c_char,
28719    ) -> bool;
28720}
28721unsafe extern "C" {
28722    pub fn BNFirmwareNinjaRemoveCustomDevice(
28723        fn_: *mut BNFirmwareNinja,
28724        name: *const ::std::os::raw::c_char,
28725    ) -> bool;
28726}
28727unsafe extern "C" {
28728    pub fn BNFirmwareNinjaQueryCustomDevices(
28729        fn_: *mut BNFirmwareNinja,
28730        devices: *mut *mut BNFirmwareNinjaDevice,
28731    ) -> ::std::os::raw::c_int;
28732}
28733unsafe extern "C" {
28734    pub fn BNFirmwareNinjaFreeDevices(
28735        devices: *mut BNFirmwareNinjaDevice,
28736        size: ::std::os::raw::c_int,
28737    );
28738}
28739unsafe extern "C" {
28740    pub fn BNFirmwareNinjaQueryBoardNamesForArchitecture(
28741        fn_: *mut BNFirmwareNinja,
28742        arch: *mut BNArchitecture,
28743        boards: *mut *mut *mut ::std::os::raw::c_char,
28744    ) -> ::std::os::raw::c_int;
28745}
28746unsafe extern "C" {
28747    pub fn BNFirmwareNinjaFreeBoardNames(
28748        boards: *mut *mut ::std::os::raw::c_char,
28749        size: ::std::os::raw::c_int,
28750    );
28751}
28752unsafe extern "C" {
28753    pub fn BNFirmwareNinjaQueryBoardDevices(
28754        fn_: *mut BNFirmwareNinja,
28755        arch: *mut BNArchitecture,
28756        board: *const ::std::os::raw::c_char,
28757        devices: *mut *mut BNFirmwareNinjaDevice,
28758    ) -> ::std::os::raw::c_int;
28759}
28760unsafe extern "C" {
28761    pub fn BNFirmwareNinjaFindSectionsWithEntropy(
28762        fn_: *mut BNFirmwareNinja,
28763        sections: *mut *mut BNFirmwareNinjaSection,
28764        highCodeEntropyThreshold: f32,
28765        lowCodeEntropyThreshold: f32,
28766        blockSize: usize,
28767        mode: BNFirmwareNinjaSectionAnalysisMode,
28768    ) -> ::std::os::raw::c_int;
28769}
28770unsafe extern "C" {
28771    pub fn BNFirmwareNinjaFreeSections(
28772        sections: *mut BNFirmwareNinjaSection,
28773        size: ::std::os::raw::c_int,
28774    );
28775}
28776unsafe extern "C" {
28777    pub fn BNFirmwareNinjaGetFunctionMemoryAccesses(
28778        fn_: *mut BNFirmwareNinja,
28779        fma: *mut *mut *mut BNFirmwareNinjaFunctionMemoryAccesses,
28780        progress: BNProgressFunction,
28781        progressContext: *mut ::std::os::raw::c_void,
28782    ) -> ::std::os::raw::c_int;
28783}
28784unsafe extern "C" {
28785    pub fn BNFirmwareNinjaFreeFunctionMemoryAccesses(
28786        fma: *mut *mut BNFirmwareNinjaFunctionMemoryAccesses,
28787        size: ::std::os::raw::c_int,
28788    );
28789}
28790unsafe extern "C" {
28791    pub fn BNFirmwareNinjaStoreFunctionMemoryAccessesToMetadata(
28792        fn_: *mut BNFirmwareNinja,
28793        fma: *mut *mut BNFirmwareNinjaFunctionMemoryAccesses,
28794        size: ::std::os::raw::c_int,
28795    );
28796}
28797unsafe extern "C" {
28798    pub fn BNFirmwareNinjaQueryFunctionMemoryAccessesFromMetadata(
28799        fn_: *mut BNFirmwareNinja,
28800        fma: *mut *mut *mut BNFirmwareNinjaFunctionMemoryAccesses,
28801    ) -> ::std::os::raw::c_int;
28802}
28803unsafe extern "C" {
28804    pub fn BNFirmwareNinjaGetBoardDeviceAccesses(
28805        fn_: *mut BNFirmwareNinja,
28806        fma: *mut *mut BNFirmwareNinjaFunctionMemoryAccesses,
28807        size: ::std::os::raw::c_int,
28808        accesses: *mut *mut BNFirmwareNinjaDeviceAccesses,
28809        arch: *mut BNArchitecture,
28810    ) -> ::std::os::raw::c_int;
28811}
28812unsafe extern "C" {
28813    pub fn BNFirmwareNinjaFreeBoardDeviceAccesses(
28814        accesses: *mut BNFirmwareNinjaDeviceAccesses,
28815        size: ::std::os::raw::c_int,
28816    );
28817}
28818unsafe extern "C" {
28819    pub fn BNFirmwareNinjaGetMemoryRegionReferenceTree(
28820        fn_: *mut BNFirmwareNinja,
28821        start: u64,
28822        end: u64,
28823        fma: *mut *mut BNFirmwareNinjaFunctionMemoryAccesses,
28824        size: ::std::os::raw::c_int,
28825        value: *mut u64,
28826    ) -> *mut BNFirmwareNinjaReferenceNode;
28827}
28828unsafe extern "C" {
28829    pub fn BNFirmwareNinjaGetAddressReferenceTree(
28830        fn_: *mut BNFirmwareNinja,
28831        address: u64,
28832        fma: *mut *mut BNFirmwareNinjaFunctionMemoryAccesses,
28833        size: ::std::os::raw::c_int,
28834        value: *mut u64,
28835    ) -> *mut BNFirmwareNinjaReferenceNode;
28836}
28837unsafe extern "C" {
28838    pub fn BNFirmwareNinjaQueryRelationships(
28839        fn_: *mut BNFirmwareNinja,
28840        count: *mut usize,
28841    ) -> *mut *mut BNFirmwareNinjaRelationship;
28842}
28843unsafe extern "C" {
28844    pub fn BNFirmwareNinjaFreeRelationships(
28845        relationships: *mut *mut BNFirmwareNinjaRelationship,
28846        count: usize,
28847    );
28848}
28849unsafe extern "C" {
28850    pub fn BNFirmwareNinjaAddRelationship(
28851        fn_: *mut BNFirmwareNinja,
28852        rel: *mut BNFirmwareNinjaRelationship,
28853    );
28854}
28855unsafe extern "C" {
28856    pub fn BNFirmwareNinjaGetRelationshipByGuid(
28857        fn_: *mut BNFirmwareNinja,
28858        guid: *const ::std::os::raw::c_char,
28859    ) -> *mut BNFirmwareNinjaRelationship;
28860}
28861unsafe extern "C" {
28862    pub fn BNFirmwareNinjaRemoveRelationshipByGuid(
28863        fn_: *mut BNFirmwareNinja,
28864        guid: *const ::std::os::raw::c_char,
28865    );
28866}
28867unsafe extern "C" {
28868    pub fn BNFirmwareNinjaReferenceNodeIsFunction(node: *mut BNFirmwareNinjaReferenceNode) -> bool;
28869}
28870unsafe extern "C" {
28871    pub fn BNFirmwareNinjaReferenceNodeIsDataVariable(
28872        node: *mut BNFirmwareNinjaReferenceNode,
28873    ) -> bool;
28874}
28875unsafe extern "C" {
28876    pub fn BNFirmwareNinjaReferenceNodeHasChildren(node: *mut BNFirmwareNinjaReferenceNode)
28877    -> bool;
28878}
28879unsafe extern "C" {
28880    pub fn BNFirmwareNinjaReferenceNodeGetFunction(
28881        node: *mut BNFirmwareNinjaReferenceNode,
28882    ) -> *mut BNFunction;
28883}
28884unsafe extern "C" {
28885    pub fn BNFirmwareNinjaReferenceNodeGetDataVariable(
28886        node: *mut BNFirmwareNinjaReferenceNode,
28887        dataVariable: *mut BNDataVariable,
28888    ) -> bool;
28889}
28890unsafe extern "C" {
28891    pub fn BNFirmwareNinjaReferenceNodeGetChildren(
28892        parent: *mut BNFirmwareNinjaReferenceNode,
28893        count: *mut usize,
28894    ) -> *mut *mut BNFirmwareNinjaReferenceNode;
28895}
28896unsafe extern "C" {
28897    pub fn BNFreeFirmwareNinjaReferenceNode(node: *mut BNFirmwareNinjaReferenceNode);
28898}
28899unsafe extern "C" {
28900    pub fn BNNewFirmwareNinjaReferenceNodeReference(
28901        node: *mut BNFirmwareNinjaReferenceNode,
28902    ) -> *mut BNFirmwareNinjaReferenceNode;
28903}
28904unsafe extern "C" {
28905    pub fn BNFreeFirmwareNinjaReferenceNodes(
28906        nodes: *mut *mut BNFirmwareNinjaReferenceNode,
28907        count: usize,
28908    );
28909}
28910unsafe extern "C" {
28911    pub fn BNCreateFirmwareNinjaRelationship(
28912        view: *mut BNBinaryView,
28913    ) -> *mut BNFirmwareNinjaRelationship;
28914}
28915unsafe extern "C" {
28916    pub fn BNFreeFirmwareNinjaRelationship(rel: *mut BNFirmwareNinjaRelationship);
28917}
28918unsafe extern "C" {
28919    pub fn BNNewFirmwareNinjaRelationshipReference(
28920        rel: *mut BNFirmwareNinjaRelationship,
28921    ) -> *mut BNFirmwareNinjaRelationship;
28922}
28923unsafe extern "C" {
28924    pub fn BNFirmwareNinjaRelationshipSetPrimaryAddress(
28925        rel: *mut BNFirmwareNinjaRelationship,
28926        address: u64,
28927    );
28928}
28929unsafe extern "C" {
28930    pub fn BNFirmwareNinjaRelationshipSetPrimaryDataVariable(
28931        rel: *mut BNFirmwareNinjaRelationship,
28932        dataVariableAddress: u64,
28933    );
28934}
28935unsafe extern "C" {
28936    pub fn BNFirmwareNinjaRelationshipSetPrimaryFunction(
28937        rel: *mut BNFirmwareNinjaRelationship,
28938        function: *mut BNFunction,
28939    );
28940}
28941unsafe extern "C" {
28942    pub fn BNFirmwareNinjaRelationshipPrimaryIsDataVariable(
28943        rel: *mut BNFirmwareNinjaRelationship,
28944    ) -> bool;
28945}
28946unsafe extern "C" {
28947    pub fn BNFirmwareNinjaRelationshipPrimaryIsFunction(
28948        rel: *mut BNFirmwareNinjaRelationship,
28949    ) -> bool;
28950}
28951unsafe extern "C" {
28952    pub fn BNFirmwareNinjaRelationshipPrimaryIsAddress(
28953        rel: *mut BNFirmwareNinjaRelationship,
28954    ) -> bool;
28955}
28956unsafe extern "C" {
28957    pub fn BNFirmwareNinjaRelationshipGetPrimaryDataVariable(
28958        rel: *mut BNFirmwareNinjaRelationship,
28959        dataVariable: *mut BNDataVariable,
28960    ) -> bool;
28961}
28962unsafe extern "C" {
28963    pub fn BNFirmwareNinjaRelationshipGetPrimaryFunction(
28964        rel: *mut BNFirmwareNinjaRelationship,
28965    ) -> *mut BNFunction;
28966}
28967unsafe extern "C" {
28968    pub fn BNFirmwareNinjaRelationshipGetPrimaryAddress(
28969        rel: *mut BNFirmwareNinjaRelationship,
28970        result: *mut u64,
28971    ) -> bool;
28972}
28973unsafe extern "C" {
28974    pub fn BNFirmwareNinjaRelationshipSetSecondaryExternalAddress(
28975        rel: *mut BNFirmwareNinjaRelationship,
28976        projectFile: *mut BNProjectFile,
28977        address: u64,
28978    );
28979}
28980unsafe extern "C" {
28981    pub fn BNFirmwareNinjaRelationshipSetSecondaryExternalSymbol(
28982        rel: *mut BNFirmwareNinjaRelationship,
28983        projectFile: *mut BNProjectFile,
28984        symbol: *const ::std::os::raw::c_char,
28985    );
28986}
28987unsafe extern "C" {
28988    pub fn BNFirmwareNinjaRelationshipSetSecondaryAddress(
28989        rel: *mut BNFirmwareNinjaRelationship,
28990        address: u64,
28991    );
28992}
28993unsafe extern "C" {
28994    pub fn BNFirmwareNinjaRelationshipSetSecondaryDataVariable(
28995        rel: *mut BNFirmwareNinjaRelationship,
28996        dataVariableAddress: u64,
28997    );
28998}
28999unsafe extern "C" {
29000    pub fn BNFirmwareNinjaRelationshipSetSecondaryFunction(
29001        rel: *mut BNFirmwareNinjaRelationship,
29002        function: *mut BNFunction,
29003    );
29004}
29005unsafe extern "C" {
29006    pub fn BNFirmwareNinjaRelationshipSecondaryIsDataVariable(
29007        rel: *mut BNFirmwareNinjaRelationship,
29008    ) -> bool;
29009}
29010unsafe extern "C" {
29011    pub fn BNFirmwareNinjaRelationshipSecondaryIsFunction(
29012        rel: *mut BNFirmwareNinjaRelationship,
29013    ) -> bool;
29014}
29015unsafe extern "C" {
29016    pub fn BNFirmwareNinjaRelationshipSecondaryIsAddress(
29017        rel: *mut BNFirmwareNinjaRelationship,
29018    ) -> bool;
29019}
29020unsafe extern "C" {
29021    pub fn BNFirmwareNinjaRelationshipSecondaryIsExternalAddress(
29022        rel: *mut BNFirmwareNinjaRelationship,
29023    ) -> bool;
29024}
29025unsafe extern "C" {
29026    pub fn BNFirmwareNinjaRelationshipSecondaryIsExternalSymbol(
29027        rel: *mut BNFirmwareNinjaRelationship,
29028    ) -> bool;
29029}
29030unsafe extern "C" {
29031    pub fn BNFirmwareNinjaRelationshipGetSecondaryExternalProjectFile(
29032        rel: *mut BNFirmwareNinjaRelationship,
29033    ) -> *mut BNProjectFile;
29034}
29035unsafe extern "C" {
29036    pub fn BNFirmwareNinjaRelationshipGetSecondaryAddress(
29037        rel: *mut BNFirmwareNinjaRelationship,
29038        result: *mut u64,
29039    ) -> bool;
29040}
29041unsafe extern "C" {
29042    pub fn BNFirmwareNinjaRelationshipGetSecondaryDataVariable(
29043        rel: *mut BNFirmwareNinjaRelationship,
29044        dataVariable: *mut BNDataVariable,
29045    ) -> bool;
29046}
29047unsafe extern "C" {
29048    pub fn BNFirmwareNinjaRelationshipGetSecondaryFunction(
29049        rel: *mut BNFirmwareNinjaRelationship,
29050    ) -> *mut BNFunction;
29051}
29052unsafe extern "C" {
29053    pub fn BNFirmwareNinjaRelationshipGetSecondaryExternalSymbol(
29054        rel: *mut BNFirmwareNinjaRelationship,
29055    ) -> *mut ::std::os::raw::c_char;
29056}
29057unsafe extern "C" {
29058    pub fn BNFirmwareNinjaRelationshipSetDescription(
29059        rel: *mut BNFirmwareNinjaRelationship,
29060        description: *const ::std::os::raw::c_char,
29061    );
29062}
29063unsafe extern "C" {
29064    pub fn BNFirmwareNinjaRelationshipGetDescription(
29065        rel: *mut BNFirmwareNinjaRelationship,
29066    ) -> *mut ::std::os::raw::c_char;
29067}
29068unsafe extern "C" {
29069    pub fn BNFirmwareNinjaRelationshipSetProvenance(
29070        rel: *mut BNFirmwareNinjaRelationship,
29071        provenance: *const ::std::os::raw::c_char,
29072    );
29073}
29074unsafe extern "C" {
29075    pub fn BNFirmwareNinjaRelationshipGetProvenance(
29076        rel: *mut BNFirmwareNinjaRelationship,
29077    ) -> *mut ::std::os::raw::c_char;
29078}
29079unsafe extern "C" {
29080    pub fn BNFirmwareNinjaRelationshipGetGuid(
29081        rel: *mut BNFirmwareNinjaRelationship,
29082    ) -> *mut ::std::os::raw::c_char;
29083}
29084unsafe extern "C" {
29085    #[doc = " Line formatters"]
29086    pub fn BNRegisterLineFormatter(
29087        name: *const ::std::os::raw::c_char,
29088        callbacks: *mut BNCustomLineFormatter,
29089    ) -> *mut BNLineFormatter;
29090}
29091unsafe extern "C" {
29092    pub fn BNGetLineFormatterList(count: *mut usize) -> *mut *mut BNLineFormatter;
29093}
29094unsafe extern "C" {
29095    pub fn BNFreeLineFormatterList(formatters: *mut *mut BNLineFormatter);
29096}
29097unsafe extern "C" {
29098    pub fn BNGetLineFormatterByName(name: *const ::std::os::raw::c_char) -> *mut BNLineFormatter;
29099}
29100unsafe extern "C" {
29101    pub fn BNGetDefaultLineFormatter() -> *mut BNLineFormatter;
29102}
29103unsafe extern "C" {
29104    pub fn BNGetLineFormatterName(formatter: *mut BNLineFormatter) -> *mut ::std::os::raw::c_char;
29105}
29106unsafe extern "C" {
29107    pub fn BNFormatLines(
29108        formatter: *mut BNLineFormatter,
29109        inLines: *mut BNDisassemblyTextLine,
29110        inCount: usize,
29111        settings: *const BNLineFormatterSettings,
29112        outCount: *mut usize,
29113    ) -> *mut BNDisassemblyTextLine;
29114}
29115unsafe extern "C" {
29116    pub fn BNGetDefaultLineFormatterSettings(
29117        settings: *mut BNDisassemblySettings,
29118        func: *mut BNHighLevelILFunction,
29119    ) -> *mut BNLineFormatterSettings;
29120}
29121unsafe extern "C" {
29122    pub fn BNGetLanguageRepresentationLineFormatterSettings(
29123        settings: *mut BNDisassemblySettings,
29124        func: *mut BNLanguageRepresentationFunction,
29125    ) -> *mut BNLineFormatterSettings;
29126}
29127unsafe extern "C" {
29128    pub fn BNFreeLineFormatterSettings(settings: *mut BNLineFormatterSettings);
29129}
29130unsafe extern "C" {
29131    #[doc = " Render Layers"]
29132    pub fn BNRegisterRenderLayer(
29133        name: *const ::std::os::raw::c_char,
29134        callbacks: *mut BNRenderLayerCallbacks,
29135        enableState: BNRenderLayerDefaultEnableState,
29136    ) -> *mut BNRenderLayer;
29137}
29138unsafe extern "C" {
29139    pub fn BNGetRenderLayerList(count: *mut usize) -> *mut *mut BNRenderLayer;
29140}
29141unsafe extern "C" {
29142    pub fn BNFreeRenderLayerList(renderLayers: *mut *mut BNRenderLayer);
29143}
29144unsafe extern "C" {
29145    pub fn BNGetRenderLayerByName(name: *const ::std::os::raw::c_char) -> *mut BNRenderLayer;
29146}
29147unsafe extern "C" {
29148    pub fn BNGetRenderLayerName(renderLayer: *mut BNRenderLayer) -> *mut ::std::os::raw::c_char;
29149}
29150unsafe extern "C" {
29151    pub fn BNGetRenderLayerDefaultEnableState(
29152        renderLayer: *mut BNRenderLayer,
29153    ) -> BNRenderLayerDefaultEnableState;
29154}
29155unsafe extern "C" {
29156    pub fn BNApplyRenderLayerToFlowGraph(renderLayer: *mut BNRenderLayer, graph: *mut BNFlowGraph);
29157}
29158unsafe extern "C" {
29159    pub fn BNApplyRenderLayerToLinearViewObject(
29160        renderLayer: *mut BNRenderLayer,
29161        obj: *mut BNLinearViewObject,
29162        prev: *mut BNLinearViewObject,
29163        next: *mut BNLinearViewObject,
29164        inLines: *mut BNLinearDisassemblyLine,
29165        inLineCount: usize,
29166        outLines: *mut *mut BNLinearDisassemblyLine,
29167        outLineCount: *mut usize,
29168    );
29169}
29170unsafe extern "C" {
29171    pub fn BNFreeStringRef(ref_: *mut BNStringRef);
29172}
29173unsafe extern "C" {
29174    pub fn BNDuplicateStringRef(ref_: *mut BNStringRef) -> *mut BNStringRef;
29175}
29176unsafe extern "C" {
29177    pub fn BNGetStringRefContents(ref_: *mut BNStringRef) -> *const ::std::os::raw::c_char;
29178}
29179unsafe extern "C" {
29180    pub fn BNGetStringRefSize(ref_: *mut BNStringRef) -> usize;
29181}
29182unsafe extern "C" {
29183    pub fn BNCreateStringRef(str_: *const ::std::os::raw::c_char) -> *mut BNStringRef;
29184}
29185unsafe extern "C" {
29186    pub fn BNCreateStringRefOfLength(
29187        str_: *const ::std::os::raw::c_char,
29188        len: usize,
29189    ) -> *mut BNStringRef;
29190}
29191unsafe extern "C" {
29192    #[doc = " Constant Renderers"]
29193    pub fn BNRegisterConstantRenderer(
29194        name: *const ::std::os::raw::c_char,
29195        renderer: *mut BNCustomConstantRenderer,
29196    ) -> *mut BNConstantRenderer;
29197}
29198unsafe extern "C" {
29199    pub fn BNGetConstantRendererByName(
29200        name: *const ::std::os::raw::c_char,
29201    ) -> *mut BNConstantRenderer;
29202}
29203unsafe extern "C" {
29204    pub fn BNGetConstantRendererList(count: *mut usize) -> *mut *mut BNConstantRenderer;
29205}
29206unsafe extern "C" {
29207    pub fn BNFreeConstantRendererList(renderers: *mut *mut BNConstantRenderer);
29208}
29209unsafe extern "C" {
29210    pub fn BNGetConstantRendererName(
29211        renderer: *mut BNConstantRenderer,
29212    ) -> *mut ::std::os::raw::c_char;
29213}
29214unsafe extern "C" {
29215    pub fn BNIsConstantRendererValidForType(
29216        renderer: *mut BNConstantRenderer,
29217        il: *mut BNHighLevelILFunction,
29218        type_: *mut BNType,
29219    ) -> bool;
29220}
29221unsafe extern "C" {
29222    pub fn BNConstantRendererRenderConstant(
29223        renderer: *mut BNConstantRenderer,
29224        il: *mut BNHighLevelILFunction,
29225        exprIndex: usize,
29226        type_: *mut BNType,
29227        val: i64,
29228        tokens: *mut BNHighLevelILTokenEmitter,
29229        settings: *mut BNDisassemblySettings,
29230        precedence: BNOperatorPrecedence,
29231    ) -> bool;
29232}
29233unsafe extern "C" {
29234    pub fn BNConstantRendererRenderConstantPointer(
29235        renderer: *mut BNConstantRenderer,
29236        il: *mut BNHighLevelILFunction,
29237        exprIndex: usize,
29238        type_: *mut BNType,
29239        val: i64,
29240        tokens: *mut BNHighLevelILTokenEmitter,
29241        settings: *mut BNDisassemblySettings,
29242        symbolDisplay: BNSymbolDisplayType,
29243        precedence: BNOperatorPrecedence,
29244    ) -> bool;
29245}
29246unsafe extern "C" {
29247    #[doc = " String recognizers"]
29248    pub fn BNRegisterCustomStringType(info: *mut BNCustomStringTypeInfo)
29249    -> *mut BNCustomStringType;
29250}
29251unsafe extern "C" {
29252    pub fn BNGetCustomStringTypeByName(
29253        name: *const ::std::os::raw::c_char,
29254    ) -> *mut BNCustomStringType;
29255}
29256unsafe extern "C" {
29257    pub fn BNGetCustomStringTypeByID(id: u32) -> *mut BNCustomStringType;
29258}
29259unsafe extern "C" {
29260    pub fn BNGetCustomStringTypeList(count: *mut usize) -> *mut *mut BNCustomStringType;
29261}
29262unsafe extern "C" {
29263    pub fn BNFreeCustomStringTypeList(types: *mut *mut BNCustomStringType);
29264}
29265unsafe extern "C" {
29266    pub fn BNGetCustomStringTypeName(type_: *mut BNCustomStringType)
29267    -> *mut ::std::os::raw::c_char;
29268}
29269unsafe extern "C" {
29270    pub fn BNGetCustomStringTypePrefix(
29271        type_: *mut BNCustomStringType,
29272    ) -> *mut ::std::os::raw::c_char;
29273}
29274unsafe extern "C" {
29275    pub fn BNGetCustomStringTypePostfix(
29276        type_: *mut BNCustomStringType,
29277    ) -> *mut ::std::os::raw::c_char;
29278}
29279unsafe extern "C" {
29280    pub fn BNRegisterStringRecognizer(
29281        name: *const ::std::os::raw::c_char,
29282        recognizer: *mut BNCustomStringRecognizer,
29283    ) -> *mut BNStringRecognizer;
29284}
29285unsafe extern "C" {
29286    pub fn BNGetStringRecognizerByName(
29287        name: *const ::std::os::raw::c_char,
29288    ) -> *mut BNStringRecognizer;
29289}
29290unsafe extern "C" {
29291    pub fn BNGetStringRecognizerList(count: *mut usize) -> *mut *mut BNStringRecognizer;
29292}
29293unsafe extern "C" {
29294    pub fn BNFreeStringRecognizerList(recognizers: *mut *mut BNStringRecognizer);
29295}
29296unsafe extern "C" {
29297    pub fn BNGetStringRecognizerName(
29298        recognizer: *mut BNStringRecognizer,
29299    ) -> *mut ::std::os::raw::c_char;
29300}
29301unsafe extern "C" {
29302    pub fn BNIsStringRecognizerValidForType(
29303        recognizer: *mut BNStringRecognizer,
29304        il: *mut BNHighLevelILFunction,
29305        type_: *mut BNType,
29306    ) -> bool;
29307}
29308unsafe extern "C" {
29309    pub fn BNStringRecognizerRecognizeConstant(
29310        recognizer: *mut BNStringRecognizer,
29311        il: *mut BNHighLevelILFunction,
29312        exprIndex: usize,
29313        type_: *mut BNType,
29314        val: i64,
29315        out: *mut BNDerivedString,
29316    ) -> bool;
29317}
29318unsafe extern "C" {
29319    pub fn BNStringRecognizerRecognizeConstantPointer(
29320        recognizer: *mut BNStringRecognizer,
29321        il: *mut BNHighLevelILFunction,
29322        exprIndex: usize,
29323        type_: *mut BNType,
29324        val: i64,
29325        out: *mut BNDerivedString,
29326    ) -> bool;
29327}
29328unsafe extern "C" {
29329    pub fn BNStringRecognizerRecognizeExternPointer(
29330        recognizer: *mut BNStringRecognizer,
29331        il: *mut BNHighLevelILFunction,
29332        exprIndex: usize,
29333        type_: *mut BNType,
29334        val: i64,
29335        offset: u64,
29336        out: *mut BNDerivedString,
29337    ) -> bool;
29338}
29339unsafe extern "C" {
29340    pub fn BNStringRecognizerRecognizeImport(
29341        recognizer: *mut BNStringRecognizer,
29342        il: *mut BNHighLevelILFunction,
29343        exprIndex: usize,
29344        type_: *mut BNType,
29345        val: i64,
29346        out: *mut BNDerivedString,
29347    ) -> bool;
29348}
29349unsafe extern "C" {
29350    pub fn BNStringRecognizerRecognizeConstantData(
29351        recognizer: *mut BNStringRecognizer,
29352        il: *mut BNHighLevelILFunction,
29353        exprIndex: usize,
29354        out: *mut BNDerivedString,
29355    ) -> bool;
29356}
29357unsafe extern "C" {
29358    #[doc = " PossibleValueSet operations"]
29359    pub fn BNFreePossibleValueSet(object: *mut BNPossibleValueSet);
29360}
29361unsafe extern "C" {
29362    pub fn BNPossibleValueSetUnion(
29363        object: *const BNPossibleValueSet,
29364        other: *const BNPossibleValueSet,
29365        size: usize,
29366    ) -> BNPossibleValueSet;
29367}
29368unsafe extern "C" {
29369    pub fn BNPossibleValueSetIntersection(
29370        object: *const BNPossibleValueSet,
29371        other: *const BNPossibleValueSet,
29372        size: usize,
29373    ) -> BNPossibleValueSet;
29374}
29375unsafe extern "C" {
29376    pub fn BNPossibleValueSetAdd(
29377        object: *const BNPossibleValueSet,
29378        other: *const BNPossibleValueSet,
29379        size: usize,
29380    ) -> BNPossibleValueSet;
29381}
29382unsafe extern "C" {
29383    pub fn BNPossibleValueSetSubtract(
29384        object: *const BNPossibleValueSet,
29385        other: *const BNPossibleValueSet,
29386        size: usize,
29387    ) -> BNPossibleValueSet;
29388}
29389unsafe extern "C" {
29390    pub fn BNPossibleValueSetMultiply(
29391        object: *const BNPossibleValueSet,
29392        other: *const BNPossibleValueSet,
29393        size: usize,
29394    ) -> BNPossibleValueSet;
29395}
29396unsafe extern "C" {
29397    pub fn BNPossibleValueSetSignedDivide(
29398        object: *const BNPossibleValueSet,
29399        other: *const BNPossibleValueSet,
29400        size: usize,
29401    ) -> BNPossibleValueSet;
29402}
29403unsafe extern "C" {
29404    pub fn BNPossibleValueSetUnsignedDivide(
29405        object: *const BNPossibleValueSet,
29406        other: *const BNPossibleValueSet,
29407        size: usize,
29408    ) -> BNPossibleValueSet;
29409}
29410unsafe extern "C" {
29411    pub fn BNPossibleValueSetSignedMod(
29412        object: *const BNPossibleValueSet,
29413        other: *const BNPossibleValueSet,
29414        size: usize,
29415    ) -> BNPossibleValueSet;
29416}
29417unsafe extern "C" {
29418    pub fn BNPossibleValueSetUnsignedMod(
29419        object: *const BNPossibleValueSet,
29420        other: *const BNPossibleValueSet,
29421        size: usize,
29422    ) -> BNPossibleValueSet;
29423}
29424unsafe extern "C" {
29425    pub fn BNPossibleValueSetAnd(
29426        object: *const BNPossibleValueSet,
29427        other: *const BNPossibleValueSet,
29428        size: usize,
29429    ) -> BNPossibleValueSet;
29430}
29431unsafe extern "C" {
29432    pub fn BNPossibleValueSetOr(
29433        object: *const BNPossibleValueSet,
29434        other: *const BNPossibleValueSet,
29435        size: usize,
29436    ) -> BNPossibleValueSet;
29437}
29438unsafe extern "C" {
29439    pub fn BNPossibleValueSetXor(
29440        object: *const BNPossibleValueSet,
29441        other: *const BNPossibleValueSet,
29442        size: usize,
29443    ) -> BNPossibleValueSet;
29444}
29445unsafe extern "C" {
29446    pub fn BNPossibleValueSetShiftLeft(
29447        object: *const BNPossibleValueSet,
29448        other: *const BNPossibleValueSet,
29449        size: usize,
29450    ) -> BNPossibleValueSet;
29451}
29452unsafe extern "C" {
29453    pub fn BNPossibleValueSetLogicalShiftRight(
29454        object: *const BNPossibleValueSet,
29455        other: *const BNPossibleValueSet,
29456        size: usize,
29457    ) -> BNPossibleValueSet;
29458}
29459unsafe extern "C" {
29460    pub fn BNPossibleValueSetArithShiftRight(
29461        object: *const BNPossibleValueSet,
29462        other: *const BNPossibleValueSet,
29463        size: usize,
29464    ) -> BNPossibleValueSet;
29465}
29466unsafe extern "C" {
29467    pub fn BNPossibleValueSetRotateLeft(
29468        object: *const BNPossibleValueSet,
29469        other: *const BNPossibleValueSet,
29470        size: usize,
29471    ) -> BNPossibleValueSet;
29472}
29473unsafe extern "C" {
29474    pub fn BNPossibleValueSetRotateRight(
29475        object: *const BNPossibleValueSet,
29476        other: *const BNPossibleValueSet,
29477        size: usize,
29478    ) -> BNPossibleValueSet;
29479}
29480unsafe extern "C" {
29481    pub fn BNPossibleValueSetNegate(
29482        object: *const BNPossibleValueSet,
29483        size: usize,
29484    ) -> BNPossibleValueSet;
29485}
29486unsafe extern "C" {
29487    pub fn BNPossibleValueSetNot(
29488        object: *const BNPossibleValueSet,
29489        size: usize,
29490    ) -> BNPossibleValueSet;
29491}