binaryninjacore_sys/opt/jenkins/workspace/binaryninja-dev-pipeline/build/api/rust/target/release/build/binaryninjacore-sys-a787cd36e64c9425/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 = 174;
7pub const BN_MINIMUM_CORE_ABI_VERSION: u32 = 174;
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    ValueLocationToken = 40,
834    #[doc = " The following are output by the analysis system automatically, these should\n not be used directly by the architecture plugins"]
835    CodeSymbolToken = 64,
836    #[doc = " The following are output by the analysis system automatically, these should\n not be used directly by the architecture plugins"]
837    DataSymbolToken = 65,
838    #[doc = " The following are output by the analysis system automatically, these should\n not be used directly by the architecture plugins"]
839    LocalVariableToken = 66,
840    #[doc = " The following are output by the analysis system automatically, these should\n not be used directly by the architecture plugins"]
841    ImportToken = 67,
842    #[doc = " The following are output by the analysis system automatically, these should\n not be used directly by the architecture plugins"]
843    AddressDisplayToken = 68,
844    #[doc = " The following are output by the analysis system automatically, these should\n not be used directly by the architecture plugins"]
845    IndirectImportToken = 69,
846    #[doc = " The following are output by the analysis system automatically, these should\n not be used directly by the architecture plugins"]
847    ExternalSymbolToken = 70,
848    #[doc = " The following are output by the analysis system automatically, these should\n not be used directly by the architecture plugins"]
849    StackVariableToken = 71,
850    #[doc = " The following are output by the analysis system automatically, these should\n not be used directly by the architecture plugins"]
851    AddressSeparatorToken = 72,
852    #[doc = " The following are output by the analysis system automatically, these should\n not be used directly by the architecture plugins"]
853    CollapsedInformationToken = 73,
854    #[doc = " The following are output by the analysis system automatically, these should\n not be used directly by the architecture plugins"]
855    CollapseStateIndicatorToken = 74,
856    #[doc = " The following are output by the analysis system automatically, these should\n not be used directly by the architecture plugins"]
857    NewLineToken = 75,
858}
859#[repr(u8)]
860#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
861pub enum BNInstructionTextTokenContext {
862    NoTokenContext = 0,
863    LocalVariableTokenContext = 1,
864    DataVariableTokenContext = 2,
865    FunctionReturnTokenContext = 3,
866    InstructionAddressTokenContext = 4,
867    ILInstructionIndexTokenContext = 5,
868    #[doc = " For Const Data arrays"]
869    ConstDataTokenContext = 6,
870    #[doc = " For ConstData strings"]
871    ConstStringDataTokenContext = 7,
872    #[doc = " For References to strings"]
873    StringReferenceTokenContext = 8,
874    #[doc = " For String DataVariables"]
875    StringDataVariableTokenContext = 9,
876    #[doc = " For displaying strings which aren't associated with an address"]
877    StringDisplayTokenContext = 10,
878    ContentCollapsedContext = 11,
879    ContentExpandedContext = 12,
880    ContentCollapsiblePadding = 13,
881    DerivedStringReferenceTokenContext = 14,
882}
883#[repr(u8)]
884#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
885pub enum BNLinearDisassemblyLineType {
886    BlankLineType = 0,
887    BasicLineType = 1,
888    CodeDisassemblyLineType = 2,
889    DataVariableLineType = 3,
890    HexDumpLineType = 4,
891    FunctionHeaderLineType = 5,
892    FunctionHeaderStartLineType = 6,
893    FunctionHeaderEndLineType = 7,
894    FunctionContinuationLineType = 8,
895    LocalVariableLineType = 9,
896    LocalVariableListEndLineType = 10,
897    FunctionEndLineType = 11,
898    NoteStartLineType = 12,
899    NoteLineType = 13,
900    NoteEndLineType = 14,
901    SectionStartLineType = 15,
902    SectionEndLineType = 16,
903    SectionSeparatorLineType = 17,
904    NonContiguousSeparatorLineType = 18,
905    AnalysisWarningLineType = 19,
906    CollapsedFunctionEndLineType = 20,
907}
908#[repr(u8)]
909#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
910pub enum BNTokenEscapingType {
911    NoTokenEscapingType = 0,
912    BackticksTokenEscapingType = 1,
913    QuotedStringEscapingType = 2,
914    ReplaceInvalidCharsEscapingType = 3,
915}
916#[repr(u8)]
917#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
918pub enum BNSymbolType {
919    FunctionSymbol = 0,
920    ImportAddressSymbol = 1,
921    ImportedFunctionSymbol = 2,
922    DataSymbol = 3,
923    ImportedDataSymbol = 4,
924    ExternalSymbol = 5,
925    LibraryFunctionSymbol = 6,
926    SymbolicFunctionSymbol = 7,
927    LocalLabelSymbol = 8,
928}
929#[repr(u8)]
930#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
931pub enum BNSymbolBinding {
932    NoBinding = 0,
933    LocalBinding = 1,
934    GlobalBinding = 2,
935    WeakBinding = 3,
936}
937#[repr(u8)]
938#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
939pub enum BNLowLevelILOperation {
940    LLIL_NOP = 0,
941    #[doc = " Not valid in SSA form (see LLIL_SET_REG_SSA)"]
942    LLIL_SET_REG = 1,
943    #[doc = " Not valid in SSA form (see LLIL_SET_REG_SPLIT_SSA)"]
944    LLIL_SET_REG_SPLIT = 2,
945    #[doc = " Not valid in SSA form (see LLIL_SET_FLAG_SSA)"]
946    LLIL_SET_FLAG = 3,
947    #[doc = " Not valid in SSA form (see LLIL_SET_REG_STACK_REL_SSA)"]
948    LLIL_SET_REG_STACK_REL = 4,
949    #[doc = " Not valid in SSA form (expanded)"]
950    LLIL_REG_STACK_PUSH = 5,
951    LLIL_ASSERT = 6,
952    LLIL_FORCE_VER = 7,
953    #[doc = " Not valid in SSA form (see LLIL_LOAD_SSA)"]
954    LLIL_LOAD = 8,
955    #[doc = " Not valid in SSA form (see LLIL_STORE_SSA)"]
956    LLIL_STORE = 9,
957    #[doc = " Not valid in SSA form (expanded)"]
958    LLIL_PUSH = 10,
959    #[doc = " Not valid in SSA form (expanded)"]
960    LLIL_POP = 11,
961    #[doc = " Not valid in SSA form (see LLIL_REG_SSA)"]
962    LLIL_REG = 12,
963    #[doc = " Not valid in SSA form (see LLIL_REG_SPLIT_SSA)"]
964    LLIL_REG_SPLIT = 13,
965    #[doc = " Not valid in SSA form (see LLIL_REG_STACK_REL_SSA)"]
966    LLIL_REG_STACK_REL = 14,
967    #[doc = " Not valid in SSA form (expanded)"]
968    LLIL_REG_STACK_POP = 15,
969    #[doc = " Not valid in SSA form (see LLIL_REG_STACK_FREE_REL_SSA,\n LLIL_REG_STACK_FREE_ABS_SSA)"]
970    LLIL_REG_STACK_FREE_REG = 16,
971    #[doc = " Not valid in SSA from (see LLIL_REG_STACK_FREE_REL_SSA)"]
972    LLIL_REG_STACK_FREE_REL = 17,
973    LLIL_CONST = 18,
974    LLIL_CONST_PTR = 19,
975    LLIL_EXTERN_PTR = 20,
976    LLIL_FLOAT_CONST = 21,
977    #[doc = " Not valid in SSA form (see LLIL_FLAG_SSA)"]
978    LLIL_FLAG = 22,
979    #[doc = " Not valid in SSA form (see LLIL_FLAG_BIT_SSA)"]
980    LLIL_FLAG_BIT = 23,
981    LLIL_ADD = 24,
982    LLIL_ADC = 25,
983    LLIL_SUB = 26,
984    LLIL_SBB = 27,
985    LLIL_AND = 28,
986    LLIL_OR = 29,
987    LLIL_XOR = 30,
988    LLIL_LSL = 31,
989    LLIL_LSR = 32,
990    LLIL_ASR = 33,
991    LLIL_ROL = 34,
992    LLIL_RLC = 35,
993    LLIL_ROR = 36,
994    LLIL_RRC = 37,
995    LLIL_MUL = 38,
996    LLIL_MULU_DP = 39,
997    LLIL_MULS_DP = 40,
998    LLIL_DIVU = 41,
999    LLIL_DIVU_DP = 42,
1000    LLIL_DIVS = 43,
1001    LLIL_DIVS_DP = 44,
1002    LLIL_MODU = 45,
1003    LLIL_MODU_DP = 46,
1004    LLIL_MODS = 47,
1005    LLIL_MODS_DP = 48,
1006    LLIL_NEG = 49,
1007    LLIL_NOT = 50,
1008    LLIL_SX = 51,
1009    LLIL_ZX = 52,
1010    LLIL_LOW_PART = 53,
1011    LLIL_JUMP = 54,
1012    LLIL_JUMP_TO = 55,
1013    LLIL_CALL = 56,
1014    LLIL_CALL_STACK_ADJUST = 57,
1015    LLIL_TAILCALL = 58,
1016    LLIL_RET = 59,
1017    LLIL_NORET = 60,
1018    LLIL_IF = 61,
1019    LLIL_GOTO = 62,
1020    #[doc = " Valid only in Lifted IL"]
1021    LLIL_FLAG_COND = 63,
1022    #[doc = " Valid only in Lifted IL"]
1023    LLIL_FLAG_GROUP = 64,
1024    LLIL_CMP_E = 65,
1025    LLIL_CMP_NE = 66,
1026    LLIL_CMP_SLT = 67,
1027    LLIL_CMP_ULT = 68,
1028    LLIL_CMP_SLE = 69,
1029    LLIL_CMP_ULE = 70,
1030    LLIL_CMP_SGE = 71,
1031    LLIL_CMP_UGE = 72,
1032    LLIL_CMP_SGT = 73,
1033    LLIL_CMP_UGT = 74,
1034    LLIL_TEST_BIT = 75,
1035    LLIL_BOOL_TO_INT = 76,
1036    LLIL_ADD_OVERFLOW = 77,
1037    LLIL_SYSCALL = 78,
1038    LLIL_BP = 79,
1039    LLIL_TRAP = 80,
1040    LLIL_INTRINSIC = 81,
1041    LLIL_UNDEF = 82,
1042    LLIL_UNIMPL = 83,
1043    LLIL_UNIMPL_MEM = 84,
1044    #[doc = " Floating point"]
1045    LLIL_FADD = 85,
1046    #[doc = " Floating point"]
1047    LLIL_FSUB = 86,
1048    #[doc = " Floating point"]
1049    LLIL_FMUL = 87,
1050    #[doc = " Floating point"]
1051    LLIL_FDIV = 88,
1052    #[doc = " Floating point"]
1053    LLIL_FSQRT = 89,
1054    #[doc = " Floating point"]
1055    LLIL_FNEG = 90,
1056    #[doc = " Floating point"]
1057    LLIL_FABS = 91,
1058    #[doc = " Floating point"]
1059    LLIL_FLOAT_TO_INT = 92,
1060    #[doc = " Floating point"]
1061    LLIL_INT_TO_FLOAT = 93,
1062    #[doc = " Floating point"]
1063    LLIL_FLOAT_CONV = 94,
1064    #[doc = " Floating point"]
1065    LLIL_ROUND_TO_INT = 95,
1066    #[doc = " Floating point"]
1067    LLIL_FLOOR = 96,
1068    #[doc = " Floating point"]
1069    LLIL_CEIL = 97,
1070    #[doc = " Floating point"]
1071    LLIL_FTRUNC = 98,
1072    #[doc = " Floating point"]
1073    LLIL_FCMP_E = 99,
1074    #[doc = " Floating point"]
1075    LLIL_FCMP_NE = 100,
1076    #[doc = " Floating point"]
1077    LLIL_FCMP_LT = 101,
1078    #[doc = " Floating point"]
1079    LLIL_FCMP_LE = 102,
1080    #[doc = " Floating point"]
1081    LLIL_FCMP_GE = 103,
1082    #[doc = " Floating point"]
1083    LLIL_FCMP_GT = 104,
1084    #[doc = " Floating point"]
1085    LLIL_FCMP_O = 105,
1086    #[doc = " Floating point"]
1087    LLIL_FCMP_UO = 106,
1088    #[doc = " The following instructions are only used in SSA form"]
1089    LLIL_SET_REG_SSA = 107,
1090    #[doc = " The following instructions are only used in SSA form"]
1091    LLIL_SET_REG_SSA_PARTIAL = 108,
1092    #[doc = " The following instructions are only used in SSA form"]
1093    LLIL_SET_REG_SPLIT_SSA = 109,
1094    #[doc = " The following instructions are only used in SSA form"]
1095    LLIL_SET_REG_STACK_REL_SSA = 110,
1096    #[doc = " The following instructions are only used in SSA form"]
1097    LLIL_SET_REG_STACK_ABS_SSA = 111,
1098    #[doc = " Only valid within an LLIL_SET_REG_SPLIT_SSA instruction"]
1099    LLIL_REG_SPLIT_DEST_SSA = 112,
1100    #[doc = " Only valid within LLIL_SET_REG_STACK_REL_SSA or LLIL_SET_REG_STACK_ABS_SSA"]
1101    LLIL_REG_STACK_DEST_SSA = 113,
1102    LLIL_REG_SSA = 114,
1103    LLIL_REG_SSA_PARTIAL = 115,
1104    LLIL_REG_SPLIT_SSA = 116,
1105    LLIL_REG_STACK_REL_SSA = 117,
1106    LLIL_REG_STACK_ABS_SSA = 118,
1107    LLIL_REG_STACK_FREE_REL_SSA = 119,
1108    LLIL_REG_STACK_FREE_ABS_SSA = 120,
1109    LLIL_SET_FLAG_SSA = 121,
1110    LLIL_ASSERT_SSA = 122,
1111    LLIL_FORCE_VER_SSA = 123,
1112    LLIL_FLAG_SSA = 124,
1113    LLIL_FLAG_BIT_SSA = 125,
1114    LLIL_CALL_SSA = 126,
1115    LLIL_SYSCALL_SSA = 127,
1116    LLIL_TAILCALL_SSA = 128,
1117    #[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"]
1118    LLIL_CALL_PARAM = 129,
1119    #[doc = " Only valid within the LLIL_CALL_SSA or LLIL_SYSCALL_SSA instructions"]
1120    LLIL_CALL_STACK_SSA = 130,
1121    #[doc = " Only valid within the LLIL_CALL_SSA or LLIL_SYSCALL_SSA instructions"]
1122    LLIL_CALL_OUTPUT_SSA = 131,
1123    #[doc = " Only valid within the LLIL_CALL_PARAM instruction"]
1124    LLIL_SEPARATE_PARAM_LIST_SSA = 132,
1125    #[doc = " Only valid within the LLIL_CALL_PARAM or LLIL_SEPARATE_PARAM_LIST_SSA instructions"]
1126    LLIL_SHARED_PARAM_SLOT_SSA = 133,
1127    #[doc = " Only valid within the LLIL_MEMORY_INTRINSIC_SSA instruction"]
1128    LLIL_MEMORY_INTRINSIC_OUTPUT_SSA = 134,
1129    LLIL_LOAD_SSA = 135,
1130    LLIL_STORE_SSA = 136,
1131    LLIL_INTRINSIC_SSA = 137,
1132    LLIL_MEMORY_INTRINSIC_SSA = 138,
1133    LLIL_REG_PHI = 139,
1134    LLIL_REG_STACK_PHI = 140,
1135    LLIL_FLAG_PHI = 141,
1136    LLIL_MEM_PHI = 142,
1137    #[doc = " Reverse byte order of the whole value"]
1138    LLIL_BSWAP = 143,
1139    #[doc = " Population count (number of set bits)"]
1140    LLIL_POPCNT = 144,
1141    #[doc = " Count leading zero bits; clz(0) == 8 * size"]
1142    LLIL_CLZ = 145,
1143    #[doc = " Count trailing zero bits; ctz(0) == 8 * size"]
1144    LLIL_CTZ = 146,
1145    #[doc = " Reverse bit order of the whole value"]
1146    LLIL_RBIT = 147,
1147    #[doc = " Count leading sign bits; number of bits below the sign bit that match it"]
1148    LLIL_CLS = 148,
1149    #[doc = " Signed minimum of left and right"]
1150    LLIL_MINS = 149,
1151    #[doc = " Signed maximum of left and right"]
1152    LLIL_MAXS = 150,
1153    #[doc = " Unsigned minimum of left and right"]
1154    LLIL_MINU = 151,
1155    #[doc = " Unsigned maximum of left and right"]
1156    LLIL_MAXU = 152,
1157    #[doc = " Signed absolute value of src; abs(INT_MIN) == INT_MIN"]
1158    LLIL_ABS = 153,
1159}
1160#[repr(u8)]
1161#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1162pub enum BNLowLevelILFlagCondition {
1163    LLFC_E = 0,
1164    LLFC_NE = 1,
1165    LLFC_SLT = 2,
1166    LLFC_ULT = 3,
1167    LLFC_SLE = 4,
1168    LLFC_ULE = 5,
1169    LLFC_SGE = 6,
1170    LLFC_UGE = 7,
1171    LLFC_SGT = 8,
1172    LLFC_UGT = 9,
1173    LLFC_NEG = 10,
1174    LLFC_POS = 11,
1175    LLFC_O = 12,
1176    LLFC_NO = 13,
1177    LLFC_FE = 14,
1178    LLFC_FNE = 15,
1179    LLFC_FLT = 16,
1180    LLFC_FLE = 17,
1181    LLFC_FGE = 18,
1182    LLFC_FGT = 19,
1183    LLFC_FO = 20,
1184    LLFC_FUO = 21,
1185}
1186#[repr(u8)]
1187#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1188pub enum BNFlagRole {
1189    SpecialFlagRole = 0,
1190    ZeroFlagRole = 1,
1191    PositiveSignFlagRole = 2,
1192    NegativeSignFlagRole = 3,
1193    CarryFlagRole = 4,
1194    OverflowFlagRole = 5,
1195    HalfCarryFlagRole = 6,
1196    EvenParityFlagRole = 7,
1197    OddParityFlagRole = 8,
1198    OrderedFlagRole = 9,
1199    UnorderedFlagRole = 10,
1200    CarryFlagWithInvertedSubtractRole = 11,
1201}
1202#[repr(i8)]
1203#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1204pub enum BNFunctionGraphType {
1205    InvalidILViewType = -1,
1206    NormalFunctionGraph = 0,
1207    LowLevelILFunctionGraph = 1,
1208    LiftedILFunctionGraph = 2,
1209    LowLevelILSSAFormFunctionGraph = 3,
1210    MediumLevelILFunctionGraph = 4,
1211    MediumLevelILSSAFormFunctionGraph = 5,
1212    MappedMediumLevelILFunctionGraph = 6,
1213    MappedMediumLevelILSSAFormFunctionGraph = 7,
1214    HighLevelILFunctionGraph = 8,
1215    HighLevelILSSAFormFunctionGraph = 9,
1216    HighLevelLanguageRepresentationFunctionGraph = 10,
1217}
1218#[repr(C)]
1219#[derive(Debug, Copy, Clone)]
1220pub struct BNFunctionViewType {
1221    pub type_: BNFunctionGraphType,
1222    #[doc = " Only used for HighLevelLanguageRepresentationFunctionGraph"]
1223    pub name: *const ::std::os::raw::c_char,
1224}
1225#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1226const _: () = {
1227    ["Size of BNFunctionViewType"][::std::mem::size_of::<BNFunctionViewType>() - 16usize];
1228    ["Alignment of BNFunctionViewType"][::std::mem::align_of::<BNFunctionViewType>() - 8usize];
1229    ["Offset of field: BNFunctionViewType::type_"]
1230        [::std::mem::offset_of!(BNFunctionViewType, type_) - 0usize];
1231    ["Offset of field: BNFunctionViewType::name"]
1232        [::std::mem::offset_of!(BNFunctionViewType, name) - 8usize];
1233};
1234impl Default for BNFunctionViewType {
1235    fn default() -> Self {
1236        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1237        unsafe {
1238            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1239            s.assume_init()
1240        }
1241    }
1242}
1243#[repr(u8)]
1244#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1245pub enum BNDisassemblyOption {
1246    ShowAddress = 0,
1247    ShowOpcode = 1,
1248    ExpandLongOpcode = 2,
1249    ShowVariablesAtTopOfGraph = 3,
1250    ShowVariableTypesWhenAssigned = 4,
1251    ShowRegisterHighlight = 7,
1252    ShowFunctionAddress = 8,
1253    ShowFunctionHeader = 9,
1254    ShowTypeCasts = 10,
1255    #[doc = " Linear disassembly options"]
1256    GroupLinearDisassemblyFunctions = 64,
1257    #[doc = " Linear disassembly options"]
1258    HighLevelILLinearDisassembly = 65,
1259    #[doc = " Linear disassembly options"]
1260    WaitForIL = 66,
1261    #[doc = " Linear disassembly options"]
1262    IndentHLILBody = 67,
1263    #[doc = " Linear disassembly options"]
1264    DisableLineFormatting = 68,
1265    #[doc = " Debugging options"]
1266    ShowFlagUsage = 128,
1267    #[doc = " Debugging options"]
1268    ShowStackPointer = 129,
1269    #[doc = " Debugging options"]
1270    ShowILTypes = 130,
1271    #[doc = " Debugging options"]
1272    ShowILOpcodes = 131,
1273    #[doc = " Debugging options"]
1274    ShowCollapseIndicators = 132,
1275}
1276#[repr(u32)]
1277#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1278pub enum BNDisassemblyAddressMode {
1279    AbsoluteDisassemblyAddressMode = 0,
1280    RelativeToBinaryStartDisassemblyAddressMode = 1,
1281    RelativeToSegmentStartDisassemblyAddressMode = 2,
1282    RelativeToSectionStartDisassemblyAddressMode = 3,
1283    RelativeToFunctionStartDisassemblyAddressMode = 4,
1284    RelativeToAddressBaseOffsetDisassemblyAddressMode = 5,
1285    RelativeToDataStartDisassemblyAddressMode = 6,
1286    DisassemblyAddressModeMask = 65535,
1287    IncludeNameDisassemblyAddressModeFlag = 65536,
1288    DecimalDisassemblyAddressModeFlag = 131072,
1289    DisassemblyAddressModeFlagsMask = 4294901760,
1290}
1291#[repr(u8)]
1292#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1293pub enum BNDisassemblyCallParameterHints {
1294    NeverShowMatchingParameterHints = 0,
1295    AlwaysShowParameterHints = 1,
1296    NeverShowParameterHints = 2,
1297}
1298#[repr(u8)]
1299#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1300pub enum BNDisassemblyBlockLabels {
1301    NeverShowDefaultBlockLabels = 0,
1302    AlwaysShowBlockLabels = 1,
1303    NeverShowBlockLabels = 2,
1304}
1305#[repr(u8)]
1306#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1307pub enum BNTypeClass {
1308    VoidTypeClass = 0,
1309    BoolTypeClass = 1,
1310    IntegerTypeClass = 2,
1311    FloatTypeClass = 3,
1312    StructureTypeClass = 4,
1313    EnumerationTypeClass = 5,
1314    PointerTypeClass = 6,
1315    ArrayTypeClass = 7,
1316    FunctionTypeClass = 8,
1317    VarArgsTypeClass = 9,
1318    ValueTypeClass = 10,
1319    NamedTypeReferenceClass = 11,
1320    WideCharTypeClass = 12,
1321    FragmentTypeClass = 13,
1322}
1323#[repr(u8)]
1324#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1325pub enum BNNamedTypeReferenceClass {
1326    UnknownNamedTypeClass = 0,
1327    TypedefNamedTypeClass = 1,
1328    ClassNamedTypeClass = 2,
1329    StructNamedTypeClass = 3,
1330    UnionNamedTypeClass = 4,
1331    EnumNamedTypeClass = 5,
1332}
1333#[repr(u8)]
1334#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1335pub enum BNStructureVariant {
1336    ClassStructureType = 0,
1337    StructStructureType = 1,
1338    UnionStructureType = 2,
1339}
1340#[repr(u8)]
1341#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1342pub enum BNMemberScope {
1343    NoScope = 0,
1344    StaticScope = 1,
1345    VirtualScope = 2,
1346    ThunkScope = 3,
1347    FriendScope = 4,
1348}
1349#[repr(u8)]
1350#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1351pub enum BNMemberAccess {
1352    NoAccess = 0,
1353    PrivateAccess = 1,
1354    ProtectedAccess = 2,
1355    PublicAccess = 3,
1356}
1357#[repr(u8)]
1358#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1359pub enum BNReferenceType {
1360    PointerReferenceType = 0,
1361    ReferenceReferenceType = 1,
1362    RValueReferenceType = 2,
1363    NoReference = 3,
1364}
1365#[repr(u8)]
1366#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1367pub enum BNPointerSuffix {
1368    Ptr64Suffix = 0,
1369    UnalignedSuffix = 1,
1370    RestrictSuffix = 2,
1371    ReferenceSuffix = 3,
1372    LvalueSuffix = 4,
1373}
1374#[repr(u8)]
1375#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1376pub enum BNPointerBaseType {
1377    AbsolutePointerBaseType = 0,
1378    RelativeToConstantPointerBaseType = 1,
1379    RelativeToBinaryStartPointerBaseType = 2,
1380    RelativeToVariableAddressPointerBaseType = 3,
1381}
1382#[repr(u8)]
1383#[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"]
1384#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1385pub enum BNNameType {
1386    NoNameType = 0,
1387    ConstructorNameType = 1,
1388    DestructorNameType = 2,
1389    OperatorNewNameType = 3,
1390    OperatorDeleteNameType = 4,
1391    OperatorAssignNameType = 5,
1392    OperatorRightShiftNameType = 6,
1393    OperatorLeftShiftNameType = 7,
1394    OperatorNotNameType = 8,
1395    OperatorEqualNameType = 9,
1396    OperatorNotEqualNameType = 10,
1397    OperatorArrayNameType = 11,
1398    OperatorArrowNameType = 12,
1399    OperatorStarNameType = 13,
1400    OperatorIncrementNameType = 14,
1401    OperatorDecrementNameType = 15,
1402    OperatorMinusNameType = 16,
1403    OperatorPlusNameType = 17,
1404    OperatorBitAndNameType = 18,
1405    OperatorArrowStarNameType = 19,
1406    OperatorDivideNameType = 20,
1407    OperatorModulusNameType = 21,
1408    OperatorLessThanNameType = 22,
1409    OperatorLessThanEqualNameType = 23,
1410    OperatorGreaterThanNameType = 24,
1411    OperatorGreaterThanEqualNameType = 25,
1412    OperatorCommaNameType = 26,
1413    OperatorParenthesesNameType = 27,
1414    OperatorTildeNameType = 28,
1415    OperatorXorNameType = 29,
1416    OperatorBitOrNameType = 30,
1417    OperatorLogicalAndNameType = 31,
1418    OperatorLogicalOrNameType = 32,
1419    OperatorStarEqualNameType = 33,
1420    OperatorPlusEqualNameType = 34,
1421    OperatorMinusEqualNameType = 35,
1422    OperatorDivideEqualNameType = 36,
1423    OperatorModulusEqualNameType = 37,
1424    OperatorRightShiftEqualNameType = 38,
1425    OperatorLeftShiftEqualNameType = 39,
1426    OperatorAndEqualNameType = 40,
1427    OperatorOrEqualNameType = 41,
1428    OperatorXorEqualNameType = 42,
1429    VFTableNameType = 43,
1430    VBTableNameType = 44,
1431    VCallNameType = 45,
1432    TypeofNameType = 46,
1433    LocalStaticGuardNameType = 47,
1434    StringNameType = 48,
1435    VBaseDestructorNameType = 49,
1436    VectorDeletingDestructorNameType = 50,
1437    DefaultConstructorClosureNameType = 51,
1438    ScalarDeletingDestructorNameType = 52,
1439    VectorConstructorIteratorNameType = 53,
1440    VectorDestructorIteratorNameType = 54,
1441    VectorVBaseConstructorIteratorNameType = 55,
1442    VirtualDisplacementMapNameType = 56,
1443    EHVectorConstructorIteratorNameType = 57,
1444    EHVectorDestructorIteratorNameType = 58,
1445    EHVectorVBaseConstructorIteratorNameType = 59,
1446    CopyConstructorClosureNameType = 60,
1447    UDTReturningNameType = 61,
1448    LocalVFTableNameType = 62,
1449    LocalVFTableConstructorClosureNameType = 63,
1450    OperatorNewArrayNameType = 64,
1451    OperatorDeleteArrayNameType = 65,
1452    PlacementDeleteClosureNameType = 66,
1453    PlacementDeleteClosureArrayNameType = 67,
1454    OperatorReturnTypeNameType = 68,
1455    RttiTypeDescriptor = 69,
1456    RttiBaseClassDescriptor = 70,
1457    RttiBaseClassArray = 71,
1458    RttiClassHierarchyDescriptor = 72,
1459    RttiCompleteObjectLocator = 73,
1460    OperatorUnaryMinusNameType = 74,
1461    OperatorUnaryPlusNameType = 75,
1462    OperatorUnaryBitAndNameType = 76,
1463    OperatorUnaryStarNameType = 77,
1464    OmniCallSigNameType = 78,
1465    ManagedVectorConstructorIteratorNameType = 79,
1466    ManagedVectorDestructorIteratorNameType = 80,
1467    EHVectorCopyConstructorIteratorNameType = 81,
1468    EHVectorVBaseCopyConstructorIteratorNameType = 82,
1469    DynamicInitializerNameType = 83,
1470    DynamicAtExitDestructorNameType = 84,
1471    VectorCopyConstructorIteratorNameType = 85,
1472    VectorVBaseCopyConstructorIteratorNameType = 86,
1473    ManagedVectorCopyConstructorIteratorNameType = 87,
1474    LocalStaticThreadGuardNameType = 88,
1475    UserDefinedLiteralOperatorNameType = 89,
1476}
1477#[repr(u8)]
1478#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1479pub enum BNCallingConventionName {
1480    NoCallingConvention = 0,
1481    CdeclCallingConvention = 1,
1482    PascalCallingConvention = 2,
1483    ThisCallCallingConvention = 3,
1484    STDCallCallingConvention = 4,
1485    FastcallCallingConvention = 5,
1486    CLRCallCallingConvention = 6,
1487    EabiCallCallingConvention = 7,
1488    VectorCallCallingConvention = 8,
1489    SwiftCallingConvention = 9,
1490    SwiftAsyncCallingConvention = 10,
1491}
1492#[repr(u8)]
1493#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1494pub enum BNStringType {
1495    AsciiString = 0,
1496    Utf16String = 1,
1497    Utf32String = 2,
1498    Utf8String = 3,
1499}
1500#[repr(u8)]
1501#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1502pub enum BNIntegerDisplayType {
1503    DefaultIntegerDisplayType = 0,
1504    BinaryDisplayType = 1,
1505    SignedOctalDisplayType = 2,
1506    UnsignedOctalDisplayType = 3,
1507    SignedDecimalDisplayType = 4,
1508    UnsignedDecimalDisplayType = 5,
1509    SignedHexadecimalDisplayType = 6,
1510    UnsignedHexadecimalDisplayType = 7,
1511    CharacterConstantDisplayType = 8,
1512    PointerDisplayType = 9,
1513    FloatDisplayType = 10,
1514    DoubleDisplayType = 11,
1515    EnumerationDisplayType = 12,
1516    InvertedCharacterConstantDisplayType = 13,
1517    UnsignedComplementDecimalDisplayType = 14,
1518    UnsignedComplementHexadecimalDisplayType = 15,
1519}
1520#[repr(u8)]
1521#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1522pub enum BNFlowGraphOption {
1523    FlowGraphUsesBlockHighlights = 0,
1524    FlowGraphUsesInstructionHighlights = 1,
1525    FlowGraphIncludesUserComments = 2,
1526    FlowGraphAllowsPatching = 3,
1527    FlowGraphAllowsInlineInstructionEditing = 4,
1528    FlowGraphShowsSecondaryRegisterHighlighting = 5,
1529    FlowGraphIsAddressable = 6,
1530    FlowGraphIsWorkflowGraph = 7,
1531}
1532#[repr(u8)]
1533#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1534pub enum BNIntrinsicClass {
1535    GeneralIntrinsicClass = 0,
1536    MemoryIntrinsicClass = 1,
1537}
1538#[repr(u8)]
1539#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1540pub enum BNInlineDuringAnalysis {
1541    #[doc = " The called function should not be inlined."]
1542    DoNotInlineCall = 0,
1543    #[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."]
1544    InlinePreservingTargetInstructionAddresses = 1,
1545    #[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."]
1546    InlineUsingCallAddress = 2,
1547}
1548#[repr(C)]
1549#[derive(Debug, Copy, Clone)]
1550pub struct BNInlineDuringAnalysisWithConfidence {
1551    pub value: BNInlineDuringAnalysis,
1552    pub confidence: u8,
1553}
1554#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1555const _: () = {
1556    ["Size of BNInlineDuringAnalysisWithConfidence"]
1557        [::std::mem::size_of::<BNInlineDuringAnalysisWithConfidence>() - 2usize];
1558    ["Alignment of BNInlineDuringAnalysisWithConfidence"]
1559        [::std::mem::align_of::<BNInlineDuringAnalysisWithConfidence>() - 1usize];
1560    ["Offset of field: BNInlineDuringAnalysisWithConfidence::value"]
1561        [::std::mem::offset_of!(BNInlineDuringAnalysisWithConfidence, value) - 0usize];
1562    ["Offset of field: BNInlineDuringAnalysisWithConfidence::confidence"]
1563        [::std::mem::offset_of!(BNInlineDuringAnalysisWithConfidence, confidence) - 1usize];
1564};
1565impl Default for BNInlineDuringAnalysisWithConfidence {
1566    fn default() -> Self {
1567        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1568        unsafe {
1569            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1570            s.assume_init()
1571        }
1572    }
1573}
1574#[repr(C)]
1575#[derive(Debug, Copy, Clone)]
1576pub struct BNLowLevelILInstruction {
1577    pub operation: BNLowLevelILOperation,
1578    pub attributes: u32,
1579    pub size: usize,
1580    pub flags: u32,
1581    pub sourceOperand: u32,
1582    pub operands: [u64; 4usize],
1583    pub address: u64,
1584}
1585#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1586const _: () = {
1587    ["Size of BNLowLevelILInstruction"][::std::mem::size_of::<BNLowLevelILInstruction>() - 64usize];
1588    ["Alignment of BNLowLevelILInstruction"]
1589        [::std::mem::align_of::<BNLowLevelILInstruction>() - 8usize];
1590    ["Offset of field: BNLowLevelILInstruction::operation"]
1591        [::std::mem::offset_of!(BNLowLevelILInstruction, operation) - 0usize];
1592    ["Offset of field: BNLowLevelILInstruction::attributes"]
1593        [::std::mem::offset_of!(BNLowLevelILInstruction, attributes) - 4usize];
1594    ["Offset of field: BNLowLevelILInstruction::size"]
1595        [::std::mem::offset_of!(BNLowLevelILInstruction, size) - 8usize];
1596    ["Offset of field: BNLowLevelILInstruction::flags"]
1597        [::std::mem::offset_of!(BNLowLevelILInstruction, flags) - 16usize];
1598    ["Offset of field: BNLowLevelILInstruction::sourceOperand"]
1599        [::std::mem::offset_of!(BNLowLevelILInstruction, sourceOperand) - 20usize];
1600    ["Offset of field: BNLowLevelILInstruction::operands"]
1601        [::std::mem::offset_of!(BNLowLevelILInstruction, operands) - 24usize];
1602    ["Offset of field: BNLowLevelILInstruction::address"]
1603        [::std::mem::offset_of!(BNLowLevelILInstruction, address) - 56usize];
1604};
1605impl Default for BNLowLevelILInstruction {
1606    fn default() -> Self {
1607        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1608        unsafe {
1609            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1610            s.assume_init()
1611        }
1612    }
1613}
1614#[repr(C)]
1615#[derive(Debug, Default, Copy, Clone)]
1616pub struct BNLowLevelILLabel {
1617    pub resolved: bool,
1618    pub ref_: usize,
1619    pub operand: usize,
1620}
1621#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1622const _: () = {
1623    ["Size of BNLowLevelILLabel"][::std::mem::size_of::<BNLowLevelILLabel>() - 24usize];
1624    ["Alignment of BNLowLevelILLabel"][::std::mem::align_of::<BNLowLevelILLabel>() - 8usize];
1625    ["Offset of field: BNLowLevelILLabel::resolved"]
1626        [::std::mem::offset_of!(BNLowLevelILLabel, resolved) - 0usize];
1627    ["Offset of field: BNLowLevelILLabel::ref_"]
1628        [::std::mem::offset_of!(BNLowLevelILLabel, ref_) - 8usize];
1629    ["Offset of field: BNLowLevelILLabel::operand"]
1630        [::std::mem::offset_of!(BNLowLevelILLabel, operand) - 16usize];
1631};
1632#[repr(u8)]
1633#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1634pub enum BNImplicitRegisterExtend {
1635    NoExtend = 0,
1636    ZeroExtendToFullWidth = 1,
1637    SignExtendToFullWidth = 2,
1638}
1639#[repr(C)]
1640#[derive(Debug, Copy, Clone)]
1641pub struct BNRegisterInfo {
1642    pub fullWidthRegister: u32,
1643    pub offset: usize,
1644    pub size: usize,
1645    pub extend: BNImplicitRegisterExtend,
1646}
1647#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1648const _: () = {
1649    ["Size of BNRegisterInfo"][::std::mem::size_of::<BNRegisterInfo>() - 32usize];
1650    ["Alignment of BNRegisterInfo"][::std::mem::align_of::<BNRegisterInfo>() - 8usize];
1651    ["Offset of field: BNRegisterInfo::fullWidthRegister"]
1652        [::std::mem::offset_of!(BNRegisterInfo, fullWidthRegister) - 0usize];
1653    ["Offset of field: BNRegisterInfo::offset"]
1654        [::std::mem::offset_of!(BNRegisterInfo, offset) - 8usize];
1655    ["Offset of field: BNRegisterInfo::size"]
1656        [::std::mem::offset_of!(BNRegisterInfo, size) - 16usize];
1657    ["Offset of field: BNRegisterInfo::extend"]
1658        [::std::mem::offset_of!(BNRegisterInfo, extend) - 24usize];
1659};
1660impl Default for BNRegisterInfo {
1661    fn default() -> Self {
1662        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1663        unsafe {
1664            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1665            s.assume_init()
1666        }
1667    }
1668}
1669#[repr(C)]
1670#[derive(Debug, Default, Copy, Clone)]
1671pub struct BNRegisterStackInfo {
1672    pub firstStorageReg: u32,
1673    pub firstTopRelativeReg: u32,
1674    pub storageCount: u32,
1675    pub topRelativeCount: u32,
1676    pub stackTopReg: u32,
1677}
1678#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1679const _: () = {
1680    ["Size of BNRegisterStackInfo"][::std::mem::size_of::<BNRegisterStackInfo>() - 20usize];
1681    ["Alignment of BNRegisterStackInfo"][::std::mem::align_of::<BNRegisterStackInfo>() - 4usize];
1682    ["Offset of field: BNRegisterStackInfo::firstStorageReg"]
1683        [::std::mem::offset_of!(BNRegisterStackInfo, firstStorageReg) - 0usize];
1684    ["Offset of field: BNRegisterStackInfo::firstTopRelativeReg"]
1685        [::std::mem::offset_of!(BNRegisterStackInfo, firstTopRelativeReg) - 4usize];
1686    ["Offset of field: BNRegisterStackInfo::storageCount"]
1687        [::std::mem::offset_of!(BNRegisterStackInfo, storageCount) - 8usize];
1688    ["Offset of field: BNRegisterStackInfo::topRelativeCount"]
1689        [::std::mem::offset_of!(BNRegisterStackInfo, topRelativeCount) - 12usize];
1690    ["Offset of field: BNRegisterStackInfo::stackTopReg"]
1691        [::std::mem::offset_of!(BNRegisterStackInfo, stackTopReg) - 16usize];
1692};
1693#[repr(u32)]
1694#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1695pub enum BNRegisterValueType {
1696    UndeterminedValue = 0,
1697    EntryValue = 1,
1698    ConstantValue = 2,
1699    ConstantPointerValue = 3,
1700    ExternalPointerValue = 4,
1701    StackFrameOffset = 5,
1702    ReturnAddressValue = 6,
1703    ImportedAddressValue = 7,
1704    ResultPointerValue = 8,
1705    ParameterPointerValue = 9,
1706    #[doc = " The following are only valid in BNPossibleValueSet"]
1707    SignedRangeValue = 10,
1708    #[doc = " The following are only valid in BNPossibleValueSet"]
1709    UnsignedRangeValue = 11,
1710    #[doc = " The following are only valid in BNPossibleValueSet"]
1711    LookupTableValue = 12,
1712    #[doc = " The following are only valid in BNPossibleValueSet"]
1713    InSetOfValues = 13,
1714    #[doc = " The following are only valid in BNPossibleValueSet"]
1715    NotInSetOfValues = 14,
1716    #[doc = " The following support constant data and values larger than 8 bytes"]
1717    ConstantDataValue = 32768,
1718    #[doc = " The following support constant data and values larger than 8 bytes"]
1719    ConstantDataZeroExtendValue = 32769,
1720    #[doc = " The following support constant data and values larger than 8 bytes"]
1721    ConstantDataSignExtendValue = 32770,
1722    #[doc = " The following support constant data and values larger than 8 bytes"]
1723    ConstantDataAggregateValue = 32771,
1724}
1725#[repr(u8)]
1726#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1727pub enum BNDataFlowQueryOption {
1728    #[doc = " Use addresses instead of index in the from list within\n LookupTableValue results"]
1729    FromAddressesInLookupTableQueryOption = 0,
1730    AllowReadingWritableMemoryQueryOption = 1,
1731}
1732#[repr(u32)]
1733#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1734pub enum BNPluginStatus {
1735    NotInstalledPluginStatus = 0,
1736    InstalledPluginStatus = 1,
1737    EnabledPluginStatus = 2,
1738    UpdateAvailablePluginStatus = 16,
1739    DeletePendingPluginStatus = 32,
1740    UpdatePendingPluginStatus = 64,
1741    DisablePendingPluginStatus = 128,
1742    PendingRestartPluginStatus = 512,
1743    BeingUpdatedPluginStatus = 1024,
1744    BeingDeletedPluginStatus = 2048,
1745    DependenciesBeingInstalledStatus = 4096,
1746}
1747#[repr(u8)]
1748#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1749pub enum BNPluginType {
1750    CorePluginType = 0,
1751    UiPluginType = 1,
1752    ArchitecturePluginType = 2,
1753    BinaryViewPluginType = 3,
1754    HelperPluginType = 4,
1755    SyncPluginType = 5,
1756}
1757#[repr(C)]
1758#[derive(Debug, Copy, Clone)]
1759pub struct BNLookupTableEntry {
1760    pub fromValues: *mut i64,
1761    pub fromCount: usize,
1762    pub toValue: i64,
1763}
1764#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1765const _: () = {
1766    ["Size of BNLookupTableEntry"][::std::mem::size_of::<BNLookupTableEntry>() - 24usize];
1767    ["Alignment of BNLookupTableEntry"][::std::mem::align_of::<BNLookupTableEntry>() - 8usize];
1768    ["Offset of field: BNLookupTableEntry::fromValues"]
1769        [::std::mem::offset_of!(BNLookupTableEntry, fromValues) - 0usize];
1770    ["Offset of field: BNLookupTableEntry::fromCount"]
1771        [::std::mem::offset_of!(BNLookupTableEntry, fromCount) - 8usize];
1772    ["Offset of field: BNLookupTableEntry::toValue"]
1773        [::std::mem::offset_of!(BNLookupTableEntry, toValue) - 16usize];
1774};
1775impl Default for BNLookupTableEntry {
1776    fn default() -> Self {
1777        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1778        unsafe {
1779            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1780            s.assume_init()
1781        }
1782    }
1783}
1784#[repr(C)]
1785#[derive(Debug, Copy, Clone)]
1786pub struct BNRegisterValue {
1787    pub state: BNRegisterValueType,
1788    pub value: i64,
1789    pub offset: i64,
1790    pub size: usize,
1791}
1792#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1793const _: () = {
1794    ["Size of BNRegisterValue"][::std::mem::size_of::<BNRegisterValue>() - 32usize];
1795    ["Alignment of BNRegisterValue"][::std::mem::align_of::<BNRegisterValue>() - 8usize];
1796    ["Offset of field: BNRegisterValue::state"]
1797        [::std::mem::offset_of!(BNRegisterValue, state) - 0usize];
1798    ["Offset of field: BNRegisterValue::value"]
1799        [::std::mem::offset_of!(BNRegisterValue, value) - 8usize];
1800    ["Offset of field: BNRegisterValue::offset"]
1801        [::std::mem::offset_of!(BNRegisterValue, offset) - 16usize];
1802    ["Offset of field: BNRegisterValue::size"]
1803        [::std::mem::offset_of!(BNRegisterValue, size) - 24usize];
1804};
1805impl Default for BNRegisterValue {
1806    fn default() -> Self {
1807        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1808        unsafe {
1809            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1810            s.assume_init()
1811        }
1812    }
1813}
1814#[repr(C)]
1815#[derive(Debug, Copy, Clone)]
1816pub struct BNRegisterValueWithConfidence {
1817    pub value: BNRegisterValue,
1818    pub confidence: u8,
1819}
1820#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1821const _: () = {
1822    ["Size of BNRegisterValueWithConfidence"]
1823        [::std::mem::size_of::<BNRegisterValueWithConfidence>() - 40usize];
1824    ["Alignment of BNRegisterValueWithConfidence"]
1825        [::std::mem::align_of::<BNRegisterValueWithConfidence>() - 8usize];
1826    ["Offset of field: BNRegisterValueWithConfidence::value"]
1827        [::std::mem::offset_of!(BNRegisterValueWithConfidence, value) - 0usize];
1828    ["Offset of field: BNRegisterValueWithConfidence::confidence"]
1829        [::std::mem::offset_of!(BNRegisterValueWithConfidence, confidence) - 32usize];
1830};
1831impl Default for BNRegisterValueWithConfidence {
1832    fn default() -> Self {
1833        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1834        unsafe {
1835            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1836            s.assume_init()
1837        }
1838    }
1839}
1840#[repr(C)]
1841#[derive(Debug, Copy, Clone)]
1842pub struct BNRegisterValueWithConfidenceAndRegister {
1843    pub reg: u32,
1844    pub value: BNRegisterValueWithConfidence,
1845}
1846#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1847const _: () = {
1848    ["Size of BNRegisterValueWithConfidenceAndRegister"]
1849        [::std::mem::size_of::<BNRegisterValueWithConfidenceAndRegister>() - 48usize];
1850    ["Alignment of BNRegisterValueWithConfidenceAndRegister"]
1851        [::std::mem::align_of::<BNRegisterValueWithConfidenceAndRegister>() - 8usize];
1852    ["Offset of field: BNRegisterValueWithConfidenceAndRegister::reg"]
1853        [::std::mem::offset_of!(BNRegisterValueWithConfidenceAndRegister, reg) - 0usize];
1854    ["Offset of field: BNRegisterValueWithConfidenceAndRegister::value"]
1855        [::std::mem::offset_of!(BNRegisterValueWithConfidenceAndRegister, value) - 8usize];
1856};
1857impl Default for BNRegisterValueWithConfidenceAndRegister {
1858    fn default() -> Self {
1859        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1860        unsafe {
1861            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1862            s.assume_init()
1863        }
1864    }
1865}
1866#[repr(C)]
1867#[derive(Debug, Default, Copy, Clone)]
1868pub struct BNValueRange {
1869    pub start: u64,
1870    pub end: u64,
1871    pub step: u64,
1872}
1873#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1874const _: () = {
1875    ["Size of BNValueRange"][::std::mem::size_of::<BNValueRange>() - 24usize];
1876    ["Alignment of BNValueRange"][::std::mem::align_of::<BNValueRange>() - 8usize];
1877    ["Offset of field: BNValueRange::start"][::std::mem::offset_of!(BNValueRange, start) - 0usize];
1878    ["Offset of field: BNValueRange::end"][::std::mem::offset_of!(BNValueRange, end) - 8usize];
1879    ["Offset of field: BNValueRange::step"][::std::mem::offset_of!(BNValueRange, step) - 16usize];
1880};
1881#[repr(C)]
1882#[derive(Debug, Copy, Clone)]
1883pub struct BNPossibleValueSet {
1884    pub state: BNRegisterValueType,
1885    pub value: i64,
1886    pub offset: i64,
1887    pub size: usize,
1888    pub ranges: *mut BNValueRange,
1889    pub valueSet: *mut i64,
1890    pub table: *mut BNLookupTableEntry,
1891    pub count: usize,
1892}
1893#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1894const _: () = {
1895    ["Size of BNPossibleValueSet"][::std::mem::size_of::<BNPossibleValueSet>() - 64usize];
1896    ["Alignment of BNPossibleValueSet"][::std::mem::align_of::<BNPossibleValueSet>() - 8usize];
1897    ["Offset of field: BNPossibleValueSet::state"]
1898        [::std::mem::offset_of!(BNPossibleValueSet, state) - 0usize];
1899    ["Offset of field: BNPossibleValueSet::value"]
1900        [::std::mem::offset_of!(BNPossibleValueSet, value) - 8usize];
1901    ["Offset of field: BNPossibleValueSet::offset"]
1902        [::std::mem::offset_of!(BNPossibleValueSet, offset) - 16usize];
1903    ["Offset of field: BNPossibleValueSet::size"]
1904        [::std::mem::offset_of!(BNPossibleValueSet, size) - 24usize];
1905    ["Offset of field: BNPossibleValueSet::ranges"]
1906        [::std::mem::offset_of!(BNPossibleValueSet, ranges) - 32usize];
1907    ["Offset of field: BNPossibleValueSet::valueSet"]
1908        [::std::mem::offset_of!(BNPossibleValueSet, valueSet) - 40usize];
1909    ["Offset of field: BNPossibleValueSet::table"]
1910        [::std::mem::offset_of!(BNPossibleValueSet, table) - 48usize];
1911    ["Offset of field: BNPossibleValueSet::count"]
1912        [::std::mem::offset_of!(BNPossibleValueSet, count) - 56usize];
1913};
1914impl Default for BNPossibleValueSet {
1915    fn default() -> Self {
1916        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1917        unsafe {
1918            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1919            s.assume_init()
1920        }
1921    }
1922}
1923#[repr(C)]
1924#[derive(Debug, Default, Copy, Clone)]
1925pub struct BNRegisterOrConstant {
1926    pub constant: bool,
1927    pub reg: u32,
1928    pub value: u64,
1929}
1930#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1931const _: () = {
1932    ["Size of BNRegisterOrConstant"][::std::mem::size_of::<BNRegisterOrConstant>() - 16usize];
1933    ["Alignment of BNRegisterOrConstant"][::std::mem::align_of::<BNRegisterOrConstant>() - 8usize];
1934    ["Offset of field: BNRegisterOrConstant::constant"]
1935        [::std::mem::offset_of!(BNRegisterOrConstant, constant) - 0usize];
1936    ["Offset of field: BNRegisterOrConstant::reg"]
1937        [::std::mem::offset_of!(BNRegisterOrConstant, reg) - 4usize];
1938    ["Offset of field: BNRegisterOrConstant::value"]
1939        [::std::mem::offset_of!(BNRegisterOrConstant, value) - 8usize];
1940};
1941#[repr(C)]
1942#[derive(Debug, Copy, Clone)]
1943pub struct BNDataVariable {
1944    pub address: u64,
1945    pub type_: *mut BNType,
1946    pub autoDiscovered: bool,
1947    pub typeConfidence: u8,
1948}
1949#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1950const _: () = {
1951    ["Size of BNDataVariable"][::std::mem::size_of::<BNDataVariable>() - 24usize];
1952    ["Alignment of BNDataVariable"][::std::mem::align_of::<BNDataVariable>() - 8usize];
1953    ["Offset of field: BNDataVariable::address"]
1954        [::std::mem::offset_of!(BNDataVariable, address) - 0usize];
1955    ["Offset of field: BNDataVariable::type_"]
1956        [::std::mem::offset_of!(BNDataVariable, type_) - 8usize];
1957    ["Offset of field: BNDataVariable::autoDiscovered"]
1958        [::std::mem::offset_of!(BNDataVariable, autoDiscovered) - 16usize];
1959    ["Offset of field: BNDataVariable::typeConfidence"]
1960        [::std::mem::offset_of!(BNDataVariable, typeConfidence) - 17usize];
1961};
1962impl Default for BNDataVariable {
1963    fn default() -> Self {
1964        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1965        unsafe {
1966            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1967            s.assume_init()
1968        }
1969    }
1970}
1971#[repr(C)]
1972#[derive(Debug, Copy, Clone)]
1973pub struct BNDataVariableAndName {
1974    pub address: u64,
1975    pub type_: *mut BNType,
1976    pub name: *mut ::std::os::raw::c_char,
1977    pub autoDiscovered: bool,
1978    pub typeConfidence: u8,
1979}
1980#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1981const _: () = {
1982    ["Size of BNDataVariableAndName"][::std::mem::size_of::<BNDataVariableAndName>() - 32usize];
1983    ["Alignment of BNDataVariableAndName"]
1984        [::std::mem::align_of::<BNDataVariableAndName>() - 8usize];
1985    ["Offset of field: BNDataVariableAndName::address"]
1986        [::std::mem::offset_of!(BNDataVariableAndName, address) - 0usize];
1987    ["Offset of field: BNDataVariableAndName::type_"]
1988        [::std::mem::offset_of!(BNDataVariableAndName, type_) - 8usize];
1989    ["Offset of field: BNDataVariableAndName::name"]
1990        [::std::mem::offset_of!(BNDataVariableAndName, name) - 16usize];
1991    ["Offset of field: BNDataVariableAndName::autoDiscovered"]
1992        [::std::mem::offset_of!(BNDataVariableAndName, autoDiscovered) - 24usize];
1993    ["Offset of field: BNDataVariableAndName::typeConfidence"]
1994        [::std::mem::offset_of!(BNDataVariableAndName, typeConfidence) - 25usize];
1995};
1996impl Default for BNDataVariableAndName {
1997    fn default() -> Self {
1998        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1999        unsafe {
2000            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2001            s.assume_init()
2002        }
2003    }
2004}
2005#[repr(C)]
2006#[derive(Debug, Copy, Clone)]
2007pub struct BNDataVariableAndNameAndDebugParser {
2008    pub address: u64,
2009    pub type_: *mut BNType,
2010    pub name: *mut ::std::os::raw::c_char,
2011    pub parser: *mut ::std::os::raw::c_char,
2012    pub autoDiscovered: bool,
2013    pub typeConfidence: u8,
2014}
2015#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2016const _: () = {
2017    ["Size of BNDataVariableAndNameAndDebugParser"]
2018        [::std::mem::size_of::<BNDataVariableAndNameAndDebugParser>() - 40usize];
2019    ["Alignment of BNDataVariableAndNameAndDebugParser"]
2020        [::std::mem::align_of::<BNDataVariableAndNameAndDebugParser>() - 8usize];
2021    ["Offset of field: BNDataVariableAndNameAndDebugParser::address"]
2022        [::std::mem::offset_of!(BNDataVariableAndNameAndDebugParser, address) - 0usize];
2023    ["Offset of field: BNDataVariableAndNameAndDebugParser::type_"]
2024        [::std::mem::offset_of!(BNDataVariableAndNameAndDebugParser, type_) - 8usize];
2025    ["Offset of field: BNDataVariableAndNameAndDebugParser::name"]
2026        [::std::mem::offset_of!(BNDataVariableAndNameAndDebugParser, name) - 16usize];
2027    ["Offset of field: BNDataVariableAndNameAndDebugParser::parser"]
2028        [::std::mem::offset_of!(BNDataVariableAndNameAndDebugParser, parser) - 24usize];
2029    ["Offset of field: BNDataVariableAndNameAndDebugParser::autoDiscovered"]
2030        [::std::mem::offset_of!(BNDataVariableAndNameAndDebugParser, autoDiscovered) - 32usize];
2031    ["Offset of field: BNDataVariableAndNameAndDebugParser::typeConfidence"]
2032        [::std::mem::offset_of!(BNDataVariableAndNameAndDebugParser, typeConfidence) - 33usize];
2033};
2034impl Default for BNDataVariableAndNameAndDebugParser {
2035    fn default() -> Self {
2036        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2037        unsafe {
2038            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2039            s.assume_init()
2040        }
2041    }
2042}
2043#[repr(u8)]
2044#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2045pub enum BNMediumLevelILOperation {
2046    MLIL_NOP = 0,
2047    #[doc = " Not valid in SSA form (see MLIL_SET_VAR_SSA)"]
2048    MLIL_SET_VAR = 1,
2049    #[doc = " Not valid in SSA form (see MLIL_SET_VAR_FIELD)"]
2050    MLIL_SET_VAR_FIELD = 2,
2051    #[doc = " Not valid in SSA form (see MLIL_SET_VAR_SPLIT_SSA)"]
2052    MLIL_SET_VAR_SPLIT = 3,
2053    MLIL_ASSERT = 4,
2054    MLIL_FORCE_VER = 5,
2055    #[doc = " Not valid in SSA form (see MLIL_LOAD_SSA)"]
2056    MLIL_LOAD = 6,
2057    #[doc = " Not valid in SSA form (see MLIL_LOAD_STRUCT_SSA)"]
2058    MLIL_LOAD_STRUCT = 7,
2059    #[doc = " Not valid in SSA form (see MLIL_STORE_SSA)"]
2060    MLIL_STORE = 8,
2061    #[doc = " Not valid in SSA form (see MLIL_STORE_STRUCT_SSA)"]
2062    MLIL_STORE_STRUCT = 9,
2063    #[doc = " Not valid in SSA form (see MLIL_VAR_SSA)"]
2064    MLIL_VAR = 10,
2065    #[doc = " Not valid in SSA form (see MLIL_VAR_SSA_FIELD)"]
2066    MLIL_VAR_FIELD = 11,
2067    #[doc = " Not valid in SSA form (see MLIL_VAR_SPLIT_SSA)"]
2068    MLIL_VAR_SPLIT = 12,
2069    MLIL_ADDRESS_OF = 13,
2070    MLIL_ADDRESS_OF_FIELD = 14,
2071    MLIL_PASS_BY_REF = 15,
2072    MLIL_RETURN_BY_REF = 16,
2073    MLIL_CONST = 17,
2074    MLIL_CONST_DATA = 18,
2075    MLIL_CONST_PTR = 19,
2076    MLIL_EXTERN_PTR = 20,
2077    MLIL_FLOAT_CONST = 21,
2078    MLIL_IMPORT = 22,
2079    MLIL_ADD = 23,
2080    MLIL_ADC = 24,
2081    MLIL_SUB = 25,
2082    MLIL_SBB = 26,
2083    MLIL_AND = 27,
2084    MLIL_OR = 28,
2085    MLIL_XOR = 29,
2086    MLIL_LSL = 30,
2087    MLIL_LSR = 31,
2088    MLIL_ASR = 32,
2089    MLIL_ROL = 33,
2090    MLIL_RLC = 34,
2091    MLIL_ROR = 35,
2092    MLIL_RRC = 36,
2093    MLIL_MUL = 37,
2094    MLIL_MULU_DP = 38,
2095    MLIL_MULS_DP = 39,
2096    MLIL_DIVU = 40,
2097    MLIL_DIVU_DP = 41,
2098    MLIL_DIVS = 42,
2099    MLIL_DIVS_DP = 43,
2100    MLIL_MODU = 44,
2101    MLIL_MODU_DP = 45,
2102    MLIL_MODS = 46,
2103    MLIL_MODS_DP = 47,
2104    MLIL_NEG = 48,
2105    MLIL_NOT = 49,
2106    MLIL_SX = 50,
2107    MLIL_ZX = 51,
2108    MLIL_LOW_PART = 52,
2109    MLIL_JUMP = 53,
2110    MLIL_JUMP_TO = 54,
2111    #[doc = " Intermediate stages, does not appear in final forms"]
2112    MLIL_RET_HINT = 55,
2113    #[doc = " Not valid in SSA form (see MLIL_CALL_SSA)"]
2114    MLIL_CALL = 56,
2115    #[doc = " Not valid in SSA form (see MLIL_CALL_UNTYPED_SSA)"]
2116    MLIL_CALL_UNTYPED = 57,
2117    #[doc = " Only valid within MLIL_CALL, MLIL_SYSCALL, MLIL_TAILCALL family instructions"]
2118    MLIL_CALL_PARAM = 58,
2119    #[doc = " Only valid within the MLIL_CALL_PARAM or MLIL_CALL_PARAM_SSA instructions inside\n untyped call variants"]
2120    MLIL_SEPARATE_PARAM_LIST = 59,
2121    #[doc = " Only valid within the MLIL_CALL_PARAM, MLIL_CALL_PARAM_SSA, or\n MLIL_SEPARATE_PARAM_LIST instructions inside untyped call variants"]
2122    MLIL_SHARED_PARAM_SLOT = 60,
2123    #[doc = " Only valid within MLIL_CALL, MLIL_SYSCALL, MLIL_TAILCALL family instructions"]
2124    MLIL_VAR_OUTPUT = 61,
2125    #[doc = " Only valid within MLIL_CALL, MLIL_SYSCALL, MLIL_TAILCALL family instructions"]
2126    MLIL_VAR_OUTPUT_FIELD = 62,
2127    #[doc = " Only valid within MLIL_CALL, MLIL_SYSCALL, MLIL_TAILCALL family instructions"]
2128    MLIL_STORE_OUTPUT = 63,
2129    MLIL_RET = 64,
2130    MLIL_NORET = 65,
2131    MLIL_IF = 66,
2132    MLIL_GOTO = 67,
2133    MLIL_CMP_E = 68,
2134    MLIL_CMP_NE = 69,
2135    MLIL_CMP_SLT = 70,
2136    MLIL_CMP_ULT = 71,
2137    MLIL_CMP_SLE = 72,
2138    MLIL_CMP_ULE = 73,
2139    MLIL_CMP_SGE = 74,
2140    MLIL_CMP_UGE = 75,
2141    MLIL_CMP_SGT = 76,
2142    MLIL_CMP_UGT = 77,
2143    MLIL_TEST_BIT = 78,
2144    MLIL_BOOL_TO_INT = 79,
2145    MLIL_ADD_OVERFLOW = 80,
2146    #[doc = " Not valid in SSA form (see MLIL_SYSCALL_SSA)"]
2147    MLIL_SYSCALL = 81,
2148    #[doc = " Not valid in SSA form (see MLIL_SYSCALL_UNTYPED_SSA)"]
2149    MLIL_SYSCALL_UNTYPED = 82,
2150    #[doc = " Not valid in SSA form (see MLIL_TAILCALL_SSA)"]
2151    MLIL_TAILCALL = 83,
2152    #[doc = " Not valid in SSA form (see MLIL_TAILCALL_UNTYPED_SSA)"]
2153    MLIL_TAILCALL_UNTYPED = 84,
2154    #[doc = " Not valid in SSA form (see MLIL_INTRINSIC_SSA)"]
2155    MLIL_INTRINSIC = 85,
2156    #[doc = " Not valid in SSA from (see MLIL_FREE_VAR_SLOT_SSA)"]
2157    MLIL_FREE_VAR_SLOT = 86,
2158    MLIL_BP = 87,
2159    MLIL_TRAP = 88,
2160    MLIL_UNDEF = 89,
2161    MLIL_UNIMPL = 90,
2162    MLIL_UNIMPL_MEM = 91,
2163    #[doc = " Floating point"]
2164    MLIL_FADD = 92,
2165    #[doc = " Floating point"]
2166    MLIL_FSUB = 93,
2167    #[doc = " Floating point"]
2168    MLIL_FMUL = 94,
2169    #[doc = " Floating point"]
2170    MLIL_FDIV = 95,
2171    #[doc = " Floating point"]
2172    MLIL_FSQRT = 96,
2173    #[doc = " Floating point"]
2174    MLIL_FNEG = 97,
2175    #[doc = " Floating point"]
2176    MLIL_FABS = 98,
2177    #[doc = " Floating point"]
2178    MLIL_FLOAT_TO_INT = 99,
2179    #[doc = " Floating point"]
2180    MLIL_INT_TO_FLOAT = 100,
2181    #[doc = " Floating point"]
2182    MLIL_FLOAT_CONV = 101,
2183    #[doc = " Floating point"]
2184    MLIL_ROUND_TO_INT = 102,
2185    #[doc = " Floating point"]
2186    MLIL_FLOOR = 103,
2187    #[doc = " Floating point"]
2188    MLIL_CEIL = 104,
2189    #[doc = " Floating point"]
2190    MLIL_FTRUNC = 105,
2191    #[doc = " Floating point"]
2192    MLIL_FCMP_E = 106,
2193    #[doc = " Floating point"]
2194    MLIL_FCMP_NE = 107,
2195    #[doc = " Floating point"]
2196    MLIL_FCMP_LT = 108,
2197    #[doc = " Floating point"]
2198    MLIL_FCMP_LE = 109,
2199    #[doc = " Floating point"]
2200    MLIL_FCMP_GE = 110,
2201    #[doc = " Floating point"]
2202    MLIL_FCMP_GT = 111,
2203    #[doc = " Floating point"]
2204    MLIL_FCMP_O = 112,
2205    #[doc = " Floating point"]
2206    MLIL_FCMP_UO = 113,
2207    #[doc = " The following instructions are only used in SSA form"]
2208    MLIL_SET_VAR_SSA = 114,
2209    #[doc = " The following instructions are only used in SSA form"]
2210    MLIL_SET_VAR_SSA_FIELD = 115,
2211    #[doc = " The following instructions are only used in SSA form"]
2212    MLIL_SET_VAR_SPLIT_SSA = 116,
2213    #[doc = " The following instructions are only used in SSA form"]
2214    MLIL_SET_VAR_ALIASED = 117,
2215    #[doc = " The following instructions are only used in SSA form"]
2216    MLIL_SET_VAR_ALIASED_FIELD = 118,
2217    #[doc = " The following instructions are only used in SSA form"]
2218    MLIL_VAR_SSA = 119,
2219    #[doc = " The following instructions are only used in SSA form"]
2220    MLIL_VAR_SSA_FIELD = 120,
2221    #[doc = " The following instructions are only used in SSA form"]
2222    MLIL_VAR_ALIASED = 121,
2223    #[doc = " The following instructions are only used in SSA form"]
2224    MLIL_VAR_ALIASED_FIELD = 122,
2225    #[doc = " The following instructions are only used in SSA form"]
2226    MLIL_VAR_SPLIT_SSA = 123,
2227    #[doc = " The following instructions are only used in SSA form"]
2228    MLIL_ASSERT_SSA = 124,
2229    #[doc = " The following instructions are only used in SSA form"]
2230    MLIL_FORCE_VER_SSA = 125,
2231    #[doc = " The following instructions are only used in SSA form"]
2232    MLIL_CALL_SSA = 126,
2233    #[doc = " The following instructions are only used in SSA form"]
2234    MLIL_CALL_UNTYPED_SSA = 127,
2235    #[doc = " The following instructions are only used in SSA form"]
2236    MLIL_SYSCALL_SSA = 128,
2237    #[doc = " The following instructions are only used in SSA form"]
2238    MLIL_SYSCALL_UNTYPED_SSA = 129,
2239    #[doc = " The following instructions are only used in SSA form"]
2240    MLIL_TAILCALL_SSA = 130,
2241    #[doc = " The following instructions are only used in SSA form"]
2242    MLIL_TAILCALL_UNTYPED_SSA = 131,
2243    #[doc = " Only valid within the MLIL_CALL_SSA, MLIL_SYSCALL_SSA, MLIL_TAILCALL_SSA, MLIL_INTRINSIC_SSA family\n instructions"]
2244    MLIL_CALL_PARAM_SSA = 132,
2245    #[doc = " Only valid within the MLIL_CALL_SSA or MLIL_SYSCALL_SSA, MLIL_TAILCALL_SSA family\n instructions"]
2246    MLIL_CALL_OUTPUT_SSA = 133,
2247    #[doc = " Only valid within the MLIL_CALL_OUTPUT_SSA instruction"]
2248    MLIL_VAR_OUTPUT_SSA = 134,
2249    #[doc = " Only valid within the MLIL_CALL_OUTPUT_SSA instruction"]
2250    MLIL_VAR_OUTPUT_SSA_FIELD = 135,
2251    #[doc = " Only valid within the MLIL_CALL_OUTPUT_SSA instruction"]
2252    MLIL_VAR_OUTPUT_ALIASED = 136,
2253    #[doc = " Only valid within the MLIL_CALL_OUTPUT_SSA instruction"]
2254    MLIL_VAR_OUTPUT_ALIASED_FIELD = 137,
2255    #[doc = " Only valid within the MLIL_MEMORY_INTRINSIC_SSA instruction"]
2256    MLIL_MEMORY_INTRINSIC_OUTPUT_SSA = 138,
2257    MLIL_LOAD_SSA = 139,
2258    MLIL_LOAD_STRUCT_SSA = 140,
2259    MLIL_STORE_SSA = 141,
2260    MLIL_STORE_STRUCT_SSA = 142,
2261    MLIL_INTRINSIC_SSA = 143,
2262    MLIL_MEMORY_INTRINSIC_SSA = 144,
2263    MLIL_FREE_VAR_SLOT_SSA = 145,
2264    MLIL_VAR_PHI = 146,
2265    MLIL_MEM_PHI = 147,
2266    #[doc = " Must be expanded by a future workflow step, used temporarily to insert instructions"]
2267    MLIL_BLOCK_TO_EXPAND = 148,
2268    #[doc = " Reverse byte order of the whole value"]
2269    MLIL_BSWAP = 149,
2270    #[doc = " Population count (number of set bits)"]
2271    MLIL_POPCNT = 150,
2272    #[doc = " Count leading zero bits; clz(0) == 8 * size"]
2273    MLIL_CLZ = 151,
2274    #[doc = " Count trailing zero bits; ctz(0) == 8 * size"]
2275    MLIL_CTZ = 152,
2276    #[doc = " Reverse bit order of the whole value"]
2277    MLIL_RBIT = 153,
2278    #[doc = " Count leading sign bits; number of bits below the sign bit that match it"]
2279    MLIL_CLS = 154,
2280    #[doc = " Signed minimum of left and right"]
2281    MLIL_MINS = 155,
2282    #[doc = " Signed maximum of left and right"]
2283    MLIL_MAXS = 156,
2284    #[doc = " Unsigned minimum of left and right"]
2285    MLIL_MINU = 157,
2286    #[doc = " Unsigned maximum of left and right"]
2287    MLIL_MAXU = 158,
2288    #[doc = " Signed absolute value of src; abs(INT_MIN) == INT_MIN"]
2289    MLIL_ABS = 159,
2290}
2291#[repr(C)]
2292#[derive(Debug, Copy, Clone)]
2293pub struct BNMediumLevelILInstruction {
2294    pub operation: BNMediumLevelILOperation,
2295    pub attributes: u32,
2296    pub sourceOperand: u32,
2297    pub size: usize,
2298    pub operands: [u64; 5usize],
2299    pub address: u64,
2300}
2301#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2302const _: () = {
2303    ["Size of BNMediumLevelILInstruction"]
2304        [::std::mem::size_of::<BNMediumLevelILInstruction>() - 72usize];
2305    ["Alignment of BNMediumLevelILInstruction"]
2306        [::std::mem::align_of::<BNMediumLevelILInstruction>() - 8usize];
2307    ["Offset of field: BNMediumLevelILInstruction::operation"]
2308        [::std::mem::offset_of!(BNMediumLevelILInstruction, operation) - 0usize];
2309    ["Offset of field: BNMediumLevelILInstruction::attributes"]
2310        [::std::mem::offset_of!(BNMediumLevelILInstruction, attributes) - 4usize];
2311    ["Offset of field: BNMediumLevelILInstruction::sourceOperand"]
2312        [::std::mem::offset_of!(BNMediumLevelILInstruction, sourceOperand) - 8usize];
2313    ["Offset of field: BNMediumLevelILInstruction::size"]
2314        [::std::mem::offset_of!(BNMediumLevelILInstruction, size) - 16usize];
2315    ["Offset of field: BNMediumLevelILInstruction::operands"]
2316        [::std::mem::offset_of!(BNMediumLevelILInstruction, operands) - 24usize];
2317    ["Offset of field: BNMediumLevelILInstruction::address"]
2318        [::std::mem::offset_of!(BNMediumLevelILInstruction, address) - 64usize];
2319};
2320impl Default for BNMediumLevelILInstruction {
2321    fn default() -> Self {
2322        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2323        unsafe {
2324            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2325            s.assume_init()
2326        }
2327    }
2328}
2329#[repr(C)]
2330#[derive(Debug, Default, Copy, Clone)]
2331pub struct BNMediumLevelILLabel {
2332    pub resolved: bool,
2333    pub ref_: usize,
2334    pub operand: usize,
2335}
2336#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2337const _: () = {
2338    ["Size of BNMediumLevelILLabel"][::std::mem::size_of::<BNMediumLevelILLabel>() - 24usize];
2339    ["Alignment of BNMediumLevelILLabel"][::std::mem::align_of::<BNMediumLevelILLabel>() - 8usize];
2340    ["Offset of field: BNMediumLevelILLabel::resolved"]
2341        [::std::mem::offset_of!(BNMediumLevelILLabel, resolved) - 0usize];
2342    ["Offset of field: BNMediumLevelILLabel::ref_"]
2343        [::std::mem::offset_of!(BNMediumLevelILLabel, ref_) - 8usize];
2344    ["Offset of field: BNMediumLevelILLabel::operand"]
2345        [::std::mem::offset_of!(BNMediumLevelILLabel, operand) - 16usize];
2346};
2347#[repr(u8)]
2348#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2349pub enum BNVariableSourceType {
2350    StackVariableSourceType = 0,
2351    RegisterVariableSourceType = 1,
2352    FlagVariableSourceType = 2,
2353    CompositeReturnValueSourceType = 3,
2354    CompositeParameterSourceType = 4,
2355}
2356#[repr(C)]
2357#[derive(Debug, Copy, Clone)]
2358pub struct BNVariable {
2359    pub type_: BNVariableSourceType,
2360    pub index: u32,
2361    pub storage: i64,
2362}
2363#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2364const _: () = {
2365    ["Size of BNVariable"][::std::mem::size_of::<BNVariable>() - 16usize];
2366    ["Alignment of BNVariable"][::std::mem::align_of::<BNVariable>() - 8usize];
2367    ["Offset of field: BNVariable::type_"][::std::mem::offset_of!(BNVariable, type_) - 0usize];
2368    ["Offset of field: BNVariable::index"][::std::mem::offset_of!(BNVariable, index) - 4usize];
2369    ["Offset of field: BNVariable::storage"][::std::mem::offset_of!(BNVariable, storage) - 8usize];
2370};
2371impl Default for BNVariable {
2372    fn default() -> Self {
2373        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2374        unsafe {
2375            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2376            s.assume_init()
2377        }
2378    }
2379}
2380#[repr(u8)]
2381#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2382pub enum BNHighLevelILOperation {
2383    HLIL_NOP = 0,
2384    HLIL_BLOCK = 1,
2385    HLIL_IF = 2,
2386    HLIL_WHILE = 3,
2387    HLIL_DO_WHILE = 4,
2388    HLIL_FOR = 5,
2389    HLIL_SWITCH = 6,
2390    HLIL_CASE = 7,
2391    HLIL_BREAK = 8,
2392    HLIL_CONTINUE = 9,
2393    HLIL_JUMP = 10,
2394    HLIL_RET = 11,
2395    HLIL_NORET = 12,
2396    HLIL_GOTO = 13,
2397    HLIL_LABEL = 14,
2398    HLIL_VAR_DECLARE = 15,
2399    HLIL_VAR_INIT = 16,
2400    HLIL_ASSIGN = 17,
2401    HLIL_ASSIGN_UNPACK = 18,
2402    HLIL_FORCE_VER = 19,
2403    HLIL_ASSERT = 20,
2404    HLIL_VAR = 21,
2405    HLIL_STRUCT_FIELD = 22,
2406    HLIL_ARRAY_INDEX = 23,
2407    HLIL_SPLIT = 24,
2408    HLIL_DEREF = 25,
2409    HLIL_DEREF_FIELD = 26,
2410    HLIL_ADDRESS_OF = 27,
2411    HLIL_PASS_BY_REF = 28,
2412    HLIL_RETURN_BY_REF = 29,
2413    HLIL_CONST = 30,
2414    HLIL_CONST_DATA = 31,
2415    HLIL_CONST_PTR = 32,
2416    HLIL_EXTERN_PTR = 33,
2417    HLIL_FLOAT_CONST = 34,
2418    HLIL_IMPORT = 35,
2419    HLIL_ADD = 36,
2420    HLIL_ADC = 37,
2421    HLIL_SUB = 38,
2422    HLIL_SBB = 39,
2423    HLIL_AND = 40,
2424    HLIL_OR = 41,
2425    HLIL_XOR = 42,
2426    HLIL_LSL = 43,
2427    HLIL_LSR = 44,
2428    HLIL_ASR = 45,
2429    HLIL_ROL = 46,
2430    HLIL_RLC = 47,
2431    HLIL_ROR = 48,
2432    HLIL_RRC = 49,
2433    HLIL_MUL = 50,
2434    HLIL_MULU_DP = 51,
2435    HLIL_MULS_DP = 52,
2436    HLIL_DIVU = 53,
2437    HLIL_DIVU_DP = 54,
2438    HLIL_DIVS = 55,
2439    HLIL_DIVS_DP = 56,
2440    HLIL_MODU = 57,
2441    HLIL_MODU_DP = 58,
2442    HLIL_MODS = 59,
2443    HLIL_MODS_DP = 60,
2444    HLIL_NEG = 61,
2445    HLIL_NOT = 62,
2446    HLIL_SX = 63,
2447    HLIL_ZX = 64,
2448    HLIL_LOW_PART = 65,
2449    HLIL_CALL = 66,
2450    HLIL_CMP_E = 67,
2451    HLIL_CMP_NE = 68,
2452    HLIL_CMP_SLT = 69,
2453    HLIL_CMP_ULT = 70,
2454    HLIL_CMP_SLE = 71,
2455    HLIL_CMP_ULE = 72,
2456    HLIL_CMP_SGE = 73,
2457    HLIL_CMP_UGE = 74,
2458    HLIL_CMP_SGT = 75,
2459    HLIL_CMP_UGT = 76,
2460    HLIL_TEST_BIT = 77,
2461    HLIL_BOOL_TO_INT = 78,
2462    HLIL_ADD_OVERFLOW = 79,
2463    HLIL_SYSCALL = 80,
2464    HLIL_TAILCALL = 81,
2465    HLIL_INTRINSIC = 82,
2466    HLIL_BP = 83,
2467    HLIL_TRAP = 84,
2468    HLIL_UNDEF = 85,
2469    HLIL_UNIMPL = 86,
2470    HLIL_UNIMPL_MEM = 87,
2471    #[doc = " Floating point"]
2472    HLIL_FADD = 88,
2473    #[doc = " Floating point"]
2474    HLIL_FSUB = 89,
2475    #[doc = " Floating point"]
2476    HLIL_FMUL = 90,
2477    #[doc = " Floating point"]
2478    HLIL_FDIV = 91,
2479    #[doc = " Floating point"]
2480    HLIL_FSQRT = 92,
2481    #[doc = " Floating point"]
2482    HLIL_FNEG = 93,
2483    #[doc = " Floating point"]
2484    HLIL_FABS = 94,
2485    #[doc = " Floating point"]
2486    HLIL_FLOAT_TO_INT = 95,
2487    #[doc = " Floating point"]
2488    HLIL_INT_TO_FLOAT = 96,
2489    #[doc = " Floating point"]
2490    HLIL_FLOAT_CONV = 97,
2491    #[doc = " Floating point"]
2492    HLIL_ROUND_TO_INT = 98,
2493    #[doc = " Floating point"]
2494    HLIL_FLOOR = 99,
2495    #[doc = " Floating point"]
2496    HLIL_CEIL = 100,
2497    #[doc = " Floating point"]
2498    HLIL_FTRUNC = 101,
2499    #[doc = " Floating point"]
2500    HLIL_FCMP_E = 102,
2501    #[doc = " Floating point"]
2502    HLIL_FCMP_NE = 103,
2503    #[doc = " Floating point"]
2504    HLIL_FCMP_LT = 104,
2505    #[doc = " Floating point"]
2506    HLIL_FCMP_LE = 105,
2507    #[doc = " Floating point"]
2508    HLIL_FCMP_GE = 106,
2509    #[doc = " Floating point"]
2510    HLIL_FCMP_GT = 107,
2511    #[doc = " Floating point"]
2512    HLIL_FCMP_O = 108,
2513    #[doc = " Floating point"]
2514    HLIL_FCMP_UO = 109,
2515    #[doc = " Unreachable hint, typically used in switch statements that analysis knows\n has an unreachable default."]
2516    HLIL_UNREACHABLE = 110,
2517    #[doc = " The following instructions are only used in SSA form"]
2518    HLIL_WHILE_SSA = 111,
2519    #[doc = " The following instructions are only used in SSA form"]
2520    HLIL_DO_WHILE_SSA = 112,
2521    #[doc = " The following instructions are only used in SSA form"]
2522    HLIL_FOR_SSA = 113,
2523    #[doc = " The following instructions are only used in SSA form"]
2524    HLIL_VAR_INIT_SSA = 114,
2525    #[doc = " The following instructions are only used in SSA form"]
2526    HLIL_ASSIGN_MEM_SSA = 115,
2527    #[doc = " The following instructions are only used in SSA form"]
2528    HLIL_ASSIGN_UNPACK_MEM_SSA = 116,
2529    #[doc = " The following instructions are only used in SSA form"]
2530    HLIL_FORCE_VER_SSA = 117,
2531    #[doc = " The following instructions are only used in SSA form"]
2532    HLIL_ASSERT_SSA = 118,
2533    #[doc = " The following instructions are only used in SSA form"]
2534    HLIL_VAR_SSA = 119,
2535    #[doc = " The following instructions are only used in SSA form"]
2536    HLIL_ARRAY_INDEX_SSA = 120,
2537    #[doc = " The following instructions are only used in SSA form"]
2538    HLIL_DEREF_SSA = 121,
2539    #[doc = " The following instructions are only used in SSA form"]
2540    HLIL_DEREF_FIELD_SSA = 122,
2541    #[doc = " The following instructions are only used in SSA form"]
2542    HLIL_CALL_SSA = 123,
2543    #[doc = " The following instructions are only used in SSA form"]
2544    HLIL_SYSCALL_SSA = 124,
2545    #[doc = " The following instructions are only used in SSA form"]
2546    HLIL_INTRINSIC_SSA = 125,
2547    #[doc = " The following instructions are only used in SSA form"]
2548    HLIL_VAR_PHI = 126,
2549    #[doc = " The following instructions are only used in SSA form"]
2550    HLIL_MEM_PHI = 127,
2551    #[doc = " Reverse byte order of the whole value"]
2552    HLIL_BSWAP = 128,
2553    #[doc = " Population count (number of set bits)"]
2554    HLIL_POPCNT = 129,
2555    #[doc = " Count leading zero bits; clz(0) == 8 * size"]
2556    HLIL_CLZ = 130,
2557    #[doc = " Count trailing zero bits; ctz(0) == 8 * size"]
2558    HLIL_CTZ = 131,
2559    #[doc = " Reverse bit order of the whole value"]
2560    HLIL_RBIT = 132,
2561    #[doc = " Count leading sign bits; number of bits below the sign bit that match it"]
2562    HLIL_CLS = 133,
2563    #[doc = " Signed minimum of left and right"]
2564    HLIL_MINS = 134,
2565    #[doc = " Signed maximum of left and right"]
2566    HLIL_MAXS = 135,
2567    #[doc = " Unsigned minimum of left and right"]
2568    HLIL_MINU = 136,
2569    #[doc = " Unsigned maximum of left and right"]
2570    HLIL_MAXU = 137,
2571    #[doc = " Signed absolute value of src; abs(INT_MIN) == INT_MIN"]
2572    HLIL_ABS = 138,
2573}
2574#[repr(C)]
2575#[derive(Debug, Copy, Clone)]
2576pub struct BNHighLevelILInstruction {
2577    pub operation: BNHighLevelILOperation,
2578    pub attributes: u32,
2579    pub sourceOperand: u32,
2580    pub size: usize,
2581    pub operands: [u64; 5usize],
2582    pub address: u64,
2583    pub parent: usize,
2584}
2585#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2586const _: () = {
2587    ["Size of BNHighLevelILInstruction"]
2588        [::std::mem::size_of::<BNHighLevelILInstruction>() - 80usize];
2589    ["Alignment of BNHighLevelILInstruction"]
2590        [::std::mem::align_of::<BNHighLevelILInstruction>() - 8usize];
2591    ["Offset of field: BNHighLevelILInstruction::operation"]
2592        [::std::mem::offset_of!(BNHighLevelILInstruction, operation) - 0usize];
2593    ["Offset of field: BNHighLevelILInstruction::attributes"]
2594        [::std::mem::offset_of!(BNHighLevelILInstruction, attributes) - 4usize];
2595    ["Offset of field: BNHighLevelILInstruction::sourceOperand"]
2596        [::std::mem::offset_of!(BNHighLevelILInstruction, sourceOperand) - 8usize];
2597    ["Offset of field: BNHighLevelILInstruction::size"]
2598        [::std::mem::offset_of!(BNHighLevelILInstruction, size) - 16usize];
2599    ["Offset of field: BNHighLevelILInstruction::operands"]
2600        [::std::mem::offset_of!(BNHighLevelILInstruction, operands) - 24usize];
2601    ["Offset of field: BNHighLevelILInstruction::address"]
2602        [::std::mem::offset_of!(BNHighLevelILInstruction, address) - 64usize];
2603    ["Offset of field: BNHighLevelILInstruction::parent"]
2604        [::std::mem::offset_of!(BNHighLevelILInstruction, parent) - 72usize];
2605};
2606impl Default for BNHighLevelILInstruction {
2607    fn default() -> Self {
2608        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2609        unsafe {
2610            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2611            s.assume_init()
2612        }
2613    }
2614}
2615#[doc = " Callbacks"]
2616#[repr(C)]
2617#[derive(Debug, Copy, Clone)]
2618pub struct BNLogListener {
2619    pub context: *mut ::std::os::raw::c_void,
2620    pub log: ::std::option::Option<
2621        unsafe extern "C" fn(
2622            ctxt: *mut ::std::os::raw::c_void,
2623            sessionId: usize,
2624            level: BNLogLevel,
2625            msg: *const ::std::os::raw::c_char,
2626            logger_name: *const ::std::os::raw::c_char,
2627            tid: usize,
2628        ),
2629    >,
2630    pub logWithStackTrace: ::std::option::Option<
2631        unsafe extern "C" fn(
2632            ctxt: *mut ::std::os::raw::c_void,
2633            sessionId: usize,
2634            level: BNLogLevel,
2635            stackTrace: *const ::std::os::raw::c_char,
2636            msg: *const ::std::os::raw::c_char,
2637            logger_name: *const ::std::os::raw::c_char,
2638            tid: usize,
2639        ),
2640    >,
2641    pub close: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
2642    pub getLogLevel: ::std::option::Option<
2643        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> BNLogLevel,
2644    >,
2645}
2646#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2647const _: () = {
2648    ["Size of BNLogListener"][::std::mem::size_of::<BNLogListener>() - 40usize];
2649    ["Alignment of BNLogListener"][::std::mem::align_of::<BNLogListener>() - 8usize];
2650    ["Offset of field: BNLogListener::context"]
2651        [::std::mem::offset_of!(BNLogListener, context) - 0usize];
2652    ["Offset of field: BNLogListener::log"][::std::mem::offset_of!(BNLogListener, log) - 8usize];
2653    ["Offset of field: BNLogListener::logWithStackTrace"]
2654        [::std::mem::offset_of!(BNLogListener, logWithStackTrace) - 16usize];
2655    ["Offset of field: BNLogListener::close"]
2656        [::std::mem::offset_of!(BNLogListener, close) - 24usize];
2657    ["Offset of field: BNLogListener::getLogLevel"]
2658        [::std::mem::offset_of!(BNLogListener, getLogLevel) - 32usize];
2659};
2660impl Default for BNLogListener {
2661    fn default() -> Self {
2662        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2663        unsafe {
2664            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2665            s.assume_init()
2666        }
2667    }
2668}
2669#[repr(C)]
2670#[derive(Debug, Copy, Clone)]
2671pub struct BNNavigationHandler {
2672    pub context: *mut ::std::os::raw::c_void,
2673    pub getCurrentView: ::std::option::Option<
2674        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> *mut ::std::os::raw::c_char,
2675    >,
2676    pub getCurrentOffset:
2677        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> u64>,
2678    pub navigate: ::std::option::Option<
2679        unsafe extern "C" fn(
2680            ctxt: *mut ::std::os::raw::c_void,
2681            view: *const ::std::os::raw::c_char,
2682            offset: u64,
2683        ) -> bool,
2684    >,
2685}
2686#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2687const _: () = {
2688    ["Size of BNNavigationHandler"][::std::mem::size_of::<BNNavigationHandler>() - 32usize];
2689    ["Alignment of BNNavigationHandler"][::std::mem::align_of::<BNNavigationHandler>() - 8usize];
2690    ["Offset of field: BNNavigationHandler::context"]
2691        [::std::mem::offset_of!(BNNavigationHandler, context) - 0usize];
2692    ["Offset of field: BNNavigationHandler::getCurrentView"]
2693        [::std::mem::offset_of!(BNNavigationHandler, getCurrentView) - 8usize];
2694    ["Offset of field: BNNavigationHandler::getCurrentOffset"]
2695        [::std::mem::offset_of!(BNNavigationHandler, getCurrentOffset) - 16usize];
2696    ["Offset of field: BNNavigationHandler::navigate"]
2697        [::std::mem::offset_of!(BNNavigationHandler, navigate) - 24usize];
2698};
2699impl Default for BNNavigationHandler {
2700    fn default() -> Self {
2701        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2702        unsafe {
2703            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2704            s.assume_init()
2705        }
2706    }
2707}
2708#[repr(C)]
2709#[derive(Debug, Copy, Clone)]
2710pub struct BNNameSpace {
2711    pub name: *mut *mut ::std::os::raw::c_char,
2712    pub join: *mut ::std::os::raw::c_char,
2713    pub nameCount: usize,
2714}
2715#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2716const _: () = {
2717    ["Size of BNNameSpace"][::std::mem::size_of::<BNNameSpace>() - 24usize];
2718    ["Alignment of BNNameSpace"][::std::mem::align_of::<BNNameSpace>() - 8usize];
2719    ["Offset of field: BNNameSpace::name"][::std::mem::offset_of!(BNNameSpace, name) - 0usize];
2720    ["Offset of field: BNNameSpace::join"][::std::mem::offset_of!(BNNameSpace, join) - 8usize];
2721    ["Offset of field: BNNameSpace::nameCount"]
2722        [::std::mem::offset_of!(BNNameSpace, nameCount) - 16usize];
2723};
2724impl Default for BNNameSpace {
2725    fn default() -> Self {
2726        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2727        unsafe {
2728            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2729            s.assume_init()
2730        }
2731    }
2732}
2733#[repr(C)]
2734#[derive(Debug, Copy, Clone)]
2735pub struct BNQualifiedName {
2736    pub name: *mut *mut ::std::os::raw::c_char,
2737    pub join: *mut ::std::os::raw::c_char,
2738    pub nameCount: usize,
2739}
2740#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2741const _: () = {
2742    ["Size of BNQualifiedName"][::std::mem::size_of::<BNQualifiedName>() - 24usize];
2743    ["Alignment of BNQualifiedName"][::std::mem::align_of::<BNQualifiedName>() - 8usize];
2744    ["Offset of field: BNQualifiedName::name"]
2745        [::std::mem::offset_of!(BNQualifiedName, name) - 0usize];
2746    ["Offset of field: BNQualifiedName::join"]
2747        [::std::mem::offset_of!(BNQualifiedName, join) - 8usize];
2748    ["Offset of field: BNQualifiedName::nameCount"]
2749        [::std::mem::offset_of!(BNQualifiedName, nameCount) - 16usize];
2750};
2751impl Default for BNQualifiedName {
2752    fn default() -> Self {
2753        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2754        unsafe {
2755            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2756            s.assume_init()
2757        }
2758    }
2759}
2760#[repr(u8)]
2761#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2762pub enum BNDerivedStringLocationType {
2763    DataBackedStringLocation = 0,
2764    CodeStringLocation = 1,
2765}
2766#[repr(C)]
2767#[derive(Debug, Copy, Clone)]
2768pub struct BNDerivedStringLocation {
2769    pub locationType: BNDerivedStringLocationType,
2770    pub addr: u64,
2771    pub len: u64,
2772}
2773#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2774const _: () = {
2775    ["Size of BNDerivedStringLocation"][::std::mem::size_of::<BNDerivedStringLocation>() - 24usize];
2776    ["Alignment of BNDerivedStringLocation"]
2777        [::std::mem::align_of::<BNDerivedStringLocation>() - 8usize];
2778    ["Offset of field: BNDerivedStringLocation::locationType"]
2779        [::std::mem::offset_of!(BNDerivedStringLocation, locationType) - 0usize];
2780    ["Offset of field: BNDerivedStringLocation::addr"]
2781        [::std::mem::offset_of!(BNDerivedStringLocation, addr) - 8usize];
2782    ["Offset of field: BNDerivedStringLocation::len"]
2783        [::std::mem::offset_of!(BNDerivedStringLocation, len) - 16usize];
2784};
2785impl Default for BNDerivedStringLocation {
2786    fn default() -> Self {
2787        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2788        unsafe {
2789            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2790            s.assume_init()
2791        }
2792    }
2793}
2794#[repr(C)]
2795#[derive(Debug, Copy, Clone)]
2796pub struct BNDerivedString {
2797    pub value: *mut BNStringRef,
2798    pub locationValid: bool,
2799    pub location: BNDerivedStringLocation,
2800    pub customType: *mut BNCustomStringType,
2801}
2802#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2803const _: () = {
2804    ["Size of BNDerivedString"][::std::mem::size_of::<BNDerivedString>() - 48usize];
2805    ["Alignment of BNDerivedString"][::std::mem::align_of::<BNDerivedString>() - 8usize];
2806    ["Offset of field: BNDerivedString::value"]
2807        [::std::mem::offset_of!(BNDerivedString, value) - 0usize];
2808    ["Offset of field: BNDerivedString::locationValid"]
2809        [::std::mem::offset_of!(BNDerivedString, locationValid) - 8usize];
2810    ["Offset of field: BNDerivedString::location"]
2811        [::std::mem::offset_of!(BNDerivedString, location) - 16usize];
2812    ["Offset of field: BNDerivedString::customType"]
2813        [::std::mem::offset_of!(BNDerivedString, customType) - 40usize];
2814};
2815impl Default for BNDerivedString {
2816    fn default() -> Self {
2817        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2818        unsafe {
2819            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2820            s.assume_init()
2821        }
2822    }
2823}
2824#[repr(C)]
2825#[derive(Debug, Copy, Clone)]
2826pub struct BNBinaryDataNotification {
2827    pub context: *mut ::std::os::raw::c_void,
2828    pub notificationBarrier: ::std::option::Option<
2829        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, view: *mut BNBinaryView) -> u64,
2830    >,
2831    pub dataWritten: ::std::option::Option<
2832        unsafe extern "C" fn(
2833            ctxt: *mut ::std::os::raw::c_void,
2834            view: *mut BNBinaryView,
2835            offset: u64,
2836            len: usize,
2837        ),
2838    >,
2839    pub dataInserted: ::std::option::Option<
2840        unsafe extern "C" fn(
2841            ctxt: *mut ::std::os::raw::c_void,
2842            view: *mut BNBinaryView,
2843            offset: u64,
2844            len: usize,
2845        ),
2846    >,
2847    pub dataRemoved: ::std::option::Option<
2848        unsafe extern "C" fn(
2849            ctxt: *mut ::std::os::raw::c_void,
2850            view: *mut BNBinaryView,
2851            offset: u64,
2852            len: u64,
2853        ),
2854    >,
2855    pub functionAdded: ::std::option::Option<
2856        unsafe extern "C" fn(
2857            ctxt: *mut ::std::os::raw::c_void,
2858            view: *mut BNBinaryView,
2859            func: *mut BNFunction,
2860        ),
2861    >,
2862    pub functionRemoved: ::std::option::Option<
2863        unsafe extern "C" fn(
2864            ctxt: *mut ::std::os::raw::c_void,
2865            view: *mut BNBinaryView,
2866            func: *mut BNFunction,
2867        ),
2868    >,
2869    pub functionUpdated: ::std::option::Option<
2870        unsafe extern "C" fn(
2871            ctxt: *mut ::std::os::raw::c_void,
2872            view: *mut BNBinaryView,
2873            func: *mut BNFunction,
2874        ),
2875    >,
2876    pub functionUpdateRequested: ::std::option::Option<
2877        unsafe extern "C" fn(
2878            ctxt: *mut ::std::os::raw::c_void,
2879            view: *mut BNBinaryView,
2880            func: *mut BNFunction,
2881        ),
2882    >,
2883    pub dataVariableAdded: ::std::option::Option<
2884        unsafe extern "C" fn(
2885            ctxt: *mut ::std::os::raw::c_void,
2886            view: *mut BNBinaryView,
2887            var: *mut BNDataVariable,
2888        ),
2889    >,
2890    pub dataVariableRemoved: ::std::option::Option<
2891        unsafe extern "C" fn(
2892            ctxt: *mut ::std::os::raw::c_void,
2893            view: *mut BNBinaryView,
2894            var: *mut BNDataVariable,
2895        ),
2896    >,
2897    pub dataVariableUpdated: ::std::option::Option<
2898        unsafe extern "C" fn(
2899            ctxt: *mut ::std::os::raw::c_void,
2900            view: *mut BNBinaryView,
2901            var: *mut BNDataVariable,
2902        ),
2903    >,
2904    pub dataMetadataUpdated: ::std::option::Option<
2905        unsafe extern "C" fn(
2906            ctxt: *mut ::std::os::raw::c_void,
2907            view: *mut BNBinaryView,
2908            offset: u64,
2909        ),
2910    >,
2911    pub tagTypeUpdated: ::std::option::Option<
2912        unsafe extern "C" fn(
2913            ctxt: *mut ::std::os::raw::c_void,
2914            view: *mut BNBinaryView,
2915            tagType: *mut BNTagType,
2916        ),
2917    >,
2918    pub tagAdded: ::std::option::Option<
2919        unsafe extern "C" fn(
2920            ctxt: *mut ::std::os::raw::c_void,
2921            view: *mut BNBinaryView,
2922            tagRef: *mut BNTagReference,
2923        ),
2924    >,
2925    pub tagRemoved: ::std::option::Option<
2926        unsafe extern "C" fn(
2927            ctxt: *mut ::std::os::raw::c_void,
2928            view: *mut BNBinaryView,
2929            tagRef: *mut BNTagReference,
2930        ),
2931    >,
2932    pub tagUpdated: ::std::option::Option<
2933        unsafe extern "C" fn(
2934            ctxt: *mut ::std::os::raw::c_void,
2935            view: *mut BNBinaryView,
2936            tagRef: *mut BNTagReference,
2937        ),
2938    >,
2939    pub symbolAdded: ::std::option::Option<
2940        unsafe extern "C" fn(
2941            ctxt: *mut ::std::os::raw::c_void,
2942            view: *mut BNBinaryView,
2943            sym: *mut BNSymbol,
2944        ),
2945    >,
2946    pub symbolRemoved: ::std::option::Option<
2947        unsafe extern "C" fn(
2948            ctxt: *mut ::std::os::raw::c_void,
2949            view: *mut BNBinaryView,
2950            sym: *mut BNSymbol,
2951        ),
2952    >,
2953    pub symbolUpdated: ::std::option::Option<
2954        unsafe extern "C" fn(
2955            ctxt: *mut ::std::os::raw::c_void,
2956            view: *mut BNBinaryView,
2957            sym: *mut BNSymbol,
2958        ),
2959    >,
2960    pub stringFound: ::std::option::Option<
2961        unsafe extern "C" fn(
2962            ctxt: *mut ::std::os::raw::c_void,
2963            view: *mut BNBinaryView,
2964            type_: BNStringType,
2965            offset: u64,
2966            len: usize,
2967        ),
2968    >,
2969    pub stringRemoved: ::std::option::Option<
2970        unsafe extern "C" fn(
2971            ctxt: *mut ::std::os::raw::c_void,
2972            view: *mut BNBinaryView,
2973            type_: BNStringType,
2974            offset: u64,
2975            len: usize,
2976        ),
2977    >,
2978    pub derivedStringFound: ::std::option::Option<
2979        unsafe extern "C" fn(
2980            ctxt: *mut ::std::os::raw::c_void,
2981            view: *mut BNBinaryView,
2982            str_: *mut BNDerivedString,
2983        ),
2984    >,
2985    pub derivedStringRemoved: ::std::option::Option<
2986        unsafe extern "C" fn(
2987            ctxt: *mut ::std::os::raw::c_void,
2988            view: *mut BNBinaryView,
2989            str_: *mut BNDerivedString,
2990        ),
2991    >,
2992    pub typeDefined: ::std::option::Option<
2993        unsafe extern "C" fn(
2994            ctxt: *mut ::std::os::raw::c_void,
2995            view: *mut BNBinaryView,
2996            name: *mut BNQualifiedName,
2997            type_: *mut BNType,
2998        ),
2999    >,
3000    pub typeUndefined: ::std::option::Option<
3001        unsafe extern "C" fn(
3002            ctxt: *mut ::std::os::raw::c_void,
3003            view: *mut BNBinaryView,
3004            name: *mut BNQualifiedName,
3005            type_: *mut BNType,
3006        ),
3007    >,
3008    pub typeReferenceChanged: ::std::option::Option<
3009        unsafe extern "C" fn(
3010            ctxt: *mut ::std::os::raw::c_void,
3011            view: *mut BNBinaryView,
3012            name: *mut BNQualifiedName,
3013            type_: *mut BNType,
3014        ),
3015    >,
3016    pub typeFieldReferenceChanged: ::std::option::Option<
3017        unsafe extern "C" fn(
3018            ctxt: *mut ::std::os::raw::c_void,
3019            view: *mut BNBinaryView,
3020            name: *mut BNQualifiedName,
3021            offset: u64,
3022        ),
3023    >,
3024    pub segmentAdded: ::std::option::Option<
3025        unsafe extern "C" fn(
3026            ctxt: *mut ::std::os::raw::c_void,
3027            view: *mut BNBinaryView,
3028            segment: *mut BNSegment,
3029        ),
3030    >,
3031    pub segmentRemoved: ::std::option::Option<
3032        unsafe extern "C" fn(
3033            ctxt: *mut ::std::os::raw::c_void,
3034            view: *mut BNBinaryView,
3035            segment: *mut BNSegment,
3036        ),
3037    >,
3038    pub segmentUpdated: ::std::option::Option<
3039        unsafe extern "C" fn(
3040            ctxt: *mut ::std::os::raw::c_void,
3041            view: *mut BNBinaryView,
3042            segment: *mut BNSegment,
3043        ),
3044    >,
3045    pub sectionAdded: ::std::option::Option<
3046        unsafe extern "C" fn(
3047            ctxt: *mut ::std::os::raw::c_void,
3048            view: *mut BNBinaryView,
3049            section: *mut BNSection,
3050        ),
3051    >,
3052    pub sectionRemoved: ::std::option::Option<
3053        unsafe extern "C" fn(
3054            ctxt: *mut ::std::os::raw::c_void,
3055            view: *mut BNBinaryView,
3056            section: *mut BNSection,
3057        ),
3058    >,
3059    pub sectionUpdated: ::std::option::Option<
3060        unsafe extern "C" fn(
3061            ctxt: *mut ::std::os::raw::c_void,
3062            view: *mut BNBinaryView,
3063            section: *mut BNSection,
3064        ),
3065    >,
3066    pub componentNameUpdated: ::std::option::Option<
3067        unsafe extern "C" fn(
3068            ctxt: *mut ::std::os::raw::c_void,
3069            view: *mut BNBinaryView,
3070            previousName: *mut ::std::os::raw::c_char,
3071            component: *mut BNComponent,
3072        ),
3073    >,
3074    pub componentAdded: ::std::option::Option<
3075        unsafe extern "C" fn(
3076            ctxt: *mut ::std::os::raw::c_void,
3077            view: *mut BNBinaryView,
3078            component: *mut BNComponent,
3079        ),
3080    >,
3081    pub componentMoved: ::std::option::Option<
3082        unsafe extern "C" fn(
3083            ctxt: *mut ::std::os::raw::c_void,
3084            view: *mut BNBinaryView,
3085            formerParent: *mut BNComponent,
3086            newParent: *mut BNComponent,
3087            component: *mut BNComponent,
3088        ),
3089    >,
3090    pub componentRemoved: ::std::option::Option<
3091        unsafe extern "C" fn(
3092            ctxt: *mut ::std::os::raw::c_void,
3093            view: *mut BNBinaryView,
3094            formerParent: *mut BNComponent,
3095            component: *mut BNComponent,
3096        ),
3097    >,
3098    pub componentFunctionAdded: ::std::option::Option<
3099        unsafe extern "C" fn(
3100            ctxt: *mut ::std::os::raw::c_void,
3101            view: *mut BNBinaryView,
3102            component: *mut BNComponent,
3103            function: *mut BNFunction,
3104        ),
3105    >,
3106    pub componentFunctionRemoved: ::std::option::Option<
3107        unsafe extern "C" fn(
3108            ctxt: *mut ::std::os::raw::c_void,
3109            view: *mut BNBinaryView,
3110            component: *mut BNComponent,
3111            function: *mut BNFunction,
3112        ),
3113    >,
3114    pub componentDataVariableAdded: ::std::option::Option<
3115        unsafe extern "C" fn(
3116            ctxt: *mut ::std::os::raw::c_void,
3117            view: *mut BNBinaryView,
3118            component: *mut BNComponent,
3119            var: *mut BNDataVariable,
3120        ),
3121    >,
3122    pub componentDataVariableRemoved: ::std::option::Option<
3123        unsafe extern "C" fn(
3124            ctxt: *mut ::std::os::raw::c_void,
3125            view: *mut BNBinaryView,
3126            component: *mut BNComponent,
3127            var: *mut BNDataVariable,
3128        ),
3129    >,
3130    pub externalLibraryAdded: ::std::option::Option<
3131        unsafe extern "C" fn(
3132            ctxt: *mut ::std::os::raw::c_void,
3133            data: *mut BNBinaryView,
3134            library: *mut BNExternalLibrary,
3135        ),
3136    >,
3137    pub externalLibraryUpdated: ::std::option::Option<
3138        unsafe extern "C" fn(
3139            ctxt: *mut ::std::os::raw::c_void,
3140            data: *mut BNBinaryView,
3141            library: *mut BNExternalLibrary,
3142        ),
3143    >,
3144    pub externalLibraryRemoved: ::std::option::Option<
3145        unsafe extern "C" fn(
3146            ctxt: *mut ::std::os::raw::c_void,
3147            data: *mut BNBinaryView,
3148            library: *mut BNExternalLibrary,
3149        ),
3150    >,
3151    pub externalLocationAdded: ::std::option::Option<
3152        unsafe extern "C" fn(
3153            ctxt: *mut ::std::os::raw::c_void,
3154            data: *mut BNBinaryView,
3155            location: *mut BNExternalLocation,
3156        ),
3157    >,
3158    pub externalLocationUpdated: ::std::option::Option<
3159        unsafe extern "C" fn(
3160            ctxt: *mut ::std::os::raw::c_void,
3161            data: *mut BNBinaryView,
3162            location: *mut BNExternalLocation,
3163        ),
3164    >,
3165    pub externalLocationRemoved: ::std::option::Option<
3166        unsafe extern "C" fn(
3167            ctxt: *mut ::std::os::raw::c_void,
3168            data: *mut BNBinaryView,
3169            location: *mut BNExternalLocation,
3170        ),
3171    >,
3172    pub typeArchiveAttached: ::std::option::Option<
3173        unsafe extern "C" fn(
3174            ctxt: *mut ::std::os::raw::c_void,
3175            view: *mut BNBinaryView,
3176            id: *const ::std::os::raw::c_char,
3177            path: *const ::std::os::raw::c_char,
3178        ),
3179    >,
3180    pub typeArchiveDetached: ::std::option::Option<
3181        unsafe extern "C" fn(
3182            ctxt: *mut ::std::os::raw::c_void,
3183            view: *mut BNBinaryView,
3184            id: *const ::std::os::raw::c_char,
3185            path: *const ::std::os::raw::c_char,
3186        ),
3187    >,
3188    pub typeArchiveConnected: ::std::option::Option<
3189        unsafe extern "C" fn(
3190            ctxt: *mut ::std::os::raw::c_void,
3191            view: *mut BNBinaryView,
3192            archive: *mut BNTypeArchive,
3193        ),
3194    >,
3195    pub typeArchiveDisconnected: ::std::option::Option<
3196        unsafe extern "C" fn(
3197            ctxt: *mut ::std::os::raw::c_void,
3198            view: *mut BNBinaryView,
3199            archive: *mut BNTypeArchive,
3200        ),
3201    >,
3202    pub undoEntryAdded: ::std::option::Option<
3203        unsafe extern "C" fn(
3204            ctxt: *mut ::std::os::raw::c_void,
3205            view: *mut BNBinaryView,
3206            entry: *mut BNUndoEntry,
3207        ),
3208    >,
3209    pub undoEntryTaken: ::std::option::Option<
3210        unsafe extern "C" fn(
3211            ctxt: *mut ::std::os::raw::c_void,
3212            view: *mut BNBinaryView,
3213            entry: *mut BNUndoEntry,
3214        ),
3215    >,
3216    pub redoEntryTaken: ::std::option::Option<
3217        unsafe extern "C" fn(
3218            ctxt: *mut ::std::os::raw::c_void,
3219            view: *mut BNBinaryView,
3220            entry: *mut BNUndoEntry,
3221        ),
3222    >,
3223    pub rebased: ::std::option::Option<
3224        unsafe extern "C" fn(
3225            ctxt: *mut ::std::os::raw::c_void,
3226            oldView: *mut BNBinaryView,
3227            newView: *mut BNBinaryView,
3228        ),
3229    >,
3230}
3231#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3232const _: () = {
3233    ["Size of BNBinaryDataNotification"]
3234        [::std::mem::size_of::<BNBinaryDataNotification>() - 448usize];
3235    ["Alignment of BNBinaryDataNotification"]
3236        [::std::mem::align_of::<BNBinaryDataNotification>() - 8usize];
3237    ["Offset of field: BNBinaryDataNotification::context"]
3238        [::std::mem::offset_of!(BNBinaryDataNotification, context) - 0usize];
3239    ["Offset of field: BNBinaryDataNotification::notificationBarrier"]
3240        [::std::mem::offset_of!(BNBinaryDataNotification, notificationBarrier) - 8usize];
3241    ["Offset of field: BNBinaryDataNotification::dataWritten"]
3242        [::std::mem::offset_of!(BNBinaryDataNotification, dataWritten) - 16usize];
3243    ["Offset of field: BNBinaryDataNotification::dataInserted"]
3244        [::std::mem::offset_of!(BNBinaryDataNotification, dataInserted) - 24usize];
3245    ["Offset of field: BNBinaryDataNotification::dataRemoved"]
3246        [::std::mem::offset_of!(BNBinaryDataNotification, dataRemoved) - 32usize];
3247    ["Offset of field: BNBinaryDataNotification::functionAdded"]
3248        [::std::mem::offset_of!(BNBinaryDataNotification, functionAdded) - 40usize];
3249    ["Offset of field: BNBinaryDataNotification::functionRemoved"]
3250        [::std::mem::offset_of!(BNBinaryDataNotification, functionRemoved) - 48usize];
3251    ["Offset of field: BNBinaryDataNotification::functionUpdated"]
3252        [::std::mem::offset_of!(BNBinaryDataNotification, functionUpdated) - 56usize];
3253    ["Offset of field: BNBinaryDataNotification::functionUpdateRequested"]
3254        [::std::mem::offset_of!(BNBinaryDataNotification, functionUpdateRequested) - 64usize];
3255    ["Offset of field: BNBinaryDataNotification::dataVariableAdded"]
3256        [::std::mem::offset_of!(BNBinaryDataNotification, dataVariableAdded) - 72usize];
3257    ["Offset of field: BNBinaryDataNotification::dataVariableRemoved"]
3258        [::std::mem::offset_of!(BNBinaryDataNotification, dataVariableRemoved) - 80usize];
3259    ["Offset of field: BNBinaryDataNotification::dataVariableUpdated"]
3260        [::std::mem::offset_of!(BNBinaryDataNotification, dataVariableUpdated) - 88usize];
3261    ["Offset of field: BNBinaryDataNotification::dataMetadataUpdated"]
3262        [::std::mem::offset_of!(BNBinaryDataNotification, dataMetadataUpdated) - 96usize];
3263    ["Offset of field: BNBinaryDataNotification::tagTypeUpdated"]
3264        [::std::mem::offset_of!(BNBinaryDataNotification, tagTypeUpdated) - 104usize];
3265    ["Offset of field: BNBinaryDataNotification::tagAdded"]
3266        [::std::mem::offset_of!(BNBinaryDataNotification, tagAdded) - 112usize];
3267    ["Offset of field: BNBinaryDataNotification::tagRemoved"]
3268        [::std::mem::offset_of!(BNBinaryDataNotification, tagRemoved) - 120usize];
3269    ["Offset of field: BNBinaryDataNotification::tagUpdated"]
3270        [::std::mem::offset_of!(BNBinaryDataNotification, tagUpdated) - 128usize];
3271    ["Offset of field: BNBinaryDataNotification::symbolAdded"]
3272        [::std::mem::offset_of!(BNBinaryDataNotification, symbolAdded) - 136usize];
3273    ["Offset of field: BNBinaryDataNotification::symbolRemoved"]
3274        [::std::mem::offset_of!(BNBinaryDataNotification, symbolRemoved) - 144usize];
3275    ["Offset of field: BNBinaryDataNotification::symbolUpdated"]
3276        [::std::mem::offset_of!(BNBinaryDataNotification, symbolUpdated) - 152usize];
3277    ["Offset of field: BNBinaryDataNotification::stringFound"]
3278        [::std::mem::offset_of!(BNBinaryDataNotification, stringFound) - 160usize];
3279    ["Offset of field: BNBinaryDataNotification::stringRemoved"]
3280        [::std::mem::offset_of!(BNBinaryDataNotification, stringRemoved) - 168usize];
3281    ["Offset of field: BNBinaryDataNotification::derivedStringFound"]
3282        [::std::mem::offset_of!(BNBinaryDataNotification, derivedStringFound) - 176usize];
3283    ["Offset of field: BNBinaryDataNotification::derivedStringRemoved"]
3284        [::std::mem::offset_of!(BNBinaryDataNotification, derivedStringRemoved) - 184usize];
3285    ["Offset of field: BNBinaryDataNotification::typeDefined"]
3286        [::std::mem::offset_of!(BNBinaryDataNotification, typeDefined) - 192usize];
3287    ["Offset of field: BNBinaryDataNotification::typeUndefined"]
3288        [::std::mem::offset_of!(BNBinaryDataNotification, typeUndefined) - 200usize];
3289    ["Offset of field: BNBinaryDataNotification::typeReferenceChanged"]
3290        [::std::mem::offset_of!(BNBinaryDataNotification, typeReferenceChanged) - 208usize];
3291    ["Offset of field: BNBinaryDataNotification::typeFieldReferenceChanged"]
3292        [::std::mem::offset_of!(BNBinaryDataNotification, typeFieldReferenceChanged) - 216usize];
3293    ["Offset of field: BNBinaryDataNotification::segmentAdded"]
3294        [::std::mem::offset_of!(BNBinaryDataNotification, segmentAdded) - 224usize];
3295    ["Offset of field: BNBinaryDataNotification::segmentRemoved"]
3296        [::std::mem::offset_of!(BNBinaryDataNotification, segmentRemoved) - 232usize];
3297    ["Offset of field: BNBinaryDataNotification::segmentUpdated"]
3298        [::std::mem::offset_of!(BNBinaryDataNotification, segmentUpdated) - 240usize];
3299    ["Offset of field: BNBinaryDataNotification::sectionAdded"]
3300        [::std::mem::offset_of!(BNBinaryDataNotification, sectionAdded) - 248usize];
3301    ["Offset of field: BNBinaryDataNotification::sectionRemoved"]
3302        [::std::mem::offset_of!(BNBinaryDataNotification, sectionRemoved) - 256usize];
3303    ["Offset of field: BNBinaryDataNotification::sectionUpdated"]
3304        [::std::mem::offset_of!(BNBinaryDataNotification, sectionUpdated) - 264usize];
3305    ["Offset of field: BNBinaryDataNotification::componentNameUpdated"]
3306        [::std::mem::offset_of!(BNBinaryDataNotification, componentNameUpdated) - 272usize];
3307    ["Offset of field: BNBinaryDataNotification::componentAdded"]
3308        [::std::mem::offset_of!(BNBinaryDataNotification, componentAdded) - 280usize];
3309    ["Offset of field: BNBinaryDataNotification::componentMoved"]
3310        [::std::mem::offset_of!(BNBinaryDataNotification, componentMoved) - 288usize];
3311    ["Offset of field: BNBinaryDataNotification::componentRemoved"]
3312        [::std::mem::offset_of!(BNBinaryDataNotification, componentRemoved) - 296usize];
3313    ["Offset of field: BNBinaryDataNotification::componentFunctionAdded"]
3314        [::std::mem::offset_of!(BNBinaryDataNotification, componentFunctionAdded) - 304usize];
3315    ["Offset of field: BNBinaryDataNotification::componentFunctionRemoved"]
3316        [::std::mem::offset_of!(BNBinaryDataNotification, componentFunctionRemoved) - 312usize];
3317    ["Offset of field: BNBinaryDataNotification::componentDataVariableAdded"]
3318        [::std::mem::offset_of!(BNBinaryDataNotification, componentDataVariableAdded) - 320usize];
3319    ["Offset of field: BNBinaryDataNotification::componentDataVariableRemoved"]
3320        [::std::mem::offset_of!(BNBinaryDataNotification, componentDataVariableRemoved) - 328usize];
3321    ["Offset of field: BNBinaryDataNotification::externalLibraryAdded"]
3322        [::std::mem::offset_of!(BNBinaryDataNotification, externalLibraryAdded) - 336usize];
3323    ["Offset of field: BNBinaryDataNotification::externalLibraryUpdated"]
3324        [::std::mem::offset_of!(BNBinaryDataNotification, externalLibraryUpdated) - 344usize];
3325    ["Offset of field: BNBinaryDataNotification::externalLibraryRemoved"]
3326        [::std::mem::offset_of!(BNBinaryDataNotification, externalLibraryRemoved) - 352usize];
3327    ["Offset of field: BNBinaryDataNotification::externalLocationAdded"]
3328        [::std::mem::offset_of!(BNBinaryDataNotification, externalLocationAdded) - 360usize];
3329    ["Offset of field: BNBinaryDataNotification::externalLocationUpdated"]
3330        [::std::mem::offset_of!(BNBinaryDataNotification, externalLocationUpdated) - 368usize];
3331    ["Offset of field: BNBinaryDataNotification::externalLocationRemoved"]
3332        [::std::mem::offset_of!(BNBinaryDataNotification, externalLocationRemoved) - 376usize];
3333    ["Offset of field: BNBinaryDataNotification::typeArchiveAttached"]
3334        [::std::mem::offset_of!(BNBinaryDataNotification, typeArchiveAttached) - 384usize];
3335    ["Offset of field: BNBinaryDataNotification::typeArchiveDetached"]
3336        [::std::mem::offset_of!(BNBinaryDataNotification, typeArchiveDetached) - 392usize];
3337    ["Offset of field: BNBinaryDataNotification::typeArchiveConnected"]
3338        [::std::mem::offset_of!(BNBinaryDataNotification, typeArchiveConnected) - 400usize];
3339    ["Offset of field: BNBinaryDataNotification::typeArchiveDisconnected"]
3340        [::std::mem::offset_of!(BNBinaryDataNotification, typeArchiveDisconnected) - 408usize];
3341    ["Offset of field: BNBinaryDataNotification::undoEntryAdded"]
3342        [::std::mem::offset_of!(BNBinaryDataNotification, undoEntryAdded) - 416usize];
3343    ["Offset of field: BNBinaryDataNotification::undoEntryTaken"]
3344        [::std::mem::offset_of!(BNBinaryDataNotification, undoEntryTaken) - 424usize];
3345    ["Offset of field: BNBinaryDataNotification::redoEntryTaken"]
3346        [::std::mem::offset_of!(BNBinaryDataNotification, redoEntryTaken) - 432usize];
3347    ["Offset of field: BNBinaryDataNotification::rebased"]
3348        [::std::mem::offset_of!(BNBinaryDataNotification, rebased) - 440usize];
3349};
3350impl Default for BNBinaryDataNotification {
3351    fn default() -> Self {
3352        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3353        unsafe {
3354            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3355            s.assume_init()
3356        }
3357    }
3358}
3359#[repr(C)]
3360#[derive(Debug, Copy, Clone)]
3361pub struct BNProjectNotification {
3362    pub context: *mut ::std::os::raw::c_void,
3363    pub beforeOpenProject: ::std::option::Option<
3364        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, project: *mut BNProject) -> bool,
3365    >,
3366    pub afterOpenProject: ::std::option::Option<
3367        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, project: *mut BNProject),
3368    >,
3369    pub beforeCloseProject: ::std::option::Option<
3370        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, project: *mut BNProject) -> bool,
3371    >,
3372    pub afterCloseProject: ::std::option::Option<
3373        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, project: *mut BNProject),
3374    >,
3375    pub beforeProjectMetadataWritten: ::std::option::Option<
3376        unsafe extern "C" fn(
3377            ctxt: *mut ::std::os::raw::c_void,
3378            project: *mut BNProject,
3379            key: *mut ::std::os::raw::c_char,
3380            value: *mut BNMetadata,
3381        ) -> bool,
3382    >,
3383    pub afterProjectMetadataWritten: ::std::option::Option<
3384        unsafe extern "C" fn(
3385            ctxt: *mut ::std::os::raw::c_void,
3386            project: *mut BNProject,
3387            key: *mut ::std::os::raw::c_char,
3388            value: *mut BNMetadata,
3389        ),
3390    >,
3391    pub beforeProjectFileCreated: ::std::option::Option<
3392        unsafe extern "C" fn(
3393            ctxt: *mut ::std::os::raw::c_void,
3394            project: *mut BNProject,
3395            projectFile: *mut BNProjectFile,
3396        ) -> bool,
3397    >,
3398    pub afterProjectFileCreated: ::std::option::Option<
3399        unsafe extern "C" fn(
3400            ctxt: *mut ::std::os::raw::c_void,
3401            project: *mut BNProject,
3402            projectFile: *mut BNProjectFile,
3403        ),
3404    >,
3405    pub beforeProjectFileUpdated: ::std::option::Option<
3406        unsafe extern "C" fn(
3407            ctxt: *mut ::std::os::raw::c_void,
3408            project: *mut BNProject,
3409            projectFile: *mut BNProjectFile,
3410        ) -> bool,
3411    >,
3412    pub afterProjectFileUpdated: ::std::option::Option<
3413        unsafe extern "C" fn(
3414            ctxt: *mut ::std::os::raw::c_void,
3415            project: *mut BNProject,
3416            projectFile: *mut BNProjectFile,
3417        ),
3418    >,
3419    pub beforeProjectFileDeleted: ::std::option::Option<
3420        unsafe extern "C" fn(
3421            ctxt: *mut ::std::os::raw::c_void,
3422            project: *mut BNProject,
3423            projectFile: *mut BNProjectFile,
3424        ) -> bool,
3425    >,
3426    pub afterProjectFileDeleted: ::std::option::Option<
3427        unsafe extern "C" fn(
3428            ctxt: *mut ::std::os::raw::c_void,
3429            project: *mut BNProject,
3430            projectFile: *mut BNProjectFile,
3431        ),
3432    >,
3433    pub beforeProjectFolderCreated: ::std::option::Option<
3434        unsafe extern "C" fn(
3435            ctxt: *mut ::std::os::raw::c_void,
3436            project: *mut BNProject,
3437            projectFolder: *mut BNProjectFolder,
3438        ) -> bool,
3439    >,
3440    pub afterProjectFolderCreated: ::std::option::Option<
3441        unsafe extern "C" fn(
3442            ctxt: *mut ::std::os::raw::c_void,
3443            project: *mut BNProject,
3444            projectFolder: *mut BNProjectFolder,
3445        ),
3446    >,
3447    pub beforeProjectFolderUpdated: ::std::option::Option<
3448        unsafe extern "C" fn(
3449            ctxt: *mut ::std::os::raw::c_void,
3450            project: *mut BNProject,
3451            projectFolder: *mut BNProjectFolder,
3452        ) -> bool,
3453    >,
3454    pub afterProjectFolderUpdated: ::std::option::Option<
3455        unsafe extern "C" fn(
3456            ctxt: *mut ::std::os::raw::c_void,
3457            project: *mut BNProject,
3458            projectFolder: *mut BNProjectFolder,
3459        ),
3460    >,
3461    pub beforeProjectFolderDeleted: ::std::option::Option<
3462        unsafe extern "C" fn(
3463            ctxt: *mut ::std::os::raw::c_void,
3464            project: *mut BNProject,
3465            projectFolder: *mut BNProjectFolder,
3466        ) -> bool,
3467    >,
3468    pub afterProjectFolderDeleted: ::std::option::Option<
3469        unsafe extern "C" fn(
3470            ctxt: *mut ::std::os::raw::c_void,
3471            project: *mut BNProject,
3472            projectFolder: *mut BNProjectFolder,
3473        ),
3474    >,
3475}
3476#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3477const _: () = {
3478    ["Size of BNProjectNotification"][::std::mem::size_of::<BNProjectNotification>() - 152usize];
3479    ["Alignment of BNProjectNotification"]
3480        [::std::mem::align_of::<BNProjectNotification>() - 8usize];
3481    ["Offset of field: BNProjectNotification::context"]
3482        [::std::mem::offset_of!(BNProjectNotification, context) - 0usize];
3483    ["Offset of field: BNProjectNotification::beforeOpenProject"]
3484        [::std::mem::offset_of!(BNProjectNotification, beforeOpenProject) - 8usize];
3485    ["Offset of field: BNProjectNotification::afterOpenProject"]
3486        [::std::mem::offset_of!(BNProjectNotification, afterOpenProject) - 16usize];
3487    ["Offset of field: BNProjectNotification::beforeCloseProject"]
3488        [::std::mem::offset_of!(BNProjectNotification, beforeCloseProject) - 24usize];
3489    ["Offset of field: BNProjectNotification::afterCloseProject"]
3490        [::std::mem::offset_of!(BNProjectNotification, afterCloseProject) - 32usize];
3491    ["Offset of field: BNProjectNotification::beforeProjectMetadataWritten"]
3492        [::std::mem::offset_of!(BNProjectNotification, beforeProjectMetadataWritten) - 40usize];
3493    ["Offset of field: BNProjectNotification::afterProjectMetadataWritten"]
3494        [::std::mem::offset_of!(BNProjectNotification, afterProjectMetadataWritten) - 48usize];
3495    ["Offset of field: BNProjectNotification::beforeProjectFileCreated"]
3496        [::std::mem::offset_of!(BNProjectNotification, beforeProjectFileCreated) - 56usize];
3497    ["Offset of field: BNProjectNotification::afterProjectFileCreated"]
3498        [::std::mem::offset_of!(BNProjectNotification, afterProjectFileCreated) - 64usize];
3499    ["Offset of field: BNProjectNotification::beforeProjectFileUpdated"]
3500        [::std::mem::offset_of!(BNProjectNotification, beforeProjectFileUpdated) - 72usize];
3501    ["Offset of field: BNProjectNotification::afterProjectFileUpdated"]
3502        [::std::mem::offset_of!(BNProjectNotification, afterProjectFileUpdated) - 80usize];
3503    ["Offset of field: BNProjectNotification::beforeProjectFileDeleted"]
3504        [::std::mem::offset_of!(BNProjectNotification, beforeProjectFileDeleted) - 88usize];
3505    ["Offset of field: BNProjectNotification::afterProjectFileDeleted"]
3506        [::std::mem::offset_of!(BNProjectNotification, afterProjectFileDeleted) - 96usize];
3507    ["Offset of field: BNProjectNotification::beforeProjectFolderCreated"]
3508        [::std::mem::offset_of!(BNProjectNotification, beforeProjectFolderCreated) - 104usize];
3509    ["Offset of field: BNProjectNotification::afterProjectFolderCreated"]
3510        [::std::mem::offset_of!(BNProjectNotification, afterProjectFolderCreated) - 112usize];
3511    ["Offset of field: BNProjectNotification::beforeProjectFolderUpdated"]
3512        [::std::mem::offset_of!(BNProjectNotification, beforeProjectFolderUpdated) - 120usize];
3513    ["Offset of field: BNProjectNotification::afterProjectFolderUpdated"]
3514        [::std::mem::offset_of!(BNProjectNotification, afterProjectFolderUpdated) - 128usize];
3515    ["Offset of field: BNProjectNotification::beforeProjectFolderDeleted"]
3516        [::std::mem::offset_of!(BNProjectNotification, beforeProjectFolderDeleted) - 136usize];
3517    ["Offset of field: BNProjectNotification::afterProjectFolderDeleted"]
3518        [::std::mem::offset_of!(BNProjectNotification, afterProjectFolderDeleted) - 144usize];
3519};
3520impl Default for BNProjectNotification {
3521    fn default() -> Self {
3522        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3523        unsafe {
3524            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3525            s.assume_init()
3526        }
3527    }
3528}
3529#[repr(C)]
3530#[derive(Debug, Copy, Clone)]
3531pub struct BNFileAccessor {
3532    pub context: *mut ::std::os::raw::c_void,
3533    pub getLength:
3534        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> u64>,
3535    pub read: ::std::option::Option<
3536        unsafe extern "C" fn(
3537            ctxt: *mut ::std::os::raw::c_void,
3538            dest: *mut ::std::os::raw::c_void,
3539            offset: u64,
3540            len: usize,
3541        ) -> usize,
3542    >,
3543    pub write: ::std::option::Option<
3544        unsafe extern "C" fn(
3545            ctxt: *mut ::std::os::raw::c_void,
3546            offset: u64,
3547            src: *const ::std::os::raw::c_void,
3548            len: usize,
3549        ) -> usize,
3550    >,
3551}
3552#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3553const _: () = {
3554    ["Size of BNFileAccessor"][::std::mem::size_of::<BNFileAccessor>() - 32usize];
3555    ["Alignment of BNFileAccessor"][::std::mem::align_of::<BNFileAccessor>() - 8usize];
3556    ["Offset of field: BNFileAccessor::context"]
3557        [::std::mem::offset_of!(BNFileAccessor, context) - 0usize];
3558    ["Offset of field: BNFileAccessor::getLength"]
3559        [::std::mem::offset_of!(BNFileAccessor, getLength) - 8usize];
3560    ["Offset of field: BNFileAccessor::read"]
3561        [::std::mem::offset_of!(BNFileAccessor, read) - 16usize];
3562    ["Offset of field: BNFileAccessor::write"]
3563        [::std::mem::offset_of!(BNFileAccessor, write) - 24usize];
3564};
3565impl Default for BNFileAccessor {
3566    fn default() -> Self {
3567        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3568        unsafe {
3569            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3570            s.assume_init()
3571        }
3572    }
3573}
3574#[repr(C)]
3575#[derive(Debug, Copy, Clone)]
3576pub struct BNCustomBinaryView {
3577    pub context: *mut ::std::os::raw::c_void,
3578    pub init:
3579        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
3580    pub freeObject: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
3581    pub externalRefTaken:
3582        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
3583    pub externalRefReleased:
3584        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
3585    pub read: ::std::option::Option<
3586        unsafe extern "C" fn(
3587            ctxt: *mut ::std::os::raw::c_void,
3588            dest: *mut ::std::os::raw::c_void,
3589            offset: u64,
3590            len: usize,
3591        ) -> usize,
3592    >,
3593    pub write: ::std::option::Option<
3594        unsafe extern "C" fn(
3595            ctxt: *mut ::std::os::raw::c_void,
3596            offset: u64,
3597            src: *const ::std::os::raw::c_void,
3598            len: usize,
3599        ) -> usize,
3600    >,
3601    pub insert: ::std::option::Option<
3602        unsafe extern "C" fn(
3603            ctxt: *mut ::std::os::raw::c_void,
3604            offset: u64,
3605            src: *const ::std::os::raw::c_void,
3606            len: usize,
3607        ) -> usize,
3608    >,
3609    pub remove: ::std::option::Option<
3610        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, offset: u64, len: u64) -> usize,
3611    >,
3612    pub getModification: ::std::option::Option<
3613        unsafe extern "C" fn(
3614            ctxt: *mut ::std::os::raw::c_void,
3615            offset: u64,
3616        ) -> BNModificationStatus,
3617    >,
3618    pub isValidOffset: ::std::option::Option<
3619        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, offset: u64) -> bool,
3620    >,
3621    pub isOffsetReadable: ::std::option::Option<
3622        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, offset: u64) -> bool,
3623    >,
3624    pub isOffsetWritable: ::std::option::Option<
3625        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, offset: u64) -> bool,
3626    >,
3627    pub isOffsetExecutable: ::std::option::Option<
3628        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, offset: u64) -> bool,
3629    >,
3630    pub isOffsetBackedByFile: ::std::option::Option<
3631        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, offset: u64) -> bool,
3632    >,
3633    pub getNextValidOffset: ::std::option::Option<
3634        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, offset: u64) -> u64,
3635    >,
3636    pub getStart:
3637        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> u64>,
3638    pub getLength:
3639        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> u64>,
3640    pub getEntryPoint:
3641        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> u64>,
3642    pub isExecutable:
3643        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
3644    pub getDefaultEndianness: ::std::option::Option<
3645        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> BNEndianness,
3646    >,
3647    pub isRelocatable:
3648        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
3649    pub getAddressSize:
3650        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> usize>,
3651    pub save: ::std::option::Option<
3652        unsafe extern "C" fn(
3653            ctxt: *mut ::std::os::raw::c_void,
3654            accessor: *mut BNFileAccessor,
3655        ) -> bool,
3656    >,
3657    pub onAfterSnapshotDataApplied:
3658        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
3659}
3660#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3661const _: () = {
3662    ["Size of BNCustomBinaryView"][::std::mem::size_of::<BNCustomBinaryView>() - 200usize];
3663    ["Alignment of BNCustomBinaryView"][::std::mem::align_of::<BNCustomBinaryView>() - 8usize];
3664    ["Offset of field: BNCustomBinaryView::context"]
3665        [::std::mem::offset_of!(BNCustomBinaryView, context) - 0usize];
3666    ["Offset of field: BNCustomBinaryView::init"]
3667        [::std::mem::offset_of!(BNCustomBinaryView, init) - 8usize];
3668    ["Offset of field: BNCustomBinaryView::freeObject"]
3669        [::std::mem::offset_of!(BNCustomBinaryView, freeObject) - 16usize];
3670    ["Offset of field: BNCustomBinaryView::externalRefTaken"]
3671        [::std::mem::offset_of!(BNCustomBinaryView, externalRefTaken) - 24usize];
3672    ["Offset of field: BNCustomBinaryView::externalRefReleased"]
3673        [::std::mem::offset_of!(BNCustomBinaryView, externalRefReleased) - 32usize];
3674    ["Offset of field: BNCustomBinaryView::read"]
3675        [::std::mem::offset_of!(BNCustomBinaryView, read) - 40usize];
3676    ["Offset of field: BNCustomBinaryView::write"]
3677        [::std::mem::offset_of!(BNCustomBinaryView, write) - 48usize];
3678    ["Offset of field: BNCustomBinaryView::insert"]
3679        [::std::mem::offset_of!(BNCustomBinaryView, insert) - 56usize];
3680    ["Offset of field: BNCustomBinaryView::remove"]
3681        [::std::mem::offset_of!(BNCustomBinaryView, remove) - 64usize];
3682    ["Offset of field: BNCustomBinaryView::getModification"]
3683        [::std::mem::offset_of!(BNCustomBinaryView, getModification) - 72usize];
3684    ["Offset of field: BNCustomBinaryView::isValidOffset"]
3685        [::std::mem::offset_of!(BNCustomBinaryView, isValidOffset) - 80usize];
3686    ["Offset of field: BNCustomBinaryView::isOffsetReadable"]
3687        [::std::mem::offset_of!(BNCustomBinaryView, isOffsetReadable) - 88usize];
3688    ["Offset of field: BNCustomBinaryView::isOffsetWritable"]
3689        [::std::mem::offset_of!(BNCustomBinaryView, isOffsetWritable) - 96usize];
3690    ["Offset of field: BNCustomBinaryView::isOffsetExecutable"]
3691        [::std::mem::offset_of!(BNCustomBinaryView, isOffsetExecutable) - 104usize];
3692    ["Offset of field: BNCustomBinaryView::isOffsetBackedByFile"]
3693        [::std::mem::offset_of!(BNCustomBinaryView, isOffsetBackedByFile) - 112usize];
3694    ["Offset of field: BNCustomBinaryView::getNextValidOffset"]
3695        [::std::mem::offset_of!(BNCustomBinaryView, getNextValidOffset) - 120usize];
3696    ["Offset of field: BNCustomBinaryView::getStart"]
3697        [::std::mem::offset_of!(BNCustomBinaryView, getStart) - 128usize];
3698    ["Offset of field: BNCustomBinaryView::getLength"]
3699        [::std::mem::offset_of!(BNCustomBinaryView, getLength) - 136usize];
3700    ["Offset of field: BNCustomBinaryView::getEntryPoint"]
3701        [::std::mem::offset_of!(BNCustomBinaryView, getEntryPoint) - 144usize];
3702    ["Offset of field: BNCustomBinaryView::isExecutable"]
3703        [::std::mem::offset_of!(BNCustomBinaryView, isExecutable) - 152usize];
3704    ["Offset of field: BNCustomBinaryView::getDefaultEndianness"]
3705        [::std::mem::offset_of!(BNCustomBinaryView, getDefaultEndianness) - 160usize];
3706    ["Offset of field: BNCustomBinaryView::isRelocatable"]
3707        [::std::mem::offset_of!(BNCustomBinaryView, isRelocatable) - 168usize];
3708    ["Offset of field: BNCustomBinaryView::getAddressSize"]
3709        [::std::mem::offset_of!(BNCustomBinaryView, getAddressSize) - 176usize];
3710    ["Offset of field: BNCustomBinaryView::save"]
3711        [::std::mem::offset_of!(BNCustomBinaryView, save) - 184usize];
3712    ["Offset of field: BNCustomBinaryView::onAfterSnapshotDataApplied"]
3713        [::std::mem::offset_of!(BNCustomBinaryView, onAfterSnapshotDataApplied) - 192usize];
3714};
3715impl Default for BNCustomBinaryView {
3716    fn default() -> Self {
3717        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3718        unsafe {
3719            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3720            s.assume_init()
3721        }
3722    }
3723}
3724#[repr(C)]
3725#[derive(Debug, Copy, Clone)]
3726pub struct BNCustomBinaryViewType {
3727    pub context: *mut ::std::os::raw::c_void,
3728    pub create: ::std::option::Option<
3729        unsafe extern "C" fn(
3730            ctxt: *mut ::std::os::raw::c_void,
3731            data: *mut BNBinaryView,
3732        ) -> *mut BNBinaryView,
3733    >,
3734    pub parse: ::std::option::Option<
3735        unsafe extern "C" fn(
3736            ctxt: *mut ::std::os::raw::c_void,
3737            data: *mut BNBinaryView,
3738        ) -> *mut BNBinaryView,
3739    >,
3740    pub isValidForData: ::std::option::Option<
3741        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, data: *mut BNBinaryView) -> bool,
3742    >,
3743    pub isDeprecated:
3744        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
3745    pub isForceLoadable:
3746        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
3747    pub getLoadSettingsForData: ::std::option::Option<
3748        unsafe extern "C" fn(
3749            ctxt: *mut ::std::os::raw::c_void,
3750            data: *mut BNBinaryView,
3751        ) -> *mut BNSettings,
3752    >,
3753    pub hasNoInitialContent:
3754        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
3755}
3756#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3757const _: () = {
3758    ["Size of BNCustomBinaryViewType"][::std::mem::size_of::<BNCustomBinaryViewType>() - 64usize];
3759    ["Alignment of BNCustomBinaryViewType"]
3760        [::std::mem::align_of::<BNCustomBinaryViewType>() - 8usize];
3761    ["Offset of field: BNCustomBinaryViewType::context"]
3762        [::std::mem::offset_of!(BNCustomBinaryViewType, context) - 0usize];
3763    ["Offset of field: BNCustomBinaryViewType::create"]
3764        [::std::mem::offset_of!(BNCustomBinaryViewType, create) - 8usize];
3765    ["Offset of field: BNCustomBinaryViewType::parse"]
3766        [::std::mem::offset_of!(BNCustomBinaryViewType, parse) - 16usize];
3767    ["Offset of field: BNCustomBinaryViewType::isValidForData"]
3768        [::std::mem::offset_of!(BNCustomBinaryViewType, isValidForData) - 24usize];
3769    ["Offset of field: BNCustomBinaryViewType::isDeprecated"]
3770        [::std::mem::offset_of!(BNCustomBinaryViewType, isDeprecated) - 32usize];
3771    ["Offset of field: BNCustomBinaryViewType::isForceLoadable"]
3772        [::std::mem::offset_of!(BNCustomBinaryViewType, isForceLoadable) - 40usize];
3773    ["Offset of field: BNCustomBinaryViewType::getLoadSettingsForData"]
3774        [::std::mem::offset_of!(BNCustomBinaryViewType, getLoadSettingsForData) - 48usize];
3775    ["Offset of field: BNCustomBinaryViewType::hasNoInitialContent"]
3776        [::std::mem::offset_of!(BNCustomBinaryViewType, hasNoInitialContent) - 56usize];
3777};
3778impl Default for BNCustomBinaryViewType {
3779    fn default() -> Self {
3780        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3781        unsafe {
3782            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3783            s.assume_init()
3784        }
3785    }
3786}
3787#[repr(C)]
3788#[derive(Debug, Copy, Clone)]
3789pub struct BNTransformParameterInfo {
3790    pub name: *mut ::std::os::raw::c_char,
3791    pub longName: *mut ::std::os::raw::c_char,
3792    #[doc = " Variable length if zero"]
3793    pub fixedLength: usize,
3794}
3795#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3796const _: () = {
3797    ["Size of BNTransformParameterInfo"]
3798        [::std::mem::size_of::<BNTransformParameterInfo>() - 24usize];
3799    ["Alignment of BNTransformParameterInfo"]
3800        [::std::mem::align_of::<BNTransformParameterInfo>() - 8usize];
3801    ["Offset of field: BNTransformParameterInfo::name"]
3802        [::std::mem::offset_of!(BNTransformParameterInfo, name) - 0usize];
3803    ["Offset of field: BNTransformParameterInfo::longName"]
3804        [::std::mem::offset_of!(BNTransformParameterInfo, longName) - 8usize];
3805    ["Offset of field: BNTransformParameterInfo::fixedLength"]
3806        [::std::mem::offset_of!(BNTransformParameterInfo, fixedLength) - 16usize];
3807};
3808impl Default for BNTransformParameterInfo {
3809    fn default() -> Self {
3810        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3811        unsafe {
3812            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3813            s.assume_init()
3814        }
3815    }
3816}
3817#[repr(C)]
3818#[derive(Debug, Copy, Clone)]
3819pub struct BNTransformParameter {
3820    pub name: *const ::std::os::raw::c_char,
3821    pub value: *mut BNDataBuffer,
3822}
3823#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3824const _: () = {
3825    ["Size of BNTransformParameter"][::std::mem::size_of::<BNTransformParameter>() - 16usize];
3826    ["Alignment of BNTransformParameter"][::std::mem::align_of::<BNTransformParameter>() - 8usize];
3827    ["Offset of field: BNTransformParameter::name"]
3828        [::std::mem::offset_of!(BNTransformParameter, name) - 0usize];
3829    ["Offset of field: BNTransformParameter::value"]
3830        [::std::mem::offset_of!(BNTransformParameter, value) - 8usize];
3831};
3832impl Default for BNTransformParameter {
3833    fn default() -> Self {
3834        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3835        unsafe {
3836            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3837            s.assume_init()
3838        }
3839    }
3840}
3841#[repr(C)]
3842#[derive(Debug, Copy, Clone)]
3843pub struct BNCustomTransform {
3844    pub context: *mut ::std::os::raw::c_void,
3845    pub getParameters: ::std::option::Option<
3846        unsafe extern "C" fn(
3847            ctxt: *mut ::std::os::raw::c_void,
3848            count: *mut usize,
3849        ) -> *mut BNTransformParameterInfo,
3850    >,
3851    pub freeParameters: ::std::option::Option<
3852        unsafe extern "C" fn(params: *mut BNTransformParameterInfo, count: usize),
3853    >,
3854    pub decode: ::std::option::Option<
3855        unsafe extern "C" fn(
3856            ctxt: *mut ::std::os::raw::c_void,
3857            input: *mut BNDataBuffer,
3858            output: *mut BNDataBuffer,
3859            params: *mut BNTransformParameter,
3860            paramCount: usize,
3861        ) -> bool,
3862    >,
3863    pub encode: ::std::option::Option<
3864        unsafe extern "C" fn(
3865            ctxt: *mut ::std::os::raw::c_void,
3866            input: *mut BNDataBuffer,
3867            output: *mut BNDataBuffer,
3868            params: *mut BNTransformParameter,
3869            paramCount: usize,
3870        ) -> bool,
3871    >,
3872    pub decodeWithContext: ::std::option::Option<
3873        unsafe extern "C" fn(
3874            ctxt: *mut ::std::os::raw::c_void,
3875            context: *mut BNTransformContext,
3876            params: *mut BNTransformParameter,
3877            paramCount: usize,
3878        ) -> bool,
3879    >,
3880    pub canDecode: ::std::option::Option<
3881        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, input: *mut BNBinaryView) -> bool,
3882    >,
3883}
3884#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3885const _: () = {
3886    ["Size of BNCustomTransform"][::std::mem::size_of::<BNCustomTransform>() - 56usize];
3887    ["Alignment of BNCustomTransform"][::std::mem::align_of::<BNCustomTransform>() - 8usize];
3888    ["Offset of field: BNCustomTransform::context"]
3889        [::std::mem::offset_of!(BNCustomTransform, context) - 0usize];
3890    ["Offset of field: BNCustomTransform::getParameters"]
3891        [::std::mem::offset_of!(BNCustomTransform, getParameters) - 8usize];
3892    ["Offset of field: BNCustomTransform::freeParameters"]
3893        [::std::mem::offset_of!(BNCustomTransform, freeParameters) - 16usize];
3894    ["Offset of field: BNCustomTransform::decode"]
3895        [::std::mem::offset_of!(BNCustomTransform, decode) - 24usize];
3896    ["Offset of field: BNCustomTransform::encode"]
3897        [::std::mem::offset_of!(BNCustomTransform, encode) - 32usize];
3898    ["Offset of field: BNCustomTransform::decodeWithContext"]
3899        [::std::mem::offset_of!(BNCustomTransform, decodeWithContext) - 40usize];
3900    ["Offset of field: BNCustomTransform::canDecode"]
3901        [::std::mem::offset_of!(BNCustomTransform, canDecode) - 48usize];
3902};
3903impl Default for BNCustomTransform {
3904    fn default() -> Self {
3905        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3906        unsafe {
3907            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3908            s.assume_init()
3909        }
3910    }
3911}
3912#[repr(C)]
3913#[derive(Debug, Copy, Clone)]
3914pub struct BNInstructionInfo {
3915    pub length: usize,
3916    pub branchCount: usize,
3917    pub archTransitionByTargetAddr: bool,
3918    pub delaySlots: u8,
3919    pub branchType: [BNBranchType; 3usize],
3920    pub branchTarget: [u64; 3usize],
3921    #[doc = " If null, same architecture as instruction"]
3922    pub branchArch: [*mut BNArchitecture; 3usize],
3923}
3924#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3925const _: () = {
3926    ["Size of BNInstructionInfo"][::std::mem::size_of::<BNInstructionInfo>() - 72usize];
3927    ["Alignment of BNInstructionInfo"][::std::mem::align_of::<BNInstructionInfo>() - 8usize];
3928    ["Offset of field: BNInstructionInfo::length"]
3929        [::std::mem::offset_of!(BNInstructionInfo, length) - 0usize];
3930    ["Offset of field: BNInstructionInfo::branchCount"]
3931        [::std::mem::offset_of!(BNInstructionInfo, branchCount) - 8usize];
3932    ["Offset of field: BNInstructionInfo::archTransitionByTargetAddr"]
3933        [::std::mem::offset_of!(BNInstructionInfo, archTransitionByTargetAddr) - 16usize];
3934    ["Offset of field: BNInstructionInfo::delaySlots"]
3935        [::std::mem::offset_of!(BNInstructionInfo, delaySlots) - 17usize];
3936    ["Offset of field: BNInstructionInfo::branchType"]
3937        [::std::mem::offset_of!(BNInstructionInfo, branchType) - 18usize];
3938    ["Offset of field: BNInstructionInfo::branchTarget"]
3939        [::std::mem::offset_of!(BNInstructionInfo, branchTarget) - 24usize];
3940    ["Offset of field: BNInstructionInfo::branchArch"]
3941        [::std::mem::offset_of!(BNInstructionInfo, branchArch) - 48usize];
3942};
3943impl Default for BNInstructionInfo {
3944    fn default() -> Self {
3945        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3946        unsafe {
3947            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3948            s.assume_init()
3949        }
3950    }
3951}
3952#[repr(u8)]
3953#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3954pub enum BNRelocationType {
3955    ELFGlobalRelocationType = 0,
3956    ELFCopyRelocationType = 1,
3957    ELFJumpSlotRelocationType = 2,
3958    StandardRelocationType = 3,
3959    IgnoredRelocation = 4,
3960    UnhandledRelocation = 5,
3961}
3962#[repr(C)]
3963#[derive(Debug, Copy, Clone)]
3964pub struct BNRelocationInfo {
3965    #[doc = " BinaryNinja Relocation Type"]
3966    pub type_: BNRelocationType,
3967    #[doc = " PC Relative or Absolute (subtract address from relocation)"]
3968    pub pcRelative: bool,
3969    #[doc = " Relative to start of module (Add module base to relocation)"]
3970    pub baseRelative: bool,
3971    #[doc = " Base address for this binary view"]
3972    pub base: u64,
3973    #[doc = " Size of the data to be written"]
3974    pub size: usize,
3975    #[doc = " After addition/subtraction truncate to"]
3976    pub truncateSize: usize,
3977    #[doc = " Base type from relocation entry"]
3978    pub nativeType: u64,
3979    #[doc = " Addend value from relocation entry"]
3980    pub addend: usize,
3981    #[doc = " Addend should be subtracted"]
3982    pub hasSign: bool,
3983    #[doc = " Addend should be read from the BinaryView"]
3984    pub implicitAddend: bool,
3985    #[doc = " Relocation entry points to external symbol"]
3986    pub external: bool,
3987    #[doc = " Index into symbol table"]
3988    pub symbolIndex: usize,
3989    #[doc = " Index into the section table"]
3990    pub sectionIndex: usize,
3991    #[doc = " Absolute address or segment offset"]
3992    pub address: u64,
3993    #[doc = " Target (set automatically)"]
3994    pub target: u64,
3995    #[doc = " This relocation is effecting data not code"]
3996    pub dataRelocation: bool,
3997    pub relocationDataCache: [u8; 8usize],
3998    #[doc = " Link to relocation another related relocation"]
3999    pub prev: *mut BNRelocationInfo,
4000    #[doc = " Link to relocation another related relocation"]
4001    pub next: *mut BNRelocationInfo,
4002}
4003#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4004const _: () = {
4005    ["Size of BNRelocationInfo"][::std::mem::size_of::<BNRelocationInfo>() - 120usize];
4006    ["Alignment of BNRelocationInfo"][::std::mem::align_of::<BNRelocationInfo>() - 8usize];
4007    ["Offset of field: BNRelocationInfo::type_"]
4008        [::std::mem::offset_of!(BNRelocationInfo, type_) - 0usize];
4009    ["Offset of field: BNRelocationInfo::pcRelative"]
4010        [::std::mem::offset_of!(BNRelocationInfo, pcRelative) - 1usize];
4011    ["Offset of field: BNRelocationInfo::baseRelative"]
4012        [::std::mem::offset_of!(BNRelocationInfo, baseRelative) - 2usize];
4013    ["Offset of field: BNRelocationInfo::base"]
4014        [::std::mem::offset_of!(BNRelocationInfo, base) - 8usize];
4015    ["Offset of field: BNRelocationInfo::size"]
4016        [::std::mem::offset_of!(BNRelocationInfo, size) - 16usize];
4017    ["Offset of field: BNRelocationInfo::truncateSize"]
4018        [::std::mem::offset_of!(BNRelocationInfo, truncateSize) - 24usize];
4019    ["Offset of field: BNRelocationInfo::nativeType"]
4020        [::std::mem::offset_of!(BNRelocationInfo, nativeType) - 32usize];
4021    ["Offset of field: BNRelocationInfo::addend"]
4022        [::std::mem::offset_of!(BNRelocationInfo, addend) - 40usize];
4023    ["Offset of field: BNRelocationInfo::hasSign"]
4024        [::std::mem::offset_of!(BNRelocationInfo, hasSign) - 48usize];
4025    ["Offset of field: BNRelocationInfo::implicitAddend"]
4026        [::std::mem::offset_of!(BNRelocationInfo, implicitAddend) - 49usize];
4027    ["Offset of field: BNRelocationInfo::external"]
4028        [::std::mem::offset_of!(BNRelocationInfo, external) - 50usize];
4029    ["Offset of field: BNRelocationInfo::symbolIndex"]
4030        [::std::mem::offset_of!(BNRelocationInfo, symbolIndex) - 56usize];
4031    ["Offset of field: BNRelocationInfo::sectionIndex"]
4032        [::std::mem::offset_of!(BNRelocationInfo, sectionIndex) - 64usize];
4033    ["Offset of field: BNRelocationInfo::address"]
4034        [::std::mem::offset_of!(BNRelocationInfo, address) - 72usize];
4035    ["Offset of field: BNRelocationInfo::target"]
4036        [::std::mem::offset_of!(BNRelocationInfo, target) - 80usize];
4037    ["Offset of field: BNRelocationInfo::dataRelocation"]
4038        [::std::mem::offset_of!(BNRelocationInfo, dataRelocation) - 88usize];
4039    ["Offset of field: BNRelocationInfo::relocationDataCache"]
4040        [::std::mem::offset_of!(BNRelocationInfo, relocationDataCache) - 89usize];
4041    ["Offset of field: BNRelocationInfo::prev"]
4042        [::std::mem::offset_of!(BNRelocationInfo, prev) - 104usize];
4043    ["Offset of field: BNRelocationInfo::next"]
4044        [::std::mem::offset_of!(BNRelocationInfo, next) - 112usize];
4045};
4046impl Default for BNRelocationInfo {
4047    fn default() -> Self {
4048        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4049        unsafe {
4050            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4051            s.assume_init()
4052        }
4053    }
4054}
4055#[repr(C)]
4056#[derive(Debug, Copy, Clone)]
4057pub struct BNInstructionTextToken {
4058    pub type_: BNInstructionTextTokenType,
4059    pub text: *mut ::std::os::raw::c_char,
4060    pub value: u64,
4061    pub width: u64,
4062    pub size: usize,
4063    pub operand: usize,
4064    pub context: BNInstructionTextTokenContext,
4065    pub confidence: u8,
4066    pub address: u64,
4067    pub typeNames: *mut *mut ::std::os::raw::c_char,
4068    pub namesCount: usize,
4069    pub exprIndex: usize,
4070}
4071#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4072const _: () = {
4073    ["Size of BNInstructionTextToken"][::std::mem::size_of::<BNInstructionTextToken>() - 88usize];
4074    ["Alignment of BNInstructionTextToken"]
4075        [::std::mem::align_of::<BNInstructionTextToken>() - 8usize];
4076    ["Offset of field: BNInstructionTextToken::type_"]
4077        [::std::mem::offset_of!(BNInstructionTextToken, type_) - 0usize];
4078    ["Offset of field: BNInstructionTextToken::text"]
4079        [::std::mem::offset_of!(BNInstructionTextToken, text) - 8usize];
4080    ["Offset of field: BNInstructionTextToken::value"]
4081        [::std::mem::offset_of!(BNInstructionTextToken, value) - 16usize];
4082    ["Offset of field: BNInstructionTextToken::width"]
4083        [::std::mem::offset_of!(BNInstructionTextToken, width) - 24usize];
4084    ["Offset of field: BNInstructionTextToken::size"]
4085        [::std::mem::offset_of!(BNInstructionTextToken, size) - 32usize];
4086    ["Offset of field: BNInstructionTextToken::operand"]
4087        [::std::mem::offset_of!(BNInstructionTextToken, operand) - 40usize];
4088    ["Offset of field: BNInstructionTextToken::context"]
4089        [::std::mem::offset_of!(BNInstructionTextToken, context) - 48usize];
4090    ["Offset of field: BNInstructionTextToken::confidence"]
4091        [::std::mem::offset_of!(BNInstructionTextToken, confidence) - 49usize];
4092    ["Offset of field: BNInstructionTextToken::address"]
4093        [::std::mem::offset_of!(BNInstructionTextToken, address) - 56usize];
4094    ["Offset of field: BNInstructionTextToken::typeNames"]
4095        [::std::mem::offset_of!(BNInstructionTextToken, typeNames) - 64usize];
4096    ["Offset of field: BNInstructionTextToken::namesCount"]
4097        [::std::mem::offset_of!(BNInstructionTextToken, namesCount) - 72usize];
4098    ["Offset of field: BNInstructionTextToken::exprIndex"]
4099        [::std::mem::offset_of!(BNInstructionTextToken, exprIndex) - 80usize];
4100};
4101impl Default for BNInstructionTextToken {
4102    fn default() -> Self {
4103        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4104        unsafe {
4105            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4106            s.assume_init()
4107        }
4108    }
4109}
4110#[repr(C)]
4111#[derive(Debug, Copy, Clone)]
4112pub struct BNInstructionTextLine {
4113    pub tokens: *mut BNInstructionTextToken,
4114    pub count: usize,
4115}
4116#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4117const _: () = {
4118    ["Size of BNInstructionTextLine"][::std::mem::size_of::<BNInstructionTextLine>() - 16usize];
4119    ["Alignment of BNInstructionTextLine"]
4120        [::std::mem::align_of::<BNInstructionTextLine>() - 8usize];
4121    ["Offset of field: BNInstructionTextLine::tokens"]
4122        [::std::mem::offset_of!(BNInstructionTextLine, tokens) - 0usize];
4123    ["Offset of field: BNInstructionTextLine::count"]
4124        [::std::mem::offset_of!(BNInstructionTextLine, count) - 8usize];
4125};
4126impl Default for BNInstructionTextLine {
4127    fn default() -> Self {
4128        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4129        unsafe {
4130            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4131            s.assume_init()
4132        }
4133    }
4134}
4135#[repr(u8)]
4136#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
4137pub enum BNTypeDefinitionLineType {
4138    TypedefLineType = 0,
4139    StructDefinitionLineType = 1,
4140    StructFieldLineType = 2,
4141    StructDefinitionEndLineType = 3,
4142    EnumDefinitionLineType = 4,
4143    EnumMemberLineType = 5,
4144    EnumDefinitionEndLineType = 6,
4145    PaddingLineType = 7,
4146    UndefinedXrefLineType = 8,
4147    CollapsedPaddingLineType = 9,
4148    EmptyLineType = 10,
4149}
4150#[repr(C)]
4151#[derive(Debug, Copy, Clone)]
4152pub struct BNTypeDefinitionLine {
4153    pub lineType: BNTypeDefinitionLineType,
4154    pub tokens: *mut BNInstructionTextToken,
4155    pub count: usize,
4156    pub type_: *mut BNType,
4157    pub parentType: *mut BNType,
4158    pub rootType: *mut BNType,
4159    pub rootTypeName: *mut ::std::os::raw::c_char,
4160    pub baseType: *mut BNNamedTypeReference,
4161    pub baseOffset: u64,
4162    pub offset: u64,
4163    pub fieldIndex: usize,
4164}
4165#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4166const _: () = {
4167    ["Size of BNTypeDefinitionLine"][::std::mem::size_of::<BNTypeDefinitionLine>() - 88usize];
4168    ["Alignment of BNTypeDefinitionLine"][::std::mem::align_of::<BNTypeDefinitionLine>() - 8usize];
4169    ["Offset of field: BNTypeDefinitionLine::lineType"]
4170        [::std::mem::offset_of!(BNTypeDefinitionLine, lineType) - 0usize];
4171    ["Offset of field: BNTypeDefinitionLine::tokens"]
4172        [::std::mem::offset_of!(BNTypeDefinitionLine, tokens) - 8usize];
4173    ["Offset of field: BNTypeDefinitionLine::count"]
4174        [::std::mem::offset_of!(BNTypeDefinitionLine, count) - 16usize];
4175    ["Offset of field: BNTypeDefinitionLine::type_"]
4176        [::std::mem::offset_of!(BNTypeDefinitionLine, type_) - 24usize];
4177    ["Offset of field: BNTypeDefinitionLine::parentType"]
4178        [::std::mem::offset_of!(BNTypeDefinitionLine, parentType) - 32usize];
4179    ["Offset of field: BNTypeDefinitionLine::rootType"]
4180        [::std::mem::offset_of!(BNTypeDefinitionLine, rootType) - 40usize];
4181    ["Offset of field: BNTypeDefinitionLine::rootTypeName"]
4182        [::std::mem::offset_of!(BNTypeDefinitionLine, rootTypeName) - 48usize];
4183    ["Offset of field: BNTypeDefinitionLine::baseType"]
4184        [::std::mem::offset_of!(BNTypeDefinitionLine, baseType) - 56usize];
4185    ["Offset of field: BNTypeDefinitionLine::baseOffset"]
4186        [::std::mem::offset_of!(BNTypeDefinitionLine, baseOffset) - 64usize];
4187    ["Offset of field: BNTypeDefinitionLine::offset"]
4188        [::std::mem::offset_of!(BNTypeDefinitionLine, offset) - 72usize];
4189    ["Offset of field: BNTypeDefinitionLine::fieldIndex"]
4190        [::std::mem::offset_of!(BNTypeDefinitionLine, fieldIndex) - 80usize];
4191};
4192impl Default for BNTypeDefinitionLine {
4193    fn default() -> Self {
4194        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4195        unsafe {
4196            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4197            s.assume_init()
4198        }
4199    }
4200}
4201#[repr(C)]
4202#[derive(Debug, Copy, Clone)]
4203pub struct BNFlagConditionForSemanticClass {
4204    pub semanticClass: u32,
4205    pub condition: BNLowLevelILFlagCondition,
4206}
4207#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4208const _: () = {
4209    ["Size of BNFlagConditionForSemanticClass"]
4210        [::std::mem::size_of::<BNFlagConditionForSemanticClass>() - 8usize];
4211    ["Alignment of BNFlagConditionForSemanticClass"]
4212        [::std::mem::align_of::<BNFlagConditionForSemanticClass>() - 4usize];
4213    ["Offset of field: BNFlagConditionForSemanticClass::semanticClass"]
4214        [::std::mem::offset_of!(BNFlagConditionForSemanticClass, semanticClass) - 0usize];
4215    ["Offset of field: BNFlagConditionForSemanticClass::condition"]
4216        [::std::mem::offset_of!(BNFlagConditionForSemanticClass, condition) - 4usize];
4217};
4218impl Default for BNFlagConditionForSemanticClass {
4219    fn default() -> Self {
4220        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4221        unsafe {
4222            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4223            s.assume_init()
4224        }
4225    }
4226}
4227#[repr(C)]
4228#[derive(Debug, Copy, Clone)]
4229pub struct BNNameAndType {
4230    pub name: *mut ::std::os::raw::c_char,
4231    pub type_: *mut BNType,
4232    pub typeConfidence: u8,
4233}
4234#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4235const _: () = {
4236    ["Size of BNNameAndType"][::std::mem::size_of::<BNNameAndType>() - 24usize];
4237    ["Alignment of BNNameAndType"][::std::mem::align_of::<BNNameAndType>() - 8usize];
4238    ["Offset of field: BNNameAndType::name"][::std::mem::offset_of!(BNNameAndType, name) - 0usize];
4239    ["Offset of field: BNNameAndType::type_"]
4240        [::std::mem::offset_of!(BNNameAndType, type_) - 8usize];
4241    ["Offset of field: BNNameAndType::typeConfidence"]
4242        [::std::mem::offset_of!(BNNameAndType, typeConfidence) - 16usize];
4243};
4244impl Default for BNNameAndType {
4245    fn default() -> Self {
4246        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4247        unsafe {
4248            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4249            s.assume_init()
4250        }
4251    }
4252}
4253#[repr(C)]
4254#[derive(Debug, Copy, Clone)]
4255pub struct BNTypeWithConfidence {
4256    pub type_: *mut BNType,
4257    pub confidence: u8,
4258}
4259#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4260const _: () = {
4261    ["Size of BNTypeWithConfidence"][::std::mem::size_of::<BNTypeWithConfidence>() - 16usize];
4262    ["Alignment of BNTypeWithConfidence"][::std::mem::align_of::<BNTypeWithConfidence>() - 8usize];
4263    ["Offset of field: BNTypeWithConfidence::type_"]
4264        [::std::mem::offset_of!(BNTypeWithConfidence, type_) - 0usize];
4265    ["Offset of field: BNTypeWithConfidence::confidence"]
4266        [::std::mem::offset_of!(BNTypeWithConfidence, confidence) - 8usize];
4267};
4268impl Default for BNTypeWithConfidence {
4269    fn default() -> Self {
4270        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4271        unsafe {
4272            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4273            s.assume_init()
4274        }
4275    }
4276}
4277#[repr(u8)]
4278#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
4279pub enum BNFunctionAnalysisSkipOverride {
4280    DefaultFunctionAnalysisSkip = 0,
4281    NeverSkipFunctionAnalysis = 1,
4282    AlwaysSkipFunctionAnalysis = 2,
4283}
4284#[repr(C)]
4285#[derive(Debug, Copy, Clone)]
4286pub struct BNBasicBlockAnalysisContext {
4287    pub function: *mut BNFunction,
4288    #[doc = " IN"]
4289    pub analysisSkipOverride: BNFunctionAnalysisSkipOverride,
4290    pub guidedAnalysisMode: bool,
4291    pub triggerGuidedOnInvalidInstruction: bool,
4292    pub translateTailCalls: bool,
4293    pub disallowBranchToString: bool,
4294    pub maxFunctionSize: u64,
4295    pub indirectBranchesCount: usize,
4296    pub indirectBranches: *mut BNIndirectBranchInfo,
4297    pub indirectNoReturnCallsCount: usize,
4298    pub indirectNoReturnCalls: *mut BNArchitectureAndAddress,
4299    #[doc = " OUT; can be set directly"]
4300    pub maxSizeReached: bool,
4301    #[doc = " IN *and* OUT"]
4302    pub contextualFunctionReturnCount: usize,
4303    pub contextualFunctionReturnLocations: *mut BNArchitectureAndAddress,
4304    pub contextualFunctionReturnValues: *mut bool,
4305    #[doc = " OUT"]
4306    pub directRefCount: usize,
4307    pub directRefSources: *mut BNArchitectureAndAddress,
4308    pub directRefTargets: *mut u64,
4309    pub directNoReturnCallsCount: usize,
4310    pub directNoReturnCalls: *mut BNArchitectureAndAddress,
4311    pub haltedDisassemblyAddressesCount: usize,
4312    pub haltedDisassemblyAddresses: *mut BNArchitectureAndAddress,
4313    pub inlinedUnresolvedIndirectBranchCount: usize,
4314    pub inlinedUnresolvedIndirectBranches: *mut BNArchitectureAndAddress,
4315    pub functionArchContext: *mut ::std::os::raw::c_void,
4316}
4317#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4318const _: () = {
4319    ["Size of BNBasicBlockAnalysisContext"]
4320        [::std::mem::size_of::<BNBasicBlockAnalysisContext>() - 168usize];
4321    ["Alignment of BNBasicBlockAnalysisContext"]
4322        [::std::mem::align_of::<BNBasicBlockAnalysisContext>() - 8usize];
4323    ["Offset of field: BNBasicBlockAnalysisContext::function"]
4324        [::std::mem::offset_of!(BNBasicBlockAnalysisContext, function) - 0usize];
4325    ["Offset of field: BNBasicBlockAnalysisContext::analysisSkipOverride"]
4326        [::std::mem::offset_of!(BNBasicBlockAnalysisContext, analysisSkipOverride) - 8usize];
4327    ["Offset of field: BNBasicBlockAnalysisContext::guidedAnalysisMode"]
4328        [::std::mem::offset_of!(BNBasicBlockAnalysisContext, guidedAnalysisMode) - 9usize];
4329    ["Offset of field: BNBasicBlockAnalysisContext::triggerGuidedOnInvalidInstruction"][::std::mem::offset_of!(
4330        BNBasicBlockAnalysisContext,
4331        triggerGuidedOnInvalidInstruction
4332    )
4333        - 10usize];
4334    ["Offset of field: BNBasicBlockAnalysisContext::translateTailCalls"]
4335        [::std::mem::offset_of!(BNBasicBlockAnalysisContext, translateTailCalls) - 11usize];
4336    ["Offset of field: BNBasicBlockAnalysisContext::disallowBranchToString"]
4337        [::std::mem::offset_of!(BNBasicBlockAnalysisContext, disallowBranchToString) - 12usize];
4338    ["Offset of field: BNBasicBlockAnalysisContext::maxFunctionSize"]
4339        [::std::mem::offset_of!(BNBasicBlockAnalysisContext, maxFunctionSize) - 16usize];
4340    ["Offset of field: BNBasicBlockAnalysisContext::indirectBranchesCount"]
4341        [::std::mem::offset_of!(BNBasicBlockAnalysisContext, indirectBranchesCount) - 24usize];
4342    ["Offset of field: BNBasicBlockAnalysisContext::indirectBranches"]
4343        [::std::mem::offset_of!(BNBasicBlockAnalysisContext, indirectBranches) - 32usize];
4344    ["Offset of field: BNBasicBlockAnalysisContext::indirectNoReturnCallsCount"]
4345        [::std::mem::offset_of!(BNBasicBlockAnalysisContext, indirectNoReturnCallsCount) - 40usize];
4346    ["Offset of field: BNBasicBlockAnalysisContext::indirectNoReturnCalls"]
4347        [::std::mem::offset_of!(BNBasicBlockAnalysisContext, indirectNoReturnCalls) - 48usize];
4348    ["Offset of field: BNBasicBlockAnalysisContext::maxSizeReached"]
4349        [::std::mem::offset_of!(BNBasicBlockAnalysisContext, maxSizeReached) - 56usize];
4350    ["Offset of field: BNBasicBlockAnalysisContext::contextualFunctionReturnCount"][::std::mem::offset_of!(
4351        BNBasicBlockAnalysisContext,
4352        contextualFunctionReturnCount
4353    ) - 64usize];
4354    ["Offset of field: BNBasicBlockAnalysisContext::contextualFunctionReturnLocations"][::std::mem::offset_of!(
4355        BNBasicBlockAnalysisContext,
4356        contextualFunctionReturnLocations
4357    )
4358        - 72usize];
4359    ["Offset of field: BNBasicBlockAnalysisContext::contextualFunctionReturnValues"][::std::mem::offset_of!(
4360        BNBasicBlockAnalysisContext,
4361        contextualFunctionReturnValues
4362    ) - 80usize];
4363    ["Offset of field: BNBasicBlockAnalysisContext::directRefCount"]
4364        [::std::mem::offset_of!(BNBasicBlockAnalysisContext, directRefCount) - 88usize];
4365    ["Offset of field: BNBasicBlockAnalysisContext::directRefSources"]
4366        [::std::mem::offset_of!(BNBasicBlockAnalysisContext, directRefSources) - 96usize];
4367    ["Offset of field: BNBasicBlockAnalysisContext::directRefTargets"]
4368        [::std::mem::offset_of!(BNBasicBlockAnalysisContext, directRefTargets) - 104usize];
4369    ["Offset of field: BNBasicBlockAnalysisContext::directNoReturnCallsCount"]
4370        [::std::mem::offset_of!(BNBasicBlockAnalysisContext, directNoReturnCallsCount) - 112usize];
4371    ["Offset of field: BNBasicBlockAnalysisContext::directNoReturnCalls"]
4372        [::std::mem::offset_of!(BNBasicBlockAnalysisContext, directNoReturnCalls) - 120usize];
4373    ["Offset of field: BNBasicBlockAnalysisContext::haltedDisassemblyAddressesCount"][::std::mem::offset_of!(
4374        BNBasicBlockAnalysisContext,
4375        haltedDisassemblyAddressesCount
4376    ) - 128usize];
4377    ["Offset of field: BNBasicBlockAnalysisContext::haltedDisassemblyAddresses"][::std::mem::offset_of!(
4378        BNBasicBlockAnalysisContext,
4379        haltedDisassemblyAddresses
4380    ) - 136usize];
4381    ["Offset of field: BNBasicBlockAnalysisContext::inlinedUnresolvedIndirectBranchCount"][::std::mem::offset_of!(
4382        BNBasicBlockAnalysisContext,
4383        inlinedUnresolvedIndirectBranchCount
4384    )
4385        - 144usize];
4386    ["Offset of field: BNBasicBlockAnalysisContext::inlinedUnresolvedIndirectBranches"][::std::mem::offset_of!(
4387        BNBasicBlockAnalysisContext,
4388        inlinedUnresolvedIndirectBranches
4389    )
4390        - 152usize];
4391    ["Offset of field: BNBasicBlockAnalysisContext::functionArchContext"]
4392        [::std::mem::offset_of!(BNBasicBlockAnalysisContext, functionArchContext) - 160usize];
4393};
4394impl Default for BNBasicBlockAnalysisContext {
4395    fn default() -> Self {
4396        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4397        unsafe {
4398            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4399            s.assume_init()
4400        }
4401    }
4402}
4403#[repr(C)]
4404#[derive(Debug, Copy, Clone)]
4405pub struct BNFunctionLifterContext {
4406    #[doc = " IN"]
4407    pub platform: *mut BNPlatform,
4408    pub logger: *mut BNLogger,
4409    pub basicBlockCount: usize,
4410    pub basicBlocks: *mut *mut BNBasicBlock,
4411    pub inlinedRemappingEntryCount: usize,
4412    pub inlinedRemappingKeys: *mut BNArchitectureAndAddress,
4413    pub inlinedRemappingValues: *mut BNArchitectureAndAddress,
4414    pub indirectBranchesCount: usize,
4415    pub indirectBranches: *mut BNIndirectBranchInfo,
4416    pub noReturnCallsCount: usize,
4417    pub noReturnCalls: *mut BNArchitectureAndAddress,
4418    pub contextualFunctionReturnCount: usize,
4419    pub contextualFunctionReturnLocations: *mut BNArchitectureAndAddress,
4420    pub contextualFunctionReturnValues: *mut bool,
4421    pub inlinedCallsCount: usize,
4422    pub inlinedCalls: *mut u64,
4423    pub functionArchContext: *mut ::std::os::raw::c_void,
4424    #[doc = " OUT"]
4425    pub containsInlinedFunctions: *mut bool,
4426}
4427#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4428const _: () = {
4429    ["Size of BNFunctionLifterContext"]
4430        [::std::mem::size_of::<BNFunctionLifterContext>() - 144usize];
4431    ["Alignment of BNFunctionLifterContext"]
4432        [::std::mem::align_of::<BNFunctionLifterContext>() - 8usize];
4433    ["Offset of field: BNFunctionLifterContext::platform"]
4434        [::std::mem::offset_of!(BNFunctionLifterContext, platform) - 0usize];
4435    ["Offset of field: BNFunctionLifterContext::logger"]
4436        [::std::mem::offset_of!(BNFunctionLifterContext, logger) - 8usize];
4437    ["Offset of field: BNFunctionLifterContext::basicBlockCount"]
4438        [::std::mem::offset_of!(BNFunctionLifterContext, basicBlockCount) - 16usize];
4439    ["Offset of field: BNFunctionLifterContext::basicBlocks"]
4440        [::std::mem::offset_of!(BNFunctionLifterContext, basicBlocks) - 24usize];
4441    ["Offset of field: BNFunctionLifterContext::inlinedRemappingEntryCount"]
4442        [::std::mem::offset_of!(BNFunctionLifterContext, inlinedRemappingEntryCount) - 32usize];
4443    ["Offset of field: BNFunctionLifterContext::inlinedRemappingKeys"]
4444        [::std::mem::offset_of!(BNFunctionLifterContext, inlinedRemappingKeys) - 40usize];
4445    ["Offset of field: BNFunctionLifterContext::inlinedRemappingValues"]
4446        [::std::mem::offset_of!(BNFunctionLifterContext, inlinedRemappingValues) - 48usize];
4447    ["Offset of field: BNFunctionLifterContext::indirectBranchesCount"]
4448        [::std::mem::offset_of!(BNFunctionLifterContext, indirectBranchesCount) - 56usize];
4449    ["Offset of field: BNFunctionLifterContext::indirectBranches"]
4450        [::std::mem::offset_of!(BNFunctionLifterContext, indirectBranches) - 64usize];
4451    ["Offset of field: BNFunctionLifterContext::noReturnCallsCount"]
4452        [::std::mem::offset_of!(BNFunctionLifterContext, noReturnCallsCount) - 72usize];
4453    ["Offset of field: BNFunctionLifterContext::noReturnCalls"]
4454        [::std::mem::offset_of!(BNFunctionLifterContext, noReturnCalls) - 80usize];
4455    ["Offset of field: BNFunctionLifterContext::contextualFunctionReturnCount"]
4456        [::std::mem::offset_of!(BNFunctionLifterContext, contextualFunctionReturnCount) - 88usize];
4457    ["Offset of field: BNFunctionLifterContext::contextualFunctionReturnLocations"][::std::mem::offset_of!(
4458        BNFunctionLifterContext,
4459        contextualFunctionReturnLocations
4460    ) - 96usize];
4461    ["Offset of field: BNFunctionLifterContext::contextualFunctionReturnValues"][::std::mem::offset_of!(
4462        BNFunctionLifterContext,
4463        contextualFunctionReturnValues
4464    ) - 104usize];
4465    ["Offset of field: BNFunctionLifterContext::inlinedCallsCount"]
4466        [::std::mem::offset_of!(BNFunctionLifterContext, inlinedCallsCount) - 112usize];
4467    ["Offset of field: BNFunctionLifterContext::inlinedCalls"]
4468        [::std::mem::offset_of!(BNFunctionLifterContext, inlinedCalls) - 120usize];
4469    ["Offset of field: BNFunctionLifterContext::functionArchContext"]
4470        [::std::mem::offset_of!(BNFunctionLifterContext, functionArchContext) - 128usize];
4471    ["Offset of field: BNFunctionLifterContext::containsInlinedFunctions"]
4472        [::std::mem::offset_of!(BNFunctionLifterContext, containsInlinedFunctions) - 136usize];
4473};
4474impl Default for BNFunctionLifterContext {
4475    fn default() -> Self {
4476        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4477        unsafe {
4478            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4479            s.assume_init()
4480        }
4481    }
4482}
4483#[repr(C)]
4484#[derive(Debug, Copy, Clone)]
4485pub struct BNCustomArchitecture {
4486    pub context: *mut ::std::os::raw::c_void,
4487    pub init: ::std::option::Option<
4488        unsafe extern "C" fn(context: *mut ::std::os::raw::c_void, obj: *mut BNArchitecture),
4489    >,
4490    pub getEndianness: ::std::option::Option<
4491        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> BNEndianness,
4492    >,
4493    pub getAddressSize:
4494        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> usize>,
4495    pub getDefaultIntegerSize:
4496        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> usize>,
4497    pub getInstructionAlignment:
4498        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> usize>,
4499    pub getMaxInstructionLength:
4500        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> usize>,
4501    pub getOpcodeDisplayLength:
4502        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> usize>,
4503    pub getAssociatedArchitectureByAddress: ::std::option::Option<
4504        unsafe extern "C" fn(
4505            ctxt: *mut ::std::os::raw::c_void,
4506            addr: *mut u64,
4507        ) -> *mut BNArchitecture,
4508    >,
4509    pub getInstructionInfo: ::std::option::Option<
4510        unsafe extern "C" fn(
4511            ctxt: *mut ::std::os::raw::c_void,
4512            data: *const u8,
4513            addr: u64,
4514            maxLen: usize,
4515            result: *mut BNInstructionInfo,
4516        ) -> bool,
4517    >,
4518    pub getInstructionText: ::std::option::Option<
4519        unsafe extern "C" fn(
4520            ctxt: *mut ::std::os::raw::c_void,
4521            data: *const u8,
4522            addr: u64,
4523            len: *mut usize,
4524            result: *mut *mut BNInstructionTextToken,
4525            count: *mut usize,
4526        ) -> bool,
4527    >,
4528    pub getInstructionTextWithContext: ::std::option::Option<
4529        unsafe extern "C" fn(
4530            ctxt: *mut ::std::os::raw::c_void,
4531            data: *const u8,
4532            addr: u64,
4533            len: *mut usize,
4534            context: *mut ::std::os::raw::c_void,
4535            result: *mut *mut BNInstructionTextToken,
4536            count: *mut usize,
4537        ) -> bool,
4538    >,
4539    pub freeInstructionText: ::std::option::Option<
4540        unsafe extern "C" fn(tokens: *mut BNInstructionTextToken, count: usize),
4541    >,
4542    pub getInstructionLowLevelIL: ::std::option::Option<
4543        unsafe extern "C" fn(
4544            ctxt: *mut ::std::os::raw::c_void,
4545            data: *const u8,
4546            addr: u64,
4547            len: *mut usize,
4548            il: *mut BNLowLevelILFunction,
4549        ) -> bool,
4550    >,
4551    pub analyzeBasicBlocks: ::std::option::Option<
4552        unsafe extern "C" fn(
4553            ctxt: *mut ::std::os::raw::c_void,
4554            function: *mut BNFunction,
4555            context: *mut BNBasicBlockAnalysisContext,
4556        ),
4557    >,
4558    pub liftFunction: ::std::option::Option<
4559        unsafe extern "C" fn(
4560            ctext: *mut ::std::os::raw::c_void,
4561            function: *mut BNLowLevelILFunction,
4562            context: *mut BNFunctionLifterContext,
4563        ) -> bool,
4564    >,
4565    pub freeFunctionArchContext: ::std::option::Option<
4566        unsafe extern "C" fn(
4567            ctxt: *mut ::std::os::raw::c_void,
4568            context: *mut ::std::os::raw::c_void,
4569        ),
4570    >,
4571    pub getRegisterName: ::std::option::Option<
4572        unsafe extern "C" fn(
4573            ctxt: *mut ::std::os::raw::c_void,
4574            reg: u32,
4575        ) -> *mut ::std::os::raw::c_char,
4576    >,
4577    pub getFlagName: ::std::option::Option<
4578        unsafe extern "C" fn(
4579            ctxt: *mut ::std::os::raw::c_void,
4580            flag: u32,
4581        ) -> *mut ::std::os::raw::c_char,
4582    >,
4583    pub getFlagWriteTypeName: ::std::option::Option<
4584        unsafe extern "C" fn(
4585            ctxt: *mut ::std::os::raw::c_void,
4586            flags: u32,
4587        ) -> *mut ::std::os::raw::c_char,
4588    >,
4589    pub getSemanticFlagClassName: ::std::option::Option<
4590        unsafe extern "C" fn(
4591            ctxt: *mut ::std::os::raw::c_void,
4592            semClass: u32,
4593        ) -> *mut ::std::os::raw::c_char,
4594    >,
4595    pub getSemanticFlagGroupName: ::std::option::Option<
4596        unsafe extern "C" fn(
4597            ctxt: *mut ::std::os::raw::c_void,
4598            semGroup: u32,
4599        ) -> *mut ::std::os::raw::c_char,
4600    >,
4601    pub getFullWidthRegisters: ::std::option::Option<
4602        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
4603    >,
4604    pub getAllRegisters: ::std::option::Option<
4605        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
4606    >,
4607    pub getAllFlags: ::std::option::Option<
4608        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
4609    >,
4610    pub getAllFlagWriteTypes: ::std::option::Option<
4611        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
4612    >,
4613    pub getAllSemanticFlagClasses: ::std::option::Option<
4614        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
4615    >,
4616    pub getAllSemanticFlagGroups: ::std::option::Option<
4617        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
4618    >,
4619    pub getFlagRole: ::std::option::Option<
4620        unsafe extern "C" fn(
4621            ctxt: *mut ::std::os::raw::c_void,
4622            flag: u32,
4623            semClass: u32,
4624        ) -> BNFlagRole,
4625    >,
4626    pub getFlagsRequiredForFlagCondition: ::std::option::Option<
4627        unsafe extern "C" fn(
4628            ctxt: *mut ::std::os::raw::c_void,
4629            cond: BNLowLevelILFlagCondition,
4630            semClass: u32,
4631            count: *mut usize,
4632        ) -> *mut u32,
4633    >,
4634    pub getFlagsRequiredForSemanticFlagGroup: ::std::option::Option<
4635        unsafe extern "C" fn(
4636            ctxt: *mut ::std::os::raw::c_void,
4637            semGroup: u32,
4638            count: *mut usize,
4639        ) -> *mut u32,
4640    >,
4641    pub getFlagConditionsForSemanticFlagGroup: ::std::option::Option<
4642        unsafe extern "C" fn(
4643            ctxt: *mut ::std::os::raw::c_void,
4644            semGroup: u32,
4645            count: *mut usize,
4646        ) -> *mut BNFlagConditionForSemanticClass,
4647    >,
4648    pub freeFlagConditionsForSemanticFlagGroup: ::std::option::Option<
4649        unsafe extern "C" fn(
4650            ctxt: *mut ::std::os::raw::c_void,
4651            conditions: *mut BNFlagConditionForSemanticClass,
4652            count: usize,
4653        ),
4654    >,
4655    pub getFlagsWrittenByFlagWriteType: ::std::option::Option<
4656        unsafe extern "C" fn(
4657            ctxt: *mut ::std::os::raw::c_void,
4658            writeType: u32,
4659            count: *mut usize,
4660        ) -> *mut u32,
4661    >,
4662    pub getSemanticClassForFlagWriteType: ::std::option::Option<
4663        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, writeType: u32) -> u32,
4664    >,
4665    pub getFlagWriteLowLevelIL: ::std::option::Option<
4666        unsafe extern "C" fn(
4667            ctxt: *mut ::std::os::raw::c_void,
4668            op: BNLowLevelILOperation,
4669            size: usize,
4670            flagWriteType: u32,
4671            flag: u32,
4672            operands: *mut BNRegisterOrConstant,
4673            operandCount: usize,
4674            il: *mut BNLowLevelILFunction,
4675        ) -> usize,
4676    >,
4677    pub getFlagConditionLowLevelIL: ::std::option::Option<
4678        unsafe extern "C" fn(
4679            ctxt: *mut ::std::os::raw::c_void,
4680            cond: BNLowLevelILFlagCondition,
4681            semClass: u32,
4682            il: *mut BNLowLevelILFunction,
4683        ) -> usize,
4684    >,
4685    pub getSemanticFlagGroupLowLevelIL: ::std::option::Option<
4686        unsafe extern "C" fn(
4687            ctxt: *mut ::std::os::raw::c_void,
4688            semGroup: u32,
4689            il: *mut BNLowLevelILFunction,
4690        ) -> usize,
4691    >,
4692    pub freeRegisterList: ::std::option::Option<
4693        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, regs: *mut u32, count: usize),
4694    >,
4695    pub getRegisterInfo: ::std::option::Option<
4696        unsafe extern "C" fn(
4697            ctxt: *mut ::std::os::raw::c_void,
4698            reg: u32,
4699            result: *mut BNRegisterInfo,
4700        ),
4701    >,
4702    pub getStackPointerRegister:
4703        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> u32>,
4704    pub getLinkRegister:
4705        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> u32>,
4706    pub getGlobalRegisters: ::std::option::Option<
4707        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
4708    >,
4709    pub getSystemRegisters: ::std::option::Option<
4710        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
4711    >,
4712    pub getRegisterStackName: ::std::option::Option<
4713        unsafe extern "C" fn(
4714            ctxt: *mut ::std::os::raw::c_void,
4715            regStack: u32,
4716        ) -> *mut ::std::os::raw::c_char,
4717    >,
4718    pub getAllRegisterStacks: ::std::option::Option<
4719        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
4720    >,
4721    pub getRegisterStackInfo: ::std::option::Option<
4722        unsafe extern "C" fn(
4723            ctxt: *mut ::std::os::raw::c_void,
4724            regStack: u32,
4725            result: *mut BNRegisterStackInfo,
4726        ),
4727    >,
4728    pub getIntrinsicClass: ::std::option::Option<
4729        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, intrinsic: u32) -> BNIntrinsicClass,
4730    >,
4731    pub getIntrinsicName: ::std::option::Option<
4732        unsafe extern "C" fn(
4733            ctxt: *mut ::std::os::raw::c_void,
4734            intrinsic: u32,
4735        ) -> *mut ::std::os::raw::c_char,
4736    >,
4737    pub getAllIntrinsics: ::std::option::Option<
4738        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
4739    >,
4740    pub getIntrinsicInputs: ::std::option::Option<
4741        unsafe extern "C" fn(
4742            ctxt: *mut ::std::os::raw::c_void,
4743            intrinsic: u32,
4744            count: *mut usize,
4745        ) -> *mut BNNameAndType,
4746    >,
4747    pub freeNameAndTypeList: ::std::option::Option<
4748        unsafe extern "C" fn(
4749            ctxt: *mut ::std::os::raw::c_void,
4750            nt: *mut BNNameAndType,
4751            count: usize,
4752        ),
4753    >,
4754    pub getIntrinsicOutputs: ::std::option::Option<
4755        unsafe extern "C" fn(
4756            ctxt: *mut ::std::os::raw::c_void,
4757            intrinsic: u32,
4758            count: *mut usize,
4759        ) -> *mut BNTypeWithConfidence,
4760    >,
4761    pub freeTypeList: ::std::option::Option<
4762        unsafe extern "C" fn(
4763            ctxt: *mut ::std::os::raw::c_void,
4764            types: *mut BNTypeWithConfidence,
4765            count: usize,
4766        ),
4767    >,
4768    pub canAssemble:
4769        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
4770    pub assemble: ::std::option::Option<
4771        unsafe extern "C" fn(
4772            ctxt: *mut ::std::os::raw::c_void,
4773            code: *const ::std::os::raw::c_char,
4774            addr: u64,
4775            result: *mut BNDataBuffer,
4776            errors: *mut *mut ::std::os::raw::c_char,
4777        ) -> bool,
4778    >,
4779    pub isNeverBranchPatchAvailable: ::std::option::Option<
4780        unsafe extern "C" fn(
4781            ctxt: *mut ::std::os::raw::c_void,
4782            data: *const u8,
4783            addr: u64,
4784            len: usize,
4785        ) -> bool,
4786    >,
4787    pub isAlwaysBranchPatchAvailable: ::std::option::Option<
4788        unsafe extern "C" fn(
4789            ctxt: *mut ::std::os::raw::c_void,
4790            data: *const u8,
4791            addr: u64,
4792            len: usize,
4793        ) -> bool,
4794    >,
4795    pub isInvertBranchPatchAvailable: ::std::option::Option<
4796        unsafe extern "C" fn(
4797            ctxt: *mut ::std::os::raw::c_void,
4798            data: *const u8,
4799            addr: u64,
4800            len: usize,
4801        ) -> bool,
4802    >,
4803    pub isSkipAndReturnZeroPatchAvailable: ::std::option::Option<
4804        unsafe extern "C" fn(
4805            ctxt: *mut ::std::os::raw::c_void,
4806            data: *const u8,
4807            addr: u64,
4808            len: usize,
4809        ) -> bool,
4810    >,
4811    pub isSkipAndReturnValuePatchAvailable: ::std::option::Option<
4812        unsafe extern "C" fn(
4813            ctxt: *mut ::std::os::raw::c_void,
4814            data: *const u8,
4815            addr: u64,
4816            len: usize,
4817        ) -> bool,
4818    >,
4819    pub convertToNop: ::std::option::Option<
4820        unsafe extern "C" fn(
4821            ctxt: *mut ::std::os::raw::c_void,
4822            data: *mut u8,
4823            addr: u64,
4824            len: usize,
4825        ) -> bool,
4826    >,
4827    pub alwaysBranch: ::std::option::Option<
4828        unsafe extern "C" fn(
4829            ctxt: *mut ::std::os::raw::c_void,
4830            data: *mut u8,
4831            addr: u64,
4832            len: usize,
4833        ) -> bool,
4834    >,
4835    pub invertBranch: ::std::option::Option<
4836        unsafe extern "C" fn(
4837            ctxt: *mut ::std::os::raw::c_void,
4838            data: *mut u8,
4839            addr: u64,
4840            len: usize,
4841        ) -> bool,
4842    >,
4843    pub skipAndReturnValue: ::std::option::Option<
4844        unsafe extern "C" fn(
4845            ctxt: *mut ::std::os::raw::c_void,
4846            data: *mut u8,
4847            addr: u64,
4848            len: usize,
4849            value: u64,
4850        ) -> bool,
4851    >,
4852}
4853#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4854const _: () = {
4855    ["Size of BNCustomArchitecture"][::std::mem::size_of::<BNCustomArchitecture>() - 520usize];
4856    ["Alignment of BNCustomArchitecture"][::std::mem::align_of::<BNCustomArchitecture>() - 8usize];
4857    ["Offset of field: BNCustomArchitecture::context"]
4858        [::std::mem::offset_of!(BNCustomArchitecture, context) - 0usize];
4859    ["Offset of field: BNCustomArchitecture::init"]
4860        [::std::mem::offset_of!(BNCustomArchitecture, init) - 8usize];
4861    ["Offset of field: BNCustomArchitecture::getEndianness"]
4862        [::std::mem::offset_of!(BNCustomArchitecture, getEndianness) - 16usize];
4863    ["Offset of field: BNCustomArchitecture::getAddressSize"]
4864        [::std::mem::offset_of!(BNCustomArchitecture, getAddressSize) - 24usize];
4865    ["Offset of field: BNCustomArchitecture::getDefaultIntegerSize"]
4866        [::std::mem::offset_of!(BNCustomArchitecture, getDefaultIntegerSize) - 32usize];
4867    ["Offset of field: BNCustomArchitecture::getInstructionAlignment"]
4868        [::std::mem::offset_of!(BNCustomArchitecture, getInstructionAlignment) - 40usize];
4869    ["Offset of field: BNCustomArchitecture::getMaxInstructionLength"]
4870        [::std::mem::offset_of!(BNCustomArchitecture, getMaxInstructionLength) - 48usize];
4871    ["Offset of field: BNCustomArchitecture::getOpcodeDisplayLength"]
4872        [::std::mem::offset_of!(BNCustomArchitecture, getOpcodeDisplayLength) - 56usize];
4873    ["Offset of field: BNCustomArchitecture::getAssociatedArchitectureByAddress"][::std::mem::offset_of!(
4874        BNCustomArchitecture,
4875        getAssociatedArchitectureByAddress
4876    ) - 64usize];
4877    ["Offset of field: BNCustomArchitecture::getInstructionInfo"]
4878        [::std::mem::offset_of!(BNCustomArchitecture, getInstructionInfo) - 72usize];
4879    ["Offset of field: BNCustomArchitecture::getInstructionText"]
4880        [::std::mem::offset_of!(BNCustomArchitecture, getInstructionText) - 80usize];
4881    ["Offset of field: BNCustomArchitecture::getInstructionTextWithContext"]
4882        [::std::mem::offset_of!(BNCustomArchitecture, getInstructionTextWithContext) - 88usize];
4883    ["Offset of field: BNCustomArchitecture::freeInstructionText"]
4884        [::std::mem::offset_of!(BNCustomArchitecture, freeInstructionText) - 96usize];
4885    ["Offset of field: BNCustomArchitecture::getInstructionLowLevelIL"]
4886        [::std::mem::offset_of!(BNCustomArchitecture, getInstructionLowLevelIL) - 104usize];
4887    ["Offset of field: BNCustomArchitecture::analyzeBasicBlocks"]
4888        [::std::mem::offset_of!(BNCustomArchitecture, analyzeBasicBlocks) - 112usize];
4889    ["Offset of field: BNCustomArchitecture::liftFunction"]
4890        [::std::mem::offset_of!(BNCustomArchitecture, liftFunction) - 120usize];
4891    ["Offset of field: BNCustomArchitecture::freeFunctionArchContext"]
4892        [::std::mem::offset_of!(BNCustomArchitecture, freeFunctionArchContext) - 128usize];
4893    ["Offset of field: BNCustomArchitecture::getRegisterName"]
4894        [::std::mem::offset_of!(BNCustomArchitecture, getRegisterName) - 136usize];
4895    ["Offset of field: BNCustomArchitecture::getFlagName"]
4896        [::std::mem::offset_of!(BNCustomArchitecture, getFlagName) - 144usize];
4897    ["Offset of field: BNCustomArchitecture::getFlagWriteTypeName"]
4898        [::std::mem::offset_of!(BNCustomArchitecture, getFlagWriteTypeName) - 152usize];
4899    ["Offset of field: BNCustomArchitecture::getSemanticFlagClassName"]
4900        [::std::mem::offset_of!(BNCustomArchitecture, getSemanticFlagClassName) - 160usize];
4901    ["Offset of field: BNCustomArchitecture::getSemanticFlagGroupName"]
4902        [::std::mem::offset_of!(BNCustomArchitecture, getSemanticFlagGroupName) - 168usize];
4903    ["Offset of field: BNCustomArchitecture::getFullWidthRegisters"]
4904        [::std::mem::offset_of!(BNCustomArchitecture, getFullWidthRegisters) - 176usize];
4905    ["Offset of field: BNCustomArchitecture::getAllRegisters"]
4906        [::std::mem::offset_of!(BNCustomArchitecture, getAllRegisters) - 184usize];
4907    ["Offset of field: BNCustomArchitecture::getAllFlags"]
4908        [::std::mem::offset_of!(BNCustomArchitecture, getAllFlags) - 192usize];
4909    ["Offset of field: BNCustomArchitecture::getAllFlagWriteTypes"]
4910        [::std::mem::offset_of!(BNCustomArchitecture, getAllFlagWriteTypes) - 200usize];
4911    ["Offset of field: BNCustomArchitecture::getAllSemanticFlagClasses"]
4912        [::std::mem::offset_of!(BNCustomArchitecture, getAllSemanticFlagClasses) - 208usize];
4913    ["Offset of field: BNCustomArchitecture::getAllSemanticFlagGroups"]
4914        [::std::mem::offset_of!(BNCustomArchitecture, getAllSemanticFlagGroups) - 216usize];
4915    ["Offset of field: BNCustomArchitecture::getFlagRole"]
4916        [::std::mem::offset_of!(BNCustomArchitecture, getFlagRole) - 224usize];
4917    ["Offset of field: BNCustomArchitecture::getFlagsRequiredForFlagCondition"]
4918        [::std::mem::offset_of!(BNCustomArchitecture, getFlagsRequiredForFlagCondition) - 232usize];
4919    ["Offset of field: BNCustomArchitecture::getFlagsRequiredForSemanticFlagGroup"][::std::mem::offset_of!(
4920        BNCustomArchitecture,
4921        getFlagsRequiredForSemanticFlagGroup
4922    ) - 240usize];
4923    ["Offset of field: BNCustomArchitecture::getFlagConditionsForSemanticFlagGroup"][::std::mem::offset_of!(
4924        BNCustomArchitecture,
4925        getFlagConditionsForSemanticFlagGroup
4926    ) - 248usize];
4927    ["Offset of field: BNCustomArchitecture::freeFlagConditionsForSemanticFlagGroup"][::std::mem::offset_of!(
4928        BNCustomArchitecture,
4929        freeFlagConditionsForSemanticFlagGroup
4930    ) - 256usize];
4931    ["Offset of field: BNCustomArchitecture::getFlagsWrittenByFlagWriteType"]
4932        [::std::mem::offset_of!(BNCustomArchitecture, getFlagsWrittenByFlagWriteType) - 264usize];
4933    ["Offset of field: BNCustomArchitecture::getSemanticClassForFlagWriteType"]
4934        [::std::mem::offset_of!(BNCustomArchitecture, getSemanticClassForFlagWriteType) - 272usize];
4935    ["Offset of field: BNCustomArchitecture::getFlagWriteLowLevelIL"]
4936        [::std::mem::offset_of!(BNCustomArchitecture, getFlagWriteLowLevelIL) - 280usize];
4937    ["Offset of field: BNCustomArchitecture::getFlagConditionLowLevelIL"]
4938        [::std::mem::offset_of!(BNCustomArchitecture, getFlagConditionLowLevelIL) - 288usize];
4939    ["Offset of field: BNCustomArchitecture::getSemanticFlagGroupLowLevelIL"]
4940        [::std::mem::offset_of!(BNCustomArchitecture, getSemanticFlagGroupLowLevelIL) - 296usize];
4941    ["Offset of field: BNCustomArchitecture::freeRegisterList"]
4942        [::std::mem::offset_of!(BNCustomArchitecture, freeRegisterList) - 304usize];
4943    ["Offset of field: BNCustomArchitecture::getRegisterInfo"]
4944        [::std::mem::offset_of!(BNCustomArchitecture, getRegisterInfo) - 312usize];
4945    ["Offset of field: BNCustomArchitecture::getStackPointerRegister"]
4946        [::std::mem::offset_of!(BNCustomArchitecture, getStackPointerRegister) - 320usize];
4947    ["Offset of field: BNCustomArchitecture::getLinkRegister"]
4948        [::std::mem::offset_of!(BNCustomArchitecture, getLinkRegister) - 328usize];
4949    ["Offset of field: BNCustomArchitecture::getGlobalRegisters"]
4950        [::std::mem::offset_of!(BNCustomArchitecture, getGlobalRegisters) - 336usize];
4951    ["Offset of field: BNCustomArchitecture::getSystemRegisters"]
4952        [::std::mem::offset_of!(BNCustomArchitecture, getSystemRegisters) - 344usize];
4953    ["Offset of field: BNCustomArchitecture::getRegisterStackName"]
4954        [::std::mem::offset_of!(BNCustomArchitecture, getRegisterStackName) - 352usize];
4955    ["Offset of field: BNCustomArchitecture::getAllRegisterStacks"]
4956        [::std::mem::offset_of!(BNCustomArchitecture, getAllRegisterStacks) - 360usize];
4957    ["Offset of field: BNCustomArchitecture::getRegisterStackInfo"]
4958        [::std::mem::offset_of!(BNCustomArchitecture, getRegisterStackInfo) - 368usize];
4959    ["Offset of field: BNCustomArchitecture::getIntrinsicClass"]
4960        [::std::mem::offset_of!(BNCustomArchitecture, getIntrinsicClass) - 376usize];
4961    ["Offset of field: BNCustomArchitecture::getIntrinsicName"]
4962        [::std::mem::offset_of!(BNCustomArchitecture, getIntrinsicName) - 384usize];
4963    ["Offset of field: BNCustomArchitecture::getAllIntrinsics"]
4964        [::std::mem::offset_of!(BNCustomArchitecture, getAllIntrinsics) - 392usize];
4965    ["Offset of field: BNCustomArchitecture::getIntrinsicInputs"]
4966        [::std::mem::offset_of!(BNCustomArchitecture, getIntrinsicInputs) - 400usize];
4967    ["Offset of field: BNCustomArchitecture::freeNameAndTypeList"]
4968        [::std::mem::offset_of!(BNCustomArchitecture, freeNameAndTypeList) - 408usize];
4969    ["Offset of field: BNCustomArchitecture::getIntrinsicOutputs"]
4970        [::std::mem::offset_of!(BNCustomArchitecture, getIntrinsicOutputs) - 416usize];
4971    ["Offset of field: BNCustomArchitecture::freeTypeList"]
4972        [::std::mem::offset_of!(BNCustomArchitecture, freeTypeList) - 424usize];
4973    ["Offset of field: BNCustomArchitecture::canAssemble"]
4974        [::std::mem::offset_of!(BNCustomArchitecture, canAssemble) - 432usize];
4975    ["Offset of field: BNCustomArchitecture::assemble"]
4976        [::std::mem::offset_of!(BNCustomArchitecture, assemble) - 440usize];
4977    ["Offset of field: BNCustomArchitecture::isNeverBranchPatchAvailable"]
4978        [::std::mem::offset_of!(BNCustomArchitecture, isNeverBranchPatchAvailable) - 448usize];
4979    ["Offset of field: BNCustomArchitecture::isAlwaysBranchPatchAvailable"]
4980        [::std::mem::offset_of!(BNCustomArchitecture, isAlwaysBranchPatchAvailable) - 456usize];
4981    ["Offset of field: BNCustomArchitecture::isInvertBranchPatchAvailable"]
4982        [::std::mem::offset_of!(BNCustomArchitecture, isInvertBranchPatchAvailable) - 464usize];
4983    ["Offset of field: BNCustomArchitecture::isSkipAndReturnZeroPatchAvailable"][::std::mem::offset_of!(
4984        BNCustomArchitecture,
4985        isSkipAndReturnZeroPatchAvailable
4986    ) - 472usize];
4987    ["Offset of field: BNCustomArchitecture::isSkipAndReturnValuePatchAvailable"][::std::mem::offset_of!(
4988        BNCustomArchitecture,
4989        isSkipAndReturnValuePatchAvailable
4990    ) - 480usize];
4991    ["Offset of field: BNCustomArchitecture::convertToNop"]
4992        [::std::mem::offset_of!(BNCustomArchitecture, convertToNop) - 488usize];
4993    ["Offset of field: BNCustomArchitecture::alwaysBranch"]
4994        [::std::mem::offset_of!(BNCustomArchitecture, alwaysBranch) - 496usize];
4995    ["Offset of field: BNCustomArchitecture::invertBranch"]
4996        [::std::mem::offset_of!(BNCustomArchitecture, invertBranch) - 504usize];
4997    ["Offset of field: BNCustomArchitecture::skipAndReturnValue"]
4998        [::std::mem::offset_of!(BNCustomArchitecture, skipAndReturnValue) - 512usize];
4999};
5000impl Default for BNCustomArchitecture {
5001    fn default() -> Self {
5002        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5003        unsafe {
5004            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5005            s.assume_init()
5006        }
5007    }
5008}
5009#[repr(C)]
5010#[derive(Debug, Copy, Clone)]
5011pub struct BNCustomPlatform {
5012    pub context: *mut ::std::os::raw::c_void,
5013    pub init: ::std::option::Option<
5014        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, obj: *mut BNPlatform),
5015    >,
5016    pub viewInit: ::std::option::Option<
5017        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, view: *mut BNBinaryView),
5018    >,
5019    pub getGlobalRegisters: ::std::option::Option<
5020        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
5021    >,
5022    pub freeRegisterList: ::std::option::Option<
5023        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, regs: *mut u32, len: usize),
5024    >,
5025    pub getGlobalRegisterType: ::std::option::Option<
5026        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, reg: u32) -> *mut BNType,
5027    >,
5028    pub getAddressSize:
5029        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> usize>,
5030    pub adjustTypeParserInput: ::std::option::Option<
5031        unsafe extern "C" fn(
5032            ctxt: *mut ::std::os::raw::c_void,
5033            parser: *mut BNTypeParser,
5034            argumentsIn: *const *const ::std::os::raw::c_char,
5035            argumentsLenIn: usize,
5036            sourceFileNamesIn: *const *const ::std::os::raw::c_char,
5037            sourceFileValuesIn: *const *const ::std::os::raw::c_char,
5038            sourceFilesLenIn: usize,
5039            argumentsOut: *mut *mut *mut ::std::os::raw::c_char,
5040            argumentsLenOut: *mut usize,
5041            sourceFileNamesOut: *mut *mut *mut ::std::os::raw::c_char,
5042            sourceFileValuesOut: *mut *mut *mut ::std::os::raw::c_char,
5043            sourceFilesLenOut: *mut usize,
5044        ),
5045    >,
5046    pub freeTypeParserInput: ::std::option::Option<
5047        unsafe extern "C" fn(
5048            ctxt: *mut ::std::os::raw::c_void,
5049            arguments: *mut *mut ::std::os::raw::c_char,
5050            argumentsLen: usize,
5051            sourceFileNames: *mut *mut ::std::os::raw::c_char,
5052            sourceFileValues: *mut *mut ::std::os::raw::c_char,
5053            sourceFilesLen: usize,
5054        ),
5055    >,
5056    pub getFallbackEnabled:
5057        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
5058}
5059#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5060const _: () = {
5061    ["Size of BNCustomPlatform"][::std::mem::size_of::<BNCustomPlatform>() - 80usize];
5062    ["Alignment of BNCustomPlatform"][::std::mem::align_of::<BNCustomPlatform>() - 8usize];
5063    ["Offset of field: BNCustomPlatform::context"]
5064        [::std::mem::offset_of!(BNCustomPlatform, context) - 0usize];
5065    ["Offset of field: BNCustomPlatform::init"]
5066        [::std::mem::offset_of!(BNCustomPlatform, init) - 8usize];
5067    ["Offset of field: BNCustomPlatform::viewInit"]
5068        [::std::mem::offset_of!(BNCustomPlatform, viewInit) - 16usize];
5069    ["Offset of field: BNCustomPlatform::getGlobalRegisters"]
5070        [::std::mem::offset_of!(BNCustomPlatform, getGlobalRegisters) - 24usize];
5071    ["Offset of field: BNCustomPlatform::freeRegisterList"]
5072        [::std::mem::offset_of!(BNCustomPlatform, freeRegisterList) - 32usize];
5073    ["Offset of field: BNCustomPlatform::getGlobalRegisterType"]
5074        [::std::mem::offset_of!(BNCustomPlatform, getGlobalRegisterType) - 40usize];
5075    ["Offset of field: BNCustomPlatform::getAddressSize"]
5076        [::std::mem::offset_of!(BNCustomPlatform, getAddressSize) - 48usize];
5077    ["Offset of field: BNCustomPlatform::adjustTypeParserInput"]
5078        [::std::mem::offset_of!(BNCustomPlatform, adjustTypeParserInput) - 56usize];
5079    ["Offset of field: BNCustomPlatform::freeTypeParserInput"]
5080        [::std::mem::offset_of!(BNCustomPlatform, freeTypeParserInput) - 64usize];
5081    ["Offset of field: BNCustomPlatform::getFallbackEnabled"]
5082        [::std::mem::offset_of!(BNCustomPlatform, getFallbackEnabled) - 72usize];
5083};
5084impl Default for BNCustomPlatform {
5085    fn default() -> Self {
5086        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5087        unsafe {
5088            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5089            s.assume_init()
5090        }
5091    }
5092}
5093#[repr(C)]
5094#[derive(Debug, Copy, Clone)]
5095pub struct BNBasicBlockEdge {
5096    pub type_: BNBranchType,
5097    pub target: *mut BNBasicBlock,
5098    pub backEdge: bool,
5099    pub fallThrough: bool,
5100}
5101#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5102const _: () = {
5103    ["Size of BNBasicBlockEdge"][::std::mem::size_of::<BNBasicBlockEdge>() - 24usize];
5104    ["Alignment of BNBasicBlockEdge"][::std::mem::align_of::<BNBasicBlockEdge>() - 8usize];
5105    ["Offset of field: BNBasicBlockEdge::type_"]
5106        [::std::mem::offset_of!(BNBasicBlockEdge, type_) - 0usize];
5107    ["Offset of field: BNBasicBlockEdge::target"]
5108        [::std::mem::offset_of!(BNBasicBlockEdge, target) - 8usize];
5109    ["Offset of field: BNBasicBlockEdge::backEdge"]
5110        [::std::mem::offset_of!(BNBasicBlockEdge, backEdge) - 16usize];
5111    ["Offset of field: BNBasicBlockEdge::fallThrough"]
5112        [::std::mem::offset_of!(BNBasicBlockEdge, fallThrough) - 17usize];
5113};
5114impl Default for BNBasicBlockEdge {
5115    fn default() -> Self {
5116        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5117        unsafe {
5118            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5119            s.assume_init()
5120        }
5121    }
5122}
5123#[repr(C)]
5124#[derive(Debug, Copy, Clone)]
5125pub struct BNPendingBasicBlockEdge {
5126    pub type_: BNBranchType,
5127    pub arch: *mut BNArchitecture,
5128    pub target: u64,
5129    pub fallThrough: bool,
5130}
5131#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5132const _: () = {
5133    ["Size of BNPendingBasicBlockEdge"][::std::mem::size_of::<BNPendingBasicBlockEdge>() - 32usize];
5134    ["Alignment of BNPendingBasicBlockEdge"]
5135        [::std::mem::align_of::<BNPendingBasicBlockEdge>() - 8usize];
5136    ["Offset of field: BNPendingBasicBlockEdge::type_"]
5137        [::std::mem::offset_of!(BNPendingBasicBlockEdge, type_) - 0usize];
5138    ["Offset of field: BNPendingBasicBlockEdge::arch"]
5139        [::std::mem::offset_of!(BNPendingBasicBlockEdge, arch) - 8usize];
5140    ["Offset of field: BNPendingBasicBlockEdge::target"]
5141        [::std::mem::offset_of!(BNPendingBasicBlockEdge, target) - 16usize];
5142    ["Offset of field: BNPendingBasicBlockEdge::fallThrough"]
5143        [::std::mem::offset_of!(BNPendingBasicBlockEdge, fallThrough) - 24usize];
5144};
5145impl Default for BNPendingBasicBlockEdge {
5146    fn default() -> Self {
5147        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5148        unsafe {
5149            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5150            s.assume_init()
5151        }
5152    }
5153}
5154#[repr(C)]
5155#[derive(Debug, Default, Copy, Clone)]
5156pub struct BNPoint {
5157    pub x: f32,
5158    pub y: f32,
5159}
5160#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5161const _: () = {
5162    ["Size of BNPoint"][::std::mem::size_of::<BNPoint>() - 8usize];
5163    ["Alignment of BNPoint"][::std::mem::align_of::<BNPoint>() - 4usize];
5164    ["Offset of field: BNPoint::x"][::std::mem::offset_of!(BNPoint, x) - 0usize];
5165    ["Offset of field: BNPoint::y"][::std::mem::offset_of!(BNPoint, y) - 4usize];
5166};
5167#[repr(u8)]
5168#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
5169pub enum BNThemeColor {
5170    #[doc = " Hex dump colors"]
5171    AddressColor = 0,
5172    #[doc = " Hex dump colors"]
5173    ModifiedColor = 1,
5174    #[doc = " Hex dump colors"]
5175    InsertedColor = 2,
5176    #[doc = " Hex dump colors"]
5177    NotPresentColor = 3,
5178    #[doc = " Hex dump colors"]
5179    SelectionColor = 4,
5180    #[doc = " Hex dump colors"]
5181    OutlineColor = 5,
5182    #[doc = " Hex dump colors"]
5183    BackgroundHighlightDarkColor = 6,
5184    #[doc = " Hex dump colors"]
5185    BackgroundHighlightLightColor = 7,
5186    #[doc = " Hex dump colors"]
5187    BoldBackgroundHighlightDarkColor = 8,
5188    #[doc = " Hex dump colors"]
5189    BoldBackgroundHighlightLightColor = 9,
5190    #[doc = " Hex dump colors"]
5191    AlphanumericHighlightColor = 10,
5192    #[doc = " Hex dump colors"]
5193    PrintableHighlightColor = 11,
5194    #[doc = " Graph colors"]
5195    GraphBackgroundDarkColor = 12,
5196    #[doc = " Graph colors"]
5197    GraphBackgroundLightColor = 13,
5198    #[doc = " Graph colors"]
5199    GraphNodeDarkColor = 14,
5200    #[doc = " Graph colors"]
5201    GraphNodeLightColor = 15,
5202    #[doc = " Graph colors"]
5203    GraphNodeOutlineColor = 16,
5204    #[doc = " Graph colors"]
5205    GraphNodeShadowColor = 17,
5206    #[doc = " Graph colors"]
5207    GraphEntryNodeIndicatorColor = 18,
5208    #[doc = " Graph colors"]
5209    GraphExitNodeIndicatorColor = 19,
5210    #[doc = " Graph colors"]
5211    GraphExitNoreturnNodeIndicatorColor = 20,
5212    #[doc = " Graph colors"]
5213    TrueBranchColor = 21,
5214    #[doc = " Graph colors"]
5215    FalseBranchColor = 22,
5216    #[doc = " Graph colors"]
5217    UnconditionalBranchColor = 23,
5218    #[doc = " Graph colors"]
5219    AltTrueBranchColor = 24,
5220    #[doc = " Graph colors"]
5221    AltFalseBranchColor = 25,
5222    #[doc = " Graph colors"]
5223    AltUnconditionalBranchColor = 26,
5224    #[doc = " Disassembly colors"]
5225    InstructionColor = 27,
5226    #[doc = " Disassembly colors"]
5227    RegisterColor = 28,
5228    #[doc = " Disassembly colors"]
5229    NumberColor = 29,
5230    #[doc = " Disassembly colors"]
5231    CodeSymbolColor = 30,
5232    #[doc = " Disassembly colors"]
5233    DataSymbolColor = 31,
5234    #[doc = " Disassembly colors"]
5235    LocalVariableColor = 32,
5236    #[doc = " Disassembly colors"]
5237    StackVariableColor = 33,
5238    #[doc = " Disassembly colors"]
5239    ImportColor = 34,
5240    #[doc = " Disassembly colors"]
5241    ExportColor = 35,
5242    #[doc = " Disassembly colors"]
5243    InstructionHighlightColor = 36,
5244    #[doc = " Disassembly colors"]
5245    RelatedInstructionHighlightColor = 37,
5246    #[doc = " Disassembly colors"]
5247    TokenHighlightColor = 38,
5248    #[doc = " Disassembly colors"]
5249    TokenSelectionColor = 39,
5250    #[doc = " Disassembly colors"]
5251    AnnotationColor = 40,
5252    #[doc = " Disassembly colors"]
5253    OpcodeColor = 41,
5254    #[doc = " Disassembly colors"]
5255    LinearDisassemblyFunctionHeaderColor = 42,
5256    #[doc = " Disassembly colors"]
5257    LinearDisassemblyBlockColor = 43,
5258    #[doc = " Disassembly colors"]
5259    LinearDisassemblyNoteColor = 44,
5260    #[doc = " Disassembly colors"]
5261    LinearDisassemblySeparatorColor = 45,
5262    #[doc = " Disassembly colors"]
5263    LinearDisassemblyCodeFoldColor = 46,
5264    #[doc = " Disassembly colors"]
5265    StringColor = 47,
5266    #[doc = " Disassembly colors"]
5267    TypeNameColor = 48,
5268    #[doc = " Disassembly colors"]
5269    FieldNameColor = 49,
5270    #[doc = " Disassembly colors"]
5271    KeywordColor = 50,
5272    #[doc = " Disassembly colors"]
5273    UncertainColor = 51,
5274    #[doc = " Disassembly colors"]
5275    NameSpaceColor = 52,
5276    #[doc = " Disassembly colors"]
5277    NameSpaceSeparatorColor = 53,
5278    #[doc = " Disassembly colors"]
5279    GotoLabelColor = 54,
5280    #[doc = " Disassembly colors"]
5281    CommentColor = 55,
5282    #[doc = " Disassembly colors"]
5283    OperationColor = 56,
5284    #[doc = " Disassembly colors"]
5285    BaseStructureNameColor = 57,
5286    #[doc = " Disassembly colors"]
5287    IndentationLineColor = 58,
5288    #[doc = " Disassembly colors"]
5289    IndentationLineHighlightColor = 59,
5290    #[doc = " Script console colors"]
5291    ScriptConsoleOutputColor = 60,
5292    #[doc = " Script console colors"]
5293    ScriptConsoleWarningColor = 61,
5294    #[doc = " Script console colors"]
5295    ScriptConsoleErrorColor = 62,
5296    #[doc = " Script console colors"]
5297    ScriptConsoleEchoColor = 63,
5298    #[doc = " Highlighting colors"]
5299    BlueStandardHighlightColor = 64,
5300    #[doc = " Highlighting colors"]
5301    GreenStandardHighlightColor = 65,
5302    #[doc = " Highlighting colors"]
5303    CyanStandardHighlightColor = 66,
5304    #[doc = " Highlighting colors"]
5305    RedStandardHighlightColor = 67,
5306    #[doc = " Highlighting colors"]
5307    MagentaStandardHighlightColor = 68,
5308    #[doc = " Highlighting colors"]
5309    YellowStandardHighlightColor = 69,
5310    #[doc = " Highlighting colors"]
5311    OrangeStandardHighlightColor = 70,
5312    #[doc = " Highlighting colors"]
5313    WhiteStandardHighlightColor = 71,
5314    #[doc = " Highlighting colors"]
5315    BlackStandardHighlightColor = 72,
5316    #[doc = " MiniGraph"]
5317    MiniGraphOverlayColor = 73,
5318    #[doc = " FeatureMap"]
5319    FeatureMapBaseColor = 74,
5320    #[doc = " FeatureMap"]
5321    FeatureMapNavLineColor = 75,
5322    #[doc = " FeatureMap"]
5323    FeatureMapNavHighlightColor = 76,
5324    #[doc = " FeatureMap"]
5325    FeatureMapDataVariableColor = 77,
5326    #[doc = " FeatureMap"]
5327    FeatureMapAsciiStringColor = 78,
5328    #[doc = " FeatureMap"]
5329    FeatureMapUnicodeStringColor = 79,
5330    #[doc = " FeatureMap"]
5331    FeatureMapFunctionColor = 80,
5332    #[doc = " FeatureMap"]
5333    FeatureMapImportColor = 81,
5334    #[doc = " FeatureMap"]
5335    FeatureMapExternColor = 82,
5336    #[doc = " FeatureMap"]
5337    FeatureMapLibraryColor = 83,
5338    #[doc = " Sidebar colors"]
5339    SidebarBackgroundColor = 84,
5340    #[doc = " Sidebar colors"]
5341    SidebarInactiveIconColor = 85,
5342    #[doc = " Sidebar colors"]
5343    SidebarHoverIconColor = 86,
5344    #[doc = " Sidebar colors"]
5345    SidebarActiveIconColor = 87,
5346    #[doc = " Sidebar colors"]
5347    SidebarFocusedIconColor = 88,
5348    #[doc = " Sidebar colors"]
5349    SidebarHoverBackgroundColor = 89,
5350    #[doc = " Sidebar colors"]
5351    SidebarActiveBackgroundColor = 90,
5352    #[doc = " Sidebar colors"]
5353    SidebarFocusedBackgroundColor = 91,
5354    #[doc = " Sidebar colors"]
5355    SidebarActiveIndicatorLineColor = 92,
5356    #[doc = " Deprecated, has no effect (paints as QPalette::Window)"]
5357    SidebarHeaderBackgroundColor = 93,
5358    SidebarHeaderTextColor = 94,
5359    SidebarWidgetBackgroundColor = 95,
5360    #[doc = " Pane colors"]
5361    ActivePaneBackgroundColor = 96,
5362    #[doc = " Pane colors"]
5363    InactivePaneBackgroundColor = 97,
5364    #[doc = " Pane colors"]
5365    FocusedPaneBackgroundColor = 98,
5366    #[doc = " Tab colors"]
5367    TabBarTabActiveColor = 99,
5368    #[doc = " Tab colors"]
5369    TabBarTabHoverColor = 100,
5370    #[doc = " Tab colors"]
5371    TabBarTabInactiveColor = 101,
5372    #[doc = " Tab colors"]
5373    TabBarTabBorderColor = 102,
5374    #[doc = " Tab colors"]
5375    TabBarTabGlowColor = 103,
5376    #[doc = " Status colors"]
5377    StatusBarServerConnectedColor = 104,
5378    #[doc = " Status colors"]
5379    StatusBarServerDisconnectedColor = 105,
5380    #[doc = " Status colors"]
5381    StatusBarServerWarningColor = 106,
5382    #[doc = " Status colors"]
5383    StatusBarProjectColor = 107,
5384    #[doc = " Brace colors"]
5385    BraceOption1Color = 108,
5386    #[doc = " Brace colors"]
5387    BraceOption2Color = 109,
5388    #[doc = " Brace colors"]
5389    BraceOption3Color = 110,
5390    #[doc = " Brace colors"]
5391    BraceOption4Color = 111,
5392    #[doc = " Brace colors"]
5393    BraceOption5Color = 112,
5394    #[doc = " Brace colors"]
5395    BraceOption6Color = 113,
5396    #[doc = " Type class colors"]
5397    VoidTypeColor = 114,
5398    #[doc = " Type class colors"]
5399    StructureTypeColor = 115,
5400    #[doc = " Type class colors"]
5401    EnumerationTypeColor = 116,
5402    #[doc = " Type class colors"]
5403    FunctionTypeColor = 117,
5404    #[doc = " Type class colors"]
5405    BoolTypeColor = 118,
5406    #[doc = " Type class colors"]
5407    IntegerTypeColor = 119,
5408    #[doc = " Type class colors"]
5409    FloatTypeColor = 120,
5410    #[doc = " Type class colors"]
5411    PointerTypeColor = 121,
5412    #[doc = " Type class colors"]
5413    ArrayTypeColor = 122,
5414    #[doc = " Type class colors"]
5415    VarArgsTypeColor = 123,
5416    #[doc = " Type class colors"]
5417    ValueTypeColor = 124,
5418    #[doc = " Type class colors"]
5419    NamedTypeReferenceColor = 125,
5420    #[doc = " Type class colors"]
5421    WideCharTypeColor = 126,
5422}
5423#[repr(u8)]
5424#[doc = " The following edge styles map to Qt's Qt::PenStyle enumeration"]
5425#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
5426pub enum BNEdgePenStyle {
5427    #[doc = " no line at all."]
5428    NoPen = 0,
5429    #[doc = " A plain line (default)"]
5430    SolidLine = 1,
5431    #[doc = " Dashes separated by a few pixels."]
5432    DashLine = 2,
5433    #[doc = " Dots separated by a few pixels."]
5434    DotLine = 3,
5435    #[doc = " Alternate dots and dashes."]
5436    DashDotLine = 4,
5437    #[doc = " One dash, two dots, one dash, two dots."]
5438    DashDotDotLine = 5,
5439}
5440#[repr(C)]
5441#[derive(Debug, Copy, Clone)]
5442pub struct BNEdgeStyle {
5443    pub style: BNEdgePenStyle,
5444    pub width: usize,
5445    pub color: BNThemeColor,
5446}
5447#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5448const _: () = {
5449    ["Size of BNEdgeStyle"][::std::mem::size_of::<BNEdgeStyle>() - 24usize];
5450    ["Alignment of BNEdgeStyle"][::std::mem::align_of::<BNEdgeStyle>() - 8usize];
5451    ["Offset of field: BNEdgeStyle::style"][::std::mem::offset_of!(BNEdgeStyle, style) - 0usize];
5452    ["Offset of field: BNEdgeStyle::width"][::std::mem::offset_of!(BNEdgeStyle, width) - 8usize];
5453    ["Offset of field: BNEdgeStyle::color"][::std::mem::offset_of!(BNEdgeStyle, color) - 16usize];
5454};
5455impl Default for BNEdgeStyle {
5456    fn default() -> Self {
5457        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5458        unsafe {
5459            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5460            s.assume_init()
5461        }
5462    }
5463}
5464#[repr(C)]
5465#[derive(Debug, Copy, Clone)]
5466pub struct BNFlowGraphEdge {
5467    pub type_: BNBranchType,
5468    pub target: *mut BNFlowGraphNode,
5469    pub points: *mut BNPoint,
5470    pub pointCount: usize,
5471    pub backEdge: bool,
5472    pub style: BNEdgeStyle,
5473}
5474#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5475const _: () = {
5476    ["Size of BNFlowGraphEdge"][::std::mem::size_of::<BNFlowGraphEdge>() - 64usize];
5477    ["Alignment of BNFlowGraphEdge"][::std::mem::align_of::<BNFlowGraphEdge>() - 8usize];
5478    ["Offset of field: BNFlowGraphEdge::type_"]
5479        [::std::mem::offset_of!(BNFlowGraphEdge, type_) - 0usize];
5480    ["Offset of field: BNFlowGraphEdge::target"]
5481        [::std::mem::offset_of!(BNFlowGraphEdge, target) - 8usize];
5482    ["Offset of field: BNFlowGraphEdge::points"]
5483        [::std::mem::offset_of!(BNFlowGraphEdge, points) - 16usize];
5484    ["Offset of field: BNFlowGraphEdge::pointCount"]
5485        [::std::mem::offset_of!(BNFlowGraphEdge, pointCount) - 24usize];
5486    ["Offset of field: BNFlowGraphEdge::backEdge"]
5487        [::std::mem::offset_of!(BNFlowGraphEdge, backEdge) - 32usize];
5488    ["Offset of field: BNFlowGraphEdge::style"]
5489        [::std::mem::offset_of!(BNFlowGraphEdge, style) - 40usize];
5490};
5491impl Default for BNFlowGraphEdge {
5492    fn default() -> Self {
5493        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5494        unsafe {
5495            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5496            s.assume_init()
5497        }
5498    }
5499}
5500#[repr(u8)]
5501#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
5502pub enum BNHighlightColorStyle {
5503    StandardHighlightColor = 0,
5504    MixedHighlightColor = 1,
5505    CustomHighlightColor = 2,
5506}
5507#[repr(u8)]
5508#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
5509pub enum BNHighlightStandardColor {
5510    NoHighlightColor = 0,
5511    BlueHighlightColor = 1,
5512    GreenHighlightColor = 2,
5513    CyanHighlightColor = 3,
5514    RedHighlightColor = 4,
5515    MagentaHighlightColor = 5,
5516    YellowHighlightColor = 6,
5517    OrangeHighlightColor = 7,
5518    WhiteHighlightColor = 8,
5519    BlackHighlightColor = 9,
5520}
5521#[repr(C)]
5522#[derive(Debug, Copy, Clone)]
5523pub struct BNHighlightColor {
5524    pub style: BNHighlightColorStyle,
5525    pub color: BNHighlightStandardColor,
5526    pub mixColor: BNHighlightStandardColor,
5527    pub mix: u8,
5528    pub r: u8,
5529    pub g: u8,
5530    pub b: u8,
5531    pub alpha: u8,
5532}
5533#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5534const _: () = {
5535    ["Size of BNHighlightColor"][::std::mem::size_of::<BNHighlightColor>() - 8usize];
5536    ["Alignment of BNHighlightColor"][::std::mem::align_of::<BNHighlightColor>() - 1usize];
5537    ["Offset of field: BNHighlightColor::style"]
5538        [::std::mem::offset_of!(BNHighlightColor, style) - 0usize];
5539    ["Offset of field: BNHighlightColor::color"]
5540        [::std::mem::offset_of!(BNHighlightColor, color) - 1usize];
5541    ["Offset of field: BNHighlightColor::mixColor"]
5542        [::std::mem::offset_of!(BNHighlightColor, mixColor) - 2usize];
5543    ["Offset of field: BNHighlightColor::mix"]
5544        [::std::mem::offset_of!(BNHighlightColor, mix) - 3usize];
5545    ["Offset of field: BNHighlightColor::r"][::std::mem::offset_of!(BNHighlightColor, r) - 4usize];
5546    ["Offset of field: BNHighlightColor::g"][::std::mem::offset_of!(BNHighlightColor, g) - 5usize];
5547    ["Offset of field: BNHighlightColor::b"][::std::mem::offset_of!(BNHighlightColor, b) - 6usize];
5548    ["Offset of field: BNHighlightColor::alpha"]
5549        [::std::mem::offset_of!(BNHighlightColor, alpha) - 7usize];
5550};
5551impl Default for BNHighlightColor {
5552    fn default() -> Self {
5553        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5554        unsafe {
5555            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5556            s.assume_init()
5557        }
5558    }
5559}
5560#[repr(C)]
5561#[derive(Debug, Copy, Clone)]
5562pub struct BNDisassemblyTextLineTypeInfo {
5563    pub hasTypeInfo: bool,
5564    pub parentType: *mut BNType,
5565    pub fieldIndex: usize,
5566    pub offset: u64,
5567}
5568#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5569const _: () = {
5570    ["Size of BNDisassemblyTextLineTypeInfo"]
5571        [::std::mem::size_of::<BNDisassemblyTextLineTypeInfo>() - 32usize];
5572    ["Alignment of BNDisassemblyTextLineTypeInfo"]
5573        [::std::mem::align_of::<BNDisassemblyTextLineTypeInfo>() - 8usize];
5574    ["Offset of field: BNDisassemblyTextLineTypeInfo::hasTypeInfo"]
5575        [::std::mem::offset_of!(BNDisassemblyTextLineTypeInfo, hasTypeInfo) - 0usize];
5576    ["Offset of field: BNDisassemblyTextLineTypeInfo::parentType"]
5577        [::std::mem::offset_of!(BNDisassemblyTextLineTypeInfo, parentType) - 8usize];
5578    ["Offset of field: BNDisassemblyTextLineTypeInfo::fieldIndex"]
5579        [::std::mem::offset_of!(BNDisassemblyTextLineTypeInfo, fieldIndex) - 16usize];
5580    ["Offset of field: BNDisassemblyTextLineTypeInfo::offset"]
5581        [::std::mem::offset_of!(BNDisassemblyTextLineTypeInfo, offset) - 24usize];
5582};
5583impl Default for BNDisassemblyTextLineTypeInfo {
5584    fn default() -> Self {
5585        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5586        unsafe {
5587            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5588            s.assume_init()
5589        }
5590    }
5591}
5592#[repr(C)]
5593#[derive(Debug, Copy, Clone)]
5594pub struct BNDisassemblyTextLine {
5595    pub addr: u64,
5596    pub instrIndex: usize,
5597    pub tokens: *mut BNInstructionTextToken,
5598    pub count: usize,
5599    pub highlight: BNHighlightColor,
5600    pub tags: *mut *mut BNTag,
5601    pub tagCount: usize,
5602    pub typeInfo: BNDisassemblyTextLineTypeInfo,
5603}
5604#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5605const _: () = {
5606    ["Size of BNDisassemblyTextLine"][::std::mem::size_of::<BNDisassemblyTextLine>() - 88usize];
5607    ["Alignment of BNDisassemblyTextLine"]
5608        [::std::mem::align_of::<BNDisassemblyTextLine>() - 8usize];
5609    ["Offset of field: BNDisassemblyTextLine::addr"]
5610        [::std::mem::offset_of!(BNDisassemblyTextLine, addr) - 0usize];
5611    ["Offset of field: BNDisassemblyTextLine::instrIndex"]
5612        [::std::mem::offset_of!(BNDisassemblyTextLine, instrIndex) - 8usize];
5613    ["Offset of field: BNDisassemblyTextLine::tokens"]
5614        [::std::mem::offset_of!(BNDisassemblyTextLine, tokens) - 16usize];
5615    ["Offset of field: BNDisassemblyTextLine::count"]
5616        [::std::mem::offset_of!(BNDisassemblyTextLine, count) - 24usize];
5617    ["Offset of field: BNDisassemblyTextLine::highlight"]
5618        [::std::mem::offset_of!(BNDisassemblyTextLine, highlight) - 32usize];
5619    ["Offset of field: BNDisassemblyTextLine::tags"]
5620        [::std::mem::offset_of!(BNDisassemblyTextLine, tags) - 40usize];
5621    ["Offset of field: BNDisassemblyTextLine::tagCount"]
5622        [::std::mem::offset_of!(BNDisassemblyTextLine, tagCount) - 48usize];
5623    ["Offset of field: BNDisassemblyTextLine::typeInfo"]
5624        [::std::mem::offset_of!(BNDisassemblyTextLine, typeInfo) - 56usize];
5625};
5626impl Default for BNDisassemblyTextLine {
5627    fn default() -> Self {
5628        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5629        unsafe {
5630            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5631            s.assume_init()
5632        }
5633    }
5634}
5635#[repr(C)]
5636#[derive(Debug, Copy, Clone)]
5637pub struct BNLinearDisassemblyLine {
5638    pub type_: BNLinearDisassemblyLineType,
5639    pub function: *mut BNFunction,
5640    pub block: *mut BNBasicBlock,
5641    pub contents: BNDisassemblyTextLine,
5642}
5643#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5644const _: () = {
5645    ["Size of BNLinearDisassemblyLine"]
5646        [::std::mem::size_of::<BNLinearDisassemblyLine>() - 112usize];
5647    ["Alignment of BNLinearDisassemblyLine"]
5648        [::std::mem::align_of::<BNLinearDisassemblyLine>() - 8usize];
5649    ["Offset of field: BNLinearDisassemblyLine::type_"]
5650        [::std::mem::offset_of!(BNLinearDisassemblyLine, type_) - 0usize];
5651    ["Offset of field: BNLinearDisassemblyLine::function"]
5652        [::std::mem::offset_of!(BNLinearDisassemblyLine, function) - 8usize];
5653    ["Offset of field: BNLinearDisassemblyLine::block"]
5654        [::std::mem::offset_of!(BNLinearDisassemblyLine, block) - 16usize];
5655    ["Offset of field: BNLinearDisassemblyLine::contents"]
5656        [::std::mem::offset_of!(BNLinearDisassemblyLine, contents) - 24usize];
5657};
5658impl Default for BNLinearDisassemblyLine {
5659    fn default() -> Self {
5660        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5661        unsafe {
5662            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5663            s.assume_init()
5664        }
5665    }
5666}
5667#[repr(C)]
5668#[derive(Debug, Copy, Clone)]
5669pub struct BNReferenceSource {
5670    pub func: *mut BNFunction,
5671    pub arch: *mut BNArchitecture,
5672    pub addr: u64,
5673}
5674#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5675const _: () = {
5676    ["Size of BNReferenceSource"][::std::mem::size_of::<BNReferenceSource>() - 24usize];
5677    ["Alignment of BNReferenceSource"][::std::mem::align_of::<BNReferenceSource>() - 8usize];
5678    ["Offset of field: BNReferenceSource::func"]
5679        [::std::mem::offset_of!(BNReferenceSource, func) - 0usize];
5680    ["Offset of field: BNReferenceSource::arch"]
5681        [::std::mem::offset_of!(BNReferenceSource, arch) - 8usize];
5682    ["Offset of field: BNReferenceSource::addr"]
5683        [::std::mem::offset_of!(BNReferenceSource, addr) - 16usize];
5684};
5685impl Default for BNReferenceSource {
5686    fn default() -> Self {
5687        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5688        unsafe {
5689            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5690            s.assume_init()
5691        }
5692    }
5693}
5694#[repr(C)]
5695#[derive(Debug, Copy, Clone)]
5696pub struct BNTypeFieldReference {
5697    pub func: *mut BNFunction,
5698    pub arch: *mut BNArchitecture,
5699    pub addr: u64,
5700    pub size: usize,
5701    pub incomingType: BNTypeWithConfidence,
5702}
5703#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5704const _: () = {
5705    ["Size of BNTypeFieldReference"][::std::mem::size_of::<BNTypeFieldReference>() - 48usize];
5706    ["Alignment of BNTypeFieldReference"][::std::mem::align_of::<BNTypeFieldReference>() - 8usize];
5707    ["Offset of field: BNTypeFieldReference::func"]
5708        [::std::mem::offset_of!(BNTypeFieldReference, func) - 0usize];
5709    ["Offset of field: BNTypeFieldReference::arch"]
5710        [::std::mem::offset_of!(BNTypeFieldReference, arch) - 8usize];
5711    ["Offset of field: BNTypeFieldReference::addr"]
5712        [::std::mem::offset_of!(BNTypeFieldReference, addr) - 16usize];
5713    ["Offset of field: BNTypeFieldReference::size"]
5714        [::std::mem::offset_of!(BNTypeFieldReference, size) - 24usize];
5715    ["Offset of field: BNTypeFieldReference::incomingType"]
5716        [::std::mem::offset_of!(BNTypeFieldReference, incomingType) - 32usize];
5717};
5718impl Default for BNTypeFieldReference {
5719    fn default() -> Self {
5720        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5721        unsafe {
5722            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5723            s.assume_init()
5724        }
5725    }
5726}
5727#[repr(C)]
5728#[derive(Debug, Copy, Clone)]
5729pub struct BNILReferenceSource {
5730    pub func: *mut BNFunction,
5731    pub arch: *mut BNArchitecture,
5732    pub addr: u64,
5733    pub type_: BNFunctionGraphType,
5734    pub exprId: usize,
5735}
5736#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5737const _: () = {
5738    ["Size of BNILReferenceSource"][::std::mem::size_of::<BNILReferenceSource>() - 40usize];
5739    ["Alignment of BNILReferenceSource"][::std::mem::align_of::<BNILReferenceSource>() - 8usize];
5740    ["Offset of field: BNILReferenceSource::func"]
5741        [::std::mem::offset_of!(BNILReferenceSource, func) - 0usize];
5742    ["Offset of field: BNILReferenceSource::arch"]
5743        [::std::mem::offset_of!(BNILReferenceSource, arch) - 8usize];
5744    ["Offset of field: BNILReferenceSource::addr"]
5745        [::std::mem::offset_of!(BNILReferenceSource, addr) - 16usize];
5746    ["Offset of field: BNILReferenceSource::type_"]
5747        [::std::mem::offset_of!(BNILReferenceSource, type_) - 24usize];
5748    ["Offset of field: BNILReferenceSource::exprId"]
5749        [::std::mem::offset_of!(BNILReferenceSource, exprId) - 32usize];
5750};
5751impl Default for BNILReferenceSource {
5752    fn default() -> Self {
5753        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5754        unsafe {
5755            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5756            s.assume_init()
5757        }
5758    }
5759}
5760#[repr(C)]
5761#[derive(Debug, Copy, Clone)]
5762pub struct BNTypeFieldReferenceSizeInfo {
5763    pub offset: u64,
5764    pub sizes: *mut usize,
5765    pub count: usize,
5766}
5767#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5768const _: () = {
5769    ["Size of BNTypeFieldReferenceSizeInfo"]
5770        [::std::mem::size_of::<BNTypeFieldReferenceSizeInfo>() - 24usize];
5771    ["Alignment of BNTypeFieldReferenceSizeInfo"]
5772        [::std::mem::align_of::<BNTypeFieldReferenceSizeInfo>() - 8usize];
5773    ["Offset of field: BNTypeFieldReferenceSizeInfo::offset"]
5774        [::std::mem::offset_of!(BNTypeFieldReferenceSizeInfo, offset) - 0usize];
5775    ["Offset of field: BNTypeFieldReferenceSizeInfo::sizes"]
5776        [::std::mem::offset_of!(BNTypeFieldReferenceSizeInfo, sizes) - 8usize];
5777    ["Offset of field: BNTypeFieldReferenceSizeInfo::count"]
5778        [::std::mem::offset_of!(BNTypeFieldReferenceSizeInfo, count) - 16usize];
5779};
5780impl Default for BNTypeFieldReferenceSizeInfo {
5781    fn default() -> Self {
5782        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5783        unsafe {
5784            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5785            s.assume_init()
5786        }
5787    }
5788}
5789#[repr(C)]
5790#[derive(Debug, Copy, Clone)]
5791pub struct BNTypeFieldReferenceTypeInfo {
5792    pub offset: u64,
5793    pub types: *mut BNTypeWithConfidence,
5794    pub count: usize,
5795}
5796#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5797const _: () = {
5798    ["Size of BNTypeFieldReferenceTypeInfo"]
5799        [::std::mem::size_of::<BNTypeFieldReferenceTypeInfo>() - 24usize];
5800    ["Alignment of BNTypeFieldReferenceTypeInfo"]
5801        [::std::mem::align_of::<BNTypeFieldReferenceTypeInfo>() - 8usize];
5802    ["Offset of field: BNTypeFieldReferenceTypeInfo::offset"]
5803        [::std::mem::offset_of!(BNTypeFieldReferenceTypeInfo, offset) - 0usize];
5804    ["Offset of field: BNTypeFieldReferenceTypeInfo::types"]
5805        [::std::mem::offset_of!(BNTypeFieldReferenceTypeInfo, types) - 8usize];
5806    ["Offset of field: BNTypeFieldReferenceTypeInfo::count"]
5807        [::std::mem::offset_of!(BNTypeFieldReferenceTypeInfo, count) - 16usize];
5808};
5809impl Default for BNTypeFieldReferenceTypeInfo {
5810    fn default() -> Self {
5811        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5812        unsafe {
5813            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5814            s.assume_init()
5815        }
5816    }
5817}
5818#[repr(C)]
5819#[derive(Debug, Copy, Clone)]
5820pub struct BNVariableReferenceSource {
5821    pub var: BNVariable,
5822    pub source: BNILReferenceSource,
5823}
5824#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5825const _: () = {
5826    ["Size of BNVariableReferenceSource"]
5827        [::std::mem::size_of::<BNVariableReferenceSource>() - 56usize];
5828    ["Alignment of BNVariableReferenceSource"]
5829        [::std::mem::align_of::<BNVariableReferenceSource>() - 8usize];
5830    ["Offset of field: BNVariableReferenceSource::var"]
5831        [::std::mem::offset_of!(BNVariableReferenceSource, var) - 0usize];
5832    ["Offset of field: BNVariableReferenceSource::source"]
5833        [::std::mem::offset_of!(BNVariableReferenceSource, source) - 16usize];
5834};
5835impl Default for BNVariableReferenceSource {
5836    fn default() -> Self {
5837        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5838        unsafe {
5839            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5840            s.assume_init()
5841        }
5842    }
5843}
5844#[repr(u8)]
5845#[doc = " This describes how a type is referenced"]
5846#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
5847pub enum BNTypeReferenceType {
5848    #[doc = " Type A contains type B"]
5849    DirectTypeReferenceType = 0,
5850    #[doc = " All other cases, e.g., type A contains a pointer to type B"]
5851    IndirectTypeReferenceType = 1,
5852    #[doc = " The nature of the reference is unknown"]
5853    UnknownTypeReferenceType = 2,
5854}
5855#[repr(C)]
5856#[derive(Debug, Copy, Clone)]
5857pub struct BNTypeReferenceSource {
5858    pub name: BNQualifiedName,
5859    pub offset: u64,
5860    pub type_: BNTypeReferenceType,
5861}
5862#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5863const _: () = {
5864    ["Size of BNTypeReferenceSource"][::std::mem::size_of::<BNTypeReferenceSource>() - 40usize];
5865    ["Alignment of BNTypeReferenceSource"]
5866        [::std::mem::align_of::<BNTypeReferenceSource>() - 8usize];
5867    ["Offset of field: BNTypeReferenceSource::name"]
5868        [::std::mem::offset_of!(BNTypeReferenceSource, name) - 0usize];
5869    ["Offset of field: BNTypeReferenceSource::offset"]
5870        [::std::mem::offset_of!(BNTypeReferenceSource, offset) - 24usize];
5871    ["Offset of field: BNTypeReferenceSource::type_"]
5872        [::std::mem::offset_of!(BNTypeReferenceSource, type_) - 32usize];
5873};
5874impl Default for BNTypeReferenceSource {
5875    fn default() -> Self {
5876        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5877        unsafe {
5878            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5879            s.assume_init()
5880        }
5881    }
5882}
5883#[repr(u8)]
5884#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
5885pub enum BNTagTypeType {
5886    UserTagType = 0,
5887    NotificationTagType = 1,
5888    BookmarksTagType = 2,
5889}
5890#[repr(u8)]
5891#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
5892pub enum BNTagReferenceType {
5893    AddressTagReference = 0,
5894    FunctionTagReference = 1,
5895    DataTagReference = 2,
5896}
5897#[repr(C)]
5898#[derive(Debug, Copy, Clone)]
5899pub struct BNTagReference {
5900    pub refType: BNTagReferenceType,
5901    pub autoDefined: bool,
5902    pub tag: *mut BNTag,
5903    pub arch: *mut BNArchitecture,
5904    pub func: *mut BNFunction,
5905    pub addr: u64,
5906}
5907#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5908const _: () = {
5909    ["Size of BNTagReference"][::std::mem::size_of::<BNTagReference>() - 40usize];
5910    ["Alignment of BNTagReference"][::std::mem::align_of::<BNTagReference>() - 8usize];
5911    ["Offset of field: BNTagReference::refType"]
5912        [::std::mem::offset_of!(BNTagReference, refType) - 0usize];
5913    ["Offset of field: BNTagReference::autoDefined"]
5914        [::std::mem::offset_of!(BNTagReference, autoDefined) - 1usize];
5915    ["Offset of field: BNTagReference::tag"][::std::mem::offset_of!(BNTagReference, tag) - 8usize];
5916    ["Offset of field: BNTagReference::arch"]
5917        [::std::mem::offset_of!(BNTagReference, arch) - 16usize];
5918    ["Offset of field: BNTagReference::func"]
5919        [::std::mem::offset_of!(BNTagReference, func) - 24usize];
5920    ["Offset of field: BNTagReference::addr"]
5921        [::std::mem::offset_of!(BNTagReference, addr) - 32usize];
5922};
5923impl Default for BNTagReference {
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 BNCallingConventionWithConfidence {
5935    pub convention: *mut BNCallingConvention,
5936    pub confidence: u8,
5937}
5938#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5939const _: () = {
5940    ["Size of BNCallingConventionWithConfidence"]
5941        [::std::mem::size_of::<BNCallingConventionWithConfidence>() - 16usize];
5942    ["Alignment of BNCallingConventionWithConfidence"]
5943        [::std::mem::align_of::<BNCallingConventionWithConfidence>() - 8usize];
5944    ["Offset of field: BNCallingConventionWithConfidence::convention"]
5945        [::std::mem::offset_of!(BNCallingConventionWithConfidence, convention) - 0usize];
5946    ["Offset of field: BNCallingConventionWithConfidence::confidence"]
5947        [::std::mem::offset_of!(BNCallingConventionWithConfidence, confidence) - 8usize];
5948};
5949impl Default for BNCallingConventionWithConfidence {
5950    fn default() -> Self {
5951        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5952        unsafe {
5953            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5954            s.assume_init()
5955        }
5956    }
5957}
5958#[repr(C)]
5959#[derive(Debug, Default, Copy, Clone)]
5960pub struct BNBoolWithConfidence {
5961    pub value: bool,
5962    pub confidence: u8,
5963}
5964#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5965const _: () = {
5966    ["Size of BNBoolWithConfidence"][::std::mem::size_of::<BNBoolWithConfidence>() - 2usize];
5967    ["Alignment of BNBoolWithConfidence"][::std::mem::align_of::<BNBoolWithConfidence>() - 1usize];
5968    ["Offset of field: BNBoolWithConfidence::value"]
5969        [::std::mem::offset_of!(BNBoolWithConfidence, value) - 0usize];
5970    ["Offset of field: BNBoolWithConfidence::confidence"]
5971        [::std::mem::offset_of!(BNBoolWithConfidence, confidence) - 1usize];
5972};
5973#[repr(C)]
5974#[derive(Debug, Default, Copy, Clone)]
5975pub struct BNOffsetWithConfidence {
5976    pub value: i64,
5977    pub confidence: u8,
5978}
5979#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5980const _: () = {
5981    ["Size of BNOffsetWithConfidence"][::std::mem::size_of::<BNOffsetWithConfidence>() - 16usize];
5982    ["Alignment of BNOffsetWithConfidence"]
5983        [::std::mem::align_of::<BNOffsetWithConfidence>() - 8usize];
5984    ["Offset of field: BNOffsetWithConfidence::value"]
5985        [::std::mem::offset_of!(BNOffsetWithConfidence, value) - 0usize];
5986    ["Offset of field: BNOffsetWithConfidence::confidence"]
5987        [::std::mem::offset_of!(BNOffsetWithConfidence, confidence) - 8usize];
5988};
5989#[repr(C)]
5990#[derive(Debug, Copy, Clone)]
5991pub struct BNParameterVariablesWithConfidence {
5992    pub vars: *mut BNVariable,
5993    pub count: usize,
5994    pub confidence: u8,
5995}
5996#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5997const _: () = {
5998    ["Size of BNParameterVariablesWithConfidence"]
5999        [::std::mem::size_of::<BNParameterVariablesWithConfidence>() - 24usize];
6000    ["Alignment of BNParameterVariablesWithConfidence"]
6001        [::std::mem::align_of::<BNParameterVariablesWithConfidence>() - 8usize];
6002    ["Offset of field: BNParameterVariablesWithConfidence::vars"]
6003        [::std::mem::offset_of!(BNParameterVariablesWithConfidence, vars) - 0usize];
6004    ["Offset of field: BNParameterVariablesWithConfidence::count"]
6005        [::std::mem::offset_of!(BNParameterVariablesWithConfidence, count) - 8usize];
6006    ["Offset of field: BNParameterVariablesWithConfidence::confidence"]
6007        [::std::mem::offset_of!(BNParameterVariablesWithConfidence, confidence) - 16usize];
6008};
6009impl Default for BNParameterVariablesWithConfidence {
6010    fn default() -> Self {
6011        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6012        unsafe {
6013            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6014            s.assume_init()
6015        }
6016    }
6017}
6018#[repr(C)]
6019#[derive(Debug, Copy, Clone)]
6020pub struct BNRegisterSetWithConfidence {
6021    pub regs: *mut u32,
6022    pub count: usize,
6023    pub confidence: u8,
6024}
6025#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6026const _: () = {
6027    ["Size of BNRegisterSetWithConfidence"]
6028        [::std::mem::size_of::<BNRegisterSetWithConfidence>() - 24usize];
6029    ["Alignment of BNRegisterSetWithConfidence"]
6030        [::std::mem::align_of::<BNRegisterSetWithConfidence>() - 8usize];
6031    ["Offset of field: BNRegisterSetWithConfidence::regs"]
6032        [::std::mem::offset_of!(BNRegisterSetWithConfidence, regs) - 0usize];
6033    ["Offset of field: BNRegisterSetWithConfidence::count"]
6034        [::std::mem::offset_of!(BNRegisterSetWithConfidence, count) - 8usize];
6035    ["Offset of field: BNRegisterSetWithConfidence::confidence"]
6036        [::std::mem::offset_of!(BNRegisterSetWithConfidence, confidence) - 16usize];
6037};
6038impl Default for BNRegisterSetWithConfidence {
6039    fn default() -> Self {
6040        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6041        unsafe {
6042            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6043            s.assume_init()
6044        }
6045    }
6046}
6047#[repr(C)]
6048#[derive(Debug, Copy, Clone)]
6049pub struct BNValueLocationComponent {
6050    pub variable: BNVariable,
6051    pub offset: i64,
6052    pub sizeValid: bool,
6053    pub size: u64,
6054}
6055#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6056const _: () = {
6057    ["Size of BNValueLocationComponent"]
6058        [::std::mem::size_of::<BNValueLocationComponent>() - 40usize];
6059    ["Alignment of BNValueLocationComponent"]
6060        [::std::mem::align_of::<BNValueLocationComponent>() - 8usize];
6061    ["Offset of field: BNValueLocationComponent::variable"]
6062        [::std::mem::offset_of!(BNValueLocationComponent, variable) - 0usize];
6063    ["Offset of field: BNValueLocationComponent::offset"]
6064        [::std::mem::offset_of!(BNValueLocationComponent, offset) - 16usize];
6065    ["Offset of field: BNValueLocationComponent::sizeValid"]
6066        [::std::mem::offset_of!(BNValueLocationComponent, sizeValid) - 24usize];
6067    ["Offset of field: BNValueLocationComponent::size"]
6068        [::std::mem::offset_of!(BNValueLocationComponent, size) - 32usize];
6069};
6070impl Default for BNValueLocationComponent {
6071    fn default() -> Self {
6072        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6073        unsafe {
6074            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6075            s.assume_init()
6076        }
6077    }
6078}
6079#[repr(C)]
6080#[derive(Debug, Copy, Clone)]
6081pub struct BNValueLocation {
6082    pub count: usize,
6083    pub components: *mut BNValueLocationComponent,
6084    pub indirect: bool,
6085    pub returnedPointerValid: bool,
6086    pub returnedPointer: BNVariable,
6087}
6088#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6089const _: () = {
6090    ["Size of BNValueLocation"][::std::mem::size_of::<BNValueLocation>() - 40usize];
6091    ["Alignment of BNValueLocation"][::std::mem::align_of::<BNValueLocation>() - 8usize];
6092    ["Offset of field: BNValueLocation::count"]
6093        [::std::mem::offset_of!(BNValueLocation, count) - 0usize];
6094    ["Offset of field: BNValueLocation::components"]
6095        [::std::mem::offset_of!(BNValueLocation, components) - 8usize];
6096    ["Offset of field: BNValueLocation::indirect"]
6097        [::std::mem::offset_of!(BNValueLocation, indirect) - 16usize];
6098    ["Offset of field: BNValueLocation::returnedPointerValid"]
6099        [::std::mem::offset_of!(BNValueLocation, returnedPointerValid) - 17usize];
6100    ["Offset of field: BNValueLocation::returnedPointer"]
6101        [::std::mem::offset_of!(BNValueLocation, returnedPointer) - 24usize];
6102};
6103impl Default for BNValueLocation {
6104    fn default() -> Self {
6105        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6106        unsafe {
6107            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6108            s.assume_init()
6109        }
6110    }
6111}
6112#[repr(C)]
6113#[derive(Debug, Copy, Clone)]
6114pub struct BNValueLocationWithConfidence {
6115    pub location: BNValueLocation,
6116    pub confidence: u8,
6117}
6118#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6119const _: () = {
6120    ["Size of BNValueLocationWithConfidence"]
6121        [::std::mem::size_of::<BNValueLocationWithConfidence>() - 48usize];
6122    ["Alignment of BNValueLocationWithConfidence"]
6123        [::std::mem::align_of::<BNValueLocationWithConfidence>() - 8usize];
6124    ["Offset of field: BNValueLocationWithConfidence::location"]
6125        [::std::mem::offset_of!(BNValueLocationWithConfidence, location) - 0usize];
6126    ["Offset of field: BNValueLocationWithConfidence::confidence"]
6127        [::std::mem::offset_of!(BNValueLocationWithConfidence, confidence) - 40usize];
6128};
6129impl Default for BNValueLocationWithConfidence {
6130    fn default() -> Self {
6131        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6132        unsafe {
6133            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6134            s.assume_init()
6135        }
6136    }
6137}
6138#[repr(C)]
6139#[derive(Debug, Copy, Clone)]
6140pub struct BNValueLocationListWithConfidence {
6141    pub locations: *mut BNValueLocation,
6142    pub count: usize,
6143    pub confidence: u8,
6144}
6145#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6146const _: () = {
6147    ["Size of BNValueLocationListWithConfidence"]
6148        [::std::mem::size_of::<BNValueLocationListWithConfidence>() - 24usize];
6149    ["Alignment of BNValueLocationListWithConfidence"]
6150        [::std::mem::align_of::<BNValueLocationListWithConfidence>() - 8usize];
6151    ["Offset of field: BNValueLocationListWithConfidence::locations"]
6152        [::std::mem::offset_of!(BNValueLocationListWithConfidence, locations) - 0usize];
6153    ["Offset of field: BNValueLocationListWithConfidence::count"]
6154        [::std::mem::offset_of!(BNValueLocationListWithConfidence, count) - 8usize];
6155    ["Offset of field: BNValueLocationListWithConfidence::confidence"]
6156        [::std::mem::offset_of!(BNValueLocationListWithConfidence, confidence) - 16usize];
6157};
6158impl Default for BNValueLocationListWithConfidence {
6159    fn default() -> Self {
6160        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6161        unsafe {
6162            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6163            s.assume_init()
6164        }
6165    }
6166}
6167#[repr(u8)]
6168#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
6169pub enum BNValueLocationSource {
6170    DefaultLocationSource = 0,
6171    PassByValueLocationSource = 1,
6172    PassByReferenceLocationSource = 2,
6173    CustomLocationSource = 3,
6174}
6175#[repr(C)]
6176#[derive(Debug, Copy, Clone)]
6177pub struct BNFunctionParameter {
6178    pub name: *mut ::std::os::raw::c_char,
6179    pub type_: *mut BNType,
6180    pub typeConfidence: u8,
6181    pub locationSource: BNValueLocationSource,
6182    pub location: BNValueLocation,
6183}
6184#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6185const _: () = {
6186    ["Size of BNFunctionParameter"][::std::mem::size_of::<BNFunctionParameter>() - 64usize];
6187    ["Alignment of BNFunctionParameter"][::std::mem::align_of::<BNFunctionParameter>() - 8usize];
6188    ["Offset of field: BNFunctionParameter::name"]
6189        [::std::mem::offset_of!(BNFunctionParameter, name) - 0usize];
6190    ["Offset of field: BNFunctionParameter::type_"]
6191        [::std::mem::offset_of!(BNFunctionParameter, type_) - 8usize];
6192    ["Offset of field: BNFunctionParameter::typeConfidence"]
6193        [::std::mem::offset_of!(BNFunctionParameter, typeConfidence) - 16usize];
6194    ["Offset of field: BNFunctionParameter::locationSource"]
6195        [::std::mem::offset_of!(BNFunctionParameter, locationSource) - 17usize];
6196    ["Offset of field: BNFunctionParameter::location"]
6197        [::std::mem::offset_of!(BNFunctionParameter, location) - 24usize];
6198};
6199impl Default for BNFunctionParameter {
6200    fn default() -> Self {
6201        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6202        unsafe {
6203            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6204            s.assume_init()
6205        }
6206    }
6207}
6208#[repr(C)]
6209#[derive(Debug, Copy, Clone)]
6210pub struct BNReturnValue {
6211    pub type_: *mut BNType,
6212    pub typeConfidence: u8,
6213    pub defaultLocation: bool,
6214    pub location: BNValueLocation,
6215    pub locationConfidence: u8,
6216}
6217#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6218const _: () = {
6219    ["Size of BNReturnValue"][::std::mem::size_of::<BNReturnValue>() - 64usize];
6220    ["Alignment of BNReturnValue"][::std::mem::align_of::<BNReturnValue>() - 8usize];
6221    ["Offset of field: BNReturnValue::type_"]
6222        [::std::mem::offset_of!(BNReturnValue, type_) - 0usize];
6223    ["Offset of field: BNReturnValue::typeConfidence"]
6224        [::std::mem::offset_of!(BNReturnValue, typeConfidence) - 8usize];
6225    ["Offset of field: BNReturnValue::defaultLocation"]
6226        [::std::mem::offset_of!(BNReturnValue, defaultLocation) - 9usize];
6227    ["Offset of field: BNReturnValue::location"]
6228        [::std::mem::offset_of!(BNReturnValue, location) - 16usize];
6229    ["Offset of field: BNReturnValue::locationConfidence"]
6230        [::std::mem::offset_of!(BNReturnValue, locationConfidence) - 56usize];
6231};
6232impl Default for BNReturnValue {
6233    fn default() -> Self {
6234        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6235        unsafe {
6236            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6237            s.assume_init()
6238        }
6239    }
6240}
6241#[repr(C)]
6242#[derive(Debug, Copy, Clone)]
6243pub struct BNCallLayout {
6244    pub parameters: *mut BNValueLocation,
6245    pub parameterCount: usize,
6246    pub returnValueValid: bool,
6247    pub returnValue: BNValueLocation,
6248    pub stackAdjustment: i64,
6249    pub registerStackAdjustmentRegisters: *mut u32,
6250    pub registerStackAdjustmentAmounts: *mut i32,
6251    pub registerStackAdjustmentCount: usize,
6252}
6253#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6254const _: () = {
6255    ["Size of BNCallLayout"][::std::mem::size_of::<BNCallLayout>() - 96usize];
6256    ["Alignment of BNCallLayout"][::std::mem::align_of::<BNCallLayout>() - 8usize];
6257    ["Offset of field: BNCallLayout::parameters"]
6258        [::std::mem::offset_of!(BNCallLayout, parameters) - 0usize];
6259    ["Offset of field: BNCallLayout::parameterCount"]
6260        [::std::mem::offset_of!(BNCallLayout, parameterCount) - 8usize];
6261    ["Offset of field: BNCallLayout::returnValueValid"]
6262        [::std::mem::offset_of!(BNCallLayout, returnValueValid) - 16usize];
6263    ["Offset of field: BNCallLayout::returnValue"]
6264        [::std::mem::offset_of!(BNCallLayout, returnValue) - 24usize];
6265    ["Offset of field: BNCallLayout::stackAdjustment"]
6266        [::std::mem::offset_of!(BNCallLayout, stackAdjustment) - 64usize];
6267    ["Offset of field: BNCallLayout::registerStackAdjustmentRegisters"]
6268        [::std::mem::offset_of!(BNCallLayout, registerStackAdjustmentRegisters) - 72usize];
6269    ["Offset of field: BNCallLayout::registerStackAdjustmentAmounts"]
6270        [::std::mem::offset_of!(BNCallLayout, registerStackAdjustmentAmounts) - 80usize];
6271    ["Offset of field: BNCallLayout::registerStackAdjustmentCount"]
6272        [::std::mem::offset_of!(BNCallLayout, registerStackAdjustmentCount) - 88usize];
6273};
6274impl Default for BNCallLayout {
6275    fn default() -> Self {
6276        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6277        unsafe {
6278            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6279            s.assume_init()
6280        }
6281    }
6282}
6283#[repr(C)]
6284#[derive(Debug, Copy, Clone)]
6285pub struct BNQualifiedNameAndType {
6286    pub name: BNQualifiedName,
6287    pub type_: *mut BNType,
6288}
6289#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6290const _: () = {
6291    ["Size of BNQualifiedNameAndType"][::std::mem::size_of::<BNQualifiedNameAndType>() - 32usize];
6292    ["Alignment of BNQualifiedNameAndType"]
6293        [::std::mem::align_of::<BNQualifiedNameAndType>() - 8usize];
6294    ["Offset of field: BNQualifiedNameAndType::name"]
6295        [::std::mem::offset_of!(BNQualifiedNameAndType, name) - 0usize];
6296    ["Offset of field: BNQualifiedNameAndType::type_"]
6297        [::std::mem::offset_of!(BNQualifiedNameAndType, type_) - 24usize];
6298};
6299impl Default for BNQualifiedNameAndType {
6300    fn default() -> Self {
6301        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6302        unsafe {
6303            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6304            s.assume_init()
6305        }
6306    }
6307}
6308#[repr(C)]
6309#[derive(Debug, Copy, Clone)]
6310pub struct BNQualifiedNameTypeAndId {
6311    pub name: BNQualifiedName,
6312    pub id: *mut ::std::os::raw::c_char,
6313    pub type_: *mut BNType,
6314}
6315#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6316const _: () = {
6317    ["Size of BNQualifiedNameTypeAndId"]
6318        [::std::mem::size_of::<BNQualifiedNameTypeAndId>() - 40usize];
6319    ["Alignment of BNQualifiedNameTypeAndId"]
6320        [::std::mem::align_of::<BNQualifiedNameTypeAndId>() - 8usize];
6321    ["Offset of field: BNQualifiedNameTypeAndId::name"]
6322        [::std::mem::offset_of!(BNQualifiedNameTypeAndId, name) - 0usize];
6323    ["Offset of field: BNQualifiedNameTypeAndId::id"]
6324        [::std::mem::offset_of!(BNQualifiedNameTypeAndId, id) - 24usize];
6325    ["Offset of field: BNQualifiedNameTypeAndId::type_"]
6326        [::std::mem::offset_of!(BNQualifiedNameTypeAndId, type_) - 32usize];
6327};
6328impl Default for BNQualifiedNameTypeAndId {
6329    fn default() -> Self {
6330        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6331        unsafe {
6332            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6333            s.assume_init()
6334        }
6335    }
6336}
6337#[repr(C)]
6338#[derive(Debug, Copy, Clone)]
6339pub struct BNStructureMember {
6340    pub type_: *mut BNType,
6341    pub name: *mut ::std::os::raw::c_char,
6342    pub offset: u64,
6343    pub typeConfidence: u8,
6344    pub access: BNMemberAccess,
6345    pub scope: BNMemberScope,
6346    pub bitPosition: u8,
6347    pub bitWidth: u8,
6348}
6349#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6350const _: () = {
6351    ["Size of BNStructureMember"][::std::mem::size_of::<BNStructureMember>() - 32usize];
6352    ["Alignment of BNStructureMember"][::std::mem::align_of::<BNStructureMember>() - 8usize];
6353    ["Offset of field: BNStructureMember::type_"]
6354        [::std::mem::offset_of!(BNStructureMember, type_) - 0usize];
6355    ["Offset of field: BNStructureMember::name"]
6356        [::std::mem::offset_of!(BNStructureMember, name) - 8usize];
6357    ["Offset of field: BNStructureMember::offset"]
6358        [::std::mem::offset_of!(BNStructureMember, offset) - 16usize];
6359    ["Offset of field: BNStructureMember::typeConfidence"]
6360        [::std::mem::offset_of!(BNStructureMember, typeConfidence) - 24usize];
6361    ["Offset of field: BNStructureMember::access"]
6362        [::std::mem::offset_of!(BNStructureMember, access) - 25usize];
6363    ["Offset of field: BNStructureMember::scope"]
6364        [::std::mem::offset_of!(BNStructureMember, scope) - 26usize];
6365    ["Offset of field: BNStructureMember::bitPosition"]
6366        [::std::mem::offset_of!(BNStructureMember, bitPosition) - 27usize];
6367    ["Offset of field: BNStructureMember::bitWidth"]
6368        [::std::mem::offset_of!(BNStructureMember, bitWidth) - 28usize];
6369};
6370impl Default for BNStructureMember {
6371    fn default() -> Self {
6372        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6373        unsafe {
6374            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6375            s.assume_init()
6376        }
6377    }
6378}
6379#[repr(C)]
6380#[derive(Debug, Copy, Clone)]
6381pub struct BNInheritedStructureMember {
6382    pub base: *mut BNNamedTypeReference,
6383    pub baseOffset: u64,
6384    pub member: BNStructureMember,
6385    pub memberIndex: usize,
6386}
6387#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6388const _: () = {
6389    ["Size of BNInheritedStructureMember"]
6390        [::std::mem::size_of::<BNInheritedStructureMember>() - 56usize];
6391    ["Alignment of BNInheritedStructureMember"]
6392        [::std::mem::align_of::<BNInheritedStructureMember>() - 8usize];
6393    ["Offset of field: BNInheritedStructureMember::base"]
6394        [::std::mem::offset_of!(BNInheritedStructureMember, base) - 0usize];
6395    ["Offset of field: BNInheritedStructureMember::baseOffset"]
6396        [::std::mem::offset_of!(BNInheritedStructureMember, baseOffset) - 8usize];
6397    ["Offset of field: BNInheritedStructureMember::member"]
6398        [::std::mem::offset_of!(BNInheritedStructureMember, member) - 16usize];
6399    ["Offset of field: BNInheritedStructureMember::memberIndex"]
6400        [::std::mem::offset_of!(BNInheritedStructureMember, memberIndex) - 48usize];
6401};
6402impl Default for BNInheritedStructureMember {
6403    fn default() -> Self {
6404        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6405        unsafe {
6406            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6407            s.assume_init()
6408        }
6409    }
6410}
6411#[repr(C)]
6412#[derive(Debug, Copy, Clone)]
6413pub struct BNBaseStructure {
6414    pub type_: *mut BNNamedTypeReference,
6415    pub offset: u64,
6416    pub width: u64,
6417}
6418#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6419const _: () = {
6420    ["Size of BNBaseStructure"][::std::mem::size_of::<BNBaseStructure>() - 24usize];
6421    ["Alignment of BNBaseStructure"][::std::mem::align_of::<BNBaseStructure>() - 8usize];
6422    ["Offset of field: BNBaseStructure::type_"]
6423        [::std::mem::offset_of!(BNBaseStructure, type_) - 0usize];
6424    ["Offset of field: BNBaseStructure::offset"]
6425        [::std::mem::offset_of!(BNBaseStructure, offset) - 8usize];
6426    ["Offset of field: BNBaseStructure::width"]
6427        [::std::mem::offset_of!(BNBaseStructure, width) - 16usize];
6428};
6429impl Default for BNBaseStructure {
6430    fn default() -> Self {
6431        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6432        unsafe {
6433            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6434            s.assume_init()
6435        }
6436    }
6437}
6438#[repr(C)]
6439#[derive(Debug, Copy, Clone)]
6440pub struct BNEnumerationMember {
6441    pub name: *mut ::std::os::raw::c_char,
6442    pub value: u64,
6443    pub isDefault: bool,
6444}
6445#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6446const _: () = {
6447    ["Size of BNEnumerationMember"][::std::mem::size_of::<BNEnumerationMember>() - 24usize];
6448    ["Alignment of BNEnumerationMember"][::std::mem::align_of::<BNEnumerationMember>() - 8usize];
6449    ["Offset of field: BNEnumerationMember::name"]
6450        [::std::mem::offset_of!(BNEnumerationMember, name) - 0usize];
6451    ["Offset of field: BNEnumerationMember::value"]
6452        [::std::mem::offset_of!(BNEnumerationMember, value) - 8usize];
6453    ["Offset of field: BNEnumerationMember::isDefault"]
6454        [::std::mem::offset_of!(BNEnumerationMember, isDefault) - 16usize];
6455};
6456impl Default for BNEnumerationMember {
6457    fn default() -> Self {
6458        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6459        unsafe {
6460            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6461            s.assume_init()
6462        }
6463    }
6464}
6465#[repr(C)]
6466#[derive(Debug, Copy, Clone)]
6467pub struct BNFunctionRecognizer {
6468    pub context: *mut ::std::os::raw::c_void,
6469    pub recognizeLowLevelIL: ::std::option::Option<
6470        unsafe extern "C" fn(
6471            ctxt: *mut ::std::os::raw::c_void,
6472            data: *mut BNBinaryView,
6473            func: *mut BNFunction,
6474            il: *mut BNLowLevelILFunction,
6475        ) -> bool,
6476    >,
6477    pub recognizeMediumLevelIL: ::std::option::Option<
6478        unsafe extern "C" fn(
6479            ctxt: *mut ::std::os::raw::c_void,
6480            data: *mut BNBinaryView,
6481            func: *mut BNFunction,
6482            il: *mut BNMediumLevelILFunction,
6483        ) -> bool,
6484    >,
6485}
6486#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6487const _: () = {
6488    ["Size of BNFunctionRecognizer"][::std::mem::size_of::<BNFunctionRecognizer>() - 24usize];
6489    ["Alignment of BNFunctionRecognizer"][::std::mem::align_of::<BNFunctionRecognizer>() - 8usize];
6490    ["Offset of field: BNFunctionRecognizer::context"]
6491        [::std::mem::offset_of!(BNFunctionRecognizer, context) - 0usize];
6492    ["Offset of field: BNFunctionRecognizer::recognizeLowLevelIL"]
6493        [::std::mem::offset_of!(BNFunctionRecognizer, recognizeLowLevelIL) - 8usize];
6494    ["Offset of field: BNFunctionRecognizer::recognizeMediumLevelIL"]
6495        [::std::mem::offset_of!(BNFunctionRecognizer, recognizeMediumLevelIL) - 16usize];
6496};
6497impl Default for BNFunctionRecognizer {
6498    fn default() -> Self {
6499        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6500        unsafe {
6501            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6502            s.assume_init()
6503        }
6504    }
6505}
6506#[repr(C)]
6507#[derive(Debug, Copy, Clone)]
6508pub struct BNCustomRelocationHandler {
6509    pub context: *mut ::std::os::raw::c_void,
6510    pub freeObject: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
6511    pub getRelocationInfo: ::std::option::Option<
6512        unsafe extern "C" fn(
6513            ctxt: *mut ::std::os::raw::c_void,
6514            view: *mut BNBinaryView,
6515            arch: *mut BNArchitecture,
6516            result: *mut BNRelocationInfo,
6517            resultCount: usize,
6518        ) -> bool,
6519    >,
6520    pub applyRelocation: ::std::option::Option<
6521        unsafe extern "C" fn(
6522            ctxt: *mut ::std::os::raw::c_void,
6523            view: *mut BNBinaryView,
6524            arch: *mut BNArchitecture,
6525            reloc: *mut BNRelocation,
6526            dest: *mut u8,
6527            len: usize,
6528        ) -> bool,
6529    >,
6530    pub getOperandForExternalRelocation: ::std::option::Option<
6531        unsafe extern "C" fn(
6532            ctxt: *mut ::std::os::raw::c_void,
6533            data: *const u8,
6534            addr: u64,
6535            length: usize,
6536            il: *mut BNLowLevelILFunction,
6537            relocation: *mut BNRelocation,
6538        ) -> usize,
6539    >,
6540}
6541#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6542const _: () = {
6543    ["Size of BNCustomRelocationHandler"]
6544        [::std::mem::size_of::<BNCustomRelocationHandler>() - 40usize];
6545    ["Alignment of BNCustomRelocationHandler"]
6546        [::std::mem::align_of::<BNCustomRelocationHandler>() - 8usize];
6547    ["Offset of field: BNCustomRelocationHandler::context"]
6548        [::std::mem::offset_of!(BNCustomRelocationHandler, context) - 0usize];
6549    ["Offset of field: BNCustomRelocationHandler::freeObject"]
6550        [::std::mem::offset_of!(BNCustomRelocationHandler, freeObject) - 8usize];
6551    ["Offset of field: BNCustomRelocationHandler::getRelocationInfo"]
6552        [::std::mem::offset_of!(BNCustomRelocationHandler, getRelocationInfo) - 16usize];
6553    ["Offset of field: BNCustomRelocationHandler::applyRelocation"]
6554        [::std::mem::offset_of!(BNCustomRelocationHandler, applyRelocation) - 24usize];
6555    ["Offset of field: BNCustomRelocationHandler::getOperandForExternalRelocation"][::std::mem::offset_of!(
6556        BNCustomRelocationHandler,
6557        getOperandForExternalRelocation
6558    ) - 32usize];
6559};
6560impl Default for BNCustomRelocationHandler {
6561    fn default() -> Self {
6562        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6563        unsafe {
6564            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6565            s.assume_init()
6566        }
6567    }
6568}
6569#[repr(u8)]
6570#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
6571pub enum BNTypeParserOption {
6572    IncludeSystemTypes = 0,
6573    BuiltinMacros = 1,
6574}
6575#[repr(C)]
6576#[derive(Debug, Copy, Clone)]
6577pub struct BNParsedType {
6578    pub name: BNQualifiedName,
6579    pub type_: *mut BNType,
6580    pub isUser: bool,
6581}
6582#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6583const _: () = {
6584    ["Size of BNParsedType"][::std::mem::size_of::<BNParsedType>() - 40usize];
6585    ["Alignment of BNParsedType"][::std::mem::align_of::<BNParsedType>() - 8usize];
6586    ["Offset of field: BNParsedType::name"][::std::mem::offset_of!(BNParsedType, name) - 0usize];
6587    ["Offset of field: BNParsedType::type_"][::std::mem::offset_of!(BNParsedType, type_) - 24usize];
6588    ["Offset of field: BNParsedType::isUser"]
6589        [::std::mem::offset_of!(BNParsedType, isUser) - 32usize];
6590};
6591impl Default for BNParsedType {
6592    fn default() -> Self {
6593        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6594        unsafe {
6595            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6596            s.assume_init()
6597        }
6598    }
6599}
6600#[repr(C)]
6601#[derive(Debug, Copy, Clone)]
6602pub struct BNTypeParserResult {
6603    pub types: *mut BNParsedType,
6604    pub variables: *mut BNParsedType,
6605    pub functions: *mut BNParsedType,
6606    pub typeCount: usize,
6607    pub variableCount: usize,
6608    pub functionCount: usize,
6609}
6610#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6611const _: () = {
6612    ["Size of BNTypeParserResult"][::std::mem::size_of::<BNTypeParserResult>() - 48usize];
6613    ["Alignment of BNTypeParserResult"][::std::mem::align_of::<BNTypeParserResult>() - 8usize];
6614    ["Offset of field: BNTypeParserResult::types"]
6615        [::std::mem::offset_of!(BNTypeParserResult, types) - 0usize];
6616    ["Offset of field: BNTypeParserResult::variables"]
6617        [::std::mem::offset_of!(BNTypeParserResult, variables) - 8usize];
6618    ["Offset of field: BNTypeParserResult::functions"]
6619        [::std::mem::offset_of!(BNTypeParserResult, functions) - 16usize];
6620    ["Offset of field: BNTypeParserResult::typeCount"]
6621        [::std::mem::offset_of!(BNTypeParserResult, typeCount) - 24usize];
6622    ["Offset of field: BNTypeParserResult::variableCount"]
6623        [::std::mem::offset_of!(BNTypeParserResult, variableCount) - 32usize];
6624    ["Offset of field: BNTypeParserResult::functionCount"]
6625        [::std::mem::offset_of!(BNTypeParserResult, functionCount) - 40usize];
6626};
6627impl Default for BNTypeParserResult {
6628    fn default() -> Self {
6629        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6630        unsafe {
6631            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6632            s.assume_init()
6633        }
6634    }
6635}
6636#[repr(u8)]
6637#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
6638pub enum BNTypeParserErrorSeverity {
6639    IgnoredSeverity = 0,
6640    NoteSeverity = 1,
6641    RemarkSeverity = 2,
6642    WarningSeverity = 3,
6643    ErrorSeverity = 4,
6644    FatalSeverity = 5,
6645}
6646#[repr(C)]
6647#[derive(Debug, Copy, Clone)]
6648pub struct BNTypeParserError {
6649    pub severity: BNTypeParserErrorSeverity,
6650    pub message: *mut ::std::os::raw::c_char,
6651    pub fileName: *mut ::std::os::raw::c_char,
6652    pub line: u64,
6653    pub column: u64,
6654}
6655#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6656const _: () = {
6657    ["Size of BNTypeParserError"][::std::mem::size_of::<BNTypeParserError>() - 40usize];
6658    ["Alignment of BNTypeParserError"][::std::mem::align_of::<BNTypeParserError>() - 8usize];
6659    ["Offset of field: BNTypeParserError::severity"]
6660        [::std::mem::offset_of!(BNTypeParserError, severity) - 0usize];
6661    ["Offset of field: BNTypeParserError::message"]
6662        [::std::mem::offset_of!(BNTypeParserError, message) - 8usize];
6663    ["Offset of field: BNTypeParserError::fileName"]
6664        [::std::mem::offset_of!(BNTypeParserError, fileName) - 16usize];
6665    ["Offset of field: BNTypeParserError::line"]
6666        [::std::mem::offset_of!(BNTypeParserError, line) - 24usize];
6667    ["Offset of field: BNTypeParserError::column"]
6668        [::std::mem::offset_of!(BNTypeParserError, column) - 32usize];
6669};
6670impl Default for BNTypeParserError {
6671    fn default() -> Self {
6672        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6673        unsafe {
6674            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6675            s.assume_init()
6676        }
6677    }
6678}
6679#[repr(C)]
6680#[derive(Debug, Copy, Clone)]
6681pub struct BNQualifiedNameList {
6682    pub names: *mut BNQualifiedName,
6683    pub count: usize,
6684}
6685#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6686const _: () = {
6687    ["Size of BNQualifiedNameList"][::std::mem::size_of::<BNQualifiedNameList>() - 16usize];
6688    ["Alignment of BNQualifiedNameList"][::std::mem::align_of::<BNQualifiedNameList>() - 8usize];
6689    ["Offset of field: BNQualifiedNameList::names"]
6690        [::std::mem::offset_of!(BNQualifiedNameList, names) - 0usize];
6691    ["Offset of field: BNQualifiedNameList::count"]
6692        [::std::mem::offset_of!(BNQualifiedNameList, count) - 8usize];
6693};
6694impl Default for BNQualifiedNameList {
6695    fn default() -> Self {
6696        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6697        unsafe {
6698            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6699            s.assume_init()
6700        }
6701    }
6702}
6703#[repr(u8)]
6704#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
6705pub enum BNUpdateResult {
6706    UpdateFailed = 0,
6707    UpdateSuccess = 1,
6708    AlreadyUpToDate = 2,
6709    UpdateAvailable = 3,
6710}
6711#[repr(C)]
6712#[derive(Debug, Copy, Clone)]
6713pub struct BNUpdateChannel {
6714    pub name: *mut ::std::os::raw::c_char,
6715    pub description: *mut ::std::os::raw::c_char,
6716    pub latestVersion: *mut ::std::os::raw::c_char,
6717}
6718#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6719const _: () = {
6720    ["Size of BNUpdateChannel"][::std::mem::size_of::<BNUpdateChannel>() - 24usize];
6721    ["Alignment of BNUpdateChannel"][::std::mem::align_of::<BNUpdateChannel>() - 8usize];
6722    ["Offset of field: BNUpdateChannel::name"]
6723        [::std::mem::offset_of!(BNUpdateChannel, name) - 0usize];
6724    ["Offset of field: BNUpdateChannel::description"]
6725        [::std::mem::offset_of!(BNUpdateChannel, description) - 8usize];
6726    ["Offset of field: BNUpdateChannel::latestVersion"]
6727        [::std::mem::offset_of!(BNUpdateChannel, latestVersion) - 16usize];
6728};
6729impl Default for BNUpdateChannel {
6730    fn default() -> Self {
6731        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6732        unsafe {
6733            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6734            s.assume_init()
6735        }
6736    }
6737}
6738#[repr(C)]
6739#[derive(Debug, Copy, Clone)]
6740pub struct BNChangelogEntry {
6741    pub version: BNVersionInfo,
6742    pub notes: *mut ::std::os::raw::c_char,
6743    pub time: u64,
6744}
6745#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6746const _: () = {
6747    ["Size of BNChangelogEntry"][::std::mem::size_of::<BNChangelogEntry>() - 40usize];
6748    ["Alignment of BNChangelogEntry"][::std::mem::align_of::<BNChangelogEntry>() - 8usize];
6749    ["Offset of field: BNChangelogEntry::version"]
6750        [::std::mem::offset_of!(BNChangelogEntry, version) - 0usize];
6751    ["Offset of field: BNChangelogEntry::notes"]
6752        [::std::mem::offset_of!(BNChangelogEntry, notes) - 24usize];
6753    ["Offset of field: BNChangelogEntry::time"]
6754        [::std::mem::offset_of!(BNChangelogEntry, time) - 32usize];
6755};
6756impl Default for BNChangelogEntry {
6757    fn default() -> Self {
6758        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6759        unsafe {
6760            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6761            s.assume_init()
6762        }
6763    }
6764}
6765#[repr(C)]
6766#[derive(Debug, Copy, Clone)]
6767pub struct BNUpdateVersionNew {
6768    pub version: BNVersionInfo,
6769    pub name: *mut ::std::os::raw::c_char,
6770    pub time: u64,
6771}
6772#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6773const _: () = {
6774    ["Size of BNUpdateVersionNew"][::std::mem::size_of::<BNUpdateVersionNew>() - 40usize];
6775    ["Alignment of BNUpdateVersionNew"][::std::mem::align_of::<BNUpdateVersionNew>() - 8usize];
6776    ["Offset of field: BNUpdateVersionNew::version"]
6777        [::std::mem::offset_of!(BNUpdateVersionNew, version) - 0usize];
6778    ["Offset of field: BNUpdateVersionNew::name"]
6779        [::std::mem::offset_of!(BNUpdateVersionNew, name) - 24usize];
6780    ["Offset of field: BNUpdateVersionNew::time"]
6781        [::std::mem::offset_of!(BNUpdateVersionNew, time) - 32usize];
6782};
6783impl Default for BNUpdateVersionNew {
6784    fn default() -> Self {
6785        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6786        unsafe {
6787            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6788            s.assume_init()
6789        }
6790    }
6791}
6792#[repr(C)]
6793#[derive(Debug, Copy, Clone)]
6794pub struct BNUpdateChannelFullInfo {
6795    pub versions: *mut BNUpdateVersionNew,
6796    pub versionCount: u64,
6797    pub changelogEntries: *mut BNChangelogEntry,
6798    pub changelogEntryCount: u64,
6799    pub name: *mut ::std::os::raw::c_char,
6800    pub desc: *mut ::std::os::raw::c_char,
6801    pub latestVersion: *mut ::std::os::raw::c_char,
6802}
6803#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6804const _: () = {
6805    ["Size of BNUpdateChannelFullInfo"][::std::mem::size_of::<BNUpdateChannelFullInfo>() - 56usize];
6806    ["Alignment of BNUpdateChannelFullInfo"]
6807        [::std::mem::align_of::<BNUpdateChannelFullInfo>() - 8usize];
6808    ["Offset of field: BNUpdateChannelFullInfo::versions"]
6809        [::std::mem::offset_of!(BNUpdateChannelFullInfo, versions) - 0usize];
6810    ["Offset of field: BNUpdateChannelFullInfo::versionCount"]
6811        [::std::mem::offset_of!(BNUpdateChannelFullInfo, versionCount) - 8usize];
6812    ["Offset of field: BNUpdateChannelFullInfo::changelogEntries"]
6813        [::std::mem::offset_of!(BNUpdateChannelFullInfo, changelogEntries) - 16usize];
6814    ["Offset of field: BNUpdateChannelFullInfo::changelogEntryCount"]
6815        [::std::mem::offset_of!(BNUpdateChannelFullInfo, changelogEntryCount) - 24usize];
6816    ["Offset of field: BNUpdateChannelFullInfo::name"]
6817        [::std::mem::offset_of!(BNUpdateChannelFullInfo, name) - 32usize];
6818    ["Offset of field: BNUpdateChannelFullInfo::desc"]
6819        [::std::mem::offset_of!(BNUpdateChannelFullInfo, desc) - 40usize];
6820    ["Offset of field: BNUpdateChannelFullInfo::latestVersion"]
6821        [::std::mem::offset_of!(BNUpdateChannelFullInfo, latestVersion) - 48usize];
6822};
6823impl Default for BNUpdateChannelFullInfo {
6824    fn default() -> Self {
6825        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6826        unsafe {
6827            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6828            s.assume_init()
6829        }
6830    }
6831}
6832#[repr(C)]
6833#[derive(Debug, Copy, Clone)]
6834pub struct BNUpdateVersion {
6835    pub version: *mut ::std::os::raw::c_char,
6836    pub notes: *mut ::std::os::raw::c_char,
6837    pub time: u64,
6838}
6839#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6840const _: () = {
6841    ["Size of BNUpdateVersion"][::std::mem::size_of::<BNUpdateVersion>() - 24usize];
6842    ["Alignment of BNUpdateVersion"][::std::mem::align_of::<BNUpdateVersion>() - 8usize];
6843    ["Offset of field: BNUpdateVersion::version"]
6844        [::std::mem::offset_of!(BNUpdateVersion, version) - 0usize];
6845    ["Offset of field: BNUpdateVersion::notes"]
6846        [::std::mem::offset_of!(BNUpdateVersion, notes) - 8usize];
6847    ["Offset of field: BNUpdateVersion::time"]
6848        [::std::mem::offset_of!(BNUpdateVersion, time) - 16usize];
6849};
6850impl Default for BNUpdateVersion {
6851    fn default() -> Self {
6852        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6853        unsafe {
6854            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6855            s.assume_init()
6856        }
6857    }
6858}
6859#[repr(C)]
6860#[derive(Debug, Copy, Clone)]
6861pub struct BNStringReference {
6862    pub type_: BNStringType,
6863    pub start: u64,
6864    pub length: usize,
6865}
6866#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6867const _: () = {
6868    ["Size of BNStringReference"][::std::mem::size_of::<BNStringReference>() - 24usize];
6869    ["Alignment of BNStringReference"][::std::mem::align_of::<BNStringReference>() - 8usize];
6870    ["Offset of field: BNStringReference::type_"]
6871        [::std::mem::offset_of!(BNStringReference, type_) - 0usize];
6872    ["Offset of field: BNStringReference::start"]
6873        [::std::mem::offset_of!(BNStringReference, start) - 8usize];
6874    ["Offset of field: BNStringReference::length"]
6875        [::std::mem::offset_of!(BNStringReference, length) - 16usize];
6876};
6877impl Default for BNStringReference {
6878    fn default() -> Self {
6879        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6880        unsafe {
6881            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6882            s.assume_init()
6883        }
6884    }
6885}
6886#[repr(u8)]
6887#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
6888pub enum BNPluginCommandType {
6889    DefaultPluginCommand = 0,
6890    AddressPluginCommand = 1,
6891    RangePluginCommand = 2,
6892    FunctionPluginCommand = 3,
6893    LowLevelILFunctionPluginCommand = 4,
6894    LowLevelILInstructionPluginCommand = 5,
6895    MediumLevelILFunctionPluginCommand = 6,
6896    MediumLevelILInstructionPluginCommand = 7,
6897    HighLevelILFunctionPluginCommand = 8,
6898    HighLevelILInstructionPluginCommand = 9,
6899    ProjectPluginCommand = 10,
6900    GlobalPluginCommand = 11,
6901}
6902#[repr(C)]
6903#[derive(Debug, Copy, Clone)]
6904pub struct BNPluginCommand {
6905    pub name: *mut ::std::os::raw::c_char,
6906    pub description: *mut ::std::os::raw::c_char,
6907    pub type_: BNPluginCommandType,
6908    pub context: *mut ::std::os::raw::c_void,
6909    pub globalCommand:
6910        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
6911    pub defaultCommand: ::std::option::Option<
6912        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, view: *mut BNBinaryView),
6913    >,
6914    pub addressCommand: ::std::option::Option<
6915        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, view: *mut BNBinaryView, addr: u64),
6916    >,
6917    pub rangeCommand: ::std::option::Option<
6918        unsafe extern "C" fn(
6919            ctxt: *mut ::std::os::raw::c_void,
6920            view: *mut BNBinaryView,
6921            addr: u64,
6922            len: u64,
6923        ),
6924    >,
6925    pub functionCommand: ::std::option::Option<
6926        unsafe extern "C" fn(
6927            ctxt: *mut ::std::os::raw::c_void,
6928            view: *mut BNBinaryView,
6929            func: *mut BNFunction,
6930        ),
6931    >,
6932    pub lowLevelILFunctionCommand: ::std::option::Option<
6933        unsafe extern "C" fn(
6934            ctxt: *mut ::std::os::raw::c_void,
6935            view: *mut BNBinaryView,
6936            func: *mut BNLowLevelILFunction,
6937        ),
6938    >,
6939    pub lowLevelILInstructionCommand: ::std::option::Option<
6940        unsafe extern "C" fn(
6941            ctxt: *mut ::std::os::raw::c_void,
6942            view: *mut BNBinaryView,
6943            func: *mut BNLowLevelILFunction,
6944            instr: usize,
6945        ),
6946    >,
6947    pub mediumLevelILFunctionCommand: ::std::option::Option<
6948        unsafe extern "C" fn(
6949            ctxt: *mut ::std::os::raw::c_void,
6950            view: *mut BNBinaryView,
6951            func: *mut BNMediumLevelILFunction,
6952        ),
6953    >,
6954    pub mediumLevelILInstructionCommand: ::std::option::Option<
6955        unsafe extern "C" fn(
6956            ctxt: *mut ::std::os::raw::c_void,
6957            view: *mut BNBinaryView,
6958            func: *mut BNMediumLevelILFunction,
6959            instr: usize,
6960        ),
6961    >,
6962    pub highLevelILFunctionCommand: ::std::option::Option<
6963        unsafe extern "C" fn(
6964            ctxt: *mut ::std::os::raw::c_void,
6965            view: *mut BNBinaryView,
6966            func: *mut BNHighLevelILFunction,
6967        ),
6968    >,
6969    pub highLevelILInstructionCommand: ::std::option::Option<
6970        unsafe extern "C" fn(
6971            ctxt: *mut ::std::os::raw::c_void,
6972            view: *mut BNBinaryView,
6973            func: *mut BNHighLevelILFunction,
6974            instr: usize,
6975        ),
6976    >,
6977    pub projectCommand: ::std::option::Option<
6978        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, view: *mut BNProject),
6979    >,
6980    pub globalIsValid:
6981        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
6982    pub defaultIsValid: ::std::option::Option<
6983        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, view: *mut BNBinaryView) -> bool,
6984    >,
6985    pub addressIsValid: ::std::option::Option<
6986        unsafe extern "C" fn(
6987            ctxt: *mut ::std::os::raw::c_void,
6988            view: *mut BNBinaryView,
6989            addr: u64,
6990        ) -> bool,
6991    >,
6992    pub rangeIsValid: ::std::option::Option<
6993        unsafe extern "C" fn(
6994            ctxt: *mut ::std::os::raw::c_void,
6995            view: *mut BNBinaryView,
6996            addr: u64,
6997            len: u64,
6998        ) -> bool,
6999    >,
7000    pub functionIsValid: ::std::option::Option<
7001        unsafe extern "C" fn(
7002            ctxt: *mut ::std::os::raw::c_void,
7003            view: *mut BNBinaryView,
7004            func: *mut BNFunction,
7005        ) -> bool,
7006    >,
7007    pub lowLevelILFunctionIsValid: ::std::option::Option<
7008        unsafe extern "C" fn(
7009            ctxt: *mut ::std::os::raw::c_void,
7010            view: *mut BNBinaryView,
7011            func: *mut BNLowLevelILFunction,
7012        ) -> bool,
7013    >,
7014    pub lowLevelILInstructionIsValid: ::std::option::Option<
7015        unsafe extern "C" fn(
7016            ctxt: *mut ::std::os::raw::c_void,
7017            view: *mut BNBinaryView,
7018            func: *mut BNLowLevelILFunction,
7019            instr: usize,
7020        ) -> bool,
7021    >,
7022    pub mediumLevelILFunctionIsValid: ::std::option::Option<
7023        unsafe extern "C" fn(
7024            ctxt: *mut ::std::os::raw::c_void,
7025            view: *mut BNBinaryView,
7026            func: *mut BNMediumLevelILFunction,
7027        ) -> bool,
7028    >,
7029    pub mediumLevelILInstructionIsValid: ::std::option::Option<
7030        unsafe extern "C" fn(
7031            ctxt: *mut ::std::os::raw::c_void,
7032            view: *mut BNBinaryView,
7033            func: *mut BNMediumLevelILFunction,
7034            instr: usize,
7035        ) -> bool,
7036    >,
7037    pub highLevelILFunctionIsValid: ::std::option::Option<
7038        unsafe extern "C" fn(
7039            ctxt: *mut ::std::os::raw::c_void,
7040            view: *mut BNBinaryView,
7041            func: *mut BNHighLevelILFunction,
7042        ) -> bool,
7043    >,
7044    pub highLevelILInstructionIsValid: ::std::option::Option<
7045        unsafe extern "C" fn(
7046            ctxt: *mut ::std::os::raw::c_void,
7047            view: *mut BNBinaryView,
7048            func: *mut BNHighLevelILFunction,
7049            instr: usize,
7050        ) -> bool,
7051    >,
7052    pub projectIsValid: ::std::option::Option<
7053        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, view: *mut BNProject) -> bool,
7054    >,
7055}
7056#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7057const _: () = {
7058    ["Size of BNPluginCommand"][::std::mem::size_of::<BNPluginCommand>() - 224usize];
7059    ["Alignment of BNPluginCommand"][::std::mem::align_of::<BNPluginCommand>() - 8usize];
7060    ["Offset of field: BNPluginCommand::name"]
7061        [::std::mem::offset_of!(BNPluginCommand, name) - 0usize];
7062    ["Offset of field: BNPluginCommand::description"]
7063        [::std::mem::offset_of!(BNPluginCommand, description) - 8usize];
7064    ["Offset of field: BNPluginCommand::type_"]
7065        [::std::mem::offset_of!(BNPluginCommand, type_) - 16usize];
7066    ["Offset of field: BNPluginCommand::context"]
7067        [::std::mem::offset_of!(BNPluginCommand, context) - 24usize];
7068    ["Offset of field: BNPluginCommand::globalCommand"]
7069        [::std::mem::offset_of!(BNPluginCommand, globalCommand) - 32usize];
7070    ["Offset of field: BNPluginCommand::defaultCommand"]
7071        [::std::mem::offset_of!(BNPluginCommand, defaultCommand) - 40usize];
7072    ["Offset of field: BNPluginCommand::addressCommand"]
7073        [::std::mem::offset_of!(BNPluginCommand, addressCommand) - 48usize];
7074    ["Offset of field: BNPluginCommand::rangeCommand"]
7075        [::std::mem::offset_of!(BNPluginCommand, rangeCommand) - 56usize];
7076    ["Offset of field: BNPluginCommand::functionCommand"]
7077        [::std::mem::offset_of!(BNPluginCommand, functionCommand) - 64usize];
7078    ["Offset of field: BNPluginCommand::lowLevelILFunctionCommand"]
7079        [::std::mem::offset_of!(BNPluginCommand, lowLevelILFunctionCommand) - 72usize];
7080    ["Offset of field: BNPluginCommand::lowLevelILInstructionCommand"]
7081        [::std::mem::offset_of!(BNPluginCommand, lowLevelILInstructionCommand) - 80usize];
7082    ["Offset of field: BNPluginCommand::mediumLevelILFunctionCommand"]
7083        [::std::mem::offset_of!(BNPluginCommand, mediumLevelILFunctionCommand) - 88usize];
7084    ["Offset of field: BNPluginCommand::mediumLevelILInstructionCommand"]
7085        [::std::mem::offset_of!(BNPluginCommand, mediumLevelILInstructionCommand) - 96usize];
7086    ["Offset of field: BNPluginCommand::highLevelILFunctionCommand"]
7087        [::std::mem::offset_of!(BNPluginCommand, highLevelILFunctionCommand) - 104usize];
7088    ["Offset of field: BNPluginCommand::highLevelILInstructionCommand"]
7089        [::std::mem::offset_of!(BNPluginCommand, highLevelILInstructionCommand) - 112usize];
7090    ["Offset of field: BNPluginCommand::projectCommand"]
7091        [::std::mem::offset_of!(BNPluginCommand, projectCommand) - 120usize];
7092    ["Offset of field: BNPluginCommand::globalIsValid"]
7093        [::std::mem::offset_of!(BNPluginCommand, globalIsValid) - 128usize];
7094    ["Offset of field: BNPluginCommand::defaultIsValid"]
7095        [::std::mem::offset_of!(BNPluginCommand, defaultIsValid) - 136usize];
7096    ["Offset of field: BNPluginCommand::addressIsValid"]
7097        [::std::mem::offset_of!(BNPluginCommand, addressIsValid) - 144usize];
7098    ["Offset of field: BNPluginCommand::rangeIsValid"]
7099        [::std::mem::offset_of!(BNPluginCommand, rangeIsValid) - 152usize];
7100    ["Offset of field: BNPluginCommand::functionIsValid"]
7101        [::std::mem::offset_of!(BNPluginCommand, functionIsValid) - 160usize];
7102    ["Offset of field: BNPluginCommand::lowLevelILFunctionIsValid"]
7103        [::std::mem::offset_of!(BNPluginCommand, lowLevelILFunctionIsValid) - 168usize];
7104    ["Offset of field: BNPluginCommand::lowLevelILInstructionIsValid"]
7105        [::std::mem::offset_of!(BNPluginCommand, lowLevelILInstructionIsValid) - 176usize];
7106    ["Offset of field: BNPluginCommand::mediumLevelILFunctionIsValid"]
7107        [::std::mem::offset_of!(BNPluginCommand, mediumLevelILFunctionIsValid) - 184usize];
7108    ["Offset of field: BNPluginCommand::mediumLevelILInstructionIsValid"]
7109        [::std::mem::offset_of!(BNPluginCommand, mediumLevelILInstructionIsValid) - 192usize];
7110    ["Offset of field: BNPluginCommand::highLevelILFunctionIsValid"]
7111        [::std::mem::offset_of!(BNPluginCommand, highLevelILFunctionIsValid) - 200usize];
7112    ["Offset of field: BNPluginCommand::highLevelILInstructionIsValid"]
7113        [::std::mem::offset_of!(BNPluginCommand, highLevelILInstructionIsValid) - 208usize];
7114    ["Offset of field: BNPluginCommand::projectIsValid"]
7115        [::std::mem::offset_of!(BNPluginCommand, projectIsValid) - 216usize];
7116};
7117impl Default for BNPluginCommand {
7118    fn default() -> Self {
7119        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7120        unsafe {
7121            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7122            s.assume_init()
7123        }
7124    }
7125}
7126#[repr(C)]
7127#[derive(Debug, Copy, Clone)]
7128pub struct BNCustomCallingConvention {
7129    pub context: *mut ::std::os::raw::c_void,
7130    pub freeObject: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
7131    pub getCallerSavedRegisters: ::std::option::Option<
7132        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
7133    >,
7134    pub getCalleeSavedRegisters: ::std::option::Option<
7135        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
7136    >,
7137    pub getIntegerArgumentRegisters: ::std::option::Option<
7138        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
7139    >,
7140    pub getFloatArgumentRegisters: ::std::option::Option<
7141        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
7142    >,
7143    pub getRequiredArgumentRegisters: ::std::option::Option<
7144        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
7145    >,
7146    pub getRequiredClobberedRegisters: ::std::option::Option<
7147        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
7148    >,
7149    pub freeRegisterList: ::std::option::Option<
7150        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, regs: *mut u32, len: usize),
7151    >,
7152    pub areArgumentRegistersSharedIndex:
7153        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
7154    pub isStackReservedForArgumentRegisters:
7155        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
7156    pub isStackAdjustedOnReturn:
7157        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
7158    pub isEligibleForHeuristics:
7159        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
7160    pub getIntegerReturnValueRegister:
7161        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> u32>,
7162    pub getHighIntegerReturnValueRegister:
7163        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> u32>,
7164    pub getFloatReturnValueRegister:
7165        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> u32>,
7166    pub getGlobalPointerRegisters: ::std::option::Option<
7167        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
7168    >,
7169    pub getImplicitlyDefinedRegisters: ::std::option::Option<
7170        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
7171    >,
7172    pub getIncomingRegisterValue: ::std::option::Option<
7173        unsafe extern "C" fn(
7174            ctxt: *mut ::std::os::raw::c_void,
7175            reg: u32,
7176            func: *mut BNFunction,
7177            result: *mut BNRegisterValue,
7178        ),
7179    >,
7180    pub getIncomingFlagValue: ::std::option::Option<
7181        unsafe extern "C" fn(
7182            ctxt: *mut ::std::os::raw::c_void,
7183            flag: u32,
7184            func: *mut BNFunction,
7185            result: *mut BNRegisterValue,
7186        ),
7187    >,
7188    pub isReturnTypeRegisterCompatible: ::std::option::Option<
7189        unsafe extern "C" fn(
7190            ctxt: *mut ::std::os::raw::c_void,
7191            view: *mut BNBinaryView,
7192            type_: *mut BNType,
7193        ) -> bool,
7194    >,
7195    pub getIndirectReturnValueLocation: ::std::option::Option<
7196        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, outVar: *mut BNVariable),
7197    >,
7198    pub getReturnedIndirectReturnValuePointer: ::std::option::Option<
7199        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, outVar: *mut BNVariable) -> bool,
7200    >,
7201    pub isArgumentTypeRegisterCompatible: ::std::option::Option<
7202        unsafe extern "C" fn(
7203            ctxt: *mut ::std::os::raw::c_void,
7204            view: *mut BNBinaryView,
7205            type_: *mut BNType,
7206        ) -> bool,
7207    >,
7208    pub isNonRegisterArgumentIndirect: ::std::option::Option<
7209        unsafe extern "C" fn(
7210            ctxt: *mut ::std::os::raw::c_void,
7211            view: *mut BNBinaryView,
7212            type_: *mut BNType,
7213        ) -> bool,
7214    >,
7215    pub areStackArgumentsNaturallyAligned:
7216        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
7217    pub areStackArgumentsPushedLeftToRight:
7218        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
7219    pub getIncomingVariableForParameterVariable: ::std::option::Option<
7220        unsafe extern "C" fn(
7221            ctxt: *mut ::std::os::raw::c_void,
7222            var: *const BNVariable,
7223            func: *mut BNFunction,
7224            result: *mut BNVariable,
7225        ),
7226    >,
7227    pub getParameterVariableForIncomingVariable: ::std::option::Option<
7228        unsafe extern "C" fn(
7229            ctxt: *mut ::std::os::raw::c_void,
7230            var: *const BNVariable,
7231            func: *mut BNFunction,
7232            result: *mut BNVariable,
7233        ),
7234    >,
7235    pub areArgumentRegistersUsedForVarArgs:
7236        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
7237    pub getCallLayout: ::std::option::Option<
7238        unsafe extern "C" fn(
7239            ctxt: *mut ::std::os::raw::c_void,
7240            view: *mut BNBinaryView,
7241            returnValue: *mut BNReturnValue,
7242            params: *mut BNFunctionParameter,
7243            paramCount: usize,
7244            hasPermittedRegs: bool,
7245            permittedRegs: *mut u32,
7246            permittedRegCount: usize,
7247            result: *mut BNCallLayout,
7248        ),
7249    >,
7250    pub freeCallLayout: ::std::option::Option<
7251        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, layout: *mut BNCallLayout),
7252    >,
7253    pub getReturnValueLocation: ::std::option::Option<
7254        unsafe extern "C" fn(
7255            ctxt: *mut ::std::os::raw::c_void,
7256            view: *mut BNBinaryView,
7257            returnValue: *mut BNReturnValue,
7258            outLocation: *mut BNValueLocation,
7259        ),
7260    >,
7261    pub freeValueLocation: ::std::option::Option<
7262        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, location: *mut BNValueLocation),
7263    >,
7264    pub getParameterLocations: ::std::option::Option<
7265        unsafe extern "C" fn(
7266            ctxt: *mut ::std::os::raw::c_void,
7267            view: *mut BNBinaryView,
7268            returnValue: *mut BNValueLocation,
7269            params: *mut BNFunctionParameter,
7270            paramCount: usize,
7271            hasPermittedRegs: bool,
7272            permittedRegs: *mut u32,
7273            permittedRegCount: usize,
7274            outLocationCount: *mut usize,
7275        ) -> *mut BNValueLocation,
7276    >,
7277    pub freeParameterLocations: ::std::option::Option<
7278        unsafe extern "C" fn(
7279            ctxt: *mut ::std::os::raw::c_void,
7280            locations: *mut BNValueLocation,
7281            count: usize,
7282        ),
7283    >,
7284    pub getParameterOrderingForVariables: ::std::option::Option<
7285        unsafe extern "C" fn(
7286            ctxt: *mut ::std::os::raw::c_void,
7287            view: *mut BNBinaryView,
7288            vars: *mut BNVariable,
7289            types: *mut *mut BNType,
7290            paramCount: usize,
7291            outCount: *mut usize,
7292        ) -> *mut BNVariable,
7293    >,
7294    pub freeVariableList: ::std::option::Option<
7295        unsafe extern "C" fn(
7296            ctxt: *mut ::std::os::raw::c_void,
7297            vars: *mut BNVariable,
7298            count: usize,
7299        ),
7300    >,
7301    pub getStackAdjustmentForLocations: ::std::option::Option<
7302        unsafe extern "C" fn(
7303            ctxt: *mut ::std::os::raw::c_void,
7304            view: *mut BNBinaryView,
7305            returnValue: *mut BNValueLocation,
7306            locations: *mut BNValueLocation,
7307            types: *mut *mut BNType,
7308            paramCount: usize,
7309        ) -> i64,
7310    >,
7311    pub getRegisterStackAdjustments: ::std::option::Option<
7312        unsafe extern "C" fn(
7313            ctxt: *mut ::std::os::raw::c_void,
7314            view: *mut BNBinaryView,
7315            returnValue: *mut BNValueLocation,
7316            params: *mut BNValueLocation,
7317            paramCount: usize,
7318            outRegs: *mut *mut u32,
7319            outAdjust: *mut *mut i32,
7320        ) -> usize,
7321    >,
7322    pub freeRegisterStackAdjustments: ::std::option::Option<
7323        unsafe extern "C" fn(
7324            ctxt: *mut ::std::os::raw::c_void,
7325            regs: *mut u32,
7326            adjust: *mut i32,
7327            count: usize,
7328        ),
7329    >,
7330}
7331#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7332const _: () = {
7333    ["Size of BNCustomCallingConvention"]
7334        [::std::mem::size_of::<BNCustomCallingConvention>() - 328usize];
7335    ["Alignment of BNCustomCallingConvention"]
7336        [::std::mem::align_of::<BNCustomCallingConvention>() - 8usize];
7337    ["Offset of field: BNCustomCallingConvention::context"]
7338        [::std::mem::offset_of!(BNCustomCallingConvention, context) - 0usize];
7339    ["Offset of field: BNCustomCallingConvention::freeObject"]
7340        [::std::mem::offset_of!(BNCustomCallingConvention, freeObject) - 8usize];
7341    ["Offset of field: BNCustomCallingConvention::getCallerSavedRegisters"]
7342        [::std::mem::offset_of!(BNCustomCallingConvention, getCallerSavedRegisters) - 16usize];
7343    ["Offset of field: BNCustomCallingConvention::getCalleeSavedRegisters"]
7344        [::std::mem::offset_of!(BNCustomCallingConvention, getCalleeSavedRegisters) - 24usize];
7345    ["Offset of field: BNCustomCallingConvention::getIntegerArgumentRegisters"]
7346        [::std::mem::offset_of!(BNCustomCallingConvention, getIntegerArgumentRegisters) - 32usize];
7347    ["Offset of field: BNCustomCallingConvention::getFloatArgumentRegisters"]
7348        [::std::mem::offset_of!(BNCustomCallingConvention, getFloatArgumentRegisters) - 40usize];
7349    ["Offset of field: BNCustomCallingConvention::getRequiredArgumentRegisters"]
7350        [::std::mem::offset_of!(BNCustomCallingConvention, getRequiredArgumentRegisters) - 48usize];
7351    ["Offset of field: BNCustomCallingConvention::getRequiredClobberedRegisters"][::std::mem::offset_of!(
7352        BNCustomCallingConvention,
7353        getRequiredClobberedRegisters
7354    ) - 56usize];
7355    ["Offset of field: BNCustomCallingConvention::freeRegisterList"]
7356        [::std::mem::offset_of!(BNCustomCallingConvention, freeRegisterList) - 64usize];
7357    ["Offset of field: BNCustomCallingConvention::areArgumentRegistersSharedIndex"][::std::mem::offset_of!(
7358        BNCustomCallingConvention,
7359        areArgumentRegistersSharedIndex
7360    ) - 72usize];
7361    ["Offset of field: BNCustomCallingConvention::isStackReservedForArgumentRegisters"][::std::mem::offset_of!(
7362        BNCustomCallingConvention,
7363        isStackReservedForArgumentRegisters
7364    )
7365        - 80usize];
7366    ["Offset of field: BNCustomCallingConvention::isStackAdjustedOnReturn"]
7367        [::std::mem::offset_of!(BNCustomCallingConvention, isStackAdjustedOnReturn) - 88usize];
7368    ["Offset of field: BNCustomCallingConvention::isEligibleForHeuristics"]
7369        [::std::mem::offset_of!(BNCustomCallingConvention, isEligibleForHeuristics) - 96usize];
7370    ["Offset of field: BNCustomCallingConvention::getIntegerReturnValueRegister"][::std::mem::offset_of!(
7371        BNCustomCallingConvention,
7372        getIntegerReturnValueRegister
7373    ) - 104usize];
7374    ["Offset of field: BNCustomCallingConvention::getHighIntegerReturnValueRegister"][::std::mem::offset_of!(
7375        BNCustomCallingConvention,
7376        getHighIntegerReturnValueRegister
7377    ) - 112usize];
7378    ["Offset of field: BNCustomCallingConvention::getFloatReturnValueRegister"]
7379        [::std::mem::offset_of!(BNCustomCallingConvention, getFloatReturnValueRegister) - 120usize];
7380    ["Offset of field: BNCustomCallingConvention::getGlobalPointerRegisters"]
7381        [::std::mem::offset_of!(BNCustomCallingConvention, getGlobalPointerRegisters) - 128usize];
7382    ["Offset of field: BNCustomCallingConvention::getImplicitlyDefinedRegisters"][::std::mem::offset_of!(
7383        BNCustomCallingConvention,
7384        getImplicitlyDefinedRegisters
7385    ) - 136usize];
7386    ["Offset of field: BNCustomCallingConvention::getIncomingRegisterValue"]
7387        [::std::mem::offset_of!(BNCustomCallingConvention, getIncomingRegisterValue) - 144usize];
7388    ["Offset of field: BNCustomCallingConvention::getIncomingFlagValue"]
7389        [::std::mem::offset_of!(BNCustomCallingConvention, getIncomingFlagValue) - 152usize];
7390    ["Offset of field: BNCustomCallingConvention::isReturnTypeRegisterCompatible"][::std::mem::offset_of!(
7391        BNCustomCallingConvention,
7392        isReturnTypeRegisterCompatible
7393    ) - 160usize];
7394    ["Offset of field: BNCustomCallingConvention::getIndirectReturnValueLocation"][::std::mem::offset_of!(
7395        BNCustomCallingConvention,
7396        getIndirectReturnValueLocation
7397    ) - 168usize];
7398    ["Offset of field: BNCustomCallingConvention::getReturnedIndirectReturnValuePointer"][::std::mem::offset_of!(
7399        BNCustomCallingConvention,
7400        getReturnedIndirectReturnValuePointer
7401    )
7402        - 176usize];
7403    ["Offset of field: BNCustomCallingConvention::isArgumentTypeRegisterCompatible"][::std::mem::offset_of!(
7404        BNCustomCallingConvention,
7405        isArgumentTypeRegisterCompatible
7406    ) - 184usize];
7407    ["Offset of field: BNCustomCallingConvention::isNonRegisterArgumentIndirect"][::std::mem::offset_of!(
7408        BNCustomCallingConvention,
7409        isNonRegisterArgumentIndirect
7410    ) - 192usize];
7411    ["Offset of field: BNCustomCallingConvention::areStackArgumentsNaturallyAligned"][::std::mem::offset_of!(
7412        BNCustomCallingConvention,
7413        areStackArgumentsNaturallyAligned
7414    ) - 200usize];
7415    ["Offset of field: BNCustomCallingConvention::areStackArgumentsPushedLeftToRight"][::std::mem::offset_of!(
7416        BNCustomCallingConvention,
7417        areStackArgumentsPushedLeftToRight
7418    )
7419        - 208usize];
7420    ["Offset of field: BNCustomCallingConvention::getIncomingVariableForParameterVariable"][::std::mem::offset_of!(
7421        BNCustomCallingConvention,
7422        getIncomingVariableForParameterVariable
7423    )
7424        - 216usize];
7425    ["Offset of field: BNCustomCallingConvention::getParameterVariableForIncomingVariable"][::std::mem::offset_of!(
7426        BNCustomCallingConvention,
7427        getParameterVariableForIncomingVariable
7428    )
7429        - 224usize];
7430    ["Offset of field: BNCustomCallingConvention::areArgumentRegistersUsedForVarArgs"][::std::mem::offset_of!(
7431        BNCustomCallingConvention,
7432        areArgumentRegistersUsedForVarArgs
7433    )
7434        - 232usize];
7435    ["Offset of field: BNCustomCallingConvention::getCallLayout"]
7436        [::std::mem::offset_of!(BNCustomCallingConvention, getCallLayout) - 240usize];
7437    ["Offset of field: BNCustomCallingConvention::freeCallLayout"]
7438        [::std::mem::offset_of!(BNCustomCallingConvention, freeCallLayout) - 248usize];
7439    ["Offset of field: BNCustomCallingConvention::getReturnValueLocation"]
7440        [::std::mem::offset_of!(BNCustomCallingConvention, getReturnValueLocation) - 256usize];
7441    ["Offset of field: BNCustomCallingConvention::freeValueLocation"]
7442        [::std::mem::offset_of!(BNCustomCallingConvention, freeValueLocation) - 264usize];
7443    ["Offset of field: BNCustomCallingConvention::getParameterLocations"]
7444        [::std::mem::offset_of!(BNCustomCallingConvention, getParameterLocations) - 272usize];
7445    ["Offset of field: BNCustomCallingConvention::freeParameterLocations"]
7446        [::std::mem::offset_of!(BNCustomCallingConvention, freeParameterLocations) - 280usize];
7447    ["Offset of field: BNCustomCallingConvention::getParameterOrderingForVariables"][::std::mem::offset_of!(
7448        BNCustomCallingConvention,
7449        getParameterOrderingForVariables
7450    ) - 288usize];
7451    ["Offset of field: BNCustomCallingConvention::freeVariableList"]
7452        [::std::mem::offset_of!(BNCustomCallingConvention, freeVariableList) - 296usize];
7453    ["Offset of field: BNCustomCallingConvention::getStackAdjustmentForLocations"][::std::mem::offset_of!(
7454        BNCustomCallingConvention,
7455        getStackAdjustmentForLocations
7456    ) - 304usize];
7457    ["Offset of field: BNCustomCallingConvention::getRegisterStackAdjustments"]
7458        [::std::mem::offset_of!(BNCustomCallingConvention, getRegisterStackAdjustments) - 312usize];
7459    ["Offset of field: BNCustomCallingConvention::freeRegisterStackAdjustments"][::std::mem::offset_of!(
7460        BNCustomCallingConvention,
7461        freeRegisterStackAdjustments
7462    ) - 320usize];
7463};
7464impl Default for BNCustomCallingConvention {
7465    fn default() -> Self {
7466        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7467        unsafe {
7468            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7469            s.assume_init()
7470        }
7471    }
7472}
7473#[repr(C)]
7474#[derive(Debug, Copy, Clone)]
7475pub struct BNVariableNameAndType {
7476    pub var: BNVariable,
7477    pub type_: *mut BNType,
7478    pub name: *mut ::std::os::raw::c_char,
7479    pub autoDefined: bool,
7480    pub typeConfidence: u8,
7481}
7482#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7483const _: () = {
7484    ["Size of BNVariableNameAndType"][::std::mem::size_of::<BNVariableNameAndType>() - 40usize];
7485    ["Alignment of BNVariableNameAndType"]
7486        [::std::mem::align_of::<BNVariableNameAndType>() - 8usize];
7487    ["Offset of field: BNVariableNameAndType::var"]
7488        [::std::mem::offset_of!(BNVariableNameAndType, var) - 0usize];
7489    ["Offset of field: BNVariableNameAndType::type_"]
7490        [::std::mem::offset_of!(BNVariableNameAndType, type_) - 16usize];
7491    ["Offset of field: BNVariableNameAndType::name"]
7492        [::std::mem::offset_of!(BNVariableNameAndType, name) - 24usize];
7493    ["Offset of field: BNVariableNameAndType::autoDefined"]
7494        [::std::mem::offset_of!(BNVariableNameAndType, autoDefined) - 32usize];
7495    ["Offset of field: BNVariableNameAndType::typeConfidence"]
7496        [::std::mem::offset_of!(BNVariableNameAndType, typeConfidence) - 33usize];
7497};
7498impl Default for BNVariableNameAndType {
7499    fn default() -> Self {
7500        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7501        unsafe {
7502            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7503            s.assume_init()
7504        }
7505    }
7506}
7507#[repr(C)]
7508#[derive(Debug, Copy, Clone)]
7509pub struct BNStackVariableReference {
7510    pub sourceOperand: u32,
7511    pub typeConfidence: u8,
7512    pub type_: *mut BNType,
7513    pub name: *mut ::std::os::raw::c_char,
7514    pub varIdentifier: u64,
7515    pub referencedOffset: i64,
7516    pub size: usize,
7517}
7518#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7519const _: () = {
7520    ["Size of BNStackVariableReference"]
7521        [::std::mem::size_of::<BNStackVariableReference>() - 48usize];
7522    ["Alignment of BNStackVariableReference"]
7523        [::std::mem::align_of::<BNStackVariableReference>() - 8usize];
7524    ["Offset of field: BNStackVariableReference::sourceOperand"]
7525        [::std::mem::offset_of!(BNStackVariableReference, sourceOperand) - 0usize];
7526    ["Offset of field: BNStackVariableReference::typeConfidence"]
7527        [::std::mem::offset_of!(BNStackVariableReference, typeConfidence) - 4usize];
7528    ["Offset of field: BNStackVariableReference::type_"]
7529        [::std::mem::offset_of!(BNStackVariableReference, type_) - 8usize];
7530    ["Offset of field: BNStackVariableReference::name"]
7531        [::std::mem::offset_of!(BNStackVariableReference, name) - 16usize];
7532    ["Offset of field: BNStackVariableReference::varIdentifier"]
7533        [::std::mem::offset_of!(BNStackVariableReference, varIdentifier) - 24usize];
7534    ["Offset of field: BNStackVariableReference::referencedOffset"]
7535        [::std::mem::offset_of!(BNStackVariableReference, referencedOffset) - 32usize];
7536    ["Offset of field: BNStackVariableReference::size"]
7537        [::std::mem::offset_of!(BNStackVariableReference, size) - 40usize];
7538};
7539impl Default for BNStackVariableReference {
7540    fn default() -> Self {
7541        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7542        unsafe {
7543            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7544            s.assume_init()
7545        }
7546    }
7547}
7548#[repr(C)]
7549#[derive(Debug, Copy, Clone)]
7550pub struct BNIndirectBranchInfo {
7551    pub sourceArch: *mut BNArchitecture,
7552    pub sourceAddr: u64,
7553    pub destArch: *mut BNArchitecture,
7554    pub destAddr: u64,
7555    pub autoDefined: bool,
7556}
7557#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7558const _: () = {
7559    ["Size of BNIndirectBranchInfo"][::std::mem::size_of::<BNIndirectBranchInfo>() - 40usize];
7560    ["Alignment of BNIndirectBranchInfo"][::std::mem::align_of::<BNIndirectBranchInfo>() - 8usize];
7561    ["Offset of field: BNIndirectBranchInfo::sourceArch"]
7562        [::std::mem::offset_of!(BNIndirectBranchInfo, sourceArch) - 0usize];
7563    ["Offset of field: BNIndirectBranchInfo::sourceAddr"]
7564        [::std::mem::offset_of!(BNIndirectBranchInfo, sourceAddr) - 8usize];
7565    ["Offset of field: BNIndirectBranchInfo::destArch"]
7566        [::std::mem::offset_of!(BNIndirectBranchInfo, destArch) - 16usize];
7567    ["Offset of field: BNIndirectBranchInfo::destAddr"]
7568        [::std::mem::offset_of!(BNIndirectBranchInfo, destAddr) - 24usize];
7569    ["Offset of field: BNIndirectBranchInfo::autoDefined"]
7570        [::std::mem::offset_of!(BNIndirectBranchInfo, autoDefined) - 32usize];
7571};
7572impl Default for BNIndirectBranchInfo {
7573    fn default() -> Self {
7574        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7575        unsafe {
7576            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7577            s.assume_init()
7578        }
7579    }
7580}
7581#[repr(C)]
7582#[derive(Debug, Copy, Clone)]
7583pub struct BNArchitectureAndAddress {
7584    pub arch: *mut BNArchitecture,
7585    pub address: u64,
7586}
7587#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7588const _: () = {
7589    ["Size of BNArchitectureAndAddress"]
7590        [::std::mem::size_of::<BNArchitectureAndAddress>() - 16usize];
7591    ["Alignment of BNArchitectureAndAddress"]
7592        [::std::mem::align_of::<BNArchitectureAndAddress>() - 8usize];
7593    ["Offset of field: BNArchitectureAndAddress::arch"]
7594        [::std::mem::offset_of!(BNArchitectureAndAddress, arch) - 0usize];
7595    ["Offset of field: BNArchitectureAndAddress::address"]
7596        [::std::mem::offset_of!(BNArchitectureAndAddress, address) - 8usize];
7597};
7598impl Default for BNArchitectureAndAddress {
7599    fn default() -> Self {
7600        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7601        unsafe {
7602            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7603            s.assume_init()
7604        }
7605    }
7606}
7607#[repr(C)]
7608#[derive(Debug, Copy, Clone)]
7609pub struct BNUserVariableValue {
7610    pub var: BNVariable,
7611    pub defSite: BNArchitectureAndAddress,
7612    pub after: bool,
7613    pub value: BNPossibleValueSet,
7614}
7615#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7616const _: () = {
7617    ["Size of BNUserVariableValue"][::std::mem::size_of::<BNUserVariableValue>() - 104usize];
7618    ["Alignment of BNUserVariableValue"][::std::mem::align_of::<BNUserVariableValue>() - 8usize];
7619    ["Offset of field: BNUserVariableValue::var"]
7620        [::std::mem::offset_of!(BNUserVariableValue, var) - 0usize];
7621    ["Offset of field: BNUserVariableValue::defSite"]
7622        [::std::mem::offset_of!(BNUserVariableValue, defSite) - 16usize];
7623    ["Offset of field: BNUserVariableValue::after"]
7624        [::std::mem::offset_of!(BNUserVariableValue, after) - 32usize];
7625    ["Offset of field: BNUserVariableValue::value"]
7626        [::std::mem::offset_of!(BNUserVariableValue, value) - 40usize];
7627};
7628impl Default for BNUserVariableValue {
7629    fn default() -> Self {
7630        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7631        unsafe {
7632            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7633            s.assume_init()
7634        }
7635    }
7636}
7637#[repr(C)]
7638#[derive(Debug, Copy, Clone)]
7639pub struct BNVariableFieldResolutionInfo {
7640    pub location: BNArchitectureAndAddress,
7641    pub var: BNVariable,
7642    pub info: *mut BNFieldResolutionInfo,
7643}
7644#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7645const _: () = {
7646    ["Size of BNVariableFieldResolutionInfo"]
7647        [::std::mem::size_of::<BNVariableFieldResolutionInfo>() - 40usize];
7648    ["Alignment of BNVariableFieldResolutionInfo"]
7649        [::std::mem::align_of::<BNVariableFieldResolutionInfo>() - 8usize];
7650    ["Offset of field: BNVariableFieldResolutionInfo::location"]
7651        [::std::mem::offset_of!(BNVariableFieldResolutionInfo, location) - 0usize];
7652    ["Offset of field: BNVariableFieldResolutionInfo::var"]
7653        [::std::mem::offset_of!(BNVariableFieldResolutionInfo, var) - 16usize];
7654    ["Offset of field: BNVariableFieldResolutionInfo::info"]
7655        [::std::mem::offset_of!(BNVariableFieldResolutionInfo, info) - 32usize];
7656};
7657impl Default for BNVariableFieldResolutionInfo {
7658    fn default() -> Self {
7659        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7660        unsafe {
7661            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7662            s.assume_init()
7663        }
7664    }
7665}
7666#[repr(u8)]
7667#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
7668pub enum BNFunctionUpdateType {
7669    UserFunctionUpdate = 0,
7670    FullAutoFunctionUpdate = 1,
7671    IncrementalAutoFunctionUpdate = 2,
7672}
7673#[repr(u8)]
7674#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
7675pub enum BNAnalysisState {
7676    #[doc = " Entry point before any analysis begins"]
7677    InitialState = 0,
7678    #[doc = " Module-level analysis is deferred; On-demand function analysis is permitted"]
7679    HoldState = 1,
7680    #[doc = " No active analysis; system is idle and ready"]
7681    IdleState = 2,
7682    #[doc = " Context gathering and auxiliary data preparation"]
7683    DiscoveryState = 3,
7684    #[doc = " Instruction decoding and control flow discovery"]
7685    DisassembleState = 4,
7686    #[doc = " Core semantic and structural analysis"]
7687    AnalyzeState = 5,
7688    #[doc = " Supplemental analysis: sweeping, type resolution, and pattern matching"]
7689    ExtendedAnalyzeState = 6,
7690}
7691#[repr(C)]
7692#[derive(Debug, Copy, Clone)]
7693pub struct BNActiveAnalysisInfo {
7694    pub func: *mut BNFunction,
7695    pub analysisTime: u64,
7696    pub updateCount: usize,
7697    pub submitCount: usize,
7698}
7699#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7700const _: () = {
7701    ["Size of BNActiveAnalysisInfo"][::std::mem::size_of::<BNActiveAnalysisInfo>() - 32usize];
7702    ["Alignment of BNActiveAnalysisInfo"][::std::mem::align_of::<BNActiveAnalysisInfo>() - 8usize];
7703    ["Offset of field: BNActiveAnalysisInfo::func"]
7704        [::std::mem::offset_of!(BNActiveAnalysisInfo, func) - 0usize];
7705    ["Offset of field: BNActiveAnalysisInfo::analysisTime"]
7706        [::std::mem::offset_of!(BNActiveAnalysisInfo, analysisTime) - 8usize];
7707    ["Offset of field: BNActiveAnalysisInfo::updateCount"]
7708        [::std::mem::offset_of!(BNActiveAnalysisInfo, updateCount) - 16usize];
7709    ["Offset of field: BNActiveAnalysisInfo::submitCount"]
7710        [::std::mem::offset_of!(BNActiveAnalysisInfo, submitCount) - 24usize];
7711};
7712impl Default for BNActiveAnalysisInfo {
7713    fn default() -> Self {
7714        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7715        unsafe {
7716            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7717            s.assume_init()
7718        }
7719    }
7720}
7721#[repr(C)]
7722#[derive(Debug, Copy, Clone)]
7723pub struct BNAnalysisInfo {
7724    pub state: BNAnalysisState,
7725    pub analysisTime: u64,
7726    pub activeInfo: *mut BNActiveAnalysisInfo,
7727    pub count: usize,
7728}
7729#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7730const _: () = {
7731    ["Size of BNAnalysisInfo"][::std::mem::size_of::<BNAnalysisInfo>() - 32usize];
7732    ["Alignment of BNAnalysisInfo"][::std::mem::align_of::<BNAnalysisInfo>() - 8usize];
7733    ["Offset of field: BNAnalysisInfo::state"]
7734        [::std::mem::offset_of!(BNAnalysisInfo, state) - 0usize];
7735    ["Offset of field: BNAnalysisInfo::analysisTime"]
7736        [::std::mem::offset_of!(BNAnalysisInfo, analysisTime) - 8usize];
7737    ["Offset of field: BNAnalysisInfo::activeInfo"]
7738        [::std::mem::offset_of!(BNAnalysisInfo, activeInfo) - 16usize];
7739    ["Offset of field: BNAnalysisInfo::count"]
7740        [::std::mem::offset_of!(BNAnalysisInfo, count) - 24usize];
7741};
7742impl Default for BNAnalysisInfo {
7743    fn default() -> Self {
7744        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7745        unsafe {
7746            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7747            s.assume_init()
7748        }
7749    }
7750}
7751#[repr(C)]
7752#[derive(Debug, Copy, Clone)]
7753pub struct BNAnalysisProgress {
7754    pub state: BNAnalysisState,
7755    pub count: usize,
7756    pub total: usize,
7757}
7758#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7759const _: () = {
7760    ["Size of BNAnalysisProgress"][::std::mem::size_of::<BNAnalysisProgress>() - 24usize];
7761    ["Alignment of BNAnalysisProgress"][::std::mem::align_of::<BNAnalysisProgress>() - 8usize];
7762    ["Offset of field: BNAnalysisProgress::state"]
7763        [::std::mem::offset_of!(BNAnalysisProgress, state) - 0usize];
7764    ["Offset of field: BNAnalysisProgress::count"]
7765        [::std::mem::offset_of!(BNAnalysisProgress, count) - 8usize];
7766    ["Offset of field: BNAnalysisProgress::total"]
7767        [::std::mem::offset_of!(BNAnalysisProgress, total) - 16usize];
7768};
7769impl Default for BNAnalysisProgress {
7770    fn default() -> Self {
7771        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7772        unsafe {
7773            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7774            s.assume_init()
7775        }
7776    }
7777}
7778#[repr(u8)]
7779#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
7780pub enum BNAnalysisMode {
7781    FullAnalysisMode = 0,
7782    IntermediateAnalysisMode = 1,
7783    BasicAnalysisMode = 2,
7784    ControlFlowAnalysisMode = 3,
7785}
7786#[repr(C)]
7787#[derive(Debug, Copy, Clone)]
7788pub struct BNAnalysisParameters {
7789    pub maxAnalysisTime: u64,
7790    pub maxFunctionSize: u64,
7791    pub maxFunctionAnalysisTime: u64,
7792    pub maxFunctionUpdateCount: usize,
7793    pub maxFunctionSubmitCount: usize,
7794    pub suppressNewAutoFunctionAnalysis: bool,
7795    pub mode: BNAnalysisMode,
7796    pub alwaysAnalyzeIndirectBranches: bool,
7797    pub advancedAnalysisCacheSize: usize,
7798}
7799#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7800const _: () = {
7801    ["Size of BNAnalysisParameters"][::std::mem::size_of::<BNAnalysisParameters>() - 56usize];
7802    ["Alignment of BNAnalysisParameters"][::std::mem::align_of::<BNAnalysisParameters>() - 8usize];
7803    ["Offset of field: BNAnalysisParameters::maxAnalysisTime"]
7804        [::std::mem::offset_of!(BNAnalysisParameters, maxAnalysisTime) - 0usize];
7805    ["Offset of field: BNAnalysisParameters::maxFunctionSize"]
7806        [::std::mem::offset_of!(BNAnalysisParameters, maxFunctionSize) - 8usize];
7807    ["Offset of field: BNAnalysisParameters::maxFunctionAnalysisTime"]
7808        [::std::mem::offset_of!(BNAnalysisParameters, maxFunctionAnalysisTime) - 16usize];
7809    ["Offset of field: BNAnalysisParameters::maxFunctionUpdateCount"]
7810        [::std::mem::offset_of!(BNAnalysisParameters, maxFunctionUpdateCount) - 24usize];
7811    ["Offset of field: BNAnalysisParameters::maxFunctionSubmitCount"]
7812        [::std::mem::offset_of!(BNAnalysisParameters, maxFunctionSubmitCount) - 32usize];
7813    ["Offset of field: BNAnalysisParameters::suppressNewAutoFunctionAnalysis"]
7814        [::std::mem::offset_of!(BNAnalysisParameters, suppressNewAutoFunctionAnalysis) - 40usize];
7815    ["Offset of field: BNAnalysisParameters::mode"]
7816        [::std::mem::offset_of!(BNAnalysisParameters, mode) - 41usize];
7817    ["Offset of field: BNAnalysisParameters::alwaysAnalyzeIndirectBranches"]
7818        [::std::mem::offset_of!(BNAnalysisParameters, alwaysAnalyzeIndirectBranches) - 42usize];
7819    ["Offset of field: BNAnalysisParameters::advancedAnalysisCacheSize"]
7820        [::std::mem::offset_of!(BNAnalysisParameters, advancedAnalysisCacheSize) - 48usize];
7821};
7822impl Default for BNAnalysisParameters {
7823    fn default() -> Self {
7824        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7825        unsafe {
7826            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7827            s.assume_init()
7828        }
7829    }
7830}
7831#[repr(C)]
7832#[derive(Debug, Copy, Clone)]
7833pub struct BNDownloadInstanceResponse {
7834    pub statusCode: u16,
7835    pub headerCount: u64,
7836    pub headerKeys: *mut *mut ::std::os::raw::c_char,
7837    pub headerValues: *mut *mut ::std::os::raw::c_char,
7838}
7839#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7840const _: () = {
7841    ["Size of BNDownloadInstanceResponse"]
7842        [::std::mem::size_of::<BNDownloadInstanceResponse>() - 32usize];
7843    ["Alignment of BNDownloadInstanceResponse"]
7844        [::std::mem::align_of::<BNDownloadInstanceResponse>() - 8usize];
7845    ["Offset of field: BNDownloadInstanceResponse::statusCode"]
7846        [::std::mem::offset_of!(BNDownloadInstanceResponse, statusCode) - 0usize];
7847    ["Offset of field: BNDownloadInstanceResponse::headerCount"]
7848        [::std::mem::offset_of!(BNDownloadInstanceResponse, headerCount) - 8usize];
7849    ["Offset of field: BNDownloadInstanceResponse::headerKeys"]
7850        [::std::mem::offset_of!(BNDownloadInstanceResponse, headerKeys) - 16usize];
7851    ["Offset of field: BNDownloadInstanceResponse::headerValues"]
7852        [::std::mem::offset_of!(BNDownloadInstanceResponse, headerValues) - 24usize];
7853};
7854impl Default for BNDownloadInstanceResponse {
7855    fn default() -> Self {
7856        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7857        unsafe {
7858            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7859            s.assume_init()
7860        }
7861    }
7862}
7863#[repr(C)]
7864#[derive(Debug, Copy, Clone)]
7865pub struct BNDownloadInstanceInputOutputCallbacks {
7866    pub readCallback: ::std::option::Option<
7867        unsafe extern "C" fn(data: *mut u8, len: u64, ctxt: *mut ::std::os::raw::c_void) -> i64,
7868    >,
7869    pub readContext: *mut ::std::os::raw::c_void,
7870    pub writeCallback: ::std::option::Option<
7871        unsafe extern "C" fn(data: *mut u8, len: u64, ctxt: *mut ::std::os::raw::c_void) -> u64,
7872    >,
7873    pub writeContext: *mut ::std::os::raw::c_void,
7874    pub progressCallback: BNProgressFunction,
7875    pub progressContext: *mut ::std::os::raw::c_void,
7876}
7877#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7878const _: () = {
7879    ["Size of BNDownloadInstanceInputOutputCallbacks"]
7880        [::std::mem::size_of::<BNDownloadInstanceInputOutputCallbacks>() - 48usize];
7881    ["Alignment of BNDownloadInstanceInputOutputCallbacks"]
7882        [::std::mem::align_of::<BNDownloadInstanceInputOutputCallbacks>() - 8usize];
7883    ["Offset of field: BNDownloadInstanceInputOutputCallbacks::readCallback"]
7884        [::std::mem::offset_of!(BNDownloadInstanceInputOutputCallbacks, readCallback) - 0usize];
7885    ["Offset of field: BNDownloadInstanceInputOutputCallbacks::readContext"]
7886        [::std::mem::offset_of!(BNDownloadInstanceInputOutputCallbacks, readContext) - 8usize];
7887    ["Offset of field: BNDownloadInstanceInputOutputCallbacks::writeCallback"]
7888        [::std::mem::offset_of!(BNDownloadInstanceInputOutputCallbacks, writeCallback) - 16usize];
7889    ["Offset of field: BNDownloadInstanceInputOutputCallbacks::writeContext"]
7890        [::std::mem::offset_of!(BNDownloadInstanceInputOutputCallbacks, writeContext) - 24usize];
7891    ["Offset of field: BNDownloadInstanceInputOutputCallbacks::progressCallback"][::std::mem::offset_of!(
7892        BNDownloadInstanceInputOutputCallbacks,
7893        progressCallback
7894    ) - 32usize];
7895    ["Offset of field: BNDownloadInstanceInputOutputCallbacks::progressContext"]
7896        [::std::mem::offset_of!(BNDownloadInstanceInputOutputCallbacks, progressContext) - 40usize];
7897};
7898impl Default for BNDownloadInstanceInputOutputCallbacks {
7899    fn default() -> Self {
7900        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7901        unsafe {
7902            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7903            s.assume_init()
7904        }
7905    }
7906}
7907#[repr(C)]
7908#[derive(Debug, Copy, Clone)]
7909pub struct BNDownloadInstanceOutputCallbacks {
7910    pub writeCallback: ::std::option::Option<
7911        unsafe extern "C" fn(data: *mut u8, len: u64, ctxt: *mut ::std::os::raw::c_void) -> u64,
7912    >,
7913    pub writeContext: *mut ::std::os::raw::c_void,
7914    pub progressCallback: BNProgressFunction,
7915    pub progressContext: *mut ::std::os::raw::c_void,
7916}
7917#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7918const _: () = {
7919    ["Size of BNDownloadInstanceOutputCallbacks"]
7920        [::std::mem::size_of::<BNDownloadInstanceOutputCallbacks>() - 32usize];
7921    ["Alignment of BNDownloadInstanceOutputCallbacks"]
7922        [::std::mem::align_of::<BNDownloadInstanceOutputCallbacks>() - 8usize];
7923    ["Offset of field: BNDownloadInstanceOutputCallbacks::writeCallback"]
7924        [::std::mem::offset_of!(BNDownloadInstanceOutputCallbacks, writeCallback) - 0usize];
7925    ["Offset of field: BNDownloadInstanceOutputCallbacks::writeContext"]
7926        [::std::mem::offset_of!(BNDownloadInstanceOutputCallbacks, writeContext) - 8usize];
7927    ["Offset of field: BNDownloadInstanceOutputCallbacks::progressCallback"]
7928        [::std::mem::offset_of!(BNDownloadInstanceOutputCallbacks, progressCallback) - 16usize];
7929    ["Offset of field: BNDownloadInstanceOutputCallbacks::progressContext"]
7930        [::std::mem::offset_of!(BNDownloadInstanceOutputCallbacks, progressContext) - 24usize];
7931};
7932impl Default for BNDownloadInstanceOutputCallbacks {
7933    fn default() -> Self {
7934        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7935        unsafe {
7936            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7937            s.assume_init()
7938        }
7939    }
7940}
7941#[repr(C)]
7942#[derive(Debug, Copy, Clone)]
7943pub struct BNDownloadInstanceCallbacks {
7944    pub context: *mut ::std::os::raw::c_void,
7945    pub destroyInstance:
7946        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
7947    pub performRequest: ::std::option::Option<
7948        unsafe extern "C" fn(
7949            ctxt: *mut ::std::os::raw::c_void,
7950            url: *const ::std::os::raw::c_char,
7951        ) -> ::std::os::raw::c_int,
7952    >,
7953    pub performCustomRequest: ::std::option::Option<
7954        unsafe extern "C" fn(
7955            ctxt: *mut ::std::os::raw::c_void,
7956            method: *const ::std::os::raw::c_char,
7957            url: *const ::std::os::raw::c_char,
7958            headerCount: u64,
7959            headerKeys: *const *const ::std::os::raw::c_char,
7960            headerValues: *const *const ::std::os::raw::c_char,
7961            response: *mut *mut BNDownloadInstanceResponse,
7962        ) -> ::std::os::raw::c_int,
7963    >,
7964    pub freeResponse: ::std::option::Option<
7965        unsafe extern "C" fn(
7966            ctxt: *mut ::std::os::raw::c_void,
7967            response: *mut BNDownloadInstanceResponse,
7968        ),
7969    >,
7970}
7971#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7972const _: () = {
7973    ["Size of BNDownloadInstanceCallbacks"]
7974        [::std::mem::size_of::<BNDownloadInstanceCallbacks>() - 40usize];
7975    ["Alignment of BNDownloadInstanceCallbacks"]
7976        [::std::mem::align_of::<BNDownloadInstanceCallbacks>() - 8usize];
7977    ["Offset of field: BNDownloadInstanceCallbacks::context"]
7978        [::std::mem::offset_of!(BNDownloadInstanceCallbacks, context) - 0usize];
7979    ["Offset of field: BNDownloadInstanceCallbacks::destroyInstance"]
7980        [::std::mem::offset_of!(BNDownloadInstanceCallbacks, destroyInstance) - 8usize];
7981    ["Offset of field: BNDownloadInstanceCallbacks::performRequest"]
7982        [::std::mem::offset_of!(BNDownloadInstanceCallbacks, performRequest) - 16usize];
7983    ["Offset of field: BNDownloadInstanceCallbacks::performCustomRequest"]
7984        [::std::mem::offset_of!(BNDownloadInstanceCallbacks, performCustomRequest) - 24usize];
7985    ["Offset of field: BNDownloadInstanceCallbacks::freeResponse"]
7986        [::std::mem::offset_of!(BNDownloadInstanceCallbacks, freeResponse) - 32usize];
7987};
7988impl Default for BNDownloadInstanceCallbacks {
7989    fn default() -> Self {
7990        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7991        unsafe {
7992            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7993            s.assume_init()
7994        }
7995    }
7996}
7997#[repr(C)]
7998#[derive(Debug, Copy, Clone)]
7999pub struct BNDownloadProviderCallbacks {
8000    pub context: *mut ::std::os::raw::c_void,
8001    pub createInstance: ::std::option::Option<
8002        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> *mut BNDownloadInstance,
8003    >,
8004}
8005#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8006const _: () = {
8007    ["Size of BNDownloadProviderCallbacks"]
8008        [::std::mem::size_of::<BNDownloadProviderCallbacks>() - 16usize];
8009    ["Alignment of BNDownloadProviderCallbacks"]
8010        [::std::mem::align_of::<BNDownloadProviderCallbacks>() - 8usize];
8011    ["Offset of field: BNDownloadProviderCallbacks::context"]
8012        [::std::mem::offset_of!(BNDownloadProviderCallbacks, context) - 0usize];
8013    ["Offset of field: BNDownloadProviderCallbacks::createInstance"]
8014        [::std::mem::offset_of!(BNDownloadProviderCallbacks, createInstance) - 8usize];
8015};
8016impl Default for BNDownloadProviderCallbacks {
8017    fn default() -> Self {
8018        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8019        unsafe {
8020            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8021            s.assume_init()
8022        }
8023    }
8024}
8025#[repr(C)]
8026#[derive(Debug, Copy, Clone)]
8027pub struct BNWebsocketClientOutputCallbacks {
8028    pub context: *mut ::std::os::raw::c_void,
8029    pub connectedCallback:
8030        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
8031    pub disconnectedCallback:
8032        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
8033    pub errorCallback: ::std::option::Option<
8034        unsafe extern "C" fn(msg: *const ::std::os::raw::c_char, ctxt: *mut ::std::os::raw::c_void),
8035    >,
8036    pub readCallback: ::std::option::Option<
8037        unsafe extern "C" fn(data: *mut u8, len: u64, ctxt: *mut ::std::os::raw::c_void) -> bool,
8038    >,
8039}
8040#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8041const _: () = {
8042    ["Size of BNWebsocketClientOutputCallbacks"]
8043        [::std::mem::size_of::<BNWebsocketClientOutputCallbacks>() - 40usize];
8044    ["Alignment of BNWebsocketClientOutputCallbacks"]
8045        [::std::mem::align_of::<BNWebsocketClientOutputCallbacks>() - 8usize];
8046    ["Offset of field: BNWebsocketClientOutputCallbacks::context"]
8047        [::std::mem::offset_of!(BNWebsocketClientOutputCallbacks, context) - 0usize];
8048    ["Offset of field: BNWebsocketClientOutputCallbacks::connectedCallback"]
8049        [::std::mem::offset_of!(BNWebsocketClientOutputCallbacks, connectedCallback) - 8usize];
8050    ["Offset of field: BNWebsocketClientOutputCallbacks::disconnectedCallback"]
8051        [::std::mem::offset_of!(BNWebsocketClientOutputCallbacks, disconnectedCallback) - 16usize];
8052    ["Offset of field: BNWebsocketClientOutputCallbacks::errorCallback"]
8053        [::std::mem::offset_of!(BNWebsocketClientOutputCallbacks, errorCallback) - 24usize];
8054    ["Offset of field: BNWebsocketClientOutputCallbacks::readCallback"]
8055        [::std::mem::offset_of!(BNWebsocketClientOutputCallbacks, readCallback) - 32usize];
8056};
8057impl Default for BNWebsocketClientOutputCallbacks {
8058    fn default() -> Self {
8059        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8060        unsafe {
8061            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8062            s.assume_init()
8063        }
8064    }
8065}
8066#[repr(C)]
8067#[derive(Debug, Copy, Clone)]
8068pub struct BNWebsocketClientCallbacks {
8069    pub context: *mut ::std::os::raw::c_void,
8070    pub destroyClient:
8071        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
8072    pub connect: ::std::option::Option<
8073        unsafe extern "C" fn(
8074            ctxt: *mut ::std::os::raw::c_void,
8075            host: *const ::std::os::raw::c_char,
8076            headerCount: u64,
8077            headerKeys: *const *const ::std::os::raw::c_char,
8078            headerValues: *const *const ::std::os::raw::c_char,
8079        ) -> bool,
8080    >,
8081    pub write: ::std::option::Option<
8082        unsafe extern "C" fn(data: *const u8, len: u64, ctxt: *mut ::std::os::raw::c_void) -> bool,
8083    >,
8084    pub disconnect:
8085        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
8086}
8087#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8088const _: () = {
8089    ["Size of BNWebsocketClientCallbacks"]
8090        [::std::mem::size_of::<BNWebsocketClientCallbacks>() - 40usize];
8091    ["Alignment of BNWebsocketClientCallbacks"]
8092        [::std::mem::align_of::<BNWebsocketClientCallbacks>() - 8usize];
8093    ["Offset of field: BNWebsocketClientCallbacks::context"]
8094        [::std::mem::offset_of!(BNWebsocketClientCallbacks, context) - 0usize];
8095    ["Offset of field: BNWebsocketClientCallbacks::destroyClient"]
8096        [::std::mem::offset_of!(BNWebsocketClientCallbacks, destroyClient) - 8usize];
8097    ["Offset of field: BNWebsocketClientCallbacks::connect"]
8098        [::std::mem::offset_of!(BNWebsocketClientCallbacks, connect) - 16usize];
8099    ["Offset of field: BNWebsocketClientCallbacks::write"]
8100        [::std::mem::offset_of!(BNWebsocketClientCallbacks, write) - 24usize];
8101    ["Offset of field: BNWebsocketClientCallbacks::disconnect"]
8102        [::std::mem::offset_of!(BNWebsocketClientCallbacks, disconnect) - 32usize];
8103};
8104impl Default for BNWebsocketClientCallbacks {
8105    fn default() -> Self {
8106        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8107        unsafe {
8108            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8109            s.assume_init()
8110        }
8111    }
8112}
8113#[repr(C)]
8114#[derive(Debug, Copy, Clone)]
8115pub struct BNWebsocketProviderCallbacks {
8116    pub context: *mut ::std::os::raw::c_void,
8117    pub createClient: ::std::option::Option<
8118        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> *mut BNWebsocketClient,
8119    >,
8120}
8121#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8122const _: () = {
8123    ["Size of BNWebsocketProviderCallbacks"]
8124        [::std::mem::size_of::<BNWebsocketProviderCallbacks>() - 16usize];
8125    ["Alignment of BNWebsocketProviderCallbacks"]
8126        [::std::mem::align_of::<BNWebsocketProviderCallbacks>() - 8usize];
8127    ["Offset of field: BNWebsocketProviderCallbacks::context"]
8128        [::std::mem::offset_of!(BNWebsocketProviderCallbacks, context) - 0usize];
8129    ["Offset of field: BNWebsocketProviderCallbacks::createClient"]
8130        [::std::mem::offset_of!(BNWebsocketProviderCallbacks, createClient) - 8usize];
8131};
8132impl Default for BNWebsocketProviderCallbacks {
8133    fn default() -> Self {
8134        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8135        unsafe {
8136            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8137            s.assume_init()
8138        }
8139    }
8140}
8141#[repr(u8)]
8142#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
8143pub enum BNFindFlag {
8144    FindCaseSensitive = 0,
8145    FindCaseInsensitive = 1,
8146    FindIgnoreWhitespace = 2,
8147}
8148#[repr(u8)]
8149#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
8150pub enum BNScriptingProviderInputReadyState {
8151    NotReadyForInput = 0,
8152    ReadyForScriptExecution = 1,
8153    ReadyForScriptProgramInput = 2,
8154}
8155#[repr(u8)]
8156#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
8157pub enum BNScriptingProviderExecuteResult {
8158    InvalidScriptInput = 0,
8159    IncompleteScriptInput = 1,
8160    SuccessfulScriptExecution = 2,
8161    ScriptExecutionCancelled = 3,
8162}
8163#[repr(C)]
8164#[derive(Debug, Copy, Clone)]
8165pub struct BNScriptingInstanceCallbacks {
8166    pub context: *mut ::std::os::raw::c_void,
8167    pub destroyInstance:
8168        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
8169    pub externalRefTaken:
8170        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
8171    pub externalRefReleased:
8172        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
8173    pub executeScriptInput: ::std::option::Option<
8174        unsafe extern "C" fn(
8175            ctxt: *mut ::std::os::raw::c_void,
8176            input: *const ::std::os::raw::c_char,
8177        ) -> BNScriptingProviderExecuteResult,
8178    >,
8179    pub executeScriptInputFromFilename: ::std::option::Option<
8180        unsafe extern "C" fn(
8181            ctxt: *mut ::std::os::raw::c_void,
8182            input: *const ::std::os::raw::c_char,
8183        ) -> BNScriptingProviderExecuteResult,
8184    >,
8185    pub cancelScriptInput:
8186        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
8187    pub releaseBinaryView: ::std::option::Option<
8188        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, view: *mut BNBinaryView),
8189    >,
8190    pub setCurrentBinaryView: ::std::option::Option<
8191        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, view: *mut BNBinaryView),
8192    >,
8193    pub setCurrentFunction: ::std::option::Option<
8194        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, func: *mut BNFunction),
8195    >,
8196    pub setCurrentBasicBlock: ::std::option::Option<
8197        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, block: *mut BNBasicBlock),
8198    >,
8199    pub setCurrentAddress:
8200        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, addr: u64)>,
8201    pub setCurrentSelection: ::std::option::Option<
8202        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, begin: u64, end: u64),
8203    >,
8204    pub completeInput: ::std::option::Option<
8205        unsafe extern "C" fn(
8206            ctxt: *mut ::std::os::raw::c_void,
8207            text: *const ::std::os::raw::c_char,
8208            state: u64,
8209        ) -> *mut ::std::os::raw::c_char,
8210    >,
8211    pub stop: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
8212    pub canCompleteArguments: ::std::option::Option<
8213        unsafe extern "C" fn(
8214            ctx: *mut ::std::os::raw::c_void,
8215            text: *const ::std::os::raw::c_char,
8216        ) -> bool,
8217    >,
8218    pub completeArguments: ::std::option::Option<
8219        unsafe extern "C" fn(
8220            ctxt: *mut ::std::os::raw::c_void,
8221            text: *const ::std::os::raw::c_char,
8222            argumentStart: *mut u64,
8223        ) -> *mut ::std::os::raw::c_char,
8224    >,
8225}
8226#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8227const _: () = {
8228    ["Size of BNScriptingInstanceCallbacks"]
8229        [::std::mem::size_of::<BNScriptingInstanceCallbacks>() - 136usize];
8230    ["Alignment of BNScriptingInstanceCallbacks"]
8231        [::std::mem::align_of::<BNScriptingInstanceCallbacks>() - 8usize];
8232    ["Offset of field: BNScriptingInstanceCallbacks::context"]
8233        [::std::mem::offset_of!(BNScriptingInstanceCallbacks, context) - 0usize];
8234    ["Offset of field: BNScriptingInstanceCallbacks::destroyInstance"]
8235        [::std::mem::offset_of!(BNScriptingInstanceCallbacks, destroyInstance) - 8usize];
8236    ["Offset of field: BNScriptingInstanceCallbacks::externalRefTaken"]
8237        [::std::mem::offset_of!(BNScriptingInstanceCallbacks, externalRefTaken) - 16usize];
8238    ["Offset of field: BNScriptingInstanceCallbacks::externalRefReleased"]
8239        [::std::mem::offset_of!(BNScriptingInstanceCallbacks, externalRefReleased) - 24usize];
8240    ["Offset of field: BNScriptingInstanceCallbacks::executeScriptInput"]
8241        [::std::mem::offset_of!(BNScriptingInstanceCallbacks, executeScriptInput) - 32usize];
8242    ["Offset of field: BNScriptingInstanceCallbacks::executeScriptInputFromFilename"][::std::mem::offset_of!(
8243        BNScriptingInstanceCallbacks,
8244        executeScriptInputFromFilename
8245    ) - 40usize];
8246    ["Offset of field: BNScriptingInstanceCallbacks::cancelScriptInput"]
8247        [::std::mem::offset_of!(BNScriptingInstanceCallbacks, cancelScriptInput) - 48usize];
8248    ["Offset of field: BNScriptingInstanceCallbacks::releaseBinaryView"]
8249        [::std::mem::offset_of!(BNScriptingInstanceCallbacks, releaseBinaryView) - 56usize];
8250    ["Offset of field: BNScriptingInstanceCallbacks::setCurrentBinaryView"]
8251        [::std::mem::offset_of!(BNScriptingInstanceCallbacks, setCurrentBinaryView) - 64usize];
8252    ["Offset of field: BNScriptingInstanceCallbacks::setCurrentFunction"]
8253        [::std::mem::offset_of!(BNScriptingInstanceCallbacks, setCurrentFunction) - 72usize];
8254    ["Offset of field: BNScriptingInstanceCallbacks::setCurrentBasicBlock"]
8255        [::std::mem::offset_of!(BNScriptingInstanceCallbacks, setCurrentBasicBlock) - 80usize];
8256    ["Offset of field: BNScriptingInstanceCallbacks::setCurrentAddress"]
8257        [::std::mem::offset_of!(BNScriptingInstanceCallbacks, setCurrentAddress) - 88usize];
8258    ["Offset of field: BNScriptingInstanceCallbacks::setCurrentSelection"]
8259        [::std::mem::offset_of!(BNScriptingInstanceCallbacks, setCurrentSelection) - 96usize];
8260    ["Offset of field: BNScriptingInstanceCallbacks::completeInput"]
8261        [::std::mem::offset_of!(BNScriptingInstanceCallbacks, completeInput) - 104usize];
8262    ["Offset of field: BNScriptingInstanceCallbacks::stop"]
8263        [::std::mem::offset_of!(BNScriptingInstanceCallbacks, stop) - 112usize];
8264    ["Offset of field: BNScriptingInstanceCallbacks::canCompleteArguments"]
8265        [::std::mem::offset_of!(BNScriptingInstanceCallbacks, canCompleteArguments) - 120usize];
8266    ["Offset of field: BNScriptingInstanceCallbacks::completeArguments"]
8267        [::std::mem::offset_of!(BNScriptingInstanceCallbacks, completeArguments) - 128usize];
8268};
8269impl Default for BNScriptingInstanceCallbacks {
8270    fn default() -> Self {
8271        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8272        unsafe {
8273            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8274            s.assume_init()
8275        }
8276    }
8277}
8278#[repr(C)]
8279#[derive(Debug, Copy, Clone)]
8280pub struct BNScriptingProviderCallbacks {
8281    pub context: *mut ::std::os::raw::c_void,
8282    pub createInstance: ::std::option::Option<
8283        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> *mut BNScriptingInstance,
8284    >,
8285    pub loadModule: ::std::option::Option<
8286        unsafe extern "C" fn(
8287            ctxt: *mut ::std::os::raw::c_void,
8288            repoPath: *const ::std::os::raw::c_char,
8289            pluginPath: *const ::std::os::raw::c_char,
8290            force: bool,
8291        ) -> bool,
8292    >,
8293    pub installModules: ::std::option::Option<
8294        unsafe extern "C" fn(
8295            ctxt: *mut ::std::os::raw::c_void,
8296            modules: *const ::std::os::raw::c_char,
8297        ) -> bool,
8298    >,
8299}
8300#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8301const _: () = {
8302    ["Size of BNScriptingProviderCallbacks"]
8303        [::std::mem::size_of::<BNScriptingProviderCallbacks>() - 32usize];
8304    ["Alignment of BNScriptingProviderCallbacks"]
8305        [::std::mem::align_of::<BNScriptingProviderCallbacks>() - 8usize];
8306    ["Offset of field: BNScriptingProviderCallbacks::context"]
8307        [::std::mem::offset_of!(BNScriptingProviderCallbacks, context) - 0usize];
8308    ["Offset of field: BNScriptingProviderCallbacks::createInstance"]
8309        [::std::mem::offset_of!(BNScriptingProviderCallbacks, createInstance) - 8usize];
8310    ["Offset of field: BNScriptingProviderCallbacks::loadModule"]
8311        [::std::mem::offset_of!(BNScriptingProviderCallbacks, loadModule) - 16usize];
8312    ["Offset of field: BNScriptingProviderCallbacks::installModules"]
8313        [::std::mem::offset_of!(BNScriptingProviderCallbacks, installModules) - 24usize];
8314};
8315impl Default for BNScriptingProviderCallbacks {
8316    fn default() -> Self {
8317        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8318        unsafe {
8319            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8320            s.assume_init()
8321        }
8322    }
8323}
8324#[repr(C)]
8325#[derive(Debug, Copy, Clone)]
8326pub struct BNScriptingOutputListener {
8327    pub context: *mut ::std::os::raw::c_void,
8328    pub output: ::std::option::Option<
8329        unsafe extern "C" fn(
8330            ctxt: *mut ::std::os::raw::c_void,
8331            text: *const ::std::os::raw::c_char,
8332        ),
8333    >,
8334    pub warning: ::std::option::Option<
8335        unsafe extern "C" fn(
8336            ctxt: *mut ::std::os::raw::c_void,
8337            text: *const ::std::os::raw::c_char,
8338        ),
8339    >,
8340    pub error: ::std::option::Option<
8341        unsafe extern "C" fn(
8342            ctxt: *mut ::std::os::raw::c_void,
8343            text: *const ::std::os::raw::c_char,
8344        ),
8345    >,
8346    pub inputReadyStateChanged: ::std::option::Option<
8347        unsafe extern "C" fn(
8348            ctxt: *mut ::std::os::raw::c_void,
8349            state: BNScriptingProviderInputReadyState,
8350        ),
8351    >,
8352}
8353#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8354const _: () = {
8355    ["Size of BNScriptingOutputListener"]
8356        [::std::mem::size_of::<BNScriptingOutputListener>() - 40usize];
8357    ["Alignment of BNScriptingOutputListener"]
8358        [::std::mem::align_of::<BNScriptingOutputListener>() - 8usize];
8359    ["Offset of field: BNScriptingOutputListener::context"]
8360        [::std::mem::offset_of!(BNScriptingOutputListener, context) - 0usize];
8361    ["Offset of field: BNScriptingOutputListener::output"]
8362        [::std::mem::offset_of!(BNScriptingOutputListener, output) - 8usize];
8363    ["Offset of field: BNScriptingOutputListener::warning"]
8364        [::std::mem::offset_of!(BNScriptingOutputListener, warning) - 16usize];
8365    ["Offset of field: BNScriptingOutputListener::error"]
8366        [::std::mem::offset_of!(BNScriptingOutputListener, error) - 24usize];
8367    ["Offset of field: BNScriptingOutputListener::inputReadyStateChanged"]
8368        [::std::mem::offset_of!(BNScriptingOutputListener, inputReadyStateChanged) - 32usize];
8369};
8370impl Default for BNScriptingOutputListener {
8371    fn default() -> Self {
8372        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8373        unsafe {
8374            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8375            s.assume_init()
8376        }
8377    }
8378}
8379#[repr(C)]
8380#[derive(Debug, Copy, Clone)]
8381pub struct BNMainThreadCallbacks {
8382    pub context: *mut ::std::os::raw::c_void,
8383    pub addAction: ::std::option::Option<
8384        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, action: *mut BNMainThreadAction),
8385    >,
8386}
8387#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8388const _: () = {
8389    ["Size of BNMainThreadCallbacks"][::std::mem::size_of::<BNMainThreadCallbacks>() - 16usize];
8390    ["Alignment of BNMainThreadCallbacks"]
8391        [::std::mem::align_of::<BNMainThreadCallbacks>() - 8usize];
8392    ["Offset of field: BNMainThreadCallbacks::context"]
8393        [::std::mem::offset_of!(BNMainThreadCallbacks, context) - 0usize];
8394    ["Offset of field: BNMainThreadCallbacks::addAction"]
8395        [::std::mem::offset_of!(BNMainThreadCallbacks, addAction) - 8usize];
8396};
8397impl Default for BNMainThreadCallbacks {
8398    fn default() -> Self {
8399        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8400        unsafe {
8401            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8402            s.assume_init()
8403        }
8404    }
8405}
8406#[repr(C)]
8407#[derive(Copy, Clone)]
8408pub struct BNTypeParserCallbacks {
8409    pub context: *mut ::std::os::raw::c_void,
8410    pub getOptionText: ::std::option::Option<
8411        unsafe extern "C" fn(
8412            ctxt: *mut ::std::os::raw::c_void,
8413            option: BNTypeParserOption,
8414            value: *const ::std::os::raw::c_char,
8415            result: *mut *mut ::std::os::raw::c_char,
8416        ) -> bool,
8417    >,
8418    pub preprocessSource: ::std::option::Option<
8419        unsafe extern "C" fn(
8420            ctxt: *mut ::std::os::raw::c_void,
8421            source: *const ::std::os::raw::c_char,
8422            fileName: *const ::std::os::raw::c_char,
8423            platform: *mut BNPlatform,
8424            existingTypes: *mut BNTypeContainer,
8425            options: *const *const ::std::os::raw::c_char,
8426            optionCount: usize,
8427            includeDirs: *const *const ::std::os::raw::c_char,
8428            includeDirCount: usize,
8429            output: *mut *mut ::std::os::raw::c_char,
8430            errors: *mut *mut BNTypeParserError,
8431            errorCount: *mut usize,
8432        ) -> bool,
8433    >,
8434    pub parseTypesFromSource: ::std::option::Option<
8435        unsafe extern "C" fn(
8436            ctxt: *mut ::std::os::raw::c_void,
8437            source: *const ::std::os::raw::c_char,
8438            fileName: *const ::std::os::raw::c_char,
8439            platform: *mut BNPlatform,
8440            existingTypes: *mut BNTypeContainer,
8441            options: *const *const ::std::os::raw::c_char,
8442            optionCount: usize,
8443            includeDirs: *const *const ::std::os::raw::c_char,
8444            includeDirCount: usize,
8445            autoTypeSource: *const ::std::os::raw::c_char,
8446            result: *mut BNTypeParserResult,
8447            errors: *mut *mut BNTypeParserError,
8448            errorCount: *mut usize,
8449        ) -> bool,
8450    >,
8451    pub parseTypeString: ::std::option::Option<
8452        unsafe extern "C" fn(
8453            ctxt: *mut ::std::os::raw::c_void,
8454            source: *const ::std::os::raw::c_char,
8455            platform: *mut BNPlatform,
8456            existingTypes: *mut BNTypeContainer,
8457            result: *mut BNQualifiedNameAndType,
8458            errors: *mut *mut BNTypeParserError,
8459            errorCount: *mut usize,
8460        ) -> bool,
8461    >,
8462    pub freeString: ::std::option::Option<
8463        unsafe extern "C" fn(
8464            ctxt: *mut ::std::os::raw::c_void,
8465            string: *mut ::std::os::raw::c_char,
8466        ),
8467    >,
8468    pub freeResult: ::std::option::Option<
8469        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, result: *mut BNTypeParserResult),
8470    >,
8471    pub freeErrorList: ::std::option::Option<
8472        unsafe extern "C" fn(
8473            ctxt: *mut ::std::os::raw::c_void,
8474            errors: *mut BNTypeParserError,
8475            errorCount: usize,
8476        ),
8477    >,
8478}
8479#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8480const _: () = {
8481    ["Size of BNTypeParserCallbacks"][::std::mem::size_of::<BNTypeParserCallbacks>() - 64usize];
8482    ["Alignment of BNTypeParserCallbacks"]
8483        [::std::mem::align_of::<BNTypeParserCallbacks>() - 8usize];
8484    ["Offset of field: BNTypeParserCallbacks::context"]
8485        [::std::mem::offset_of!(BNTypeParserCallbacks, context) - 0usize];
8486    ["Offset of field: BNTypeParserCallbacks::getOptionText"]
8487        [::std::mem::offset_of!(BNTypeParserCallbacks, getOptionText) - 8usize];
8488    ["Offset of field: BNTypeParserCallbacks::preprocessSource"]
8489        [::std::mem::offset_of!(BNTypeParserCallbacks, preprocessSource) - 16usize];
8490    ["Offset of field: BNTypeParserCallbacks::parseTypesFromSource"]
8491        [::std::mem::offset_of!(BNTypeParserCallbacks, parseTypesFromSource) - 24usize];
8492    ["Offset of field: BNTypeParserCallbacks::parseTypeString"]
8493        [::std::mem::offset_of!(BNTypeParserCallbacks, parseTypeString) - 32usize];
8494    ["Offset of field: BNTypeParserCallbacks::freeString"]
8495        [::std::mem::offset_of!(BNTypeParserCallbacks, freeString) - 40usize];
8496    ["Offset of field: BNTypeParserCallbacks::freeResult"]
8497        [::std::mem::offset_of!(BNTypeParserCallbacks, freeResult) - 48usize];
8498    ["Offset of field: BNTypeParserCallbacks::freeErrorList"]
8499        [::std::mem::offset_of!(BNTypeParserCallbacks, freeErrorList) - 56usize];
8500};
8501impl Default for BNTypeParserCallbacks {
8502    fn default() -> Self {
8503        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8504        unsafe {
8505            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8506            s.assume_init()
8507        }
8508    }
8509}
8510#[repr(C)]
8511#[derive(Debug, Copy, Clone)]
8512pub struct BNTypePrinterCallbacks {
8513    pub context: *mut ::std::os::raw::c_void,
8514    pub getTypeTokens: ::std::option::Option<
8515        unsafe extern "C" fn(
8516            ctxt: *mut ::std::os::raw::c_void,
8517            type_: *mut BNType,
8518            platform: *mut BNPlatform,
8519            name: *mut BNQualifiedName,
8520            baseConfidence: u8,
8521            escaping: BNTokenEscapingType,
8522            result: *mut *mut BNInstructionTextToken,
8523            resultCount: *mut usize,
8524        ) -> bool,
8525    >,
8526    pub getTypeTokensBeforeName: ::std::option::Option<
8527        unsafe extern "C" fn(
8528            ctxt: *mut ::std::os::raw::c_void,
8529            type_: *mut BNType,
8530            platform: *mut BNPlatform,
8531            baseConfidence: u8,
8532            parentType: *mut BNType,
8533            escaping: BNTokenEscapingType,
8534            result: *mut *mut BNInstructionTextToken,
8535            resultCount: *mut usize,
8536        ) -> bool,
8537    >,
8538    pub getTypeTokensAfterName: ::std::option::Option<
8539        unsafe extern "C" fn(
8540            ctxt: *mut ::std::os::raw::c_void,
8541            type_: *mut BNType,
8542            platform: *mut BNPlatform,
8543            baseConfidence: u8,
8544            parentType: *mut BNType,
8545            escaping: BNTokenEscapingType,
8546            result: *mut *mut BNInstructionTextToken,
8547            resultCount: *mut usize,
8548        ) -> bool,
8549    >,
8550    pub getTypeString: ::std::option::Option<
8551        unsafe extern "C" fn(
8552            ctxt: *mut ::std::os::raw::c_void,
8553            type_: *mut BNType,
8554            platform: *mut BNPlatform,
8555            name: *mut BNQualifiedName,
8556            escaping: BNTokenEscapingType,
8557            result: *mut *mut ::std::os::raw::c_char,
8558        ) -> bool,
8559    >,
8560    pub getTypeStringBeforeName: ::std::option::Option<
8561        unsafe extern "C" fn(
8562            ctxt: *mut ::std::os::raw::c_void,
8563            type_: *mut BNType,
8564            platform: *mut BNPlatform,
8565            escaping: BNTokenEscapingType,
8566            result: *mut *mut ::std::os::raw::c_char,
8567        ) -> bool,
8568    >,
8569    pub getTypeStringAfterName: ::std::option::Option<
8570        unsafe extern "C" fn(
8571            ctxt: *mut ::std::os::raw::c_void,
8572            type_: *mut BNType,
8573            platform: *mut BNPlatform,
8574            escaping: BNTokenEscapingType,
8575            result: *mut *mut ::std::os::raw::c_char,
8576        ) -> bool,
8577    >,
8578    pub getTypeLines: ::std::option::Option<
8579        unsafe extern "C" fn(
8580            ctxt: *mut ::std::os::raw::c_void,
8581            type_: *mut BNType,
8582            types: *mut BNTypeContainer,
8583            name: *mut BNQualifiedName,
8584            paddingCols: ::std::os::raw::c_int,
8585            collapsed: bool,
8586            escaping: BNTokenEscapingType,
8587            result: *mut *mut BNTypeDefinitionLine,
8588            resultCount: *mut usize,
8589        ) -> bool,
8590    >,
8591    pub printAllTypes: ::std::option::Option<
8592        unsafe extern "C" fn(
8593            ctxt: *mut ::std::os::raw::c_void,
8594            names: *mut BNQualifiedName,
8595            types: *mut *mut BNType,
8596            typeCount: usize,
8597            data: *mut BNBinaryView,
8598            paddingCols: ::std::os::raw::c_int,
8599            escaping: BNTokenEscapingType,
8600            result: *mut *mut ::std::os::raw::c_char,
8601        ) -> bool,
8602    >,
8603    pub freeTokens: ::std::option::Option<
8604        unsafe extern "C" fn(
8605            ctxt: *mut ::std::os::raw::c_void,
8606            tokens: *mut BNInstructionTextToken,
8607            count: usize,
8608        ),
8609    >,
8610    pub freeString: ::std::option::Option<
8611        unsafe extern "C" fn(
8612            ctxt: *mut ::std::os::raw::c_void,
8613            string: *mut ::std::os::raw::c_char,
8614        ),
8615    >,
8616    pub freeLines: ::std::option::Option<
8617        unsafe extern "C" fn(
8618            ctxt: *mut ::std::os::raw::c_void,
8619            lines: *mut BNTypeDefinitionLine,
8620            count: usize,
8621        ),
8622    >,
8623}
8624#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8625const _: () = {
8626    ["Size of BNTypePrinterCallbacks"][::std::mem::size_of::<BNTypePrinterCallbacks>() - 96usize];
8627    ["Alignment of BNTypePrinterCallbacks"]
8628        [::std::mem::align_of::<BNTypePrinterCallbacks>() - 8usize];
8629    ["Offset of field: BNTypePrinterCallbacks::context"]
8630        [::std::mem::offset_of!(BNTypePrinterCallbacks, context) - 0usize];
8631    ["Offset of field: BNTypePrinterCallbacks::getTypeTokens"]
8632        [::std::mem::offset_of!(BNTypePrinterCallbacks, getTypeTokens) - 8usize];
8633    ["Offset of field: BNTypePrinterCallbacks::getTypeTokensBeforeName"]
8634        [::std::mem::offset_of!(BNTypePrinterCallbacks, getTypeTokensBeforeName) - 16usize];
8635    ["Offset of field: BNTypePrinterCallbacks::getTypeTokensAfterName"]
8636        [::std::mem::offset_of!(BNTypePrinterCallbacks, getTypeTokensAfterName) - 24usize];
8637    ["Offset of field: BNTypePrinterCallbacks::getTypeString"]
8638        [::std::mem::offset_of!(BNTypePrinterCallbacks, getTypeString) - 32usize];
8639    ["Offset of field: BNTypePrinterCallbacks::getTypeStringBeforeName"]
8640        [::std::mem::offset_of!(BNTypePrinterCallbacks, getTypeStringBeforeName) - 40usize];
8641    ["Offset of field: BNTypePrinterCallbacks::getTypeStringAfterName"]
8642        [::std::mem::offset_of!(BNTypePrinterCallbacks, getTypeStringAfterName) - 48usize];
8643    ["Offset of field: BNTypePrinterCallbacks::getTypeLines"]
8644        [::std::mem::offset_of!(BNTypePrinterCallbacks, getTypeLines) - 56usize];
8645    ["Offset of field: BNTypePrinterCallbacks::printAllTypes"]
8646        [::std::mem::offset_of!(BNTypePrinterCallbacks, printAllTypes) - 64usize];
8647    ["Offset of field: BNTypePrinterCallbacks::freeTokens"]
8648        [::std::mem::offset_of!(BNTypePrinterCallbacks, freeTokens) - 72usize];
8649    ["Offset of field: BNTypePrinterCallbacks::freeString"]
8650        [::std::mem::offset_of!(BNTypePrinterCallbacks, freeString) - 80usize];
8651    ["Offset of field: BNTypePrinterCallbacks::freeLines"]
8652        [::std::mem::offset_of!(BNTypePrinterCallbacks, freeLines) - 88usize];
8653};
8654impl Default for BNTypePrinterCallbacks {
8655    fn default() -> Self {
8656        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8657        unsafe {
8658            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8659            s.assume_init()
8660        }
8661    }
8662}
8663#[repr(C)]
8664#[derive(Debug, Default, Copy, Clone)]
8665pub struct BNConstantReference {
8666    pub value: i64,
8667    pub size: usize,
8668    pub pointer: bool,
8669    pub intermediate: bool,
8670}
8671#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8672const _: () = {
8673    ["Size of BNConstantReference"][::std::mem::size_of::<BNConstantReference>() - 24usize];
8674    ["Alignment of BNConstantReference"][::std::mem::align_of::<BNConstantReference>() - 8usize];
8675    ["Offset of field: BNConstantReference::value"]
8676        [::std::mem::offset_of!(BNConstantReference, value) - 0usize];
8677    ["Offset of field: BNConstantReference::size"]
8678        [::std::mem::offset_of!(BNConstantReference, size) - 8usize];
8679    ["Offset of field: BNConstantReference::pointer"]
8680        [::std::mem::offset_of!(BNConstantReference, pointer) - 16usize];
8681    ["Offset of field: BNConstantReference::intermediate"]
8682        [::std::mem::offset_of!(BNConstantReference, intermediate) - 17usize];
8683};
8684#[repr(C)]
8685#[derive(Debug, Copy, Clone)]
8686pub struct BNMetadataValueStore {
8687    pub size: usize,
8688    pub keys: *mut *mut ::std::os::raw::c_char,
8689    pub values: *mut *mut BNMetadata,
8690}
8691#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8692const _: () = {
8693    ["Size of BNMetadataValueStore"][::std::mem::size_of::<BNMetadataValueStore>() - 24usize];
8694    ["Alignment of BNMetadataValueStore"][::std::mem::align_of::<BNMetadataValueStore>() - 8usize];
8695    ["Offset of field: BNMetadataValueStore::size"]
8696        [::std::mem::offset_of!(BNMetadataValueStore, size) - 0usize];
8697    ["Offset of field: BNMetadataValueStore::keys"]
8698        [::std::mem::offset_of!(BNMetadataValueStore, keys) - 8usize];
8699    ["Offset of field: BNMetadataValueStore::values"]
8700        [::std::mem::offset_of!(BNMetadataValueStore, values) - 16usize];
8701};
8702impl Default for BNMetadataValueStore {
8703    fn default() -> Self {
8704        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8705        unsafe {
8706            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8707            s.assume_init()
8708        }
8709    }
8710}
8711#[repr(u8)]
8712#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
8713pub enum BNSaveOption {
8714    RemoveUndoData = 0,
8715    TrimSnapshots = 1,
8716    PurgeOriginalFilenamePath = 2,
8717}
8718#[repr(u8)]
8719#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
8720pub enum BNMessageBoxIcon {
8721    InformationIcon = 0,
8722    QuestionIcon = 1,
8723    WarningIcon = 2,
8724    ErrorIcon = 3,
8725}
8726#[repr(u8)]
8727#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
8728pub enum BNMessageBoxButtonSet {
8729    OKButtonSet = 0,
8730    YesNoButtonSet = 1,
8731    YesNoCancelButtonSet = 2,
8732}
8733#[repr(u8)]
8734#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
8735pub enum BNMessageBoxButtonResult {
8736    NoButton = 0,
8737    YesButton = 1,
8738    OKButton = 2,
8739    CancelButton = 3,
8740}
8741#[repr(u8)]
8742#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
8743pub enum BNFormInputFieldType {
8744    LabelFormField = 0,
8745    SeparatorFormField = 1,
8746    TextLineFormField = 2,
8747    MultilineTextFormField = 3,
8748    IntegerFormField = 4,
8749    AddressFormField = 5,
8750    ChoiceFormField = 6,
8751    OpenFileNameFormField = 7,
8752    SaveFileNameFormField = 8,
8753    DirectoryNameFormField = 9,
8754    CheckboxFormField = 10,
8755}
8756#[repr(C)]
8757#[derive(Debug, Copy, Clone)]
8758pub struct BNFormInputField {
8759    pub type_: BNFormInputFieldType,
8760    pub prompt: *const ::std::os::raw::c_char,
8761    #[doc = " For AddressFormField"]
8762    pub view: *mut BNBinaryView,
8763    #[doc = " For AddressFormField"]
8764    pub currentAddress: u64,
8765    #[doc = " For ChoiceFormField"]
8766    pub choices: *mut *const ::std::os::raw::c_char,
8767    #[doc = " For ChoiceFormField"]
8768    pub count: usize,
8769    #[doc = " For OpenFileNameFormField, SaveFileNameFormField"]
8770    pub ext: *const ::std::os::raw::c_char,
8771    #[doc = " For SaveFileNameFormField"]
8772    pub defaultName: *const ::std::os::raw::c_char,
8773    pub intResult: i64,
8774    pub addressResult: u64,
8775    pub stringResult: *mut ::std::os::raw::c_char,
8776    pub indexResult: usize,
8777    pub hasDefault: bool,
8778    pub intDefault: i64,
8779    pub addressDefault: u64,
8780    pub stringDefault: *const ::std::os::raw::c_char,
8781    pub indexDefault: usize,
8782}
8783#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8784const _: () = {
8785    ["Size of BNFormInputField"][::std::mem::size_of::<BNFormInputField>() - 136usize];
8786    ["Alignment of BNFormInputField"][::std::mem::align_of::<BNFormInputField>() - 8usize];
8787    ["Offset of field: BNFormInputField::type_"]
8788        [::std::mem::offset_of!(BNFormInputField, type_) - 0usize];
8789    ["Offset of field: BNFormInputField::prompt"]
8790        [::std::mem::offset_of!(BNFormInputField, prompt) - 8usize];
8791    ["Offset of field: BNFormInputField::view"]
8792        [::std::mem::offset_of!(BNFormInputField, view) - 16usize];
8793    ["Offset of field: BNFormInputField::currentAddress"]
8794        [::std::mem::offset_of!(BNFormInputField, currentAddress) - 24usize];
8795    ["Offset of field: BNFormInputField::choices"]
8796        [::std::mem::offset_of!(BNFormInputField, choices) - 32usize];
8797    ["Offset of field: BNFormInputField::count"]
8798        [::std::mem::offset_of!(BNFormInputField, count) - 40usize];
8799    ["Offset of field: BNFormInputField::ext"]
8800        [::std::mem::offset_of!(BNFormInputField, ext) - 48usize];
8801    ["Offset of field: BNFormInputField::defaultName"]
8802        [::std::mem::offset_of!(BNFormInputField, defaultName) - 56usize];
8803    ["Offset of field: BNFormInputField::intResult"]
8804        [::std::mem::offset_of!(BNFormInputField, intResult) - 64usize];
8805    ["Offset of field: BNFormInputField::addressResult"]
8806        [::std::mem::offset_of!(BNFormInputField, addressResult) - 72usize];
8807    ["Offset of field: BNFormInputField::stringResult"]
8808        [::std::mem::offset_of!(BNFormInputField, stringResult) - 80usize];
8809    ["Offset of field: BNFormInputField::indexResult"]
8810        [::std::mem::offset_of!(BNFormInputField, indexResult) - 88usize];
8811    ["Offset of field: BNFormInputField::hasDefault"]
8812        [::std::mem::offset_of!(BNFormInputField, hasDefault) - 96usize];
8813    ["Offset of field: BNFormInputField::intDefault"]
8814        [::std::mem::offset_of!(BNFormInputField, intDefault) - 104usize];
8815    ["Offset of field: BNFormInputField::addressDefault"]
8816        [::std::mem::offset_of!(BNFormInputField, addressDefault) - 112usize];
8817    ["Offset of field: BNFormInputField::stringDefault"]
8818        [::std::mem::offset_of!(BNFormInputField, stringDefault) - 120usize];
8819    ["Offset of field: BNFormInputField::indexDefault"]
8820        [::std::mem::offset_of!(BNFormInputField, indexDefault) - 128usize];
8821};
8822impl Default for BNFormInputField {
8823    fn default() -> Self {
8824        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8825        unsafe {
8826            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8827            s.assume_init()
8828        }
8829    }
8830}
8831#[repr(C)]
8832#[derive(Debug, Copy, Clone)]
8833pub struct BNInteractionHandlerCallbacks {
8834    pub context: *mut ::std::os::raw::c_void,
8835    pub showPlainTextReport: ::std::option::Option<
8836        unsafe extern "C" fn(
8837            ctxt: *mut ::std::os::raw::c_void,
8838            view: *mut BNBinaryView,
8839            title: *const ::std::os::raw::c_char,
8840            contents: *const ::std::os::raw::c_char,
8841        ),
8842    >,
8843    pub showMarkdownReport: ::std::option::Option<
8844        unsafe extern "C" fn(
8845            ctxt: *mut ::std::os::raw::c_void,
8846            view: *mut BNBinaryView,
8847            title: *const ::std::os::raw::c_char,
8848            contents: *const ::std::os::raw::c_char,
8849            plaintext: *const ::std::os::raw::c_char,
8850        ),
8851    >,
8852    pub showHTMLReport: ::std::option::Option<
8853        unsafe extern "C" fn(
8854            ctxt: *mut ::std::os::raw::c_void,
8855            view: *mut BNBinaryView,
8856            title: *const ::std::os::raw::c_char,
8857            contents: *const ::std::os::raw::c_char,
8858            plaintext: *const ::std::os::raw::c_char,
8859        ),
8860    >,
8861    pub showGraphReport: ::std::option::Option<
8862        unsafe extern "C" fn(
8863            ctxt: *mut ::std::os::raw::c_void,
8864            view: *mut BNBinaryView,
8865            title: *const ::std::os::raw::c_char,
8866            graph: *mut BNFlowGraph,
8867        ),
8868    >,
8869    pub showReportCollection: ::std::option::Option<
8870        unsafe extern "C" fn(
8871            ctxt: *mut ::std::os::raw::c_void,
8872            title: *const ::std::os::raw::c_char,
8873            reports: *mut BNReportCollection,
8874        ),
8875    >,
8876    pub getTextLineInput: ::std::option::Option<
8877        unsafe extern "C" fn(
8878            ctxt: *mut ::std::os::raw::c_void,
8879            result: *mut *mut ::std::os::raw::c_char,
8880            prompt: *const ::std::os::raw::c_char,
8881            title: *const ::std::os::raw::c_char,
8882        ) -> bool,
8883    >,
8884    pub getIntegerInput: ::std::option::Option<
8885        unsafe extern "C" fn(
8886            ctxt: *mut ::std::os::raw::c_void,
8887            result: *mut i64,
8888            prompt: *const ::std::os::raw::c_char,
8889            title: *const ::std::os::raw::c_char,
8890        ) -> bool,
8891    >,
8892    pub getAddressInput: ::std::option::Option<
8893        unsafe extern "C" fn(
8894            ctxt: *mut ::std::os::raw::c_void,
8895            result: *mut u64,
8896            prompt: *const ::std::os::raw::c_char,
8897            title: *const ::std::os::raw::c_char,
8898            view: *mut BNBinaryView,
8899            currentAddr: u64,
8900        ) -> bool,
8901    >,
8902    pub getChoiceInput: ::std::option::Option<
8903        unsafe extern "C" fn(
8904            ctxt: *mut ::std::os::raw::c_void,
8905            result: *mut usize,
8906            prompt: *const ::std::os::raw::c_char,
8907            title: *const ::std::os::raw::c_char,
8908            choices: *mut *const ::std::os::raw::c_char,
8909            count: usize,
8910        ) -> bool,
8911    >,
8912    pub getLargeChoiceInput: ::std::option::Option<
8913        unsafe extern "C" fn(
8914            ctxt: *mut ::std::os::raw::c_void,
8915            result: *mut usize,
8916            prompt: *const ::std::os::raw::c_char,
8917            title: *const ::std::os::raw::c_char,
8918            choices: *mut *const ::std::os::raw::c_char,
8919            count: usize,
8920        ) -> bool,
8921    >,
8922    pub getOpenFileNameInput: ::std::option::Option<
8923        unsafe extern "C" fn(
8924            ctxt: *mut ::std::os::raw::c_void,
8925            result: *mut *mut ::std::os::raw::c_char,
8926            prompt: *const ::std::os::raw::c_char,
8927            ext: *const ::std::os::raw::c_char,
8928        ) -> bool,
8929    >,
8930    pub getSaveFileNameInput: ::std::option::Option<
8931        unsafe extern "C" fn(
8932            ctxt: *mut ::std::os::raw::c_void,
8933            result: *mut *mut ::std::os::raw::c_char,
8934            prompt: *const ::std::os::raw::c_char,
8935            ext: *const ::std::os::raw::c_char,
8936            defaultName: *const ::std::os::raw::c_char,
8937        ) -> bool,
8938    >,
8939    pub getDirectoryNameInput: ::std::option::Option<
8940        unsafe extern "C" fn(
8941            ctxt: *mut ::std::os::raw::c_void,
8942            result: *mut *mut ::std::os::raw::c_char,
8943            prompt: *const ::std::os::raw::c_char,
8944            defaultName: *const ::std::os::raw::c_char,
8945        ) -> bool,
8946    >,
8947    pub getCheckboxInput: ::std::option::Option<
8948        unsafe extern "C" fn(
8949            ctxt: *mut ::std::os::raw::c_void,
8950            result: *mut i64,
8951            prompt: *const ::std::os::raw::c_char,
8952            title: *const ::std::os::raw::c_char,
8953            defaultChoice: *const i64,
8954        ) -> bool,
8955    >,
8956    pub getFormInput: ::std::option::Option<
8957        unsafe extern "C" fn(
8958            ctxt: *mut ::std::os::raw::c_void,
8959            fields: *mut BNFormInputField,
8960            count: usize,
8961            title: *const ::std::os::raw::c_char,
8962        ) -> bool,
8963    >,
8964    pub showMessageBox: ::std::option::Option<
8965        unsafe extern "C" fn(
8966            ctxt: *mut ::std::os::raw::c_void,
8967            title: *const ::std::os::raw::c_char,
8968            text: *const ::std::os::raw::c_char,
8969            buttons: BNMessageBoxButtonSet,
8970            icon: BNMessageBoxIcon,
8971        ) -> BNMessageBoxButtonResult,
8972    >,
8973    pub openUrl: ::std::option::Option<
8974        unsafe extern "C" fn(
8975            ctxt: *mut ::std::os::raw::c_void,
8976            url: *const ::std::os::raw::c_char,
8977        ) -> bool,
8978    >,
8979    pub runProgressDialog: ::std::option::Option<
8980        unsafe extern "C" fn(
8981            ctxt: *mut ::std::os::raw::c_void,
8982            title: *const ::std::os::raw::c_char,
8983            canCancel: bool,
8984            task: ::std::option::Option<
8985                unsafe extern "C" fn(
8986                    taskCtxt: *mut ::std::os::raw::c_void,
8987                    progress: BNProgressFunction,
8988                    progressCtxt: *mut ::std::os::raw::c_void,
8989                ),
8990            >,
8991            taskCtxt: *mut ::std::os::raw::c_void,
8992        ) -> bool,
8993    >,
8994}
8995#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8996const _: () = {
8997    ["Size of BNInteractionHandlerCallbacks"]
8998        [::std::mem::size_of::<BNInteractionHandlerCallbacks>() - 152usize];
8999    ["Alignment of BNInteractionHandlerCallbacks"]
9000        [::std::mem::align_of::<BNInteractionHandlerCallbacks>() - 8usize];
9001    ["Offset of field: BNInteractionHandlerCallbacks::context"]
9002        [::std::mem::offset_of!(BNInteractionHandlerCallbacks, context) - 0usize];
9003    ["Offset of field: BNInteractionHandlerCallbacks::showPlainTextReport"]
9004        [::std::mem::offset_of!(BNInteractionHandlerCallbacks, showPlainTextReport) - 8usize];
9005    ["Offset of field: BNInteractionHandlerCallbacks::showMarkdownReport"]
9006        [::std::mem::offset_of!(BNInteractionHandlerCallbacks, showMarkdownReport) - 16usize];
9007    ["Offset of field: BNInteractionHandlerCallbacks::showHTMLReport"]
9008        [::std::mem::offset_of!(BNInteractionHandlerCallbacks, showHTMLReport) - 24usize];
9009    ["Offset of field: BNInteractionHandlerCallbacks::showGraphReport"]
9010        [::std::mem::offset_of!(BNInteractionHandlerCallbacks, showGraphReport) - 32usize];
9011    ["Offset of field: BNInteractionHandlerCallbacks::showReportCollection"]
9012        [::std::mem::offset_of!(BNInteractionHandlerCallbacks, showReportCollection) - 40usize];
9013    ["Offset of field: BNInteractionHandlerCallbacks::getTextLineInput"]
9014        [::std::mem::offset_of!(BNInteractionHandlerCallbacks, getTextLineInput) - 48usize];
9015    ["Offset of field: BNInteractionHandlerCallbacks::getIntegerInput"]
9016        [::std::mem::offset_of!(BNInteractionHandlerCallbacks, getIntegerInput) - 56usize];
9017    ["Offset of field: BNInteractionHandlerCallbacks::getAddressInput"]
9018        [::std::mem::offset_of!(BNInteractionHandlerCallbacks, getAddressInput) - 64usize];
9019    ["Offset of field: BNInteractionHandlerCallbacks::getChoiceInput"]
9020        [::std::mem::offset_of!(BNInteractionHandlerCallbacks, getChoiceInput) - 72usize];
9021    ["Offset of field: BNInteractionHandlerCallbacks::getLargeChoiceInput"]
9022        [::std::mem::offset_of!(BNInteractionHandlerCallbacks, getLargeChoiceInput) - 80usize];
9023    ["Offset of field: BNInteractionHandlerCallbacks::getOpenFileNameInput"]
9024        [::std::mem::offset_of!(BNInteractionHandlerCallbacks, getOpenFileNameInput) - 88usize];
9025    ["Offset of field: BNInteractionHandlerCallbacks::getSaveFileNameInput"]
9026        [::std::mem::offset_of!(BNInteractionHandlerCallbacks, getSaveFileNameInput) - 96usize];
9027    ["Offset of field: BNInteractionHandlerCallbacks::getDirectoryNameInput"]
9028        [::std::mem::offset_of!(BNInteractionHandlerCallbacks, getDirectoryNameInput) - 104usize];
9029    ["Offset of field: BNInteractionHandlerCallbacks::getCheckboxInput"]
9030        [::std::mem::offset_of!(BNInteractionHandlerCallbacks, getCheckboxInput) - 112usize];
9031    ["Offset of field: BNInteractionHandlerCallbacks::getFormInput"]
9032        [::std::mem::offset_of!(BNInteractionHandlerCallbacks, getFormInput) - 120usize];
9033    ["Offset of field: BNInteractionHandlerCallbacks::showMessageBox"]
9034        [::std::mem::offset_of!(BNInteractionHandlerCallbacks, showMessageBox) - 128usize];
9035    ["Offset of field: BNInteractionHandlerCallbacks::openUrl"]
9036        [::std::mem::offset_of!(BNInteractionHandlerCallbacks, openUrl) - 136usize];
9037    ["Offset of field: BNInteractionHandlerCallbacks::runProgressDialog"]
9038        [::std::mem::offset_of!(BNInteractionHandlerCallbacks, runProgressDialog) - 144usize];
9039};
9040impl Default for BNInteractionHandlerCallbacks {
9041    fn default() -> Self {
9042        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9043        unsafe {
9044            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9045            s.assume_init()
9046        }
9047    }
9048}
9049#[repr(C)]
9050#[derive(Debug, Copy, Clone)]
9051pub struct BNObjectDestructionCallbacks {
9052    pub context: *mut ::std::os::raw::c_void,
9053    #[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."]
9054    pub destructBinaryView: ::std::option::Option<
9055        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, view: *mut BNBinaryView),
9056    >,
9057    pub destructFileMetadata: ::std::option::Option<
9058        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, file: *mut BNFileMetadata),
9059    >,
9060    pub destructFunction: ::std::option::Option<
9061        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, func: *mut BNFunction),
9062    >,
9063}
9064#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9065const _: () = {
9066    ["Size of BNObjectDestructionCallbacks"]
9067        [::std::mem::size_of::<BNObjectDestructionCallbacks>() - 32usize];
9068    ["Alignment of BNObjectDestructionCallbacks"]
9069        [::std::mem::align_of::<BNObjectDestructionCallbacks>() - 8usize];
9070    ["Offset of field: BNObjectDestructionCallbacks::context"]
9071        [::std::mem::offset_of!(BNObjectDestructionCallbacks, context) - 0usize];
9072    ["Offset of field: BNObjectDestructionCallbacks::destructBinaryView"]
9073        [::std::mem::offset_of!(BNObjectDestructionCallbacks, destructBinaryView) - 8usize];
9074    ["Offset of field: BNObjectDestructionCallbacks::destructFileMetadata"]
9075        [::std::mem::offset_of!(BNObjectDestructionCallbacks, destructFileMetadata) - 16usize];
9076    ["Offset of field: BNObjectDestructionCallbacks::destructFunction"]
9077        [::std::mem::offset_of!(BNObjectDestructionCallbacks, destructFunction) - 24usize];
9078};
9079impl Default for BNObjectDestructionCallbacks {
9080    fn default() -> Self {
9081        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9082        unsafe {
9083            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9084            s.assume_init()
9085        }
9086    }
9087}
9088#[repr(C)]
9089#[derive(Debug, Copy, Clone)]
9090pub struct BNTypeContext {
9091    pub type_: *mut BNType,
9092    pub offset: usize,
9093}
9094#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9095const _: () = {
9096    ["Size of BNTypeContext"][::std::mem::size_of::<BNTypeContext>() - 16usize];
9097    ["Alignment of BNTypeContext"][::std::mem::align_of::<BNTypeContext>() - 8usize];
9098    ["Offset of field: BNTypeContext::type_"]
9099        [::std::mem::offset_of!(BNTypeContext, type_) - 0usize];
9100    ["Offset of field: BNTypeContext::offset"]
9101        [::std::mem::offset_of!(BNTypeContext, offset) - 8usize];
9102};
9103impl Default for BNTypeContext {
9104    fn default() -> Self {
9105        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9106        unsafe {
9107            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9108            s.assume_init()
9109        }
9110    }
9111}
9112#[repr(C)]
9113#[derive(Debug, Copy, Clone)]
9114pub struct BNCustomDataRenderer {
9115    pub context: *mut ::std::os::raw::c_void,
9116    pub freeObject: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
9117    pub isValidForData: ::std::option::Option<
9118        unsafe extern "C" fn(
9119            ctxt: *mut ::std::os::raw::c_void,
9120            view: *mut BNBinaryView,
9121            addr: u64,
9122            type_: *mut BNType,
9123            typeCtx: *mut BNTypeContext,
9124            ctxCount: usize,
9125        ) -> bool,
9126    >,
9127    pub getLinesForData: ::std::option::Option<
9128        unsafe extern "C" fn(
9129            ctxt: *mut ::std::os::raw::c_void,
9130            view: *mut BNBinaryView,
9131            addr: u64,
9132            type_: *mut BNType,
9133            prefix: *const BNInstructionTextToken,
9134            prefixCount: usize,
9135            width: usize,
9136            count: *mut usize,
9137            typeCtx: *mut BNTypeContext,
9138            ctxCount: usize,
9139            language: *const ::std::os::raw::c_char,
9140        ) -> *mut BNDisassemblyTextLine,
9141    >,
9142    pub freeLines: ::std::option::Option<
9143        unsafe extern "C" fn(
9144            ctx: *mut ::std::os::raw::c_void,
9145            lines: *mut BNDisassemblyTextLine,
9146            count: usize,
9147        ),
9148    >,
9149}
9150#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9151const _: () = {
9152    ["Size of BNCustomDataRenderer"][::std::mem::size_of::<BNCustomDataRenderer>() - 40usize];
9153    ["Alignment of BNCustomDataRenderer"][::std::mem::align_of::<BNCustomDataRenderer>() - 8usize];
9154    ["Offset of field: BNCustomDataRenderer::context"]
9155        [::std::mem::offset_of!(BNCustomDataRenderer, context) - 0usize];
9156    ["Offset of field: BNCustomDataRenderer::freeObject"]
9157        [::std::mem::offset_of!(BNCustomDataRenderer, freeObject) - 8usize];
9158    ["Offset of field: BNCustomDataRenderer::isValidForData"]
9159        [::std::mem::offset_of!(BNCustomDataRenderer, isValidForData) - 16usize];
9160    ["Offset of field: BNCustomDataRenderer::getLinesForData"]
9161        [::std::mem::offset_of!(BNCustomDataRenderer, getLinesForData) - 24usize];
9162    ["Offset of field: BNCustomDataRenderer::freeLines"]
9163        [::std::mem::offset_of!(BNCustomDataRenderer, freeLines) - 32usize];
9164};
9165impl Default for BNCustomDataRenderer {
9166    fn default() -> Self {
9167        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9168        unsafe {
9169            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9170            s.assume_init()
9171        }
9172    }
9173}
9174#[repr(u8)]
9175#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9176pub enum BNSectionSemantics {
9177    DefaultSectionSemantics = 0,
9178    ReadOnlyCodeSectionSemantics = 1,
9179    ReadOnlyDataSectionSemantics = 2,
9180    ReadWriteDataSectionSemantics = 3,
9181    ExternalSectionSemantics = 4,
9182}
9183#[repr(C)]
9184#[derive(Debug, Default, Copy, Clone)]
9185pub struct BNAddressRange {
9186    pub start: u64,
9187    pub end: u64,
9188}
9189#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9190const _: () = {
9191    ["Size of BNAddressRange"][::std::mem::size_of::<BNAddressRange>() - 16usize];
9192    ["Alignment of BNAddressRange"][::std::mem::align_of::<BNAddressRange>() - 8usize];
9193    ["Offset of field: BNAddressRange::start"]
9194        [::std::mem::offset_of!(BNAddressRange, start) - 0usize];
9195    ["Offset of field: BNAddressRange::end"][::std::mem::offset_of!(BNAddressRange, end) - 8usize];
9196};
9197#[repr(C)]
9198#[derive(Debug, Copy, Clone)]
9199pub struct BNSystemCallInfo {
9200    pub number: u32,
9201    pub name: BNQualifiedName,
9202    pub type_: *mut BNType,
9203}
9204#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9205const _: () = {
9206    ["Size of BNSystemCallInfo"][::std::mem::size_of::<BNSystemCallInfo>() - 40usize];
9207    ["Alignment of BNSystemCallInfo"][::std::mem::align_of::<BNSystemCallInfo>() - 8usize];
9208    ["Offset of field: BNSystemCallInfo::number"]
9209        [::std::mem::offset_of!(BNSystemCallInfo, number) - 0usize];
9210    ["Offset of field: BNSystemCallInfo::name"]
9211        [::std::mem::offset_of!(BNSystemCallInfo, name) - 8usize];
9212    ["Offset of field: BNSystemCallInfo::type_"]
9213        [::std::mem::offset_of!(BNSystemCallInfo, type_) - 32usize];
9214};
9215impl Default for BNSystemCallInfo {
9216    fn default() -> Self {
9217        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9218        unsafe {
9219            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9220            s.assume_init()
9221        }
9222    }
9223}
9224#[repr(u8)]
9225#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9226pub enum BNILBranchDependence {
9227    NotBranchDependent = 0,
9228    TrueBranchDependent = 1,
9229    FalseBranchDependent = 2,
9230}
9231#[repr(C)]
9232#[derive(Debug, Copy, Clone)]
9233pub struct BNILBranchInstructionAndDependence {
9234    pub branch: usize,
9235    pub dependence: BNILBranchDependence,
9236}
9237#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9238const _: () = {
9239    ["Size of BNILBranchInstructionAndDependence"]
9240        [::std::mem::size_of::<BNILBranchInstructionAndDependence>() - 16usize];
9241    ["Alignment of BNILBranchInstructionAndDependence"]
9242        [::std::mem::align_of::<BNILBranchInstructionAndDependence>() - 8usize];
9243    ["Offset of field: BNILBranchInstructionAndDependence::branch"]
9244        [::std::mem::offset_of!(BNILBranchInstructionAndDependence, branch) - 0usize];
9245    ["Offset of field: BNILBranchInstructionAndDependence::dependence"]
9246        [::std::mem::offset_of!(BNILBranchInstructionAndDependence, dependence) - 8usize];
9247};
9248impl Default for BNILBranchInstructionAndDependence {
9249    fn default() -> Self {
9250        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9251        unsafe {
9252            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9253            s.assume_init()
9254        }
9255    }
9256}
9257#[repr(C)]
9258#[derive(Debug, Copy, Clone)]
9259pub struct BNPerformanceInfo {
9260    pub name: *mut ::std::os::raw::c_char,
9261    pub seconds: f64,
9262}
9263#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9264const _: () = {
9265    ["Size of BNPerformanceInfo"][::std::mem::size_of::<BNPerformanceInfo>() - 16usize];
9266    ["Alignment of BNPerformanceInfo"][::std::mem::align_of::<BNPerformanceInfo>() - 8usize];
9267    ["Offset of field: BNPerformanceInfo::name"]
9268        [::std::mem::offset_of!(BNPerformanceInfo, name) - 0usize];
9269    ["Offset of field: BNPerformanceInfo::seconds"]
9270        [::std::mem::offset_of!(BNPerformanceInfo, seconds) - 8usize];
9271};
9272impl Default for BNPerformanceInfo {
9273    fn default() -> Self {
9274        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9275        unsafe {
9276            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9277            s.assume_init()
9278        }
9279    }
9280}
9281#[repr(C)]
9282#[derive(Debug, Copy, Clone)]
9283pub struct BNMemoryUsageInfo {
9284    pub name: *mut ::std::os::raw::c_char,
9285    pub value: u64,
9286}
9287#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9288const _: () = {
9289    ["Size of BNMemoryUsageInfo"][::std::mem::size_of::<BNMemoryUsageInfo>() - 16usize];
9290    ["Alignment of BNMemoryUsageInfo"][::std::mem::align_of::<BNMemoryUsageInfo>() - 8usize];
9291    ["Offset of field: BNMemoryUsageInfo::name"]
9292        [::std::mem::offset_of!(BNMemoryUsageInfo, name) - 0usize];
9293    ["Offset of field: BNMemoryUsageInfo::value"]
9294        [::std::mem::offset_of!(BNMemoryUsageInfo, value) - 8usize];
9295};
9296impl Default for BNMemoryUsageInfo {
9297    fn default() -> Self {
9298        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9299        unsafe {
9300            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9301            s.assume_init()
9302        }
9303    }
9304}
9305#[repr(u8)]
9306#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9307pub enum BNMetadataType {
9308    InvalidDataType = 0,
9309    BooleanDataType = 1,
9310    StringDataType = 2,
9311    UnsignedIntegerDataType = 3,
9312    SignedIntegerDataType = 4,
9313    DoubleDataType = 5,
9314    RawDataType = 6,
9315    KeyValueDataType = 7,
9316    ArrayDataType = 8,
9317}
9318#[repr(C)]
9319#[derive(Debug, Default, Copy, Clone)]
9320pub struct BNRegisterStackAdjustment {
9321    pub regStack: u32,
9322    pub adjustment: i32,
9323    pub confidence: u8,
9324}
9325#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9326const _: () = {
9327    ["Size of BNRegisterStackAdjustment"]
9328        [::std::mem::size_of::<BNRegisterStackAdjustment>() - 12usize];
9329    ["Alignment of BNRegisterStackAdjustment"]
9330        [::std::mem::align_of::<BNRegisterStackAdjustment>() - 4usize];
9331    ["Offset of field: BNRegisterStackAdjustment::regStack"]
9332        [::std::mem::offset_of!(BNRegisterStackAdjustment, regStack) - 0usize];
9333    ["Offset of field: BNRegisterStackAdjustment::adjustment"]
9334        [::std::mem::offset_of!(BNRegisterStackAdjustment, adjustment) - 4usize];
9335    ["Offset of field: BNRegisterStackAdjustment::confidence"]
9336        [::std::mem::offset_of!(BNRegisterStackAdjustment, confidence) - 8usize];
9337};
9338#[repr(u8)]
9339#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9340pub enum BNReportType {
9341    PlainTextReportType = 0,
9342    MarkdownReportType = 1,
9343    HTMLReportType = 2,
9344    FlowGraphReportType = 3,
9345}
9346#[repr(C)]
9347#[derive(Debug, Copy, Clone)]
9348pub struct BNCustomFlowGraph {
9349    pub context: *mut ::std::os::raw::c_void,
9350    pub prepareForLayout:
9351        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
9352    pub populateNodes:
9353        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
9354    pub completeLayout:
9355        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
9356    pub update: ::std::option::Option<
9357        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> *mut BNFlowGraph,
9358    >,
9359    pub freeObject: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
9360    pub externalRefTaken:
9361        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
9362    pub externalRefReleased:
9363        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
9364}
9365#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9366const _: () = {
9367    ["Size of BNCustomFlowGraph"][::std::mem::size_of::<BNCustomFlowGraph>() - 64usize];
9368    ["Alignment of BNCustomFlowGraph"][::std::mem::align_of::<BNCustomFlowGraph>() - 8usize];
9369    ["Offset of field: BNCustomFlowGraph::context"]
9370        [::std::mem::offset_of!(BNCustomFlowGraph, context) - 0usize];
9371    ["Offset of field: BNCustomFlowGraph::prepareForLayout"]
9372        [::std::mem::offset_of!(BNCustomFlowGraph, prepareForLayout) - 8usize];
9373    ["Offset of field: BNCustomFlowGraph::populateNodes"]
9374        [::std::mem::offset_of!(BNCustomFlowGraph, populateNodes) - 16usize];
9375    ["Offset of field: BNCustomFlowGraph::completeLayout"]
9376        [::std::mem::offset_of!(BNCustomFlowGraph, completeLayout) - 24usize];
9377    ["Offset of field: BNCustomFlowGraph::update"]
9378        [::std::mem::offset_of!(BNCustomFlowGraph, update) - 32usize];
9379    ["Offset of field: BNCustomFlowGraph::freeObject"]
9380        [::std::mem::offset_of!(BNCustomFlowGraph, freeObject) - 40usize];
9381    ["Offset of field: BNCustomFlowGraph::externalRefTaken"]
9382        [::std::mem::offset_of!(BNCustomFlowGraph, externalRefTaken) - 48usize];
9383    ["Offset of field: BNCustomFlowGraph::externalRefReleased"]
9384        [::std::mem::offset_of!(BNCustomFlowGraph, externalRefReleased) - 56usize];
9385};
9386impl Default for BNCustomFlowGraph {
9387    fn default() -> Self {
9388        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9389        unsafe {
9390            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9391            s.assume_init()
9392        }
9393    }
9394}
9395#[repr(C)]
9396#[derive(Debug, Copy, Clone)]
9397pub struct BNCustomFlowGraphLayout {
9398    pub context: *mut ::std::os::raw::c_void,
9399    pub layout: ::std::option::Option<
9400        unsafe extern "C" fn(
9401            ctxt: *mut ::std::os::raw::c_void,
9402            graph: *mut BNFlowGraph,
9403            nodes: *mut *mut BNFlowGraphNode,
9404            nodeCount: usize,
9405        ) -> bool,
9406    >,
9407}
9408#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9409const _: () = {
9410    ["Size of BNCustomFlowGraphLayout"][::std::mem::size_of::<BNCustomFlowGraphLayout>() - 16usize];
9411    ["Alignment of BNCustomFlowGraphLayout"]
9412        [::std::mem::align_of::<BNCustomFlowGraphLayout>() - 8usize];
9413    ["Offset of field: BNCustomFlowGraphLayout::context"]
9414        [::std::mem::offset_of!(BNCustomFlowGraphLayout, context) - 0usize];
9415    ["Offset of field: BNCustomFlowGraphLayout::layout"]
9416        [::std::mem::offset_of!(BNCustomFlowGraphLayout, layout) - 8usize];
9417};
9418impl Default for BNCustomFlowGraphLayout {
9419    fn default() -> Self {
9420        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9421        unsafe {
9422            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9423            s.assume_init()
9424        }
9425    }
9426}
9427#[repr(C)]
9428#[derive(Debug, Default, Copy, Clone)]
9429pub struct BNRange {
9430    pub start: u64,
9431    pub end: u64,
9432}
9433#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9434const _: () = {
9435    ["Size of BNRange"][::std::mem::size_of::<BNRange>() - 16usize];
9436    ["Alignment of BNRange"][::std::mem::align_of::<BNRange>() - 8usize];
9437    ["Offset of field: BNRange::start"][::std::mem::offset_of!(BNRange, start) - 0usize];
9438    ["Offset of field: BNRange::end"][::std::mem::offset_of!(BNRange, end) - 8usize];
9439};
9440#[repr(u8)]
9441#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9442pub enum BNAnalysisSkipReason {
9443    NoSkipReason = 0,
9444    AlwaysSkipReason = 1,
9445    ExceedFunctionSizeSkipReason = 2,
9446    ExceedFunctionAnalysisTimeSkipReason = 3,
9447    ExceedFunctionUpdateCountSkipReason = 4,
9448    NewAutoFunctionAnalysisSuppressedReason = 5,
9449    BasicAnalysisSkipReason = 6,
9450    IntermediateAnalysisSkipReason = 7,
9451    AnalysisPipelineSuspendedReason = 8,
9452}
9453#[repr(u8)]
9454#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9455pub enum BNSettingsScope {
9456    SettingsInvalidScope = 0,
9457    SettingsAutoScope = 1,
9458    SettingsDefaultScope = 2,
9459    SettingsUserScope = 4,
9460    SettingsProjectScope = 8,
9461    SettingsResourceScope = 16,
9462}
9463#[repr(u8)]
9464#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9465pub enum BNLinearViewObjectIdentifierType {
9466    SingleLinearViewObject = 0,
9467    AddressLinearViewObject = 1,
9468    AddressRangeLinearViewObject = 2,
9469}
9470#[repr(C)]
9471#[derive(Debug, Copy, Clone)]
9472pub struct BNLinearViewObjectIdentifier {
9473    pub name: *mut ::std::os::raw::c_char,
9474    pub type_: BNLinearViewObjectIdentifierType,
9475    pub start: u64,
9476    pub end: u64,
9477}
9478#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9479const _: () = {
9480    ["Size of BNLinearViewObjectIdentifier"]
9481        [::std::mem::size_of::<BNLinearViewObjectIdentifier>() - 32usize];
9482    ["Alignment of BNLinearViewObjectIdentifier"]
9483        [::std::mem::align_of::<BNLinearViewObjectIdentifier>() - 8usize];
9484    ["Offset of field: BNLinearViewObjectIdentifier::name"]
9485        [::std::mem::offset_of!(BNLinearViewObjectIdentifier, name) - 0usize];
9486    ["Offset of field: BNLinearViewObjectIdentifier::type_"]
9487        [::std::mem::offset_of!(BNLinearViewObjectIdentifier, type_) - 8usize];
9488    ["Offset of field: BNLinearViewObjectIdentifier::start"]
9489        [::std::mem::offset_of!(BNLinearViewObjectIdentifier, start) - 16usize];
9490    ["Offset of field: BNLinearViewObjectIdentifier::end"]
9491        [::std::mem::offset_of!(BNLinearViewObjectIdentifier, end) - 24usize];
9492};
9493impl Default for BNLinearViewObjectIdentifier {
9494    fn default() -> Self {
9495        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9496        unsafe {
9497            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9498            s.assume_init()
9499        }
9500    }
9501}
9502#[repr(u8)]
9503#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9504pub enum BNBinaryViewEventType {
9505    BinaryViewFinalizationEvent = 0,
9506    BinaryViewInitialAnalysisCompletionEvent = 1,
9507}
9508#[repr(u8)]
9509#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9510pub enum BNDeadStoreElimination {
9511    DefaultDeadStoreElimination = 0,
9512    PreventDeadStoreElimination = 1,
9513    AllowDeadStoreElimination = 2,
9514}
9515#[repr(u8)]
9516#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9517pub enum BNExprFolding {
9518    DefaultExprFolding = 0,
9519    PreventExprFolding = 1,
9520    AllowExprFolding = 2,
9521}
9522#[repr(u8)]
9523#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9524pub enum BNEarlyReturn {
9525    DefaultEarlyReturn = 0,
9526    PreventEarlyReturn = 1,
9527    SmallestSideEarlyReturn = 2,
9528    TrueSideEarlyReturn = 3,
9529    FalseSideEarlyReturn = 4,
9530}
9531#[repr(u8)]
9532#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9533pub enum BNSwitchRecovery {
9534    DefaultSwitchRecovery = 0,
9535    PreventSwitchRecovery = 1,
9536    AllowSwitchRecovery = 2,
9537}
9538#[repr(C)]
9539#[derive(Debug, Copy, Clone)]
9540pub struct BNDebugFunctionInfo {
9541    pub shortName: *mut ::std::os::raw::c_char,
9542    pub fullName: *mut ::std::os::raw::c_char,
9543    pub rawName: *mut ::std::os::raw::c_char,
9544    pub address: u64,
9545    pub type_: *mut BNType,
9546    pub platform: *mut BNPlatform,
9547    pub components: *mut *mut ::std::os::raw::c_char,
9548    pub componentN: usize,
9549    pub localVariables: *mut BNVariableNameAndType,
9550    pub localVariableN: usize,
9551}
9552#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9553const _: () = {
9554    ["Size of BNDebugFunctionInfo"][::std::mem::size_of::<BNDebugFunctionInfo>() - 80usize];
9555    ["Alignment of BNDebugFunctionInfo"][::std::mem::align_of::<BNDebugFunctionInfo>() - 8usize];
9556    ["Offset of field: BNDebugFunctionInfo::shortName"]
9557        [::std::mem::offset_of!(BNDebugFunctionInfo, shortName) - 0usize];
9558    ["Offset of field: BNDebugFunctionInfo::fullName"]
9559        [::std::mem::offset_of!(BNDebugFunctionInfo, fullName) - 8usize];
9560    ["Offset of field: BNDebugFunctionInfo::rawName"]
9561        [::std::mem::offset_of!(BNDebugFunctionInfo, rawName) - 16usize];
9562    ["Offset of field: BNDebugFunctionInfo::address"]
9563        [::std::mem::offset_of!(BNDebugFunctionInfo, address) - 24usize];
9564    ["Offset of field: BNDebugFunctionInfo::type_"]
9565        [::std::mem::offset_of!(BNDebugFunctionInfo, type_) - 32usize];
9566    ["Offset of field: BNDebugFunctionInfo::platform"]
9567        [::std::mem::offset_of!(BNDebugFunctionInfo, platform) - 40usize];
9568    ["Offset of field: BNDebugFunctionInfo::components"]
9569        [::std::mem::offset_of!(BNDebugFunctionInfo, components) - 48usize];
9570    ["Offset of field: BNDebugFunctionInfo::componentN"]
9571        [::std::mem::offset_of!(BNDebugFunctionInfo, componentN) - 56usize];
9572    ["Offset of field: BNDebugFunctionInfo::localVariables"]
9573        [::std::mem::offset_of!(BNDebugFunctionInfo, localVariables) - 64usize];
9574    ["Offset of field: BNDebugFunctionInfo::localVariableN"]
9575        [::std::mem::offset_of!(BNDebugFunctionInfo, localVariableN) - 72usize];
9576};
9577impl Default for BNDebugFunctionInfo {
9578    fn default() -> Self {
9579        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9580        unsafe {
9581            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9582            s.assume_init()
9583        }
9584    }
9585}
9586#[repr(C)]
9587#[derive(Debug, Copy, Clone)]
9588pub struct BNSecretsProviderCallbacks {
9589    pub context: *mut ::std::os::raw::c_void,
9590    pub hasData: ::std::option::Option<
9591        unsafe extern "C" fn(
9592            ctxt: *mut ::std::os::raw::c_void,
9593            key: *const ::std::os::raw::c_char,
9594        ) -> bool,
9595    >,
9596    pub getData: ::std::option::Option<
9597        unsafe extern "C" fn(
9598            ctxt: *mut ::std::os::raw::c_void,
9599            key: *const ::std::os::raw::c_char,
9600        ) -> *mut ::std::os::raw::c_char,
9601    >,
9602    pub storeData: ::std::option::Option<
9603        unsafe extern "C" fn(
9604            ctxt: *mut ::std::os::raw::c_void,
9605            key: *const ::std::os::raw::c_char,
9606            data: *const ::std::os::raw::c_char,
9607        ) -> bool,
9608    >,
9609    pub deleteData: ::std::option::Option<
9610        unsafe extern "C" fn(
9611            ctxt: *mut ::std::os::raw::c_void,
9612            key: *const ::std::os::raw::c_char,
9613        ) -> bool,
9614    >,
9615}
9616#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9617const _: () = {
9618    ["Size of BNSecretsProviderCallbacks"]
9619        [::std::mem::size_of::<BNSecretsProviderCallbacks>() - 40usize];
9620    ["Alignment of BNSecretsProviderCallbacks"]
9621        [::std::mem::align_of::<BNSecretsProviderCallbacks>() - 8usize];
9622    ["Offset of field: BNSecretsProviderCallbacks::context"]
9623        [::std::mem::offset_of!(BNSecretsProviderCallbacks, context) - 0usize];
9624    ["Offset of field: BNSecretsProviderCallbacks::hasData"]
9625        [::std::mem::offset_of!(BNSecretsProviderCallbacks, hasData) - 8usize];
9626    ["Offset of field: BNSecretsProviderCallbacks::getData"]
9627        [::std::mem::offset_of!(BNSecretsProviderCallbacks, getData) - 16usize];
9628    ["Offset of field: BNSecretsProviderCallbacks::storeData"]
9629        [::std::mem::offset_of!(BNSecretsProviderCallbacks, storeData) - 24usize];
9630    ["Offset of field: BNSecretsProviderCallbacks::deleteData"]
9631        [::std::mem::offset_of!(BNSecretsProviderCallbacks, deleteData) - 32usize];
9632};
9633impl Default for BNSecretsProviderCallbacks {
9634    fn default() -> Self {
9635        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9636        unsafe {
9637            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9638            s.assume_init()
9639        }
9640    }
9641}
9642#[repr(C)]
9643#[derive(Debug, Copy, Clone)]
9644pub struct BNMergedVariable {
9645    pub target: BNVariable,
9646    pub sources: *mut BNVariable,
9647    pub sourceCount: usize,
9648}
9649#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9650const _: () = {
9651    ["Size of BNMergedVariable"][::std::mem::size_of::<BNMergedVariable>() - 32usize];
9652    ["Alignment of BNMergedVariable"][::std::mem::align_of::<BNMergedVariable>() - 8usize];
9653    ["Offset of field: BNMergedVariable::target"]
9654        [::std::mem::offset_of!(BNMergedVariable, target) - 0usize];
9655    ["Offset of field: BNMergedVariable::sources"]
9656        [::std::mem::offset_of!(BNMergedVariable, sources) - 16usize];
9657    ["Offset of field: BNMergedVariable::sourceCount"]
9658        [::std::mem::offset_of!(BNMergedVariable, sourceCount) - 24usize];
9659};
9660impl Default for BNMergedVariable {
9661    fn default() -> Self {
9662        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9663        unsafe {
9664            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9665            s.assume_init()
9666        }
9667    }
9668}
9669#[repr(C)]
9670#[derive(Debug, Copy, Clone)]
9671pub struct BNEnterpriseServerCallbacks {
9672    pub context: *mut ::std::os::raw::c_void,
9673    pub licenseStatusChanged: ::std::option::Option<
9674        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, stillValid: bool),
9675    >,
9676}
9677#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9678const _: () = {
9679    ["Size of BNEnterpriseServerCallbacks"]
9680        [::std::mem::size_of::<BNEnterpriseServerCallbacks>() - 16usize];
9681    ["Alignment of BNEnterpriseServerCallbacks"]
9682        [::std::mem::align_of::<BNEnterpriseServerCallbacks>() - 8usize];
9683    ["Offset of field: BNEnterpriseServerCallbacks::context"]
9684        [::std::mem::offset_of!(BNEnterpriseServerCallbacks, context) - 0usize];
9685    ["Offset of field: BNEnterpriseServerCallbacks::licenseStatusChanged"]
9686        [::std::mem::offset_of!(BNEnterpriseServerCallbacks, licenseStatusChanged) - 8usize];
9687};
9688impl Default for BNEnterpriseServerCallbacks {
9689    fn default() -> Self {
9690        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9691        unsafe {
9692            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9693            s.assume_init()
9694        }
9695    }
9696}
9697#[repr(C)]
9698#[derive(Debug, Copy, Clone)]
9699pub struct BNTypeArchiveNotification {
9700    pub context: *mut ::std::os::raw::c_void,
9701    pub typeAdded: ::std::option::Option<
9702        unsafe extern "C" fn(
9703            ctxt: *mut ::std::os::raw::c_void,
9704            archive: *mut BNTypeArchive,
9705            id: *const ::std::os::raw::c_char,
9706            definition: *mut BNType,
9707        ),
9708    >,
9709    pub typeUpdated: ::std::option::Option<
9710        unsafe extern "C" fn(
9711            ctxt: *mut ::std::os::raw::c_void,
9712            archive: *mut BNTypeArchive,
9713            id: *const ::std::os::raw::c_char,
9714            oldDefinition: *mut BNType,
9715            newDefinition: *mut BNType,
9716        ),
9717    >,
9718    pub typeRenamed: ::std::option::Option<
9719        unsafe extern "C" fn(
9720            ctxt: *mut ::std::os::raw::c_void,
9721            archive: *mut BNTypeArchive,
9722            id: *const ::std::os::raw::c_char,
9723            oldName: *const BNQualifiedName,
9724            newName: *const BNQualifiedName,
9725        ),
9726    >,
9727    pub typeDeleted: ::std::option::Option<
9728        unsafe extern "C" fn(
9729            ctxt: *mut ::std::os::raw::c_void,
9730            archive: *mut BNTypeArchive,
9731            id: *const ::std::os::raw::c_char,
9732            definition: *mut BNType,
9733        ),
9734    >,
9735}
9736#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9737const _: () = {
9738    ["Size of BNTypeArchiveNotification"]
9739        [::std::mem::size_of::<BNTypeArchiveNotification>() - 40usize];
9740    ["Alignment of BNTypeArchiveNotification"]
9741        [::std::mem::align_of::<BNTypeArchiveNotification>() - 8usize];
9742    ["Offset of field: BNTypeArchiveNotification::context"]
9743        [::std::mem::offset_of!(BNTypeArchiveNotification, context) - 0usize];
9744    ["Offset of field: BNTypeArchiveNotification::typeAdded"]
9745        [::std::mem::offset_of!(BNTypeArchiveNotification, typeAdded) - 8usize];
9746    ["Offset of field: BNTypeArchiveNotification::typeUpdated"]
9747        [::std::mem::offset_of!(BNTypeArchiveNotification, typeUpdated) - 16usize];
9748    ["Offset of field: BNTypeArchiveNotification::typeRenamed"]
9749        [::std::mem::offset_of!(BNTypeArchiveNotification, typeRenamed) - 24usize];
9750    ["Offset of field: BNTypeArchiveNotification::typeDeleted"]
9751        [::std::mem::offset_of!(BNTypeArchiveNotification, typeDeleted) - 32usize];
9752};
9753impl Default for BNTypeArchiveNotification {
9754    fn default() -> Self {
9755        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9756        unsafe {
9757            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9758            s.assume_init()
9759        }
9760    }
9761}
9762#[repr(u8)]
9763#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9764pub enum BNTypeContainerType {
9765    AnalysisTypeContainerType = 0,
9766    AnalysisAutoTypeContainerType = 1,
9767    AnalysisUserTypeContainerType = 2,
9768    TypeLibraryTypeContainerType = 3,
9769    TypeArchiveTypeContainerType = 4,
9770    DebugInfoTypeContainerType = 5,
9771    PlatformTypeContainerType = 6,
9772    EmptyTypeContainerType = 7,
9773    OtherTypeContainerType = 8,
9774}
9775#[repr(u8)]
9776#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9777pub enum BNSyncStatus {
9778    NotSyncedSyncStatus = 0,
9779    NoChangesSyncStatus = 1,
9780    UnknownSyncStatus = 2,
9781    CanPushSyncStatus = 3,
9782    CanPullSyncStatus = 4,
9783    CanPushAndPullSyncStatus = 5,
9784    ConflictSyncStatus = 6,
9785}
9786#[repr(u8)]
9787#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9788pub enum BNBaseAddressDetectionPOISetting {
9789    POIAnalysisStringsOnly = 0,
9790    POIAnalysisFunctionsOnly = 1,
9791    POIAnalysisAll = 2,
9792}
9793#[repr(u8)]
9794#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9795pub enum BNBaseAddressDetectionPOIType {
9796    POIString = 0,
9797    POIFunction = 1,
9798    POIDataVariable = 2,
9799    POIFileStart = 3,
9800    POIFileEnd = 4,
9801}
9802#[repr(u8)]
9803#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9804pub enum BNBaseAddressDetectionConfidence {
9805    NoConfidence = 0,
9806    LowConfidence = 1,
9807    HighConfidence = 2,
9808}
9809#[repr(C)]
9810#[derive(Debug, Copy, Clone)]
9811pub struct BNBaseAddressDetectionSettings {
9812    pub Architecture: *const ::std::os::raw::c_char,
9813    pub Analysis: *const ::std::os::raw::c_char,
9814    pub MinStrlen: u32,
9815    pub Alignment: u32,
9816    pub LowerBoundary: u64,
9817    pub UpperBoundary: u64,
9818    pub POIAnalysis: BNBaseAddressDetectionPOISetting,
9819    pub MaxPointersPerCluster: u32,
9820}
9821#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9822const _: () = {
9823    ["Size of BNBaseAddressDetectionSettings"]
9824        [::std::mem::size_of::<BNBaseAddressDetectionSettings>() - 48usize];
9825    ["Alignment of BNBaseAddressDetectionSettings"]
9826        [::std::mem::align_of::<BNBaseAddressDetectionSettings>() - 8usize];
9827    ["Offset of field: BNBaseAddressDetectionSettings::Architecture"]
9828        [::std::mem::offset_of!(BNBaseAddressDetectionSettings, Architecture) - 0usize];
9829    ["Offset of field: BNBaseAddressDetectionSettings::Analysis"]
9830        [::std::mem::offset_of!(BNBaseAddressDetectionSettings, Analysis) - 8usize];
9831    ["Offset of field: BNBaseAddressDetectionSettings::MinStrlen"]
9832        [::std::mem::offset_of!(BNBaseAddressDetectionSettings, MinStrlen) - 16usize];
9833    ["Offset of field: BNBaseAddressDetectionSettings::Alignment"]
9834        [::std::mem::offset_of!(BNBaseAddressDetectionSettings, Alignment) - 20usize];
9835    ["Offset of field: BNBaseAddressDetectionSettings::LowerBoundary"]
9836        [::std::mem::offset_of!(BNBaseAddressDetectionSettings, LowerBoundary) - 24usize];
9837    ["Offset of field: BNBaseAddressDetectionSettings::UpperBoundary"]
9838        [::std::mem::offset_of!(BNBaseAddressDetectionSettings, UpperBoundary) - 32usize];
9839    ["Offset of field: BNBaseAddressDetectionSettings::POIAnalysis"]
9840        [::std::mem::offset_of!(BNBaseAddressDetectionSettings, POIAnalysis) - 40usize];
9841    ["Offset of field: BNBaseAddressDetectionSettings::MaxPointersPerCluster"]
9842        [::std::mem::offset_of!(BNBaseAddressDetectionSettings, MaxPointersPerCluster) - 44usize];
9843};
9844impl Default for BNBaseAddressDetectionSettings {
9845    fn default() -> Self {
9846        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9847        unsafe {
9848            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9849            s.assume_init()
9850        }
9851    }
9852}
9853#[repr(C)]
9854#[derive(Debug, Copy, Clone)]
9855pub struct BNBaseAddressDetectionReason {
9856    pub Pointer: u64,
9857    pub POIOffset: u64,
9858    pub POIType: BNBaseAddressDetectionPOIType,
9859}
9860#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9861const _: () = {
9862    ["Size of BNBaseAddressDetectionReason"]
9863        [::std::mem::size_of::<BNBaseAddressDetectionReason>() - 24usize];
9864    ["Alignment of BNBaseAddressDetectionReason"]
9865        [::std::mem::align_of::<BNBaseAddressDetectionReason>() - 8usize];
9866    ["Offset of field: BNBaseAddressDetectionReason::Pointer"]
9867        [::std::mem::offset_of!(BNBaseAddressDetectionReason, Pointer) - 0usize];
9868    ["Offset of field: BNBaseAddressDetectionReason::POIOffset"]
9869        [::std::mem::offset_of!(BNBaseAddressDetectionReason, POIOffset) - 8usize];
9870    ["Offset of field: BNBaseAddressDetectionReason::POIType"]
9871        [::std::mem::offset_of!(BNBaseAddressDetectionReason, POIType) - 16usize];
9872};
9873impl Default for BNBaseAddressDetectionReason {
9874    fn default() -> Self {
9875        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9876        unsafe {
9877            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9878            s.assume_init()
9879        }
9880    }
9881}
9882#[repr(C)]
9883#[derive(Debug, Default, Copy, Clone)]
9884pub struct BNBaseAddressDetectionScore {
9885    pub Score: usize,
9886    pub BaseAddress: u64,
9887}
9888#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9889const _: () = {
9890    ["Size of BNBaseAddressDetectionScore"]
9891        [::std::mem::size_of::<BNBaseAddressDetectionScore>() - 16usize];
9892    ["Alignment of BNBaseAddressDetectionScore"]
9893        [::std::mem::align_of::<BNBaseAddressDetectionScore>() - 8usize];
9894    ["Offset of field: BNBaseAddressDetectionScore::Score"]
9895        [::std::mem::offset_of!(BNBaseAddressDetectionScore, Score) - 0usize];
9896    ["Offset of field: BNBaseAddressDetectionScore::BaseAddress"]
9897        [::std::mem::offset_of!(BNBaseAddressDetectionScore, BaseAddress) - 8usize];
9898};
9899#[repr(u8)]
9900#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9901pub enum BNCollaborationPermissionLevel {
9902    AdminPermission = 1,
9903    EditPermission = 2,
9904    ViewPermission = 3,
9905}
9906#[repr(u8)]
9907#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9908pub enum BNRemoteFileType {
9909    #[doc = " \"RW\""]
9910    RawDataFileType = 0,
9911    #[doc = " \"BV\""]
9912    BinaryViewAnalysisFileType = 1,
9913    #[doc = " \"TA\""]
9914    TypeArchiveFileType = 2,
9915    #[doc = " Others"]
9916    UnknownFileType = 3,
9917}
9918#[repr(u8)]
9919#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9920pub enum BNMergeConflictDataType {
9921    TextConflictDataType = 0,
9922    JsonConflictDataType = 1,
9923    BinaryConflictDataType = 2,
9924}
9925#[repr(C)]
9926#[derive(Debug, Copy, Clone)]
9927pub struct BNAnalysisMergeConflictSplitterCallbacks {
9928    pub context: *mut ::std::os::raw::c_void,
9929    pub getName: ::std::option::Option<
9930        unsafe extern "C" fn(context: *mut ::std::os::raw::c_void) -> *mut ::std::os::raw::c_char,
9931    >,
9932    pub reset: ::std::option::Option<unsafe extern "C" fn(context: *mut ::std::os::raw::c_void)>,
9933    pub finished: ::std::option::Option<unsafe extern "C" fn(context: *mut ::std::os::raw::c_void)>,
9934    pub canSplit: ::std::option::Option<
9935        unsafe extern "C" fn(
9936            context: *mut ::std::os::raw::c_void,
9937            key: *const ::std::os::raw::c_char,
9938            conflict: *const BNAnalysisMergeConflict,
9939        ) -> bool,
9940    >,
9941    pub split: ::std::option::Option<
9942        unsafe extern "C" fn(
9943            context: *mut ::std::os::raw::c_void,
9944            originalKey: *const ::std::os::raw::c_char,
9945            originalConflict: *const BNAnalysisMergeConflict,
9946            result: *mut BNKeyValueStore,
9947            newKeys: *mut *mut *mut ::std::os::raw::c_char,
9948            newConflicts: *mut *mut *mut BNAnalysisMergeConflict,
9949            newCount: *mut usize,
9950        ) -> bool,
9951    >,
9952    pub freeName: ::std::option::Option<
9953        unsafe extern "C" fn(
9954            context: *mut ::std::os::raw::c_void,
9955            name: *mut ::std::os::raw::c_char,
9956        ),
9957    >,
9958    pub freeKeyList: ::std::option::Option<
9959        unsafe extern "C" fn(
9960            context: *mut ::std::os::raw::c_void,
9961            keyList: *mut *mut ::std::os::raw::c_char,
9962            count: usize,
9963        ),
9964    >,
9965    pub freeConflictList: ::std::option::Option<
9966        unsafe extern "C" fn(
9967            context: *mut ::std::os::raw::c_void,
9968            conflictList: *mut *mut BNAnalysisMergeConflict,
9969            count: usize,
9970        ),
9971    >,
9972}
9973#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9974const _: () = {
9975    ["Size of BNAnalysisMergeConflictSplitterCallbacks"]
9976        [::std::mem::size_of::<BNAnalysisMergeConflictSplitterCallbacks>() - 72usize];
9977    ["Alignment of BNAnalysisMergeConflictSplitterCallbacks"]
9978        [::std::mem::align_of::<BNAnalysisMergeConflictSplitterCallbacks>() - 8usize];
9979    ["Offset of field: BNAnalysisMergeConflictSplitterCallbacks::context"]
9980        [::std::mem::offset_of!(BNAnalysisMergeConflictSplitterCallbacks, context) - 0usize];
9981    ["Offset of field: BNAnalysisMergeConflictSplitterCallbacks::getName"]
9982        [::std::mem::offset_of!(BNAnalysisMergeConflictSplitterCallbacks, getName) - 8usize];
9983    ["Offset of field: BNAnalysisMergeConflictSplitterCallbacks::reset"]
9984        [::std::mem::offset_of!(BNAnalysisMergeConflictSplitterCallbacks, reset) - 16usize];
9985    ["Offset of field: BNAnalysisMergeConflictSplitterCallbacks::finished"]
9986        [::std::mem::offset_of!(BNAnalysisMergeConflictSplitterCallbacks, finished) - 24usize];
9987    ["Offset of field: BNAnalysisMergeConflictSplitterCallbacks::canSplit"]
9988        [::std::mem::offset_of!(BNAnalysisMergeConflictSplitterCallbacks, canSplit) - 32usize];
9989    ["Offset of field: BNAnalysisMergeConflictSplitterCallbacks::split"]
9990        [::std::mem::offset_of!(BNAnalysisMergeConflictSplitterCallbacks, split) - 40usize];
9991    ["Offset of field: BNAnalysisMergeConflictSplitterCallbacks::freeName"]
9992        [::std::mem::offset_of!(BNAnalysisMergeConflictSplitterCallbacks, freeName) - 48usize];
9993    ["Offset of field: BNAnalysisMergeConflictSplitterCallbacks::freeKeyList"]
9994        [::std::mem::offset_of!(BNAnalysisMergeConflictSplitterCallbacks, freeKeyList) - 56usize];
9995    ["Offset of field: BNAnalysisMergeConflictSplitterCallbacks::freeConflictList"][::std::mem::offset_of!(
9996        BNAnalysisMergeConflictSplitterCallbacks,
9997        freeConflictList
9998    ) - 64usize];
9999};
10000impl Default for BNAnalysisMergeConflictSplitterCallbacks {
10001    fn default() -> Self {
10002        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10003        unsafe {
10004            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10005            s.assume_init()
10006        }
10007    }
10008}
10009#[repr(C)]
10010#[derive(Debug, Copy, Clone)]
10011pub struct BNDemanglerCallbacks {
10012    pub context: *mut ::std::os::raw::c_void,
10013    pub isMangledString: ::std::option::Option<
10014        unsafe extern "C" fn(
10015            ctxt: *mut ::std::os::raw::c_void,
10016            name: *const ::std::os::raw::c_char,
10017        ) -> bool,
10018    >,
10019    pub demangle: ::std::option::Option<
10020        unsafe extern "C" fn(
10021            ctxt: *mut ::std::os::raw::c_void,
10022            arch: *mut BNArchitecture,
10023            name: *const ::std::os::raw::c_char,
10024            outType: *mut *mut BNType,
10025            outVarName: *mut BNQualifiedName,
10026            view: *mut BNBinaryView,
10027        ) -> bool,
10028    >,
10029    pub freeVarName: ::std::option::Option<
10030        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, name: *mut BNQualifiedName),
10031    >,
10032}
10033#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10034const _: () = {
10035    ["Size of BNDemanglerCallbacks"][::std::mem::size_of::<BNDemanglerCallbacks>() - 32usize];
10036    ["Alignment of BNDemanglerCallbacks"][::std::mem::align_of::<BNDemanglerCallbacks>() - 8usize];
10037    ["Offset of field: BNDemanglerCallbacks::context"]
10038        [::std::mem::offset_of!(BNDemanglerCallbacks, context) - 0usize];
10039    ["Offset of field: BNDemanglerCallbacks::isMangledString"]
10040        [::std::mem::offset_of!(BNDemanglerCallbacks, isMangledString) - 8usize];
10041    ["Offset of field: BNDemanglerCallbacks::demangle"]
10042        [::std::mem::offset_of!(BNDemanglerCallbacks, demangle) - 16usize];
10043    ["Offset of field: BNDemanglerCallbacks::freeVarName"]
10044        [::std::mem::offset_of!(BNDemanglerCallbacks, freeVarName) - 24usize];
10045};
10046impl Default for BNDemanglerCallbacks {
10047    fn default() -> Self {
10048        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10049        unsafe {
10050            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10051            s.assume_init()
10052        }
10053    }
10054}
10055#[repr(u8)]
10056#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
10057pub enum BNScopeType {
10058    OneLineScopeType = 0,
10059    HasSubScopeScopeType = 1,
10060    BlockScopeType = 2,
10061    SwitchScopeType = 3,
10062    CaseScopeType = 4,
10063}
10064#[repr(u8)]
10065#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
10066pub enum BNBraceRequirement {
10067    OptionalBraces = 0,
10068    BracesNotAllowed = 1,
10069    BracesAlwaysRequired = 2,
10070}
10071#[repr(C)]
10072#[derive(Debug, Default, Copy, Clone)]
10073pub struct BNTokenEmitterExpr {
10074    pub address: u64,
10075    pub sourceOperand: u32,
10076    pub exprIndex: usize,
10077    pub instrIndex: usize,
10078}
10079#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10080const _: () = {
10081    ["Size of BNTokenEmitterExpr"][::std::mem::size_of::<BNTokenEmitterExpr>() - 32usize];
10082    ["Alignment of BNTokenEmitterExpr"][::std::mem::align_of::<BNTokenEmitterExpr>() - 8usize];
10083    ["Offset of field: BNTokenEmitterExpr::address"]
10084        [::std::mem::offset_of!(BNTokenEmitterExpr, address) - 0usize];
10085    ["Offset of field: BNTokenEmitterExpr::sourceOperand"]
10086        [::std::mem::offset_of!(BNTokenEmitterExpr, sourceOperand) - 8usize];
10087    ["Offset of field: BNTokenEmitterExpr::exprIndex"]
10088        [::std::mem::offset_of!(BNTokenEmitterExpr, exprIndex) - 16usize];
10089    ["Offset of field: BNTokenEmitterExpr::instrIndex"]
10090        [::std::mem::offset_of!(BNTokenEmitterExpr, instrIndex) - 24usize];
10091};
10092#[repr(u8)]
10093#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
10094pub enum BNOperatorPrecedence {
10095    TopLevelOperatorPrecedence = 0,
10096    AssignmentOperatorPrecedence = 1,
10097    TernaryOperatorPrecedence = 2,
10098    LogicalOrOperatorPrecedence = 3,
10099    LogicalAndOperatorPrecedence = 4,
10100    BitwiseOrOperatorPrecedence = 5,
10101    BitwiseXorOperatorPrecedence = 6,
10102    BitwiseAndOperatorPrecedence = 7,
10103    EqualityOperatorPrecedence = 8,
10104    CompareOperatorPrecedence = 9,
10105    ShiftOperatorPrecedence = 10,
10106    AddOperatorPrecedence = 11,
10107    SubOperatorPrecedence = 12,
10108    MultiplyOperatorPrecedence = 13,
10109    DivideOperatorPrecedence = 14,
10110    LowUnaryOperatorPrecedence = 15,
10111    UnaryOperatorPrecedence = 16,
10112    HighUnaryOperatorPrecedence = 17,
10113    MemberAndFunctionOperatorPrecedence = 18,
10114    ScopeOperatorPrecedence = 19,
10115}
10116#[repr(u8)]
10117#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
10118pub enum BNSymbolDisplayType {
10119    DisplaySymbolOnly = 0,
10120    AddressOfDataSymbols = 1,
10121    DereferenceNonDataSymbols = 2,
10122}
10123#[repr(u8)]
10124#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
10125pub enum BNSymbolDisplayResult {
10126    NoSymbolAvailable = 0,
10127    DataSymbolResult = 1,
10128    OtherSymbolResult = 2,
10129}
10130#[repr(C)]
10131#[derive(Debug, Copy, Clone)]
10132pub struct BNCustomLanguageRepresentationFunction {
10133    pub context: *mut ::std::os::raw::c_void,
10134    pub freeObject: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
10135    pub externalRefTaken:
10136        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
10137    pub externalRefReleased:
10138        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
10139    pub initTokenEmitter: ::std::option::Option<
10140        unsafe extern "C" fn(
10141            ctxt: *mut ::std::os::raw::c_void,
10142            tokens: *mut BNHighLevelILTokenEmitter,
10143        ),
10144    >,
10145    pub getExprText: ::std::option::Option<
10146        unsafe extern "C" fn(
10147            ctxt: *mut ::std::os::raw::c_void,
10148            il: *mut BNHighLevelILFunction,
10149            exprIndex: usize,
10150            tokens: *mut BNHighLevelILTokenEmitter,
10151            settings: *mut BNDisassemblySettings,
10152            asFullAst: bool,
10153            precedence: BNOperatorPrecedence,
10154            statement: bool,
10155        ),
10156    >,
10157    pub beginLines: ::std::option::Option<
10158        unsafe extern "C" fn(
10159            ctxt: *mut ::std::os::raw::c_void,
10160            il: *mut BNHighLevelILFunction,
10161            exprIndex: usize,
10162            tokens: *mut BNHighLevelILTokenEmitter,
10163        ),
10164    >,
10165    pub endLines: ::std::option::Option<
10166        unsafe extern "C" fn(
10167            ctxt: *mut ::std::os::raw::c_void,
10168            il: *mut BNHighLevelILFunction,
10169            exprIndex: usize,
10170            tokens: *mut BNHighLevelILTokenEmitter,
10171        ),
10172    >,
10173    pub getCommentStartString: ::std::option::Option<
10174        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> *mut ::std::os::raw::c_char,
10175    >,
10176    pub getCommentEndString: ::std::option::Option<
10177        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> *mut ::std::os::raw::c_char,
10178    >,
10179    pub getAnnotationStartString: ::std::option::Option<
10180        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> *mut ::std::os::raw::c_char,
10181    >,
10182    pub getAnnotationEndString: ::std::option::Option<
10183        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> *mut ::std::os::raw::c_char,
10184    >,
10185}
10186#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10187const _: () = {
10188    ["Size of BNCustomLanguageRepresentationFunction"]
10189        [::std::mem::size_of::<BNCustomLanguageRepresentationFunction>() - 96usize];
10190    ["Alignment of BNCustomLanguageRepresentationFunction"]
10191        [::std::mem::align_of::<BNCustomLanguageRepresentationFunction>() - 8usize];
10192    ["Offset of field: BNCustomLanguageRepresentationFunction::context"]
10193        [::std::mem::offset_of!(BNCustomLanguageRepresentationFunction, context) - 0usize];
10194    ["Offset of field: BNCustomLanguageRepresentationFunction::freeObject"]
10195        [::std::mem::offset_of!(BNCustomLanguageRepresentationFunction, freeObject) - 8usize];
10196    ["Offset of field: BNCustomLanguageRepresentationFunction::externalRefTaken"][::std::mem::offset_of!(
10197        BNCustomLanguageRepresentationFunction,
10198        externalRefTaken
10199    ) - 16usize];
10200    ["Offset of field: BNCustomLanguageRepresentationFunction::externalRefReleased"][::std::mem::offset_of!(
10201        BNCustomLanguageRepresentationFunction,
10202        externalRefReleased
10203    ) - 24usize];
10204    ["Offset of field: BNCustomLanguageRepresentationFunction::initTokenEmitter"][::std::mem::offset_of!(
10205        BNCustomLanguageRepresentationFunction,
10206        initTokenEmitter
10207    ) - 32usize];
10208    ["Offset of field: BNCustomLanguageRepresentationFunction::getExprText"]
10209        [::std::mem::offset_of!(BNCustomLanguageRepresentationFunction, getExprText) - 40usize];
10210    ["Offset of field: BNCustomLanguageRepresentationFunction::beginLines"]
10211        [::std::mem::offset_of!(BNCustomLanguageRepresentationFunction, beginLines) - 48usize];
10212    ["Offset of field: BNCustomLanguageRepresentationFunction::endLines"]
10213        [::std::mem::offset_of!(BNCustomLanguageRepresentationFunction, endLines) - 56usize];
10214    ["Offset of field: BNCustomLanguageRepresentationFunction::getCommentStartString"][::std::mem::offset_of!(
10215        BNCustomLanguageRepresentationFunction,
10216        getCommentStartString
10217    ) - 64usize];
10218    ["Offset of field: BNCustomLanguageRepresentationFunction::getCommentEndString"][::std::mem::offset_of!(
10219        BNCustomLanguageRepresentationFunction,
10220        getCommentEndString
10221    ) - 72usize];
10222    ["Offset of field: BNCustomLanguageRepresentationFunction::getAnnotationStartString"][::std::mem::offset_of!(
10223        BNCustomLanguageRepresentationFunction,
10224        getAnnotationStartString
10225    )
10226        - 80usize];
10227    ["Offset of field: BNCustomLanguageRepresentationFunction::getAnnotationEndString"][::std::mem::offset_of!(
10228        BNCustomLanguageRepresentationFunction,
10229        getAnnotationEndString
10230    )
10231        - 88usize];
10232};
10233impl Default for BNCustomLanguageRepresentationFunction {
10234    fn default() -> Self {
10235        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10236        unsafe {
10237            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10238            s.assume_init()
10239        }
10240    }
10241}
10242#[repr(C)]
10243#[derive(Debug, Copy, Clone)]
10244pub struct BNCustomLanguageRepresentationFunctionType {
10245    pub context: *mut ::std::os::raw::c_void,
10246    pub create: ::std::option::Option<
10247        unsafe extern "C" fn(
10248            ctxt: *mut ::std::os::raw::c_void,
10249            arch: *mut BNArchitecture,
10250            owner: *mut BNFunction,
10251            highLevelIL: *mut BNHighLevelILFunction,
10252        ) -> *mut BNLanguageRepresentationFunction,
10253    >,
10254    pub isValid: ::std::option::Option<
10255        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, view: *mut BNBinaryView) -> bool,
10256    >,
10257    pub getTypePrinter: ::std::option::Option<
10258        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> *mut BNTypePrinter,
10259    >,
10260    pub getTypeParser: ::std::option::Option<
10261        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> *mut BNTypeParser,
10262    >,
10263    pub getLineFormatter: ::std::option::Option<
10264        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> *mut BNLineFormatter,
10265    >,
10266    pub getFunctionTypeTokens: ::std::option::Option<
10267        unsafe extern "C" fn(
10268            ctxt: *mut ::std::os::raw::c_void,
10269            func: *mut BNFunction,
10270            settings: *mut BNDisassemblySettings,
10271            count: *mut usize,
10272        ) -> *mut BNDisassemblyTextLine,
10273    >,
10274    pub freeLines: ::std::option::Option<
10275        unsafe extern "C" fn(
10276            ctxt: *mut ::std::os::raw::c_void,
10277            lines: *mut BNDisassemblyTextLine,
10278            count: usize,
10279        ),
10280    >,
10281}
10282#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10283const _: () = {
10284    ["Size of BNCustomLanguageRepresentationFunctionType"]
10285        [::std::mem::size_of::<BNCustomLanguageRepresentationFunctionType>() - 64usize];
10286    ["Alignment of BNCustomLanguageRepresentationFunctionType"]
10287        [::std::mem::align_of::<BNCustomLanguageRepresentationFunctionType>() - 8usize];
10288    ["Offset of field: BNCustomLanguageRepresentationFunctionType::context"]
10289        [::std::mem::offset_of!(BNCustomLanguageRepresentationFunctionType, context) - 0usize];
10290    ["Offset of field: BNCustomLanguageRepresentationFunctionType::create"]
10291        [::std::mem::offset_of!(BNCustomLanguageRepresentationFunctionType, create) - 8usize];
10292    ["Offset of field: BNCustomLanguageRepresentationFunctionType::isValid"]
10293        [::std::mem::offset_of!(BNCustomLanguageRepresentationFunctionType, isValid) - 16usize];
10294    ["Offset of field: BNCustomLanguageRepresentationFunctionType::getTypePrinter"][::std::mem::offset_of!(
10295        BNCustomLanguageRepresentationFunctionType,
10296        getTypePrinter
10297    ) - 24usize];
10298    ["Offset of field: BNCustomLanguageRepresentationFunctionType::getTypeParser"][::std::mem::offset_of!(
10299        BNCustomLanguageRepresentationFunctionType,
10300        getTypeParser
10301    ) - 32usize];
10302    ["Offset of field: BNCustomLanguageRepresentationFunctionType::getLineFormatter"][::std::mem::offset_of!(
10303        BNCustomLanguageRepresentationFunctionType,
10304        getLineFormatter
10305    ) - 40usize];
10306    ["Offset of field: BNCustomLanguageRepresentationFunctionType::getFunctionTypeTokens"][::std::mem::offset_of!(
10307        BNCustomLanguageRepresentationFunctionType,
10308        getFunctionTypeTokens
10309    )
10310        - 48usize];
10311    ["Offset of field: BNCustomLanguageRepresentationFunctionType::freeLines"]
10312        [::std::mem::offset_of!(BNCustomLanguageRepresentationFunctionType, freeLines) - 56usize];
10313};
10314impl Default for BNCustomLanguageRepresentationFunctionType {
10315    fn default() -> Self {
10316        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10317        unsafe {
10318            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10319            s.assume_init()
10320        }
10321    }
10322}
10323#[repr(u8)]
10324#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
10325pub enum BNBuiltinType {
10326    BuiltinNone = 0,
10327    BuiltinMemcpy = 1,
10328    BuiltinMemset = 2,
10329    BuiltinStrncpy = 3,
10330    BuiltinStrcpy = 4,
10331    BuiltinWcscpy = 5,
10332    BuiltinWmemcpy = 6,
10333}
10334#[repr(C)]
10335#[derive(Debug, Default, Copy, Clone)]
10336pub struct BNSegmentInfo {
10337    pub start: u64,
10338    pub length: u64,
10339    pub dataOffset: u64,
10340    pub dataLength: u64,
10341    pub flags: u32,
10342}
10343#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10344const _: () = {
10345    ["Size of BNSegmentInfo"][::std::mem::size_of::<BNSegmentInfo>() - 40usize];
10346    ["Alignment of BNSegmentInfo"][::std::mem::align_of::<BNSegmentInfo>() - 8usize];
10347    ["Offset of field: BNSegmentInfo::start"]
10348        [::std::mem::offset_of!(BNSegmentInfo, start) - 0usize];
10349    ["Offset of field: BNSegmentInfo::length"]
10350        [::std::mem::offset_of!(BNSegmentInfo, length) - 8usize];
10351    ["Offset of field: BNSegmentInfo::dataOffset"]
10352        [::std::mem::offset_of!(BNSegmentInfo, dataOffset) - 16usize];
10353    ["Offset of field: BNSegmentInfo::dataLength"]
10354        [::std::mem::offset_of!(BNSegmentInfo, dataLength) - 24usize];
10355    ["Offset of field: BNSegmentInfo::flags"]
10356        [::std::mem::offset_of!(BNSegmentInfo, flags) - 32usize];
10357};
10358#[repr(C)]
10359#[derive(Debug, Copy, Clone)]
10360pub struct BNSectionInfo {
10361    pub name: *const ::std::os::raw::c_char,
10362    pub start: u64,
10363    pub length: u64,
10364    pub semantics: BNSectionSemantics,
10365    pub type_: *const ::std::os::raw::c_char,
10366    pub align: u64,
10367    pub entrySize: u64,
10368    pub linkedSection: *const ::std::os::raw::c_char,
10369    pub infoSection: *const ::std::os::raw::c_char,
10370    pub infoData: u64,
10371}
10372#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10373const _: () = {
10374    ["Size of BNSectionInfo"][::std::mem::size_of::<BNSectionInfo>() - 80usize];
10375    ["Alignment of BNSectionInfo"][::std::mem::align_of::<BNSectionInfo>() - 8usize];
10376    ["Offset of field: BNSectionInfo::name"][::std::mem::offset_of!(BNSectionInfo, name) - 0usize];
10377    ["Offset of field: BNSectionInfo::start"]
10378        [::std::mem::offset_of!(BNSectionInfo, start) - 8usize];
10379    ["Offset of field: BNSectionInfo::length"]
10380        [::std::mem::offset_of!(BNSectionInfo, length) - 16usize];
10381    ["Offset of field: BNSectionInfo::semantics"]
10382        [::std::mem::offset_of!(BNSectionInfo, semantics) - 24usize];
10383    ["Offset of field: BNSectionInfo::type_"]
10384        [::std::mem::offset_of!(BNSectionInfo, type_) - 32usize];
10385    ["Offset of field: BNSectionInfo::align"]
10386        [::std::mem::offset_of!(BNSectionInfo, align) - 40usize];
10387    ["Offset of field: BNSectionInfo::entrySize"]
10388        [::std::mem::offset_of!(BNSectionInfo, entrySize) - 48usize];
10389    ["Offset of field: BNSectionInfo::linkedSection"]
10390        [::std::mem::offset_of!(BNSectionInfo, linkedSection) - 56usize];
10391    ["Offset of field: BNSectionInfo::infoSection"]
10392        [::std::mem::offset_of!(BNSectionInfo, infoSection) - 64usize];
10393    ["Offset of field: BNSectionInfo::infoData"]
10394        [::std::mem::offset_of!(BNSectionInfo, infoData) - 72usize];
10395};
10396impl Default for BNSectionInfo {
10397    fn default() -> Self {
10398        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10399        unsafe {
10400            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10401            s.assume_init()
10402        }
10403    }
10404}
10405#[repr(C)]
10406#[derive(Debug, Copy, Clone)]
10407pub struct BNMemoryRegionInfo {
10408    pub name: *mut ::std::os::raw::c_char,
10409    pub displayName: *mut ::std::os::raw::c_char,
10410    pub start: u64,
10411    pub length: u64,
10412    pub flags: u32,
10413    pub enabled: bool,
10414    pub rebaseable: bool,
10415    pub fill: u8,
10416    pub hasTarget: bool,
10417    pub absoluteAddressMode: bool,
10418    pub local: bool,
10419}
10420#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10421const _: () = {
10422    ["Size of BNMemoryRegionInfo"][::std::mem::size_of::<BNMemoryRegionInfo>() - 48usize];
10423    ["Alignment of BNMemoryRegionInfo"][::std::mem::align_of::<BNMemoryRegionInfo>() - 8usize];
10424    ["Offset of field: BNMemoryRegionInfo::name"]
10425        [::std::mem::offset_of!(BNMemoryRegionInfo, name) - 0usize];
10426    ["Offset of field: BNMemoryRegionInfo::displayName"]
10427        [::std::mem::offset_of!(BNMemoryRegionInfo, displayName) - 8usize];
10428    ["Offset of field: BNMemoryRegionInfo::start"]
10429        [::std::mem::offset_of!(BNMemoryRegionInfo, start) - 16usize];
10430    ["Offset of field: BNMemoryRegionInfo::length"]
10431        [::std::mem::offset_of!(BNMemoryRegionInfo, length) - 24usize];
10432    ["Offset of field: BNMemoryRegionInfo::flags"]
10433        [::std::mem::offset_of!(BNMemoryRegionInfo, flags) - 32usize];
10434    ["Offset of field: BNMemoryRegionInfo::enabled"]
10435        [::std::mem::offset_of!(BNMemoryRegionInfo, enabled) - 36usize];
10436    ["Offset of field: BNMemoryRegionInfo::rebaseable"]
10437        [::std::mem::offset_of!(BNMemoryRegionInfo, rebaseable) - 37usize];
10438    ["Offset of field: BNMemoryRegionInfo::fill"]
10439        [::std::mem::offset_of!(BNMemoryRegionInfo, fill) - 38usize];
10440    ["Offset of field: BNMemoryRegionInfo::hasTarget"]
10441        [::std::mem::offset_of!(BNMemoryRegionInfo, hasTarget) - 39usize];
10442    ["Offset of field: BNMemoryRegionInfo::absoluteAddressMode"]
10443        [::std::mem::offset_of!(BNMemoryRegionInfo, absoluteAddressMode) - 40usize];
10444    ["Offset of field: BNMemoryRegionInfo::local"]
10445        [::std::mem::offset_of!(BNMemoryRegionInfo, local) - 41usize];
10446};
10447impl Default for BNMemoryRegionInfo {
10448    fn default() -> Self {
10449        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10450        unsafe {
10451            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10452            s.assume_init()
10453        }
10454    }
10455}
10456#[repr(C)]
10457#[derive(Debug, Copy, Clone)]
10458pub struct BNResolvedMemoryRange {
10459    pub start: u64,
10460    pub length: u64,
10461    pub regions: *mut BNMemoryRegionInfo,
10462    pub regionCount: usize,
10463}
10464#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10465const _: () = {
10466    ["Size of BNResolvedMemoryRange"][::std::mem::size_of::<BNResolvedMemoryRange>() - 32usize];
10467    ["Alignment of BNResolvedMemoryRange"]
10468        [::std::mem::align_of::<BNResolvedMemoryRange>() - 8usize];
10469    ["Offset of field: BNResolvedMemoryRange::start"]
10470        [::std::mem::offset_of!(BNResolvedMemoryRange, start) - 0usize];
10471    ["Offset of field: BNResolvedMemoryRange::length"]
10472        [::std::mem::offset_of!(BNResolvedMemoryRange, length) - 8usize];
10473    ["Offset of field: BNResolvedMemoryRange::regions"]
10474        [::std::mem::offset_of!(BNResolvedMemoryRange, regions) - 16usize];
10475    ["Offset of field: BNResolvedMemoryRange::regionCount"]
10476        [::std::mem::offset_of!(BNResolvedMemoryRange, regionCount) - 24usize];
10477};
10478impl Default for BNResolvedMemoryRange {
10479    fn default() -> Self {
10480        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10481        unsafe {
10482            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10483            s.assume_init()
10484        }
10485    }
10486}
10487pub type BNCollaborationAnalysisConflictHandler = ::std::option::Option<
10488    unsafe extern "C" fn(
10489        arg1: *mut ::std::os::raw::c_void,
10490        keys: *mut *const ::std::os::raw::c_char,
10491        conflicts: *mut *mut BNAnalysisMergeConflict,
10492        conflictCount: usize,
10493    ) -> bool,
10494>;
10495pub type BNCollaborationNameChangesetFunction = ::std::option::Option<
10496    unsafe extern "C" fn(
10497        arg1: *mut ::std::os::raw::c_void,
10498        arg2: *mut BNCollaborationChangeset,
10499    ) -> bool,
10500>;
10501#[repr(C)]
10502#[derive(Debug, Copy, Clone)]
10503pub struct BNFirmwareNinjaDevice {
10504    pub name: *mut ::std::os::raw::c_char,
10505    pub start: u64,
10506    pub end: u64,
10507    pub info: *mut ::std::os::raw::c_char,
10508}
10509#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10510const _: () = {
10511    ["Size of BNFirmwareNinjaDevice"][::std::mem::size_of::<BNFirmwareNinjaDevice>() - 32usize];
10512    ["Alignment of BNFirmwareNinjaDevice"]
10513        [::std::mem::align_of::<BNFirmwareNinjaDevice>() - 8usize];
10514    ["Offset of field: BNFirmwareNinjaDevice::name"]
10515        [::std::mem::offset_of!(BNFirmwareNinjaDevice, name) - 0usize];
10516    ["Offset of field: BNFirmwareNinjaDevice::start"]
10517        [::std::mem::offset_of!(BNFirmwareNinjaDevice, start) - 8usize];
10518    ["Offset of field: BNFirmwareNinjaDevice::end"]
10519        [::std::mem::offset_of!(BNFirmwareNinjaDevice, end) - 16usize];
10520    ["Offset of field: BNFirmwareNinjaDevice::info"]
10521        [::std::mem::offset_of!(BNFirmwareNinjaDevice, info) - 24usize];
10522};
10523impl Default for BNFirmwareNinjaDevice {
10524    fn default() -> Self {
10525        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10526        unsafe {
10527            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10528            s.assume_init()
10529        }
10530    }
10531}
10532#[repr(u8)]
10533#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
10534pub enum BNFirmwareNinjaSectionType {
10535    CodeSectionType = 0,
10536    DataSectionType = 1,
10537    CompressionSectionType = 2,
10538    PaddingSectionType = 3,
10539}
10540#[repr(u8)]
10541#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
10542pub enum BNFirmwareNinjaSectionAnalysisMode {
10543    DefaultSectionAnalysisMode = 0,
10544    IgnorePaddingSectionAnalysisMode = 1,
10545    DetectStringsSectionAnalysisMode = 2,
10546}
10547#[repr(C)]
10548#[derive(Debug, Copy, Clone)]
10549pub struct BNFirmwareNinjaSection {
10550    pub type_: BNFirmwareNinjaSectionType,
10551    pub start: u64,
10552    pub end: u64,
10553    pub entropy: f32,
10554}
10555#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10556const _: () = {
10557    ["Size of BNFirmwareNinjaSection"][::std::mem::size_of::<BNFirmwareNinjaSection>() - 32usize];
10558    ["Alignment of BNFirmwareNinjaSection"]
10559        [::std::mem::align_of::<BNFirmwareNinjaSection>() - 8usize];
10560    ["Offset of field: BNFirmwareNinjaSection::type_"]
10561        [::std::mem::offset_of!(BNFirmwareNinjaSection, type_) - 0usize];
10562    ["Offset of field: BNFirmwareNinjaSection::start"]
10563        [::std::mem::offset_of!(BNFirmwareNinjaSection, start) - 8usize];
10564    ["Offset of field: BNFirmwareNinjaSection::end"]
10565        [::std::mem::offset_of!(BNFirmwareNinjaSection, end) - 16usize];
10566    ["Offset of field: BNFirmwareNinjaSection::entropy"]
10567        [::std::mem::offset_of!(BNFirmwareNinjaSection, entropy) - 24usize];
10568};
10569impl Default for BNFirmwareNinjaSection {
10570    fn default() -> Self {
10571        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10572        unsafe {
10573            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10574            s.assume_init()
10575        }
10576    }
10577}
10578#[repr(u8)]
10579#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
10580pub enum BNFirmwareNinjaMemoryHeuristic {
10581    NoMemoryHeuristic = 0,
10582    HasReadBarrierMemoryHeuristic = 1,
10583    HasWriteBarrierMemoryHeuristic = 2,
10584    StoreToOOBMemoryMemoryHeuristic = 3,
10585    LoadFromOOBMemoryMemoryHeuristic = 4,
10586    RepeatLoadStoreMemoryHeuristic = 5,
10587    CallParamOOBPointerMemoryHeuristic = 6,
10588}
10589#[repr(u8)]
10590#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
10591pub enum BNFirmwareNinjaMemoryAccessType {
10592    NoMemoryAccessType = 0,
10593    ReadMemoryAccessType = 1,
10594    WriteMemoryAccessType = 2,
10595}
10596#[repr(C)]
10597#[derive(Debug, Copy, Clone)]
10598pub struct BNFirmwareNinjaMemoryAccess {
10599    pub instrAddress: u64,
10600    pub memAddress: BNRegisterValue,
10601    pub heuristic: BNFirmwareNinjaMemoryHeuristic,
10602    pub type_: BNFirmwareNinjaMemoryAccessType,
10603    pub value: BNRegisterValue,
10604}
10605#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10606const _: () = {
10607    ["Size of BNFirmwareNinjaMemoryAccess"]
10608        [::std::mem::size_of::<BNFirmwareNinjaMemoryAccess>() - 80usize];
10609    ["Alignment of BNFirmwareNinjaMemoryAccess"]
10610        [::std::mem::align_of::<BNFirmwareNinjaMemoryAccess>() - 8usize];
10611    ["Offset of field: BNFirmwareNinjaMemoryAccess::instrAddress"]
10612        [::std::mem::offset_of!(BNFirmwareNinjaMemoryAccess, instrAddress) - 0usize];
10613    ["Offset of field: BNFirmwareNinjaMemoryAccess::memAddress"]
10614        [::std::mem::offset_of!(BNFirmwareNinjaMemoryAccess, memAddress) - 8usize];
10615    ["Offset of field: BNFirmwareNinjaMemoryAccess::heuristic"]
10616        [::std::mem::offset_of!(BNFirmwareNinjaMemoryAccess, heuristic) - 40usize];
10617    ["Offset of field: BNFirmwareNinjaMemoryAccess::type_"]
10618        [::std::mem::offset_of!(BNFirmwareNinjaMemoryAccess, type_) - 41usize];
10619    ["Offset of field: BNFirmwareNinjaMemoryAccess::value"]
10620        [::std::mem::offset_of!(BNFirmwareNinjaMemoryAccess, value) - 48usize];
10621};
10622impl Default for BNFirmwareNinjaMemoryAccess {
10623    fn default() -> Self {
10624        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10625        unsafe {
10626            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10627            s.assume_init()
10628        }
10629    }
10630}
10631#[repr(C)]
10632#[derive(Debug, Copy, Clone)]
10633pub struct BNFirmwareNinjaFunctionMemoryAccesses {
10634    pub start: u64,
10635    pub count: usize,
10636    pub accesses: *mut *mut BNFirmwareNinjaMemoryAccess,
10637}
10638#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10639const _: () = {
10640    ["Size of BNFirmwareNinjaFunctionMemoryAccesses"]
10641        [::std::mem::size_of::<BNFirmwareNinjaFunctionMemoryAccesses>() - 24usize];
10642    ["Alignment of BNFirmwareNinjaFunctionMemoryAccesses"]
10643        [::std::mem::align_of::<BNFirmwareNinjaFunctionMemoryAccesses>() - 8usize];
10644    ["Offset of field: BNFirmwareNinjaFunctionMemoryAccesses::start"]
10645        [::std::mem::offset_of!(BNFirmwareNinjaFunctionMemoryAccesses, start) - 0usize];
10646    ["Offset of field: BNFirmwareNinjaFunctionMemoryAccesses::count"]
10647        [::std::mem::offset_of!(BNFirmwareNinjaFunctionMemoryAccesses, count) - 8usize];
10648    ["Offset of field: BNFirmwareNinjaFunctionMemoryAccesses::accesses"]
10649        [::std::mem::offset_of!(BNFirmwareNinjaFunctionMemoryAccesses, accesses) - 16usize];
10650};
10651impl Default for BNFirmwareNinjaFunctionMemoryAccesses {
10652    fn default() -> Self {
10653        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10654        unsafe {
10655            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10656            s.assume_init()
10657        }
10658    }
10659}
10660#[repr(C)]
10661#[derive(Debug, Copy, Clone)]
10662pub struct BNFirmwareNinjaDeviceAccesses {
10663    pub name: *mut ::std::os::raw::c_char,
10664    pub total: usize,
10665    pub unique: usize,
10666}
10667#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10668const _: () = {
10669    ["Size of BNFirmwareNinjaDeviceAccesses"]
10670        [::std::mem::size_of::<BNFirmwareNinjaDeviceAccesses>() - 24usize];
10671    ["Alignment of BNFirmwareNinjaDeviceAccesses"]
10672        [::std::mem::align_of::<BNFirmwareNinjaDeviceAccesses>() - 8usize];
10673    ["Offset of field: BNFirmwareNinjaDeviceAccesses::name"]
10674        [::std::mem::offset_of!(BNFirmwareNinjaDeviceAccesses, name) - 0usize];
10675    ["Offset of field: BNFirmwareNinjaDeviceAccesses::total"]
10676        [::std::mem::offset_of!(BNFirmwareNinjaDeviceAccesses, total) - 8usize];
10677    ["Offset of field: BNFirmwareNinjaDeviceAccesses::unique"]
10678        [::std::mem::offset_of!(BNFirmwareNinjaDeviceAccesses, unique) - 16usize];
10679};
10680impl Default for BNFirmwareNinjaDeviceAccesses {
10681    fn default() -> Self {
10682        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10683        unsafe {
10684            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10685            s.assume_init()
10686        }
10687    }
10688}
10689#[repr(C)]
10690#[derive(Debug, Copy, Clone)]
10691pub struct BNLineFormatterSettings {
10692    pub highLevelIL: *mut BNHighLevelILFunction,
10693    pub desiredLineLength: usize,
10694    pub minimumContentLength: usize,
10695    pub tabWidth: usize,
10696    pub maximumAnnotationLength: usize,
10697    pub stringWrappingWidth: usize,
10698    pub languageName: *mut ::std::os::raw::c_char,
10699    pub commentStartString: *mut ::std::os::raw::c_char,
10700    pub commentEndString: *mut ::std::os::raw::c_char,
10701    pub annotationStartString: *mut ::std::os::raw::c_char,
10702    pub annotationEndString: *mut ::std::os::raw::c_char,
10703}
10704#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10705const _: () = {
10706    ["Size of BNLineFormatterSettings"][::std::mem::size_of::<BNLineFormatterSettings>() - 88usize];
10707    ["Alignment of BNLineFormatterSettings"]
10708        [::std::mem::align_of::<BNLineFormatterSettings>() - 8usize];
10709    ["Offset of field: BNLineFormatterSettings::highLevelIL"]
10710        [::std::mem::offset_of!(BNLineFormatterSettings, highLevelIL) - 0usize];
10711    ["Offset of field: BNLineFormatterSettings::desiredLineLength"]
10712        [::std::mem::offset_of!(BNLineFormatterSettings, desiredLineLength) - 8usize];
10713    ["Offset of field: BNLineFormatterSettings::minimumContentLength"]
10714        [::std::mem::offset_of!(BNLineFormatterSettings, minimumContentLength) - 16usize];
10715    ["Offset of field: BNLineFormatterSettings::tabWidth"]
10716        [::std::mem::offset_of!(BNLineFormatterSettings, tabWidth) - 24usize];
10717    ["Offset of field: BNLineFormatterSettings::maximumAnnotationLength"]
10718        [::std::mem::offset_of!(BNLineFormatterSettings, maximumAnnotationLength) - 32usize];
10719    ["Offset of field: BNLineFormatterSettings::stringWrappingWidth"]
10720        [::std::mem::offset_of!(BNLineFormatterSettings, stringWrappingWidth) - 40usize];
10721    ["Offset of field: BNLineFormatterSettings::languageName"]
10722        [::std::mem::offset_of!(BNLineFormatterSettings, languageName) - 48usize];
10723    ["Offset of field: BNLineFormatterSettings::commentStartString"]
10724        [::std::mem::offset_of!(BNLineFormatterSettings, commentStartString) - 56usize];
10725    ["Offset of field: BNLineFormatterSettings::commentEndString"]
10726        [::std::mem::offset_of!(BNLineFormatterSettings, commentEndString) - 64usize];
10727    ["Offset of field: BNLineFormatterSettings::annotationStartString"]
10728        [::std::mem::offset_of!(BNLineFormatterSettings, annotationStartString) - 72usize];
10729    ["Offset of field: BNLineFormatterSettings::annotationEndString"]
10730        [::std::mem::offset_of!(BNLineFormatterSettings, annotationEndString) - 80usize];
10731};
10732impl Default for BNLineFormatterSettings {
10733    fn default() -> Self {
10734        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10735        unsafe {
10736            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10737            s.assume_init()
10738        }
10739    }
10740}
10741#[repr(C)]
10742#[derive(Debug, Copy, Clone)]
10743pub struct BNCustomLineFormatter {
10744    pub context: *mut ::std::os::raw::c_void,
10745    pub formatLines: ::std::option::Option<
10746        unsafe extern "C" fn(
10747            ctxt: *mut ::std::os::raw::c_void,
10748            inLines: *mut BNDisassemblyTextLine,
10749            inCount: usize,
10750            settings: *const BNLineFormatterSettings,
10751            outCount: *mut usize,
10752        ) -> *mut BNDisassemblyTextLine,
10753    >,
10754    pub freeLines: ::std::option::Option<
10755        unsafe extern "C" fn(
10756            ctxt: *mut ::std::os::raw::c_void,
10757            lines: *mut BNDisassemblyTextLine,
10758            count: usize,
10759        ),
10760    >,
10761}
10762#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10763const _: () = {
10764    ["Size of BNCustomLineFormatter"][::std::mem::size_of::<BNCustomLineFormatter>() - 24usize];
10765    ["Alignment of BNCustomLineFormatter"]
10766        [::std::mem::align_of::<BNCustomLineFormatter>() - 8usize];
10767    ["Offset of field: BNCustomLineFormatter::context"]
10768        [::std::mem::offset_of!(BNCustomLineFormatter, context) - 0usize];
10769    ["Offset of field: BNCustomLineFormatter::formatLines"]
10770        [::std::mem::offset_of!(BNCustomLineFormatter, formatLines) - 8usize];
10771    ["Offset of field: BNCustomLineFormatter::freeLines"]
10772        [::std::mem::offset_of!(BNCustomLineFormatter, freeLines) - 16usize];
10773};
10774impl Default for BNCustomLineFormatter {
10775    fn default() -> Self {
10776        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10777        unsafe {
10778            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10779            s.assume_init()
10780        }
10781    }
10782}
10783#[repr(C)]
10784#[derive(Debug, Copy, Clone)]
10785pub struct BNRenderLayerCallbacks {
10786    pub context: *mut ::std::os::raw::c_void,
10787    pub applyToFlowGraph: ::std::option::Option<
10788        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, graph: *mut BNFlowGraph),
10789    >,
10790    pub applyToLinearViewObject: ::std::option::Option<
10791        unsafe extern "C" fn(
10792            ctxt: *mut ::std::os::raw::c_void,
10793            obj: *mut BNLinearViewObject,
10794            prev: *mut BNLinearViewObject,
10795            next: *mut BNLinearViewObject,
10796            inLines: *mut BNLinearDisassemblyLine,
10797            inLineCount: usize,
10798            outLines: *mut *mut BNLinearDisassemblyLine,
10799            outLineCount: *mut usize,
10800        ),
10801    >,
10802    pub freeLines: ::std::option::Option<
10803        unsafe extern "C" fn(
10804            ctxt: *mut ::std::os::raw::c_void,
10805            lines: *mut BNLinearDisassemblyLine,
10806            count: usize,
10807        ),
10808    >,
10809}
10810#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10811const _: () = {
10812    ["Size of BNRenderLayerCallbacks"][::std::mem::size_of::<BNRenderLayerCallbacks>() - 32usize];
10813    ["Alignment of BNRenderLayerCallbacks"]
10814        [::std::mem::align_of::<BNRenderLayerCallbacks>() - 8usize];
10815    ["Offset of field: BNRenderLayerCallbacks::context"]
10816        [::std::mem::offset_of!(BNRenderLayerCallbacks, context) - 0usize];
10817    ["Offset of field: BNRenderLayerCallbacks::applyToFlowGraph"]
10818        [::std::mem::offset_of!(BNRenderLayerCallbacks, applyToFlowGraph) - 8usize];
10819    ["Offset of field: BNRenderLayerCallbacks::applyToLinearViewObject"]
10820        [::std::mem::offset_of!(BNRenderLayerCallbacks, applyToLinearViewObject) - 16usize];
10821    ["Offset of field: BNRenderLayerCallbacks::freeLines"]
10822        [::std::mem::offset_of!(BNRenderLayerCallbacks, freeLines) - 24usize];
10823};
10824impl Default for BNRenderLayerCallbacks {
10825    fn default() -> Self {
10826        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10827        unsafe {
10828            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10829            s.assume_init()
10830        }
10831    }
10832}
10833#[repr(u8)]
10834#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
10835pub enum BNRenderLayerDefaultEnableState {
10836    DisabledByDefaultRenderLayerDefaultEnableState = 0,
10837    EnabledByDefaultRenderLayerDefaultEnableState = 1,
10838    AlwaysEnabledRenderLayerDefaultEnableState = 2,
10839}
10840#[repr(C)]
10841#[derive(Debug, Default, Copy, Clone)]
10842pub struct BNExprMapInfo {
10843    pub lowerIndex: usize,
10844    pub higherIndex: usize,
10845    pub mapLowerToHigher: bool,
10846    pub mapHigherToLower: bool,
10847    pub lowerToHigherDirect: bool,
10848    pub higherToLowerDirect: bool,
10849}
10850#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10851const _: () = {
10852    ["Size of BNExprMapInfo"][::std::mem::size_of::<BNExprMapInfo>() - 24usize];
10853    ["Alignment of BNExprMapInfo"][::std::mem::align_of::<BNExprMapInfo>() - 8usize];
10854    ["Offset of field: BNExprMapInfo::lowerIndex"]
10855        [::std::mem::offset_of!(BNExprMapInfo, lowerIndex) - 0usize];
10856    ["Offset of field: BNExprMapInfo::higherIndex"]
10857        [::std::mem::offset_of!(BNExprMapInfo, higherIndex) - 8usize];
10858    ["Offset of field: BNExprMapInfo::mapLowerToHigher"]
10859        [::std::mem::offset_of!(BNExprMapInfo, mapLowerToHigher) - 16usize];
10860    ["Offset of field: BNExprMapInfo::mapHigherToLower"]
10861        [::std::mem::offset_of!(BNExprMapInfo, mapHigherToLower) - 17usize];
10862    ["Offset of field: BNExprMapInfo::lowerToHigherDirect"]
10863        [::std::mem::offset_of!(BNExprMapInfo, lowerToHigherDirect) - 18usize];
10864    ["Offset of field: BNExprMapInfo::higherToLowerDirect"]
10865        [::std::mem::offset_of!(BNExprMapInfo, higherToLowerDirect) - 19usize];
10866};
10867#[repr(C)]
10868#[derive(Debug, Copy, Clone)]
10869pub struct BNAllTypeReferences {
10870    pub codeRefs: *mut BNReferenceSource,
10871    pub codeRefCount: usize,
10872    pub dataRefs: *mut u64,
10873    pub dataRefCount: usize,
10874    pub typeRefs: *mut BNTypeReferenceSource,
10875    pub typeRefCount: usize,
10876}
10877#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10878const _: () = {
10879    ["Size of BNAllTypeReferences"][::std::mem::size_of::<BNAllTypeReferences>() - 48usize];
10880    ["Alignment of BNAllTypeReferences"][::std::mem::align_of::<BNAllTypeReferences>() - 8usize];
10881    ["Offset of field: BNAllTypeReferences::codeRefs"]
10882        [::std::mem::offset_of!(BNAllTypeReferences, codeRefs) - 0usize];
10883    ["Offset of field: BNAllTypeReferences::codeRefCount"]
10884        [::std::mem::offset_of!(BNAllTypeReferences, codeRefCount) - 8usize];
10885    ["Offset of field: BNAllTypeReferences::dataRefs"]
10886        [::std::mem::offset_of!(BNAllTypeReferences, dataRefs) - 16usize];
10887    ["Offset of field: BNAllTypeReferences::dataRefCount"]
10888        [::std::mem::offset_of!(BNAllTypeReferences, dataRefCount) - 24usize];
10889    ["Offset of field: BNAllTypeReferences::typeRefs"]
10890        [::std::mem::offset_of!(BNAllTypeReferences, typeRefs) - 32usize];
10891    ["Offset of field: BNAllTypeReferences::typeRefCount"]
10892        [::std::mem::offset_of!(BNAllTypeReferences, typeRefCount) - 40usize];
10893};
10894impl Default for BNAllTypeReferences {
10895    fn default() -> Self {
10896        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10897        unsafe {
10898            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10899            s.assume_init()
10900        }
10901    }
10902}
10903#[repr(C)]
10904#[derive(Debug, Copy, Clone)]
10905pub struct BNAllTypeFieldReferences {
10906    pub codeRefs: *mut BNTypeFieldReference,
10907    pub codeRefCount: usize,
10908    pub dataRefsTo: *mut u64,
10909    pub dataRefToCount: usize,
10910    pub dataRefsFrom: *mut u64,
10911    pub dataRefFromCount: usize,
10912    pub typeRefs: *mut BNTypeReferenceSource,
10913    pub typeRefCount: usize,
10914}
10915#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10916const _: () = {
10917    ["Size of BNAllTypeFieldReferences"]
10918        [::std::mem::size_of::<BNAllTypeFieldReferences>() - 64usize];
10919    ["Alignment of BNAllTypeFieldReferences"]
10920        [::std::mem::align_of::<BNAllTypeFieldReferences>() - 8usize];
10921    ["Offset of field: BNAllTypeFieldReferences::codeRefs"]
10922        [::std::mem::offset_of!(BNAllTypeFieldReferences, codeRefs) - 0usize];
10923    ["Offset of field: BNAllTypeFieldReferences::codeRefCount"]
10924        [::std::mem::offset_of!(BNAllTypeFieldReferences, codeRefCount) - 8usize];
10925    ["Offset of field: BNAllTypeFieldReferences::dataRefsTo"]
10926        [::std::mem::offset_of!(BNAllTypeFieldReferences, dataRefsTo) - 16usize];
10927    ["Offset of field: BNAllTypeFieldReferences::dataRefToCount"]
10928        [::std::mem::offset_of!(BNAllTypeFieldReferences, dataRefToCount) - 24usize];
10929    ["Offset of field: BNAllTypeFieldReferences::dataRefsFrom"]
10930        [::std::mem::offset_of!(BNAllTypeFieldReferences, dataRefsFrom) - 32usize];
10931    ["Offset of field: BNAllTypeFieldReferences::dataRefFromCount"]
10932        [::std::mem::offset_of!(BNAllTypeFieldReferences, dataRefFromCount) - 40usize];
10933    ["Offset of field: BNAllTypeFieldReferences::typeRefs"]
10934        [::std::mem::offset_of!(BNAllTypeFieldReferences, typeRefs) - 48usize];
10935    ["Offset of field: BNAllTypeFieldReferences::typeRefCount"]
10936        [::std::mem::offset_of!(BNAllTypeFieldReferences, typeRefCount) - 56usize];
10937};
10938impl Default for BNAllTypeFieldReferences {
10939    fn default() -> Self {
10940        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10941        unsafe {
10942            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10943            s.assume_init()
10944        }
10945    }
10946}
10947#[repr(C)]
10948#[derive(Debug, Copy, Clone)]
10949pub struct BNTypeAttribute {
10950    pub name: *mut ::std::os::raw::c_char,
10951    pub value: *mut ::std::os::raw::c_char,
10952}
10953#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10954const _: () = {
10955    ["Size of BNTypeAttribute"][::std::mem::size_of::<BNTypeAttribute>() - 16usize];
10956    ["Alignment of BNTypeAttribute"][::std::mem::align_of::<BNTypeAttribute>() - 8usize];
10957    ["Offset of field: BNTypeAttribute::name"]
10958        [::std::mem::offset_of!(BNTypeAttribute, name) - 0usize];
10959    ["Offset of field: BNTypeAttribute::value"]
10960        [::std::mem::offset_of!(BNTypeAttribute, value) - 8usize];
10961};
10962impl Default for BNTypeAttribute {
10963    fn default() -> Self {
10964        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10965        unsafe {
10966            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10967            s.assume_init()
10968        }
10969    }
10970}
10971#[repr(C)]
10972#[derive(Debug, Copy, Clone)]
10973pub struct BNCustomConstantRenderer {
10974    pub context: *mut ::std::os::raw::c_void,
10975    pub isValidForType: ::std::option::Option<
10976        unsafe extern "C" fn(
10977            ctxt: *mut ::std::os::raw::c_void,
10978            hlil: *mut BNHighLevelILFunction,
10979            type_: *mut BNType,
10980        ) -> bool,
10981    >,
10982    pub renderConstant: ::std::option::Option<
10983        unsafe extern "C" fn(
10984            ctxt: *mut ::std::os::raw::c_void,
10985            hlil: *mut BNHighLevelILFunction,
10986            expr: usize,
10987            type_: *mut BNType,
10988            val: i64,
10989            tokens: *mut BNHighLevelILTokenEmitter,
10990            settings: *mut BNDisassemblySettings,
10991            precedence: BNOperatorPrecedence,
10992        ) -> bool,
10993    >,
10994    pub renderConstantPointer: ::std::option::Option<
10995        unsafe extern "C" fn(
10996            ctxt: *mut ::std::os::raw::c_void,
10997            hlil: *mut BNHighLevelILFunction,
10998            expr: usize,
10999            type_: *mut BNType,
11000            val: i64,
11001            tokens: *mut BNHighLevelILTokenEmitter,
11002            settings: *mut BNDisassemblySettings,
11003            symbolDisplay: BNSymbolDisplayType,
11004            precedence: BNOperatorPrecedence,
11005        ) -> bool,
11006    >,
11007}
11008#[allow(clippy::unnecessary_operation, clippy::identity_op)]
11009const _: () = {
11010    ["Size of BNCustomConstantRenderer"]
11011        [::std::mem::size_of::<BNCustomConstantRenderer>() - 32usize];
11012    ["Alignment of BNCustomConstantRenderer"]
11013        [::std::mem::align_of::<BNCustomConstantRenderer>() - 8usize];
11014    ["Offset of field: BNCustomConstantRenderer::context"]
11015        [::std::mem::offset_of!(BNCustomConstantRenderer, context) - 0usize];
11016    ["Offset of field: BNCustomConstantRenderer::isValidForType"]
11017        [::std::mem::offset_of!(BNCustomConstantRenderer, isValidForType) - 8usize];
11018    ["Offset of field: BNCustomConstantRenderer::renderConstant"]
11019        [::std::mem::offset_of!(BNCustomConstantRenderer, renderConstant) - 16usize];
11020    ["Offset of field: BNCustomConstantRenderer::renderConstantPointer"]
11021        [::std::mem::offset_of!(BNCustomConstantRenderer, renderConstantPointer) - 24usize];
11022};
11023impl Default for BNCustomConstantRenderer {
11024    fn default() -> Self {
11025        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11026        unsafe {
11027            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11028            s.assume_init()
11029        }
11030    }
11031}
11032#[repr(C)]
11033#[derive(Debug, Copy, Clone)]
11034pub struct BNCustomStringRecognizer {
11035    pub context: *mut ::std::os::raw::c_void,
11036    pub isValidForType: ::std::option::Option<
11037        unsafe extern "C" fn(
11038            ctxt: *mut ::std::os::raw::c_void,
11039            hlil: *mut BNHighLevelILFunction,
11040            type_: *mut BNType,
11041        ) -> bool,
11042    >,
11043    pub recognizeConstant: ::std::option::Option<
11044        unsafe extern "C" fn(
11045            ctxt: *mut ::std::os::raw::c_void,
11046            hlil: *mut BNHighLevelILFunction,
11047            expr: usize,
11048            type_: *mut BNType,
11049            val: i64,
11050            result: *mut BNDerivedString,
11051        ) -> bool,
11052    >,
11053    pub recognizeConstantPointer: ::std::option::Option<
11054        unsafe extern "C" fn(
11055            ctxt: *mut ::std::os::raw::c_void,
11056            hlil: *mut BNHighLevelILFunction,
11057            expr: usize,
11058            type_: *mut BNType,
11059            val: i64,
11060            result: *mut BNDerivedString,
11061        ) -> bool,
11062    >,
11063    pub recognizeExternPointer: ::std::option::Option<
11064        unsafe extern "C" fn(
11065            ctxt: *mut ::std::os::raw::c_void,
11066            hlil: *mut BNHighLevelILFunction,
11067            expr: usize,
11068            type_: *mut BNType,
11069            val: i64,
11070            offset: u64,
11071            result: *mut BNDerivedString,
11072        ) -> bool,
11073    >,
11074    pub recognizeImport: ::std::option::Option<
11075        unsafe extern "C" fn(
11076            ctxt: *mut ::std::os::raw::c_void,
11077            hlil: *mut BNHighLevelILFunction,
11078            expr: usize,
11079            type_: *mut BNType,
11080            val: i64,
11081            result: *mut BNDerivedString,
11082        ) -> bool,
11083    >,
11084    pub recognizeConstantData: ::std::option::Option<
11085        unsafe extern "C" fn(
11086            ctxt: *mut ::std::os::raw::c_void,
11087            hlil: *mut BNHighLevelILFunction,
11088            expr: usize,
11089            result: *mut BNDerivedString,
11090        ) -> bool,
11091    >,
11092}
11093#[allow(clippy::unnecessary_operation, clippy::identity_op)]
11094const _: () = {
11095    ["Size of BNCustomStringRecognizer"]
11096        [::std::mem::size_of::<BNCustomStringRecognizer>() - 56usize];
11097    ["Alignment of BNCustomStringRecognizer"]
11098        [::std::mem::align_of::<BNCustomStringRecognizer>() - 8usize];
11099    ["Offset of field: BNCustomStringRecognizer::context"]
11100        [::std::mem::offset_of!(BNCustomStringRecognizer, context) - 0usize];
11101    ["Offset of field: BNCustomStringRecognizer::isValidForType"]
11102        [::std::mem::offset_of!(BNCustomStringRecognizer, isValidForType) - 8usize];
11103    ["Offset of field: BNCustomStringRecognizer::recognizeConstant"]
11104        [::std::mem::offset_of!(BNCustomStringRecognizer, recognizeConstant) - 16usize];
11105    ["Offset of field: BNCustomStringRecognizer::recognizeConstantPointer"]
11106        [::std::mem::offset_of!(BNCustomStringRecognizer, recognizeConstantPointer) - 24usize];
11107    ["Offset of field: BNCustomStringRecognizer::recognizeExternPointer"]
11108        [::std::mem::offset_of!(BNCustomStringRecognizer, recognizeExternPointer) - 32usize];
11109    ["Offset of field: BNCustomStringRecognizer::recognizeImport"]
11110        [::std::mem::offset_of!(BNCustomStringRecognizer, recognizeImport) - 40usize];
11111    ["Offset of field: BNCustomStringRecognizer::recognizeConstantData"]
11112        [::std::mem::offset_of!(BNCustomStringRecognizer, recognizeConstantData) - 48usize];
11113};
11114impl Default for BNCustomStringRecognizer {
11115    fn default() -> Self {
11116        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11117        unsafe {
11118            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11119            s.assume_init()
11120        }
11121    }
11122}
11123#[repr(C)]
11124#[derive(Debug, Copy, Clone)]
11125pub struct BNCustomStringTypeInfo {
11126    pub name: *mut ::std::os::raw::c_char,
11127    pub stringPrefix: *mut ::std::os::raw::c_char,
11128    pub stringPostfix: *mut ::std::os::raw::c_char,
11129}
11130#[allow(clippy::unnecessary_operation, clippy::identity_op)]
11131const _: () = {
11132    ["Size of BNCustomStringTypeInfo"][::std::mem::size_of::<BNCustomStringTypeInfo>() - 24usize];
11133    ["Alignment of BNCustomStringTypeInfo"]
11134        [::std::mem::align_of::<BNCustomStringTypeInfo>() - 8usize];
11135    ["Offset of field: BNCustomStringTypeInfo::name"]
11136        [::std::mem::offset_of!(BNCustomStringTypeInfo, name) - 0usize];
11137    ["Offset of field: BNCustomStringTypeInfo::stringPrefix"]
11138        [::std::mem::offset_of!(BNCustomStringTypeInfo, stringPrefix) - 8usize];
11139    ["Offset of field: BNCustomStringTypeInfo::stringPostfix"]
11140        [::std::mem::offset_of!(BNCustomStringTypeInfo, stringPostfix) - 16usize];
11141};
11142impl Default for BNCustomStringTypeInfo {
11143    fn default() -> Self {
11144        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11145        unsafe {
11146            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11147            s.assume_init()
11148        }
11149    }
11150}
11151unsafe extern "C" {
11152    pub fn BNAllocString(contents: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
11153}
11154unsafe extern "C" {
11155    pub fn BNAllocStringWithLength(
11156        contents: *const ::std::os::raw::c_char,
11157        len: usize,
11158    ) -> *mut ::std::os::raw::c_char;
11159}
11160unsafe extern "C" {
11161    pub fn BNFreeString(str_: *mut ::std::os::raw::c_char);
11162}
11163unsafe extern "C" {
11164    pub fn BNAllocStringList(
11165        contents: *mut *const ::std::os::raw::c_char,
11166        size: usize,
11167    ) -> *mut *mut ::std::os::raw::c_char;
11168}
11169unsafe extern "C" {
11170    pub fn BNAllocUninitializedStringList(size: usize) -> *mut *mut ::std::os::raw::c_char;
11171}
11172unsafe extern "C" {
11173    pub fn BNFreeStringList(strs: *mut *mut ::std::os::raw::c_char, count: usize);
11174}
11175unsafe extern "C" {
11176    pub fn BNShutdown();
11177}
11178unsafe extern "C" {
11179    pub fn BNIsShutdownRequested() -> bool;
11180}
11181unsafe extern "C" {
11182    pub fn BNGetVersionInfo() -> BNVersionInfo;
11183}
11184unsafe extern "C" {
11185    pub fn BNGetVersionString() -> *mut ::std::os::raw::c_char;
11186}
11187unsafe extern "C" {
11188    pub fn BNGetBuildId() -> u32;
11189}
11190unsafe extern "C" {
11191    pub fn BNGetCurrentCoreABIVersion() -> u32;
11192}
11193unsafe extern "C" {
11194    pub fn BNGetMinimumCoreABIVersion() -> u32;
11195}
11196unsafe extern "C" {
11197    pub fn BNGetSerialNumber() -> *mut ::std::os::raw::c_char;
11198}
11199unsafe extern "C" {
11200    pub fn BNGetLicenseExpirationTime() -> u64;
11201}
11202unsafe extern "C" {
11203    pub fn BNIsLicenseValidated() -> bool;
11204}
11205unsafe extern "C" {
11206    pub fn BNGetLicensedUserEmail() -> *mut ::std::os::raw::c_char;
11207}
11208unsafe extern "C" {
11209    pub fn BNGetProduct() -> *mut ::std::os::raw::c_char;
11210}
11211unsafe extern "C" {
11212    pub fn BNGetProductType() -> *mut ::std::os::raw::c_char;
11213}
11214unsafe extern "C" {
11215    pub fn BNGetLicenseCount() -> ::std::os::raw::c_int;
11216}
11217unsafe extern "C" {
11218    pub fn BNIsUIEnabled() -> bool;
11219}
11220unsafe extern "C" {
11221    pub fn BNSetLicense(licenseData: *const ::std::os::raw::c_char);
11222}
11223unsafe extern "C" {
11224    pub fn BNIsDatabase(filename: *const ::std::os::raw::c_char) -> bool;
11225}
11226unsafe extern "C" {
11227    pub fn BNIsDatabaseFromData(data: *const ::std::os::raw::c_void, len: usize) -> bool;
11228}
11229unsafe extern "C" {
11230    pub fn BNAuthenticateEnterpriseServerWithToken(
11231        token: *const ::std::os::raw::c_char,
11232        remember: bool,
11233    ) -> bool;
11234}
11235unsafe extern "C" {
11236    pub fn BNAuthenticateEnterpriseServerWithCredentials(
11237        username: *const ::std::os::raw::c_char,
11238        password: *const ::std::os::raw::c_char,
11239        remember: bool,
11240    ) -> bool;
11241}
11242unsafe extern "C" {
11243    pub fn BNAuthenticateEnterpriseServerWithMethod(
11244        method: *const ::std::os::raw::c_char,
11245        remember: bool,
11246    ) -> bool;
11247}
11248unsafe extern "C" {
11249    pub fn BNGetEnterpriseServerAuthenticationMethods(
11250        methods: *mut *mut *mut ::std::os::raw::c_char,
11251        names: *mut *mut *mut ::std::os::raw::c_char,
11252    ) -> usize;
11253}
11254unsafe extern "C" {
11255    pub fn BNDeauthenticateEnterpriseServer() -> bool;
11256}
11257unsafe extern "C" {
11258    pub fn BNCancelEnterpriseServerAuthentication();
11259}
11260unsafe extern "C" {
11261    pub fn BNConnectEnterpriseServer() -> bool;
11262}
11263unsafe extern "C" {
11264    pub fn BNUpdateEnterpriseServerLicense(timeout: u64) -> bool;
11265}
11266unsafe extern "C" {
11267    pub fn BNReleaseEnterpriseServerLicense() -> bool;
11268}
11269unsafe extern "C" {
11270    pub fn BNIsEnterpriseServerConnected() -> bool;
11271}
11272unsafe extern "C" {
11273    pub fn BNIsEnterpriseServerAuthenticated() -> bool;
11274}
11275unsafe extern "C" {
11276    pub fn BNGetEnterpriseServerUsername() -> *mut ::std::os::raw::c_char;
11277}
11278unsafe extern "C" {
11279    pub fn BNGetEnterpriseServerToken() -> *mut ::std::os::raw::c_char;
11280}
11281unsafe extern "C" {
11282    pub fn BNGetEnterpriseServerUrl() -> *mut ::std::os::raw::c_char;
11283}
11284unsafe extern "C" {
11285    pub fn BNSetEnterpriseServerUrl(url: *const ::std::os::raw::c_char) -> bool;
11286}
11287unsafe extern "C" {
11288    pub fn BNGetEnterpriseServerName() -> *mut ::std::os::raw::c_char;
11289}
11290unsafe extern "C" {
11291    pub fn BNGetEnterpriseServerId() -> *mut ::std::os::raw::c_char;
11292}
11293unsafe extern "C" {
11294    pub fn BNGetEnterpriseServerVersion() -> u64;
11295}
11296unsafe extern "C" {
11297    pub fn BNGetEnterpriseServerBuildId() -> *mut ::std::os::raw::c_char;
11298}
11299unsafe extern "C" {
11300    pub fn BNGetEnterpriseServerLicenseExpirationTime() -> u64;
11301}
11302unsafe extern "C" {
11303    pub fn BNGetEnterpriseServerLicenseDuration() -> u64;
11304}
11305unsafe extern "C" {
11306    pub fn BNIsEnterpriseServerFloatingLicense() -> bool;
11307}
11308unsafe extern "C" {
11309    pub fn BNGetEnterpriseServerReservationTimeLimit() -> u64;
11310}
11311unsafe extern "C" {
11312    pub fn BNIsEnterpriseServerLicenseStillActivated() -> bool;
11313}
11314unsafe extern "C" {
11315    pub fn BNGetEnterpriseServerLastError() -> *mut ::std::os::raw::c_char;
11316}
11317unsafe extern "C" {
11318    pub fn BNRegisterEnterpriseServerNotification(notify: *mut BNEnterpriseServerCallbacks);
11319}
11320unsafe extern "C" {
11321    pub fn BNUnregisterEnterpriseServerNotification(notify: *mut BNEnterpriseServerCallbacks);
11322}
11323unsafe extern "C" {
11324    pub fn BNIsEnterpriseServerInitialized() -> bool;
11325}
11326unsafe extern "C" {
11327    pub fn BNInitializeEnterpriseServer() -> bool;
11328}
11329unsafe extern "C" {
11330    pub fn BNRegisterObjectDestructionCallbacks(callbacks: *mut BNObjectDestructionCallbacks);
11331}
11332unsafe extern "C" {
11333    pub fn BNUnregisterObjectDestructionCallbacks(callbacks: *mut BNObjectDestructionCallbacks);
11334}
11335unsafe extern "C" {
11336    pub fn BNGetUniqueIdentifierString() -> *mut ::std::os::raw::c_char;
11337}
11338unsafe extern "C" {
11339    #[doc = " Plugin initialization"]
11340    pub fn BNInitPlugins(allowUserPlugins: bool) -> bool;
11341}
11342unsafe extern "C" {
11343    pub fn BNDisablePlugins();
11344}
11345unsafe extern "C" {
11346    pub fn BNIsPluginsEnabled() -> bool;
11347}
11348unsafe extern "C" {
11349    pub fn BNGetInstallDirectory() -> *mut ::std::os::raw::c_char;
11350}
11351unsafe extern "C" {
11352    pub fn BNGetBundledPluginDirectory() -> *mut ::std::os::raw::c_char;
11353}
11354unsafe extern "C" {
11355    pub fn BNGetBundledScriptPluginDirectory() -> *mut ::std::os::raw::c_char;
11356}
11357unsafe extern "C" {
11358    pub fn BNSetBundledPluginDirectory(path: *const ::std::os::raw::c_char);
11359}
11360unsafe extern "C" {
11361    pub fn BNSetBundledScriptPluginDirectory(path: *const ::std::os::raw::c_char);
11362}
11363unsafe extern "C" {
11364    pub fn BNGetUserDirectory() -> *mut ::std::os::raw::c_char;
11365}
11366unsafe extern "C" {
11367    pub fn BNGetUserPluginDirectory() -> *mut ::std::os::raw::c_char;
11368}
11369unsafe extern "C" {
11370    pub fn BNGetRepositoriesDirectory() -> *mut ::std::os::raw::c_char;
11371}
11372unsafe extern "C" {
11373    pub fn BNGetSettingsFileName() -> *mut ::std::os::raw::c_char;
11374}
11375unsafe extern "C" {
11376    pub fn BNSaveLastRun();
11377}
11378unsafe extern "C" {
11379    pub fn BNGetPathRelativeToBundledPluginDirectory(
11380        path: *const ::std::os::raw::c_char,
11381    ) -> *mut ::std::os::raw::c_char;
11382}
11383unsafe extern "C" {
11384    pub fn BNGetPathRelativeToUserPluginDirectory(
11385        path: *const ::std::os::raw::c_char,
11386    ) -> *mut ::std::os::raw::c_char;
11387}
11388unsafe extern "C" {
11389    pub fn BNGetPathRelativeToUserDirectory(
11390        path: *const ::std::os::raw::c_char,
11391    ) -> *mut ::std::os::raw::c_char;
11392}
11393unsafe extern "C" {
11394    pub fn BNExecuteWorkerProcess(
11395        path: *const ::std::os::raw::c_char,
11396        args: *mut *const ::std::os::raw::c_char,
11397        input: *mut BNDataBuffer,
11398        output: *mut *mut ::std::os::raw::c_char,
11399        error: *mut *mut ::std::os::raw::c_char,
11400        stdoutIsText: bool,
11401        stderrIsText: bool,
11402    ) -> bool;
11403}
11404unsafe extern "C" {
11405    pub fn BNSetCurrentPluginLoadOrder(order: BNPluginLoadPhase);
11406}
11407unsafe extern "C" {
11408    pub fn BNAddRequiredPluginDependency(name: *const ::std::os::raw::c_char);
11409}
11410unsafe extern "C" {
11411    pub fn BNAddOptionalPluginDependency(name: *const ::std::os::raw::c_char);
11412}
11413unsafe extern "C" {
11414    #[doc = " Logging"]
11415    pub fn BNLog(
11416        session: usize,
11417        level: BNLogLevel,
11418        logger_name: *const ::std::os::raw::c_char,
11419        tid: usize,
11420        fmt: *const ::std::os::raw::c_char,
11421        ...
11422    );
11423}
11424unsafe extern "C" {
11425    pub fn BNLogDebug(fmt: *const ::std::os::raw::c_char, ...);
11426}
11427unsafe extern "C" {
11428    pub fn BNLogInfo(fmt: *const ::std::os::raw::c_char, ...);
11429}
11430unsafe extern "C" {
11431    pub fn BNLogWarn(fmt: *const ::std::os::raw::c_char, ...);
11432}
11433unsafe extern "C" {
11434    pub fn BNLogError(fmt: *const ::std::os::raw::c_char, ...);
11435}
11436unsafe extern "C" {
11437    pub fn BNLogAlert(fmt: *const ::std::os::raw::c_char, ...);
11438}
11439unsafe extern "C" {
11440    pub fn BNLogString(
11441        session: usize,
11442        level: BNLogLevel,
11443        logger_name: *const ::std::os::raw::c_char,
11444        tid: usize,
11445        str_: *const ::std::os::raw::c_char,
11446    );
11447}
11448unsafe extern "C" {
11449    pub fn BNLogWithStackTrace(
11450        session: usize,
11451        level: BNLogLevel,
11452        logger_name: *const ::std::os::raw::c_char,
11453        tid: usize,
11454        stackTrace: *const ::std::os::raw::c_char,
11455        fmt: *const ::std::os::raw::c_char,
11456        ...
11457    );
11458}
11459unsafe extern "C" {
11460    pub fn BNLogDebugWithStackTrace(
11461        stackTrace: *const ::std::os::raw::c_char,
11462        fmt: *const ::std::os::raw::c_char,
11463        ...
11464    );
11465}
11466unsafe extern "C" {
11467    pub fn BNLogInfoWithStackTrace(
11468        stackTrace: *const ::std::os::raw::c_char,
11469        fmt: *const ::std::os::raw::c_char,
11470        ...
11471    );
11472}
11473unsafe extern "C" {
11474    pub fn BNLogWarnWithStackTrace(
11475        stackTrace: *const ::std::os::raw::c_char,
11476        fmt: *const ::std::os::raw::c_char,
11477        ...
11478    );
11479}
11480unsafe extern "C" {
11481    pub fn BNLogErrorWithStackTrace(
11482        stackTrace: *const ::std::os::raw::c_char,
11483        fmt: *const ::std::os::raw::c_char,
11484        ...
11485    );
11486}
11487unsafe extern "C" {
11488    pub fn BNLogAlertWithStackTrace(
11489        stackTrace: *const ::std::os::raw::c_char,
11490        fmt: *const ::std::os::raw::c_char,
11491        ...
11492    );
11493}
11494unsafe extern "C" {
11495    pub fn BNLogStringWithStackTrace(
11496        session: usize,
11497        level: BNLogLevel,
11498        logger_name: *const ::std::os::raw::c_char,
11499        tid: usize,
11500        stackTrace: *const ::std::os::raw::c_char,
11501        str_: *const ::std::os::raw::c_char,
11502    );
11503}
11504unsafe extern "C" {
11505    pub fn BNNewLoggerReference(logger: *mut BNLogger) -> *mut BNLogger;
11506}
11507unsafe extern "C" {
11508    pub fn BNFreeLogger(logger: *mut BNLogger);
11509}
11510unsafe extern "C" {
11511    pub fn BNLoggerLog(
11512        logger: *mut BNLogger,
11513        level: BNLogLevel,
11514        fmt: *const ::std::os::raw::c_char,
11515        ...
11516    );
11517}
11518unsafe extern "C" {
11519    pub fn BNLoggerLogString(
11520        logger: *mut BNLogger,
11521        level: BNLogLevel,
11522        msg: *const ::std::os::raw::c_char,
11523    );
11524}
11525unsafe extern "C" {
11526    pub fn BNLoggerLogWithStackTrace(
11527        logger: *mut BNLogger,
11528        level: BNLogLevel,
11529        stackTrace: *const ::std::os::raw::c_char,
11530        fmt: *const ::std::os::raw::c_char,
11531        ...
11532    );
11533}
11534unsafe extern "C" {
11535    pub fn BNLoggerLogStringWithStackTrace(
11536        logger: *mut BNLogger,
11537        level: BNLogLevel,
11538        stackTrace: *const ::std::os::raw::c_char,
11539        msg: *const ::std::os::raw::c_char,
11540    );
11541}
11542unsafe extern "C" {
11543    pub fn BNLoggerGetName(logger: *mut BNLogger) -> *mut ::std::os::raw::c_char;
11544}
11545unsafe extern "C" {
11546    pub fn BNLoggerGetSessionId(logger: *mut BNLogger) -> usize;
11547}
11548unsafe extern "C" {
11549    pub fn BNLogCreateLogger(
11550        loggerName: *const ::std::os::raw::c_char,
11551        sessionId: usize,
11552    ) -> *mut BNLogger;
11553}
11554unsafe extern "C" {
11555    pub fn BNLogGetLogger(
11556        loggerName: *const ::std::os::raw::c_char,
11557        sessionId: usize,
11558    ) -> *mut BNLogger;
11559}
11560unsafe extern "C" {
11561    pub fn BNLogGetLoggerNames(count: *mut usize) -> *mut *mut ::std::os::raw::c_char;
11562}
11563unsafe extern "C" {
11564    pub fn BNRegisterLogListener(listener: *mut BNLogListener);
11565}
11566unsafe extern "C" {
11567    pub fn BNUnregisterLogListener(listener: *mut BNLogListener);
11568}
11569unsafe extern "C" {
11570    pub fn BNUpdateLogListeners();
11571}
11572unsafe extern "C" {
11573    pub fn BNLogToStdout(minimumLevel: BNLogLevel);
11574}
11575unsafe extern "C" {
11576    pub fn BNLogToStderr(minimumLevel: BNLogLevel);
11577}
11578unsafe extern "C" {
11579    pub fn BNLogToFile(
11580        minimumLevel: BNLogLevel,
11581        path: *const ::std::os::raw::c_char,
11582        append: bool,
11583    ) -> bool;
11584}
11585unsafe extern "C" {
11586    pub fn BNCloseLogs();
11587}
11588unsafe extern "C" {
11589    #[doc = " Temporary files"]
11590    pub fn BNCreateTemporaryFile() -> *mut BNTemporaryFile;
11591}
11592unsafe extern "C" {
11593    pub fn BNCreateTemporaryFileWithContents(data: *mut BNDataBuffer) -> *mut BNTemporaryFile;
11594}
11595unsafe extern "C" {
11596    pub fn BNNewTemporaryFileReference(file: *mut BNTemporaryFile) -> *mut BNTemporaryFile;
11597}
11598unsafe extern "C" {
11599    pub fn BNFreeTemporaryFile(file: *mut BNTemporaryFile);
11600}
11601unsafe extern "C" {
11602    pub fn BNGetTemporaryFilePath(file: *mut BNTemporaryFile) -> *mut ::std::os::raw::c_char;
11603}
11604unsafe extern "C" {
11605    pub fn BNGetTemporaryFileContents(file: *mut BNTemporaryFile) -> *mut BNDataBuffer;
11606}
11607unsafe extern "C" {
11608    #[doc = " Data buffer management"]
11609    pub fn BNCreateDataBuffer(data: *const ::std::os::raw::c_void, len: usize)
11610    -> *mut BNDataBuffer;
11611}
11612unsafe extern "C" {
11613    pub fn BNDuplicateDataBuffer(buf: *mut BNDataBuffer) -> *mut BNDataBuffer;
11614}
11615unsafe extern "C" {
11616    pub fn BNFreeDataBuffer(buf: *mut BNDataBuffer);
11617}
11618unsafe extern "C" {
11619    pub fn BNGetDataBufferContents(buf: *mut BNDataBuffer) -> *mut ::std::os::raw::c_void;
11620}
11621unsafe extern "C" {
11622    pub fn BNGetDataBufferContentsAt(
11623        buf: *mut BNDataBuffer,
11624        offset: usize,
11625    ) -> *mut ::std::os::raw::c_void;
11626}
11627unsafe extern "C" {
11628    pub fn BNGetDataBufferLength(buf: *mut BNDataBuffer) -> usize;
11629}
11630unsafe extern "C" {
11631    pub fn BNGetDataBufferSlice(
11632        buf: *mut BNDataBuffer,
11633        start: usize,
11634        len: usize,
11635    ) -> *mut BNDataBuffer;
11636}
11637unsafe extern "C" {
11638    pub fn BNSetDataBufferLength(buf: *mut BNDataBuffer, len: usize);
11639}
11640unsafe extern "C" {
11641    pub fn BNClearDataBuffer(buf: *mut BNDataBuffer);
11642}
11643unsafe extern "C" {
11644    pub fn BNSetDataBufferContents(
11645        buf: *mut BNDataBuffer,
11646        data: *mut ::std::os::raw::c_void,
11647        len: usize,
11648    );
11649}
11650unsafe extern "C" {
11651    pub fn BNAssignDataBuffer(dest: *mut BNDataBuffer, src: *mut BNDataBuffer);
11652}
11653unsafe extern "C" {
11654    pub fn BNAppendDataBuffer(dest: *mut BNDataBuffer, src: *mut BNDataBuffer);
11655}
11656unsafe extern "C" {
11657    pub fn BNAppendDataBufferContents(
11658        dest: *mut BNDataBuffer,
11659        src: *const ::std::os::raw::c_void,
11660        len: usize,
11661    );
11662}
11663unsafe extern "C" {
11664    pub fn BNGetDataBufferByte(buf: *mut BNDataBuffer, offset: usize) -> u8;
11665}
11666unsafe extern "C" {
11667    pub fn BNSetDataBufferByte(buf: *mut BNDataBuffer, offset: usize, val: u8);
11668}
11669unsafe extern "C" {
11670    pub fn BNDataBufferToEscapedString(
11671        buf: *mut BNDataBuffer,
11672        nullTerminates: bool,
11673        escapePrintable: bool,
11674    ) -> *mut ::std::os::raw::c_char;
11675}
11676unsafe extern "C" {
11677    pub fn BNDecodeEscapedString(str_: *const ::std::os::raw::c_char) -> *mut BNDataBuffer;
11678}
11679unsafe extern "C" {
11680    pub fn BNDataBufferToBase64(buf: *mut BNDataBuffer) -> *mut ::std::os::raw::c_char;
11681}
11682unsafe extern "C" {
11683    pub fn BNDecodeBase64(str_: *const ::std::os::raw::c_char) -> *mut BNDataBuffer;
11684}
11685unsafe extern "C" {
11686    pub fn BNZlibCompress(buf: *mut BNDataBuffer) -> *mut BNDataBuffer;
11687}
11688unsafe extern "C" {
11689    pub fn BNZlibDecompress(buf: *mut BNDataBuffer) -> *mut BNDataBuffer;
11690}
11691unsafe extern "C" {
11692    pub fn BNLzmaDecompress(buf: *mut BNDataBuffer) -> *mut BNDataBuffer;
11693}
11694unsafe extern "C" {
11695    pub fn BNLzma2Decompress(buf: *mut BNDataBuffer) -> *mut BNDataBuffer;
11696}
11697unsafe extern "C" {
11698    pub fn BNXzDecompress(buf: *mut BNDataBuffer) -> *mut BNDataBuffer;
11699}
11700unsafe extern "C" {
11701    #[doc = " Save settings"]
11702    pub fn BNCreateSaveSettings() -> *mut BNSaveSettings;
11703}
11704unsafe extern "C" {
11705    pub fn BNNewSaveSettingsReference(settings: *mut BNSaveSettings) -> *mut BNSaveSettings;
11706}
11707unsafe extern "C" {
11708    pub fn BNFreeSaveSettings(settings: *mut BNSaveSettings);
11709}
11710unsafe extern "C" {
11711    pub fn BNIsSaveSettingsOptionSet(settings: *mut BNSaveSettings, option: BNSaveOption) -> bool;
11712}
11713unsafe extern "C" {
11714    pub fn BNSetSaveSettingsOption(
11715        settings: *mut BNSaveSettings,
11716        option: BNSaveOption,
11717        state: bool,
11718    );
11719}
11720unsafe extern "C" {
11721    pub fn BNGetSaveSettingsName(settings: *mut BNSaveSettings) -> *mut ::std::os::raw::c_char;
11722}
11723unsafe extern "C" {
11724    pub fn BNSetSaveSettingsName(
11725        settings: *mut BNSaveSettings,
11726        name: *const ::std::os::raw::c_char,
11727    );
11728}
11729unsafe extern "C" {
11730    #[doc = " File metadata object"]
11731    pub fn BNCreateFileMetadata() -> *mut BNFileMetadata;
11732}
11733unsafe extern "C" {
11734    pub fn BNNewFileReference(file: *mut BNFileMetadata) -> *mut BNFileMetadata;
11735}
11736unsafe extern "C" {
11737    pub fn BNFreeFileMetadata(file: *mut BNFileMetadata);
11738}
11739unsafe extern "C" {
11740    pub fn BNCloseFile(file: *mut BNFileMetadata);
11741}
11742unsafe extern "C" {
11743    pub fn BNSetFileMetadataNavigationHandler(
11744        file: *mut BNFileMetadata,
11745        handler: *mut BNNavigationHandler,
11746    );
11747}
11748unsafe extern "C" {
11749    pub fn BNIsFileModified(file: *mut BNFileMetadata) -> bool;
11750}
11751unsafe extern "C" {
11752    pub fn BNIsAnalysisChanged(file: *mut BNFileMetadata) -> bool;
11753}
11754unsafe extern "C" {
11755    pub fn BNMarkFileModified(file: *mut BNFileMetadata);
11756}
11757unsafe extern "C" {
11758    pub fn BNMarkFileSaved(file: *mut BNFileMetadata);
11759}
11760unsafe extern "C" {
11761    pub fn BNIsBackedByDatabase(
11762        file: *mut BNFileMetadata,
11763        binaryViewType: *const ::std::os::raw::c_char,
11764    ) -> bool;
11765}
11766unsafe extern "C" {
11767    pub fn BNCreateDatabase(
11768        data: *mut BNBinaryView,
11769        path: *const ::std::os::raw::c_char,
11770        settings: *mut BNSaveSettings,
11771    ) -> bool;
11772}
11773unsafe extern "C" {
11774    pub fn BNCreateDatabaseWithProgress(
11775        data: *mut BNBinaryView,
11776        path: *const ::std::os::raw::c_char,
11777        ctxt: *mut ::std::os::raw::c_void,
11778        progress: BNProgressFunction,
11779        settings: *mut BNSaveSettings,
11780    ) -> bool;
11781}
11782unsafe extern "C" {
11783    pub fn BNOpenExistingDatabase(
11784        file: *mut BNFileMetadata,
11785        path: *const ::std::os::raw::c_char,
11786    ) -> *mut BNBinaryView;
11787}
11788unsafe extern "C" {
11789    pub fn BNOpenExistingDatabaseWithProgress(
11790        file: *mut BNFileMetadata,
11791        path: *const ::std::os::raw::c_char,
11792        ctxt: *mut ::std::os::raw::c_void,
11793        progress: BNProgressFunction,
11794    ) -> *mut BNBinaryView;
11795}
11796unsafe extern "C" {
11797    pub fn BNOpenDatabaseForConfiguration(
11798        file: *mut BNFileMetadata,
11799        path: *const ::std::os::raw::c_char,
11800    ) -> *mut BNBinaryView;
11801}
11802unsafe extern "C" {
11803    pub fn BNSaveAutoSnapshot(data: *mut BNBinaryView, settings: *mut BNSaveSettings) -> bool;
11804}
11805unsafe extern "C" {
11806    pub fn BNSaveAutoSnapshotWithProgress(
11807        data: *mut BNBinaryView,
11808        ctxt: *mut ::std::os::raw::c_void,
11809        progress: BNProgressFunction,
11810        settings: *mut BNSaveSettings,
11811    ) -> bool;
11812}
11813unsafe extern "C" {
11814    pub fn BNGetSnapshotData(
11815        file: *mut BNFileMetadata,
11816        data: *mut BNKeyValueStore,
11817        cache: *mut BNKeyValueStore,
11818        ctxt: *mut ::std::os::raw::c_void,
11819        progress: BNProgressFunction,
11820    );
11821}
11822unsafe extern "C" {
11823    pub fn BNApplySnapshotData(
11824        file: *mut BNFileMetadata,
11825        view: *mut BNBinaryView,
11826        data: *mut BNKeyValueStore,
11827        cache: *mut BNKeyValueStore,
11828        ctxt: *mut ::std::os::raw::c_void,
11829        progress: BNProgressFunction,
11830        openForConfiguration: bool,
11831        restoreRawView: bool,
11832    );
11833}
11834unsafe extern "C" {
11835    pub fn BNGetFileMetadataDatabase(file: *mut BNFileMetadata) -> *mut BNDatabase;
11836}
11837unsafe extern "C" {
11838    #[doc = " Key value store"]
11839    pub fn BNCreateKeyValueStore() -> *mut BNKeyValueStore;
11840}
11841unsafe extern "C" {
11842    pub fn BNCreateKeyValueStoreFromDataBuffer(buffer: *mut BNDataBuffer) -> *mut BNKeyValueStore;
11843}
11844unsafe extern "C" {
11845    pub fn BNNewKeyValueStoreReference(store: *mut BNKeyValueStore) -> *mut BNKeyValueStore;
11846}
11847unsafe extern "C" {
11848    pub fn BNFreeKeyValueStore(store: *mut BNKeyValueStore);
11849}
11850unsafe extern "C" {
11851    pub fn BNGetKeyValueStoreKeys(
11852        store: *mut BNKeyValueStore,
11853        count: *mut usize,
11854    ) -> *mut *mut ::std::os::raw::c_char;
11855}
11856unsafe extern "C" {
11857    pub fn BNKeyValueStoreHasValue(
11858        store: *mut BNKeyValueStore,
11859        name: *const ::std::os::raw::c_char,
11860    ) -> bool;
11861}
11862unsafe extern "C" {
11863    pub fn BNGetKeyValueStoreValue(
11864        store: *mut BNKeyValueStore,
11865        name: *const ::std::os::raw::c_char,
11866    ) -> *mut ::std::os::raw::c_char;
11867}
11868unsafe extern "C" {
11869    pub fn BNGetKeyValueStoreValueHash(
11870        store: *mut BNKeyValueStore,
11871        name: *const ::std::os::raw::c_char,
11872    ) -> *mut BNDataBuffer;
11873}
11874unsafe extern "C" {
11875    pub fn BNGetKeyValueStoreBuffer(
11876        store: *mut BNKeyValueStore,
11877        name: *const ::std::os::raw::c_char,
11878    ) -> *mut BNDataBuffer;
11879}
11880unsafe extern "C" {
11881    pub fn BNSetKeyValueStoreValue(
11882        store: *mut BNKeyValueStore,
11883        name: *const ::std::os::raw::c_char,
11884        value: *const ::std::os::raw::c_char,
11885    ) -> bool;
11886}
11887unsafe extern "C" {
11888    pub fn BNSetKeyValueStoreBuffer(
11889        store: *mut BNKeyValueStore,
11890        name: *const ::std::os::raw::c_char,
11891        value: *const BNDataBuffer,
11892    ) -> bool;
11893}
11894unsafe extern "C" {
11895    pub fn BNGetKeyValueStoreSerializedData(store: *mut BNKeyValueStore) -> *mut BNDataBuffer;
11896}
11897unsafe extern "C" {
11898    pub fn BNBeginKeyValueStoreNamespace(
11899        store: *mut BNKeyValueStore,
11900        name: *const ::std::os::raw::c_char,
11901    );
11902}
11903unsafe extern "C" {
11904    pub fn BNEndKeyValueStoreNamespace(store: *mut BNKeyValueStore);
11905}
11906unsafe extern "C" {
11907    pub fn BNIsKeyValueStoreEmpty(store: *mut BNKeyValueStore) -> bool;
11908}
11909unsafe extern "C" {
11910    pub fn BNGetKeyValueStoreValueSize(store: *mut BNKeyValueStore) -> usize;
11911}
11912unsafe extern "C" {
11913    pub fn BNGetKeyValueStoreDataSize(store: *mut BNKeyValueStore) -> usize;
11914}
11915unsafe extern "C" {
11916    pub fn BNGetKeyValueStoreValueStorageSize(store: *mut BNKeyValueStore) -> usize;
11917}
11918unsafe extern "C" {
11919    pub fn BNGetKeyValueStoreNamespaceSize(store: *mut BNKeyValueStore) -> usize;
11920}
11921unsafe extern "C" {
11922    #[doc = " Project object"]
11923    pub fn BNNewProjectReference(project: *mut BNProject) -> *mut BNProject;
11924}
11925unsafe extern "C" {
11926    pub fn BNFreeProject(project: *mut BNProject);
11927}
11928unsafe extern "C" {
11929    pub fn BNFreeProjectList(projects: *mut *mut BNProject, count: usize);
11930}
11931unsafe extern "C" {
11932    pub fn BNGetOpenProjects(count: *mut usize) -> *mut *mut BNProject;
11933}
11934unsafe extern "C" {
11935    pub fn BNCreateProject(
11936        path: *const ::std::os::raw::c_char,
11937        name: *const ::std::os::raw::c_char,
11938    ) -> *mut BNProject;
11939}
11940unsafe extern "C" {
11941    pub fn BNOpenProject(path: *const ::std::os::raw::c_char) -> *mut BNProject;
11942}
11943unsafe extern "C" {
11944    pub fn BNProjectOpen(project: *mut BNProject) -> bool;
11945}
11946unsafe extern "C" {
11947    pub fn BNProjectClose(project: *mut BNProject) -> bool;
11948}
11949unsafe extern "C" {
11950    pub fn BNProjectGetId(project: *mut BNProject) -> *mut ::std::os::raw::c_char;
11951}
11952unsafe extern "C" {
11953    pub fn BNProjectIsOpen(project: *mut BNProject) -> bool;
11954}
11955unsafe extern "C" {
11956    pub fn BNProjectGetPath(project: *mut BNProject) -> *mut ::std::os::raw::c_char;
11957}
11958unsafe extern "C" {
11959    pub fn BNProjectGetFilePathInProject(
11960        project: *mut BNProject,
11961        file: *mut BNProjectFile,
11962    ) -> *mut ::std::os::raw::c_char;
11963}
11964unsafe extern "C" {
11965    pub fn BNProjectGetName(project: *mut BNProject) -> *mut ::std::os::raw::c_char;
11966}
11967unsafe extern "C" {
11968    pub fn BNProjectSetName(project: *mut BNProject, name: *const ::std::os::raw::c_char) -> bool;
11969}
11970unsafe extern "C" {
11971    pub fn BNProjectGetDescription(project: *mut BNProject) -> *mut ::std::os::raw::c_char;
11972}
11973unsafe extern "C" {
11974    pub fn BNProjectSetDescription(
11975        project: *mut BNProject,
11976        description: *const ::std::os::raw::c_char,
11977    ) -> bool;
11978}
11979unsafe extern "C" {
11980    pub fn BNProjectQueryMetadata(
11981        project: *mut BNProject,
11982        key: *const ::std::os::raw::c_char,
11983    ) -> *mut BNMetadata;
11984}
11985unsafe extern "C" {
11986    pub fn BNProjectStoreMetadata(
11987        project: *mut BNProject,
11988        key: *const ::std::os::raw::c_char,
11989        value: *mut BNMetadata,
11990    ) -> bool;
11991}
11992unsafe extern "C" {
11993    pub fn BNProjectRemoveMetadata(
11994        project: *mut BNProject,
11995        key: *const ::std::os::raw::c_char,
11996    ) -> bool;
11997}
11998unsafe extern "C" {
11999    pub fn BNProjectCreateFileFromPath(
12000        project: *mut BNProject,
12001        path: *const ::std::os::raw::c_char,
12002        folder: *mut BNProjectFolder,
12003        name: *const ::std::os::raw::c_char,
12004        description: *const ::std::os::raw::c_char,
12005        ctxt: *mut ::std::os::raw::c_void,
12006        progress: BNProgressFunction,
12007    ) -> *mut BNProjectFile;
12008}
12009unsafe extern "C" {
12010    pub fn BNProjectCreateFileFromPathUnsafe(
12011        project: *mut BNProject,
12012        path: *const ::std::os::raw::c_char,
12013        folder: *mut BNProjectFolder,
12014        name: *const ::std::os::raw::c_char,
12015        description: *const ::std::os::raw::c_char,
12016        id: *const ::std::os::raw::c_char,
12017        creationTimestamp: i64,
12018        ctxt: *mut ::std::os::raw::c_void,
12019        progress: BNProgressFunction,
12020    ) -> *mut BNProjectFile;
12021}
12022unsafe extern "C" {
12023    pub fn BNProjectCreateFile(
12024        project: *mut BNProject,
12025        contents: *const u8,
12026        contentsSize: usize,
12027        folder: *mut BNProjectFolder,
12028        name: *const ::std::os::raw::c_char,
12029        description: *const ::std::os::raw::c_char,
12030        ctxt: *mut ::std::os::raw::c_void,
12031        progress: BNProgressFunction,
12032    ) -> *mut BNProjectFile;
12033}
12034unsafe extern "C" {
12035    pub fn BNProjectCreateFileUnsafe(
12036        project: *mut BNProject,
12037        contents: *const u8,
12038        contentsSize: usize,
12039        folder: *mut BNProjectFolder,
12040        name: *const ::std::os::raw::c_char,
12041        description: *const ::std::os::raw::c_char,
12042        id: *const ::std::os::raw::c_char,
12043        creationTimestamp: i64,
12044        ctxt: *mut ::std::os::raw::c_void,
12045        progress: BNProgressFunction,
12046    ) -> *mut BNProjectFile;
12047}
12048unsafe extern "C" {
12049    pub fn BNProjectGetFiles(project: *mut BNProject, count: *mut usize)
12050    -> *mut *mut BNProjectFile;
12051}
12052unsafe extern "C" {
12053    pub fn BNProjectGetFileById(
12054        project: *mut BNProject,
12055        id: *const ::std::os::raw::c_char,
12056    ) -> *mut BNProjectFile;
12057}
12058unsafe extern "C" {
12059    pub fn BNProjectGetFileByPathOnDisk(
12060        project: *mut BNProject,
12061        path: *const ::std::os::raw::c_char,
12062    ) -> *mut BNProjectFile;
12063}
12064unsafe extern "C" {
12065    pub fn BNProjectGetFilesByPathInProject(
12066        project: *mut BNProject,
12067        path: *const ::std::os::raw::c_char,
12068        count: *mut usize,
12069    ) -> *mut *mut BNProjectFile;
12070}
12071unsafe extern "C" {
12072    pub fn BNProjectGetFilesInFolder(
12073        project: *mut BNProject,
12074        folder: *mut BNProjectFolder,
12075        count: *mut usize,
12076    ) -> *mut *mut BNProjectFile;
12077}
12078unsafe extern "C" {
12079    pub fn BNProjectPushFile(project: *mut BNProject, file: *mut BNProjectFile) -> bool;
12080}
12081unsafe extern "C" {
12082    pub fn BNProjectDeleteFile(project: *mut BNProject, file: *mut BNProjectFile) -> bool;
12083}
12084unsafe extern "C" {
12085    pub fn BNProjectCreateFolderFromPath(
12086        project: *mut BNProject,
12087        path: *const ::std::os::raw::c_char,
12088        parent: *mut BNProjectFolder,
12089        description: *const ::std::os::raw::c_char,
12090        ctxt: *mut ::std::os::raw::c_void,
12091        progress: BNProgressFunction,
12092    ) -> *mut BNProjectFolder;
12093}
12094unsafe extern "C" {
12095    pub fn BNProjectCreateFolder(
12096        project: *mut BNProject,
12097        parent: *mut BNProjectFolder,
12098        name: *const ::std::os::raw::c_char,
12099        description: *const ::std::os::raw::c_char,
12100    ) -> *mut BNProjectFolder;
12101}
12102unsafe extern "C" {
12103    pub fn BNProjectCreateFolderUnsafe(
12104        project: *mut BNProject,
12105        parent: *mut BNProjectFolder,
12106        name: *const ::std::os::raw::c_char,
12107        description: *const ::std::os::raw::c_char,
12108        id: *const ::std::os::raw::c_char,
12109    ) -> *mut BNProjectFolder;
12110}
12111unsafe extern "C" {
12112    pub fn BNProjectGetFolders(
12113        project: *mut BNProject,
12114        count: *mut usize,
12115    ) -> *mut *mut BNProjectFolder;
12116}
12117unsafe extern "C" {
12118    pub fn BNProjectGetFolderById(
12119        project: *mut BNProject,
12120        id: *const ::std::os::raw::c_char,
12121    ) -> *mut BNProjectFolder;
12122}
12123unsafe extern "C" {
12124    pub fn BNProjectPushFolder(project: *mut BNProject, folder: *mut BNProjectFolder) -> bool;
12125}
12126unsafe extern "C" {
12127    pub fn BNProjectDeleteFolder(
12128        project: *mut BNProject,
12129        folder: *mut BNProjectFolder,
12130        ctxt: *mut ::std::os::raw::c_void,
12131        progress: BNProgressFunction,
12132    ) -> bool;
12133}
12134unsafe extern "C" {
12135    pub fn BNProjectBeginBulkOperation(project: *mut BNProject) -> bool;
12136}
12137unsafe extern "C" {
12138    pub fn BNProjectEndBulkOperation(project: *mut BNProject) -> bool;
12139}
12140unsafe extern "C" {
12141    pub fn BNProjectGetRemoteProject(project: *mut BNProject) -> *mut BNRemoteProject;
12142}
12143unsafe extern "C" {
12144    #[doc = " ProjectFile object"]
12145    pub fn BNNewProjectFileReference(file: *mut BNProjectFile) -> *mut BNProjectFile;
12146}
12147unsafe extern "C" {
12148    pub fn BNFreeProjectFile(file: *mut BNProjectFile);
12149}
12150unsafe extern "C" {
12151    pub fn BNFreeProjectFileList(files: *mut *mut BNProjectFile, count: usize);
12152}
12153unsafe extern "C" {
12154    pub fn BNProjectFileGetPathOnDisk(file: *mut BNProjectFile) -> *mut ::std::os::raw::c_char;
12155}
12156unsafe extern "C" {
12157    pub fn BNProjectFileGetPathInProject(file: *const BNProjectFile)
12158    -> *mut ::std::os::raw::c_char;
12159}
12160unsafe extern "C" {
12161    pub fn BNProjectFileExistsOnDisk(file: *mut BNProjectFile) -> bool;
12162}
12163unsafe extern "C" {
12164    pub fn BNProjectFileGetName(file: *mut BNProjectFile) -> *mut ::std::os::raw::c_char;
12165}
12166unsafe extern "C" {
12167    pub fn BNProjectFileSetName(
12168        file: *mut BNProjectFile,
12169        name: *const ::std::os::raw::c_char,
12170    ) -> bool;
12171}
12172unsafe extern "C" {
12173    pub fn BNProjectFileGetDescription(file: *mut BNProjectFile) -> *mut ::std::os::raw::c_char;
12174}
12175unsafe extern "C" {
12176    pub fn BNProjectFileSetDescription(
12177        file: *mut BNProjectFile,
12178        description: *const ::std::os::raw::c_char,
12179    ) -> bool;
12180}
12181unsafe extern "C" {
12182    pub fn BNProjectFileGetId(file: *mut BNProjectFile) -> *mut ::std::os::raw::c_char;
12183}
12184unsafe extern "C" {
12185    pub fn BNProjectFileGetFolder(file: *mut BNProjectFile) -> *mut BNProjectFolder;
12186}
12187unsafe extern "C" {
12188    pub fn BNProjectFileSetFolder(file: *mut BNProjectFile, folder: *mut BNProjectFolder) -> bool;
12189}
12190unsafe extern "C" {
12191    pub fn BNProjectFileGetProject(file: *mut BNProjectFile) -> *mut BNProject;
12192}
12193unsafe extern "C" {
12194    pub fn BNProjectFileExport(
12195        file: *mut BNProjectFile,
12196        destination: *const ::std::os::raw::c_char,
12197    ) -> bool;
12198}
12199unsafe extern "C" {
12200    pub fn BNProjectFileGetCreationTimestamp(file: *mut BNProjectFile) -> i64;
12201}
12202unsafe extern "C" {
12203    pub fn BNProjectFileAddDependency(file: *mut BNProjectFile, dep: *mut BNProjectFile) -> bool;
12204}
12205unsafe extern "C" {
12206    pub fn BNProjectFileRemoveDependency(file: *mut BNProjectFile, dep: *mut BNProjectFile)
12207    -> bool;
12208}
12209unsafe extern "C" {
12210    pub fn BNProjectFileGetDependencies(
12211        file: *mut BNProjectFile,
12212        count: *mut usize,
12213    ) -> *mut *mut BNProjectFile;
12214}
12215unsafe extern "C" {
12216    pub fn BNProjectFileGetRequiredBy(
12217        file: *mut BNProjectFile,
12218        count: *mut usize,
12219    ) -> *mut *mut BNProjectFile;
12220}
12221unsafe extern "C" {
12222    #[doc = " ProjectFolder object"]
12223    pub fn BNNewProjectFolderReference(folder: *mut BNProjectFolder) -> *mut BNProjectFolder;
12224}
12225unsafe extern "C" {
12226    pub fn BNFreeProjectFolder(folder: *mut BNProjectFolder);
12227}
12228unsafe extern "C" {
12229    pub fn BNFreeProjectFolderList(folders: *mut *mut BNProjectFolder, count: usize);
12230}
12231unsafe extern "C" {
12232    pub fn BNProjectFolderGetId(folder: *mut BNProjectFolder) -> *mut ::std::os::raw::c_char;
12233}
12234unsafe extern "C" {
12235    pub fn BNProjectFolderGetName(folder: *mut BNProjectFolder) -> *mut ::std::os::raw::c_char;
12236}
12237unsafe extern "C" {
12238    pub fn BNProjectFolderSetName(
12239        folder: *mut BNProjectFolder,
12240        name: *const ::std::os::raw::c_char,
12241    ) -> bool;
12242}
12243unsafe extern "C" {
12244    pub fn BNProjectFolderGetDescription(
12245        folder: *mut BNProjectFolder,
12246    ) -> *mut ::std::os::raw::c_char;
12247}
12248unsafe extern "C" {
12249    pub fn BNProjectFolderSetDescription(
12250        folder: *mut BNProjectFolder,
12251        description: *const ::std::os::raw::c_char,
12252    ) -> bool;
12253}
12254unsafe extern "C" {
12255    pub fn BNProjectFolderGetParent(folder: *mut BNProjectFolder) -> *mut BNProjectFolder;
12256}
12257unsafe extern "C" {
12258    pub fn BNProjectFolderSetParent(
12259        folder: *mut BNProjectFolder,
12260        parent: *mut BNProjectFolder,
12261    ) -> bool;
12262}
12263unsafe extern "C" {
12264    pub fn BNProjectFolderGetProject(folder: *mut BNProjectFolder) -> *mut BNProject;
12265}
12266unsafe extern "C" {
12267    pub fn BNProjectFolderExport(
12268        folder: *mut BNProjectFolder,
12269        destination: *const ::std::os::raw::c_char,
12270        ctxt: *mut ::std::os::raw::c_void,
12271        progress: BNProgressFunction,
12272    ) -> bool;
12273}
12274unsafe extern "C" {
12275    pub fn BNProjectFolderGetFiles(
12276        folder: *mut BNProjectFolder,
12277        count: *mut usize,
12278    ) -> *mut *mut BNProjectFile;
12279}
12280unsafe extern "C" {
12281    #[doc = " ExternalLibrary object"]
12282    pub fn BNNewExternalLibraryReference(lib: *mut BNExternalLibrary) -> *mut BNExternalLibrary;
12283}
12284unsafe extern "C" {
12285    pub fn BNFreeExternalLibrary(lib: *mut BNExternalLibrary);
12286}
12287unsafe extern "C" {
12288    pub fn BNFreeExternalLibraryList(libs: *mut *mut BNExternalLibrary, count: usize);
12289}
12290unsafe extern "C" {
12291    pub fn BNExternalLibraryGetName(lib: *mut BNExternalLibrary) -> *mut ::std::os::raw::c_char;
12292}
12293unsafe extern "C" {
12294    pub fn BNExternalLibrarySetBackingFile(lib: *mut BNExternalLibrary, file: *mut BNProjectFile);
12295}
12296unsafe extern "C" {
12297    pub fn BNExternalLibraryGetBackingFile(lib: *mut BNExternalLibrary) -> *mut BNProjectFile;
12298}
12299unsafe extern "C" {
12300    #[doc = " ExternalLocation object"]
12301    pub fn BNNewExternalLocationReference(loc: *mut BNExternalLocation) -> *mut BNExternalLocation;
12302}
12303unsafe extern "C" {
12304    pub fn BNFreeExternalLocation(loc: *mut BNExternalLocation);
12305}
12306unsafe extern "C" {
12307    pub fn BNFreeExternalLocationList(locs: *mut *mut BNExternalLocation, count: usize);
12308}
12309unsafe extern "C" {
12310    pub fn BNExternalLocationGetSourceSymbol(loc: *mut BNExternalLocation) -> *mut BNSymbol;
12311}
12312unsafe extern "C" {
12313    pub fn BNExternalLocationGetTargetAddress(loc: *mut BNExternalLocation) -> u64;
12314}
12315unsafe extern "C" {
12316    pub fn BNExternalLocationGetTargetSymbol(
12317        loc: *mut BNExternalLocation,
12318    ) -> *mut ::std::os::raw::c_char;
12319}
12320unsafe extern "C" {
12321    pub fn BNExternalLocationGetExternalLibrary(
12322        loc: *mut BNExternalLocation,
12323    ) -> *mut BNExternalLibrary;
12324}
12325unsafe extern "C" {
12326    pub fn BNExternalLocationHasTargetAddress(loc: *mut BNExternalLocation) -> bool;
12327}
12328unsafe extern "C" {
12329    pub fn BNExternalLocationHasTargetSymbol(loc: *mut BNExternalLocation) -> bool;
12330}
12331unsafe extern "C" {
12332    pub fn BNExternalLocationSetTargetAddress(
12333        loc: *mut BNExternalLocation,
12334        address: *mut u64,
12335    ) -> bool;
12336}
12337unsafe extern "C" {
12338    pub fn BNExternalLocationSetTargetSymbol(
12339        loc: *mut BNExternalLocation,
12340        symbol: *const ::std::os::raw::c_char,
12341    ) -> bool;
12342}
12343unsafe extern "C" {
12344    pub fn BNExternalLocationSetExternalLibrary(
12345        loc: *mut BNExternalLocation,
12346        library: *mut BNExternalLibrary,
12347    );
12348}
12349unsafe extern "C" {
12350    #[doc = " Database object"]
12351    pub fn BNNewDatabaseReference(database: *mut BNDatabase) -> *mut BNDatabase;
12352}
12353unsafe extern "C" {
12354    pub fn BNFreeDatabase(database: *mut BNDatabase);
12355}
12356unsafe extern "C" {
12357    pub fn BNSetDatabaseCurrentSnapshot(database: *mut BNDatabase, id: i64);
12358}
12359unsafe extern "C" {
12360    pub fn BNGetDatabaseCurrentSnapshot(database: *mut BNDatabase) -> *mut BNSnapshot;
12361}
12362unsafe extern "C" {
12363    pub fn BNGetDatabaseSnapshots(
12364        database: *mut BNDatabase,
12365        count: *mut usize,
12366    ) -> *mut *mut BNSnapshot;
12367}
12368unsafe extern "C" {
12369    pub fn BNGetDatabaseSnapshot(database: *mut BNDatabase, id: i64) -> *mut BNSnapshot;
12370}
12371unsafe extern "C" {
12372    pub fn BNWriteDatabaseSnapshotData(
12373        database: *mut BNDatabase,
12374        parents: *mut i64,
12375        parentCount: usize,
12376        file: *mut BNBinaryView,
12377        name: *const ::std::os::raw::c_char,
12378        data: *mut BNKeyValueStore,
12379        autoSave: bool,
12380        ctxt: *mut ::std::os::raw::c_void,
12381        progress: BNProgressFunction,
12382    ) -> i64;
12383}
12384unsafe extern "C" {
12385    pub fn BNTrimDatabaseSnapshot(database: *mut BNDatabase, id: i64) -> bool;
12386}
12387unsafe extern "C" {
12388    pub fn BNRemoveDatabaseSnapshot(database: *mut BNDatabase, id: i64) -> bool;
12389}
12390unsafe extern "C" {
12391    pub fn BNGetDatabaseGlobalKeys(
12392        database: *mut BNDatabase,
12393        count: *mut usize,
12394    ) -> *mut *mut ::std::os::raw::c_char;
12395}
12396unsafe extern "C" {
12397    pub fn BNDatabaseHasGlobal(
12398        database: *mut BNDatabase,
12399        key: *const ::std::os::raw::c_char,
12400    ) -> ::std::os::raw::c_int;
12401}
12402unsafe extern "C" {
12403    pub fn BNReadDatabaseGlobal(
12404        database: *mut BNDatabase,
12405        key: *const ::std::os::raw::c_char,
12406    ) -> *mut ::std::os::raw::c_char;
12407}
12408unsafe extern "C" {
12409    pub fn BNWriteDatabaseGlobal(
12410        database: *mut BNDatabase,
12411        key: *const ::std::os::raw::c_char,
12412        val: *const ::std::os::raw::c_char,
12413    ) -> bool;
12414}
12415unsafe extern "C" {
12416    pub fn BNReadDatabaseGlobalData(
12417        database: *mut BNDatabase,
12418        key: *const ::std::os::raw::c_char,
12419    ) -> *mut BNDataBuffer;
12420}
12421unsafe extern "C" {
12422    pub fn BNWriteDatabaseGlobalData(
12423        database: *mut BNDatabase,
12424        key: *const ::std::os::raw::c_char,
12425        val: *mut BNDataBuffer,
12426    ) -> bool;
12427}
12428unsafe extern "C" {
12429    pub fn BNGetDatabaseFile(database: *mut BNDatabase) -> *mut BNFileMetadata;
12430}
12431unsafe extern "C" {
12432    pub fn BNDatabaseReloadConnection(database: *mut BNDatabase);
12433}
12434unsafe extern "C" {
12435    pub fn BNReadDatabaseAnalysisCache(database: *mut BNDatabase) -> *mut BNKeyValueStore;
12436}
12437unsafe extern "C" {
12438    pub fn BNWriteDatabaseAnalysisCache(
12439        database: *mut BNDatabase,
12440        val: *mut BNKeyValueStore,
12441    ) -> bool;
12442}
12443unsafe extern "C" {
12444    pub fn BNSnapshotHasData(db: *mut BNDatabase, id: i64) -> bool;
12445}
12446unsafe extern "C" {
12447    #[doc = " Database snapshots"]
12448    pub fn BNNewSnapshotReference(snapshot: *mut BNSnapshot) -> *mut BNSnapshot;
12449}
12450unsafe extern "C" {
12451    pub fn BNFreeSnapshot(snapshot: *mut BNSnapshot);
12452}
12453unsafe extern "C" {
12454    pub fn BNFreeSnapshotList(snapshots: *mut *mut BNSnapshot, count: usize);
12455}
12456unsafe extern "C" {
12457    pub fn BNGetSnapshotDatabase(snapshot: *mut BNSnapshot) -> *mut BNDatabase;
12458}
12459unsafe extern "C" {
12460    pub fn BNGetSnapshotId(snapshot: *mut BNSnapshot) -> i64;
12461}
12462unsafe extern "C" {
12463    pub fn BNGetSnapshotFirstParent(snapshot: *mut BNSnapshot) -> *mut BNSnapshot;
12464}
12465unsafe extern "C" {
12466    pub fn BNGetSnapshotParents(
12467        snapshot: *mut BNSnapshot,
12468        count: *mut usize,
12469    ) -> *mut *mut BNSnapshot;
12470}
12471unsafe extern "C" {
12472    pub fn BNGetSnapshotChildren(
12473        snapshot: *mut BNSnapshot,
12474        count: *mut usize,
12475    ) -> *mut *mut BNSnapshot;
12476}
12477unsafe extern "C" {
12478    pub fn BNGetSnapshotName(snapshot: *mut BNSnapshot) -> *mut ::std::os::raw::c_char;
12479}
12480unsafe extern "C" {
12481    pub fn BNSetSnapshotName(snapshot: *mut BNSnapshot, name: *const ::std::os::raw::c_char);
12482}
12483unsafe extern "C" {
12484    pub fn BNIsSnapshotAutoSave(snapshot: *mut BNSnapshot) -> bool;
12485}
12486unsafe extern "C" {
12487    pub fn BNSnapshotHasContents(snapshot: *mut BNSnapshot) -> bool;
12488}
12489unsafe extern "C" {
12490    pub fn BNSnapshotHasUndo(snapshot: *mut BNSnapshot) -> bool;
12491}
12492unsafe extern "C" {
12493    pub fn BNGetSnapshotFileContents(snapshot: *mut BNSnapshot) -> *mut BNDataBuffer;
12494}
12495unsafe extern "C" {
12496    pub fn BNGetSnapshotFileContentsHash(snapshot: *mut BNSnapshot) -> *mut BNDataBuffer;
12497}
12498unsafe extern "C" {
12499    pub fn BNReadSnapshotData(snapshot: *mut BNSnapshot) -> *mut BNKeyValueStore;
12500}
12501unsafe extern "C" {
12502    pub fn BNReadSnapshotDataWithProgress(
12503        snapshot: *mut BNSnapshot,
12504        ctxt: *mut ::std::os::raw::c_void,
12505        progress: BNProgressFunction,
12506    ) -> *mut BNKeyValueStore;
12507}
12508unsafe extern "C" {
12509    pub fn BNGetSnapshotUndoData(snapshot: *mut BNSnapshot) -> *mut BNDataBuffer;
12510}
12511unsafe extern "C" {
12512    pub fn BNGetSnapshotUndoEntries(
12513        snapshot: *mut BNSnapshot,
12514        count: *mut usize,
12515    ) -> *mut *mut BNUndoEntry;
12516}
12517unsafe extern "C" {
12518    pub fn BNGetSnapshotUndoEntriesWithProgress(
12519        snapshot: *mut BNSnapshot,
12520        ctxt: *mut ::std::os::raw::c_void,
12521        progress: BNProgressFunction,
12522        count: *mut usize,
12523    ) -> *mut *mut BNUndoEntry;
12524}
12525unsafe extern "C" {
12526    pub fn BNSnapshotHasAncestor(snapshot: *mut BNSnapshot, other: *mut BNSnapshot) -> bool;
12527}
12528unsafe extern "C" {
12529    pub fn BNSnapshotStoreData(
12530        snapshot: *mut BNSnapshot,
12531        data: *mut BNKeyValueStore,
12532        ctxt: *mut ::std::os::raw::c_void,
12533        progress: BNProgressFunction,
12534    ) -> bool;
12535}
12536unsafe extern "C" {
12537    #[doc = " Undo actions"]
12538    pub fn BNNewUndoActionReference(action: *mut BNUndoAction) -> *mut BNUndoAction;
12539}
12540unsafe extern "C" {
12541    pub fn BNFreeUndoAction(action: *mut BNUndoAction);
12542}
12543unsafe extern "C" {
12544    pub fn BNFreeUndoActionList(actions: *mut *mut BNUndoAction, count: usize);
12545}
12546unsafe extern "C" {
12547    pub fn BNUndoActionGetSummaryText(action: *mut BNUndoAction) -> *mut ::std::os::raw::c_char;
12548}
12549unsafe extern "C" {
12550    pub fn BNUndoActionGetSummary(
12551        action: *mut BNUndoAction,
12552        tokenCount: *mut usize,
12553    ) -> *mut BNInstructionTextToken;
12554}
12555unsafe extern "C" {
12556    #[doc = " Undo entries"]
12557    pub fn BNNewUndoEntryReference(entry: *mut BNUndoEntry) -> *mut BNUndoEntry;
12558}
12559unsafe extern "C" {
12560    pub fn BNFreeUndoEntry(entry: *mut BNUndoEntry);
12561}
12562unsafe extern "C" {
12563    pub fn BNFreeUndoEntryList(entrys: *mut *mut BNUndoEntry, count: usize);
12564}
12565unsafe extern "C" {
12566    pub fn BNUndoEntryGetId(entry: *mut BNUndoEntry) -> *mut ::std::os::raw::c_char;
12567}
12568unsafe extern "C" {
12569    pub fn BNUndoEntryGetActions(
12570        entry: *mut BNUndoEntry,
12571        count: *mut usize,
12572    ) -> *mut *mut BNUndoAction;
12573}
12574unsafe extern "C" {
12575    pub fn BNUndoEntryGetTimestamp(entry: *mut BNUndoEntry) -> u64;
12576}
12577unsafe extern "C" {
12578    pub fn BNRebase(data: *mut BNBinaryView, address: u64) -> bool;
12579}
12580unsafe extern "C" {
12581    pub fn BNRebaseWithProgress(
12582        data: *mut BNBinaryView,
12583        address: u64,
12584        ctxt: *mut ::std::os::raw::c_void,
12585        progress: BNProgressFunction,
12586    ) -> bool;
12587}
12588unsafe extern "C" {
12589    pub fn BNCreateSnapshotedView(
12590        data: *mut BNBinaryView,
12591        viewName: *const ::std::os::raw::c_char,
12592    ) -> bool;
12593}
12594unsafe extern "C" {
12595    pub fn BNCreateSnapshotedViewWithProgress(
12596        data: *mut BNBinaryView,
12597        viewName: *const ::std::os::raw::c_char,
12598        ctxt: *mut ::std::os::raw::c_void,
12599        progress: BNProgressFunction,
12600    ) -> bool;
12601}
12602unsafe extern "C" {
12603    pub fn BNGetOriginalFilename(file: *mut BNFileMetadata) -> *mut ::std::os::raw::c_char;
12604}
12605unsafe extern "C" {
12606    pub fn BNSetOriginalFilename(file: *mut BNFileMetadata, name: *const ::std::os::raw::c_char);
12607}
12608unsafe extern "C" {
12609    pub fn BNGetFilename(file: *mut BNFileMetadata) -> *mut ::std::os::raw::c_char;
12610}
12611unsafe extern "C" {
12612    pub fn BNSetFilename(file: *mut BNFileMetadata, name: *const ::std::os::raw::c_char);
12613}
12614unsafe extern "C" {
12615    pub fn BNGetVirtualPath(file: *mut BNFileMetadata) -> *mut ::std::os::raw::c_char;
12616}
12617unsafe extern "C" {
12618    pub fn BNSetVirtualPath(file: *mut BNFileMetadata, path: *const ::std::os::raw::c_char);
12619}
12620unsafe extern "C" {
12621    pub fn BNGetDisplayName(file: *mut BNFileMetadata) -> *mut ::std::os::raw::c_char;
12622}
12623unsafe extern "C" {
12624    pub fn BNSetDisplayName(file: *mut BNFileMetadata, name: *const ::std::os::raw::c_char);
12625}
12626unsafe extern "C" {
12627    pub fn BNGetProjectFile(file: *mut BNFileMetadata) -> *mut BNProjectFile;
12628}
12629unsafe extern "C" {
12630    pub fn BNSetProjectFile(file: *mut BNFileMetadata, pfile: *mut BNProjectFile);
12631}
12632unsafe extern "C" {
12633    pub fn BNBeginUndoActions(
12634        file: *mut BNFileMetadata,
12635        anonymousAllowed: bool,
12636    ) -> *mut ::std::os::raw::c_char;
12637}
12638unsafe extern "C" {
12639    pub fn BNCommitUndoActions(file: *mut BNFileMetadata, id: *const ::std::os::raw::c_char);
12640}
12641unsafe extern "C" {
12642    pub fn BNRevertUndoActions(file: *mut BNFileMetadata, id: *const ::std::os::raw::c_char);
12643}
12644unsafe extern "C" {
12645    pub fn BNForgetUndoActions(file: *mut BNFileMetadata, id: *const ::std::os::raw::c_char);
12646}
12647unsafe extern "C" {
12648    pub fn BNCanUndo(file: *mut BNFileMetadata) -> bool;
12649}
12650unsafe extern "C" {
12651    pub fn BNUndo(file: *mut BNFileMetadata) -> bool;
12652}
12653unsafe extern "C" {
12654    pub fn BNCanRedo(file: *mut BNFileMetadata) -> bool;
12655}
12656unsafe extern "C" {
12657    pub fn BNRedo(file: *mut BNFileMetadata) -> bool;
12658}
12659unsafe extern "C" {
12660    pub fn BNGetUndoEntries(file: *mut BNFileMetadata, count: *mut usize) -> *mut *mut BNUndoEntry;
12661}
12662unsafe extern "C" {
12663    pub fn BNGetRedoEntries(file: *mut BNFileMetadata, count: *mut usize) -> *mut *mut BNUndoEntry;
12664}
12665unsafe extern "C" {
12666    pub fn BNGetLastUndoEntry(file: *mut BNFileMetadata) -> *mut BNUndoEntry;
12667}
12668unsafe extern "C" {
12669    pub fn BNGetLastRedoEntry(file: *mut BNFileMetadata) -> *mut BNUndoEntry;
12670}
12671unsafe extern "C" {
12672    pub fn BNGetLastUndoEntryTitle(file: *mut BNFileMetadata) -> *mut ::std::os::raw::c_char;
12673}
12674unsafe extern "C" {
12675    pub fn BNGetLastRedoEntryTitle(file: *mut BNFileMetadata) -> *mut ::std::os::raw::c_char;
12676}
12677unsafe extern "C" {
12678    pub fn BNFreeUndoEntries(entries: *mut *mut BNUndoEntry, count: usize);
12679}
12680unsafe extern "C" {
12681    pub fn BNClearUndoEntries(file: *mut BNFileMetadata);
12682}
12683unsafe extern "C" {
12684    pub fn BNNewUserReference(user: *mut BNUser) -> *mut BNUser;
12685}
12686unsafe extern "C" {
12687    pub fn BNFreeUser(user: *mut BNUser);
12688}
12689unsafe extern "C" {
12690    pub fn BNGetUsers(file: *mut BNFileMetadata, count: *mut usize) -> *mut *mut BNUser;
12691}
12692unsafe extern "C" {
12693    pub fn BNFreeUserList(users: *mut *mut BNUser, count: usize);
12694}
12695unsafe extern "C" {
12696    pub fn BNGetUserName(user: *mut BNUser) -> *mut ::std::os::raw::c_char;
12697}
12698unsafe extern "C" {
12699    pub fn BNGetUserEmail(user: *mut BNUser) -> *mut ::std::os::raw::c_char;
12700}
12701unsafe extern "C" {
12702    pub fn BNGetUserId(user: *mut BNUser) -> *mut ::std::os::raw::c_char;
12703}
12704unsafe extern "C" {
12705    pub fn BNGetCurrentView(file: *mut BNFileMetadata) -> *mut ::std::os::raw::c_char;
12706}
12707unsafe extern "C" {
12708    pub fn BNGetCurrentOffset(file: *mut BNFileMetadata) -> u64;
12709}
12710unsafe extern "C" {
12711    pub fn BNNavigate(
12712        file: *mut BNFileMetadata,
12713        view: *const ::std::os::raw::c_char,
12714        offset: u64,
12715    ) -> bool;
12716}
12717unsafe extern "C" {
12718    pub fn BNGetFileViewOfType(
12719        file: *mut BNFileMetadata,
12720        name: *const ::std::os::raw::c_char,
12721    ) -> *mut BNBinaryView;
12722}
12723unsafe extern "C" {
12724    pub fn BNGetExistingViews(
12725        file: *mut BNFileMetadata,
12726        count: *mut usize,
12727    ) -> *mut *mut ::std::os::raw::c_char;
12728}
12729unsafe extern "C" {
12730    pub fn BNFileMetadataGetSessionId(file: *mut BNFileMetadata) -> usize;
12731}
12732unsafe extern "C" {
12733    pub fn BNIsSnapshotDataAppliedWithoutError(view: *mut BNFileMetadata) -> bool;
12734}
12735unsafe extern "C" {
12736    pub fn BNUnregisterViewOfType(
12737        file: *mut BNFileMetadata,
12738        type_: *const ::std::os::raw::c_char,
12739        view: *mut BNBinaryView,
12740    );
12741}
12742unsafe extern "C" {
12743    #[doc = " Memory Map"]
12744    pub fn BNGetBaseMemoryMapDescription(view: *mut BNBinaryView) -> *mut ::std::os::raw::c_char;
12745}
12746unsafe extern "C" {
12747    pub fn BNGetMemoryMapDescription(view: *mut BNBinaryView) -> *mut ::std::os::raw::c_char;
12748}
12749unsafe extern "C" {
12750    pub fn BNSetLogicalMemoryMapEnabled(view: *mut BNBinaryView, enabled: bool);
12751}
12752unsafe extern "C" {
12753    pub fn BNIsMemoryMapActivated(view: *mut BNBinaryView) -> bool;
12754}
12755unsafe extern "C" {
12756    pub fn BNAddBinaryMemoryRegion(
12757        view: *mut BNBinaryView,
12758        name: *const ::std::os::raw::c_char,
12759        start: u64,
12760        data: *mut BNBinaryView,
12761        flags: u32,
12762    ) -> bool;
12763}
12764unsafe extern "C" {
12765    pub fn BNAddDataMemoryRegion(
12766        view: *mut BNBinaryView,
12767        name: *const ::std::os::raw::c_char,
12768        start: u64,
12769        data: *mut BNDataBuffer,
12770        flags: u32,
12771    ) -> bool;
12772}
12773unsafe extern "C" {
12774    pub fn BNAddUnbackedMemoryRegion(
12775        view: *mut BNBinaryView,
12776        name: *const ::std::os::raw::c_char,
12777        start: u64,
12778        length: u64,
12779        flags: u32,
12780        fill: u8,
12781    ) -> bool;
12782}
12783unsafe extern "C" {
12784    pub fn BNAddRemoteMemoryRegion(
12785        view: *mut BNBinaryView,
12786        name: *const ::std::os::raw::c_char,
12787        start: u64,
12788        accessor: *mut BNFileAccessor,
12789        flags: u32,
12790    ) -> bool;
12791}
12792unsafe extern "C" {
12793    pub fn BNRemoveMemoryRegion(
12794        view: *mut BNBinaryView,
12795        name: *const ::std::os::raw::c_char,
12796    ) -> bool;
12797}
12798unsafe extern "C" {
12799    pub fn BNGetActiveMemoryRegionAt(
12800        view: *mut BNBinaryView,
12801        addr: u64,
12802    ) -> *mut ::std::os::raw::c_char;
12803}
12804unsafe extern "C" {
12805    pub fn BNGetMemoryRegionFlags(
12806        view: *mut BNBinaryView,
12807        name: *const ::std::os::raw::c_char,
12808    ) -> u32;
12809}
12810unsafe extern "C" {
12811    pub fn BNSetMemoryRegionFlags(
12812        view: *mut BNBinaryView,
12813        name: *const ::std::os::raw::c_char,
12814        flags: u32,
12815    ) -> bool;
12816}
12817unsafe extern "C" {
12818    pub fn BNIsMemoryRegionEnabled(
12819        view: *mut BNBinaryView,
12820        name: *const ::std::os::raw::c_char,
12821    ) -> bool;
12822}
12823unsafe extern "C" {
12824    pub fn BNSetMemoryRegionEnabled(
12825        view: *mut BNBinaryView,
12826        name: *const ::std::os::raw::c_char,
12827        enable: bool,
12828    ) -> bool;
12829}
12830unsafe extern "C" {
12831    pub fn BNIsMemoryRegionRebaseable(
12832        view: *mut BNBinaryView,
12833        name: *const ::std::os::raw::c_char,
12834    ) -> bool;
12835}
12836unsafe extern "C" {
12837    pub fn BNSetMemoryRegionRebaseable(
12838        view: *mut BNBinaryView,
12839        name: *const ::std::os::raw::c_char,
12840        rebaseable: bool,
12841    ) -> bool;
12842}
12843unsafe extern "C" {
12844    pub fn BNGetMemoryRegionFill(
12845        view: *mut BNBinaryView,
12846        name: *const ::std::os::raw::c_char,
12847    ) -> u8;
12848}
12849unsafe extern "C" {
12850    pub fn BNSetMemoryRegionFill(
12851        view: *mut BNBinaryView,
12852        name: *const ::std::os::raw::c_char,
12853        fill: u8,
12854    ) -> bool;
12855}
12856unsafe extern "C" {
12857    pub fn BNGetMemoryRegionDisplayName(
12858        view: *mut BNBinaryView,
12859        name: *const ::std::os::raw::c_char,
12860    ) -> *mut ::std::os::raw::c_char;
12861}
12862unsafe extern "C" {
12863    pub fn BNSetMemoryRegionDisplayName(
12864        view: *mut BNBinaryView,
12865        name: *const ::std::os::raw::c_char,
12866        displayName: *const ::std::os::raw::c_char,
12867    ) -> bool;
12868}
12869unsafe extern "C" {
12870    pub fn BNIsMemoryRegionLocal(
12871        view: *mut BNBinaryView,
12872        name: *const ::std::os::raw::c_char,
12873    ) -> bool;
12874}
12875unsafe extern "C" {
12876    pub fn BNGetMemoryRegionInfo(
12877        view: *mut BNBinaryView,
12878        name: *const ::std::os::raw::c_char,
12879        result: *mut BNMemoryRegionInfo,
12880    ) -> bool;
12881}
12882unsafe extern "C" {
12883    pub fn BNGetActiveMemoryRegionInfoAt(
12884        view: *mut BNBinaryView,
12885        addr: u64,
12886        result: *mut BNMemoryRegionInfo,
12887    ) -> bool;
12888}
12889unsafe extern "C" {
12890    pub fn BNGetResolvedMemoryRangeAt(
12891        view: *mut BNBinaryView,
12892        addr: u64,
12893        result: *mut BNResolvedMemoryRange,
12894    ) -> bool;
12895}
12896unsafe extern "C" {
12897    pub fn BNFreeMemoryRegionInfo(info: *mut BNMemoryRegionInfo);
12898}
12899unsafe extern "C" {
12900    pub fn BNFreeResolvedMemoryRange(range: *mut BNResolvedMemoryRange);
12901}
12902unsafe extern "C" {
12903    pub fn BNGetMemoryRegions(
12904        view: *mut BNBinaryView,
12905        count: *mut usize,
12906    ) -> *mut BNMemoryRegionInfo;
12907}
12908unsafe extern "C" {
12909    pub fn BNFreeMemoryRegions(regions: *mut BNMemoryRegionInfo, count: usize);
12910}
12911unsafe extern "C" {
12912    pub fn BNGetResolvedMemoryRanges(
12913        view: *mut BNBinaryView,
12914        count: *mut usize,
12915    ) -> *mut BNResolvedMemoryRange;
12916}
12917unsafe extern "C" {
12918    pub fn BNFreeResolvedMemoryRanges(ranges: *mut BNResolvedMemoryRange, count: usize);
12919}
12920unsafe extern "C" {
12921    pub fn BNResetMemoryMap(view: *mut BNBinaryView);
12922}
12923unsafe extern "C" {
12924    #[doc = " Binary view access"]
12925    pub fn BNNewViewReference(view: *mut BNBinaryView) -> *mut BNBinaryView;
12926}
12927unsafe extern "C" {
12928    pub fn BNFreeBinaryView(view: *mut BNBinaryView);
12929}
12930unsafe extern "C" {
12931    pub fn BNGetFileForView(view: *mut BNBinaryView) -> *mut BNFileMetadata;
12932}
12933unsafe extern "C" {
12934    pub fn BNGetViewType(view: *mut BNBinaryView) -> *mut ::std::os::raw::c_char;
12935}
12936unsafe extern "C" {
12937    pub fn BNGetParentView(view: *mut BNBinaryView) -> *mut BNBinaryView;
12938}
12939unsafe extern "C" {
12940    pub fn BNReadViewData(
12941        view: *mut BNBinaryView,
12942        dest: *mut ::std::os::raw::c_void,
12943        offset: u64,
12944        len: usize,
12945    ) -> usize;
12946}
12947unsafe extern "C" {
12948    pub fn BNReadViewBuffer(view: *mut BNBinaryView, offset: u64, len: usize) -> *mut BNDataBuffer;
12949}
12950unsafe extern "C" {
12951    pub fn BNGetViewDataPointer(view: *mut BNBinaryView) -> *const u8;
12952}
12953unsafe extern "C" {
12954    pub fn BNGetViewDataLength(view: *mut BNBinaryView) -> usize;
12955}
12956unsafe extern "C" {
12957    pub fn BNWriteViewData(
12958        view: *mut BNBinaryView,
12959        offset: u64,
12960        data: *const ::std::os::raw::c_void,
12961        len: usize,
12962    ) -> usize;
12963}
12964unsafe extern "C" {
12965    pub fn BNWriteViewBuffer(
12966        view: *mut BNBinaryView,
12967        offset: u64,
12968        data: *mut BNDataBuffer,
12969    ) -> usize;
12970}
12971unsafe extern "C" {
12972    pub fn BNInsertViewData(
12973        view: *mut BNBinaryView,
12974        offset: u64,
12975        data: *const ::std::os::raw::c_void,
12976        len: usize,
12977    ) -> usize;
12978}
12979unsafe extern "C" {
12980    pub fn BNInsertViewBuffer(
12981        view: *mut BNBinaryView,
12982        offset: u64,
12983        data: *mut BNDataBuffer,
12984    ) -> usize;
12985}
12986unsafe extern "C" {
12987    pub fn BNRemoveViewData(view: *mut BNBinaryView, offset: u64, len: u64) -> usize;
12988}
12989unsafe extern "C" {
12990    pub fn BNNotifyDataWritten(view: *mut BNBinaryView, offset: u64, len: usize);
12991}
12992unsafe extern "C" {
12993    pub fn BNNotifyDataInserted(view: *mut BNBinaryView, offset: u64, len: usize);
12994}
12995unsafe extern "C" {
12996    pub fn BNNotifyDataRemoved(view: *mut BNBinaryView, offset: u64, len: u64);
12997}
12998unsafe extern "C" {
12999    pub fn BNGetEntropy(
13000        view: *mut BNBinaryView,
13001        offset: u64,
13002        len: usize,
13003        blockSize: usize,
13004        result: *mut f32,
13005    ) -> usize;
13006}
13007unsafe extern "C" {
13008    pub fn BNGetModification(view: *mut BNBinaryView, offset: u64) -> BNModificationStatus;
13009}
13010unsafe extern "C" {
13011    pub fn BNGetModificationArray(
13012        view: *mut BNBinaryView,
13013        offset: u64,
13014        result: *mut BNModificationStatus,
13015        len: usize,
13016    ) -> usize;
13017}
13018unsafe extern "C" {
13019    pub fn BNIsValidOffset(view: *mut BNBinaryView, offset: u64) -> bool;
13020}
13021unsafe extern "C" {
13022    pub fn BNIsOffsetReadable(view: *mut BNBinaryView, offset: u64) -> bool;
13023}
13024unsafe extern "C" {
13025    pub fn BNIsOffsetWritable(view: *mut BNBinaryView, offset: u64) -> bool;
13026}
13027unsafe extern "C" {
13028    pub fn BNIsOffsetExecutable(view: *mut BNBinaryView, offset: u64) -> bool;
13029}
13030unsafe extern "C" {
13031    pub fn BNIsOffsetBackedByFile(view: *mut BNBinaryView, offset: u64) -> bool;
13032}
13033unsafe extern "C" {
13034    pub fn BNIsOffsetCodeSemantics(view: *mut BNBinaryView, offset: u64) -> bool;
13035}
13036unsafe extern "C" {
13037    pub fn BNIsOffsetExternSemantics(view: *mut BNBinaryView, offset: u64) -> bool;
13038}
13039unsafe extern "C" {
13040    pub fn BNIsOffsetWritableSemantics(view: *mut BNBinaryView, offset: u64) -> bool;
13041}
13042unsafe extern "C" {
13043    pub fn BNIsOffsetReadOnlySemantics(view: *mut BNBinaryView, offset: u64) -> bool;
13044}
13045unsafe extern "C" {
13046    pub fn BNGetNextValidOffset(view: *mut BNBinaryView, offset: u64) -> u64;
13047}
13048unsafe extern "C" {
13049    pub fn BNGetImageBase(view: *mut BNBinaryView) -> u64;
13050}
13051unsafe extern "C" {
13052    pub fn BNGetOriginalImageBase(view: *mut BNBinaryView) -> u64;
13053}
13054unsafe extern "C" {
13055    pub fn BNSetOriginalImageBase(view: *mut BNBinaryView, imageBase: u64);
13056}
13057unsafe extern "C" {
13058    pub fn BNGetStartOffset(view: *mut BNBinaryView) -> u64;
13059}
13060unsafe extern "C" {
13061    pub fn BNGetEndOffset(view: *mut BNBinaryView) -> u64;
13062}
13063unsafe extern "C" {
13064    pub fn BNGetViewLength(view: *mut BNBinaryView) -> u64;
13065}
13066unsafe extern "C" {
13067    pub fn BNGetEntryPoint(view: *mut BNBinaryView) -> u64;
13068}
13069unsafe extern "C" {
13070    pub fn BNGetDefaultArchitecture(view: *mut BNBinaryView) -> *mut BNArchitecture;
13071}
13072unsafe extern "C" {
13073    pub fn BNSetDefaultArchitecture(view: *mut BNBinaryView, arch: *mut BNArchitecture);
13074}
13075unsafe extern "C" {
13076    pub fn BNGetDefaultPlatform(view: *mut BNBinaryView) -> *mut BNPlatform;
13077}
13078unsafe extern "C" {
13079    pub fn BNSetDefaultPlatform(view: *mut BNBinaryView, platform: *mut BNPlatform);
13080}
13081unsafe extern "C" {
13082    pub fn BNGetDefaultEndianness(view: *mut BNBinaryView) -> BNEndianness;
13083}
13084unsafe extern "C" {
13085    pub fn BNIsRelocatable(view: *mut BNBinaryView) -> bool;
13086}
13087unsafe extern "C" {
13088    pub fn BNGetViewAddressSize(view: *mut BNBinaryView) -> usize;
13089}
13090unsafe extern "C" {
13091    pub fn BNIsViewModified(view: *mut BNBinaryView) -> bool;
13092}
13093unsafe extern "C" {
13094    pub fn BNIsExecutableView(view: *mut BNBinaryView) -> bool;
13095}
13096unsafe extern "C" {
13097    pub fn BNSaveToFile(view: *mut BNBinaryView, file: *mut BNFileAccessor) -> bool;
13098}
13099unsafe extern "C" {
13100    pub fn BNSaveToFilename(
13101        view: *mut BNBinaryView,
13102        filename: *const ::std::os::raw::c_char,
13103    ) -> bool;
13104}
13105unsafe extern "C" {
13106    pub fn BNDefineRelocation(
13107        view: *mut BNBinaryView,
13108        arch: *mut BNArchitecture,
13109        info: *mut BNRelocationInfo,
13110        target: u64,
13111        reloc: u64,
13112    );
13113}
13114unsafe extern "C" {
13115    pub fn BNDefineSymbolRelocation(
13116        view: *mut BNBinaryView,
13117        arch: *mut BNArchitecture,
13118        info: *mut BNRelocationInfo,
13119        target: *mut BNSymbol,
13120        reloc: u64,
13121    );
13122}
13123unsafe extern "C" {
13124    pub fn BNGetRelocationRanges(view: *mut BNBinaryView, count: *mut usize) -> *mut BNRange;
13125}
13126unsafe extern "C" {
13127    pub fn BNGetRelocationRangesAtAddress(
13128        view: *mut BNBinaryView,
13129        addr: u64,
13130        count: *mut usize,
13131    ) -> *mut BNRange;
13132}
13133unsafe extern "C" {
13134    pub fn BNGetRelocationRangesInRange(
13135        view: *mut BNBinaryView,
13136        addr: u64,
13137        size: u64,
13138        count: *mut usize,
13139    ) -> *mut BNRange;
13140}
13141unsafe extern "C" {
13142    pub fn BNRangeContainsRelocation(view: *mut BNBinaryView, addr: u64, size: usize) -> bool;
13143}
13144unsafe extern "C" {
13145    pub fn BNGetRelocationsAt(
13146        view: *mut BNBinaryView,
13147        addr: u64,
13148        count: *mut usize,
13149    ) -> *mut *mut BNRelocation;
13150}
13151unsafe extern "C" {
13152    pub fn BNFreeRelocationList(relocations: *mut *mut BNRelocation, count: usize);
13153}
13154unsafe extern "C" {
13155    pub fn BNFreeRelocationRanges(ranges: *mut BNRange);
13156}
13157unsafe extern "C" {
13158    pub fn BNGetNextRelocation(
13159        view: *mut BNBinaryView,
13160        addr: u64,
13161        maxAddr: u64,
13162    ) -> *mut BNRelocation;
13163}
13164unsafe extern "C" {
13165    pub fn BNRegisterDataNotification(
13166        view: *mut BNBinaryView,
13167        notify: *mut BNBinaryDataNotification,
13168    );
13169}
13170unsafe extern "C" {
13171    pub fn BNUnregisterDataNotification(
13172        view: *mut BNBinaryView,
13173        notify: *mut BNBinaryDataNotification,
13174    );
13175}
13176unsafe extern "C" {
13177    pub fn BNRegisterProjectNotification(
13178        project: *mut BNProject,
13179        notify: *mut BNProjectNotification,
13180    );
13181}
13182unsafe extern "C" {
13183    pub fn BNUnregisterProjectNotification(
13184        project: *mut BNProject,
13185        notify: *mut BNProjectNotification,
13186    );
13187}
13188unsafe extern "C" {
13189    pub fn BNCanAssemble(view: *mut BNBinaryView, arch: *mut BNArchitecture) -> bool;
13190}
13191unsafe extern "C" {
13192    pub fn BNIsNeverBranchPatchAvailable(
13193        view: *mut BNBinaryView,
13194        arch: *mut BNArchitecture,
13195        addr: u64,
13196    ) -> bool;
13197}
13198unsafe extern "C" {
13199    pub fn BNIsAlwaysBranchPatchAvailable(
13200        view: *mut BNBinaryView,
13201        arch: *mut BNArchitecture,
13202        addr: u64,
13203    ) -> bool;
13204}
13205unsafe extern "C" {
13206    pub fn BNIsInvertBranchPatchAvailable(
13207        view: *mut BNBinaryView,
13208        arch: *mut BNArchitecture,
13209        addr: u64,
13210    ) -> bool;
13211}
13212unsafe extern "C" {
13213    pub fn BNIsSkipAndReturnZeroPatchAvailable(
13214        view: *mut BNBinaryView,
13215        arch: *mut BNArchitecture,
13216        addr: u64,
13217    ) -> bool;
13218}
13219unsafe extern "C" {
13220    pub fn BNIsSkipAndReturnValuePatchAvailable(
13221        view: *mut BNBinaryView,
13222        arch: *mut BNArchitecture,
13223        addr: u64,
13224    ) -> bool;
13225}
13226unsafe extern "C" {
13227    pub fn BNConvertToNop(view: *mut BNBinaryView, arch: *mut BNArchitecture, addr: u64) -> bool;
13228}
13229unsafe extern "C" {
13230    pub fn BNAlwaysBranch(view: *mut BNBinaryView, arch: *mut BNArchitecture, addr: u64) -> bool;
13231}
13232unsafe extern "C" {
13233    pub fn BNInvertBranch(view: *mut BNBinaryView, arch: *mut BNArchitecture, addr: u64) -> bool;
13234}
13235unsafe extern "C" {
13236    pub fn BNSkipAndReturnValue(
13237        view: *mut BNBinaryView,
13238        arch: *mut BNArchitecture,
13239        addr: u64,
13240        value: u64,
13241    ) -> bool;
13242}
13243unsafe extern "C" {
13244    pub fn BNGetInstructionLength(
13245        view: *mut BNBinaryView,
13246        arch: *mut BNArchitecture,
13247        addr: u64,
13248    ) -> usize;
13249}
13250unsafe extern "C" {
13251    pub fn BNFindNextData(
13252        view: *mut BNBinaryView,
13253        start: u64,
13254        data: *mut BNDataBuffer,
13255        result: *mut u64,
13256        flags: BNFindFlag,
13257    ) -> bool;
13258}
13259unsafe extern "C" {
13260    pub fn BNFindNextText(
13261        view: *mut BNBinaryView,
13262        start: u64,
13263        data: *const ::std::os::raw::c_char,
13264        result: *mut u64,
13265        settings: *mut BNDisassemblySettings,
13266        flags: BNFindFlag,
13267        viewType: BNFunctionViewType,
13268    ) -> bool;
13269}
13270unsafe extern "C" {
13271    pub fn BNFindNextConstant(
13272        view: *mut BNBinaryView,
13273        start: u64,
13274        constant: u64,
13275        result: *mut u64,
13276        settings: *mut BNDisassemblySettings,
13277        viewType: BNFunctionViewType,
13278    ) -> bool;
13279}
13280unsafe extern "C" {
13281    pub fn BNFindNextDataWithProgress(
13282        view: *mut BNBinaryView,
13283        start: u64,
13284        end: u64,
13285        data: *mut BNDataBuffer,
13286        result: *mut u64,
13287        flags: BNFindFlag,
13288        ctxt: *mut ::std::os::raw::c_void,
13289        progress: BNProgressFunction,
13290    ) -> bool;
13291}
13292unsafe extern "C" {
13293    pub fn BNFindNextTextWithProgress(
13294        view: *mut BNBinaryView,
13295        start: u64,
13296        end: u64,
13297        data: *const ::std::os::raw::c_char,
13298        result: *mut u64,
13299        settings: *mut BNDisassemblySettings,
13300        flags: BNFindFlag,
13301        viewType: BNFunctionViewType,
13302        ctxt: *mut ::std::os::raw::c_void,
13303        progress: BNProgressFunction,
13304    ) -> bool;
13305}
13306unsafe extern "C" {
13307    pub fn BNFindNextConstantWithProgress(
13308        view: *mut BNBinaryView,
13309        start: u64,
13310        end: u64,
13311        constant: u64,
13312        result: *mut u64,
13313        settings: *mut BNDisassemblySettings,
13314        viewType: BNFunctionViewType,
13315        ctxt: *mut ::std::os::raw::c_void,
13316        progress: BNProgressFunction,
13317    ) -> bool;
13318}
13319unsafe extern "C" {
13320    pub fn BNFindAllDataWithProgress(
13321        view: *mut BNBinaryView,
13322        start: u64,
13323        end: u64,
13324        data: *mut BNDataBuffer,
13325        flags: BNFindFlag,
13326        ctxt: *mut ::std::os::raw::c_void,
13327        progress: BNProgressFunction,
13328        matchCtxt: *mut ::std::os::raw::c_void,
13329        matchCallback: ::std::option::Option<
13330            unsafe extern "C" fn(
13331                matchCtxt: *mut ::std::os::raw::c_void,
13332                addr: u64,
13333                match_: *mut BNDataBuffer,
13334            ) -> bool,
13335        >,
13336    ) -> bool;
13337}
13338unsafe extern "C" {
13339    pub fn BNFindAllTextWithProgress(
13340        view: *mut BNBinaryView,
13341        start: u64,
13342        end: u64,
13343        data: *const ::std::os::raw::c_char,
13344        settings: *mut BNDisassemblySettings,
13345        flags: BNFindFlag,
13346        viewType: BNFunctionViewType,
13347        ctxt: *mut ::std::os::raw::c_void,
13348        progress: BNProgressFunction,
13349        matchCtxt: *mut ::std::os::raw::c_void,
13350        matchCallback: ::std::option::Option<
13351            unsafe extern "C" fn(
13352                matchCtxt: *mut ::std::os::raw::c_void,
13353                addr: u64,
13354                match_: *const ::std::os::raw::c_char,
13355                line: *mut BNLinearDisassemblyLine,
13356            ) -> bool,
13357        >,
13358    ) -> bool;
13359}
13360unsafe extern "C" {
13361    pub fn BNFindAllConstantWithProgress(
13362        view: *mut BNBinaryView,
13363        start: u64,
13364        end: u64,
13365        constant: u64,
13366        settings: *mut BNDisassemblySettings,
13367        viewType: BNFunctionViewType,
13368        ctxt: *mut ::std::os::raw::c_void,
13369        progress: BNProgressFunction,
13370        matchCtxt: *mut ::std::os::raw::c_void,
13371        matchCallback: ::std::option::Option<
13372            unsafe extern "C" fn(
13373                matchCtxt: *mut ::std::os::raw::c_void,
13374                addr: u64,
13375                line: *mut BNLinearDisassemblyLine,
13376            ) -> bool,
13377        >,
13378    ) -> bool;
13379}
13380unsafe extern "C" {
13381    pub fn BNSearch(
13382        view: *mut BNBinaryView,
13383        query: *const ::std::os::raw::c_char,
13384        context: *mut ::std::os::raw::c_void,
13385        progressCallback: BNProgressFunction,
13386        matchContext: *mut ::std::os::raw::c_void,
13387        callback: ::std::option::Option<
13388            unsafe extern "C" fn(
13389                arg1: *mut ::std::os::raw::c_void,
13390                arg2: u64,
13391                arg3: *mut BNDataBuffer,
13392            ) -> bool,
13393        >,
13394    ) -> bool;
13395}
13396unsafe extern "C" {
13397    pub fn BNDetectSearchMode(query: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
13398}
13399unsafe extern "C" {
13400    pub fn BNPerformSearch(
13401        query: *const ::std::os::raw::c_char,
13402        buffer: *const u8,
13403        size: usize,
13404        callback: BNProgressFunction,
13405        context: *mut ::std::os::raw::c_void,
13406    ) -> bool;
13407}
13408unsafe extern "C" {
13409    pub fn BNBeginBulkAddSegments(view: *mut BNBinaryView);
13410}
13411unsafe extern "C" {
13412    pub fn BNEndBulkAddSegments(view: *mut BNBinaryView);
13413}
13414unsafe extern "C" {
13415    pub fn BNCancelBulkAddSegments(view: *mut BNBinaryView);
13416}
13417unsafe extern "C" {
13418    pub fn BNAddAutoSegment(
13419        view: *mut BNBinaryView,
13420        start: u64,
13421        length: u64,
13422        dataOffset: u64,
13423        dataLength: u64,
13424        flags: u32,
13425    );
13426}
13427unsafe extern "C" {
13428    pub fn BNAddAutoSegments(
13429        view: *mut BNBinaryView,
13430        segmentInfo: *const BNSegmentInfo,
13431        count: usize,
13432    );
13433}
13434unsafe extern "C" {
13435    pub fn BNRemoveAutoSegment(view: *mut BNBinaryView, start: u64, length: u64);
13436}
13437unsafe extern "C" {
13438    pub fn BNAddUserSegment(
13439        view: *mut BNBinaryView,
13440        start: u64,
13441        length: u64,
13442        dataOffset: u64,
13443        dataLength: u64,
13444        flags: u32,
13445    );
13446}
13447unsafe extern "C" {
13448    pub fn BNAddUserSegments(
13449        view: *mut BNBinaryView,
13450        segmentInfo: *const BNSegmentInfo,
13451        count: usize,
13452    );
13453}
13454unsafe extern "C" {
13455    pub fn BNRemoveUserSegment(view: *mut BNBinaryView, start: u64, length: u64);
13456}
13457unsafe extern "C" {
13458    pub fn BNGetSegments(view: *mut BNBinaryView, count: *mut usize) -> *mut *mut BNSegment;
13459}
13460unsafe extern "C" {
13461    pub fn BNFreeSegmentList(segments: *mut *mut BNSegment, count: usize);
13462}
13463unsafe extern "C" {
13464    pub fn BNGetSegmentAt(view: *mut BNBinaryView, addr: u64) -> *mut BNSegment;
13465}
13466unsafe extern "C" {
13467    pub fn BNGetAddressForDataOffset(view: *mut BNBinaryView, offset: u64, addr: *mut u64) -> bool;
13468}
13469unsafe extern "C" {
13470    pub fn BNGetComponentByGuid(
13471        view: *mut BNBinaryView,
13472        guid: *const ::std::os::raw::c_char,
13473    ) -> *mut BNComponent;
13474}
13475unsafe extern "C" {
13476    pub fn BNGetRootComponent(view: *mut BNBinaryView) -> *mut BNComponent;
13477}
13478unsafe extern "C" {
13479    pub fn BNCreateComponent(view: *mut BNBinaryView) -> *mut BNComponent;
13480}
13481unsafe extern "C" {
13482    pub fn BNCreateComponentWithParent(
13483        view: *mut BNBinaryView,
13484        parentGUID: *const ::std::os::raw::c_char,
13485    ) -> *mut BNComponent;
13486}
13487unsafe extern "C" {
13488    pub fn BNCreateComponentWithName(
13489        view: *mut BNBinaryView,
13490        name: *const ::std::os::raw::c_char,
13491    ) -> *mut BNComponent;
13492}
13493unsafe extern "C" {
13494    pub fn BNCreateComponentWithParentAndName(
13495        view: *mut BNBinaryView,
13496        parentGUID: *const ::std::os::raw::c_char,
13497        name: *const ::std::os::raw::c_char,
13498    ) -> *mut BNComponent;
13499}
13500unsafe extern "C" {
13501    pub fn BNGetComponentByPath(
13502        view: *mut BNBinaryView,
13503        path: *const ::std::os::raw::c_char,
13504    ) -> *mut BNComponent;
13505}
13506unsafe extern "C" {
13507    pub fn BNRemoveComponent(view: *mut BNBinaryView, component: *mut BNComponent) -> bool;
13508}
13509unsafe extern "C" {
13510    pub fn BNRemoveComponentByGuid(
13511        view: *mut BNBinaryView,
13512        guid: *const ::std::os::raw::c_char,
13513    ) -> bool;
13514}
13515unsafe extern "C" {
13516    pub fn BNAddAutoSection(
13517        view: *mut BNBinaryView,
13518        name: *const ::std::os::raw::c_char,
13519        start: u64,
13520        length: u64,
13521        semantics: BNSectionSemantics,
13522        type_: *const ::std::os::raw::c_char,
13523        align: u64,
13524        entrySize: u64,
13525        linkedSection: *const ::std::os::raw::c_char,
13526        infoSection: *const ::std::os::raw::c_char,
13527        infoData: u64,
13528    );
13529}
13530unsafe extern "C" {
13531    pub fn BNAddAutoSections(
13532        view: *mut BNBinaryView,
13533        sectionInfo: *const BNSectionInfo,
13534        count: usize,
13535    );
13536}
13537unsafe extern "C" {
13538    pub fn BNRemoveAutoSection(view: *mut BNBinaryView, name: *const ::std::os::raw::c_char);
13539}
13540unsafe extern "C" {
13541    pub fn BNAddUserSection(
13542        view: *mut BNBinaryView,
13543        name: *const ::std::os::raw::c_char,
13544        start: u64,
13545        length: u64,
13546        semantics: BNSectionSemantics,
13547        type_: *const ::std::os::raw::c_char,
13548        align: u64,
13549        entrySize: u64,
13550        linkedSection: *const ::std::os::raw::c_char,
13551        infoSection: *const ::std::os::raw::c_char,
13552        infoData: u64,
13553    );
13554}
13555unsafe extern "C" {
13556    pub fn BNAddUserSections(
13557        view: *mut BNBinaryView,
13558        sectionInfo: *const BNSectionInfo,
13559        count: usize,
13560    );
13561}
13562unsafe extern "C" {
13563    pub fn BNRemoveUserSection(view: *mut BNBinaryView, name: *const ::std::os::raw::c_char);
13564}
13565unsafe extern "C" {
13566    pub fn BNGetSections(view: *mut BNBinaryView, count: *mut usize) -> *mut *mut BNSection;
13567}
13568unsafe extern "C" {
13569    pub fn BNGetSectionsAt(
13570        view: *mut BNBinaryView,
13571        addr: u64,
13572        count: *mut usize,
13573    ) -> *mut *mut BNSection;
13574}
13575unsafe extern "C" {
13576    pub fn BNFreeSectionList(sections: *mut *mut BNSection, count: usize);
13577}
13578unsafe extern "C" {
13579    pub fn BNGetSectionByName(
13580        view: *mut BNBinaryView,
13581        name: *const ::std::os::raw::c_char,
13582    ) -> *mut BNSection;
13583}
13584unsafe extern "C" {
13585    pub fn BNGetUniqueSectionNames(
13586        view: *mut BNBinaryView,
13587        names: *mut *const ::std::os::raw::c_char,
13588        count: usize,
13589    ) -> *mut *mut ::std::os::raw::c_char;
13590}
13591unsafe extern "C" {
13592    pub fn BNGetAllocatedRanges(view: *mut BNBinaryView, count: *mut usize) -> *mut BNAddressRange;
13593}
13594unsafe extern "C" {
13595    pub fn BNGetMappedAddressRanges(
13596        view: *mut BNBinaryView,
13597        count: *mut usize,
13598    ) -> *mut BNAddressRange;
13599}
13600unsafe extern "C" {
13601    pub fn BNGetBackedAddressRanges(
13602        view: *mut BNBinaryView,
13603        count: *mut usize,
13604    ) -> *mut BNAddressRange;
13605}
13606unsafe extern "C" {
13607    pub fn BNFreeAddressRanges(ranges: *mut BNAddressRange);
13608}
13609unsafe extern "C" {
13610    pub fn BNGetNameSpaces(view: *mut BNBinaryView, count: *mut usize) -> *mut BNNameSpace;
13611}
13612unsafe extern "C" {
13613    pub fn BNFreeNameSpaceList(nameSpace: *mut BNNameSpace, count: usize);
13614}
13615unsafe extern "C" {
13616    pub fn BNGetExternalNameSpace() -> BNNameSpace;
13617}
13618unsafe extern "C" {
13619    pub fn BNGetInternalNameSpace() -> BNNameSpace;
13620}
13621unsafe extern "C" {
13622    pub fn BNFreeNameSpace(name: *mut BNNameSpace);
13623}
13624unsafe extern "C" {
13625    pub fn BNGetGlobalPointerValues(
13626        view: *mut BNBinaryView,
13627        count: *mut usize,
13628    ) -> *mut BNRegisterValueWithConfidenceAndRegister;
13629}
13630unsafe extern "C" {
13631    pub fn BNGetDefaultGlobalPointerValues(
13632        view: *mut BNBinaryView,
13633        count: *mut usize,
13634    ) -> *mut BNRegisterValueWithConfidenceAndRegister;
13635}
13636unsafe extern "C" {
13637    pub fn BNGetUserGlobalPointerValues(
13638        view: *mut BNBinaryView,
13639        count: *mut usize,
13640    ) -> *mut BNRegisterValueWithConfidenceAndRegister;
13641}
13642unsafe extern "C" {
13643    pub fn BNFreeRegisterValueWithConfidenceAndRegisterList(
13644        values: *mut BNRegisterValueWithConfidenceAndRegister,
13645    );
13646}
13647unsafe extern "C" {
13648    pub fn BNUserGlobalPointerValuesSet(view: *mut BNBinaryView) -> bool;
13649}
13650unsafe extern "C" {
13651    pub fn BNClearUserGlobalPointerValues(view: *mut BNBinaryView);
13652}
13653unsafe extern "C" {
13654    pub fn BNSetUserGlobalPointerValues(
13655        view: *mut BNBinaryView,
13656        values: *const BNRegisterValueWithConfidenceAndRegister,
13657        count: usize,
13658    );
13659}
13660unsafe extern "C" {
13661    pub fn BNStringifyUnicodeData(
13662        data: *mut BNBinaryView,
13663        arch: *mut BNArchitecture,
13664        buffer: *const BNDataBuffer,
13665        nullTerminates: bool,
13666        allowShortStrings: bool,
13667        string: *mut *mut ::std::os::raw::c_char,
13668        type_: *mut BNStringType,
13669    ) -> bool;
13670}
13671unsafe extern "C" {
13672    #[doc = " Raw binary data view"]
13673    pub fn BNCreateBinaryDataView(file: *mut BNFileMetadata) -> *mut BNBinaryView;
13674}
13675unsafe extern "C" {
13676    pub fn BNCreateBinaryDataViewFromBuffer(
13677        file: *mut BNFileMetadata,
13678        buf: *mut BNDataBuffer,
13679    ) -> *mut BNBinaryView;
13680}
13681unsafe extern "C" {
13682    pub fn BNCreateBinaryDataViewFromData(
13683        file: *mut BNFileMetadata,
13684        data: *const ::std::os::raw::c_void,
13685        len: usize,
13686    ) -> *mut BNBinaryView;
13687}
13688unsafe extern "C" {
13689    pub fn BNCreateBinaryDataViewFromFilename(
13690        file: *mut BNFileMetadata,
13691        filename: *const ::std::os::raw::c_char,
13692    ) -> *mut BNBinaryView;
13693}
13694unsafe extern "C" {
13695    pub fn BNCreateBinaryDataViewFromFile(
13696        file: *mut BNFileMetadata,
13697        accessor: *mut BNFileAccessor,
13698    ) -> *mut BNBinaryView;
13699}
13700unsafe extern "C" {
13701    #[doc = " Creation of new types of binary views"]
13702    pub fn BNCreateCustomBinaryView(
13703        name: *const ::std::os::raw::c_char,
13704        file: *mut BNFileMetadata,
13705        parent: *mut BNBinaryView,
13706        view: *mut BNCustomBinaryView,
13707    ) -> *mut BNBinaryView;
13708}
13709unsafe extern "C" {
13710    pub fn BNGetBinaryViewTypeByName(name: *const ::std::os::raw::c_char) -> *mut BNBinaryViewType;
13711}
13712unsafe extern "C" {
13713    pub fn BNGetBinaryViewTypes(count: *mut usize) -> *mut *mut BNBinaryViewType;
13714}
13715unsafe extern "C" {
13716    pub fn BNGetBinaryViewTypesForData(
13717        data: *mut BNBinaryView,
13718        count: *mut usize,
13719    ) -> *mut *mut BNBinaryViewType;
13720}
13721unsafe extern "C" {
13722    pub fn BNFreeBinaryViewTypeList(types: *mut *mut BNBinaryViewType);
13723}
13724unsafe extern "C" {
13725    pub fn BNGetBinaryViewTypeName(type_: *mut BNBinaryViewType) -> *mut ::std::os::raw::c_char;
13726}
13727unsafe extern "C" {
13728    pub fn BNGetBinaryViewTypeLongName(type_: *mut BNBinaryViewType)
13729    -> *mut ::std::os::raw::c_char;
13730}
13731unsafe extern "C" {
13732    pub fn BNIsBinaryViewTypeDeprecated(type_: *mut BNBinaryViewType) -> bool;
13733}
13734unsafe extern "C" {
13735    pub fn BNCreateBinaryViewOfType(
13736        type_: *mut BNBinaryViewType,
13737        data: *mut BNBinaryView,
13738    ) -> *mut BNBinaryView;
13739}
13740unsafe extern "C" {
13741    pub fn BNParseBinaryViewOfType(
13742        type_: *mut BNBinaryViewType,
13743        data: *mut BNBinaryView,
13744    ) -> *mut BNBinaryView;
13745}
13746unsafe extern "C" {
13747    pub fn BNIsBinaryViewTypeValidForData(
13748        type_: *mut BNBinaryViewType,
13749        data: *mut BNBinaryView,
13750    ) -> bool;
13751}
13752unsafe extern "C" {
13753    pub fn BNIsBinaryViewTypeForceLoadable(type_: *mut BNBinaryViewType) -> bool;
13754}
13755unsafe extern "C" {
13756    pub fn BNBinaryViewTypeHasNoInitialContent(type_: *mut BNBinaryViewType) -> bool;
13757}
13758unsafe extern "C" {
13759    pub fn BNGetBinaryViewDefaultLoadSettingsForData(
13760        type_: *mut BNBinaryViewType,
13761        data: *mut BNBinaryView,
13762    ) -> *mut BNSettings;
13763}
13764unsafe extern "C" {
13765    pub fn BNGetBinaryViewLoadSettingsForData(
13766        type_: *mut BNBinaryViewType,
13767        data: *mut BNBinaryView,
13768    ) -> *mut BNSettings;
13769}
13770unsafe extern "C" {
13771    pub fn BNRegisterBinaryViewType(
13772        name: *const ::std::os::raw::c_char,
13773        longName: *const ::std::os::raw::c_char,
13774        type_: *mut BNCustomBinaryViewType,
13775    ) -> *mut BNBinaryViewType;
13776}
13777unsafe extern "C" {
13778    pub fn BNRegisterArchitectureForViewType(
13779        type_: *mut BNBinaryViewType,
13780        id: u32,
13781        endian: BNEndianness,
13782        arch: *mut BNArchitecture,
13783    );
13784}
13785unsafe extern "C" {
13786    pub fn BNGetArchitectureForViewType(
13787        type_: *mut BNBinaryViewType,
13788        id: u32,
13789        endian: BNEndianness,
13790    ) -> *mut BNArchitecture;
13791}
13792unsafe extern "C" {
13793    pub fn BNRegisterPlatformForViewType(
13794        type_: *mut BNBinaryViewType,
13795        id: u32,
13796        arch: *mut BNArchitecture,
13797        platform: *mut BNPlatform,
13798    );
13799}
13800unsafe extern "C" {
13801    pub fn BNGetPlatformForViewType(
13802        type_: *mut BNBinaryViewType,
13803        id: u32,
13804        arch: *mut BNArchitecture,
13805    ) -> *mut BNPlatform;
13806}
13807unsafe extern "C" {
13808    pub fn BNRegisterDefaultPlatformForViewType(
13809        type_: *mut BNBinaryViewType,
13810        arch: *mut BNArchitecture,
13811        platform: *mut BNPlatform,
13812    );
13813}
13814unsafe extern "C" {
13815    #[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."]
13816    pub fn BNRegisterPlatformRecognizerForViewType(
13817        type_: *mut BNBinaryViewType,
13818        id: u64,
13819        endian: BNEndianness,
13820        callback: ::std::option::Option<
13821            unsafe extern "C" fn(
13822                ctx: *mut ::std::os::raw::c_void,
13823                view: *mut BNBinaryView,
13824                metadata: *mut BNMetadata,
13825            ) -> *mut BNPlatform,
13826        >,
13827        ctx: *mut ::std::os::raw::c_void,
13828    );
13829}
13830unsafe extern "C" {
13831    #[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."]
13832    pub fn BNRecognizePlatformForViewType(
13833        type_: *mut BNBinaryViewType,
13834        id: u64,
13835        endian: BNEndianness,
13836        view: *mut BNBinaryView,
13837        metadata: *mut BNMetadata,
13838    ) -> *mut BNPlatform;
13839}
13840unsafe extern "C" {
13841    pub fn BNRegisterBinaryViewEvent(
13842        type_: BNBinaryViewEventType,
13843        callback: ::std::option::Option<
13844            unsafe extern "C" fn(ctx: *mut ::std::os::raw::c_void, view: *mut BNBinaryView),
13845        >,
13846        ctx: *mut ::std::os::raw::c_void,
13847    );
13848}
13849unsafe extern "C" {
13850    #[doc = " Stream reader object"]
13851    pub fn BNCreateBinaryReader(view: *mut BNBinaryView) -> *mut BNBinaryReader;
13852}
13853unsafe extern "C" {
13854    pub fn BNFreeBinaryReader(stream: *mut BNBinaryReader);
13855}
13856unsafe extern "C" {
13857    pub fn BNGetBinaryReaderEndianness(stream: *mut BNBinaryReader) -> BNEndianness;
13858}
13859unsafe extern "C" {
13860    pub fn BNSetBinaryReaderEndianness(stream: *mut BNBinaryReader, endian: BNEndianness);
13861}
13862unsafe extern "C" {
13863    pub fn BNReadData(
13864        stream: *mut BNBinaryReader,
13865        dest: *mut ::std::os::raw::c_void,
13866        len: usize,
13867    ) -> bool;
13868}
13869unsafe extern "C" {
13870    pub fn BNRead8(stream: *mut BNBinaryReader, result: *mut u8) -> bool;
13871}
13872unsafe extern "C" {
13873    pub fn BNRead16(stream: *mut BNBinaryReader, result: *mut u16) -> bool;
13874}
13875unsafe extern "C" {
13876    pub fn BNRead32(stream: *mut BNBinaryReader, result: *mut u32) -> bool;
13877}
13878unsafe extern "C" {
13879    pub fn BNRead64(stream: *mut BNBinaryReader, result: *mut u64) -> bool;
13880}
13881unsafe extern "C" {
13882    pub fn BNReadLE16(stream: *mut BNBinaryReader, result: *mut u16) -> bool;
13883}
13884unsafe extern "C" {
13885    pub fn BNReadLE32(stream: *mut BNBinaryReader, result: *mut u32) -> bool;
13886}
13887unsafe extern "C" {
13888    pub fn BNReadLE64(stream: *mut BNBinaryReader, result: *mut u64) -> bool;
13889}
13890unsafe extern "C" {
13891    pub fn BNReadBE16(stream: *mut BNBinaryReader, result: *mut u16) -> bool;
13892}
13893unsafe extern "C" {
13894    pub fn BNReadBE32(stream: *mut BNBinaryReader, result: *mut u32) -> bool;
13895}
13896unsafe extern "C" {
13897    pub fn BNReadBE64(stream: *mut BNBinaryReader, result: *mut u64) -> bool;
13898}
13899unsafe extern "C" {
13900    pub fn BNReadPointer(
13901        view: *mut BNBinaryView,
13902        stream: *mut BNBinaryReader,
13903        result: *mut u64,
13904    ) -> bool;
13905}
13906unsafe extern "C" {
13907    pub fn BNGetReaderPosition(stream: *mut BNBinaryReader) -> u64;
13908}
13909unsafe extern "C" {
13910    pub fn BNSeekBinaryReader(stream: *mut BNBinaryReader, offset: u64);
13911}
13912unsafe extern "C" {
13913    pub fn BNSeekBinaryReaderRelative(stream: *mut BNBinaryReader, offset: i64);
13914}
13915unsafe extern "C" {
13916    pub fn BNGetBinaryReaderVirtualBase(stream: *mut BNBinaryReader) -> u64;
13917}
13918unsafe extern "C" {
13919    pub fn BNSetBinaryReaderVirtualBase(stream: *mut BNBinaryReader, base: u64);
13920}
13921unsafe extern "C" {
13922    pub fn BNIsEndOfFile(stream: *mut BNBinaryReader) -> bool;
13923}
13924unsafe extern "C" {
13925    #[doc = " Stream writer object"]
13926    pub fn BNCreateBinaryWriter(view: *mut BNBinaryView) -> *mut BNBinaryWriter;
13927}
13928unsafe extern "C" {
13929    pub fn BNFreeBinaryWriter(stream: *mut BNBinaryWriter);
13930}
13931unsafe extern "C" {
13932    pub fn BNGetBinaryWriterEndianness(stream: *mut BNBinaryWriter) -> BNEndianness;
13933}
13934unsafe extern "C" {
13935    pub fn BNSetBinaryWriterEndianness(stream: *mut BNBinaryWriter, endian: BNEndianness);
13936}
13937unsafe extern "C" {
13938    pub fn BNWriteData(
13939        stream: *mut BNBinaryWriter,
13940        src: *const ::std::os::raw::c_void,
13941        len: usize,
13942    ) -> bool;
13943}
13944unsafe extern "C" {
13945    pub fn BNWrite8(stream: *mut BNBinaryWriter, val: u8) -> bool;
13946}
13947unsafe extern "C" {
13948    pub fn BNWrite16(stream: *mut BNBinaryWriter, val: u16) -> bool;
13949}
13950unsafe extern "C" {
13951    pub fn BNWrite32(stream: *mut BNBinaryWriter, val: u32) -> bool;
13952}
13953unsafe extern "C" {
13954    pub fn BNWrite64(stream: *mut BNBinaryWriter, val: u64) -> bool;
13955}
13956unsafe extern "C" {
13957    pub fn BNWriteLE16(stream: *mut BNBinaryWriter, val: u16) -> bool;
13958}
13959unsafe extern "C" {
13960    pub fn BNWriteLE32(stream: *mut BNBinaryWriter, val: u32) -> bool;
13961}
13962unsafe extern "C" {
13963    pub fn BNWriteLE64(stream: *mut BNBinaryWriter, val: u64) -> bool;
13964}
13965unsafe extern "C" {
13966    pub fn BNWriteBE16(stream: *mut BNBinaryWriter, val: u16) -> bool;
13967}
13968unsafe extern "C" {
13969    pub fn BNWriteBE32(stream: *mut BNBinaryWriter, val: u32) -> bool;
13970}
13971unsafe extern "C" {
13972    pub fn BNWriteBE64(stream: *mut BNBinaryWriter, val: u64) -> bool;
13973}
13974unsafe extern "C" {
13975    pub fn BNGetWriterPosition(stream: *mut BNBinaryWriter) -> u64;
13976}
13977unsafe extern "C" {
13978    pub fn BNSeekBinaryWriter(stream: *mut BNBinaryWriter, offset: u64);
13979}
13980unsafe extern "C" {
13981    pub fn BNSeekBinaryWriterRelative(stream: *mut BNBinaryWriter, offset: i64);
13982}
13983unsafe extern "C" {
13984    #[doc = " Transforms"]
13985    pub fn BNGetTransformByName(name: *const ::std::os::raw::c_char) -> *mut BNTransform;
13986}
13987unsafe extern "C" {
13988    pub fn BNGetTransformTypeList(count: *mut usize) -> *mut *mut BNTransform;
13989}
13990unsafe extern "C" {
13991    pub fn BNFreeTransformTypeList(xforms: *mut *mut BNTransform);
13992}
13993unsafe extern "C" {
13994    pub fn BNRegisterTransformType(
13995        type_: BNTransformType,
13996        name: *const ::std::os::raw::c_char,
13997        longName: *const ::std::os::raw::c_char,
13998        group: *const ::std::os::raw::c_char,
13999        xform: *mut BNCustomTransform,
14000    ) -> *mut BNTransform;
14001}
14002unsafe extern "C" {
14003    pub fn BNRegisterTransformTypeWithCapabilities(
14004        type_: BNTransformType,
14005        capabilities: u32,
14006        name: *const ::std::os::raw::c_char,
14007        longName: *const ::std::os::raw::c_char,
14008        group: *const ::std::os::raw::c_char,
14009        xform: *mut BNCustomTransform,
14010    ) -> *mut BNTransform;
14011}
14012unsafe extern "C" {
14013    pub fn BNGetTransformType(xform: *mut BNTransform) -> BNTransformType;
14014}
14015unsafe extern "C" {
14016    pub fn BNGetTransformCapabilities(xform: *mut BNTransform) -> u32;
14017}
14018unsafe extern "C" {
14019    pub fn BNTransformSupportsDetection(xform: *mut BNTransform) -> bool;
14020}
14021unsafe extern "C" {
14022    pub fn BNTransformSupportsContext(xform: *mut BNTransform) -> bool;
14023}
14024unsafe extern "C" {
14025    pub fn BNGetTransformName(xform: *mut BNTransform) -> *mut ::std::os::raw::c_char;
14026}
14027unsafe extern "C" {
14028    pub fn BNGetTransformLongName(xform: *mut BNTransform) -> *mut ::std::os::raw::c_char;
14029}
14030unsafe extern "C" {
14031    pub fn BNGetTransformGroup(xform: *mut BNTransform) -> *mut ::std::os::raw::c_char;
14032}
14033unsafe extern "C" {
14034    pub fn BNGetTransformParameterList(
14035        xform: *mut BNTransform,
14036        count: *mut usize,
14037    ) -> *mut BNTransformParameterInfo;
14038}
14039unsafe extern "C" {
14040    pub fn BNFreeTransformParameterList(params: *mut BNTransformParameterInfo, count: usize);
14041}
14042unsafe extern "C" {
14043    pub fn BNDecode(
14044        xform: *mut BNTransform,
14045        input: *mut BNDataBuffer,
14046        output: *mut BNDataBuffer,
14047        params: *mut BNTransformParameter,
14048        paramCount: usize,
14049    ) -> bool;
14050}
14051unsafe extern "C" {
14052    pub fn BNEncode(
14053        xform: *mut BNTransform,
14054        input: *mut BNDataBuffer,
14055        output: *mut BNDataBuffer,
14056        params: *mut BNTransformParameter,
14057        paramCount: usize,
14058    ) -> bool;
14059}
14060unsafe extern "C" {
14061    pub fn BNDecodeWithContext(
14062        xform: *mut BNTransform,
14063        context: *mut BNTransformContext,
14064        params: *mut BNTransformParameter,
14065        paramCount: usize,
14066    ) -> bool;
14067}
14068unsafe extern "C" {
14069    pub fn BNCanDecode(xform: *mut BNTransform, input: *mut BNBinaryView) -> bool;
14070}
14071unsafe extern "C" {
14072    #[doc = " Transform Context"]
14073    pub fn BNNewTransformContextReference(
14074        context: *mut BNTransformContext,
14075    ) -> *mut BNTransformContext;
14076}
14077unsafe extern "C" {
14078    pub fn BNFreeTransformContext(context: *mut BNTransformContext);
14079}
14080unsafe extern "C" {
14081    pub fn BNTransformContextGetInput(context: *mut BNTransformContext) -> *mut BNBinaryView;
14082}
14083unsafe extern "C" {
14084    pub fn BNTransformContextGetFileName(
14085        context: *mut BNTransformContext,
14086    ) -> *mut ::std::os::raw::c_char;
14087}
14088unsafe extern "C" {
14089    pub fn BNTransformContextGetAvailableTransforms(
14090        context: *mut BNTransformContext,
14091        count: *mut usize,
14092    ) -> *mut *mut ::std::os::raw::c_char;
14093}
14094unsafe extern "C" {
14095    pub fn BNTransformContextGetTransformName(
14096        context: *mut BNTransformContext,
14097    ) -> *mut ::std::os::raw::c_char;
14098}
14099unsafe extern "C" {
14100    pub fn BNTransformContextSetTransformName(
14101        context: *mut BNTransformContext,
14102        transformName: *const ::std::os::raw::c_char,
14103    );
14104}
14105unsafe extern "C" {
14106    pub fn BNTransformContextSetTransformParameters(
14107        context: *mut BNTransformContext,
14108        params: *mut BNTransformParameter,
14109        paramCount: usize,
14110    );
14111}
14112unsafe extern "C" {
14113    pub fn BNTransformContextSetTransformParameter(
14114        context: *mut BNTransformContext,
14115        name: *const ::std::os::raw::c_char,
14116        data: *mut BNDataBuffer,
14117    );
14118}
14119unsafe extern "C" {
14120    pub fn BNTransformContextHasTransformParameter(
14121        context: *mut BNTransformContext,
14122        name: *const ::std::os::raw::c_char,
14123    ) -> bool;
14124}
14125unsafe extern "C" {
14126    pub fn BNTransformContextClearTransformParameter(
14127        context: *mut BNTransformContext,
14128        name: *const ::std::os::raw::c_char,
14129    );
14130}
14131unsafe extern "C" {
14132    pub fn BNTransformContextGetExtractionMessage(
14133        context: *mut BNTransformContext,
14134    ) -> *mut ::std::os::raw::c_char;
14135}
14136unsafe extern "C" {
14137    pub fn BNTransformContextGetExtractionResult(
14138        context: *mut BNTransformContext,
14139    ) -> BNTransformResult;
14140}
14141unsafe extern "C" {
14142    pub fn BNTransformContextGetTransformResult(
14143        context: *mut BNTransformContext,
14144    ) -> BNTransformResult;
14145}
14146unsafe extern "C" {
14147    pub fn BNTransformContextSetTransformResult(
14148        context: *mut BNTransformContext,
14149        result: BNTransformResult,
14150    );
14151}
14152unsafe extern "C" {
14153    pub fn BNTransformContextGetMetadata(context: *mut BNTransformContext) -> *mut BNMetadata;
14154}
14155unsafe extern "C" {
14156    pub fn BNTransformContextGetParent(context: *mut BNTransformContext)
14157    -> *mut BNTransformContext;
14158}
14159unsafe extern "C" {
14160    pub fn BNTransformContextGetChildCount(context: *mut BNTransformContext) -> usize;
14161}
14162unsafe extern "C" {
14163    pub fn BNTransformContextGetChildren(
14164        context: *mut BNTransformContext,
14165        count: *mut usize,
14166    ) -> *mut *mut BNTransformContext;
14167}
14168unsafe extern "C" {
14169    pub fn BNFreeTransformContextList(contexts: *mut *mut BNTransformContext, count: usize);
14170}
14171unsafe extern "C" {
14172    pub fn BNTransformContextGetChild(
14173        context: *mut BNTransformContext,
14174        filename: *const ::std::os::raw::c_char,
14175    ) -> *mut BNTransformContext;
14176}
14177unsafe extern "C" {
14178    pub fn BNTransformContextSetChild(
14179        context: *mut BNTransformContext,
14180        data: *mut BNDataBuffer,
14181        filename: *const ::std::os::raw::c_char,
14182        result: BNTransformResult,
14183        message: *const ::std::os::raw::c_char,
14184        filenameIsDescriptor: bool,
14185    ) -> *mut BNTransformContext;
14186}
14187unsafe extern "C" {
14188    pub fn BNTransformContextIsLeaf(context: *mut BNTransformContext) -> bool;
14189}
14190unsafe extern "C" {
14191    pub fn BNTransformContextIsRoot(context: *mut BNTransformContext) -> bool;
14192}
14193unsafe extern "C" {
14194    pub fn BNTransformContextGetAvailableFiles(
14195        context: *mut BNTransformContext,
14196        count: *mut usize,
14197    ) -> *mut *mut ::std::os::raw::c_char;
14198}
14199unsafe extern "C" {
14200    pub fn BNTransformContextSetAvailableFiles(
14201        context: *mut BNTransformContext,
14202        files: *mut *const ::std::os::raw::c_char,
14203        count: usize,
14204    );
14205}
14206unsafe extern "C" {
14207    pub fn BNTransformContextHasAvailableFiles(context: *mut BNTransformContext) -> bool;
14208}
14209unsafe extern "C" {
14210    pub fn BNTransformContextGetRequestedFiles(
14211        context: *mut BNTransformContext,
14212        count: *mut usize,
14213    ) -> *mut *mut ::std::os::raw::c_char;
14214}
14215unsafe extern "C" {
14216    pub fn BNTransformContextSetRequestedFiles(
14217        context: *mut BNTransformContext,
14218        files: *mut *const ::std::os::raw::c_char,
14219        count: usize,
14220    );
14221}
14222unsafe extern "C" {
14223    pub fn BNTransformContextHasRequestedFiles(context: *mut BNTransformContext) -> bool;
14224}
14225unsafe extern "C" {
14226    pub fn BNTransformContextIsDatabase(context: *mut BNTransformContext) -> bool;
14227}
14228unsafe extern "C" {
14229    pub fn BNTransformContextIsInteractive(context: *mut BNTransformContext) -> bool;
14230}
14231unsafe extern "C" {
14232    pub fn BNTransformContextGetSettings(context: *mut BNTransformContext) -> *mut BNSettings;
14233}
14234unsafe extern "C" {
14235    #[doc = " Transform Session"]
14236    pub fn BNCreateTransformSession(
14237        filename: *const ::std::os::raw::c_char,
14238        options: *const ::std::os::raw::c_char,
14239    ) -> *mut BNTransformSession;
14240}
14241unsafe extern "C" {
14242    pub fn BNCreateTransformSessionWithMode(
14243        filename: *const ::std::os::raw::c_char,
14244        mode: BNTransformSessionMode,
14245        options: *const ::std::os::raw::c_char,
14246    ) -> *mut BNTransformSession;
14247}
14248unsafe extern "C" {
14249    pub fn BNCreateTransformSessionFromBinaryView(
14250        initialView: *mut BNBinaryView,
14251        options: *const ::std::os::raw::c_char,
14252    ) -> *mut BNTransformSession;
14253}
14254unsafe extern "C" {
14255    pub fn BNCreateTransformSessionFromBinaryViewWithMode(
14256        initialView: *mut BNBinaryView,
14257        mode: BNTransformSessionMode,
14258        options: *const ::std::os::raw::c_char,
14259    ) -> *mut BNTransformSession;
14260}
14261unsafe extern "C" {
14262    pub fn BNCreateTransformSessionFromTransformContextWithMode(
14263        context: *mut BNTransformContext,
14264        mode: BNTransformSessionMode,
14265        options: *const ::std::os::raw::c_char,
14266    ) -> *mut BNTransformSession;
14267}
14268unsafe extern "C" {
14269    pub fn BNNewTransformSessionReference(
14270        session: *mut BNTransformSession,
14271    ) -> *mut BNTransformSession;
14272}
14273unsafe extern "C" {
14274    pub fn BNFreeTransformSession(session: *mut BNTransformSession);
14275}
14276unsafe extern "C" {
14277    pub fn BNTransformSessionSetInteractive(session: *mut BNTransformSession, interactive: bool);
14278}
14279unsafe extern "C" {
14280    pub fn BNTransformSessionGetCurrentView(session: *mut BNTransformSession) -> *mut BNBinaryView;
14281}
14282unsafe extern "C" {
14283    pub fn BNTransformSessionGetRootContext(
14284        session: *mut BNTransformSession,
14285    ) -> *mut BNTransformContext;
14286}
14287unsafe extern "C" {
14288    pub fn BNTransformSessionGetCurrentContext(
14289        session: *mut BNTransformSession,
14290    ) -> *mut BNTransformContext;
14291}
14292unsafe extern "C" {
14293    pub fn BNTransformSessionProcessFrom(
14294        session: *mut BNTransformSession,
14295        context: *mut BNTransformContext,
14296    ) -> bool;
14297}
14298unsafe extern "C" {
14299    pub fn BNTransformSessionProcess(session: *mut BNTransformSession) -> bool;
14300}
14301unsafe extern "C" {
14302    pub fn BNTransformSessionHasAnyStages(session: *mut BNTransformSession) -> bool;
14303}
14304unsafe extern "C" {
14305    pub fn BNTransformSessionHasSinglePath(session: *mut BNTransformSession) -> bool;
14306}
14307unsafe extern "C" {
14308    pub fn BNTransformSessionGetSelectedContexts(
14309        session: *mut BNTransformSession,
14310        count: *mut usize,
14311    ) -> *mut *mut BNTransformContext;
14312}
14313unsafe extern "C" {
14314    pub fn BNTransformSessionSetSelectedContexts(
14315        session: *mut BNTransformSession,
14316        contexts: *mut *mut BNTransformContext,
14317        count: usize,
14318    );
14319}
14320unsafe extern "C" {
14321    #[doc = " Architectures"]
14322    pub fn BNGetArchitectureByName(name: *const ::std::os::raw::c_char) -> *mut BNArchitecture;
14323}
14324unsafe extern "C" {
14325    pub fn BNGetArchitectureList(count: *mut usize) -> *mut *mut BNArchitecture;
14326}
14327unsafe extern "C" {
14328    pub fn BNFreeArchitectureList(archs: *mut *mut BNArchitecture);
14329}
14330unsafe extern "C" {
14331    pub fn BNRegisterArchitecture(
14332        name: *const ::std::os::raw::c_char,
14333        arch: *mut BNCustomArchitecture,
14334    ) -> *mut BNArchitecture;
14335}
14336unsafe extern "C" {
14337    pub fn BNRegisterArchitectureExtension(
14338        name: *const ::std::os::raw::c_char,
14339        base: *mut BNArchitecture,
14340        arch: *mut BNCustomArchitecture,
14341    ) -> *mut BNArchitecture;
14342}
14343unsafe extern "C" {
14344    pub fn BNAddArchitectureRedirection(
14345        arch: *mut BNArchitecture,
14346        from: *mut BNArchitecture,
14347        to: *mut BNArchitecture,
14348    );
14349}
14350unsafe extern "C" {
14351    pub fn BNRegisterArchitectureHook(
14352        base: *mut BNArchitecture,
14353        arch: *mut BNCustomArchitecture,
14354    ) -> *mut BNArchitecture;
14355}
14356unsafe extern "C" {
14357    pub fn BNFinalizeArchitectureHook(base: *mut BNArchitecture);
14358}
14359unsafe extern "C" {
14360    pub fn BNGetNativeTypeParserArchitecture() -> *mut BNArchitecture;
14361}
14362unsafe extern "C" {
14363    pub fn BNGetArchitectureName(arch: *mut BNArchitecture) -> *mut ::std::os::raw::c_char;
14364}
14365unsafe extern "C" {
14366    pub fn BNGetArchitectureEndianness(arch: *mut BNArchitecture) -> BNEndianness;
14367}
14368unsafe extern "C" {
14369    pub fn BNGetArchitectureAddressSize(arch: *mut BNArchitecture) -> usize;
14370}
14371unsafe extern "C" {
14372    pub fn BNGetArchitectureDefaultIntegerSize(arch: *mut BNArchitecture) -> usize;
14373}
14374unsafe extern "C" {
14375    pub fn BNGetArchitectureInstructionAlignment(arch: *mut BNArchitecture) -> usize;
14376}
14377unsafe extern "C" {
14378    pub fn BNGetArchitectureMaxInstructionLength(arch: *mut BNArchitecture) -> usize;
14379}
14380unsafe extern "C" {
14381    pub fn BNGetArchitectureOpcodeDisplayLength(arch: *mut BNArchitecture) -> usize;
14382}
14383unsafe extern "C" {
14384    pub fn BNGetAssociatedArchitectureByAddress(
14385        arch: *mut BNArchitecture,
14386        addr: *mut u64,
14387    ) -> *mut BNArchitecture;
14388}
14389unsafe extern "C" {
14390    pub fn BNGetInstructionInfo(
14391        arch: *mut BNArchitecture,
14392        data: *const u8,
14393        addr: u64,
14394        maxLen: usize,
14395        result: *mut BNInstructionInfo,
14396    ) -> bool;
14397}
14398unsafe extern "C" {
14399    pub fn BNGetInstructionText(
14400        arch: *mut BNArchitecture,
14401        data: *const u8,
14402        addr: u64,
14403        len: *mut usize,
14404        result: *mut *mut BNInstructionTextToken,
14405        count: *mut usize,
14406    ) -> bool;
14407}
14408unsafe extern "C" {
14409    pub fn BNGetInstructionTextWithContext(
14410        arch: *mut BNArchitecture,
14411        data: *const u8,
14412        addr: u64,
14413        len: *mut usize,
14414        context: *mut ::std::os::raw::c_void,
14415        result: *mut *mut BNInstructionTextToken,
14416        count: *mut usize,
14417    ) -> bool;
14418}
14419unsafe extern "C" {
14420    pub fn BNGetInstructionLowLevelIL(
14421        arch: *mut BNArchitecture,
14422        data: *const u8,
14423        addr: u64,
14424        len: *mut usize,
14425        il: *mut BNLowLevelILFunction,
14426    ) -> bool;
14427}
14428unsafe extern "C" {
14429    pub fn BNFreeInstructionText(tokens: *mut BNInstructionTextToken, count: usize);
14430}
14431unsafe extern "C" {
14432    pub fn BNArchitectureSetDefaultAnalyzeBasicBlocksCallback(
14433        callback: *mut ::std::os::raw::c_void,
14434    ) -> bool;
14435}
14436unsafe extern "C" {
14437    pub fn BNArchitectureDefaultAnalyzeBasicBlocks(
14438        function: *mut BNFunction,
14439        context: *mut BNBasicBlockAnalysisContext,
14440    );
14441}
14442unsafe extern "C" {
14443    pub fn BNArchitectureAnalyzeBasicBlocks(
14444        arch: *mut BNArchitecture,
14445        function: *mut BNFunction,
14446        context: *mut BNBasicBlockAnalysisContext,
14447    );
14448}
14449unsafe extern "C" {
14450    pub fn BNArchitectureSetDefaultLiftFunctionCallback(
14451        callback: *mut ::std::os::raw::c_void,
14452    ) -> bool;
14453}
14454unsafe extern "C" {
14455    pub fn BNArchitectureDefaultLiftFunction(
14456        function: *mut BNLowLevelILFunction,
14457        context: *mut BNFunctionLifterContext,
14458    ) -> bool;
14459}
14460unsafe extern "C" {
14461    pub fn BNArchitectureLiftFunction(
14462        arch: *mut BNArchitecture,
14463        function: *mut BNLowLevelILFunction,
14464        context: *mut BNFunctionLifterContext,
14465    ) -> bool;
14466}
14467unsafe extern "C" {
14468    pub fn BNArchitectureFreeFunctionArchContext(
14469        arch: *mut BNArchitecture,
14470        context: *mut ::std::os::raw::c_void,
14471    );
14472}
14473unsafe extern "C" {
14474    pub fn BNFreeInstructionTextLines(lines: *mut BNInstructionTextLine, count: usize);
14475}
14476unsafe extern "C" {
14477    pub fn BNGetArchitectureRegisterName(
14478        arch: *mut BNArchitecture,
14479        reg: u32,
14480    ) -> *mut ::std::os::raw::c_char;
14481}
14482unsafe extern "C" {
14483    pub fn BNGetArchitectureFlagName(
14484        arch: *mut BNArchitecture,
14485        flag: u32,
14486    ) -> *mut ::std::os::raw::c_char;
14487}
14488unsafe extern "C" {
14489    pub fn BNGetArchitectureFlagWriteTypeName(
14490        arch: *mut BNArchitecture,
14491        flags: u32,
14492    ) -> *mut ::std::os::raw::c_char;
14493}
14494unsafe extern "C" {
14495    pub fn BNGetArchitectureSemanticFlagClassName(
14496        arch: *mut BNArchitecture,
14497        semClass: u32,
14498    ) -> *mut ::std::os::raw::c_char;
14499}
14500unsafe extern "C" {
14501    pub fn BNGetArchitectureSemanticFlagGroupName(
14502        arch: *mut BNArchitecture,
14503        semGroup: u32,
14504    ) -> *mut ::std::os::raw::c_char;
14505}
14506unsafe extern "C" {
14507    pub fn BNGetFullWidthArchitectureRegisters(
14508        arch: *mut BNArchitecture,
14509        count: *mut usize,
14510    ) -> *mut u32;
14511}
14512unsafe extern "C" {
14513    pub fn BNGetAllArchitectureRegisters(arch: *mut BNArchitecture, count: *mut usize) -> *mut u32;
14514}
14515unsafe extern "C" {
14516    pub fn BNGetAllArchitectureFlags(arch: *mut BNArchitecture, count: *mut usize) -> *mut u32;
14517}
14518unsafe extern "C" {
14519    pub fn BNGetAllArchitectureFlagWriteTypes(
14520        arch: *mut BNArchitecture,
14521        count: *mut usize,
14522    ) -> *mut u32;
14523}
14524unsafe extern "C" {
14525    pub fn BNGetAllArchitectureSemanticFlagClasses(
14526        arch: *mut BNArchitecture,
14527        count: *mut usize,
14528    ) -> *mut u32;
14529}
14530unsafe extern "C" {
14531    pub fn BNGetAllArchitectureSemanticFlagGroups(
14532        arch: *mut BNArchitecture,
14533        count: *mut usize,
14534    ) -> *mut u32;
14535}
14536unsafe extern "C" {
14537    pub fn BNGetArchitectureFlagRole(
14538        arch: *mut BNArchitecture,
14539        flag: u32,
14540        semClass: u32,
14541    ) -> BNFlagRole;
14542}
14543unsafe extern "C" {
14544    pub fn BNGetArchitectureFlagsRequiredForFlagCondition(
14545        arch: *mut BNArchitecture,
14546        cond: BNLowLevelILFlagCondition,
14547        semClass: u32,
14548        count: *mut usize,
14549    ) -> *mut u32;
14550}
14551unsafe extern "C" {
14552    pub fn BNGetArchitectureFlagsRequiredForSemanticFlagGroup(
14553        arch: *mut BNArchitecture,
14554        semGroup: u32,
14555        count: *mut usize,
14556    ) -> *mut u32;
14557}
14558unsafe extern "C" {
14559    pub fn BNGetArchitectureFlagConditionsForSemanticFlagGroup(
14560        arch: *mut BNArchitecture,
14561        semGroup: u32,
14562        count: *mut usize,
14563    ) -> *mut BNFlagConditionForSemanticClass;
14564}
14565unsafe extern "C" {
14566    pub fn BNFreeFlagConditionsForSemanticFlagGroup(
14567        conditions: *mut BNFlagConditionForSemanticClass,
14568    );
14569}
14570unsafe extern "C" {
14571    pub fn BNGetArchitectureFlagsWrittenByFlagWriteType(
14572        arch: *mut BNArchitecture,
14573        writeType: u32,
14574        count: *mut usize,
14575    ) -> *mut u32;
14576}
14577unsafe extern "C" {
14578    pub fn BNGetArchitectureSemanticClassForFlagWriteType(
14579        arch: *mut BNArchitecture,
14580        writeType: u32,
14581    ) -> u32;
14582}
14583unsafe extern "C" {
14584    pub fn BNGetArchitectureFlagWriteLowLevelIL(
14585        arch: *mut BNArchitecture,
14586        op: BNLowLevelILOperation,
14587        size: usize,
14588        flagWriteType: u32,
14589        flag: u32,
14590        operands: *mut BNRegisterOrConstant,
14591        operandCount: usize,
14592        il: *mut BNLowLevelILFunction,
14593    ) -> usize;
14594}
14595unsafe extern "C" {
14596    pub fn BNGetDefaultArchitectureFlagWriteLowLevelIL(
14597        arch: *mut BNArchitecture,
14598        op: BNLowLevelILOperation,
14599        size: usize,
14600        role: BNFlagRole,
14601        operands: *mut BNRegisterOrConstant,
14602        operandCount: usize,
14603        il: *mut BNLowLevelILFunction,
14604    ) -> usize;
14605}
14606unsafe extern "C" {
14607    pub fn BNGetArchitectureFlagConditionLowLevelIL(
14608        arch: *mut BNArchitecture,
14609        cond: BNLowLevelILFlagCondition,
14610        semClass: u32,
14611        il: *mut BNLowLevelILFunction,
14612    ) -> usize;
14613}
14614unsafe extern "C" {
14615    pub fn BNGetDefaultArchitectureFlagConditionLowLevelIL(
14616        arch: *mut BNArchitecture,
14617        cond: BNLowLevelILFlagCondition,
14618        semClass: u32,
14619        il: *mut BNLowLevelILFunction,
14620    ) -> usize;
14621}
14622unsafe extern "C" {
14623    pub fn BNGetArchitectureSemanticFlagGroupLowLevelIL(
14624        arch: *mut BNArchitecture,
14625        semGroup: u32,
14626        il: *mut BNLowLevelILFunction,
14627    ) -> usize;
14628}
14629unsafe extern "C" {
14630    pub fn BNGetModifiedArchitectureRegistersOnWrite(
14631        arch: *mut BNArchitecture,
14632        reg: u32,
14633        count: *mut usize,
14634    ) -> *mut u32;
14635}
14636unsafe extern "C" {
14637    pub fn BNFreeRegisterList(regs: *mut u32);
14638}
14639unsafe extern "C" {
14640    pub fn BNGetArchitectureRegisterInfo(arch: *mut BNArchitecture, reg: u32) -> BNRegisterInfo;
14641}
14642unsafe extern "C" {
14643    pub fn BNGetArchitectureStackPointerRegister(arch: *mut BNArchitecture) -> u32;
14644}
14645unsafe extern "C" {
14646    pub fn BNGetArchitectureLinkRegister(arch: *mut BNArchitecture) -> u32;
14647}
14648unsafe extern "C" {
14649    pub fn BNGetArchitectureGlobalRegisters(
14650        arch: *mut BNArchitecture,
14651        count: *mut usize,
14652    ) -> *mut u32;
14653}
14654unsafe extern "C" {
14655    pub fn BNIsArchitectureGlobalRegister(arch: *mut BNArchitecture, reg: u32) -> bool;
14656}
14657unsafe extern "C" {
14658    pub fn BNGetArchitectureSystemRegisters(
14659        arch: *mut BNArchitecture,
14660        count: *mut usize,
14661    ) -> *mut u32;
14662}
14663unsafe extern "C" {
14664    pub fn BNIsArchitectureSystemRegister(arch: *mut BNArchitecture, reg: u32) -> bool;
14665}
14666unsafe extern "C" {
14667    pub fn BNGetArchitectureRegisterByName(
14668        arch: *mut BNArchitecture,
14669        name: *const ::std::os::raw::c_char,
14670    ) -> u32;
14671}
14672unsafe extern "C" {
14673    pub fn BNGetArchitectureRegisterStackName(
14674        arch: *mut BNArchitecture,
14675        regStack: u32,
14676    ) -> *mut ::std::os::raw::c_char;
14677}
14678unsafe extern "C" {
14679    pub fn BNGetAllArchitectureRegisterStacks(
14680        arch: *mut BNArchitecture,
14681        count: *mut usize,
14682    ) -> *mut u32;
14683}
14684unsafe extern "C" {
14685    pub fn BNGetArchitectureRegisterStackInfo(
14686        arch: *mut BNArchitecture,
14687        regStack: u32,
14688    ) -> BNRegisterStackInfo;
14689}
14690unsafe extern "C" {
14691    pub fn BNGetArchitectureRegisterStackForRegister(arch: *mut BNArchitecture, reg: u32) -> u32;
14692}
14693unsafe extern "C" {
14694    pub fn BNGetArchitectureIntrinsicClass(
14695        arch: *mut BNArchitecture,
14696        intrinsic: u32,
14697    ) -> BNIntrinsicClass;
14698}
14699unsafe extern "C" {
14700    pub fn BNGetArchitectureIntrinsicName(
14701        arch: *mut BNArchitecture,
14702        intrinsic: u32,
14703    ) -> *mut ::std::os::raw::c_char;
14704}
14705unsafe extern "C" {
14706    pub fn BNGetAllArchitectureIntrinsics(arch: *mut BNArchitecture, count: *mut usize)
14707    -> *mut u32;
14708}
14709unsafe extern "C" {
14710    pub fn BNGetArchitectureIntrinsicInputs(
14711        arch: *mut BNArchitecture,
14712        intrinsic: u32,
14713        count: *mut usize,
14714    ) -> *mut BNNameAndType;
14715}
14716unsafe extern "C" {
14717    pub fn BNFreeNameAndTypeList(nt: *mut BNNameAndType, count: usize);
14718}
14719unsafe extern "C" {
14720    pub fn BNGetArchitectureIntrinsicOutputs(
14721        arch: *mut BNArchitecture,
14722        intrinsic: u32,
14723        count: *mut usize,
14724    ) -> *mut BNTypeWithConfidence;
14725}
14726unsafe extern "C" {
14727    pub fn BNFreeOutputTypeList(types: *mut BNTypeWithConfidence, count: usize);
14728}
14729unsafe extern "C" {
14730    pub fn BNCanArchitectureAssemble(arch: *mut BNArchitecture) -> bool;
14731}
14732unsafe extern "C" {
14733    pub fn BNAssemble(
14734        arch: *mut BNArchitecture,
14735        code: *const ::std::os::raw::c_char,
14736        addr: u64,
14737        result: *mut BNDataBuffer,
14738        errors: *mut *mut ::std::os::raw::c_char,
14739    ) -> bool;
14740}
14741unsafe extern "C" {
14742    pub fn BNIsArchitectureNeverBranchPatchAvailable(
14743        arch: *mut BNArchitecture,
14744        data: *const u8,
14745        addr: u64,
14746        len: usize,
14747    ) -> bool;
14748}
14749unsafe extern "C" {
14750    pub fn BNIsArchitectureAlwaysBranchPatchAvailable(
14751        arch: *mut BNArchitecture,
14752        data: *const u8,
14753        addr: u64,
14754        len: usize,
14755    ) -> bool;
14756}
14757unsafe extern "C" {
14758    pub fn BNIsArchitectureInvertBranchPatchAvailable(
14759        arch: *mut BNArchitecture,
14760        data: *const u8,
14761        addr: u64,
14762        len: usize,
14763    ) -> bool;
14764}
14765unsafe extern "C" {
14766    pub fn BNIsArchitectureSkipAndReturnZeroPatchAvailable(
14767        arch: *mut BNArchitecture,
14768        data: *const u8,
14769        addr: u64,
14770        len: usize,
14771    ) -> bool;
14772}
14773unsafe extern "C" {
14774    pub fn BNIsArchitectureSkipAndReturnValuePatchAvailable(
14775        arch: *mut BNArchitecture,
14776        data: *const u8,
14777        addr: u64,
14778        len: usize,
14779    ) -> bool;
14780}
14781unsafe extern "C" {
14782    pub fn BNArchitectureConvertToNop(
14783        arch: *mut BNArchitecture,
14784        data: *mut u8,
14785        addr: u64,
14786        len: usize,
14787    ) -> bool;
14788}
14789unsafe extern "C" {
14790    pub fn BNArchitectureAlwaysBranch(
14791        arch: *mut BNArchitecture,
14792        data: *mut u8,
14793        addr: u64,
14794        len: usize,
14795    ) -> bool;
14796}
14797unsafe extern "C" {
14798    pub fn BNArchitectureInvertBranch(
14799        arch: *mut BNArchitecture,
14800        data: *mut u8,
14801        addr: u64,
14802        len: usize,
14803    ) -> bool;
14804}
14805unsafe extern "C" {
14806    pub fn BNArchitectureSkipAndReturnValue(
14807        arch: *mut BNArchitecture,
14808        data: *mut u8,
14809        addr: u64,
14810        len: usize,
14811        value: u64,
14812    ) -> bool;
14813}
14814unsafe extern "C" {
14815    pub fn BNRegisterArchitectureFunctionRecognizer(
14816        arch: *mut BNArchitecture,
14817        rec: *mut BNFunctionRecognizer,
14818    );
14819}
14820unsafe extern "C" {
14821    pub fn BNArchitectureRegisterRelocationHandler(
14822        arch: *mut BNArchitecture,
14823        viewName: *const ::std::os::raw::c_char,
14824        handler: *mut BNRelocationHandler,
14825    );
14826}
14827unsafe extern "C" {
14828    pub fn BNCreateRelocationHandler(
14829        handler: *mut BNCustomRelocationHandler,
14830    ) -> *mut BNRelocationHandler;
14831}
14832unsafe extern "C" {
14833    pub fn BNArchitectureGetRelocationHandler(
14834        arch: *mut BNArchitecture,
14835        viewName: *const ::std::os::raw::c_char,
14836    ) -> *mut BNRelocationHandler;
14837}
14838unsafe extern "C" {
14839    pub fn BNNewRelocationHandlerReference(
14840        handler: *mut BNRelocationHandler,
14841    ) -> *mut BNRelocationHandler;
14842}
14843unsafe extern "C" {
14844    pub fn BNFreeRelocationHandler(handler: *mut BNRelocationHandler);
14845}
14846unsafe extern "C" {
14847    pub fn BNRelocationHandlerGetRelocationInfo(
14848        handler: *mut BNRelocationHandler,
14849        data: *mut BNBinaryView,
14850        arch: *mut BNArchitecture,
14851        info: *mut BNRelocationInfo,
14852        infoCount: usize,
14853    ) -> bool;
14854}
14855unsafe extern "C" {
14856    pub fn BNRelocationHandlerApplyRelocation(
14857        handler: *mut BNRelocationHandler,
14858        view: *mut BNBinaryView,
14859        arch: *mut BNArchitecture,
14860        reloc: *mut BNRelocation,
14861        dest: *mut u8,
14862        len: usize,
14863    ) -> bool;
14864}
14865unsafe extern "C" {
14866    pub fn BNRelocationHandlerDefaultApplyRelocation(
14867        handler: *mut BNRelocationHandler,
14868        view: *mut BNBinaryView,
14869        arch: *mut BNArchitecture,
14870        reloc: *mut BNRelocation,
14871        dest: *mut u8,
14872        len: usize,
14873    ) -> bool;
14874}
14875unsafe extern "C" {
14876    pub fn BNRelocationHandlerGetOperandForExternalRelocation(
14877        handler: *mut BNRelocationHandler,
14878        data: *const u8,
14879        addr: u64,
14880        length: usize,
14881        il: *const BNLowLevelILFunction,
14882        relocation: *mut BNRelocation,
14883    ) -> usize;
14884}
14885unsafe extern "C" {
14886    #[doc = " Analysis"]
14887    pub fn BNAddAnalysisOption(view: *mut BNBinaryView, name: *const ::std::os::raw::c_char);
14888}
14889unsafe extern "C" {
14890    pub fn BNAddFunctionForAnalysis(
14891        view: *mut BNBinaryView,
14892        platform: *mut BNPlatform,
14893        addr: u64,
14894        autoDiscovered: bool,
14895        type_: *mut BNType,
14896    ) -> *mut BNFunction;
14897}
14898unsafe extern "C" {
14899    pub fn BNAddEntryPointForAnalysis(
14900        view: *mut BNBinaryView,
14901        platform: *mut BNPlatform,
14902        addr: u64,
14903    );
14904}
14905unsafe extern "C" {
14906    pub fn BNRemoveAnalysisFunction(
14907        view: *mut BNBinaryView,
14908        func: *mut BNFunction,
14909        updateRefs: bool,
14910    );
14911}
14912unsafe extern "C" {
14913    pub fn BNCreateUserFunction(
14914        view: *mut BNBinaryView,
14915        platform: *mut BNPlatform,
14916        addr: u64,
14917    ) -> *mut BNFunction;
14918}
14919unsafe extern "C" {
14920    pub fn BNRemoveUserFunction(view: *mut BNBinaryView, func: *mut BNFunction);
14921}
14922unsafe extern "C" {
14923    pub fn BNHasInitialAnalysis(view: *mut BNBinaryView) -> bool;
14924}
14925unsafe extern "C" {
14926    pub fn BNSetAnalysisHold(view: *mut BNBinaryView, enable: bool);
14927}
14928unsafe extern "C" {
14929    pub fn BNGetFunctionAnalysisUpdateDisabled(view: *mut BNBinaryView) -> bool;
14930}
14931unsafe extern "C" {
14932    pub fn BNSetFunctionAnalysisUpdateDisabled(view: *mut BNBinaryView, disabled: bool);
14933}
14934unsafe extern "C" {
14935    pub fn BNUpdateAnalysisAndWait(view: *mut BNBinaryView);
14936}
14937unsafe extern "C" {
14938    pub fn BNUpdateAnalysis(view: *mut BNBinaryView);
14939}
14940unsafe extern "C" {
14941    pub fn BNAbortAnalysis(view: *mut BNBinaryView);
14942}
14943unsafe extern "C" {
14944    pub fn BNAnalysisIsAborted(view: *mut BNBinaryView) -> bool;
14945}
14946unsafe extern "C" {
14947    pub fn BNIsFunctionUpdateNeeded(func: *mut BNFunction) -> bool;
14948}
14949unsafe extern "C" {
14950    pub fn BNRequestAdvancedFunctionAnalysisData(func: *mut BNFunction);
14951}
14952unsafe extern "C" {
14953    pub fn BNReleaseAdvancedFunctionAnalysisData(func: *mut BNFunction);
14954}
14955unsafe extern "C" {
14956    pub fn BNReleaseAdvancedFunctionAnalysisDataMultiple(func: *mut BNFunction, count: usize);
14957}
14958unsafe extern "C" {
14959    pub fn BNNewFunctionReference(func: *mut BNFunction) -> *mut BNFunction;
14960}
14961unsafe extern "C" {
14962    pub fn BNFreeFunction(func: *mut BNFunction);
14963}
14964unsafe extern "C" {
14965    pub fn BNGetAnalysisFunctionList(
14966        view: *mut BNBinaryView,
14967        count: *mut usize,
14968    ) -> *mut *mut BNFunction;
14969}
14970unsafe extern "C" {
14971    pub fn BNFreeFunctionList(funcs: *mut *mut BNFunction, count: usize);
14972}
14973unsafe extern "C" {
14974    pub fn BNHasFunctions(view: *mut BNBinaryView) -> bool;
14975}
14976unsafe extern "C" {
14977    pub fn BNHasSymbols(view: *mut BNBinaryView) -> bool;
14978}
14979unsafe extern "C" {
14980    pub fn BNHasDataVariables(view: *mut BNBinaryView) -> bool;
14981}
14982unsafe extern "C" {
14983    pub fn BNGetAnalysisFunction(
14984        view: *mut BNBinaryView,
14985        platform: *mut BNPlatform,
14986        addr: u64,
14987    ) -> *mut BNFunction;
14988}
14989unsafe extern "C" {
14990    pub fn BNGetRecentAnalysisFunctionForAddress(
14991        view: *mut BNBinaryView,
14992        addr: u64,
14993    ) -> *mut BNFunction;
14994}
14995unsafe extern "C" {
14996    pub fn BNGetAnalysisFunctionsForAddress(
14997        view: *mut BNBinaryView,
14998        addr: u64,
14999        count: *mut usize,
15000    ) -> *mut *mut BNFunction;
15001}
15002unsafe extern "C" {
15003    pub fn BNGetAnalysisFunctionsContainingAddress(
15004        view: *mut BNBinaryView,
15005        addr: u64,
15006        count: *mut usize,
15007    ) -> *mut *mut BNFunction;
15008}
15009unsafe extern "C" {
15010    pub fn BNGetAnalysisEntryPoint(view: *mut BNBinaryView) -> *mut BNFunction;
15011}
15012unsafe extern "C" {
15013    pub fn BNGetAllEntryFunctions(
15014        view: *mut BNBinaryView,
15015        count: *mut usize,
15016    ) -> *mut *mut BNFunction;
15017}
15018unsafe extern "C" {
15019    pub fn BNAddToEntryFunctions(view: *mut BNBinaryView, func: *mut BNFunction);
15020}
15021unsafe extern "C" {
15022    pub fn BNGetGlobalCommentForAddress(
15023        view: *mut BNBinaryView,
15024        addr: u64,
15025    ) -> *mut ::std::os::raw::c_char;
15026}
15027unsafe extern "C" {
15028    pub fn BNGetGlobalCommentedAddresses(view: *mut BNBinaryView, count: *mut usize) -> *mut u64;
15029}
15030unsafe extern "C" {
15031    pub fn BNSetGlobalCommentForAddress(
15032        view: *mut BNBinaryView,
15033        addr: u64,
15034        comment: *const ::std::os::raw::c_char,
15035    );
15036}
15037unsafe extern "C" {
15038    pub fn BNGetFunctionData(func: *mut BNFunction) -> *mut BNBinaryView;
15039}
15040unsafe extern "C" {
15041    pub fn BNGetFunctionArchitecture(func: *mut BNFunction) -> *mut BNArchitecture;
15042}
15043unsafe extern "C" {
15044    pub fn BNGetFunctionPlatform(func: *mut BNFunction) -> *mut BNPlatform;
15045}
15046unsafe extern "C" {
15047    pub fn BNGetFunctionStart(func: *mut BNFunction) -> u64;
15048}
15049unsafe extern "C" {
15050    pub fn BNGetFunctionSymbol(func: *mut BNFunction) -> *mut BNSymbol;
15051}
15052unsafe extern "C" {
15053    pub fn BNWasFunctionAutomaticallyDiscovered(func: *mut BNFunction) -> bool;
15054}
15055unsafe extern "C" {
15056    pub fn BNFunctionHasUserAnnotations(func: *mut BNFunction) -> bool;
15057}
15058unsafe extern "C" {
15059    pub fn BNCanFunctionReturn(func: *mut BNFunction) -> BNBoolWithConfidence;
15060}
15061unsafe extern "C" {
15062    pub fn BNIsFunctionPure(func: *mut BNFunction) -> BNBoolWithConfidence;
15063}
15064unsafe extern "C" {
15065    pub fn BNSetFunctionAutoType(func: *mut BNFunction, type_: *mut BNType);
15066}
15067unsafe extern "C" {
15068    pub fn BNSetFunctionUserType(func: *mut BNFunction, type_: *mut BNType);
15069}
15070unsafe extern "C" {
15071    pub fn BNFunctionHasUserType(func: *mut BNFunction) -> bool;
15072}
15073unsafe extern "C" {
15074    pub fn BNGetFunctionComment(func: *mut BNFunction) -> *mut ::std::os::raw::c_char;
15075}
15076unsafe extern "C" {
15077    pub fn BNGetCommentForAddress(func: *mut BNFunction, addr: u64) -> *mut ::std::os::raw::c_char;
15078}
15079unsafe extern "C" {
15080    pub fn BNGetCommentedAddresses(func: *mut BNFunction, count: *mut usize) -> *mut u64;
15081}
15082unsafe extern "C" {
15083    pub fn BNFreeAddressList(addrs: *mut u64);
15084}
15085unsafe extern "C" {
15086    pub fn BNSetFunctionComment(func: *mut BNFunction, comment: *const ::std::os::raw::c_char);
15087}
15088unsafe extern "C" {
15089    pub fn BNSetCommentForAddress(
15090        func: *mut BNFunction,
15091        addr: u64,
15092        comment: *const ::std::os::raw::c_char,
15093    );
15094}
15095unsafe extern "C" {
15096    pub fn BNAddUserCodeReference(
15097        func: *mut BNFunction,
15098        fromArch: *mut BNArchitecture,
15099        fromAddr: u64,
15100        toAddr: u64,
15101    );
15102}
15103unsafe extern "C" {
15104    pub fn BNRemoveUserCodeReference(
15105        func: *mut BNFunction,
15106        fromArch: *mut BNArchitecture,
15107        fromAddr: u64,
15108        toAddr: u64,
15109    );
15110}
15111unsafe extern "C" {
15112    pub fn BNAddUserTypeReference(
15113        func: *mut BNFunction,
15114        fromArch: *mut BNArchitecture,
15115        fromAddr: u64,
15116        name: *mut BNQualifiedName,
15117    );
15118}
15119unsafe extern "C" {
15120    pub fn BNRemoveUserTypeReference(
15121        func: *mut BNFunction,
15122        fromArch: *mut BNArchitecture,
15123        fromAddr: u64,
15124        name: *mut BNQualifiedName,
15125    );
15126}
15127unsafe extern "C" {
15128    pub fn BNAddUserTypeFieldReference(
15129        func: *mut BNFunction,
15130        fromArch: *mut BNArchitecture,
15131        fromAddr: u64,
15132        name: *mut BNQualifiedName,
15133        offset: u64,
15134        size: usize,
15135    );
15136}
15137unsafe extern "C" {
15138    pub fn BNRemoveUserTypeFieldReference(
15139        func: *mut BNFunction,
15140        fromArch: *mut BNArchitecture,
15141        fromAddr: u64,
15142        name: *mut BNQualifiedName,
15143        offset: u64,
15144        size: usize,
15145    );
15146}
15147unsafe extern "C" {
15148    pub fn BNGetForeignFunctionLiftedIL(
15149        func: *const BNFunction,
15150        logger: *const BNLogger,
15151        inlinedCallsCount: usize,
15152        inlinedCalls: *const u64,
15153    ) -> *mut BNLowLevelILFunction;
15154}
15155unsafe extern "C" {
15156    pub fn BNNewBasicBlockReference(block: *mut BNBasicBlock) -> *mut BNBasicBlock;
15157}
15158unsafe extern "C" {
15159    pub fn BNFreeBasicBlock(block: *mut BNBasicBlock);
15160}
15161unsafe extern "C" {
15162    pub fn BNGetFunctionBasicBlockList(
15163        func: *mut BNFunction,
15164        count: *mut usize,
15165    ) -> *mut *mut BNBasicBlock;
15166}
15167unsafe extern "C" {
15168    pub fn BNFreeBasicBlockList(blocks: *mut *mut BNBasicBlock, count: usize);
15169}
15170unsafe extern "C" {
15171    pub fn BNGetFunctionBasicBlockAtAddress(
15172        func: *mut BNFunction,
15173        arch: *mut BNArchitecture,
15174        addr: u64,
15175    ) -> *mut BNBasicBlock;
15176}
15177unsafe extern "C" {
15178    pub fn BNGetRecentBasicBlockForAddress(view: *mut BNBinaryView, addr: u64)
15179    -> *mut BNBasicBlock;
15180}
15181unsafe extern "C" {
15182    pub fn BNGetBasicBlocksForAddress(
15183        view: *mut BNBinaryView,
15184        addr: u64,
15185        count: *mut usize,
15186    ) -> *mut *mut BNBasicBlock;
15187}
15188unsafe extern "C" {
15189    pub fn BNGetBasicBlocksStartingAtAddress(
15190        view: *mut BNBinaryView,
15191        addr: u64,
15192        count: *mut usize,
15193    ) -> *mut *mut BNBasicBlock;
15194}
15195unsafe extern "C" {
15196    pub fn BNGetFunctionHighestAddress(func: *mut BNFunction) -> u64;
15197}
15198unsafe extern "C" {
15199    pub fn BNGetFunctionLowestAddress(func: *mut BNFunction) -> u64;
15200}
15201unsafe extern "C" {
15202    pub fn BNGetFunctionAddressRanges(
15203        func: *mut BNFunction,
15204        count: *mut usize,
15205    ) -> *mut BNAddressRange;
15206}
15207unsafe extern "C" {
15208    pub fn BNGetFunctionLowLevelIL(func: *mut BNFunction) -> *mut BNLowLevelILFunction;
15209}
15210unsafe extern "C" {
15211    pub fn BNGetFunctionLowLevelILIfAvailable(func: *mut BNFunction) -> *mut BNLowLevelILFunction;
15212}
15213unsafe extern "C" {
15214    pub fn BNFreeILInstructionList(list: *mut usize);
15215}
15216unsafe extern "C" {
15217    pub fn BNGetFunctionMediumLevelIL(func: *mut BNFunction) -> *mut BNMediumLevelILFunction;
15218}
15219unsafe extern "C" {
15220    pub fn BNGetFunctionMediumLevelILIfAvailable(
15221        func: *mut BNFunction,
15222    ) -> *mut BNMediumLevelILFunction;
15223}
15224unsafe extern "C" {
15225    pub fn BNGetFunctionMappedMediumLevelIL(func: *mut BNFunction) -> *mut BNMediumLevelILFunction;
15226}
15227unsafe extern "C" {
15228    pub fn BNGetFunctionMappedMediumLevelILIfAvailable(
15229        func: *mut BNFunction,
15230    ) -> *mut BNMediumLevelILFunction;
15231}
15232unsafe extern "C" {
15233    pub fn BNGetFunctionHighLevelIL(func: *mut BNFunction) -> *mut BNHighLevelILFunction;
15234}
15235unsafe extern "C" {
15236    pub fn BNGetFunctionHighLevelILIfAvailable(func: *mut BNFunction)
15237    -> *mut BNHighLevelILFunction;
15238}
15239unsafe extern "C" {
15240    pub fn BNGetFunctionLanguageRepresentation(
15241        func: *mut BNFunction,
15242        language: *const ::std::os::raw::c_char,
15243    ) -> *mut BNLanguageRepresentationFunction;
15244}
15245unsafe extern "C" {
15246    pub fn BNGetFunctionLanguageRepresentationIfAvailable(
15247        func: *mut BNFunction,
15248        language: *const ::std::os::raw::c_char,
15249    ) -> *mut BNLanguageRepresentationFunction;
15250}
15251unsafe extern "C" {
15252    pub fn BNGetConstantData(
15253        func: *mut BNFunction,
15254        state: BNRegisterValueType,
15255        value: u64,
15256        size: usize,
15257        builtin: *mut BNBuiltinType,
15258    ) -> *mut BNDataBuffer;
15259}
15260unsafe extern "C" {
15261    pub fn BNGetRegisterValueAtInstruction(
15262        func: *mut BNFunction,
15263        arch: *mut BNArchitecture,
15264        addr: u64,
15265        reg: u32,
15266    ) -> BNRegisterValue;
15267}
15268unsafe extern "C" {
15269    pub fn BNGetRegisterValueAfterInstruction(
15270        func: *mut BNFunction,
15271        arch: *mut BNArchitecture,
15272        addr: u64,
15273        reg: u32,
15274    ) -> BNRegisterValue;
15275}
15276unsafe extern "C" {
15277    pub fn BNGetStackContentsAtInstruction(
15278        func: *mut BNFunction,
15279        arch: *mut BNArchitecture,
15280        addr: u64,
15281        offset: i64,
15282        size: usize,
15283    ) -> BNRegisterValue;
15284}
15285unsafe extern "C" {
15286    pub fn BNGetStackContentsAfterInstruction(
15287        func: *mut BNFunction,
15288        arch: *mut BNArchitecture,
15289        addr: u64,
15290        offset: i64,
15291        size: usize,
15292    ) -> BNRegisterValue;
15293}
15294unsafe extern "C" {
15295    pub fn BNGetParameterValueAtInstruction(
15296        func: *mut BNFunction,
15297        arch: *mut BNArchitecture,
15298        addr: u64,
15299        functionType: *mut BNType,
15300        i: usize,
15301    ) -> BNRegisterValue;
15302}
15303unsafe extern "C" {
15304    pub fn BNGetParameterValueAtLowLevelILInstruction(
15305        func: *mut BNFunction,
15306        instr: usize,
15307        functionType: *mut BNType,
15308        i: usize,
15309    ) -> BNRegisterValue;
15310}
15311unsafe extern "C" {
15312    pub fn BNGetRegistersReadByInstruction(
15313        func: *mut BNFunction,
15314        arch: *mut BNArchitecture,
15315        addr: u64,
15316        count: *mut usize,
15317    ) -> *mut u32;
15318}
15319unsafe extern "C" {
15320    pub fn BNGetRegistersWrittenByInstruction(
15321        func: *mut BNFunction,
15322        arch: *mut BNArchitecture,
15323        addr: u64,
15324        count: *mut usize,
15325    ) -> *mut u32;
15326}
15327unsafe extern "C" {
15328    pub fn BNGetStackVariablesReferencedByInstruction(
15329        func: *mut BNFunction,
15330        arch: *mut BNArchitecture,
15331        addr: u64,
15332        count: *mut usize,
15333    ) -> *mut BNStackVariableReference;
15334}
15335unsafe extern "C" {
15336    pub fn BNGetStackVariablesReferencedByInstructionIfAvailable(
15337        func: *mut BNFunction,
15338        arch: *mut BNArchitecture,
15339        addr: u64,
15340        count: *mut usize,
15341    ) -> *mut BNStackVariableReference;
15342}
15343unsafe extern "C" {
15344    pub fn BNFreeStackVariableReferenceList(refs: *mut BNStackVariableReference, count: usize);
15345}
15346unsafe extern "C" {
15347    pub fn BNGetConstantsReferencedByInstruction(
15348        func: *mut BNFunction,
15349        arch: *mut BNArchitecture,
15350        addr: u64,
15351        count: *mut usize,
15352    ) -> *mut BNConstantReference;
15353}
15354unsafe extern "C" {
15355    pub fn BNGetConstantsReferencedByInstructionIfAvailable(
15356        func: *mut BNFunction,
15357        arch: *mut BNArchitecture,
15358        addr: u64,
15359        count: *mut usize,
15360    ) -> *mut BNConstantReference;
15361}
15362unsafe extern "C" {
15363    pub fn BNFreeConstantReferenceList(refs: *mut BNConstantReference);
15364}
15365unsafe extern "C" {
15366    pub fn BNGetFunctionLiftedIL(func: *mut BNFunction) -> *mut BNLowLevelILFunction;
15367}
15368unsafe extern "C" {
15369    pub fn BNGetFunctionLiftedILIfAvailable(func: *mut BNFunction) -> *mut BNLowLevelILFunction;
15370}
15371unsafe extern "C" {
15372    pub fn BNGetLiftedILFlagUsesForDefinition(
15373        func: *mut BNFunction,
15374        i: usize,
15375        flag: u32,
15376        count: *mut usize,
15377    ) -> *mut usize;
15378}
15379unsafe extern "C" {
15380    pub fn BNGetLiftedILFlagDefinitionsForUse(
15381        func: *mut BNFunction,
15382        i: usize,
15383        flag: u32,
15384        count: *mut usize,
15385    ) -> *mut usize;
15386}
15387unsafe extern "C" {
15388    pub fn BNGetFlagsReadByLiftedILInstruction(
15389        func: *mut BNFunction,
15390        i: usize,
15391        count: *mut usize,
15392    ) -> *mut u32;
15393}
15394unsafe extern "C" {
15395    pub fn BNGetFlagsWrittenByLiftedILInstruction(
15396        func: *mut BNFunction,
15397        i: usize,
15398        count: *mut usize,
15399    ) -> *mut u32;
15400}
15401unsafe extern "C" {
15402    pub fn BNGetFunctionType(func: *mut BNFunction) -> *mut BNType;
15403}
15404unsafe extern "C" {
15405    pub fn BNGetFunctionReturnType(func: *mut BNFunction) -> BNTypeWithConfidence;
15406}
15407unsafe extern "C" {
15408    pub fn BNGetFunctionReturnValue(func: *mut BNFunction) -> BNReturnValue;
15409}
15410unsafe extern "C" {
15411    pub fn BNFreeReturnValue(ret: *mut BNReturnValue);
15412}
15413unsafe extern "C" {
15414    pub fn BNIsFunctionReturnValueDefaultLocation(func: *mut BNFunction) -> bool;
15415}
15416unsafe extern "C" {
15417    pub fn BNGetFunctionReturnValueLocation(func: *mut BNFunction)
15418    -> BNValueLocationWithConfidence;
15419}
15420unsafe extern "C" {
15421    pub fn BNGetFunctionReturnRegisters(func: *mut BNFunction) -> BNRegisterSetWithConfidence;
15422}
15423unsafe extern "C" {
15424    pub fn BNGetFunctionCallingConvention(
15425        func: *mut BNFunction,
15426    ) -> BNCallingConventionWithConfidence;
15427}
15428unsafe extern "C" {
15429    pub fn BNGetFunctionParameterVariables(
15430        func: *mut BNFunction,
15431    ) -> BNParameterVariablesWithConfidence;
15432}
15433unsafe extern "C" {
15434    pub fn BNFreeParameterVariables(vars: *mut BNParameterVariablesWithConfidence);
15435}
15436unsafe extern "C" {
15437    pub fn BNGetFunctionParameterLocations(
15438        func: *mut BNFunction,
15439    ) -> BNValueLocationListWithConfidence;
15440}
15441unsafe extern "C" {
15442    pub fn BNFreeParameterLocations(locations: *mut BNValueLocationListWithConfidence);
15443}
15444unsafe extern "C" {
15445    pub fn BNGetValueLocationVariableForReturnValue(
15446        location: *const BNValueLocation,
15447        var: *mut BNVariable,
15448    ) -> bool;
15449}
15450unsafe extern "C" {
15451    pub fn BNGetValueLocationVariableForParameter(
15452        location: *const BNValueLocation,
15453        var: *mut BNVariable,
15454        idx: usize,
15455    ) -> bool;
15456}
15457unsafe extern "C" {
15458    pub fn BNFunctionHasVariableArguments(func: *mut BNFunction) -> BNBoolWithConfidence;
15459}
15460unsafe extern "C" {
15461    pub fn BNGetFunctionStackAdjustment(func: *mut BNFunction) -> BNOffsetWithConfidence;
15462}
15463unsafe extern "C" {
15464    pub fn BNGetFunctionRegisterStackAdjustments(
15465        func: *mut BNFunction,
15466        count: *mut usize,
15467    ) -> *mut BNRegisterStackAdjustment;
15468}
15469unsafe extern "C" {
15470    pub fn BNFreeRegisterStackAdjustments(adjustments: *mut BNRegisterStackAdjustment);
15471}
15472unsafe extern "C" {
15473    pub fn BNGetFunctionClobberedRegisters(func: *mut BNFunction) -> BNRegisterSetWithConfidence;
15474}
15475unsafe extern "C" {
15476    pub fn BNFreeRegisterSet(regs: *mut BNRegisterSetWithConfidence);
15477}
15478unsafe extern "C" {
15479    pub fn BNSetAutoFunctionReturnType(func: *mut BNFunction, type_: *mut BNTypeWithConfidence);
15480}
15481unsafe extern "C" {
15482    pub fn BNSetAutoIsFunctionReturnValueDefaultLocation(
15483        func: *mut BNFunction,
15484        defaultLocation: bool,
15485    );
15486}
15487unsafe extern "C" {
15488    pub fn BNSetAutoFunctionReturnValueLocation(
15489        func: *mut BNFunction,
15490        location: *mut BNValueLocationWithConfidence,
15491    );
15492}
15493unsafe extern "C" {
15494    pub fn BNSetAutoFunctionReturnValue(func: *mut BNFunction, returnValue: *mut BNReturnValue);
15495}
15496unsafe extern "C" {
15497    pub fn BNSetAutoFunctionCallingConvention(
15498        func: *mut BNFunction,
15499        convention: *mut BNCallingConventionWithConfidence,
15500    );
15501}
15502unsafe extern "C" {
15503    pub fn BNSetAutoFunctionParameterLocations(
15504        func: *mut BNFunction,
15505        locations: *mut BNValueLocationListWithConfidence,
15506    );
15507}
15508unsafe extern "C" {
15509    pub fn BNSetAutoFunctionHasVariableArguments(
15510        func: *mut BNFunction,
15511        varArgs: *mut BNBoolWithConfidence,
15512    );
15513}
15514unsafe extern "C" {
15515    pub fn BNSetAutoFunctionCanReturn(func: *mut BNFunction, returns: *mut BNBoolWithConfidence);
15516}
15517unsafe extern "C" {
15518    pub fn BNSetAutoFunctionPure(func: *mut BNFunction, pure_: *mut BNBoolWithConfidence);
15519}
15520unsafe extern "C" {
15521    pub fn BNSetAutoFunctionStackAdjustment(
15522        func: *mut BNFunction,
15523        stackAdjust: *mut BNOffsetWithConfidence,
15524    );
15525}
15526unsafe extern "C" {
15527    pub fn BNSetAutoFunctionRegisterStackAdjustments(
15528        func: *mut BNFunction,
15529        adjustments: *mut BNRegisterStackAdjustment,
15530        count: usize,
15531    );
15532}
15533unsafe extern "C" {
15534    pub fn BNSetAutoFunctionClobberedRegisters(
15535        func: *mut BNFunction,
15536        regs: *mut BNRegisterSetWithConfidence,
15537    );
15538}
15539unsafe extern "C" {
15540    pub fn BNSetUserFunctionReturnType(func: *mut BNFunction, type_: *mut BNTypeWithConfidence);
15541}
15542unsafe extern "C" {
15543    pub fn BNSetUserIsFunctionReturnValueDefaultLocation(
15544        func: *mut BNFunction,
15545        defaultLocation: bool,
15546    );
15547}
15548unsafe extern "C" {
15549    pub fn BNSetUserFunctionReturnValueLocation(
15550        func: *mut BNFunction,
15551        location: *mut BNValueLocationWithConfidence,
15552    );
15553}
15554unsafe extern "C" {
15555    pub fn BNSetUserFunctionReturnValue(func: *mut BNFunction, returnValue: *mut BNReturnValue);
15556}
15557unsafe extern "C" {
15558    pub fn BNSetUserFunctionCallingConvention(
15559        func: *mut BNFunction,
15560        convention: *mut BNCallingConventionWithConfidence,
15561    );
15562}
15563unsafe extern "C" {
15564    pub fn BNSetUserFunctionParameterLocations(
15565        func: *mut BNFunction,
15566        locations: *mut BNValueLocationListWithConfidence,
15567    );
15568}
15569unsafe extern "C" {
15570    pub fn BNSetUserFunctionHasVariableArguments(
15571        func: *mut BNFunction,
15572        varArgs: *mut BNBoolWithConfidence,
15573    );
15574}
15575unsafe extern "C" {
15576    pub fn BNSetUserFunctionCanReturn(func: *mut BNFunction, returns: *mut BNBoolWithConfidence);
15577}
15578unsafe extern "C" {
15579    pub fn BNSetUserFunctionPure(func: *mut BNFunction, pure_: *mut BNBoolWithConfidence);
15580}
15581unsafe extern "C" {
15582    pub fn BNSetUserFunctionStackAdjustment(
15583        func: *mut BNFunction,
15584        stackAdjust: *mut BNOffsetWithConfidence,
15585    );
15586}
15587unsafe extern "C" {
15588    pub fn BNSetUserFunctionRegisterStackAdjustments(
15589        func: *mut BNFunction,
15590        adjustments: *mut BNRegisterStackAdjustment,
15591        count: usize,
15592    );
15593}
15594unsafe extern "C" {
15595    pub fn BNSetUserFunctionClobberedRegisters(
15596        func: *mut BNFunction,
15597        regs: *mut BNRegisterSetWithConfidence,
15598    );
15599}
15600unsafe extern "C" {
15601    pub fn BNApplyImportedTypes(func: *mut BNFunction, sym: *mut BNSymbol, type_: *mut BNType);
15602}
15603unsafe extern "C" {
15604    pub fn BNApplyAutoDiscoveredFunctionType(func: *mut BNFunction, type_: *mut BNType);
15605}
15606unsafe extern "C" {
15607    pub fn BNFunctionHasExplicitlyDefinedType(func: *mut BNFunction) -> bool;
15608}
15609unsafe extern "C" {
15610    pub fn BNGetFunctionTypeTokens(
15611        func: *mut BNFunction,
15612        settings: *mut BNDisassemblySettings,
15613        count: *mut usize,
15614    ) -> *mut BNDisassemblyTextLine;
15615}
15616unsafe extern "C" {
15617    pub fn BNGetFunctionGlobalPointerValues(
15618        func: *mut BNFunction,
15619        count: *mut usize,
15620    ) -> *mut BNRegisterValueWithConfidenceAndRegister;
15621}
15622unsafe extern "C" {
15623    pub fn BNFunctionUsesIncomingGlobalPointer(func: *mut BNFunction) -> bool;
15624}
15625unsafe extern "C" {
15626    pub fn BNGetFunctionRegisterValueAtExit(
15627        func: *mut BNFunction,
15628        reg: u32,
15629    ) -> BNRegisterValueWithConfidence;
15630}
15631unsafe extern "C" {
15632    pub fn BNIsFunctionInlinedDuringAnalysis(func: *mut BNFunction) -> BNBoolWithConfidence;
15633}
15634unsafe extern "C" {
15635    pub fn BNGetFunctionInlinedDuringAnalysis(
15636        func: *mut BNFunction,
15637    ) -> BNInlineDuringAnalysisWithConfidence;
15638}
15639unsafe extern "C" {
15640    pub fn BNSetAutoFunctionInlinedDuringAnalysis(
15641        func: *mut BNFunction,
15642        inlined: BNInlineDuringAnalysisWithConfidence,
15643    );
15644}
15645unsafe extern "C" {
15646    pub fn BNSetUserFunctionInlinedDuringAnalysis(
15647        func: *mut BNFunction,
15648        inlined: BNInlineDuringAnalysisWithConfidence,
15649    );
15650}
15651unsafe extern "C" {
15652    pub fn BNGetInstructionContainingAddress(
15653        func: *mut BNFunction,
15654        arch: *mut BNArchitecture,
15655        addr: u64,
15656        start: *mut u64,
15657    ) -> bool;
15658}
15659unsafe extern "C" {
15660    pub fn BNGetBasicBlockFunction(block: *mut BNBasicBlock) -> *mut BNFunction;
15661}
15662unsafe extern "C" {
15663    pub fn BNGetBasicBlockArchitecture(block: *mut BNBasicBlock) -> *mut BNArchitecture;
15664}
15665unsafe extern "C" {
15666    pub fn BNGetBasicBlockSource(block: *mut BNBasicBlock) -> *mut BNBasicBlock;
15667}
15668unsafe extern "C" {
15669    pub fn BNGetBasicBlockStart(block: *mut BNBasicBlock) -> u64;
15670}
15671unsafe extern "C" {
15672    pub fn BNSetBasicBlockEnd(block: *mut BNBasicBlock, end: u64);
15673}
15674unsafe extern "C" {
15675    pub fn BNGetBasicBlockEnd(block: *mut BNBasicBlock) -> u64;
15676}
15677unsafe extern "C" {
15678    pub fn BNGetBasicBlockLength(block: *mut BNBasicBlock) -> u64;
15679}
15680unsafe extern "C" {
15681    pub fn BNGetBasicBlockOutgoingEdges(
15682        block: *mut BNBasicBlock,
15683        count: *mut usize,
15684    ) -> *mut BNBasicBlockEdge;
15685}
15686unsafe extern "C" {
15687    pub fn BNGetBasicBlockIncomingEdges(
15688        block: *mut BNBasicBlock,
15689        count: *mut usize,
15690    ) -> *mut BNBasicBlockEdge;
15691}
15692unsafe extern "C" {
15693    pub fn BNFreeBasicBlockEdgeList(edges: *mut BNBasicBlockEdge, count: usize);
15694}
15695unsafe extern "C" {
15696    pub fn BNBasicBlockHasUndeterminedOutgoingEdges(block: *mut BNBasicBlock) -> bool;
15697}
15698unsafe extern "C" {
15699    pub fn BNBasicBlockAddPendingOutgoingEdge(
15700        block: *mut BNBasicBlock,
15701        type_: BNBranchType,
15702        addr: u64,
15703        arch: *mut BNArchitecture,
15704        fallThrough: bool,
15705    );
15706}
15707unsafe extern "C" {
15708    pub fn BNGetBasicBlockPendingOutgoingEdges(
15709        block: *mut BNBasicBlock,
15710        count: *mut usize,
15711    ) -> *mut BNPendingBasicBlockEdge;
15712}
15713unsafe extern "C" {
15714    pub fn BNFreePendingBasicBlockEdgeList(edges: *mut BNPendingBasicBlockEdge);
15715}
15716unsafe extern "C" {
15717    pub fn BNClearBasicBlockPendingOutgoingEdges(block: *mut BNBasicBlock);
15718}
15719unsafe extern "C" {
15720    pub fn BNBasicBlockSetUndeterminedOutgoingEdges(block: *mut BNBasicBlock, value: bool);
15721}
15722unsafe extern "C" {
15723    pub fn BNBasicBlockHasInstructionData(block: *mut BNBasicBlock) -> bool;
15724}
15725unsafe extern "C" {
15726    pub fn BNBasicBlockGetInstructionData(
15727        block: *mut BNBasicBlock,
15728        addr: u64,
15729        len: *mut usize,
15730    ) -> *const u8;
15731}
15732unsafe extern "C" {
15733    pub fn BNBasicBlockAddInstructionData(
15734        block: *mut BNBasicBlock,
15735        data: *const ::std::os::raw::c_void,
15736        len: usize,
15737    );
15738}
15739unsafe extern "C" {
15740    pub fn BNBasicBlockSetFallThroughToFunction(block: *mut BNBasicBlock, value: bool);
15741}
15742unsafe extern "C" {
15743    pub fn BNBasicBlockIsFallThroughToFunction(block: *mut BNBasicBlock) -> bool;
15744}
15745unsafe extern "C" {
15746    pub fn BNBasicBlockCanExit(block: *mut BNBasicBlock) -> bool;
15747}
15748unsafe extern "C" {
15749    pub fn BNBasicBlockSetCanExit(block: *mut BNBasicBlock, value: bool);
15750}
15751unsafe extern "C" {
15752    pub fn BNBasicBlockSetHasInvalidInstructions(block: *mut BNBasicBlock, value: bool);
15753}
15754unsafe extern "C" {
15755    pub fn BNBasicBlockHasInvalidInstructions(block: *mut BNBasicBlock) -> bool;
15756}
15757unsafe extern "C" {
15758    pub fn BNGetBasicBlockIndex(block: *mut BNBasicBlock) -> usize;
15759}
15760unsafe extern "C" {
15761    pub fn BNGetBasicBlockDominators(
15762        block: *mut BNBasicBlock,
15763        count: *mut usize,
15764        post: bool,
15765    ) -> *mut *mut BNBasicBlock;
15766}
15767unsafe extern "C" {
15768    pub fn BNGetBasicBlockStrictDominators(
15769        block: *mut BNBasicBlock,
15770        count: *mut usize,
15771        post: bool,
15772    ) -> *mut *mut BNBasicBlock;
15773}
15774unsafe extern "C" {
15775    pub fn BNGetBasicBlockImmediateDominator(
15776        block: *mut BNBasicBlock,
15777        post: bool,
15778    ) -> *mut BNBasicBlock;
15779}
15780unsafe extern "C" {
15781    pub fn BNGetBasicBlockDominatorTreeChildren(
15782        block: *mut BNBasicBlock,
15783        count: *mut usize,
15784        post: bool,
15785    ) -> *mut *mut BNBasicBlock;
15786}
15787unsafe extern "C" {
15788    pub fn BNGetBasicBlockDominanceFrontier(
15789        block: *mut BNBasicBlock,
15790        count: *mut usize,
15791        post: bool,
15792    ) -> *mut *mut BNBasicBlock;
15793}
15794unsafe extern "C" {
15795    pub fn BNGetBasicBlockIteratedDominanceFrontier(
15796        blocks: *mut *mut BNBasicBlock,
15797        incomingCount: usize,
15798        outputCount: *mut usize,
15799    ) -> *mut *mut BNBasicBlock;
15800}
15801unsafe extern "C" {
15802    pub fn BNIsILBasicBlock(block: *mut BNBasicBlock) -> bool;
15803}
15804unsafe extern "C" {
15805    pub fn BNIsLowLevelILBasicBlock(block: *mut BNBasicBlock) -> bool;
15806}
15807unsafe extern "C" {
15808    pub fn BNIsMediumLevelILBasicBlock(block: *mut BNBasicBlock) -> bool;
15809}
15810unsafe extern "C" {
15811    pub fn BNIsHighLevelILBasicBlock(block: *mut BNBasicBlock) -> bool;
15812}
15813unsafe extern "C" {
15814    pub fn BNGetBasicBlockFunctionGraphType(block: *mut BNBasicBlock) -> BNFunctionGraphType;
15815}
15816unsafe extern "C" {
15817    pub fn BNGetBasicBlockLowLevelILFunction(block: *mut BNBasicBlock)
15818    -> *mut BNLowLevelILFunction;
15819}
15820unsafe extern "C" {
15821    pub fn BNGetBasicBlockMediumLevelILFunction(
15822        block: *mut BNBasicBlock,
15823    ) -> *mut BNMediumLevelILFunction;
15824}
15825unsafe extern "C" {
15826    pub fn BNGetBasicBlockHighLevelILFunction(
15827        block: *mut BNBasicBlock,
15828    ) -> *mut BNHighLevelILFunction;
15829}
15830unsafe extern "C" {
15831    pub fn BNGetBasicBlockInstructionContainingAddress(
15832        block: *mut BNBasicBlock,
15833        addr: u64,
15834        start: *mut u64,
15835    ) -> bool;
15836}
15837unsafe extern "C" {
15838    pub fn BNGetBasicBlockSourceBlock(block: *mut BNBasicBlock) -> *mut BNBasicBlock;
15839}
15840unsafe extern "C" {
15841    pub fn BNGetBasicBlockDisassemblyText(
15842        block: *mut BNBasicBlock,
15843        settings: *mut BNDisassemblySettings,
15844        count: *mut usize,
15845    ) -> *mut BNDisassemblyTextLine;
15846}
15847unsafe extern "C" {
15848    pub fn BNFreeDisassemblyTextLines(lines: *mut BNDisassemblyTextLine, count: usize);
15849}
15850unsafe extern "C" {
15851    pub fn BNGetDisplayStringForInteger(
15852        binaryView: *mut BNBinaryView,
15853        type_: BNIntegerDisplayType,
15854        value: u64,
15855        inputWidth: usize,
15856        isSigned: bool,
15857    ) -> *mut ::std::os::raw::c_char;
15858}
15859unsafe extern "C" {
15860    pub fn BNCreateDisassemblyTextRenderer(
15861        func: *mut BNFunction,
15862        settings: *mut BNDisassemblySettings,
15863    ) -> *mut BNDisassemblyTextRenderer;
15864}
15865unsafe extern "C" {
15866    pub fn BNCreateLowLevelILDisassemblyTextRenderer(
15867        func: *mut BNLowLevelILFunction,
15868        settings: *mut BNDisassemblySettings,
15869    ) -> *mut BNDisassemblyTextRenderer;
15870}
15871unsafe extern "C" {
15872    pub fn BNCreateMediumLevelILDisassemblyTextRenderer(
15873        func: *mut BNMediumLevelILFunction,
15874        settings: *mut BNDisassemblySettings,
15875    ) -> *mut BNDisassemblyTextRenderer;
15876}
15877unsafe extern "C" {
15878    pub fn BNCreateHighLevelILDisassemblyTextRenderer(
15879        func: *mut BNHighLevelILFunction,
15880        settings: *mut BNDisassemblySettings,
15881    ) -> *mut BNDisassemblyTextRenderer;
15882}
15883unsafe extern "C" {
15884    pub fn BNNewDisassemblyTextRendererReference(
15885        renderer: *mut BNDisassemblyTextRenderer,
15886    ) -> *mut BNDisassemblyTextRenderer;
15887}
15888unsafe extern "C" {
15889    pub fn BNFreeDisassemblyTextRenderer(renderer: *mut BNDisassemblyTextRenderer);
15890}
15891unsafe extern "C" {
15892    pub fn BNGetDisassemblyTextRendererFunction(
15893        renderer: *mut BNDisassemblyTextRenderer,
15894    ) -> *mut BNFunction;
15895}
15896unsafe extern "C" {
15897    pub fn BNGetDisassemblyTextRendererLowLevelILFunction(
15898        renderer: *mut BNDisassemblyTextRenderer,
15899    ) -> *mut BNLowLevelILFunction;
15900}
15901unsafe extern "C" {
15902    pub fn BNGetDisassemblyTextRendererMediumLevelILFunction(
15903        renderer: *mut BNDisassemblyTextRenderer,
15904    ) -> *mut BNMediumLevelILFunction;
15905}
15906unsafe extern "C" {
15907    pub fn BNGetDisassemblyTextRendererHighLevelILFunction(
15908        renderer: *mut BNDisassemblyTextRenderer,
15909    ) -> *mut BNHighLevelILFunction;
15910}
15911unsafe extern "C" {
15912    pub fn BNGetDisassemblyTextRendererBasicBlock(
15913        renderer: *mut BNDisassemblyTextRenderer,
15914    ) -> *mut BNBasicBlock;
15915}
15916unsafe extern "C" {
15917    pub fn BNGetDisassemblyTextRendererArchitecture(
15918        renderer: *mut BNDisassemblyTextRenderer,
15919    ) -> *mut BNArchitecture;
15920}
15921unsafe extern "C" {
15922    pub fn BNGetDisassemblyTextRendererSettings(
15923        renderer: *mut BNDisassemblyTextRenderer,
15924    ) -> *mut BNDisassemblySettings;
15925}
15926unsafe extern "C" {
15927    pub fn BNSetDisassemblyTextRendererBasicBlock(
15928        renderer: *mut BNDisassemblyTextRenderer,
15929        block: *mut BNBasicBlock,
15930    );
15931}
15932unsafe extern "C" {
15933    pub fn BNSetDisassemblyTextRendererArchitecture(
15934        renderer: *mut BNDisassemblyTextRenderer,
15935        arch: *mut BNArchitecture,
15936    );
15937}
15938unsafe extern "C" {
15939    pub fn BNSetDisassemblyTextRendererSettings(
15940        renderer: *mut BNDisassemblyTextRenderer,
15941        settings: *mut BNDisassemblySettings,
15942    );
15943}
15944unsafe extern "C" {
15945    pub fn BNIsILDisassemblyTextRenderer(renderer: *mut BNDisassemblyTextRenderer) -> bool;
15946}
15947unsafe extern "C" {
15948    pub fn BNDisassemblyTextRendererHasDataFlow(renderer: *mut BNDisassemblyTextRenderer) -> bool;
15949}
15950unsafe extern "C" {
15951    pub fn BNGetDisassemblyTextRendererInstructionAnnotations(
15952        renderer: *mut BNDisassemblyTextRenderer,
15953        addr: u64,
15954        count: *mut usize,
15955    ) -> *mut BNInstructionTextToken;
15956}
15957unsafe extern "C" {
15958    pub fn BNGetDisassemblyTextRendererInstructionText(
15959        renderer: *mut BNDisassemblyTextRenderer,
15960        addr: u64,
15961        len: *mut usize,
15962        result: *mut *mut BNDisassemblyTextLine,
15963        count: *mut usize,
15964    ) -> bool;
15965}
15966unsafe extern "C" {
15967    pub fn BNGetDisassemblyTextRendererLines(
15968        renderer: *mut BNDisassemblyTextRenderer,
15969        addr: u64,
15970        len: *mut usize,
15971        result: *mut *mut BNDisassemblyTextLine,
15972        count: *mut usize,
15973    ) -> bool;
15974}
15975unsafe extern "C" {
15976    pub fn BNPostProcessDisassemblyTextRendererLines(
15977        renderer: *mut BNDisassemblyTextRenderer,
15978        addr: u64,
15979        len: usize,
15980        inLines: *mut BNDisassemblyTextLine,
15981        inCount: usize,
15982        outCount: *mut usize,
15983        indentSpaces: *const ::std::os::raw::c_char,
15984    ) -> *mut BNDisassemblyTextLine;
15985}
15986unsafe extern "C" {
15987    pub fn BNResetDisassemblyTextRendererDeduplicatedComments(
15988        renderer: *mut BNDisassemblyTextRenderer,
15989    );
15990}
15991unsafe extern "C" {
15992    pub fn BNGetDisassemblyTextRendererSymbolTokens(
15993        renderer: *mut BNDisassemblyTextRenderer,
15994        addr: u64,
15995        size: usize,
15996        operand: usize,
15997        result: *mut *mut BNInstructionTextToken,
15998        count: *mut usize,
15999    ) -> bool;
16000}
16001unsafe extern "C" {
16002    pub fn BNGetDisassemblyTextRendererSymbolTokensStatic(
16003        addr: u64,
16004        size: usize,
16005        operand: usize,
16006        data: *mut BNBinaryView,
16007        maxSymbolWidth: usize,
16008        func: *mut BNFunction,
16009        confidence: u8,
16010        symbolDisplay: BNSymbolDisplayType,
16011        precedence: BNOperatorPrecedence,
16012        instrAddr: u64,
16013        exprIndex: u64,
16014        result: *mut *mut BNInstructionTextToken,
16015        count: *mut usize,
16016    ) -> BNSymbolDisplayResult;
16017}
16018unsafe extern "C" {
16019    pub fn BNGetDisassemblyTextRendererStackVariableReferenceTokens(
16020        renderer: *mut BNDisassemblyTextRenderer,
16021        ref_: *mut BNStackVariableReference,
16022        count: *mut usize,
16023    ) -> *mut BNInstructionTextToken;
16024}
16025unsafe extern "C" {
16026    pub fn BNIsIntegerToken(type_: BNInstructionTextTokenType) -> bool;
16027}
16028unsafe extern "C" {
16029    pub fn BNGetDisassemblyTextRendererIntegerTokens(
16030        renderer: *mut BNDisassemblyTextRenderer,
16031        token: *mut BNInstructionTextToken,
16032        arch: *mut BNArchitecture,
16033        addr: u64,
16034        count: *mut usize,
16035    ) -> *mut BNInstructionTextToken;
16036}
16037unsafe extern "C" {
16038    pub fn BNDisassemblyTextRendererWrapComment(
16039        renderer: *mut BNDisassemblyTextRenderer,
16040        inLine: *const BNDisassemblyTextLine,
16041        outLineCount: *mut usize,
16042        comment: *const ::std::os::raw::c_char,
16043        hasAutoAnnotations: bool,
16044        leadingSpaces: *const ::std::os::raw::c_char,
16045        indentSpaces: *const ::std::os::raw::c_char,
16046    ) -> *mut BNDisassemblyTextLine;
16047}
16048unsafe extern "C" {
16049    pub fn BNGetStringLiteralPrefix(type_: BNStringType) -> *mut ::std::os::raw::c_char;
16050}
16051unsafe extern "C" {
16052    pub fn BNMarkFunctionAsRecentlyUsed(func: *mut BNFunction);
16053}
16054unsafe extern "C" {
16055    pub fn BNMarkBasicBlockAsRecentlyUsed(block: *mut BNBasicBlock);
16056}
16057unsafe extern "C" {
16058    pub fn BNGetCodeReferences(
16059        view: *mut BNBinaryView,
16060        addr: u64,
16061        count: *mut usize,
16062        limit: bool,
16063        maxItems: usize,
16064    ) -> *mut BNReferenceSource;
16065}
16066unsafe extern "C" {
16067    pub fn BNGetCodeReferencesInRange(
16068        view: *mut BNBinaryView,
16069        addr: u64,
16070        len: u64,
16071        count: *mut usize,
16072        limit: bool,
16073        maxItems: usize,
16074    ) -> *mut BNReferenceSource;
16075}
16076unsafe extern "C" {
16077    pub fn BNFreeCodeReferences(refs: *mut BNReferenceSource, count: usize);
16078}
16079unsafe extern "C" {
16080    pub fn BNFreeTypeFieldReferences(refs: *mut BNTypeFieldReference, count: usize);
16081}
16082unsafe extern "C" {
16083    pub fn BNFreeILReferences(refs: *mut BNILReferenceSource, count: usize);
16084}
16085unsafe extern "C" {
16086    pub fn BNGetCodeReferencesFrom(
16087        view: *mut BNBinaryView,
16088        src: *mut BNReferenceSource,
16089        count: *mut usize,
16090    ) -> *mut u64;
16091}
16092unsafe extern "C" {
16093    pub fn BNGetCodeReferencesFromInRange(
16094        view: *mut BNBinaryView,
16095        src: *mut BNReferenceSource,
16096        len: u64,
16097        count: *mut usize,
16098    ) -> *mut u64;
16099}
16100unsafe extern "C" {
16101    pub fn BNGetDataReferences(
16102        view: *mut BNBinaryView,
16103        addr: u64,
16104        count: *mut usize,
16105        limit: bool,
16106        maxItems: usize,
16107    ) -> *mut u64;
16108}
16109unsafe extern "C" {
16110    pub fn BNGetDataReferencesInRange(
16111        view: *mut BNBinaryView,
16112        addr: u64,
16113        len: u64,
16114        count: *mut usize,
16115        limit: bool,
16116        maxItems: usize,
16117    ) -> *mut u64;
16118}
16119unsafe extern "C" {
16120    pub fn BNGetDataReferencesFrom(
16121        view: *mut BNBinaryView,
16122        addr: u64,
16123        count: *mut usize,
16124    ) -> *mut u64;
16125}
16126unsafe extern "C" {
16127    pub fn BNGetDataReferencesFromInRange(
16128        view: *mut BNBinaryView,
16129        addr: u64,
16130        len: u64,
16131        count: *mut usize,
16132    ) -> *mut u64;
16133}
16134unsafe extern "C" {
16135    pub fn BNAddDataReference(view: *mut BNBinaryView, fromAddr: u64, toAddr: u64);
16136}
16137unsafe extern "C" {
16138    pub fn BNRemoveDataReference(view: *mut BNBinaryView, fromAddr: u64, toAddr: u64);
16139}
16140unsafe extern "C" {
16141    pub fn BNAddUserDataReference(view: *mut BNBinaryView, fromAddr: u64, toAddr: u64);
16142}
16143unsafe extern "C" {
16144    pub fn BNRemoveUserDataReference(view: *mut BNBinaryView, fromAddr: u64, toAddr: u64);
16145}
16146unsafe extern "C" {
16147    pub fn BNFreeDataReferences(refs: *mut u64);
16148}
16149unsafe extern "C" {
16150    pub fn BNFreeTypeReferences(refs: *mut BNTypeReferenceSource, count: usize);
16151}
16152unsafe extern "C" {
16153    pub fn BNFreeTypeFieldReferenceSizeInfo(refs: *mut BNTypeFieldReferenceSizeInfo, count: usize);
16154}
16155unsafe extern "C" {
16156    pub fn BNFreeTypeFieldReferenceTypeInfo(refs: *mut BNTypeFieldReferenceTypeInfo, count: usize);
16157}
16158unsafe extern "C" {
16159    pub fn BNFreeTypeFieldReferenceSizes(refs: *mut usize, count: usize);
16160}
16161unsafe extern "C" {
16162    pub fn BNFreeTypeFieldReferenceTypes(refs: *mut BNTypeWithConfidence, count: usize);
16163}
16164unsafe extern "C" {
16165    #[doc = " References to type"]
16166    pub fn BNGetCodeReferencesForType(
16167        view: *mut BNBinaryView,
16168        type_: *mut BNQualifiedName,
16169        count: *mut usize,
16170        limit: bool,
16171        maxItems: usize,
16172    ) -> *mut BNReferenceSource;
16173}
16174unsafe extern "C" {
16175    pub fn BNGetDataReferencesForType(
16176        view: *mut BNBinaryView,
16177        type_: *mut BNQualifiedName,
16178        count: *mut usize,
16179        limit: bool,
16180        maxItems: usize,
16181    ) -> *mut u64;
16182}
16183unsafe extern "C" {
16184    pub fn BNGetTypeReferencesForType(
16185        view: *mut BNBinaryView,
16186        type_: *mut BNQualifiedName,
16187        count: *mut usize,
16188        limit: bool,
16189        maxItems: usize,
16190    ) -> *mut BNTypeReferenceSource;
16191}
16192unsafe extern "C" {
16193    #[doc = " References to type field"]
16194    pub fn BNGetCodeReferencesForTypeField(
16195        view: *mut BNBinaryView,
16196        type_: *mut BNQualifiedName,
16197        offset: u64,
16198        count: *mut usize,
16199        limit: bool,
16200        maxItems: usize,
16201    ) -> *mut BNTypeFieldReference;
16202}
16203unsafe extern "C" {
16204    pub fn BNGetDataReferencesForTypeField(
16205        view: *mut BNBinaryView,
16206        type_: *mut BNQualifiedName,
16207        offset: u64,
16208        count: *mut usize,
16209        limit: bool,
16210        maxItems: usize,
16211    ) -> *mut u64;
16212}
16213unsafe extern "C" {
16214    pub fn BNGetDataReferencesFromForTypeField(
16215        view: *mut BNBinaryView,
16216        type_: *mut BNQualifiedName,
16217        offset: u64,
16218        count: *mut usize,
16219        limit: bool,
16220        maxItems: usize,
16221    ) -> *mut u64;
16222}
16223unsafe extern "C" {
16224    pub fn BNGetTypeReferencesForTypeField(
16225        view: *mut BNBinaryView,
16226        type_: *mut BNQualifiedName,
16227        offset: u64,
16228        count: *mut usize,
16229        limit: bool,
16230        maxItems: usize,
16231    ) -> *mut BNTypeReferenceSource;
16232}
16233unsafe extern "C" {
16234    pub fn BNGetAllReferencesForType(
16235        view: *mut BNBinaryView,
16236        type_: *mut BNQualifiedName,
16237        limit: bool,
16238        maxItems: usize,
16239    ) -> BNAllTypeReferences;
16240}
16241unsafe extern "C" {
16242    pub fn BNFreeAllTypeReferences(refs: *mut BNAllTypeReferences);
16243}
16244unsafe extern "C" {
16245    pub fn BNGetAllReferencesForTypeField(
16246        view: *mut BNBinaryView,
16247        type_: *mut BNQualifiedName,
16248        offset: u64,
16249        limit: bool,
16250        maxItems: usize,
16251    ) -> BNAllTypeFieldReferences;
16252}
16253unsafe extern "C" {
16254    pub fn BNFreeAllTypeFieldReferences(refs: *mut BNAllTypeFieldReferences);
16255}
16256unsafe extern "C" {
16257    pub fn BNGetCodeReferencesForTypeFrom(
16258        view: *mut BNBinaryView,
16259        addr: *mut BNReferenceSource,
16260        count: *mut usize,
16261    ) -> *mut BNTypeReferenceSource;
16262}
16263unsafe extern "C" {
16264    pub fn BNGetCodeReferencesForTypeFromInRange(
16265        view: *mut BNBinaryView,
16266        addr: *mut BNReferenceSource,
16267        len: u64,
16268        count: *mut usize,
16269    ) -> *mut BNTypeReferenceSource;
16270}
16271unsafe extern "C" {
16272    pub fn BNGetCodeReferencesForTypeFieldsFrom(
16273        view: *mut BNBinaryView,
16274        addr: *mut BNReferenceSource,
16275        count: *mut usize,
16276    ) -> *mut BNTypeReferenceSource;
16277}
16278unsafe extern "C" {
16279    pub fn BNGetCodeReferencesForTypeFieldsFromInRange(
16280        view: *mut BNBinaryView,
16281        addr: *mut BNReferenceSource,
16282        len: u64,
16283        count: *mut usize,
16284    ) -> *mut BNTypeReferenceSource;
16285}
16286unsafe extern "C" {
16287    pub fn BNGetAllFieldsReferenced(
16288        view: *mut BNBinaryView,
16289        type_: *mut BNQualifiedName,
16290        count: *mut usize,
16291    ) -> *mut u64;
16292}
16293unsafe extern "C" {
16294    pub fn BNGetAllSizesReferenced(
16295        view: *mut BNBinaryView,
16296        type_: *mut BNQualifiedName,
16297        count: *mut usize,
16298    ) -> *mut BNTypeFieldReferenceSizeInfo;
16299}
16300unsafe extern "C" {
16301    pub fn BNGetAllTypesReferenced(
16302        view: *mut BNBinaryView,
16303        type_: *mut BNQualifiedName,
16304        count: *mut usize,
16305    ) -> *mut BNTypeFieldReferenceTypeInfo;
16306}
16307unsafe extern "C" {
16308    pub fn BNGetSizesReferenced(
16309        view: *mut BNBinaryView,
16310        type_: *mut BNQualifiedName,
16311        offset: u64,
16312        count: *mut usize,
16313    ) -> *mut usize;
16314}
16315unsafe extern "C" {
16316    pub fn BNGetTypesReferenced(
16317        view: *mut BNBinaryView,
16318        type_: *mut BNQualifiedName,
16319        offset: u64,
16320        count: *mut usize,
16321    ) -> *mut BNTypeWithConfidence;
16322}
16323unsafe extern "C" {
16324    pub fn BNGetOutgoingDirectTypeReferences(
16325        view: *mut BNBinaryView,
16326        type_: *mut BNQualifiedName,
16327        count: *mut usize,
16328    ) -> *mut BNQualifiedName;
16329}
16330unsafe extern "C" {
16331    pub fn BNGetOutgoingRecursiveTypeReferences(
16332        view: *mut BNBinaryView,
16333        types: *mut BNQualifiedName,
16334        typeCount: usize,
16335        count: *mut usize,
16336    ) -> *mut BNQualifiedName;
16337}
16338unsafe extern "C" {
16339    pub fn BNGetIncomingDirectTypeReferences(
16340        view: *mut BNBinaryView,
16341        type_: *mut BNQualifiedName,
16342        count: *mut usize,
16343    ) -> *mut BNQualifiedName;
16344}
16345unsafe extern "C" {
16346    pub fn BNGetIncomingRecursiveTypeReferences(
16347        view: *mut BNBinaryView,
16348        types: *mut BNQualifiedName,
16349        typeCount: usize,
16350        count: *mut usize,
16351    ) -> *mut BNQualifiedName;
16352}
16353unsafe extern "C" {
16354    pub fn BNRegisterGlobalFunctionRecognizer(rec: *mut BNFunctionRecognizer);
16355}
16356unsafe extern "C" {
16357    pub fn BNGetStringAtAddress(
16358        view: *mut BNBinaryView,
16359        addr: u64,
16360        strRef: *mut BNStringReference,
16361    ) -> bool;
16362}
16363unsafe extern "C" {
16364    pub fn BNGetStrings(view: *mut BNBinaryView, count: *mut usize) -> *mut BNStringReference;
16365}
16366unsafe extern "C" {
16367    pub fn BNGetStringsInRange(
16368        view: *mut BNBinaryView,
16369        start: u64,
16370        len: u64,
16371        count: *mut usize,
16372    ) -> *mut BNStringReference;
16373}
16374unsafe extern "C" {
16375    pub fn BNFreeStringReferenceList(strings: *mut BNStringReference);
16376}
16377unsafe extern "C" {
16378    pub fn BNGetDerivedStrings(view: *mut BNBinaryView, count: *mut usize) -> *mut BNDerivedString;
16379}
16380unsafe extern "C" {
16381    pub fn BNGetDerivedStringCodeReferences(
16382        view: *mut BNBinaryView,
16383        str_: *mut BNDerivedString,
16384        count: *mut usize,
16385        limit: bool,
16386        maxItems: usize,
16387    ) -> *mut BNReferenceSource;
16388}
16389unsafe extern "C" {
16390    pub fn BNFreeDerivedStringList(strings: *mut BNDerivedString, count: usize);
16391}
16392unsafe extern "C" {
16393    pub fn BNGetStackLayout(func: *mut BNFunction, count: *mut usize)
16394    -> *mut BNVariableNameAndType;
16395}
16396unsafe extern "C" {
16397    pub fn BNFreeVariableNameAndTypeList(vars: *mut BNVariableNameAndType, count: usize);
16398}
16399unsafe extern "C" {
16400    pub fn BNCreateAutoStackVariable(
16401        func: *mut BNFunction,
16402        offset: i64,
16403        type_: *mut BNTypeWithConfidence,
16404        name: *const ::std::os::raw::c_char,
16405    );
16406}
16407unsafe extern "C" {
16408    pub fn BNCreateUserStackVariable(
16409        func: *mut BNFunction,
16410        offset: i64,
16411        type_: *mut BNTypeWithConfidence,
16412        name: *const ::std::os::raw::c_char,
16413    );
16414}
16415unsafe extern "C" {
16416    pub fn BNDeleteAutoStackVariable(func: *mut BNFunction, offset: i64);
16417}
16418unsafe extern "C" {
16419    pub fn BNDeleteUserStackVariable(func: *mut BNFunction, offset: i64);
16420}
16421unsafe extern "C" {
16422    pub fn BNGetStackVariableAtFrameOffset(
16423        func: *mut BNFunction,
16424        arch: *mut BNArchitecture,
16425        addr: u64,
16426        offset: i64,
16427        var: *mut BNVariableNameAndType,
16428    ) -> bool;
16429}
16430unsafe extern "C" {
16431    pub fn BNGetStackVariableAtFrameOffsetAfterInstruction(
16432        func: *mut BNFunction,
16433        arch: *mut BNArchitecture,
16434        addr: u64,
16435        offset: i64,
16436        var: *mut BNVariableNameAndType,
16437    ) -> bool;
16438}
16439unsafe extern "C" {
16440    pub fn BNFreeVariableNameAndType(var: *mut BNVariableNameAndType);
16441}
16442unsafe extern "C" {
16443    pub fn BNGetFunctionVariables(
16444        func: *mut BNFunction,
16445        count: *mut usize,
16446    ) -> *mut BNVariableNameAndType;
16447}
16448unsafe extern "C" {
16449    pub fn BNCreateAutoVariable(
16450        func: *mut BNFunction,
16451        var: *const BNVariable,
16452        type_: *mut BNTypeWithConfidence,
16453        name: *const ::std::os::raw::c_char,
16454        ignoreDisjointUses: bool,
16455    );
16456}
16457unsafe extern "C" {
16458    pub fn BNCreateUserVariable(
16459        func: *mut BNFunction,
16460        var: *const BNVariable,
16461        type_: *mut BNTypeWithConfidence,
16462        name: *const ::std::os::raw::c_char,
16463        ignoreDisjointUses: bool,
16464    );
16465}
16466unsafe extern "C" {
16467    pub fn BNDeleteUserVariable(func: *mut BNFunction, var: *const BNVariable);
16468}
16469unsafe extern "C" {
16470    pub fn BNIsVariableUserDefined(func: *mut BNFunction, var: *const BNVariable) -> bool;
16471}
16472unsafe extern "C" {
16473    pub fn BNGetVariableType(func: *mut BNFunction, var: *const BNVariable)
16474    -> BNTypeWithConfidence;
16475}
16476unsafe extern "C" {
16477    pub fn BNGetVariableName(
16478        func: *mut BNFunction,
16479        var: *const BNVariable,
16480    ) -> *mut ::std::os::raw::c_char;
16481}
16482unsafe extern "C" {
16483    pub fn BNGetVariableNameOrDefault(
16484        func: *mut BNFunction,
16485        var: *const BNVariable,
16486    ) -> *mut ::std::os::raw::c_char;
16487}
16488unsafe extern "C" {
16489    pub fn BNGetLastSeenVariableNameOrDefault(
16490        func: *mut BNFunction,
16491        var: *const BNVariable,
16492    ) -> *mut ::std::os::raw::c_char;
16493}
16494unsafe extern "C" {
16495    pub fn BNToVariableIdentifier(var: *const BNVariable) -> u64;
16496}
16497unsafe extern "C" {
16498    pub fn BNFromVariableIdentifier(id: u64) -> BNVariable;
16499}
16500unsafe extern "C" {
16501    pub fn BNGetFunctionVariableDeadStoreElimination(
16502        func: *mut BNFunction,
16503        var: *const BNVariable,
16504    ) -> BNDeadStoreElimination;
16505}
16506unsafe extern "C" {
16507    pub fn BNSetFunctionVariableDeadStoreElimination(
16508        func: *mut BNFunction,
16509        var: *const BNVariable,
16510        mode: BNDeadStoreElimination,
16511    );
16512}
16513unsafe extern "C" {
16514    pub fn BNGetExprFolding(func: *mut BNFunction, addr: u64) -> BNExprFolding;
16515}
16516unsafe extern "C" {
16517    pub fn BNSetExprFolding(func: *mut BNFunction, addr: u64, mode: BNExprFolding);
16518}
16519unsafe extern "C" {
16520    pub fn BNIsConditionInverted(func: *mut BNFunction, addr: u64) -> bool;
16521}
16522unsafe extern "C" {
16523    pub fn BNSetConditionInverted(func: *mut BNFunction, addr: u64, invert: bool);
16524}
16525unsafe extern "C" {
16526    pub fn BNGetEarlyReturn(func: *mut BNFunction, addr: u64) -> BNEarlyReturn;
16527}
16528unsafe extern "C" {
16529    pub fn BNSetEarlyReturn(func: *mut BNFunction, addr: u64, mode: BNEarlyReturn);
16530}
16531unsafe extern "C" {
16532    pub fn BNGetSwitchRecovery(func: *mut BNFunction, addr: u64) -> BNSwitchRecovery;
16533}
16534unsafe extern "C" {
16535    pub fn BNSetSwitchRecovery(func: *mut BNFunction, addr: u64, mode: BNSwitchRecovery);
16536}
16537unsafe extern "C" {
16538    pub fn BNGetMergedVariables(func: *mut BNFunction, count: *mut usize) -> *mut BNMergedVariable;
16539}
16540unsafe extern "C" {
16541    pub fn BNFreeMergedVariableList(vars: *mut BNMergedVariable, count: usize);
16542}
16543unsafe extern "C" {
16544    pub fn BNMergeVariables(
16545        func: *mut BNFunction,
16546        target: *const BNVariable,
16547        sources: *const BNVariable,
16548        sourceCount: usize,
16549    );
16550}
16551unsafe extern "C" {
16552    pub fn BNUnmergeVariables(
16553        func: *mut BNFunction,
16554        target: *const BNVariable,
16555        sources: *const BNVariable,
16556        sourceCount: usize,
16557    );
16558}
16559unsafe extern "C" {
16560    pub fn BNGetSplitVariables(func: *mut BNFunction, count: *mut usize) -> *mut BNVariable;
16561}
16562unsafe extern "C" {
16563    pub fn BNSplitVariable(func: *mut BNFunction, var: *const BNVariable);
16564}
16565unsafe extern "C" {
16566    pub fn BNUnsplitVariable(func: *mut BNFunction, var: *const BNVariable);
16567}
16568unsafe extern "C" {
16569    pub fn BNGetFunctionCallSites(
16570        func: *mut BNFunction,
16571        count: *mut usize,
16572    ) -> *mut BNReferenceSource;
16573}
16574unsafe extern "C" {
16575    pub fn BNGetCallees(
16576        view: *mut BNBinaryView,
16577        callSite: *mut BNReferenceSource,
16578        count: *mut usize,
16579    ) -> *mut u64;
16580}
16581unsafe extern "C" {
16582    pub fn BNGetCallers(
16583        view: *mut BNBinaryView,
16584        callee: u64,
16585        count: *mut usize,
16586    ) -> *mut BNReferenceSource;
16587}
16588unsafe extern "C" {
16589    pub fn BNSetAutoIndirectBranches(
16590        func: *mut BNFunction,
16591        sourceArch: *mut BNArchitecture,
16592        source: u64,
16593        branches: *mut BNArchitectureAndAddress,
16594        count: usize,
16595    );
16596}
16597unsafe extern "C" {
16598    pub fn BNSetUserIndirectBranches(
16599        func: *mut BNFunction,
16600        sourceArch: *mut BNArchitecture,
16601        source: u64,
16602        branches: *mut BNArchitectureAndAddress,
16603        count: usize,
16604    );
16605}
16606unsafe extern "C" {
16607    pub fn BNSetGuidedSourceBlocks(
16608        func: *mut BNFunction,
16609        addresses: *mut BNArchitectureAndAddress,
16610        count: usize,
16611    );
16612}
16613unsafe extern "C" {
16614    pub fn BNAddGuidedSourceBlocks(
16615        func: *mut BNFunction,
16616        addresses: *mut BNArchitectureAndAddress,
16617        count: usize,
16618    );
16619}
16620unsafe extern "C" {
16621    pub fn BNRemoveGuidedSourceBlocks(
16622        func: *mut BNFunction,
16623        addresses: *mut BNArchitectureAndAddress,
16624        count: usize,
16625    );
16626}
16627unsafe extern "C" {
16628    pub fn BNIsGuidedSourceBlock(
16629        func: *mut BNFunction,
16630        arch: *mut BNArchitecture,
16631        addr: u64,
16632    ) -> bool;
16633}
16634unsafe extern "C" {
16635    pub fn BNGetGuidedSourceBlocks(
16636        func: *mut BNFunction,
16637        count: *mut usize,
16638    ) -> *mut BNArchitectureAndAddress;
16639}
16640unsafe extern "C" {
16641    pub fn BNHasGuidedSourceBlocks(func: *mut BNFunction) -> bool;
16642}
16643unsafe extern "C" {
16644    pub fn BNFreeArchitectureAndAddressList(addresses: *mut BNArchitectureAndAddress);
16645}
16646unsafe extern "C" {
16647    pub fn BNGetIndirectBranches(
16648        func: *mut BNFunction,
16649        count: *mut usize,
16650    ) -> *mut BNIndirectBranchInfo;
16651}
16652unsafe extern "C" {
16653    pub fn BNGetIndirectBranchesAt(
16654        func: *mut BNFunction,
16655        arch: *mut BNArchitecture,
16656        addr: u64,
16657        count: *mut usize,
16658    ) -> *mut BNIndirectBranchInfo;
16659}
16660unsafe extern "C" {
16661    pub fn BNFreeIndirectBranchList(branches: *mut BNIndirectBranchInfo);
16662}
16663unsafe extern "C" {
16664    pub fn BNGetCalleeForAnalysis(
16665        func: *mut BNFunction,
16666        platform: *mut BNPlatform,
16667        addr: u64,
16668        exact: bool,
16669    ) -> *mut BNFunction;
16670}
16671unsafe extern "C" {
16672    pub fn BNGetUnresolvedIndirectBranches(
16673        func: *mut BNFunction,
16674        count: *mut usize,
16675    ) -> *mut BNArchitectureAndAddress;
16676}
16677unsafe extern "C" {
16678    pub fn BNHasUnresolvedIndirectBranches(func: *mut BNFunction) -> bool;
16679}
16680unsafe extern "C" {
16681    pub fn BNFunctionToggleRegion(func: *mut BNFunction, hash: u64);
16682}
16683unsafe extern "C" {
16684    pub fn BNFunctionIsRegionCollapsed(func: *mut BNFunction, hash: u64) -> bool;
16685}
16686unsafe extern "C" {
16687    pub fn BNFunctionExpandAll(func: *mut BNFunction);
16688}
16689unsafe extern "C" {
16690    pub fn BNFunctionCollapseRegion(func: *mut BNFunction, hash: u64);
16691}
16692unsafe extern "C" {
16693    pub fn BNFunctionExpandRegion(func: *mut BNFunction, hash: u64);
16694}
16695unsafe extern "C" {
16696    pub fn BNFunctionStoreMetadata(
16697        func: *mut BNFunction,
16698        key: *const ::std::os::raw::c_char,
16699        value: *mut BNMetadata,
16700        isAuto: bool,
16701    );
16702}
16703unsafe extern "C" {
16704    pub fn BNFunctionQueryMetadata(
16705        func: *mut BNFunction,
16706        key: *const ::std::os::raw::c_char,
16707    ) -> *mut BNMetadata;
16708}
16709unsafe extern "C" {
16710    pub fn BNFunctionRemoveMetadata(func: *mut BNFunction, key: *const ::std::os::raw::c_char);
16711}
16712unsafe extern "C" {
16713    pub fn BNFunctionGetMetadata(func: *mut BNFunction) -> *mut BNMetadata;
16714}
16715unsafe extern "C" {
16716    pub fn BNFunctionGetAutoMetadata(func: *mut BNFunction) -> *mut BNMetadata;
16717}
16718unsafe extern "C" {
16719    pub fn BNSetAutoCallTypeAdjustment(
16720        func: *mut BNFunction,
16721        arch: *mut BNArchitecture,
16722        addr: u64,
16723        type_: *mut BNTypeWithConfidence,
16724    );
16725}
16726unsafe extern "C" {
16727    pub fn BNSetUserCallTypeAdjustment(
16728        func: *mut BNFunction,
16729        arch: *mut BNArchitecture,
16730        addr: u64,
16731        type_: *mut BNTypeWithConfidence,
16732    );
16733}
16734unsafe extern "C" {
16735    pub fn BNSetAutoCallStackAdjustment(
16736        func: *mut BNFunction,
16737        arch: *mut BNArchitecture,
16738        addr: u64,
16739        adjust: i64,
16740        confidence: u8,
16741    );
16742}
16743unsafe extern "C" {
16744    pub fn BNSetUserCallStackAdjustment(
16745        func: *mut BNFunction,
16746        arch: *mut BNArchitecture,
16747        addr: u64,
16748        adjust: i64,
16749        confidence: u8,
16750    );
16751}
16752unsafe extern "C" {
16753    pub fn BNSetAutoCallRegisterStackAdjustment(
16754        func: *mut BNFunction,
16755        arch: *mut BNArchitecture,
16756        addr: u64,
16757        adjust: *mut BNRegisterStackAdjustment,
16758        count: usize,
16759    );
16760}
16761unsafe extern "C" {
16762    pub fn BNSetUserCallRegisterStackAdjustment(
16763        func: *mut BNFunction,
16764        arch: *mut BNArchitecture,
16765        addr: u64,
16766        adjust: *mut BNRegisterStackAdjustment,
16767        count: usize,
16768    );
16769}
16770unsafe extern "C" {
16771    pub fn BNSetAutoCallRegisterStackAdjustmentForRegisterStack(
16772        func: *mut BNFunction,
16773        arch: *mut BNArchitecture,
16774        addr: u64,
16775        regStack: u32,
16776        adjust: i32,
16777        confidence: u8,
16778    );
16779}
16780unsafe extern "C" {
16781    pub fn BNSetUserCallRegisterStackAdjustmentForRegisterStack(
16782        func: *mut BNFunction,
16783        arch: *mut BNArchitecture,
16784        addr: u64,
16785        regStack: u32,
16786        adjust: i32,
16787        confidence: u8,
16788    );
16789}
16790unsafe extern "C" {
16791    pub fn BNGetCallTypeAdjustment(
16792        func: *mut BNFunction,
16793        arch: *mut BNArchitecture,
16794        addr: u64,
16795    ) -> BNTypeWithConfidence;
16796}
16797unsafe extern "C" {
16798    pub fn BNGetCallStackAdjustment(
16799        func: *mut BNFunction,
16800        arch: *mut BNArchitecture,
16801        addr: u64,
16802    ) -> BNOffsetWithConfidence;
16803}
16804unsafe extern "C" {
16805    pub fn BNGetCallRegisterStackAdjustment(
16806        func: *mut BNFunction,
16807        arch: *mut BNArchitecture,
16808        addr: u64,
16809        count: *mut usize,
16810    ) -> *mut BNRegisterStackAdjustment;
16811}
16812unsafe extern "C" {
16813    pub fn BNGetCallRegisterStackAdjustmentForRegisterStack(
16814        func: *mut BNFunction,
16815        arch: *mut BNArchitecture,
16816        addr: u64,
16817        regStack: u32,
16818    ) -> BNRegisterStackAdjustment;
16819}
16820unsafe extern "C" {
16821    pub fn BNIsCallInstruction(func: *mut BNFunction, arch: *mut BNArchitecture, addr: u64)
16822    -> bool;
16823}
16824unsafe extern "C" {
16825    pub fn BNGetFunctionBlockAnnotations(
16826        func: *mut BNFunction,
16827        arch: *mut BNArchitecture,
16828        addr: u64,
16829        count: *mut usize,
16830    ) -> *mut BNInstructionTextLine;
16831}
16832unsafe extern "C" {
16833    pub fn BNGetFunctionBlockSortHint(
16834        func: *mut BNFunction,
16835        arch: *mut BNArchitecture,
16836        addr: u64,
16837        result: *mut i64,
16838    ) -> bool;
16839}
16840unsafe extern "C" {
16841    pub fn BNGetIntegerConstantDisplayType(
16842        func: *mut BNFunction,
16843        arch: *mut BNArchitecture,
16844        instrAddr: u64,
16845        value: u64,
16846        operand: usize,
16847    ) -> BNIntegerDisplayType;
16848}
16849unsafe extern "C" {
16850    pub fn BNSetIntegerConstantDisplayType(
16851        func: *mut BNFunction,
16852        arch: *mut BNArchitecture,
16853        instrAddr: u64,
16854        value: u64,
16855        operand: usize,
16856        type_: BNIntegerDisplayType,
16857        typeID: *const ::std::os::raw::c_char,
16858    );
16859}
16860unsafe extern "C" {
16861    pub fn BNGetIntegerConstantDisplayTypeEnumerationType(
16862        func: *mut BNFunction,
16863        arch: *mut BNArchitecture,
16864        instrAddr: u64,
16865        value: u64,
16866        operand: usize,
16867    ) -> *mut ::std::os::raw::c_char;
16868}
16869unsafe extern "C" {
16870    pub fn BNIsFunctionTooLarge(func: *mut BNFunction) -> bool;
16871}
16872unsafe extern "C" {
16873    pub fn BNIsFunctionAnalysisSkipped(func: *mut BNFunction) -> bool;
16874}
16875unsafe extern "C" {
16876    pub fn BNGetAnalysisSkipReason(func: *mut BNFunction) -> BNAnalysisSkipReason;
16877}
16878unsafe extern "C" {
16879    pub fn BNGetFunctionAnalysisSkipOverride(
16880        func: *mut BNFunction,
16881    ) -> BNFunctionAnalysisSkipOverride;
16882}
16883unsafe extern "C" {
16884    pub fn BNSetFunctionAnalysisSkipOverride(
16885        func: *mut BNFunction,
16886        skip: BNFunctionAnalysisSkipOverride,
16887    );
16888}
16889unsafe extern "C" {
16890    pub fn BNGetGotoLabelName(func: *mut BNFunction, labelId: u64) -> *mut ::std::os::raw::c_char;
16891}
16892unsafe extern "C" {
16893    pub fn BNSetUserGotoLabelName(
16894        func: *mut BNFunction,
16895        labelId: u64,
16896        name: *const ::std::os::raw::c_char,
16897    );
16898}
16899unsafe extern "C" {
16900    #[doc = " BNAnalyzeBasicBlockContext operations"]
16901    pub fn BNAnalyzeBasicBlocksContextCreateBasicBlock(
16902        abb: *mut BNBasicBlockAnalysisContext,
16903        arch: *mut BNArchitecture,
16904        addr: u64,
16905    ) -> *mut BNBasicBlock;
16906}
16907unsafe extern "C" {
16908    pub fn BNAnalyzeBasicBlocksContextAddBasicBlockToFunction(
16909        abb: *mut BNBasicBlockAnalysisContext,
16910        block: *mut BNBasicBlock,
16911    );
16912}
16913unsafe extern "C" {
16914    pub fn BNAnalyzeBasicBlocksContextAddTempReference(
16915        abb: *mut BNBasicBlockAnalysisContext,
16916        target: *mut BNFunction,
16917    );
16918}
16919unsafe extern "C" {
16920    pub fn BNAnalyzeBasicBlocksContextSetDirectCodeReferences(
16921        abb: *mut BNBasicBlockAnalysisContext,
16922        sources: *mut BNArchitectureAndAddress,
16923        targets: *mut u64,
16924        count: usize,
16925    );
16926}
16927unsafe extern "C" {
16928    pub fn BNAnalyzeBasicBlocksContextSetDirectNoReturnCalls(
16929        abb: *mut BNBasicBlockAnalysisContext,
16930        sources: *mut BNArchitectureAndAddress,
16931        count: usize,
16932    );
16933}
16934unsafe extern "C" {
16935    pub fn BNAnalyzeBasicBlocksContextSetContextualFunctionReturns(
16936        abb: *mut BNBasicBlockAnalysisContext,
16937        sources: *mut BNArchitectureAndAddress,
16938        values: *mut bool,
16939        count: usize,
16940    );
16941}
16942unsafe extern "C" {
16943    pub fn BNAnalyzeBasicBlocksContextSetHaltedDisassemblyAddresses(
16944        abb: *mut BNBasicBlockAnalysisContext,
16945        sources: *mut BNArchitectureAndAddress,
16946        count: usize,
16947    );
16948}
16949unsafe extern "C" {
16950    pub fn BNAnalyzeBasicBlocksContextSetInlinedUnresolvedIndirectBranches(
16951        abb: *mut BNBasicBlockAnalysisContext,
16952        locations: *mut BNArchitectureAndAddress,
16953        count: usize,
16954    );
16955}
16956unsafe extern "C" {
16957    pub fn BNGetParametersForAnalysis(view: *mut BNBinaryView) -> BNAnalysisParameters;
16958}
16959unsafe extern "C" {
16960    pub fn BNSetParametersForAnalysis(view: *mut BNBinaryView, params: BNAnalysisParameters);
16961}
16962unsafe extern "C" {
16963    pub fn BNGetMaxFunctionSizeForAnalysis(view: *mut BNBinaryView) -> u64;
16964}
16965unsafe extern "C" {
16966    pub fn BNSetMaxFunctionSizeForAnalysis(view: *mut BNBinaryView, size: u64);
16967}
16968unsafe extern "C" {
16969    pub fn BNGetNewAutoFunctionAnalysisSuppressed(view: *mut BNBinaryView) -> bool;
16970}
16971unsafe extern "C" {
16972    pub fn BNSetNewAutoFunctionAnalysisSuppressed(view: *mut BNBinaryView, suppress: bool);
16973}
16974unsafe extern "C" {
16975    pub fn BNAddAnalysisCompletionEvent(
16976        view: *mut BNBinaryView,
16977        ctxt: *mut ::std::os::raw::c_void,
16978        callback: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
16979    ) -> *mut BNAnalysisCompletionEvent;
16980}
16981unsafe extern "C" {
16982    pub fn BNNewAnalysisCompletionEventReference(
16983        event: *mut BNAnalysisCompletionEvent,
16984    ) -> *mut BNAnalysisCompletionEvent;
16985}
16986unsafe extern "C" {
16987    pub fn BNFreeAnalysisCompletionEvent(event: *mut BNAnalysisCompletionEvent);
16988}
16989unsafe extern "C" {
16990    pub fn BNCancelAnalysisCompletionEvent(event: *mut BNAnalysisCompletionEvent);
16991}
16992unsafe extern "C" {
16993    pub fn BNShouldSkipTargetAnalysis(
16994        view: *mut BNBinaryView,
16995        source: *mut BNArchitectureAndAddress,
16996        sourceFunc: *mut BNFunction,
16997        sourceEnd: u64,
16998        target: *mut BNArchitectureAndAddress,
16999    ) -> bool;
17000}
17001unsafe extern "C" {
17002    pub fn BNGetAnalysisInfo(view: *mut BNBinaryView) -> *mut BNAnalysisInfo;
17003}
17004unsafe extern "C" {
17005    pub fn BNFreeAnalysisInfo(info: *mut BNAnalysisInfo);
17006}
17007unsafe extern "C" {
17008    pub fn BNGetAnalysisProgress(view: *mut BNBinaryView) -> BNAnalysisProgress;
17009}
17010unsafe extern "C" {
17011    pub fn BNGetAnalysisState(view: *mut BNBinaryView) -> BNAnalysisState;
17012}
17013unsafe extern "C" {
17014    pub fn BNGetBackgroundAnalysisTask(view: *mut BNBinaryView) -> *mut BNBackgroundTask;
17015}
17016unsafe extern "C" {
17017    pub fn BNGetNextFunctionStartAfterAddress(view: *mut BNBinaryView, addr: u64) -> u64;
17018}
17019unsafe extern "C" {
17020    pub fn BNGetNextBasicBlockStartAfterAddress(view: *mut BNBinaryView, addr: u64) -> u64;
17021}
17022unsafe extern "C" {
17023    pub fn BNGetNextDataAfterAddress(view: *mut BNBinaryView, addr: u64) -> u64;
17024}
17025unsafe extern "C" {
17026    pub fn BNGetNextDataVariableStartAfterAddress(view: *mut BNBinaryView, addr: u64) -> u64;
17027}
17028unsafe extern "C" {
17029    pub fn BNGetPreviousFunctionStartBeforeAddress(view: *mut BNBinaryView, addr: u64) -> u64;
17030}
17031unsafe extern "C" {
17032    pub fn BNGetPreviousBasicBlockStartBeforeAddress(view: *mut BNBinaryView, addr: u64) -> u64;
17033}
17034unsafe extern "C" {
17035    pub fn BNGetPreviousBasicBlockEndBeforeAddress(view: *mut BNBinaryView, addr: u64) -> u64;
17036}
17037unsafe extern "C" {
17038    pub fn BNGetPreviousDataBeforeAddress(view: *mut BNBinaryView, addr: u64) -> u64;
17039}
17040unsafe extern "C" {
17041    pub fn BNGetPreviousDataVariableStartBeforeAddress(view: *mut BNBinaryView, addr: u64) -> u64;
17042}
17043unsafe extern "C" {
17044    pub fn BNCreateLinearViewDisassembly(
17045        view: *mut BNBinaryView,
17046        settings: *mut BNDisassemblySettings,
17047    ) -> *mut BNLinearViewObject;
17048}
17049unsafe extern "C" {
17050    pub fn BNCreateLinearViewLiftedIL(
17051        view: *mut BNBinaryView,
17052        settings: *mut BNDisassemblySettings,
17053    ) -> *mut BNLinearViewObject;
17054}
17055unsafe extern "C" {
17056    pub fn BNCreateLinearViewLowLevelIL(
17057        view: *mut BNBinaryView,
17058        settings: *mut BNDisassemblySettings,
17059    ) -> *mut BNLinearViewObject;
17060}
17061unsafe extern "C" {
17062    pub fn BNCreateLinearViewLowLevelILSSAForm(
17063        view: *mut BNBinaryView,
17064        settings: *mut BNDisassemblySettings,
17065    ) -> *mut BNLinearViewObject;
17066}
17067unsafe extern "C" {
17068    pub fn BNCreateLinearViewMediumLevelIL(
17069        view: *mut BNBinaryView,
17070        settings: *mut BNDisassemblySettings,
17071    ) -> *mut BNLinearViewObject;
17072}
17073unsafe extern "C" {
17074    pub fn BNCreateLinearViewMediumLevelILSSAForm(
17075        view: *mut BNBinaryView,
17076        settings: *mut BNDisassemblySettings,
17077    ) -> *mut BNLinearViewObject;
17078}
17079unsafe extern "C" {
17080    pub fn BNCreateLinearViewMappedMediumLevelIL(
17081        view: *mut BNBinaryView,
17082        settings: *mut BNDisassemblySettings,
17083    ) -> *mut BNLinearViewObject;
17084}
17085unsafe extern "C" {
17086    pub fn BNCreateLinearViewMappedMediumLevelILSSAForm(
17087        view: *mut BNBinaryView,
17088        settings: *mut BNDisassemblySettings,
17089    ) -> *mut BNLinearViewObject;
17090}
17091unsafe extern "C" {
17092    pub fn BNCreateLinearViewHighLevelIL(
17093        view: *mut BNBinaryView,
17094        settings: *mut BNDisassemblySettings,
17095    ) -> *mut BNLinearViewObject;
17096}
17097unsafe extern "C" {
17098    pub fn BNCreateLinearViewHighLevelILSSAForm(
17099        view: *mut BNBinaryView,
17100        settings: *mut BNDisassemblySettings,
17101    ) -> *mut BNLinearViewObject;
17102}
17103unsafe extern "C" {
17104    pub fn BNCreateLinearViewLanguageRepresentation(
17105        view: *mut BNBinaryView,
17106        settings: *mut BNDisassemblySettings,
17107        language: *const ::std::os::raw::c_char,
17108    ) -> *mut BNLinearViewObject;
17109}
17110unsafe extern "C" {
17111    pub fn BNCreateLinearViewDataOnly(
17112        view: *mut BNBinaryView,
17113        settings: *mut BNDisassemblySettings,
17114    ) -> *mut BNLinearViewObject;
17115}
17116unsafe extern "C" {
17117    pub fn BNCreateLinearViewSingleFunctionDisassembly(
17118        func: *mut BNFunction,
17119        settings: *mut BNDisassemblySettings,
17120    ) -> *mut BNLinearViewObject;
17121}
17122unsafe extern "C" {
17123    pub fn BNCreateLinearViewSingleFunctionLiftedIL(
17124        func: *mut BNFunction,
17125        settings: *mut BNDisassemblySettings,
17126    ) -> *mut BNLinearViewObject;
17127}
17128unsafe extern "C" {
17129    pub fn BNCreateLinearViewSingleFunctionLowLevelIL(
17130        func: *mut BNFunction,
17131        settings: *mut BNDisassemblySettings,
17132    ) -> *mut BNLinearViewObject;
17133}
17134unsafe extern "C" {
17135    pub fn BNCreateLinearViewSingleFunctionLowLevelILSSAForm(
17136        func: *mut BNFunction,
17137        settings: *mut BNDisassemblySettings,
17138    ) -> *mut BNLinearViewObject;
17139}
17140unsafe extern "C" {
17141    pub fn BNCreateLinearViewSingleFunctionMediumLevelIL(
17142        func: *mut BNFunction,
17143        settings: *mut BNDisassemblySettings,
17144    ) -> *mut BNLinearViewObject;
17145}
17146unsafe extern "C" {
17147    pub fn BNCreateLinearViewSingleFunctionMediumLevelILSSAForm(
17148        func: *mut BNFunction,
17149        settings: *mut BNDisassemblySettings,
17150    ) -> *mut BNLinearViewObject;
17151}
17152unsafe extern "C" {
17153    pub fn BNCreateLinearViewSingleFunctionMappedMediumLevelIL(
17154        func: *mut BNFunction,
17155        settings: *mut BNDisassemblySettings,
17156    ) -> *mut BNLinearViewObject;
17157}
17158unsafe extern "C" {
17159    pub fn BNCreateLinearViewSingleFunctionMappedMediumLevelILSSAForm(
17160        func: *mut BNFunction,
17161        settings: *mut BNDisassemblySettings,
17162    ) -> *mut BNLinearViewObject;
17163}
17164unsafe extern "C" {
17165    pub fn BNCreateLinearViewSingleFunctionHighLevelIL(
17166        func: *mut BNFunction,
17167        settings: *mut BNDisassemblySettings,
17168    ) -> *mut BNLinearViewObject;
17169}
17170unsafe extern "C" {
17171    pub fn BNCreateLinearViewSingleFunctionHighLevelILSSAForm(
17172        func: *mut BNFunction,
17173        settings: *mut BNDisassemblySettings,
17174    ) -> *mut BNLinearViewObject;
17175}
17176unsafe extern "C" {
17177    pub fn BNCreateLinearViewSingleFunctionLanguageRepresentation(
17178        func: *mut BNFunction,
17179        settings: *mut BNDisassemblySettings,
17180        language: *const ::std::os::raw::c_char,
17181    ) -> *mut BNLinearViewObject;
17182}
17183unsafe extern "C" {
17184    pub fn BNNewLinearViewObjectReference(obj: *mut BNLinearViewObject) -> *mut BNLinearViewObject;
17185}
17186unsafe extern "C" {
17187    pub fn BNFreeLinearViewObject(obj: *mut BNLinearViewObject);
17188}
17189unsafe extern "C" {
17190    pub fn BNGetFirstLinearViewObjectChild(obj: *mut BNLinearViewObject)
17191    -> *mut BNLinearViewObject;
17192}
17193unsafe extern "C" {
17194    pub fn BNGetLastLinearViewObjectChild(obj: *mut BNLinearViewObject) -> *mut BNLinearViewObject;
17195}
17196unsafe extern "C" {
17197    pub fn BNGetPreviousLinearViewObjectChild(
17198        parent: *mut BNLinearViewObject,
17199        child: *mut BNLinearViewObject,
17200    ) -> *mut BNLinearViewObject;
17201}
17202unsafe extern "C" {
17203    pub fn BNGetNextLinearViewObjectChild(
17204        parent: *mut BNLinearViewObject,
17205        child: *mut BNLinearViewObject,
17206    ) -> *mut BNLinearViewObject;
17207}
17208unsafe extern "C" {
17209    pub fn BNGetLinearViewObjectChildForAddress(
17210        parent: *mut BNLinearViewObject,
17211        addr: u64,
17212    ) -> *mut BNLinearViewObject;
17213}
17214unsafe extern "C" {
17215    pub fn BNGetLinearViewObjectChildForIdentifier(
17216        parent: *mut BNLinearViewObject,
17217        id: *mut BNLinearViewObjectIdentifier,
17218    ) -> *mut BNLinearViewObject;
17219}
17220unsafe extern "C" {
17221    pub fn BNGetLinearViewObjectLines(
17222        obj: *mut BNLinearViewObject,
17223        prev: *mut BNLinearViewObject,
17224        next: *mut BNLinearViewObject,
17225        count: *mut usize,
17226    ) -> *mut BNLinearDisassemblyLine;
17227}
17228unsafe extern "C" {
17229    pub fn BNFreeLinearDisassemblyLines(lines: *mut BNLinearDisassemblyLine, count: usize);
17230}
17231unsafe extern "C" {
17232    pub fn BNGetLinearViewObjectStart(obj: *mut BNLinearViewObject) -> u64;
17233}
17234unsafe extern "C" {
17235    pub fn BNGetLinearViewObjectEnd(obj: *mut BNLinearViewObject) -> u64;
17236}
17237unsafe extern "C" {
17238    pub fn BNGetLinearViewObjectIdentifier(
17239        obj: *mut BNLinearViewObject,
17240    ) -> BNLinearViewObjectIdentifier;
17241}
17242unsafe extern "C" {
17243    pub fn BNFreeLinearViewObjectIdentifier(id: *mut BNLinearViewObjectIdentifier);
17244}
17245unsafe extern "C" {
17246    pub fn BNCompareLinearViewObjectChildren(
17247        obj: *mut BNLinearViewObject,
17248        a: *mut BNLinearViewObject,
17249        b: *mut BNLinearViewObject,
17250    ) -> ::std::os::raw::c_int;
17251}
17252unsafe extern "C" {
17253    pub fn BNGetLinearViewObjectOrderingIndexTotal(obj: *mut BNLinearViewObject) -> u64;
17254}
17255unsafe extern "C" {
17256    pub fn BNGetLinearViewObjectOrderingIndexForChild(
17257        parent: *mut BNLinearViewObject,
17258        child: *mut BNLinearViewObject,
17259    ) -> u64;
17260}
17261unsafe extern "C" {
17262    pub fn BNGetLinearViewObjectChildForOrderingIndex(
17263        parent: *mut BNLinearViewObject,
17264        idx: u64,
17265    ) -> *mut BNLinearViewObject;
17266}
17267unsafe extern "C" {
17268    pub fn BNCreateLinearViewCursor(root: *mut BNLinearViewObject) -> *mut BNLinearViewCursor;
17269}
17270unsafe extern "C" {
17271    pub fn BNDuplicateLinearViewCursor(cursor: *mut BNLinearViewCursor) -> *mut BNLinearViewCursor;
17272}
17273unsafe extern "C" {
17274    pub fn BNNewLinearViewCursorReference(
17275        cursor: *mut BNLinearViewCursor,
17276    ) -> *mut BNLinearViewCursor;
17277}
17278unsafe extern "C" {
17279    pub fn BNFreeLinearViewCursor(cursor: *mut BNLinearViewCursor);
17280}
17281unsafe extern "C" {
17282    pub fn BNIsLinearViewCursorBeforeBegin(cursor: *mut BNLinearViewCursor) -> bool;
17283}
17284unsafe extern "C" {
17285    pub fn BNIsLinearViewCursorAfterEnd(cursor: *mut BNLinearViewCursor) -> bool;
17286}
17287unsafe extern "C" {
17288    pub fn BNGetLinearViewCursorCurrentObject(
17289        cursor: *mut BNLinearViewCursor,
17290    ) -> *mut BNLinearViewObject;
17291}
17292unsafe extern "C" {
17293    pub fn BNGetLinearViewCursorPath(
17294        cursor: *mut BNLinearViewCursor,
17295        count: *mut usize,
17296    ) -> *mut BNLinearViewObjectIdentifier;
17297}
17298unsafe extern "C" {
17299    pub fn BNFreeLinearViewCursorPath(objs: *mut BNLinearViewObjectIdentifier, count: usize);
17300}
17301unsafe extern "C" {
17302    pub fn BNGetLinearViewCursorPathObjects(
17303        cursor: *mut BNLinearViewCursor,
17304        count: *mut usize,
17305    ) -> *mut *mut BNLinearViewObject;
17306}
17307unsafe extern "C" {
17308    pub fn BNFreeLinearViewCursorPathObjects(objs: *mut *mut BNLinearViewObject, count: usize);
17309}
17310unsafe extern "C" {
17311    pub fn BNGetLinearViewCursorOrderingIndex(cursor: *mut BNLinearViewCursor) -> BNAddressRange;
17312}
17313unsafe extern "C" {
17314    pub fn BNGetLinearViewCursorOrderingIndexTotal(cursor: *mut BNLinearViewCursor) -> u64;
17315}
17316unsafe extern "C" {
17317    pub fn BNSeekLinearViewCursorToBegin(cursor: *mut BNLinearViewCursor);
17318}
17319unsafe extern "C" {
17320    pub fn BNSeekLinearViewCursorToEnd(cursor: *mut BNLinearViewCursor);
17321}
17322unsafe extern "C" {
17323    pub fn BNSeekLinearViewCursorToAddress(cursor: *mut BNLinearViewCursor, addr: u64);
17324}
17325unsafe extern "C" {
17326    pub fn BNSeekLinearViewCursorToPath(
17327        cursor: *mut BNLinearViewCursor,
17328        ids: *mut BNLinearViewObjectIdentifier,
17329        count: usize,
17330    ) -> bool;
17331}
17332unsafe extern "C" {
17333    pub fn BNSeekLinearViewCursorToPathAndAddress(
17334        cursor: *mut BNLinearViewCursor,
17335        ids: *mut BNLinearViewObjectIdentifier,
17336        count: usize,
17337        addr: u64,
17338    ) -> bool;
17339}
17340unsafe extern "C" {
17341    pub fn BNSeekLinearViewCursorToCursorPath(
17342        cursor: *mut BNLinearViewCursor,
17343        path: *mut BNLinearViewCursor,
17344    ) -> bool;
17345}
17346unsafe extern "C" {
17347    pub fn BNSeekLinearViewCursorToCursorPathAndAddress(
17348        cursor: *mut BNLinearViewCursor,
17349        path: *mut BNLinearViewCursor,
17350        addr: u64,
17351    ) -> bool;
17352}
17353unsafe extern "C" {
17354    pub fn BNSeekLinearViewCursorToOrderingIndex(cursor: *mut BNLinearViewCursor, idx: u64);
17355}
17356unsafe extern "C" {
17357    pub fn BNLinearViewCursorNext(cursor: *mut BNLinearViewCursor) -> bool;
17358}
17359unsafe extern "C" {
17360    pub fn BNLinearViewCursorPrevious(cursor: *mut BNLinearViewCursor) -> bool;
17361}
17362unsafe extern "C" {
17363    pub fn BNGetLinearViewCursorLines(
17364        cursor: *mut BNLinearViewCursor,
17365        count: *mut usize,
17366    ) -> *mut BNLinearDisassemblyLine;
17367}
17368unsafe extern "C" {
17369    pub fn BNCompareLinearViewCursors(
17370        a: *mut BNLinearViewCursor,
17371        b: *mut BNLinearViewCursor,
17372    ) -> ::std::os::raw::c_int;
17373}
17374unsafe extern "C" {
17375    pub fn BNGetLinearViewCursorRenderLayers(
17376        cursor: *mut BNLinearViewCursor,
17377        count: *mut usize,
17378    ) -> *mut *mut BNRenderLayer;
17379}
17380unsafe extern "C" {
17381    pub fn BNAddLinearViewCursorRenderLayer(
17382        cursor: *mut BNLinearViewCursor,
17383        layer: *mut BNRenderLayer,
17384    );
17385}
17386unsafe extern "C" {
17387    pub fn BNRemoveLinearViewCursorRenderLayer(
17388        cursor: *mut BNLinearViewCursor,
17389        layer: *mut BNRenderLayer,
17390    );
17391}
17392unsafe extern "C" {
17393    pub fn BNDefineDataVariable(
17394        view: *mut BNBinaryView,
17395        addr: u64,
17396        type_: *mut BNTypeWithConfidence,
17397    );
17398}
17399unsafe extern "C" {
17400    pub fn BNDefineUserDataVariable(
17401        view: *mut BNBinaryView,
17402        addr: u64,
17403        type_: *mut BNTypeWithConfidence,
17404    );
17405}
17406unsafe extern "C" {
17407    pub fn BNUndefineDataVariable(view: *mut BNBinaryView, addr: u64, blacklist: bool);
17408}
17409unsafe extern "C" {
17410    pub fn BNUndefineUserDataVariable(view: *mut BNBinaryView, addr: u64);
17411}
17412unsafe extern "C" {
17413    pub fn BNGetDataVariables(view: *mut BNBinaryView, count: *mut usize) -> *mut BNDataVariable;
17414}
17415unsafe extern "C" {
17416    pub fn BNFreeDataVariable(var: *mut BNDataVariable);
17417}
17418unsafe extern "C" {
17419    pub fn BNFreeDataVariables(vars: *mut BNDataVariable, count: usize);
17420}
17421unsafe extern "C" {
17422    pub fn BNFreeDataVariableAndName(var: *mut BNDataVariableAndName);
17423}
17424unsafe extern "C" {
17425    pub fn BNFreeDataVariablesAndName(vars: *mut BNDataVariableAndName, count: usize);
17426}
17427unsafe extern "C" {
17428    pub fn BNFreeDataVariableAndNameAndDebugParserList(
17429        vars: *mut BNDataVariableAndNameAndDebugParser,
17430        count: usize,
17431    );
17432}
17433unsafe extern "C" {
17434    pub fn BNGetDataVariableAtAddress(
17435        view: *mut BNBinaryView,
17436        addr: u64,
17437        var: *mut BNDataVariable,
17438    ) -> bool;
17439}
17440unsafe extern "C" {
17441    pub fn BNParseTypeString(
17442        view: *mut BNBinaryView,
17443        text: *const ::std::os::raw::c_char,
17444        result: *mut BNQualifiedNameAndType,
17445        errors: *mut *mut ::std::os::raw::c_char,
17446        typesAllowRedefinition: *mut BNQualifiedNameList,
17447        importDepencencies: bool,
17448    ) -> bool;
17449}
17450unsafe extern "C" {
17451    pub fn BNParseTypesString(
17452        view: *mut BNBinaryView,
17453        text: *const ::std::os::raw::c_char,
17454        options: *const *const ::std::os::raw::c_char,
17455        optionCount: usize,
17456        includeDirs: *const *const ::std::os::raw::c_char,
17457        includeDirCount: usize,
17458        result: *mut BNTypeParserResult,
17459        errors: *mut *mut ::std::os::raw::c_char,
17460        typesAllowRedefinition: *mut BNQualifiedNameList,
17461        importDepencencies: bool,
17462    ) -> bool;
17463}
17464unsafe extern "C" {
17465    pub fn BNFreeQualifiedNameAndType(obj: *mut BNQualifiedNameAndType);
17466}
17467unsafe extern "C" {
17468    pub fn BNFreeQualifiedNameAndTypeArray(obj: *mut BNQualifiedNameAndType, count: usize);
17469}
17470unsafe extern "C" {
17471    pub fn BNFreeQualifiedNameTypeAndId(obj: *mut BNQualifiedNameTypeAndId);
17472}
17473unsafe extern "C" {
17474    pub fn BNEscapeTypeName(
17475        name: *const ::std::os::raw::c_char,
17476        escaping: BNTokenEscapingType,
17477    ) -> *mut ::std::os::raw::c_char;
17478}
17479unsafe extern "C" {
17480    pub fn BNUnescapeTypeName(
17481        name: *const ::std::os::raw::c_char,
17482        escaping: BNTokenEscapingType,
17483    ) -> *mut ::std::os::raw::c_char;
17484}
17485unsafe extern "C" {
17486    pub fn BNGetAnalysisTypeList(
17487        view: *mut BNBinaryView,
17488        count: *mut usize,
17489    ) -> *mut BNQualifiedNameAndType;
17490}
17491unsafe extern "C" {
17492    pub fn BNGetAnalysisDependencySortedTypeList(
17493        view: *mut BNBinaryView,
17494        count: *mut usize,
17495    ) -> *mut BNQualifiedNameAndType;
17496}
17497unsafe extern "C" {
17498    pub fn BNFreeTypeAndNameList(types: *mut BNQualifiedNameAndType, count: usize);
17499}
17500unsafe extern "C" {
17501    pub fn BNFreeTypeIdList(types: *mut BNQualifiedNameTypeAndId, count: usize);
17502}
17503unsafe extern "C" {
17504    pub fn BNGetAnalysisTypeNames(
17505        view: *mut BNBinaryView,
17506        count: *mut usize,
17507        matching: *const ::std::os::raw::c_char,
17508    ) -> *mut BNQualifiedName;
17509}
17510unsafe extern "C" {
17511    pub fn BNFreeTypeNameList(names: *mut BNQualifiedName, count: usize);
17512}
17513unsafe extern "C" {
17514    pub fn BNGetAnalysisTypeContainer(view: *mut BNBinaryView) -> *mut BNTypeContainer;
17515}
17516unsafe extern "C" {
17517    pub fn BNGetAnalysisAutoTypeContainer(view: *mut BNBinaryView) -> *mut BNTypeContainer;
17518}
17519unsafe extern "C" {
17520    pub fn BNGetAnalysisUserTypeContainer(view: *mut BNBinaryView) -> *mut BNTypeContainer;
17521}
17522unsafe extern "C" {
17523    pub fn BNGetAnalysisTypeByName(
17524        view: *mut BNBinaryView,
17525        name: *mut BNQualifiedName,
17526    ) -> *mut BNType;
17527}
17528unsafe extern "C" {
17529    pub fn BNGetAnalysisTypeByRef(
17530        view: *mut BNBinaryView,
17531        ref_: *mut BNNamedTypeReference,
17532    ) -> *mut BNType;
17533}
17534unsafe extern "C" {
17535    pub fn BNGetAnalysisTypeById(
17536        view: *mut BNBinaryView,
17537        id: *const ::std::os::raw::c_char,
17538    ) -> *mut BNType;
17539}
17540unsafe extern "C" {
17541    pub fn BNGetAnalysisTypeId(
17542        view: *mut BNBinaryView,
17543        name: *mut BNQualifiedName,
17544    ) -> *mut ::std::os::raw::c_char;
17545}
17546unsafe extern "C" {
17547    pub fn BNGetAnalysisTypeNameById(
17548        view: *mut BNBinaryView,
17549        id: *const ::std::os::raw::c_char,
17550    ) -> BNQualifiedName;
17551}
17552unsafe extern "C" {
17553    pub fn BNIsAnalysisTypeAutoDefined(view: *mut BNBinaryView, name: *mut BNQualifiedName)
17554    -> bool;
17555}
17556unsafe extern "C" {
17557    pub fn BNDefineAnalysisType(
17558        view: *mut BNBinaryView,
17559        id: *const ::std::os::raw::c_char,
17560        defaultName: *mut BNQualifiedName,
17561        type_: *mut BNType,
17562    ) -> BNQualifiedName;
17563}
17564unsafe extern "C" {
17565    pub fn BNDefineUserAnalysisType(
17566        view: *mut BNBinaryView,
17567        name: *mut BNQualifiedName,
17568        type_: *mut BNType,
17569    );
17570}
17571unsafe extern "C" {
17572    pub fn BNDefineAnalysisTypes(
17573        view: *mut BNBinaryView,
17574        types: *mut BNQualifiedNameTypeAndId,
17575        count: usize,
17576        progress: BNProgressFunction,
17577        progressContext: *mut ::std::os::raw::c_void,
17578        resultIds: *mut *mut *mut ::std::os::raw::c_char,
17579        resultNames: *mut *mut BNQualifiedName,
17580    ) -> usize;
17581}
17582unsafe extern "C" {
17583    pub fn BNDefineUserAnalysisTypes(
17584        view: *mut BNBinaryView,
17585        types: *mut BNQualifiedNameAndType,
17586        count: usize,
17587        progress: BNProgressFunction,
17588        progressContext: *mut ::std::os::raw::c_void,
17589    );
17590}
17591unsafe extern "C" {
17592    pub fn BNUndefineAnalysisType(view: *mut BNBinaryView, id: *const ::std::os::raw::c_char);
17593}
17594unsafe extern "C" {
17595    pub fn BNUndefineUserAnalysisType(view: *mut BNBinaryView, name: *mut BNQualifiedName);
17596}
17597unsafe extern "C" {
17598    pub fn BNRenameAnalysisType(
17599        view: *mut BNBinaryView,
17600        oldName: *mut BNQualifiedName,
17601        newName: *mut BNQualifiedName,
17602    );
17603}
17604unsafe extern "C" {
17605    pub fn BNGetAnalysisSystemCallType(
17606        view: *mut BNBinaryView,
17607        platform: *mut BNPlatform,
17608        id: u32,
17609    ) -> *mut BNType;
17610}
17611unsafe extern "C" {
17612    pub fn BNGetAnalysisSystemCallName(
17613        view: *mut BNBinaryView,
17614        platform: *mut BNPlatform,
17615        id: u32,
17616    ) -> *mut ::std::os::raw::c_char;
17617}
17618unsafe extern "C" {
17619    pub fn BNGenerateAutoTypeId(
17620        source: *const ::std::os::raw::c_char,
17621        name: *mut BNQualifiedName,
17622    ) -> *mut ::std::os::raw::c_char;
17623}
17624unsafe extern "C" {
17625    pub fn BNGenerateAutoPlatformTypeId(
17626        platform: *mut BNPlatform,
17627        name: *mut BNQualifiedName,
17628    ) -> *mut ::std::os::raw::c_char;
17629}
17630unsafe extern "C" {
17631    pub fn BNGenerateAutoDemangledTypeId(name: *mut BNQualifiedName)
17632    -> *mut ::std::os::raw::c_char;
17633}
17634unsafe extern "C" {
17635    pub fn BNGetAutoPlatformTypeIdSource(platform: *mut BNPlatform) -> *mut ::std::os::raw::c_char;
17636}
17637unsafe extern "C" {
17638    pub fn BNGetAutoDemangledTypeIdSource() -> *mut ::std::os::raw::c_char;
17639}
17640unsafe extern "C" {
17641    pub fn BNGenerateAutoDebugTypeId(name: *mut BNQualifiedName) -> *mut ::std::os::raw::c_char;
17642}
17643unsafe extern "C" {
17644    pub fn BNGetAutoDebugTypeIdSource() -> *mut ::std::os::raw::c_char;
17645}
17646unsafe extern "C" {
17647    pub fn BNRegisterPlatformTypes(view: *mut BNBinaryView, platform: *mut BNPlatform);
17648}
17649unsafe extern "C" {
17650    pub fn BNLookupImportedTypePlatform(
17651        view: *mut BNBinaryView,
17652        typeName: *const BNQualifiedName,
17653        platform: *mut *mut BNPlatform,
17654        resultName: *mut BNQualifiedName,
17655    ) -> bool;
17656}
17657unsafe extern "C" {
17658    pub fn BNReanalyzeAllFunctions(view: *mut BNBinaryView);
17659}
17660unsafe extern "C" {
17661    pub fn BNAnalyzeFunction(func: *mut BNFunction);
17662}
17663unsafe extern "C" {
17664    pub fn BNReanalyzeFunction(func: *mut BNFunction, type_: BNFunctionUpdateType);
17665}
17666unsafe extern "C" {
17667    pub fn BNMarkUpdatesRequired(func: *mut BNFunction, type_: BNFunctionUpdateType);
17668}
17669unsafe extern "C" {
17670    pub fn BNMarkCallerUpdatesRequired(func: *mut BNFunction, type_: BNFunctionUpdateType);
17671}
17672unsafe extern "C" {
17673    pub fn BNGetInstructionHighlight(
17674        func: *mut BNFunction,
17675        arch: *mut BNArchitecture,
17676        addr: u64,
17677    ) -> BNHighlightColor;
17678}
17679unsafe extern "C" {
17680    pub fn BNSetAutoInstructionHighlight(
17681        func: *mut BNFunction,
17682        arch: *mut BNArchitecture,
17683        addr: u64,
17684        color: BNHighlightColor,
17685    );
17686}
17687unsafe extern "C" {
17688    pub fn BNSetUserInstructionHighlight(
17689        func: *mut BNFunction,
17690        arch: *mut BNArchitecture,
17691        addr: u64,
17692        color: BNHighlightColor,
17693    );
17694}
17695unsafe extern "C" {
17696    pub fn BNGetBasicBlockHighlight(block: *mut BNBasicBlock) -> BNHighlightColor;
17697}
17698unsafe extern "C" {
17699    pub fn BNSetAutoBasicBlockHighlight(block: *mut BNBasicBlock, color: BNHighlightColor);
17700}
17701unsafe extern "C" {
17702    pub fn BNSetUserBasicBlockHighlight(block: *mut BNBasicBlock, color: BNHighlightColor);
17703}
17704unsafe extern "C" {
17705    pub fn BNFreeTypeContainer(container: *mut BNTypeContainer);
17706}
17707unsafe extern "C" {
17708    pub fn BNDuplicateTypeContainer(container: *mut BNTypeContainer) -> *mut BNTypeContainer;
17709}
17710unsafe extern "C" {
17711    pub fn BNTypeContainerGetId(container: *mut BNTypeContainer) -> *mut ::std::os::raw::c_char;
17712}
17713unsafe extern "C" {
17714    pub fn BNTypeContainerGetName(container: *mut BNTypeContainer) -> *mut ::std::os::raw::c_char;
17715}
17716unsafe extern "C" {
17717    pub fn BNTypeContainerGetType(container: *mut BNTypeContainer) -> BNTypeContainerType;
17718}
17719unsafe extern "C" {
17720    pub fn BNTypeContainerIsMutable(container: *mut BNTypeContainer) -> bool;
17721}
17722unsafe extern "C" {
17723    pub fn BNTypeContainerGetPlatform(container: *mut BNTypeContainer) -> *mut BNPlatform;
17724}
17725unsafe extern "C" {
17726    pub fn BNTypeContainerAddTypes(
17727        container: *mut BNTypeContainer,
17728        typeNames: *const BNQualifiedName,
17729        types: *mut *mut BNType,
17730        typeCount: usize,
17731        progress: BNProgressFunction,
17732        progressContext: *mut ::std::os::raw::c_void,
17733        resultNames: *mut *mut BNQualifiedName,
17734        resultIds: *mut *mut *mut ::std::os::raw::c_char,
17735        resultCount: *mut usize,
17736    ) -> bool;
17737}
17738unsafe extern "C" {
17739    pub fn BNTypeContainerRenameType(
17740        container: *mut BNTypeContainer,
17741        typeId: *const ::std::os::raw::c_char,
17742        newName: *const BNQualifiedName,
17743    ) -> bool;
17744}
17745unsafe extern "C" {
17746    pub fn BNTypeContainerDeleteType(
17747        container: *mut BNTypeContainer,
17748        typeId: *const ::std::os::raw::c_char,
17749    ) -> bool;
17750}
17751unsafe extern "C" {
17752    pub fn BNTypeContainerGetTypeId(
17753        container: *mut BNTypeContainer,
17754        typeName: *const BNQualifiedName,
17755        result: *mut *mut ::std::os::raw::c_char,
17756    ) -> bool;
17757}
17758unsafe extern "C" {
17759    pub fn BNTypeContainerGetTypeName(
17760        container: *mut BNTypeContainer,
17761        typeId: *const ::std::os::raw::c_char,
17762        result: *mut BNQualifiedName,
17763    ) -> bool;
17764}
17765unsafe extern "C" {
17766    pub fn BNTypeContainerGetTypeById(
17767        container: *mut BNTypeContainer,
17768        typeId: *const ::std::os::raw::c_char,
17769        result: *mut *mut BNType,
17770    ) -> bool;
17771}
17772unsafe extern "C" {
17773    pub fn BNTypeContainerGetTypes(
17774        container: *mut BNTypeContainer,
17775        typeIds: *mut *mut *mut ::std::os::raw::c_char,
17776        typeNames: *mut *mut BNQualifiedName,
17777        types: *mut *mut *mut BNType,
17778        count: *mut usize,
17779    ) -> bool;
17780}
17781unsafe extern "C" {
17782    pub fn BNTypeContainerGetTypeByName(
17783        container: *mut BNTypeContainer,
17784        typeName: *const BNQualifiedName,
17785        result: *mut *mut BNType,
17786    ) -> bool;
17787}
17788unsafe extern "C" {
17789    pub fn BNTypeContainerGetTypeIds(
17790        container: *mut BNTypeContainer,
17791        typeIds: *mut *mut *mut ::std::os::raw::c_char,
17792        count: *mut usize,
17793    ) -> bool;
17794}
17795unsafe extern "C" {
17796    pub fn BNTypeContainerGetTypeNames(
17797        container: *mut BNTypeContainer,
17798        typeNames: *mut *mut BNQualifiedName,
17799        count: *mut usize,
17800    ) -> bool;
17801}
17802unsafe extern "C" {
17803    pub fn BNTypeContainerGetTypeNamesAndIds(
17804        container: *mut BNTypeContainer,
17805        typeIds: *mut *mut *mut ::std::os::raw::c_char,
17806        typeNames: *mut *mut BNQualifiedName,
17807        count: *mut usize,
17808    ) -> bool;
17809}
17810unsafe extern "C" {
17811    pub fn BNTypeContainerGetTypeCount(container: *mut BNTypeContainer) -> usize;
17812}
17813unsafe extern "C" {
17814    pub fn BNTypeContainerParseTypeString(
17815        container: *mut BNTypeContainer,
17816        source: *const ::std::os::raw::c_char,
17817        importDepencencies: bool,
17818        result: *mut BNQualifiedNameAndType,
17819        errors: *mut *mut BNTypeParserError,
17820        errorCount: *mut usize,
17821    ) -> bool;
17822}
17823unsafe extern "C" {
17824    pub fn BNTypeContainerParseTypesFromSource(
17825        container: *mut BNTypeContainer,
17826        source: *const ::std::os::raw::c_char,
17827        fileName: *const ::std::os::raw::c_char,
17828        options: *const *const ::std::os::raw::c_char,
17829        optionCount: usize,
17830        includeDirs: *const *const ::std::os::raw::c_char,
17831        includeDirCount: usize,
17832        autoTypeSource: *const ::std::os::raw::c_char,
17833        importDepencencies: bool,
17834        result: *mut BNTypeParserResult,
17835        errors: *mut *mut BNTypeParserError,
17836        errorCount: *mut usize,
17837    ) -> bool;
17838}
17839unsafe extern "C" {
17840    pub fn BNGetEmptyTypeContainer() -> *mut BNTypeContainer;
17841}
17842unsafe extern "C" {
17843    pub fn BNCreateTagType(view: *mut BNBinaryView) -> *mut BNTagType;
17844}
17845unsafe extern "C" {
17846    pub fn BNNewTagTypeReference(tagType: *mut BNTagType) -> *mut BNTagType;
17847}
17848unsafe extern "C" {
17849    pub fn BNFreeTagType(tagType: *mut BNTagType);
17850}
17851unsafe extern "C" {
17852    pub fn BNFreeTagTypeList(tagTypes: *mut *mut BNTagType, count: usize);
17853}
17854unsafe extern "C" {
17855    pub fn BNTagTypeGetView(tagType: *mut BNTagType) -> *mut BNBinaryView;
17856}
17857unsafe extern "C" {
17858    pub fn BNTagTypeGetId(tagType: *mut BNTagType) -> *mut ::std::os::raw::c_char;
17859}
17860unsafe extern "C" {
17861    pub fn BNTagTypeGetName(tagType: *mut BNTagType) -> *mut ::std::os::raw::c_char;
17862}
17863unsafe extern "C" {
17864    pub fn BNTagTypeSetName(tagType: *mut BNTagType, name: *const ::std::os::raw::c_char);
17865}
17866unsafe extern "C" {
17867    pub fn BNTagTypeGetIcon(tagType: *mut BNTagType) -> *mut ::std::os::raw::c_char;
17868}
17869unsafe extern "C" {
17870    pub fn BNTagTypeSetIcon(tagType: *mut BNTagType, icon: *const ::std::os::raw::c_char);
17871}
17872unsafe extern "C" {
17873    pub fn BNTagTypeGetVisible(tagType: *mut BNTagType) -> bool;
17874}
17875unsafe extern "C" {
17876    pub fn BNTagTypeSetVisible(tagType: *mut BNTagType, visible: bool);
17877}
17878unsafe extern "C" {
17879    pub fn BNTagTypeGetType(tagType: *mut BNTagType) -> BNTagTypeType;
17880}
17881unsafe extern "C" {
17882    pub fn BNTagTypeSetType(tagType: *mut BNTagType, type_: BNTagTypeType);
17883}
17884unsafe extern "C" {
17885    pub fn BNCreateTag(type_: *mut BNTagType, data: *const ::std::os::raw::c_char) -> *mut BNTag;
17886}
17887unsafe extern "C" {
17888    pub fn BNNewTagReference(tag: *mut BNTag) -> *mut BNTag;
17889}
17890unsafe extern "C" {
17891    pub fn BNFreeTag(tag: *mut BNTag);
17892}
17893unsafe extern "C" {
17894    pub fn BNFreeTagList(tags: *mut *mut BNTag, count: usize);
17895}
17896unsafe extern "C" {
17897    pub fn BNTagGetId(tag: *mut BNTag) -> *mut ::std::os::raw::c_char;
17898}
17899unsafe extern "C" {
17900    pub fn BNTagGetType(tag: *mut BNTag) -> *mut BNTagType;
17901}
17902unsafe extern "C" {
17903    pub fn BNTagGetData(tag: *mut BNTag) -> *mut ::std::os::raw::c_char;
17904}
17905unsafe extern "C" {
17906    pub fn BNTagSetData(tag: *mut BNTag, data: *const ::std::os::raw::c_char);
17907}
17908unsafe extern "C" {
17909    pub fn BNAddTagType(view: *mut BNBinaryView, tagType: *mut BNTagType);
17910}
17911unsafe extern "C" {
17912    pub fn BNRemoveTagType(view: *mut BNBinaryView, tagType: *mut BNTagType);
17913}
17914unsafe extern "C" {
17915    pub fn BNGetTagType(
17916        view: *mut BNBinaryView,
17917        name: *const ::std::os::raw::c_char,
17918    ) -> *mut BNTagType;
17919}
17920unsafe extern "C" {
17921    pub fn BNGetTagTypeWithType(
17922        view: *mut BNBinaryView,
17923        name: *const ::std::os::raw::c_char,
17924        type_: BNTagTypeType,
17925    ) -> *mut BNTagType;
17926}
17927unsafe extern "C" {
17928    pub fn BNGetTagTypeById(
17929        view: *mut BNBinaryView,
17930        id: *const ::std::os::raw::c_char,
17931    ) -> *mut BNTagType;
17932}
17933unsafe extern "C" {
17934    pub fn BNGetTagTypeByIdWithType(
17935        view: *mut BNBinaryView,
17936        id: *const ::std::os::raw::c_char,
17937        type_: BNTagTypeType,
17938    ) -> *mut BNTagType;
17939}
17940unsafe extern "C" {
17941    pub fn BNGetTagTypes(view: *mut BNBinaryView, count: *mut usize) -> *mut *mut BNTagType;
17942}
17943unsafe extern "C" {
17944    pub fn BNAddTag(view: *mut BNBinaryView, tag: *mut BNTag, user: bool);
17945}
17946unsafe extern "C" {
17947    pub fn BNGetTag(view: *mut BNBinaryView, tagId: *const ::std::os::raw::c_char) -> *mut BNTag;
17948}
17949unsafe extern "C" {
17950    pub fn BNRemoveTag(view: *mut BNBinaryView, tag: *mut BNTag, user: bool);
17951}
17952unsafe extern "C" {
17953    pub fn BNGetAllTagReferences(view: *mut BNBinaryView, count: *mut usize)
17954    -> *mut BNTagReference;
17955}
17956unsafe extern "C" {
17957    pub fn BNGetAllAddressTagReferences(
17958        view: *mut BNBinaryView,
17959        count: *mut usize,
17960    ) -> *mut BNTagReference;
17961}
17962unsafe extern "C" {
17963    pub fn BNGetAllFunctionTagReferences(
17964        view: *mut BNBinaryView,
17965        count: *mut usize,
17966    ) -> *mut BNTagReference;
17967}
17968unsafe extern "C" {
17969    pub fn BNGetAllTagReferencesOfType(
17970        view: *mut BNBinaryView,
17971        tagType: *mut BNTagType,
17972        count: *mut usize,
17973    ) -> *mut BNTagReference;
17974}
17975unsafe extern "C" {
17976    pub fn BNGetTagReferencesOfType(
17977        view: *mut BNBinaryView,
17978        tagType: *mut BNTagType,
17979        count: *mut usize,
17980    ) -> *mut BNTagReference;
17981}
17982unsafe extern "C" {
17983    pub fn BNGetDataTagReferences(
17984        view: *mut BNBinaryView,
17985        count: *mut usize,
17986    ) -> *mut BNTagReference;
17987}
17988unsafe extern "C" {
17989    pub fn BNGetAutoDataTagReferences(
17990        view: *mut BNBinaryView,
17991        count: *mut usize,
17992    ) -> *mut BNTagReference;
17993}
17994unsafe extern "C" {
17995    pub fn BNGetUserDataTagReferences(
17996        view: *mut BNBinaryView,
17997        count: *mut usize,
17998    ) -> *mut BNTagReference;
17999}
18000unsafe extern "C" {
18001    pub fn BNRemoveTagReference(view: *mut BNBinaryView, ref_: BNTagReference);
18002}
18003unsafe extern "C" {
18004    pub fn BNFreeTagReferences(refs: *mut BNTagReference, count: usize);
18005}
18006unsafe extern "C" {
18007    pub fn BNGetDataTags(view: *mut BNBinaryView, addr: u64, count: *mut usize) -> *mut *mut BNTag;
18008}
18009unsafe extern "C" {
18010    pub fn BNGetAutoDataTags(
18011        view: *mut BNBinaryView,
18012        addr: u64,
18013        count: *mut usize,
18014    ) -> *mut *mut BNTag;
18015}
18016unsafe extern "C" {
18017    pub fn BNGetUserDataTags(
18018        view: *mut BNBinaryView,
18019        addr: u64,
18020        count: *mut usize,
18021    ) -> *mut *mut BNTag;
18022}
18023unsafe extern "C" {
18024    pub fn BNGetDataTagsOfType(
18025        view: *mut BNBinaryView,
18026        addr: u64,
18027        tagType: *mut BNTagType,
18028        count: *mut usize,
18029    ) -> *mut *mut BNTag;
18030}
18031unsafe extern "C" {
18032    pub fn BNGetAutoDataTagsOfType(
18033        view: *mut BNBinaryView,
18034        addr: u64,
18035        tagType: *mut BNTagType,
18036        count: *mut usize,
18037    ) -> *mut *mut BNTag;
18038}
18039unsafe extern "C" {
18040    pub fn BNGetUserDataTagsOfType(
18041        view: *mut BNBinaryView,
18042        addr: u64,
18043        tagType: *mut BNTagType,
18044        count: *mut usize,
18045    ) -> *mut *mut BNTag;
18046}
18047unsafe extern "C" {
18048    pub fn BNGetDataTagsInRange(
18049        view: *mut BNBinaryView,
18050        start: u64,
18051        end: u64,
18052        count: *mut usize,
18053    ) -> *mut BNTagReference;
18054}
18055unsafe extern "C" {
18056    pub fn BNGetAutoDataTagsInRange(
18057        view: *mut BNBinaryView,
18058        start: u64,
18059        end: u64,
18060        count: *mut usize,
18061    ) -> *mut BNTagReference;
18062}
18063unsafe extern "C" {
18064    pub fn BNGetUserDataTagsInRange(
18065        view: *mut BNBinaryView,
18066        start: u64,
18067        end: u64,
18068        count: *mut usize,
18069    ) -> *mut BNTagReference;
18070}
18071unsafe extern "C" {
18072    pub fn BNAddAutoDataTag(view: *mut BNBinaryView, addr: u64, tag: *mut BNTag);
18073}
18074unsafe extern "C" {
18075    pub fn BNRemoveAutoDataTag(view: *mut BNBinaryView, addr: u64, tag: *mut BNTag);
18076}
18077unsafe extern "C" {
18078    pub fn BNRemoveAutoDataTagsOfType(view: *mut BNBinaryView, addr: u64, tagType: *mut BNTagType);
18079}
18080unsafe extern "C" {
18081    pub fn BNAddUserDataTag(view: *mut BNBinaryView, addr: u64, tag: *mut BNTag);
18082}
18083unsafe extern "C" {
18084    pub fn BNRemoveUserDataTag(view: *mut BNBinaryView, addr: u64, tag: *mut BNTag);
18085}
18086unsafe extern "C" {
18087    pub fn BNRemoveUserDataTagsOfType(view: *mut BNBinaryView, addr: u64, tagType: *mut BNTagType);
18088}
18089unsafe extern "C" {
18090    pub fn BNGetTagReferencesOfTypeCount(view: *mut BNBinaryView, tagType: *mut BNTagType)
18091    -> usize;
18092}
18093unsafe extern "C" {
18094    pub fn BNGetAllTagReferencesOfTypeCount(
18095        view: *mut BNBinaryView,
18096        tagType: *mut BNTagType,
18097    ) -> usize;
18098}
18099unsafe extern "C" {
18100    pub fn BNGetAllTagReferenceTypeCounts(
18101        view: *mut BNBinaryView,
18102        tagTypes: *mut *mut *mut BNTagType,
18103        counts: *mut *mut usize,
18104        count: *mut usize,
18105    );
18106}
18107unsafe extern "C" {
18108    pub fn BNFreeTagReferenceTypeCounts(
18109        tagTypes: *mut *mut BNTagType,
18110        counts: *mut usize,
18111        count: usize,
18112    );
18113}
18114unsafe extern "C" {
18115    pub fn BNGetFunctionAllTagReferences(
18116        func: *mut BNFunction,
18117        count: *mut usize,
18118    ) -> *mut BNTagReference;
18119}
18120unsafe extern "C" {
18121    pub fn BNGetFunctionTagReferencesOfType(
18122        func: *mut BNFunction,
18123        tagType: *mut BNTagType,
18124        count: *mut usize,
18125    ) -> *mut BNTagReference;
18126}
18127unsafe extern "C" {
18128    pub fn BNGetAddressTagReferences(
18129        func: *mut BNFunction,
18130        count: *mut usize,
18131    ) -> *mut BNTagReference;
18132}
18133unsafe extern "C" {
18134    pub fn BNGetAutoAddressTagReferences(
18135        func: *mut BNFunction,
18136        count: *mut usize,
18137    ) -> *mut BNTagReference;
18138}
18139unsafe extern "C" {
18140    pub fn BNGetUserAddressTagReferences(
18141        func: *mut BNFunction,
18142        count: *mut usize,
18143    ) -> *mut BNTagReference;
18144}
18145unsafe extern "C" {
18146    pub fn BNGetAddressTags(
18147        func: *mut BNFunction,
18148        arch: *mut BNArchitecture,
18149        addr: u64,
18150        count: *mut usize,
18151    ) -> *mut *mut BNTag;
18152}
18153unsafe extern "C" {
18154    pub fn BNGetAutoAddressTags(
18155        func: *mut BNFunction,
18156        arch: *mut BNArchitecture,
18157        addr: u64,
18158        count: *mut usize,
18159    ) -> *mut *mut BNTag;
18160}
18161unsafe extern "C" {
18162    pub fn BNGetUserAddressTags(
18163        func: *mut BNFunction,
18164        arch: *mut BNArchitecture,
18165        addr: u64,
18166        count: *mut usize,
18167    ) -> *mut *mut BNTag;
18168}
18169unsafe extern "C" {
18170    pub fn BNGetAddressTagsOfType(
18171        func: *mut BNFunction,
18172        arch: *mut BNArchitecture,
18173        addr: u64,
18174        tagType: *mut BNTagType,
18175        count: *mut usize,
18176    ) -> *mut *mut BNTag;
18177}
18178unsafe extern "C" {
18179    pub fn BNGetAutoAddressTagsOfType(
18180        func: *mut BNFunction,
18181        arch: *mut BNArchitecture,
18182        addr: u64,
18183        tagType: *mut BNTagType,
18184        count: *mut usize,
18185    ) -> *mut *mut BNTag;
18186}
18187unsafe extern "C" {
18188    pub fn BNGetUserAddressTagsOfType(
18189        func: *mut BNFunction,
18190        arch: *mut BNArchitecture,
18191        addr: u64,
18192        tagType: *mut BNTagType,
18193        count: *mut usize,
18194    ) -> *mut *mut BNTag;
18195}
18196unsafe extern "C" {
18197    pub fn BNGetAddressTagsInRange(
18198        func: *mut BNFunction,
18199        arch: *mut BNArchitecture,
18200        start: u64,
18201        end: u64,
18202        count: *mut usize,
18203    ) -> *mut BNTagReference;
18204}
18205unsafe extern "C" {
18206    pub fn BNGetAutoAddressTagsInRange(
18207        func: *mut BNFunction,
18208        arch: *mut BNArchitecture,
18209        start: u64,
18210        end: u64,
18211        count: *mut usize,
18212    ) -> *mut BNTagReference;
18213}
18214unsafe extern "C" {
18215    pub fn BNGetUserAddressTagsInRange(
18216        func: *mut BNFunction,
18217        arch: *mut BNArchitecture,
18218        start: u64,
18219        end: u64,
18220        count: *mut usize,
18221    ) -> *mut BNTagReference;
18222}
18223unsafe extern "C" {
18224    pub fn BNAddAutoAddressTag(
18225        func: *mut BNFunction,
18226        arch: *mut BNArchitecture,
18227        addr: u64,
18228        tag: *mut BNTag,
18229    );
18230}
18231unsafe extern "C" {
18232    pub fn BNRemoveAutoAddressTag(
18233        func: *mut BNFunction,
18234        arch: *mut BNArchitecture,
18235        addr: u64,
18236        tag: *mut BNTag,
18237    );
18238}
18239unsafe extern "C" {
18240    pub fn BNRemoveAutoAddressTagsOfType(
18241        func: *mut BNFunction,
18242        arch: *mut BNArchitecture,
18243        addr: u64,
18244        tagType: *mut BNTagType,
18245    );
18246}
18247unsafe extern "C" {
18248    pub fn BNAddUserAddressTag(
18249        func: *mut BNFunction,
18250        arch: *mut BNArchitecture,
18251        addr: u64,
18252        tag: *mut BNTag,
18253    );
18254}
18255unsafe extern "C" {
18256    pub fn BNRemoveUserAddressTag(
18257        func: *mut BNFunction,
18258        arch: *mut BNArchitecture,
18259        addr: u64,
18260        tag: *mut BNTag,
18261    );
18262}
18263unsafe extern "C" {
18264    pub fn BNRemoveUserAddressTagsOfType(
18265        func: *mut BNFunction,
18266        arch: *mut BNArchitecture,
18267        addr: u64,
18268        tagType: *mut BNTagType,
18269    );
18270}
18271unsafe extern "C" {
18272    pub fn BNGetFunctionTagReferences(
18273        func: *mut BNFunction,
18274        count: *mut usize,
18275    ) -> *mut BNTagReference;
18276}
18277unsafe extern "C" {
18278    pub fn BNGetAutoFunctionTagReferences(
18279        func: *mut BNFunction,
18280        count: *mut usize,
18281    ) -> *mut BNTagReference;
18282}
18283unsafe extern "C" {
18284    pub fn BNGetUserFunctionTagReferences(
18285        func: *mut BNFunction,
18286        count: *mut usize,
18287    ) -> *mut BNTagReference;
18288}
18289unsafe extern "C" {
18290    pub fn BNGetFunctionTags(func: *mut BNFunction, count: *mut usize) -> *mut *mut BNTag;
18291}
18292unsafe extern "C" {
18293    pub fn BNGetAutoFunctionTags(func: *mut BNFunction, count: *mut usize) -> *mut *mut BNTag;
18294}
18295unsafe extern "C" {
18296    pub fn BNGetUserFunctionTags(func: *mut BNFunction, count: *mut usize) -> *mut *mut BNTag;
18297}
18298unsafe extern "C" {
18299    pub fn BNGetFunctionTagsOfType(
18300        func: *mut BNFunction,
18301        tagType: *mut BNTagType,
18302        count: *mut usize,
18303    ) -> *mut *mut BNTag;
18304}
18305unsafe extern "C" {
18306    pub fn BNGetAutoFunctionTagsOfType(
18307        func: *mut BNFunction,
18308        tagType: *mut BNTagType,
18309        count: *mut usize,
18310    ) -> *mut *mut BNTag;
18311}
18312unsafe extern "C" {
18313    pub fn BNGetUserFunctionTagsOfType(
18314        func: *mut BNFunction,
18315        tagType: *mut BNTagType,
18316        count: *mut usize,
18317    ) -> *mut *mut BNTag;
18318}
18319unsafe extern "C" {
18320    pub fn BNAddAutoFunctionTag(func: *mut BNFunction, tag: *mut BNTag);
18321}
18322unsafe extern "C" {
18323    pub fn BNRemoveAutoFunctionTag(func: *mut BNFunction, tag: *mut BNTag);
18324}
18325unsafe extern "C" {
18326    pub fn BNRemoveAutoFunctionTagsOfType(func: *mut BNFunction, tagType: *mut BNTagType);
18327}
18328unsafe extern "C" {
18329    pub fn BNAddUserFunctionTag(func: *mut BNFunction, tag: *mut BNTag);
18330}
18331unsafe extern "C" {
18332    pub fn BNRemoveUserFunctionTag(func: *mut BNFunction, tag: *mut BNTag);
18333}
18334unsafe extern "C" {
18335    pub fn BNRemoveUserFunctionTagsOfType(func: *mut BNFunction, tagType: *mut BNTagType);
18336}
18337unsafe extern "C" {
18338    pub fn BNGetFunctionAnalysisPerformanceInfo(
18339        func: *mut BNFunction,
18340        count: *mut usize,
18341    ) -> *mut BNPerformanceInfo;
18342}
18343unsafe extern "C" {
18344    pub fn BNFreeAnalysisPerformanceInfo(info: *mut BNPerformanceInfo, count: usize);
18345}
18346unsafe extern "C" {
18347    pub fn BNGetUnresolvedStackAdjustmentGraph(func: *mut BNFunction) -> *mut BNFlowGraph;
18348}
18349unsafe extern "C" {
18350    pub fn BNSetUserVariableValue(
18351        func: *mut BNFunction,
18352        var: *const BNVariable,
18353        defSite: *const BNArchitectureAndAddress,
18354        after: bool,
18355        value: *const BNPossibleValueSet,
18356    );
18357}
18358unsafe extern "C" {
18359    pub fn BNClearUserVariableValue(
18360        func: *mut BNFunction,
18361        var: *const BNVariable,
18362        defSite: *const BNArchitectureAndAddress,
18363        after: bool,
18364    );
18365}
18366unsafe extern "C" {
18367    pub fn BNGetAllUserVariableValues(
18368        func: *mut BNFunction,
18369        count: *mut usize,
18370    ) -> *mut BNUserVariableValue;
18371}
18372unsafe extern "C" {
18373    pub fn BNFreeUserVariableValues(result: *mut BNUserVariableValue);
18374}
18375unsafe extern "C" {
18376    pub fn BNParsePossibleValueSet(
18377        view: *mut BNBinaryView,
18378        valueText: *const ::std::os::raw::c_char,
18379        state: BNRegisterValueType,
18380        result: *mut BNPossibleValueSet,
18381        here: u64,
18382        errors: *mut *mut ::std::os::raw::c_char,
18383    ) -> bool;
18384}
18385unsafe extern "C" {
18386    pub fn BNCreateForcedVariableVersion(
18387        func: *mut BNFunction,
18388        var: *const BNVariable,
18389        defSite: *const BNArchitectureAndAddress,
18390    );
18391}
18392unsafe extern "C" {
18393    pub fn BNClearForcedVariableVersion(
18394        func: *mut BNFunction,
18395        var: *const BNVariable,
18396        defSite: *const BNArchitectureAndAddress,
18397    );
18398}
18399unsafe extern "C" {
18400    pub fn BNSetFieldResolutionForVariableAt(
18401        func: *mut BNFunction,
18402        var: *const BNVariable,
18403        defSite: *const BNArchitectureAndAddress,
18404        info: *const BNFieldResolutionInfo,
18405    );
18406}
18407unsafe extern "C" {
18408    pub fn BNGetFieldResolutionForVariableAt(
18409        func: *mut BNFunction,
18410        var: *const BNVariable,
18411        defSite: *const BNArchitectureAndAddress,
18412    ) -> *mut BNFieldResolutionInfo;
18413}
18414unsafe extern "C" {
18415    pub fn BNGetAllVariableFieldResolutions(
18416        func: *mut BNFunction,
18417        count: *mut usize,
18418    ) -> *mut BNVariableFieldResolutionInfo;
18419}
18420unsafe extern "C" {
18421    pub fn BNFreeVariableFieldResolutions(result: *mut BNVariableFieldResolutionInfo, count: usize);
18422}
18423unsafe extern "C" {
18424    pub fn BNClearFieldResolutionForVariableAt(
18425        func: *mut BNFunction,
18426        var: *const BNVariable,
18427        defSite: *const BNArchitectureAndAddress,
18428    );
18429}
18430unsafe extern "C" {
18431    pub fn BNRequestFunctionDebugReport(func: *mut BNFunction, name: *const ::std::os::raw::c_char);
18432}
18433unsafe extern "C" {
18434    pub fn BNFunctionCheckForDebugReport(
18435        func: *mut BNFunction,
18436        name: *const ::std::os::raw::c_char,
18437    ) -> bool;
18438}
18439unsafe extern "C" {
18440    pub fn BNGetMediumLevelILVariableReferences(
18441        func: *mut BNFunction,
18442        var: *mut BNVariable,
18443        count: *mut usize,
18444    ) -> *mut BNILReferenceSource;
18445}
18446unsafe extern "C" {
18447    pub fn BNGetMediumLevelILVariableReferencesFrom(
18448        func: *mut BNFunction,
18449        arch: *mut BNArchitecture,
18450        address: u64,
18451        count: *mut usize,
18452    ) -> *mut BNVariableReferenceSource;
18453}
18454unsafe extern "C" {
18455    pub fn BNGetMediumLevelILVariableReferencesInRange(
18456        func: *mut BNFunction,
18457        arch: *mut BNArchitecture,
18458        address: u64,
18459        len: u64,
18460        count: *mut usize,
18461    ) -> *mut BNVariableReferenceSource;
18462}
18463unsafe extern "C" {
18464    pub fn BNGetMediumLevelILVariableReferencesIfAvailable(
18465        func: *mut BNFunction,
18466        var: *mut BNVariable,
18467        count: *mut usize,
18468    ) -> *mut BNILReferenceSource;
18469}
18470unsafe extern "C" {
18471    pub fn BNGetMediumLevelILVariableReferencesFromIfAvailable(
18472        func: *mut BNFunction,
18473        arch: *mut BNArchitecture,
18474        address: u64,
18475        count: *mut usize,
18476    ) -> *mut BNVariableReferenceSource;
18477}
18478unsafe extern "C" {
18479    pub fn BNGetMediumLevelILVariableReferencesInRangeIfAvailable(
18480        func: *mut BNFunction,
18481        arch: *mut BNArchitecture,
18482        address: u64,
18483        len: u64,
18484        count: *mut usize,
18485    ) -> *mut BNVariableReferenceSource;
18486}
18487unsafe extern "C" {
18488    pub fn BNGetHighLevelILVariableReferences(
18489        func: *mut BNFunction,
18490        var: *mut BNVariable,
18491        count: *mut usize,
18492    ) -> *mut BNILReferenceSource;
18493}
18494unsafe extern "C" {
18495    pub fn BNGetHighLevelILVariableReferencesFrom(
18496        func: *mut BNFunction,
18497        arch: *mut BNArchitecture,
18498        address: u64,
18499        count: *mut usize,
18500    ) -> *mut BNVariableReferenceSource;
18501}
18502unsafe extern "C" {
18503    pub fn BNGetHighLevelILVariableReferencesInRange(
18504        func: *mut BNFunction,
18505        arch: *mut BNArchitecture,
18506        address: u64,
18507        len: u64,
18508        count: *mut usize,
18509    ) -> *mut BNVariableReferenceSource;
18510}
18511unsafe extern "C" {
18512    pub fn BNGetHighLevelILVariableReferencesIfAvailable(
18513        func: *mut BNFunction,
18514        var: *mut BNVariable,
18515        count: *mut usize,
18516    ) -> *mut BNILReferenceSource;
18517}
18518unsafe extern "C" {
18519    pub fn BNGetHighLevelILVariableReferencesFromIfAvailable(
18520        func: *mut BNFunction,
18521        arch: *mut BNArchitecture,
18522        address: u64,
18523        count: *mut usize,
18524    ) -> *mut BNVariableReferenceSource;
18525}
18526unsafe extern "C" {
18527    pub fn BNGetHighLevelILVariableReferencesInRangeIfAvailable(
18528        func: *mut BNFunction,
18529        arch: *mut BNArchitecture,
18530        address: u64,
18531        len: u64,
18532        count: *mut usize,
18533    ) -> *mut BNVariableReferenceSource;
18534}
18535unsafe extern "C" {
18536    pub fn BNFreeVariableList(vars: *mut BNVariable);
18537}
18538unsafe extern "C" {
18539    pub fn BNFreeVariableReferenceSourceList(vars: *mut BNVariableReferenceSource, count: usize);
18540}
18541unsafe extern "C" {
18542    #[doc = " Analysis Context"]
18543    pub fn BNCreateAnalysisContext() -> *mut BNAnalysisContext;
18544}
18545unsafe extern "C" {
18546    pub fn BNNewAnalysisContextReference(
18547        analysisContext: *mut BNAnalysisContext,
18548    ) -> *mut BNAnalysisContext;
18549}
18550unsafe extern "C" {
18551    pub fn BNFreeAnalysisContext(analysisContext: *mut BNAnalysisContext);
18552}
18553unsafe extern "C" {
18554    pub fn BNAnalysisContextGetBinaryView(
18555        analysisContext: *mut BNAnalysisContext,
18556    ) -> *mut BNBinaryView;
18557}
18558unsafe extern "C" {
18559    pub fn BNAnalysisContextGetFunction(analysisContext: *mut BNAnalysisContext)
18560    -> *mut BNFunction;
18561}
18562unsafe extern "C" {
18563    pub fn BNAnalysisContextGetLiftedILFunction(
18564        analysisContext: *mut BNAnalysisContext,
18565    ) -> *mut BNLowLevelILFunction;
18566}
18567unsafe extern "C" {
18568    pub fn BNAnalysisContextGetLowLevelILFunction(
18569        analysisContext: *mut BNAnalysisContext,
18570    ) -> *mut BNLowLevelILFunction;
18571}
18572unsafe extern "C" {
18573    pub fn BNAnalysisContextGetMediumLevelILFunction(
18574        analysisContext: *mut BNAnalysisContext,
18575    ) -> *mut BNMediumLevelILFunction;
18576}
18577unsafe extern "C" {
18578    pub fn BNAnalysisContextGetHighLevelILFunction(
18579        analysisContext: *mut BNAnalysisContext,
18580    ) -> *mut BNHighLevelILFunction;
18581}
18582unsafe extern "C" {
18583    pub fn BNSetBasicBlockList(
18584        analysisContext: *mut BNAnalysisContext,
18585        basicBlocks: *mut *mut BNBasicBlock,
18586        count: usize,
18587    );
18588}
18589unsafe extern "C" {
18590    pub fn BNSetLiftedILFunction(
18591        analysisContext: *mut BNAnalysisContext,
18592        liftedIL: *mut BNLowLevelILFunction,
18593    );
18594}
18595unsafe extern "C" {
18596    pub fn BNSetLowLevelILFunction(
18597        analysisContext: *mut BNAnalysisContext,
18598        lowLevelIL: *mut BNLowLevelILFunction,
18599    );
18600}
18601unsafe extern "C" {
18602    pub fn BNSetMediumLevelILFunction(
18603        analysisContext: *mut BNAnalysisContext,
18604        mediumLevelIL: *mut BNMediumLevelILFunction,
18605        llilSSAToMLILSSAInstrMap: *mut usize,
18606        instrCount: usize,
18607        llilSSAToMLILSSAExprMap: *mut BNExprMapInfo,
18608        exprCount: usize,
18609    );
18610}
18611unsafe extern "C" {
18612    pub fn BNSetHighLevelILFunction(
18613        analysisContext: *mut BNAnalysisContext,
18614        highLevelIL: *mut BNHighLevelILFunction,
18615    );
18616}
18617unsafe extern "C" {
18618    pub fn BNAnalysisContextInform(
18619        analysisContext: *mut BNAnalysisContext,
18620        request: *const ::std::os::raw::c_char,
18621    ) -> bool;
18622}
18623unsafe extern "C" {
18624    #[doc = " Settings cache access"]
18625    pub fn BNAnalysisContextGetSettingBool(
18626        analysisContext: *mut BNAnalysisContext,
18627        key: *const ::std::os::raw::c_char,
18628    ) -> bool;
18629}
18630unsafe extern "C" {
18631    pub fn BNAnalysisContextGetSettingDouble(
18632        analysisContext: *mut BNAnalysisContext,
18633        key: *const ::std::os::raw::c_char,
18634    ) -> f64;
18635}
18636unsafe extern "C" {
18637    pub fn BNAnalysisContextGetSettingInt64(
18638        analysisContext: *mut BNAnalysisContext,
18639        key: *const ::std::os::raw::c_char,
18640    ) -> i64;
18641}
18642unsafe extern "C" {
18643    pub fn BNAnalysisContextGetSettingUInt64(
18644        analysisContext: *mut BNAnalysisContext,
18645        key: *const ::std::os::raw::c_char,
18646    ) -> u64;
18647}
18648unsafe extern "C" {
18649    pub fn BNAnalysisContextGetSettingString(
18650        analysisContext: *mut BNAnalysisContext,
18651        key: *const ::std::os::raw::c_char,
18652    ) -> *mut ::std::os::raw::c_char;
18653}
18654unsafe extern "C" {
18655    pub fn BNAnalysisContextGetSettingStringList(
18656        analysisContext: *mut BNAnalysisContext,
18657        key: *const ::std::os::raw::c_char,
18658        count: *mut usize,
18659    ) -> *mut *mut ::std::os::raw::c_char;
18660}
18661unsafe extern "C" {
18662    #[doc = " Memory map access"]
18663    pub fn BNAnalysisContextIsValidOffset(
18664        analysisContext: *mut BNAnalysisContext,
18665        offset: u64,
18666    ) -> bool;
18667}
18668unsafe extern "C" {
18669    pub fn BNAnalysisContextIsOffsetReadable(
18670        analysisContext: *mut BNAnalysisContext,
18671        offset: u64,
18672    ) -> bool;
18673}
18674unsafe extern "C" {
18675    pub fn BNAnalysisContextIsOffsetWritable(
18676        analysisContext: *mut BNAnalysisContext,
18677        offset: u64,
18678    ) -> bool;
18679}
18680unsafe extern "C" {
18681    pub fn BNAnalysisContextIsOffsetExecutable(
18682        analysisContext: *mut BNAnalysisContext,
18683        offset: u64,
18684    ) -> bool;
18685}
18686unsafe extern "C" {
18687    pub fn BNAnalysisContextIsOffsetBackedByFile(
18688        analysisContext: *mut BNAnalysisContext,
18689        offset: u64,
18690    ) -> bool;
18691}
18692unsafe extern "C" {
18693    pub fn BNAnalysisContextIsOffsetCodeSemantics(
18694        analysisContext: *mut BNAnalysisContext,
18695        offset: u64,
18696    ) -> bool;
18697}
18698unsafe extern "C" {
18699    pub fn BNAnalysisContextIsOffsetExternSemantics(
18700        analysisContext: *mut BNAnalysisContext,
18701        offset: u64,
18702    ) -> bool;
18703}
18704unsafe extern "C" {
18705    pub fn BNAnalysisContextIsOffsetWritableSemantics(
18706        analysisContext: *mut BNAnalysisContext,
18707        offset: u64,
18708    ) -> bool;
18709}
18710unsafe extern "C" {
18711    pub fn BNAnalysisContextIsOffsetReadOnlySemantics(
18712        analysisContext: *mut BNAnalysisContext,
18713        offset: u64,
18714    ) -> bool;
18715}
18716unsafe extern "C" {
18717    pub fn BNAnalysisContextGetSections(
18718        analysisContext: *mut BNAnalysisContext,
18719        count: *mut usize,
18720    ) -> *mut *mut BNSection;
18721}
18722unsafe extern "C" {
18723    pub fn BNAnalysisContextGetSectionByName(
18724        analysisContext: *mut BNAnalysisContext,
18725        name: *const ::std::os::raw::c_char,
18726    ) -> *mut BNSection;
18727}
18728unsafe extern "C" {
18729    pub fn BNAnalysisContextGetSectionsAt(
18730        analysisContext: *mut BNAnalysisContext,
18731        addr: u64,
18732        count: *mut usize,
18733    ) -> *mut *mut BNSection;
18734}
18735unsafe extern "C" {
18736    pub fn BNAnalysisContextGetStart(analysisContext: *mut BNAnalysisContext) -> u64;
18737}
18738unsafe extern "C" {
18739    pub fn BNAnalysisContextGetEnd(analysisContext: *mut BNAnalysisContext) -> u64;
18740}
18741unsafe extern "C" {
18742    pub fn BNAnalysisContextGetLength(analysisContext: *mut BNAnalysisContext) -> u64;
18743}
18744unsafe extern "C" {
18745    pub fn BNAnalysisContextGetNextValidOffset(
18746        analysisContext: *mut BNAnalysisContext,
18747        offset: u64,
18748    ) -> u64;
18749}
18750unsafe extern "C" {
18751    pub fn BNAnalysisContextGetNextMappedAddress(
18752        analysisContext: *mut BNAnalysisContext,
18753        addr: u64,
18754        flags: u32,
18755    ) -> u64;
18756}
18757unsafe extern "C" {
18758    pub fn BNAnalysisContextGetNextBackedAddress(
18759        analysisContext: *mut BNAnalysisContext,
18760        addr: u64,
18761        flags: u32,
18762    ) -> u64;
18763}
18764unsafe extern "C" {
18765    pub fn BNAnalysisContextGetSegmentAt(
18766        analysisContext: *mut BNAnalysisContext,
18767        addr: u64,
18768    ) -> *mut BNSegment;
18769}
18770unsafe extern "C" {
18771    pub fn BNAnalysisContextGetMappedAddressRanges(
18772        analysisContext: *mut BNAnalysisContext,
18773        count: *mut usize,
18774    ) -> *mut BNAddressRange;
18775}
18776unsafe extern "C" {
18777    pub fn BNAnalysisContextGetBackedAddressRanges(
18778        analysisContext: *mut BNAnalysisContext,
18779        count: *mut usize,
18780    ) -> *mut BNAddressRange;
18781}
18782unsafe extern "C" {
18783    #[doc = " Activity"]
18784    pub fn BNCreateActivity(
18785        configuration: *const ::std::os::raw::c_char,
18786        ctxt: *mut ::std::os::raw::c_void,
18787        action: ::std::option::Option<
18788            unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void, arg2: *mut BNAnalysisContext),
18789        >,
18790    ) -> *mut BNActivity;
18791}
18792unsafe extern "C" {
18793    pub fn BNCreateActivityWithEligibility(
18794        configuration: *const ::std::os::raw::c_char,
18795        ctxt: *mut ::std::os::raw::c_void,
18796        action: ::std::option::Option<
18797            unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void, arg2: *mut BNAnalysisContext),
18798        >,
18799        eligibilityHandler: ::std::option::Option<
18800            unsafe extern "C" fn(
18801                arg1: *mut ::std::os::raw::c_void,
18802                arg2: *mut BNActivity,
18803                arg3: *mut BNAnalysisContext,
18804            ) -> bool,
18805        >,
18806    ) -> *mut BNActivity;
18807}
18808unsafe extern "C" {
18809    pub fn BNNewActivityReference(activity: *mut BNActivity) -> *mut BNActivity;
18810}
18811unsafe extern "C" {
18812    pub fn BNFreeActivity(activity: *mut BNActivity);
18813}
18814unsafe extern "C" {
18815    pub fn BNActivityGetName(activity: *mut BNActivity) -> *mut ::std::os::raw::c_char;
18816}
18817unsafe extern "C" {
18818    #[doc = " Workflow"]
18819    pub fn BNCreateWorkflow(name: *const ::std::os::raw::c_char) -> *mut BNWorkflow;
18820}
18821unsafe extern "C" {
18822    pub fn BNNewWorkflowReference(workflow: *mut BNWorkflow) -> *mut BNWorkflow;
18823}
18824unsafe extern "C" {
18825    pub fn BNFreeWorkflow(workflow: *mut BNWorkflow);
18826}
18827unsafe extern "C" {
18828    pub fn BNGetWorkflowList(count: *mut usize) -> *mut *mut BNWorkflow;
18829}
18830unsafe extern "C" {
18831    pub fn BNFreeWorkflowList(workflows: *mut *mut BNWorkflow, count: usize);
18832}
18833unsafe extern "C" {
18834    pub fn BNWorkflowGet(name: *const ::std::os::raw::c_char) -> *mut BNWorkflow;
18835}
18836unsafe extern "C" {
18837    pub fn BNWorkflowGetOrCreate(name: *const ::std::os::raw::c_char) -> *mut BNWorkflow;
18838}
18839unsafe extern "C" {
18840    pub fn BNRegisterWorkflow(
18841        workflow: *mut BNWorkflow,
18842        configuration: *const ::std::os::raw::c_char,
18843    ) -> bool;
18844}
18845unsafe extern "C" {
18846    pub fn BNWorkflowClone(
18847        workflow: *mut BNWorkflow,
18848        name: *const ::std::os::raw::c_char,
18849        activity: *const ::std::os::raw::c_char,
18850    ) -> *mut BNWorkflow;
18851}
18852unsafe extern "C" {
18853    pub fn BNWorkflowRegisterActivity(
18854        workflow: *mut BNWorkflow,
18855        activity: *mut BNActivity,
18856        subactivities: *mut *const ::std::os::raw::c_char,
18857        size: usize,
18858    ) -> *mut BNActivity;
18859}
18860unsafe extern "C" {
18861    pub fn BNWorkflowContains(
18862        workflow: *mut BNWorkflow,
18863        activity: *const ::std::os::raw::c_char,
18864    ) -> bool;
18865}
18866unsafe extern "C" {
18867    pub fn BNWorkflowGetConfiguration(
18868        workflow: *mut BNWorkflow,
18869        activity: *const ::std::os::raw::c_char,
18870    ) -> *mut ::std::os::raw::c_char;
18871}
18872unsafe extern "C" {
18873    pub fn BNGetWorkflowName(workflow: *mut BNWorkflow) -> *mut ::std::os::raw::c_char;
18874}
18875unsafe extern "C" {
18876    pub fn BNWorkflowIsRegistered(workflow: *mut BNWorkflow) -> bool;
18877}
18878unsafe extern "C" {
18879    pub fn BNWorkflowSize(workflow: *mut BNWorkflow) -> usize;
18880}
18881unsafe extern "C" {
18882    pub fn BNWorkflowGetActivity(
18883        workflow: *mut BNWorkflow,
18884        activity: *const ::std::os::raw::c_char,
18885    ) -> *mut BNActivity;
18886}
18887unsafe extern "C" {
18888    pub fn BNWorkflowGetActivityRoots(
18889        workflow: *mut BNWorkflow,
18890        activity: *const ::std::os::raw::c_char,
18891        inoutSize: *mut usize,
18892    ) -> *mut *const ::std::os::raw::c_char;
18893}
18894unsafe extern "C" {
18895    pub fn BNWorkflowGetSubactivities(
18896        workflow: *mut BNWorkflow,
18897        activity: *const ::std::os::raw::c_char,
18898        immediate: bool,
18899        inoutSize: *mut usize,
18900    ) -> *mut *const ::std::os::raw::c_char;
18901}
18902unsafe extern "C" {
18903    pub fn BNWorkflowAssignSubactivities(
18904        workflow: *mut BNWorkflow,
18905        activity: *const ::std::os::raw::c_char,
18906        activities: *mut *const ::std::os::raw::c_char,
18907        size: usize,
18908    ) -> bool;
18909}
18910unsafe extern "C" {
18911    pub fn BNWorkflowClear(workflow: *mut BNWorkflow) -> bool;
18912}
18913unsafe extern "C" {
18914    pub fn BNWorkflowInsert(
18915        workflow: *mut BNWorkflow,
18916        activity: *const ::std::os::raw::c_char,
18917        activities: *mut *const ::std::os::raw::c_char,
18918        size: usize,
18919    ) -> bool;
18920}
18921unsafe extern "C" {
18922    pub fn BNWorkflowInsertAfter(
18923        workflow: *mut BNWorkflow,
18924        activity: *const ::std::os::raw::c_char,
18925        activities: *mut *const ::std::os::raw::c_char,
18926        size: usize,
18927    ) -> bool;
18928}
18929unsafe extern "C" {
18930    pub fn BNWorkflowRemove(
18931        workflow: *mut BNWorkflow,
18932        activity: *const ::std::os::raw::c_char,
18933    ) -> bool;
18934}
18935unsafe extern "C" {
18936    pub fn BNWorkflowReplace(
18937        workflow: *mut BNWorkflow,
18938        activity: *const ::std::os::raw::c_char,
18939        newActivity: *const ::std::os::raw::c_char,
18940    ) -> bool;
18941}
18942unsafe extern "C" {
18943    pub fn BNWorkflowGetGraph(
18944        workflow: *mut BNWorkflow,
18945        activity: *const ::std::os::raw::c_char,
18946        sequential: bool,
18947    ) -> *mut BNFlowGraph;
18948}
18949unsafe extern "C" {
18950    pub fn BNWorkflowShowReport(workflow: *mut BNWorkflow, name: *const ::std::os::raw::c_char);
18951}
18952unsafe extern "C" {
18953    pub fn BNWorkflowGetEligibilitySettings(
18954        workflow: *mut BNWorkflow,
18955        inoutSize: *mut usize,
18956    ) -> *mut *const ::std::os::raw::c_char;
18957}
18958unsafe extern "C" {
18959    #[doc = " BinaryView Workflow Machine"]
18960    pub fn BNGetWorkflowForBinaryView(view: *mut BNBinaryView) -> *mut BNWorkflow;
18961}
18962unsafe extern "C" {
18963    pub fn BNPostWorkflowRequestForBinaryView(
18964        view: *mut BNBinaryView,
18965        request: *const ::std::os::raw::c_char,
18966    ) -> *mut ::std::os::raw::c_char;
18967}
18968unsafe extern "C" {
18969    pub fn BNGetWorkflowGraphForBinaryView(
18970        view: *mut BNBinaryView,
18971        name: *const ::std::os::raw::c_char,
18972        sequential: bool,
18973    ) -> *mut BNFlowGraph;
18974}
18975unsafe extern "C" {
18976    pub fn BNShowWorkflowReportForBinaryView(
18977        view: *mut BNBinaryView,
18978        name: *const ::std::os::raw::c_char,
18979    );
18980}
18981unsafe extern "C" {
18982    #[doc = " Function Workflow Machine"]
18983    pub fn BNGetWorkflowForFunction(func: *mut BNFunction) -> *mut BNWorkflow;
18984}
18985unsafe extern "C" {
18986    pub fn BNPostWorkflowRequestForFunction(
18987        func: *mut BNFunction,
18988        request: *const ::std::os::raw::c_char,
18989    ) -> *mut ::std::os::raw::c_char;
18990}
18991unsafe extern "C" {
18992    pub fn BNGetWorkflowGraphForFunction(
18993        func: *mut BNFunction,
18994        name: *const ::std::os::raw::c_char,
18995        sequential: bool,
18996    ) -> *mut BNFlowGraph;
18997}
18998unsafe extern "C" {
18999    pub fn BNShowWorkflowReportForFunction(
19000        func: *mut BNFunction,
19001        name: *const ::std::os::raw::c_char,
19002    );
19003}
19004unsafe extern "C" {
19005    #[doc = " Provenance"]
19006    pub fn BNGetProvenanceString(func: *mut BNFunction) -> *mut ::std::os::raw::c_char;
19007}
19008unsafe extern "C" {
19009    #[doc = " Disassembly settings"]
19010    pub fn BNCreateDisassemblySettings() -> *mut BNDisassemblySettings;
19011}
19012unsafe extern "C" {
19013    pub fn BNDefaultDisassemblySettings() -> *mut BNDisassemblySettings;
19014}
19015unsafe extern "C" {
19016    pub fn BNDefaultGraphDisassemblySettings() -> *mut BNDisassemblySettings;
19017}
19018unsafe extern "C" {
19019    pub fn BNDefaultLinearDisassemblySettings() -> *mut BNDisassemblySettings;
19020}
19021unsafe extern "C" {
19022    pub fn BNNewDisassemblySettingsReference(
19023        settings: *mut BNDisassemblySettings,
19024    ) -> *mut BNDisassemblySettings;
19025}
19026unsafe extern "C" {
19027    pub fn BNDuplicateDisassemblySettings(
19028        settings: *mut BNDisassemblySettings,
19029    ) -> *mut BNDisassemblySettings;
19030}
19031unsafe extern "C" {
19032    pub fn BNFreeDisassemblySettings(settings: *mut BNDisassemblySettings);
19033}
19034unsafe extern "C" {
19035    pub fn BNIsDisassemblySettingsOptionSet(
19036        settings: *mut BNDisassemblySettings,
19037        option: BNDisassemblyOption,
19038    ) -> bool;
19039}
19040unsafe extern "C" {
19041    pub fn BNSetDisassemblySettingsOption(
19042        settings: *mut BNDisassemblySettings,
19043        option: BNDisassemblyOption,
19044        state: bool,
19045    );
19046}
19047unsafe extern "C" {
19048    pub fn BNGetDisassemblyWidth(settings: *mut BNDisassemblySettings) -> usize;
19049}
19050unsafe extern "C" {
19051    pub fn BNSetDisassemblyWidth(settings: *mut BNDisassemblySettings, width: usize);
19052}
19053unsafe extern "C" {
19054    pub fn BNGetDisassemblyMaximumSymbolWidth(settings: *mut BNDisassemblySettings) -> usize;
19055}
19056unsafe extern "C" {
19057    pub fn BNSetDisassemblyMaximumSymbolWidth(settings: *mut BNDisassemblySettings, width: usize);
19058}
19059unsafe extern "C" {
19060    pub fn BNGetDisassemblyGutterWidth(settings: *mut BNDisassemblySettings) -> usize;
19061}
19062unsafe extern "C" {
19063    pub fn BNSetDisassemblyGutterWidth(settings: *mut BNDisassemblySettings, width: usize);
19064}
19065unsafe extern "C" {
19066    pub fn BNGetDisassemblyAddressMode(
19067        settings: *mut BNDisassemblySettings,
19068    ) -> BNDisassemblyAddressMode;
19069}
19070unsafe extern "C" {
19071    pub fn BNSetDisassemblyAddressMode(
19072        settings: *mut BNDisassemblySettings,
19073        mode: BNDisassemblyAddressMode,
19074    );
19075}
19076unsafe extern "C" {
19077    pub fn BNGetDisassemblyAddressBaseOffset(settings: *mut BNDisassemblySettings) -> u64;
19078}
19079unsafe extern "C" {
19080    pub fn BNSetDisassemblyAddressBaseOffset(
19081        settings: *mut BNDisassemblySettings,
19082        addressBaseOffset: u64,
19083    );
19084}
19085unsafe extern "C" {
19086    pub fn BNGetDisassemblyCallParameterHints(
19087        settings: *mut BNDisassemblySettings,
19088    ) -> BNDisassemblyCallParameterHints;
19089}
19090unsafe extern "C" {
19091    pub fn BNSetDisassemblyCallParameterHints(
19092        settings: *mut BNDisassemblySettings,
19093        hints: BNDisassemblyCallParameterHints,
19094    );
19095}
19096unsafe extern "C" {
19097    pub fn BNGetDisassemblyBlockLabels(
19098        settings: *mut BNDisassemblySettings,
19099    ) -> BNDisassemblyBlockLabels;
19100}
19101unsafe extern "C" {
19102    pub fn BNSetDisassemblyBlockLabels(
19103        settings: *mut BNDisassemblySettings,
19104        labels: BNDisassemblyBlockLabels,
19105    );
19106}
19107unsafe extern "C" {
19108    #[doc = " Flow graphs"]
19109    pub fn BNCreateFlowGraph() -> *mut BNFlowGraph;
19110}
19111unsafe extern "C" {
19112    pub fn BNCreateFunctionGraph(
19113        func: *mut BNFunction,
19114        type_: BNFunctionViewType,
19115        settings: *mut BNDisassemblySettings,
19116    ) -> *mut BNFlowGraph;
19117}
19118unsafe extern "C" {
19119    pub fn BNCreateLowLevelILFunctionGraph(
19120        func: *mut BNLowLevelILFunction,
19121        settings: *mut BNDisassemblySettings,
19122    ) -> *mut BNFlowGraph;
19123}
19124unsafe extern "C" {
19125    pub fn BNCreateMediumLevelILFunctionGraph(
19126        func: *mut BNMediumLevelILFunction,
19127        settings: *mut BNDisassemblySettings,
19128    ) -> *mut BNFlowGraph;
19129}
19130unsafe extern "C" {
19131    pub fn BNCreateHighLevelILFunctionGraph(
19132        func: *mut BNHighLevelILFunction,
19133        settings: *mut BNDisassemblySettings,
19134    ) -> *mut BNFlowGraph;
19135}
19136unsafe extern "C" {
19137    pub fn BNCreateImmediateFunctionGraph(
19138        func: *mut BNFunction,
19139        type_: BNFunctionViewType,
19140        settings: *mut BNDisassemblySettings,
19141    ) -> *mut BNFlowGraph;
19142}
19143unsafe extern "C" {
19144    pub fn BNCreateLowLevelILImmediateFunctionGraph(
19145        func: *mut BNLowLevelILFunction,
19146        settings: *mut BNDisassemblySettings,
19147    ) -> *mut BNFlowGraph;
19148}
19149unsafe extern "C" {
19150    pub fn BNCreateMediumLevelILImmediateFunctionGraph(
19151        func: *mut BNMediumLevelILFunction,
19152        settings: *mut BNDisassemblySettings,
19153    ) -> *mut BNFlowGraph;
19154}
19155unsafe extern "C" {
19156    pub fn BNCreateHighLevelILImmediateFunctionGraph(
19157        func: *mut BNHighLevelILFunction,
19158        settings: *mut BNDisassemblySettings,
19159    ) -> *mut BNFlowGraph;
19160}
19161unsafe extern "C" {
19162    pub fn BNCreateCustomFlowGraph(callbacks: *mut BNCustomFlowGraph) -> *mut BNFlowGraph;
19163}
19164unsafe extern "C" {
19165    pub fn BNNewFlowGraphReference(graph: *mut BNFlowGraph) -> *mut BNFlowGraph;
19166}
19167unsafe extern "C" {
19168    pub fn BNFreeFlowGraph(graph: *mut BNFlowGraph);
19169}
19170unsafe extern "C" {
19171    pub fn BNGetFunctionForFlowGraph(graph: *mut BNFlowGraph) -> *mut BNFunction;
19172}
19173unsafe extern "C" {
19174    pub fn BNSetFunctionForFlowGraph(graph: *mut BNFlowGraph, func: *mut BNFunction);
19175}
19176unsafe extern "C" {
19177    pub fn BNGetViewForFlowGraph(graph: *mut BNFlowGraph) -> *mut BNBinaryView;
19178}
19179unsafe extern "C" {
19180    pub fn BNSetViewForFlowGraph(graph: *mut BNFlowGraph, view: *mut BNBinaryView);
19181}
19182unsafe extern "C" {
19183    pub fn BNGetHorizontalFlowGraphNodeMargin(graph: *mut BNFlowGraph) -> ::std::os::raw::c_int;
19184}
19185unsafe extern "C" {
19186    pub fn BNGetVerticalFlowGraphNodeMargin(graph: *mut BNFlowGraph) -> ::std::os::raw::c_int;
19187}
19188unsafe extern "C" {
19189    pub fn BNSetFlowGraphNodeMargins(
19190        graph: *mut BNFlowGraph,
19191        horiz: ::std::os::raw::c_int,
19192        vert: ::std::os::raw::c_int,
19193    );
19194}
19195unsafe extern "C" {
19196    pub fn BNStartFlowGraphLayout(
19197        graph: *mut BNFlowGraph,
19198        ctxt: *mut ::std::os::raw::c_void,
19199        func: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
19200    ) -> *mut BNFlowGraphLayoutRequest;
19201}
19202unsafe extern "C" {
19203    pub fn BNIsFlowGraphLayoutComplete(graph: *mut BNFlowGraph) -> bool;
19204}
19205unsafe extern "C" {
19206    pub fn BNNewFlowGraphLayoutRequestReference(
19207        layout: *mut BNFlowGraphLayoutRequest,
19208    ) -> *mut BNFlowGraphLayoutRequest;
19209}
19210unsafe extern "C" {
19211    pub fn BNFreeFlowGraphLayoutRequest(layout: *mut BNFlowGraphLayoutRequest);
19212}
19213unsafe extern "C" {
19214    pub fn BNIsFlowGraphLayoutRequestComplete(layout: *mut BNFlowGraphLayoutRequest) -> bool;
19215}
19216unsafe extern "C" {
19217    pub fn BNGetGraphForFlowGraphLayoutRequest(
19218        layout: *mut BNFlowGraphLayoutRequest,
19219    ) -> *mut BNFlowGraph;
19220}
19221unsafe extern "C" {
19222    pub fn BNAbortFlowGraphLayoutRequest(graph: *mut BNFlowGraphLayoutRequest);
19223}
19224unsafe extern "C" {
19225    pub fn BNIsILFlowGraph(graph: *mut BNFlowGraph) -> bool;
19226}
19227unsafe extern "C" {
19228    pub fn BNIsLowLevelILFlowGraph(graph: *mut BNFlowGraph) -> bool;
19229}
19230unsafe extern "C" {
19231    pub fn BNIsMediumLevelILFlowGraph(graph: *mut BNFlowGraph) -> bool;
19232}
19233unsafe extern "C" {
19234    pub fn BNIsHighLevelILFlowGraph(graph: *mut BNFlowGraph) -> bool;
19235}
19236unsafe extern "C" {
19237    pub fn BNGetFlowGraphLowLevelILFunction(graph: *mut BNFlowGraph) -> *mut BNLowLevelILFunction;
19238}
19239unsafe extern "C" {
19240    pub fn BNGetFlowGraphMediumLevelILFunction(
19241        graph: *mut BNFlowGraph,
19242    ) -> *mut BNMediumLevelILFunction;
19243}
19244unsafe extern "C" {
19245    pub fn BNGetFlowGraphHighLevelILFunction(graph: *mut BNFlowGraph)
19246    -> *mut BNHighLevelILFunction;
19247}
19248unsafe extern "C" {
19249    pub fn BNSetFlowGraphLowLevelILFunction(
19250        graph: *mut BNFlowGraph,
19251        func: *mut BNLowLevelILFunction,
19252    );
19253}
19254unsafe extern "C" {
19255    pub fn BNSetFlowGraphMediumLevelILFunction(
19256        graph: *mut BNFlowGraph,
19257        func: *mut BNMediumLevelILFunction,
19258    );
19259}
19260unsafe extern "C" {
19261    pub fn BNSetFlowGraphHighLevelILFunction(
19262        graph: *mut BNFlowGraph,
19263        func: *mut BNHighLevelILFunction,
19264    );
19265}
19266unsafe extern "C" {
19267    pub fn BNGetFlowGraphNodes(
19268        graph: *mut BNFlowGraph,
19269        count: *mut usize,
19270    ) -> *mut *mut BNFlowGraphNode;
19271}
19272unsafe extern "C" {
19273    pub fn BNGetFlowGraphNode(graph: *mut BNFlowGraph, i: usize) -> *mut BNFlowGraphNode;
19274}
19275unsafe extern "C" {
19276    pub fn BNGetFlowGraphNodesInRegion(
19277        graph: *mut BNFlowGraph,
19278        left: ::std::os::raw::c_int,
19279        top: ::std::os::raw::c_int,
19280        right: ::std::os::raw::c_int,
19281        bottom: ::std::os::raw::c_int,
19282        count: *mut usize,
19283    ) -> *mut *mut BNFlowGraphNode;
19284}
19285unsafe extern "C" {
19286    pub fn BNFreeFlowGraphNodeList(nodes: *mut *mut BNFlowGraphNode, count: usize);
19287}
19288unsafe extern "C" {
19289    pub fn BNGetFlowGraphNodeCount(graph: *mut BNFlowGraph) -> usize;
19290}
19291unsafe extern "C" {
19292    pub fn BNFlowGraphHasNodes(graph: *mut BNFlowGraph) -> bool;
19293}
19294unsafe extern "C" {
19295    pub fn BNAddFlowGraphNode(graph: *mut BNFlowGraph, node: *mut BNFlowGraphNode) -> usize;
19296}
19297unsafe extern "C" {
19298    pub fn BNReplaceFlowGraphNode(graph: *mut BNFlowGraph, i: usize, newNode: *mut BNFlowGraphNode);
19299}
19300unsafe extern "C" {
19301    pub fn BNClearFlowGraphNodes(graph: *mut BNFlowGraph);
19302}
19303unsafe extern "C" {
19304    pub fn BNGetFlowGraphWidth(graph: *mut BNFlowGraph) -> ::std::os::raw::c_int;
19305}
19306unsafe extern "C" {
19307    pub fn BNGetFlowGraphHeight(graph: *mut BNFlowGraph) -> ::std::os::raw::c_int;
19308}
19309unsafe extern "C" {
19310    pub fn BNFlowGraphSetWidth(graph: *mut BNFlowGraph, width: ::std::os::raw::c_int);
19311}
19312unsafe extern "C" {
19313    pub fn BNFlowGraphSetHeight(graph: *mut BNFlowGraph, height: ::std::os::raw::c_int);
19314}
19315unsafe extern "C" {
19316    pub fn BNGetFlowGraphRenderLayers(
19317        graph: *mut BNFlowGraph,
19318        count: *mut usize,
19319    ) -> *mut *mut BNRenderLayer;
19320}
19321unsafe extern "C" {
19322    pub fn BNAddFlowGraphRenderLayer(graph: *mut BNFlowGraph, layer: *mut BNRenderLayer);
19323}
19324unsafe extern "C" {
19325    pub fn BNRemoveFlowGraphRenderLayer(graph: *mut BNFlowGraph, layer: *mut BNRenderLayer);
19326}
19327unsafe extern "C" {
19328    pub fn BNCreateFlowGraphNode(graph: *mut BNFlowGraph) -> *mut BNFlowGraphNode;
19329}
19330unsafe extern "C" {
19331    pub fn BNNewFlowGraphNodeReference(node: *mut BNFlowGraphNode) -> *mut BNFlowGraphNode;
19332}
19333unsafe extern "C" {
19334    pub fn BNFreeFlowGraphNode(node: *mut BNFlowGraphNode);
19335}
19336unsafe extern "C" {
19337    pub fn BNGetFlowGraphNodeOwner(node: *mut BNFlowGraphNode) -> *mut BNFlowGraph;
19338}
19339unsafe extern "C" {
19340    pub fn BNGetFlowGraphBasicBlock(node: *mut BNFlowGraphNode) -> *mut BNBasicBlock;
19341}
19342unsafe extern "C" {
19343    pub fn BNSetFlowGraphBasicBlock(node: *mut BNFlowGraphNode, block: *mut BNBasicBlock);
19344}
19345unsafe extern "C" {
19346    pub fn BNFlowGraphNodeSetX(node: *mut BNFlowGraphNode, x: ::std::os::raw::c_int);
19347}
19348unsafe extern "C" {
19349    pub fn BNFlowGraphNodeSetY(node: *mut BNFlowGraphNode, y: ::std::os::raw::c_int);
19350}
19351unsafe extern "C" {
19352    pub fn BNGetFlowGraphNodeX(node: *mut BNFlowGraphNode) -> ::std::os::raw::c_int;
19353}
19354unsafe extern "C" {
19355    pub fn BNGetFlowGraphNodeY(node: *mut BNFlowGraphNode) -> ::std::os::raw::c_int;
19356}
19357unsafe extern "C" {
19358    pub fn BNGetFlowGraphNodeWidth(node: *mut BNFlowGraphNode) -> ::std::os::raw::c_int;
19359}
19360unsafe extern "C" {
19361    pub fn BNGetFlowGraphNodeHeight(node: *mut BNFlowGraphNode) -> ::std::os::raw::c_int;
19362}
19363unsafe extern "C" {
19364    pub fn BNGetFlowGraphNodeLines(
19365        node: *mut BNFlowGraphNode,
19366        count: *mut usize,
19367    ) -> *mut BNDisassemblyTextLine;
19368}
19369unsafe extern "C" {
19370    pub fn BNSetFlowGraphNodeLines(
19371        node: *mut BNFlowGraphNode,
19372        lines: *mut BNDisassemblyTextLine,
19373        count: usize,
19374    );
19375}
19376unsafe extern "C" {
19377    pub fn BNGetFlowGraphNodeOutgoingEdges(
19378        node: *mut BNFlowGraphNode,
19379        count: *mut usize,
19380    ) -> *mut BNFlowGraphEdge;
19381}
19382unsafe extern "C" {
19383    pub fn BNGetFlowGraphNodeIncomingEdges(
19384        node: *mut BNFlowGraphNode,
19385        count: *mut usize,
19386    ) -> *mut BNFlowGraphEdge;
19387}
19388unsafe extern "C" {
19389    pub fn BNFreeFlowGraphNodeEdgeList(edges: *mut BNFlowGraphEdge, count: usize);
19390}
19391unsafe extern "C" {
19392    pub fn BNAddFlowGraphNodeOutgoingEdge(
19393        node: *mut BNFlowGraphNode,
19394        type_: BNBranchType,
19395        target: *mut BNFlowGraphNode,
19396        edgeStyle: BNEdgeStyle,
19397    );
19398}
19399unsafe extern "C" {
19400    pub fn BNGetFlowGraphNodeHighlight(node: *mut BNFlowGraphNode) -> BNHighlightColor;
19401}
19402unsafe extern "C" {
19403    pub fn BNSetFlowGraphNodeHighlight(node: *mut BNFlowGraphNode, color: BNHighlightColor);
19404}
19405unsafe extern "C" {
19406    pub fn BNFinishPrepareForLayout(graph: *mut BNFlowGraph);
19407}
19408unsafe extern "C" {
19409    pub fn BNFlowGraphUpdateQueryMode(graph: *mut BNFlowGraph) -> bool;
19410}
19411unsafe extern "C" {
19412    pub fn BNFlowGraphHasUpdates(graph: *mut BNFlowGraph) -> bool;
19413}
19414unsafe extern "C" {
19415    pub fn BNUpdateFlowGraph(graph: *mut BNFlowGraph) -> *mut BNFlowGraph;
19416}
19417unsafe extern "C" {
19418    pub fn BNSetFlowGraphOption(graph: *mut BNFlowGraph, option: BNFlowGraphOption, value: bool);
19419}
19420unsafe extern "C" {
19421    pub fn BNIsFlowGraphOptionSet(graph: *mut BNFlowGraph, option: BNFlowGraphOption) -> bool;
19422}
19423unsafe extern "C" {
19424    pub fn BNIsNodeValidForFlowGraph(graph: *mut BNFlowGraph, node: *mut BNFlowGraphNode) -> bool;
19425}
19426unsafe extern "C" {
19427    pub fn BNFlowGraphNodeSetVisibilityRegion(
19428        node: *mut BNFlowGraphNode,
19429        x: ::std::os::raw::c_int,
19430        y: ::std::os::raw::c_int,
19431        w: ::std::os::raw::c_int,
19432        h: ::std::os::raw::c_int,
19433    );
19434}
19435unsafe extern "C" {
19436    pub fn BNFlowGraphNodeSetOutgoingEdgePoints(
19437        node: *mut BNFlowGraphNode,
19438        edgeNum: usize,
19439        points: *mut BNPoint,
19440        pointCount: usize,
19441    );
19442}
19443unsafe extern "C" {
19444    pub fn BNGetFlowGraphLayouts(count: *mut usize) -> *mut *mut BNFlowGraphLayout;
19445}
19446unsafe extern "C" {
19447    pub fn BNFreeFlowGraphLayoutList(layouts: *mut *mut BNFlowGraphLayout);
19448}
19449unsafe extern "C" {
19450    pub fn BNRegisterFlowGraphLayout(
19451        name: *const ::std::os::raw::c_char,
19452        callbacks: *mut BNCustomFlowGraphLayout,
19453    ) -> *mut BNFlowGraphLayout;
19454}
19455unsafe extern "C" {
19456    pub fn BNGetFlowGraphLayoutByName(
19457        name: *const ::std::os::raw::c_char,
19458    ) -> *mut BNFlowGraphLayout;
19459}
19460unsafe extern "C" {
19461    pub fn BNGetFlowGraphLayoutName(layout: *mut BNFlowGraphLayout) -> *mut ::std::os::raw::c_char;
19462}
19463unsafe extern "C" {
19464    pub fn BNFlowGraphLayoutLayout(
19465        layout: *mut BNFlowGraphLayout,
19466        graph: *mut BNFlowGraph,
19467        nodes: *mut *mut BNFlowGraphNode,
19468        nodeCount: usize,
19469    ) -> bool;
19470}
19471unsafe extern "C" {
19472    #[doc = " Symbols"]
19473    pub fn BNCreateSymbol(
19474        type_: BNSymbolType,
19475        shortName: *const ::std::os::raw::c_char,
19476        fullName: *const ::std::os::raw::c_char,
19477        rawName: *const ::std::os::raw::c_char,
19478        addr: u64,
19479        binding: BNSymbolBinding,
19480        nameSpace: *const BNNameSpace,
19481        ordinal: u64,
19482    ) -> *mut BNSymbol;
19483}
19484unsafe extern "C" {
19485    pub fn BNNewSymbolReference(sym: *mut BNSymbol) -> *mut BNSymbol;
19486}
19487unsafe extern "C" {
19488    pub fn BNFreeSymbol(sym: *mut BNSymbol);
19489}
19490unsafe extern "C" {
19491    pub fn BNGetSymbolType(sym: *mut BNSymbol) -> BNSymbolType;
19492}
19493unsafe extern "C" {
19494    pub fn BNGetSymbolBinding(sym: *mut BNSymbol) -> BNSymbolBinding;
19495}
19496unsafe extern "C" {
19497    pub fn BNGetSymbolNameSpace(sym: *mut BNSymbol) -> BNNameSpace;
19498}
19499unsafe extern "C" {
19500    pub fn BNGetSymbolShortName(sym: *mut BNSymbol) -> *mut ::std::os::raw::c_char;
19501}
19502unsafe extern "C" {
19503    pub fn BNGetSymbolShortNameRef(sym: *mut BNSymbol) -> *mut BNStringRef;
19504}
19505unsafe extern "C" {
19506    pub fn BNGetSymbolFullName(sym: *mut BNSymbol) -> *mut ::std::os::raw::c_char;
19507}
19508unsafe extern "C" {
19509    pub fn BNGetSymbolFullNameRef(sym: *mut BNSymbol) -> *mut BNStringRef;
19510}
19511unsafe extern "C" {
19512    pub fn BNGetSymbolRawName(sym: *mut BNSymbol) -> *mut ::std::os::raw::c_char;
19513}
19514unsafe extern "C" {
19515    pub fn BNGetSymbolRawNameRef(sym: *mut BNSymbol) -> *mut BNStringRef;
19516}
19517unsafe extern "C" {
19518    pub fn BNGetSymbolRawBytes(
19519        sym: *mut BNSymbol,
19520        count: *mut usize,
19521    ) -> *mut ::std::os::raw::c_void;
19522}
19523unsafe extern "C" {
19524    pub fn BNFreeSymbolRawBytes(bytes: *mut ::std::os::raw::c_void);
19525}
19526unsafe extern "C" {
19527    pub fn BNGetSymbolAddress(sym: *mut BNSymbol) -> u64;
19528}
19529unsafe extern "C" {
19530    pub fn BNGetSymbolOrdinal(sym: *mut BNSymbol) -> u64;
19531}
19532unsafe extern "C" {
19533    pub fn BNIsSymbolAutoDefined(sym: *mut BNSymbol) -> bool;
19534}
19535unsafe extern "C" {
19536    pub fn BNGetSymbolByAddress(
19537        view: *mut BNBinaryView,
19538        addr: u64,
19539        nameSpace: *const BNNameSpace,
19540    ) -> *mut BNSymbol;
19541}
19542unsafe extern "C" {
19543    pub fn BNGetSymbolByRawName(
19544        view: *mut BNBinaryView,
19545        name: *const ::std::os::raw::c_char,
19546        nameSpace: *const BNNameSpace,
19547    ) -> *mut BNSymbol;
19548}
19549unsafe extern "C" {
19550    pub fn BNGetSymbolsByName(
19551        view: *mut BNBinaryView,
19552        name: *const ::std::os::raw::c_char,
19553        count: *mut usize,
19554        nameSpace: *const BNNameSpace,
19555    ) -> *mut *mut BNSymbol;
19556}
19557unsafe extern "C" {
19558    pub fn BNGetSymbolsByRawName(
19559        view: *mut BNBinaryView,
19560        name: *const ::std::os::raw::c_char,
19561        count: *mut usize,
19562        nameSpace: *const BNNameSpace,
19563    ) -> *mut *mut BNSymbol;
19564}
19565unsafe extern "C" {
19566    pub fn BNGetSymbols(
19567        view: *mut BNBinaryView,
19568        count: *mut usize,
19569        nameSpace: *const BNNameSpace,
19570    ) -> *mut *mut BNSymbol;
19571}
19572unsafe extern "C" {
19573    pub fn BNGetSymbolsInRange(
19574        view: *mut BNBinaryView,
19575        start: u64,
19576        len: u64,
19577        count: *mut usize,
19578        nameSpace: *const BNNameSpace,
19579    ) -> *mut *mut BNSymbol;
19580}
19581unsafe extern "C" {
19582    pub fn BNGetSymbolsOfType(
19583        view: *mut BNBinaryView,
19584        type_: BNSymbolType,
19585        count: *mut usize,
19586        nameSpace: *const BNNameSpace,
19587    ) -> *mut *mut BNSymbol;
19588}
19589unsafe extern "C" {
19590    pub fn BNGetSymbolsOfTypeInRange(
19591        view: *mut BNBinaryView,
19592        type_: BNSymbolType,
19593        start: u64,
19594        len: u64,
19595        count: *mut usize,
19596        nameSpace: *const BNNameSpace,
19597    ) -> *mut *mut BNSymbol;
19598}
19599unsafe extern "C" {
19600    pub fn BNFreeSymbolList(syms: *mut *mut BNSymbol, count: usize);
19601}
19602unsafe extern "C" {
19603    pub fn BNGetVisibleSymbols(
19604        view: *mut BNBinaryView,
19605        count: *mut usize,
19606        nameSpace: *const BNNameSpace,
19607    ) -> *mut *mut BNSymbol;
19608}
19609unsafe extern "C" {
19610    pub fn BNDefineAutoSymbol(view: *mut BNBinaryView, sym: *mut BNSymbol);
19611}
19612unsafe extern "C" {
19613    pub fn BNUndefineAutoSymbol(view: *mut BNBinaryView, sym: *mut BNSymbol);
19614}
19615unsafe extern "C" {
19616    pub fn BNDefineUserSymbol(view: *mut BNBinaryView, sym: *mut BNSymbol);
19617}
19618unsafe extern "C" {
19619    pub fn BNUndefineUserSymbol(view: *mut BNBinaryView, sym: *mut BNSymbol);
19620}
19621unsafe extern "C" {
19622    pub fn BNDefineImportedFunction(
19623        view: *mut BNBinaryView,
19624        importAddressSym: *mut BNSymbol,
19625        func: *mut BNFunction,
19626        type_: *mut BNType,
19627    );
19628}
19629unsafe extern "C" {
19630    pub fn BNDefineAutoSymbolAndVariableOrFunction(
19631        view: *mut BNBinaryView,
19632        platform: *mut BNPlatform,
19633        sym: *mut BNSymbol,
19634        type_: *mut BNTypeWithConfidence,
19635    ) -> *mut BNSymbol;
19636}
19637unsafe extern "C" {
19638    pub fn BNBeginBulkModifySymbols(view: *mut BNBinaryView);
19639}
19640unsafe extern "C" {
19641    pub fn BNEndBulkModifySymbols(view: *mut BNBinaryView);
19642}
19643unsafe extern "C" {
19644    pub fn BNGetDebugInfo(view: *mut BNBinaryView) -> *mut BNDebugInfo;
19645}
19646unsafe extern "C" {
19647    pub fn BNApplyDebugInfo(view: *mut BNBinaryView, newDebugInfo: *mut BNDebugInfo);
19648}
19649unsafe extern "C" {
19650    pub fn BNSetDebugInfo(view: *mut BNBinaryView, newDebugInfo: *mut BNDebugInfo);
19651}
19652unsafe extern "C" {
19653    pub fn BNIsApplyingDebugInfo(view: *mut BNBinaryView) -> bool;
19654}
19655unsafe extern "C" {
19656    pub fn BNImportedFunctionFromImportAddressSymbol(
19657        sym: *mut BNSymbol,
19658        addr: u64,
19659    ) -> *mut BNSymbol;
19660}
19661unsafe extern "C" {
19662    #[doc = " Low-level IL"]
19663    pub fn BNCreateLowLevelILFunction(
19664        arch: *mut BNArchitecture,
19665        func: *mut BNFunction,
19666    ) -> *mut BNLowLevelILFunction;
19667}
19668unsafe extern "C" {
19669    pub fn BNNewLowLevelILFunctionReference(
19670        func: *mut BNLowLevelILFunction,
19671    ) -> *mut BNLowLevelILFunction;
19672}
19673unsafe extern "C" {
19674    pub fn BNFreeLowLevelILFunction(func: *mut BNLowLevelILFunction);
19675}
19676unsafe extern "C" {
19677    pub fn BNGetLowLevelILOwnerFunction(func: *mut BNLowLevelILFunction) -> *mut BNFunction;
19678}
19679unsafe extern "C" {
19680    pub fn BNLowLevelILGetCurrentAddress(func: *mut BNLowLevelILFunction) -> u64;
19681}
19682unsafe extern "C" {
19683    pub fn BNLowLevelILSetCurrentAddress(
19684        func: *mut BNLowLevelILFunction,
19685        arch: *mut BNArchitecture,
19686        addr: u64,
19687    );
19688}
19689unsafe extern "C" {
19690    pub fn BNLowLevelILSetCurrentSourceBlock(
19691        func: *mut BNLowLevelILFunction,
19692        source: *mut BNBasicBlock,
19693    );
19694}
19695unsafe extern "C" {
19696    pub fn BNLowLevelILGetInstructionStart(
19697        func: *mut BNLowLevelILFunction,
19698        arch: *mut BNArchitecture,
19699        addr: u64,
19700    ) -> usize;
19701}
19702unsafe extern "C" {
19703    pub fn BNLowLevelILGetInstructionsAt(
19704        func: *mut BNLowLevelILFunction,
19705        arch: *mut BNArchitecture,
19706        addr: u64,
19707        count: *mut usize,
19708    ) -> *mut usize;
19709}
19710unsafe extern "C" {
19711    pub fn BNLowLevelILGetExitsForInstruction(
19712        func: *mut BNLowLevelILFunction,
19713        instr: usize,
19714        count: *mut usize,
19715    ) -> *mut usize;
19716}
19717unsafe extern "C" {
19718    pub fn BNLowLevelILClearIndirectBranches(func: *mut BNLowLevelILFunction);
19719}
19720unsafe extern "C" {
19721    pub fn BNLowLevelILSetIndirectBranches(
19722        func: *mut BNLowLevelILFunction,
19723        branches: *mut BNArchitectureAndAddress,
19724        count: usize,
19725    );
19726}
19727unsafe extern "C" {
19728    pub fn BNLowLevelILAddExpr(
19729        func: *mut BNLowLevelILFunction,
19730        operation: BNLowLevelILOperation,
19731        size: usize,
19732        flags: u32,
19733        a: u64,
19734        b: u64,
19735        c: u64,
19736        d: u64,
19737    ) -> usize;
19738}
19739unsafe extern "C" {
19740    pub fn BNLowLevelILAddExprWithLocation(
19741        func: *mut BNLowLevelILFunction,
19742        addr: u64,
19743        sourceOperand: u32,
19744        operation: BNLowLevelILOperation,
19745        size: usize,
19746        flags: u32,
19747        a: u64,
19748        b: u64,
19749        c: u64,
19750        d: u64,
19751    ) -> usize;
19752}
19753unsafe extern "C" {
19754    pub fn BNLowLevelILSetExprSourceOperand(
19755        func: *mut BNLowLevelILFunction,
19756        expr: usize,
19757        operand: u32,
19758    );
19759}
19760unsafe extern "C" {
19761    pub fn BNLowLevelILAddInstruction(func: *mut BNLowLevelILFunction, expr: usize) -> usize;
19762}
19763unsafe extern "C" {
19764    pub fn BNLowLevelILGoto(
19765        func: *mut BNLowLevelILFunction,
19766        label: *mut BNLowLevelILLabel,
19767    ) -> usize;
19768}
19769unsafe extern "C" {
19770    pub fn BNLowLevelILGotoWithLocation(
19771        func: *mut BNLowLevelILFunction,
19772        label: *mut BNLowLevelILLabel,
19773        addr: u64,
19774        sourceOperand: u32,
19775    ) -> usize;
19776}
19777unsafe extern "C" {
19778    pub fn BNLowLevelILIf(
19779        func: *mut BNLowLevelILFunction,
19780        op: u64,
19781        t: *mut BNLowLevelILLabel,
19782        f: *mut BNLowLevelILLabel,
19783    ) -> usize;
19784}
19785unsafe extern "C" {
19786    pub fn BNLowLevelILIfWithLocation(
19787        func: *mut BNLowLevelILFunction,
19788        op: u64,
19789        t: *mut BNLowLevelILLabel,
19790        f: *mut BNLowLevelILLabel,
19791        addr: u64,
19792        sourceOperand: u32,
19793    ) -> usize;
19794}
19795unsafe extern "C" {
19796    pub fn BNLowLevelILInitLabel(label: *mut BNLowLevelILLabel);
19797}
19798unsafe extern "C" {
19799    pub fn BNLowLevelILMarkLabel(func: *mut BNLowLevelILFunction, label: *mut BNLowLevelILLabel);
19800}
19801unsafe extern "C" {
19802    pub fn BNFinalizeLowLevelILFunction(func: *mut BNLowLevelILFunction);
19803}
19804unsafe extern "C" {
19805    pub fn BNGenerateLowLevelILSSAForm(func: *mut BNLowLevelILFunction);
19806}
19807unsafe extern "C" {
19808    pub fn BNLowLevelILFunctionHasIndirectBranches(func: *mut BNLowLevelILFunction) -> bool;
19809}
19810unsafe extern "C" {
19811    pub fn BNPrepareToCopyLowLevelILFunction(
19812        func: *mut BNLowLevelILFunction,
19813        src: *mut BNLowLevelILFunction,
19814    );
19815}
19816unsafe extern "C" {
19817    pub fn BNPrepareToCopyLowLevelILBasicBlock(
19818        func: *mut BNLowLevelILFunction,
19819        block: *mut BNBasicBlock,
19820    );
19821}
19822unsafe extern "C" {
19823    pub fn BNGetLabelForLowLevelILSourceInstruction(
19824        func: *mut BNLowLevelILFunction,
19825        instr: usize,
19826    ) -> *mut BNLowLevelILLabel;
19827}
19828unsafe extern "C" {
19829    pub fn BNPrepareToCopyForeignFunction(
19830        dst: *mut BNLowLevelILFunction,
19831        src: *mut BNLowLevelILFunction,
19832        count: *mut usize,
19833    ) -> *mut *mut BNBasicBlock;
19834}
19835unsafe extern "C" {
19836    pub fn BNLowLevelILAddLabelMap(
19837        func: *mut BNLowLevelILFunction,
19838        values: *mut u64,
19839        labels: *mut *mut BNLowLevelILLabel,
19840        count: usize,
19841    ) -> usize;
19842}
19843unsafe extern "C" {
19844    pub fn BNLowLevelILAddOperandList(
19845        func: *mut BNLowLevelILFunction,
19846        operands: *mut u64,
19847        count: usize,
19848    ) -> usize;
19849}
19850unsafe extern "C" {
19851    pub fn BNLowLevelILGetOperandList(
19852        func: *mut BNLowLevelILFunction,
19853        expr: usize,
19854        operand: usize,
19855        count: *mut usize,
19856    ) -> *mut u64;
19857}
19858unsafe extern "C" {
19859    pub fn BNLowLevelILFreeOperandList(operands: *mut u64);
19860}
19861unsafe extern "C" {
19862    pub fn BNLowLevelILGetOperand(func: *mut BNLowLevelILFunction, offset: usize) -> u64;
19863}
19864unsafe extern "C" {
19865    pub fn BNCacheLowLevelILPossibleValueSet(
19866        func: *mut BNLowLevelILFunction,
19867        pvs: *mut BNPossibleValueSet,
19868    ) -> usize;
19869}
19870unsafe extern "C" {
19871    pub fn BNGetCachedLowLevelILPossibleValueSet(
19872        func: *mut BNLowLevelILFunction,
19873        idx: usize,
19874    ) -> BNPossibleValueSet;
19875}
19876unsafe extern "C" {
19877    pub fn BNGetLowLevelILByIndex(
19878        func: *mut BNLowLevelILFunction,
19879        i: usize,
19880    ) -> BNLowLevelILInstruction;
19881}
19882unsafe extern "C" {
19883    pub fn BNGetLowLevelILIndexForInstruction(func: *mut BNLowLevelILFunction, i: usize) -> usize;
19884}
19885unsafe extern "C" {
19886    pub fn BNGetLowLevelILInstructionForExpr(func: *mut BNLowLevelILFunction, expr: usize)
19887    -> usize;
19888}
19889unsafe extern "C" {
19890    pub fn BNGetLowLevelILInstructionCount(func: *mut BNLowLevelILFunction) -> usize;
19891}
19892unsafe extern "C" {
19893    pub fn BNGetLowLevelILExprCount(func: *mut BNLowLevelILFunction) -> usize;
19894}
19895unsafe extern "C" {
19896    pub fn BNUpdateLowLevelILOperand(
19897        func: *mut BNLowLevelILFunction,
19898        instr: usize,
19899        operandIndex: usize,
19900        value: u64,
19901    );
19902}
19903unsafe extern "C" {
19904    pub fn BNReplaceLowLevelILExpr(func: *mut BNLowLevelILFunction, expr: usize, newExpr: usize);
19905}
19906unsafe extern "C" {
19907    pub fn BNSetLowLevelILExprAttributes(
19908        func: *mut BNLowLevelILFunction,
19909        expr: usize,
19910        attributes: u32,
19911    );
19912}
19913unsafe extern "C" {
19914    pub fn BNAddLowLevelILLabelForAddress(
19915        func: *mut BNLowLevelILFunction,
19916        arch: *mut BNArchitecture,
19917        addr: u64,
19918    );
19919}
19920unsafe extern "C" {
19921    pub fn BNGetLowLevelILLabelForAddress(
19922        func: *mut BNLowLevelILFunction,
19923        arch: *mut BNArchitecture,
19924        addr: u64,
19925    ) -> *mut BNLowLevelILLabel;
19926}
19927unsafe extern "C" {
19928    pub fn BNPrepareBlockTranslation(
19929        func: *mut BNLowLevelILFunction,
19930        arch: *mut BNArchitecture,
19931        addr: u64,
19932    );
19933}
19934unsafe extern "C" {
19935    pub fn BNGetLowLevelILExprText(
19936        func: *mut BNLowLevelILFunction,
19937        arch: *mut BNArchitecture,
19938        i: usize,
19939        settings: *mut BNDisassemblySettings,
19940        tokens: *mut *mut BNInstructionTextToken,
19941        count: *mut usize,
19942    ) -> bool;
19943}
19944unsafe extern "C" {
19945    pub fn BNGetLowLevelILInstructionText(
19946        il: *mut BNLowLevelILFunction,
19947        func: *mut BNFunction,
19948        arch: *mut BNArchitecture,
19949        i: usize,
19950        settings: *mut BNDisassemblySettings,
19951        tokens: *mut *mut BNInstructionTextToken,
19952        count: *mut usize,
19953    ) -> bool;
19954}
19955unsafe extern "C" {
19956    pub fn BNGetLowLevelILTemporaryRegisterCount(func: *mut BNLowLevelILFunction) -> u32;
19957}
19958unsafe extern "C" {
19959    pub fn BNGetLowLevelILTemporaryFlagCount(func: *mut BNLowLevelILFunction) -> u32;
19960}
19961unsafe extern "C" {
19962    pub fn BNGetLowLevelILBasicBlockList(
19963        func: *mut BNLowLevelILFunction,
19964        count: *mut usize,
19965    ) -> *mut *mut BNBasicBlock;
19966}
19967unsafe extern "C" {
19968    pub fn BNGetLowLevelILBasicBlockForInstruction(
19969        func: *mut BNLowLevelILFunction,
19970        i: usize,
19971    ) -> *mut BNBasicBlock;
19972}
19973unsafe extern "C" {
19974    pub fn BNGetLowLevelILSSAForm(func: *mut BNLowLevelILFunction) -> *mut BNLowLevelILFunction;
19975}
19976unsafe extern "C" {
19977    pub fn BNGetLowLevelILNonSSAForm(func: *mut BNLowLevelILFunction) -> *mut BNLowLevelILFunction;
19978}
19979unsafe extern "C" {
19980    pub fn BNGetLowLevelILSSAInstructionIndex(
19981        func: *mut BNLowLevelILFunction,
19982        instr: usize,
19983    ) -> usize;
19984}
19985unsafe extern "C" {
19986    pub fn BNGetLowLevelILNonSSAInstructionIndex(
19987        func: *mut BNLowLevelILFunction,
19988        instr: usize,
19989    ) -> usize;
19990}
19991unsafe extern "C" {
19992    pub fn BNGetLowLevelILSSAExprIndex(func: *mut BNLowLevelILFunction, expr: usize) -> usize;
19993}
19994unsafe extern "C" {
19995    pub fn BNGetLowLevelILNonSSAExprIndex(func: *mut BNLowLevelILFunction, expr: usize) -> usize;
19996}
19997unsafe extern "C" {
19998    pub fn BNGetLowLevelILSSARegisterDefinition(
19999        func: *mut BNLowLevelILFunction,
20000        reg: u32,
20001        version: usize,
20002    ) -> usize;
20003}
20004unsafe extern "C" {
20005    pub fn BNGetLowLevelILSSAFlagDefinition(
20006        func: *mut BNLowLevelILFunction,
20007        reg: u32,
20008        version: usize,
20009    ) -> usize;
20010}
20011unsafe extern "C" {
20012    pub fn BNGetLowLevelILSSAMemoryDefinition(
20013        func: *mut BNLowLevelILFunction,
20014        version: usize,
20015    ) -> usize;
20016}
20017unsafe extern "C" {
20018    pub fn BNGetLowLevelILSSARegisterUses(
20019        func: *mut BNLowLevelILFunction,
20020        reg: u32,
20021        version: usize,
20022        count: *mut usize,
20023    ) -> *mut usize;
20024}
20025unsafe extern "C" {
20026    pub fn BNGetLowLevelILSSAFlagUses(
20027        func: *mut BNLowLevelILFunction,
20028        reg: u32,
20029        version: usize,
20030        count: *mut usize,
20031    ) -> *mut usize;
20032}
20033unsafe extern "C" {
20034    pub fn BNGetLowLevelILSSAMemoryUses(
20035        func: *mut BNLowLevelILFunction,
20036        version: usize,
20037        count: *mut usize,
20038    ) -> *mut usize;
20039}
20040unsafe extern "C" {
20041    pub fn BNGetLowLevelILSSARegisterValue(
20042        func: *mut BNLowLevelILFunction,
20043        reg: u32,
20044        version: usize,
20045    ) -> BNRegisterValue;
20046}
20047unsafe extern "C" {
20048    pub fn BNGetLowLevelILSSAFlagValue(
20049        func: *mut BNLowLevelILFunction,
20050        flag: u32,
20051        version: usize,
20052    ) -> BNRegisterValue;
20053}
20054unsafe extern "C" {
20055    pub fn BNGetLowLevelILExprValue(
20056        func: *mut BNLowLevelILFunction,
20057        expr: usize,
20058    ) -> BNRegisterValue;
20059}
20060unsafe extern "C" {
20061    pub fn BNGetLowLevelILPossibleExprValues(
20062        func: *mut BNLowLevelILFunction,
20063        expr: usize,
20064        options: *mut BNDataFlowQueryOption,
20065        optionCount: usize,
20066    ) -> BNPossibleValueSet;
20067}
20068unsafe extern "C" {
20069    pub fn BNGetLowLevelILRegisterValueAtInstruction(
20070        func: *mut BNLowLevelILFunction,
20071        reg: u32,
20072        instr: usize,
20073    ) -> BNRegisterValue;
20074}
20075unsafe extern "C" {
20076    pub fn BNGetLowLevelILRegisterValueAfterInstruction(
20077        func: *mut BNLowLevelILFunction,
20078        reg: u32,
20079        instr: usize,
20080    ) -> BNRegisterValue;
20081}
20082unsafe extern "C" {
20083    pub fn BNGetLowLevelILPossibleRegisterValuesAtInstruction(
20084        func: *mut BNLowLevelILFunction,
20085        reg: u32,
20086        instr: usize,
20087        options: *mut BNDataFlowQueryOption,
20088        optionCount: usize,
20089    ) -> BNPossibleValueSet;
20090}
20091unsafe extern "C" {
20092    pub fn BNGetLowLevelILPossibleRegisterValuesAfterInstruction(
20093        func: *mut BNLowLevelILFunction,
20094        reg: u32,
20095        instr: usize,
20096        options: *mut BNDataFlowQueryOption,
20097        optionCount: usize,
20098    ) -> BNPossibleValueSet;
20099}
20100unsafe extern "C" {
20101    pub fn BNGetLowLevelILFlagValueAtInstruction(
20102        func: *mut BNLowLevelILFunction,
20103        flag: u32,
20104        instr: usize,
20105    ) -> BNRegisterValue;
20106}
20107unsafe extern "C" {
20108    pub fn BNGetLowLevelILFlagValueAfterInstruction(
20109        func: *mut BNLowLevelILFunction,
20110        flag: u32,
20111        instr: usize,
20112    ) -> BNRegisterValue;
20113}
20114unsafe extern "C" {
20115    pub fn BNGetLowLevelILPossibleFlagValuesAtInstruction(
20116        func: *mut BNLowLevelILFunction,
20117        flag: u32,
20118        instr: usize,
20119        options: *mut BNDataFlowQueryOption,
20120        optionCount: usize,
20121    ) -> BNPossibleValueSet;
20122}
20123unsafe extern "C" {
20124    pub fn BNGetLowLevelILPossibleFlagValuesAfterInstruction(
20125        func: *mut BNLowLevelILFunction,
20126        flag: u32,
20127        instr: usize,
20128        options: *mut BNDataFlowQueryOption,
20129        optionCount: usize,
20130    ) -> BNPossibleValueSet;
20131}
20132unsafe extern "C" {
20133    pub fn BNGetLowLevelILStackContentsAtInstruction(
20134        func: *mut BNLowLevelILFunction,
20135        offset: i64,
20136        len: usize,
20137        instr: usize,
20138    ) -> BNRegisterValue;
20139}
20140unsafe extern "C" {
20141    pub fn BNGetLowLevelILStackContentsAfterInstruction(
20142        func: *mut BNLowLevelILFunction,
20143        offset: i64,
20144        len: usize,
20145        instr: usize,
20146    ) -> BNRegisterValue;
20147}
20148unsafe extern "C" {
20149    pub fn BNGetLowLevelILPossibleStackContentsAtInstruction(
20150        func: *mut BNLowLevelILFunction,
20151        offset: i64,
20152        len: usize,
20153        instr: usize,
20154        options: *mut BNDataFlowQueryOption,
20155        optionCount: usize,
20156    ) -> BNPossibleValueSet;
20157}
20158unsafe extern "C" {
20159    pub fn BNGetLowLevelILPossibleStackContentsAfterInstruction(
20160        func: *mut BNLowLevelILFunction,
20161        offset: i64,
20162        len: usize,
20163        instr: usize,
20164        options: *mut BNDataFlowQueryOption,
20165        optionCount: usize,
20166    ) -> BNPossibleValueSet;
20167}
20168unsafe extern "C" {
20169    pub fn BNGetLowLevelRegisters(func: *mut BNLowLevelILFunction, count: *mut usize) -> *mut u32;
20170}
20171unsafe extern "C" {
20172    pub fn BNGetLowLevelRegisterStacks(
20173        func: *mut BNLowLevelILFunction,
20174        count: *mut usize,
20175    ) -> *mut u32;
20176}
20177unsafe extern "C" {
20178    pub fn BNGetLowLevelFlags(func: *mut BNLowLevelILFunction, count: *mut usize) -> *mut u32;
20179}
20180unsafe extern "C" {
20181    pub fn BNGetLowLevelSSARegistersWithoutVersions(
20182        func: *mut BNLowLevelILFunction,
20183        count: *mut usize,
20184    ) -> *mut u32;
20185}
20186unsafe extern "C" {
20187    pub fn BNGetLowLevelSSARegisterStacksWithoutVersions(
20188        func: *mut BNLowLevelILFunction,
20189        count: *mut usize,
20190    ) -> *mut u32;
20191}
20192unsafe extern "C" {
20193    pub fn BNGetLowLevelSSAFlagsWithoutVersions(
20194        func: *mut BNLowLevelILFunction,
20195        count: *mut usize,
20196    ) -> *mut u32;
20197}
20198unsafe extern "C" {
20199    pub fn BNGetLowLevelRegisterSSAVersions(
20200        func: *mut BNLowLevelILFunction,
20201        var: u32,
20202        count: *mut usize,
20203    ) -> *mut usize;
20204}
20205unsafe extern "C" {
20206    pub fn BNGetLowLevelRegisterStackSSAVersions(
20207        func: *mut BNLowLevelILFunction,
20208        var: u32,
20209        count: *mut usize,
20210    ) -> *mut usize;
20211}
20212unsafe extern "C" {
20213    pub fn BNGetLowLevelFlagSSAVersions(
20214        func: *mut BNLowLevelILFunction,
20215        var: u32,
20216        count: *mut usize,
20217    ) -> *mut usize;
20218}
20219unsafe extern "C" {
20220    pub fn BNGetLowLevelMemoryVersions(
20221        func: *mut BNLowLevelILFunction,
20222        count: *mut usize,
20223    ) -> *mut usize;
20224}
20225unsafe extern "C" {
20226    pub fn BNFreeLLILVariablesList(vars: *mut u32);
20227}
20228unsafe extern "C" {
20229    pub fn BNFreeLLILVariableVersionList(versions: *mut usize);
20230}
20231unsafe extern "C" {
20232    pub fn BNGetMediumLevelILForLowLevelIL(
20233        func: *mut BNLowLevelILFunction,
20234    ) -> *mut BNMediumLevelILFunction;
20235}
20236unsafe extern "C" {
20237    pub fn BNGetMappedMediumLevelIL(
20238        func: *mut BNLowLevelILFunction,
20239    ) -> *mut BNMediumLevelILFunction;
20240}
20241unsafe extern "C" {
20242    pub fn BNGetMediumLevelILInstructionIndex(
20243        func: *mut BNLowLevelILFunction,
20244        instr: usize,
20245    ) -> usize;
20246}
20247unsafe extern "C" {
20248    pub fn BNGetMediumLevelILExprIndex(func: *mut BNLowLevelILFunction, expr: usize) -> usize;
20249}
20250unsafe extern "C" {
20251    pub fn BNGetMediumLevelILExprIndexes(
20252        func: *mut BNLowLevelILFunction,
20253        expr: usize,
20254        count: *mut usize,
20255    ) -> *mut usize;
20256}
20257unsafe extern "C" {
20258    pub fn BNGetMappedMediumLevelILInstructionIndex(
20259        func: *mut BNLowLevelILFunction,
20260        instr: usize,
20261    ) -> usize;
20262}
20263unsafe extern "C" {
20264    pub fn BNGetMappedMediumLevelILExprIndex(func: *mut BNLowLevelILFunction, expr: usize)
20265    -> usize;
20266}
20267unsafe extern "C" {
20268    #[doc = " Medium-level IL"]
20269    pub fn BNCreateMediumLevelILFunction(
20270        arch: *mut BNArchitecture,
20271        func: *mut BNFunction,
20272        lowLevelIL: *mut BNLowLevelILFunction,
20273    ) -> *mut BNMediumLevelILFunction;
20274}
20275unsafe extern "C" {
20276    pub fn BNNewMediumLevelILFunctionReference(
20277        func: *mut BNMediumLevelILFunction,
20278    ) -> *mut BNMediumLevelILFunction;
20279}
20280unsafe extern "C" {
20281    pub fn BNFreeMediumLevelILFunction(func: *mut BNMediumLevelILFunction);
20282}
20283unsafe extern "C" {
20284    pub fn BNGetMediumLevelILOwnerFunction(func: *mut BNMediumLevelILFunction) -> *mut BNFunction;
20285}
20286unsafe extern "C" {
20287    pub fn BNMediumLevelILGetCurrentAddress(func: *mut BNMediumLevelILFunction) -> u64;
20288}
20289unsafe extern "C" {
20290    pub fn BNMediumLevelILSetCurrentAddress(
20291        func: *mut BNMediumLevelILFunction,
20292        arch: *mut BNArchitecture,
20293        addr: u64,
20294    );
20295}
20296unsafe extern "C" {
20297    pub fn BNMediumLevelILGetInstructionStart(
20298        func: *mut BNMediumLevelILFunction,
20299        arch: *mut BNArchitecture,
20300        addr: u64,
20301    ) -> usize;
20302}
20303unsafe extern "C" {
20304    pub fn BNMediumLevelILAddExpr(
20305        func: *mut BNMediumLevelILFunction,
20306        operation: BNMediumLevelILOperation,
20307        size: usize,
20308        a: u64,
20309        b: u64,
20310        c: u64,
20311        d: u64,
20312        e: u64,
20313    ) -> usize;
20314}
20315unsafe extern "C" {
20316    pub fn BNMediumLevelILAddExprWithLocation(
20317        func: *mut BNMediumLevelILFunction,
20318        operation: BNMediumLevelILOperation,
20319        addr: u64,
20320        sourceOperand: u32,
20321        size: usize,
20322        a: u64,
20323        b: u64,
20324        c: u64,
20325        d: u64,
20326        e: u64,
20327    ) -> usize;
20328}
20329unsafe extern "C" {
20330    pub fn BNMediumLevelILAddInstruction(func: *mut BNMediumLevelILFunction, expr: usize) -> usize;
20331}
20332unsafe extern "C" {
20333    pub fn BNMediumLevelILGoto(
20334        func: *mut BNMediumLevelILFunction,
20335        label: *mut BNMediumLevelILLabel,
20336    ) -> usize;
20337}
20338unsafe extern "C" {
20339    pub fn BNMediumLevelILGotoWithLocation(
20340        func: *mut BNMediumLevelILFunction,
20341        label: *mut BNMediumLevelILLabel,
20342        addr: u64,
20343        sourceOperand: u32,
20344    ) -> usize;
20345}
20346unsafe extern "C" {
20347    pub fn BNMediumLevelILIf(
20348        func: *mut BNMediumLevelILFunction,
20349        op: u64,
20350        t: *mut BNMediumLevelILLabel,
20351        f: *mut BNMediumLevelILLabel,
20352    ) -> usize;
20353}
20354unsafe extern "C" {
20355    pub fn BNMediumLevelILIfWithLocation(
20356        func: *mut BNMediumLevelILFunction,
20357        op: u64,
20358        t: *mut BNMediumLevelILLabel,
20359        f: *mut BNMediumLevelILLabel,
20360        addr: u64,
20361        sourceOperand: u32,
20362    ) -> usize;
20363}
20364unsafe extern "C" {
20365    pub fn BNMediumLevelILInitLabel(label: *mut BNMediumLevelILLabel);
20366}
20367unsafe extern "C" {
20368    pub fn BNMediumLevelILMarkLabel(
20369        func: *mut BNMediumLevelILFunction,
20370        label: *mut BNMediumLevelILLabel,
20371    );
20372}
20373unsafe extern "C" {
20374    pub fn BNFinalizeMediumLevelILFunction(func: *mut BNMediumLevelILFunction);
20375}
20376unsafe extern "C" {
20377    pub fn BNGenerateMediumLevelILSSAForm(
20378        func: *mut BNMediumLevelILFunction,
20379        analyzeConditionals: bool,
20380        handleAliases: bool,
20381        knownNotAliases: *mut BNVariable,
20382        knownNotAliasCount: usize,
20383        knownAliases: *mut BNVariable,
20384        knownAliasCount: usize,
20385    );
20386}
20387unsafe extern "C" {
20388    pub fn BNPrepareToCopyMediumLevelILFunction(
20389        func: *mut BNMediumLevelILFunction,
20390        src: *mut BNMediumLevelILFunction,
20391    );
20392}
20393unsafe extern "C" {
20394    pub fn BNPrepareToCopyMediumLevelILBasicBlock(
20395        func: *mut BNMediumLevelILFunction,
20396        block: *mut BNBasicBlock,
20397    );
20398}
20399unsafe extern "C" {
20400    pub fn BNGetLabelForMediumLevelILSourceInstruction(
20401        func: *mut BNMediumLevelILFunction,
20402        instr: usize,
20403    ) -> *mut BNMediumLevelILLabel;
20404}
20405unsafe extern "C" {
20406    pub fn BNMediumLevelILAddLabelMap(
20407        func: *mut BNMediumLevelILFunction,
20408        values: *mut u64,
20409        labels: *mut *mut BNMediumLevelILLabel,
20410        count: usize,
20411    ) -> usize;
20412}
20413unsafe extern "C" {
20414    pub fn BNMediumLevelILAddOperandList(
20415        func: *mut BNMediumLevelILFunction,
20416        operands: *mut u64,
20417        count: usize,
20418    ) -> usize;
20419}
20420unsafe extern "C" {
20421    pub fn BNMediumLevelILGetOperandList(
20422        func: *mut BNMediumLevelILFunction,
20423        expr: usize,
20424        operand: usize,
20425        count: *mut usize,
20426    ) -> *mut u64;
20427}
20428unsafe extern "C" {
20429    pub fn BNMediumLevelILFreeOperandList(operands: *mut u64);
20430}
20431unsafe extern "C" {
20432    pub fn BNMediumLevelILGetOperand(func: *mut BNMediumLevelILFunction, offset: usize) -> u64;
20433}
20434unsafe extern "C" {
20435    pub fn BNCacheMediumLevelILPossibleValueSet(
20436        func: *mut BNMediumLevelILFunction,
20437        pvs: *mut BNPossibleValueSet,
20438    ) -> usize;
20439}
20440unsafe extern "C" {
20441    pub fn BNGetCachedMediumLevelILPossibleValueSet(
20442        func: *mut BNMediumLevelILFunction,
20443        idx: usize,
20444    ) -> BNPossibleValueSet;
20445}
20446unsafe extern "C" {
20447    pub fn BNGetMediumLevelILByIndex(
20448        func: *mut BNMediumLevelILFunction,
20449        i: usize,
20450    ) -> BNMediumLevelILInstruction;
20451}
20452unsafe extern "C" {
20453    pub fn BNGetMediumLevelILIndexForInstruction(
20454        func: *mut BNMediumLevelILFunction,
20455        i: usize,
20456    ) -> usize;
20457}
20458unsafe extern "C" {
20459    pub fn BNGetMediumLevelILInstructionForExpr(
20460        func: *mut BNMediumLevelILFunction,
20461        expr: usize,
20462    ) -> usize;
20463}
20464unsafe extern "C" {
20465    pub fn BNGetMediumLevelILInstructionCount(func: *mut BNMediumLevelILFunction) -> usize;
20466}
20467unsafe extern "C" {
20468    pub fn BNGetMediumLevelILExprCount(func: *mut BNMediumLevelILFunction) -> usize;
20469}
20470unsafe extern "C" {
20471    pub fn BNUpdateMediumLevelILOperand(
20472        func: *mut BNMediumLevelILFunction,
20473        instr: usize,
20474        operandIndex: usize,
20475        value: u64,
20476    );
20477}
20478unsafe extern "C" {
20479    pub fn BNMarkMediumLevelILInstructionForRemoval(
20480        func: *mut BNMediumLevelILFunction,
20481        instr: usize,
20482    );
20483}
20484unsafe extern "C" {
20485    pub fn BNReplaceMediumLevelILInstruction(
20486        func: *mut BNMediumLevelILFunction,
20487        instr: usize,
20488        expr: usize,
20489    );
20490}
20491unsafe extern "C" {
20492    pub fn BNReplaceMediumLevelILExpr(
20493        func: *mut BNMediumLevelILFunction,
20494        expr: usize,
20495        newExpr: usize,
20496    );
20497}
20498unsafe extern "C" {
20499    pub fn BNSetMediumLevelILExprAttributes(
20500        func: *mut BNMediumLevelILFunction,
20501        expr: usize,
20502        attributes: u32,
20503    );
20504}
20505unsafe extern "C" {
20506    pub fn BNGetMediumLevelILExprText(
20507        func: *mut BNMediumLevelILFunction,
20508        arch: *mut BNArchitecture,
20509        i: usize,
20510        tokens: *mut *mut BNInstructionTextToken,
20511        count: *mut usize,
20512        settings: *mut BNDisassemblySettings,
20513    ) -> bool;
20514}
20515unsafe extern "C" {
20516    pub fn BNGetMediumLevelILInstructionText(
20517        il: *mut BNMediumLevelILFunction,
20518        func: *mut BNFunction,
20519        arch: *mut BNArchitecture,
20520        i: usize,
20521        tokens: *mut *mut BNInstructionTextToken,
20522        count: *mut usize,
20523        settings: *mut BNDisassemblySettings,
20524    ) -> bool;
20525}
20526unsafe extern "C" {
20527    pub fn BNGetMediumLevelILBasicBlockList(
20528        func: *mut BNMediumLevelILFunction,
20529        count: *mut usize,
20530    ) -> *mut *mut BNBasicBlock;
20531}
20532unsafe extern "C" {
20533    pub fn BNGetMediumLevelILBasicBlockForInstruction(
20534        func: *mut BNMediumLevelILFunction,
20535        i: usize,
20536    ) -> *mut BNBasicBlock;
20537}
20538unsafe extern "C" {
20539    pub fn BNGetMediumLevelILSSAForm(
20540        func: *mut BNMediumLevelILFunction,
20541    ) -> *mut BNMediumLevelILFunction;
20542}
20543unsafe extern "C" {
20544    pub fn BNGetMediumLevelILNonSSAForm(
20545        func: *mut BNMediumLevelILFunction,
20546    ) -> *mut BNMediumLevelILFunction;
20547}
20548unsafe extern "C" {
20549    pub fn BNGetMediumLevelILSSAInstructionIndex(
20550        func: *mut BNMediumLevelILFunction,
20551        instr: usize,
20552    ) -> usize;
20553}
20554unsafe extern "C" {
20555    pub fn BNGetMediumLevelILNonSSAInstructionIndex(
20556        func: *mut BNMediumLevelILFunction,
20557        instr: usize,
20558    ) -> usize;
20559}
20560unsafe extern "C" {
20561    pub fn BNGetMediumLevelILSSAExprIndex(func: *mut BNMediumLevelILFunction, expr: usize)
20562    -> usize;
20563}
20564unsafe extern "C" {
20565    pub fn BNGetMediumLevelILNonSSAExprIndex(
20566        func: *mut BNMediumLevelILFunction,
20567        expr: usize,
20568    ) -> usize;
20569}
20570unsafe extern "C" {
20571    pub fn BNGetMediumLevelILSSAVarDefinition(
20572        func: *mut BNMediumLevelILFunction,
20573        var: *const BNVariable,
20574        version: usize,
20575    ) -> usize;
20576}
20577unsafe extern "C" {
20578    pub fn BNGetMediumLevelILSSAMemoryDefinition(
20579        func: *mut BNMediumLevelILFunction,
20580        version: usize,
20581    ) -> usize;
20582}
20583unsafe extern "C" {
20584    pub fn BNGetMediumLevelILSSAVarUses(
20585        func: *mut BNMediumLevelILFunction,
20586        var: *const BNVariable,
20587        version: usize,
20588        count: *mut usize,
20589    ) -> *mut usize;
20590}
20591unsafe extern "C" {
20592    pub fn BNGetMediumLevelILSSAMemoryUses(
20593        func: *mut BNMediumLevelILFunction,
20594        version: usize,
20595        count: *mut usize,
20596    ) -> *mut usize;
20597}
20598unsafe extern "C" {
20599    pub fn BNIsMediumLevelILSSAVarLive(
20600        func: *mut BNMediumLevelILFunction,
20601        var: *const BNVariable,
20602        version: usize,
20603    ) -> bool;
20604}
20605unsafe extern "C" {
20606    pub fn BNIsMediumLevelILSSAVarLiveAt(
20607        func: *mut BNMediumLevelILFunction,
20608        var: *const BNVariable,
20609        version: usize,
20610        instr: usize,
20611    ) -> bool;
20612}
20613unsafe extern "C" {
20614    pub fn BNIsMediumLevelILVarLiveAt(
20615        func: *mut BNMediumLevelILFunction,
20616        var: *const BNVariable,
20617        instr: usize,
20618    ) -> bool;
20619}
20620unsafe extern "C" {
20621    pub fn BNGetMediumLevelILVariables(
20622        func: *mut BNMediumLevelILFunction,
20623        count: *mut usize,
20624    ) -> *mut BNVariable;
20625}
20626unsafe extern "C" {
20627    pub fn BNGetMediumLevelILAliasedVariables(
20628        func: *mut BNMediumLevelILFunction,
20629        count: *mut usize,
20630    ) -> *mut BNVariable;
20631}
20632unsafe extern "C" {
20633    pub fn BNGetMediumLevelILVariableSSAVersions(
20634        func: *mut BNMediumLevelILFunction,
20635        var: *const BNVariable,
20636        count: *mut usize,
20637    ) -> *mut usize;
20638}
20639unsafe extern "C" {
20640    pub fn BNGetMediumLevelILVariableDefinitions(
20641        func: *mut BNMediumLevelILFunction,
20642        var: *const BNVariable,
20643        count: *mut usize,
20644    ) -> *mut usize;
20645}
20646unsafe extern "C" {
20647    pub fn BNGetMediumLevelILVariableUses(
20648        func: *mut BNMediumLevelILFunction,
20649        var: *const BNVariable,
20650        count: *mut usize,
20651    ) -> *mut usize;
20652}
20653unsafe extern "C" {
20654    pub fn BNGetMediumLevelILLiveInstructionsForVariable(
20655        func: *mut BNMediumLevelILFunction,
20656        var: *const BNVariable,
20657        includeLastUse: bool,
20658        count: *mut usize,
20659    ) -> *mut usize;
20660}
20661unsafe extern "C" {
20662    pub fn BNGetDefaultIndexForMediumLevelILVariableDefinition(
20663        func: *mut BNMediumLevelILFunction,
20664        var: *const BNVariable,
20665        instrIndex: usize,
20666    ) -> u32;
20667}
20668unsafe extern "C" {
20669    pub fn BNGetMediumLevelILSSAVarValue(
20670        func: *mut BNMediumLevelILFunction,
20671        var: *const BNVariable,
20672        version: usize,
20673    ) -> BNRegisterValue;
20674}
20675unsafe extern "C" {
20676    pub fn BNGetMediumLevelILExprValue(
20677        func: *mut BNMediumLevelILFunction,
20678        expr: usize,
20679    ) -> BNRegisterValue;
20680}
20681unsafe extern "C" {
20682    pub fn BNGetMediumLevelILPossibleSSAVarValues(
20683        func: *mut BNMediumLevelILFunction,
20684        var: *const BNVariable,
20685        version: usize,
20686        instr: usize,
20687        options: *mut BNDataFlowQueryOption,
20688        optionCount: usize,
20689    ) -> BNPossibleValueSet;
20690}
20691unsafe extern "C" {
20692    pub fn BNGetMediumLevelILPossibleExprValues(
20693        func: *mut BNMediumLevelILFunction,
20694        expr: usize,
20695        options: *mut BNDataFlowQueryOption,
20696        optionCount: usize,
20697    ) -> BNPossibleValueSet;
20698}
20699unsafe extern "C" {
20700    pub fn BNGetMediumLevelILSSAVarVersionAtILInstruction(
20701        func: *mut BNMediumLevelILFunction,
20702        var: *const BNVariable,
20703        instr: usize,
20704    ) -> usize;
20705}
20706unsafe extern "C" {
20707    pub fn BNGetMediumLevelILSSAVarVersionAfterILInstruction(
20708        func: *mut BNMediumLevelILFunction,
20709        var: *const BNVariable,
20710        instr: usize,
20711    ) -> usize;
20712}
20713unsafe extern "C" {
20714    pub fn BNGetMediumLevelILSSAMemoryVersionAtILInstruction(
20715        func: *mut BNMediumLevelILFunction,
20716        instr: usize,
20717    ) -> usize;
20718}
20719unsafe extern "C" {
20720    pub fn BNGetMediumLevelILSSAMemoryVersionAfterILInstruction(
20721        func: *mut BNMediumLevelILFunction,
20722        instr: usize,
20723    ) -> usize;
20724}
20725unsafe extern "C" {
20726    pub fn BNGetMediumLevelILVariableForRegisterAtInstruction(
20727        func: *mut BNMediumLevelILFunction,
20728        reg: u32,
20729        instr: usize,
20730    ) -> BNVariable;
20731}
20732unsafe extern "C" {
20733    pub fn BNGetMediumLevelILVariableForRegisterAfterInstruction(
20734        func: *mut BNMediumLevelILFunction,
20735        reg: u32,
20736        instr: usize,
20737    ) -> BNVariable;
20738}
20739unsafe extern "C" {
20740    pub fn BNGetMediumLevelILVariableForFlagAtInstruction(
20741        func: *mut BNMediumLevelILFunction,
20742        flag: u32,
20743        instr: usize,
20744    ) -> BNVariable;
20745}
20746unsafe extern "C" {
20747    pub fn BNGetMediumLevelILVariableForFlagAfterInstruction(
20748        func: *mut BNMediumLevelILFunction,
20749        flag: u32,
20750        instr: usize,
20751    ) -> BNVariable;
20752}
20753unsafe extern "C" {
20754    pub fn BNGetMediumLevelILVariableForStackLocationAtInstruction(
20755        func: *mut BNMediumLevelILFunction,
20756        offset: i64,
20757        instr: usize,
20758    ) -> BNVariable;
20759}
20760unsafe extern "C" {
20761    pub fn BNGetMediumLevelILVariableForStackLocationAfterInstruction(
20762        func: *mut BNMediumLevelILFunction,
20763        offset: i64,
20764        instr: usize,
20765    ) -> BNVariable;
20766}
20767unsafe extern "C" {
20768    pub fn BNGetMediumLevelILRegisterValueAtInstruction(
20769        func: *mut BNMediumLevelILFunction,
20770        reg: u32,
20771        instr: usize,
20772    ) -> BNRegisterValue;
20773}
20774unsafe extern "C" {
20775    pub fn BNGetMediumLevelILRegisterValueAfterInstruction(
20776        func: *mut BNMediumLevelILFunction,
20777        reg: u32,
20778        instr: usize,
20779    ) -> BNRegisterValue;
20780}
20781unsafe extern "C" {
20782    pub fn BNGetMediumLevelILPossibleRegisterValuesAtInstruction(
20783        func: *mut BNMediumLevelILFunction,
20784        reg: u32,
20785        instr: usize,
20786        options: *mut BNDataFlowQueryOption,
20787        optionCount: usize,
20788    ) -> BNPossibleValueSet;
20789}
20790unsafe extern "C" {
20791    pub fn BNGetMediumLevelILPossibleRegisterValuesAfterInstruction(
20792        func: *mut BNMediumLevelILFunction,
20793        reg: u32,
20794        instr: usize,
20795        options: *mut BNDataFlowQueryOption,
20796        optionCount: usize,
20797    ) -> BNPossibleValueSet;
20798}
20799unsafe extern "C" {
20800    pub fn BNGetMediumLevelILFlagValueAtInstruction(
20801        func: *mut BNMediumLevelILFunction,
20802        flag: u32,
20803        instr: usize,
20804    ) -> BNRegisterValue;
20805}
20806unsafe extern "C" {
20807    pub fn BNGetMediumLevelILFlagValueAfterInstruction(
20808        func: *mut BNMediumLevelILFunction,
20809        flag: u32,
20810        instr: usize,
20811    ) -> BNRegisterValue;
20812}
20813unsafe extern "C" {
20814    pub fn BNGetMediumLevelILPossibleFlagValuesAtInstruction(
20815        func: *mut BNMediumLevelILFunction,
20816        flag: u32,
20817        instr: usize,
20818        options: *mut BNDataFlowQueryOption,
20819        optionCount: usize,
20820    ) -> BNPossibleValueSet;
20821}
20822unsafe extern "C" {
20823    pub fn BNGetMediumLevelILPossibleFlagValuesAfterInstruction(
20824        func: *mut BNMediumLevelILFunction,
20825        flag: u32,
20826        instr: usize,
20827        options: *mut BNDataFlowQueryOption,
20828        optionCount: usize,
20829    ) -> BNPossibleValueSet;
20830}
20831unsafe extern "C" {
20832    pub fn BNGetMediumLevelILStackContentsAtInstruction(
20833        func: *mut BNMediumLevelILFunction,
20834        offset: i64,
20835        len: usize,
20836        instr: usize,
20837    ) -> BNRegisterValue;
20838}
20839unsafe extern "C" {
20840    pub fn BNGetMediumLevelILStackContentsAfterInstruction(
20841        func: *mut BNMediumLevelILFunction,
20842        offset: i64,
20843        len: usize,
20844        instr: usize,
20845    ) -> BNRegisterValue;
20846}
20847unsafe extern "C" {
20848    pub fn BNGetMediumLevelILPossibleStackContentsAtInstruction(
20849        func: *mut BNMediumLevelILFunction,
20850        offset: i64,
20851        len: usize,
20852        instr: usize,
20853        options: *mut BNDataFlowQueryOption,
20854        optionCount: usize,
20855    ) -> BNPossibleValueSet;
20856}
20857unsafe extern "C" {
20858    pub fn BNGetMediumLevelILPossibleStackContentsAfterInstruction(
20859        func: *mut BNMediumLevelILFunction,
20860        offset: i64,
20861        len: usize,
20862        instr: usize,
20863        options: *mut BNDataFlowQueryOption,
20864        optionCount: usize,
20865    ) -> BNPossibleValueSet;
20866}
20867unsafe extern "C" {
20868    pub fn BNGetMediumLevelILBranchDependence(
20869        func: *mut BNMediumLevelILFunction,
20870        curInstr: usize,
20871        branchInstr: usize,
20872    ) -> BNILBranchDependence;
20873}
20874unsafe extern "C" {
20875    pub fn BNGetAllMediumLevelILBranchDependence(
20876        func: *mut BNMediumLevelILFunction,
20877        instr: usize,
20878        count: *mut usize,
20879    ) -> *mut BNILBranchInstructionAndDependence;
20880}
20881unsafe extern "C" {
20882    pub fn BNFreeILBranchDependenceList(branches: *mut BNILBranchInstructionAndDependence);
20883}
20884unsafe extern "C" {
20885    pub fn BNGetLowLevelILForMediumLevelIL(
20886        func: *mut BNMediumLevelILFunction,
20887    ) -> *mut BNLowLevelILFunction;
20888}
20889unsafe extern "C" {
20890    pub fn BNGetLowLevelILInstructionIndex(
20891        func: *mut BNMediumLevelILFunction,
20892        instr: usize,
20893    ) -> usize;
20894}
20895unsafe extern "C" {
20896    pub fn BNGetLowLevelILExprIndex(func: *mut BNMediumLevelILFunction, expr: usize) -> usize;
20897}
20898unsafe extern "C" {
20899    pub fn BNGetLowLevelILExprIndexes(
20900        func: *mut BNMediumLevelILFunction,
20901        expr: usize,
20902        count: *mut usize,
20903    ) -> *mut usize;
20904}
20905unsafe extern "C" {
20906    pub fn BNGetHighLevelILForMediumLevelIL(
20907        func: *mut BNMediumLevelILFunction,
20908    ) -> *mut BNHighLevelILFunction;
20909}
20910unsafe extern "C" {
20911    pub fn BNGetHighLevelILInstructionIndex(
20912        func: *mut BNMediumLevelILFunction,
20913        instr: usize,
20914    ) -> usize;
20915}
20916unsafe extern "C" {
20917    pub fn BNGetHighLevelILExprIndex(func: *mut BNMediumLevelILFunction, expr: usize) -> usize;
20918}
20919unsafe extern "C" {
20920    pub fn BNGetHighLevelILExprIndexes(
20921        func: *mut BNMediumLevelILFunction,
20922        expr: usize,
20923        count: *mut usize,
20924    ) -> *mut usize;
20925}
20926unsafe extern "C" {
20927    pub fn BNGetMediumLevelILExprType(
20928        func: *mut BNMediumLevelILFunction,
20929        expr: usize,
20930    ) -> BNTypeWithConfidence;
20931}
20932unsafe extern "C" {
20933    pub fn BNSetMediumLevelILExprType(
20934        func: *mut BNMediumLevelILFunction,
20935        expr: usize,
20936        type_: *mut BNTypeWithConfidence,
20937    );
20938}
20939unsafe extern "C" {
20940    #[doc = " High-level IL"]
20941    pub fn BNCreateHighLevelILFunction(
20942        arch: *mut BNArchitecture,
20943        func: *mut BNFunction,
20944    ) -> *mut BNHighLevelILFunction;
20945}
20946unsafe extern "C" {
20947    pub fn BNNewHighLevelILFunctionReference(
20948        func: *mut BNHighLevelILFunction,
20949    ) -> *mut BNHighLevelILFunction;
20950}
20951unsafe extern "C" {
20952    pub fn BNFreeHighLevelILFunction(func: *mut BNHighLevelILFunction);
20953}
20954unsafe extern "C" {
20955    pub fn BNGetHighLevelILOwnerFunction(func: *mut BNHighLevelILFunction) -> *mut BNFunction;
20956}
20957unsafe extern "C" {
20958    pub fn BNHighLevelILGetCurrentAddress(func: *mut BNHighLevelILFunction) -> u64;
20959}
20960unsafe extern "C" {
20961    pub fn BNHighLevelILSetCurrentAddress(
20962        func: *mut BNHighLevelILFunction,
20963        arch: *mut BNArchitecture,
20964        addr: u64,
20965    );
20966}
20967unsafe extern "C" {
20968    pub fn BNHighLevelILAddExpr(
20969        func: *mut BNHighLevelILFunction,
20970        operation: BNHighLevelILOperation,
20971        size: usize,
20972        a: u64,
20973        b: u64,
20974        c: u64,
20975        d: u64,
20976        e: u64,
20977    ) -> usize;
20978}
20979unsafe extern "C" {
20980    pub fn BNHighLevelILAddExprWithLocation(
20981        func: *mut BNHighLevelILFunction,
20982        operation: BNHighLevelILOperation,
20983        addr: u64,
20984        sourceOperand: u32,
20985        size: usize,
20986        a: u64,
20987        b: u64,
20988        c: u64,
20989        d: u64,
20990        e: u64,
20991    ) -> usize;
20992}
20993unsafe extern "C" {
20994    pub fn BNGetHighLevelILRootExpr(func: *mut BNHighLevelILFunction) -> usize;
20995}
20996unsafe extern "C" {
20997    pub fn BNSetHighLevelILRootExpr(func: *mut BNHighLevelILFunction, expr: usize);
20998}
20999unsafe extern "C" {
21000    pub fn BNFinalizeHighLevelILFunction(func: *mut BNHighLevelILFunction);
21001}
21002unsafe extern "C" {
21003    pub fn BNGenerateHighLevelILSSAForm(
21004        func: *mut BNHighLevelILFunction,
21005        aliases: *mut BNVariable,
21006        aliasCount: usize,
21007    );
21008}
21009unsafe extern "C" {
21010    pub fn BNHighLevelILAddOperandList(
21011        func: *mut BNHighLevelILFunction,
21012        operands: *mut u64,
21013        count: usize,
21014    ) -> usize;
21015}
21016unsafe extern "C" {
21017    pub fn BNHighLevelILGetOperandList(
21018        func: *mut BNHighLevelILFunction,
21019        expr: usize,
21020        operand: usize,
21021        count: *mut usize,
21022    ) -> *mut u64;
21023}
21024unsafe extern "C" {
21025    pub fn BNHighLevelILFreeOperandList(operands: *mut u64);
21026}
21027unsafe extern "C" {
21028    pub fn BNHighLevelILGetOperand(func: *mut BNHighLevelILFunction, offset: usize) -> u64;
21029}
21030unsafe extern "C" {
21031    pub fn BNCacheHighLevelILPossibleValueSet(
21032        func: *mut BNHighLevelILFunction,
21033        pvs: *mut BNPossibleValueSet,
21034    ) -> usize;
21035}
21036unsafe extern "C" {
21037    pub fn BNGetCachedHighLevelILPossibleValueSet(
21038        func: *mut BNHighLevelILFunction,
21039        idx: usize,
21040    ) -> BNPossibleValueSet;
21041}
21042unsafe extern "C" {
21043    pub fn BNGetHighLevelILByIndex(
21044        func: *mut BNHighLevelILFunction,
21045        i: usize,
21046        asFullAst: bool,
21047    ) -> BNHighLevelILInstruction;
21048}
21049unsafe extern "C" {
21050    pub fn BNGetHighLevelILIndexForInstruction(func: *mut BNHighLevelILFunction, i: usize)
21051    -> usize;
21052}
21053unsafe extern "C" {
21054    pub fn BNGetHighLevelILInstructionForExpr(
21055        func: *mut BNHighLevelILFunction,
21056        expr: usize,
21057    ) -> usize;
21058}
21059unsafe extern "C" {
21060    pub fn BNGetHighLevelILInstructionCount(func: *mut BNHighLevelILFunction) -> usize;
21061}
21062unsafe extern "C" {
21063    pub fn BNGetHighLevelILExprCount(func: *mut BNHighLevelILFunction) -> usize;
21064}
21065unsafe extern "C" {
21066    pub fn BNGetMediumLevelILForHighLevelILFunction(
21067        func: *mut BNHighLevelILFunction,
21068    ) -> *mut BNMediumLevelILFunction;
21069}
21070unsafe extern "C" {
21071    pub fn BNGetMediumLevelILExprIndexFromHighLevelIL(
21072        func: *mut BNHighLevelILFunction,
21073        expr: usize,
21074    ) -> usize;
21075}
21076unsafe extern "C" {
21077    pub fn BNGetMediumLevelILExprIndexesFromHighLevelIL(
21078        func: *mut BNHighLevelILFunction,
21079        expr: usize,
21080        count: *mut usize,
21081    ) -> *mut usize;
21082}
21083unsafe extern "C" {
21084    pub fn BNUpdateHighLevelILOperand(
21085        func: *mut BNHighLevelILFunction,
21086        instr: usize,
21087        operandIndex: usize,
21088        value: u64,
21089    );
21090}
21091unsafe extern "C" {
21092    pub fn BNReplaceHighLevelILExpr(func: *mut BNHighLevelILFunction, expr: usize, newExpr: usize);
21093}
21094unsafe extern "C" {
21095    pub fn BNSetHighLevelILExprAttributes(
21096        func: *mut BNHighLevelILFunction,
21097        expr: usize,
21098        attributes: u32,
21099    );
21100}
21101unsafe extern "C" {
21102    pub fn BNGetHighLevelILExprText(
21103        func: *mut BNHighLevelILFunction,
21104        expr: usize,
21105        asFullAst: bool,
21106        count: *mut usize,
21107        settings: *mut BNDisassemblySettings,
21108    ) -> *mut BNDisassemblyTextLine;
21109}
21110unsafe extern "C" {
21111    pub fn BNGetHighLevelILExprType(
21112        func: *mut BNHighLevelILFunction,
21113        expr: usize,
21114    ) -> BNTypeWithConfidence;
21115}
21116unsafe extern "C" {
21117    pub fn BNSetHighLevelILExprType(
21118        func: *mut BNHighLevelILFunction,
21119        expr: usize,
21120        type_: *mut BNTypeWithConfidence,
21121    );
21122}
21123unsafe extern "C" {
21124    pub fn BNGetHighLevelILBasicBlockList(
21125        func: *mut BNHighLevelILFunction,
21126        count: *mut usize,
21127    ) -> *mut *mut BNBasicBlock;
21128}
21129unsafe extern "C" {
21130    pub fn BNGetHighLevelILBasicBlockForInstruction(
21131        func: *mut BNHighLevelILFunction,
21132        i: usize,
21133    ) -> *mut BNBasicBlock;
21134}
21135unsafe extern "C" {
21136    pub fn BNGetHighLevelILSSAForm(func: *mut BNHighLevelILFunction) -> *mut BNHighLevelILFunction;
21137}
21138unsafe extern "C" {
21139    pub fn BNGetHighLevelILNonSSAForm(
21140        func: *mut BNHighLevelILFunction,
21141    ) -> *mut BNHighLevelILFunction;
21142}
21143unsafe extern "C" {
21144    pub fn BNGetHighLevelILSSAInstructionIndex(
21145        func: *mut BNHighLevelILFunction,
21146        instr: usize,
21147    ) -> usize;
21148}
21149unsafe extern "C" {
21150    pub fn BNGetHighLevelILNonSSAInstructionIndex(
21151        func: *mut BNHighLevelILFunction,
21152        instr: usize,
21153    ) -> usize;
21154}
21155unsafe extern "C" {
21156    pub fn BNGetHighLevelILSSAExprIndex(func: *mut BNHighLevelILFunction, expr: usize) -> usize;
21157}
21158unsafe extern "C" {
21159    pub fn BNGetHighLevelILNonSSAExprIndex(func: *mut BNHighLevelILFunction, expr: usize) -> usize;
21160}
21161unsafe extern "C" {
21162    pub fn BNGetHighLevelILSSAVarDefinition(
21163        func: *mut BNHighLevelILFunction,
21164        var: *const BNVariable,
21165        version: usize,
21166    ) -> usize;
21167}
21168unsafe extern "C" {
21169    pub fn BNGetHighLevelILSSAMemoryDefinition(
21170        func: *mut BNHighLevelILFunction,
21171        version: usize,
21172    ) -> usize;
21173}
21174unsafe extern "C" {
21175    pub fn BNGetHighLevelILSSAVarUses(
21176        func: *mut BNHighLevelILFunction,
21177        var: *const BNVariable,
21178        version: usize,
21179        count: *mut usize,
21180    ) -> *mut usize;
21181}
21182unsafe extern "C" {
21183    pub fn BNGetHighLevelILSSAMemoryUses(
21184        func: *mut BNHighLevelILFunction,
21185        version: usize,
21186        count: *mut usize,
21187    ) -> *mut usize;
21188}
21189unsafe extern "C" {
21190    pub fn BNIsHighLevelILSSAVarLive(
21191        func: *mut BNHighLevelILFunction,
21192        var: *const BNVariable,
21193        version: usize,
21194    ) -> bool;
21195}
21196unsafe extern "C" {
21197    pub fn BNIsHighLevelILSSAVarLiveAt(
21198        func: *mut BNHighLevelILFunction,
21199        var: *const BNVariable,
21200        version: usize,
21201        instr: usize,
21202    ) -> bool;
21203}
21204unsafe extern "C" {
21205    pub fn BNIsHighLevelILVarLiveAt(
21206        func: *mut BNHighLevelILFunction,
21207        var: *const BNVariable,
21208        instr: usize,
21209    ) -> bool;
21210}
21211unsafe extern "C" {
21212    pub fn BNHighLevelILHasSideEffects(func: *mut BNHighLevelILFunction, exprIndex: usize) -> bool;
21213}
21214unsafe extern "C" {
21215    pub fn BNGetHighLevelILExprScopeType(
21216        func: *mut BNHighLevelILFunction,
21217        exprIndex: usize,
21218    ) -> BNScopeType;
21219}
21220unsafe extern "C" {
21221    pub fn BNGetHighLevelILVariables(
21222        func: *mut BNHighLevelILFunction,
21223        count: *mut usize,
21224    ) -> *mut BNVariable;
21225}
21226unsafe extern "C" {
21227    pub fn BNGetHighLevelILAliasedVariables(
21228        func: *mut BNHighLevelILFunction,
21229        count: *mut usize,
21230    ) -> *mut BNVariable;
21231}
21232unsafe extern "C" {
21233    pub fn BNGetHighLevelILVariableSSAVersions(
21234        func: *mut BNHighLevelILFunction,
21235        var: *const BNVariable,
21236        count: *mut usize,
21237    ) -> *mut usize;
21238}
21239unsafe extern "C" {
21240    pub fn BNGetHighLevelILVariableDefinitions(
21241        func: *mut BNHighLevelILFunction,
21242        var: *const BNVariable,
21243        count: *mut usize,
21244    ) -> *mut usize;
21245}
21246unsafe extern "C" {
21247    pub fn BNGetHighLevelILVariableUses(
21248        func: *mut BNHighLevelILFunction,
21249        var: *const BNVariable,
21250        count: *mut usize,
21251    ) -> *mut usize;
21252}
21253unsafe extern "C" {
21254    pub fn BNGetHighLevelILSSAVarVersionAtILInstruction(
21255        func: *mut BNHighLevelILFunction,
21256        var: *const BNVariable,
21257        instr: usize,
21258    ) -> usize;
21259}
21260unsafe extern "C" {
21261    pub fn BNGetHighLevelILSSAMemoryVersionAtILInstruction(
21262        func: *mut BNHighLevelILFunction,
21263        instr: usize,
21264    ) -> usize;
21265}
21266unsafe extern "C" {
21267    pub fn BNGetHighLevelILExprIndexForLabel(func: *mut BNHighLevelILFunction, label: u64)
21268    -> usize;
21269}
21270unsafe extern "C" {
21271    pub fn BNGetHighLevelILUsesForLabel(
21272        func: *mut BNHighLevelILFunction,
21273        label: u64,
21274        count: *mut usize,
21275    ) -> *mut usize;
21276}
21277unsafe extern "C" {
21278    pub fn BNHighLevelILExprLessThan(
21279        leftFunc: *mut BNHighLevelILFunction,
21280        leftExpr: usize,
21281        rightFunc: *mut BNHighLevelILFunction,
21282        rightExpr: usize,
21283    ) -> bool;
21284}
21285unsafe extern "C" {
21286    pub fn BNHighLevelILExprEqual(
21287        leftFunc: *mut BNHighLevelILFunction,
21288        leftExpr: usize,
21289        rightFunc: *mut BNHighLevelILFunction,
21290        rightExpr: usize,
21291    ) -> bool;
21292}
21293unsafe extern "C" {
21294    pub fn BNSetHighLevelILDerivedStringReferenceForExpr(
21295        func: *mut BNHighLevelILFunction,
21296        expr: usize,
21297        str_: *mut BNDerivedString,
21298    );
21299}
21300unsafe extern "C" {
21301    pub fn BNRemoveHighLevelILDerivedStringReferenceForExpr(
21302        func: *mut BNHighLevelILFunction,
21303        expr: usize,
21304    );
21305}
21306unsafe extern "C" {
21307    pub fn BNGetHighLevelILDerivedStringReferenceForExpr(
21308        func: *mut BNHighLevelILFunction,
21309        expr: usize,
21310        out: *mut BNDerivedString,
21311    ) -> bool;
21312}
21313unsafe extern "C" {
21314    #[doc = " Type Libraries"]
21315    pub fn BNNewTypeLibrary(
21316        arch: *mut BNArchitecture,
21317        name: *const ::std::os::raw::c_char,
21318    ) -> *mut BNTypeLibrary;
21319}
21320unsafe extern "C" {
21321    pub fn BNNewTypeLibraryReference(lib: *mut BNTypeLibrary) -> *mut BNTypeLibrary;
21322}
21323unsafe extern "C" {
21324    pub fn BNDuplicateTypeLibrary(lib: *mut BNTypeLibrary) -> *mut BNTypeLibrary;
21325}
21326unsafe extern "C" {
21327    pub fn BNLoadTypeLibraryFromFile(path: *const ::std::os::raw::c_char) -> *mut BNTypeLibrary;
21328}
21329unsafe extern "C" {
21330    pub fn BNTypeLibraryDecompressToFile(
21331        lib: *mut BNTypeLibrary,
21332        output: *const ::std::os::raw::c_char,
21333    ) -> bool;
21334}
21335unsafe extern "C" {
21336    pub fn BNFreeTypeLibrary(lib: *mut BNTypeLibrary);
21337}
21338unsafe extern "C" {
21339    pub fn BNLookupTypeLibraryByName(
21340        arch: *mut BNArchitecture,
21341        name: *const ::std::os::raw::c_char,
21342    ) -> *mut BNTypeLibrary;
21343}
21344unsafe extern "C" {
21345    pub fn BNLookupTypeLibraryByGuid(
21346        arch: *mut BNArchitecture,
21347        guid: *const ::std::os::raw::c_char,
21348    ) -> *mut BNTypeLibrary;
21349}
21350unsafe extern "C" {
21351    pub fn BNGetArchitectureTypeLibraries(
21352        arch: *mut BNArchitecture,
21353        count: *mut usize,
21354    ) -> *mut *mut BNTypeLibrary;
21355}
21356unsafe extern "C" {
21357    pub fn BNFreeTypeLibraryList(lib: *mut *mut BNTypeLibrary, count: usize);
21358}
21359unsafe extern "C" {
21360    pub fn BNFinalizeTypeLibrary(lib: *mut BNTypeLibrary) -> bool;
21361}
21362unsafe extern "C" {
21363    pub fn BNRegisterTypeLibrary(lib: *mut BNTypeLibrary);
21364}
21365unsafe extern "C" {
21366    pub fn BNGetTypeLibraryArchitecture(lib: *mut BNTypeLibrary) -> *mut BNArchitecture;
21367}
21368unsafe extern "C" {
21369    pub fn BNSetTypeLibraryName(lib: *mut BNTypeLibrary, name: *const ::std::os::raw::c_char);
21370}
21371unsafe extern "C" {
21372    pub fn BNGetTypeLibraryName(lib: *mut BNTypeLibrary) -> *mut ::std::os::raw::c_char;
21373}
21374unsafe extern "C" {
21375    pub fn BNAddTypeLibraryAlternateName(
21376        lib: *mut BNTypeLibrary,
21377        name: *const ::std::os::raw::c_char,
21378    );
21379}
21380unsafe extern "C" {
21381    pub fn BNGetTypeLibraryAlternateNames(
21382        lib: *mut BNTypeLibrary,
21383        count: *mut usize,
21384    ) -> *mut *mut ::std::os::raw::c_char;
21385}
21386unsafe extern "C" {
21387    pub fn BNSetTypeLibraryDependencyName(
21388        lib: *mut BNTypeLibrary,
21389        name: *const ::std::os::raw::c_char,
21390    );
21391}
21392unsafe extern "C" {
21393    pub fn BNGetTypeLibraryDependencyName(lib: *mut BNTypeLibrary) -> *mut ::std::os::raw::c_char;
21394}
21395unsafe extern "C" {
21396    pub fn BNSetTypeLibraryGuid(lib: *mut BNTypeLibrary, name: *const ::std::os::raw::c_char);
21397}
21398unsafe extern "C" {
21399    pub fn BNGetTypeLibraryGuid(lib: *mut BNTypeLibrary) -> *mut ::std::os::raw::c_char;
21400}
21401unsafe extern "C" {
21402    pub fn BNClearTypeLibraryPlatforms(lib: *mut BNTypeLibrary);
21403}
21404unsafe extern "C" {
21405    pub fn BNAddTypeLibraryPlatform(lib: *mut BNTypeLibrary, platform: *mut BNPlatform);
21406}
21407unsafe extern "C" {
21408    pub fn BNGetTypeLibraryPlatforms(
21409        lib: *mut BNTypeLibrary,
21410        count: *mut usize,
21411    ) -> *mut *mut ::std::os::raw::c_char;
21412}
21413unsafe extern "C" {
21414    pub fn BNTypeLibraryStoreMetadata(
21415        lib: *mut BNTypeLibrary,
21416        key: *const ::std::os::raw::c_char,
21417        value: *mut BNMetadata,
21418    );
21419}
21420unsafe extern "C" {
21421    pub fn BNTypeLibraryQueryMetadata(
21422        lib: *mut BNTypeLibrary,
21423        key: *const ::std::os::raw::c_char,
21424    ) -> *mut BNMetadata;
21425}
21426unsafe extern "C" {
21427    pub fn BNTypeLibraryGetMetadata(lib: *mut BNTypeLibrary) -> *mut BNMetadata;
21428}
21429unsafe extern "C" {
21430    pub fn BNTypeLibraryRemoveMetadata(lib: *mut BNTypeLibrary, key: *const ::std::os::raw::c_char);
21431}
21432unsafe extern "C" {
21433    pub fn BNGetTypeLibraryTypeContainer(lib: *mut BNTypeLibrary) -> *mut BNTypeContainer;
21434}
21435unsafe extern "C" {
21436    pub fn BNAddTypeLibraryNamedObject(
21437        lib: *mut BNTypeLibrary,
21438        name: *mut BNQualifiedName,
21439        type_: *mut BNType,
21440    );
21441}
21442unsafe extern "C" {
21443    pub fn BNRemoveTypeLibraryNamedObject(lib: *mut BNTypeLibrary, name: *mut BNQualifiedName);
21444}
21445unsafe extern "C" {
21446    pub fn BNAddTypeLibraryNamedType(
21447        lib: *mut BNTypeLibrary,
21448        name: *mut BNQualifiedName,
21449        type_: *mut BNType,
21450    );
21451}
21452unsafe extern "C" {
21453    pub fn BNRemoveTypeLibraryNamedType(lib: *mut BNTypeLibrary, name: *mut BNQualifiedName);
21454}
21455unsafe extern "C" {
21456    pub fn BNAddTypeLibraryNamedTypeSource(
21457        lib: *mut BNTypeLibrary,
21458        name: *mut BNQualifiedName,
21459        source: *const ::std::os::raw::c_char,
21460    );
21461}
21462unsafe extern "C" {
21463    pub fn BNGetTypeLibraryNamedObject(
21464        lib: *mut BNTypeLibrary,
21465        name: *mut BNQualifiedName,
21466    ) -> *mut BNType;
21467}
21468unsafe extern "C" {
21469    pub fn BNGetTypeLibraryNamedType(
21470        lib: *mut BNTypeLibrary,
21471        name: *mut BNQualifiedName,
21472    ) -> *mut BNType;
21473}
21474unsafe extern "C" {
21475    pub fn BNGetTypeLibraryNamedTypeSource(
21476        lib: *mut BNTypeLibrary,
21477        name: *mut BNQualifiedName,
21478    ) -> *mut ::std::os::raw::c_char;
21479}
21480unsafe extern "C" {
21481    pub fn BNGetTypeLibraryNamedObjects(
21482        lib: *mut BNTypeLibrary,
21483        count: *mut usize,
21484    ) -> *mut BNQualifiedNameAndType;
21485}
21486unsafe extern "C" {
21487    pub fn BNGetTypeLibraryNamedTypes(
21488        lib: *mut BNTypeLibrary,
21489        count: *mut usize,
21490    ) -> *mut BNQualifiedNameAndType;
21491}
21492unsafe extern "C" {
21493    pub fn BNWriteTypeLibraryToFile(
21494        lib: *mut BNTypeLibrary,
21495        path: *const ::std::os::raw::c_char,
21496    ) -> bool;
21497}
21498unsafe extern "C" {
21499    pub fn BNAddBinaryViewTypeLibrary(view: *mut BNBinaryView, lib: *mut BNTypeLibrary);
21500}
21501unsafe extern "C" {
21502    pub fn BNGetBinaryViewTypeLibrary(
21503        view: *mut BNBinaryView,
21504        name: *const ::std::os::raw::c_char,
21505    ) -> *mut BNTypeLibrary;
21506}
21507unsafe extern "C" {
21508    pub fn BNGetBinaryViewTypeLibraries(
21509        view: *mut BNBinaryView,
21510        count: *mut usize,
21511    ) -> *mut *mut BNTypeLibrary;
21512}
21513unsafe extern "C" {
21514    pub fn BNBinaryViewImportTypeLibraryType(
21515        view: *mut BNBinaryView,
21516        lib: *mut *mut BNTypeLibrary,
21517        name: *mut BNQualifiedName,
21518    ) -> *mut BNType;
21519}
21520unsafe extern "C" {
21521    pub fn BNBinaryViewImportTypeLibraryObject(
21522        view: *mut BNBinaryView,
21523        lib: *mut *mut BNTypeLibrary,
21524        name: *mut BNQualifiedName,
21525    ) -> *mut BNType;
21526}
21527unsafe extern "C" {
21528    pub fn BNBinaryViewImportTypeLibraryTypeByGuid(
21529        view: *mut BNBinaryView,
21530        guid: *const ::std::os::raw::c_char,
21531    ) -> *mut BNType;
21532}
21533unsafe extern "C" {
21534    pub fn BNBinaryViewGetTypeNameByGuid(
21535        view: *mut BNBinaryView,
21536        guid: *const ::std::os::raw::c_char,
21537    ) -> BNQualifiedName;
21538}
21539unsafe extern "C" {
21540    pub fn BNBinaryViewExportTypeToTypeLibrary(
21541        view: *mut BNBinaryView,
21542        lib: *mut BNTypeLibrary,
21543        name: *mut BNQualifiedName,
21544        type_: *mut BNType,
21545    );
21546}
21547unsafe extern "C" {
21548    pub fn BNBinaryViewExportObjectToTypeLibrary(
21549        view: *mut BNBinaryView,
21550        lib: *mut BNTypeLibrary,
21551        name: *mut BNQualifiedName,
21552        type_: *mut BNType,
21553    );
21554}
21555unsafe extern "C" {
21556    pub fn BNBinaryViewSetManualDependencies(
21557        view: *mut BNBinaryView,
21558        viewTypeNames: *mut BNQualifiedName,
21559        libTypeNames: *mut BNQualifiedName,
21560        libNames: *mut *mut ::std::os::raw::c_char,
21561        count: usize,
21562    );
21563}
21564unsafe extern "C" {
21565    pub fn BNBinaryViewRecordImportedObjectLibrary(
21566        view: *mut BNBinaryView,
21567        tgtPlatform: *mut BNPlatform,
21568        tgtAddr: u64,
21569        lib: *mut BNTypeLibrary,
21570        name: *mut BNQualifiedName,
21571    );
21572}
21573unsafe extern "C" {
21574    pub fn BNBinaryViewLookupImportedObjectLibrary(
21575        view: *mut BNBinaryView,
21576        tgtPlatform: *mut BNPlatform,
21577        tgtAddr: u64,
21578        lib: *mut *mut BNTypeLibrary,
21579        name: *mut BNQualifiedName,
21580    ) -> bool;
21581}
21582unsafe extern "C" {
21583    pub fn BNBinaryViewLookupImportedTypeLibrary(
21584        view: *mut BNBinaryView,
21585        typeName: *const BNQualifiedName,
21586        lib: *mut *mut BNTypeLibrary,
21587        resultName: *mut BNQualifiedName,
21588    ) -> bool;
21589}
21590unsafe extern "C" {
21591    #[doc = " Language Representation"]
21592    pub fn BNRegisterLanguageRepresentationFunctionType(
21593        name: *const ::std::os::raw::c_char,
21594        type_: *mut BNCustomLanguageRepresentationFunctionType,
21595    ) -> *mut BNLanguageRepresentationFunctionType;
21596}
21597unsafe extern "C" {
21598    pub fn BNGetLanguageRepresentationFunctionTypeByName(
21599        name: *const ::std::os::raw::c_char,
21600    ) -> *mut BNLanguageRepresentationFunctionType;
21601}
21602unsafe extern "C" {
21603    pub fn BNGetLanguageRepresentationFunctionTypeList(
21604        count: *mut usize,
21605    ) -> *mut *mut BNLanguageRepresentationFunctionType;
21606}
21607unsafe extern "C" {
21608    pub fn BNFreeLanguageRepresentationFunctionTypeList(
21609        types: *mut *mut BNLanguageRepresentationFunctionType,
21610    );
21611}
21612unsafe extern "C" {
21613    pub fn BNGetLanguageRepresentationFunctionTypeName(
21614        type_: *mut BNLanguageRepresentationFunctionType,
21615    ) -> *mut ::std::os::raw::c_char;
21616}
21617unsafe extern "C" {
21618    pub fn BNCreateLanguageRepresentationFunction(
21619        type_: *mut BNLanguageRepresentationFunctionType,
21620        arch: *mut BNArchitecture,
21621        func: *mut BNFunction,
21622        highLevelIL: *mut BNHighLevelILFunction,
21623    ) -> *mut BNLanguageRepresentationFunction;
21624}
21625unsafe extern "C" {
21626    pub fn BNIsLanguageRepresentationFunctionTypeValid(
21627        type_: *mut BNLanguageRepresentationFunctionType,
21628        view: *mut BNBinaryView,
21629    ) -> bool;
21630}
21631unsafe extern "C" {
21632    pub fn BNGetLanguageRepresentationFunctionTypePrinter(
21633        type_: *mut BNLanguageRepresentationFunctionType,
21634    ) -> *mut BNTypePrinter;
21635}
21636unsafe extern "C" {
21637    pub fn BNGetLanguageRepresentationFunctionTypeParser(
21638        type_: *mut BNLanguageRepresentationFunctionType,
21639    ) -> *mut BNTypeParser;
21640}
21641unsafe extern "C" {
21642    pub fn BNGetLanguageRepresentationFunctionTypeLineFormatter(
21643        type_: *mut BNLanguageRepresentationFunctionType,
21644    ) -> *mut BNLineFormatter;
21645}
21646unsafe extern "C" {
21647    pub fn BNGetLanguageRepresentationFunctionTypeFunctionTypeTokens(
21648        type_: *mut BNLanguageRepresentationFunctionType,
21649        func: *mut BNFunction,
21650        settings: *mut BNDisassemblySettings,
21651        count: *mut usize,
21652    ) -> *mut BNDisassemblyTextLine;
21653}
21654unsafe extern "C" {
21655    pub fn BNCreateCustomLanguageRepresentationFunction(
21656        type_: *mut BNLanguageRepresentationFunctionType,
21657        arch: *mut BNArchitecture,
21658        func: *mut BNFunction,
21659        highLevelIL: *mut BNHighLevelILFunction,
21660        callbacks: *mut BNCustomLanguageRepresentationFunction,
21661    ) -> *mut BNLanguageRepresentationFunction;
21662}
21663unsafe extern "C" {
21664    pub fn BNNewLanguageRepresentationFunctionReference(
21665        func: *mut BNLanguageRepresentationFunction,
21666    ) -> *mut BNLanguageRepresentationFunction;
21667}
21668unsafe extern "C" {
21669    pub fn BNFreeLanguageRepresentationFunction(func: *mut BNLanguageRepresentationFunction);
21670}
21671unsafe extern "C" {
21672    pub fn BNGetLanguageRepresentationType(
21673        func: *mut BNLanguageRepresentationFunction,
21674    ) -> *mut BNLanguageRepresentationFunctionType;
21675}
21676unsafe extern "C" {
21677    pub fn BNGetLanguageRepresentationArchitecture(
21678        func: *mut BNLanguageRepresentationFunction,
21679    ) -> *mut BNArchitecture;
21680}
21681unsafe extern "C" {
21682    pub fn BNGetLanguageRepresentationOwnerFunction(
21683        func: *mut BNLanguageRepresentationFunction,
21684    ) -> *mut BNFunction;
21685}
21686unsafe extern "C" {
21687    pub fn BNGetLanguageRepresentationILFunction(
21688        func: *mut BNLanguageRepresentationFunction,
21689    ) -> *mut BNHighLevelILFunction;
21690}
21691unsafe extern "C" {
21692    pub fn BNGetLanguageRepresentationFunctionExprText(
21693        func: *mut BNLanguageRepresentationFunction,
21694        il: *mut BNHighLevelILFunction,
21695        exprIndex: usize,
21696        settings: *mut BNDisassemblySettings,
21697        asFullAst: bool,
21698        precedence: BNOperatorPrecedence,
21699        statement: bool,
21700        count: *mut usize,
21701    ) -> *mut BNDisassemblyTextLine;
21702}
21703unsafe extern "C" {
21704    pub fn BNGetLanguageRepresentationFunctionLinearLines(
21705        func: *mut BNLanguageRepresentationFunction,
21706        il: *mut BNHighLevelILFunction,
21707        exprIndex: usize,
21708        settings: *mut BNDisassemblySettings,
21709        asFullAst: bool,
21710        count: *mut usize,
21711    ) -> *mut BNDisassemblyTextLine;
21712}
21713unsafe extern "C" {
21714    pub fn BNGetLanguageRepresentationFunctionBlockLines(
21715        func: *mut BNLanguageRepresentationFunction,
21716        block: *mut BNBasicBlock,
21717        settings: *mut BNDisassemblySettings,
21718        count: *mut usize,
21719    ) -> *mut BNDisassemblyTextLine;
21720}
21721unsafe extern "C" {
21722    pub fn BNGetLanguageRepresentationFunctionHighlight(
21723        func: *mut BNLanguageRepresentationFunction,
21724        block: *mut BNBasicBlock,
21725    ) -> BNHighlightColor;
21726}
21727unsafe extern "C" {
21728    pub fn BNGetLanguageRepresentationFunctionCommentStartString(
21729        func: *mut BNLanguageRepresentationFunction,
21730    ) -> *mut ::std::os::raw::c_char;
21731}
21732unsafe extern "C" {
21733    pub fn BNGetLanguageRepresentationFunctionCommentEndString(
21734        func: *mut BNLanguageRepresentationFunction,
21735    ) -> *mut ::std::os::raw::c_char;
21736}
21737unsafe extern "C" {
21738    pub fn BNGetLanguageRepresentationFunctionAnnotationStartString(
21739        func: *mut BNLanguageRepresentationFunction,
21740    ) -> *mut ::std::os::raw::c_char;
21741}
21742unsafe extern "C" {
21743    pub fn BNGetLanguageRepresentationFunctionAnnotationEndString(
21744        func: *mut BNLanguageRepresentationFunction,
21745    ) -> *mut ::std::os::raw::c_char;
21746}
21747unsafe extern "C" {
21748    pub fn BNNewFieldResolutionInfoReference(
21749        info: *mut BNFieldResolutionInfo,
21750    ) -> *mut BNFieldResolutionInfo;
21751}
21752unsafe extern "C" {
21753    pub fn BNFreeFieldResolutionInfo(info: *mut BNFieldResolutionInfo);
21754}
21755unsafe extern "C" {
21756    #[doc = " Types"]
21757    pub fn BNTypesEqual(a: *mut BNType, b: *mut BNType) -> bool;
21758}
21759unsafe extern "C" {
21760    pub fn BNTypesNotEqual(a: *mut BNType, b: *mut BNType) -> bool;
21761}
21762unsafe extern "C" {
21763    pub fn BNCreateVoidType() -> *mut BNType;
21764}
21765unsafe extern "C" {
21766    pub fn BNCreateBoolType() -> *mut BNType;
21767}
21768unsafe extern "C" {
21769    pub fn BNCreateIntegerType(
21770        width: usize,
21771        sign: *mut BNBoolWithConfidence,
21772        altName: *const ::std::os::raw::c_char,
21773    ) -> *mut BNType;
21774}
21775unsafe extern "C" {
21776    pub fn BNCreateFloatType(width: usize, altName: *const ::std::os::raw::c_char) -> *mut BNType;
21777}
21778unsafe extern "C" {
21779    pub fn BNCreateWideCharType(
21780        width: usize,
21781        altName: *const ::std::os::raw::c_char,
21782    ) -> *mut BNType;
21783}
21784unsafe extern "C" {
21785    pub fn BNCreateStructureType(s: *mut BNStructure) -> *mut BNType;
21786}
21787unsafe extern "C" {
21788    pub fn BNCreateEnumerationType(
21789        arch: *mut BNArchitecture,
21790        e: *mut BNEnumeration,
21791        width: usize,
21792        isSigned: *mut BNBoolWithConfidence,
21793    ) -> *mut BNType;
21794}
21795unsafe extern "C" {
21796    pub fn BNCreateEnumerationTypeOfWidth(
21797        e: *mut BNEnumeration,
21798        width: usize,
21799        isSigned: *mut BNBoolWithConfidence,
21800    ) -> *mut BNType;
21801}
21802unsafe extern "C" {
21803    pub fn BNCreatePointerType(
21804        arch: *mut BNArchitecture,
21805        type_: *const BNTypeWithConfidence,
21806        cnst: *mut BNBoolWithConfidence,
21807        vltl: *mut BNBoolWithConfidence,
21808        refType: BNReferenceType,
21809    ) -> *mut BNType;
21810}
21811unsafe extern "C" {
21812    pub fn BNCreatePointerTypeOfWidth(
21813        width: usize,
21814        type_: *const BNTypeWithConfidence,
21815        cnst: *mut BNBoolWithConfidence,
21816        vltl: *mut BNBoolWithConfidence,
21817        refType: BNReferenceType,
21818    ) -> *mut BNType;
21819}
21820unsafe extern "C" {
21821    pub fn BNCreateFragmentType(
21822        width: usize,
21823        type_: *const BNTypeWithConfidence,
21824        offset: u64,
21825        endianness: BNEndianness,
21826    ) -> *mut BNType;
21827}
21828unsafe extern "C" {
21829    pub fn BNCreateFragmentTypeBits(
21830        width: usize,
21831        type_: *const BNTypeWithConfidence,
21832        originalFragmentOffsetBytes: u64,
21833        originalFragmentWidthBytes: usize,
21834        endianness: BNEndianness,
21835        fragmentStartBit: usize,
21836        fragmentWidthBits: usize,
21837        fragmentTruncatedStartBits: usize,
21838        wrapBit: usize,
21839    ) -> *mut BNType;
21840}
21841unsafe extern "C" {
21842    pub fn BNCreateArrayType(type_: *const BNTypeWithConfidence, elem: u64) -> *mut BNType;
21843}
21844unsafe extern "C" {
21845    pub fn BNCreateFunctionType(
21846        returnValue: *mut BNReturnValue,
21847        callingConvention: *mut BNCallingConventionWithConfidence,
21848        params: *mut BNFunctionParameter,
21849        paramCount: usize,
21850        varArg: *mut BNBoolWithConfidence,
21851        canReturn: *mut BNBoolWithConfidence,
21852        stackAdjust: *mut BNOffsetWithConfidence,
21853        regStackAdjustRegs: *mut u32,
21854        regStackAdjustValues: *mut BNOffsetWithConfidence,
21855        regStackAdjustCount: usize,
21856        ft: BNNameType,
21857        pure_: *mut BNBoolWithConfidence,
21858    ) -> *mut BNType;
21859}
21860unsafe extern "C" {
21861    pub fn BNCreateVarArgsType() -> *mut BNType;
21862}
21863unsafe extern "C" {
21864    pub fn BNCreateValueType(value: *const ::std::os::raw::c_char) -> *mut BNType;
21865}
21866unsafe extern "C" {
21867    pub fn BNGetNameTypeString(classFunctionType: BNNameType) -> *mut ::std::os::raw::c_char;
21868}
21869unsafe extern "C" {
21870    pub fn BNNewTypeReference(type_: *mut BNType) -> *mut BNType;
21871}
21872unsafe extern "C" {
21873    pub fn BNDuplicateType(type_: *mut BNType) -> *mut BNType;
21874}
21875unsafe extern "C" {
21876    pub fn BNGetTypeAndName(
21877        type_: *mut BNType,
21878        name: *mut BNQualifiedName,
21879        escaping: BNTokenEscapingType,
21880    ) -> *mut ::std::os::raw::c_char;
21881}
21882unsafe extern "C" {
21883    pub fn BNFreeType(type_: *mut BNType);
21884}
21885unsafe extern "C" {
21886    pub fn BNFreeTypeList(types: *mut *mut BNType, count: usize);
21887}
21888unsafe extern "C" {
21889    pub fn BNTypeSetIgnored(type_: *mut BNType, ignored: bool) -> *mut BNType;
21890}
21891unsafe extern "C" {
21892    pub fn BNCreateTypeBuilderFromType(type_: *mut BNType) -> *mut BNTypeBuilder;
21893}
21894unsafe extern "C" {
21895    pub fn BNCreateVoidTypeBuilder() -> *mut BNTypeBuilder;
21896}
21897unsafe extern "C" {
21898    pub fn BNCreateBoolTypeBuilder() -> *mut BNTypeBuilder;
21899}
21900unsafe extern "C" {
21901    pub fn BNCreateIntegerTypeBuilder(
21902        width: usize,
21903        sign: *mut BNBoolWithConfidence,
21904        altName: *const ::std::os::raw::c_char,
21905    ) -> *mut BNTypeBuilder;
21906}
21907unsafe extern "C" {
21908    pub fn BNCreateFloatTypeBuilder(
21909        width: usize,
21910        altName: *const ::std::os::raw::c_char,
21911    ) -> *mut BNTypeBuilder;
21912}
21913unsafe extern "C" {
21914    pub fn BNCreateWideCharTypeBuilder(
21915        width: usize,
21916        altName: *const ::std::os::raw::c_char,
21917    ) -> *mut BNTypeBuilder;
21918}
21919unsafe extern "C" {
21920    pub fn BNCreateStructureTypeBuilder(s: *mut BNStructure) -> *mut BNTypeBuilder;
21921}
21922unsafe extern "C" {
21923    pub fn BNCreateStructureTypeBuilderWithBuilder(
21924        s: *mut BNStructureBuilder,
21925    ) -> *mut BNTypeBuilder;
21926}
21927unsafe extern "C" {
21928    pub fn BNCreateEnumerationTypeBuilder(
21929        arch: *mut BNArchitecture,
21930        e: *mut BNEnumeration,
21931        width: usize,
21932        isSigned: *mut BNBoolWithConfidence,
21933    ) -> *mut BNTypeBuilder;
21934}
21935unsafe extern "C" {
21936    pub fn BNCreateEnumerationTypeBuilderWithBuilder(
21937        arch: *mut BNArchitecture,
21938        e: *mut BNEnumerationBuilder,
21939        width: usize,
21940        isSigned: *mut BNBoolWithConfidence,
21941    ) -> *mut BNTypeBuilder;
21942}
21943unsafe extern "C" {
21944    pub fn BNCreatePointerTypeBuilder(
21945        arch: *mut BNArchitecture,
21946        type_: *const BNTypeWithConfidence,
21947        cnst: *mut BNBoolWithConfidence,
21948        vltl: *mut BNBoolWithConfidence,
21949        refType: BNReferenceType,
21950    ) -> *mut BNTypeBuilder;
21951}
21952unsafe extern "C" {
21953    pub fn BNCreatePointerTypeBuilderOfWidth(
21954        width: usize,
21955        type_: *const BNTypeWithConfidence,
21956        cnst: *mut BNBoolWithConfidence,
21957        vltl: *mut BNBoolWithConfidence,
21958        refType: BNReferenceType,
21959    ) -> *mut BNTypeBuilder;
21960}
21961unsafe extern "C" {
21962    pub fn BNCreateFragmentTypeBuilder(
21963        width: usize,
21964        type_: *const BNTypeWithConfidence,
21965        offset: u64,
21966        endianness: BNEndianness,
21967    ) -> *mut BNTypeBuilder;
21968}
21969unsafe extern "C" {
21970    pub fn BNCreateFragmentTypeBuilderBits(
21971        width: usize,
21972        type_: *const BNTypeWithConfidence,
21973        originalFragmentOffsetBytes: u64,
21974        originalFragmentWidthBytes: usize,
21975        endianness: BNEndianness,
21976        fragmentStartBit: usize,
21977        fragmentWidthBits: usize,
21978        fragmentTruncatedStartBits: usize,
21979        wrapBit: usize,
21980    ) -> *mut BNTypeBuilder;
21981}
21982unsafe extern "C" {
21983    pub fn BNCreateArrayTypeBuilder(
21984        type_: *const BNTypeWithConfidence,
21985        elem: u64,
21986    ) -> *mut BNTypeBuilder;
21987}
21988unsafe extern "C" {
21989    pub fn BNCreateFunctionTypeBuilder(
21990        returnValue: *mut BNReturnValue,
21991        callingConvention: *mut BNCallingConventionWithConfidence,
21992        params: *mut BNFunctionParameter,
21993        paramCount: usize,
21994        varArg: *mut BNBoolWithConfidence,
21995        canReturn: *mut BNBoolWithConfidence,
21996        stackAdjust: *mut BNOffsetWithConfidence,
21997        regStackAdjustRegs: *mut u32,
21998        regStackAdjustValues: *mut BNOffsetWithConfidence,
21999        regStackAdjustCount: usize,
22000        ft: BNNameType,
22001        pure_: *mut BNBoolWithConfidence,
22002    ) -> *mut BNTypeBuilder;
22003}
22004unsafe extern "C" {
22005    pub fn BNCreateVarArgsTypeBuilder() -> *mut BNTypeBuilder;
22006}
22007unsafe extern "C" {
22008    pub fn BNCreateValueTypeBuilder(value: *const ::std::os::raw::c_char) -> *mut BNTypeBuilder;
22009}
22010unsafe extern "C" {
22011    pub fn BNFinalizeTypeBuilder(type_: *mut BNTypeBuilder) -> *mut BNType;
22012}
22013unsafe extern "C" {
22014    pub fn BNDuplicateTypeBuilder(type_: *mut BNTypeBuilder) -> *mut BNTypeBuilder;
22015}
22016unsafe extern "C" {
22017    pub fn BNGetTypeBuilderTypeAndName(
22018        type_: *mut BNTypeBuilder,
22019        name: *mut BNQualifiedName,
22020    ) -> *mut ::std::os::raw::c_char;
22021}
22022unsafe extern "C" {
22023    pub fn BNFreeTypeBuilder(type_: *mut BNTypeBuilder);
22024}
22025unsafe extern "C" {
22026    pub fn BNTypeGetTypeName(nt: *mut BNType) -> BNQualifiedName;
22027}
22028unsafe extern "C" {
22029    pub fn BNGetTypeClass(type_: *mut BNType) -> BNTypeClass;
22030}
22031unsafe extern "C" {
22032    pub fn BNGetTypeWidth(type_: *mut BNType) -> u64;
22033}
22034unsafe extern "C" {
22035    pub fn BNGetTypeAlignment(type_: *mut BNType) -> usize;
22036}
22037unsafe extern "C" {
22038    pub fn BNGetIntegerTypeDisplayType(type_: *mut BNType) -> BNIntegerDisplayType;
22039}
22040unsafe extern "C" {
22041    pub fn BNSetIntegerTypeDisplayType(
22042        type_: *mut BNTypeBuilder,
22043        displayType: BNIntegerDisplayType,
22044    );
22045}
22046unsafe extern "C" {
22047    pub fn BNIsTypeSigned(type_: *mut BNType) -> BNBoolWithConfidence;
22048}
22049unsafe extern "C" {
22050    pub fn BNIsTypeConst(type_: *mut BNType) -> BNBoolWithConfidence;
22051}
22052unsafe extern "C" {
22053    pub fn BNIsTypeVolatile(type_: *mut BNType) -> BNBoolWithConfidence;
22054}
22055unsafe extern "C" {
22056    pub fn BNIsTypeFloatingPoint(type_: *mut BNType) -> bool;
22057}
22058unsafe extern "C" {
22059    pub fn BNGetChildType(type_: *mut BNType) -> BNTypeWithConfidence;
22060}
22061unsafe extern "C" {
22062    pub fn BNGetTypeReturnValue(type_: *mut BNType) -> BNReturnValue;
22063}
22064unsafe extern "C" {
22065    pub fn BNIsTypeReturnValueDefaultLocation(type_: *mut BNType) -> bool;
22066}
22067unsafe extern "C" {
22068    pub fn BNGetTypeReturnValueLocation(type_: *mut BNType) -> BNValueLocationWithConfidence;
22069}
22070unsafe extern "C" {
22071    pub fn BNParseValueLocation(
22072        str_: *const ::std::os::raw::c_char,
22073        arch: *mut BNArchitecture,
22074        location: *mut BNValueLocation,
22075        error: *mut *mut ::std::os::raw::c_char,
22076    ) -> bool;
22077}
22078unsafe extern "C" {
22079    pub fn BNValueLocationToString(
22080        location: *mut BNValueLocation,
22081        arch: *mut BNArchitecture,
22082    ) -> *mut ::std::os::raw::c_char;
22083}
22084unsafe extern "C" {
22085    pub fn BNValueLocationComponentToString(
22086        component: *mut BNValueLocationComponent,
22087        arch: *mut BNArchitecture,
22088    ) -> *mut ::std::os::raw::c_char;
22089}
22090unsafe extern "C" {
22091    pub fn BNFreeValueLocation(location: *mut BNValueLocation);
22092}
22093unsafe extern "C" {
22094    pub fn BNGetTypeCallingConvention(type_: *mut BNType) -> BNCallingConventionWithConfidence;
22095}
22096unsafe extern "C" {
22097    pub fn BNGetTypeCallingConventionName(type_: *mut BNType) -> BNCallingConventionName;
22098}
22099unsafe extern "C" {
22100    pub fn BNGetTypeParameters(type_: *mut BNType, count: *mut usize) -> *mut BNFunctionParameter;
22101}
22102unsafe extern "C" {
22103    pub fn BNFreeTypeParameterList(types: *mut BNFunctionParameter, count: usize);
22104}
22105unsafe extern "C" {
22106    pub fn BNTypeHasVariableArguments(type_: *mut BNType) -> BNBoolWithConfidence;
22107}
22108unsafe extern "C" {
22109    pub fn BNTypeHasTemplateArguments(type_: *mut BNType) -> bool;
22110}
22111unsafe extern "C" {
22112    pub fn BNFunctionTypeCanReturn(type_: *mut BNType) -> BNBoolWithConfidence;
22113}
22114unsafe extern "C" {
22115    pub fn BNIsTypePure(type_: *mut BNType) -> BNBoolWithConfidence;
22116}
22117unsafe extern "C" {
22118    pub fn BNGetTypeStructure(type_: *mut BNType) -> *mut BNStructure;
22119}
22120unsafe extern "C" {
22121    pub fn BNGetTypeEnumeration(type_: *mut BNType) -> *mut BNEnumeration;
22122}
22123unsafe extern "C" {
22124    pub fn BNGetTypeNamedTypeReference(type_: *mut BNType) -> *mut BNNamedTypeReference;
22125}
22126unsafe extern "C" {
22127    pub fn BNGetTypeElementCount(type_: *mut BNType) -> u64;
22128}
22129unsafe extern "C" {
22130    pub fn BNGetTypeOffset(type_: *mut BNType) -> u64;
22131}
22132unsafe extern "C" {
22133    pub fn BNGetTypeFragmentOriginalOffsetBytes(type_: *mut BNType) -> u64;
22134}
22135unsafe extern "C" {
22136    pub fn BNGetTypeFragmentOriginalWidthBytes(type_: *mut BNType) -> usize;
22137}
22138unsafe extern "C" {
22139    pub fn BNGetTypeFragmentStartBit(type_: *mut BNType) -> usize;
22140}
22141unsafe extern "C" {
22142    pub fn BNGetTypeFragmentWidthBits(type_: *mut BNType) -> usize;
22143}
22144unsafe extern "C" {
22145    pub fn BNGetTypeFragmentTruncatedStartBits(type_: *mut BNType) -> usize;
22146}
22147unsafe extern "C" {
22148    pub fn BNGetTypeFragmentWrapBit(type_: *mut BNType) -> usize;
22149}
22150unsafe extern "C" {
22151    pub fn BNGetTypeFragmentEndianness(type_: *mut BNType) -> BNEndianness;
22152}
22153unsafe extern "C" {
22154    pub fn BNGetTypeStackAdjustment(type_: *mut BNType) -> BNOffsetWithConfidence;
22155}
22156unsafe extern "C" {
22157    pub fn BNTypeGetStructureName(type_: *mut BNType) -> BNQualifiedName;
22158}
22159unsafe extern "C" {
22160    pub fn BNGetRegisteredTypeName(type_: *mut BNType) -> *mut BNNamedTypeReference;
22161}
22162unsafe extern "C" {
22163    pub fn BNTypeGetReferenceType(type_: *mut BNType) -> BNReferenceType;
22164}
22165unsafe extern "C" {
22166    pub fn BNTypeGetPointerBaseType(type_: *mut BNType) -> BNPointerBaseType;
22167}
22168unsafe extern "C" {
22169    pub fn BNTypeGetPointerBaseOffset(type_: *mut BNType) -> i64;
22170}
22171unsafe extern "C" {
22172    pub fn BNTypeGetNameType(type_: *mut BNType) -> BNNameType;
22173}
22174unsafe extern "C" {
22175    pub fn BNGetTypeAlternateName(type_: *mut BNType) -> *mut ::std::os::raw::c_char;
22176}
22177unsafe extern "C" {
22178    pub fn BNTypeGetSystemCallNumber(type_: *mut BNType) -> u32;
22179}
22180unsafe extern "C" {
22181    pub fn BNTypeIsSystemCall(type_: *mut BNType) -> bool;
22182}
22183unsafe extern "C" {
22184    pub fn BNGetTypePointerSuffix(type_: *mut BNType, count: *mut usize) -> *mut BNPointerSuffix;
22185}
22186unsafe extern "C" {
22187    pub fn BNGetTypePointerSuffixString(type_: *mut BNType) -> *mut ::std::os::raw::c_char;
22188}
22189unsafe extern "C" {
22190    pub fn BNGetTypePointerSuffixTokens(
22191        type_: *mut BNType,
22192        baseConfidence: u8,
22193        count: *mut usize,
22194    ) -> *mut BNInstructionTextToken;
22195}
22196unsafe extern "C" {
22197    pub fn BNFreePointerSuffixList(suffix: *mut BNPointerSuffix, count: usize);
22198}
22199unsafe extern "C" {
22200    pub fn BNTypeShouldDisplayReturnType(type_: *mut BNType) -> bool;
22201}
22202unsafe extern "C" {
22203    pub fn BNGetTypeAttributes(type_: *mut BNType, count: *mut usize) -> *mut BNTypeAttribute;
22204}
22205unsafe extern "C" {
22206    pub fn BNGetTypeAttributeByName(
22207        type_: *mut BNType,
22208        name: *const ::std::os::raw::c_char,
22209    ) -> *mut ::std::os::raw::c_char;
22210}
22211unsafe extern "C" {
22212    pub fn BNFreeTypeAttributeList(attr: *mut BNTypeAttribute, count: usize);
22213}
22214unsafe extern "C" {
22215    pub fn BNDerefNamedTypeReference(view: *mut BNBinaryView, type_: *mut BNType) -> *mut BNType;
22216}
22217unsafe extern "C" {
22218    pub fn BNGetTypeString(
22219        type_: *mut BNType,
22220        platform: *mut BNPlatform,
22221        escaping: BNTokenEscapingType,
22222    ) -> *mut ::std::os::raw::c_char;
22223}
22224unsafe extern "C" {
22225    pub fn BNGetTypeStringBeforeName(
22226        type_: *mut BNType,
22227        platform: *mut BNPlatform,
22228        escaping: BNTokenEscapingType,
22229    ) -> *mut ::std::os::raw::c_char;
22230}
22231unsafe extern "C" {
22232    pub fn BNGetTypeStringAfterName(
22233        type_: *mut BNType,
22234        platform: *mut BNPlatform,
22235        escaping: BNTokenEscapingType,
22236    ) -> *mut ::std::os::raw::c_char;
22237}
22238unsafe extern "C" {
22239    pub fn BNGetTypeTokens(
22240        type_: *mut BNType,
22241        platform: *mut BNPlatform,
22242        baseConfidence: u8,
22243        escaping: BNTokenEscapingType,
22244        count: *mut usize,
22245    ) -> *mut BNInstructionTextToken;
22246}
22247unsafe extern "C" {
22248    pub fn BNGetTypeTokensBeforeName(
22249        type_: *mut BNType,
22250        platform: *mut BNPlatform,
22251        baseConfidence: u8,
22252        escaping: BNTokenEscapingType,
22253        count: *mut usize,
22254    ) -> *mut BNInstructionTextToken;
22255}
22256unsafe extern "C" {
22257    pub fn BNGetTypeTokensAfterName(
22258        type_: *mut BNType,
22259        platform: *mut BNPlatform,
22260        baseConfidence: u8,
22261        escaping: BNTokenEscapingType,
22262        count: *mut usize,
22263    ) -> *mut BNInstructionTextToken;
22264}
22265unsafe extern "C" {
22266    pub fn BNTypeWithReplacedStructure(
22267        type_: *mut BNType,
22268        from: *mut BNStructure,
22269        to: *mut BNStructure,
22270    ) -> *mut BNType;
22271}
22272unsafe extern "C" {
22273    pub fn BNTypeWithReplacedEnumeration(
22274        type_: *mut BNType,
22275        from: *mut BNEnumeration,
22276        to: *mut BNEnumeration,
22277    ) -> *mut BNType;
22278}
22279unsafe extern "C" {
22280    pub fn BNTypeWithReplacedNamedTypeReference(
22281        type_: *mut BNType,
22282        from: *mut BNNamedTypeReference,
22283        to: *mut BNNamedTypeReference,
22284    ) -> *mut BNType;
22285}
22286unsafe extern "C" {
22287    pub fn BNAddTypeMemberTokens(
22288        type_: *mut BNType,
22289        data: *mut BNBinaryView,
22290        tokens: *mut *mut BNInstructionTextToken,
22291        tokenCount: *mut usize,
22292        offset: i64,
22293        nameList: *mut *mut *mut ::std::os::raw::c_char,
22294        nameCount: *mut usize,
22295        size: usize,
22296        indirect: bool,
22297        info: *mut BNFieldResolutionInfo,
22298    ) -> bool;
22299}
22300unsafe extern "C" {
22301    pub fn BNGetTypeLines(
22302        type_: *mut BNType,
22303        types: *mut BNTypeContainer,
22304        name: *const ::std::os::raw::c_char,
22305        paddingCols: ::std::os::raw::c_int,
22306        collapsed: bool,
22307        escaping: BNTokenEscapingType,
22308        count: *mut usize,
22309    ) -> *mut BNTypeDefinitionLine;
22310}
22311unsafe extern "C" {
22312    pub fn BNFreeTypeDefinitionLineList(list: *mut BNTypeDefinitionLine, count: usize);
22313}
22314unsafe extern "C" {
22315    pub fn BNEnumerateTypesForAccess(
22316        type_: *mut BNType,
22317        data: *mut BNBinaryView,
22318        offset: u64,
22319        size: usize,
22320        baseConfidence: u8,
22321        terminal: ::std::option::Option<
22322            unsafe extern "C" fn(
22323                arg1: *mut ::std::os::raw::c_void,
22324                arg2: *mut BNTypeWithConfidence,
22325                arg3: *mut BNFieldResolutionInfo,
22326            ),
22327        >,
22328        ctxt: *mut ::std::os::raw::c_void,
22329    ) -> bool;
22330}
22331unsafe extern "C" {
22332    pub fn BNTypeBuilderGetTypeName(nt: *mut BNTypeBuilder) -> BNQualifiedName;
22333}
22334unsafe extern "C" {
22335    pub fn BNTypeBuilderSetTypeName(type_: *mut BNTypeBuilder, name: *mut BNQualifiedName);
22336}
22337unsafe extern "C" {
22338    pub fn BNTypeBuilderSetAlternateName(
22339        type_: *mut BNTypeBuilder,
22340        name: *const ::std::os::raw::c_char,
22341    );
22342}
22343unsafe extern "C" {
22344    pub fn BNGetTypeBuilderClass(type_: *mut BNTypeBuilder) -> BNTypeClass;
22345}
22346unsafe extern "C" {
22347    pub fn BNTypeBuilderSetSystemCallNumber(type_: *mut BNTypeBuilder, v: bool, n: u32);
22348}
22349unsafe extern "C" {
22350    pub fn BNGetTypeBuilderWidth(type_: *mut BNTypeBuilder) -> u64;
22351}
22352unsafe extern "C" {
22353    pub fn BNGetTypeBuilderAlignment(type_: *mut BNTypeBuilder) -> usize;
22354}
22355unsafe extern "C" {
22356    pub fn BNIsTypeBuilderSigned(type_: *mut BNTypeBuilder) -> BNBoolWithConfidence;
22357}
22358unsafe extern "C" {
22359    pub fn BNIsTypeBuilderConst(type_: *mut BNTypeBuilder) -> BNBoolWithConfidence;
22360}
22361unsafe extern "C" {
22362    pub fn BNIsTypeBuilderVolatile(type_: *mut BNTypeBuilder) -> BNBoolWithConfidence;
22363}
22364unsafe extern "C" {
22365    pub fn BNIsTypeBuilderFloatingPoint(type_: *mut BNTypeBuilder) -> bool;
22366}
22367unsafe extern "C" {
22368    pub fn BNGetTypeBuilderChildType(type_: *mut BNTypeBuilder) -> BNTypeWithConfidence;
22369}
22370unsafe extern "C" {
22371    pub fn BNGetTypeBuilderReturnValue(type_: *mut BNTypeBuilder) -> BNReturnValue;
22372}
22373unsafe extern "C" {
22374    pub fn BNIsTypeBuilderReturnValueDefaultLocation(type_: *mut BNTypeBuilder) -> bool;
22375}
22376unsafe extern "C" {
22377    pub fn BNGetTypeBuilderReturnValueLocation(
22378        type_: *mut BNTypeBuilder,
22379    ) -> BNValueLocationWithConfidence;
22380}
22381unsafe extern "C" {
22382    pub fn BNGetTypeBuilderCallingConvention(
22383        type_: *mut BNTypeBuilder,
22384    ) -> BNCallingConventionWithConfidence;
22385}
22386unsafe extern "C" {
22387    pub fn BNGetTypeBuilderCallingConventionName(
22388        type_: *mut BNTypeBuilder,
22389    ) -> BNCallingConventionName;
22390}
22391unsafe extern "C" {
22392    pub fn BNGetTypeBuilderParameters(
22393        type_: *mut BNTypeBuilder,
22394        count: *mut usize,
22395    ) -> *mut BNFunctionParameter;
22396}
22397unsafe extern "C" {
22398    pub fn BNTypeBuilderHasVariableArguments(type_: *mut BNTypeBuilder) -> BNBoolWithConfidence;
22399}
22400unsafe extern "C" {
22401    pub fn BNFunctionTypeBuilderCanReturn(type_: *mut BNTypeBuilder) -> BNBoolWithConfidence;
22402}
22403unsafe extern "C" {
22404    pub fn BNIsTypeBuilderPure(type_: *mut BNTypeBuilder) -> BNBoolWithConfidence;
22405}
22406unsafe extern "C" {
22407    pub fn BNGetTypeBuilderStructure(type_: *mut BNTypeBuilder) -> *mut BNStructure;
22408}
22409unsafe extern "C" {
22410    pub fn BNGetTypeBuilderEnumeration(type_: *mut BNTypeBuilder) -> *mut BNEnumeration;
22411}
22412unsafe extern "C" {
22413    pub fn BNGetTypeBuilderNamedTypeReference(
22414        type_: *mut BNTypeBuilder,
22415    ) -> *mut BNNamedTypeReference;
22416}
22417unsafe extern "C" {
22418    pub fn BNSetTypeBuilderNamedTypeReference(
22419        type_: *mut BNTypeBuilder,
22420        ntr: *mut BNNamedTypeReference,
22421    );
22422}
22423unsafe extern "C" {
22424    pub fn BNGetTypeBuilderElementCount(type_: *mut BNTypeBuilder) -> u64;
22425}
22426unsafe extern "C" {
22427    pub fn BNGetTypeBuilderOffset(type_: *mut BNTypeBuilder) -> u64;
22428}
22429unsafe extern "C" {
22430    pub fn BNGetTypeBuilderFragmentOriginalOffsetBytes(type_: *mut BNTypeBuilder) -> u64;
22431}
22432unsafe extern "C" {
22433    pub fn BNGetTypeBuilderFragmentOriginalWidthBytes(type_: *mut BNTypeBuilder) -> usize;
22434}
22435unsafe extern "C" {
22436    pub fn BNGetTypeBuilderFragmentStartBit(type_: *mut BNTypeBuilder) -> usize;
22437}
22438unsafe extern "C" {
22439    pub fn BNGetTypeBuilderFragmentWidthBits(type_: *mut BNTypeBuilder) -> usize;
22440}
22441unsafe extern "C" {
22442    pub fn BNGetTypeBuilderFragmentTruncatedStartBits(type_: *mut BNTypeBuilder) -> usize;
22443}
22444unsafe extern "C" {
22445    pub fn BNGetTypeBuilderFragmentWrapBit(type_: *mut BNTypeBuilder) -> usize;
22446}
22447unsafe extern "C" {
22448    pub fn BNGetTypeBuilderFragmentEndianness(type_: *mut BNTypeBuilder) -> BNEndianness;
22449}
22450unsafe extern "C" {
22451    pub fn BNSetTypeBuilderOffset(type_: *mut BNTypeBuilder, offset: u64);
22452}
22453unsafe extern "C" {
22454    pub fn BNSetTypeBuilderPointerBase(
22455        type_: *mut BNTypeBuilder,
22456        baseType: BNPointerBaseType,
22457        baseOffset: i64,
22458    );
22459}
22460unsafe extern "C" {
22461    pub fn BNSetTypeBuilderFragmentOriginalOffsetBytes(type_: *mut BNTypeBuilder, offset: u64);
22462}
22463unsafe extern "C" {
22464    pub fn BNSetTypeBuilderFragmentOriginalWidthBytes(type_: *mut BNTypeBuilder, size: usize);
22465}
22466unsafe extern "C" {
22467    pub fn BNSetTypeBuilderFragmentStartBit(type_: *mut BNTypeBuilder, startBit: usize);
22468}
22469unsafe extern "C" {
22470    pub fn BNSetTypeBuilderFragmentWidthBits(type_: *mut BNTypeBuilder, widthBits: usize);
22471}
22472unsafe extern "C" {
22473    pub fn BNSetTypeBuilderFragmentTruncatedStartBits(
22474        type_: *mut BNTypeBuilder,
22475        truncatedBits: usize,
22476    );
22477}
22478unsafe extern "C" {
22479    pub fn BNSetTypeBuilderFragmentWrapBit(type_: *mut BNTypeBuilder, wrapBit: usize);
22480}
22481unsafe extern "C" {
22482    pub fn BNSetTypeBuilderFragmentEndianness(type_: *mut BNTypeBuilder, endianness: BNEndianness);
22483}
22484unsafe extern "C" {
22485    pub fn BNSetFunctionTypeBuilderCanReturn(
22486        type_: *mut BNTypeBuilder,
22487        canReturn: *mut BNBoolWithConfidence,
22488    );
22489}
22490unsafe extern "C" {
22491    pub fn BNSetTypeBuilderPure(type_: *mut BNTypeBuilder, pure_: *mut BNBoolWithConfidence);
22492}
22493unsafe extern "C" {
22494    pub fn BNSetFunctionTypeBuilderParameters(
22495        type_: *mut BNTypeBuilder,
22496        params: *mut BNFunctionParameter,
22497        paramCount: usize,
22498    );
22499}
22500unsafe extern "C" {
22501    pub fn BNTypeBuilderSetWidth(type_: *mut BNTypeBuilder, width: usize);
22502}
22503unsafe extern "C" {
22504    pub fn BNTypeBuilderSetAlignment(type_: *mut BNTypeBuilder, alignment: usize);
22505}
22506unsafe extern "C" {
22507    pub fn BNTypeBuilderSetConst(type_: *mut BNTypeBuilder, cnst: *mut BNBoolWithConfidence);
22508}
22509unsafe extern "C" {
22510    pub fn BNTypeBuilderSetVolatile(type_: *mut BNTypeBuilder, vltl: *mut BNBoolWithConfidence);
22511}
22512unsafe extern "C" {
22513    pub fn BNTypeBuilderSetSigned(type_: *mut BNTypeBuilder, sign: *mut BNBoolWithConfidence);
22514}
22515unsafe extern "C" {
22516    pub fn BNTypeBuilderSetChildType(type_: *mut BNTypeBuilder, child: *mut BNTypeWithConfidence);
22517}
22518unsafe extern "C" {
22519    pub fn BNTypeBuilderSetReturnValue(type_: *mut BNTypeBuilder, rv: *mut BNReturnValue);
22520}
22521unsafe extern "C" {
22522    pub fn BNTypeBuilderSetIsReturnValueDefaultLocation(
22523        type_: *mut BNTypeBuilder,
22524        defaultLocation: bool,
22525    );
22526}
22527unsafe extern "C" {
22528    pub fn BNTypeBuilderSetReturnValueLocation(
22529        type_: *mut BNTypeBuilder,
22530        location: *mut BNValueLocationWithConfidence,
22531    );
22532}
22533unsafe extern "C" {
22534    pub fn BNTypeBuilderSetCallingConvention(
22535        type_: *mut BNTypeBuilder,
22536        cc: *mut BNCallingConventionWithConfidence,
22537    );
22538}
22539unsafe extern "C" {
22540    pub fn BNTypeBuilderSetCallingConventionName(
22541        type_: *mut BNTypeBuilder,
22542        cc: BNCallingConventionName,
22543    );
22544}
22545unsafe extern "C" {
22546    pub fn BNGetTypeBuilderStackAdjustment(type_: *mut BNTypeBuilder) -> BNOffsetWithConfidence;
22547}
22548unsafe extern "C" {
22549    pub fn BNTypeBuilderGetStructureName(type_: *mut BNTypeBuilder) -> BNQualifiedName;
22550}
22551unsafe extern "C" {
22552    pub fn BNTypeBuilderGetReferenceType(type_: *mut BNTypeBuilder) -> BNReferenceType;
22553}
22554unsafe extern "C" {
22555    pub fn BNTypeBuilderGetPointerBaseType(type_: *mut BNTypeBuilder) -> BNPointerBaseType;
22556}
22557unsafe extern "C" {
22558    pub fn BNTypeBuilderGetPointerBaseOffset(type_: *mut BNTypeBuilder) -> i64;
22559}
22560unsafe extern "C" {
22561    pub fn BNGetTypeBuilderAlternateName(type_: *mut BNTypeBuilder) -> *mut ::std::os::raw::c_char;
22562}
22563unsafe extern "C" {
22564    pub fn BNTypeBuilderIsSystemCall(type_: *mut BNTypeBuilder) -> bool;
22565}
22566unsafe extern "C" {
22567    pub fn BNTypeBuilderGetSystemCallNumber(type_: *mut BNTypeBuilder) -> u32;
22568}
22569unsafe extern "C" {
22570    pub fn BNTypeBuilderSetStackAdjustment(
22571        type_: *mut BNTypeBuilder,
22572        adjust: *mut BNOffsetWithConfidence,
22573    );
22574}
22575unsafe extern "C" {
22576    pub fn BNGetTypeBuilderPointerSuffix(
22577        type_: *mut BNTypeBuilder,
22578        count: *mut usize,
22579    ) -> *mut BNPointerSuffix;
22580}
22581unsafe extern "C" {
22582    pub fn BNGetTypeBuilderPointerSuffixString(
22583        type_: *mut BNTypeBuilder,
22584    ) -> *mut ::std::os::raw::c_char;
22585}
22586unsafe extern "C" {
22587    pub fn BNGetTypeBuilderPointerSuffixTokens(
22588        type_: *mut BNTypeBuilder,
22589        baseConfidence: u8,
22590        count: *mut usize,
22591    ) -> *mut BNInstructionTextToken;
22592}
22593unsafe extern "C" {
22594    pub fn BNAddTypeBuilderPointerSuffix(type_: *mut BNTypeBuilder, ps: BNPointerSuffix);
22595}
22596unsafe extern "C" {
22597    pub fn BNSetTypeBuilderPointerSuffix(
22598        type_: *mut BNTypeBuilder,
22599        suffix: *mut BNPointerSuffix,
22600        count: usize,
22601    );
22602}
22603unsafe extern "C" {
22604    pub fn BNGetTypeBuilderNameType(type_: *mut BNTypeBuilder) -> BNNameType;
22605}
22606unsafe extern "C" {
22607    pub fn BNTypeBuilderHasTemplateArguments(type_: *mut BNTypeBuilder) -> bool;
22608}
22609unsafe extern "C" {
22610    pub fn BNSetTypeBuilderNameType(type_: *mut BNTypeBuilder, nameType: BNNameType);
22611}
22612unsafe extern "C" {
22613    pub fn BNSetTypeBuilderHasTemplateArguments(
22614        type_: *mut BNTypeBuilder,
22615        hasTemplateArguments: bool,
22616    );
22617}
22618unsafe extern "C" {
22619    pub fn BNSetTypeBuilderAttribute(
22620        type_: *mut BNTypeBuilder,
22621        name: *const ::std::os::raw::c_char,
22622        value: *const ::std::os::raw::c_char,
22623    );
22624}
22625unsafe extern "C" {
22626    pub fn BNSetTypeBuilderAttributeList(
22627        type_: *mut BNTypeBuilder,
22628        attrs: *mut BNTypeAttribute,
22629        count: usize,
22630    );
22631}
22632unsafe extern "C" {
22633    pub fn BNRemoveTypeBuilderAttribute(
22634        type_: *mut BNTypeBuilder,
22635        name: *const ::std::os::raw::c_char,
22636    );
22637}
22638unsafe extern "C" {
22639    pub fn BNGetTypeBuilderAttributes(
22640        type_: *mut BNTypeBuilder,
22641        count: *mut usize,
22642    ) -> *mut BNTypeAttribute;
22643}
22644unsafe extern "C" {
22645    pub fn BNGetTypeBuilderAttributeByName(
22646        type_: *mut BNTypeBuilder,
22647        name: *const ::std::os::raw::c_char,
22648    ) -> *mut ::std::os::raw::c_char;
22649}
22650unsafe extern "C" {
22651    pub fn BNGetTypeBuilderString(
22652        type_: *mut BNTypeBuilder,
22653        platform: *mut BNPlatform,
22654    ) -> *mut ::std::os::raw::c_char;
22655}
22656unsafe extern "C" {
22657    pub fn BNGetTypeBuilderStringBeforeName(
22658        type_: *mut BNTypeBuilder,
22659        platform: *mut BNPlatform,
22660    ) -> *mut ::std::os::raw::c_char;
22661}
22662unsafe extern "C" {
22663    pub fn BNGetTypeBuilderStringAfterName(
22664        type_: *mut BNTypeBuilder,
22665        platform: *mut BNPlatform,
22666    ) -> *mut ::std::os::raw::c_char;
22667}
22668unsafe extern "C" {
22669    pub fn BNGetTypeBuilderTokens(
22670        type_: *mut BNTypeBuilder,
22671        platform: *mut BNPlatform,
22672        baseConfidence: u8,
22673        count: *mut usize,
22674    ) -> *mut BNInstructionTextToken;
22675}
22676unsafe extern "C" {
22677    pub fn BNGetTypeBuilderTokensBeforeName(
22678        type_: *mut BNTypeBuilder,
22679        platform: *mut BNPlatform,
22680        baseConfidence: u8,
22681        count: *mut usize,
22682    ) -> *mut BNInstructionTextToken;
22683}
22684unsafe extern "C" {
22685    pub fn BNGetTypeBuilderTokensAfterName(
22686        type_: *mut BNTypeBuilder,
22687        platform: *mut BNPlatform,
22688        baseConfidence: u8,
22689        count: *mut usize,
22690    ) -> *mut BNInstructionTextToken;
22691}
22692unsafe extern "C" {
22693    pub fn BNCreateNamedTypeReference(
22694        nt: *mut BNNamedTypeReference,
22695        width: usize,
22696        align: usize,
22697        cnst: *mut BNBoolWithConfidence,
22698        vltl: *mut BNBoolWithConfidence,
22699    ) -> *mut BNType;
22700}
22701unsafe extern "C" {
22702    pub fn BNCreateNamedTypeReferenceFromTypeAndId(
22703        id: *const ::std::os::raw::c_char,
22704        name: *mut BNQualifiedName,
22705        type_: *mut BNType,
22706    ) -> *mut BNType;
22707}
22708unsafe extern "C" {
22709    pub fn BNCreateNamedTypeReferenceFromType(
22710        view: *mut BNBinaryView,
22711        name: *mut BNQualifiedName,
22712    ) -> *mut BNType;
22713}
22714unsafe extern "C" {
22715    pub fn BNCreateNamedTypeReferenceBuilder(
22716        nt: *mut BNNamedTypeReference,
22717        width: usize,
22718        align: usize,
22719        cnst: *mut BNBoolWithConfidence,
22720        vltl: *mut BNBoolWithConfidence,
22721    ) -> *mut BNTypeBuilder;
22722}
22723unsafe extern "C" {
22724    pub fn BNCreateNamedTypeReferenceBuilderWithBuilder(
22725        nt: *mut BNNamedTypeReferenceBuilder,
22726        width: usize,
22727        align: usize,
22728        cnst: *mut BNBoolWithConfidence,
22729        vltl: *mut BNBoolWithConfidence,
22730    ) -> *mut BNTypeBuilder;
22731}
22732unsafe extern "C" {
22733    pub fn BNCreateNamedTypeReferenceBuilderFromTypeAndId(
22734        id: *const ::std::os::raw::c_char,
22735        name: *mut BNQualifiedName,
22736        type_: *mut BNType,
22737    ) -> *mut BNTypeBuilder;
22738}
22739unsafe extern "C" {
22740    pub fn BNCreateNamedTypeReferenceBuilderFromType(
22741        view: *mut BNBinaryView,
22742        name: *mut BNQualifiedName,
22743    ) -> *mut BNTypeBuilder;
22744}
22745unsafe extern "C" {
22746    pub fn BNCreateNamedType(
22747        cls: BNNamedTypeReferenceClass,
22748        id: *const ::std::os::raw::c_char,
22749        name: *mut BNQualifiedName,
22750    ) -> *mut BNNamedTypeReference;
22751}
22752unsafe extern "C" {
22753    pub fn BNGetTypeReferenceClass(nt: *mut BNNamedTypeReference) -> BNNamedTypeReferenceClass;
22754}
22755unsafe extern "C" {
22756    pub fn BNGetTypeReferenceId(nt: *mut BNNamedTypeReference) -> *mut ::std::os::raw::c_char;
22757}
22758unsafe extern "C" {
22759    pub fn BNGetTypeReferenceName(nt: *mut BNNamedTypeReference) -> BNQualifiedName;
22760}
22761unsafe extern "C" {
22762    pub fn BNFreeQualifiedName(name: *mut BNQualifiedName);
22763}
22764unsafe extern "C" {
22765    pub fn BNFreeQualifiedNameArray(names: *mut BNQualifiedName, count: usize);
22766}
22767unsafe extern "C" {
22768    pub fn BNFreeNamedTypeReference(nt: *mut BNNamedTypeReference);
22769}
22770unsafe extern "C" {
22771    pub fn BNNewNamedTypeReference(nt: *mut BNNamedTypeReference) -> *mut BNNamedTypeReference;
22772}
22773unsafe extern "C" {
22774    pub fn BNCreateNamedTypeBuilder(
22775        cls: BNNamedTypeReferenceClass,
22776        id: *const ::std::os::raw::c_char,
22777        name: *mut BNQualifiedName,
22778    ) -> *mut BNNamedTypeReferenceBuilder;
22779}
22780unsafe extern "C" {
22781    pub fn BNFreeNamedTypeReferenceBuilder(s: *mut BNNamedTypeReferenceBuilder);
22782}
22783unsafe extern "C" {
22784    pub fn BNSetNamedTypeReferenceBuilderTypeClass(
22785        s: *mut BNNamedTypeReferenceBuilder,
22786        type_: BNNamedTypeReferenceClass,
22787    );
22788}
22789unsafe extern "C" {
22790    pub fn BNSetNamedTypeReferenceBuilderTypeId(
22791        s: *mut BNNamedTypeReferenceBuilder,
22792        id: *const ::std::os::raw::c_char,
22793    );
22794}
22795unsafe extern "C" {
22796    pub fn BNSetNamedTypeReferenceBuilderName(
22797        s: *mut BNNamedTypeReferenceBuilder,
22798        name: *mut BNQualifiedName,
22799    );
22800}
22801unsafe extern "C" {
22802    pub fn BNFinalizeNamedTypeReferenceBuilder(
22803        s: *mut BNNamedTypeReferenceBuilder,
22804    ) -> *mut BNNamedTypeReference;
22805}
22806unsafe extern "C" {
22807    pub fn BNGetTypeReferenceBuilderClass(
22808        nt: *mut BNNamedTypeReferenceBuilder,
22809    ) -> BNNamedTypeReferenceClass;
22810}
22811unsafe extern "C" {
22812    pub fn BNGetTypeReferenceBuilderId(
22813        nt: *mut BNNamedTypeReferenceBuilder,
22814    ) -> *mut ::std::os::raw::c_char;
22815}
22816unsafe extern "C" {
22817    pub fn BNGetTypeReferenceBuilderName(nt: *mut BNNamedTypeReferenceBuilder) -> BNQualifiedName;
22818}
22819unsafe extern "C" {
22820    pub fn BNSetNamedTypeReferenceBuilder(
22821        type_: *mut BNTypeBuilder,
22822        nt: *mut BNNamedTypeReferenceBuilder,
22823    );
22824}
22825unsafe extern "C" {
22826    pub fn BNCreateStructureBuilder() -> *mut BNStructureBuilder;
22827}
22828unsafe extern "C" {
22829    pub fn BNCreateStructureBuilderWithOptions(
22830        type_: BNStructureVariant,
22831        packed: bool,
22832    ) -> *mut BNStructureBuilder;
22833}
22834unsafe extern "C" {
22835    pub fn BNCreateStructureBuilderFromStructure(s: *mut BNStructure) -> *mut BNStructureBuilder;
22836}
22837unsafe extern "C" {
22838    pub fn BNDuplicateStructureBuilder(s: *mut BNStructureBuilder) -> *mut BNStructureBuilder;
22839}
22840unsafe extern "C" {
22841    pub fn BNFinalizeStructureBuilder(s: *mut BNStructureBuilder) -> *mut BNStructure;
22842}
22843unsafe extern "C" {
22844    pub fn BNNewStructureReference(s: *mut BNStructure) -> *mut BNStructure;
22845}
22846unsafe extern "C" {
22847    pub fn BNFreeStructure(s: *mut BNStructure);
22848}
22849unsafe extern "C" {
22850    pub fn BNFreeStructureBuilder(s: *mut BNStructureBuilder);
22851}
22852unsafe extern "C" {
22853    pub fn BNSetStructureBuilder(type_: *mut BNTypeBuilder, s: *mut BNStructureBuilder);
22854}
22855unsafe extern "C" {
22856    pub fn BNGetStructureMemberByName(
22857        s: *mut BNStructure,
22858        name: *const ::std::os::raw::c_char,
22859    ) -> *mut BNStructureMember;
22860}
22861unsafe extern "C" {
22862    pub fn BNGetStructureMemberAtOffset(
22863        s: *mut BNStructure,
22864        offset: i64,
22865        idx: *mut usize,
22866    ) -> *mut BNStructureMember;
22867}
22868unsafe extern "C" {
22869    pub fn BNFreeStructureMember(s: *mut BNStructureMember);
22870}
22871unsafe extern "C" {
22872    pub fn BNGetStructureMembers(s: *mut BNStructure, count: *mut usize) -> *mut BNStructureMember;
22873}
22874unsafe extern "C" {
22875    pub fn BNFreeStructureMemberList(members: *mut BNStructureMember, count: usize);
22876}
22877unsafe extern "C" {
22878    pub fn BNGetStructureMembersIncludingInherited(
22879        s: *mut BNStructure,
22880        types: *mut BNTypeContainer,
22881        count: *mut usize,
22882    ) -> *mut BNInheritedStructureMember;
22883}
22884unsafe extern "C" {
22885    pub fn BNFreeInheritedStructureMemberList(
22886        members: *mut BNInheritedStructureMember,
22887        count: usize,
22888    );
22889}
22890unsafe extern "C" {
22891    pub fn BNGetMemberIncludingInheritedAtOffset(
22892        s: *mut BNStructure,
22893        view: *mut BNBinaryView,
22894        offset: i64,
22895    ) -> *mut BNInheritedStructureMember;
22896}
22897unsafe extern "C" {
22898    pub fn BNFreeInheritedStructureMember(members: *mut BNInheritedStructureMember);
22899}
22900unsafe extern "C" {
22901    pub fn BNGetStructureWidth(s: *mut BNStructure) -> u64;
22902}
22903unsafe extern "C" {
22904    pub fn BNGetStructurePointerOffset(s: *mut BNStructure) -> i64;
22905}
22906unsafe extern "C" {
22907    pub fn BNGetStructureAlignment(s: *mut BNStructure) -> usize;
22908}
22909unsafe extern "C" {
22910    pub fn BNIsStructurePacked(s: *mut BNStructure) -> bool;
22911}
22912unsafe extern "C" {
22913    pub fn BNIsStructureUnion(s: *mut BNStructure) -> bool;
22914}
22915unsafe extern "C" {
22916    pub fn BNStructurePropagatesDataVariableReferences(s: *mut BNStructure) -> bool;
22917}
22918unsafe extern "C" {
22919    pub fn BNGetStructureType(s: *mut BNStructure) -> BNStructureVariant;
22920}
22921unsafe extern "C" {
22922    pub fn BNGetBaseStructuresForStructure(
22923        s: *mut BNStructure,
22924        count: *mut usize,
22925    ) -> *mut BNBaseStructure;
22926}
22927unsafe extern "C" {
22928    pub fn BNFreeBaseStructureList(bases: *mut BNBaseStructure, count: usize);
22929}
22930unsafe extern "C" {
22931    pub fn BNResolveStructureMemberOrBaseMember(
22932        s: *mut BNStructure,
22933        data: *mut BNBinaryView,
22934        offset: u64,
22935        size: usize,
22936        callbackContext: *mut ::std::os::raw::c_void,
22937        resolveFunc: ::std::option::Option<
22938            unsafe extern "C" fn(
22939                ctxt: *mut ::std::os::raw::c_void,
22940                baseName: *mut BNNamedTypeReference,
22941                resolvedStruct: *mut BNStructure,
22942                memberIndex: usize,
22943                structOffset: u64,
22944                adjustedOffset: u64,
22945                member: BNStructureMember,
22946            ),
22947        >,
22948        memberIndexHintValid: bool,
22949        memberIndexHint: usize,
22950    ) -> bool;
22951}
22952unsafe extern "C" {
22953    pub fn BNStructureWithReplacedStructure(
22954        s: *mut BNStructure,
22955        from: *mut BNStructure,
22956        to: *mut BNStructure,
22957    ) -> *mut BNStructure;
22958}
22959unsafe extern "C" {
22960    pub fn BNStructureWithReplacedEnumeration(
22961        s: *mut BNStructure,
22962        from: *mut BNEnumeration,
22963        to: *mut BNEnumeration,
22964    ) -> *mut BNStructure;
22965}
22966unsafe extern "C" {
22967    pub fn BNStructureWithReplacedNamedTypeReference(
22968        s: *mut BNStructure,
22969        from: *mut BNNamedTypeReference,
22970        to: *mut BNNamedTypeReference,
22971    ) -> *mut BNStructure;
22972}
22973unsafe extern "C" {
22974    pub fn BNGetStructureBuilderMemberByName(
22975        s: *mut BNStructureBuilder,
22976        name: *const ::std::os::raw::c_char,
22977    ) -> *mut BNStructureMember;
22978}
22979unsafe extern "C" {
22980    pub fn BNGetStructureBuilderMemberAtOffset(
22981        s: *mut BNStructureBuilder,
22982        offset: i64,
22983        idx: *mut usize,
22984    ) -> *mut BNStructureMember;
22985}
22986unsafe extern "C" {
22987    pub fn BNGetStructureBuilderMembers(
22988        s: *mut BNStructureBuilder,
22989        count: *mut usize,
22990    ) -> *mut BNStructureMember;
22991}
22992unsafe extern "C" {
22993    pub fn BNGetStructureBuilderWidth(s: *mut BNStructureBuilder) -> u64;
22994}
22995unsafe extern "C" {
22996    pub fn BNSetStructureBuilderWidth(s: *mut BNStructureBuilder, width: u64);
22997}
22998unsafe extern "C" {
22999    pub fn BNGetStructureBuilderPointerOffset(s: *mut BNStructureBuilder) -> i64;
23000}
23001unsafe extern "C" {
23002    pub fn BNSetStructureBuilderPointerOffset(s: *mut BNStructureBuilder, offset: i64);
23003}
23004unsafe extern "C" {
23005    pub fn BNGetStructureBuilderAlignment(s: *mut BNStructureBuilder) -> usize;
23006}
23007unsafe extern "C" {
23008    pub fn BNSetStructureBuilderAlignment(s: *mut BNStructureBuilder, align: usize);
23009}
23010unsafe extern "C" {
23011    pub fn BNIsStructureBuilderPacked(s: *mut BNStructureBuilder) -> bool;
23012}
23013unsafe extern "C" {
23014    pub fn BNSetStructureBuilderPacked(s: *mut BNStructureBuilder, packed: bool);
23015}
23016unsafe extern "C" {
23017    pub fn BNIsStructureBuilderUnion(s: *mut BNStructureBuilder) -> bool;
23018}
23019unsafe extern "C" {
23020    pub fn BNSetStructureBuilderType(s: *mut BNStructureBuilder, type_: BNStructureVariant);
23021}
23022unsafe extern "C" {
23023    pub fn BNStructureBuilderPropagatesDataVariableReferences(s: *mut BNStructureBuilder) -> bool;
23024}
23025unsafe extern "C" {
23026    pub fn BNSetStructureBuilderPropagatesDataVariableReferences(
23027        s: *mut BNStructureBuilder,
23028        value: bool,
23029    );
23030}
23031unsafe extern "C" {
23032    pub fn BNGetStructureBuilderType(s: *mut BNStructureBuilder) -> BNStructureVariant;
23033}
23034unsafe extern "C" {
23035    pub fn BNGetBaseStructuresForStructureBuilder(
23036        s: *mut BNStructureBuilder,
23037        count: *mut usize,
23038    ) -> *mut BNBaseStructure;
23039}
23040unsafe extern "C" {
23041    pub fn BNSetBaseStructuresForStructureBuilder(
23042        s: *mut BNStructureBuilder,
23043        bases: *mut BNBaseStructure,
23044        count: usize,
23045    );
23046}
23047unsafe extern "C" {
23048    pub fn BNAddStructureBuilderMember(
23049        s: *mut BNStructureBuilder,
23050        type_: *const BNTypeWithConfidence,
23051        name: *const ::std::os::raw::c_char,
23052        access: BNMemberAccess,
23053        scope: BNMemberScope,
23054    );
23055}
23056unsafe extern "C" {
23057    pub fn BNAddStructureBuilderMemberAtOffset(
23058        s: *mut BNStructureBuilder,
23059        type_: *const BNTypeWithConfidence,
23060        name: *const ::std::os::raw::c_char,
23061        offset: u64,
23062        overwriteExisting: bool,
23063        access: BNMemberAccess,
23064        scope: BNMemberScope,
23065        bitPosition: u8,
23066        bitWidth: u8,
23067    );
23068}
23069unsafe extern "C" {
23070    pub fn BNRemoveStructureBuilderMember(s: *mut BNStructureBuilder, idx: usize);
23071}
23072unsafe extern "C" {
23073    pub fn BNReplaceStructureBuilderMember(
23074        s: *mut BNStructureBuilder,
23075        idx: usize,
23076        type_: *const BNTypeWithConfidence,
23077        name: *const ::std::os::raw::c_char,
23078        overwriteExisting: bool,
23079    );
23080}
23081unsafe extern "C" {
23082    pub fn BNCreateEnumerationBuilder() -> *mut BNEnumerationBuilder;
23083}
23084unsafe extern "C" {
23085    pub fn BNCreateEnumerationBuilderFromEnumeration(
23086        e: *mut BNEnumeration,
23087    ) -> *mut BNEnumerationBuilder;
23088}
23089unsafe extern "C" {
23090    pub fn BNDuplicateEnumerationBuilder(e: *mut BNEnumerationBuilder)
23091    -> *mut BNEnumerationBuilder;
23092}
23093unsafe extern "C" {
23094    pub fn BNFinalizeEnumerationBuilder(e: *mut BNEnumerationBuilder) -> *mut BNEnumeration;
23095}
23096unsafe extern "C" {
23097    pub fn BNNewEnumerationReference(e: *mut BNEnumeration) -> *mut BNEnumeration;
23098}
23099unsafe extern "C" {
23100    pub fn BNFreeEnumeration(e: *mut BNEnumeration);
23101}
23102unsafe extern "C" {
23103    pub fn BNFreeEnumerationBuilder(e: *mut BNEnumerationBuilder);
23104}
23105unsafe extern "C" {
23106    pub fn BNSetEnumerationBuilder(type_: *mut BNTypeBuilder, e: *mut BNEnumerationBuilder);
23107}
23108unsafe extern "C" {
23109    pub fn BNGetEnumerationMembers(
23110        e: *mut BNEnumeration,
23111        count: *mut usize,
23112    ) -> *mut BNEnumerationMember;
23113}
23114unsafe extern "C" {
23115    pub fn BNGetEnumerationTokensForValue(
23116        e: *mut BNEnumeration,
23117        value: u64,
23118        width: u64,
23119        count: *mut usize,
23120        type_: *mut BNType,
23121    ) -> *mut BNInstructionTextToken;
23122}
23123unsafe extern "C" {
23124    pub fn BNFreeEnumerationMemberList(members: *mut BNEnumerationMember, count: usize);
23125}
23126unsafe extern "C" {
23127    pub fn BNGetEnumerationBuilderMembers(
23128        e: *mut BNEnumerationBuilder,
23129        count: *mut usize,
23130    ) -> *mut BNEnumerationMember;
23131}
23132unsafe extern "C" {
23133    pub fn BNAddEnumerationBuilderMember(
23134        e: *mut BNEnumerationBuilder,
23135        name: *const ::std::os::raw::c_char,
23136    );
23137}
23138unsafe extern "C" {
23139    pub fn BNAddEnumerationBuilderMemberWithValue(
23140        e: *mut BNEnumerationBuilder,
23141        name: *const ::std::os::raw::c_char,
23142        value: u64,
23143    );
23144}
23145unsafe extern "C" {
23146    pub fn BNRemoveEnumerationBuilderMember(e: *mut BNEnumerationBuilder, idx: usize);
23147}
23148unsafe extern "C" {
23149    pub fn BNReplaceEnumerationBuilderMember(
23150        e: *mut BNEnumerationBuilder,
23151        idx: usize,
23152        name: *const ::std::os::raw::c_char,
23153        value: u64,
23154    );
23155}
23156unsafe extern "C" {
23157    pub fn BNCreateStructureFromOffsetAccess(
23158        view: *mut BNBinaryView,
23159        name: *mut BNQualifiedName,
23160        newMember: *mut bool,
23161    ) -> *mut BNStructure;
23162}
23163unsafe extern "C" {
23164    pub fn BNCreateStructureMemberFromAccess(
23165        view: *mut BNBinaryView,
23166        name: *mut BNQualifiedName,
23167        offset: u64,
23168    ) -> BNTypeWithConfidence;
23169}
23170unsafe extern "C" {
23171    pub fn BNAddExpressionParserMagicValue(
23172        view: *mut BNBinaryView,
23173        name: *const ::std::os::raw::c_char,
23174        value: u64,
23175    );
23176}
23177unsafe extern "C" {
23178    pub fn BNRemoveExpressionParserMagicValue(
23179        view: *mut BNBinaryView,
23180        name: *const ::std::os::raw::c_char,
23181    );
23182}
23183unsafe extern "C" {
23184    pub fn BNAddExpressionParserMagicValues(
23185        view: *mut BNBinaryView,
23186        names: *mut *const ::std::os::raw::c_char,
23187        values: *mut u64,
23188        count: usize,
23189    );
23190}
23191unsafe extern "C" {
23192    pub fn BNRemoveExpressionParserMagicValues(
23193        view: *mut BNBinaryView,
23194        names: *mut *const ::std::os::raw::c_char,
23195        count: usize,
23196    );
23197}
23198unsafe extern "C" {
23199    pub fn BNGetExpressionParserMagicValue(
23200        view: *mut BNBinaryView,
23201        name: *const ::std::os::raw::c_char,
23202        value: *mut u64,
23203    ) -> bool;
23204}
23205unsafe extern "C" {
23206    pub fn BNGetFunctionParentComponents(
23207        view: *mut BNBinaryView,
23208        func: *mut BNFunction,
23209        count: *mut usize,
23210    ) -> *mut *mut BNComponent;
23211}
23212unsafe extern "C" {
23213    pub fn BNGetDataVariableParentComponents(
23214        view: *mut BNBinaryView,
23215        dataVariable: u64,
23216        count: *mut usize,
23217    ) -> *mut *mut BNComponent;
23218}
23219unsafe extern "C" {
23220    pub fn BNCheckForStringAnnotationType(
23221        view: *mut BNBinaryView,
23222        addr: u64,
23223        value: *mut *mut ::std::os::raw::c_char,
23224        strType: *mut BNStringType,
23225        allowShortStrings: bool,
23226        allowLargeStrings: bool,
23227        childWidth: usize,
23228    ) -> bool;
23229}
23230unsafe extern "C" {
23231    pub fn BNLoadFilename(
23232        filename: *const ::std::os::raw::c_char,
23233        updateAnalysis: bool,
23234        options: *const ::std::os::raw::c_char,
23235        progress: BNProgressFunction,
23236        progressContext: *mut ::std::os::raw::c_void,
23237    ) -> *mut BNBinaryView;
23238}
23239unsafe extern "C" {
23240    pub fn BNLoadProjectFile(
23241        projectFile: *mut BNProjectFile,
23242        updateAnalysis: bool,
23243        options: *const ::std::os::raw::c_char,
23244        progress: BNProgressFunction,
23245        progressContext: *mut ::std::os::raw::c_void,
23246    ) -> *mut BNBinaryView;
23247}
23248unsafe extern "C" {
23249    pub fn BNLoadBinaryView(
23250        view: *mut BNBinaryView,
23251        updateAnalysis: bool,
23252        options: *const ::std::os::raw::c_char,
23253        progress: BNProgressFunction,
23254        progressContext: *mut ::std::os::raw::c_void,
23255    ) -> *mut BNBinaryView;
23256}
23257unsafe extern "C" {
23258    pub fn BNParseTextFormat(filename: *const ::std::os::raw::c_char) -> *mut BNBinaryView;
23259}
23260unsafe extern "C" {
23261    pub fn BNBinaryViewAddExternalLibrary(
23262        view: *mut BNBinaryView,
23263        name: *const ::std::os::raw::c_char,
23264        backingFile: *mut BNProjectFile,
23265        isAuto: bool,
23266    ) -> *mut BNExternalLibrary;
23267}
23268unsafe extern "C" {
23269    pub fn BNBinaryViewRemoveExternalLibrary(
23270        view: *mut BNBinaryView,
23271        name: *const ::std::os::raw::c_char,
23272    );
23273}
23274unsafe extern "C" {
23275    pub fn BNBinaryViewGetExternalLibrary(
23276        view: *mut BNBinaryView,
23277        name: *const ::std::os::raw::c_char,
23278    ) -> *mut BNExternalLibrary;
23279}
23280unsafe extern "C" {
23281    pub fn BNBinaryViewGetExternalLibraries(
23282        view: *mut BNBinaryView,
23283        count: *mut usize,
23284    ) -> *mut *mut BNExternalLibrary;
23285}
23286unsafe extern "C" {
23287    pub fn BNBinaryViewAddExternalLocation(
23288        view: *mut BNBinaryView,
23289        sourceSymbol: *mut BNSymbol,
23290        library: *mut BNExternalLibrary,
23291        targetSymbol: *const ::std::os::raw::c_char,
23292        targetAddress: *mut u64,
23293        isAuto: bool,
23294    ) -> *mut BNExternalLocation;
23295}
23296unsafe extern "C" {
23297    pub fn BNBinaryViewRemoveExternalLocation(view: *mut BNBinaryView, sourceSymbol: *mut BNSymbol);
23298}
23299unsafe extern "C" {
23300    pub fn BNBinaryViewGetExternalLocation(
23301        view: *mut BNBinaryView,
23302        sourceSymbol: *mut BNSymbol,
23303    ) -> *mut BNExternalLocation;
23304}
23305unsafe extern "C" {
23306    pub fn BNBinaryViewGetExternalLocations(
23307        view: *mut BNBinaryView,
23308        count: *mut usize,
23309    ) -> *mut *mut BNExternalLocation;
23310}
23311unsafe extern "C" {
23312    #[doc = " Source code processing"]
23313    pub fn BNPreprocessSource(
23314        source: *const ::std::os::raw::c_char,
23315        fileName: *const ::std::os::raw::c_char,
23316        output: *mut *mut ::std::os::raw::c_char,
23317        errors: *mut *mut ::std::os::raw::c_char,
23318        includeDirs: *mut *const ::std::os::raw::c_char,
23319        includeDirCount: usize,
23320    ) -> bool;
23321}
23322unsafe extern "C" {
23323    pub fn BNParseTypesFromSource(
23324        platform: *mut BNPlatform,
23325        source: *const ::std::os::raw::c_char,
23326        fileName: *const ::std::os::raw::c_char,
23327        result: *mut BNTypeParserResult,
23328        errors: *mut *mut ::std::os::raw::c_char,
23329        includeDirs: *mut *const ::std::os::raw::c_char,
23330        includeDirCount: usize,
23331        autoTypeSource: *const ::std::os::raw::c_char,
23332    ) -> bool;
23333}
23334unsafe extern "C" {
23335    pub fn BNParseTypesFromSourceFile(
23336        platform: *mut BNPlatform,
23337        fileName: *const ::std::os::raw::c_char,
23338        result: *mut BNTypeParserResult,
23339        errors: *mut *mut ::std::os::raw::c_char,
23340        includeDirs: *mut *const ::std::os::raw::c_char,
23341        includeDirCount: usize,
23342        autoTypeSource: *const ::std::os::raw::c_char,
23343    ) -> bool;
23344}
23345unsafe extern "C" {
23346    pub fn BNRegisterTypeParser(
23347        name: *const ::std::os::raw::c_char,
23348        callbacks: *mut BNTypeParserCallbacks,
23349    ) -> *mut BNTypeParser;
23350}
23351unsafe extern "C" {
23352    pub fn BNGetTypeParserList(count: *mut usize) -> *mut *mut BNTypeParser;
23353}
23354unsafe extern "C" {
23355    pub fn BNFreeTypeParserList(parsers: *mut *mut BNTypeParser);
23356}
23357unsafe extern "C" {
23358    pub fn BNGetTypeParserByName(name: *const ::std::os::raw::c_char) -> *mut BNTypeParser;
23359}
23360unsafe extern "C" {
23361    pub fn BNGetDefaultTypeParser() -> *mut BNTypeParser;
23362}
23363unsafe extern "C" {
23364    pub fn BNGetTypeParserName(parser: *mut BNTypeParser) -> *mut ::std::os::raw::c_char;
23365}
23366unsafe extern "C" {
23367    pub fn BNGetTypeParserOptionText(
23368        parser: *mut BNTypeParser,
23369        option: BNTypeParserOption,
23370        value: *const ::std::os::raw::c_char,
23371        result: *mut *mut ::std::os::raw::c_char,
23372    ) -> bool;
23373}
23374unsafe extern "C" {
23375    pub fn BNTypeParserPreprocessSource(
23376        parser: *mut BNTypeParser,
23377        source: *const ::std::os::raw::c_char,
23378        fileName: *const ::std::os::raw::c_char,
23379        platform: *mut BNPlatform,
23380        existingTypes: *mut BNTypeContainer,
23381        options: *const *const ::std::os::raw::c_char,
23382        optionCount: usize,
23383        includeDirs: *const *const ::std::os::raw::c_char,
23384        includeDirCount: usize,
23385        output: *mut *mut ::std::os::raw::c_char,
23386        errors: *mut *mut BNTypeParserError,
23387        errorCount: *mut usize,
23388    ) -> bool;
23389}
23390unsafe extern "C" {
23391    pub fn BNTypeParserParseTypesFromSource(
23392        parser: *mut BNTypeParser,
23393        source: *const ::std::os::raw::c_char,
23394        fileName: *const ::std::os::raw::c_char,
23395        platform: *mut BNPlatform,
23396        existingTypes: *mut BNTypeContainer,
23397        options: *const *const ::std::os::raw::c_char,
23398        optionCount: usize,
23399        includeDirs: *const *const ::std::os::raw::c_char,
23400        includeDirCount: usize,
23401        autoTypeSource: *const ::std::os::raw::c_char,
23402        result: *mut BNTypeParserResult,
23403        errors: *mut *mut BNTypeParserError,
23404        errorCount: *mut usize,
23405    ) -> bool;
23406}
23407unsafe extern "C" {
23408    pub fn BNTypeParserParseTypeString(
23409        parser: *mut BNTypeParser,
23410        source: *const ::std::os::raw::c_char,
23411        platform: *mut BNPlatform,
23412        existingTypes: *mut BNTypeContainer,
23413        result: *mut BNQualifiedNameAndType,
23414        errors: *mut *mut BNTypeParserError,
23415        errorCount: *mut usize,
23416    ) -> bool;
23417}
23418unsafe extern "C" {
23419    pub fn BNParseTypeParserOptionsText(
23420        optionsText: *const ::std::os::raw::c_char,
23421        count: *mut usize,
23422    ) -> *mut *mut ::std::os::raw::c_char;
23423}
23424unsafe extern "C" {
23425    pub fn BNFormatTypeParserParseErrors(
23426        errors: *mut BNTypeParserError,
23427        count: usize,
23428    ) -> *mut ::std::os::raw::c_char;
23429}
23430unsafe extern "C" {
23431    pub fn BNRegisterTypePrinter(
23432        name: *const ::std::os::raw::c_char,
23433        callbacks: *mut BNTypePrinterCallbacks,
23434    ) -> *mut BNTypePrinter;
23435}
23436unsafe extern "C" {
23437    pub fn BNGetTypePrinterList(count: *mut usize) -> *mut *mut BNTypePrinter;
23438}
23439unsafe extern "C" {
23440    pub fn BNFreeTypePrinterList(printers: *mut *mut BNTypePrinter);
23441}
23442unsafe extern "C" {
23443    pub fn BNGetTypePrinterByName(name: *const ::std::os::raw::c_char) -> *mut BNTypePrinter;
23444}
23445unsafe extern "C" {
23446    pub fn BNGetTypePrinterName(printer: *mut BNTypePrinter) -> *mut ::std::os::raw::c_char;
23447}
23448unsafe extern "C" {
23449    pub fn BNGetTypePrinterTypeTokens(
23450        printer: *mut BNTypePrinter,
23451        type_: *mut BNType,
23452        platform: *mut BNPlatform,
23453        name: *mut BNQualifiedName,
23454        baseConfidence: u8,
23455        escaping: BNTokenEscapingType,
23456        result: *mut *mut BNInstructionTextToken,
23457        resultCount: *mut usize,
23458    ) -> bool;
23459}
23460unsafe extern "C" {
23461    pub fn BNGetTypePrinterTypeTokensBeforeName(
23462        printer: *mut BNTypePrinter,
23463        type_: *mut BNType,
23464        platform: *mut BNPlatform,
23465        baseConfidence: u8,
23466        parentType: *mut BNType,
23467        escaping: BNTokenEscapingType,
23468        result: *mut *mut BNInstructionTextToken,
23469        resultCount: *mut usize,
23470    ) -> bool;
23471}
23472unsafe extern "C" {
23473    pub fn BNGetTypePrinterTypeTokensAfterName(
23474        printer: *mut BNTypePrinter,
23475        type_: *mut BNType,
23476        platform: *mut BNPlatform,
23477        baseConfidence: u8,
23478        parentType: *mut BNType,
23479        escaping: BNTokenEscapingType,
23480        result: *mut *mut BNInstructionTextToken,
23481        resultCount: *mut usize,
23482    ) -> bool;
23483}
23484unsafe extern "C" {
23485    pub fn BNGetTypePrinterTypeString(
23486        printer: *mut BNTypePrinter,
23487        type_: *mut BNType,
23488        platform: *mut BNPlatform,
23489        name: *mut BNQualifiedName,
23490        escaping: BNTokenEscapingType,
23491        result: *mut *mut ::std::os::raw::c_char,
23492    ) -> bool;
23493}
23494unsafe extern "C" {
23495    pub fn BNGetTypePrinterTypeStringBeforeName(
23496        printer: *mut BNTypePrinter,
23497        type_: *mut BNType,
23498        platform: *mut BNPlatform,
23499        escaping: BNTokenEscapingType,
23500        result: *mut *mut ::std::os::raw::c_char,
23501    ) -> bool;
23502}
23503unsafe extern "C" {
23504    pub fn BNGetTypePrinterTypeStringAfterName(
23505        printer: *mut BNTypePrinter,
23506        type_: *mut BNType,
23507        platform: *mut BNPlatform,
23508        escaping: BNTokenEscapingType,
23509        result: *mut *mut ::std::os::raw::c_char,
23510    ) -> bool;
23511}
23512unsafe extern "C" {
23513    pub fn BNGetTypePrinterTypeLines(
23514        printer: *mut BNTypePrinter,
23515        type_: *mut BNType,
23516        types: *mut BNTypeContainer,
23517        name: *mut BNQualifiedName,
23518        paddingCols: ::std::os::raw::c_int,
23519        collapsed: bool,
23520        escaping: BNTokenEscapingType,
23521        result: *mut *mut BNTypeDefinitionLine,
23522        resultCount: *mut usize,
23523    ) -> bool;
23524}
23525unsafe extern "C" {
23526    pub fn BNTypePrinterPrintAllTypes(
23527        printer: *mut BNTypePrinter,
23528        names: *mut BNQualifiedName,
23529        types: *mut *mut BNType,
23530        typeCount: usize,
23531        data: *mut BNBinaryView,
23532        paddingCols: ::std::os::raw::c_int,
23533        escaping: BNTokenEscapingType,
23534        result: *mut *mut ::std::os::raw::c_char,
23535    ) -> bool;
23536}
23537unsafe extern "C" {
23538    pub fn BNTypePrinterDefaultPrintAllTypes(
23539        printer: *mut BNTypePrinter,
23540        names: *mut BNQualifiedName,
23541        types: *mut *mut BNType,
23542        typeCount: usize,
23543        data: *mut BNBinaryView,
23544        paddingCols: ::std::os::raw::c_int,
23545        escaping: BNTokenEscapingType,
23546        result: *mut *mut ::std::os::raw::c_char,
23547    ) -> bool;
23548}
23549unsafe extern "C" {
23550    pub fn BNFreeTypeParserResult(result: *mut BNTypeParserResult);
23551}
23552unsafe extern "C" {
23553    pub fn BNFreeTypeParserErrors(errors: *mut BNTypeParserError, count: usize);
23554}
23555unsafe extern "C" {
23556    #[doc = " Updates"]
23557    pub fn BNGetUpdateChannels(
23558        count: *mut usize,
23559        errors: *mut *mut ::std::os::raw::c_char,
23560    ) -> *mut BNUpdateChannel;
23561}
23562unsafe extern "C" {
23563    pub fn BNFreeUpdateChannelList(list: *mut BNUpdateChannel, count: usize);
23564}
23565unsafe extern "C" {
23566    pub fn BNGetUpdateChannelVersions(
23567        channel: *const ::std::os::raw::c_char,
23568        count: *mut usize,
23569        errors: *mut *mut ::std::os::raw::c_char,
23570    ) -> *mut BNUpdateVersion;
23571}
23572unsafe extern "C" {
23573    pub fn BNFreeUpdateChannelVersionList(list: *mut BNUpdateVersion, count: usize);
23574}
23575unsafe extern "C" {
23576    pub fn BNGetFullInfoUpdateChannels(
23577        count: *mut usize,
23578        errors: *mut *mut ::std::os::raw::c_char,
23579    ) -> *mut BNUpdateChannelFullInfo;
23580}
23581unsafe extern "C" {
23582    pub fn BNFreeFullInfoUpdateChannels(list: *mut BNUpdateChannelFullInfo, count: usize);
23583}
23584unsafe extern "C" {
23585    pub fn BNAreUpdatesAvailable(
23586        channel: *const ::std::os::raw::c_char,
23587        expireTime: *mut u64,
23588        serverTime: *mut u64,
23589        errors: *mut *mut ::std::os::raw::c_char,
23590    ) -> bool;
23591}
23592unsafe extern "C" {
23593    pub fn BNUpdateToVersion(
23594        channel: *const ::std::os::raw::c_char,
23595        version: *const ::std::os::raw::c_char,
23596        errors: *mut *mut ::std::os::raw::c_char,
23597        progress: BNProgressFunction,
23598        context: *mut ::std::os::raw::c_void,
23599    ) -> BNUpdateResult;
23600}
23601unsafe extern "C" {
23602    pub fn BNUpdateToLatestVersion(
23603        channel: *const ::std::os::raw::c_char,
23604        errors: *mut *mut ::std::os::raw::c_char,
23605        progress: BNProgressFunction,
23606        context: *mut ::std::os::raw::c_void,
23607    ) -> BNUpdateResult;
23608}
23609unsafe extern "C" {
23610    pub fn BNAreAutoUpdatesEnabled() -> bool;
23611}
23612unsafe extern "C" {
23613    pub fn BNSetAutoUpdatesEnabled(enabled: bool);
23614}
23615unsafe extern "C" {
23616    pub fn BNGetTimeSinceLastUpdateCheck() -> u64;
23617}
23618unsafe extern "C" {
23619    pub fn BNUpdatesChecked();
23620}
23621unsafe extern "C" {
23622    pub fn BNGetActiveUpdateChannel() -> *mut ::std::os::raw::c_char;
23623}
23624unsafe extern "C" {
23625    pub fn BNSetActiveUpdateChannel(channel: *const ::std::os::raw::c_char);
23626}
23627unsafe extern "C" {
23628    pub fn BNIsUpdateInstallationPending() -> bool;
23629}
23630unsafe extern "C" {
23631    pub fn BNInstallPendingUpdate(errors: *mut *mut ::std::os::raw::c_char);
23632}
23633unsafe extern "C" {
23634    #[doc = " Plugin commands"]
23635    pub fn BNRegisterPluginCommandGlobal(
23636        name: *const ::std::os::raw::c_char,
23637        description: *const ::std::os::raw::c_char,
23638        action: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
23639        isValid: ::std::option::Option<
23640            unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool,
23641        >,
23642        context: *mut ::std::os::raw::c_void,
23643    );
23644}
23645unsafe extern "C" {
23646    pub fn BNRegisterPluginCommand(
23647        name: *const ::std::os::raw::c_char,
23648        description: *const ::std::os::raw::c_char,
23649        action: ::std::option::Option<
23650            unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, view: *mut BNBinaryView),
23651        >,
23652        isValid: ::std::option::Option<
23653            unsafe extern "C" fn(
23654                ctxt: *mut ::std::os::raw::c_void,
23655                view: *mut BNBinaryView,
23656            ) -> bool,
23657        >,
23658        context: *mut ::std::os::raw::c_void,
23659    );
23660}
23661unsafe extern "C" {
23662    pub fn BNRegisterPluginCommandForAddress(
23663        name: *const ::std::os::raw::c_char,
23664        description: *const ::std::os::raw::c_char,
23665        action: ::std::option::Option<
23666            unsafe extern "C" fn(
23667                ctxt: *mut ::std::os::raw::c_void,
23668                view: *mut BNBinaryView,
23669                addr: u64,
23670            ),
23671        >,
23672        isValid: ::std::option::Option<
23673            unsafe extern "C" fn(
23674                ctxt: *mut ::std::os::raw::c_void,
23675                view: *mut BNBinaryView,
23676                addr: u64,
23677            ) -> bool,
23678        >,
23679        context: *mut ::std::os::raw::c_void,
23680    );
23681}
23682unsafe extern "C" {
23683    pub fn BNRegisterPluginCommandForRange(
23684        name: *const ::std::os::raw::c_char,
23685        description: *const ::std::os::raw::c_char,
23686        action: ::std::option::Option<
23687            unsafe extern "C" fn(
23688                ctxt: *mut ::std::os::raw::c_void,
23689                view: *mut BNBinaryView,
23690                addr: u64,
23691                len: u64,
23692            ),
23693        >,
23694        isValid: ::std::option::Option<
23695            unsafe extern "C" fn(
23696                ctxt: *mut ::std::os::raw::c_void,
23697                view: *mut BNBinaryView,
23698                addr: u64,
23699                len: u64,
23700            ) -> bool,
23701        >,
23702        context: *mut ::std::os::raw::c_void,
23703    );
23704}
23705unsafe extern "C" {
23706    pub fn BNRegisterPluginCommandForFunction(
23707        name: *const ::std::os::raw::c_char,
23708        description: *const ::std::os::raw::c_char,
23709        action: ::std::option::Option<
23710            unsafe extern "C" fn(
23711                ctxt: *mut ::std::os::raw::c_void,
23712                view: *mut BNBinaryView,
23713                func: *mut BNFunction,
23714            ),
23715        >,
23716        isValid: ::std::option::Option<
23717            unsafe extern "C" fn(
23718                ctxt: *mut ::std::os::raw::c_void,
23719                view: *mut BNBinaryView,
23720                func: *mut BNFunction,
23721            ) -> bool,
23722        >,
23723        context: *mut ::std::os::raw::c_void,
23724    );
23725}
23726unsafe extern "C" {
23727    pub fn BNRegisterPluginCommandForLowLevelILFunction(
23728        name: *const ::std::os::raw::c_char,
23729        description: *const ::std::os::raw::c_char,
23730        action: ::std::option::Option<
23731            unsafe extern "C" fn(
23732                ctxt: *mut ::std::os::raw::c_void,
23733                view: *mut BNBinaryView,
23734                func: *mut BNLowLevelILFunction,
23735            ),
23736        >,
23737        isValid: ::std::option::Option<
23738            unsafe extern "C" fn(
23739                ctxt: *mut ::std::os::raw::c_void,
23740                view: *mut BNBinaryView,
23741                func: *mut BNLowLevelILFunction,
23742            ) -> bool,
23743        >,
23744        context: *mut ::std::os::raw::c_void,
23745    );
23746}
23747unsafe extern "C" {
23748    pub fn BNRegisterPluginCommandForLowLevelILInstruction(
23749        name: *const ::std::os::raw::c_char,
23750        description: *const ::std::os::raw::c_char,
23751        action: ::std::option::Option<
23752            unsafe extern "C" fn(
23753                ctxt: *mut ::std::os::raw::c_void,
23754                view: *mut BNBinaryView,
23755                func: *mut BNLowLevelILFunction,
23756                instr: usize,
23757            ),
23758        >,
23759        isValid: ::std::option::Option<
23760            unsafe extern "C" fn(
23761                ctxt: *mut ::std::os::raw::c_void,
23762                view: *mut BNBinaryView,
23763                func: *mut BNLowLevelILFunction,
23764                instr: usize,
23765            ) -> bool,
23766        >,
23767        context: *mut ::std::os::raw::c_void,
23768    );
23769}
23770unsafe extern "C" {
23771    pub fn BNRegisterPluginCommandForMediumLevelILFunction(
23772        name: *const ::std::os::raw::c_char,
23773        description: *const ::std::os::raw::c_char,
23774        action: ::std::option::Option<
23775            unsafe extern "C" fn(
23776                ctxt: *mut ::std::os::raw::c_void,
23777                view: *mut BNBinaryView,
23778                func: *mut BNMediumLevelILFunction,
23779            ),
23780        >,
23781        isValid: ::std::option::Option<
23782            unsafe extern "C" fn(
23783                ctxt: *mut ::std::os::raw::c_void,
23784                view: *mut BNBinaryView,
23785                func: *mut BNMediumLevelILFunction,
23786            ) -> bool,
23787        >,
23788        context: *mut ::std::os::raw::c_void,
23789    );
23790}
23791unsafe extern "C" {
23792    pub fn BNRegisterPluginCommandForMediumLevelILInstruction(
23793        name: *const ::std::os::raw::c_char,
23794        description: *const ::std::os::raw::c_char,
23795        action: ::std::option::Option<
23796            unsafe extern "C" fn(
23797                ctxt: *mut ::std::os::raw::c_void,
23798                view: *mut BNBinaryView,
23799                func: *mut BNMediumLevelILFunction,
23800                instr: usize,
23801            ),
23802        >,
23803        isValid: ::std::option::Option<
23804            unsafe extern "C" fn(
23805                ctxt: *mut ::std::os::raw::c_void,
23806                view: *mut BNBinaryView,
23807                func: *mut BNMediumLevelILFunction,
23808                instr: usize,
23809            ) -> bool,
23810        >,
23811        context: *mut ::std::os::raw::c_void,
23812    );
23813}
23814unsafe extern "C" {
23815    pub fn BNRegisterPluginCommandForHighLevelILFunction(
23816        name: *const ::std::os::raw::c_char,
23817        description: *const ::std::os::raw::c_char,
23818        action: ::std::option::Option<
23819            unsafe extern "C" fn(
23820                ctxt: *mut ::std::os::raw::c_void,
23821                view: *mut BNBinaryView,
23822                func: *mut BNHighLevelILFunction,
23823            ),
23824        >,
23825        isValid: ::std::option::Option<
23826            unsafe extern "C" fn(
23827                ctxt: *mut ::std::os::raw::c_void,
23828                view: *mut BNBinaryView,
23829                func: *mut BNHighLevelILFunction,
23830            ) -> bool,
23831        >,
23832        context: *mut ::std::os::raw::c_void,
23833    );
23834}
23835unsafe extern "C" {
23836    pub fn BNRegisterPluginCommandForHighLevelILInstruction(
23837        name: *const ::std::os::raw::c_char,
23838        description: *const ::std::os::raw::c_char,
23839        action: ::std::option::Option<
23840            unsafe extern "C" fn(
23841                ctxt: *mut ::std::os::raw::c_void,
23842                view: *mut BNBinaryView,
23843                func: *mut BNHighLevelILFunction,
23844                instr: usize,
23845            ),
23846        >,
23847        isValid: ::std::option::Option<
23848            unsafe extern "C" fn(
23849                ctxt: *mut ::std::os::raw::c_void,
23850                view: *mut BNBinaryView,
23851                func: *mut BNHighLevelILFunction,
23852                instr: usize,
23853            ) -> bool,
23854        >,
23855        context: *mut ::std::os::raw::c_void,
23856    );
23857}
23858unsafe extern "C" {
23859    pub fn BNRegisterPluginCommandForProject(
23860        name: *const ::std::os::raw::c_char,
23861        description: *const ::std::os::raw::c_char,
23862        action: ::std::option::Option<
23863            unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, project: *mut BNProject),
23864        >,
23865        isValid: ::std::option::Option<
23866            unsafe extern "C" fn(
23867                ctxt: *mut ::std::os::raw::c_void,
23868                project: *mut BNProject,
23869            ) -> bool,
23870        >,
23871        context: *mut ::std::os::raw::c_void,
23872    );
23873}
23874unsafe extern "C" {
23875    pub fn BNGetAllPluginCommands(count: *mut usize) -> *mut BNPluginCommand;
23876}
23877unsafe extern "C" {
23878    pub fn BNGetValidPluginCommandsGlobal(count: *mut usize) -> *mut BNPluginCommand;
23879}
23880unsafe extern "C" {
23881    pub fn BNGetValidPluginCommands(
23882        view: *mut BNBinaryView,
23883        count: *mut usize,
23884    ) -> *mut BNPluginCommand;
23885}
23886unsafe extern "C" {
23887    pub fn BNGetValidPluginCommandsForAddress(
23888        view: *mut BNBinaryView,
23889        addr: u64,
23890        count: *mut usize,
23891    ) -> *mut BNPluginCommand;
23892}
23893unsafe extern "C" {
23894    pub fn BNGetValidPluginCommandsForRange(
23895        view: *mut BNBinaryView,
23896        addr: u64,
23897        len: u64,
23898        count: *mut usize,
23899    ) -> *mut BNPluginCommand;
23900}
23901unsafe extern "C" {
23902    pub fn BNGetValidPluginCommandsForFunction(
23903        view: *mut BNBinaryView,
23904        func: *mut BNFunction,
23905        count: *mut usize,
23906    ) -> *mut BNPluginCommand;
23907}
23908unsafe extern "C" {
23909    pub fn BNGetValidPluginCommandsForLowLevelILFunction(
23910        view: *mut BNBinaryView,
23911        func: *mut BNLowLevelILFunction,
23912        count: *mut usize,
23913    ) -> *mut BNPluginCommand;
23914}
23915unsafe extern "C" {
23916    pub fn BNGetValidPluginCommandsForLowLevelILInstruction(
23917        view: *mut BNBinaryView,
23918        func: *mut BNLowLevelILFunction,
23919        instr: usize,
23920        count: *mut usize,
23921    ) -> *mut BNPluginCommand;
23922}
23923unsafe extern "C" {
23924    pub fn BNGetValidPluginCommandsForMediumLevelILFunction(
23925        view: *mut BNBinaryView,
23926        func: *mut BNMediumLevelILFunction,
23927        count: *mut usize,
23928    ) -> *mut BNPluginCommand;
23929}
23930unsafe extern "C" {
23931    pub fn BNGetValidPluginCommandsForMediumLevelILInstruction(
23932        view: *mut BNBinaryView,
23933        func: *mut BNMediumLevelILFunction,
23934        instr: usize,
23935        count: *mut usize,
23936    ) -> *mut BNPluginCommand;
23937}
23938unsafe extern "C" {
23939    pub fn BNGetValidPluginCommandsForHighLevelILFunction(
23940        view: *mut BNBinaryView,
23941        func: *mut BNHighLevelILFunction,
23942        count: *mut usize,
23943    ) -> *mut BNPluginCommand;
23944}
23945unsafe extern "C" {
23946    pub fn BNGetValidPluginCommandsForHighLevelILInstruction(
23947        view: *mut BNBinaryView,
23948        func: *mut BNHighLevelILFunction,
23949        instr: usize,
23950        count: *mut usize,
23951    ) -> *mut BNPluginCommand;
23952}
23953unsafe extern "C" {
23954    pub fn BNGetValidPluginCommandsForProject(
23955        project: *mut BNProject,
23956        count: *mut usize,
23957    ) -> *mut BNPluginCommand;
23958}
23959unsafe extern "C" {
23960    pub fn BNFreePluginCommandList(commands: *mut BNPluginCommand);
23961}
23962unsafe extern "C" {
23963    #[doc = " Calling conventions"]
23964    pub fn BNCreateCallingConvention(
23965        arch: *mut BNArchitecture,
23966        name: *const ::std::os::raw::c_char,
23967        cc: *mut BNCustomCallingConvention,
23968    ) -> *mut BNCallingConvention;
23969}
23970unsafe extern "C" {
23971    pub fn BNRegisterCallingConvention(arch: *mut BNArchitecture, cc: *mut BNCallingConvention);
23972}
23973unsafe extern "C" {
23974    pub fn BNNewCallingConventionReference(
23975        cc: *mut BNCallingConvention,
23976    ) -> *mut BNCallingConvention;
23977}
23978unsafe extern "C" {
23979    pub fn BNFreeCallingConvention(cc: *mut BNCallingConvention);
23980}
23981unsafe extern "C" {
23982    pub fn BNGetArchitectureCallingConventions(
23983        arch: *mut BNArchitecture,
23984        count: *mut usize,
23985    ) -> *mut *mut BNCallingConvention;
23986}
23987unsafe extern "C" {
23988    pub fn BNFreeCallingConventionList(list: *mut *mut BNCallingConvention, count: usize);
23989}
23990unsafe extern "C" {
23991    pub fn BNGetArchitectureCallingConventionByName(
23992        arch: *mut BNArchitecture,
23993        name: *const ::std::os::raw::c_char,
23994    ) -> *mut BNCallingConvention;
23995}
23996unsafe extern "C" {
23997    pub fn BNGetCallingConventionArchitecture(cc: *mut BNCallingConvention) -> *mut BNArchitecture;
23998}
23999unsafe extern "C" {
24000    pub fn BNGetCallingConventionName(cc: *mut BNCallingConvention) -> *mut ::std::os::raw::c_char;
24001}
24002unsafe extern "C" {
24003    pub fn BNGetCallerSavedRegisters(cc: *mut BNCallingConvention, count: *mut usize) -> *mut u32;
24004}
24005unsafe extern "C" {
24006    pub fn BNGetCalleeSavedRegisters(cc: *mut BNCallingConvention, count: *mut usize) -> *mut u32;
24007}
24008unsafe extern "C" {
24009    pub fn BNGetIntegerArgumentRegisters(
24010        cc: *mut BNCallingConvention,
24011        count: *mut usize,
24012    ) -> *mut u32;
24013}
24014unsafe extern "C" {
24015    pub fn BNGetFloatArgumentRegisters(cc: *mut BNCallingConvention, count: *mut usize)
24016    -> *mut u32;
24017}
24018unsafe extern "C" {
24019    pub fn BNGetRequiredArgumentRegisters(
24020        cc: *mut BNCallingConvention,
24021        count: *mut usize,
24022    ) -> *mut u32;
24023}
24024unsafe extern "C" {
24025    pub fn BNGetRequiredClobberedRegisters(
24026        cc: *mut BNCallingConvention,
24027        count: *mut usize,
24028    ) -> *mut u32;
24029}
24030unsafe extern "C" {
24031    pub fn BNAreArgumentRegistersSharedIndex(cc: *mut BNCallingConvention) -> bool;
24032}
24033unsafe extern "C" {
24034    pub fn BNAreArgumentRegistersUsedForVarArgs(cc: *mut BNCallingConvention) -> bool;
24035}
24036unsafe extern "C" {
24037    pub fn BNIsStackReservedForArgumentRegisters(cc: *mut BNCallingConvention) -> bool;
24038}
24039unsafe extern "C" {
24040    pub fn BNIsStackAdjustedOnReturn(cc: *mut BNCallingConvention) -> bool;
24041}
24042unsafe extern "C" {
24043    pub fn BNIsEligibleForHeuristics(cc: *mut BNCallingConvention) -> bool;
24044}
24045unsafe extern "C" {
24046    pub fn BNGetIntegerReturnValueRegister(cc: *mut BNCallingConvention) -> u32;
24047}
24048unsafe extern "C" {
24049    pub fn BNGetHighIntegerReturnValueRegister(cc: *mut BNCallingConvention) -> u32;
24050}
24051unsafe extern "C" {
24052    pub fn BNGetFloatReturnValueRegister(cc: *mut BNCallingConvention) -> u32;
24053}
24054unsafe extern "C" {
24055    pub fn BNGetGlobalPointerRegisters(cc: *mut BNCallingConvention, count: *mut usize)
24056    -> *mut u32;
24057}
24058unsafe extern "C" {
24059    pub fn BNGetImplicitlyDefinedRegisters(
24060        cc: *mut BNCallingConvention,
24061        count: *mut usize,
24062    ) -> *mut u32;
24063}
24064unsafe extern "C" {
24065    pub fn BNGetIncomingRegisterValue(
24066        cc: *mut BNCallingConvention,
24067        reg: u32,
24068        func: *mut BNFunction,
24069    ) -> BNRegisterValue;
24070}
24071unsafe extern "C" {
24072    pub fn BNGetIncomingFlagValue(
24073        cc: *mut BNCallingConvention,
24074        reg: u32,
24075        func: *mut BNFunction,
24076    ) -> BNRegisterValue;
24077}
24078unsafe extern "C" {
24079    pub fn BNGetCallLayout(
24080        cc: *mut BNCallingConvention,
24081        view: *mut BNBinaryView,
24082        returnValue: *const BNReturnValue,
24083        params: *const BNFunctionParameter,
24084        paramCount: usize,
24085        permittedRegs: *const u32,
24086        permittedRegCount: usize,
24087    ) -> BNCallLayout;
24088}
24089unsafe extern "C" {
24090    pub fn BNGetCallLayoutDefaultPermittedArgs(
24091        cc: *mut BNCallingConvention,
24092        view: *mut BNBinaryView,
24093        returnValue: *const BNReturnValue,
24094        params: *const BNFunctionParameter,
24095        paramCount: usize,
24096    ) -> BNCallLayout;
24097}
24098unsafe extern "C" {
24099    pub fn BNGetDefaultCallLayout(
24100        cc: *mut BNCallingConvention,
24101        view: *mut BNBinaryView,
24102        returnValue: *const BNReturnValue,
24103        params: *const BNFunctionParameter,
24104        paramCount: usize,
24105        permittedRegs: *const u32,
24106        permittedRegCount: usize,
24107    ) -> BNCallLayout;
24108}
24109unsafe extern "C" {
24110    pub fn BNGetDefaultCallLayoutDefaultPermittedArgs(
24111        cc: *mut BNCallingConvention,
24112        view: *mut BNBinaryView,
24113        returnValue: *const BNReturnValue,
24114        params: *const BNFunctionParameter,
24115        paramCount: usize,
24116    ) -> BNCallLayout;
24117}
24118unsafe extern "C" {
24119    pub fn BNFreeCallLayout(layout: *mut BNCallLayout);
24120}
24121unsafe extern "C" {
24122    pub fn BNGetReturnValueLocation(
24123        cc: *mut BNCallingConvention,
24124        view: *mut BNBinaryView,
24125        returnValue: *mut BNReturnValue,
24126    ) -> BNValueLocation;
24127}
24128unsafe extern "C" {
24129    pub fn BNGetDefaultReturnValueLocation(
24130        cc: *mut BNCallingConvention,
24131        view: *mut BNBinaryView,
24132        returnValue: *mut BNReturnValue,
24133    ) -> BNValueLocation;
24134}
24135unsafe extern "C" {
24136    pub fn BNGetParameterLocations(
24137        cc: *mut BNCallingConvention,
24138        view: *mut BNBinaryView,
24139        returnValue: *mut BNValueLocation,
24140        params: *mut BNFunctionParameter,
24141        paramCount: usize,
24142        permittedRegs: *const u32,
24143        permittedRegCount: usize,
24144        outCount: *mut usize,
24145    ) -> *mut BNValueLocation;
24146}
24147unsafe extern "C" {
24148    pub fn BNGetParameterLocationsDefaultPermittedArgs(
24149        cc: *mut BNCallingConvention,
24150        view: *mut BNBinaryView,
24151        returnValue: *mut BNValueLocation,
24152        params: *mut BNFunctionParameter,
24153        paramCount: usize,
24154        outCount: *mut usize,
24155    ) -> *mut BNValueLocation;
24156}
24157unsafe extern "C" {
24158    pub fn BNGetDefaultParameterLocations(
24159        cc: *mut BNCallingConvention,
24160        view: *mut BNBinaryView,
24161        returnValue: *mut BNValueLocation,
24162        params: *mut BNFunctionParameter,
24163        paramCount: usize,
24164        permittedRegs: *const u32,
24165        permittedRegCount: usize,
24166        outCount: *mut usize,
24167    ) -> *mut BNValueLocation;
24168}
24169unsafe extern "C" {
24170    pub fn BNGetDefaultParameterLocationsDefaultPermittedArgs(
24171        cc: *mut BNCallingConvention,
24172        view: *mut BNBinaryView,
24173        returnValue: *mut BNValueLocation,
24174        params: *mut BNFunctionParameter,
24175        paramCount: usize,
24176        outCount: *mut usize,
24177    ) -> *mut BNValueLocation;
24178}
24179unsafe extern "C" {
24180    pub fn BNFreeValueLocationList(locations: *mut BNValueLocation, count: usize);
24181}
24182unsafe extern "C" {
24183    pub fn BNGetParameterOrderingForVariables(
24184        cc: *mut BNCallingConvention,
24185        view: *mut BNBinaryView,
24186        paramVars: *const BNVariable,
24187        paramTypes: *mut *const BNType,
24188        paramCount: usize,
24189        count: *mut usize,
24190    ) -> *mut BNVariable;
24191}
24192unsafe extern "C" {
24193    pub fn BNGetDefaultParameterOrderingForVariables(
24194        cc: *mut BNCallingConvention,
24195        paramVars: *const BNVariable,
24196        paramTypes: *mut *const BNType,
24197        paramCount: usize,
24198        count: *mut usize,
24199    ) -> *mut BNVariable;
24200}
24201unsafe extern "C" {
24202    pub fn BNGetStackAdjustmentForLocations(
24203        cc: *mut BNCallingConvention,
24204        view: *mut BNBinaryView,
24205        returnValue: *mut BNValueLocation,
24206        paramLocations: *const BNValueLocation,
24207        paramTypes: *mut *const BNType,
24208        paramCount: usize,
24209    ) -> i64;
24210}
24211unsafe extern "C" {
24212    pub fn BNGetDefaultStackAdjustmentForLocations(
24213        cc: *mut BNCallingConvention,
24214        returnValue: *mut BNValueLocation,
24215        paramLocations: *const BNValueLocation,
24216        paramTypes: *mut *const BNType,
24217        paramCount: usize,
24218    ) -> i64;
24219}
24220unsafe extern "C" {
24221    pub fn BNGetCallingConventionRegisterStackAdjustments(
24222        cc: *mut BNCallingConvention,
24223        view: *mut BNBinaryView,
24224        returnValue: *mut BNValueLocation,
24225        params: *mut BNValueLocation,
24226        paramCount: usize,
24227        outRegs: *mut *mut u32,
24228        outAdjust: *mut *mut i32,
24229    ) -> usize;
24230}
24231unsafe extern "C" {
24232    pub fn BNGetCallingConventionDefaultRegisterStackAdjustments(
24233        cc: *mut BNCallingConvention,
24234        returnValue: *mut BNValueLocation,
24235        params: *mut BNValueLocation,
24236        paramCount: usize,
24237        outRegs: *mut *mut u32,
24238        outAdjust: *mut *mut i32,
24239    ) -> usize;
24240}
24241unsafe extern "C" {
24242    pub fn BNFreeCallingConventionRegisterStackAdjustments(regs: *mut u32, adjust: *mut i32);
24243}
24244unsafe extern "C" {
24245    pub fn BNGetIncomingVariableForParameterVariable(
24246        cc: *mut BNCallingConvention,
24247        var: *const BNVariable,
24248        func: *mut BNFunction,
24249    ) -> BNVariable;
24250}
24251unsafe extern "C" {
24252    pub fn BNGetParameterVariableForIncomingVariable(
24253        cc: *mut BNCallingConvention,
24254        var: *const BNVariable,
24255        func: *mut BNFunction,
24256    ) -> BNVariable;
24257}
24258unsafe extern "C" {
24259    pub fn BNGetDefaultIncomingVariableForParameterVariable(
24260        cc: *mut BNCallingConvention,
24261        var: *const BNVariable,
24262    ) -> BNVariable;
24263}
24264unsafe extern "C" {
24265    pub fn BNGetDefaultParameterVariableForIncomingVariable(
24266        cc: *mut BNCallingConvention,
24267        var: *const BNVariable,
24268    ) -> BNVariable;
24269}
24270unsafe extern "C" {
24271    pub fn BNIsReturnTypeRegisterCompatible(
24272        cc: *mut BNCallingConvention,
24273        view: *mut BNBinaryView,
24274        type_: *mut BNType,
24275    ) -> bool;
24276}
24277unsafe extern "C" {
24278    pub fn BNDefaultIsReturnTypeRegisterCompatible(
24279        cc: *mut BNCallingConvention,
24280        type_: *mut BNType,
24281    ) -> bool;
24282}
24283unsafe extern "C" {
24284    pub fn BNGetIndirectReturnValueLocation(cc: *mut BNCallingConvention) -> BNVariable;
24285}
24286unsafe extern "C" {
24287    pub fn BNGetDefaultIndirectReturnValueLocation(cc: *mut BNCallingConvention) -> BNVariable;
24288}
24289unsafe extern "C" {
24290    pub fn BNGetReturnedIndirectReturnValuePointer(
24291        cc: *mut BNCallingConvention,
24292        outVar: *mut BNVariable,
24293    ) -> bool;
24294}
24295unsafe extern "C" {
24296    pub fn BNIsArgumentTypeRegisterCompatible(
24297        cc: *mut BNCallingConvention,
24298        view: *mut BNBinaryView,
24299        type_: *mut BNType,
24300    ) -> bool;
24301}
24302unsafe extern "C" {
24303    pub fn BNDefaultIsArgumentTypeRegisterCompatible(
24304        cc: *mut BNCallingConvention,
24305        type_: *mut BNType,
24306    ) -> bool;
24307}
24308unsafe extern "C" {
24309    pub fn BNIsNonRegisterArgumentIndirect(
24310        cc: *mut BNCallingConvention,
24311        view: *mut BNBinaryView,
24312        type_: *mut BNType,
24313    ) -> bool;
24314}
24315unsafe extern "C" {
24316    pub fn BNAreStackArgumentsNaturallyAligned(cc: *mut BNCallingConvention) -> bool;
24317}
24318unsafe extern "C" {
24319    pub fn BNAreStackArgumentsPushedLeftToRight(cc: *mut BNCallingConvention) -> bool;
24320}
24321unsafe extern "C" {
24322    pub fn BNGetArchitectureDefaultCallingConvention(
24323        arch: *mut BNArchitecture,
24324    ) -> *mut BNCallingConvention;
24325}
24326unsafe extern "C" {
24327    pub fn BNGetArchitectureCdeclCallingConvention(
24328        arch: *mut BNArchitecture,
24329    ) -> *mut BNCallingConvention;
24330}
24331unsafe extern "C" {
24332    pub fn BNGetArchitectureStdcallCallingConvention(
24333        arch: *mut BNArchitecture,
24334    ) -> *mut BNCallingConvention;
24335}
24336unsafe extern "C" {
24337    pub fn BNGetArchitectureFastcallCallingConvention(
24338        arch: *mut BNArchitecture,
24339    ) -> *mut BNCallingConvention;
24340}
24341unsafe extern "C" {
24342    pub fn BNSetArchitectureDefaultCallingConvention(
24343        arch: *mut BNArchitecture,
24344        cc: *mut BNCallingConvention,
24345    );
24346}
24347unsafe extern "C" {
24348    pub fn BNSetArchitectureCdeclCallingConvention(
24349        arch: *mut BNArchitecture,
24350        cc: *mut BNCallingConvention,
24351    );
24352}
24353unsafe extern "C" {
24354    pub fn BNSetArchitectureStdcallCallingConvention(
24355        arch: *mut BNArchitecture,
24356        cc: *mut BNCallingConvention,
24357    );
24358}
24359unsafe extern "C" {
24360    pub fn BNSetArchitectureFastcallCallingConvention(
24361        arch: *mut BNArchitecture,
24362        cc: *mut BNCallingConvention,
24363    );
24364}
24365unsafe extern "C" {
24366    #[doc = " Platforms"]
24367    pub fn BNCreatePlatform(
24368        arch: *mut BNArchitecture,
24369        name: *const ::std::os::raw::c_char,
24370    ) -> *mut BNPlatform;
24371}
24372unsafe extern "C" {
24373    pub fn BNCreatePlatformWithTypes(
24374        arch: *mut BNArchitecture,
24375        name: *const ::std::os::raw::c_char,
24376        typeFile: *const ::std::os::raw::c_char,
24377        includeDirs: *mut *const ::std::os::raw::c_char,
24378        includeDirCount: usize,
24379    ) -> *mut BNPlatform;
24380}
24381unsafe extern "C" {
24382    pub fn BNCreateCustomPlatform(
24383        arch: *mut BNArchitecture,
24384        name: *const ::std::os::raw::c_char,
24385        impl_: *mut BNCustomPlatform,
24386    ) -> *mut BNPlatform;
24387}
24388unsafe extern "C" {
24389    pub fn BNCreateCustomPlatformWithTypes(
24390        arch: *mut BNArchitecture,
24391        name: *const ::std::os::raw::c_char,
24392        impl_: *mut BNCustomPlatform,
24393        typeFile: *const ::std::os::raw::c_char,
24394        includeDirs: *mut *const ::std::os::raw::c_char,
24395        includeDirCount: usize,
24396    ) -> *mut BNPlatform;
24397}
24398unsafe extern "C" {
24399    pub fn BNRegisterPlatform(os: *const ::std::os::raw::c_char, platform: *mut BNPlatform);
24400}
24401unsafe extern "C" {
24402    pub fn BNNewPlatformReference(platform: *mut BNPlatform) -> *mut BNPlatform;
24403}
24404unsafe extern "C" {
24405    pub fn BNFreePlatform(platform: *mut BNPlatform);
24406}
24407unsafe extern "C" {
24408    pub fn BNGetPlatformName(platform: *mut BNPlatform) -> *mut ::std::os::raw::c_char;
24409}
24410unsafe extern "C" {
24411    pub fn BNGetPlatformArchitecture(platform: *mut BNPlatform) -> *mut BNArchitecture;
24412}
24413unsafe extern "C" {
24414    pub fn BNGetPlatformByName(name: *const ::std::os::raw::c_char) -> *mut BNPlatform;
24415}
24416unsafe extern "C" {
24417    pub fn BNGetPlatformList(count: *mut usize) -> *mut *mut BNPlatform;
24418}
24419unsafe extern "C" {
24420    pub fn BNGetPlatformListByArchitecture(
24421        arch: *mut BNArchitecture,
24422        count: *mut usize,
24423    ) -> *mut *mut BNPlatform;
24424}
24425unsafe extern "C" {
24426    pub fn BNGetPlatformListByOS(
24427        os: *const ::std::os::raw::c_char,
24428        count: *mut usize,
24429    ) -> *mut *mut BNPlatform;
24430}
24431unsafe extern "C" {
24432    pub fn BNGetPlatformListByOSAndArchitecture(
24433        os: *const ::std::os::raw::c_char,
24434        arch: *mut BNArchitecture,
24435        count: *mut usize,
24436    ) -> *mut *mut BNPlatform;
24437}
24438unsafe extern "C" {
24439    pub fn BNFreePlatformList(platform: *mut *mut BNPlatform, count: usize);
24440}
24441unsafe extern "C" {
24442    pub fn BNGetPlatformOSList(count: *mut usize) -> *mut *mut ::std::os::raw::c_char;
24443}
24444unsafe extern "C" {
24445    pub fn BNFreePlatformOSList(list: *mut *mut ::std::os::raw::c_char, count: usize);
24446}
24447unsafe extern "C" {
24448    pub fn BNGetPlatformDefaultCallingConvention(
24449        platform: *mut BNPlatform,
24450    ) -> *mut BNCallingConvention;
24451}
24452unsafe extern "C" {
24453    pub fn BNGetPlatformCdeclCallingConvention(
24454        platform: *mut BNPlatform,
24455    ) -> *mut BNCallingConvention;
24456}
24457unsafe extern "C" {
24458    pub fn BNGetPlatformStdcallCallingConvention(
24459        platform: *mut BNPlatform,
24460    ) -> *mut BNCallingConvention;
24461}
24462unsafe extern "C" {
24463    pub fn BNGetPlatformFastcallCallingConvention(
24464        platform: *mut BNPlatform,
24465    ) -> *mut BNCallingConvention;
24466}
24467unsafe extern "C" {
24468    pub fn BNGetPlatformCallingConventions(
24469        platform: *mut BNPlatform,
24470        count: *mut usize,
24471    ) -> *mut *mut BNCallingConvention;
24472}
24473unsafe extern "C" {
24474    pub fn BNGetPlatformSystemCallConvention(platform: *mut BNPlatform)
24475    -> *mut BNCallingConvention;
24476}
24477unsafe extern "C" {
24478    pub fn BNRegisterPlatformCallingConvention(
24479        platform: *mut BNPlatform,
24480        cc: *mut BNCallingConvention,
24481    );
24482}
24483unsafe extern "C" {
24484    pub fn BNRegisterPlatformDefaultCallingConvention(
24485        platform: *mut BNPlatform,
24486        cc: *mut BNCallingConvention,
24487    );
24488}
24489unsafe extern "C" {
24490    pub fn BNRegisterPlatformCdeclCallingConvention(
24491        platform: *mut BNPlatform,
24492        cc: *mut BNCallingConvention,
24493    );
24494}
24495unsafe extern "C" {
24496    pub fn BNRegisterPlatformStdcallCallingConvention(
24497        platform: *mut BNPlatform,
24498        cc: *mut BNCallingConvention,
24499    );
24500}
24501unsafe extern "C" {
24502    pub fn BNRegisterPlatformFastcallCallingConvention(
24503        platform: *mut BNPlatform,
24504        cc: *mut BNCallingConvention,
24505    );
24506}
24507unsafe extern "C" {
24508    pub fn BNSetPlatformSystemCallConvention(
24509        platform: *mut BNPlatform,
24510        cc: *mut BNCallingConvention,
24511    );
24512}
24513unsafe extern "C" {
24514    pub fn BNGetPlatformGlobalRegisters(platform: *mut BNPlatform, count: *mut usize) -> *mut u32;
24515}
24516unsafe extern "C" {
24517    pub fn BNGetPlatformGlobalRegisterType(platform: *mut BNPlatform, reg: u32) -> *mut BNType;
24518}
24519unsafe extern "C" {
24520    pub fn BNGetPlatformAddressSize(platform: *mut BNPlatform) -> usize;
24521}
24522unsafe extern "C" {
24523    pub fn BNPlatformAdjustTypeParserInput(
24524        platform: *mut BNPlatform,
24525        parser: *mut BNTypeParser,
24526        argumentsIn: *const *const ::std::os::raw::c_char,
24527        argumentsLenIn: usize,
24528        sourceFileNamesIn: *const *const ::std::os::raw::c_char,
24529        sourceFileValuesIn: *const *const ::std::os::raw::c_char,
24530        sourceFilesLenIn: usize,
24531        argumentsOut: *mut *mut *mut ::std::os::raw::c_char,
24532        argumentsLenOut: *mut usize,
24533        sourceFileNamesOut: *mut *mut *mut ::std::os::raw::c_char,
24534        sourceFileValuesOut: *mut *mut *mut ::std::os::raw::c_char,
24535        sourceFilesLenOut: *mut usize,
24536    );
24537}
24538unsafe extern "C" {
24539    pub fn BNGetArchitectureStandalonePlatform(arch: *mut BNArchitecture) -> *mut BNPlatform;
24540}
24541unsafe extern "C" {
24542    pub fn BNGetRelatedPlatform(
24543        platform: *mut BNPlatform,
24544        arch: *mut BNArchitecture,
24545    ) -> *mut BNPlatform;
24546}
24547unsafe extern "C" {
24548    pub fn BNAddRelatedPlatform(
24549        platform: *mut BNPlatform,
24550        arch: *mut BNArchitecture,
24551        related: *mut BNPlatform,
24552    );
24553}
24554unsafe extern "C" {
24555    pub fn BNGetRelatedPlatforms(
24556        platform: *mut BNPlatform,
24557        count: *mut usize,
24558    ) -> *mut *mut BNPlatform;
24559}
24560unsafe extern "C" {
24561    pub fn BNGetAssociatedPlatformByAddress(
24562        platform: *mut BNPlatform,
24563        addr: *mut u64,
24564    ) -> *mut BNPlatform;
24565}
24566unsafe extern "C" {
24567    pub fn BNGetPlatformTypeContainer(platform: *mut BNPlatform) -> *mut BNTypeContainer;
24568}
24569unsafe extern "C" {
24570    pub fn BNGetPlatformTypes(
24571        platform: *mut BNPlatform,
24572        count: *mut usize,
24573    ) -> *mut BNQualifiedNameAndType;
24574}
24575unsafe extern "C" {
24576    pub fn BNGetPlatformVariables(
24577        platform: *mut BNPlatform,
24578        count: *mut usize,
24579    ) -> *mut BNQualifiedNameAndType;
24580}
24581unsafe extern "C" {
24582    pub fn BNGetPlatformFunctions(
24583        platform: *mut BNPlatform,
24584        count: *mut usize,
24585    ) -> *mut BNQualifiedNameAndType;
24586}
24587unsafe extern "C" {
24588    pub fn BNGetPlatformSystemCalls(
24589        platform: *mut BNPlatform,
24590        count: *mut usize,
24591    ) -> *mut BNSystemCallInfo;
24592}
24593unsafe extern "C" {
24594    pub fn BNFreeSystemCallList(syscalls: *mut BNSystemCallInfo, count: usize);
24595}
24596unsafe extern "C" {
24597    pub fn BNGetPlatformTypeByName(
24598        platform: *mut BNPlatform,
24599        name: *mut BNQualifiedName,
24600    ) -> *mut BNType;
24601}
24602unsafe extern "C" {
24603    pub fn BNGetPlatformVariableByName(
24604        platform: *mut BNPlatform,
24605        name: *mut BNQualifiedName,
24606    ) -> *mut BNType;
24607}
24608unsafe extern "C" {
24609    pub fn BNGetPlatformFunctionByName(
24610        platform: *mut BNPlatform,
24611        name: *mut BNQualifiedName,
24612        exactMatch: bool,
24613    ) -> *mut BNType;
24614}
24615unsafe extern "C" {
24616    pub fn BNGetPlatformSystemCallName(
24617        platform: *mut BNPlatform,
24618        number: u32,
24619    ) -> *mut ::std::os::raw::c_char;
24620}
24621unsafe extern "C" {
24622    pub fn BNGetPlatformSystemCallType(platform: *mut BNPlatform, number: u32) -> *mut BNType;
24623}
24624unsafe extern "C" {
24625    pub fn BNGetPlatformTypeLibraries(
24626        platform: *mut BNPlatform,
24627        count: *mut usize,
24628    ) -> *mut *mut BNTypeLibrary;
24629}
24630unsafe extern "C" {
24631    pub fn BNGetPlatformTypeLibrariesByName(
24632        platform: *mut BNPlatform,
24633        depName: *const ::std::os::raw::c_char,
24634        count: *mut usize,
24635    ) -> *mut *mut BNTypeLibrary;
24636}
24637unsafe extern "C" {
24638    #[doc = " Download providers"]
24639    pub fn BNRegisterDownloadProvider(
24640        name: *const ::std::os::raw::c_char,
24641        callbacks: *mut BNDownloadProviderCallbacks,
24642    ) -> *mut BNDownloadProvider;
24643}
24644unsafe extern "C" {
24645    pub fn BNGetDownloadProviderList(count: *mut usize) -> *mut *mut BNDownloadProvider;
24646}
24647unsafe extern "C" {
24648    pub fn BNFreeDownloadProviderList(providers: *mut *mut BNDownloadProvider);
24649}
24650unsafe extern "C" {
24651    pub fn BNGetDownloadProviderByName(
24652        name: *const ::std::os::raw::c_char,
24653    ) -> *mut BNDownloadProvider;
24654}
24655unsafe extern "C" {
24656    pub fn BNGetDownloadProviderName(
24657        provider: *mut BNDownloadProvider,
24658    ) -> *mut ::std::os::raw::c_char;
24659}
24660unsafe extern "C" {
24661    pub fn BNCreateDownloadProviderInstance(
24662        provider: *mut BNDownloadProvider,
24663    ) -> *mut BNDownloadInstance;
24664}
24665unsafe extern "C" {
24666    pub fn BNInitDownloadInstance(
24667        provider: *mut BNDownloadProvider,
24668        callbacks: *mut BNDownloadInstanceCallbacks,
24669    ) -> *mut BNDownloadInstance;
24670}
24671unsafe extern "C" {
24672    pub fn BNNewDownloadInstanceReference(
24673        instance: *mut BNDownloadInstance,
24674    ) -> *mut BNDownloadInstance;
24675}
24676unsafe extern "C" {
24677    pub fn BNFreeDownloadInstance(instance: *mut BNDownloadInstance);
24678}
24679unsafe extern "C" {
24680    pub fn BNFreeDownloadInstanceResponse(response: *mut BNDownloadInstanceResponse);
24681}
24682unsafe extern "C" {
24683    pub fn BNPerformDownloadRequest(
24684        instance: *mut BNDownloadInstance,
24685        url: *const ::std::os::raw::c_char,
24686        callbacks: *mut BNDownloadInstanceOutputCallbacks,
24687    ) -> ::std::os::raw::c_int;
24688}
24689unsafe extern "C" {
24690    pub fn BNPerformCustomRequest(
24691        instance: *mut BNDownloadInstance,
24692        method: *const ::std::os::raw::c_char,
24693        url: *const ::std::os::raw::c_char,
24694        headerCount: u64,
24695        headerKeys: *const *const ::std::os::raw::c_char,
24696        headerValues: *const *const ::std::os::raw::c_char,
24697        response: *mut *mut BNDownloadInstanceResponse,
24698        callbacks: *mut BNDownloadInstanceInputOutputCallbacks,
24699    ) -> ::std::os::raw::c_int;
24700}
24701unsafe extern "C" {
24702    pub fn BNReadDataForDownloadInstance(
24703        instance: *mut BNDownloadInstance,
24704        data: *mut u8,
24705        len: u64,
24706    ) -> i64;
24707}
24708unsafe extern "C" {
24709    pub fn BNWriteDataForDownloadInstance(
24710        instance: *mut BNDownloadInstance,
24711        data: *mut u8,
24712        len: u64,
24713    ) -> u64;
24714}
24715unsafe extern "C" {
24716    pub fn BNNotifyProgressForDownloadInstance(
24717        instance: *mut BNDownloadInstance,
24718        progress: u64,
24719        total: u64,
24720    ) -> bool;
24721}
24722unsafe extern "C" {
24723    pub fn BNGetErrorForDownloadInstance(
24724        instance: *mut BNDownloadInstance,
24725    ) -> *mut ::std::os::raw::c_char;
24726}
24727unsafe extern "C" {
24728    pub fn BNSetErrorForDownloadInstance(
24729        instance: *mut BNDownloadInstance,
24730        error: *const ::std::os::raw::c_char,
24731    );
24732}
24733unsafe extern "C" {
24734    #[doc = " Websocket providers"]
24735    pub fn BNRegisterWebsocketProvider(
24736        name: *const ::std::os::raw::c_char,
24737        callbacks: *mut BNWebsocketProviderCallbacks,
24738    ) -> *mut BNWebsocketProvider;
24739}
24740unsafe extern "C" {
24741    pub fn BNGetWebsocketProviderList(count: *mut usize) -> *mut *mut BNWebsocketProvider;
24742}
24743unsafe extern "C" {
24744    pub fn BNFreeWebsocketProviderList(providers: *mut *mut BNWebsocketProvider);
24745}
24746unsafe extern "C" {
24747    pub fn BNGetWebsocketProviderByName(
24748        name: *const ::std::os::raw::c_char,
24749    ) -> *mut BNWebsocketProvider;
24750}
24751unsafe extern "C" {
24752    pub fn BNGetWebsocketProviderName(
24753        provider: *mut BNWebsocketProvider,
24754    ) -> *mut ::std::os::raw::c_char;
24755}
24756unsafe extern "C" {
24757    pub fn BNCreateWebsocketProviderClient(
24758        provider: *mut BNWebsocketProvider,
24759    ) -> *mut BNWebsocketClient;
24760}
24761unsafe extern "C" {
24762    pub fn BNInitWebsocketClient(
24763        provider: *mut BNWebsocketProvider,
24764        callbacks: *mut BNWebsocketClientCallbacks,
24765    ) -> *mut BNWebsocketClient;
24766}
24767unsafe extern "C" {
24768    pub fn BNNewWebsocketClientReference(client: *mut BNWebsocketClient) -> *mut BNWebsocketClient;
24769}
24770unsafe extern "C" {
24771    pub fn BNFreeWebsocketClient(client: *mut BNWebsocketClient);
24772}
24773unsafe extern "C" {
24774    pub fn BNConnectWebsocketClient(
24775        client: *mut BNWebsocketClient,
24776        url: *const ::std::os::raw::c_char,
24777        headerCount: u64,
24778        headerKeys: *const *const ::std::os::raw::c_char,
24779        headerValues: *const *const ::std::os::raw::c_char,
24780        callbacks: *mut BNWebsocketClientOutputCallbacks,
24781    ) -> bool;
24782}
24783unsafe extern "C" {
24784    pub fn BNNotifyWebsocketClientConnect(client: *mut BNWebsocketClient) -> bool;
24785}
24786unsafe extern "C" {
24787    pub fn BNNotifyWebsocketClientDisconnect(client: *mut BNWebsocketClient);
24788}
24789unsafe extern "C" {
24790    pub fn BNNotifyWebsocketClientError(
24791        client: *mut BNWebsocketClient,
24792        msg: *const ::std::os::raw::c_char,
24793    );
24794}
24795unsafe extern "C" {
24796    pub fn BNNotifyWebsocketClientReadData(
24797        client: *mut BNWebsocketClient,
24798        data: *mut u8,
24799        len: u64,
24800    ) -> bool;
24801}
24802unsafe extern "C" {
24803    pub fn BNWriteWebsocketClientData(
24804        client: *mut BNWebsocketClient,
24805        data: *const u8,
24806        len: u64,
24807    ) -> u64;
24808}
24809unsafe extern "C" {
24810    pub fn BNDisconnectWebsocketClient(client: *mut BNWebsocketClient) -> bool;
24811}
24812unsafe extern "C" {
24813    #[doc = " Scripting providers"]
24814    pub fn BNRegisterScriptingProvider(
24815        name: *const ::std::os::raw::c_char,
24816        apiName: *const ::std::os::raw::c_char,
24817        callbacks: *mut BNScriptingProviderCallbacks,
24818    ) -> *mut BNScriptingProvider;
24819}
24820unsafe extern "C" {
24821    pub fn BNGetScriptingProviderList(count: *mut usize) -> *mut *mut BNScriptingProvider;
24822}
24823unsafe extern "C" {
24824    pub fn BNFreeScriptingProviderList(providers: *mut *mut BNScriptingProvider);
24825}
24826unsafe extern "C" {
24827    pub fn BNGetScriptingProviderByName(
24828        name: *const ::std::os::raw::c_char,
24829    ) -> *mut BNScriptingProvider;
24830}
24831unsafe extern "C" {
24832    pub fn BNGetScriptingProviderByAPIName(
24833        name: *const ::std::os::raw::c_char,
24834    ) -> *mut BNScriptingProvider;
24835}
24836unsafe extern "C" {
24837    pub fn BNGetScriptingProviderName(
24838        provider: *mut BNScriptingProvider,
24839    ) -> *mut ::std::os::raw::c_char;
24840}
24841unsafe extern "C" {
24842    pub fn BNGetScriptingProviderAPIName(
24843        provider: *mut BNScriptingProvider,
24844    ) -> *mut ::std::os::raw::c_char;
24845}
24846unsafe extern "C" {
24847    pub fn BNCreateScriptingProviderInstance(
24848        provider: *mut BNScriptingProvider,
24849    ) -> *mut BNScriptingInstance;
24850}
24851unsafe extern "C" {
24852    pub fn BNLoadScriptingProviderModule(
24853        provider: *mut BNScriptingProvider,
24854        repository: *const ::std::os::raw::c_char,
24855        module: *const ::std::os::raw::c_char,
24856        force: bool,
24857    ) -> bool;
24858}
24859unsafe extern "C" {
24860    pub fn BNInstallScriptingProviderModules(
24861        provider: *mut BNScriptingProvider,
24862        modules: *const ::std::os::raw::c_char,
24863    ) -> bool;
24864}
24865unsafe extern "C" {
24866    pub fn BNInitScriptingInstance(
24867        provider: *mut BNScriptingProvider,
24868        callbacks: *mut BNScriptingInstanceCallbacks,
24869    ) -> *mut BNScriptingInstance;
24870}
24871unsafe extern "C" {
24872    pub fn BNNewScriptingInstanceReference(
24873        instance: *mut BNScriptingInstance,
24874    ) -> *mut BNScriptingInstance;
24875}
24876unsafe extern "C" {
24877    pub fn BNFreeScriptingInstance(instance: *mut BNScriptingInstance);
24878}
24879unsafe extern "C" {
24880    pub fn BNNotifyOutputForScriptingInstance(
24881        instance: *mut BNScriptingInstance,
24882        text: *const ::std::os::raw::c_char,
24883    );
24884}
24885unsafe extern "C" {
24886    pub fn BNNotifyWarningForScriptingInstance(
24887        instance: *mut BNScriptingInstance,
24888        text: *const ::std::os::raw::c_char,
24889    );
24890}
24891unsafe extern "C" {
24892    pub fn BNNotifyErrorForScriptingInstance(
24893        instance: *mut BNScriptingInstance,
24894        text: *const ::std::os::raw::c_char,
24895    );
24896}
24897unsafe extern "C" {
24898    pub fn BNNotifyInputReadyStateForScriptingInstance(
24899        instance: *mut BNScriptingInstance,
24900        state: BNScriptingProviderInputReadyState,
24901    );
24902}
24903unsafe extern "C" {
24904    pub fn BNRegisterScriptingInstanceOutputListener(
24905        instance: *mut BNScriptingInstance,
24906        callbacks: *mut BNScriptingOutputListener,
24907    );
24908}
24909unsafe extern "C" {
24910    pub fn BNUnregisterScriptingInstanceOutputListener(
24911        instance: *mut BNScriptingInstance,
24912        callbacks: *mut BNScriptingOutputListener,
24913    );
24914}
24915unsafe extern "C" {
24916    pub fn BNGetScriptingInstanceDelimiters(
24917        instance: *mut BNScriptingInstance,
24918    ) -> *mut ::std::os::raw::c_char;
24919}
24920unsafe extern "C" {
24921    pub fn BNSetScriptingInstanceDelimiters(
24922        instance: *mut BNScriptingInstance,
24923        delimiters: *const ::std::os::raw::c_char,
24924    );
24925}
24926unsafe extern "C" {
24927    pub fn BNGetScriptingInstanceInputReadyState(
24928        instance: *mut BNScriptingInstance,
24929    ) -> BNScriptingProviderInputReadyState;
24930}
24931unsafe extern "C" {
24932    pub fn BNExecuteScriptInput(
24933        instance: *mut BNScriptingInstance,
24934        input: *const ::std::os::raw::c_char,
24935    ) -> BNScriptingProviderExecuteResult;
24936}
24937unsafe extern "C" {
24938    pub fn BNExecuteScriptInputFromFilename(
24939        instance: *mut BNScriptingInstance,
24940        filename: *const ::std::os::raw::c_char,
24941    ) -> BNScriptingProviderExecuteResult;
24942}
24943unsafe extern "C" {
24944    pub fn BNCancelScriptInput(instance: *mut BNScriptingInstance);
24945}
24946unsafe extern "C" {
24947    pub fn BNScriptingInstanceReleaseBinaryView(
24948        instance: *mut BNScriptingInstance,
24949        view: *mut BNBinaryView,
24950    );
24951}
24952unsafe extern "C" {
24953    pub fn BNSetScriptingInstanceCurrentBinaryView(
24954        instance: *mut BNScriptingInstance,
24955        view: *mut BNBinaryView,
24956    );
24957}
24958unsafe extern "C" {
24959    pub fn BNSetScriptingInstanceCurrentFunction(
24960        instance: *mut BNScriptingInstance,
24961        func: *mut BNFunction,
24962    );
24963}
24964unsafe extern "C" {
24965    pub fn BNSetScriptingInstanceCurrentBasicBlock(
24966        instance: *mut BNScriptingInstance,
24967        block: *mut BNBasicBlock,
24968    );
24969}
24970unsafe extern "C" {
24971    pub fn BNSetScriptingInstanceCurrentAddress(instance: *mut BNScriptingInstance, addr: u64);
24972}
24973unsafe extern "C" {
24974    pub fn BNSetScriptingInstanceCurrentSelection(
24975        instance: *mut BNScriptingInstance,
24976        begin: u64,
24977        end: u64,
24978    );
24979}
24980unsafe extern "C" {
24981    pub fn BNScriptingInstanceCompleteInput(
24982        instance: *mut BNScriptingInstance,
24983        text: *const ::std::os::raw::c_char,
24984        state: u64,
24985    ) -> *mut ::std::os::raw::c_char;
24986}
24987unsafe extern "C" {
24988    pub fn BNScriptingInstanceCanCompleteArguments(
24989        instance: *mut BNScriptingInstance,
24990        text: *const ::std::os::raw::c_char,
24991    ) -> bool;
24992}
24993unsafe extern "C" {
24994    pub fn BNScriptingInstanceCompleteArguments(
24995        instance: *mut BNScriptingInstance,
24996        text: *const ::std::os::raw::c_char,
24997        argumentStart: *mut u64,
24998    ) -> *mut ::std::os::raw::c_char;
24999}
25000unsafe extern "C" {
25001    pub fn BNStopScriptingInstance(instance: *mut BNScriptingInstance);
25002}
25003unsafe extern "C" {
25004    pub fn BNFuzzyMatchSingle(
25005        target: *const ::std::os::raw::c_char,
25006        query: *const ::std::os::raw::c_char,
25007    ) -> usize;
25008}
25009unsafe extern "C" {
25010    #[doc = " Main thread actions"]
25011    pub fn BNRegisterMainThread(callbacks: *mut BNMainThreadCallbacks);
25012}
25013unsafe extern "C" {
25014    pub fn BNNewMainThreadActionReference(
25015        action: *mut BNMainThreadAction,
25016    ) -> *mut BNMainThreadAction;
25017}
25018unsafe extern "C" {
25019    pub fn BNFreeMainThreadAction(action: *mut BNMainThreadAction);
25020}
25021unsafe extern "C" {
25022    pub fn BNExecuteMainThreadAction(action: *mut BNMainThreadAction);
25023}
25024unsafe extern "C" {
25025    pub fn BNIsMainThreadActionDone(action: *mut BNMainThreadAction) -> bool;
25026}
25027unsafe extern "C" {
25028    pub fn BNWaitForMainThreadAction(action: *mut BNMainThreadAction);
25029}
25030unsafe extern "C" {
25031    pub fn BNExecuteOnMainThread(
25032        ctxt: *mut ::std::os::raw::c_void,
25033        func: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
25034    ) -> *mut BNMainThreadAction;
25035}
25036unsafe extern "C" {
25037    pub fn BNExecuteOnMainThreadAndWait(
25038        ctxt: *mut ::std::os::raw::c_void,
25039        func: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
25040    );
25041}
25042unsafe extern "C" {
25043    pub fn BNIsMainThread() -> bool;
25044}
25045unsafe extern "C" {
25046    #[doc = " Worker thread queue management"]
25047    pub fn BNWorkerEnqueue(
25048        ctxt: *mut ::std::os::raw::c_void,
25049        action: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
25050    );
25051}
25052unsafe extern "C" {
25053    pub fn BNWorkerEnqueueNamed(
25054        ctxt: *mut ::std::os::raw::c_void,
25055        action: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
25056        name: *const ::std::os::raw::c_char,
25057    );
25058}
25059unsafe extern "C" {
25060    pub fn BNWorkerPriorityEnqueue(
25061        ctxt: *mut ::std::os::raw::c_void,
25062        action: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
25063    );
25064}
25065unsafe extern "C" {
25066    pub fn BNWorkerPriorityEnqueueNamed(
25067        ctxt: *mut ::std::os::raw::c_void,
25068        action: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
25069        name: *const ::std::os::raw::c_char,
25070    );
25071}
25072unsafe extern "C" {
25073    pub fn BNWorkerInteractiveEnqueue(
25074        ctxt: *mut ::std::os::raw::c_void,
25075        action: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
25076    );
25077}
25078unsafe extern "C" {
25079    pub fn BNWorkerInteractiveEnqueueNamed(
25080        ctxt: *mut ::std::os::raw::c_void,
25081        action: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
25082        name: *const ::std::os::raw::c_char,
25083    );
25084}
25085unsafe extern "C" {
25086    pub fn BNGetWorkerThreadCount() -> usize;
25087}
25088unsafe extern "C" {
25089    pub fn BNSetWorkerThreadCount(count: usize);
25090}
25091unsafe extern "C" {
25092    pub fn BNSetThreadName(name: *const ::std::os::raw::c_char);
25093}
25094unsafe extern "C" {
25095    #[doc = " Background task progress reporting"]
25096    pub fn BNBeginBackgroundTask(
25097        initialText: *const ::std::os::raw::c_char,
25098        canCancel: bool,
25099    ) -> *mut BNBackgroundTask;
25100}
25101unsafe extern "C" {
25102    pub fn BNFinishBackgroundTask(task: *mut BNBackgroundTask);
25103}
25104unsafe extern "C" {
25105    pub fn BNSetBackgroundTaskProgressText(
25106        task: *mut BNBackgroundTask,
25107        text: *const ::std::os::raw::c_char,
25108    );
25109}
25110unsafe extern "C" {
25111    pub fn BNIsBackgroundTaskCancelled(task: *mut BNBackgroundTask) -> bool;
25112}
25113unsafe extern "C" {
25114    pub fn BNGetRunningBackgroundTasks(count: *mut usize) -> *mut *mut BNBackgroundTask;
25115}
25116unsafe extern "C" {
25117    pub fn BNNewBackgroundTaskReference(task: *mut BNBackgroundTask) -> *mut BNBackgroundTask;
25118}
25119unsafe extern "C" {
25120    pub fn BNFreeBackgroundTask(task: *mut BNBackgroundTask);
25121}
25122unsafe extern "C" {
25123    pub fn BNFreeBackgroundTaskList(tasks: *mut *mut BNBackgroundTask, count: usize);
25124}
25125unsafe extern "C" {
25126    pub fn BNGetBackgroundTaskProgressText(
25127        task: *mut BNBackgroundTask,
25128    ) -> *mut ::std::os::raw::c_char;
25129}
25130unsafe extern "C" {
25131    pub fn BNGetBackgroundTaskRuntimeSeconds(task: *mut BNBackgroundTask) -> u64;
25132}
25133unsafe extern "C" {
25134    pub fn BNCanCancelBackgroundTask(task: *mut BNBackgroundTask) -> bool;
25135}
25136unsafe extern "C" {
25137    pub fn BNCancelBackgroundTask(task: *mut BNBackgroundTask);
25138}
25139unsafe extern "C" {
25140    pub fn BNIsBackgroundTaskFinished(task: *mut BNBackgroundTask) -> bool;
25141}
25142unsafe extern "C" {
25143    #[doc = " Interaction APIs"]
25144    pub fn BNRegisterInteractionHandler(callbacks: *mut BNInteractionHandlerCallbacks);
25145}
25146unsafe extern "C" {
25147    pub fn BNMarkdownToHTML(contents: *const ::std::os::raw::c_char)
25148    -> *mut ::std::os::raw::c_char;
25149}
25150unsafe extern "C" {
25151    pub fn BNShowPlainTextReport(
25152        view: *mut BNBinaryView,
25153        title: *const ::std::os::raw::c_char,
25154        contents: *const ::std::os::raw::c_char,
25155    );
25156}
25157unsafe extern "C" {
25158    pub fn BNShowMarkdownReport(
25159        view: *mut BNBinaryView,
25160        title: *const ::std::os::raw::c_char,
25161        contents: *const ::std::os::raw::c_char,
25162        plaintext: *const ::std::os::raw::c_char,
25163    );
25164}
25165unsafe extern "C" {
25166    pub fn BNShowHTMLReport(
25167        view: *mut BNBinaryView,
25168        title: *const ::std::os::raw::c_char,
25169        contents: *const ::std::os::raw::c_char,
25170        plaintext: *const ::std::os::raw::c_char,
25171    );
25172}
25173unsafe extern "C" {
25174    pub fn BNShowGraphReport(
25175        view: *mut BNBinaryView,
25176        title: *const ::std::os::raw::c_char,
25177        graph: *mut BNFlowGraph,
25178    );
25179}
25180unsafe extern "C" {
25181    pub fn BNShowReportCollection(
25182        title: *const ::std::os::raw::c_char,
25183        reports: *mut BNReportCollection,
25184    );
25185}
25186unsafe extern "C" {
25187    pub fn BNGetTextLineInput(
25188        result: *mut *mut ::std::os::raw::c_char,
25189        prompt: *const ::std::os::raw::c_char,
25190        title: *const ::std::os::raw::c_char,
25191    ) -> bool;
25192}
25193unsafe extern "C" {
25194    pub fn BNGetIntegerInput(
25195        result: *mut i64,
25196        prompt: *const ::std::os::raw::c_char,
25197        title: *const ::std::os::raw::c_char,
25198    ) -> bool;
25199}
25200unsafe extern "C" {
25201    pub fn BNGetAddressInput(
25202        result: *mut u64,
25203        prompt: *const ::std::os::raw::c_char,
25204        title: *const ::std::os::raw::c_char,
25205        view: *mut BNBinaryView,
25206        currentAddr: u64,
25207    ) -> bool;
25208}
25209unsafe extern "C" {
25210    pub fn BNGetChoiceInput(
25211        result: *mut usize,
25212        prompt: *const ::std::os::raw::c_char,
25213        title: *const ::std::os::raw::c_char,
25214        choices: *mut *const ::std::os::raw::c_char,
25215        count: usize,
25216    ) -> bool;
25217}
25218unsafe extern "C" {
25219    pub fn BNGetLargeChoiceInput(
25220        result: *mut usize,
25221        prompt: *const ::std::os::raw::c_char,
25222        title: *const ::std::os::raw::c_char,
25223        choices: *mut *const ::std::os::raw::c_char,
25224        count: usize,
25225    ) -> bool;
25226}
25227unsafe extern "C" {
25228    pub fn BNGetOpenFileNameInput(
25229        result: *mut *mut ::std::os::raw::c_char,
25230        prompt: *const ::std::os::raw::c_char,
25231        ext: *const ::std::os::raw::c_char,
25232    ) -> bool;
25233}
25234unsafe extern "C" {
25235    pub fn BNGetSaveFileNameInput(
25236        result: *mut *mut ::std::os::raw::c_char,
25237        prompt: *const ::std::os::raw::c_char,
25238        ext: *const ::std::os::raw::c_char,
25239        defaultName: *const ::std::os::raw::c_char,
25240    ) -> bool;
25241}
25242unsafe extern "C" {
25243    pub fn BNGetDirectoryNameInput(
25244        result: *mut *mut ::std::os::raw::c_char,
25245        prompt: *const ::std::os::raw::c_char,
25246        defaultName: *const ::std::os::raw::c_char,
25247    ) -> bool;
25248}
25249unsafe extern "C" {
25250    pub fn BNGetCheckboxInput(
25251        result: *mut i64,
25252        prompt: *const ::std::os::raw::c_char,
25253        title: *const ::std::os::raw::c_char,
25254        defaultChoice: *const i64,
25255    ) -> bool;
25256}
25257unsafe extern "C" {
25258    pub fn BNGetFormInput(
25259        fields: *mut BNFormInputField,
25260        count: usize,
25261        title: *const ::std::os::raw::c_char,
25262    ) -> bool;
25263}
25264unsafe extern "C" {
25265    pub fn BNFreeFormInputResults(fields: *mut BNFormInputField, count: usize);
25266}
25267unsafe extern "C" {
25268    pub fn BNShowMessageBox(
25269        title: *const ::std::os::raw::c_char,
25270        text: *const ::std::os::raw::c_char,
25271        buttons: BNMessageBoxButtonSet,
25272        icon: BNMessageBoxIcon,
25273    ) -> BNMessageBoxButtonResult;
25274}
25275unsafe extern "C" {
25276    pub fn BNOpenUrl(url: *const ::std::os::raw::c_char) -> bool;
25277}
25278unsafe extern "C" {
25279    pub fn BNRunProgressDialog(
25280        title: *const ::std::os::raw::c_char,
25281        canCancel: bool,
25282        task: ::std::option::Option<
25283            unsafe extern "C" fn(
25284                taskCtxt: *mut ::std::os::raw::c_void,
25285                progress: BNProgressFunction,
25286                progressCtxt: *mut ::std::os::raw::c_void,
25287            ),
25288        >,
25289        taskCtxt: *mut ::std::os::raw::c_void,
25290    ) -> bool;
25291}
25292unsafe extern "C" {
25293    pub fn BNCreateReportCollection() -> *mut BNReportCollection;
25294}
25295unsafe extern "C" {
25296    pub fn BNNewReportCollectionReference(
25297        reports: *mut BNReportCollection,
25298    ) -> *mut BNReportCollection;
25299}
25300unsafe extern "C" {
25301    pub fn BNFreeReportCollection(reports: *mut BNReportCollection);
25302}
25303unsafe extern "C" {
25304    pub fn BNGetReportCollectionCount(reports: *mut BNReportCollection) -> usize;
25305}
25306unsafe extern "C" {
25307    pub fn BNGetReportType(reports: *mut BNReportCollection, i: usize) -> BNReportType;
25308}
25309unsafe extern "C" {
25310    pub fn BNGetReportView(reports: *mut BNReportCollection, i: usize) -> *mut BNBinaryView;
25311}
25312unsafe extern "C" {
25313    pub fn BNGetReportTitle(
25314        reports: *mut BNReportCollection,
25315        i: usize,
25316    ) -> *mut ::std::os::raw::c_char;
25317}
25318unsafe extern "C" {
25319    pub fn BNGetReportContents(
25320        reports: *mut BNReportCollection,
25321        i: usize,
25322    ) -> *mut ::std::os::raw::c_char;
25323}
25324unsafe extern "C" {
25325    pub fn BNGetReportPlainText(
25326        reports: *mut BNReportCollection,
25327        i: usize,
25328    ) -> *mut ::std::os::raw::c_char;
25329}
25330unsafe extern "C" {
25331    pub fn BNGetReportFlowGraph(reports: *mut BNReportCollection, i: usize) -> *mut BNFlowGraph;
25332}
25333unsafe extern "C" {
25334    pub fn BNAddPlainTextReportToCollection(
25335        reports: *mut BNReportCollection,
25336        view: *mut BNBinaryView,
25337        title: *const ::std::os::raw::c_char,
25338        contents: *const ::std::os::raw::c_char,
25339    );
25340}
25341unsafe extern "C" {
25342    pub fn BNAddMarkdownReportToCollection(
25343        reports: *mut BNReportCollection,
25344        view: *mut BNBinaryView,
25345        title: *const ::std::os::raw::c_char,
25346        contents: *const ::std::os::raw::c_char,
25347        plaintext: *const ::std::os::raw::c_char,
25348    );
25349}
25350unsafe extern "C" {
25351    pub fn BNAddHTMLReportToCollection(
25352        reports: *mut BNReportCollection,
25353        view: *mut BNBinaryView,
25354        title: *const ::std::os::raw::c_char,
25355        contents: *const ::std::os::raw::c_char,
25356        plaintext: *const ::std::os::raw::c_char,
25357    );
25358}
25359unsafe extern "C" {
25360    pub fn BNAddGraphReportToCollection(
25361        reports: *mut BNReportCollection,
25362        view: *mut BNBinaryView,
25363        title: *const ::std::os::raw::c_char,
25364        graph: *mut BNFlowGraph,
25365    );
25366}
25367unsafe extern "C" {
25368    pub fn BNUpdateReportFlowGraph(
25369        reports: *mut BNReportCollection,
25370        i: usize,
25371        graph: *mut BNFlowGraph,
25372    );
25373}
25374unsafe extern "C" {
25375    #[doc = " Demangler"]
25376    pub fn BNDemangleMS(
25377        arch: *mut BNArchitecture,
25378        mangledName: *const ::std::os::raw::c_char,
25379        outType: *mut *mut BNType,
25380        outVarName: *mut *mut *mut ::std::os::raw::c_char,
25381        outVarNameElements: *mut usize,
25382        simplify: bool,
25383    ) -> bool;
25384}
25385unsafe extern "C" {
25386    pub fn BNDemangleMSWithOptions(
25387        arch: *mut BNArchitecture,
25388        mangledName: *const ::std::os::raw::c_char,
25389        outType: *mut *mut BNType,
25390        outVarName: *mut *mut *mut ::std::os::raw::c_char,
25391        outVarNameElements: *mut usize,
25392        view: *const BNBinaryView,
25393    ) -> bool;
25394}
25395unsafe extern "C" {
25396    pub fn BNDemangleMSPlatform(
25397        platform: *mut BNPlatform,
25398        mangledName: *const ::std::os::raw::c_char,
25399        outType: *mut *mut BNType,
25400        outVarName: *mut *mut *mut ::std::os::raw::c_char,
25401        outVarNameElements: *mut usize,
25402        simplify: bool,
25403    ) -> bool;
25404}
25405unsafe extern "C" {
25406    pub fn BNIsGNU3MangledString(mangledName: *const ::std::os::raw::c_char) -> bool;
25407}
25408unsafe extern "C" {
25409    pub fn BNDemangleGNU3(
25410        arch: *mut BNArchitecture,
25411        mangledName: *const ::std::os::raw::c_char,
25412        outType: *mut *mut BNType,
25413        outVarName: *mut *mut *mut ::std::os::raw::c_char,
25414        outVarNameElements: *mut usize,
25415        simplify: bool,
25416    ) -> bool;
25417}
25418unsafe extern "C" {
25419    pub fn BNDemangleGNU3WithOptions(
25420        arch: *mut BNArchitecture,
25421        mangledName: *const ::std::os::raw::c_char,
25422        outType: *mut *mut BNType,
25423        outVarName: *mut *mut *mut ::std::os::raw::c_char,
25424        outVarNameElements: *mut usize,
25425        view: *const BNBinaryView,
25426    ) -> bool;
25427}
25428unsafe extern "C" {
25429    pub fn BNFreeDemangledName(name: *mut *mut *mut ::std::os::raw::c_char, nameElements: usize);
25430}
25431unsafe extern "C" {
25432    pub fn BNDemangleLLVM(
25433        mangledName: *const ::std::os::raw::c_char,
25434        outVarName: *mut *mut *mut ::std::os::raw::c_char,
25435        outVarNameElements: *mut usize,
25436        simplify: bool,
25437    ) -> bool;
25438}
25439unsafe extern "C" {
25440    pub fn BNDemangleLLVMWithOptions(
25441        mangledName: *const ::std::os::raw::c_char,
25442        outVarName: *mut *mut *mut ::std::os::raw::c_char,
25443        outVarNameElements: *mut usize,
25444        view: *const BNBinaryView,
25445    ) -> bool;
25446}
25447unsafe extern "C" {
25448    pub fn BNRegisterDemangler(
25449        name: *const ::std::os::raw::c_char,
25450        callbacks: *mut BNDemanglerCallbacks,
25451    ) -> *mut BNDemangler;
25452}
25453unsafe extern "C" {
25454    pub fn BNGetDemanglerList(count: *mut usize) -> *mut *mut BNDemangler;
25455}
25456unsafe extern "C" {
25457    pub fn BNFreeDemanglerList(demanglers: *mut *mut BNDemangler);
25458}
25459unsafe extern "C" {
25460    pub fn BNGetDemanglerByName(name: *const ::std::os::raw::c_char) -> *mut BNDemangler;
25461}
25462unsafe extern "C" {
25463    pub fn BNGetDemanglerName(demangler: *mut BNDemangler) -> *mut ::std::os::raw::c_char;
25464}
25465unsafe extern "C" {
25466    pub fn BNPromoteDemangler(demangler: *mut BNDemangler);
25467}
25468unsafe extern "C" {
25469    pub fn BNIsDemanglerMangledName(
25470        demangler: *mut BNDemangler,
25471        name: *const ::std::os::raw::c_char,
25472    ) -> bool;
25473}
25474unsafe extern "C" {
25475    pub fn BNDemanglerDemangle(
25476        demangler: *mut BNDemangler,
25477        arch: *mut BNArchitecture,
25478        name: *const ::std::os::raw::c_char,
25479        outType: *mut *mut BNType,
25480        outVarName: *mut BNQualifiedName,
25481        view: *mut BNBinaryView,
25482    ) -> bool;
25483}
25484unsafe extern "C" {
25485    pub fn BNDemangleGeneric(
25486        arch: *mut BNArchitecture,
25487        name: *const ::std::os::raw::c_char,
25488        outType: *mut *mut BNType,
25489        outVarName: *mut BNQualifiedName,
25490        view: *mut BNBinaryView,
25491        simplify: bool,
25492    ) -> bool;
25493}
25494unsafe extern "C" {
25495    #[doc = " Plugin repository APIs"]
25496    pub fn BNPluginGetApis(p: *mut BNPlugin, count: *mut usize)
25497    -> *mut *mut ::std::os::raw::c_char;
25498}
25499unsafe extern "C" {
25500    pub fn BNPluginGetAuthor(p: *mut BNPlugin) -> *const ::std::os::raw::c_char;
25501}
25502unsafe extern "C" {
25503    pub fn BNPluginGetDescription(p: *mut BNPlugin) -> *const ::std::os::raw::c_char;
25504}
25505unsafe extern "C" {
25506    pub fn BNPluginGetLicenseText(p: *mut BNPlugin) -> *const ::std::os::raw::c_char;
25507}
25508unsafe extern "C" {
25509    pub fn BNPluginGetMinimumVersionInfo(p: *mut BNPlugin) -> BNVersionInfo;
25510}
25511unsafe extern "C" {
25512    pub fn BNPluginGetMaximumVersionInfo(p: *mut BNPlugin) -> BNVersionInfo;
25513}
25514unsafe extern "C" {
25515    pub fn BNParseVersionString(v: *const ::std::os::raw::c_char) -> BNVersionInfo;
25516}
25517unsafe extern "C" {
25518    pub fn BNVersionLessThan(smaller: BNVersionInfo, larger: BNVersionInfo) -> bool;
25519}
25520unsafe extern "C" {
25521    pub fn BNPluginVersionIDLessThan(
25522        p: *mut BNPlugin,
25523        smaller: *const ::std::os::raw::c_char,
25524        larger: *const ::std::os::raw::c_char,
25525    ) -> bool;
25526}
25527unsafe extern "C" {
25528    pub fn BNPluginGetName(p: *mut BNPlugin) -> *const ::std::os::raw::c_char;
25529}
25530unsafe extern "C" {
25531    pub fn BNPluginGetProjectUrl(p: *mut BNPlugin) -> *const ::std::os::raw::c_char;
25532}
25533unsafe extern "C" {
25534    pub fn BNPluginGetPackageUrl(p: *mut BNPlugin) -> *const ::std::os::raw::c_char;
25535}
25536unsafe extern "C" {
25537    pub fn BNPluginGetAuthorUrl(p: *mut BNPlugin) -> *const ::std::os::raw::c_char;
25538}
25539unsafe extern "C" {
25540    pub fn BNPluginGetVersions(p: *mut BNPlugin, count: *mut usize) -> *mut BNPluginVersion;
25541}
25542unsafe extern "C" {
25543    pub fn BNFreePluginVersions(r: *mut BNPluginVersion, count: usize);
25544}
25545unsafe extern "C" {
25546    pub fn BNPluginGetCurrentVersionID(p: *mut BNPlugin) -> *const ::std::os::raw::c_char;
25547}
25548unsafe extern "C" {
25549    pub fn BNPluginGetCurrentVersion(p: *mut BNPlugin) -> BNPluginVersion;
25550}
25551unsafe extern "C" {
25552    pub fn BNPluginFreeVersion(v: BNPluginVersion);
25553}
25554unsafe extern "C" {
25555    pub fn BNPluginGetCommit(p: *mut BNPlugin) -> *const ::std::os::raw::c_char;
25556}
25557unsafe extern "C" {
25558    pub fn BNPluginGetViewOnly(p: *mut BNPlugin) -> bool;
25559}
25560unsafe extern "C" {
25561    pub fn BNPluginGetIsPaid(p: *mut BNPlugin) -> bool;
25562}
25563unsafe extern "C" {
25564    pub fn BNFreePluginTypes(r: *mut BNPluginType);
25565}
25566unsafe extern "C" {
25567    pub fn BNNewPluginReference(r: *mut BNPlugin) -> *mut BNPlugin;
25568}
25569unsafe extern "C" {
25570    pub fn BNFreePlugin(plugin: *mut BNPlugin);
25571}
25572unsafe extern "C" {
25573    pub fn BNPluginGetPath(p: *mut BNPlugin) -> *const ::std::os::raw::c_char;
25574}
25575unsafe extern "C" {
25576    pub fn BNPluginGetSubdir(p: *mut BNPlugin) -> *const ::std::os::raw::c_char;
25577}
25578unsafe extern "C" {
25579    pub fn BNPluginGetDependencies(p: *mut BNPlugin) -> *const ::std::os::raw::c_char;
25580}
25581unsafe extern "C" {
25582    pub fn BNPluginGetLongdescription(p: *mut BNPlugin) -> *const ::std::os::raw::c_char;
25583}
25584unsafe extern "C" {
25585    pub fn BNPluginGetLastUpdate(p: *mut BNPlugin) -> u64;
25586}
25587unsafe extern "C" {
25588    pub fn BNPluginIsInstalled(p: *mut BNPlugin) -> bool;
25589}
25590unsafe extern "C" {
25591    pub fn BNPluginIsEnabled(p: *mut BNPlugin) -> bool;
25592}
25593unsafe extern "C" {
25594    pub fn BNPluginGetPluginStatus(p: *mut BNPlugin) -> BNPluginStatus;
25595}
25596unsafe extern "C" {
25597    pub fn BNPluginGetPluginTypes(p: *mut BNPlugin, count: *mut usize) -> *mut BNPluginType;
25598}
25599unsafe extern "C" {
25600    pub fn BNPluginEnable(p: *mut BNPlugin, force: bool) -> bool;
25601}
25602unsafe extern "C" {
25603    pub fn BNPluginDisable(p: *mut BNPlugin) -> bool;
25604}
25605unsafe extern "C" {
25606    pub fn BNPluginInstall(p: *mut BNPlugin, versionID: *const ::std::os::raw::c_char) -> bool;
25607}
25608unsafe extern "C" {
25609    pub fn BNPluginInstallDependencies(p: *mut BNPlugin) -> bool;
25610}
25611unsafe extern "C" {
25612    pub fn BNPluginUninstall(p: *mut BNPlugin) -> bool;
25613}
25614unsafe extern "C" {
25615    pub fn BNPluginUpdate(p: *mut BNPlugin, versionID: *const ::std::os::raw::c_char) -> bool;
25616}
25617unsafe extern "C" {
25618    pub fn BNPluginGetPlatforms(
25619        p: *mut BNPlugin,
25620        count: *mut usize,
25621    ) -> *mut *mut ::std::os::raw::c_char;
25622}
25623unsafe extern "C" {
25624    pub fn BNFreePluginPlatforms(platforms: *mut *mut ::std::os::raw::c_char, count: usize);
25625}
25626unsafe extern "C" {
25627    pub fn BNPluginGetRepository(p: *mut BNPlugin) -> *const ::std::os::raw::c_char;
25628}
25629unsafe extern "C" {
25630    pub fn BNPluginIsBeingDeleted(p: *mut BNPlugin) -> bool;
25631}
25632unsafe extern "C" {
25633    pub fn BNPluginIsBeingUpdated(p: *mut BNPlugin) -> bool;
25634}
25635unsafe extern "C" {
25636    pub fn BNPluginIsRunning(p: *mut BNPlugin) -> bool;
25637}
25638unsafe extern "C" {
25639    pub fn BNPluginIsUpdatePending(p: *mut BNPlugin) -> bool;
25640}
25641unsafe extern "C" {
25642    pub fn BNPluginIsDisablePending(p: *mut BNPlugin) -> bool;
25643}
25644unsafe extern "C" {
25645    pub fn BNPluginIsDeletePending(p: *mut BNPlugin) -> bool;
25646}
25647unsafe extern "C" {
25648    pub fn BNPluginIsUpdateAvailable(p: *mut BNPlugin) -> bool;
25649}
25650unsafe extern "C" {
25651    pub fn BNPluginAreDependenciesBeingInstalled(p: *mut BNPlugin) -> bool;
25652}
25653unsafe extern "C" {
25654    pub fn BNPluginGetProjectData(p: *mut BNPlugin) -> *mut ::std::os::raw::c_char;
25655}
25656unsafe extern "C" {
25657    pub fn BNPluginGetCurrentVersionCreationDate(p: *mut BNPlugin) -> *mut ::std::os::raw::c_char;
25658}
25659unsafe extern "C" {
25660    pub fn BNNewRepositoryReference(r: *mut BNRepository) -> *mut BNRepository;
25661}
25662unsafe extern "C" {
25663    pub fn BNFreeRepository(r: *mut BNRepository);
25664}
25665unsafe extern "C" {
25666    pub fn BNRepositoryGetUrl(r: *mut BNRepository) -> *mut ::std::os::raw::c_char;
25667}
25668unsafe extern "C" {
25669    pub fn BNRepositoryGetRepoPath(r: *mut BNRepository) -> *mut ::std::os::raw::c_char;
25670}
25671unsafe extern "C" {
25672    pub fn BNRepositoryGetPlugins(r: *mut BNRepository, count: *mut usize) -> *mut *mut BNPlugin;
25673}
25674unsafe extern "C" {
25675    pub fn BNFreeRepositoryPluginList(r: *mut *mut BNPlugin);
25676}
25677unsafe extern "C" {
25678    pub fn BNRepositoryFreePluginDirectoryList(
25679        list: *mut *mut ::std::os::raw::c_char,
25680        count: usize,
25681    );
25682}
25683unsafe extern "C" {
25684    pub fn BNRepositoryGetPluginByPath(
25685        r: *mut BNRepository,
25686        pluginPath: *const ::std::os::raw::c_char,
25687    ) -> *mut BNPlugin;
25688}
25689unsafe extern "C" {
25690    pub fn BNRepositoryGetPluginsPath(r: *mut BNRepository) -> *const ::std::os::raw::c_char;
25691}
25692unsafe extern "C" {
25693    pub fn BNRepositoryManagerCheckForUpdates() -> bool;
25694}
25695unsafe extern "C" {
25696    pub fn BNRepositoryManagerGetRepositories(count: *mut usize) -> *mut *mut BNRepository;
25697}
25698unsafe extern "C" {
25699    pub fn BNFreeRepositoryManagerRepositoriesList(r: *mut *mut BNRepository);
25700}
25701unsafe extern "C" {
25702    pub fn BNRepositoryManagerAddRepository(
25703        url: *const ::std::os::raw::c_char,
25704        repoPath: *const ::std::os::raw::c_char,
25705    ) -> bool;
25706}
25707unsafe extern "C" {
25708    pub fn BNRepositoryGetRepositoryByPath(
25709        repoPath: *const ::std::os::raw::c_char,
25710    ) -> *mut BNRepository;
25711}
25712unsafe extern "C" {
25713    pub fn BNRepositoryManagerGetDefaultRepository() -> *mut BNRepository;
25714}
25715unsafe extern "C" {
25716    #[doc = " Components"]
25717    pub fn BNNewComponentReference(component: *mut BNComponent) -> *mut BNComponent;
25718}
25719unsafe extern "C" {
25720    pub fn BNFreeComponent(component: *mut BNComponent);
25721}
25722unsafe extern "C" {
25723    pub fn BNComponentGetContainedFunctions(
25724        component: *mut BNComponent,
25725        count: *mut usize,
25726    ) -> *mut *mut BNFunction;
25727}
25728unsafe extern "C" {
25729    pub fn BNComponentGetContainedComponents(
25730        component: *mut BNComponent,
25731        count: *mut usize,
25732    ) -> *mut *mut BNComponent;
25733}
25734unsafe extern "C" {
25735    pub fn BNComponentGetContainedDataVariables(
25736        component: *mut BNComponent,
25737        count: *mut usize,
25738    ) -> *mut BNDataVariable;
25739}
25740unsafe extern "C" {
25741    pub fn BNComponentGetReferencedDataVariables(
25742        component: *mut BNComponent,
25743        count: *mut usize,
25744    ) -> *mut BNDataVariable;
25745}
25746unsafe extern "C" {
25747    pub fn BNComponentGetReferencedDataVariablesRecursive(
25748        component: *mut BNComponent,
25749        count: *mut usize,
25750    ) -> *mut BNDataVariable;
25751}
25752unsafe extern "C" {
25753    pub fn BNComponentGetReferencedTypes(
25754        component: *mut BNComponent,
25755        count: *mut usize,
25756    ) -> *mut *mut BNType;
25757}
25758unsafe extern "C" {
25759    pub fn BNComponentGetReferencedTypesRecursive(
25760        component: *mut BNComponent,
25761        count: *mut usize,
25762    ) -> *mut *mut BNType;
25763}
25764unsafe extern "C" {
25765    pub fn BNFreeComponents(components: *mut *mut BNComponent, count: usize);
25766}
25767unsafe extern "C" {
25768    pub fn BNComponentFreeReferencedTypes(types: *mut *mut BNType, count: usize);
25769}
25770unsafe extern "C" {
25771    pub fn BNComponentGetParent(component: *mut BNComponent) -> *mut BNComponent;
25772}
25773unsafe extern "C" {
25774    pub fn BNComponentContainsFunction(
25775        component: *mut BNComponent,
25776        function: *mut BNFunction,
25777    ) -> bool;
25778}
25779unsafe extern "C" {
25780    pub fn BNComponentContainsComponent(
25781        parent: *mut BNComponent,
25782        component: *mut BNComponent,
25783    ) -> bool;
25784}
25785unsafe extern "C" {
25786    pub fn BNComponentContainsDataVariable(component: *mut BNComponent, address: u64) -> bool;
25787}
25788unsafe extern "C" {
25789    pub fn BNComponentAddFunctionReference(
25790        component: *mut BNComponent,
25791        function: *mut BNFunction,
25792    ) -> bool;
25793}
25794unsafe extern "C" {
25795    pub fn BNComponentAddComponent(parent: *mut BNComponent, component: *mut BNComponent) -> bool;
25796}
25797unsafe extern "C" {
25798    pub fn BNComponentAddDataVariable(component: *mut BNComponent, address: u64) -> bool;
25799}
25800unsafe extern "C" {
25801    pub fn BNComponentRemoveComponent(component: *mut BNComponent) -> bool;
25802}
25803unsafe extern "C" {
25804    pub fn BNComponentRemoveFunctionReference(
25805        component: *mut BNComponent,
25806        function: *mut BNFunction,
25807    ) -> bool;
25808}
25809unsafe extern "C" {
25810    pub fn BNComponentRemoveAllFunctions(component: *mut BNComponent);
25811}
25812unsafe extern "C" {
25813    pub fn BNComponentRemoveDataVariable(component: *mut BNComponent, address: u64) -> bool;
25814}
25815unsafe extern "C" {
25816    pub fn BNComponentAddAllMembersFromComponent(
25817        component: *mut BNComponent,
25818        fromComponent: *mut BNComponent,
25819    );
25820}
25821unsafe extern "C" {
25822    pub fn BNComponentGetGuid(component: *mut BNComponent) -> *mut ::std::os::raw::c_char;
25823}
25824unsafe extern "C" {
25825    pub fn BNComponentsEqual(a: *mut BNComponent, b: *mut BNComponent) -> bool;
25826}
25827unsafe extern "C" {
25828    pub fn BNComponentsNotEqual(a: *mut BNComponent, b: *mut BNComponent) -> bool;
25829}
25830unsafe extern "C" {
25831    pub fn BNComponentGetDisplayName(component: *mut BNComponent) -> *mut ::std::os::raw::c_char;
25832}
25833unsafe extern "C" {
25834    pub fn BNComponentGetOriginalName(component: *mut BNComponent) -> *mut ::std::os::raw::c_char;
25835}
25836unsafe extern "C" {
25837    pub fn BNComponentSetName(component: *mut BNComponent, name: *const ::std::os::raw::c_char);
25838}
25839unsafe extern "C" {
25840    pub fn BNComponentGetView(component: *mut BNComponent) -> *mut BNBinaryView;
25841}
25842unsafe extern "C" {
25843    #[doc = " LLVM Services APIs"]
25844    pub fn BNLlvmServicesInit();
25845}
25846unsafe extern "C" {
25847    pub fn BNLlvmServicesAssemble(
25848        src: *const ::std::os::raw::c_char,
25849        dialect: ::std::os::raw::c_int,
25850        triplet: *const ::std::os::raw::c_char,
25851        codeModel: ::std::os::raw::c_int,
25852        relocMode: ::std::os::raw::c_int,
25853        outBytes: *mut *mut ::std::os::raw::c_char,
25854        outBytesLen: *mut ::std::os::raw::c_int,
25855        err: *mut *mut ::std::os::raw::c_char,
25856        errLen: *mut ::std::os::raw::c_int,
25857    ) -> ::std::os::raw::c_int;
25858}
25859unsafe extern "C" {
25860    pub fn BNLlvmServicesAssembleFree(
25861        outBytes: *mut ::std::os::raw::c_char,
25862        err: *mut ::std::os::raw::c_char,
25863    );
25864}
25865unsafe extern "C" {
25866    pub fn BNLlvmServicesDisasmInstruction(
25867        triplet: *const ::std::os::raw::c_char,
25868        src: *mut u8,
25869        srcLen: ::std::os::raw::c_int,
25870        addr: u64,
25871        result: *mut ::std::os::raw::c_char,
25872        resultMaxSize: usize,
25873    ) -> ::std::os::raw::c_int;
25874}
25875unsafe extern "C" {
25876    #[doc = " Filesystem functionality"]
25877    pub fn BNDeleteFile(path: *const ::std::os::raw::c_char) -> bool;
25878}
25879unsafe extern "C" {
25880    pub fn BNDeleteDirectory(path: *const ::std::os::raw::c_char) -> bool;
25881}
25882unsafe extern "C" {
25883    pub fn BNCreateDirectory(
25884        path: *const ::std::os::raw::c_char,
25885        createSubdirectories: bool,
25886    ) -> bool;
25887}
25888unsafe extern "C" {
25889    pub fn BNPathExists(path: *const ::std::os::raw::c_char) -> bool;
25890}
25891unsafe extern "C" {
25892    pub fn BNIsPathDirectory(path: *const ::std::os::raw::c_char) -> bool;
25893}
25894unsafe extern "C" {
25895    pub fn BNIsPathRegularFile(path: *const ::std::os::raw::c_char) -> bool;
25896}
25897unsafe extern "C" {
25898    pub fn BNFileSize(path: *const ::std::os::raw::c_char, size: *mut u64) -> bool;
25899}
25900unsafe extern "C" {
25901    pub fn BNRenameFile(
25902        source: *const ::std::os::raw::c_char,
25903        dest: *const ::std::os::raw::c_char,
25904    ) -> bool;
25905}
25906unsafe extern "C" {
25907    pub fn BNCopyFile(
25908        source: *const ::std::os::raw::c_char,
25909        dest: *const ::std::os::raw::c_char,
25910    ) -> bool;
25911}
25912unsafe extern "C" {
25913    pub fn BNGetFilePathsInDirectory(
25914        path: *const ::std::os::raw::c_char,
25915        count: *mut usize,
25916    ) -> *mut *mut ::std::os::raw::c_char;
25917}
25918unsafe extern "C" {
25919    pub fn BNGetSystemCacheDirectory() -> *mut ::std::os::raw::c_char;
25920}
25921unsafe extern "C" {
25922    #[doc = " Settings APIs"]
25923    pub fn BNCreateSettings(schemaId: *const ::std::os::raw::c_char) -> *mut BNSettings;
25924}
25925unsafe extern "C" {
25926    pub fn BNNewSettingsReference(settings: *mut BNSettings) -> *mut BNSettings;
25927}
25928unsafe extern "C" {
25929    pub fn BNFreeSettings(settings: *mut BNSettings);
25930}
25931unsafe extern "C" {
25932    pub fn BNLoadSettingsFile(
25933        settings: *mut BNSettings,
25934        fileName: *const ::std::os::raw::c_char,
25935        scope: BNSettingsScope,
25936        view: *mut BNBinaryView,
25937    ) -> bool;
25938}
25939unsafe extern "C" {
25940    pub fn BNSettingsSetResourceId(
25941        settings: *mut BNSettings,
25942        resourceId: *const ::std::os::raw::c_char,
25943    );
25944}
25945unsafe extern "C" {
25946    pub fn BNSettingsRegisterGroup(
25947        settings: *mut BNSettings,
25948        group: *const ::std::os::raw::c_char,
25949        title: *const ::std::os::raw::c_char,
25950    ) -> bool;
25951}
25952unsafe extern "C" {
25953    pub fn BNSettingsRegisterSetting(
25954        settings: *mut BNSettings,
25955        key: *const ::std::os::raw::c_char,
25956        properties: *const ::std::os::raw::c_char,
25957    ) -> bool;
25958}
25959unsafe extern "C" {
25960    pub fn BNSettingsContains(
25961        settings: *mut BNSettings,
25962        key: *const ::std::os::raw::c_char,
25963    ) -> bool;
25964}
25965unsafe extern "C" {
25966    pub fn BNSettingsIsEmpty(
25967        settings: *mut BNSettings,
25968        view: *mut BNBinaryView,
25969        func: *mut BNFunction,
25970        scope: BNSettingsScope,
25971    ) -> bool;
25972}
25973unsafe extern "C" {
25974    pub fn BNSettingsKeysList(
25975        settings: *mut BNSettings,
25976        inoutSize: *mut usize,
25977    ) -> *mut *const ::std::os::raw::c_char;
25978}
25979unsafe extern "C" {
25980    pub fn BNSettingsQueryPropertyString(
25981        settings: *mut BNSettings,
25982        key: *const ::std::os::raw::c_char,
25983        property: *const ::std::os::raw::c_char,
25984    ) -> *mut ::std::os::raw::c_char;
25985}
25986unsafe extern "C" {
25987    pub fn BNSettingsQueryPropertyStringList(
25988        settings: *mut BNSettings,
25989        key: *const ::std::os::raw::c_char,
25990        property: *const ::std::os::raw::c_char,
25991        inoutSize: *mut usize,
25992    ) -> *mut *const ::std::os::raw::c_char;
25993}
25994unsafe extern "C" {
25995    pub fn BNSettingsUpdateProperty(
25996        settings: *mut BNSettings,
25997        key: *const ::std::os::raw::c_char,
25998        property: *const ::std::os::raw::c_char,
25999    ) -> bool;
26000}
26001unsafe extern "C" {
26002    pub fn BNSettingsUpdateBoolProperty(
26003        settings: *mut BNSettings,
26004        key: *const ::std::os::raw::c_char,
26005        property: *const ::std::os::raw::c_char,
26006        value: bool,
26007    ) -> bool;
26008}
26009unsafe extern "C" {
26010    pub fn BNSettingsUpdateDoubleProperty(
26011        settings: *mut BNSettings,
26012        key: *const ::std::os::raw::c_char,
26013        property: *const ::std::os::raw::c_char,
26014        value: f64,
26015    ) -> bool;
26016}
26017unsafe extern "C" {
26018    pub fn BNSettingsUpdateInt64Property(
26019        settings: *mut BNSettings,
26020        key: *const ::std::os::raw::c_char,
26021        property: *const ::std::os::raw::c_char,
26022        value: i64,
26023    ) -> bool;
26024}
26025unsafe extern "C" {
26026    pub fn BNSettingsUpdateUInt64Property(
26027        settings: *mut BNSettings,
26028        key: *const ::std::os::raw::c_char,
26029        property: *const ::std::os::raw::c_char,
26030        value: u64,
26031    ) -> bool;
26032}
26033unsafe extern "C" {
26034    pub fn BNSettingsUpdateStringProperty(
26035        settings: *mut BNSettings,
26036        key: *const ::std::os::raw::c_char,
26037        property: *const ::std::os::raw::c_char,
26038        value: *const ::std::os::raw::c_char,
26039    ) -> bool;
26040}
26041unsafe extern "C" {
26042    pub fn BNSettingsUpdateStringListProperty(
26043        settings: *mut BNSettings,
26044        key: *const ::std::os::raw::c_char,
26045        property: *const ::std::os::raw::c_char,
26046        value: *mut *const ::std::os::raw::c_char,
26047        size: usize,
26048    ) -> bool;
26049}
26050unsafe extern "C" {
26051    pub fn BNSettingsDeserializeSchema(
26052        settings: *mut BNSettings,
26053        schema: *const ::std::os::raw::c_char,
26054        scope: BNSettingsScope,
26055        merge: bool,
26056    ) -> bool;
26057}
26058unsafe extern "C" {
26059    pub fn BNSettingsSerializeSchema(settings: *mut BNSettings) -> *mut ::std::os::raw::c_char;
26060}
26061unsafe extern "C" {
26062    pub fn BNDeserializeSettings(
26063        settings: *mut BNSettings,
26064        contents: *const ::std::os::raw::c_char,
26065        view: *mut BNBinaryView,
26066        func: *mut BNFunction,
26067        scope: BNSettingsScope,
26068    ) -> bool;
26069}
26070unsafe extern "C" {
26071    pub fn BNSerializeSettings(
26072        settings: *mut BNSettings,
26073        view: *mut BNBinaryView,
26074        func: *mut BNFunction,
26075        scope: BNSettingsScope,
26076    ) -> *mut ::std::os::raw::c_char;
26077}
26078unsafe extern "C" {
26079    pub fn BNSettingsReset(
26080        settings: *mut BNSettings,
26081        key: *const ::std::os::raw::c_char,
26082        view: *mut BNBinaryView,
26083        func: *mut BNFunction,
26084        scope: BNSettingsScope,
26085    ) -> bool;
26086}
26087unsafe extern "C" {
26088    pub fn BNSettingsResetAll(
26089        settings: *mut BNSettings,
26090        view: *mut BNBinaryView,
26091        func: *mut BNFunction,
26092        scope: BNSettingsScope,
26093        schemaOnly: bool,
26094    ) -> bool;
26095}
26096unsafe extern "C" {
26097    pub fn BNSettingsGetBool(
26098        settings: *mut BNSettings,
26099        key: *const ::std::os::raw::c_char,
26100        view: *mut BNBinaryView,
26101        func: *mut BNFunction,
26102        scope: *mut BNSettingsScope,
26103    ) -> bool;
26104}
26105unsafe extern "C" {
26106    pub fn BNSettingsGetDouble(
26107        settings: *mut BNSettings,
26108        key: *const ::std::os::raw::c_char,
26109        view: *mut BNBinaryView,
26110        func: *mut BNFunction,
26111        scope: *mut BNSettingsScope,
26112    ) -> f64;
26113}
26114unsafe extern "C" {
26115    pub fn BNSettingsGetInt64(
26116        settings: *mut BNSettings,
26117        key: *const ::std::os::raw::c_char,
26118        view: *mut BNBinaryView,
26119        func: *mut BNFunction,
26120        scope: *mut BNSettingsScope,
26121    ) -> i64;
26122}
26123unsafe extern "C" {
26124    pub fn BNSettingsGetUInt64(
26125        settings: *mut BNSettings,
26126        key: *const ::std::os::raw::c_char,
26127        view: *mut BNBinaryView,
26128        func: *mut BNFunction,
26129        scope: *mut BNSettingsScope,
26130    ) -> u64;
26131}
26132unsafe extern "C" {
26133    pub fn BNSettingsGetString(
26134        settings: *mut BNSettings,
26135        key: *const ::std::os::raw::c_char,
26136        view: *mut BNBinaryView,
26137        func: *mut BNFunction,
26138        scope: *mut BNSettingsScope,
26139    ) -> *mut ::std::os::raw::c_char;
26140}
26141unsafe extern "C" {
26142    pub fn BNSettingsGetStringList(
26143        settings: *mut BNSettings,
26144        key: *const ::std::os::raw::c_char,
26145        view: *mut BNBinaryView,
26146        func: *mut BNFunction,
26147        scope: *mut BNSettingsScope,
26148        inoutSize: *mut usize,
26149    ) -> *mut *const ::std::os::raw::c_char;
26150}
26151unsafe extern "C" {
26152    pub fn BNSettingsGetJson(
26153        settings: *mut BNSettings,
26154        key: *const ::std::os::raw::c_char,
26155        view: *mut BNBinaryView,
26156        func: *mut BNFunction,
26157        scope: *mut BNSettingsScope,
26158    ) -> *mut ::std::os::raw::c_char;
26159}
26160unsafe extern "C" {
26161    pub fn BNSettingsSetBool(
26162        settings: *mut BNSettings,
26163        view: *mut BNBinaryView,
26164        func: *mut BNFunction,
26165        scope: BNSettingsScope,
26166        key: *const ::std::os::raw::c_char,
26167        value: bool,
26168    ) -> bool;
26169}
26170unsafe extern "C" {
26171    pub fn BNSettingsSetDouble(
26172        settings: *mut BNSettings,
26173        view: *mut BNBinaryView,
26174        func: *mut BNFunction,
26175        scope: BNSettingsScope,
26176        key: *const ::std::os::raw::c_char,
26177        value: f64,
26178    ) -> bool;
26179}
26180unsafe extern "C" {
26181    pub fn BNSettingsSetInt64(
26182        settings: *mut BNSettings,
26183        view: *mut BNBinaryView,
26184        func: *mut BNFunction,
26185        scope: BNSettingsScope,
26186        key: *const ::std::os::raw::c_char,
26187        value: i64,
26188    ) -> bool;
26189}
26190unsafe extern "C" {
26191    pub fn BNSettingsSetUInt64(
26192        settings: *mut BNSettings,
26193        view: *mut BNBinaryView,
26194        func: *mut BNFunction,
26195        scope: BNSettingsScope,
26196        key: *const ::std::os::raw::c_char,
26197        value: u64,
26198    ) -> bool;
26199}
26200unsafe extern "C" {
26201    pub fn BNSettingsSetString(
26202        settings: *mut BNSettings,
26203        view: *mut BNBinaryView,
26204        func: *mut BNFunction,
26205        scope: BNSettingsScope,
26206        key: *const ::std::os::raw::c_char,
26207        value: *const ::std::os::raw::c_char,
26208    ) -> bool;
26209}
26210unsafe extern "C" {
26211    pub fn BNSettingsSetStringList(
26212        settings: *mut BNSettings,
26213        view: *mut BNBinaryView,
26214        func: *mut BNFunction,
26215        scope: BNSettingsScope,
26216        key: *const ::std::os::raw::c_char,
26217        value: *mut *const ::std::os::raw::c_char,
26218        size: usize,
26219    ) -> bool;
26220}
26221unsafe extern "C" {
26222    pub fn BNSettingsSetJson(
26223        settings: *mut BNSettings,
26224        view: *mut BNBinaryView,
26225        func: *mut BNFunction,
26226        scope: BNSettingsScope,
26227        key: *const ::std::os::raw::c_char,
26228        value: *const ::std::os::raw::c_char,
26229    ) -> bool;
26230}
26231unsafe extern "C" {
26232    #[doc = " Create Metadata of various types"]
26233    pub fn BNNewMetadataReference(data: *mut BNMetadata) -> *mut BNMetadata;
26234}
26235unsafe extern "C" {
26236    pub fn BNCreateMetadataBooleanData(data: bool) -> *mut BNMetadata;
26237}
26238unsafe extern "C" {
26239    pub fn BNCreateMetadataStringData(data: *const ::std::os::raw::c_char) -> *mut BNMetadata;
26240}
26241unsafe extern "C" {
26242    pub fn BNCreateMetadataUnsignedIntegerData(data: u64) -> *mut BNMetadata;
26243}
26244unsafe extern "C" {
26245    pub fn BNCreateMetadataSignedIntegerData(data: i64) -> *mut BNMetadata;
26246}
26247unsafe extern "C" {
26248    pub fn BNCreateMetadataDoubleData(data: f64) -> *mut BNMetadata;
26249}
26250unsafe extern "C" {
26251    pub fn BNCreateMetadataOfType(type_: BNMetadataType) -> *mut BNMetadata;
26252}
26253unsafe extern "C" {
26254    pub fn BNCreateMetadataRawData(data: *const u8, size: usize) -> *mut BNMetadata;
26255}
26256unsafe extern "C" {
26257    pub fn BNCreateMetadataArray(data: *mut *mut BNMetadata, size: usize) -> *mut BNMetadata;
26258}
26259unsafe extern "C" {
26260    pub fn BNCreateMetadataValueStore(
26261        keys: *mut *const ::std::os::raw::c_char,
26262        values: *mut *mut BNMetadata,
26263        size: usize,
26264    ) -> *mut BNMetadata;
26265}
26266unsafe extern "C" {
26267    pub fn BNCreateMetadataBooleanListData(data: *mut bool, size: usize) -> *mut BNMetadata;
26268}
26269unsafe extern "C" {
26270    pub fn BNCreateMetadataUnsignedIntegerListData(data: *mut u64, size: usize) -> *mut BNMetadata;
26271}
26272unsafe extern "C" {
26273    pub fn BNCreateMetadataSignedIntegerListData(data: *mut i64, size: usize) -> *mut BNMetadata;
26274}
26275unsafe extern "C" {
26276    pub fn BNCreateMetadataDoubleListData(data: *mut f64, size: usize) -> *mut BNMetadata;
26277}
26278unsafe extern "C" {
26279    pub fn BNCreateMetadataStringListData(
26280        data: *mut *const ::std::os::raw::c_char,
26281        size: usize,
26282    ) -> *mut BNMetadata;
26283}
26284unsafe extern "C" {
26285    pub fn BNMetadataIsEqual(lhs: *mut BNMetadata, rhs: *mut BNMetadata) -> bool;
26286}
26287unsafe extern "C" {
26288    pub fn BNMetadataSetValueForKey(
26289        data: *mut BNMetadata,
26290        key: *const ::std::os::raw::c_char,
26291        md: *mut BNMetadata,
26292    ) -> bool;
26293}
26294unsafe extern "C" {
26295    pub fn BNMetadataGetForKey(
26296        data: *mut BNMetadata,
26297        key: *const ::std::os::raw::c_char,
26298    ) -> *mut BNMetadata;
26299}
26300unsafe extern "C" {
26301    pub fn BNMetadataArrayAppend(data: *mut BNMetadata, md: *mut BNMetadata) -> bool;
26302}
26303unsafe extern "C" {
26304    pub fn BNMetadataRemoveKey(data: *mut BNMetadata, key: *const ::std::os::raw::c_char);
26305}
26306unsafe extern "C" {
26307    pub fn BNMetadataSize(data: *mut BNMetadata) -> usize;
26308}
26309unsafe extern "C" {
26310    pub fn BNMetadataGetForIndex(data: *mut BNMetadata, index: usize) -> *mut BNMetadata;
26311}
26312unsafe extern "C" {
26313    pub fn BNMetadataRemoveIndex(data: *mut BNMetadata, index: usize);
26314}
26315unsafe extern "C" {
26316    pub fn BNFreeMetadataArray(data: *mut *mut BNMetadata);
26317}
26318unsafe extern "C" {
26319    pub fn BNFreeMetadataValueStore(data: *mut BNMetadataValueStore);
26320}
26321unsafe extern "C" {
26322    pub fn BNFreeMetadata(data: *mut BNMetadata);
26323}
26324unsafe extern "C" {
26325    pub fn BNFreeMetadataRaw(data: *mut u8);
26326}
26327unsafe extern "C" {
26328    pub fn BNFreeMetadataBooleanList(arg1: *mut bool, arg2: usize);
26329}
26330unsafe extern "C" {
26331    pub fn BNFreeMetadataUnsignedIntegerList(arg1: *mut u64, arg2: usize);
26332}
26333unsafe extern "C" {
26334    pub fn BNFreeMetadataSignedIntegerList(arg1: *mut i64, arg2: usize);
26335}
26336unsafe extern "C" {
26337    pub fn BNFreeMetadataDoubleList(arg1: *mut f64, arg2: usize);
26338}
26339unsafe extern "C" {
26340    pub fn BNFreeMetadataStringList(arg1: *mut *mut ::std::os::raw::c_char, arg2: usize);
26341}
26342unsafe extern "C" {
26343    #[doc = " Retrieve Structured Data"]
26344    pub fn BNMetadataGetBoolean(data: *mut BNMetadata) -> bool;
26345}
26346unsafe extern "C" {
26347    pub fn BNMetadataGetString(data: *mut BNMetadata) -> *mut ::std::os::raw::c_char;
26348}
26349unsafe extern "C" {
26350    pub fn BNMetadataGetUnsignedInteger(data: *mut BNMetadata) -> u64;
26351}
26352unsafe extern "C" {
26353    pub fn BNMetadataGetSignedInteger(data: *mut BNMetadata) -> i64;
26354}
26355unsafe extern "C" {
26356    pub fn BNMetadataGetDouble(data: *mut BNMetadata) -> f64;
26357}
26358unsafe extern "C" {
26359    pub fn BNMetadataGetBooleanList(data: *mut BNMetadata, arg1: *mut usize) -> *mut bool;
26360}
26361unsafe extern "C" {
26362    pub fn BNMetadataGetStringList(
26363        data: *mut BNMetadata,
26364        arg1: *mut usize,
26365    ) -> *mut *mut ::std::os::raw::c_char;
26366}
26367unsafe extern "C" {
26368    pub fn BNMetadataGetUnsignedIntegerList(data: *mut BNMetadata, arg1: *mut usize) -> *mut u64;
26369}
26370unsafe extern "C" {
26371    pub fn BNMetadataGetSignedIntegerList(data: *mut BNMetadata, arg1: *mut usize) -> *mut i64;
26372}
26373unsafe extern "C" {
26374    pub fn BNMetadataGetDoubleList(data: *mut BNMetadata, arg1: *mut usize) -> *mut f64;
26375}
26376unsafe extern "C" {
26377    pub fn BNMetadataGetRaw(data: *mut BNMetadata, size: *mut usize) -> *mut u8;
26378}
26379unsafe extern "C" {
26380    pub fn BNMetadataGetArray(data: *mut BNMetadata, size: *mut usize) -> *mut *mut BNMetadata;
26381}
26382unsafe extern "C" {
26383    pub fn BNMetadataGetValueStore(data: *mut BNMetadata) -> *mut BNMetadataValueStore;
26384}
26385unsafe extern "C" {
26386    pub fn BNMetadataGetJsonString(data: *mut BNMetadata) -> *mut ::std::os::raw::c_char;
26387}
26388unsafe extern "C" {
26389    #[doc = " Query type of Metadata"]
26390    pub fn BNMetadataGetType(data: *mut BNMetadata) -> BNMetadataType;
26391}
26392unsafe extern "C" {
26393    pub fn BNMetadataIsBoolean(data: *mut BNMetadata) -> bool;
26394}
26395unsafe extern "C" {
26396    pub fn BNMetadataIsString(data: *mut BNMetadata) -> bool;
26397}
26398unsafe extern "C" {
26399    pub fn BNMetadataIsUnsignedInteger(data: *mut BNMetadata) -> bool;
26400}
26401unsafe extern "C" {
26402    pub fn BNMetadataIsSignedInteger(data: *mut BNMetadata) -> bool;
26403}
26404unsafe extern "C" {
26405    pub fn BNMetadataIsDouble(data: *mut BNMetadata) -> bool;
26406}
26407unsafe extern "C" {
26408    pub fn BNMetadataIsBooleanList(data: *mut BNMetadata) -> bool;
26409}
26410unsafe extern "C" {
26411    pub fn BNMetadataIsStringList(data: *mut BNMetadata) -> bool;
26412}
26413unsafe extern "C" {
26414    pub fn BNMetadataIsUnsignedIntegerList(data: *mut BNMetadata) -> bool;
26415}
26416unsafe extern "C" {
26417    pub fn BNMetadataIsSignedIntegerList(data: *mut BNMetadata) -> bool;
26418}
26419unsafe extern "C" {
26420    pub fn BNMetadataIsDoubleList(data: *mut BNMetadata) -> bool;
26421}
26422unsafe extern "C" {
26423    pub fn BNMetadataIsRaw(data: *mut BNMetadata) -> bool;
26424}
26425unsafe extern "C" {
26426    pub fn BNMetadataIsArray(data: *mut BNMetadata) -> bool;
26427}
26428unsafe extern "C" {
26429    pub fn BNMetadataIsKeyValueStore(data: *mut BNMetadata) -> bool;
26430}
26431unsafe extern "C" {
26432    #[doc = " Store/Query structured data to/from a BinaryView"]
26433    pub fn BNBinaryViewStoreMetadata(
26434        view: *mut BNBinaryView,
26435        key: *const ::std::os::raw::c_char,
26436        value: *mut BNMetadata,
26437        isAuto: bool,
26438    );
26439}
26440unsafe extern "C" {
26441    pub fn BNBinaryViewQueryMetadata(
26442        view: *mut BNBinaryView,
26443        key: *const ::std::os::raw::c_char,
26444    ) -> *mut BNMetadata;
26445}
26446unsafe extern "C" {
26447    pub fn BNBinaryViewRemoveMetadata(view: *mut BNBinaryView, key: *const ::std::os::raw::c_char);
26448}
26449unsafe extern "C" {
26450    pub fn BNBinaryViewGetMetadata(view: *mut BNBinaryView) -> *mut BNMetadata;
26451}
26452unsafe extern "C" {
26453    pub fn BNBinaryViewGetAutoMetadata(view: *mut BNBinaryView) -> *mut BNMetadata;
26454}
26455unsafe extern "C" {
26456    pub fn BNBinaryViewGetLoadSettingsTypeNames(
26457        view: *mut BNBinaryView,
26458        count: *mut usize,
26459    ) -> *mut *mut ::std::os::raw::c_char;
26460}
26461unsafe extern "C" {
26462    pub fn BNBinaryViewGetLoadSettings(
26463        view: *mut BNBinaryView,
26464        typeName: *const ::std::os::raw::c_char,
26465    ) -> *mut BNSettings;
26466}
26467unsafe extern "C" {
26468    pub fn BNBinaryViewSetLoadSettings(
26469        view: *mut BNBinaryView,
26470        typeName: *const ::std::os::raw::c_char,
26471        settings: *mut BNSettings,
26472    );
26473}
26474unsafe extern "C" {
26475    pub fn BNBinaryViewFinalizeNewSegments(view: *mut BNBinaryView) -> bool;
26476}
26477unsafe extern "C" {
26478    #[doc = " Relocation object methods"]
26479    pub fn BNNewRelocationReference(reloc: *mut BNRelocation) -> *mut BNRelocation;
26480}
26481unsafe extern "C" {
26482    pub fn BNFreeRelocation(reloc: *mut BNRelocation);
26483}
26484unsafe extern "C" {
26485    pub fn BNRelocationGetInfo(reloc: *mut BNRelocation) -> BNRelocationInfo;
26486}
26487unsafe extern "C" {
26488    pub fn BNRelocationGetArchitecture(reloc: *mut BNRelocation) -> *mut BNArchitecture;
26489}
26490unsafe extern "C" {
26491    pub fn BNRelocationGetTarget(reloc: *mut BNRelocation) -> u64;
26492}
26493unsafe extern "C" {
26494    pub fn BNRelocationGetReloc(reloc: *mut BNRelocation) -> u64;
26495}
26496unsafe extern "C" {
26497    pub fn BNRelocationGetSymbol(reloc: *mut BNRelocation) -> *mut BNSymbol;
26498}
26499unsafe extern "C" {
26500    #[doc = " Segment object methods"]
26501    pub fn BNCreateSegment(
26502        start: u64,
26503        length: u64,
26504        dataOffset: u64,
26505        dataLength: u64,
26506        flags: u32,
26507        autoDefined: bool,
26508    ) -> *mut BNSegment;
26509}
26510unsafe extern "C" {
26511    pub fn BNNewSegmentReference(seg: *mut BNSegment) -> *mut BNSegment;
26512}
26513unsafe extern "C" {
26514    pub fn BNFreeSegment(seg: *mut BNSegment);
26515}
26516unsafe extern "C" {
26517    pub fn BNSegmentGetStart(segment: *mut BNSegment) -> u64;
26518}
26519unsafe extern "C" {
26520    pub fn BNSegmentGetLength(segment: *mut BNSegment) -> u64;
26521}
26522unsafe extern "C" {
26523    pub fn BNSegmentGetEnd(segment: *mut BNSegment) -> u64;
26524}
26525unsafe extern "C" {
26526    pub fn BNSegmentGetDataEnd(segment: *mut BNSegment) -> u64;
26527}
26528unsafe extern "C" {
26529    pub fn BNSegmentGetDataOffset(segment: *mut BNSegment) -> u64;
26530}
26531unsafe extern "C" {
26532    pub fn BNSegmentGetDataLength(segment: *mut BNSegment) -> u64;
26533}
26534unsafe extern "C" {
26535    pub fn BNSegmentGetFlags(segment: *mut BNSegment) -> u32;
26536}
26537unsafe extern "C" {
26538    pub fn BNSegmentIsAutoDefined(segment: *mut BNSegment) -> bool;
26539}
26540unsafe extern "C" {
26541    #[doc = " Section object methods"]
26542    pub fn BNNewSectionReference(section: *mut BNSection) -> *mut BNSection;
26543}
26544unsafe extern "C" {
26545    pub fn BNFreeSection(section: *mut BNSection);
26546}
26547unsafe extern "C" {
26548    pub fn BNSectionGetName(section: *mut BNSection) -> *mut ::std::os::raw::c_char;
26549}
26550unsafe extern "C" {
26551    pub fn BNSectionGetType(section: *mut BNSection) -> *mut ::std::os::raw::c_char;
26552}
26553unsafe extern "C" {
26554    pub fn BNSectionGetStart(section: *mut BNSection) -> u64;
26555}
26556unsafe extern "C" {
26557    pub fn BNSectionGetLength(section: *mut BNSection) -> u64;
26558}
26559unsafe extern "C" {
26560    pub fn BNSectionGetEnd(section: *mut BNSection) -> u64;
26561}
26562unsafe extern "C" {
26563    pub fn BNSectionGetLinkedSection(section: *mut BNSection) -> *mut ::std::os::raw::c_char;
26564}
26565unsafe extern "C" {
26566    pub fn BNSectionGetInfoSection(section: *mut BNSection) -> *mut ::std::os::raw::c_char;
26567}
26568unsafe extern "C" {
26569    pub fn BNSectionGetInfoData(section: *mut BNSection) -> u64;
26570}
26571unsafe extern "C" {
26572    pub fn BNSectionGetAlign(section: *mut BNSection) -> u64;
26573}
26574unsafe extern "C" {
26575    pub fn BNSectionGetEntrySize(section: *mut BNSection) -> u64;
26576}
26577unsafe extern "C" {
26578    pub fn BNSectionGetSemantics(section: *mut BNSection) -> BNSectionSemantics;
26579}
26580unsafe extern "C" {
26581    pub fn BNSectionIsAutoDefined(section: *mut BNSection) -> bool;
26582}
26583unsafe extern "C" {
26584    #[doc = " Custom Data Render methods"]
26585    pub fn BNCreateDataRenderer(renderer: *mut BNCustomDataRenderer) -> *mut BNDataRenderer;
26586}
26587unsafe extern "C" {
26588    pub fn BNNewDataRendererReference(renderer: *mut BNDataRenderer) -> *mut BNDataRenderer;
26589}
26590unsafe extern "C" {
26591    pub fn BNIsValidForData(
26592        ctxt: *mut ::std::os::raw::c_void,
26593        view: *mut BNBinaryView,
26594        addr: u64,
26595        type_: *mut BNType,
26596        typeCtx: *mut BNTypeContext,
26597        ctxCount: usize,
26598    ) -> bool;
26599}
26600unsafe extern "C" {
26601    pub fn BNGetLinesForData(
26602        ctxt: *mut ::std::os::raw::c_void,
26603        view: *mut BNBinaryView,
26604        addr: u64,
26605        type_: *mut BNType,
26606        prefix: *const BNInstructionTextToken,
26607        prefixCount: usize,
26608        width: usize,
26609        count: *mut usize,
26610        typeCtx: *mut BNTypeContext,
26611        ctxCount: usize,
26612        language: *const ::std::os::raw::c_char,
26613    ) -> *mut BNDisassemblyTextLine;
26614}
26615unsafe extern "C" {
26616    pub fn BNRenderLinesForData(
26617        data: *mut BNBinaryView,
26618        addr: u64,
26619        type_: *mut BNType,
26620        prefix: *const BNInstructionTextToken,
26621        prefixCount: usize,
26622        width: usize,
26623        count: *mut usize,
26624        typeCtx: *mut BNTypeContext,
26625        ctxCount: usize,
26626        language: *const ::std::os::raw::c_char,
26627    ) -> *mut BNDisassemblyTextLine;
26628}
26629unsafe extern "C" {
26630    pub fn BNFreeDataRenderer(renderer: *mut BNDataRenderer);
26631}
26632unsafe extern "C" {
26633    pub fn BNGetDataRendererContainer() -> *mut BNDataRendererContainer;
26634}
26635unsafe extern "C" {
26636    pub fn BNRegisterGenericDataRenderer(
26637        container: *mut BNDataRendererContainer,
26638        renderer: *mut BNDataRenderer,
26639    );
26640}
26641unsafe extern "C" {
26642    pub fn BNRegisterTypeSpecificDataRenderer(
26643        container: *mut BNDataRendererContainer,
26644        renderer: *mut BNDataRenderer,
26645    );
26646}
26647unsafe extern "C" {
26648    pub fn BNParseExpression(
26649        view: *mut BNBinaryView,
26650        expression: *const ::std::os::raw::c_char,
26651        offset: *mut u64,
26652        here: u64,
26653        errorString: *mut *mut ::std::os::raw::c_char,
26654    ) -> bool;
26655}
26656unsafe extern "C" {
26657    pub fn BNFreeParseError(errorString: *mut ::std::os::raw::c_char);
26658}
26659unsafe extern "C" {
26660    pub fn BNGetCurrentStackTraceString() -> *mut ::std::os::raw::c_char;
26661}
26662unsafe extern "C" {
26663    pub fn BNRegisterObjectRefDebugTrace(
26664        typeName: *const ::std::os::raw::c_char,
26665    ) -> *mut ::std::os::raw::c_void;
26666}
26667unsafe extern "C" {
26668    pub fn BNUnregisterObjectRefDebugTrace(
26669        typeName: *const ::std::os::raw::c_char,
26670        trace: *mut ::std::os::raw::c_void,
26671    );
26672}
26673unsafe extern "C" {
26674    pub fn BNGetMemoryUsageInfo(count: *mut usize) -> *mut BNMemoryUsageInfo;
26675}
26676unsafe extern "C" {
26677    pub fn BNFreeMemoryUsageInfo(info: *mut BNMemoryUsageInfo, count: usize);
26678}
26679unsafe extern "C" {
26680    pub fn BNGetAddressRenderedWidth(addr: u64) -> u32;
26681}
26682unsafe extern "C" {
26683    pub fn BNRustSimplifyStrToFQN(
26684        arg1: *const ::std::os::raw::c_char,
26685        arg2: bool,
26686    ) -> BNQualifiedName;
26687}
26688unsafe extern "C" {
26689    pub fn BNRustSimplifyStrToStr(
26690        arg1: *const ::std::os::raw::c_char,
26691    ) -> *mut ::std::os::raw::c_char;
26692}
26693unsafe extern "C" {
26694    pub fn BNRegisterDebugInfoParser(
26695        name: *const ::std::os::raw::c_char,
26696        isValid: ::std::option::Option<
26697            unsafe extern "C" fn(
26698                arg1: *mut ::std::os::raw::c_void,
26699                arg2: *mut BNBinaryView,
26700            ) -> bool,
26701        >,
26702        parseInfo: ::std::option::Option<
26703            unsafe extern "C" fn(
26704                arg1: *mut ::std::os::raw::c_void,
26705                arg2: *mut BNDebugInfo,
26706                arg3: *mut BNBinaryView,
26707                arg4: *mut BNBinaryView,
26708                arg5: BNProgressFunction,
26709                arg6: *mut ::std::os::raw::c_void,
26710            ) -> bool,
26711        >,
26712        context: *mut ::std::os::raw::c_void,
26713    ) -> *mut BNDebugInfoParser;
26714}
26715unsafe extern "C" {
26716    pub fn BNUnregisterDebugInfoParser(rawName: *const ::std::os::raw::c_char);
26717}
26718unsafe extern "C" {
26719    pub fn BNGetDebugInfoParserByName(
26720        name: *const ::std::os::raw::c_char,
26721    ) -> *mut BNDebugInfoParser;
26722}
26723unsafe extern "C" {
26724    pub fn BNGetDebugInfoParsers(count: *mut usize) -> *mut *mut BNDebugInfoParser;
26725}
26726unsafe extern "C" {
26727    pub fn BNGetDebugInfoParsersForView(
26728        view: *mut BNBinaryView,
26729        count: *mut usize,
26730    ) -> *mut *mut BNDebugInfoParser;
26731}
26732unsafe extern "C" {
26733    pub fn BNGetDebugInfoParserName(parser: *mut BNDebugInfoParser) -> *mut ::std::os::raw::c_char;
26734}
26735unsafe extern "C" {
26736    pub fn BNIsDebugInfoParserValidForView(
26737        parser: *mut BNDebugInfoParser,
26738        view: *mut BNBinaryView,
26739    ) -> bool;
26740}
26741unsafe extern "C" {
26742    pub fn BNParseDebugInfo(
26743        parser: *mut BNDebugInfoParser,
26744        view: *mut BNBinaryView,
26745        debugFile: *mut BNBinaryView,
26746        existingDebugInfo: *mut BNDebugInfo,
26747        progress: BNProgressFunction,
26748        progressCtxt: *mut ::std::os::raw::c_void,
26749    ) -> *mut BNDebugInfo;
26750}
26751unsafe extern "C" {
26752    pub fn BNNewDebugInfoParserReference(parser: *mut BNDebugInfoParser) -> *mut BNDebugInfoParser;
26753}
26754unsafe extern "C" {
26755    pub fn BNFreeDebugInfoParserReference(parser: *mut BNDebugInfoParser);
26756}
26757unsafe extern "C" {
26758    pub fn BNFreeDebugInfoParserList(parsers: *mut *mut BNDebugInfoParser, count: usize);
26759}
26760unsafe extern "C" {
26761    pub fn BNNewDebugInfoReference(debugInfo: *mut BNDebugInfo) -> *mut BNDebugInfo;
26762}
26763unsafe extern "C" {
26764    pub fn BNFreeDebugInfoReference(debugInfo: *mut BNDebugInfo);
26765}
26766unsafe extern "C" {
26767    pub fn BNGetDebugParserNames(
26768        debugInfo: *mut BNDebugInfo,
26769        count: *mut usize,
26770    ) -> *mut *mut ::std::os::raw::c_char;
26771}
26772unsafe extern "C" {
26773    pub fn BNGetDebugInfoTypeContainer(
26774        debugInfo: *mut BNDebugInfo,
26775        parserName: *const ::std::os::raw::c_char,
26776    ) -> *mut BNTypeContainer;
26777}
26778unsafe extern "C" {
26779    pub fn BNRemoveDebugParserInfo(
26780        debugInfo: *mut BNDebugInfo,
26781        parserName: *const ::std::os::raw::c_char,
26782    ) -> bool;
26783}
26784unsafe extern "C" {
26785    pub fn BNRemoveDebugParserTypes(
26786        debugInfo: *mut BNDebugInfo,
26787        parserName: *const ::std::os::raw::c_char,
26788    ) -> bool;
26789}
26790unsafe extern "C" {
26791    pub fn BNRemoveDebugParserFunctions(
26792        debugInfo: *mut BNDebugInfo,
26793        parserName: *const ::std::os::raw::c_char,
26794    ) -> bool;
26795}
26796unsafe extern "C" {
26797    pub fn BNRemoveDebugParserDataVariables(
26798        debugInfo: *mut BNDebugInfo,
26799        parserName: *const ::std::os::raw::c_char,
26800    ) -> bool;
26801}
26802unsafe extern "C" {
26803    pub fn BNAddDebugType(
26804        debugInfo: *mut BNDebugInfo,
26805        name: *const ::std::os::raw::c_char,
26806        type_: *const BNType,
26807        components: *mut *const ::std::os::raw::c_char,
26808        components_count: usize,
26809    ) -> bool;
26810}
26811unsafe extern "C" {
26812    pub fn BNGetDebugTypes(
26813        debugInfo: *mut BNDebugInfo,
26814        name: *const ::std::os::raw::c_char,
26815        count: *mut usize,
26816    ) -> *mut BNNameAndType;
26817}
26818unsafe extern "C" {
26819    pub fn BNGetDebugTypeByName(
26820        debugInfo: *mut BNDebugInfo,
26821        parserName: *const ::std::os::raw::c_char,
26822        typeName: *const ::std::os::raw::c_char,
26823    ) -> *mut BNType;
26824}
26825unsafe extern "C" {
26826    pub fn BNGetDebugTypesByName(
26827        debugInfo: *mut BNDebugInfo,
26828        typeName: *const ::std::os::raw::c_char,
26829        count: *mut usize,
26830    ) -> *mut BNNameAndType;
26831}
26832unsafe extern "C" {
26833    pub fn BNRemoveDebugTypeByName(
26834        debugInfo: *mut BNDebugInfo,
26835        parserName: *const ::std::os::raw::c_char,
26836        typeName: *const ::std::os::raw::c_char,
26837    ) -> bool;
26838}
26839unsafe extern "C" {
26840    pub fn BNFreeDebugTypes(types: *mut BNNameAndType, count: usize);
26841}
26842unsafe extern "C" {
26843    pub fn BNAddDebugFunction(debugInfo: *mut BNDebugInfo, func: *mut BNDebugFunctionInfo) -> bool;
26844}
26845unsafe extern "C" {
26846    pub fn BNGetDebugFunctions(
26847        debugInfo: *mut BNDebugInfo,
26848        name: *const ::std::os::raw::c_char,
26849        count: *mut usize,
26850    ) -> *mut BNDebugFunctionInfo;
26851}
26852unsafe extern "C" {
26853    pub fn BNRemoveDebugFunctionByIndex(
26854        debugInfo: *mut BNDebugInfo,
26855        parserName: *const ::std::os::raw::c_char,
26856        index: usize,
26857    ) -> bool;
26858}
26859unsafe extern "C" {
26860    pub fn BNFreeDebugFunctions(functions: *mut BNDebugFunctionInfo, count: usize);
26861}
26862unsafe extern "C" {
26863    pub fn BNAddDebugDataVariable(
26864        debugInfo: *mut BNDebugInfo,
26865        address: u64,
26866        type_: *const BNType,
26867        name: *const ::std::os::raw::c_char,
26868        components: *mut *const ::std::os::raw::c_char,
26869        components_count: usize,
26870    ) -> bool;
26871}
26872unsafe extern "C" {
26873    pub fn BNAddDebugDataVariableInfo(
26874        debugInfo: *mut BNDebugInfo,
26875        var: *const BNDataVariableAndName,
26876    ) -> bool;
26877}
26878unsafe extern "C" {
26879    pub fn BNGetDebugDataVariables(
26880        debugInfo: *mut BNDebugInfo,
26881        name: *const ::std::os::raw::c_char,
26882        count: *mut usize,
26883    ) -> *mut BNDataVariableAndName;
26884}
26885unsafe extern "C" {
26886    pub fn BNGetDebugDataVariableByName(
26887        debugInfo: *mut BNDebugInfo,
26888        parserName: *const ::std::os::raw::c_char,
26889        variableName: *const ::std::os::raw::c_char,
26890        var: *mut BNDataVariableAndName,
26891    ) -> bool;
26892}
26893unsafe extern "C" {
26894    pub fn BNGetDebugDataVariableByAddress(
26895        debugInfo: *mut BNDebugInfo,
26896        parserName: *const ::std::os::raw::c_char,
26897        address: u64,
26898        var: *mut BNDataVariableAndName,
26899    ) -> bool;
26900}
26901unsafe extern "C" {
26902    pub fn BNGetDebugDataVariablesByName(
26903        debugInfo: *mut BNDebugInfo,
26904        variableName: *const ::std::os::raw::c_char,
26905        count: *mut usize,
26906    ) -> *mut BNDataVariableAndName;
26907}
26908unsafe extern "C" {
26909    pub fn BNGetDebugDataVariablesByAddress(
26910        debugInfo: *mut BNDebugInfo,
26911        address: u64,
26912        count: *mut usize,
26913    ) -> *mut BNDataVariableAndNameAndDebugParser;
26914}
26915unsafe extern "C" {
26916    pub fn BNRemoveDebugDataVariableByAddress(
26917        debugInfo: *mut BNDebugInfo,
26918        parserName: *const ::std::os::raw::c_char,
26919        address: u64,
26920    ) -> bool;
26921}
26922unsafe extern "C" {
26923    #[doc = " Secrets providers"]
26924    pub fn BNRegisterSecretsProvider(
26925        name: *const ::std::os::raw::c_char,
26926        callbacks: *mut BNSecretsProviderCallbacks,
26927    ) -> *mut BNSecretsProvider;
26928}
26929unsafe extern "C" {
26930    pub fn BNGetSecretsProviderList(count: *mut usize) -> *mut *mut BNSecretsProvider;
26931}
26932unsafe extern "C" {
26933    pub fn BNFreeSecretsProviderList(providers: *mut *mut BNSecretsProvider);
26934}
26935unsafe extern "C" {
26936    pub fn BNGetSecretsProviderByName(
26937        name: *const ::std::os::raw::c_char,
26938    ) -> *mut BNSecretsProvider;
26939}
26940unsafe extern "C" {
26941    pub fn BNGetSecretsProviderName(
26942        provider: *mut BNSecretsProvider,
26943    ) -> *mut ::std::os::raw::c_char;
26944}
26945unsafe extern "C" {
26946    pub fn BNSecretsProviderHasData(
26947        provider: *mut BNSecretsProvider,
26948        key: *const ::std::os::raw::c_char,
26949    ) -> bool;
26950}
26951unsafe extern "C" {
26952    pub fn BNGetSecretsProviderData(
26953        provider: *mut BNSecretsProvider,
26954        key: *const ::std::os::raw::c_char,
26955    ) -> *mut ::std::os::raw::c_char;
26956}
26957unsafe extern "C" {
26958    pub fn BNStoreSecretsProviderData(
26959        provider: *mut BNSecretsProvider,
26960        key: *const ::std::os::raw::c_char,
26961        data: *const ::std::os::raw::c_char,
26962    ) -> bool;
26963}
26964unsafe extern "C" {
26965    pub fn BNDeleteSecretsProviderData(
26966        provider: *mut BNSecretsProvider,
26967        key: *const ::std::os::raw::c_char,
26968    ) -> bool;
26969}
26970unsafe extern "C" {
26971    pub fn BNCreateSymbolQueue() -> *mut BNSymbolQueue;
26972}
26973unsafe extern "C" {
26974    pub fn BNDestroySymbolQueue(queue: *mut BNSymbolQueue);
26975}
26976unsafe extern "C" {
26977    pub fn BNAppendSymbolQueue(
26978        queue: *mut BNSymbolQueue,
26979        resolve: ::std::option::Option<
26980            unsafe extern "C" fn(
26981                ctxt: *mut ::std::os::raw::c_void,
26982                symbol: *mut *mut BNSymbol,
26983                type_: *mut BNTypeWithConfidence,
26984            ),
26985        >,
26986        resolveContext: *mut ::std::os::raw::c_void,
26987        add: ::std::option::Option<
26988            unsafe extern "C" fn(
26989                ctxt: *mut ::std::os::raw::c_void,
26990                symbol: *mut BNSymbol,
26991                type_: *mut BNTypeWithConfidence,
26992            ),
26993        >,
26994        addContext: *mut ::std::os::raw::c_void,
26995    );
26996}
26997unsafe extern "C" {
26998    pub fn BNProcessSymbolQueue(queue: *mut BNSymbolQueue);
26999}
27000unsafe extern "C" {
27001    pub fn BNCoreEnumToString(
27002        enumName: *const ::std::os::raw::c_char,
27003        value: usize,
27004        result: *mut *mut ::std::os::raw::c_char,
27005    ) -> bool;
27006}
27007unsafe extern "C" {
27008    pub fn BNCoreEnumFromString(
27009        enumName: *const ::std::os::raw::c_char,
27010        value: *const ::std::os::raw::c_char,
27011        result: *mut usize,
27012    ) -> bool;
27013}
27014unsafe extern "C" {
27015    #[doc = " Type Archives"]
27016    pub fn BNNewTypeArchiveReference(archive: *mut BNTypeArchive) -> *mut BNTypeArchive;
27017}
27018unsafe extern "C" {
27019    pub fn BNFreeTypeArchiveReference(archive: *mut BNTypeArchive);
27020}
27021unsafe extern "C" {
27022    pub fn BNFreeTypeArchiveList(archives: *mut *mut BNTypeArchive, count: usize);
27023}
27024unsafe extern "C" {
27025    pub fn BNOpenTypeArchive(path: *const ::std::os::raw::c_char) -> *mut BNTypeArchive;
27026}
27027unsafe extern "C" {
27028    pub fn BNCreateTypeArchive(
27029        path: *const ::std::os::raw::c_char,
27030        platform: *mut BNPlatform,
27031    ) -> *mut BNTypeArchive;
27032}
27033unsafe extern "C" {
27034    pub fn BNCreateTypeArchiveWithId(
27035        path: *const ::std::os::raw::c_char,
27036        platform: *mut BNPlatform,
27037        id: *const ::std::os::raw::c_char,
27038    ) -> *mut BNTypeArchive;
27039}
27040unsafe extern "C" {
27041    pub fn BNLookupTypeArchiveById(id: *const ::std::os::raw::c_char) -> *mut BNTypeArchive;
27042}
27043unsafe extern "C" {
27044    pub fn BNCloseTypeArchive(archive: *mut BNTypeArchive);
27045}
27046unsafe extern "C" {
27047    pub fn BNIsTypeArchive(path: *const ::std::os::raw::c_char) -> bool;
27048}
27049unsafe extern "C" {
27050    pub fn BNGetTypeArchiveId(archive: *mut BNTypeArchive) -> *mut ::std::os::raw::c_char;
27051}
27052unsafe extern "C" {
27053    pub fn BNGetTypeArchivePath(archive: *mut BNTypeArchive) -> *mut ::std::os::raw::c_char;
27054}
27055unsafe extern "C" {
27056    pub fn BNGetTypeArchivePlatform(archive: *mut BNTypeArchive) -> *mut BNPlatform;
27057}
27058unsafe extern "C" {
27059    pub fn BNGetTypeArchiveCurrentSnapshotId(
27060        archive: *mut BNTypeArchive,
27061    ) -> *mut ::std::os::raw::c_char;
27062}
27063unsafe extern "C" {
27064    pub fn BNSetTypeArchiveCurrentSnapshot(
27065        archive: *mut BNTypeArchive,
27066        id: *const ::std::os::raw::c_char,
27067    );
27068}
27069unsafe extern "C" {
27070    pub fn BNGetTypeArchiveAllSnapshotIds(
27071        archive: *mut BNTypeArchive,
27072        count: *mut usize,
27073    ) -> *mut *mut ::std::os::raw::c_char;
27074}
27075unsafe extern "C" {
27076    pub fn BNGetTypeArchiveSnapshotParentIds(
27077        archive: *mut BNTypeArchive,
27078        id: *const ::std::os::raw::c_char,
27079        count: *mut usize,
27080    ) -> *mut *mut ::std::os::raw::c_char;
27081}
27082unsafe extern "C" {
27083    pub fn BNGetTypeArchiveSnapshotChildIds(
27084        archive: *mut BNTypeArchive,
27085        id: *const ::std::os::raw::c_char,
27086        count: *mut usize,
27087    ) -> *mut *mut ::std::os::raw::c_char;
27088}
27089unsafe extern "C" {
27090    pub fn BNGetTypeArchiveTypeContainer(archive: *mut BNTypeArchive) -> *mut BNTypeContainer;
27091}
27092unsafe extern "C" {
27093    pub fn BNAddTypeArchiveTypes(
27094        archive: *mut BNTypeArchive,
27095        types: *const BNQualifiedNameAndType,
27096        count: usize,
27097    ) -> bool;
27098}
27099unsafe extern "C" {
27100    pub fn BNRenameTypeArchiveType(
27101        archive: *mut BNTypeArchive,
27102        id: *const ::std::os::raw::c_char,
27103        newName: *const BNQualifiedName,
27104    ) -> bool;
27105}
27106unsafe extern "C" {
27107    pub fn BNDeleteTypeArchiveType(
27108        archive: *mut BNTypeArchive,
27109        id: *const ::std::os::raw::c_char,
27110    ) -> bool;
27111}
27112unsafe extern "C" {
27113    pub fn BNGetTypeArchiveTypeById(
27114        archive: *mut BNTypeArchive,
27115        id: *const ::std::os::raw::c_char,
27116        snapshot: *const ::std::os::raw::c_char,
27117    ) -> *mut BNType;
27118}
27119unsafe extern "C" {
27120    pub fn BNGetTypeArchiveTypeByName(
27121        archive: *mut BNTypeArchive,
27122        name: *const BNQualifiedName,
27123        snapshot: *const ::std::os::raw::c_char,
27124    ) -> *mut BNType;
27125}
27126unsafe extern "C" {
27127    pub fn BNGetTypeArchiveTypeId(
27128        archive: *mut BNTypeArchive,
27129        name: *const BNQualifiedName,
27130        snapshot: *const ::std::os::raw::c_char,
27131    ) -> *mut ::std::os::raw::c_char;
27132}
27133unsafe extern "C" {
27134    pub fn BNGetTypeArchiveTypeName(
27135        archive: *mut BNTypeArchive,
27136        id: *const ::std::os::raw::c_char,
27137        snapshot: *const ::std::os::raw::c_char,
27138    ) -> BNQualifiedName;
27139}
27140unsafe extern "C" {
27141    pub fn BNGetTypeArchiveTypes(
27142        archive: *mut BNTypeArchive,
27143        snapshot: *const ::std::os::raw::c_char,
27144        count: *mut usize,
27145    ) -> *mut BNQualifiedNameTypeAndId;
27146}
27147unsafe extern "C" {
27148    pub fn BNGetTypeArchiveTypeIds(
27149        archive: *mut BNTypeArchive,
27150        snapshot: *const ::std::os::raw::c_char,
27151        count: *mut usize,
27152    ) -> *mut *mut ::std::os::raw::c_char;
27153}
27154unsafe extern "C" {
27155    pub fn BNGetTypeArchiveTypeNames(
27156        archive: *mut BNTypeArchive,
27157        snapshot: *const ::std::os::raw::c_char,
27158        count: *mut usize,
27159    ) -> *mut BNQualifiedName;
27160}
27161unsafe extern "C" {
27162    pub fn BNGetTypeArchiveTypeNamesAndIds(
27163        archive: *mut BNTypeArchive,
27164        snapshot: *const ::std::os::raw::c_char,
27165        names: *mut *mut BNQualifiedName,
27166        ids: *mut *mut *mut ::std::os::raw::c_char,
27167        count: *mut usize,
27168    ) -> bool;
27169}
27170unsafe extern "C" {
27171    pub fn BNGetTypeArchiveOutgoingDirectTypeReferences(
27172        archive: *mut BNTypeArchive,
27173        id: *const ::std::os::raw::c_char,
27174        snapshot: *const ::std::os::raw::c_char,
27175        count: *mut usize,
27176    ) -> *mut *mut ::std::os::raw::c_char;
27177}
27178unsafe extern "C" {
27179    pub fn BNGetTypeArchiveOutgoingRecursiveTypeReferences(
27180        archive: *mut BNTypeArchive,
27181        id: *const ::std::os::raw::c_char,
27182        snapshot: *const ::std::os::raw::c_char,
27183        count: *mut usize,
27184    ) -> *mut *mut ::std::os::raw::c_char;
27185}
27186unsafe extern "C" {
27187    pub fn BNGetTypeArchiveIncomingDirectTypeReferences(
27188        archive: *mut BNTypeArchive,
27189        id: *const ::std::os::raw::c_char,
27190        snapshot: *const ::std::os::raw::c_char,
27191        count: *mut usize,
27192    ) -> *mut *mut ::std::os::raw::c_char;
27193}
27194unsafe extern "C" {
27195    pub fn BNGetTypeArchiveIncomingRecursiveTypeReferences(
27196        archive: *mut BNTypeArchive,
27197        id: *const ::std::os::raw::c_char,
27198        snapshot: *const ::std::os::raw::c_char,
27199        count: *mut usize,
27200    ) -> *mut *mut ::std::os::raw::c_char;
27201}
27202unsafe extern "C" {
27203    pub fn BNTypeArchiveNewSnapshotTransaction(
27204        archive: *mut BNTypeArchive,
27205        func: ::std::option::Option<
27206            unsafe extern "C" fn(
27207                context: *mut ::std::os::raw::c_void,
27208                id: *const ::std::os::raw::c_char,
27209            ) -> bool,
27210        >,
27211        context: *mut ::std::os::raw::c_void,
27212        parents: *const *const ::std::os::raw::c_char,
27213        parentCount: usize,
27214    ) -> *mut ::std::os::raw::c_char;
27215}
27216unsafe extern "C" {
27217    pub fn BNRegisterTypeArchiveNotification(
27218        archive: *mut BNTypeArchive,
27219        notification: *mut BNTypeArchiveNotification,
27220    );
27221}
27222unsafe extern "C" {
27223    pub fn BNUnregisterTypeArchiveNotification(
27224        archive: *mut BNTypeArchive,
27225        notification: *mut BNTypeArchiveNotification,
27226    );
27227}
27228unsafe extern "C" {
27229    pub fn BNTypeArchiveStoreMetadata(
27230        archive: *mut BNTypeArchive,
27231        key: *const ::std::os::raw::c_char,
27232        value: *mut BNMetadata,
27233    ) -> bool;
27234}
27235unsafe extern "C" {
27236    pub fn BNTypeArchiveQueryMetadata(
27237        archive: *mut BNTypeArchive,
27238        key: *const ::std::os::raw::c_char,
27239    ) -> *mut BNMetadata;
27240}
27241unsafe extern "C" {
27242    pub fn BNTypeArchiveRemoveMetadata(
27243        archive: *mut BNTypeArchive,
27244        key: *const ::std::os::raw::c_char,
27245    ) -> bool;
27246}
27247unsafe extern "C" {
27248    pub fn BNTypeArchiveSerializeSnapshot(
27249        archive: *mut BNTypeArchive,
27250        snapshot: *const ::std::os::raw::c_char,
27251    ) -> *mut BNDataBuffer;
27252}
27253unsafe extern "C" {
27254    pub fn BNTypeArchiveDeserializeSnapshot(
27255        archive: *mut BNTypeArchive,
27256        buffer: *mut BNDataBuffer,
27257    ) -> *mut ::std::os::raw::c_char;
27258}
27259unsafe extern "C" {
27260    pub fn BNTypeArchiveMergeSnapshots(
27261        archive: *mut BNTypeArchive,
27262        baseSnapshot: *const ::std::os::raw::c_char,
27263        firstSnapshot: *const ::std::os::raw::c_char,
27264        secondSnapshot: *const ::std::os::raw::c_char,
27265        mergeConflictKeysIn: *const *const ::std::os::raw::c_char,
27266        mergeConflictValuesIn: *const *const ::std::os::raw::c_char,
27267        mergeConflictCountIn: usize,
27268        mergeConflictsOut: *mut *mut *mut ::std::os::raw::c_char,
27269        mergeConflictCountOut: *mut usize,
27270        result: *mut *mut ::std::os::raw::c_char,
27271        progress: BNProgressFunction,
27272        context: *mut ::std::os::raw::c_void,
27273    ) -> bool;
27274}
27275unsafe extern "C" {
27276    pub fn BNBinaryViewAttachTypeArchive(
27277        view: *mut BNBinaryView,
27278        id: *const ::std::os::raw::c_char,
27279        path: *const ::std::os::raw::c_char,
27280    ) -> *mut BNTypeArchive;
27281}
27282unsafe extern "C" {
27283    pub fn BNBinaryViewDetachTypeArchive(
27284        view: *mut BNBinaryView,
27285        id: *const ::std::os::raw::c_char,
27286    ) -> bool;
27287}
27288unsafe extern "C" {
27289    pub fn BNBinaryViewGetTypeArchive(
27290        view: *mut BNBinaryView,
27291        id: *const ::std::os::raw::c_char,
27292    ) -> *mut BNTypeArchive;
27293}
27294unsafe extern "C" {
27295    pub fn BNBinaryViewGetTypeArchives(
27296        view: *mut BNBinaryView,
27297        ids: *mut *mut *mut ::std::os::raw::c_char,
27298        paths: *mut *mut *mut ::std::os::raw::c_char,
27299    ) -> usize;
27300}
27301unsafe extern "C" {
27302    pub fn BNBinaryViewGetTypeArchivePath(
27303        view: *mut BNBinaryView,
27304        id: *const ::std::os::raw::c_char,
27305    ) -> *mut ::std::os::raw::c_char;
27306}
27307unsafe extern "C" {
27308    pub fn BNBinaryViewGetTypeArchiveTypeNameList(
27309        view: *mut BNBinaryView,
27310        names: *mut *mut BNQualifiedName,
27311    ) -> usize;
27312}
27313unsafe extern "C" {
27314    pub fn BNBinaryViewGetTypeArchiveTypeNames(
27315        view: *mut BNBinaryView,
27316        name: *mut BNQualifiedName,
27317        archiveIds: *mut *mut *mut ::std::os::raw::c_char,
27318        archiveTypeIds: *mut *mut *mut ::std::os::raw::c_char,
27319    ) -> usize;
27320}
27321unsafe extern "C" {
27322    pub fn BNBinaryViewGetAssociatedTypeArchiveTypes(
27323        view: *mut BNBinaryView,
27324        typeIds: *mut *mut *mut ::std::os::raw::c_char,
27325        archiveIds: *mut *mut *mut ::std::os::raw::c_char,
27326        archiveTypeIds: *mut *mut *mut ::std::os::raw::c_char,
27327    ) -> usize;
27328}
27329unsafe extern "C" {
27330    pub fn BNBinaryViewGetAssociatedTypesFromArchive(
27331        view: *mut BNBinaryView,
27332        archiveId: *const ::std::os::raw::c_char,
27333        typeIds: *mut *mut *mut ::std::os::raw::c_char,
27334        archiveTypeIds: *mut *mut *mut ::std::os::raw::c_char,
27335    ) -> usize;
27336}
27337unsafe extern "C" {
27338    pub fn BNBinaryViewGetAssociatedTypeArchiveTypeTarget(
27339        view: *mut BNBinaryView,
27340        typeId: *const ::std::os::raw::c_char,
27341        archiveId: *mut *mut ::std::os::raw::c_char,
27342        archiveTypeId: *mut *mut ::std::os::raw::c_char,
27343    ) -> bool;
27344}
27345unsafe extern "C" {
27346    pub fn BNBinaryViewGetAssociatedTypeArchiveTypeSource(
27347        view: *mut BNBinaryView,
27348        archiveId: *const ::std::os::raw::c_char,
27349        archiveTypeId: *const ::std::os::raw::c_char,
27350        typeId: *mut *mut ::std::os::raw::c_char,
27351    ) -> bool;
27352}
27353unsafe extern "C" {
27354    pub fn BNBinaryViewGetTypeArchiveSyncStatus(
27355        view: *mut BNBinaryView,
27356        typeId: *const ::std::os::raw::c_char,
27357    ) -> BNSyncStatus;
27358}
27359unsafe extern "C" {
27360    pub fn BNBinaryViewDisassociateTypeArchiveType(
27361        view: *mut BNBinaryView,
27362        typeId: *const ::std::os::raw::c_char,
27363    ) -> bool;
27364}
27365unsafe extern "C" {
27366    pub fn BNBinaryViewPullTypeArchiveTypes(
27367        view: *mut BNBinaryView,
27368        archiveId: *const ::std::os::raw::c_char,
27369        archiveTypeIds: *const *const ::std::os::raw::c_char,
27370        archiveTypeIdCount: usize,
27371        updatedArchiveTypeIds: *mut *mut *mut ::std::os::raw::c_char,
27372        updatedAnalysisTypeIds: *mut *mut *mut ::std::os::raw::c_char,
27373        updatedTypeCount: *mut usize,
27374    ) -> bool;
27375}
27376unsafe extern "C" {
27377    pub fn BNBinaryViewPushTypeArchiveTypes(
27378        view: *mut BNBinaryView,
27379        archiveId: *const ::std::os::raw::c_char,
27380        typeIds: *const *const ::std::os::raw::c_char,
27381        typeIdCount: usize,
27382        updatedAnalysisTypeIds: *mut *mut *mut ::std::os::raw::c_char,
27383        updatedArchiveTypeIds: *mut *mut *mut ::std::os::raw::c_char,
27384        updatedTypeCount: *mut usize,
27385    ) -> bool;
27386}
27387unsafe extern "C" {
27388    #[doc = " Base Address Detection"]
27389    pub fn BNCreateBaseAddressDetection(view: *mut BNBinaryView) -> *mut BNBaseAddressDetection;
27390}
27391unsafe extern "C" {
27392    pub fn BNDetectBaseAddress(
27393        bad: *mut BNBaseAddressDetection,
27394        settings: *mut BNBaseAddressDetectionSettings,
27395    ) -> bool;
27396}
27397unsafe extern "C" {
27398    pub fn BNGetBaseAddressDetectionScores(
27399        bad: *mut BNBaseAddressDetection,
27400        scores: *mut BNBaseAddressDetectionScore,
27401        count: usize,
27402        confidence: *mut BNBaseAddressDetectionConfidence,
27403        lastTestedBaseAddress: *mut u64,
27404    ) -> usize;
27405}
27406unsafe extern "C" {
27407    pub fn BNGetBaseAddressDetectionReasons(
27408        bad: *mut BNBaseAddressDetection,
27409        baseAddress: u64,
27410        count: *mut usize,
27411    ) -> *mut BNBaseAddressDetectionReason;
27412}
27413unsafe extern "C" {
27414    pub fn BNFreeBaseAddressDetectionReasons(reasons: *mut BNBaseAddressDetectionReason);
27415}
27416unsafe extern "C" {
27417    pub fn BNAbortBaseAddressDetection(bad: *mut BNBaseAddressDetection);
27418}
27419unsafe extern "C" {
27420    pub fn BNIsBaseAddressDetectionAborted(bad: *mut BNBaseAddressDetection) -> bool;
27421}
27422unsafe extern "C" {
27423    pub fn BNFreeBaseAddressDetection(bad: *mut BNBaseAddressDetection);
27424}
27425unsafe extern "C" {
27426    #[doc = " Unicode"]
27427    pub fn BNUnicodeUTF16ToUTF8(utf16: *const u8, len: usize) -> *mut ::std::os::raw::c_char;
27428}
27429unsafe extern "C" {
27430    pub fn BNUnicodeUTF32ToUTF8(utf32: *const u8) -> *mut ::std::os::raw::c_char;
27431}
27432unsafe extern "C" {
27433    pub fn BNUnicodeGetBlockRange(
27434        name: *const ::std::os::raw::c_char,
27435        rangeStart: *mut u32,
27436        rangeEnd: *mut u32,
27437    ) -> bool;
27438}
27439unsafe extern "C" {
27440    pub fn BNUnicodeGetBlocksForNames(
27441        names: *const *const ::std::os::raw::c_char,
27442        nameCount: usize,
27443        starts: *mut *mut *mut u32,
27444        ends: *mut *mut *mut u32,
27445        blockListCounts: *mut *mut usize,
27446        blockCount: *mut usize,
27447    );
27448}
27449unsafe extern "C" {
27450    pub fn BNFreeUnicodeBlockList(
27451        starts: *mut *mut u32,
27452        ends: *mut *mut u32,
27453        blockCounts: *mut usize,
27454        blockListCounts: usize,
27455    );
27456}
27457unsafe extern "C" {
27458    pub fn BNUnicodeGetBlockNames(names: *mut *mut *mut ::std::os::raw::c_char, count: *mut usize);
27459}
27460unsafe extern "C" {
27461    pub fn BNUnicodeGetBlockRanges(
27462        names: *mut *mut *mut ::std::os::raw::c_char,
27463        rangeStarts: *mut *mut u32,
27464        rangeEnds: *mut *mut u32,
27465        count: *mut usize,
27466    );
27467}
27468unsafe extern "C" {
27469    pub fn BNFreeUnicodeRangeList(starts: *mut u32, ends: *mut u32);
27470}
27471unsafe extern "C" {
27472    pub fn BNUnicodeGetUTF8String(
27473        starts: *mut *mut u32,
27474        ends: *mut *mut u32,
27475        blockListCounts: *mut usize,
27476        blockCount: usize,
27477        data: *const u8,
27478        offset: usize,
27479        dataLen: usize,
27480    ) -> *mut ::std::os::raw::c_char;
27481}
27482unsafe extern "C" {
27483    pub fn BNUnicodeToEscapedString(
27484        starts: *mut *mut u32,
27485        ends: *mut *mut u32,
27486        blockListCounts: *mut usize,
27487        blockCount: usize,
27488        utf8Enabled: bool,
27489        data: *const ::std::os::raw::c_void,
27490        dataLen: usize,
27491    ) -> *mut ::std::os::raw::c_char;
27492}
27493unsafe extern "C" {
27494    #[doc = " Collaboration"]
27495    pub fn BNCollaborationGetActiveRemote() -> *mut BNRemote;
27496}
27497unsafe extern "C" {
27498    pub fn BNCollaborationSetActiveRemote(remote: *mut BNRemote);
27499}
27500unsafe extern "C" {
27501    pub fn BNCollaborationStoreDataInKeychain(
27502        key: *const ::std::os::raw::c_char,
27503        dataKeys: *mut *const ::std::os::raw::c_char,
27504        dataValues: *mut *const ::std::os::raw::c_char,
27505        dataCount: usize,
27506    ) -> bool;
27507}
27508unsafe extern "C" {
27509    pub fn BNCollaborationHasDataInKeychain(key: *const ::std::os::raw::c_char) -> bool;
27510}
27511unsafe extern "C" {
27512    pub fn BNCollaborationGetDataFromKeychain(
27513        key: *const ::std::os::raw::c_char,
27514        foundKeys: *mut *mut *mut ::std::os::raw::c_char,
27515        foundValues: *mut *mut *mut ::std::os::raw::c_char,
27516    ) -> usize;
27517}
27518unsafe extern "C" {
27519    pub fn BNCollaborationDeleteDataFromKeychain(key: *const ::std::os::raw::c_char) -> bool;
27520}
27521unsafe extern "C" {
27522    pub fn BNCollaborationLoadRemotes() -> bool;
27523}
27524unsafe extern "C" {
27525    pub fn BNCollaborationGetRemotes(count: *mut usize) -> *mut *mut BNRemote;
27526}
27527unsafe extern "C" {
27528    pub fn BNCollaborationGetRemoteById(remoteId: *const ::std::os::raw::c_char) -> *mut BNRemote;
27529}
27530unsafe extern "C" {
27531    pub fn BNCollaborationGetRemoteByAddress(
27532        remoteAddress: *const ::std::os::raw::c_char,
27533    ) -> *mut BNRemote;
27534}
27535unsafe extern "C" {
27536    pub fn BNCollaborationGetRemoteByName(name: *const ::std::os::raw::c_char) -> *mut BNRemote;
27537}
27538unsafe extern "C" {
27539    pub fn BNCollaborationCreateRemote(
27540        name: *const ::std::os::raw::c_char,
27541        address: *const ::std::os::raw::c_char,
27542    ) -> *mut BNRemote;
27543}
27544unsafe extern "C" {
27545    pub fn BNCollaborationRemoveRemote(remote: *mut BNRemote);
27546}
27547unsafe extern "C" {
27548    pub fn BNCollaborationSaveRemotes();
27549}
27550unsafe extern "C" {
27551    pub fn BNCollaborationSyncDatabase(
27552        database: *mut BNDatabase,
27553        file: *mut BNRemoteFile,
27554        conflictHandler: BNCollaborationAnalysisConflictHandler,
27555        conflictHandlerCtxt: *mut ::std::os::raw::c_void,
27556        progress: BNProgressFunction,
27557        progressCtxt: *mut ::std::os::raw::c_void,
27558        nameChangeset: BNCollaborationNameChangesetFunction,
27559        nameChangesetCtxt: *mut ::std::os::raw::c_void,
27560    ) -> bool;
27561}
27562unsafe extern "C" {
27563    pub fn BNCollaborationSyncTypeArchive(
27564        archive: *mut BNTypeArchive,
27565        file: *mut BNRemoteFile,
27566        conflictHandler: ::std::option::Option<
27567            unsafe extern "C" fn(
27568                arg1: *mut ::std::os::raw::c_void,
27569                conflicts: *mut *mut BNTypeArchiveMergeConflict,
27570                conflictCount: usize,
27571            ) -> bool,
27572        >,
27573        conflictHandlerCtxt: *mut ::std::os::raw::c_void,
27574        progress: BNProgressFunction,
27575        progressCtxt: *mut ::std::os::raw::c_void,
27576    ) -> bool;
27577}
27578unsafe extern "C" {
27579    pub fn BNCollaborationPushTypeArchive(
27580        archive: *mut BNTypeArchive,
27581        file: *mut BNRemoteFile,
27582        count: *mut usize,
27583        progress: BNProgressFunction,
27584        progressCtxt: *mut ::std::os::raw::c_void,
27585    ) -> bool;
27586}
27587unsafe extern "C" {
27588    pub fn BNCollaborationPullTypeArchive(
27589        archive: *mut BNTypeArchive,
27590        file: *mut BNRemoteFile,
27591        count: *mut usize,
27592        conflictHandler: ::std::option::Option<
27593            unsafe extern "C" fn(
27594                arg1: *mut ::std::os::raw::c_void,
27595                conflicts: *mut *mut BNTypeArchiveMergeConflict,
27596                conflictCount: usize,
27597            ) -> bool,
27598        >,
27599        conflictHandlerCtxt: *mut ::std::os::raw::c_void,
27600        progress: BNProgressFunction,
27601        progressCtxt: *mut ::std::os::raw::c_void,
27602    ) -> bool;
27603}
27604unsafe extern "C" {
27605    pub fn BNCollaborationIsCollaborationTypeArchive(archive: *mut BNTypeArchive) -> bool;
27606}
27607unsafe extern "C" {
27608    pub fn BNCollaborationGetRemoteForLocalTypeArchive(
27609        archive: *mut BNTypeArchive,
27610    ) -> *mut BNRemote;
27611}
27612unsafe extern "C" {
27613    pub fn BNCollaborationGetRemoteProjectForLocalTypeArchive(
27614        archive: *mut BNTypeArchive,
27615    ) -> *mut BNRemoteProject;
27616}
27617unsafe extern "C" {
27618    pub fn BNCollaborationGetRemoteFileForLocalTypeArchive(
27619        archive: *mut BNTypeArchive,
27620    ) -> *mut BNRemoteFile;
27621}
27622unsafe extern "C" {
27623    pub fn BNCollaborationGetRemoteSnapshotFromLocalTypeArchive(
27624        archive: *mut BNTypeArchive,
27625        snapshotId: *const ::std::os::raw::c_char,
27626    ) -> *mut BNCollaborationSnapshot;
27627}
27628unsafe extern "C" {
27629    pub fn BNCollaborationGetLocalSnapshotFromRemoteTypeArchive(
27630        snapshot: *mut BNCollaborationSnapshot,
27631        archive: *mut BNTypeArchive,
27632    ) -> *mut ::std::os::raw::c_char;
27633}
27634unsafe extern "C" {
27635    pub fn BNCollaborationIsTypeArchiveSnapshotIgnored(
27636        archive: *mut BNTypeArchive,
27637        snapshot: *const ::std::os::raw::c_char,
27638    ) -> bool;
27639}
27640unsafe extern "C" {
27641    pub fn BNCollaborationSetSnapshotAuthor(
27642        database: *mut BNDatabase,
27643        snapshot: *mut BNSnapshot,
27644        author: *const ::std::os::raw::c_char,
27645    ) -> bool;
27646}
27647unsafe extern "C" {
27648    pub fn BNCollaborationDefaultProjectPath(
27649        project: *mut BNRemoteProject,
27650    ) -> *mut ::std::os::raw::c_char;
27651}
27652unsafe extern "C" {
27653    pub fn BNCollaborationDefaultFilePath(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
27654}
27655unsafe extern "C" {
27656    pub fn BNCollaborationDownloadFile(
27657        file: *mut BNRemoteFile,
27658        dbPath: *const ::std::os::raw::c_char,
27659        progress: BNProgressFunction,
27660        progressContext: *mut ::std::os::raw::c_void,
27661    ) -> *mut BNFileMetadata;
27662}
27663unsafe extern "C" {
27664    pub fn BNCollaborationUploadDatabase(
27665        metadata: *mut BNFileMetadata,
27666        project: *mut BNRemoteProject,
27667        folder: *mut BNRemoteFolder,
27668        progress: BNProgressFunction,
27669        progressContext: *mut ::std::os::raw::c_void,
27670        nameChangeset: BNCollaborationNameChangesetFunction,
27671        nameChangesetContext: *mut ::std::os::raw::c_void,
27672    ) -> *mut BNRemoteFile;
27673}
27674unsafe extern "C" {
27675    pub fn BNCollaborationIsCollaborationDatabase(database: *mut BNDatabase) -> bool;
27676}
27677unsafe extern "C" {
27678    pub fn BNCollaborationGetRemoteForLocalDatabase(
27679        database: *mut BNDatabase,
27680        result: *mut *mut BNRemote,
27681    ) -> bool;
27682}
27683unsafe extern "C" {
27684    pub fn BNCollaborationGetRemoteProjectForLocalDatabase(
27685        database: *mut BNDatabase,
27686        result: *mut *mut BNRemoteProject,
27687    ) -> bool;
27688}
27689unsafe extern "C" {
27690    pub fn BNCollaborationGetRemoteFileForLocalDatabase(
27691        database: *mut BNDatabase,
27692        result: *mut *mut BNRemoteFile,
27693    ) -> bool;
27694}
27695unsafe extern "C" {
27696    pub fn BNCollaborationAssignSnapshotMap(
27697        localSnapshot: *mut BNSnapshot,
27698        remoteSnapshot: *mut BNCollaborationSnapshot,
27699    ) -> bool;
27700}
27701unsafe extern "C" {
27702    pub fn BNCollaborationGetRemoteSnapshotFromLocal(
27703        snapshot: *mut BNSnapshot,
27704        result: *mut *mut BNCollaborationSnapshot,
27705    ) -> bool;
27706}
27707unsafe extern "C" {
27708    pub fn BNCollaborationGetLocalSnapshotFromRemote(
27709        snapshot: *mut BNCollaborationSnapshot,
27710        database: *mut BNDatabase,
27711        result: *mut *mut BNSnapshot,
27712    ) -> bool;
27713}
27714unsafe extern "C" {
27715    pub fn BNCollaborationDownloadTypeArchive(
27716        file: *mut BNRemoteFile,
27717        dbPath: *const ::std::os::raw::c_char,
27718        progress: BNProgressFunction,
27719        progressContext: *mut ::std::os::raw::c_void,
27720        result: *mut *mut BNTypeArchive,
27721    ) -> bool;
27722}
27723unsafe extern "C" {
27724    pub fn BNCollaborationUploadTypeArchive(
27725        archive: *mut BNTypeArchive,
27726        project: *mut BNRemoteProject,
27727        folder: *mut BNRemoteFolder,
27728        progress: BNProgressFunction,
27729        progressContext: *mut ::std::os::raw::c_void,
27730        coreFile: *mut BNProjectFile,
27731        result: *mut *mut BNRemoteFile,
27732    ) -> bool;
27733}
27734unsafe extern "C" {
27735    pub fn BNCollaborationDownloadDatabaseForFile(
27736        file: *mut BNRemoteFile,
27737        dbPath: *const ::std::os::raw::c_char,
27738        force: bool,
27739        progress: BNProgressFunction,
27740        progressContext: *mut ::std::os::raw::c_void,
27741    ) -> bool;
27742}
27743unsafe extern "C" {
27744    pub fn BNCollaborationMergeSnapshots(
27745        first: *mut BNSnapshot,
27746        second: *mut BNSnapshot,
27747        conflictHandler: BNCollaborationAnalysisConflictHandler,
27748        conflictHandlerCtxt: *mut ::std::os::raw::c_void,
27749        progress: BNProgressFunction,
27750        progressContext: *mut ::std::os::raw::c_void,
27751    ) -> *mut BNSnapshot;
27752}
27753unsafe extern "C" {
27754    pub fn BNCollaborationPullDatabase(
27755        database: *mut BNDatabase,
27756        file: *mut BNRemoteFile,
27757        count: *mut usize,
27758        conflictHandler: BNCollaborationAnalysisConflictHandler,
27759        conflictHandlerCtxt: *mut ::std::os::raw::c_void,
27760        progress: BNProgressFunction,
27761        progressContext: *mut ::std::os::raw::c_void,
27762        nameChangeset: BNCollaborationNameChangesetFunction,
27763        nameChangesetContext: *mut ::std::os::raw::c_void,
27764    ) -> bool;
27765}
27766unsafe extern "C" {
27767    pub fn BNCollaborationMergeDatabase(
27768        database: *mut BNDatabase,
27769        conflictHandler: BNCollaborationAnalysisConflictHandler,
27770        conflictHandlerCtxt: *mut ::std::os::raw::c_void,
27771        progress: BNProgressFunction,
27772        progressContext: *mut ::std::os::raw::c_void,
27773    ) -> bool;
27774}
27775unsafe extern "C" {
27776    pub fn BNCollaborationPushDatabase(
27777        database: *mut BNDatabase,
27778        file: *mut BNRemoteFile,
27779        count: *mut usize,
27780        progress: BNProgressFunction,
27781        progressContext: *mut ::std::os::raw::c_void,
27782    ) -> bool;
27783}
27784unsafe extern "C" {
27785    pub fn BNCollaborationDumpDatabase(database: *mut BNDatabase) -> bool;
27786}
27787unsafe extern "C" {
27788    pub fn BNCollaborationIgnoreSnapshot(
27789        database: *mut BNDatabase,
27790        snapshot: *mut BNSnapshot,
27791    ) -> bool;
27792}
27793unsafe extern "C" {
27794    pub fn BNCollaborationIsSnapshotIgnored(
27795        database: *mut BNDatabase,
27796        snapshot: *mut BNSnapshot,
27797    ) -> bool;
27798}
27799unsafe extern "C" {
27800    pub fn BNCollaborationGetSnapshotAuthor(
27801        database: *mut BNDatabase,
27802        snapshot: *mut BNSnapshot,
27803        result: *mut *mut ::std::os::raw::c_char,
27804    ) -> bool;
27805}
27806unsafe extern "C" {
27807    pub fn BNCollaborationFreeIdList(ids: *mut u64, size: usize);
27808}
27809unsafe extern "C" {
27810    pub fn BNCollaborationFreeSnapshotIdList(ids: *mut i64, size: usize);
27811}
27812unsafe extern "C" {
27813    #[doc = " LazyT"]
27814    pub fn BNCollaborationLazyTCreate(
27815        ctor: ::std::option::Option<
27816            unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void) -> *mut ::std::os::raw::c_void,
27817        >,
27818        context: *mut ::std::os::raw::c_void,
27819    ) -> *mut BNCollaborationLazyT;
27820}
27821unsafe extern "C" {
27822    pub fn BNCollaborationLazyTDereference(
27823        lazyT: *mut BNCollaborationLazyT,
27824    ) -> *mut ::std::os::raw::c_void;
27825}
27826unsafe extern "C" {
27827    pub fn BNCollaborationFreeLazyT(lazyT: *mut BNCollaborationLazyT);
27828}
27829unsafe extern "C" {
27830    #[doc = " Remote"]
27831    pub fn BNNewRemoteReference(remote: *mut BNRemote) -> *mut BNRemote;
27832}
27833unsafe extern "C" {
27834    pub fn BNFreeRemote(remote: *mut BNRemote);
27835}
27836unsafe extern "C" {
27837    pub fn BNFreeRemoteList(remotes: *mut *mut BNRemote, count: usize);
27838}
27839unsafe extern "C" {
27840    pub fn BNRemoteGetUniqueId(remote: *mut BNRemote) -> *mut ::std::os::raw::c_char;
27841}
27842unsafe extern "C" {
27843    pub fn BNRemoteGetName(remote: *mut BNRemote) -> *mut ::std::os::raw::c_char;
27844}
27845unsafe extern "C" {
27846    pub fn BNRemoteGetAddress(remote: *mut BNRemote) -> *mut ::std::os::raw::c_char;
27847}
27848unsafe extern "C" {
27849    pub fn BNRemoteHasLoadedMetadata(remote: *mut BNRemote) -> bool;
27850}
27851unsafe extern "C" {
27852    pub fn BNRemoteIsConnected(remote: *mut BNRemote) -> bool;
27853}
27854unsafe extern "C" {
27855    pub fn BNRemoteGetUsername(remote: *mut BNRemote) -> *mut ::std::os::raw::c_char;
27856}
27857unsafe extern "C" {
27858    pub fn BNRemoteGetToken(remote: *mut BNRemote) -> *mut ::std::os::raw::c_char;
27859}
27860unsafe extern "C" {
27861    pub fn BNRemoteGetServerVersion(remote: *mut BNRemote) -> ::std::os::raw::c_int;
27862}
27863unsafe extern "C" {
27864    pub fn BNRemoteGetServerBuildVersion(remote: *mut BNRemote) -> BNVersionInfo;
27865}
27866unsafe extern "C" {
27867    pub fn BNRemoteGetServerBuildId(remote: *mut BNRemote) -> *mut ::std::os::raw::c_char;
27868}
27869unsafe extern "C" {
27870    pub fn BNRemoteGetAuthBackends(
27871        remote: *mut BNRemote,
27872        backendIds: *mut *mut *mut ::std::os::raw::c_char,
27873        backendNames: *mut *mut *mut ::std::os::raw::c_char,
27874        count: *mut usize,
27875    ) -> bool;
27876}
27877unsafe extern "C" {
27878    pub fn BNRemoteHasPulledProjects(remote: *mut BNRemote) -> bool;
27879}
27880unsafe extern "C" {
27881    pub fn BNRemoteHasPulledUsers(remote: *mut BNRemote) -> bool;
27882}
27883unsafe extern "C" {
27884    pub fn BNRemoteHasPulledGroups(remote: *mut BNRemote) -> bool;
27885}
27886unsafe extern "C" {
27887    pub fn BNRemoteIsAdmin(remote: *mut BNRemote) -> bool;
27888}
27889unsafe extern "C" {
27890    pub fn BNRemoteIsEnterprise(remote: *mut BNRemote) -> bool;
27891}
27892unsafe extern "C" {
27893    pub fn BNRemoteLoadMetadata(remote: *mut BNRemote) -> bool;
27894}
27895unsafe extern "C" {
27896    pub fn BNRemoteRequestAuthenticationToken(
27897        remote: *mut BNRemote,
27898        username: *const ::std::os::raw::c_char,
27899        password: *const ::std::os::raw::c_char,
27900    ) -> *mut ::std::os::raw::c_char;
27901}
27902unsafe extern "C" {
27903    pub fn BNRemoteConnect(
27904        remote: *mut BNRemote,
27905        username: *const ::std::os::raw::c_char,
27906        token: *const ::std::os::raw::c_char,
27907    ) -> bool;
27908}
27909unsafe extern "C" {
27910    pub fn BNRemoteDisconnect(remote: *mut BNRemote) -> bool;
27911}
27912unsafe extern "C" {
27913    pub fn BNRemoteGetProjects(
27914        remote: *mut BNRemote,
27915        count: *mut usize,
27916    ) -> *mut *mut BNRemoteProject;
27917}
27918unsafe extern "C" {
27919    pub fn BNRemoteGetProjectById(
27920        remote: *mut BNRemote,
27921        id: *const ::std::os::raw::c_char,
27922    ) -> *mut BNRemoteProject;
27923}
27924unsafe extern "C" {
27925    pub fn BNRemoteGetProjectByName(
27926        remote: *mut BNRemote,
27927        name: *const ::std::os::raw::c_char,
27928    ) -> *mut BNRemoteProject;
27929}
27930unsafe extern "C" {
27931    pub fn BNRemotePullProjects(
27932        remote: *mut BNRemote,
27933        progress: BNProgressFunction,
27934        progressContext: *mut ::std::os::raw::c_void,
27935    ) -> bool;
27936}
27937unsafe extern "C" {
27938    pub fn BNRemoteCreateProject(
27939        remote: *mut BNRemote,
27940        name: *const ::std::os::raw::c_char,
27941        description: *const ::std::os::raw::c_char,
27942    ) -> *mut BNRemoteProject;
27943}
27944unsafe extern "C" {
27945    pub fn BNRemoteImportLocalProject(
27946        remote: *mut BNRemote,
27947        localProject: *mut BNProject,
27948        progress: BNProgressFunction,
27949        progressCtxt: *mut ::std::os::raw::c_void,
27950    ) -> *mut BNRemoteProject;
27951}
27952unsafe extern "C" {
27953    pub fn BNRemotePushProject(
27954        remote: *mut BNRemote,
27955        project: *mut BNRemoteProject,
27956        extraFieldKeys: *mut *const ::std::os::raw::c_char,
27957        extraFieldValues: *mut *const ::std::os::raw::c_char,
27958        extraFieldCount: usize,
27959    ) -> bool;
27960}
27961unsafe extern "C" {
27962    pub fn BNRemoteDeleteProject(remote: *mut BNRemote, project: *mut BNRemoteProject) -> bool;
27963}
27964unsafe extern "C" {
27965    pub fn BNRemoteGetGroups(
27966        remote: *mut BNRemote,
27967        count: *mut usize,
27968    ) -> *mut *mut BNCollaborationGroup;
27969}
27970unsafe extern "C" {
27971    pub fn BNRemoteGetGroupById(remote: *mut BNRemote, id: u64) -> *mut BNCollaborationGroup;
27972}
27973unsafe extern "C" {
27974    pub fn BNRemoteGetGroupByName(
27975        remote: *mut BNRemote,
27976        name: *const ::std::os::raw::c_char,
27977    ) -> *mut BNCollaborationGroup;
27978}
27979unsafe extern "C" {
27980    pub fn BNRemoteSearchGroups(
27981        remote: *mut BNRemote,
27982        prefix: *const ::std::os::raw::c_char,
27983        groupIds: *mut *mut u64,
27984        groupNames: *mut *mut *mut ::std::os::raw::c_char,
27985        count: *mut usize,
27986    ) -> bool;
27987}
27988unsafe extern "C" {
27989    pub fn BNRemotePullGroups(
27990        remote: *mut BNRemote,
27991        progress: BNProgressFunction,
27992        progressContext: *mut ::std::os::raw::c_void,
27993    ) -> bool;
27994}
27995unsafe extern "C" {
27996    pub fn BNRemoteCreateGroup(
27997        remote: *mut BNRemote,
27998        name: *const ::std::os::raw::c_char,
27999        users: *mut *mut BNCollaborationUser,
28000        userCount: usize,
28001    ) -> *mut BNCollaborationGroup;
28002}
28003unsafe extern "C" {
28004    pub fn BNRemotePushGroup(
28005        remote: *mut BNRemote,
28006        group: *mut BNCollaborationGroup,
28007        extraFieldKeys: *mut *const ::std::os::raw::c_char,
28008        extraFieldValues: *mut *const ::std::os::raw::c_char,
28009        extraFieldCount: usize,
28010    ) -> bool;
28011}
28012unsafe extern "C" {
28013    pub fn BNRemoteDeleteGroup(remote: *mut BNRemote, group: *mut BNCollaborationGroup) -> bool;
28014}
28015unsafe extern "C" {
28016    pub fn BNRemoteGetUsers(
28017        remote: *mut BNRemote,
28018        count: *mut usize,
28019    ) -> *mut *mut BNCollaborationUser;
28020}
28021unsafe extern "C" {
28022    pub fn BNRemoteGetUserById(
28023        remote: *mut BNRemote,
28024        id: *const ::std::os::raw::c_char,
28025    ) -> *mut BNCollaborationUser;
28026}
28027unsafe extern "C" {
28028    pub fn BNRemoteGetUserByUsername(
28029        remote: *mut BNRemote,
28030        username: *const ::std::os::raw::c_char,
28031    ) -> *mut BNCollaborationUser;
28032}
28033unsafe extern "C" {
28034    pub fn BNRemoteGetCurrentUser(remote: *mut BNRemote) -> *mut BNCollaborationUser;
28035}
28036unsafe extern "C" {
28037    pub fn BNRemoteSearchUsers(
28038        remote: *mut BNRemote,
28039        prefix: *const ::std::os::raw::c_char,
28040        userIds: *mut *mut *mut ::std::os::raw::c_char,
28041        usernames: *mut *mut *mut ::std::os::raw::c_char,
28042        count: *mut usize,
28043    ) -> bool;
28044}
28045unsafe extern "C" {
28046    pub fn BNRemoteFindFiles(
28047        remote: *mut BNRemote,
28048        name: *const ::std::os::raw::c_char,
28049        count: *mut usize,
28050    ) -> *mut BNRemoteFileSearchMatch;
28051}
28052unsafe extern "C" {
28053    pub fn BNFreeRemoteFileSearchMatchList(matches: *mut BNRemoteFileSearchMatch, count: usize);
28054}
28055unsafe extern "C" {
28056    pub fn BNRemotePullUsers(
28057        remote: *mut BNRemote,
28058        progress: BNProgressFunction,
28059        progressContext: *mut ::std::os::raw::c_void,
28060    ) -> bool;
28061}
28062unsafe extern "C" {
28063    pub fn BNRemoteCreateUser(
28064        remote: *mut BNRemote,
28065        username: *const ::std::os::raw::c_char,
28066        email: *const ::std::os::raw::c_char,
28067        isActive: bool,
28068        password: *const ::std::os::raw::c_char,
28069        groupIds: *const u64,
28070        groupIdCount: usize,
28071        userPermissionIds: *const u64,
28072        userPermissionIdCount: usize,
28073    ) -> *mut BNCollaborationUser;
28074}
28075unsafe extern "C" {
28076    pub fn BNRemotePushUser(
28077        remote: *mut BNRemote,
28078        user: *mut BNCollaborationUser,
28079        extraFieldKeys: *mut *const ::std::os::raw::c_char,
28080        extraFieldValues: *mut *const ::std::os::raw::c_char,
28081        extraFieldCount: usize,
28082    ) -> bool;
28083}
28084unsafe extern "C" {
28085    pub fn BNRemoteRequest(
28086        remote: *mut BNRemote,
28087        request: *mut ::std::os::raw::c_void,
28088        ret: *mut ::std::os::raw::c_void,
28089    ) -> ::std::os::raw::c_int;
28090}
28091unsafe extern "C" {
28092    #[doc = " CollabGroup"]
28093    pub fn BNNewCollaborationGroupReference(
28094        group: *mut BNCollaborationGroup,
28095    ) -> *mut BNCollaborationGroup;
28096}
28097unsafe extern "C" {
28098    pub fn BNFreeCollaborationGroup(group: *mut BNCollaborationGroup);
28099}
28100unsafe extern "C" {
28101    pub fn BNFreeCollaborationGroupList(group: *mut *mut BNCollaborationGroup, count: usize);
28102}
28103unsafe extern "C" {
28104    pub fn BNCollaborationGroupGetRemote(group: *mut BNCollaborationGroup) -> *mut BNRemote;
28105}
28106unsafe extern "C" {
28107    pub fn BNCollaborationGroupGetUrl(
28108        group: *mut BNCollaborationGroup,
28109    ) -> *mut ::std::os::raw::c_char;
28110}
28111unsafe extern "C" {
28112    pub fn BNCollaborationGroupGetId(group: *mut BNCollaborationGroup) -> u64;
28113}
28114unsafe extern "C" {
28115    pub fn BNCollaborationGroupGetName(
28116        group: *mut BNCollaborationGroup,
28117    ) -> *mut ::std::os::raw::c_char;
28118}
28119unsafe extern "C" {
28120    pub fn BNCollaborationGroupSetName(
28121        group: *mut BNCollaborationGroup,
28122        name: *const ::std::os::raw::c_char,
28123    );
28124}
28125unsafe extern "C" {
28126    pub fn BNCollaborationGroupGetUsers(
28127        group: *mut BNCollaborationGroup,
28128        count: *mut usize,
28129    ) -> *mut *mut BNCollaborationUser;
28130}
28131unsafe extern "C" {
28132    pub fn BNCollaborationGroupSetUsers(
28133        group: *mut BNCollaborationGroup,
28134        users: *mut *mut BNCollaborationUser,
28135        count: usize,
28136    ) -> bool;
28137}
28138unsafe extern "C" {
28139    pub fn BNCollaborationGroupContainsUser(
28140        group: *mut BNCollaborationGroup,
28141        user: *mut BNCollaborationUser,
28142    ) -> bool;
28143}
28144unsafe extern "C" {
28145    #[doc = " CollabUser"]
28146    pub fn BNNewCollaborationUserReference(
28147        user: *mut BNCollaborationUser,
28148    ) -> *mut BNCollaborationUser;
28149}
28150unsafe extern "C" {
28151    pub fn BNFreeCollaborationUser(user: *mut BNCollaborationUser);
28152}
28153unsafe extern "C" {
28154    pub fn BNFreeCollaborationUserList(users: *mut *mut BNCollaborationUser, count: usize);
28155}
28156unsafe extern "C" {
28157    pub fn BNCollaborationUserGetRemote(user: *mut BNCollaborationUser) -> *mut BNRemote;
28158}
28159unsafe extern "C" {
28160    pub fn BNCollaborationUserGetUrl(user: *mut BNCollaborationUser)
28161    -> *mut ::std::os::raw::c_char;
28162}
28163unsafe extern "C" {
28164    pub fn BNCollaborationUserGetId(user: *mut BNCollaborationUser) -> *mut ::std::os::raw::c_char;
28165}
28166unsafe extern "C" {
28167    pub fn BNCollaborationUserGetUsername(
28168        user: *mut BNCollaborationUser,
28169    ) -> *mut ::std::os::raw::c_char;
28170}
28171unsafe extern "C" {
28172    pub fn BNCollaborationUserGetEmail(
28173        user: *mut BNCollaborationUser,
28174    ) -> *mut ::std::os::raw::c_char;
28175}
28176unsafe extern "C" {
28177    pub fn BNCollaborationUserGetLastLogin(
28178        user: *mut BNCollaborationUser,
28179    ) -> *mut ::std::os::raw::c_char;
28180}
28181unsafe extern "C" {
28182    pub fn BNCollaborationUserIsActive(user: *mut BNCollaborationUser) -> bool;
28183}
28184unsafe extern "C" {
28185    pub fn BNCollaborationUserSetUsername(
28186        user: *mut BNCollaborationUser,
28187        username: *const ::std::os::raw::c_char,
28188    ) -> bool;
28189}
28190unsafe extern "C" {
28191    pub fn BNCollaborationUserSetEmail(
28192        user: *mut BNCollaborationUser,
28193        email: *const ::std::os::raw::c_char,
28194    ) -> bool;
28195}
28196unsafe extern "C" {
28197    pub fn BNCollaborationUserSetIsActive(user: *mut BNCollaborationUser, isActive: bool) -> bool;
28198}
28199unsafe extern "C" {
28200    #[doc = " RemoteProject"]
28201    pub fn BNNewRemoteProjectReference(project: *mut BNRemoteProject) -> *mut BNRemoteProject;
28202}
28203unsafe extern "C" {
28204    pub fn BNFreeRemoteProject(project: *mut BNRemoteProject);
28205}
28206unsafe extern "C" {
28207    pub fn BNFreeRemoteProjectList(projects: *mut *mut BNRemoteProject, count: usize);
28208}
28209unsafe extern "C" {
28210    pub fn BNRemoteProjectGetCoreProject(project: *mut BNRemoteProject) -> *mut BNProject;
28211}
28212unsafe extern "C" {
28213    pub fn BNRemoteProjectIsOpen(project: *mut BNRemoteProject) -> bool;
28214}
28215unsafe extern "C" {
28216    pub fn BNRemoteProjectOpen(
28217        project: *mut BNRemoteProject,
28218        progress: BNProgressFunction,
28219        progressCtxt: *mut ::std::os::raw::c_void,
28220    ) -> bool;
28221}
28222unsafe extern "C" {
28223    pub fn BNRemoteProjectClose(project: *mut BNRemoteProject);
28224}
28225unsafe extern "C" {
28226    pub fn BNRemoteProjectGetRemote(project: *mut BNRemoteProject) -> *mut BNRemote;
28227}
28228unsafe extern "C" {
28229    pub fn BNRemoteProjectGetUrl(project: *mut BNRemoteProject) -> *mut ::std::os::raw::c_char;
28230}
28231unsafe extern "C" {
28232    pub fn BNRemoteProjectGetCreated(project: *mut BNRemoteProject) -> i64;
28233}
28234unsafe extern "C" {
28235    pub fn BNRemoteProjectGetLastModified(project: *mut BNRemoteProject) -> i64;
28236}
28237unsafe extern "C" {
28238    pub fn BNRemoteProjectGetId(project: *mut BNRemoteProject) -> *mut ::std::os::raw::c_char;
28239}
28240unsafe extern "C" {
28241    pub fn BNRemoteProjectGetName(project: *mut BNRemoteProject) -> *mut ::std::os::raw::c_char;
28242}
28243unsafe extern "C" {
28244    pub fn BNRemoteProjectSetName(
28245        project: *mut BNRemoteProject,
28246        name: *const ::std::os::raw::c_char,
28247    ) -> bool;
28248}
28249unsafe extern "C" {
28250    pub fn BNRemoteProjectGetDescription(
28251        project: *mut BNRemoteProject,
28252    ) -> *mut ::std::os::raw::c_char;
28253}
28254unsafe extern "C" {
28255    pub fn BNRemoteProjectSetDescription(
28256        project: *mut BNRemoteProject,
28257        description: *const ::std::os::raw::c_char,
28258    ) -> bool;
28259}
28260unsafe extern "C" {
28261    pub fn BNRemoteProjectGetReceivedFileCount(project: *mut BNRemoteProject) -> u64;
28262}
28263unsafe extern "C" {
28264    pub fn BNRemoteProjectGetReceivedFolderCount(project: *mut BNRemoteProject) -> u64;
28265}
28266unsafe extern "C" {
28267    pub fn BNRemoteProjectHasPulledFiles(project: *mut BNRemoteProject) -> bool;
28268}
28269unsafe extern "C" {
28270    pub fn BNRemoteProjectHasPulledFolders(project: *mut BNRemoteProject) -> bool;
28271}
28272unsafe extern "C" {
28273    pub fn BNRemoteProjectHasPulledGroupPermissions(project: *mut BNRemoteProject) -> bool;
28274}
28275unsafe extern "C" {
28276    pub fn BNRemoteProjectHasPulledUserPermissions(project: *mut BNRemoteProject) -> bool;
28277}
28278unsafe extern "C" {
28279    pub fn BNRemoteProjectIsAdmin(project: *mut BNRemoteProject) -> bool;
28280}
28281unsafe extern "C" {
28282    pub fn BNRemoteProjectGetFiles(
28283        project: *mut BNRemoteProject,
28284        count: *mut usize,
28285    ) -> *mut *mut BNRemoteFile;
28286}
28287unsafe extern "C" {
28288    pub fn BNRemoteProjectGetFileById(
28289        project: *mut BNRemoteProject,
28290        id: *const ::std::os::raw::c_char,
28291    ) -> *mut BNRemoteFile;
28292}
28293unsafe extern "C" {
28294    pub fn BNRemoteProjectGetFileByName(
28295        project: *mut BNRemoteProject,
28296        name: *const ::std::os::raw::c_char,
28297    ) -> *mut BNRemoteFile;
28298}
28299unsafe extern "C" {
28300    pub fn BNRemoteProjectPullFiles(
28301        project: *mut BNRemoteProject,
28302        progress: BNProgressFunction,
28303        progressContext: *mut ::std::os::raw::c_void,
28304    ) -> bool;
28305}
28306unsafe extern "C" {
28307    pub fn BNRemoteProjectCreateFile(
28308        project: *mut BNRemoteProject,
28309        filename: *const ::std::os::raw::c_char,
28310        contents: *mut u8,
28311        contentsSize: usize,
28312        name: *const ::std::os::raw::c_char,
28313        description: *const ::std::os::raw::c_char,
28314        folder: *mut BNRemoteFolder,
28315        type_: BNRemoteFileType,
28316        progress: BNProgressFunction,
28317        progressContext: *mut ::std::os::raw::c_void,
28318    ) -> *mut BNRemoteFile;
28319}
28320unsafe extern "C" {
28321    pub fn BNRemoteProjectPushFile(
28322        project: *mut BNRemoteProject,
28323        file: *mut BNRemoteFile,
28324        extraFieldKeys: *mut *const ::std::os::raw::c_char,
28325        extraFieldValues: *mut *const ::std::os::raw::c_char,
28326        extraFieldCount: usize,
28327    ) -> bool;
28328}
28329unsafe extern "C" {
28330    pub fn BNRemoteProjectDeleteFile(
28331        project: *mut BNRemoteProject,
28332        file: *mut BNRemoteFile,
28333    ) -> bool;
28334}
28335unsafe extern "C" {
28336    pub fn BNRemoteProjectGetFolders(
28337        project: *mut BNRemoteProject,
28338        count: *mut usize,
28339    ) -> *mut *mut BNRemoteFolder;
28340}
28341unsafe extern "C" {
28342    pub fn BNRemoteProjectGetFolderById(
28343        project: *mut BNRemoteProject,
28344        id: *const ::std::os::raw::c_char,
28345    ) -> *mut BNRemoteFolder;
28346}
28347unsafe extern "C" {
28348    pub fn BNRemoteProjectPullFolders(
28349        project: *mut BNRemoteProject,
28350        progress: BNProgressFunction,
28351        progressContext: *mut ::std::os::raw::c_void,
28352    ) -> bool;
28353}
28354unsafe extern "C" {
28355    pub fn BNRemoteProjectCreateFolder(
28356        project: *mut BNRemoteProject,
28357        name: *const ::std::os::raw::c_char,
28358        description: *const ::std::os::raw::c_char,
28359        parent: *mut BNRemoteFolder,
28360        progress: BNProgressFunction,
28361        progressContext: *mut ::std::os::raw::c_void,
28362    ) -> *mut BNRemoteFolder;
28363}
28364unsafe extern "C" {
28365    pub fn BNRemoteProjectPushFolder(
28366        project: *mut BNRemoteProject,
28367        folder: *mut BNRemoteFolder,
28368        extraFieldKeys: *mut *const ::std::os::raw::c_char,
28369        extraFieldValues: *mut *const ::std::os::raw::c_char,
28370        extraFieldCount: usize,
28371    ) -> bool;
28372}
28373unsafe extern "C" {
28374    pub fn BNRemoteProjectDeleteFolder(
28375        project: *mut BNRemoteProject,
28376        folder: *mut BNRemoteFolder,
28377    ) -> bool;
28378}
28379unsafe extern "C" {
28380    pub fn BNRemoteProjectGetGroupPermissions(
28381        project: *mut BNRemoteProject,
28382        count: *mut usize,
28383    ) -> *mut *mut BNCollaborationPermission;
28384}
28385unsafe extern "C" {
28386    pub fn BNRemoteProjectGetUserPermissions(
28387        project: *mut BNRemoteProject,
28388        count: *mut usize,
28389    ) -> *mut *mut BNCollaborationPermission;
28390}
28391unsafe extern "C" {
28392    pub fn BNRemoteProjectGetPermissionById(
28393        project: *mut BNRemoteProject,
28394        id: *const ::std::os::raw::c_char,
28395    ) -> *mut BNCollaborationPermission;
28396}
28397unsafe extern "C" {
28398    pub fn BNRemoteProjectPullGroupPermissions(
28399        project: *mut BNRemoteProject,
28400        progress: BNProgressFunction,
28401        progressContext: *mut ::std::os::raw::c_void,
28402    ) -> bool;
28403}
28404unsafe extern "C" {
28405    pub fn BNRemoteProjectPullUserPermissions(
28406        project: *mut BNRemoteProject,
28407        progress: BNProgressFunction,
28408        progressContext: *mut ::std::os::raw::c_void,
28409    ) -> bool;
28410}
28411unsafe extern "C" {
28412    pub fn BNRemoteProjectCreateGroupPermission(
28413        project: *mut BNRemoteProject,
28414        groupId: i64,
28415        level: BNCollaborationPermissionLevel,
28416        progress: BNProgressFunction,
28417        progressContext: *mut ::std::os::raw::c_void,
28418    ) -> *mut BNCollaborationPermission;
28419}
28420unsafe extern "C" {
28421    pub fn BNRemoteProjectCreateUserPermission(
28422        project: *mut BNRemoteProject,
28423        userId: *const ::std::os::raw::c_char,
28424        level: BNCollaborationPermissionLevel,
28425        progress: BNProgressFunction,
28426        progressContext: *mut ::std::os::raw::c_void,
28427    ) -> *mut BNCollaborationPermission;
28428}
28429unsafe extern "C" {
28430    pub fn BNRemoteProjectPushPermission(
28431        project: *mut BNRemoteProject,
28432        permission: *mut BNCollaborationPermission,
28433        extraFieldKeys: *mut *const ::std::os::raw::c_char,
28434        extraFieldValues: *mut *const ::std::os::raw::c_char,
28435        extraFieldCount: usize,
28436    ) -> bool;
28437}
28438unsafe extern "C" {
28439    pub fn BNRemoteProjectDeletePermission(
28440        project: *mut BNRemoteProject,
28441        permission: *mut BNCollaborationPermission,
28442    ) -> bool;
28443}
28444unsafe extern "C" {
28445    pub fn BNRemoteProjectCanUserView(
28446        project: *mut BNRemoteProject,
28447        user: *mut BNCollaborationUser,
28448    ) -> bool;
28449}
28450unsafe extern "C" {
28451    pub fn BNRemoteProjectCanUserEdit(
28452        project: *mut BNRemoteProject,
28453        user: *mut BNCollaborationUser,
28454    ) -> bool;
28455}
28456unsafe extern "C" {
28457    pub fn BNRemoteProjectCanUserAdmin(
28458        project: *mut BNRemoteProject,
28459        user: *mut BNCollaborationUser,
28460    ) -> bool;
28461}
28462unsafe extern "C" {
28463    #[doc = " RemoteFile"]
28464    pub fn BNNewRemoteFileReference(file: *mut BNRemoteFile) -> *mut BNRemoteFile;
28465}
28466unsafe extern "C" {
28467    pub fn BNFreeRemoteFile(file: *mut BNRemoteFile);
28468}
28469unsafe extern "C" {
28470    pub fn BNFreeRemoteFileList(files: *mut *mut BNRemoteFile, count: usize);
28471}
28472unsafe extern "C" {
28473    pub fn BNRemoteFileGetCoreFile(file: *mut BNRemoteFile) -> *mut BNProjectFile;
28474}
28475unsafe extern "C" {
28476    pub fn BNRemoteFileGetProject(file: *mut BNRemoteFile) -> *mut BNRemoteProject;
28477}
28478unsafe extern "C" {
28479    pub fn BNRemoteFileGetFolder(file: *mut BNRemoteFile) -> *mut BNRemoteFolder;
28480}
28481unsafe extern "C" {
28482    pub fn BNRemoteFileGetRemote(file: *mut BNRemoteFile) -> *mut BNRemote;
28483}
28484unsafe extern "C" {
28485    pub fn BNRemoteFileGetUrl(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
28486}
28487unsafe extern "C" {
28488    pub fn BNRemoteFileGetChatLogUrl(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
28489}
28490unsafe extern "C" {
28491    pub fn BNRemoteFileGetUserPositionsUrl(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
28492}
28493unsafe extern "C" {
28494    pub fn BNRemoteFileGetId(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
28495}
28496unsafe extern "C" {
28497    pub fn BNRemoteFileGetType(file: *mut BNRemoteFile) -> BNRemoteFileType;
28498}
28499unsafe extern "C" {
28500    pub fn BNRemoteFileGetCreated(file: *mut BNRemoteFile) -> i64;
28501}
28502unsafe extern "C" {
28503    pub fn BNRemoteFileGetCreatedBy(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
28504}
28505unsafe extern "C" {
28506    pub fn BNRemoteFileGetLastModified(file: *mut BNRemoteFile) -> i64;
28507}
28508unsafe extern "C" {
28509    pub fn BNRemoteFileGetLastSnapshot(file: *mut BNRemoteFile) -> i64;
28510}
28511unsafe extern "C" {
28512    pub fn BNRemoteFileGetLastSnapshotBy(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
28513}
28514unsafe extern "C" {
28515    pub fn BNRemoteFileGetLastSnapshotName(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
28516}
28517unsafe extern "C" {
28518    pub fn BNRemoteFileGetHash(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
28519}
28520unsafe extern "C" {
28521    pub fn BNRemoteFileGetName(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
28522}
28523unsafe extern "C" {
28524    pub fn BNRemoteFileGetDescription(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
28525}
28526unsafe extern "C" {
28527    pub fn BNRemoteFileGetMetadata(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
28528}
28529unsafe extern "C" {
28530    pub fn BNRemoteFileGetSize(file: *mut BNRemoteFile) -> u64;
28531}
28532unsafe extern "C" {
28533    pub fn BNRemoteFileHasPulledSnapshots(file: *mut BNRemoteFile) -> bool;
28534}
28535unsafe extern "C" {
28536    pub fn BNRemoteFileSetName(
28537        file: *mut BNRemoteFile,
28538        name: *const ::std::os::raw::c_char,
28539    ) -> bool;
28540}
28541unsafe extern "C" {
28542    pub fn BNRemoteFileSetDescription(
28543        file: *mut BNRemoteFile,
28544        description: *const ::std::os::raw::c_char,
28545    ) -> bool;
28546}
28547unsafe extern "C" {
28548    pub fn BNRemoteFileSetFolder(file: *mut BNRemoteFile, folder: *mut BNRemoteFolder) -> bool;
28549}
28550unsafe extern "C" {
28551    pub fn BNRemoteFileSetMetadata(
28552        file: *mut BNRemoteFile,
28553        metadata: *const ::std::os::raw::c_char,
28554    ) -> bool;
28555}
28556unsafe extern "C" {
28557    pub fn BNRemoteFileGetSnapshots(
28558        file: *mut BNRemoteFile,
28559        count: *mut usize,
28560    ) -> *mut *mut BNCollaborationSnapshot;
28561}
28562unsafe extern "C" {
28563    pub fn BNRemoteFileGetSnapshotById(
28564        file: *mut BNRemoteFile,
28565        id: *const ::std::os::raw::c_char,
28566    ) -> *mut BNCollaborationSnapshot;
28567}
28568unsafe extern "C" {
28569    pub fn BNRemoteFilePullSnapshots(
28570        file: *mut BNRemoteFile,
28571        progress: BNProgressFunction,
28572        progressContext: *mut ::std::os::raw::c_void,
28573    ) -> bool;
28574}
28575unsafe extern "C" {
28576    pub fn BNRemoteFileCreateSnapshot(
28577        file: *mut BNRemoteFile,
28578        name: *const ::std::os::raw::c_char,
28579        contents: *mut u8,
28580        contentsSize: usize,
28581        analysisCacheContents: *mut u8,
28582        analysisCacheContentsSize: usize,
28583        fileContents: *mut u8,
28584        fileContentsSize: usize,
28585        parentIds: *mut *const ::std::os::raw::c_char,
28586        parentIdCount: usize,
28587        progress: BNProgressFunction,
28588        progressContext: *mut ::std::os::raw::c_void,
28589    ) -> *mut BNCollaborationSnapshot;
28590}
28591unsafe extern "C" {
28592    pub fn BNRemoteFileDeleteSnapshot(
28593        file: *mut BNRemoteFile,
28594        snapshot: *mut BNCollaborationSnapshot,
28595    ) -> bool;
28596}
28597unsafe extern "C" {
28598    pub fn BNRemoteFileDownload(
28599        file: *mut BNRemoteFile,
28600        progress: BNProgressFunction,
28601        progressCtxt: *mut ::std::os::raw::c_void,
28602    ) -> bool;
28603}
28604unsafe extern "C" {
28605    pub fn BNRemoteFileDownloadContents(
28606        file: *mut BNRemoteFile,
28607        progress: BNProgressFunction,
28608        progressCtxt: *mut ::std::os::raw::c_void,
28609        data: *mut *mut u8,
28610        size: *mut usize,
28611    ) -> bool;
28612}
28613unsafe extern "C" {
28614    pub fn BNRemoteFileRequestUserPositions(file: *mut BNRemoteFile)
28615    -> *mut ::std::os::raw::c_char;
28616}
28617unsafe extern "C" {
28618    pub fn BNRemoteFileRequestChatLog(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
28619}
28620unsafe extern "C" {
28621    #[doc = " RemoteFolder"]
28622    pub fn BNNewRemoteFolderReference(folder: *mut BNRemoteFolder) -> *mut BNRemoteFolder;
28623}
28624unsafe extern "C" {
28625    pub fn BNFreeRemoteFolder(folder: *mut BNRemoteFolder);
28626}
28627unsafe extern "C" {
28628    pub fn BNFreeRemoteFolderList(folders: *mut *mut BNRemoteFolder, count: usize);
28629}
28630unsafe extern "C" {
28631    pub fn BNRemoteFolderGetCoreFolder(folder: *mut BNRemoteFolder) -> *mut BNProjectFolder;
28632}
28633unsafe extern "C" {
28634    pub fn BNRemoteFolderGetProject(folder: *mut BNRemoteFolder) -> *mut BNRemoteProject;
28635}
28636unsafe extern "C" {
28637    pub fn BNRemoteFolderGetRemote(folder: *mut BNRemoteFolder) -> *mut BNRemote;
28638}
28639unsafe extern "C" {
28640    pub fn BNRemoteFolderGetParent(
28641        folder: *mut BNRemoteFolder,
28642        parent: *mut *mut BNRemoteFolder,
28643    ) -> bool;
28644}
28645unsafe extern "C" {
28646    pub fn BNRemoteFolderGetUrl(folder: *mut BNRemoteFolder) -> *mut ::std::os::raw::c_char;
28647}
28648unsafe extern "C" {
28649    pub fn BNRemoteFolderGetId(folder: *mut BNRemoteFolder) -> *mut ::std::os::raw::c_char;
28650}
28651unsafe extern "C" {
28652    pub fn BNRemoteFolderGetParentId(
28653        folder: *mut BNRemoteFolder,
28654        result: *mut *mut ::std::os::raw::c_char,
28655    ) -> bool;
28656}
28657unsafe extern "C" {
28658    pub fn BNRemoteFolderGetName(folder: *mut BNRemoteFolder) -> *mut ::std::os::raw::c_char;
28659}
28660unsafe extern "C" {
28661    pub fn BNRemoteFolderGetDescription(folder: *mut BNRemoteFolder)
28662    -> *mut ::std::os::raw::c_char;
28663}
28664unsafe extern "C" {
28665    pub fn BNRemoteFolderSetName(
28666        folder: *mut BNRemoteFolder,
28667        name: *const ::std::os::raw::c_char,
28668    ) -> bool;
28669}
28670unsafe extern "C" {
28671    pub fn BNRemoteFolderSetDescription(
28672        folder: *mut BNRemoteFolder,
28673        description: *const ::std::os::raw::c_char,
28674    ) -> bool;
28675}
28676unsafe extern "C" {
28677    pub fn BNRemoteFolderSetParent(
28678        folder: *mut BNRemoteFolder,
28679        parent: *mut BNRemoteFolder,
28680    ) -> bool;
28681}
28682unsafe extern "C" {
28683    #[doc = " CollabPermission"]
28684    pub fn BNNewCollaborationPermissionReference(
28685        permission: *mut BNCollaborationPermission,
28686    ) -> *mut BNCollaborationPermission;
28687}
28688unsafe extern "C" {
28689    pub fn BNFreeCollaborationPermission(permission: *mut BNCollaborationPermission);
28690}
28691unsafe extern "C" {
28692    pub fn BNFreeCollaborationPermissionList(
28693        permissions: *mut *mut BNCollaborationPermission,
28694        count: usize,
28695    );
28696}
28697unsafe extern "C" {
28698    pub fn BNCollaborationPermissionGetProject(
28699        permission: *mut BNCollaborationPermission,
28700    ) -> *mut BNRemoteProject;
28701}
28702unsafe extern "C" {
28703    pub fn BNCollaborationPermissionGetRemote(
28704        permission: *mut BNCollaborationPermission,
28705    ) -> *mut BNRemote;
28706}
28707unsafe extern "C" {
28708    pub fn BNCollaborationPermissionGetId(
28709        permission: *mut BNCollaborationPermission,
28710    ) -> *mut ::std::os::raw::c_char;
28711}
28712unsafe extern "C" {
28713    pub fn BNCollaborationPermissionGetUrl(
28714        permission: *mut BNCollaborationPermission,
28715    ) -> *mut ::std::os::raw::c_char;
28716}
28717unsafe extern "C" {
28718    pub fn BNCollaborationPermissionGetGroupId(permission: *mut BNCollaborationPermission) -> u64;
28719}
28720unsafe extern "C" {
28721    pub fn BNCollaborationPermissionGetGroupName(
28722        permission: *mut BNCollaborationPermission,
28723    ) -> *mut ::std::os::raw::c_char;
28724}
28725unsafe extern "C" {
28726    pub fn BNCollaborationPermissionGetUserId(
28727        permission: *mut BNCollaborationPermission,
28728    ) -> *mut ::std::os::raw::c_char;
28729}
28730unsafe extern "C" {
28731    pub fn BNCollaborationPermissionGetUsername(
28732        permission: *mut BNCollaborationPermission,
28733    ) -> *mut ::std::os::raw::c_char;
28734}
28735unsafe extern "C" {
28736    pub fn BNCollaborationPermissionGetLevel(
28737        permission: *mut BNCollaborationPermission,
28738    ) -> BNCollaborationPermissionLevel;
28739}
28740unsafe extern "C" {
28741    pub fn BNCollaborationPermissionSetLevel(
28742        permission: *mut BNCollaborationPermission,
28743        level: BNCollaborationPermissionLevel,
28744    );
28745}
28746unsafe extern "C" {
28747    pub fn BNCollaborationPermissionCanView(permission: *mut BNCollaborationPermission) -> bool;
28748}
28749unsafe extern "C" {
28750    pub fn BNCollaborationPermissionCanEdit(permission: *mut BNCollaborationPermission) -> bool;
28751}
28752unsafe extern "C" {
28753    pub fn BNCollaborationPermissionCanAdmin(permission: *mut BNCollaborationPermission) -> bool;
28754}
28755unsafe extern "C" {
28756    #[doc = " AnalysisMergeConflict"]
28757    pub fn BNNewAnalysisMergeConflictReference(
28758        conflict: *mut BNAnalysisMergeConflict,
28759    ) -> *mut BNAnalysisMergeConflict;
28760}
28761unsafe extern "C" {
28762    pub fn BNFreeAnalysisMergeConflict(conflict: *mut BNAnalysisMergeConflict);
28763}
28764unsafe extern "C" {
28765    pub fn BNFreeAnalysisMergeConflictList(
28766        conflicts: *mut *mut BNAnalysisMergeConflict,
28767        count: usize,
28768    );
28769}
28770unsafe extern "C" {
28771    pub fn BNAnalysisMergeConflictGetDatabase(
28772        conflict: *mut BNAnalysisMergeConflict,
28773    ) -> *mut BNDatabase;
28774}
28775unsafe extern "C" {
28776    pub fn BNAnalysisMergeConflictGetType(
28777        conflict: *mut BNAnalysisMergeConflict,
28778    ) -> *mut ::std::os::raw::c_char;
28779}
28780unsafe extern "C" {
28781    pub fn BNAnalysisMergeConflictGetKey(
28782        conflict: *mut BNAnalysisMergeConflict,
28783    ) -> *mut ::std::os::raw::c_char;
28784}
28785unsafe extern "C" {
28786    pub fn BNAnalysisMergeConflictGetDataType(
28787        conflict: *mut BNAnalysisMergeConflict,
28788    ) -> BNMergeConflictDataType;
28789}
28790unsafe extern "C" {
28791    pub fn BNAnalysisMergeConflictGetBase(
28792        conflict: *mut BNAnalysisMergeConflict,
28793    ) -> *mut ::std::os::raw::c_char;
28794}
28795unsafe extern "C" {
28796    pub fn BNAnalysisMergeConflictGetFirst(
28797        conflict: *mut BNAnalysisMergeConflict,
28798    ) -> *mut ::std::os::raw::c_char;
28799}
28800unsafe extern "C" {
28801    pub fn BNAnalysisMergeConflictGetSecond(
28802        conflict: *mut BNAnalysisMergeConflict,
28803    ) -> *mut ::std::os::raw::c_char;
28804}
28805unsafe extern "C" {
28806    pub fn BNAnalysisMergeConflictGetBaseFile(
28807        conflict: *mut BNAnalysisMergeConflict,
28808    ) -> *mut BNFileMetadata;
28809}
28810unsafe extern "C" {
28811    pub fn BNAnalysisMergeConflictGetFirstFile(
28812        conflict: *mut BNAnalysisMergeConflict,
28813    ) -> *mut BNFileMetadata;
28814}
28815unsafe extern "C" {
28816    pub fn BNAnalysisMergeConflictGetSecondFile(
28817        conflict: *mut BNAnalysisMergeConflict,
28818    ) -> *mut BNFileMetadata;
28819}
28820unsafe extern "C" {
28821    pub fn BNAnalysisMergeConflictGetBaseSnapshot(
28822        conflict: *mut BNAnalysisMergeConflict,
28823    ) -> *mut BNSnapshot;
28824}
28825unsafe extern "C" {
28826    pub fn BNAnalysisMergeConflictGetFirstSnapshot(
28827        conflict: *mut BNAnalysisMergeConflict,
28828    ) -> *mut BNSnapshot;
28829}
28830unsafe extern "C" {
28831    pub fn BNAnalysisMergeConflictGetSecondSnapshot(
28832        conflict: *mut BNAnalysisMergeConflict,
28833    ) -> *mut BNSnapshot;
28834}
28835unsafe extern "C" {
28836    pub fn BNAnalysisMergeConflictGetPathItemString(
28837        conflict: *mut BNAnalysisMergeConflict,
28838        path: *const ::std::os::raw::c_char,
28839    ) -> *mut ::std::os::raw::c_char;
28840}
28841unsafe extern "C" {
28842    pub fn BNAnalysisMergeConflictGetPathItemSerialized(
28843        conflict: *mut BNAnalysisMergeConflict,
28844        path: *const ::std::os::raw::c_char,
28845    ) -> *mut ::std::os::raw::c_char;
28846}
28847unsafe extern "C" {
28848    pub fn BNAnalysisMergeConflictGetPathItem(
28849        conflict: *mut BNAnalysisMergeConflict,
28850        path: *const ::std::os::raw::c_char,
28851    ) -> *mut ::std::os::raw::c_void;
28852}
28853unsafe extern "C" {
28854    pub fn BNAnalysisMergeConflictSuccess(
28855        conflict: *mut BNAnalysisMergeConflict,
28856        value: *const ::std::os::raw::c_char,
28857    ) -> bool;
28858}
28859unsafe extern "C" {
28860    #[doc = " TypeArchiveMergeConflict"]
28861    pub fn BNNewTypeArchiveMergeConflictReference(
28862        conflict: *mut BNTypeArchiveMergeConflict,
28863    ) -> *mut BNTypeArchiveMergeConflict;
28864}
28865unsafe extern "C" {
28866    pub fn BNFreeTypeArchiveMergeConflict(conflict: *mut BNTypeArchiveMergeConflict);
28867}
28868unsafe extern "C" {
28869    pub fn BNFreeTypeArchiveMergeConflictList(
28870        conflicts: *mut *mut BNTypeArchiveMergeConflict,
28871        count: usize,
28872    );
28873}
28874unsafe extern "C" {
28875    pub fn BNTypeArchiveMergeConflictGetTypeArchive(
28876        conflict: *mut BNTypeArchiveMergeConflict,
28877    ) -> *mut BNTypeArchive;
28878}
28879unsafe extern "C" {
28880    pub fn BNTypeArchiveMergeConflictGetTypeId(
28881        conflict: *mut BNTypeArchiveMergeConflict,
28882    ) -> *mut ::std::os::raw::c_char;
28883}
28884unsafe extern "C" {
28885    pub fn BNTypeArchiveMergeConflictGetBaseSnapshotId(
28886        conflict: *mut BNTypeArchiveMergeConflict,
28887    ) -> *mut ::std::os::raw::c_char;
28888}
28889unsafe extern "C" {
28890    pub fn BNTypeArchiveMergeConflictGetFirstSnapshotId(
28891        conflict: *mut BNTypeArchiveMergeConflict,
28892    ) -> *mut ::std::os::raw::c_char;
28893}
28894unsafe extern "C" {
28895    pub fn BNTypeArchiveMergeConflictGetSecondSnapshotId(
28896        conflict: *mut BNTypeArchiveMergeConflict,
28897    ) -> *mut ::std::os::raw::c_char;
28898}
28899unsafe extern "C" {
28900    pub fn BNTypeArchiveMergeConflictSuccess(
28901        conflict: *mut BNTypeArchiveMergeConflict,
28902        value: *const ::std::os::raw::c_char,
28903    ) -> bool;
28904}
28905unsafe extern "C" {
28906    #[doc = " CollabSnapshot"]
28907    pub fn BNNewCollaborationSnapshotReference(
28908        snapshot: *mut BNCollaborationSnapshot,
28909    ) -> *mut BNCollaborationSnapshot;
28910}
28911unsafe extern "C" {
28912    pub fn BNFreeCollaborationSnapshot(snapshot: *mut BNCollaborationSnapshot);
28913}
28914unsafe extern "C" {
28915    pub fn BNFreeCollaborationSnapshotList(
28916        snapshots: *mut *mut BNCollaborationSnapshot,
28917        count: usize,
28918    );
28919}
28920unsafe extern "C" {
28921    pub fn BNCollaborationSnapshotGetFile(
28922        snapshot: *mut BNCollaborationSnapshot,
28923    ) -> *mut BNRemoteFile;
28924}
28925unsafe extern "C" {
28926    pub fn BNCollaborationSnapshotGetProject(
28927        snapshot: *mut BNCollaborationSnapshot,
28928    ) -> *mut BNRemoteProject;
28929}
28930unsafe extern "C" {
28931    pub fn BNCollaborationSnapshotGetRemote(
28932        snapshot: *mut BNCollaborationSnapshot,
28933    ) -> *mut BNRemote;
28934}
28935unsafe extern "C" {
28936    pub fn BNCollaborationSnapshotGetUrl(
28937        snapshot: *mut BNCollaborationSnapshot,
28938    ) -> *mut ::std::os::raw::c_char;
28939}
28940unsafe extern "C" {
28941    pub fn BNCollaborationSnapshotGetId(
28942        snapshot: *mut BNCollaborationSnapshot,
28943    ) -> *mut ::std::os::raw::c_char;
28944}
28945unsafe extern "C" {
28946    pub fn BNCollaborationSnapshotGetName(
28947        snapshot: *mut BNCollaborationSnapshot,
28948    ) -> *mut ::std::os::raw::c_char;
28949}
28950unsafe extern "C" {
28951    pub fn BNCollaborationSnapshotGetAuthor(
28952        snapshot: *mut BNCollaborationSnapshot,
28953    ) -> *mut ::std::os::raw::c_char;
28954}
28955unsafe extern "C" {
28956    pub fn BNCollaborationSnapshotGetCreated(snapshot: *mut BNCollaborationSnapshot) -> i64;
28957}
28958unsafe extern "C" {
28959    pub fn BNCollaborationSnapshotGetLastModified(snapshot: *mut BNCollaborationSnapshot) -> i64;
28960}
28961unsafe extern "C" {
28962    pub fn BNCollaborationSnapshotGetHash(
28963        snapshot: *mut BNCollaborationSnapshot,
28964    ) -> *mut ::std::os::raw::c_char;
28965}
28966unsafe extern "C" {
28967    pub fn BNCollaborationSnapshotGetSnapshotFileHash(
28968        snapshot: *mut BNCollaborationSnapshot,
28969    ) -> *mut ::std::os::raw::c_char;
28970}
28971unsafe extern "C" {
28972    pub fn BNCollaborationSnapshotHasPulledUndoEntries(
28973        snapshot: *mut BNCollaborationSnapshot,
28974    ) -> bool;
28975}
28976unsafe extern "C" {
28977    pub fn BNCollaborationSnapshotIsFinalized(snapshot: *mut BNCollaborationSnapshot) -> bool;
28978}
28979unsafe extern "C" {
28980    pub fn BNCollaborationSnapshotGetParentIds(
28981        snapshot: *mut BNCollaborationSnapshot,
28982        count: *mut usize,
28983    ) -> *mut *mut ::std::os::raw::c_char;
28984}
28985unsafe extern "C" {
28986    pub fn BNCollaborationSnapshotGetChildIds(
28987        snapshot: *mut BNCollaborationSnapshot,
28988        count: *mut usize,
28989    ) -> *mut *mut ::std::os::raw::c_char;
28990}
28991unsafe extern "C" {
28992    pub fn BNCollaborationSnapshotGetAnalysisCacheBuildId(
28993        snapshot: *mut BNCollaborationSnapshot,
28994    ) -> u64;
28995}
28996unsafe extern "C" {
28997    pub fn BNCollaborationSnapshotGetTitle(
28998        snapshot: *mut BNCollaborationSnapshot,
28999    ) -> *mut ::std::os::raw::c_char;
29000}
29001unsafe extern "C" {
29002    pub fn BNCollaborationSnapshotGetDescription(
29003        snapshot: *mut BNCollaborationSnapshot,
29004    ) -> *mut ::std::os::raw::c_char;
29005}
29006unsafe extern "C" {
29007    pub fn BNCollaborationSnapshotGetAuthorUsername(
29008        snapshot: *mut BNCollaborationSnapshot,
29009    ) -> *mut ::std::os::raw::c_char;
29010}
29011unsafe extern "C" {
29012    pub fn BNCollaborationSnapshotGetParents(
29013        snapshot: *mut BNCollaborationSnapshot,
29014        count: *mut usize,
29015    ) -> *mut *mut BNCollaborationSnapshot;
29016}
29017unsafe extern "C" {
29018    pub fn BNCollaborationSnapshotGetChildren(
29019        snapshot: *mut BNCollaborationSnapshot,
29020        count: *mut usize,
29021    ) -> *mut *mut BNCollaborationSnapshot;
29022}
29023unsafe extern "C" {
29024    pub fn BNCollaborationSnapshotGetUndoEntries(
29025        snapshot: *mut BNCollaborationSnapshot,
29026        count: *mut usize,
29027    ) -> *mut *mut BNCollaborationUndoEntry;
29028}
29029unsafe extern "C" {
29030    pub fn BNCollaborationSnapshotGetUndoEntryById(
29031        snapshot: *mut BNCollaborationSnapshot,
29032        id: u64,
29033    ) -> *mut BNCollaborationUndoEntry;
29034}
29035unsafe extern "C" {
29036    pub fn BNCollaborationSnapshotPullUndoEntries(
29037        snapshot: *mut BNCollaborationSnapshot,
29038        progress: BNProgressFunction,
29039        progressContext: *mut ::std::os::raw::c_void,
29040    ) -> bool;
29041}
29042unsafe extern "C" {
29043    pub fn BNCollaborationSnapshotCreateUndoEntry(
29044        snapshot: *mut BNCollaborationSnapshot,
29045        hasParent: bool,
29046        parent: u64,
29047        data: *const ::std::os::raw::c_char,
29048    ) -> *mut BNCollaborationUndoEntry;
29049}
29050unsafe extern "C" {
29051    pub fn BNCollaborationSnapshotFinalize(snapshot: *mut BNCollaborationSnapshot) -> bool;
29052}
29053unsafe extern "C" {
29054    pub fn BNCollaborationSnapshotDownloadSnapshotFile(
29055        snapshot: *mut BNCollaborationSnapshot,
29056        progress: BNProgressFunction,
29057        progressContext: *mut ::std::os::raw::c_void,
29058        data: *mut *mut u8,
29059        size: *mut usize,
29060    ) -> bool;
29061}
29062unsafe extern "C" {
29063    pub fn BNCollaborationSnapshotDownload(
29064        snapshot: *mut BNCollaborationSnapshot,
29065        progress: BNProgressFunction,
29066        progressContext: *mut ::std::os::raw::c_void,
29067        data: *mut *mut u8,
29068        size: *mut usize,
29069    ) -> bool;
29070}
29071unsafe extern "C" {
29072    pub fn BNCollaborationSnapshotDownloadAnalysisCache(
29073        snapshot: *mut BNCollaborationSnapshot,
29074        progress: BNProgressFunction,
29075        progressContext: *mut ::std::os::raw::c_void,
29076        data: *mut *mut u8,
29077        size: *mut usize,
29078    ) -> bool;
29079}
29080unsafe extern "C" {
29081    #[doc = " CollabUndoEntry"]
29082    pub fn BNNewCollaborationUndoEntryReference(
29083        entry: *mut BNCollaborationUndoEntry,
29084    ) -> *mut BNCollaborationUndoEntry;
29085}
29086unsafe extern "C" {
29087    pub fn BNFreeCollaborationUndoEntry(entry: *mut BNCollaborationUndoEntry);
29088}
29089unsafe extern "C" {
29090    pub fn BNFreeCollaborationUndoEntryList(
29091        entries: *mut *mut BNCollaborationUndoEntry,
29092        count: usize,
29093    );
29094}
29095unsafe extern "C" {
29096    pub fn BNCollaborationUndoEntryGetSnapshot(
29097        undoEntry: *mut BNCollaborationUndoEntry,
29098    ) -> *mut BNCollaborationSnapshot;
29099}
29100unsafe extern "C" {
29101    pub fn BNCollaborationUndoEntryGetFile(
29102        undoEntry: *mut BNCollaborationUndoEntry,
29103    ) -> *mut BNRemoteFile;
29104}
29105unsafe extern "C" {
29106    pub fn BNCollaborationUndoEntryGetProject(
29107        undoEntry: *mut BNCollaborationUndoEntry,
29108    ) -> *mut BNRemoteProject;
29109}
29110unsafe extern "C" {
29111    pub fn BNCollaborationUndoEntryGetRemote(
29112        undoEntry: *mut BNCollaborationUndoEntry,
29113    ) -> *mut BNRemote;
29114}
29115unsafe extern "C" {
29116    pub fn BNCollaborationUndoEntryGetUrl(
29117        undoEntry: *mut BNCollaborationUndoEntry,
29118    ) -> *mut ::std::os::raw::c_char;
29119}
29120unsafe extern "C" {
29121    pub fn BNCollaborationUndoEntryGetId(undoEntry: *mut BNCollaborationUndoEntry) -> u64;
29122}
29123unsafe extern "C" {
29124    pub fn BNCollaborationUndoEntryGetParentId(
29125        undoEntry: *mut BNCollaborationUndoEntry,
29126        parentId: *mut u64,
29127    ) -> bool;
29128}
29129unsafe extern "C" {
29130    pub fn BNCollaborationUndoEntryGetData(
29131        undoEntry: *mut BNCollaborationUndoEntry,
29132        data: *mut *mut ::std::os::raw::c_char,
29133    ) -> bool;
29134}
29135unsafe extern "C" {
29136    pub fn BNCollaborationUndoEntryGetParent(
29137        undoEntry: *mut BNCollaborationUndoEntry,
29138    ) -> *mut BNCollaborationUndoEntry;
29139}
29140unsafe extern "C" {
29141    #[doc = " CollabChangeset"]
29142    pub fn BNNewCollaborationChangesetReference(
29143        changeset: *mut BNCollaborationChangeset,
29144    ) -> *mut BNCollaborationChangeset;
29145}
29146unsafe extern "C" {
29147    pub fn BNFreeCollaborationChangeset(changeset: *mut BNCollaborationChangeset);
29148}
29149unsafe extern "C" {
29150    pub fn BNFreeCollaborationChangesetList(
29151        changesets: *mut *mut BNCollaborationChangeset,
29152        count: usize,
29153    );
29154}
29155unsafe extern "C" {
29156    pub fn BNCollaborationChangesetGetDatabase(
29157        changeset: *mut BNCollaborationChangeset,
29158    ) -> *mut BNDatabase;
29159}
29160unsafe extern "C" {
29161    pub fn BNCollaborationChangesetGetFile(
29162        changeset: *mut BNCollaborationChangeset,
29163    ) -> *mut BNRemoteFile;
29164}
29165unsafe extern "C" {
29166    pub fn BNCollaborationChangesetGetSnapshotIds(
29167        changeset: *mut BNCollaborationChangeset,
29168        count: *mut usize,
29169    ) -> *mut i64;
29170}
29171unsafe extern "C" {
29172    pub fn BNCollaborationChangesetGetAuthor(
29173        changeset: *mut BNCollaborationChangeset,
29174    ) -> *mut BNCollaborationUser;
29175}
29176unsafe extern "C" {
29177    pub fn BNCollaborationChangesetGetName(
29178        changeset: *mut BNCollaborationChangeset,
29179    ) -> *mut ::std::os::raw::c_char;
29180}
29181unsafe extern "C" {
29182    pub fn BNCollaborationChangesetSetName(
29183        changeset: *mut BNCollaborationChangeset,
29184        name: *const ::std::os::raw::c_char,
29185    ) -> bool;
29186}
29187unsafe extern "C" {
29188    #[doc = " AnalysisMergeConflictSplitter"]
29189    pub fn BNRegisterAnalysisMergeConflictSplitter(
29190        callbacks: *mut BNAnalysisMergeConflictSplitterCallbacks,
29191    ) -> *mut BNAnalysisMergeConflictSplitter;
29192}
29193unsafe extern "C" {
29194    pub fn BNGetAnalysisMergeConflictSplitterList(
29195        count: *mut usize,
29196    ) -> *mut *mut BNAnalysisMergeConflictSplitter;
29197}
29198unsafe extern "C" {
29199    pub fn BNFreeAnalysisMergeConflictSplitterList(
29200        splitters: *mut *mut BNAnalysisMergeConflictSplitter,
29201        count: usize,
29202    );
29203}
29204unsafe extern "C" {
29205    pub fn BNAnalysisMergeConflictSplitterGetName(
29206        splitter: *mut BNAnalysisMergeConflictSplitter,
29207    ) -> *mut ::std::os::raw::c_char;
29208}
29209unsafe extern "C" {
29210    pub fn BNAnalysisMergeConflictSplitterCanSplit(
29211        splitter: *mut BNAnalysisMergeConflictSplitter,
29212        key: *const ::std::os::raw::c_char,
29213        conflict: *mut BNAnalysisMergeConflict,
29214    ) -> bool;
29215}
29216unsafe extern "C" {
29217    pub fn BNAnalysisMergeConflictSplitterSplit(
29218        splitter: *mut BNAnalysisMergeConflictSplitter,
29219        originalKey: *const ::std::os::raw::c_char,
29220        originalConflict: *mut BNAnalysisMergeConflict,
29221        result: *mut BNKeyValueStore,
29222        newKeys: *mut *mut *mut ::std::os::raw::c_char,
29223        newConflicts: *mut *mut *mut BNAnalysisMergeConflict,
29224        newCount: *mut usize,
29225    ) -> bool;
29226}
29227unsafe extern "C" {
29228    #[doc = " High level token emitter"]
29229    pub fn BNNewHighLevelILTokenEmitterReference(
29230        emitter: *mut BNHighLevelILTokenEmitter,
29231    ) -> *mut BNHighLevelILTokenEmitter;
29232}
29233unsafe extern "C" {
29234    pub fn BNHighLevelILTokenPrependCollapseBlankIndicator(emitter: *mut BNHighLevelILTokenEmitter);
29235}
29236unsafe extern "C" {
29237    pub fn BNHighLevelILTokenPrependCollapseIndicator(
29238        emitter: *mut BNHighLevelILTokenEmitter,
29239        context: BNInstructionTextTokenContext,
29240        hash: u64,
29241    );
29242}
29243unsafe extern "C" {
29244    pub fn BNHighLevelILTokenEmitterHasCollapsableRegions(
29245        emitter: *mut BNHighLevelILTokenEmitter,
29246    ) -> bool;
29247}
29248unsafe extern "C" {
29249    pub fn BNHighLevelILTokenEmitterSetHasCollapsableRegions(
29250        emitter: *mut BNHighLevelILTokenEmitter,
29251        state: bool,
29252    );
29253}
29254unsafe extern "C" {
29255    pub fn BNFreeHighLevelILTokenEmitter(emitter: *mut BNHighLevelILTokenEmitter);
29256}
29257unsafe extern "C" {
29258    pub fn BNHighLevelILTokenEmitterAppend(
29259        emitter: *mut BNHighLevelILTokenEmitter,
29260        token: *mut BNInstructionTextToken,
29261    );
29262}
29263unsafe extern "C" {
29264    pub fn BNHighLevelILTokenEmitterInitLine(emitter: *mut BNHighLevelILTokenEmitter);
29265}
29266unsafe extern "C" {
29267    pub fn BNHighLevelILTokenEmitterNewLine(emitter: *mut BNHighLevelILTokenEmitter);
29268}
29269unsafe extern "C" {
29270    pub fn BNHighLevelILTokenEmitterIncreaseIndent(emitter: *mut BNHighLevelILTokenEmitter);
29271}
29272unsafe extern "C" {
29273    pub fn BNHighLevelILTokenEmitterDecreaseIndent(emitter: *mut BNHighLevelILTokenEmitter);
29274}
29275unsafe extern "C" {
29276    pub fn BNHighLevelILTokenEmitterScopeSeparator(emitter: *mut BNHighLevelILTokenEmitter);
29277}
29278unsafe extern "C" {
29279    pub fn BNHighLevelILTokenEmitterBeginScope(
29280        emitter: *mut BNHighLevelILTokenEmitter,
29281        type_: BNScopeType,
29282    );
29283}
29284unsafe extern "C" {
29285    pub fn BNHighLevelILTokenEmitterEndScope(
29286        emitter: *mut BNHighLevelILTokenEmitter,
29287        type_: BNScopeType,
29288    );
29289}
29290unsafe extern "C" {
29291    pub fn BNHighLevelILTokenEmitterScopeContinuation(
29292        emitter: *mut BNHighLevelILTokenEmitter,
29293        forceSameLine: bool,
29294    );
29295}
29296unsafe extern "C" {
29297    pub fn BNHighLevelILTokenEmitterFinalizeScope(emitter: *mut BNHighLevelILTokenEmitter);
29298}
29299unsafe extern "C" {
29300    pub fn BNHighLevelILTokenEmitterNoIndentForThisLine(emitter: *mut BNHighLevelILTokenEmitter);
29301}
29302unsafe extern "C" {
29303    pub fn BNHighLevelILTokenEmitterBeginForceZeroConfidence(
29304        emitter: *mut BNHighLevelILTokenEmitter,
29305    );
29306}
29307unsafe extern "C" {
29308    pub fn BNHighLevelILTokenEmitterEndForceZeroConfidence(emitter: *mut BNHighLevelILTokenEmitter);
29309}
29310unsafe extern "C" {
29311    pub fn BNHighLevelILTokenEmitterSetCurrentExpr(
29312        emitter: *mut BNHighLevelILTokenEmitter,
29313        expr: BNTokenEmitterExpr,
29314    ) -> BNTokenEmitterExpr;
29315}
29316unsafe extern "C" {
29317    pub fn BNHighLevelILTokenEmitterRestoreCurrentExpr(
29318        emitter: *mut BNHighLevelILTokenEmitter,
29319        expr: BNTokenEmitterExpr,
29320    );
29321}
29322unsafe extern "C" {
29323    pub fn BNHighLevelILTokenEmitterFinalize(emitter: *mut BNHighLevelILTokenEmitter);
29324}
29325unsafe extern "C" {
29326    pub fn BNHighLevelILTokenEmitterAppendOpenParen(emitter: *mut BNHighLevelILTokenEmitter);
29327}
29328unsafe extern "C" {
29329    pub fn BNHighLevelILTokenEmitterAppendCloseParen(emitter: *mut BNHighLevelILTokenEmitter);
29330}
29331unsafe extern "C" {
29332    pub fn BNHighLevelILTokenEmitterAppendOpenBracket(emitter: *mut BNHighLevelILTokenEmitter);
29333}
29334unsafe extern "C" {
29335    pub fn BNHighLevelILTokenEmitterAppendCloseBracket(emitter: *mut BNHighLevelILTokenEmitter);
29336}
29337unsafe extern "C" {
29338    pub fn BNHighLevelILTokenEmitterAppendOpenBrace(emitter: *mut BNHighLevelILTokenEmitter);
29339}
29340unsafe extern "C" {
29341    pub fn BNHighLevelILTokenEmitterAppendCloseBrace(emitter: *mut BNHighLevelILTokenEmitter);
29342}
29343unsafe extern "C" {
29344    pub fn BNHighLevelILTokenEmitterAppendSemicolon(emitter: *mut BNHighLevelILTokenEmitter);
29345}
29346unsafe extern "C" {
29347    pub fn BNHighLevelILTokenEmitterSetBraceRequirement(
29348        emitter: *mut BNHighLevelILTokenEmitter,
29349        required: BNBraceRequirement,
29350    );
29351}
29352unsafe extern "C" {
29353    pub fn BNHighLevelILTokenEmitterSetBracesAroundSwitchCases(
29354        emitter: *mut BNHighLevelILTokenEmitter,
29355        braces: bool,
29356    );
29357}
29358unsafe extern "C" {
29359    pub fn BNHighLevelILTokenEmitterSetDefaultBracesOnSameLine(
29360        emitter: *mut BNHighLevelILTokenEmitter,
29361        sameLine: bool,
29362    );
29363}
29364unsafe extern "C" {
29365    pub fn BNHighLevelILTokenEmitterSetSimpleScopeAllowed(
29366        emitter: *mut BNHighLevelILTokenEmitter,
29367        allowed: bool,
29368    );
29369}
29370unsafe extern "C" {
29371    pub fn BNHighLevelILTokenEmitterGetBraceRequirement(
29372        emitter: *mut BNHighLevelILTokenEmitter,
29373    ) -> BNBraceRequirement;
29374}
29375unsafe extern "C" {
29376    pub fn BNHighLevelILTokenEmitterHasBracesAroundSwitchCases(
29377        emitter: *mut BNHighLevelILTokenEmitter,
29378    ) -> bool;
29379}
29380unsafe extern "C" {
29381    pub fn BNHighLevelILTokenEmitterGetDefaultBracesOnSameLine(
29382        emitter: *mut BNHighLevelILTokenEmitter,
29383    ) -> bool;
29384}
29385unsafe extern "C" {
29386    pub fn BNHighLevelILTokenEmitterGetMaxTernarySimplficationTokens(
29387        emitter: *mut BNHighLevelILTokenEmitter,
29388    ) -> usize;
29389}
29390unsafe extern "C" {
29391    pub fn BNHighLevelILTokenEmitterIsSimpleScopeAllowed(
29392        emitter: *mut BNHighLevelILTokenEmitter,
29393    ) -> bool;
29394}
29395unsafe extern "C" {
29396    pub fn BNHighLevelILTokenEmitterGetCurrentTokens(
29397        emitter: *mut BNHighLevelILTokenEmitter,
29398        tokenCount: *mut usize,
29399    ) -> *mut BNInstructionTextToken;
29400}
29401unsafe extern "C" {
29402    pub fn BNHighLevelILTokenEmitterSetCurrentTokens(
29403        emitter: *mut BNHighLevelILTokenEmitter,
29404        tokens: *mut BNInstructionTextToken,
29405        tokenCount: usize,
29406    );
29407}
29408unsafe extern "C" {
29409    pub fn BNHighLevelILTokenEmitterGetLines(
29410        emitter: *mut BNHighLevelILTokenEmitter,
29411        count: *mut usize,
29412    ) -> *mut BNDisassemblyTextLine;
29413}
29414unsafe extern "C" {
29415    pub fn BNAddHighLevelILSizeToken(
29416        size: usize,
29417        type_: BNInstructionTextTokenType,
29418        tokens: *mut BNHighLevelILTokenEmitter,
29419    );
29420}
29421unsafe extern "C" {
29422    pub fn BNAddHighLevelILFloatSizeToken(
29423        size: usize,
29424        type_: BNInstructionTextTokenType,
29425        tokens: *mut BNHighLevelILTokenEmitter,
29426    );
29427}
29428unsafe extern "C" {
29429    pub fn BNAddHighLevelILVarTextToken(
29430        func: *mut BNHighLevelILFunction,
29431        var: *const BNVariable,
29432        tokens: *mut BNHighLevelILTokenEmitter,
29433        exprIndex: usize,
29434        size: usize,
29435    );
29436}
29437unsafe extern "C" {
29438    pub fn BNAddHighLevelILIntegerTextToken(
29439        func: *mut BNHighLevelILFunction,
29440        exprIndex: usize,
29441        val: i64,
29442        size: usize,
29443        tokens: *mut BNHighLevelILTokenEmitter,
29444    );
29445}
29446unsafe extern "C" {
29447    pub fn BNAddHighLevelILArrayIndexToken(
29448        func: *mut BNHighLevelILFunction,
29449        exprIndex: usize,
29450        val: i64,
29451        size: usize,
29452        tokens: *mut BNHighLevelILTokenEmitter,
29453        address: u64,
29454    );
29455}
29456unsafe extern "C" {
29457    pub fn BNAddHighLevelILPointerTextToken(
29458        func: *mut BNHighLevelILFunction,
29459        exprIndex: usize,
29460        val: i64,
29461        tokens: *mut BNHighLevelILTokenEmitter,
29462        settings: *mut BNDisassemblySettings,
29463        symbolDisplay: BNSymbolDisplayType,
29464        precedence: BNOperatorPrecedence,
29465        allowShortString: bool,
29466    ) -> BNSymbolDisplayResult;
29467}
29468unsafe extern "C" {
29469    pub fn BNAddHighLevelILConstantTextToken(
29470        func: *mut BNHighLevelILFunction,
29471        exprIndex: usize,
29472        val: i64,
29473        size: usize,
29474        tokens: *mut BNHighLevelILTokenEmitter,
29475        settings: *mut BNDisassemblySettings,
29476        precedence: BNOperatorPrecedence,
29477    );
29478}
29479unsafe extern "C" {
29480    pub fn BNAddNamesForOuterStructureMembers(
29481        data: *mut BNBinaryView,
29482        type_: *mut BNType,
29483        hlil: *mut BNHighLevelILFunction,
29484        varExpr: usize,
29485        nameCount: *mut usize,
29486    ) -> *mut *mut ::std::os::raw::c_char;
29487}
29488unsafe extern "C" {
29489    pub fn BNZeroExtend(value: i64, sourceSize: usize, destSize: usize) -> i64;
29490}
29491unsafe extern "C" {
29492    pub fn BNSignExtend(value: i64, sourceSize: usize, destSize: usize) -> i64;
29493}
29494unsafe extern "C" {
29495    pub fn BNMaskToSize(value: i64, size: usize) -> i64;
29496}
29497unsafe extern "C" {
29498    pub fn BNGetMaskForSize(size: usize) -> i64;
29499}
29500unsafe extern "C" {
29501    #[doc = " FirmwareNinja"]
29502    pub fn BNCreateFirmwareNinja(view: *mut BNBinaryView) -> *mut BNFirmwareNinja;
29503}
29504unsafe extern "C" {
29505    pub fn BNFreeFirmwareNinja(fn_: *mut BNFirmwareNinja);
29506}
29507unsafe extern "C" {
29508    pub fn BNFirmwareNinjaStoreCustomDevice(
29509        fn_: *mut BNFirmwareNinja,
29510        name: *const ::std::os::raw::c_char,
29511        start: u64,
29512        end: u64,
29513        info: *const ::std::os::raw::c_char,
29514    ) -> bool;
29515}
29516unsafe extern "C" {
29517    pub fn BNFirmwareNinjaRemoveCustomDevice(
29518        fn_: *mut BNFirmwareNinja,
29519        name: *const ::std::os::raw::c_char,
29520    ) -> bool;
29521}
29522unsafe extern "C" {
29523    pub fn BNFirmwareNinjaQueryCustomDevices(
29524        fn_: *mut BNFirmwareNinja,
29525        devices: *mut *mut BNFirmwareNinjaDevice,
29526    ) -> ::std::os::raw::c_int;
29527}
29528unsafe extern "C" {
29529    pub fn BNFirmwareNinjaFreeDevices(
29530        devices: *mut BNFirmwareNinjaDevice,
29531        size: ::std::os::raw::c_int,
29532    );
29533}
29534unsafe extern "C" {
29535    pub fn BNFirmwareNinjaQueryBoardNamesForArchitecture(
29536        fn_: *mut BNFirmwareNinja,
29537        arch: *mut BNArchitecture,
29538        boards: *mut *mut *mut ::std::os::raw::c_char,
29539    ) -> ::std::os::raw::c_int;
29540}
29541unsafe extern "C" {
29542    pub fn BNFirmwareNinjaFreeBoardNames(
29543        boards: *mut *mut ::std::os::raw::c_char,
29544        size: ::std::os::raw::c_int,
29545    );
29546}
29547unsafe extern "C" {
29548    pub fn BNFirmwareNinjaQueryBoardDevices(
29549        fn_: *mut BNFirmwareNinja,
29550        arch: *mut BNArchitecture,
29551        board: *const ::std::os::raw::c_char,
29552        devices: *mut *mut BNFirmwareNinjaDevice,
29553    ) -> ::std::os::raw::c_int;
29554}
29555unsafe extern "C" {
29556    pub fn BNFirmwareNinjaFindSectionsWithEntropy(
29557        fn_: *mut BNFirmwareNinja,
29558        sections: *mut *mut BNFirmwareNinjaSection,
29559        highCodeEntropyThreshold: f32,
29560        lowCodeEntropyThreshold: f32,
29561        blockSize: usize,
29562        mode: BNFirmwareNinjaSectionAnalysisMode,
29563    ) -> ::std::os::raw::c_int;
29564}
29565unsafe extern "C" {
29566    pub fn BNFirmwareNinjaFreeSections(
29567        sections: *mut BNFirmwareNinjaSection,
29568        size: ::std::os::raw::c_int,
29569    );
29570}
29571unsafe extern "C" {
29572    pub fn BNFirmwareNinjaGetFunctionMemoryAccesses(
29573        fn_: *mut BNFirmwareNinja,
29574        fma: *mut *mut *mut BNFirmwareNinjaFunctionMemoryAccesses,
29575        progress: BNProgressFunction,
29576        progressContext: *mut ::std::os::raw::c_void,
29577    ) -> ::std::os::raw::c_int;
29578}
29579unsafe extern "C" {
29580    pub fn BNFirmwareNinjaFreeFunctionMemoryAccesses(
29581        fma: *mut *mut BNFirmwareNinjaFunctionMemoryAccesses,
29582        size: ::std::os::raw::c_int,
29583    );
29584}
29585unsafe extern "C" {
29586    pub fn BNFirmwareNinjaStoreFunctionMemoryAccessesToMetadata(
29587        fn_: *mut BNFirmwareNinja,
29588        fma: *mut *mut BNFirmwareNinjaFunctionMemoryAccesses,
29589        size: ::std::os::raw::c_int,
29590    );
29591}
29592unsafe extern "C" {
29593    pub fn BNFirmwareNinjaQueryFunctionMemoryAccessesFromMetadata(
29594        fn_: *mut BNFirmwareNinja,
29595        fma: *mut *mut *mut BNFirmwareNinjaFunctionMemoryAccesses,
29596    ) -> ::std::os::raw::c_int;
29597}
29598unsafe extern "C" {
29599    pub fn BNFirmwareNinjaGetBoardDeviceAccesses(
29600        fn_: *mut BNFirmwareNinja,
29601        fma: *mut *mut BNFirmwareNinjaFunctionMemoryAccesses,
29602        size: ::std::os::raw::c_int,
29603        accesses: *mut *mut BNFirmwareNinjaDeviceAccesses,
29604        arch: *mut BNArchitecture,
29605    ) -> ::std::os::raw::c_int;
29606}
29607unsafe extern "C" {
29608    pub fn BNFirmwareNinjaFreeBoardDeviceAccesses(
29609        accesses: *mut BNFirmwareNinjaDeviceAccesses,
29610        size: ::std::os::raw::c_int,
29611    );
29612}
29613unsafe extern "C" {
29614    pub fn BNFirmwareNinjaGetMemoryRegionReferenceTree(
29615        fn_: *mut BNFirmwareNinja,
29616        start: u64,
29617        end: u64,
29618        fma: *mut *mut BNFirmwareNinjaFunctionMemoryAccesses,
29619        size: ::std::os::raw::c_int,
29620        value: *mut u64,
29621    ) -> *mut BNFirmwareNinjaReferenceNode;
29622}
29623unsafe extern "C" {
29624    pub fn BNFirmwareNinjaGetAddressReferenceTree(
29625        fn_: *mut BNFirmwareNinja,
29626        address: u64,
29627        fma: *mut *mut BNFirmwareNinjaFunctionMemoryAccesses,
29628        size: ::std::os::raw::c_int,
29629        value: *mut u64,
29630    ) -> *mut BNFirmwareNinjaReferenceNode;
29631}
29632unsafe extern "C" {
29633    pub fn BNFirmwareNinjaQueryRelationships(
29634        fn_: *mut BNFirmwareNinja,
29635        count: *mut usize,
29636    ) -> *mut *mut BNFirmwareNinjaRelationship;
29637}
29638unsafe extern "C" {
29639    pub fn BNFirmwareNinjaFreeRelationships(
29640        relationships: *mut *mut BNFirmwareNinjaRelationship,
29641        count: usize,
29642    );
29643}
29644unsafe extern "C" {
29645    pub fn BNFirmwareNinjaAddRelationship(
29646        fn_: *mut BNFirmwareNinja,
29647        rel: *mut BNFirmwareNinjaRelationship,
29648    );
29649}
29650unsafe extern "C" {
29651    pub fn BNFirmwareNinjaGetRelationshipByGuid(
29652        fn_: *mut BNFirmwareNinja,
29653        guid: *const ::std::os::raw::c_char,
29654    ) -> *mut BNFirmwareNinjaRelationship;
29655}
29656unsafe extern "C" {
29657    pub fn BNFirmwareNinjaRemoveRelationshipByGuid(
29658        fn_: *mut BNFirmwareNinja,
29659        guid: *const ::std::os::raw::c_char,
29660    );
29661}
29662unsafe extern "C" {
29663    pub fn BNFirmwareNinjaReferenceNodeIsFunction(node: *mut BNFirmwareNinjaReferenceNode) -> bool;
29664}
29665unsafe extern "C" {
29666    pub fn BNFirmwareNinjaReferenceNodeIsDataVariable(
29667        node: *mut BNFirmwareNinjaReferenceNode,
29668    ) -> bool;
29669}
29670unsafe extern "C" {
29671    pub fn BNFirmwareNinjaReferenceNodeHasChildren(node: *mut BNFirmwareNinjaReferenceNode)
29672    -> bool;
29673}
29674unsafe extern "C" {
29675    pub fn BNFirmwareNinjaReferenceNodeGetFunction(
29676        node: *mut BNFirmwareNinjaReferenceNode,
29677    ) -> *mut BNFunction;
29678}
29679unsafe extern "C" {
29680    pub fn BNFirmwareNinjaReferenceNodeGetDataVariable(
29681        node: *mut BNFirmwareNinjaReferenceNode,
29682        dataVariable: *mut BNDataVariable,
29683    ) -> bool;
29684}
29685unsafe extern "C" {
29686    pub fn BNFirmwareNinjaReferenceNodeGetChildren(
29687        parent: *mut BNFirmwareNinjaReferenceNode,
29688        count: *mut usize,
29689    ) -> *mut *mut BNFirmwareNinjaReferenceNode;
29690}
29691unsafe extern "C" {
29692    pub fn BNFreeFirmwareNinjaReferenceNode(node: *mut BNFirmwareNinjaReferenceNode);
29693}
29694unsafe extern "C" {
29695    pub fn BNNewFirmwareNinjaReferenceNodeReference(
29696        node: *mut BNFirmwareNinjaReferenceNode,
29697    ) -> *mut BNFirmwareNinjaReferenceNode;
29698}
29699unsafe extern "C" {
29700    pub fn BNFreeFirmwareNinjaReferenceNodes(
29701        nodes: *mut *mut BNFirmwareNinjaReferenceNode,
29702        count: usize,
29703    );
29704}
29705unsafe extern "C" {
29706    pub fn BNCreateFirmwareNinjaRelationship(
29707        view: *mut BNBinaryView,
29708    ) -> *mut BNFirmwareNinjaRelationship;
29709}
29710unsafe extern "C" {
29711    pub fn BNFreeFirmwareNinjaRelationship(rel: *mut BNFirmwareNinjaRelationship);
29712}
29713unsafe extern "C" {
29714    pub fn BNNewFirmwareNinjaRelationshipReference(
29715        rel: *mut BNFirmwareNinjaRelationship,
29716    ) -> *mut BNFirmwareNinjaRelationship;
29717}
29718unsafe extern "C" {
29719    pub fn BNFirmwareNinjaRelationshipSetPrimaryAddress(
29720        rel: *mut BNFirmwareNinjaRelationship,
29721        address: u64,
29722    );
29723}
29724unsafe extern "C" {
29725    pub fn BNFirmwareNinjaRelationshipSetPrimaryDataVariable(
29726        rel: *mut BNFirmwareNinjaRelationship,
29727        dataVariableAddress: u64,
29728    );
29729}
29730unsafe extern "C" {
29731    pub fn BNFirmwareNinjaRelationshipSetPrimaryFunction(
29732        rel: *mut BNFirmwareNinjaRelationship,
29733        function: *mut BNFunction,
29734    );
29735}
29736unsafe extern "C" {
29737    pub fn BNFirmwareNinjaRelationshipPrimaryIsDataVariable(
29738        rel: *mut BNFirmwareNinjaRelationship,
29739    ) -> bool;
29740}
29741unsafe extern "C" {
29742    pub fn BNFirmwareNinjaRelationshipPrimaryIsFunction(
29743        rel: *mut BNFirmwareNinjaRelationship,
29744    ) -> bool;
29745}
29746unsafe extern "C" {
29747    pub fn BNFirmwareNinjaRelationshipPrimaryIsAddress(
29748        rel: *mut BNFirmwareNinjaRelationship,
29749    ) -> bool;
29750}
29751unsafe extern "C" {
29752    pub fn BNFirmwareNinjaRelationshipGetPrimaryDataVariable(
29753        rel: *mut BNFirmwareNinjaRelationship,
29754        dataVariable: *mut BNDataVariable,
29755    ) -> bool;
29756}
29757unsafe extern "C" {
29758    pub fn BNFirmwareNinjaRelationshipGetPrimaryFunction(
29759        rel: *mut BNFirmwareNinjaRelationship,
29760    ) -> *mut BNFunction;
29761}
29762unsafe extern "C" {
29763    pub fn BNFirmwareNinjaRelationshipGetPrimaryAddress(
29764        rel: *mut BNFirmwareNinjaRelationship,
29765        result: *mut u64,
29766    ) -> bool;
29767}
29768unsafe extern "C" {
29769    pub fn BNFirmwareNinjaRelationshipSetSecondaryExternalAddress(
29770        rel: *mut BNFirmwareNinjaRelationship,
29771        projectFile: *mut BNProjectFile,
29772        address: u64,
29773    );
29774}
29775unsafe extern "C" {
29776    pub fn BNFirmwareNinjaRelationshipSetSecondaryExternalSymbol(
29777        rel: *mut BNFirmwareNinjaRelationship,
29778        projectFile: *mut BNProjectFile,
29779        symbol: *const ::std::os::raw::c_char,
29780    );
29781}
29782unsafe extern "C" {
29783    pub fn BNFirmwareNinjaRelationshipSetSecondaryAddress(
29784        rel: *mut BNFirmwareNinjaRelationship,
29785        address: u64,
29786    );
29787}
29788unsafe extern "C" {
29789    pub fn BNFirmwareNinjaRelationshipSetSecondaryDataVariable(
29790        rel: *mut BNFirmwareNinjaRelationship,
29791        dataVariableAddress: u64,
29792    );
29793}
29794unsafe extern "C" {
29795    pub fn BNFirmwareNinjaRelationshipSetSecondaryFunction(
29796        rel: *mut BNFirmwareNinjaRelationship,
29797        function: *mut BNFunction,
29798    );
29799}
29800unsafe extern "C" {
29801    pub fn BNFirmwareNinjaRelationshipSecondaryIsDataVariable(
29802        rel: *mut BNFirmwareNinjaRelationship,
29803    ) -> bool;
29804}
29805unsafe extern "C" {
29806    pub fn BNFirmwareNinjaRelationshipSecondaryIsFunction(
29807        rel: *mut BNFirmwareNinjaRelationship,
29808    ) -> bool;
29809}
29810unsafe extern "C" {
29811    pub fn BNFirmwareNinjaRelationshipSecondaryIsAddress(
29812        rel: *mut BNFirmwareNinjaRelationship,
29813    ) -> bool;
29814}
29815unsafe extern "C" {
29816    pub fn BNFirmwareNinjaRelationshipSecondaryIsExternalAddress(
29817        rel: *mut BNFirmwareNinjaRelationship,
29818    ) -> bool;
29819}
29820unsafe extern "C" {
29821    pub fn BNFirmwareNinjaRelationshipSecondaryIsExternalSymbol(
29822        rel: *mut BNFirmwareNinjaRelationship,
29823    ) -> bool;
29824}
29825unsafe extern "C" {
29826    pub fn BNFirmwareNinjaRelationshipGetSecondaryExternalProjectFile(
29827        rel: *mut BNFirmwareNinjaRelationship,
29828    ) -> *mut BNProjectFile;
29829}
29830unsafe extern "C" {
29831    pub fn BNFirmwareNinjaRelationshipGetSecondaryAddress(
29832        rel: *mut BNFirmwareNinjaRelationship,
29833        result: *mut u64,
29834    ) -> bool;
29835}
29836unsafe extern "C" {
29837    pub fn BNFirmwareNinjaRelationshipGetSecondaryDataVariable(
29838        rel: *mut BNFirmwareNinjaRelationship,
29839        dataVariable: *mut BNDataVariable,
29840    ) -> bool;
29841}
29842unsafe extern "C" {
29843    pub fn BNFirmwareNinjaRelationshipGetSecondaryFunction(
29844        rel: *mut BNFirmwareNinjaRelationship,
29845    ) -> *mut BNFunction;
29846}
29847unsafe extern "C" {
29848    pub fn BNFirmwareNinjaRelationshipGetSecondaryExternalSymbol(
29849        rel: *mut BNFirmwareNinjaRelationship,
29850    ) -> *mut ::std::os::raw::c_char;
29851}
29852unsafe extern "C" {
29853    pub fn BNFirmwareNinjaRelationshipSetDescription(
29854        rel: *mut BNFirmwareNinjaRelationship,
29855        description: *const ::std::os::raw::c_char,
29856    );
29857}
29858unsafe extern "C" {
29859    pub fn BNFirmwareNinjaRelationshipGetDescription(
29860        rel: *mut BNFirmwareNinjaRelationship,
29861    ) -> *mut ::std::os::raw::c_char;
29862}
29863unsafe extern "C" {
29864    pub fn BNFirmwareNinjaRelationshipSetProvenance(
29865        rel: *mut BNFirmwareNinjaRelationship,
29866        provenance: *const ::std::os::raw::c_char,
29867    );
29868}
29869unsafe extern "C" {
29870    pub fn BNFirmwareNinjaRelationshipGetProvenance(
29871        rel: *mut BNFirmwareNinjaRelationship,
29872    ) -> *mut ::std::os::raw::c_char;
29873}
29874unsafe extern "C" {
29875    pub fn BNFirmwareNinjaRelationshipGetGuid(
29876        rel: *mut BNFirmwareNinjaRelationship,
29877    ) -> *mut ::std::os::raw::c_char;
29878}
29879unsafe extern "C" {
29880    #[doc = " Line formatters"]
29881    pub fn BNRegisterLineFormatter(
29882        name: *const ::std::os::raw::c_char,
29883        callbacks: *mut BNCustomLineFormatter,
29884    ) -> *mut BNLineFormatter;
29885}
29886unsafe extern "C" {
29887    pub fn BNGetLineFormatterList(count: *mut usize) -> *mut *mut BNLineFormatter;
29888}
29889unsafe extern "C" {
29890    pub fn BNFreeLineFormatterList(formatters: *mut *mut BNLineFormatter);
29891}
29892unsafe extern "C" {
29893    pub fn BNGetLineFormatterByName(name: *const ::std::os::raw::c_char) -> *mut BNLineFormatter;
29894}
29895unsafe extern "C" {
29896    pub fn BNGetDefaultLineFormatter() -> *mut BNLineFormatter;
29897}
29898unsafe extern "C" {
29899    pub fn BNGetLineFormatterName(formatter: *mut BNLineFormatter) -> *mut ::std::os::raw::c_char;
29900}
29901unsafe extern "C" {
29902    pub fn BNFormatLines(
29903        formatter: *mut BNLineFormatter,
29904        inLines: *mut BNDisassemblyTextLine,
29905        inCount: usize,
29906        settings: *const BNLineFormatterSettings,
29907        outCount: *mut usize,
29908    ) -> *mut BNDisassemblyTextLine;
29909}
29910unsafe extern "C" {
29911    pub fn BNGetDefaultLineFormatterSettings(
29912        settings: *mut BNDisassemblySettings,
29913        func: *mut BNHighLevelILFunction,
29914    ) -> *mut BNLineFormatterSettings;
29915}
29916unsafe extern "C" {
29917    pub fn BNGetLanguageRepresentationLineFormatterSettings(
29918        settings: *mut BNDisassemblySettings,
29919        func: *mut BNLanguageRepresentationFunction,
29920    ) -> *mut BNLineFormatterSettings;
29921}
29922unsafe extern "C" {
29923    pub fn BNFreeLineFormatterSettings(settings: *mut BNLineFormatterSettings);
29924}
29925unsafe extern "C" {
29926    #[doc = " Render Layers"]
29927    pub fn BNRegisterRenderLayer(
29928        name: *const ::std::os::raw::c_char,
29929        callbacks: *mut BNRenderLayerCallbacks,
29930        enableState: BNRenderLayerDefaultEnableState,
29931    ) -> *mut BNRenderLayer;
29932}
29933unsafe extern "C" {
29934    pub fn BNGetRenderLayerList(count: *mut usize) -> *mut *mut BNRenderLayer;
29935}
29936unsafe extern "C" {
29937    pub fn BNFreeRenderLayerList(renderLayers: *mut *mut BNRenderLayer);
29938}
29939unsafe extern "C" {
29940    pub fn BNGetRenderLayerByName(name: *const ::std::os::raw::c_char) -> *mut BNRenderLayer;
29941}
29942unsafe extern "C" {
29943    pub fn BNGetRenderLayerName(renderLayer: *mut BNRenderLayer) -> *mut ::std::os::raw::c_char;
29944}
29945unsafe extern "C" {
29946    pub fn BNGetRenderLayerDefaultEnableState(
29947        renderLayer: *mut BNRenderLayer,
29948    ) -> BNRenderLayerDefaultEnableState;
29949}
29950unsafe extern "C" {
29951    pub fn BNApplyRenderLayerToFlowGraph(renderLayer: *mut BNRenderLayer, graph: *mut BNFlowGraph);
29952}
29953unsafe extern "C" {
29954    pub fn BNApplyRenderLayerToLinearViewObject(
29955        renderLayer: *mut BNRenderLayer,
29956        obj: *mut BNLinearViewObject,
29957        prev: *mut BNLinearViewObject,
29958        next: *mut BNLinearViewObject,
29959        inLines: *mut BNLinearDisassemblyLine,
29960        inLineCount: usize,
29961        outLines: *mut *mut BNLinearDisassemblyLine,
29962        outLineCount: *mut usize,
29963    );
29964}
29965unsafe extern "C" {
29966    pub fn BNFreeStringRef(ref_: *mut BNStringRef);
29967}
29968unsafe extern "C" {
29969    pub fn BNDuplicateStringRef(ref_: *mut BNStringRef) -> *mut BNStringRef;
29970}
29971unsafe extern "C" {
29972    pub fn BNGetStringRefContents(ref_: *mut BNStringRef) -> *const ::std::os::raw::c_char;
29973}
29974unsafe extern "C" {
29975    pub fn BNGetStringRefSize(ref_: *mut BNStringRef) -> usize;
29976}
29977unsafe extern "C" {
29978    pub fn BNCreateStringRef(str_: *const ::std::os::raw::c_char) -> *mut BNStringRef;
29979}
29980unsafe extern "C" {
29981    pub fn BNCreateStringRefOfLength(
29982        str_: *const ::std::os::raw::c_char,
29983        len: usize,
29984    ) -> *mut BNStringRef;
29985}
29986unsafe extern "C" {
29987    #[doc = " Constant Renderers"]
29988    pub fn BNRegisterConstantRenderer(
29989        name: *const ::std::os::raw::c_char,
29990        renderer: *mut BNCustomConstantRenderer,
29991    ) -> *mut BNConstantRenderer;
29992}
29993unsafe extern "C" {
29994    pub fn BNGetConstantRendererByName(
29995        name: *const ::std::os::raw::c_char,
29996    ) -> *mut BNConstantRenderer;
29997}
29998unsafe extern "C" {
29999    pub fn BNGetConstantRendererList(count: *mut usize) -> *mut *mut BNConstantRenderer;
30000}
30001unsafe extern "C" {
30002    pub fn BNFreeConstantRendererList(renderers: *mut *mut BNConstantRenderer);
30003}
30004unsafe extern "C" {
30005    pub fn BNGetConstantRendererName(
30006        renderer: *mut BNConstantRenderer,
30007    ) -> *mut ::std::os::raw::c_char;
30008}
30009unsafe extern "C" {
30010    pub fn BNIsConstantRendererValidForType(
30011        renderer: *mut BNConstantRenderer,
30012        il: *mut BNHighLevelILFunction,
30013        type_: *mut BNType,
30014    ) -> bool;
30015}
30016unsafe extern "C" {
30017    pub fn BNConstantRendererRenderConstant(
30018        renderer: *mut BNConstantRenderer,
30019        il: *mut BNHighLevelILFunction,
30020        exprIndex: usize,
30021        type_: *mut BNType,
30022        val: i64,
30023        tokens: *mut BNHighLevelILTokenEmitter,
30024        settings: *mut BNDisassemblySettings,
30025        precedence: BNOperatorPrecedence,
30026    ) -> bool;
30027}
30028unsafe extern "C" {
30029    pub fn BNConstantRendererRenderConstantPointer(
30030        renderer: *mut BNConstantRenderer,
30031        il: *mut BNHighLevelILFunction,
30032        exprIndex: usize,
30033        type_: *mut BNType,
30034        val: i64,
30035        tokens: *mut BNHighLevelILTokenEmitter,
30036        settings: *mut BNDisassemblySettings,
30037        symbolDisplay: BNSymbolDisplayType,
30038        precedence: BNOperatorPrecedence,
30039    ) -> bool;
30040}
30041unsafe extern "C" {
30042    #[doc = " String recognizers"]
30043    pub fn BNRegisterCustomStringType(info: *mut BNCustomStringTypeInfo)
30044    -> *mut BNCustomStringType;
30045}
30046unsafe extern "C" {
30047    pub fn BNGetCustomStringTypeByName(
30048        name: *const ::std::os::raw::c_char,
30049    ) -> *mut BNCustomStringType;
30050}
30051unsafe extern "C" {
30052    pub fn BNGetCustomStringTypeByID(id: u32) -> *mut BNCustomStringType;
30053}
30054unsafe extern "C" {
30055    pub fn BNGetCustomStringTypeList(count: *mut usize) -> *mut *mut BNCustomStringType;
30056}
30057unsafe extern "C" {
30058    pub fn BNFreeCustomStringTypeList(types: *mut *mut BNCustomStringType);
30059}
30060unsafe extern "C" {
30061    pub fn BNGetCustomStringTypeName(type_: *mut BNCustomStringType)
30062    -> *mut ::std::os::raw::c_char;
30063}
30064unsafe extern "C" {
30065    pub fn BNGetCustomStringTypePrefix(
30066        type_: *mut BNCustomStringType,
30067    ) -> *mut ::std::os::raw::c_char;
30068}
30069unsafe extern "C" {
30070    pub fn BNGetCustomStringTypePostfix(
30071        type_: *mut BNCustomStringType,
30072    ) -> *mut ::std::os::raw::c_char;
30073}
30074unsafe extern "C" {
30075    pub fn BNRegisterStringRecognizer(
30076        name: *const ::std::os::raw::c_char,
30077        recognizer: *mut BNCustomStringRecognizer,
30078    ) -> *mut BNStringRecognizer;
30079}
30080unsafe extern "C" {
30081    pub fn BNGetStringRecognizerByName(
30082        name: *const ::std::os::raw::c_char,
30083    ) -> *mut BNStringRecognizer;
30084}
30085unsafe extern "C" {
30086    pub fn BNGetStringRecognizerList(count: *mut usize) -> *mut *mut BNStringRecognizer;
30087}
30088unsafe extern "C" {
30089    pub fn BNFreeStringRecognizerList(recognizers: *mut *mut BNStringRecognizer);
30090}
30091unsafe extern "C" {
30092    pub fn BNGetStringRecognizerName(
30093        recognizer: *mut BNStringRecognizer,
30094    ) -> *mut ::std::os::raw::c_char;
30095}
30096unsafe extern "C" {
30097    pub fn BNIsStringRecognizerValidForType(
30098        recognizer: *mut BNStringRecognizer,
30099        il: *mut BNHighLevelILFunction,
30100        type_: *mut BNType,
30101    ) -> bool;
30102}
30103unsafe extern "C" {
30104    pub fn BNStringRecognizerRecognizeConstant(
30105        recognizer: *mut BNStringRecognizer,
30106        il: *mut BNHighLevelILFunction,
30107        exprIndex: usize,
30108        type_: *mut BNType,
30109        val: i64,
30110        out: *mut BNDerivedString,
30111    ) -> bool;
30112}
30113unsafe extern "C" {
30114    pub fn BNStringRecognizerRecognizeConstantPointer(
30115        recognizer: *mut BNStringRecognizer,
30116        il: *mut BNHighLevelILFunction,
30117        exprIndex: usize,
30118        type_: *mut BNType,
30119        val: i64,
30120        out: *mut BNDerivedString,
30121    ) -> bool;
30122}
30123unsafe extern "C" {
30124    pub fn BNStringRecognizerRecognizeExternPointer(
30125        recognizer: *mut BNStringRecognizer,
30126        il: *mut BNHighLevelILFunction,
30127        exprIndex: usize,
30128        type_: *mut BNType,
30129        val: i64,
30130        offset: u64,
30131        out: *mut BNDerivedString,
30132    ) -> bool;
30133}
30134unsafe extern "C" {
30135    pub fn BNStringRecognizerRecognizeImport(
30136        recognizer: *mut BNStringRecognizer,
30137        il: *mut BNHighLevelILFunction,
30138        exprIndex: usize,
30139        type_: *mut BNType,
30140        val: i64,
30141        out: *mut BNDerivedString,
30142    ) -> bool;
30143}
30144unsafe extern "C" {
30145    pub fn BNStringRecognizerRecognizeConstantData(
30146        recognizer: *mut BNStringRecognizer,
30147        il: *mut BNHighLevelILFunction,
30148        exprIndex: usize,
30149        out: *mut BNDerivedString,
30150    ) -> bool;
30151}
30152unsafe extern "C" {
30153    #[doc = " PossibleValueSet operations"]
30154    pub fn BNFreePossibleValueSet(object: *mut BNPossibleValueSet);
30155}
30156unsafe extern "C" {
30157    pub fn BNPossibleValueSetUnion(
30158        object: *const BNPossibleValueSet,
30159        other: *const BNPossibleValueSet,
30160        size: usize,
30161    ) -> BNPossibleValueSet;
30162}
30163unsafe extern "C" {
30164    pub fn BNPossibleValueSetIntersection(
30165        object: *const BNPossibleValueSet,
30166        other: *const BNPossibleValueSet,
30167        size: usize,
30168    ) -> BNPossibleValueSet;
30169}
30170unsafe extern "C" {
30171    pub fn BNPossibleValueSetAdd(
30172        object: *const BNPossibleValueSet,
30173        other: *const BNPossibleValueSet,
30174        size: usize,
30175    ) -> BNPossibleValueSet;
30176}
30177unsafe extern "C" {
30178    pub fn BNPossibleValueSetSubtract(
30179        object: *const BNPossibleValueSet,
30180        other: *const BNPossibleValueSet,
30181        size: usize,
30182    ) -> BNPossibleValueSet;
30183}
30184unsafe extern "C" {
30185    pub fn BNPossibleValueSetMultiply(
30186        object: *const BNPossibleValueSet,
30187        other: *const BNPossibleValueSet,
30188        size: usize,
30189    ) -> BNPossibleValueSet;
30190}
30191unsafe extern "C" {
30192    pub fn BNPossibleValueSetSignedDivide(
30193        object: *const BNPossibleValueSet,
30194        other: *const BNPossibleValueSet,
30195        size: usize,
30196    ) -> BNPossibleValueSet;
30197}
30198unsafe extern "C" {
30199    pub fn BNPossibleValueSetUnsignedDivide(
30200        object: *const BNPossibleValueSet,
30201        other: *const BNPossibleValueSet,
30202        size: usize,
30203    ) -> BNPossibleValueSet;
30204}
30205unsafe extern "C" {
30206    pub fn BNPossibleValueSetSignedMod(
30207        object: *const BNPossibleValueSet,
30208        other: *const BNPossibleValueSet,
30209        size: usize,
30210    ) -> BNPossibleValueSet;
30211}
30212unsafe extern "C" {
30213    pub fn BNPossibleValueSetUnsignedMod(
30214        object: *const BNPossibleValueSet,
30215        other: *const BNPossibleValueSet,
30216        size: usize,
30217    ) -> BNPossibleValueSet;
30218}
30219unsafe extern "C" {
30220    pub fn BNPossibleValueSetAnd(
30221        object: *const BNPossibleValueSet,
30222        other: *const BNPossibleValueSet,
30223        size: usize,
30224    ) -> BNPossibleValueSet;
30225}
30226unsafe extern "C" {
30227    pub fn BNPossibleValueSetOr(
30228        object: *const BNPossibleValueSet,
30229        other: *const BNPossibleValueSet,
30230        size: usize,
30231    ) -> BNPossibleValueSet;
30232}
30233unsafe extern "C" {
30234    pub fn BNPossibleValueSetXor(
30235        object: *const BNPossibleValueSet,
30236        other: *const BNPossibleValueSet,
30237        size: usize,
30238    ) -> BNPossibleValueSet;
30239}
30240unsafe extern "C" {
30241    pub fn BNPossibleValueSetShiftLeft(
30242        object: *const BNPossibleValueSet,
30243        other: *const BNPossibleValueSet,
30244        size: usize,
30245    ) -> BNPossibleValueSet;
30246}
30247unsafe extern "C" {
30248    pub fn BNPossibleValueSetLogicalShiftRight(
30249        object: *const BNPossibleValueSet,
30250        other: *const BNPossibleValueSet,
30251        size: usize,
30252    ) -> BNPossibleValueSet;
30253}
30254unsafe extern "C" {
30255    pub fn BNPossibleValueSetArithShiftRight(
30256        object: *const BNPossibleValueSet,
30257        other: *const BNPossibleValueSet,
30258        size: usize,
30259    ) -> BNPossibleValueSet;
30260}
30261unsafe extern "C" {
30262    pub fn BNPossibleValueSetRotateLeft(
30263        object: *const BNPossibleValueSet,
30264        other: *const BNPossibleValueSet,
30265        size: usize,
30266    ) -> BNPossibleValueSet;
30267}
30268unsafe extern "C" {
30269    pub fn BNPossibleValueSetRotateRight(
30270        object: *const BNPossibleValueSet,
30271        other: *const BNPossibleValueSet,
30272        size: usize,
30273    ) -> BNPossibleValueSet;
30274}
30275unsafe extern "C" {
30276    pub fn BNPossibleValueSetNegate(
30277        object: *const BNPossibleValueSet,
30278        size: usize,
30279    ) -> BNPossibleValueSet;
30280}
30281unsafe extern "C" {
30282    pub fn BNPossibleValueSetNot(
30283        object: *const BNPossibleValueSet,
30284        size: usize,
30285    ) -> BNPossibleValueSet;
30286}