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 = 18;
4pub const BN_MINIMUM_UI_ABI_VERSION: u32 = 18;
5
6pub const BN_CURRENT_CORE_ABI_VERSION: u32 = 187;
7pub const BN_MINIMUM_CORE_ABI_VERSION: u32 = 187;
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 BNLifterInstructionData {
94    _unused: [u8; 0],
95}
96#[repr(C)]
97#[derive(Debug, Copy, Clone)]
98pub struct BNDownloadProvider {
99    _unused: [u8; 0],
100}
101#[repr(C)]
102#[derive(Debug, Copy, Clone)]
103pub struct BNDownloadInstance {
104    _unused: [u8; 0],
105}
106#[repr(C)]
107#[derive(Debug, Copy, Clone)]
108pub struct BNWebsocketProvider {
109    _unused: [u8; 0],
110}
111#[repr(C)]
112#[derive(Debug, Copy, Clone)]
113pub struct BNWebsocketClient {
114    _unused: [u8; 0],
115}
116#[repr(C)]
117#[derive(Debug, Copy, Clone)]
118pub struct BNTypeParser {
119    _unused: [u8; 0],
120}
121#[repr(C)]
122#[derive(Debug, Copy, Clone)]
123pub struct BNTypePrinter {
124    _unused: [u8; 0],
125}
126#[repr(C)]
127#[derive(Debug, Copy, Clone)]
128pub struct BNFlowGraph {
129    _unused: [u8; 0],
130}
131#[repr(C)]
132#[derive(Debug, Copy, Clone)]
133pub struct BNFlowGraphNode {
134    _unused: [u8; 0],
135}
136#[repr(C)]
137#[derive(Debug, Copy, Clone)]
138pub struct BNFlowGraphLayout {
139    _unused: [u8; 0],
140}
141#[repr(C)]
142#[derive(Debug, Copy, Clone)]
143pub struct BNFlowGraphLayoutRequest {
144    _unused: [u8; 0],
145}
146#[repr(C)]
147#[derive(Debug, Copy, Clone)]
148pub struct BNSymbol {
149    _unused: [u8; 0],
150}
151#[repr(C)]
152#[derive(Debug, Copy, Clone)]
153pub struct BNTemporaryFile {
154    _unused: [u8; 0],
155}
156#[repr(C)]
157#[derive(Debug, Copy, Clone)]
158pub struct BNLowLevelILFunction {
159    _unused: [u8; 0],
160}
161#[repr(C)]
162#[derive(Debug, Copy, Clone)]
163pub struct BNMediumLevelILFunction {
164    _unused: [u8; 0],
165}
166#[repr(C)]
167#[derive(Debug, Copy, Clone)]
168pub struct BNHighLevelILFunction {
169    _unused: [u8; 0],
170}
171#[repr(C)]
172#[derive(Debug, Copy, Clone)]
173pub struct BNLanguageRepresentationFunction {
174    _unused: [u8; 0],
175}
176#[repr(C)]
177#[derive(Debug, Copy, Clone)]
178pub struct BNLanguageRepresentationFunctionType {
179    _unused: [u8; 0],
180}
181#[repr(C)]
182#[derive(Debug, Copy, Clone)]
183pub struct BNHighLevelILTokenEmitter {
184    _unused: [u8; 0],
185}
186#[repr(C)]
187#[derive(Debug, Copy, Clone)]
188pub struct BNType {
189    _unused: [u8; 0],
190}
191#[repr(C)]
192#[derive(Debug, Copy, Clone)]
193pub struct BNTypeBuilder {
194    _unused: [u8; 0],
195}
196#[repr(C)]
197#[derive(Debug, Copy, Clone)]
198pub struct BNTypeLibrary {
199    _unused: [u8; 0],
200}
201#[repr(C)]
202#[derive(Debug, Copy, Clone)]
203pub struct BNFieldResolutionInfo {
204    _unused: [u8; 0],
205}
206#[repr(C)]
207#[derive(Debug, Copy, Clone)]
208pub struct BNStructure {
209    _unused: [u8; 0],
210}
211#[repr(C)]
212#[derive(Debug, Copy, Clone)]
213pub struct BNStructureBuilder {
214    _unused: [u8; 0],
215}
216#[repr(C)]
217#[derive(Debug, Copy, Clone)]
218pub struct BNTagType {
219    _unused: [u8; 0],
220}
221#[repr(C)]
222#[derive(Debug, Copy, Clone)]
223pub struct BNTag {
224    _unused: [u8; 0],
225}
226#[repr(C)]
227#[derive(Debug, Copy, Clone)]
228pub struct BNUser {
229    _unused: [u8; 0],
230}
231#[repr(C)]
232#[derive(Debug, Copy, Clone)]
233pub struct BNNamedTypeReference {
234    _unused: [u8; 0],
235}
236#[repr(C)]
237#[derive(Debug, Copy, Clone)]
238pub struct BNNamedTypeReferenceBuilder {
239    _unused: [u8; 0],
240}
241#[repr(C)]
242#[derive(Debug, Copy, Clone)]
243pub struct BNEnumeration {
244    _unused: [u8; 0],
245}
246#[repr(C)]
247#[derive(Debug, Copy, Clone)]
248pub struct BNEnumerationBuilder {
249    _unused: [u8; 0],
250}
251#[repr(C)]
252#[derive(Debug, Copy, Clone)]
253pub struct BNCallingConvention {
254    _unused: [u8; 0],
255}
256#[repr(C)]
257#[derive(Debug, Copy, Clone)]
258pub struct BNPlatform {
259    _unused: [u8; 0],
260}
261#[repr(C)]
262#[derive(Debug, Copy, Clone)]
263pub struct BNActivity {
264    _unused: [u8; 0],
265}
266#[repr(C)]
267#[derive(Debug, Copy, Clone)]
268pub struct BNAnalysisContext {
269    _unused: [u8; 0],
270}
271#[repr(C)]
272#[derive(Debug, Copy, Clone)]
273pub struct BNWorkflow {
274    _unused: [u8; 0],
275}
276#[repr(C)]
277#[derive(Debug, Copy, Clone)]
278pub struct BNAnalysisCompletionEvent {
279    _unused: [u8; 0],
280}
281#[repr(C)]
282#[derive(Debug, Copy, Clone)]
283pub struct BNDisassemblySettings {
284    _unused: [u8; 0],
285}
286#[repr(C)]
287#[derive(Debug, Copy, Clone)]
288pub struct BNSaveSettings {
289    _unused: [u8; 0],
290}
291#[repr(C)]
292#[derive(Debug, Copy, Clone)]
293pub struct BNScriptingProvider {
294    _unused: [u8; 0],
295}
296#[repr(C)]
297#[derive(Debug, Copy, Clone)]
298pub struct BNScriptingInstance {
299    _unused: [u8; 0],
300}
301#[repr(C)]
302#[derive(Debug, Copy, Clone)]
303pub struct BNMainThreadAction {
304    _unused: [u8; 0],
305}
306#[repr(C)]
307#[derive(Debug, Copy, Clone)]
308pub struct BNBackgroundTask {
309    _unused: [u8; 0],
310}
311#[repr(C)]
312#[derive(Debug, Copy, Clone)]
313pub struct BNRepository {
314    _unused: [u8; 0],
315}
316#[repr(C)]
317#[derive(Debug, Copy, Clone)]
318pub struct BNPlugin {
319    _unused: [u8; 0],
320}
321#[repr(C)]
322#[derive(Debug, Copy, Clone)]
323pub struct BNComponent {
324    _unused: [u8; 0],
325}
326#[repr(C)]
327#[derive(Debug, Copy, Clone)]
328pub struct BNSettings {
329    _unused: [u8; 0],
330}
331#[repr(C)]
332#[derive(Debug, Copy, Clone)]
333pub struct BNMetadata {
334    _unused: [u8; 0],
335}
336#[repr(C)]
337#[derive(Debug, Copy, Clone)]
338pub struct BNReportCollection {
339    _unused: [u8; 0],
340}
341#[repr(C)]
342#[derive(Debug, Copy, Clone)]
343pub struct BNRelocation {
344    _unused: [u8; 0],
345}
346#[repr(C)]
347#[derive(Debug, Copy, Clone)]
348pub struct BNSegment {
349    _unused: [u8; 0],
350}
351#[repr(C)]
352#[derive(Debug, Copy, Clone)]
353pub struct BNSection {
354    _unused: [u8; 0],
355}
356#[repr(C)]
357#[derive(Debug, Copy, Clone)]
358pub struct BNRelocationHandler {
359    _unused: [u8; 0],
360}
361#[repr(C)]
362#[derive(Debug, Copy, Clone)]
363pub struct BNDataRenderer {
364    _unused: [u8; 0],
365}
366#[repr(C)]
367#[derive(Debug, Copy, Clone)]
368pub struct BNDataRendererContainer {
369    _unused: [u8; 0],
370}
371#[repr(C)]
372#[derive(Debug, Copy, Clone)]
373pub struct BNDisassemblyTextRenderer {
374    _unused: [u8; 0],
375}
376#[repr(C)]
377#[derive(Debug, Copy, Clone)]
378pub struct BNLinearViewObject {
379    _unused: [u8; 0],
380}
381#[repr(C)]
382#[derive(Debug, Copy, Clone)]
383pub struct BNLinearViewCursor {
384    _unused: [u8; 0],
385}
386#[repr(C)]
387#[derive(Debug, Copy, Clone)]
388pub struct BNDebugInfo {
389    _unused: [u8; 0],
390}
391#[repr(C)]
392#[derive(Debug, Copy, Clone)]
393pub struct BNDebugInfoParser {
394    _unused: [u8; 0],
395}
396#[repr(C)]
397#[derive(Debug, Copy, Clone)]
398pub struct BNSecretsProvider {
399    _unused: [u8; 0],
400}
401#[repr(C)]
402#[derive(Debug, Copy, Clone)]
403pub struct BNLogger {
404    _unused: [u8; 0],
405}
406#[repr(C)]
407#[derive(Debug, Copy, Clone)]
408pub struct BNSymbolQueue {
409    _unused: [u8; 0],
410}
411#[repr(C)]
412#[derive(Debug, Copy, Clone)]
413pub struct BNTypeArchive {
414    _unused: [u8; 0],
415}
416#[repr(C)]
417#[derive(Debug, Copy, Clone)]
418pub struct BNTypeContainer {
419    _unused: [u8; 0],
420}
421#[repr(C)]
422#[derive(Debug, Copy, Clone)]
423pub struct BNProject {
424    _unused: [u8; 0],
425}
426#[repr(C)]
427#[derive(Debug, Copy, Clone)]
428pub struct BNProjectFile {
429    _unused: [u8; 0],
430}
431#[repr(C)]
432#[derive(Debug, Copy, Clone)]
433pub struct BNExternalLibrary {
434    _unused: [u8; 0],
435}
436#[repr(C)]
437#[derive(Debug, Copy, Clone)]
438pub struct BNExternalLocation {
439    _unused: [u8; 0],
440}
441#[repr(C)]
442#[derive(Debug, Copy, Clone)]
443pub struct BNProjectFolder {
444    _unused: [u8; 0],
445}
446#[repr(C)]
447#[derive(Debug, Copy, Clone)]
448pub struct BNBaseAddressDetection {
449    _unused: [u8; 0],
450}
451#[repr(C)]
452#[derive(Debug, Copy, Clone)]
453pub struct BNCollaborationChangeset {
454    _unused: [u8; 0],
455}
456#[repr(C)]
457#[derive(Debug, Copy, Clone)]
458pub struct BNRemoteFile {
459    _unused: [u8; 0],
460}
461#[repr(C)]
462#[derive(Debug, Copy, Clone)]
463pub struct BNRemoteFolder {
464    _unused: [u8; 0],
465}
466#[repr(C)]
467#[derive(Debug, Copy, Clone)]
468pub struct BNCollaborationGroup {
469    _unused: [u8; 0],
470}
471#[repr(C)]
472#[derive(Debug, Copy, Clone)]
473pub struct BNCollaborationPermission {
474    _unused: [u8; 0],
475}
476#[repr(C)]
477#[derive(Debug, Copy, Clone)]
478pub struct BNRemoteProject {
479    _unused: [u8; 0],
480}
481#[repr(C)]
482#[derive(Debug, Copy, Clone)]
483pub struct BNRemote {
484    _unused: [u8; 0],
485}
486#[repr(C)]
487#[derive(Debug, Copy, Clone)]
488pub struct BNCollaborationSnapshot {
489    _unused: [u8; 0],
490}
491#[repr(C)]
492#[derive(Debug, Copy, Clone)]
493pub struct BNCollaborationUndoEntry {
494    _unused: [u8; 0],
495}
496#[repr(C)]
497#[derive(Debug, Copy, Clone)]
498pub struct BNCollaborationUser {
499    _unused: [u8; 0],
500}
501#[repr(C)]
502#[derive(Debug, Copy, Clone)]
503pub struct BNAnalysisMergeConflict {
504    _unused: [u8; 0],
505}
506#[repr(C)]
507#[derive(Debug, Copy, Clone)]
508pub struct BNAnalysisMergeConflictSplitter {
509    _unused: [u8; 0],
510}
511#[repr(C)]
512#[derive(Debug, Copy, Clone)]
513pub struct BNTypeArchiveMergeConflict {
514    _unused: [u8; 0],
515}
516#[repr(C)]
517#[derive(Debug, Copy, Clone)]
518pub struct BNCollaborationLazyT {
519    _unused: [u8; 0],
520}
521#[repr(C)]
522#[derive(Debug, Copy, Clone)]
523pub struct BNUndoAction {
524    _unused: [u8; 0],
525}
526#[repr(C)]
527#[derive(Debug, Copy, Clone)]
528pub struct BNUndoEntry {
529    _unused: [u8; 0],
530}
531#[repr(C)]
532#[derive(Debug, Copy, Clone)]
533pub struct BNDemangler {
534    _unused: [u8; 0],
535}
536#[repr(C)]
537#[derive(Debug, Copy, Clone)]
538pub struct BNFirmwareNinja {
539    _unused: [u8; 0],
540}
541#[repr(C)]
542#[derive(Debug, Copy, Clone)]
543pub struct BNFirmwareNinjaReferenceNode {
544    _unused: [u8; 0],
545}
546#[repr(C)]
547#[derive(Debug, Copy, Clone)]
548pub struct BNFirmwareNinjaRelationship {
549    _unused: [u8; 0],
550}
551#[repr(C)]
552#[derive(Debug, Copy, Clone)]
553pub struct BNLineFormatter {
554    _unused: [u8; 0],
555}
556#[repr(C)]
557#[derive(Debug, Copy, Clone)]
558pub struct BNRenderLayer {
559    _unused: [u8; 0],
560}
561#[repr(C)]
562#[derive(Debug, Copy, Clone)]
563pub struct BNStringRef {
564    _unused: [u8; 0],
565}
566#[repr(C)]
567#[derive(Debug, Copy, Clone)]
568pub struct BNStringDetector {
569    _unused: [u8; 0],
570}
571#[repr(C)]
572#[derive(Debug, Copy, Clone)]
573pub struct BNConstantRenderer {
574    _unused: [u8; 0],
575}
576#[repr(C)]
577#[derive(Debug, Copy, Clone)]
578pub struct BNStringRecognizer {
579    _unused: [u8; 0],
580}
581#[repr(C)]
582#[derive(Debug, Copy, Clone)]
583pub struct BNCustomStringType {
584    _unused: [u8; 0],
585}
586#[repr(C)]
587#[derive(Debug, Copy, Clone)]
588pub struct BNSimilarityProviderType {
589    _unused: [u8; 0],
590}
591#[repr(C)]
592#[derive(Debug, Copy, Clone)]
593pub struct BNSimilarityProvider {
594    _unused: [u8; 0],
595}
596#[repr(C)]
597#[derive(Debug, Copy, Clone)]
598pub struct BNSimilarityProviderResults {
599    _unused: [u8; 0],
600}
601#[repr(C)]
602#[derive(Debug, Copy, Clone)]
603pub struct BNSimilarityRenderContext {
604    _unused: [u8; 0],
605}
606#[repr(C)]
607#[derive(Debug, Copy, Clone)]
608pub struct BNSimilarityView {
609    _unused: [u8; 0],
610}
611#[repr(C)]
612#[derive(Debug, Copy, Clone)]
613pub struct BNDiffRenderer {
614    _unused: [u8; 0],
615}
616#[repr(C)]
617#[derive(Debug, Copy, Clone)]
618pub struct BNSimilaritySessionResolverType {
619    _unused: [u8; 0],
620}
621#[repr(C)]
622#[derive(Debug, Copy, Clone)]
623pub struct BNSimilaritySessionResolver {
624    _unused: [u8; 0],
625}
626#[repr(C)]
627#[derive(Debug, Copy, Clone)]
628pub struct BNSimilaritySessionNode {
629    _unused: [u8; 0],
630}
631#[repr(C)]
632#[derive(Debug, Copy, Clone)]
633pub struct BNSimilaritySessionGraph {
634    _unused: [u8; 0],
635}
636#[repr(C)]
637#[derive(Debug, Copy, Clone)]
638pub struct BNSimilaritySessionGraphReceiver {
639    _unused: [u8; 0],
640}
641#[repr(C)]
642#[derive(Debug, Copy, Clone)]
643pub struct BNSimilaritySessionCompletion {
644    _unused: [u8; 0],
645}
646#[repr(C)]
647#[derive(Debug, Copy, Clone)]
648pub struct BNSimilaritySessionReceiver {
649    _unused: [u8; 0],
650}
651#[repr(C)]
652#[derive(Debug, Copy, Clone)]
653pub struct BNSimilaritySession {
654    _unused: [u8; 0],
655}
656#[repr(C)]
657#[derive(Debug, Copy, Clone)]
658pub struct BNVersionInfo {
659    pub major: u32,
660    pub minor: u32,
661    pub build: u32,
662    pub channel: *mut ::std::os::raw::c_char,
663}
664#[allow(clippy::unnecessary_operation, clippy::identity_op)]
665const _: () = {
666    ["Size of BNVersionInfo"][::std::mem::size_of::<BNVersionInfo>() - 24usize];
667    ["Alignment of BNVersionInfo"][::std::mem::align_of::<BNVersionInfo>() - 8usize];
668    ["Offset of field: BNVersionInfo::major"]
669        [::std::mem::offset_of!(BNVersionInfo, major) - 0usize];
670    ["Offset of field: BNVersionInfo::minor"]
671        [::std::mem::offset_of!(BNVersionInfo, minor) - 4usize];
672    ["Offset of field: BNVersionInfo::build"]
673        [::std::mem::offset_of!(BNVersionInfo, build) - 8usize];
674    ["Offset of field: BNVersionInfo::channel"]
675        [::std::mem::offset_of!(BNVersionInfo, channel) - 16usize];
676};
677impl Default for BNVersionInfo {
678    fn default() -> Self {
679        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
680        unsafe {
681            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
682            s.assume_init()
683        }
684    }
685}
686#[repr(C)]
687#[derive(Debug, Copy, Clone)]
688pub struct BNLicenseAddon {
689    pub id: *mut ::std::os::raw::c_char,
690    pub licenseSerial: *mut ::std::os::raw::c_char,
691    pub product: *mut ::std::os::raw::c_char,
692    pub created: *mut ::std::os::raw::c_char,
693    pub createdTimestamp: u64,
694    pub expiration: *mut ::std::os::raw::c_char,
695    pub expirationTimestamp: u64,
696    pub signature: *mut ::std::os::raw::c_char,
697}
698#[allow(clippy::unnecessary_operation, clippy::identity_op)]
699const _: () = {
700    ["Size of BNLicenseAddon"][::std::mem::size_of::<BNLicenseAddon>() - 64usize];
701    ["Alignment of BNLicenseAddon"][::std::mem::align_of::<BNLicenseAddon>() - 8usize];
702    ["Offset of field: BNLicenseAddon::id"][::std::mem::offset_of!(BNLicenseAddon, id) - 0usize];
703    ["Offset of field: BNLicenseAddon::licenseSerial"]
704        [::std::mem::offset_of!(BNLicenseAddon, licenseSerial) - 8usize];
705    ["Offset of field: BNLicenseAddon::product"]
706        [::std::mem::offset_of!(BNLicenseAddon, product) - 16usize];
707    ["Offset of field: BNLicenseAddon::created"]
708        [::std::mem::offset_of!(BNLicenseAddon, created) - 24usize];
709    ["Offset of field: BNLicenseAddon::createdTimestamp"]
710        [::std::mem::offset_of!(BNLicenseAddon, createdTimestamp) - 32usize];
711    ["Offset of field: BNLicenseAddon::expiration"]
712        [::std::mem::offset_of!(BNLicenseAddon, expiration) - 40usize];
713    ["Offset of field: BNLicenseAddon::expirationTimestamp"]
714        [::std::mem::offset_of!(BNLicenseAddon, expirationTimestamp) - 48usize];
715    ["Offset of field: BNLicenseAddon::signature"]
716        [::std::mem::offset_of!(BNLicenseAddon, signature) - 56usize];
717};
718impl Default for BNLicenseAddon {
719    fn default() -> Self {
720        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
721        unsafe {
722            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
723            s.assume_init()
724        }
725    }
726}
727#[repr(C)]
728#[derive(Debug, Copy, Clone)]
729pub struct BNPluginVersionPlatform {
730    pub name: *mut ::std::os::raw::c_char,
731    pub downloadUrl: *mut ::std::os::raw::c_char,
732    pub untrackedDownloadUrl: *mut ::std::os::raw::c_char,
733}
734#[allow(clippy::unnecessary_operation, clippy::identity_op)]
735const _: () = {
736    ["Size of BNPluginVersionPlatform"][::std::mem::size_of::<BNPluginVersionPlatform>() - 24usize];
737    ["Alignment of BNPluginVersionPlatform"]
738        [::std::mem::align_of::<BNPluginVersionPlatform>() - 8usize];
739    ["Offset of field: BNPluginVersionPlatform::name"]
740        [::std::mem::offset_of!(BNPluginVersionPlatform, name) - 0usize];
741    ["Offset of field: BNPluginVersionPlatform::downloadUrl"]
742        [::std::mem::offset_of!(BNPluginVersionPlatform, downloadUrl) - 8usize];
743    ["Offset of field: BNPluginVersionPlatform::untrackedDownloadUrl"]
744        [::std::mem::offset_of!(BNPluginVersionPlatform, untrackedDownloadUrl) - 16usize];
745};
746impl Default for BNPluginVersionPlatform {
747    fn default() -> Self {
748        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
749        unsafe {
750            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
751            s.assume_init()
752        }
753    }
754}
755#[repr(C)]
756#[derive(Debug, Copy, Clone)]
757pub struct BNPluginVersion {
758    pub id: *mut ::std::os::raw::c_char,
759    pub versionString: *mut ::std::os::raw::c_char,
760    pub longDescription: *mut ::std::os::raw::c_char,
761    pub changelog: *mut ::std::os::raw::c_char,
762    pub minimumClientVersion: u64,
763    pub platforms: *mut BNPluginVersionPlatform,
764    pub platformCount: usize,
765    pub created: *mut ::std::os::raw::c_char,
766}
767#[allow(clippy::unnecessary_operation, clippy::identity_op)]
768const _: () = {
769    ["Size of BNPluginVersion"][::std::mem::size_of::<BNPluginVersion>() - 64usize];
770    ["Alignment of BNPluginVersion"][::std::mem::align_of::<BNPluginVersion>() - 8usize];
771    ["Offset of field: BNPluginVersion::id"][::std::mem::offset_of!(BNPluginVersion, id) - 0usize];
772    ["Offset of field: BNPluginVersion::versionString"]
773        [::std::mem::offset_of!(BNPluginVersion, versionString) - 8usize];
774    ["Offset of field: BNPluginVersion::longDescription"]
775        [::std::mem::offset_of!(BNPluginVersion, longDescription) - 16usize];
776    ["Offset of field: BNPluginVersion::changelog"]
777        [::std::mem::offset_of!(BNPluginVersion, changelog) - 24usize];
778    ["Offset of field: BNPluginVersion::minimumClientVersion"]
779        [::std::mem::offset_of!(BNPluginVersion, minimumClientVersion) - 32usize];
780    ["Offset of field: BNPluginVersion::platforms"]
781        [::std::mem::offset_of!(BNPluginVersion, platforms) - 40usize];
782    ["Offset of field: BNPluginVersion::platformCount"]
783        [::std::mem::offset_of!(BNPluginVersion, platformCount) - 48usize];
784    ["Offset of field: BNPluginVersion::created"]
785        [::std::mem::offset_of!(BNPluginVersion, created) - 56usize];
786};
787impl Default for BNPluginVersion {
788    fn default() -> Self {
789        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
790        unsafe {
791            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
792            s.assume_init()
793        }
794    }
795}
796#[repr(C)]
797#[derive(Debug, Copy, Clone)]
798pub struct BNRemoteFileSearchMatch {
799    pub projectId: *mut ::std::os::raw::c_char,
800    pub projectName: *mut ::std::os::raw::c_char,
801    pub fileId: *mut ::std::os::raw::c_char,
802    pub fileName: *mut ::std::os::raw::c_char,
803}
804#[allow(clippy::unnecessary_operation, clippy::identity_op)]
805const _: () = {
806    ["Size of BNRemoteFileSearchMatch"][::std::mem::size_of::<BNRemoteFileSearchMatch>() - 32usize];
807    ["Alignment of BNRemoteFileSearchMatch"]
808        [::std::mem::align_of::<BNRemoteFileSearchMatch>() - 8usize];
809    ["Offset of field: BNRemoteFileSearchMatch::projectId"]
810        [::std::mem::offset_of!(BNRemoteFileSearchMatch, projectId) - 0usize];
811    ["Offset of field: BNRemoteFileSearchMatch::projectName"]
812        [::std::mem::offset_of!(BNRemoteFileSearchMatch, projectName) - 8usize];
813    ["Offset of field: BNRemoteFileSearchMatch::fileId"]
814        [::std::mem::offset_of!(BNRemoteFileSearchMatch, fileId) - 16usize];
815    ["Offset of field: BNRemoteFileSearchMatch::fileName"]
816        [::std::mem::offset_of!(BNRemoteFileSearchMatch, fileName) - 24usize];
817};
818impl Default for BNRemoteFileSearchMatch {
819    fn default() -> Self {
820        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
821        unsafe {
822            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
823            s.assume_init()
824        }
825    }
826}
827pub type BNProgressFunction = ::std::option::Option<
828    unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void, arg2: usize, arg3: usize) -> bool,
829>;
830#[repr(u8)]
831#[doc = "! Console log levels"]
832#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
833pub enum BNLogLevel {
834    DebugLog = 0,
835    #[doc = "! Debug logging level, most verbose logging level"]
836    InfoLog = 1,
837    #[doc = "! Information logging level, default logging level"]
838    WarningLog = 2,
839    #[doc = "! Warning logging level, messages show with warning icon in the UI"]
840    ErrorLog = 3,
841    #[doc = "! Error logging level, messages show with error icon in the UI"]
842    AlertLog = 4,
843}
844#[repr(u8)]
845#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
846pub enum BNEndianness {
847    LittleEndian = 0,
848    BigEndian = 1,
849}
850#[repr(u8)]
851#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
852pub enum BNModificationStatus {
853    Original = 0,
854    Changed = 1,
855    Inserted = 2,
856}
857#[repr(u16)]
858#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
859pub enum BNTransformType {
860    #[doc = " Two-way transform of data, binary input/output"]
861    BinaryCodecTransform = 0,
862    #[doc = " Two-way transform of data, encoder output is text"]
863    TextCodecTransform = 1,
864    #[doc = " Two-way transform of data, encoder output is Unicode string (as UTF8)"]
865    UnicodeCodecTransform = 2,
866    #[doc = " One-way decode only"]
867    DecodeTransform = 3,
868    #[doc = " One-way encode only, output is binary"]
869    BinaryEncodeTransform = 4,
870    #[doc = " One-way encode only, output is text"]
871    TextEncodeTransform = 5,
872    #[doc = " Two-way encryption"]
873    EncryptTransform = 6,
874    #[doc = " Transform that can be undone by performing twice"]
875    InvertingTransform = 7,
876    #[doc = " Hash function"]
877    HashTransform = 8,
878}
879#[repr(u8)]
880#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
881pub enum BNTransformSessionMode {
882    #[doc = " Open the root file as-is (no unwrapping)"]
883    TransformSessionModeDisabled = 0,
884    #[doc = " Discover all paths (build the full context tree)"]
885    TransformSessionModeFull = 1,
886    #[doc = " Interactively request selection at each level of the container hierarchy"]
887    TransformSessionModeInteractive = 2,
888}
889#[repr(u8)]
890#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
891pub enum BNTransformResult {
892    TransformSuccess = 0,
893    TransformNotAttempted = 1,
894    TransformFailure = 2,
895    TransformRequiresPassword = 3,
896}
897#[repr(u8)]
898#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
899pub enum BNBranchType {
900    UnconditionalBranch = 0,
901    FalseBranch = 1,
902    TrueBranch = 2,
903    CallDestination = 3,
904    FunctionReturn = 4,
905    SystemCall = 5,
906    IndirectBranch = 6,
907    ExceptionBranch = 7,
908    UnresolvedBranch = 127,
909    UserDefinedBranch = 128,
910}
911#[repr(u8)]
912#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
913pub enum BNInstructionTextTokenType {
914    TextToken = 0,
915    InstructionToken = 1,
916    OperandSeparatorToken = 2,
917    RegisterToken = 3,
918    IntegerToken = 4,
919    PossibleAddressToken = 5,
920    BeginMemoryOperandToken = 6,
921    EndMemoryOperandToken = 7,
922    FloatingPointToken = 8,
923    AnnotationToken = 9,
924    CodeRelativeAddressToken = 10,
925    ArgumentNameToken = 11,
926    HexDumpByteValueToken = 12,
927    HexDumpSkippedByteToken = 13,
928    HexDumpInvalidByteToken = 14,
929    HexDumpTextToken = 15,
930    OpcodeToken = 16,
931    StringToken = 17,
932    CharacterConstantToken = 18,
933    KeywordToken = 19,
934    TypeNameToken = 20,
935    FieldNameToken = 21,
936    NameSpaceToken = 22,
937    NameSpaceSeparatorToken = 23,
938    TagToken = 24,
939    StructOffsetToken = 25,
940    StructOffsetByteValueToken = 26,
941    StructureHexDumpTextToken = 27,
942    GotoLabelToken = 28,
943    CommentToken = 29,
944    PossibleValueToken = 30,
945    PossibleValueTypeToken = 31,
946    ArrayIndexToken = 32,
947    IndentationToken = 33,
948    UnknownMemoryToken = 34,
949    EnumerationMemberToken = 35,
950    OperationToken = 36,
951    BaseStructureNameToken = 37,
952    BaseStructureSeparatorToken = 38,
953    BraceToken = 39,
954    ValueLocationToken = 40,
955    #[doc = " The following are output by the analysis system automatically, these should\n not be used directly by the architecture plugins"]
956    CodeSymbolToken = 64,
957    #[doc = " The following are output by the analysis system automatically, these should\n not be used directly by the architecture plugins"]
958    DataSymbolToken = 65,
959    #[doc = " The following are output by the analysis system automatically, these should\n not be used directly by the architecture plugins"]
960    LocalVariableToken = 66,
961    #[doc = " The following are output by the analysis system automatically, these should\n not be used directly by the architecture plugins"]
962    ImportToken = 67,
963    #[doc = " The following are output by the analysis system automatically, these should\n not be used directly by the architecture plugins"]
964    AddressDisplayToken = 68,
965    #[doc = " The following are output by the analysis system automatically, these should\n not be used directly by the architecture plugins"]
966    IndirectImportToken = 69,
967    #[doc = " The following are output by the analysis system automatically, these should\n not be used directly by the architecture plugins"]
968    ExternalSymbolToken = 70,
969    #[doc = " The following are output by the analysis system automatically, these should\n not be used directly by the architecture plugins"]
970    StackVariableToken = 71,
971    #[doc = " The following are output by the analysis system automatically, these should\n not be used directly by the architecture plugins"]
972    AddressSeparatorToken = 72,
973    #[doc = " The following are output by the analysis system automatically, these should\n not be used directly by the architecture plugins"]
974    CollapsedInformationToken = 73,
975    #[doc = " The following are output by the analysis system automatically, these should\n not be used directly by the architecture plugins"]
976    CollapseStateIndicatorToken = 74,
977    #[doc = " The following are output by the analysis system automatically, these should\n not be used directly by the architecture plugins"]
978    NewLineToken = 75,
979}
980#[repr(u8)]
981#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
982pub enum BNInstructionTextTokenContext {
983    NoTokenContext = 0,
984    LocalVariableTokenContext = 1,
985    DataVariableTokenContext = 2,
986    FunctionReturnTokenContext = 3,
987    InstructionAddressTokenContext = 4,
988    ILInstructionIndexTokenContext = 5,
989    #[doc = " For Const Data arrays"]
990    ConstDataTokenContext = 6,
991    #[doc = " For ConstData strings"]
992    ConstStringDataTokenContext = 7,
993    #[doc = " For References to strings"]
994    StringReferenceTokenContext = 8,
995    #[doc = " For String DataVariables"]
996    StringDataVariableTokenContext = 9,
997    #[doc = " For displaying strings which aren't associated with an address"]
998    StringDisplayTokenContext = 10,
999    ContentCollapsedContext = 11,
1000    ContentExpandedContext = 12,
1001    ContentCollapsiblePadding = 13,
1002    DerivedStringReferenceTokenContext = 14,
1003}
1004#[repr(u8)]
1005#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1006pub enum BNLinearDisassemblyLineType {
1007    BlankLineType = 0,
1008    BasicLineType = 1,
1009    CodeDisassemblyLineType = 2,
1010    DataVariableLineType = 3,
1011    HexDumpLineType = 4,
1012    FunctionHeaderLineType = 5,
1013    FunctionHeaderStartLineType = 6,
1014    FunctionHeaderEndLineType = 7,
1015    FunctionContinuationLineType = 8,
1016    LocalVariableLineType = 9,
1017    LocalVariableListEndLineType = 10,
1018    FunctionEndLineType = 11,
1019    NoteStartLineType = 12,
1020    NoteLineType = 13,
1021    NoteEndLineType = 14,
1022    SectionStartLineType = 15,
1023    SectionEndLineType = 16,
1024    SectionSeparatorLineType = 17,
1025    NonContiguousSeparatorLineType = 18,
1026    AnalysisWarningLineType = 19,
1027    CollapsedFunctionEndLineType = 20,
1028}
1029#[repr(u8)]
1030#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1031pub enum BNTokenEscapingType {
1032    NoTokenEscapingType = 0,
1033    BackticksTokenEscapingType = 1,
1034    QuotedStringEscapingType = 2,
1035    ReplaceInvalidCharsEscapingType = 3,
1036}
1037#[repr(u8)]
1038#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1039pub enum BNSymbolType {
1040    FunctionSymbol = 0,
1041    ImportAddressSymbol = 1,
1042    ImportedFunctionSymbol = 2,
1043    DataSymbol = 3,
1044    ImportedDataSymbol = 4,
1045    ExternalSymbol = 5,
1046    LibraryFunctionSymbol = 6,
1047    SymbolicFunctionSymbol = 7,
1048    LocalLabelSymbol = 8,
1049}
1050#[repr(u8)]
1051#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1052pub enum BNSymbolBinding {
1053    NoBinding = 0,
1054    LocalBinding = 1,
1055    GlobalBinding = 2,
1056    WeakBinding = 3,
1057}
1058#[repr(u8)]
1059#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1060pub enum BNLowLevelILOperation {
1061    LLIL_NOP = 0,
1062    #[doc = " Not valid in SSA form (see LLIL_SET_REG_SSA)"]
1063    LLIL_SET_REG = 1,
1064    #[doc = " Not valid in SSA form (see LLIL_SET_REG_SPLIT_SSA)"]
1065    LLIL_SET_REG_SPLIT = 2,
1066    #[doc = " Not valid in SSA form (see LLIL_SET_FLAG_SSA)"]
1067    LLIL_SET_FLAG = 3,
1068    #[doc = " Not valid in SSA form (see LLIL_SET_REG_STACK_REL_SSA)"]
1069    LLIL_SET_REG_STACK_REL = 4,
1070    #[doc = " Not valid in SSA form (expanded)"]
1071    LLIL_REG_STACK_PUSH = 5,
1072    LLIL_ASSERT = 6,
1073    LLIL_FORCE_VER = 7,
1074    #[doc = " Not valid in SSA form (see LLIL_LOAD_SSA)"]
1075    LLIL_LOAD = 8,
1076    #[doc = " Not valid in SSA form (see LLIL_STORE_SSA)"]
1077    LLIL_STORE = 9,
1078    #[doc = " Not valid in SSA form (expanded)"]
1079    LLIL_PUSH = 10,
1080    #[doc = " Not valid in SSA form (expanded)"]
1081    LLIL_POP = 11,
1082    #[doc = " Not valid in SSA form (see LLIL_REG_SSA)"]
1083    LLIL_REG = 12,
1084    #[doc = " Not valid in SSA form (see LLIL_REG_SPLIT_SSA)"]
1085    LLIL_REG_SPLIT = 13,
1086    #[doc = " Not valid in SSA form (see LLIL_REG_STACK_REL_SSA)"]
1087    LLIL_REG_STACK_REL = 14,
1088    #[doc = " Not valid in SSA form (expanded)"]
1089    LLIL_REG_STACK_POP = 15,
1090    #[doc = " Not valid in SSA form (see LLIL_REG_STACK_FREE_REL_SSA,\n LLIL_REG_STACK_FREE_ABS_SSA)"]
1091    LLIL_REG_STACK_FREE_REG = 16,
1092    #[doc = " Not valid in SSA from (see LLIL_REG_STACK_FREE_REL_SSA)"]
1093    LLIL_REG_STACK_FREE_REL = 17,
1094    LLIL_CONST = 18,
1095    LLIL_CONST_PTR = 19,
1096    LLIL_EXTERN_PTR = 20,
1097    LLIL_FLOAT_CONST = 21,
1098    #[doc = " Not valid in SSA form (see LLIL_FLAG_SSA)"]
1099    LLIL_FLAG = 22,
1100    #[doc = " Not valid in SSA form (see LLIL_FLAG_BIT_SSA)"]
1101    LLIL_FLAG_BIT = 23,
1102    LLIL_ADD = 24,
1103    LLIL_ADC = 25,
1104    LLIL_SUB = 26,
1105    LLIL_SBB = 27,
1106    LLIL_AND = 28,
1107    LLIL_OR = 29,
1108    LLIL_XOR = 30,
1109    LLIL_LSL = 31,
1110    LLIL_LSR = 32,
1111    LLIL_ASR = 33,
1112    LLIL_ROL = 34,
1113    LLIL_RLC = 35,
1114    LLIL_ROR = 36,
1115    LLIL_RRC = 37,
1116    LLIL_MUL = 38,
1117    LLIL_MULU_DP = 39,
1118    LLIL_MULS_DP = 40,
1119    LLIL_DIVU = 41,
1120    LLIL_DIVU_DP = 42,
1121    LLIL_DIVS = 43,
1122    LLIL_DIVS_DP = 44,
1123    LLIL_MODU = 45,
1124    LLIL_MODU_DP = 46,
1125    LLIL_MODS = 47,
1126    LLIL_MODS_DP = 48,
1127    LLIL_NEG = 49,
1128    LLIL_NOT = 50,
1129    LLIL_SX = 51,
1130    LLIL_ZX = 52,
1131    LLIL_LOW_PART = 53,
1132    LLIL_JUMP = 54,
1133    LLIL_JUMP_TO = 55,
1134    LLIL_CALL = 56,
1135    LLIL_CALL_STACK_ADJUST = 57,
1136    LLIL_TAILCALL = 58,
1137    LLIL_RET = 59,
1138    LLIL_NORET = 60,
1139    LLIL_IF = 61,
1140    LLIL_GOTO = 62,
1141    #[doc = " Valid only in Lifted IL"]
1142    LLIL_FLAG_COND = 63,
1143    #[doc = " Valid only in Lifted IL"]
1144    LLIL_FLAG_GROUP = 64,
1145    LLIL_CMP_E = 65,
1146    LLIL_CMP_NE = 66,
1147    LLIL_CMP_SLT = 67,
1148    LLIL_CMP_ULT = 68,
1149    LLIL_CMP_SLE = 69,
1150    LLIL_CMP_ULE = 70,
1151    LLIL_CMP_SGE = 71,
1152    LLIL_CMP_UGE = 72,
1153    LLIL_CMP_SGT = 73,
1154    LLIL_CMP_UGT = 74,
1155    LLIL_TEST_BIT = 75,
1156    LLIL_BOOL_TO_INT = 76,
1157    LLIL_ADD_OVERFLOW = 77,
1158    LLIL_SYSCALL = 78,
1159    LLIL_BP = 79,
1160    LLIL_TRAP = 80,
1161    LLIL_INTRINSIC = 81,
1162    LLIL_UNDEF = 82,
1163    LLIL_UNIMPL = 83,
1164    LLIL_UNIMPL_MEM = 84,
1165    #[doc = " Floating point"]
1166    LLIL_FADD = 85,
1167    #[doc = " Floating point"]
1168    LLIL_FSUB = 86,
1169    #[doc = " Floating point"]
1170    LLIL_FMUL = 87,
1171    #[doc = " Floating point"]
1172    LLIL_FDIV = 88,
1173    #[doc = " Floating point"]
1174    LLIL_FSQRT = 89,
1175    #[doc = " Floating point"]
1176    LLIL_FNEG = 90,
1177    #[doc = " Floating point"]
1178    LLIL_FABS = 91,
1179    #[doc = " Floating point"]
1180    LLIL_FLOAT_TO_INT = 92,
1181    #[doc = " Floating point"]
1182    LLIL_INT_TO_FLOAT = 93,
1183    #[doc = " Floating point"]
1184    LLIL_FLOAT_CONV = 94,
1185    #[doc = " Floating point"]
1186    LLIL_ROUND_TO_INT = 95,
1187    #[doc = " Floating point"]
1188    LLIL_FLOOR = 96,
1189    #[doc = " Floating point"]
1190    LLIL_CEIL = 97,
1191    #[doc = " Floating point"]
1192    LLIL_FTRUNC = 98,
1193    #[doc = " Floating point"]
1194    LLIL_FCMP_E = 99,
1195    #[doc = " Floating point"]
1196    LLIL_FCMP_NE = 100,
1197    #[doc = " Floating point"]
1198    LLIL_FCMP_LT = 101,
1199    #[doc = " Floating point"]
1200    LLIL_FCMP_LE = 102,
1201    #[doc = " Floating point"]
1202    LLIL_FCMP_GE = 103,
1203    #[doc = " Floating point"]
1204    LLIL_FCMP_GT = 104,
1205    #[doc = " Floating point"]
1206    LLIL_FCMP_O = 105,
1207    #[doc = " Floating point"]
1208    LLIL_FCMP_UO = 106,
1209    #[doc = " The following instructions are only used in SSA form"]
1210    LLIL_SET_REG_SSA = 107,
1211    #[doc = " The following instructions are only used in SSA form"]
1212    LLIL_SET_REG_SSA_PARTIAL = 108,
1213    #[doc = " The following instructions are only used in SSA form"]
1214    LLIL_SET_REG_SPLIT_SSA = 109,
1215    #[doc = " The following instructions are only used in SSA form"]
1216    LLIL_SET_REG_STACK_REL_SSA = 110,
1217    #[doc = " The following instructions are only used in SSA form"]
1218    LLIL_SET_REG_STACK_ABS_SSA = 111,
1219    #[doc = " Only valid within an LLIL_SET_REG_SPLIT_SSA instruction"]
1220    LLIL_REG_SPLIT_DEST_SSA = 112,
1221    #[doc = " Only valid within LLIL_SET_REG_STACK_REL_SSA or LLIL_SET_REG_STACK_ABS_SSA"]
1222    LLIL_REG_STACK_DEST_SSA = 113,
1223    LLIL_REG_SSA = 114,
1224    LLIL_REG_SSA_PARTIAL = 115,
1225    LLIL_REG_SPLIT_SSA = 116,
1226    LLIL_REG_STACK_REL_SSA = 117,
1227    LLIL_REG_STACK_ABS_SSA = 118,
1228    LLIL_REG_STACK_FREE_REL_SSA = 119,
1229    LLIL_REG_STACK_FREE_ABS_SSA = 120,
1230    LLIL_SET_FLAG_SSA = 121,
1231    LLIL_ASSERT_SSA = 122,
1232    LLIL_FORCE_VER_SSA = 123,
1233    LLIL_FLAG_SSA = 124,
1234    LLIL_FLAG_BIT_SSA = 125,
1235    LLIL_CALL_SSA = 126,
1236    LLIL_SYSCALL_SSA = 127,
1237    LLIL_TAILCALL_SSA = 128,
1238    #[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"]
1239    LLIL_CALL_PARAM = 129,
1240    #[doc = " Only valid within the LLIL_CALL_SSA or LLIL_SYSCALL_SSA instructions"]
1241    LLIL_CALL_STACK_SSA = 130,
1242    #[doc = " Only valid within the LLIL_CALL_SSA or LLIL_SYSCALL_SSA instructions"]
1243    LLIL_CALL_OUTPUT_SSA = 131,
1244    #[doc = " Only valid within the LLIL_CALL_PARAM instruction"]
1245    LLIL_SEPARATE_PARAM_LIST_SSA = 132,
1246    #[doc = " Only valid within the LLIL_CALL_PARAM or LLIL_SEPARATE_PARAM_LIST_SSA instructions"]
1247    LLIL_SHARED_PARAM_SLOT_SSA = 133,
1248    #[doc = " Only valid within the LLIL_MEMORY_INTRINSIC_SSA instruction"]
1249    LLIL_MEMORY_INTRINSIC_OUTPUT_SSA = 134,
1250    LLIL_LOAD_SSA = 135,
1251    LLIL_STORE_SSA = 136,
1252    LLIL_INTRINSIC_SSA = 137,
1253    LLIL_MEMORY_INTRINSIC_SSA = 138,
1254    LLIL_REG_PHI = 139,
1255    LLIL_REG_STACK_PHI = 140,
1256    LLIL_FLAG_PHI = 141,
1257    LLIL_MEM_PHI = 142,
1258    #[doc = " Reverse byte order of the whole value"]
1259    LLIL_BSWAP = 143,
1260    #[doc = " Population count (number of set bits)"]
1261    LLIL_POPCNT = 144,
1262    #[doc = " Count leading zero bits; clz(0) == 8 * size"]
1263    LLIL_CLZ = 145,
1264    #[doc = " Count trailing zero bits; ctz(0) == 8 * size"]
1265    LLIL_CTZ = 146,
1266    #[doc = " Reverse bit order of the whole value"]
1267    LLIL_RBIT = 147,
1268    #[doc = " Count leading sign bits; number of bits below the sign bit that match it"]
1269    LLIL_CLS = 148,
1270    #[doc = " Signed minimum of left and right"]
1271    LLIL_MINS = 149,
1272    #[doc = " Signed maximum of left and right"]
1273    LLIL_MAXS = 150,
1274    #[doc = " Unsigned minimum of left and right"]
1275    LLIL_MINU = 151,
1276    #[doc = " Unsigned maximum of left and right"]
1277    LLIL_MAXU = 152,
1278    #[doc = " Signed absolute value of src; abs(INT_MIN) == INT_MIN"]
1279    LLIL_ABS = 153,
1280}
1281#[repr(u8)]
1282#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1283pub enum BNLowLevelILFlagCondition {
1284    LLFC_E = 0,
1285    LLFC_NE = 1,
1286    LLFC_SLT = 2,
1287    LLFC_ULT = 3,
1288    LLFC_SLE = 4,
1289    LLFC_ULE = 5,
1290    LLFC_SGE = 6,
1291    LLFC_UGE = 7,
1292    LLFC_SGT = 8,
1293    LLFC_UGT = 9,
1294    LLFC_NEG = 10,
1295    LLFC_POS = 11,
1296    LLFC_O = 12,
1297    LLFC_NO = 13,
1298    LLFC_FE = 14,
1299    LLFC_FNE = 15,
1300    LLFC_FLT = 16,
1301    LLFC_FLE = 17,
1302    LLFC_FGE = 18,
1303    LLFC_FGT = 19,
1304    LLFC_FO = 20,
1305    LLFC_FUO = 21,
1306}
1307#[repr(u8)]
1308#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1309pub enum BNFlagRole {
1310    SpecialFlagRole = 0,
1311    ZeroFlagRole = 1,
1312    PositiveSignFlagRole = 2,
1313    NegativeSignFlagRole = 3,
1314    CarryFlagRole = 4,
1315    OverflowFlagRole = 5,
1316    HalfCarryFlagRole = 6,
1317    EvenParityFlagRole = 7,
1318    OddParityFlagRole = 8,
1319    OrderedFlagRole = 9,
1320    UnorderedFlagRole = 10,
1321    CarryFlagWithInvertedSubtractRole = 11,
1322}
1323#[repr(i8)]
1324#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1325pub enum BNFunctionGraphType {
1326    InvalidILViewType = -1,
1327    NormalFunctionGraph = 0,
1328    LowLevelILFunctionGraph = 1,
1329    LiftedILFunctionGraph = 2,
1330    LowLevelILSSAFormFunctionGraph = 3,
1331    MediumLevelILFunctionGraph = 4,
1332    MediumLevelILSSAFormFunctionGraph = 5,
1333    MappedMediumLevelILFunctionGraph = 6,
1334    MappedMediumLevelILSSAFormFunctionGraph = 7,
1335    HighLevelILFunctionGraph = 8,
1336    HighLevelILSSAFormFunctionGraph = 9,
1337    HighLevelLanguageRepresentationFunctionGraph = 10,
1338}
1339#[repr(C)]
1340#[derive(Debug, Copy, Clone)]
1341pub struct BNFunctionViewType {
1342    pub type_: BNFunctionGraphType,
1343    #[doc = " Only used for HighLevelLanguageRepresentationFunctionGraph"]
1344    pub name: *const ::std::os::raw::c_char,
1345}
1346#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1347const _: () = {
1348    ["Size of BNFunctionViewType"][::std::mem::size_of::<BNFunctionViewType>() - 16usize];
1349    ["Alignment of BNFunctionViewType"][::std::mem::align_of::<BNFunctionViewType>() - 8usize];
1350    ["Offset of field: BNFunctionViewType::type_"]
1351        [::std::mem::offset_of!(BNFunctionViewType, type_) - 0usize];
1352    ["Offset of field: BNFunctionViewType::name"]
1353        [::std::mem::offset_of!(BNFunctionViewType, name) - 8usize];
1354};
1355impl Default for BNFunctionViewType {
1356    fn default() -> Self {
1357        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1358        unsafe {
1359            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1360            s.assume_init()
1361        }
1362    }
1363}
1364#[repr(u8)]
1365#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1366pub enum BNDisassemblyOption {
1367    ShowAddress = 0,
1368    ShowOpcode = 1,
1369    ExpandLongOpcode = 2,
1370    ShowVariablesAtTopOfGraph = 3,
1371    ShowVariableTypesWhenAssigned = 4,
1372    ShowRegisterHighlight = 7,
1373    ShowFunctionAddress = 8,
1374    ShowFunctionHeader = 9,
1375    ShowTypeCasts = 10,
1376    #[doc = " Linear disassembly options"]
1377    GroupLinearDisassemblyFunctions = 64,
1378    #[doc = " Linear disassembly options"]
1379    HighLevelILLinearDisassembly = 65,
1380    #[doc = " Linear disassembly options"]
1381    WaitForIL = 66,
1382    #[doc = " Linear disassembly options"]
1383    IndentHLILBody = 67,
1384    #[doc = " Linear disassembly options"]
1385    DisableLineFormatting = 68,
1386    #[doc = " Debugging options"]
1387    ShowFlagUsage = 128,
1388    #[doc = " Debugging options"]
1389    ShowStackPointer = 129,
1390    #[doc = " Debugging options"]
1391    ShowILTypes = 130,
1392    #[doc = " Debugging options"]
1393    ShowILOpcodes = 131,
1394    #[doc = " Debugging options"]
1395    ShowCollapseIndicators = 132,
1396}
1397#[repr(u32)]
1398#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1399pub enum BNDisassemblyAddressMode {
1400    AbsoluteDisassemblyAddressMode = 0,
1401    RelativeToBinaryStartDisassemblyAddressMode = 1,
1402    RelativeToSegmentStartDisassemblyAddressMode = 2,
1403    RelativeToSectionStartDisassemblyAddressMode = 3,
1404    RelativeToFunctionStartDisassemblyAddressMode = 4,
1405    RelativeToAddressBaseOffsetDisassemblyAddressMode = 5,
1406    RelativeToDataStartDisassemblyAddressMode = 6,
1407    DisassemblyAddressModeMask = 65535,
1408    IncludeNameDisassemblyAddressModeFlag = 65536,
1409    DecimalDisassemblyAddressModeFlag = 131072,
1410    DisassemblyAddressModeFlagsMask = 4294901760,
1411}
1412#[repr(u8)]
1413#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1414pub enum BNDisassemblyCallParameterHints {
1415    NeverShowMatchingParameterHints = 0,
1416    AlwaysShowParameterHints = 1,
1417    NeverShowParameterHints = 2,
1418}
1419#[repr(u8)]
1420#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1421pub enum BNDisassemblyBlockLabels {
1422    NeverShowDefaultBlockLabels = 0,
1423    AlwaysShowBlockLabels = 1,
1424    NeverShowBlockLabels = 2,
1425}
1426#[repr(u8)]
1427#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1428pub enum BNTypeClass {
1429    VoidTypeClass = 0,
1430    BoolTypeClass = 1,
1431    IntegerTypeClass = 2,
1432    FloatTypeClass = 3,
1433    StructureTypeClass = 4,
1434    EnumerationTypeClass = 5,
1435    PointerTypeClass = 6,
1436    ArrayTypeClass = 7,
1437    FunctionTypeClass = 8,
1438    VarArgsTypeClass = 9,
1439    ValueTypeClass = 10,
1440    NamedTypeReferenceClass = 11,
1441    WideCharTypeClass = 12,
1442    FragmentTypeClass = 13,
1443}
1444#[repr(u8)]
1445#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1446pub enum BNNamedTypeReferenceClass {
1447    UnknownNamedTypeClass = 0,
1448    TypedefNamedTypeClass = 1,
1449    ClassNamedTypeClass = 2,
1450    StructNamedTypeClass = 3,
1451    UnionNamedTypeClass = 4,
1452    EnumNamedTypeClass = 5,
1453}
1454#[repr(u8)]
1455#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1456pub enum BNStructureVariant {
1457    ClassStructureType = 0,
1458    StructStructureType = 1,
1459    UnionStructureType = 2,
1460}
1461#[repr(u8)]
1462#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1463pub enum BNMemberScope {
1464    NoScope = 0,
1465    StaticScope = 1,
1466    VirtualScope = 2,
1467    ThunkScope = 3,
1468    FriendScope = 4,
1469}
1470#[repr(u8)]
1471#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1472pub enum BNMemberAccess {
1473    NoAccess = 0,
1474    PrivateAccess = 1,
1475    ProtectedAccess = 2,
1476    PublicAccess = 3,
1477}
1478#[repr(u8)]
1479#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1480pub enum BNReferenceType {
1481    PointerReferenceType = 0,
1482    ReferenceReferenceType = 1,
1483    RValueReferenceType = 2,
1484    NoReference = 3,
1485}
1486#[repr(u8)]
1487#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1488pub enum BNPointerSuffix {
1489    Ptr64Suffix = 0,
1490    UnalignedSuffix = 1,
1491    RestrictSuffix = 2,
1492    ReferenceSuffix = 3,
1493    LvalueSuffix = 4,
1494}
1495#[repr(u8)]
1496#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1497pub enum BNPointerBaseType {
1498    AbsolutePointerBaseType = 0,
1499    RelativeToConstantPointerBaseType = 1,
1500    RelativeToBinaryStartPointerBaseType = 2,
1501    RelativeToVariableAddressPointerBaseType = 3,
1502}
1503#[repr(u8)]
1504#[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"]
1505#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1506pub enum BNNameType {
1507    NoNameType = 0,
1508    ConstructorNameType = 1,
1509    DestructorNameType = 2,
1510    OperatorNewNameType = 3,
1511    OperatorDeleteNameType = 4,
1512    OperatorAssignNameType = 5,
1513    OperatorRightShiftNameType = 6,
1514    OperatorLeftShiftNameType = 7,
1515    OperatorNotNameType = 8,
1516    OperatorEqualNameType = 9,
1517    OperatorNotEqualNameType = 10,
1518    OperatorArrayNameType = 11,
1519    OperatorArrowNameType = 12,
1520    OperatorStarNameType = 13,
1521    OperatorIncrementNameType = 14,
1522    OperatorDecrementNameType = 15,
1523    OperatorMinusNameType = 16,
1524    OperatorPlusNameType = 17,
1525    OperatorBitAndNameType = 18,
1526    OperatorArrowStarNameType = 19,
1527    OperatorDivideNameType = 20,
1528    OperatorModulusNameType = 21,
1529    OperatorLessThanNameType = 22,
1530    OperatorLessThanEqualNameType = 23,
1531    OperatorGreaterThanNameType = 24,
1532    OperatorGreaterThanEqualNameType = 25,
1533    OperatorCommaNameType = 26,
1534    OperatorParenthesesNameType = 27,
1535    OperatorTildeNameType = 28,
1536    OperatorXorNameType = 29,
1537    OperatorBitOrNameType = 30,
1538    OperatorLogicalAndNameType = 31,
1539    OperatorLogicalOrNameType = 32,
1540    OperatorStarEqualNameType = 33,
1541    OperatorPlusEqualNameType = 34,
1542    OperatorMinusEqualNameType = 35,
1543    OperatorDivideEqualNameType = 36,
1544    OperatorModulusEqualNameType = 37,
1545    OperatorRightShiftEqualNameType = 38,
1546    OperatorLeftShiftEqualNameType = 39,
1547    OperatorAndEqualNameType = 40,
1548    OperatorOrEqualNameType = 41,
1549    OperatorXorEqualNameType = 42,
1550    VFTableNameType = 43,
1551    VBTableNameType = 44,
1552    VCallNameType = 45,
1553    TypeofNameType = 46,
1554    LocalStaticGuardNameType = 47,
1555    StringNameType = 48,
1556    VBaseDestructorNameType = 49,
1557    VectorDeletingDestructorNameType = 50,
1558    DefaultConstructorClosureNameType = 51,
1559    ScalarDeletingDestructorNameType = 52,
1560    VectorConstructorIteratorNameType = 53,
1561    VectorDestructorIteratorNameType = 54,
1562    VectorVBaseConstructorIteratorNameType = 55,
1563    VirtualDisplacementMapNameType = 56,
1564    EHVectorConstructorIteratorNameType = 57,
1565    EHVectorDestructorIteratorNameType = 58,
1566    EHVectorVBaseConstructorIteratorNameType = 59,
1567    CopyConstructorClosureNameType = 60,
1568    UDTReturningNameType = 61,
1569    LocalVFTableNameType = 62,
1570    LocalVFTableConstructorClosureNameType = 63,
1571    OperatorNewArrayNameType = 64,
1572    OperatorDeleteArrayNameType = 65,
1573    PlacementDeleteClosureNameType = 66,
1574    PlacementDeleteClosureArrayNameType = 67,
1575    OperatorReturnTypeNameType = 68,
1576    RttiTypeDescriptor = 69,
1577    RttiBaseClassDescriptor = 70,
1578    RttiBaseClassArray = 71,
1579    RttiClassHierarchyDescriptor = 72,
1580    RttiCompleteObjectLocator = 73,
1581    OperatorUnaryMinusNameType = 74,
1582    OperatorUnaryPlusNameType = 75,
1583    OperatorUnaryBitAndNameType = 76,
1584    OperatorUnaryStarNameType = 77,
1585    OmniCallSigNameType = 78,
1586    ManagedVectorConstructorIteratorNameType = 79,
1587    ManagedVectorDestructorIteratorNameType = 80,
1588    EHVectorCopyConstructorIteratorNameType = 81,
1589    EHVectorVBaseCopyConstructorIteratorNameType = 82,
1590    DynamicInitializerNameType = 83,
1591    DynamicAtExitDestructorNameType = 84,
1592    VectorCopyConstructorIteratorNameType = 85,
1593    VectorVBaseCopyConstructorIteratorNameType = 86,
1594    ManagedVectorCopyConstructorIteratorNameType = 87,
1595    LocalStaticThreadGuardNameType = 88,
1596    UserDefinedLiteralOperatorNameType = 89,
1597}
1598#[repr(u8)]
1599#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1600pub enum BNCallingConventionName {
1601    NoCallingConvention = 0,
1602    CdeclCallingConvention = 1,
1603    PascalCallingConvention = 2,
1604    ThisCallCallingConvention = 3,
1605    STDCallCallingConvention = 4,
1606    FastcallCallingConvention = 5,
1607    CLRCallCallingConvention = 6,
1608    EabiCallCallingConvention = 7,
1609    VectorCallCallingConvention = 8,
1610    SwiftCallingConvention = 9,
1611    SwiftAsyncCallingConvention = 10,
1612}
1613#[repr(u8)]
1614#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1615pub enum BNStringType {
1616    AsciiString = 0,
1617    Utf16String = 1,
1618    Utf32String = 2,
1619    Utf8String = 3,
1620}
1621#[repr(u8)]
1622#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1623pub enum BNIntegerDisplayType {
1624    DefaultIntegerDisplayType = 0,
1625    BinaryDisplayType = 1,
1626    SignedOctalDisplayType = 2,
1627    UnsignedOctalDisplayType = 3,
1628    SignedDecimalDisplayType = 4,
1629    UnsignedDecimalDisplayType = 5,
1630    SignedHexadecimalDisplayType = 6,
1631    UnsignedHexadecimalDisplayType = 7,
1632    CharacterConstantDisplayType = 8,
1633    PointerDisplayType = 9,
1634    FloatDisplayType = 10,
1635    DoubleDisplayType = 11,
1636    EnumerationDisplayType = 12,
1637    InvertedCharacterConstantDisplayType = 13,
1638    UnsignedComplementDecimalDisplayType = 14,
1639    UnsignedComplementHexadecimalDisplayType = 15,
1640}
1641#[repr(u8)]
1642#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1643pub enum BNFlowGraphOption {
1644    FlowGraphUsesBlockHighlights = 0,
1645    FlowGraphUsesInstructionHighlights = 1,
1646    FlowGraphIncludesUserComments = 2,
1647    FlowGraphAllowsPatching = 3,
1648    FlowGraphAllowsInlineInstructionEditing = 4,
1649    FlowGraphShowsSecondaryRegisterHighlighting = 5,
1650    FlowGraphIsAddressable = 6,
1651    FlowGraphIsWorkflowGraph = 7,
1652}
1653#[repr(u8)]
1654#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1655pub enum BNIntrinsicClass {
1656    GeneralIntrinsicClass = 0,
1657    MemoryIntrinsicClass = 1,
1658}
1659#[repr(u8)]
1660#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1661pub enum BNInlineDuringAnalysis {
1662    #[doc = " The called function should not be inlined."]
1663    DoNotInlineCall = 0,
1664    #[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."]
1665    InlinePreservingTargetInstructionAddresses = 1,
1666    #[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."]
1667    InlineUsingCallAddress = 2,
1668}
1669#[repr(C)]
1670#[derive(Debug, Copy, Clone)]
1671pub struct BNInlineDuringAnalysisWithConfidence {
1672    pub value: BNInlineDuringAnalysis,
1673    pub confidence: u8,
1674}
1675#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1676const _: () = {
1677    ["Size of BNInlineDuringAnalysisWithConfidence"]
1678        [::std::mem::size_of::<BNInlineDuringAnalysisWithConfidence>() - 2usize];
1679    ["Alignment of BNInlineDuringAnalysisWithConfidence"]
1680        [::std::mem::align_of::<BNInlineDuringAnalysisWithConfidence>() - 1usize];
1681    ["Offset of field: BNInlineDuringAnalysisWithConfidence::value"]
1682        [::std::mem::offset_of!(BNInlineDuringAnalysisWithConfidence, value) - 0usize];
1683    ["Offset of field: BNInlineDuringAnalysisWithConfidence::confidence"]
1684        [::std::mem::offset_of!(BNInlineDuringAnalysisWithConfidence, confidence) - 1usize];
1685};
1686impl Default for BNInlineDuringAnalysisWithConfidence {
1687    fn default() -> Self {
1688        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1689        unsafe {
1690            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1691            s.assume_init()
1692        }
1693    }
1694}
1695#[repr(C)]
1696#[derive(Debug, Copy, Clone)]
1697pub struct BNLowLevelILInstruction {
1698    pub operation: BNLowLevelILOperation,
1699    pub attributes: u32,
1700    pub size: usize,
1701    pub flags: u32,
1702    pub sourceOperand: u32,
1703    pub operands: [u64; 4usize],
1704    pub address: u64,
1705}
1706#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1707const _: () = {
1708    ["Size of BNLowLevelILInstruction"][::std::mem::size_of::<BNLowLevelILInstruction>() - 64usize];
1709    ["Alignment of BNLowLevelILInstruction"]
1710        [::std::mem::align_of::<BNLowLevelILInstruction>() - 8usize];
1711    ["Offset of field: BNLowLevelILInstruction::operation"]
1712        [::std::mem::offset_of!(BNLowLevelILInstruction, operation) - 0usize];
1713    ["Offset of field: BNLowLevelILInstruction::attributes"]
1714        [::std::mem::offset_of!(BNLowLevelILInstruction, attributes) - 4usize];
1715    ["Offset of field: BNLowLevelILInstruction::size"]
1716        [::std::mem::offset_of!(BNLowLevelILInstruction, size) - 8usize];
1717    ["Offset of field: BNLowLevelILInstruction::flags"]
1718        [::std::mem::offset_of!(BNLowLevelILInstruction, flags) - 16usize];
1719    ["Offset of field: BNLowLevelILInstruction::sourceOperand"]
1720        [::std::mem::offset_of!(BNLowLevelILInstruction, sourceOperand) - 20usize];
1721    ["Offset of field: BNLowLevelILInstruction::operands"]
1722        [::std::mem::offset_of!(BNLowLevelILInstruction, operands) - 24usize];
1723    ["Offset of field: BNLowLevelILInstruction::address"]
1724        [::std::mem::offset_of!(BNLowLevelILInstruction, address) - 56usize];
1725};
1726impl Default for BNLowLevelILInstruction {
1727    fn default() -> Self {
1728        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1729        unsafe {
1730            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1731            s.assume_init()
1732        }
1733    }
1734}
1735#[repr(C)]
1736#[derive(Debug, Default, Copy, Clone)]
1737pub struct BNLowLevelILLabel {
1738    pub resolved: bool,
1739    pub ref_: usize,
1740    pub operand: usize,
1741}
1742#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1743const _: () = {
1744    ["Size of BNLowLevelILLabel"][::std::mem::size_of::<BNLowLevelILLabel>() - 24usize];
1745    ["Alignment of BNLowLevelILLabel"][::std::mem::align_of::<BNLowLevelILLabel>() - 8usize];
1746    ["Offset of field: BNLowLevelILLabel::resolved"]
1747        [::std::mem::offset_of!(BNLowLevelILLabel, resolved) - 0usize];
1748    ["Offset of field: BNLowLevelILLabel::ref_"]
1749        [::std::mem::offset_of!(BNLowLevelILLabel, ref_) - 8usize];
1750    ["Offset of field: BNLowLevelILLabel::operand"]
1751        [::std::mem::offset_of!(BNLowLevelILLabel, operand) - 16usize];
1752};
1753#[repr(u8)]
1754#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1755pub enum BNImplicitRegisterExtend {
1756    NoExtend = 0,
1757    ZeroExtendToFullWidth = 1,
1758    SignExtendToFullWidth = 2,
1759}
1760#[repr(C)]
1761#[derive(Debug, Copy, Clone)]
1762pub struct BNRegisterInfo {
1763    pub fullWidthRegister: u32,
1764    pub offset: usize,
1765    pub size: usize,
1766    pub extend: BNImplicitRegisterExtend,
1767}
1768#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1769const _: () = {
1770    ["Size of BNRegisterInfo"][::std::mem::size_of::<BNRegisterInfo>() - 32usize];
1771    ["Alignment of BNRegisterInfo"][::std::mem::align_of::<BNRegisterInfo>() - 8usize];
1772    ["Offset of field: BNRegisterInfo::fullWidthRegister"]
1773        [::std::mem::offset_of!(BNRegisterInfo, fullWidthRegister) - 0usize];
1774    ["Offset of field: BNRegisterInfo::offset"]
1775        [::std::mem::offset_of!(BNRegisterInfo, offset) - 8usize];
1776    ["Offset of field: BNRegisterInfo::size"]
1777        [::std::mem::offset_of!(BNRegisterInfo, size) - 16usize];
1778    ["Offset of field: BNRegisterInfo::extend"]
1779        [::std::mem::offset_of!(BNRegisterInfo, extend) - 24usize];
1780};
1781impl Default for BNRegisterInfo {
1782    fn default() -> Self {
1783        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1784        unsafe {
1785            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1786            s.assume_init()
1787        }
1788    }
1789}
1790#[repr(C)]
1791#[derive(Debug, Default, Copy, Clone)]
1792pub struct BNRegisterStackInfo {
1793    pub firstStorageReg: u32,
1794    pub firstTopRelativeReg: u32,
1795    pub storageCount: u32,
1796    pub topRelativeCount: u32,
1797    pub stackTopReg: u32,
1798}
1799#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1800const _: () = {
1801    ["Size of BNRegisterStackInfo"][::std::mem::size_of::<BNRegisterStackInfo>() - 20usize];
1802    ["Alignment of BNRegisterStackInfo"][::std::mem::align_of::<BNRegisterStackInfo>() - 4usize];
1803    ["Offset of field: BNRegisterStackInfo::firstStorageReg"]
1804        [::std::mem::offset_of!(BNRegisterStackInfo, firstStorageReg) - 0usize];
1805    ["Offset of field: BNRegisterStackInfo::firstTopRelativeReg"]
1806        [::std::mem::offset_of!(BNRegisterStackInfo, firstTopRelativeReg) - 4usize];
1807    ["Offset of field: BNRegisterStackInfo::storageCount"]
1808        [::std::mem::offset_of!(BNRegisterStackInfo, storageCount) - 8usize];
1809    ["Offset of field: BNRegisterStackInfo::topRelativeCount"]
1810        [::std::mem::offset_of!(BNRegisterStackInfo, topRelativeCount) - 12usize];
1811    ["Offset of field: BNRegisterStackInfo::stackTopReg"]
1812        [::std::mem::offset_of!(BNRegisterStackInfo, stackTopReg) - 16usize];
1813};
1814#[repr(u32)]
1815#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1816pub enum BNRegisterValueType {
1817    UndeterminedValue = 0,
1818    EntryValue = 1,
1819    ConstantValue = 2,
1820    ConstantPointerValue = 3,
1821    ExternalPointerValue = 4,
1822    StackFrameOffset = 5,
1823    ReturnAddressValue = 6,
1824    ImportedAddressValue = 7,
1825    ResultPointerValue = 8,
1826    ParameterPointerValue = 9,
1827    #[doc = " The following are only valid in BNPossibleValueSet"]
1828    SignedRangeValue = 10,
1829    #[doc = " The following are only valid in BNPossibleValueSet"]
1830    UnsignedRangeValue = 11,
1831    #[doc = " The following are only valid in BNPossibleValueSet"]
1832    LookupTableValue = 12,
1833    #[doc = " The following are only valid in BNPossibleValueSet"]
1834    InSetOfValues = 13,
1835    #[doc = " The following are only valid in BNPossibleValueSet"]
1836    NotInSetOfValues = 14,
1837    #[doc = " The following support constant data and values larger than 8 bytes"]
1838    ConstantDataValue = 32768,
1839    #[doc = " The following support constant data and values larger than 8 bytes"]
1840    ConstantDataZeroExtendValue = 32769,
1841    #[doc = " The following support constant data and values larger than 8 bytes"]
1842    ConstantDataSignExtendValue = 32770,
1843    #[doc = " The following support constant data and values larger than 8 bytes"]
1844    ConstantDataAggregateValue = 32771,
1845}
1846#[repr(u8)]
1847#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1848pub enum BNDataFlowQueryOption {
1849    #[doc = " Use addresses instead of index in the from list within\n LookupTableValue results"]
1850    FromAddressesInLookupTableQueryOption = 0,
1851    AllowReadingWritableMemoryQueryOption = 1,
1852}
1853#[repr(u32)]
1854#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1855pub enum BNPluginStatus {
1856    NotInstalledPluginStatus = 0,
1857    InstalledPluginStatus = 1,
1858    EnabledPluginStatus = 2,
1859    UpdateAvailablePluginStatus = 16,
1860    DeletePendingPluginStatus = 32,
1861    UpdatePendingPluginStatus = 64,
1862    DisablePendingPluginStatus = 128,
1863    PendingRestartPluginStatus = 512,
1864    BeingUpdatedPluginStatus = 1024,
1865    BeingDeletedPluginStatus = 2048,
1866    DependenciesBeingInstalledStatus = 4096,
1867}
1868#[repr(u8)]
1869#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1870pub enum BNPluginType {
1871    CorePluginType = 0,
1872    UiPluginType = 1,
1873    ArchitecturePluginType = 2,
1874    BinaryViewPluginType = 3,
1875    HelperPluginType = 4,
1876    SyncPluginType = 5,
1877}
1878#[repr(C)]
1879#[derive(Debug, Copy, Clone)]
1880pub struct BNLookupTableEntry {
1881    pub fromValues: *mut i64,
1882    pub fromCount: usize,
1883    pub toValue: i64,
1884}
1885#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1886const _: () = {
1887    ["Size of BNLookupTableEntry"][::std::mem::size_of::<BNLookupTableEntry>() - 24usize];
1888    ["Alignment of BNLookupTableEntry"][::std::mem::align_of::<BNLookupTableEntry>() - 8usize];
1889    ["Offset of field: BNLookupTableEntry::fromValues"]
1890        [::std::mem::offset_of!(BNLookupTableEntry, fromValues) - 0usize];
1891    ["Offset of field: BNLookupTableEntry::fromCount"]
1892        [::std::mem::offset_of!(BNLookupTableEntry, fromCount) - 8usize];
1893    ["Offset of field: BNLookupTableEntry::toValue"]
1894        [::std::mem::offset_of!(BNLookupTableEntry, toValue) - 16usize];
1895};
1896impl Default for BNLookupTableEntry {
1897    fn default() -> Self {
1898        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1899        unsafe {
1900            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1901            s.assume_init()
1902        }
1903    }
1904}
1905#[repr(C)]
1906#[derive(Debug, Copy, Clone)]
1907pub struct BNRegisterValue {
1908    pub state: BNRegisterValueType,
1909    pub value: i64,
1910    pub offset: i64,
1911    pub size: usize,
1912}
1913#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1914const _: () = {
1915    ["Size of BNRegisterValue"][::std::mem::size_of::<BNRegisterValue>() - 32usize];
1916    ["Alignment of BNRegisterValue"][::std::mem::align_of::<BNRegisterValue>() - 8usize];
1917    ["Offset of field: BNRegisterValue::state"]
1918        [::std::mem::offset_of!(BNRegisterValue, state) - 0usize];
1919    ["Offset of field: BNRegisterValue::value"]
1920        [::std::mem::offset_of!(BNRegisterValue, value) - 8usize];
1921    ["Offset of field: BNRegisterValue::offset"]
1922        [::std::mem::offset_of!(BNRegisterValue, offset) - 16usize];
1923    ["Offset of field: BNRegisterValue::size"]
1924        [::std::mem::offset_of!(BNRegisterValue, size) - 24usize];
1925};
1926impl Default for BNRegisterValue {
1927    fn default() -> Self {
1928        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1929        unsafe {
1930            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1931            s.assume_init()
1932        }
1933    }
1934}
1935#[repr(C)]
1936#[derive(Debug, Copy, Clone)]
1937pub struct BNRegisterValueWithConfidence {
1938    pub value: BNRegisterValue,
1939    pub confidence: u8,
1940}
1941#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1942const _: () = {
1943    ["Size of BNRegisterValueWithConfidence"]
1944        [::std::mem::size_of::<BNRegisterValueWithConfidence>() - 40usize];
1945    ["Alignment of BNRegisterValueWithConfidence"]
1946        [::std::mem::align_of::<BNRegisterValueWithConfidence>() - 8usize];
1947    ["Offset of field: BNRegisterValueWithConfidence::value"]
1948        [::std::mem::offset_of!(BNRegisterValueWithConfidence, value) - 0usize];
1949    ["Offset of field: BNRegisterValueWithConfidence::confidence"]
1950        [::std::mem::offset_of!(BNRegisterValueWithConfidence, confidence) - 32usize];
1951};
1952impl Default for BNRegisterValueWithConfidence {
1953    fn default() -> Self {
1954        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1955        unsafe {
1956            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1957            s.assume_init()
1958        }
1959    }
1960}
1961#[repr(C)]
1962#[derive(Debug, Copy, Clone)]
1963pub struct BNRegisterValueWithConfidenceAndRegister {
1964    pub reg: u32,
1965    pub value: BNRegisterValueWithConfidence,
1966}
1967#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1968const _: () = {
1969    ["Size of BNRegisterValueWithConfidenceAndRegister"]
1970        [::std::mem::size_of::<BNRegisterValueWithConfidenceAndRegister>() - 48usize];
1971    ["Alignment of BNRegisterValueWithConfidenceAndRegister"]
1972        [::std::mem::align_of::<BNRegisterValueWithConfidenceAndRegister>() - 8usize];
1973    ["Offset of field: BNRegisterValueWithConfidenceAndRegister::reg"]
1974        [::std::mem::offset_of!(BNRegisterValueWithConfidenceAndRegister, reg) - 0usize];
1975    ["Offset of field: BNRegisterValueWithConfidenceAndRegister::value"]
1976        [::std::mem::offset_of!(BNRegisterValueWithConfidenceAndRegister, value) - 8usize];
1977};
1978impl Default for BNRegisterValueWithConfidenceAndRegister {
1979    fn default() -> Self {
1980        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1981        unsafe {
1982            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1983            s.assume_init()
1984        }
1985    }
1986}
1987#[repr(C)]
1988#[derive(Debug, Default, Copy, Clone)]
1989pub struct BNValueRange {
1990    pub start: u64,
1991    pub end: u64,
1992    pub step: u64,
1993}
1994#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1995const _: () = {
1996    ["Size of BNValueRange"][::std::mem::size_of::<BNValueRange>() - 24usize];
1997    ["Alignment of BNValueRange"][::std::mem::align_of::<BNValueRange>() - 8usize];
1998    ["Offset of field: BNValueRange::start"][::std::mem::offset_of!(BNValueRange, start) - 0usize];
1999    ["Offset of field: BNValueRange::end"][::std::mem::offset_of!(BNValueRange, end) - 8usize];
2000    ["Offset of field: BNValueRange::step"][::std::mem::offset_of!(BNValueRange, step) - 16usize];
2001};
2002#[repr(C)]
2003#[derive(Debug, Copy, Clone)]
2004pub struct BNPossibleValueSet {
2005    pub state: BNRegisterValueType,
2006    pub value: i64,
2007    pub offset: i64,
2008    pub size: usize,
2009    pub ranges: *mut BNValueRange,
2010    pub valueSet: *mut i64,
2011    pub table: *mut BNLookupTableEntry,
2012    pub count: usize,
2013}
2014#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2015const _: () = {
2016    ["Size of BNPossibleValueSet"][::std::mem::size_of::<BNPossibleValueSet>() - 64usize];
2017    ["Alignment of BNPossibleValueSet"][::std::mem::align_of::<BNPossibleValueSet>() - 8usize];
2018    ["Offset of field: BNPossibleValueSet::state"]
2019        [::std::mem::offset_of!(BNPossibleValueSet, state) - 0usize];
2020    ["Offset of field: BNPossibleValueSet::value"]
2021        [::std::mem::offset_of!(BNPossibleValueSet, value) - 8usize];
2022    ["Offset of field: BNPossibleValueSet::offset"]
2023        [::std::mem::offset_of!(BNPossibleValueSet, offset) - 16usize];
2024    ["Offset of field: BNPossibleValueSet::size"]
2025        [::std::mem::offset_of!(BNPossibleValueSet, size) - 24usize];
2026    ["Offset of field: BNPossibleValueSet::ranges"]
2027        [::std::mem::offset_of!(BNPossibleValueSet, ranges) - 32usize];
2028    ["Offset of field: BNPossibleValueSet::valueSet"]
2029        [::std::mem::offset_of!(BNPossibleValueSet, valueSet) - 40usize];
2030    ["Offset of field: BNPossibleValueSet::table"]
2031        [::std::mem::offset_of!(BNPossibleValueSet, table) - 48usize];
2032    ["Offset of field: BNPossibleValueSet::count"]
2033        [::std::mem::offset_of!(BNPossibleValueSet, count) - 56usize];
2034};
2035impl Default for BNPossibleValueSet {
2036    fn default() -> Self {
2037        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2038        unsafe {
2039            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2040            s.assume_init()
2041        }
2042    }
2043}
2044#[repr(C)]
2045#[derive(Debug, Default, Copy, Clone)]
2046pub struct BNRegisterOrConstant {
2047    pub constant: bool,
2048    pub reg: u32,
2049    pub value: u64,
2050}
2051#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2052const _: () = {
2053    ["Size of BNRegisterOrConstant"][::std::mem::size_of::<BNRegisterOrConstant>() - 16usize];
2054    ["Alignment of BNRegisterOrConstant"][::std::mem::align_of::<BNRegisterOrConstant>() - 8usize];
2055    ["Offset of field: BNRegisterOrConstant::constant"]
2056        [::std::mem::offset_of!(BNRegisterOrConstant, constant) - 0usize];
2057    ["Offset of field: BNRegisterOrConstant::reg"]
2058        [::std::mem::offset_of!(BNRegisterOrConstant, reg) - 4usize];
2059    ["Offset of field: BNRegisterOrConstant::value"]
2060        [::std::mem::offset_of!(BNRegisterOrConstant, value) - 8usize];
2061};
2062#[repr(C)]
2063#[derive(Debug, Copy, Clone)]
2064pub struct BNDataVariable {
2065    pub address: u64,
2066    pub type_: *mut BNType,
2067    pub autoDiscovered: bool,
2068    pub typeConfidence: u8,
2069}
2070#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2071const _: () = {
2072    ["Size of BNDataVariable"][::std::mem::size_of::<BNDataVariable>() - 24usize];
2073    ["Alignment of BNDataVariable"][::std::mem::align_of::<BNDataVariable>() - 8usize];
2074    ["Offset of field: BNDataVariable::address"]
2075        [::std::mem::offset_of!(BNDataVariable, address) - 0usize];
2076    ["Offset of field: BNDataVariable::type_"]
2077        [::std::mem::offset_of!(BNDataVariable, type_) - 8usize];
2078    ["Offset of field: BNDataVariable::autoDiscovered"]
2079        [::std::mem::offset_of!(BNDataVariable, autoDiscovered) - 16usize];
2080    ["Offset of field: BNDataVariable::typeConfidence"]
2081        [::std::mem::offset_of!(BNDataVariable, typeConfidence) - 17usize];
2082};
2083impl Default for BNDataVariable {
2084    fn default() -> Self {
2085        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2086        unsafe {
2087            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2088            s.assume_init()
2089        }
2090    }
2091}
2092#[repr(C)]
2093#[derive(Debug, Copy, Clone)]
2094pub struct BNDataVariableAndName {
2095    pub address: u64,
2096    pub type_: *mut BNType,
2097    pub name: *mut ::std::os::raw::c_char,
2098    pub autoDiscovered: bool,
2099    pub typeConfidence: u8,
2100}
2101#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2102const _: () = {
2103    ["Size of BNDataVariableAndName"][::std::mem::size_of::<BNDataVariableAndName>() - 32usize];
2104    ["Alignment of BNDataVariableAndName"]
2105        [::std::mem::align_of::<BNDataVariableAndName>() - 8usize];
2106    ["Offset of field: BNDataVariableAndName::address"]
2107        [::std::mem::offset_of!(BNDataVariableAndName, address) - 0usize];
2108    ["Offset of field: BNDataVariableAndName::type_"]
2109        [::std::mem::offset_of!(BNDataVariableAndName, type_) - 8usize];
2110    ["Offset of field: BNDataVariableAndName::name"]
2111        [::std::mem::offset_of!(BNDataVariableAndName, name) - 16usize];
2112    ["Offset of field: BNDataVariableAndName::autoDiscovered"]
2113        [::std::mem::offset_of!(BNDataVariableAndName, autoDiscovered) - 24usize];
2114    ["Offset of field: BNDataVariableAndName::typeConfidence"]
2115        [::std::mem::offset_of!(BNDataVariableAndName, typeConfidence) - 25usize];
2116};
2117impl Default for BNDataVariableAndName {
2118    fn default() -> Self {
2119        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2120        unsafe {
2121            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2122            s.assume_init()
2123        }
2124    }
2125}
2126#[repr(C)]
2127#[derive(Debug, Copy, Clone)]
2128pub struct BNDataVariableAndNameAndDebugParser {
2129    pub address: u64,
2130    pub type_: *mut BNType,
2131    pub name: *mut ::std::os::raw::c_char,
2132    pub parser: *mut ::std::os::raw::c_char,
2133    pub autoDiscovered: bool,
2134    pub typeConfidence: u8,
2135}
2136#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2137const _: () = {
2138    ["Size of BNDataVariableAndNameAndDebugParser"]
2139        [::std::mem::size_of::<BNDataVariableAndNameAndDebugParser>() - 40usize];
2140    ["Alignment of BNDataVariableAndNameAndDebugParser"]
2141        [::std::mem::align_of::<BNDataVariableAndNameAndDebugParser>() - 8usize];
2142    ["Offset of field: BNDataVariableAndNameAndDebugParser::address"]
2143        [::std::mem::offset_of!(BNDataVariableAndNameAndDebugParser, address) - 0usize];
2144    ["Offset of field: BNDataVariableAndNameAndDebugParser::type_"]
2145        [::std::mem::offset_of!(BNDataVariableAndNameAndDebugParser, type_) - 8usize];
2146    ["Offset of field: BNDataVariableAndNameAndDebugParser::name"]
2147        [::std::mem::offset_of!(BNDataVariableAndNameAndDebugParser, name) - 16usize];
2148    ["Offset of field: BNDataVariableAndNameAndDebugParser::parser"]
2149        [::std::mem::offset_of!(BNDataVariableAndNameAndDebugParser, parser) - 24usize];
2150    ["Offset of field: BNDataVariableAndNameAndDebugParser::autoDiscovered"]
2151        [::std::mem::offset_of!(BNDataVariableAndNameAndDebugParser, autoDiscovered) - 32usize];
2152    ["Offset of field: BNDataVariableAndNameAndDebugParser::typeConfidence"]
2153        [::std::mem::offset_of!(BNDataVariableAndNameAndDebugParser, typeConfidence) - 33usize];
2154};
2155impl Default for BNDataVariableAndNameAndDebugParser {
2156    fn default() -> Self {
2157        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2158        unsafe {
2159            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2160            s.assume_init()
2161        }
2162    }
2163}
2164#[repr(u8)]
2165#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2166pub enum BNMediumLevelILOperation {
2167    MLIL_NOP = 0,
2168    #[doc = " Not valid in SSA form (see MLIL_SET_VAR_SSA)"]
2169    MLIL_SET_VAR = 1,
2170    #[doc = " Not valid in SSA form (see MLIL_SET_VAR_FIELD)"]
2171    MLIL_SET_VAR_FIELD = 2,
2172    #[doc = " Not valid in SSA form (see MLIL_SET_VAR_SPLIT_SSA)"]
2173    MLIL_SET_VAR_SPLIT = 3,
2174    MLIL_ASSERT = 4,
2175    MLIL_FORCE_VER = 5,
2176    #[doc = " Not valid in SSA form (see MLIL_LOAD_SSA)"]
2177    MLIL_LOAD = 6,
2178    #[doc = " Not valid in SSA form (see MLIL_LOAD_STRUCT_SSA)"]
2179    MLIL_LOAD_STRUCT = 7,
2180    #[doc = " Not valid in SSA form (see MLIL_STORE_SSA)"]
2181    MLIL_STORE = 8,
2182    #[doc = " Not valid in SSA form (see MLIL_STORE_STRUCT_SSA)"]
2183    MLIL_STORE_STRUCT = 9,
2184    #[doc = " Not valid in SSA form (see MLIL_VAR_SSA)"]
2185    MLIL_VAR = 10,
2186    #[doc = " Not valid in SSA form (see MLIL_VAR_SSA_FIELD)"]
2187    MLIL_VAR_FIELD = 11,
2188    #[doc = " Not valid in SSA form (see MLIL_VAR_SPLIT_SSA)"]
2189    MLIL_VAR_SPLIT = 12,
2190    MLIL_ADDRESS_OF = 13,
2191    MLIL_ADDRESS_OF_FIELD = 14,
2192    MLIL_PASS_BY_REF = 15,
2193    MLIL_RETURN_BY_REF = 16,
2194    MLIL_CONST = 17,
2195    MLIL_CONST_DATA = 18,
2196    MLIL_CONST_PTR = 19,
2197    MLIL_EXTERN_PTR = 20,
2198    MLIL_FLOAT_CONST = 21,
2199    MLIL_IMPORT = 22,
2200    MLIL_ADD = 23,
2201    MLIL_ADC = 24,
2202    MLIL_SUB = 25,
2203    MLIL_SBB = 26,
2204    MLIL_AND = 27,
2205    MLIL_OR = 28,
2206    MLIL_XOR = 29,
2207    MLIL_LSL = 30,
2208    MLIL_LSR = 31,
2209    MLIL_ASR = 32,
2210    MLIL_ROL = 33,
2211    MLIL_RLC = 34,
2212    MLIL_ROR = 35,
2213    MLIL_RRC = 36,
2214    MLIL_MUL = 37,
2215    MLIL_MULU_DP = 38,
2216    MLIL_MULS_DP = 39,
2217    MLIL_DIVU = 40,
2218    MLIL_DIVU_DP = 41,
2219    MLIL_DIVS = 42,
2220    MLIL_DIVS_DP = 43,
2221    MLIL_MODU = 44,
2222    MLIL_MODU_DP = 45,
2223    MLIL_MODS = 46,
2224    MLIL_MODS_DP = 47,
2225    MLIL_NEG = 48,
2226    MLIL_NOT = 49,
2227    MLIL_SX = 50,
2228    MLIL_ZX = 51,
2229    MLIL_LOW_PART = 52,
2230    MLIL_JUMP = 53,
2231    MLIL_JUMP_TO = 54,
2232    #[doc = " Intermediate stages, does not appear in final forms"]
2233    MLIL_RET_HINT = 55,
2234    #[doc = " Not valid in SSA form (see MLIL_CALL_SSA)"]
2235    MLIL_CALL = 56,
2236    #[doc = " Not valid in SSA form (see MLIL_CALL_UNTYPED_SSA)"]
2237    MLIL_CALL_UNTYPED = 57,
2238    #[doc = " Only valid within MLIL_CALL, MLIL_SYSCALL, MLIL_TAILCALL family instructions"]
2239    MLIL_CALL_PARAM = 58,
2240    #[doc = " Only valid within the MLIL_CALL_PARAM or MLIL_CALL_PARAM_SSA instructions inside\n untyped call variants"]
2241    MLIL_SEPARATE_PARAM_LIST = 59,
2242    #[doc = " Only valid within the MLIL_CALL_PARAM, MLIL_CALL_PARAM_SSA, or\n MLIL_SEPARATE_PARAM_LIST instructions inside untyped call variants"]
2243    MLIL_SHARED_PARAM_SLOT = 60,
2244    #[doc = " Only valid within MLIL_CALL, MLIL_SYSCALL, MLIL_TAILCALL family instructions"]
2245    MLIL_VAR_OUTPUT = 61,
2246    #[doc = " Only valid within MLIL_CALL, MLIL_SYSCALL, MLIL_TAILCALL family instructions"]
2247    MLIL_VAR_OUTPUT_FIELD = 62,
2248    #[doc = " Only valid within MLIL_CALL, MLIL_SYSCALL, MLIL_TAILCALL family instructions"]
2249    MLIL_STORE_OUTPUT = 63,
2250    MLIL_RET = 64,
2251    MLIL_NORET = 65,
2252    MLIL_IF = 66,
2253    MLIL_GOTO = 67,
2254    MLIL_CMP_E = 68,
2255    MLIL_CMP_NE = 69,
2256    MLIL_CMP_SLT = 70,
2257    MLIL_CMP_ULT = 71,
2258    MLIL_CMP_SLE = 72,
2259    MLIL_CMP_ULE = 73,
2260    MLIL_CMP_SGE = 74,
2261    MLIL_CMP_UGE = 75,
2262    MLIL_CMP_SGT = 76,
2263    MLIL_CMP_UGT = 77,
2264    MLIL_TEST_BIT = 78,
2265    MLIL_BOOL_TO_INT = 79,
2266    MLIL_ADD_OVERFLOW = 80,
2267    #[doc = " Not valid in SSA form (see MLIL_SYSCALL_SSA)"]
2268    MLIL_SYSCALL = 81,
2269    #[doc = " Not valid in SSA form (see MLIL_SYSCALL_UNTYPED_SSA)"]
2270    MLIL_SYSCALL_UNTYPED = 82,
2271    #[doc = " Not valid in SSA form (see MLIL_TAILCALL_SSA)"]
2272    MLIL_TAILCALL = 83,
2273    #[doc = " Not valid in SSA form (see MLIL_TAILCALL_UNTYPED_SSA)"]
2274    MLIL_TAILCALL_UNTYPED = 84,
2275    #[doc = " Not valid in SSA form (see MLIL_INTRINSIC_SSA)"]
2276    MLIL_INTRINSIC = 85,
2277    #[doc = " Not valid in SSA from (see MLIL_FREE_VAR_SLOT_SSA)"]
2278    MLIL_FREE_VAR_SLOT = 86,
2279    MLIL_BP = 87,
2280    MLIL_TRAP = 88,
2281    MLIL_UNDEF = 89,
2282    MLIL_UNIMPL = 90,
2283    MLIL_UNIMPL_MEM = 91,
2284    #[doc = " Floating point"]
2285    MLIL_FADD = 92,
2286    #[doc = " Floating point"]
2287    MLIL_FSUB = 93,
2288    #[doc = " Floating point"]
2289    MLIL_FMUL = 94,
2290    #[doc = " Floating point"]
2291    MLIL_FDIV = 95,
2292    #[doc = " Floating point"]
2293    MLIL_FSQRT = 96,
2294    #[doc = " Floating point"]
2295    MLIL_FNEG = 97,
2296    #[doc = " Floating point"]
2297    MLIL_FABS = 98,
2298    #[doc = " Floating point"]
2299    MLIL_FLOAT_TO_INT = 99,
2300    #[doc = " Floating point"]
2301    MLIL_INT_TO_FLOAT = 100,
2302    #[doc = " Floating point"]
2303    MLIL_FLOAT_CONV = 101,
2304    #[doc = " Floating point"]
2305    MLIL_ROUND_TO_INT = 102,
2306    #[doc = " Floating point"]
2307    MLIL_FLOOR = 103,
2308    #[doc = " Floating point"]
2309    MLIL_CEIL = 104,
2310    #[doc = " Floating point"]
2311    MLIL_FTRUNC = 105,
2312    #[doc = " Floating point"]
2313    MLIL_FCMP_E = 106,
2314    #[doc = " Floating point"]
2315    MLIL_FCMP_NE = 107,
2316    #[doc = " Floating point"]
2317    MLIL_FCMP_LT = 108,
2318    #[doc = " Floating point"]
2319    MLIL_FCMP_LE = 109,
2320    #[doc = " Floating point"]
2321    MLIL_FCMP_GE = 110,
2322    #[doc = " Floating point"]
2323    MLIL_FCMP_GT = 111,
2324    #[doc = " Floating point"]
2325    MLIL_FCMP_O = 112,
2326    #[doc = " Floating point"]
2327    MLIL_FCMP_UO = 113,
2328    #[doc = " The following instructions are only used in SSA form"]
2329    MLIL_SET_VAR_SSA = 114,
2330    #[doc = " The following instructions are only used in SSA form"]
2331    MLIL_SET_VAR_SSA_FIELD = 115,
2332    #[doc = " The following instructions are only used in SSA form"]
2333    MLIL_SET_VAR_SPLIT_SSA = 116,
2334    #[doc = " The following instructions are only used in SSA form"]
2335    MLIL_SET_VAR_ALIASED = 117,
2336    #[doc = " The following instructions are only used in SSA form"]
2337    MLIL_SET_VAR_ALIASED_FIELD = 118,
2338    #[doc = " The following instructions are only used in SSA form"]
2339    MLIL_VAR_SSA = 119,
2340    #[doc = " The following instructions are only used in SSA form"]
2341    MLIL_VAR_SSA_FIELD = 120,
2342    #[doc = " The following instructions are only used in SSA form"]
2343    MLIL_VAR_ALIASED = 121,
2344    #[doc = " The following instructions are only used in SSA form"]
2345    MLIL_VAR_ALIASED_FIELD = 122,
2346    #[doc = " The following instructions are only used in SSA form"]
2347    MLIL_VAR_SPLIT_SSA = 123,
2348    #[doc = " The following instructions are only used in SSA form"]
2349    MLIL_ASSERT_SSA = 124,
2350    #[doc = " The following instructions are only used in SSA form"]
2351    MLIL_FORCE_VER_SSA = 125,
2352    #[doc = " The following instructions are only used in SSA form"]
2353    MLIL_CALL_SSA = 126,
2354    #[doc = " The following instructions are only used in SSA form"]
2355    MLIL_CALL_UNTYPED_SSA = 127,
2356    #[doc = " The following instructions are only used in SSA form"]
2357    MLIL_SYSCALL_SSA = 128,
2358    #[doc = " The following instructions are only used in SSA form"]
2359    MLIL_SYSCALL_UNTYPED_SSA = 129,
2360    #[doc = " The following instructions are only used in SSA form"]
2361    MLIL_TAILCALL_SSA = 130,
2362    #[doc = " The following instructions are only used in SSA form"]
2363    MLIL_TAILCALL_UNTYPED_SSA = 131,
2364    #[doc = " Only valid within the MLIL_CALL_SSA, MLIL_SYSCALL_SSA, MLIL_TAILCALL_SSA, MLIL_INTRINSIC_SSA family\n instructions"]
2365    MLIL_CALL_PARAM_SSA = 132,
2366    #[doc = " Only valid within the MLIL_CALL_SSA or MLIL_SYSCALL_SSA, MLIL_TAILCALL_SSA family\n instructions"]
2367    MLIL_CALL_OUTPUT_SSA = 133,
2368    #[doc = " Only valid within the MLIL_CALL_OUTPUT_SSA instruction"]
2369    MLIL_VAR_OUTPUT_SSA = 134,
2370    #[doc = " Only valid within the MLIL_CALL_OUTPUT_SSA instruction"]
2371    MLIL_VAR_OUTPUT_SSA_FIELD = 135,
2372    #[doc = " Only valid within the MLIL_CALL_OUTPUT_SSA instruction"]
2373    MLIL_VAR_OUTPUT_ALIASED = 136,
2374    #[doc = " Only valid within the MLIL_CALL_OUTPUT_SSA instruction"]
2375    MLIL_VAR_OUTPUT_ALIASED_FIELD = 137,
2376    #[doc = " Only valid within the MLIL_MEMORY_INTRINSIC_SSA instruction"]
2377    MLIL_MEMORY_INTRINSIC_OUTPUT_SSA = 138,
2378    MLIL_LOAD_SSA = 139,
2379    MLIL_LOAD_STRUCT_SSA = 140,
2380    MLIL_STORE_SSA = 141,
2381    MLIL_STORE_STRUCT_SSA = 142,
2382    MLIL_INTRINSIC_SSA = 143,
2383    MLIL_MEMORY_INTRINSIC_SSA = 144,
2384    MLIL_FREE_VAR_SLOT_SSA = 145,
2385    MLIL_VAR_PHI = 146,
2386    MLIL_MEM_PHI = 147,
2387    #[doc = " Must be expanded by a future workflow step, used temporarily to insert instructions"]
2388    MLIL_BLOCK_TO_EXPAND = 148,
2389    #[doc = " Reverse byte order of the whole value"]
2390    MLIL_BSWAP = 149,
2391    #[doc = " Population count (number of set bits)"]
2392    MLIL_POPCNT = 150,
2393    #[doc = " Count leading zero bits; clz(0) == 8 * size"]
2394    MLIL_CLZ = 151,
2395    #[doc = " Count trailing zero bits; ctz(0) == 8 * size"]
2396    MLIL_CTZ = 152,
2397    #[doc = " Reverse bit order of the whole value"]
2398    MLIL_RBIT = 153,
2399    #[doc = " Count leading sign bits; number of bits below the sign bit that match it"]
2400    MLIL_CLS = 154,
2401    #[doc = " Signed minimum of left and right"]
2402    MLIL_MINS = 155,
2403    #[doc = " Signed maximum of left and right"]
2404    MLIL_MAXS = 156,
2405    #[doc = " Unsigned minimum of left and right"]
2406    MLIL_MINU = 157,
2407    #[doc = " Unsigned maximum of left and right"]
2408    MLIL_MAXU = 158,
2409    #[doc = " Signed absolute value of src; abs(INT_MIN) == INT_MIN"]
2410    MLIL_ABS = 159,
2411}
2412#[repr(C)]
2413#[derive(Debug, Copy, Clone)]
2414pub struct BNMediumLevelILInstruction {
2415    pub operation: BNMediumLevelILOperation,
2416    pub attributes: u32,
2417    pub sourceOperand: u32,
2418    pub size: usize,
2419    pub operands: [u64; 5usize],
2420    pub address: u64,
2421}
2422#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2423const _: () = {
2424    ["Size of BNMediumLevelILInstruction"]
2425        [::std::mem::size_of::<BNMediumLevelILInstruction>() - 72usize];
2426    ["Alignment of BNMediumLevelILInstruction"]
2427        [::std::mem::align_of::<BNMediumLevelILInstruction>() - 8usize];
2428    ["Offset of field: BNMediumLevelILInstruction::operation"]
2429        [::std::mem::offset_of!(BNMediumLevelILInstruction, operation) - 0usize];
2430    ["Offset of field: BNMediumLevelILInstruction::attributes"]
2431        [::std::mem::offset_of!(BNMediumLevelILInstruction, attributes) - 4usize];
2432    ["Offset of field: BNMediumLevelILInstruction::sourceOperand"]
2433        [::std::mem::offset_of!(BNMediumLevelILInstruction, sourceOperand) - 8usize];
2434    ["Offset of field: BNMediumLevelILInstruction::size"]
2435        [::std::mem::offset_of!(BNMediumLevelILInstruction, size) - 16usize];
2436    ["Offset of field: BNMediumLevelILInstruction::operands"]
2437        [::std::mem::offset_of!(BNMediumLevelILInstruction, operands) - 24usize];
2438    ["Offset of field: BNMediumLevelILInstruction::address"]
2439        [::std::mem::offset_of!(BNMediumLevelILInstruction, address) - 64usize];
2440};
2441impl Default for BNMediumLevelILInstruction {
2442    fn default() -> Self {
2443        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2444        unsafe {
2445            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2446            s.assume_init()
2447        }
2448    }
2449}
2450#[repr(C)]
2451#[derive(Debug, Default, Copy, Clone)]
2452pub struct BNMediumLevelILLabel {
2453    pub resolved: bool,
2454    pub ref_: usize,
2455    pub operand: usize,
2456}
2457#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2458const _: () = {
2459    ["Size of BNMediumLevelILLabel"][::std::mem::size_of::<BNMediumLevelILLabel>() - 24usize];
2460    ["Alignment of BNMediumLevelILLabel"][::std::mem::align_of::<BNMediumLevelILLabel>() - 8usize];
2461    ["Offset of field: BNMediumLevelILLabel::resolved"]
2462        [::std::mem::offset_of!(BNMediumLevelILLabel, resolved) - 0usize];
2463    ["Offset of field: BNMediumLevelILLabel::ref_"]
2464        [::std::mem::offset_of!(BNMediumLevelILLabel, ref_) - 8usize];
2465    ["Offset of field: BNMediumLevelILLabel::operand"]
2466        [::std::mem::offset_of!(BNMediumLevelILLabel, operand) - 16usize];
2467};
2468#[repr(u8)]
2469#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2470pub enum BNVariableSourceType {
2471    StackVariableSourceType = 0,
2472    RegisterVariableSourceType = 1,
2473    FlagVariableSourceType = 2,
2474    CompositeReturnValueSourceType = 3,
2475    CompositeParameterSourceType = 4,
2476}
2477#[repr(C)]
2478#[derive(Debug, Copy, Clone)]
2479pub struct BNVariable {
2480    pub type_: BNVariableSourceType,
2481    pub index: u32,
2482    pub storage: i64,
2483}
2484#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2485const _: () = {
2486    ["Size of BNVariable"][::std::mem::size_of::<BNVariable>() - 16usize];
2487    ["Alignment of BNVariable"][::std::mem::align_of::<BNVariable>() - 8usize];
2488    ["Offset of field: BNVariable::type_"][::std::mem::offset_of!(BNVariable, type_) - 0usize];
2489    ["Offset of field: BNVariable::index"][::std::mem::offset_of!(BNVariable, index) - 4usize];
2490    ["Offset of field: BNVariable::storage"][::std::mem::offset_of!(BNVariable, storage) - 8usize];
2491};
2492impl Default for BNVariable {
2493    fn default() -> Self {
2494        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2495        unsafe {
2496            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2497            s.assume_init()
2498        }
2499    }
2500}
2501#[repr(u8)]
2502#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2503pub enum BNHighLevelILOperation {
2504    HLIL_NOP = 0,
2505    HLIL_BLOCK = 1,
2506    HLIL_IF = 2,
2507    HLIL_WHILE = 3,
2508    HLIL_DO_WHILE = 4,
2509    HLIL_FOR = 5,
2510    HLIL_SWITCH = 6,
2511    HLIL_CASE = 7,
2512    HLIL_BREAK = 8,
2513    HLIL_CONTINUE = 9,
2514    HLIL_JUMP = 10,
2515    HLIL_RET = 11,
2516    HLIL_NORET = 12,
2517    HLIL_GOTO = 13,
2518    HLIL_LABEL = 14,
2519    HLIL_VAR_DECLARE = 15,
2520    HLIL_VAR_INIT = 16,
2521    HLIL_ASSIGN = 17,
2522    HLIL_ASSIGN_UNPACK = 18,
2523    HLIL_FORCE_VER = 19,
2524    HLIL_ASSERT = 20,
2525    HLIL_VAR = 21,
2526    HLIL_STRUCT_FIELD = 22,
2527    HLIL_ARRAY_INDEX = 23,
2528    HLIL_SPLIT = 24,
2529    HLIL_DEREF = 25,
2530    HLIL_DEREF_FIELD = 26,
2531    HLIL_ADDRESS_OF = 27,
2532    HLIL_PASS_BY_REF = 28,
2533    HLIL_RETURN_BY_REF = 29,
2534    HLIL_CONST = 30,
2535    HLIL_CONST_DATA = 31,
2536    HLIL_CONST_PTR = 32,
2537    HLIL_EXTERN_PTR = 33,
2538    HLIL_FLOAT_CONST = 34,
2539    HLIL_IMPORT = 35,
2540    HLIL_ADD = 36,
2541    HLIL_ADC = 37,
2542    HLIL_SUB = 38,
2543    HLIL_SBB = 39,
2544    HLIL_AND = 40,
2545    HLIL_OR = 41,
2546    HLIL_XOR = 42,
2547    HLIL_LSL = 43,
2548    HLIL_LSR = 44,
2549    HLIL_ASR = 45,
2550    HLIL_ROL = 46,
2551    HLIL_RLC = 47,
2552    HLIL_ROR = 48,
2553    HLIL_RRC = 49,
2554    HLIL_MUL = 50,
2555    HLIL_MULU_DP = 51,
2556    HLIL_MULS_DP = 52,
2557    HLIL_DIVU = 53,
2558    HLIL_DIVU_DP = 54,
2559    HLIL_DIVS = 55,
2560    HLIL_DIVS_DP = 56,
2561    HLIL_MODU = 57,
2562    HLIL_MODU_DP = 58,
2563    HLIL_MODS = 59,
2564    HLIL_MODS_DP = 60,
2565    HLIL_NEG = 61,
2566    HLIL_NOT = 62,
2567    HLIL_SX = 63,
2568    HLIL_ZX = 64,
2569    HLIL_LOW_PART = 65,
2570    HLIL_CALL = 66,
2571    HLIL_CMP_E = 67,
2572    HLIL_CMP_NE = 68,
2573    HLIL_CMP_SLT = 69,
2574    HLIL_CMP_ULT = 70,
2575    HLIL_CMP_SLE = 71,
2576    HLIL_CMP_ULE = 72,
2577    HLIL_CMP_SGE = 73,
2578    HLIL_CMP_UGE = 74,
2579    HLIL_CMP_SGT = 75,
2580    HLIL_CMP_UGT = 76,
2581    HLIL_TEST_BIT = 77,
2582    HLIL_BOOL_TO_INT = 78,
2583    HLIL_ADD_OVERFLOW = 79,
2584    HLIL_SYSCALL = 80,
2585    HLIL_TAILCALL = 81,
2586    HLIL_INTRINSIC = 82,
2587    HLIL_BP = 83,
2588    HLIL_TRAP = 84,
2589    HLIL_UNDEF = 85,
2590    HLIL_UNIMPL = 86,
2591    HLIL_UNIMPL_MEM = 87,
2592    HLIL_STRUCT_INIT = 88,
2593    #[doc = " Only valid in HLIL_STRUCT_INIT"]
2594    HLIL_STRUCT_INIT_FIELD = 89,
2595    #[doc = " Floating point"]
2596    HLIL_FADD = 90,
2597    #[doc = " Floating point"]
2598    HLIL_FSUB = 91,
2599    #[doc = " Floating point"]
2600    HLIL_FMUL = 92,
2601    #[doc = " Floating point"]
2602    HLIL_FDIV = 93,
2603    #[doc = " Floating point"]
2604    HLIL_FSQRT = 94,
2605    #[doc = " Floating point"]
2606    HLIL_FNEG = 95,
2607    #[doc = " Floating point"]
2608    HLIL_FABS = 96,
2609    #[doc = " Floating point"]
2610    HLIL_FLOAT_TO_INT = 97,
2611    #[doc = " Floating point"]
2612    HLIL_INT_TO_FLOAT = 98,
2613    #[doc = " Floating point"]
2614    HLIL_FLOAT_CONV = 99,
2615    #[doc = " Floating point"]
2616    HLIL_ROUND_TO_INT = 100,
2617    #[doc = " Floating point"]
2618    HLIL_FLOOR = 101,
2619    #[doc = " Floating point"]
2620    HLIL_CEIL = 102,
2621    #[doc = " Floating point"]
2622    HLIL_FTRUNC = 103,
2623    #[doc = " Floating point"]
2624    HLIL_FCMP_E = 104,
2625    #[doc = " Floating point"]
2626    HLIL_FCMP_NE = 105,
2627    #[doc = " Floating point"]
2628    HLIL_FCMP_LT = 106,
2629    #[doc = " Floating point"]
2630    HLIL_FCMP_LE = 107,
2631    #[doc = " Floating point"]
2632    HLIL_FCMP_GE = 108,
2633    #[doc = " Floating point"]
2634    HLIL_FCMP_GT = 109,
2635    #[doc = " Floating point"]
2636    HLIL_FCMP_O = 110,
2637    #[doc = " Floating point"]
2638    HLIL_FCMP_UO = 111,
2639    #[doc = " Unreachable hint, typically used in switch statements that analysis knows\n has an unreachable default."]
2640    HLIL_UNREACHABLE = 112,
2641    #[doc = " The following instructions are only used in SSA form"]
2642    HLIL_WHILE_SSA = 113,
2643    #[doc = " The following instructions are only used in SSA form"]
2644    HLIL_DO_WHILE_SSA = 114,
2645    #[doc = " The following instructions are only used in SSA form"]
2646    HLIL_FOR_SSA = 115,
2647    #[doc = " The following instructions are only used in SSA form"]
2648    HLIL_VAR_INIT_SSA = 116,
2649    #[doc = " The following instructions are only used in SSA form"]
2650    HLIL_ASSIGN_MEM_SSA = 117,
2651    #[doc = " The following instructions are only used in SSA form"]
2652    HLIL_ASSIGN_UNPACK_MEM_SSA = 118,
2653    #[doc = " The following instructions are only used in SSA form"]
2654    HLIL_FORCE_VER_SSA = 119,
2655    #[doc = " The following instructions are only used in SSA form"]
2656    HLIL_ASSERT_SSA = 120,
2657    #[doc = " The following instructions are only used in SSA form"]
2658    HLIL_VAR_SSA = 121,
2659    #[doc = " The following instructions are only used in SSA form"]
2660    HLIL_VAR_SSA_PARTIAL = 122,
2661    #[doc = " The following instructions are only used in SSA form"]
2662    HLIL_ARRAY_INDEX_SSA = 123,
2663    #[doc = " The following instructions are only used in SSA form"]
2664    HLIL_DEREF_SSA = 124,
2665    #[doc = " The following instructions are only used in SSA form"]
2666    HLIL_DEREF_FIELD_SSA = 125,
2667    #[doc = " The following instructions are only used in SSA form"]
2668    HLIL_CALL_SSA = 126,
2669    #[doc = " The following instructions are only used in SSA form"]
2670    HLIL_SYSCALL_SSA = 127,
2671    #[doc = " The following instructions are only used in SSA form"]
2672    HLIL_INTRINSIC_SSA = 128,
2673    #[doc = " The following instructions are only used in SSA form"]
2674    HLIL_VAR_PHI = 129,
2675    #[doc = " The following instructions are only used in SSA form"]
2676    HLIL_MEM_PHI = 130,
2677    #[doc = " Reverse byte order of the whole value"]
2678    HLIL_BSWAP = 131,
2679    #[doc = " Population count (number of set bits)"]
2680    HLIL_POPCNT = 132,
2681    #[doc = " Count leading zero bits; clz(0) == 8 * size"]
2682    HLIL_CLZ = 133,
2683    #[doc = " Count trailing zero bits; ctz(0) == 8 * size"]
2684    HLIL_CTZ = 134,
2685    #[doc = " Reverse bit order of the whole value"]
2686    HLIL_RBIT = 135,
2687    #[doc = " Count leading sign bits; number of bits below the sign bit that match it"]
2688    HLIL_CLS = 136,
2689    #[doc = " Signed minimum of left and right"]
2690    HLIL_MINS = 137,
2691    #[doc = " Signed maximum of left and right"]
2692    HLIL_MAXS = 138,
2693    #[doc = " Unsigned minimum of left and right"]
2694    HLIL_MINU = 139,
2695    #[doc = " Unsigned maximum of left and right"]
2696    HLIL_MAXU = 140,
2697    #[doc = " Signed absolute value of src; abs(INT_MIN) == INT_MIN"]
2698    HLIL_ABS = 141,
2699}
2700#[repr(C)]
2701#[derive(Debug, Copy, Clone)]
2702pub struct BNHighLevelILInstruction {
2703    pub operation: BNHighLevelILOperation,
2704    pub attributes: u32,
2705    pub sourceOperand: u32,
2706    pub size: usize,
2707    pub operands: [u64; 5usize],
2708    pub address: u64,
2709    pub parent: usize,
2710}
2711#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2712const _: () = {
2713    ["Size of BNHighLevelILInstruction"]
2714        [::std::mem::size_of::<BNHighLevelILInstruction>() - 80usize];
2715    ["Alignment of BNHighLevelILInstruction"]
2716        [::std::mem::align_of::<BNHighLevelILInstruction>() - 8usize];
2717    ["Offset of field: BNHighLevelILInstruction::operation"]
2718        [::std::mem::offset_of!(BNHighLevelILInstruction, operation) - 0usize];
2719    ["Offset of field: BNHighLevelILInstruction::attributes"]
2720        [::std::mem::offset_of!(BNHighLevelILInstruction, attributes) - 4usize];
2721    ["Offset of field: BNHighLevelILInstruction::sourceOperand"]
2722        [::std::mem::offset_of!(BNHighLevelILInstruction, sourceOperand) - 8usize];
2723    ["Offset of field: BNHighLevelILInstruction::size"]
2724        [::std::mem::offset_of!(BNHighLevelILInstruction, size) - 16usize];
2725    ["Offset of field: BNHighLevelILInstruction::operands"]
2726        [::std::mem::offset_of!(BNHighLevelILInstruction, operands) - 24usize];
2727    ["Offset of field: BNHighLevelILInstruction::address"]
2728        [::std::mem::offset_of!(BNHighLevelILInstruction, address) - 64usize];
2729    ["Offset of field: BNHighLevelILInstruction::parent"]
2730        [::std::mem::offset_of!(BNHighLevelILInstruction, parent) - 72usize];
2731};
2732impl Default for BNHighLevelILInstruction {
2733    fn default() -> Self {
2734        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2735        unsafe {
2736            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2737            s.assume_init()
2738        }
2739    }
2740}
2741#[doc = " Callbacks"]
2742#[repr(C)]
2743#[derive(Debug, Copy, Clone)]
2744pub struct BNLogListener {
2745    pub context: *mut ::std::os::raw::c_void,
2746    pub log: ::std::option::Option<
2747        unsafe extern "C" fn(
2748            ctxt: *mut ::std::os::raw::c_void,
2749            sessionId: usize,
2750            level: BNLogLevel,
2751            msg: *const ::std::os::raw::c_char,
2752            logger_name: *const ::std::os::raw::c_char,
2753            tid: usize,
2754        ),
2755    >,
2756    pub logWithStackTrace: ::std::option::Option<
2757        unsafe extern "C" fn(
2758            ctxt: *mut ::std::os::raw::c_void,
2759            sessionId: usize,
2760            level: BNLogLevel,
2761            stackTrace: *const ::std::os::raw::c_char,
2762            msg: *const ::std::os::raw::c_char,
2763            logger_name: *const ::std::os::raw::c_char,
2764            tid: usize,
2765        ),
2766    >,
2767    pub close: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
2768    pub getLogLevel: ::std::option::Option<
2769        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> BNLogLevel,
2770    >,
2771}
2772#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2773const _: () = {
2774    ["Size of BNLogListener"][::std::mem::size_of::<BNLogListener>() - 40usize];
2775    ["Alignment of BNLogListener"][::std::mem::align_of::<BNLogListener>() - 8usize];
2776    ["Offset of field: BNLogListener::context"]
2777        [::std::mem::offset_of!(BNLogListener, context) - 0usize];
2778    ["Offset of field: BNLogListener::log"][::std::mem::offset_of!(BNLogListener, log) - 8usize];
2779    ["Offset of field: BNLogListener::logWithStackTrace"]
2780        [::std::mem::offset_of!(BNLogListener, logWithStackTrace) - 16usize];
2781    ["Offset of field: BNLogListener::close"]
2782        [::std::mem::offset_of!(BNLogListener, close) - 24usize];
2783    ["Offset of field: BNLogListener::getLogLevel"]
2784        [::std::mem::offset_of!(BNLogListener, getLogLevel) - 32usize];
2785};
2786impl Default for BNLogListener {
2787    fn default() -> Self {
2788        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2789        unsafe {
2790            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2791            s.assume_init()
2792        }
2793    }
2794}
2795#[repr(C)]
2796#[derive(Debug, Copy, Clone)]
2797pub struct BNNavigationHandler {
2798    pub context: *mut ::std::os::raw::c_void,
2799    pub getCurrentView: ::std::option::Option<
2800        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> *mut ::std::os::raw::c_char,
2801    >,
2802    pub getCurrentOffset:
2803        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> u64>,
2804    pub navigate: ::std::option::Option<
2805        unsafe extern "C" fn(
2806            ctxt: *mut ::std::os::raw::c_void,
2807            view: *const ::std::os::raw::c_char,
2808            offset: u64,
2809        ) -> bool,
2810    >,
2811}
2812#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2813const _: () = {
2814    ["Size of BNNavigationHandler"][::std::mem::size_of::<BNNavigationHandler>() - 32usize];
2815    ["Alignment of BNNavigationHandler"][::std::mem::align_of::<BNNavigationHandler>() - 8usize];
2816    ["Offset of field: BNNavigationHandler::context"]
2817        [::std::mem::offset_of!(BNNavigationHandler, context) - 0usize];
2818    ["Offset of field: BNNavigationHandler::getCurrentView"]
2819        [::std::mem::offset_of!(BNNavigationHandler, getCurrentView) - 8usize];
2820    ["Offset of field: BNNavigationHandler::getCurrentOffset"]
2821        [::std::mem::offset_of!(BNNavigationHandler, getCurrentOffset) - 16usize];
2822    ["Offset of field: BNNavigationHandler::navigate"]
2823        [::std::mem::offset_of!(BNNavigationHandler, navigate) - 24usize];
2824};
2825impl Default for BNNavigationHandler {
2826    fn default() -> Self {
2827        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2828        unsafe {
2829            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2830            s.assume_init()
2831        }
2832    }
2833}
2834#[repr(C)]
2835#[derive(Debug, Copy, Clone)]
2836pub struct BNNameSpace {
2837    pub name: *mut *mut ::std::os::raw::c_char,
2838    pub join: *mut ::std::os::raw::c_char,
2839    pub nameCount: usize,
2840}
2841#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2842const _: () = {
2843    ["Size of BNNameSpace"][::std::mem::size_of::<BNNameSpace>() - 24usize];
2844    ["Alignment of BNNameSpace"][::std::mem::align_of::<BNNameSpace>() - 8usize];
2845    ["Offset of field: BNNameSpace::name"][::std::mem::offset_of!(BNNameSpace, name) - 0usize];
2846    ["Offset of field: BNNameSpace::join"][::std::mem::offset_of!(BNNameSpace, join) - 8usize];
2847    ["Offset of field: BNNameSpace::nameCount"]
2848        [::std::mem::offset_of!(BNNameSpace, nameCount) - 16usize];
2849};
2850impl Default for BNNameSpace {
2851    fn default() -> Self {
2852        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2853        unsafe {
2854            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2855            s.assume_init()
2856        }
2857    }
2858}
2859#[repr(C)]
2860#[derive(Debug, Copy, Clone)]
2861pub struct BNQualifiedName {
2862    pub name: *mut *mut ::std::os::raw::c_char,
2863    pub join: *mut ::std::os::raw::c_char,
2864    pub nameCount: usize,
2865}
2866#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2867const _: () = {
2868    ["Size of BNQualifiedName"][::std::mem::size_of::<BNQualifiedName>() - 24usize];
2869    ["Alignment of BNQualifiedName"][::std::mem::align_of::<BNQualifiedName>() - 8usize];
2870    ["Offset of field: BNQualifiedName::name"]
2871        [::std::mem::offset_of!(BNQualifiedName, name) - 0usize];
2872    ["Offset of field: BNQualifiedName::join"]
2873        [::std::mem::offset_of!(BNQualifiedName, join) - 8usize];
2874    ["Offset of field: BNQualifiedName::nameCount"]
2875        [::std::mem::offset_of!(BNQualifiedName, nameCount) - 16usize];
2876};
2877impl Default for BNQualifiedName {
2878    fn default() -> Self {
2879        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2880        unsafe {
2881            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2882            s.assume_init()
2883        }
2884    }
2885}
2886#[repr(u8)]
2887#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2888pub enum BNDerivedStringLocationType {
2889    DataBackedStringLocation = 0,
2890    CodeStringLocation = 1,
2891}
2892#[repr(C)]
2893#[derive(Debug, Copy, Clone)]
2894pub struct BNDerivedStringLocation {
2895    pub locationType: BNDerivedStringLocationType,
2896    pub addr: u64,
2897    pub len: u64,
2898}
2899#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2900const _: () = {
2901    ["Size of BNDerivedStringLocation"][::std::mem::size_of::<BNDerivedStringLocation>() - 24usize];
2902    ["Alignment of BNDerivedStringLocation"]
2903        [::std::mem::align_of::<BNDerivedStringLocation>() - 8usize];
2904    ["Offset of field: BNDerivedStringLocation::locationType"]
2905        [::std::mem::offset_of!(BNDerivedStringLocation, locationType) - 0usize];
2906    ["Offset of field: BNDerivedStringLocation::addr"]
2907        [::std::mem::offset_of!(BNDerivedStringLocation, addr) - 8usize];
2908    ["Offset of field: BNDerivedStringLocation::len"]
2909        [::std::mem::offset_of!(BNDerivedStringLocation, len) - 16usize];
2910};
2911impl Default for BNDerivedStringLocation {
2912    fn default() -> Self {
2913        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2914        unsafe {
2915            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2916            s.assume_init()
2917        }
2918    }
2919}
2920#[repr(C)]
2921#[derive(Debug, Copy, Clone)]
2922pub struct BNDerivedString {
2923    pub value: *mut BNStringRef,
2924    pub locationValid: bool,
2925    pub location: BNDerivedStringLocation,
2926    pub customType: *mut BNCustomStringType,
2927}
2928#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2929const _: () = {
2930    ["Size of BNDerivedString"][::std::mem::size_of::<BNDerivedString>() - 48usize];
2931    ["Alignment of BNDerivedString"][::std::mem::align_of::<BNDerivedString>() - 8usize];
2932    ["Offset of field: BNDerivedString::value"]
2933        [::std::mem::offset_of!(BNDerivedString, value) - 0usize];
2934    ["Offset of field: BNDerivedString::locationValid"]
2935        [::std::mem::offset_of!(BNDerivedString, locationValid) - 8usize];
2936    ["Offset of field: BNDerivedString::location"]
2937        [::std::mem::offset_of!(BNDerivedString, location) - 16usize];
2938    ["Offset of field: BNDerivedString::customType"]
2939        [::std::mem::offset_of!(BNDerivedString, customType) - 40usize];
2940};
2941impl Default for BNDerivedString {
2942    fn default() -> Self {
2943        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2944        unsafe {
2945            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2946            s.assume_init()
2947        }
2948    }
2949}
2950#[repr(C)]
2951#[derive(Debug, Copy, Clone)]
2952pub struct BNBinaryDataNotification {
2953    pub context: *mut ::std::os::raw::c_void,
2954    pub notificationBarrier: ::std::option::Option<
2955        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, view: *mut BNBinaryView) -> u64,
2956    >,
2957    pub dataWritten: ::std::option::Option<
2958        unsafe extern "C" fn(
2959            ctxt: *mut ::std::os::raw::c_void,
2960            view: *mut BNBinaryView,
2961            offset: u64,
2962            len: usize,
2963        ),
2964    >,
2965    pub dataInserted: ::std::option::Option<
2966        unsafe extern "C" fn(
2967            ctxt: *mut ::std::os::raw::c_void,
2968            view: *mut BNBinaryView,
2969            offset: u64,
2970            len: usize,
2971        ),
2972    >,
2973    pub dataRemoved: ::std::option::Option<
2974        unsafe extern "C" fn(
2975            ctxt: *mut ::std::os::raw::c_void,
2976            view: *mut BNBinaryView,
2977            offset: u64,
2978            len: u64,
2979        ),
2980    >,
2981    pub functionAdded: ::std::option::Option<
2982        unsafe extern "C" fn(
2983            ctxt: *mut ::std::os::raw::c_void,
2984            view: *mut BNBinaryView,
2985            func: *mut BNFunction,
2986        ),
2987    >,
2988    pub functionRemoved: ::std::option::Option<
2989        unsafe extern "C" fn(
2990            ctxt: *mut ::std::os::raw::c_void,
2991            view: *mut BNBinaryView,
2992            func: *mut BNFunction,
2993        ),
2994    >,
2995    pub functionUpdated: ::std::option::Option<
2996        unsafe extern "C" fn(
2997            ctxt: *mut ::std::os::raw::c_void,
2998            view: *mut BNBinaryView,
2999            func: *mut BNFunction,
3000        ),
3001    >,
3002    pub functionUpdateRequested: ::std::option::Option<
3003        unsafe extern "C" fn(
3004            ctxt: *mut ::std::os::raw::c_void,
3005            view: *mut BNBinaryView,
3006            func: *mut BNFunction,
3007        ),
3008    >,
3009    pub dataVariableAdded: ::std::option::Option<
3010        unsafe extern "C" fn(
3011            ctxt: *mut ::std::os::raw::c_void,
3012            view: *mut BNBinaryView,
3013            var: *mut BNDataVariable,
3014        ),
3015    >,
3016    pub dataVariableRemoved: ::std::option::Option<
3017        unsafe extern "C" fn(
3018            ctxt: *mut ::std::os::raw::c_void,
3019            view: *mut BNBinaryView,
3020            var: *mut BNDataVariable,
3021        ),
3022    >,
3023    pub dataVariableUpdated: ::std::option::Option<
3024        unsafe extern "C" fn(
3025            ctxt: *mut ::std::os::raw::c_void,
3026            view: *mut BNBinaryView,
3027            var: *mut BNDataVariable,
3028        ),
3029    >,
3030    pub dataMetadataUpdated: ::std::option::Option<
3031        unsafe extern "C" fn(
3032            ctxt: *mut ::std::os::raw::c_void,
3033            view: *mut BNBinaryView,
3034            offset: u64,
3035        ),
3036    >,
3037    pub tagTypeUpdated: ::std::option::Option<
3038        unsafe extern "C" fn(
3039            ctxt: *mut ::std::os::raw::c_void,
3040            view: *mut BNBinaryView,
3041            tagType: *mut BNTagType,
3042        ),
3043    >,
3044    pub tagAdded: ::std::option::Option<
3045        unsafe extern "C" fn(
3046            ctxt: *mut ::std::os::raw::c_void,
3047            view: *mut BNBinaryView,
3048            tagRef: *mut BNTagReference,
3049        ),
3050    >,
3051    pub tagRemoved: ::std::option::Option<
3052        unsafe extern "C" fn(
3053            ctxt: *mut ::std::os::raw::c_void,
3054            view: *mut BNBinaryView,
3055            tagRef: *mut BNTagReference,
3056        ),
3057    >,
3058    pub tagUpdated: ::std::option::Option<
3059        unsafe extern "C" fn(
3060            ctxt: *mut ::std::os::raw::c_void,
3061            view: *mut BNBinaryView,
3062            tagRef: *mut BNTagReference,
3063        ),
3064    >,
3065    pub symbolAdded: ::std::option::Option<
3066        unsafe extern "C" fn(
3067            ctxt: *mut ::std::os::raw::c_void,
3068            view: *mut BNBinaryView,
3069            sym: *mut BNSymbol,
3070        ),
3071    >,
3072    pub symbolRemoved: ::std::option::Option<
3073        unsafe extern "C" fn(
3074            ctxt: *mut ::std::os::raw::c_void,
3075            view: *mut BNBinaryView,
3076            sym: *mut BNSymbol,
3077        ),
3078    >,
3079    pub symbolUpdated: ::std::option::Option<
3080        unsafe extern "C" fn(
3081            ctxt: *mut ::std::os::raw::c_void,
3082            view: *mut BNBinaryView,
3083            sym: *mut BNSymbol,
3084        ),
3085    >,
3086    pub stringFound: ::std::option::Option<
3087        unsafe extern "C" fn(
3088            ctxt: *mut ::std::os::raw::c_void,
3089            view: *mut BNBinaryView,
3090            type_: BNStringType,
3091            offset: u64,
3092            len: usize,
3093        ),
3094    >,
3095    pub stringRemoved: ::std::option::Option<
3096        unsafe extern "C" fn(
3097            ctxt: *mut ::std::os::raw::c_void,
3098            view: *mut BNBinaryView,
3099            type_: BNStringType,
3100            offset: u64,
3101            len: usize,
3102        ),
3103    >,
3104    pub derivedStringFound: ::std::option::Option<
3105        unsafe extern "C" fn(
3106            ctxt: *mut ::std::os::raw::c_void,
3107            view: *mut BNBinaryView,
3108            str_: *mut BNDerivedString,
3109        ),
3110    >,
3111    pub derivedStringRemoved: ::std::option::Option<
3112        unsafe extern "C" fn(
3113            ctxt: *mut ::std::os::raw::c_void,
3114            view: *mut BNBinaryView,
3115            str_: *mut BNDerivedString,
3116        ),
3117    >,
3118    pub typeDefined: ::std::option::Option<
3119        unsafe extern "C" fn(
3120            ctxt: *mut ::std::os::raw::c_void,
3121            view: *mut BNBinaryView,
3122            name: *mut BNQualifiedName,
3123            type_: *mut BNType,
3124        ),
3125    >,
3126    pub typeUndefined: ::std::option::Option<
3127        unsafe extern "C" fn(
3128            ctxt: *mut ::std::os::raw::c_void,
3129            view: *mut BNBinaryView,
3130            name: *mut BNQualifiedName,
3131            type_: *mut BNType,
3132        ),
3133    >,
3134    pub typeReferenceChanged: ::std::option::Option<
3135        unsafe extern "C" fn(
3136            ctxt: *mut ::std::os::raw::c_void,
3137            view: *mut BNBinaryView,
3138            name: *mut BNQualifiedName,
3139            type_: *mut BNType,
3140        ),
3141    >,
3142    pub typeFieldReferenceChanged: ::std::option::Option<
3143        unsafe extern "C" fn(
3144            ctxt: *mut ::std::os::raw::c_void,
3145            view: *mut BNBinaryView,
3146            name: *mut BNQualifiedName,
3147            offset: u64,
3148        ),
3149    >,
3150    pub segmentAdded: ::std::option::Option<
3151        unsafe extern "C" fn(
3152            ctxt: *mut ::std::os::raw::c_void,
3153            view: *mut BNBinaryView,
3154            segment: *mut BNSegment,
3155        ),
3156    >,
3157    pub segmentRemoved: ::std::option::Option<
3158        unsafe extern "C" fn(
3159            ctxt: *mut ::std::os::raw::c_void,
3160            view: *mut BNBinaryView,
3161            segment: *mut BNSegment,
3162        ),
3163    >,
3164    pub segmentUpdated: ::std::option::Option<
3165        unsafe extern "C" fn(
3166            ctxt: *mut ::std::os::raw::c_void,
3167            view: *mut BNBinaryView,
3168            segment: *mut BNSegment,
3169        ),
3170    >,
3171    pub sectionAdded: ::std::option::Option<
3172        unsafe extern "C" fn(
3173            ctxt: *mut ::std::os::raw::c_void,
3174            view: *mut BNBinaryView,
3175            section: *mut BNSection,
3176        ),
3177    >,
3178    pub sectionRemoved: ::std::option::Option<
3179        unsafe extern "C" fn(
3180            ctxt: *mut ::std::os::raw::c_void,
3181            view: *mut BNBinaryView,
3182            section: *mut BNSection,
3183        ),
3184    >,
3185    pub sectionUpdated: ::std::option::Option<
3186        unsafe extern "C" fn(
3187            ctxt: *mut ::std::os::raw::c_void,
3188            view: *mut BNBinaryView,
3189            section: *mut BNSection,
3190        ),
3191    >,
3192    pub componentNameUpdated: ::std::option::Option<
3193        unsafe extern "C" fn(
3194            ctxt: *mut ::std::os::raw::c_void,
3195            view: *mut BNBinaryView,
3196            previousName: *mut ::std::os::raw::c_char,
3197            component: *mut BNComponent,
3198        ),
3199    >,
3200    pub componentAdded: ::std::option::Option<
3201        unsafe extern "C" fn(
3202            ctxt: *mut ::std::os::raw::c_void,
3203            view: *mut BNBinaryView,
3204            component: *mut BNComponent,
3205        ),
3206    >,
3207    pub componentMoved: ::std::option::Option<
3208        unsafe extern "C" fn(
3209            ctxt: *mut ::std::os::raw::c_void,
3210            view: *mut BNBinaryView,
3211            formerParent: *mut BNComponent,
3212            newParent: *mut BNComponent,
3213            component: *mut BNComponent,
3214        ),
3215    >,
3216    pub componentRemoved: ::std::option::Option<
3217        unsafe extern "C" fn(
3218            ctxt: *mut ::std::os::raw::c_void,
3219            view: *mut BNBinaryView,
3220            formerParent: *mut BNComponent,
3221            component: *mut BNComponent,
3222        ),
3223    >,
3224    pub componentFunctionAdded: ::std::option::Option<
3225        unsafe extern "C" fn(
3226            ctxt: *mut ::std::os::raw::c_void,
3227            view: *mut BNBinaryView,
3228            component: *mut BNComponent,
3229            function: *mut BNFunction,
3230        ),
3231    >,
3232    pub componentFunctionRemoved: ::std::option::Option<
3233        unsafe extern "C" fn(
3234            ctxt: *mut ::std::os::raw::c_void,
3235            view: *mut BNBinaryView,
3236            component: *mut BNComponent,
3237            function: *mut BNFunction,
3238        ),
3239    >,
3240    pub componentDataVariableAdded: ::std::option::Option<
3241        unsafe extern "C" fn(
3242            ctxt: *mut ::std::os::raw::c_void,
3243            view: *mut BNBinaryView,
3244            component: *mut BNComponent,
3245            var: *mut BNDataVariable,
3246        ),
3247    >,
3248    pub componentDataVariableRemoved: ::std::option::Option<
3249        unsafe extern "C" fn(
3250            ctxt: *mut ::std::os::raw::c_void,
3251            view: *mut BNBinaryView,
3252            component: *mut BNComponent,
3253            var: *mut BNDataVariable,
3254        ),
3255    >,
3256    pub externalLibraryAdded: ::std::option::Option<
3257        unsafe extern "C" fn(
3258            ctxt: *mut ::std::os::raw::c_void,
3259            data: *mut BNBinaryView,
3260            library: *mut BNExternalLibrary,
3261        ),
3262    >,
3263    pub externalLibraryUpdated: ::std::option::Option<
3264        unsafe extern "C" fn(
3265            ctxt: *mut ::std::os::raw::c_void,
3266            data: *mut BNBinaryView,
3267            library: *mut BNExternalLibrary,
3268        ),
3269    >,
3270    pub externalLibraryRemoved: ::std::option::Option<
3271        unsafe extern "C" fn(
3272            ctxt: *mut ::std::os::raw::c_void,
3273            data: *mut BNBinaryView,
3274            library: *mut BNExternalLibrary,
3275        ),
3276    >,
3277    pub externalLocationAdded: ::std::option::Option<
3278        unsafe extern "C" fn(
3279            ctxt: *mut ::std::os::raw::c_void,
3280            data: *mut BNBinaryView,
3281            location: *mut BNExternalLocation,
3282        ),
3283    >,
3284    pub externalLocationUpdated: ::std::option::Option<
3285        unsafe extern "C" fn(
3286            ctxt: *mut ::std::os::raw::c_void,
3287            data: *mut BNBinaryView,
3288            location: *mut BNExternalLocation,
3289        ),
3290    >,
3291    pub externalLocationRemoved: ::std::option::Option<
3292        unsafe extern "C" fn(
3293            ctxt: *mut ::std::os::raw::c_void,
3294            data: *mut BNBinaryView,
3295            location: *mut BNExternalLocation,
3296        ),
3297    >,
3298    pub typeArchiveAttached: ::std::option::Option<
3299        unsafe extern "C" fn(
3300            ctxt: *mut ::std::os::raw::c_void,
3301            view: *mut BNBinaryView,
3302            id: *const ::std::os::raw::c_char,
3303            path: *const ::std::os::raw::c_char,
3304        ),
3305    >,
3306    pub typeArchiveDetached: ::std::option::Option<
3307        unsafe extern "C" fn(
3308            ctxt: *mut ::std::os::raw::c_void,
3309            view: *mut BNBinaryView,
3310            id: *const ::std::os::raw::c_char,
3311            path: *const ::std::os::raw::c_char,
3312        ),
3313    >,
3314    pub typeArchiveConnected: ::std::option::Option<
3315        unsafe extern "C" fn(
3316            ctxt: *mut ::std::os::raw::c_void,
3317            view: *mut BNBinaryView,
3318            archive: *mut BNTypeArchive,
3319        ),
3320    >,
3321    pub typeArchiveDisconnected: ::std::option::Option<
3322        unsafe extern "C" fn(
3323            ctxt: *mut ::std::os::raw::c_void,
3324            view: *mut BNBinaryView,
3325            archive: *mut BNTypeArchive,
3326        ),
3327    >,
3328    pub undoEntryAdded: ::std::option::Option<
3329        unsafe extern "C" fn(
3330            ctxt: *mut ::std::os::raw::c_void,
3331            view: *mut BNBinaryView,
3332            entry: *mut BNUndoEntry,
3333        ),
3334    >,
3335    pub undoEntryTaken: ::std::option::Option<
3336        unsafe extern "C" fn(
3337            ctxt: *mut ::std::os::raw::c_void,
3338            view: *mut BNBinaryView,
3339            entry: *mut BNUndoEntry,
3340        ),
3341    >,
3342    pub redoEntryTaken: ::std::option::Option<
3343        unsafe extern "C" fn(
3344            ctxt: *mut ::std::os::raw::c_void,
3345            view: *mut BNBinaryView,
3346            entry: *mut BNUndoEntry,
3347        ),
3348    >,
3349    pub rebased: ::std::option::Option<
3350        unsafe extern "C" fn(
3351            ctxt: *mut ::std::os::raw::c_void,
3352            oldView: *mut BNBinaryView,
3353            newView: *mut BNBinaryView,
3354        ),
3355    >,
3356}
3357#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3358const _: () = {
3359    ["Size of BNBinaryDataNotification"]
3360        [::std::mem::size_of::<BNBinaryDataNotification>() - 448usize];
3361    ["Alignment of BNBinaryDataNotification"]
3362        [::std::mem::align_of::<BNBinaryDataNotification>() - 8usize];
3363    ["Offset of field: BNBinaryDataNotification::context"]
3364        [::std::mem::offset_of!(BNBinaryDataNotification, context) - 0usize];
3365    ["Offset of field: BNBinaryDataNotification::notificationBarrier"]
3366        [::std::mem::offset_of!(BNBinaryDataNotification, notificationBarrier) - 8usize];
3367    ["Offset of field: BNBinaryDataNotification::dataWritten"]
3368        [::std::mem::offset_of!(BNBinaryDataNotification, dataWritten) - 16usize];
3369    ["Offset of field: BNBinaryDataNotification::dataInserted"]
3370        [::std::mem::offset_of!(BNBinaryDataNotification, dataInserted) - 24usize];
3371    ["Offset of field: BNBinaryDataNotification::dataRemoved"]
3372        [::std::mem::offset_of!(BNBinaryDataNotification, dataRemoved) - 32usize];
3373    ["Offset of field: BNBinaryDataNotification::functionAdded"]
3374        [::std::mem::offset_of!(BNBinaryDataNotification, functionAdded) - 40usize];
3375    ["Offset of field: BNBinaryDataNotification::functionRemoved"]
3376        [::std::mem::offset_of!(BNBinaryDataNotification, functionRemoved) - 48usize];
3377    ["Offset of field: BNBinaryDataNotification::functionUpdated"]
3378        [::std::mem::offset_of!(BNBinaryDataNotification, functionUpdated) - 56usize];
3379    ["Offset of field: BNBinaryDataNotification::functionUpdateRequested"]
3380        [::std::mem::offset_of!(BNBinaryDataNotification, functionUpdateRequested) - 64usize];
3381    ["Offset of field: BNBinaryDataNotification::dataVariableAdded"]
3382        [::std::mem::offset_of!(BNBinaryDataNotification, dataVariableAdded) - 72usize];
3383    ["Offset of field: BNBinaryDataNotification::dataVariableRemoved"]
3384        [::std::mem::offset_of!(BNBinaryDataNotification, dataVariableRemoved) - 80usize];
3385    ["Offset of field: BNBinaryDataNotification::dataVariableUpdated"]
3386        [::std::mem::offset_of!(BNBinaryDataNotification, dataVariableUpdated) - 88usize];
3387    ["Offset of field: BNBinaryDataNotification::dataMetadataUpdated"]
3388        [::std::mem::offset_of!(BNBinaryDataNotification, dataMetadataUpdated) - 96usize];
3389    ["Offset of field: BNBinaryDataNotification::tagTypeUpdated"]
3390        [::std::mem::offset_of!(BNBinaryDataNotification, tagTypeUpdated) - 104usize];
3391    ["Offset of field: BNBinaryDataNotification::tagAdded"]
3392        [::std::mem::offset_of!(BNBinaryDataNotification, tagAdded) - 112usize];
3393    ["Offset of field: BNBinaryDataNotification::tagRemoved"]
3394        [::std::mem::offset_of!(BNBinaryDataNotification, tagRemoved) - 120usize];
3395    ["Offset of field: BNBinaryDataNotification::tagUpdated"]
3396        [::std::mem::offset_of!(BNBinaryDataNotification, tagUpdated) - 128usize];
3397    ["Offset of field: BNBinaryDataNotification::symbolAdded"]
3398        [::std::mem::offset_of!(BNBinaryDataNotification, symbolAdded) - 136usize];
3399    ["Offset of field: BNBinaryDataNotification::symbolRemoved"]
3400        [::std::mem::offset_of!(BNBinaryDataNotification, symbolRemoved) - 144usize];
3401    ["Offset of field: BNBinaryDataNotification::symbolUpdated"]
3402        [::std::mem::offset_of!(BNBinaryDataNotification, symbolUpdated) - 152usize];
3403    ["Offset of field: BNBinaryDataNotification::stringFound"]
3404        [::std::mem::offset_of!(BNBinaryDataNotification, stringFound) - 160usize];
3405    ["Offset of field: BNBinaryDataNotification::stringRemoved"]
3406        [::std::mem::offset_of!(BNBinaryDataNotification, stringRemoved) - 168usize];
3407    ["Offset of field: BNBinaryDataNotification::derivedStringFound"]
3408        [::std::mem::offset_of!(BNBinaryDataNotification, derivedStringFound) - 176usize];
3409    ["Offset of field: BNBinaryDataNotification::derivedStringRemoved"]
3410        [::std::mem::offset_of!(BNBinaryDataNotification, derivedStringRemoved) - 184usize];
3411    ["Offset of field: BNBinaryDataNotification::typeDefined"]
3412        [::std::mem::offset_of!(BNBinaryDataNotification, typeDefined) - 192usize];
3413    ["Offset of field: BNBinaryDataNotification::typeUndefined"]
3414        [::std::mem::offset_of!(BNBinaryDataNotification, typeUndefined) - 200usize];
3415    ["Offset of field: BNBinaryDataNotification::typeReferenceChanged"]
3416        [::std::mem::offset_of!(BNBinaryDataNotification, typeReferenceChanged) - 208usize];
3417    ["Offset of field: BNBinaryDataNotification::typeFieldReferenceChanged"]
3418        [::std::mem::offset_of!(BNBinaryDataNotification, typeFieldReferenceChanged) - 216usize];
3419    ["Offset of field: BNBinaryDataNotification::segmentAdded"]
3420        [::std::mem::offset_of!(BNBinaryDataNotification, segmentAdded) - 224usize];
3421    ["Offset of field: BNBinaryDataNotification::segmentRemoved"]
3422        [::std::mem::offset_of!(BNBinaryDataNotification, segmentRemoved) - 232usize];
3423    ["Offset of field: BNBinaryDataNotification::segmentUpdated"]
3424        [::std::mem::offset_of!(BNBinaryDataNotification, segmentUpdated) - 240usize];
3425    ["Offset of field: BNBinaryDataNotification::sectionAdded"]
3426        [::std::mem::offset_of!(BNBinaryDataNotification, sectionAdded) - 248usize];
3427    ["Offset of field: BNBinaryDataNotification::sectionRemoved"]
3428        [::std::mem::offset_of!(BNBinaryDataNotification, sectionRemoved) - 256usize];
3429    ["Offset of field: BNBinaryDataNotification::sectionUpdated"]
3430        [::std::mem::offset_of!(BNBinaryDataNotification, sectionUpdated) - 264usize];
3431    ["Offset of field: BNBinaryDataNotification::componentNameUpdated"]
3432        [::std::mem::offset_of!(BNBinaryDataNotification, componentNameUpdated) - 272usize];
3433    ["Offset of field: BNBinaryDataNotification::componentAdded"]
3434        [::std::mem::offset_of!(BNBinaryDataNotification, componentAdded) - 280usize];
3435    ["Offset of field: BNBinaryDataNotification::componentMoved"]
3436        [::std::mem::offset_of!(BNBinaryDataNotification, componentMoved) - 288usize];
3437    ["Offset of field: BNBinaryDataNotification::componentRemoved"]
3438        [::std::mem::offset_of!(BNBinaryDataNotification, componentRemoved) - 296usize];
3439    ["Offset of field: BNBinaryDataNotification::componentFunctionAdded"]
3440        [::std::mem::offset_of!(BNBinaryDataNotification, componentFunctionAdded) - 304usize];
3441    ["Offset of field: BNBinaryDataNotification::componentFunctionRemoved"]
3442        [::std::mem::offset_of!(BNBinaryDataNotification, componentFunctionRemoved) - 312usize];
3443    ["Offset of field: BNBinaryDataNotification::componentDataVariableAdded"]
3444        [::std::mem::offset_of!(BNBinaryDataNotification, componentDataVariableAdded) - 320usize];
3445    ["Offset of field: BNBinaryDataNotification::componentDataVariableRemoved"]
3446        [::std::mem::offset_of!(BNBinaryDataNotification, componentDataVariableRemoved) - 328usize];
3447    ["Offset of field: BNBinaryDataNotification::externalLibraryAdded"]
3448        [::std::mem::offset_of!(BNBinaryDataNotification, externalLibraryAdded) - 336usize];
3449    ["Offset of field: BNBinaryDataNotification::externalLibraryUpdated"]
3450        [::std::mem::offset_of!(BNBinaryDataNotification, externalLibraryUpdated) - 344usize];
3451    ["Offset of field: BNBinaryDataNotification::externalLibraryRemoved"]
3452        [::std::mem::offset_of!(BNBinaryDataNotification, externalLibraryRemoved) - 352usize];
3453    ["Offset of field: BNBinaryDataNotification::externalLocationAdded"]
3454        [::std::mem::offset_of!(BNBinaryDataNotification, externalLocationAdded) - 360usize];
3455    ["Offset of field: BNBinaryDataNotification::externalLocationUpdated"]
3456        [::std::mem::offset_of!(BNBinaryDataNotification, externalLocationUpdated) - 368usize];
3457    ["Offset of field: BNBinaryDataNotification::externalLocationRemoved"]
3458        [::std::mem::offset_of!(BNBinaryDataNotification, externalLocationRemoved) - 376usize];
3459    ["Offset of field: BNBinaryDataNotification::typeArchiveAttached"]
3460        [::std::mem::offset_of!(BNBinaryDataNotification, typeArchiveAttached) - 384usize];
3461    ["Offset of field: BNBinaryDataNotification::typeArchiveDetached"]
3462        [::std::mem::offset_of!(BNBinaryDataNotification, typeArchiveDetached) - 392usize];
3463    ["Offset of field: BNBinaryDataNotification::typeArchiveConnected"]
3464        [::std::mem::offset_of!(BNBinaryDataNotification, typeArchiveConnected) - 400usize];
3465    ["Offset of field: BNBinaryDataNotification::typeArchiveDisconnected"]
3466        [::std::mem::offset_of!(BNBinaryDataNotification, typeArchiveDisconnected) - 408usize];
3467    ["Offset of field: BNBinaryDataNotification::undoEntryAdded"]
3468        [::std::mem::offset_of!(BNBinaryDataNotification, undoEntryAdded) - 416usize];
3469    ["Offset of field: BNBinaryDataNotification::undoEntryTaken"]
3470        [::std::mem::offset_of!(BNBinaryDataNotification, undoEntryTaken) - 424usize];
3471    ["Offset of field: BNBinaryDataNotification::redoEntryTaken"]
3472        [::std::mem::offset_of!(BNBinaryDataNotification, redoEntryTaken) - 432usize];
3473    ["Offset of field: BNBinaryDataNotification::rebased"]
3474        [::std::mem::offset_of!(BNBinaryDataNotification, rebased) - 440usize];
3475};
3476impl Default for BNBinaryDataNotification {
3477    fn default() -> Self {
3478        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3479        unsafe {
3480            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3481            s.assume_init()
3482        }
3483    }
3484}
3485#[repr(C)]
3486#[derive(Debug, Copy, Clone)]
3487pub struct BNProjectNotification {
3488    pub context: *mut ::std::os::raw::c_void,
3489    pub beforeOpenProject: ::std::option::Option<
3490        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, project: *mut BNProject) -> bool,
3491    >,
3492    pub afterOpenProject: ::std::option::Option<
3493        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, project: *mut BNProject),
3494    >,
3495    pub beforeCloseProject: ::std::option::Option<
3496        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, project: *mut BNProject) -> bool,
3497    >,
3498    pub afterCloseProject: ::std::option::Option<
3499        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, project: *mut BNProject),
3500    >,
3501    pub beforeProjectMetadataWritten: ::std::option::Option<
3502        unsafe extern "C" fn(
3503            ctxt: *mut ::std::os::raw::c_void,
3504            project: *mut BNProject,
3505            key: *mut ::std::os::raw::c_char,
3506            value: *mut BNMetadata,
3507        ) -> bool,
3508    >,
3509    pub afterProjectMetadataWritten: ::std::option::Option<
3510        unsafe extern "C" fn(
3511            ctxt: *mut ::std::os::raw::c_void,
3512            project: *mut BNProject,
3513            key: *mut ::std::os::raw::c_char,
3514            value: *mut BNMetadata,
3515        ),
3516    >,
3517    pub beforeProjectFileCreated: ::std::option::Option<
3518        unsafe extern "C" fn(
3519            ctxt: *mut ::std::os::raw::c_void,
3520            project: *mut BNProject,
3521            projectFile: *mut BNProjectFile,
3522        ) -> bool,
3523    >,
3524    pub afterProjectFileCreated: ::std::option::Option<
3525        unsafe extern "C" fn(
3526            ctxt: *mut ::std::os::raw::c_void,
3527            project: *mut BNProject,
3528            projectFile: *mut BNProjectFile,
3529        ),
3530    >,
3531    pub beforeProjectFileUpdated: ::std::option::Option<
3532        unsafe extern "C" fn(
3533            ctxt: *mut ::std::os::raw::c_void,
3534            project: *mut BNProject,
3535            projectFile: *mut BNProjectFile,
3536        ) -> bool,
3537    >,
3538    pub afterProjectFileUpdated: ::std::option::Option<
3539        unsafe extern "C" fn(
3540            ctxt: *mut ::std::os::raw::c_void,
3541            project: *mut BNProject,
3542            projectFile: *mut BNProjectFile,
3543        ),
3544    >,
3545    pub beforeProjectFileDeleted: ::std::option::Option<
3546        unsafe extern "C" fn(
3547            ctxt: *mut ::std::os::raw::c_void,
3548            project: *mut BNProject,
3549            projectFile: *mut BNProjectFile,
3550        ) -> bool,
3551    >,
3552    pub afterProjectFileDeleted: ::std::option::Option<
3553        unsafe extern "C" fn(
3554            ctxt: *mut ::std::os::raw::c_void,
3555            project: *mut BNProject,
3556            projectFile: *mut BNProjectFile,
3557        ),
3558    >,
3559    pub beforeProjectFolderCreated: ::std::option::Option<
3560        unsafe extern "C" fn(
3561            ctxt: *mut ::std::os::raw::c_void,
3562            project: *mut BNProject,
3563            projectFolder: *mut BNProjectFolder,
3564        ) -> bool,
3565    >,
3566    pub afterProjectFolderCreated: ::std::option::Option<
3567        unsafe extern "C" fn(
3568            ctxt: *mut ::std::os::raw::c_void,
3569            project: *mut BNProject,
3570            projectFolder: *mut BNProjectFolder,
3571        ),
3572    >,
3573    pub beforeProjectFolderUpdated: ::std::option::Option<
3574        unsafe extern "C" fn(
3575            ctxt: *mut ::std::os::raw::c_void,
3576            project: *mut BNProject,
3577            projectFolder: *mut BNProjectFolder,
3578        ) -> bool,
3579    >,
3580    pub afterProjectFolderUpdated: ::std::option::Option<
3581        unsafe extern "C" fn(
3582            ctxt: *mut ::std::os::raw::c_void,
3583            project: *mut BNProject,
3584            projectFolder: *mut BNProjectFolder,
3585        ),
3586    >,
3587    pub beforeProjectFolderDeleted: ::std::option::Option<
3588        unsafe extern "C" fn(
3589            ctxt: *mut ::std::os::raw::c_void,
3590            project: *mut BNProject,
3591            projectFolder: *mut BNProjectFolder,
3592        ) -> bool,
3593    >,
3594    pub afterProjectFolderDeleted: ::std::option::Option<
3595        unsafe extern "C" fn(
3596            ctxt: *mut ::std::os::raw::c_void,
3597            project: *mut BNProject,
3598            projectFolder: *mut BNProjectFolder,
3599        ),
3600    >,
3601}
3602#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3603const _: () = {
3604    ["Size of BNProjectNotification"][::std::mem::size_of::<BNProjectNotification>() - 152usize];
3605    ["Alignment of BNProjectNotification"]
3606        [::std::mem::align_of::<BNProjectNotification>() - 8usize];
3607    ["Offset of field: BNProjectNotification::context"]
3608        [::std::mem::offset_of!(BNProjectNotification, context) - 0usize];
3609    ["Offset of field: BNProjectNotification::beforeOpenProject"]
3610        [::std::mem::offset_of!(BNProjectNotification, beforeOpenProject) - 8usize];
3611    ["Offset of field: BNProjectNotification::afterOpenProject"]
3612        [::std::mem::offset_of!(BNProjectNotification, afterOpenProject) - 16usize];
3613    ["Offset of field: BNProjectNotification::beforeCloseProject"]
3614        [::std::mem::offset_of!(BNProjectNotification, beforeCloseProject) - 24usize];
3615    ["Offset of field: BNProjectNotification::afterCloseProject"]
3616        [::std::mem::offset_of!(BNProjectNotification, afterCloseProject) - 32usize];
3617    ["Offset of field: BNProjectNotification::beforeProjectMetadataWritten"]
3618        [::std::mem::offset_of!(BNProjectNotification, beforeProjectMetadataWritten) - 40usize];
3619    ["Offset of field: BNProjectNotification::afterProjectMetadataWritten"]
3620        [::std::mem::offset_of!(BNProjectNotification, afterProjectMetadataWritten) - 48usize];
3621    ["Offset of field: BNProjectNotification::beforeProjectFileCreated"]
3622        [::std::mem::offset_of!(BNProjectNotification, beforeProjectFileCreated) - 56usize];
3623    ["Offset of field: BNProjectNotification::afterProjectFileCreated"]
3624        [::std::mem::offset_of!(BNProjectNotification, afterProjectFileCreated) - 64usize];
3625    ["Offset of field: BNProjectNotification::beforeProjectFileUpdated"]
3626        [::std::mem::offset_of!(BNProjectNotification, beforeProjectFileUpdated) - 72usize];
3627    ["Offset of field: BNProjectNotification::afterProjectFileUpdated"]
3628        [::std::mem::offset_of!(BNProjectNotification, afterProjectFileUpdated) - 80usize];
3629    ["Offset of field: BNProjectNotification::beforeProjectFileDeleted"]
3630        [::std::mem::offset_of!(BNProjectNotification, beforeProjectFileDeleted) - 88usize];
3631    ["Offset of field: BNProjectNotification::afterProjectFileDeleted"]
3632        [::std::mem::offset_of!(BNProjectNotification, afterProjectFileDeleted) - 96usize];
3633    ["Offset of field: BNProjectNotification::beforeProjectFolderCreated"]
3634        [::std::mem::offset_of!(BNProjectNotification, beforeProjectFolderCreated) - 104usize];
3635    ["Offset of field: BNProjectNotification::afterProjectFolderCreated"]
3636        [::std::mem::offset_of!(BNProjectNotification, afterProjectFolderCreated) - 112usize];
3637    ["Offset of field: BNProjectNotification::beforeProjectFolderUpdated"]
3638        [::std::mem::offset_of!(BNProjectNotification, beforeProjectFolderUpdated) - 120usize];
3639    ["Offset of field: BNProjectNotification::afterProjectFolderUpdated"]
3640        [::std::mem::offset_of!(BNProjectNotification, afterProjectFolderUpdated) - 128usize];
3641    ["Offset of field: BNProjectNotification::beforeProjectFolderDeleted"]
3642        [::std::mem::offset_of!(BNProjectNotification, beforeProjectFolderDeleted) - 136usize];
3643    ["Offset of field: BNProjectNotification::afterProjectFolderDeleted"]
3644        [::std::mem::offset_of!(BNProjectNotification, afterProjectFolderDeleted) - 144usize];
3645};
3646impl Default for BNProjectNotification {
3647    fn default() -> Self {
3648        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3649        unsafe {
3650            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3651            s.assume_init()
3652        }
3653    }
3654}
3655#[repr(C)]
3656#[derive(Debug, Copy, Clone)]
3657pub struct BNFileAccessor {
3658    pub context: *mut ::std::os::raw::c_void,
3659    pub getLength:
3660        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> u64>,
3661    pub read: ::std::option::Option<
3662        unsafe extern "C" fn(
3663            ctxt: *mut ::std::os::raw::c_void,
3664            dest: *mut ::std::os::raw::c_void,
3665            offset: u64,
3666            len: usize,
3667        ) -> usize,
3668    >,
3669    pub write: ::std::option::Option<
3670        unsafe extern "C" fn(
3671            ctxt: *mut ::std::os::raw::c_void,
3672            offset: u64,
3673            src: *const ::std::os::raw::c_void,
3674            len: usize,
3675        ) -> usize,
3676    >,
3677}
3678#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3679const _: () = {
3680    ["Size of BNFileAccessor"][::std::mem::size_of::<BNFileAccessor>() - 32usize];
3681    ["Alignment of BNFileAccessor"][::std::mem::align_of::<BNFileAccessor>() - 8usize];
3682    ["Offset of field: BNFileAccessor::context"]
3683        [::std::mem::offset_of!(BNFileAccessor, context) - 0usize];
3684    ["Offset of field: BNFileAccessor::getLength"]
3685        [::std::mem::offset_of!(BNFileAccessor, getLength) - 8usize];
3686    ["Offset of field: BNFileAccessor::read"]
3687        [::std::mem::offset_of!(BNFileAccessor, read) - 16usize];
3688    ["Offset of field: BNFileAccessor::write"]
3689        [::std::mem::offset_of!(BNFileAccessor, write) - 24usize];
3690};
3691impl Default for BNFileAccessor {
3692    fn default() -> Self {
3693        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3694        unsafe {
3695            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3696            s.assume_init()
3697        }
3698    }
3699}
3700#[repr(C)]
3701#[derive(Debug, Copy, Clone)]
3702pub struct BNCustomBinaryView {
3703    pub context: *mut ::std::os::raw::c_void,
3704    pub init:
3705        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
3706    pub freeObject: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
3707    pub externalRefTaken:
3708        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
3709    pub externalRefReleased:
3710        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
3711    pub read: ::std::option::Option<
3712        unsafe extern "C" fn(
3713            ctxt: *mut ::std::os::raw::c_void,
3714            dest: *mut ::std::os::raw::c_void,
3715            offset: u64,
3716            len: usize,
3717        ) -> usize,
3718    >,
3719    pub write: ::std::option::Option<
3720        unsafe extern "C" fn(
3721            ctxt: *mut ::std::os::raw::c_void,
3722            offset: u64,
3723            src: *const ::std::os::raw::c_void,
3724            len: usize,
3725        ) -> usize,
3726    >,
3727    pub insert: ::std::option::Option<
3728        unsafe extern "C" fn(
3729            ctxt: *mut ::std::os::raw::c_void,
3730            offset: u64,
3731            src: *const ::std::os::raw::c_void,
3732            len: usize,
3733        ) -> usize,
3734    >,
3735    pub remove: ::std::option::Option<
3736        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, offset: u64, len: u64) -> usize,
3737    >,
3738    pub getModification: ::std::option::Option<
3739        unsafe extern "C" fn(
3740            ctxt: *mut ::std::os::raw::c_void,
3741            offset: u64,
3742        ) -> BNModificationStatus,
3743    >,
3744    pub isValidOffset: ::std::option::Option<
3745        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, offset: u64) -> bool,
3746    >,
3747    pub isOffsetReadable: ::std::option::Option<
3748        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, offset: u64) -> bool,
3749    >,
3750    pub isOffsetWritable: ::std::option::Option<
3751        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, offset: u64) -> bool,
3752    >,
3753    pub isOffsetExecutable: ::std::option::Option<
3754        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, offset: u64) -> bool,
3755    >,
3756    pub isOffsetBackedByFile: ::std::option::Option<
3757        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, offset: u64) -> bool,
3758    >,
3759    pub getNextValidOffset: ::std::option::Option<
3760        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, offset: u64) -> u64,
3761    >,
3762    pub getStart:
3763        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> u64>,
3764    pub getLength:
3765        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> u64>,
3766    pub getEntryPoint:
3767        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> u64>,
3768    pub isExecutable:
3769        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
3770    pub getDefaultEndianness: ::std::option::Option<
3771        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> BNEndianness,
3772    >,
3773    pub isRelocatable:
3774        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
3775    pub getAddressSize:
3776        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> usize>,
3777    pub save: ::std::option::Option<
3778        unsafe extern "C" fn(
3779            ctxt: *mut ::std::os::raw::c_void,
3780            accessor: *mut BNFileAccessor,
3781        ) -> bool,
3782    >,
3783    pub onAfterSnapshotDataApplied:
3784        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
3785}
3786#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3787const _: () = {
3788    ["Size of BNCustomBinaryView"][::std::mem::size_of::<BNCustomBinaryView>() - 200usize];
3789    ["Alignment of BNCustomBinaryView"][::std::mem::align_of::<BNCustomBinaryView>() - 8usize];
3790    ["Offset of field: BNCustomBinaryView::context"]
3791        [::std::mem::offset_of!(BNCustomBinaryView, context) - 0usize];
3792    ["Offset of field: BNCustomBinaryView::init"]
3793        [::std::mem::offset_of!(BNCustomBinaryView, init) - 8usize];
3794    ["Offset of field: BNCustomBinaryView::freeObject"]
3795        [::std::mem::offset_of!(BNCustomBinaryView, freeObject) - 16usize];
3796    ["Offset of field: BNCustomBinaryView::externalRefTaken"]
3797        [::std::mem::offset_of!(BNCustomBinaryView, externalRefTaken) - 24usize];
3798    ["Offset of field: BNCustomBinaryView::externalRefReleased"]
3799        [::std::mem::offset_of!(BNCustomBinaryView, externalRefReleased) - 32usize];
3800    ["Offset of field: BNCustomBinaryView::read"]
3801        [::std::mem::offset_of!(BNCustomBinaryView, read) - 40usize];
3802    ["Offset of field: BNCustomBinaryView::write"]
3803        [::std::mem::offset_of!(BNCustomBinaryView, write) - 48usize];
3804    ["Offset of field: BNCustomBinaryView::insert"]
3805        [::std::mem::offset_of!(BNCustomBinaryView, insert) - 56usize];
3806    ["Offset of field: BNCustomBinaryView::remove"]
3807        [::std::mem::offset_of!(BNCustomBinaryView, remove) - 64usize];
3808    ["Offset of field: BNCustomBinaryView::getModification"]
3809        [::std::mem::offset_of!(BNCustomBinaryView, getModification) - 72usize];
3810    ["Offset of field: BNCustomBinaryView::isValidOffset"]
3811        [::std::mem::offset_of!(BNCustomBinaryView, isValidOffset) - 80usize];
3812    ["Offset of field: BNCustomBinaryView::isOffsetReadable"]
3813        [::std::mem::offset_of!(BNCustomBinaryView, isOffsetReadable) - 88usize];
3814    ["Offset of field: BNCustomBinaryView::isOffsetWritable"]
3815        [::std::mem::offset_of!(BNCustomBinaryView, isOffsetWritable) - 96usize];
3816    ["Offset of field: BNCustomBinaryView::isOffsetExecutable"]
3817        [::std::mem::offset_of!(BNCustomBinaryView, isOffsetExecutable) - 104usize];
3818    ["Offset of field: BNCustomBinaryView::isOffsetBackedByFile"]
3819        [::std::mem::offset_of!(BNCustomBinaryView, isOffsetBackedByFile) - 112usize];
3820    ["Offset of field: BNCustomBinaryView::getNextValidOffset"]
3821        [::std::mem::offset_of!(BNCustomBinaryView, getNextValidOffset) - 120usize];
3822    ["Offset of field: BNCustomBinaryView::getStart"]
3823        [::std::mem::offset_of!(BNCustomBinaryView, getStart) - 128usize];
3824    ["Offset of field: BNCustomBinaryView::getLength"]
3825        [::std::mem::offset_of!(BNCustomBinaryView, getLength) - 136usize];
3826    ["Offset of field: BNCustomBinaryView::getEntryPoint"]
3827        [::std::mem::offset_of!(BNCustomBinaryView, getEntryPoint) - 144usize];
3828    ["Offset of field: BNCustomBinaryView::isExecutable"]
3829        [::std::mem::offset_of!(BNCustomBinaryView, isExecutable) - 152usize];
3830    ["Offset of field: BNCustomBinaryView::getDefaultEndianness"]
3831        [::std::mem::offset_of!(BNCustomBinaryView, getDefaultEndianness) - 160usize];
3832    ["Offset of field: BNCustomBinaryView::isRelocatable"]
3833        [::std::mem::offset_of!(BNCustomBinaryView, isRelocatable) - 168usize];
3834    ["Offset of field: BNCustomBinaryView::getAddressSize"]
3835        [::std::mem::offset_of!(BNCustomBinaryView, getAddressSize) - 176usize];
3836    ["Offset of field: BNCustomBinaryView::save"]
3837        [::std::mem::offset_of!(BNCustomBinaryView, save) - 184usize];
3838    ["Offset of field: BNCustomBinaryView::onAfterSnapshotDataApplied"]
3839        [::std::mem::offset_of!(BNCustomBinaryView, onAfterSnapshotDataApplied) - 192usize];
3840};
3841impl Default for BNCustomBinaryView {
3842    fn default() -> Self {
3843        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3844        unsafe {
3845            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3846            s.assume_init()
3847        }
3848    }
3849}
3850#[repr(C)]
3851#[derive(Debug, Copy, Clone)]
3852pub struct BNCustomBinaryViewType {
3853    pub context: *mut ::std::os::raw::c_void,
3854    pub create: ::std::option::Option<
3855        unsafe extern "C" fn(
3856            ctxt: *mut ::std::os::raw::c_void,
3857            data: *mut BNBinaryView,
3858        ) -> *mut BNBinaryView,
3859    >,
3860    pub parse: ::std::option::Option<
3861        unsafe extern "C" fn(
3862            ctxt: *mut ::std::os::raw::c_void,
3863            data: *mut BNBinaryView,
3864        ) -> *mut BNBinaryView,
3865    >,
3866    pub isValidForData: ::std::option::Option<
3867        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, data: *mut BNBinaryView) -> bool,
3868    >,
3869    pub isDeprecated:
3870        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
3871    pub isForceLoadable:
3872        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
3873    pub getLoadSettingsForData: ::std::option::Option<
3874        unsafe extern "C" fn(
3875            ctxt: *mut ::std::os::raw::c_void,
3876            data: *mut BNBinaryView,
3877        ) -> *mut BNSettings,
3878    >,
3879    pub hasNoInitialContent:
3880        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
3881}
3882#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3883const _: () = {
3884    ["Size of BNCustomBinaryViewType"][::std::mem::size_of::<BNCustomBinaryViewType>() - 64usize];
3885    ["Alignment of BNCustomBinaryViewType"]
3886        [::std::mem::align_of::<BNCustomBinaryViewType>() - 8usize];
3887    ["Offset of field: BNCustomBinaryViewType::context"]
3888        [::std::mem::offset_of!(BNCustomBinaryViewType, context) - 0usize];
3889    ["Offset of field: BNCustomBinaryViewType::create"]
3890        [::std::mem::offset_of!(BNCustomBinaryViewType, create) - 8usize];
3891    ["Offset of field: BNCustomBinaryViewType::parse"]
3892        [::std::mem::offset_of!(BNCustomBinaryViewType, parse) - 16usize];
3893    ["Offset of field: BNCustomBinaryViewType::isValidForData"]
3894        [::std::mem::offset_of!(BNCustomBinaryViewType, isValidForData) - 24usize];
3895    ["Offset of field: BNCustomBinaryViewType::isDeprecated"]
3896        [::std::mem::offset_of!(BNCustomBinaryViewType, isDeprecated) - 32usize];
3897    ["Offset of field: BNCustomBinaryViewType::isForceLoadable"]
3898        [::std::mem::offset_of!(BNCustomBinaryViewType, isForceLoadable) - 40usize];
3899    ["Offset of field: BNCustomBinaryViewType::getLoadSettingsForData"]
3900        [::std::mem::offset_of!(BNCustomBinaryViewType, getLoadSettingsForData) - 48usize];
3901    ["Offset of field: BNCustomBinaryViewType::hasNoInitialContent"]
3902        [::std::mem::offset_of!(BNCustomBinaryViewType, hasNoInitialContent) - 56usize];
3903};
3904impl Default for BNCustomBinaryViewType {
3905    fn default() -> Self {
3906        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3907        unsafe {
3908            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3909            s.assume_init()
3910        }
3911    }
3912}
3913#[repr(C)]
3914#[derive(Debug, Copy, Clone)]
3915pub struct BNTransformParameterInfo {
3916    pub name: *mut ::std::os::raw::c_char,
3917    pub longName: *mut ::std::os::raw::c_char,
3918    #[doc = " Variable length if zero"]
3919    pub fixedLength: usize,
3920}
3921#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3922const _: () = {
3923    ["Size of BNTransformParameterInfo"]
3924        [::std::mem::size_of::<BNTransformParameterInfo>() - 24usize];
3925    ["Alignment of BNTransformParameterInfo"]
3926        [::std::mem::align_of::<BNTransformParameterInfo>() - 8usize];
3927    ["Offset of field: BNTransformParameterInfo::name"]
3928        [::std::mem::offset_of!(BNTransformParameterInfo, name) - 0usize];
3929    ["Offset of field: BNTransformParameterInfo::longName"]
3930        [::std::mem::offset_of!(BNTransformParameterInfo, longName) - 8usize];
3931    ["Offset of field: BNTransformParameterInfo::fixedLength"]
3932        [::std::mem::offset_of!(BNTransformParameterInfo, fixedLength) - 16usize];
3933};
3934impl Default for BNTransformParameterInfo {
3935    fn default() -> Self {
3936        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3937        unsafe {
3938            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3939            s.assume_init()
3940        }
3941    }
3942}
3943#[repr(C)]
3944#[derive(Debug, Copy, Clone)]
3945pub struct BNTransformParameter {
3946    pub name: *const ::std::os::raw::c_char,
3947    pub value: *mut BNDataBuffer,
3948}
3949#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3950const _: () = {
3951    ["Size of BNTransformParameter"][::std::mem::size_of::<BNTransformParameter>() - 16usize];
3952    ["Alignment of BNTransformParameter"][::std::mem::align_of::<BNTransformParameter>() - 8usize];
3953    ["Offset of field: BNTransformParameter::name"]
3954        [::std::mem::offset_of!(BNTransformParameter, name) - 0usize];
3955    ["Offset of field: BNTransformParameter::value"]
3956        [::std::mem::offset_of!(BNTransformParameter, value) - 8usize];
3957};
3958impl Default for BNTransformParameter {
3959    fn default() -> Self {
3960        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3961        unsafe {
3962            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3963            s.assume_init()
3964        }
3965    }
3966}
3967#[repr(C)]
3968#[derive(Debug, Copy, Clone)]
3969pub struct BNCustomTransform {
3970    pub context: *mut ::std::os::raw::c_void,
3971    pub getParameters: ::std::option::Option<
3972        unsafe extern "C" fn(
3973            ctxt: *mut ::std::os::raw::c_void,
3974            count: *mut usize,
3975        ) -> *mut BNTransformParameterInfo,
3976    >,
3977    pub freeParameters: ::std::option::Option<
3978        unsafe extern "C" fn(params: *mut BNTransformParameterInfo, count: usize),
3979    >,
3980    pub decode: ::std::option::Option<
3981        unsafe extern "C" fn(
3982            ctxt: *mut ::std::os::raw::c_void,
3983            input: *mut BNDataBuffer,
3984            output: *mut BNDataBuffer,
3985            params: *mut BNTransformParameter,
3986            paramCount: usize,
3987        ) -> bool,
3988    >,
3989    pub encode: ::std::option::Option<
3990        unsafe extern "C" fn(
3991            ctxt: *mut ::std::os::raw::c_void,
3992            input: *mut BNDataBuffer,
3993            output: *mut BNDataBuffer,
3994            params: *mut BNTransformParameter,
3995            paramCount: usize,
3996        ) -> bool,
3997    >,
3998    pub decodeWithContext: ::std::option::Option<
3999        unsafe extern "C" fn(
4000            ctxt: *mut ::std::os::raw::c_void,
4001            context: *mut BNTransformContext,
4002            params: *mut BNTransformParameter,
4003            paramCount: usize,
4004        ) -> bool,
4005    >,
4006    pub canDecode: ::std::option::Option<
4007        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, input: *mut BNBinaryView) -> bool,
4008    >,
4009}
4010#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4011const _: () = {
4012    ["Size of BNCustomTransform"][::std::mem::size_of::<BNCustomTransform>() - 56usize];
4013    ["Alignment of BNCustomTransform"][::std::mem::align_of::<BNCustomTransform>() - 8usize];
4014    ["Offset of field: BNCustomTransform::context"]
4015        [::std::mem::offset_of!(BNCustomTransform, context) - 0usize];
4016    ["Offset of field: BNCustomTransform::getParameters"]
4017        [::std::mem::offset_of!(BNCustomTransform, getParameters) - 8usize];
4018    ["Offset of field: BNCustomTransform::freeParameters"]
4019        [::std::mem::offset_of!(BNCustomTransform, freeParameters) - 16usize];
4020    ["Offset of field: BNCustomTransform::decode"]
4021        [::std::mem::offset_of!(BNCustomTransform, decode) - 24usize];
4022    ["Offset of field: BNCustomTransform::encode"]
4023        [::std::mem::offset_of!(BNCustomTransform, encode) - 32usize];
4024    ["Offset of field: BNCustomTransform::decodeWithContext"]
4025        [::std::mem::offset_of!(BNCustomTransform, decodeWithContext) - 40usize];
4026    ["Offset of field: BNCustomTransform::canDecode"]
4027        [::std::mem::offset_of!(BNCustomTransform, canDecode) - 48usize];
4028};
4029impl Default for BNCustomTransform {
4030    fn default() -> Self {
4031        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4032        unsafe {
4033            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4034            s.assume_init()
4035        }
4036    }
4037}
4038#[repr(C)]
4039#[derive(Debug, Copy, Clone)]
4040pub struct BNInstructionInfo {
4041    pub length: usize,
4042    pub branchCount: usize,
4043    pub archTransitionByTargetAddr: bool,
4044    pub delaySlots: u8,
4045    pub branchType: [BNBranchType; 3usize],
4046    pub branchTarget: [u64; 3usize],
4047    #[doc = " If null, same architecture as instruction"]
4048    pub branchArch: [*mut BNArchitecture; 3usize],
4049}
4050#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4051const _: () = {
4052    ["Size of BNInstructionInfo"][::std::mem::size_of::<BNInstructionInfo>() - 72usize];
4053    ["Alignment of BNInstructionInfo"][::std::mem::align_of::<BNInstructionInfo>() - 8usize];
4054    ["Offset of field: BNInstructionInfo::length"]
4055        [::std::mem::offset_of!(BNInstructionInfo, length) - 0usize];
4056    ["Offset of field: BNInstructionInfo::branchCount"]
4057        [::std::mem::offset_of!(BNInstructionInfo, branchCount) - 8usize];
4058    ["Offset of field: BNInstructionInfo::archTransitionByTargetAddr"]
4059        [::std::mem::offset_of!(BNInstructionInfo, archTransitionByTargetAddr) - 16usize];
4060    ["Offset of field: BNInstructionInfo::delaySlots"]
4061        [::std::mem::offset_of!(BNInstructionInfo, delaySlots) - 17usize];
4062    ["Offset of field: BNInstructionInfo::branchType"]
4063        [::std::mem::offset_of!(BNInstructionInfo, branchType) - 18usize];
4064    ["Offset of field: BNInstructionInfo::branchTarget"]
4065        [::std::mem::offset_of!(BNInstructionInfo, branchTarget) - 24usize];
4066    ["Offset of field: BNInstructionInfo::branchArch"]
4067        [::std::mem::offset_of!(BNInstructionInfo, branchArch) - 48usize];
4068};
4069impl Default for BNInstructionInfo {
4070    fn default() -> Self {
4071        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4072        unsafe {
4073            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4074            s.assume_init()
4075        }
4076    }
4077}
4078#[repr(u32)]
4079#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
4080pub enum BNLinearSweepAnalysisCapability {
4081    BNLinearSweepCallTargetAnalysis = 1,
4082    BNLinearSweepGenericControlFlowAnalysis = 2,
4083}
4084#[repr(u8)]
4085#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
4086pub enum BNRelocationType {
4087    ELFGlobalRelocationType = 0,
4088    ELFCopyRelocationType = 1,
4089    ELFJumpSlotRelocationType = 2,
4090    StandardRelocationType = 3,
4091    IgnoredRelocation = 4,
4092    UnhandledRelocation = 5,
4093}
4094#[repr(C)]
4095#[derive(Debug, Copy, Clone)]
4096pub struct BNRelocationInfo {
4097    #[doc = " BinaryNinja Relocation Type"]
4098    pub type_: BNRelocationType,
4099    #[doc = " PC Relative or Absolute (subtract address from relocation)"]
4100    pub pcRelative: bool,
4101    #[doc = " Relative to start of module (Add module base to relocation)"]
4102    pub baseRelative: bool,
4103    #[doc = " Base address for this binary view"]
4104    pub base: u64,
4105    #[doc = " Size of the data to be written"]
4106    pub size: usize,
4107    #[doc = " After addition/subtraction truncate to"]
4108    pub truncateSize: usize,
4109    #[doc = " Base type from relocation entry"]
4110    pub nativeType: u64,
4111    #[doc = " Addend value from relocation entry"]
4112    pub addend: usize,
4113    #[doc = " Addend should be subtracted"]
4114    pub hasSign: bool,
4115    #[doc = " Addend should be read from the BinaryView"]
4116    pub implicitAddend: bool,
4117    #[doc = " Relocation entry points to external symbol"]
4118    pub external: bool,
4119    #[doc = " Index into symbol table"]
4120    pub symbolIndex: usize,
4121    #[doc = " Index into the section table"]
4122    pub sectionIndex: usize,
4123    #[doc = " Absolute address or segment offset"]
4124    pub address: u64,
4125    #[doc = " Target (set automatically)"]
4126    pub target: u64,
4127    #[doc = " This relocation is effecting data not code"]
4128    pub dataRelocation: bool,
4129    pub relocationDataCache: [u8; 8usize],
4130    #[doc = " Link to relocation another related relocation"]
4131    pub prev: *mut BNRelocationInfo,
4132    #[doc = " Link to relocation another related relocation"]
4133    pub next: *mut BNRelocationInfo,
4134}
4135#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4136const _: () = {
4137    ["Size of BNRelocationInfo"][::std::mem::size_of::<BNRelocationInfo>() - 120usize];
4138    ["Alignment of BNRelocationInfo"][::std::mem::align_of::<BNRelocationInfo>() - 8usize];
4139    ["Offset of field: BNRelocationInfo::type_"]
4140        [::std::mem::offset_of!(BNRelocationInfo, type_) - 0usize];
4141    ["Offset of field: BNRelocationInfo::pcRelative"]
4142        [::std::mem::offset_of!(BNRelocationInfo, pcRelative) - 1usize];
4143    ["Offset of field: BNRelocationInfo::baseRelative"]
4144        [::std::mem::offset_of!(BNRelocationInfo, baseRelative) - 2usize];
4145    ["Offset of field: BNRelocationInfo::base"]
4146        [::std::mem::offset_of!(BNRelocationInfo, base) - 8usize];
4147    ["Offset of field: BNRelocationInfo::size"]
4148        [::std::mem::offset_of!(BNRelocationInfo, size) - 16usize];
4149    ["Offset of field: BNRelocationInfo::truncateSize"]
4150        [::std::mem::offset_of!(BNRelocationInfo, truncateSize) - 24usize];
4151    ["Offset of field: BNRelocationInfo::nativeType"]
4152        [::std::mem::offset_of!(BNRelocationInfo, nativeType) - 32usize];
4153    ["Offset of field: BNRelocationInfo::addend"]
4154        [::std::mem::offset_of!(BNRelocationInfo, addend) - 40usize];
4155    ["Offset of field: BNRelocationInfo::hasSign"]
4156        [::std::mem::offset_of!(BNRelocationInfo, hasSign) - 48usize];
4157    ["Offset of field: BNRelocationInfo::implicitAddend"]
4158        [::std::mem::offset_of!(BNRelocationInfo, implicitAddend) - 49usize];
4159    ["Offset of field: BNRelocationInfo::external"]
4160        [::std::mem::offset_of!(BNRelocationInfo, external) - 50usize];
4161    ["Offset of field: BNRelocationInfo::symbolIndex"]
4162        [::std::mem::offset_of!(BNRelocationInfo, symbolIndex) - 56usize];
4163    ["Offset of field: BNRelocationInfo::sectionIndex"]
4164        [::std::mem::offset_of!(BNRelocationInfo, sectionIndex) - 64usize];
4165    ["Offset of field: BNRelocationInfo::address"]
4166        [::std::mem::offset_of!(BNRelocationInfo, address) - 72usize];
4167    ["Offset of field: BNRelocationInfo::target"]
4168        [::std::mem::offset_of!(BNRelocationInfo, target) - 80usize];
4169    ["Offset of field: BNRelocationInfo::dataRelocation"]
4170        [::std::mem::offset_of!(BNRelocationInfo, dataRelocation) - 88usize];
4171    ["Offset of field: BNRelocationInfo::relocationDataCache"]
4172        [::std::mem::offset_of!(BNRelocationInfo, relocationDataCache) - 89usize];
4173    ["Offset of field: BNRelocationInfo::prev"]
4174        [::std::mem::offset_of!(BNRelocationInfo, prev) - 104usize];
4175    ["Offset of field: BNRelocationInfo::next"]
4176        [::std::mem::offset_of!(BNRelocationInfo, next) - 112usize];
4177};
4178impl Default for BNRelocationInfo {
4179    fn default() -> Self {
4180        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4181        unsafe {
4182            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4183            s.assume_init()
4184        }
4185    }
4186}
4187#[repr(C)]
4188#[derive(Debug, Copy, Clone)]
4189pub struct BNInstructionTextToken {
4190    pub type_: BNInstructionTextTokenType,
4191    pub text: *mut ::std::os::raw::c_char,
4192    pub value: u64,
4193    pub width: u64,
4194    pub size: usize,
4195    pub operand: usize,
4196    pub context: BNInstructionTextTokenContext,
4197    pub confidence: u8,
4198    pub address: u64,
4199    pub typeNames: *mut *mut ::std::os::raw::c_char,
4200    pub namesCount: usize,
4201    pub exprIndex: usize,
4202}
4203#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4204const _: () = {
4205    ["Size of BNInstructionTextToken"][::std::mem::size_of::<BNInstructionTextToken>() - 88usize];
4206    ["Alignment of BNInstructionTextToken"]
4207        [::std::mem::align_of::<BNInstructionTextToken>() - 8usize];
4208    ["Offset of field: BNInstructionTextToken::type_"]
4209        [::std::mem::offset_of!(BNInstructionTextToken, type_) - 0usize];
4210    ["Offset of field: BNInstructionTextToken::text"]
4211        [::std::mem::offset_of!(BNInstructionTextToken, text) - 8usize];
4212    ["Offset of field: BNInstructionTextToken::value"]
4213        [::std::mem::offset_of!(BNInstructionTextToken, value) - 16usize];
4214    ["Offset of field: BNInstructionTextToken::width"]
4215        [::std::mem::offset_of!(BNInstructionTextToken, width) - 24usize];
4216    ["Offset of field: BNInstructionTextToken::size"]
4217        [::std::mem::offset_of!(BNInstructionTextToken, size) - 32usize];
4218    ["Offset of field: BNInstructionTextToken::operand"]
4219        [::std::mem::offset_of!(BNInstructionTextToken, operand) - 40usize];
4220    ["Offset of field: BNInstructionTextToken::context"]
4221        [::std::mem::offset_of!(BNInstructionTextToken, context) - 48usize];
4222    ["Offset of field: BNInstructionTextToken::confidence"]
4223        [::std::mem::offset_of!(BNInstructionTextToken, confidence) - 49usize];
4224    ["Offset of field: BNInstructionTextToken::address"]
4225        [::std::mem::offset_of!(BNInstructionTextToken, address) - 56usize];
4226    ["Offset of field: BNInstructionTextToken::typeNames"]
4227        [::std::mem::offset_of!(BNInstructionTextToken, typeNames) - 64usize];
4228    ["Offset of field: BNInstructionTextToken::namesCount"]
4229        [::std::mem::offset_of!(BNInstructionTextToken, namesCount) - 72usize];
4230    ["Offset of field: BNInstructionTextToken::exprIndex"]
4231        [::std::mem::offset_of!(BNInstructionTextToken, exprIndex) - 80usize];
4232};
4233impl Default for BNInstructionTextToken {
4234    fn default() -> Self {
4235        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4236        unsafe {
4237            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4238            s.assume_init()
4239        }
4240    }
4241}
4242#[repr(C)]
4243#[derive(Debug, Copy, Clone)]
4244pub struct BNInstructionTextLine {
4245    pub tokens: *mut BNInstructionTextToken,
4246    pub count: usize,
4247}
4248#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4249const _: () = {
4250    ["Size of BNInstructionTextLine"][::std::mem::size_of::<BNInstructionTextLine>() - 16usize];
4251    ["Alignment of BNInstructionTextLine"]
4252        [::std::mem::align_of::<BNInstructionTextLine>() - 8usize];
4253    ["Offset of field: BNInstructionTextLine::tokens"]
4254        [::std::mem::offset_of!(BNInstructionTextLine, tokens) - 0usize];
4255    ["Offset of field: BNInstructionTextLine::count"]
4256        [::std::mem::offset_of!(BNInstructionTextLine, count) - 8usize];
4257};
4258impl Default for BNInstructionTextLine {
4259    fn default() -> Self {
4260        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4261        unsafe {
4262            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4263            s.assume_init()
4264        }
4265    }
4266}
4267#[repr(u8)]
4268#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
4269pub enum BNTypeDefinitionLineType {
4270    TypedefLineType = 0,
4271    StructDefinitionLineType = 1,
4272    StructFieldLineType = 2,
4273    StructDefinitionEndLineType = 3,
4274    EnumDefinitionLineType = 4,
4275    EnumMemberLineType = 5,
4276    EnumDefinitionEndLineType = 6,
4277    PaddingLineType = 7,
4278    UndefinedXrefLineType = 8,
4279    CollapsedPaddingLineType = 9,
4280    EmptyLineType = 10,
4281}
4282#[repr(C)]
4283#[derive(Debug, Copy, Clone)]
4284pub struct BNTypeDefinitionLine {
4285    pub lineType: BNTypeDefinitionLineType,
4286    pub tokens: *mut BNInstructionTextToken,
4287    pub count: usize,
4288    pub type_: *mut BNType,
4289    pub parentType: *mut BNType,
4290    pub rootType: *mut BNType,
4291    pub rootTypeName: *mut ::std::os::raw::c_char,
4292    pub baseType: *mut BNNamedTypeReference,
4293    pub baseOffset: u64,
4294    pub offset: u64,
4295    pub fieldIndex: usize,
4296}
4297#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4298const _: () = {
4299    ["Size of BNTypeDefinitionLine"][::std::mem::size_of::<BNTypeDefinitionLine>() - 88usize];
4300    ["Alignment of BNTypeDefinitionLine"][::std::mem::align_of::<BNTypeDefinitionLine>() - 8usize];
4301    ["Offset of field: BNTypeDefinitionLine::lineType"]
4302        [::std::mem::offset_of!(BNTypeDefinitionLine, lineType) - 0usize];
4303    ["Offset of field: BNTypeDefinitionLine::tokens"]
4304        [::std::mem::offset_of!(BNTypeDefinitionLine, tokens) - 8usize];
4305    ["Offset of field: BNTypeDefinitionLine::count"]
4306        [::std::mem::offset_of!(BNTypeDefinitionLine, count) - 16usize];
4307    ["Offset of field: BNTypeDefinitionLine::type_"]
4308        [::std::mem::offset_of!(BNTypeDefinitionLine, type_) - 24usize];
4309    ["Offset of field: BNTypeDefinitionLine::parentType"]
4310        [::std::mem::offset_of!(BNTypeDefinitionLine, parentType) - 32usize];
4311    ["Offset of field: BNTypeDefinitionLine::rootType"]
4312        [::std::mem::offset_of!(BNTypeDefinitionLine, rootType) - 40usize];
4313    ["Offset of field: BNTypeDefinitionLine::rootTypeName"]
4314        [::std::mem::offset_of!(BNTypeDefinitionLine, rootTypeName) - 48usize];
4315    ["Offset of field: BNTypeDefinitionLine::baseType"]
4316        [::std::mem::offset_of!(BNTypeDefinitionLine, baseType) - 56usize];
4317    ["Offset of field: BNTypeDefinitionLine::baseOffset"]
4318        [::std::mem::offset_of!(BNTypeDefinitionLine, baseOffset) - 64usize];
4319    ["Offset of field: BNTypeDefinitionLine::offset"]
4320        [::std::mem::offset_of!(BNTypeDefinitionLine, offset) - 72usize];
4321    ["Offset of field: BNTypeDefinitionLine::fieldIndex"]
4322        [::std::mem::offset_of!(BNTypeDefinitionLine, fieldIndex) - 80usize];
4323};
4324impl Default for BNTypeDefinitionLine {
4325    fn default() -> Self {
4326        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4327        unsafe {
4328            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4329            s.assume_init()
4330        }
4331    }
4332}
4333#[repr(C)]
4334#[derive(Debug, Copy, Clone)]
4335pub struct BNFlagConditionForSemanticClass {
4336    pub semanticClass: u32,
4337    pub condition: BNLowLevelILFlagCondition,
4338}
4339#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4340const _: () = {
4341    ["Size of BNFlagConditionForSemanticClass"]
4342        [::std::mem::size_of::<BNFlagConditionForSemanticClass>() - 8usize];
4343    ["Alignment of BNFlagConditionForSemanticClass"]
4344        [::std::mem::align_of::<BNFlagConditionForSemanticClass>() - 4usize];
4345    ["Offset of field: BNFlagConditionForSemanticClass::semanticClass"]
4346        [::std::mem::offset_of!(BNFlagConditionForSemanticClass, semanticClass) - 0usize];
4347    ["Offset of field: BNFlagConditionForSemanticClass::condition"]
4348        [::std::mem::offset_of!(BNFlagConditionForSemanticClass, condition) - 4usize];
4349};
4350impl Default for BNFlagConditionForSemanticClass {
4351    fn default() -> Self {
4352        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4353        unsafe {
4354            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4355            s.assume_init()
4356        }
4357    }
4358}
4359#[repr(C)]
4360#[derive(Debug, Copy, Clone)]
4361pub struct BNNameAndType {
4362    pub name: *mut ::std::os::raw::c_char,
4363    pub type_: *mut BNType,
4364    pub typeConfidence: u8,
4365}
4366#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4367const _: () = {
4368    ["Size of BNNameAndType"][::std::mem::size_of::<BNNameAndType>() - 24usize];
4369    ["Alignment of BNNameAndType"][::std::mem::align_of::<BNNameAndType>() - 8usize];
4370    ["Offset of field: BNNameAndType::name"][::std::mem::offset_of!(BNNameAndType, name) - 0usize];
4371    ["Offset of field: BNNameAndType::type_"]
4372        [::std::mem::offset_of!(BNNameAndType, type_) - 8usize];
4373    ["Offset of field: BNNameAndType::typeConfidence"]
4374        [::std::mem::offset_of!(BNNameAndType, typeConfidence) - 16usize];
4375};
4376impl Default for BNNameAndType {
4377    fn default() -> Self {
4378        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4379        unsafe {
4380            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4381            s.assume_init()
4382        }
4383    }
4384}
4385#[repr(C)]
4386#[derive(Debug, Copy, Clone)]
4387pub struct BNTypeWithConfidence {
4388    pub type_: *mut BNType,
4389    pub confidence: u8,
4390}
4391#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4392const _: () = {
4393    ["Size of BNTypeWithConfidence"][::std::mem::size_of::<BNTypeWithConfidence>() - 16usize];
4394    ["Alignment of BNTypeWithConfidence"][::std::mem::align_of::<BNTypeWithConfidence>() - 8usize];
4395    ["Offset of field: BNTypeWithConfidence::type_"]
4396        [::std::mem::offset_of!(BNTypeWithConfidence, type_) - 0usize];
4397    ["Offset of field: BNTypeWithConfidence::confidence"]
4398        [::std::mem::offset_of!(BNTypeWithConfidence, confidence) - 8usize];
4399};
4400impl Default for BNTypeWithConfidence {
4401    fn default() -> Self {
4402        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4403        unsafe {
4404            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4405            s.assume_init()
4406        }
4407    }
4408}
4409#[repr(u8)]
4410#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
4411pub enum BNFunctionAnalysisSkipOverride {
4412    DefaultFunctionAnalysisSkip = 0,
4413    NeverSkipFunctionAnalysis = 1,
4414    AlwaysSkipFunctionAnalysis = 2,
4415}
4416#[repr(C)]
4417#[derive(Debug, Copy, Clone)]
4418pub struct BNBasicBlockAnalysisContext {
4419    pub function: *mut BNFunction,
4420    #[doc = " IN"]
4421    pub analysisSkipOverride: BNFunctionAnalysisSkipOverride,
4422    pub guidedAnalysisMode: bool,
4423    pub triggerGuidedOnInvalidInstruction: bool,
4424    pub translateTailCalls: bool,
4425    pub disallowBranchToString: bool,
4426    pub maxFunctionSize: u64,
4427    pub indirectBranchesCount: usize,
4428    pub indirectBranches: *mut BNIndirectBranchInfo,
4429    pub indirectNoReturnCallsCount: usize,
4430    pub indirectNoReturnCalls: *mut BNArchitectureAndAddress,
4431    #[doc = " OUT; can be set directly"]
4432    pub maxSizeReached: bool,
4433    #[doc = " IN *and* OUT"]
4434    pub contextualFunctionReturnCount: usize,
4435    pub contextualFunctionReturnLocations: *mut BNArchitectureAndAddress,
4436    pub contextualFunctionReturnValues: *mut bool,
4437    #[doc = " OUT"]
4438    pub directRefCount: usize,
4439    pub directRefSources: *mut BNArchitectureAndAddress,
4440    pub directRefTargets: *mut u64,
4441    pub directNoReturnCallsCount: usize,
4442    pub directNoReturnCalls: *mut BNArchitectureAndAddress,
4443    pub haltedDisassemblyAddressesCount: usize,
4444    pub haltedDisassemblyAddresses: *mut BNArchitectureAndAddress,
4445    pub inlinedUnresolvedIndirectBranchCount: usize,
4446    pub inlinedUnresolvedIndirectBranches: *mut BNArchitectureAndAddress,
4447    pub functionArchContext: *mut ::std::os::raw::c_void,
4448    pub lifterInstructionData: *mut BNLifterInstructionData,
4449}
4450#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4451const _: () = {
4452    ["Size of BNBasicBlockAnalysisContext"]
4453        [::std::mem::size_of::<BNBasicBlockAnalysisContext>() - 176usize];
4454    ["Alignment of BNBasicBlockAnalysisContext"]
4455        [::std::mem::align_of::<BNBasicBlockAnalysisContext>() - 8usize];
4456    ["Offset of field: BNBasicBlockAnalysisContext::function"]
4457        [::std::mem::offset_of!(BNBasicBlockAnalysisContext, function) - 0usize];
4458    ["Offset of field: BNBasicBlockAnalysisContext::analysisSkipOverride"]
4459        [::std::mem::offset_of!(BNBasicBlockAnalysisContext, analysisSkipOverride) - 8usize];
4460    ["Offset of field: BNBasicBlockAnalysisContext::guidedAnalysisMode"]
4461        [::std::mem::offset_of!(BNBasicBlockAnalysisContext, guidedAnalysisMode) - 9usize];
4462    ["Offset of field: BNBasicBlockAnalysisContext::triggerGuidedOnInvalidInstruction"][::std::mem::offset_of!(
4463        BNBasicBlockAnalysisContext,
4464        triggerGuidedOnInvalidInstruction
4465    )
4466        - 10usize];
4467    ["Offset of field: BNBasicBlockAnalysisContext::translateTailCalls"]
4468        [::std::mem::offset_of!(BNBasicBlockAnalysisContext, translateTailCalls) - 11usize];
4469    ["Offset of field: BNBasicBlockAnalysisContext::disallowBranchToString"]
4470        [::std::mem::offset_of!(BNBasicBlockAnalysisContext, disallowBranchToString) - 12usize];
4471    ["Offset of field: BNBasicBlockAnalysisContext::maxFunctionSize"]
4472        [::std::mem::offset_of!(BNBasicBlockAnalysisContext, maxFunctionSize) - 16usize];
4473    ["Offset of field: BNBasicBlockAnalysisContext::indirectBranchesCount"]
4474        [::std::mem::offset_of!(BNBasicBlockAnalysisContext, indirectBranchesCount) - 24usize];
4475    ["Offset of field: BNBasicBlockAnalysisContext::indirectBranches"]
4476        [::std::mem::offset_of!(BNBasicBlockAnalysisContext, indirectBranches) - 32usize];
4477    ["Offset of field: BNBasicBlockAnalysisContext::indirectNoReturnCallsCount"]
4478        [::std::mem::offset_of!(BNBasicBlockAnalysisContext, indirectNoReturnCallsCount) - 40usize];
4479    ["Offset of field: BNBasicBlockAnalysisContext::indirectNoReturnCalls"]
4480        [::std::mem::offset_of!(BNBasicBlockAnalysisContext, indirectNoReturnCalls) - 48usize];
4481    ["Offset of field: BNBasicBlockAnalysisContext::maxSizeReached"]
4482        [::std::mem::offset_of!(BNBasicBlockAnalysisContext, maxSizeReached) - 56usize];
4483    ["Offset of field: BNBasicBlockAnalysisContext::contextualFunctionReturnCount"][::std::mem::offset_of!(
4484        BNBasicBlockAnalysisContext,
4485        contextualFunctionReturnCount
4486    ) - 64usize];
4487    ["Offset of field: BNBasicBlockAnalysisContext::contextualFunctionReturnLocations"][::std::mem::offset_of!(
4488        BNBasicBlockAnalysisContext,
4489        contextualFunctionReturnLocations
4490    )
4491        - 72usize];
4492    ["Offset of field: BNBasicBlockAnalysisContext::contextualFunctionReturnValues"][::std::mem::offset_of!(
4493        BNBasicBlockAnalysisContext,
4494        contextualFunctionReturnValues
4495    ) - 80usize];
4496    ["Offset of field: BNBasicBlockAnalysisContext::directRefCount"]
4497        [::std::mem::offset_of!(BNBasicBlockAnalysisContext, directRefCount) - 88usize];
4498    ["Offset of field: BNBasicBlockAnalysisContext::directRefSources"]
4499        [::std::mem::offset_of!(BNBasicBlockAnalysisContext, directRefSources) - 96usize];
4500    ["Offset of field: BNBasicBlockAnalysisContext::directRefTargets"]
4501        [::std::mem::offset_of!(BNBasicBlockAnalysisContext, directRefTargets) - 104usize];
4502    ["Offset of field: BNBasicBlockAnalysisContext::directNoReturnCallsCount"]
4503        [::std::mem::offset_of!(BNBasicBlockAnalysisContext, directNoReturnCallsCount) - 112usize];
4504    ["Offset of field: BNBasicBlockAnalysisContext::directNoReturnCalls"]
4505        [::std::mem::offset_of!(BNBasicBlockAnalysisContext, directNoReturnCalls) - 120usize];
4506    ["Offset of field: BNBasicBlockAnalysisContext::haltedDisassemblyAddressesCount"][::std::mem::offset_of!(
4507        BNBasicBlockAnalysisContext,
4508        haltedDisassemblyAddressesCount
4509    ) - 128usize];
4510    ["Offset of field: BNBasicBlockAnalysisContext::haltedDisassemblyAddresses"][::std::mem::offset_of!(
4511        BNBasicBlockAnalysisContext,
4512        haltedDisassemblyAddresses
4513    ) - 136usize];
4514    ["Offset of field: BNBasicBlockAnalysisContext::inlinedUnresolvedIndirectBranchCount"][::std::mem::offset_of!(
4515        BNBasicBlockAnalysisContext,
4516        inlinedUnresolvedIndirectBranchCount
4517    )
4518        - 144usize];
4519    ["Offset of field: BNBasicBlockAnalysisContext::inlinedUnresolvedIndirectBranches"][::std::mem::offset_of!(
4520        BNBasicBlockAnalysisContext,
4521        inlinedUnresolvedIndirectBranches
4522    )
4523        - 152usize];
4524    ["Offset of field: BNBasicBlockAnalysisContext::functionArchContext"]
4525        [::std::mem::offset_of!(BNBasicBlockAnalysisContext, functionArchContext) - 160usize];
4526    ["Offset of field: BNBasicBlockAnalysisContext::lifterInstructionData"]
4527        [::std::mem::offset_of!(BNBasicBlockAnalysisContext, lifterInstructionData) - 168usize];
4528};
4529impl Default for BNBasicBlockAnalysisContext {
4530    fn default() -> Self {
4531        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4532        unsafe {
4533            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4534            s.assume_init()
4535        }
4536    }
4537}
4538#[repr(C)]
4539#[derive(Debug, Copy, Clone)]
4540pub struct BNFunctionLifterContext {
4541    #[doc = " IN"]
4542    pub platform: *mut BNPlatform,
4543    pub logger: *mut BNLogger,
4544    pub basicBlockCount: usize,
4545    pub basicBlocks: *mut *mut BNBasicBlock,
4546    pub inlinedRemappingEntryCount: usize,
4547    pub inlinedRemappingKeys: *mut BNArchitectureAndAddress,
4548    pub inlinedRemappingValues: *mut BNArchitectureAndAddress,
4549    pub indirectBranchesCount: usize,
4550    pub indirectBranches: *mut BNIndirectBranchInfo,
4551    pub noReturnCallsCount: usize,
4552    pub noReturnCalls: *mut BNArchitectureAndAddress,
4553    pub contextualFunctionReturnCount: usize,
4554    pub contextualFunctionReturnLocations: *mut BNArchitectureAndAddress,
4555    pub contextualFunctionReturnValues: *mut bool,
4556    pub inlinedCallsCount: usize,
4557    pub inlinedCalls: *mut u64,
4558    pub functionArchContext: *mut ::std::os::raw::c_void,
4559    pub lifterInstructionData: *mut BNLifterInstructionData,
4560    #[doc = " OUT"]
4561    pub containsInlinedFunctions: *mut bool,
4562}
4563#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4564const _: () = {
4565    ["Size of BNFunctionLifterContext"]
4566        [::std::mem::size_of::<BNFunctionLifterContext>() - 152usize];
4567    ["Alignment of BNFunctionLifterContext"]
4568        [::std::mem::align_of::<BNFunctionLifterContext>() - 8usize];
4569    ["Offset of field: BNFunctionLifterContext::platform"]
4570        [::std::mem::offset_of!(BNFunctionLifterContext, platform) - 0usize];
4571    ["Offset of field: BNFunctionLifterContext::logger"]
4572        [::std::mem::offset_of!(BNFunctionLifterContext, logger) - 8usize];
4573    ["Offset of field: BNFunctionLifterContext::basicBlockCount"]
4574        [::std::mem::offset_of!(BNFunctionLifterContext, basicBlockCount) - 16usize];
4575    ["Offset of field: BNFunctionLifterContext::basicBlocks"]
4576        [::std::mem::offset_of!(BNFunctionLifterContext, basicBlocks) - 24usize];
4577    ["Offset of field: BNFunctionLifterContext::inlinedRemappingEntryCount"]
4578        [::std::mem::offset_of!(BNFunctionLifterContext, inlinedRemappingEntryCount) - 32usize];
4579    ["Offset of field: BNFunctionLifterContext::inlinedRemappingKeys"]
4580        [::std::mem::offset_of!(BNFunctionLifterContext, inlinedRemappingKeys) - 40usize];
4581    ["Offset of field: BNFunctionLifterContext::inlinedRemappingValues"]
4582        [::std::mem::offset_of!(BNFunctionLifterContext, inlinedRemappingValues) - 48usize];
4583    ["Offset of field: BNFunctionLifterContext::indirectBranchesCount"]
4584        [::std::mem::offset_of!(BNFunctionLifterContext, indirectBranchesCount) - 56usize];
4585    ["Offset of field: BNFunctionLifterContext::indirectBranches"]
4586        [::std::mem::offset_of!(BNFunctionLifterContext, indirectBranches) - 64usize];
4587    ["Offset of field: BNFunctionLifterContext::noReturnCallsCount"]
4588        [::std::mem::offset_of!(BNFunctionLifterContext, noReturnCallsCount) - 72usize];
4589    ["Offset of field: BNFunctionLifterContext::noReturnCalls"]
4590        [::std::mem::offset_of!(BNFunctionLifterContext, noReturnCalls) - 80usize];
4591    ["Offset of field: BNFunctionLifterContext::contextualFunctionReturnCount"]
4592        [::std::mem::offset_of!(BNFunctionLifterContext, contextualFunctionReturnCount) - 88usize];
4593    ["Offset of field: BNFunctionLifterContext::contextualFunctionReturnLocations"][::std::mem::offset_of!(
4594        BNFunctionLifterContext,
4595        contextualFunctionReturnLocations
4596    ) - 96usize];
4597    ["Offset of field: BNFunctionLifterContext::contextualFunctionReturnValues"][::std::mem::offset_of!(
4598        BNFunctionLifterContext,
4599        contextualFunctionReturnValues
4600    ) - 104usize];
4601    ["Offset of field: BNFunctionLifterContext::inlinedCallsCount"]
4602        [::std::mem::offset_of!(BNFunctionLifterContext, inlinedCallsCount) - 112usize];
4603    ["Offset of field: BNFunctionLifterContext::inlinedCalls"]
4604        [::std::mem::offset_of!(BNFunctionLifterContext, inlinedCalls) - 120usize];
4605    ["Offset of field: BNFunctionLifterContext::functionArchContext"]
4606        [::std::mem::offset_of!(BNFunctionLifterContext, functionArchContext) - 128usize];
4607    ["Offset of field: BNFunctionLifterContext::lifterInstructionData"]
4608        [::std::mem::offset_of!(BNFunctionLifterContext, lifterInstructionData) - 136usize];
4609    ["Offset of field: BNFunctionLifterContext::containsInlinedFunctions"]
4610        [::std::mem::offset_of!(BNFunctionLifterContext, containsInlinedFunctions) - 144usize];
4611};
4612impl Default for BNFunctionLifterContext {
4613    fn default() -> Self {
4614        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4615        unsafe {
4616            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4617            s.assume_init()
4618        }
4619    }
4620}
4621#[repr(C)]
4622#[derive(Debug, Copy, Clone)]
4623pub struct BNCustomArchitecture {
4624    pub context: *mut ::std::os::raw::c_void,
4625    pub init: ::std::option::Option<
4626        unsafe extern "C" fn(context: *mut ::std::os::raw::c_void, obj: *mut BNArchitecture),
4627    >,
4628    pub getEndianness: ::std::option::Option<
4629        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> BNEndianness,
4630    >,
4631    pub getAddressSize:
4632        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> usize>,
4633    pub getDefaultIntegerSize:
4634        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> usize>,
4635    pub getInstructionAlignment:
4636        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> usize>,
4637    pub getMaxInstructionLength:
4638        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> usize>,
4639    pub getOpcodeDisplayLength:
4640        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> usize>,
4641    pub getAssociatedArchitectureByAddress: ::std::option::Option<
4642        unsafe extern "C" fn(
4643            ctxt: *mut ::std::os::raw::c_void,
4644            addr: *mut u64,
4645        ) -> *mut BNArchitecture,
4646    >,
4647    pub getInstructionInfo: ::std::option::Option<
4648        unsafe extern "C" fn(
4649            ctxt: *mut ::std::os::raw::c_void,
4650            data: *const u8,
4651            addr: u64,
4652            maxLen: usize,
4653            result: *mut BNInstructionInfo,
4654        ) -> bool,
4655    >,
4656    pub getInstructionText: ::std::option::Option<
4657        unsafe extern "C" fn(
4658            ctxt: *mut ::std::os::raw::c_void,
4659            data: *const u8,
4660            addr: u64,
4661            len: *mut usize,
4662            result: *mut *mut BNInstructionTextToken,
4663            count: *mut usize,
4664        ) -> bool,
4665    >,
4666    pub getInstructionTextWithContext: ::std::option::Option<
4667        unsafe extern "C" fn(
4668            ctxt: *mut ::std::os::raw::c_void,
4669            data: *const u8,
4670            addr: u64,
4671            len: *mut usize,
4672            context: *mut ::std::os::raw::c_void,
4673            result: *mut *mut BNInstructionTextToken,
4674            count: *mut usize,
4675        ) -> bool,
4676    >,
4677    pub freeInstructionText: ::std::option::Option<
4678        unsafe extern "C" fn(tokens: *mut BNInstructionTextToken, count: usize),
4679    >,
4680    pub getInstructionLowLevelIL: ::std::option::Option<
4681        unsafe extern "C" fn(
4682            ctxt: *mut ::std::os::raw::c_void,
4683            data: *const u8,
4684            addr: u64,
4685            len: *mut usize,
4686            il: *mut BNLowLevelILFunction,
4687        ) -> bool,
4688    >,
4689    pub analyzeBasicBlocks: ::std::option::Option<
4690        unsafe extern "C" fn(
4691            ctxt: *mut ::std::os::raw::c_void,
4692            function: *mut BNFunction,
4693            context: *mut BNBasicBlockAnalysisContext,
4694        ),
4695    >,
4696    pub liftFunction: ::std::option::Option<
4697        unsafe extern "C" fn(
4698            ctext: *mut ::std::os::raw::c_void,
4699            function: *mut BNLowLevelILFunction,
4700            context: *mut BNFunctionLifterContext,
4701        ) -> bool,
4702    >,
4703    pub freeFunctionArchContext: ::std::option::Option<
4704        unsafe extern "C" fn(
4705            ctxt: *mut ::std::os::raw::c_void,
4706            context: *mut ::std::os::raw::c_void,
4707        ),
4708    >,
4709    pub getRegisterName: ::std::option::Option<
4710        unsafe extern "C" fn(
4711            ctxt: *mut ::std::os::raw::c_void,
4712            reg: u32,
4713        ) -> *mut ::std::os::raw::c_char,
4714    >,
4715    pub getFlagName: ::std::option::Option<
4716        unsafe extern "C" fn(
4717            ctxt: *mut ::std::os::raw::c_void,
4718            flag: u32,
4719        ) -> *mut ::std::os::raw::c_char,
4720    >,
4721    pub getFlagWriteTypeName: ::std::option::Option<
4722        unsafe extern "C" fn(
4723            ctxt: *mut ::std::os::raw::c_void,
4724            flags: u32,
4725        ) -> *mut ::std::os::raw::c_char,
4726    >,
4727    pub getSemanticFlagClassName: ::std::option::Option<
4728        unsafe extern "C" fn(
4729            ctxt: *mut ::std::os::raw::c_void,
4730            semClass: u32,
4731        ) -> *mut ::std::os::raw::c_char,
4732    >,
4733    pub getSemanticFlagGroupName: ::std::option::Option<
4734        unsafe extern "C" fn(
4735            ctxt: *mut ::std::os::raw::c_void,
4736            semGroup: u32,
4737        ) -> *mut ::std::os::raw::c_char,
4738    >,
4739    pub getFullWidthRegisters: ::std::option::Option<
4740        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
4741    >,
4742    pub getAllRegisters: ::std::option::Option<
4743        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
4744    >,
4745    pub getAllFlags: ::std::option::Option<
4746        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
4747    >,
4748    pub getAllFlagWriteTypes: ::std::option::Option<
4749        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
4750    >,
4751    pub getAllSemanticFlagClasses: ::std::option::Option<
4752        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
4753    >,
4754    pub getAllSemanticFlagGroups: ::std::option::Option<
4755        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
4756    >,
4757    pub getFlagRole: ::std::option::Option<
4758        unsafe extern "C" fn(
4759            ctxt: *mut ::std::os::raw::c_void,
4760            flag: u32,
4761            semClass: u32,
4762        ) -> BNFlagRole,
4763    >,
4764    pub getFlagsRequiredForFlagCondition: ::std::option::Option<
4765        unsafe extern "C" fn(
4766            ctxt: *mut ::std::os::raw::c_void,
4767            cond: BNLowLevelILFlagCondition,
4768            semClass: u32,
4769            count: *mut usize,
4770        ) -> *mut u32,
4771    >,
4772    pub getFlagsRequiredForSemanticFlagGroup: ::std::option::Option<
4773        unsafe extern "C" fn(
4774            ctxt: *mut ::std::os::raw::c_void,
4775            semGroup: u32,
4776            count: *mut usize,
4777        ) -> *mut u32,
4778    >,
4779    pub getFlagConditionsForSemanticFlagGroup: ::std::option::Option<
4780        unsafe extern "C" fn(
4781            ctxt: *mut ::std::os::raw::c_void,
4782            semGroup: u32,
4783            count: *mut usize,
4784        ) -> *mut BNFlagConditionForSemanticClass,
4785    >,
4786    pub freeFlagConditionsForSemanticFlagGroup: ::std::option::Option<
4787        unsafe extern "C" fn(
4788            ctxt: *mut ::std::os::raw::c_void,
4789            conditions: *mut BNFlagConditionForSemanticClass,
4790            count: usize,
4791        ),
4792    >,
4793    pub getFlagsWrittenByFlagWriteType: ::std::option::Option<
4794        unsafe extern "C" fn(
4795            ctxt: *mut ::std::os::raw::c_void,
4796            writeType: u32,
4797            count: *mut usize,
4798        ) -> *mut u32,
4799    >,
4800    pub getSemanticClassForFlagWriteType: ::std::option::Option<
4801        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, writeType: u32) -> u32,
4802    >,
4803    pub getFlagWriteLowLevelIL: ::std::option::Option<
4804        unsafe extern "C" fn(
4805            ctxt: *mut ::std::os::raw::c_void,
4806            op: BNLowLevelILOperation,
4807            size: usize,
4808            flagWriteType: u32,
4809            flag: u32,
4810            operands: *mut BNRegisterOrConstant,
4811            operandCount: usize,
4812            il: *mut BNLowLevelILFunction,
4813        ) -> usize,
4814    >,
4815    pub getFlagConditionLowLevelIL: ::std::option::Option<
4816        unsafe extern "C" fn(
4817            ctxt: *mut ::std::os::raw::c_void,
4818            cond: BNLowLevelILFlagCondition,
4819            semClass: u32,
4820            il: *mut BNLowLevelILFunction,
4821        ) -> usize,
4822    >,
4823    pub getSemanticFlagGroupLowLevelIL: ::std::option::Option<
4824        unsafe extern "C" fn(
4825            ctxt: *mut ::std::os::raw::c_void,
4826            semGroup: u32,
4827            il: *mut BNLowLevelILFunction,
4828        ) -> usize,
4829    >,
4830    pub freeRegisterList: ::std::option::Option<
4831        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, regs: *mut u32, count: usize),
4832    >,
4833    pub getRegisterInfo: ::std::option::Option<
4834        unsafe extern "C" fn(
4835            ctxt: *mut ::std::os::raw::c_void,
4836            reg: u32,
4837            result: *mut BNRegisterInfo,
4838        ),
4839    >,
4840    pub getStackPointerRegister:
4841        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> u32>,
4842    pub getLinkRegister:
4843        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> u32>,
4844    pub getGlobalRegisters: ::std::option::Option<
4845        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
4846    >,
4847    pub getSystemRegisters: ::std::option::Option<
4848        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
4849    >,
4850    pub getRegisterStackName: ::std::option::Option<
4851        unsafe extern "C" fn(
4852            ctxt: *mut ::std::os::raw::c_void,
4853            regStack: u32,
4854        ) -> *mut ::std::os::raw::c_char,
4855    >,
4856    pub getAllRegisterStacks: ::std::option::Option<
4857        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
4858    >,
4859    pub getRegisterStackInfo: ::std::option::Option<
4860        unsafe extern "C" fn(
4861            ctxt: *mut ::std::os::raw::c_void,
4862            regStack: u32,
4863            result: *mut BNRegisterStackInfo,
4864        ),
4865    >,
4866    pub getIntrinsicClass: ::std::option::Option<
4867        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, intrinsic: u32) -> BNIntrinsicClass,
4868    >,
4869    pub getIntrinsicName: ::std::option::Option<
4870        unsafe extern "C" fn(
4871            ctxt: *mut ::std::os::raw::c_void,
4872            intrinsic: u32,
4873        ) -> *mut ::std::os::raw::c_char,
4874    >,
4875    pub getAllIntrinsics: ::std::option::Option<
4876        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
4877    >,
4878    pub getIntrinsicInputs: ::std::option::Option<
4879        unsafe extern "C" fn(
4880            ctxt: *mut ::std::os::raw::c_void,
4881            intrinsic: u32,
4882            count: *mut usize,
4883        ) -> *mut BNNameAndType,
4884    >,
4885    pub freeNameAndTypeList: ::std::option::Option<
4886        unsafe extern "C" fn(
4887            ctxt: *mut ::std::os::raw::c_void,
4888            nt: *mut BNNameAndType,
4889            count: usize,
4890        ),
4891    >,
4892    pub getIntrinsicOutputs: ::std::option::Option<
4893        unsafe extern "C" fn(
4894            ctxt: *mut ::std::os::raw::c_void,
4895            intrinsic: u32,
4896            count: *mut usize,
4897        ) -> *mut BNTypeWithConfidence,
4898    >,
4899    pub freeTypeList: ::std::option::Option<
4900        unsafe extern "C" fn(
4901            ctxt: *mut ::std::os::raw::c_void,
4902            types: *mut BNTypeWithConfidence,
4903            count: usize,
4904        ),
4905    >,
4906    pub canAssemble:
4907        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
4908    pub assemble: ::std::option::Option<
4909        unsafe extern "C" fn(
4910            ctxt: *mut ::std::os::raw::c_void,
4911            code: *const ::std::os::raw::c_char,
4912            addr: u64,
4913            result: *mut BNDataBuffer,
4914            errors: *mut *mut ::std::os::raw::c_char,
4915        ) -> bool,
4916    >,
4917    pub isNeverBranchPatchAvailable: ::std::option::Option<
4918        unsafe extern "C" fn(
4919            ctxt: *mut ::std::os::raw::c_void,
4920            data: *const u8,
4921            addr: u64,
4922            len: usize,
4923        ) -> bool,
4924    >,
4925    pub isAlwaysBranchPatchAvailable: ::std::option::Option<
4926        unsafe extern "C" fn(
4927            ctxt: *mut ::std::os::raw::c_void,
4928            data: *const u8,
4929            addr: u64,
4930            len: usize,
4931        ) -> bool,
4932    >,
4933    pub isInvertBranchPatchAvailable: ::std::option::Option<
4934        unsafe extern "C" fn(
4935            ctxt: *mut ::std::os::raw::c_void,
4936            data: *const u8,
4937            addr: u64,
4938            len: usize,
4939        ) -> bool,
4940    >,
4941    pub isSkipAndReturnZeroPatchAvailable: ::std::option::Option<
4942        unsafe extern "C" fn(
4943            ctxt: *mut ::std::os::raw::c_void,
4944            data: *const u8,
4945            addr: u64,
4946            len: usize,
4947        ) -> bool,
4948    >,
4949    pub isSkipAndReturnValuePatchAvailable: ::std::option::Option<
4950        unsafe extern "C" fn(
4951            ctxt: *mut ::std::os::raw::c_void,
4952            data: *const u8,
4953            addr: u64,
4954            len: usize,
4955        ) -> bool,
4956    >,
4957    pub convertToNop: ::std::option::Option<
4958        unsafe extern "C" fn(
4959            ctxt: *mut ::std::os::raw::c_void,
4960            data: *mut u8,
4961            addr: u64,
4962            len: usize,
4963        ) -> bool,
4964    >,
4965    pub alwaysBranch: ::std::option::Option<
4966        unsafe extern "C" fn(
4967            ctxt: *mut ::std::os::raw::c_void,
4968            data: *mut u8,
4969            addr: u64,
4970            len: usize,
4971        ) -> bool,
4972    >,
4973    pub invertBranch: ::std::option::Option<
4974        unsafe extern "C" fn(
4975            ctxt: *mut ::std::os::raw::c_void,
4976            data: *mut u8,
4977            addr: u64,
4978            len: usize,
4979        ) -> bool,
4980    >,
4981    pub skipAndReturnValue: ::std::option::Option<
4982        unsafe extern "C" fn(
4983            ctxt: *mut ::std::os::raw::c_void,
4984            data: *mut u8,
4985            addr: u64,
4986            len: usize,
4987            value: u64,
4988        ) -> bool,
4989    >,
4990    pub getLinearSweepInitialAlignment:
4991        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> usize>,
4992    pub getLinearSweepAnalysisCapabilities:
4993        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> u32>,
4994}
4995#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4996const _: () = {
4997    ["Size of BNCustomArchitecture"][::std::mem::size_of::<BNCustomArchitecture>() - 536usize];
4998    ["Alignment of BNCustomArchitecture"][::std::mem::align_of::<BNCustomArchitecture>() - 8usize];
4999    ["Offset of field: BNCustomArchitecture::context"]
5000        [::std::mem::offset_of!(BNCustomArchitecture, context) - 0usize];
5001    ["Offset of field: BNCustomArchitecture::init"]
5002        [::std::mem::offset_of!(BNCustomArchitecture, init) - 8usize];
5003    ["Offset of field: BNCustomArchitecture::getEndianness"]
5004        [::std::mem::offset_of!(BNCustomArchitecture, getEndianness) - 16usize];
5005    ["Offset of field: BNCustomArchitecture::getAddressSize"]
5006        [::std::mem::offset_of!(BNCustomArchitecture, getAddressSize) - 24usize];
5007    ["Offset of field: BNCustomArchitecture::getDefaultIntegerSize"]
5008        [::std::mem::offset_of!(BNCustomArchitecture, getDefaultIntegerSize) - 32usize];
5009    ["Offset of field: BNCustomArchitecture::getInstructionAlignment"]
5010        [::std::mem::offset_of!(BNCustomArchitecture, getInstructionAlignment) - 40usize];
5011    ["Offset of field: BNCustomArchitecture::getMaxInstructionLength"]
5012        [::std::mem::offset_of!(BNCustomArchitecture, getMaxInstructionLength) - 48usize];
5013    ["Offset of field: BNCustomArchitecture::getOpcodeDisplayLength"]
5014        [::std::mem::offset_of!(BNCustomArchitecture, getOpcodeDisplayLength) - 56usize];
5015    ["Offset of field: BNCustomArchitecture::getAssociatedArchitectureByAddress"][::std::mem::offset_of!(
5016        BNCustomArchitecture,
5017        getAssociatedArchitectureByAddress
5018    ) - 64usize];
5019    ["Offset of field: BNCustomArchitecture::getInstructionInfo"]
5020        [::std::mem::offset_of!(BNCustomArchitecture, getInstructionInfo) - 72usize];
5021    ["Offset of field: BNCustomArchitecture::getInstructionText"]
5022        [::std::mem::offset_of!(BNCustomArchitecture, getInstructionText) - 80usize];
5023    ["Offset of field: BNCustomArchitecture::getInstructionTextWithContext"]
5024        [::std::mem::offset_of!(BNCustomArchitecture, getInstructionTextWithContext) - 88usize];
5025    ["Offset of field: BNCustomArchitecture::freeInstructionText"]
5026        [::std::mem::offset_of!(BNCustomArchitecture, freeInstructionText) - 96usize];
5027    ["Offset of field: BNCustomArchitecture::getInstructionLowLevelIL"]
5028        [::std::mem::offset_of!(BNCustomArchitecture, getInstructionLowLevelIL) - 104usize];
5029    ["Offset of field: BNCustomArchitecture::analyzeBasicBlocks"]
5030        [::std::mem::offset_of!(BNCustomArchitecture, analyzeBasicBlocks) - 112usize];
5031    ["Offset of field: BNCustomArchitecture::liftFunction"]
5032        [::std::mem::offset_of!(BNCustomArchitecture, liftFunction) - 120usize];
5033    ["Offset of field: BNCustomArchitecture::freeFunctionArchContext"]
5034        [::std::mem::offset_of!(BNCustomArchitecture, freeFunctionArchContext) - 128usize];
5035    ["Offset of field: BNCustomArchitecture::getRegisterName"]
5036        [::std::mem::offset_of!(BNCustomArchitecture, getRegisterName) - 136usize];
5037    ["Offset of field: BNCustomArchitecture::getFlagName"]
5038        [::std::mem::offset_of!(BNCustomArchitecture, getFlagName) - 144usize];
5039    ["Offset of field: BNCustomArchitecture::getFlagWriteTypeName"]
5040        [::std::mem::offset_of!(BNCustomArchitecture, getFlagWriteTypeName) - 152usize];
5041    ["Offset of field: BNCustomArchitecture::getSemanticFlagClassName"]
5042        [::std::mem::offset_of!(BNCustomArchitecture, getSemanticFlagClassName) - 160usize];
5043    ["Offset of field: BNCustomArchitecture::getSemanticFlagGroupName"]
5044        [::std::mem::offset_of!(BNCustomArchitecture, getSemanticFlagGroupName) - 168usize];
5045    ["Offset of field: BNCustomArchitecture::getFullWidthRegisters"]
5046        [::std::mem::offset_of!(BNCustomArchitecture, getFullWidthRegisters) - 176usize];
5047    ["Offset of field: BNCustomArchitecture::getAllRegisters"]
5048        [::std::mem::offset_of!(BNCustomArchitecture, getAllRegisters) - 184usize];
5049    ["Offset of field: BNCustomArchitecture::getAllFlags"]
5050        [::std::mem::offset_of!(BNCustomArchitecture, getAllFlags) - 192usize];
5051    ["Offset of field: BNCustomArchitecture::getAllFlagWriteTypes"]
5052        [::std::mem::offset_of!(BNCustomArchitecture, getAllFlagWriteTypes) - 200usize];
5053    ["Offset of field: BNCustomArchitecture::getAllSemanticFlagClasses"]
5054        [::std::mem::offset_of!(BNCustomArchitecture, getAllSemanticFlagClasses) - 208usize];
5055    ["Offset of field: BNCustomArchitecture::getAllSemanticFlagGroups"]
5056        [::std::mem::offset_of!(BNCustomArchitecture, getAllSemanticFlagGroups) - 216usize];
5057    ["Offset of field: BNCustomArchitecture::getFlagRole"]
5058        [::std::mem::offset_of!(BNCustomArchitecture, getFlagRole) - 224usize];
5059    ["Offset of field: BNCustomArchitecture::getFlagsRequiredForFlagCondition"]
5060        [::std::mem::offset_of!(BNCustomArchitecture, getFlagsRequiredForFlagCondition) - 232usize];
5061    ["Offset of field: BNCustomArchitecture::getFlagsRequiredForSemanticFlagGroup"][::std::mem::offset_of!(
5062        BNCustomArchitecture,
5063        getFlagsRequiredForSemanticFlagGroup
5064    ) - 240usize];
5065    ["Offset of field: BNCustomArchitecture::getFlagConditionsForSemanticFlagGroup"][::std::mem::offset_of!(
5066        BNCustomArchitecture,
5067        getFlagConditionsForSemanticFlagGroup
5068    ) - 248usize];
5069    ["Offset of field: BNCustomArchitecture::freeFlagConditionsForSemanticFlagGroup"][::std::mem::offset_of!(
5070        BNCustomArchitecture,
5071        freeFlagConditionsForSemanticFlagGroup
5072    ) - 256usize];
5073    ["Offset of field: BNCustomArchitecture::getFlagsWrittenByFlagWriteType"]
5074        [::std::mem::offset_of!(BNCustomArchitecture, getFlagsWrittenByFlagWriteType) - 264usize];
5075    ["Offset of field: BNCustomArchitecture::getSemanticClassForFlagWriteType"]
5076        [::std::mem::offset_of!(BNCustomArchitecture, getSemanticClassForFlagWriteType) - 272usize];
5077    ["Offset of field: BNCustomArchitecture::getFlagWriteLowLevelIL"]
5078        [::std::mem::offset_of!(BNCustomArchitecture, getFlagWriteLowLevelIL) - 280usize];
5079    ["Offset of field: BNCustomArchitecture::getFlagConditionLowLevelIL"]
5080        [::std::mem::offset_of!(BNCustomArchitecture, getFlagConditionLowLevelIL) - 288usize];
5081    ["Offset of field: BNCustomArchitecture::getSemanticFlagGroupLowLevelIL"]
5082        [::std::mem::offset_of!(BNCustomArchitecture, getSemanticFlagGroupLowLevelIL) - 296usize];
5083    ["Offset of field: BNCustomArchitecture::freeRegisterList"]
5084        [::std::mem::offset_of!(BNCustomArchitecture, freeRegisterList) - 304usize];
5085    ["Offset of field: BNCustomArchitecture::getRegisterInfo"]
5086        [::std::mem::offset_of!(BNCustomArchitecture, getRegisterInfo) - 312usize];
5087    ["Offset of field: BNCustomArchitecture::getStackPointerRegister"]
5088        [::std::mem::offset_of!(BNCustomArchitecture, getStackPointerRegister) - 320usize];
5089    ["Offset of field: BNCustomArchitecture::getLinkRegister"]
5090        [::std::mem::offset_of!(BNCustomArchitecture, getLinkRegister) - 328usize];
5091    ["Offset of field: BNCustomArchitecture::getGlobalRegisters"]
5092        [::std::mem::offset_of!(BNCustomArchitecture, getGlobalRegisters) - 336usize];
5093    ["Offset of field: BNCustomArchitecture::getSystemRegisters"]
5094        [::std::mem::offset_of!(BNCustomArchitecture, getSystemRegisters) - 344usize];
5095    ["Offset of field: BNCustomArchitecture::getRegisterStackName"]
5096        [::std::mem::offset_of!(BNCustomArchitecture, getRegisterStackName) - 352usize];
5097    ["Offset of field: BNCustomArchitecture::getAllRegisterStacks"]
5098        [::std::mem::offset_of!(BNCustomArchitecture, getAllRegisterStacks) - 360usize];
5099    ["Offset of field: BNCustomArchitecture::getRegisterStackInfo"]
5100        [::std::mem::offset_of!(BNCustomArchitecture, getRegisterStackInfo) - 368usize];
5101    ["Offset of field: BNCustomArchitecture::getIntrinsicClass"]
5102        [::std::mem::offset_of!(BNCustomArchitecture, getIntrinsicClass) - 376usize];
5103    ["Offset of field: BNCustomArchitecture::getIntrinsicName"]
5104        [::std::mem::offset_of!(BNCustomArchitecture, getIntrinsicName) - 384usize];
5105    ["Offset of field: BNCustomArchitecture::getAllIntrinsics"]
5106        [::std::mem::offset_of!(BNCustomArchitecture, getAllIntrinsics) - 392usize];
5107    ["Offset of field: BNCustomArchitecture::getIntrinsicInputs"]
5108        [::std::mem::offset_of!(BNCustomArchitecture, getIntrinsicInputs) - 400usize];
5109    ["Offset of field: BNCustomArchitecture::freeNameAndTypeList"]
5110        [::std::mem::offset_of!(BNCustomArchitecture, freeNameAndTypeList) - 408usize];
5111    ["Offset of field: BNCustomArchitecture::getIntrinsicOutputs"]
5112        [::std::mem::offset_of!(BNCustomArchitecture, getIntrinsicOutputs) - 416usize];
5113    ["Offset of field: BNCustomArchitecture::freeTypeList"]
5114        [::std::mem::offset_of!(BNCustomArchitecture, freeTypeList) - 424usize];
5115    ["Offset of field: BNCustomArchitecture::canAssemble"]
5116        [::std::mem::offset_of!(BNCustomArchitecture, canAssemble) - 432usize];
5117    ["Offset of field: BNCustomArchitecture::assemble"]
5118        [::std::mem::offset_of!(BNCustomArchitecture, assemble) - 440usize];
5119    ["Offset of field: BNCustomArchitecture::isNeverBranchPatchAvailable"]
5120        [::std::mem::offset_of!(BNCustomArchitecture, isNeverBranchPatchAvailable) - 448usize];
5121    ["Offset of field: BNCustomArchitecture::isAlwaysBranchPatchAvailable"]
5122        [::std::mem::offset_of!(BNCustomArchitecture, isAlwaysBranchPatchAvailable) - 456usize];
5123    ["Offset of field: BNCustomArchitecture::isInvertBranchPatchAvailable"]
5124        [::std::mem::offset_of!(BNCustomArchitecture, isInvertBranchPatchAvailable) - 464usize];
5125    ["Offset of field: BNCustomArchitecture::isSkipAndReturnZeroPatchAvailable"][::std::mem::offset_of!(
5126        BNCustomArchitecture,
5127        isSkipAndReturnZeroPatchAvailable
5128    ) - 472usize];
5129    ["Offset of field: BNCustomArchitecture::isSkipAndReturnValuePatchAvailable"][::std::mem::offset_of!(
5130        BNCustomArchitecture,
5131        isSkipAndReturnValuePatchAvailable
5132    ) - 480usize];
5133    ["Offset of field: BNCustomArchitecture::convertToNop"]
5134        [::std::mem::offset_of!(BNCustomArchitecture, convertToNop) - 488usize];
5135    ["Offset of field: BNCustomArchitecture::alwaysBranch"]
5136        [::std::mem::offset_of!(BNCustomArchitecture, alwaysBranch) - 496usize];
5137    ["Offset of field: BNCustomArchitecture::invertBranch"]
5138        [::std::mem::offset_of!(BNCustomArchitecture, invertBranch) - 504usize];
5139    ["Offset of field: BNCustomArchitecture::skipAndReturnValue"]
5140        [::std::mem::offset_of!(BNCustomArchitecture, skipAndReturnValue) - 512usize];
5141    ["Offset of field: BNCustomArchitecture::getLinearSweepInitialAlignment"]
5142        [::std::mem::offset_of!(BNCustomArchitecture, getLinearSweepInitialAlignment) - 520usize];
5143    ["Offset of field: BNCustomArchitecture::getLinearSweepAnalysisCapabilities"][::std::mem::offset_of!(
5144        BNCustomArchitecture,
5145        getLinearSweepAnalysisCapabilities
5146    ) - 528usize];
5147};
5148impl Default for BNCustomArchitecture {
5149    fn default() -> Self {
5150        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5151        unsafe {
5152            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5153            s.assume_init()
5154        }
5155    }
5156}
5157#[repr(C)]
5158#[derive(Debug, Copy, Clone)]
5159pub struct BNCustomPlatform {
5160    pub context: *mut ::std::os::raw::c_void,
5161    pub init: ::std::option::Option<
5162        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, obj: *mut BNPlatform),
5163    >,
5164    pub viewInit: ::std::option::Option<
5165        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, view: *mut BNBinaryView),
5166    >,
5167    pub getGlobalRegisters: ::std::option::Option<
5168        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
5169    >,
5170    pub freeRegisterList: ::std::option::Option<
5171        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, regs: *mut u32, len: usize),
5172    >,
5173    pub getGlobalRegisterType: ::std::option::Option<
5174        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, reg: u32) -> *mut BNType,
5175    >,
5176    pub getAddressSize:
5177        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> usize>,
5178    pub adjustTypeParserInput: ::std::option::Option<
5179        unsafe extern "C" fn(
5180            ctxt: *mut ::std::os::raw::c_void,
5181            parser: *mut BNTypeParser,
5182            argumentsIn: *const *const ::std::os::raw::c_char,
5183            argumentsLenIn: usize,
5184            sourceFileNamesIn: *const *const ::std::os::raw::c_char,
5185            sourceFileValuesIn: *const *const ::std::os::raw::c_char,
5186            sourceFilesLenIn: usize,
5187            argumentsOut: *mut *mut *mut ::std::os::raw::c_char,
5188            argumentsLenOut: *mut usize,
5189            sourceFileNamesOut: *mut *mut *mut ::std::os::raw::c_char,
5190            sourceFileValuesOut: *mut *mut *mut ::std::os::raw::c_char,
5191            sourceFilesLenOut: *mut usize,
5192        ),
5193    >,
5194    pub freeTypeParserInput: ::std::option::Option<
5195        unsafe extern "C" fn(
5196            ctxt: *mut ::std::os::raw::c_void,
5197            arguments: *mut *mut ::std::os::raw::c_char,
5198            argumentsLen: usize,
5199            sourceFileNames: *mut *mut ::std::os::raw::c_char,
5200            sourceFileValues: *mut *mut ::std::os::raw::c_char,
5201            sourceFilesLen: usize,
5202        ),
5203    >,
5204    pub getFallbackEnabled:
5205        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
5206}
5207#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5208const _: () = {
5209    ["Size of BNCustomPlatform"][::std::mem::size_of::<BNCustomPlatform>() - 80usize];
5210    ["Alignment of BNCustomPlatform"][::std::mem::align_of::<BNCustomPlatform>() - 8usize];
5211    ["Offset of field: BNCustomPlatform::context"]
5212        [::std::mem::offset_of!(BNCustomPlatform, context) - 0usize];
5213    ["Offset of field: BNCustomPlatform::init"]
5214        [::std::mem::offset_of!(BNCustomPlatform, init) - 8usize];
5215    ["Offset of field: BNCustomPlatform::viewInit"]
5216        [::std::mem::offset_of!(BNCustomPlatform, viewInit) - 16usize];
5217    ["Offset of field: BNCustomPlatform::getGlobalRegisters"]
5218        [::std::mem::offset_of!(BNCustomPlatform, getGlobalRegisters) - 24usize];
5219    ["Offset of field: BNCustomPlatform::freeRegisterList"]
5220        [::std::mem::offset_of!(BNCustomPlatform, freeRegisterList) - 32usize];
5221    ["Offset of field: BNCustomPlatform::getGlobalRegisterType"]
5222        [::std::mem::offset_of!(BNCustomPlatform, getGlobalRegisterType) - 40usize];
5223    ["Offset of field: BNCustomPlatform::getAddressSize"]
5224        [::std::mem::offset_of!(BNCustomPlatform, getAddressSize) - 48usize];
5225    ["Offset of field: BNCustomPlatform::adjustTypeParserInput"]
5226        [::std::mem::offset_of!(BNCustomPlatform, adjustTypeParserInput) - 56usize];
5227    ["Offset of field: BNCustomPlatform::freeTypeParserInput"]
5228        [::std::mem::offset_of!(BNCustomPlatform, freeTypeParserInput) - 64usize];
5229    ["Offset of field: BNCustomPlatform::getFallbackEnabled"]
5230        [::std::mem::offset_of!(BNCustomPlatform, getFallbackEnabled) - 72usize];
5231};
5232impl Default for BNCustomPlatform {
5233    fn default() -> Self {
5234        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5235        unsafe {
5236            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5237            s.assume_init()
5238        }
5239    }
5240}
5241#[repr(C)]
5242#[derive(Debug, Copy, Clone)]
5243pub struct BNBasicBlockEdge {
5244    pub type_: BNBranchType,
5245    pub target: *mut BNBasicBlock,
5246    pub backEdge: bool,
5247    pub fallThrough: bool,
5248}
5249#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5250const _: () = {
5251    ["Size of BNBasicBlockEdge"][::std::mem::size_of::<BNBasicBlockEdge>() - 24usize];
5252    ["Alignment of BNBasicBlockEdge"][::std::mem::align_of::<BNBasicBlockEdge>() - 8usize];
5253    ["Offset of field: BNBasicBlockEdge::type_"]
5254        [::std::mem::offset_of!(BNBasicBlockEdge, type_) - 0usize];
5255    ["Offset of field: BNBasicBlockEdge::target"]
5256        [::std::mem::offset_of!(BNBasicBlockEdge, target) - 8usize];
5257    ["Offset of field: BNBasicBlockEdge::backEdge"]
5258        [::std::mem::offset_of!(BNBasicBlockEdge, backEdge) - 16usize];
5259    ["Offset of field: BNBasicBlockEdge::fallThrough"]
5260        [::std::mem::offset_of!(BNBasicBlockEdge, fallThrough) - 17usize];
5261};
5262impl Default for BNBasicBlockEdge {
5263    fn default() -> Self {
5264        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5265        unsafe {
5266            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5267            s.assume_init()
5268        }
5269    }
5270}
5271#[repr(C)]
5272#[derive(Debug, Copy, Clone)]
5273pub struct BNPendingBasicBlockEdge {
5274    pub type_: BNBranchType,
5275    pub arch: *mut BNArchitecture,
5276    pub target: u64,
5277    pub fallThrough: bool,
5278}
5279#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5280const _: () = {
5281    ["Size of BNPendingBasicBlockEdge"][::std::mem::size_of::<BNPendingBasicBlockEdge>() - 32usize];
5282    ["Alignment of BNPendingBasicBlockEdge"]
5283        [::std::mem::align_of::<BNPendingBasicBlockEdge>() - 8usize];
5284    ["Offset of field: BNPendingBasicBlockEdge::type_"]
5285        [::std::mem::offset_of!(BNPendingBasicBlockEdge, type_) - 0usize];
5286    ["Offset of field: BNPendingBasicBlockEdge::arch"]
5287        [::std::mem::offset_of!(BNPendingBasicBlockEdge, arch) - 8usize];
5288    ["Offset of field: BNPendingBasicBlockEdge::target"]
5289        [::std::mem::offset_of!(BNPendingBasicBlockEdge, target) - 16usize];
5290    ["Offset of field: BNPendingBasicBlockEdge::fallThrough"]
5291        [::std::mem::offset_of!(BNPendingBasicBlockEdge, fallThrough) - 24usize];
5292};
5293impl Default for BNPendingBasicBlockEdge {
5294    fn default() -> Self {
5295        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5296        unsafe {
5297            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5298            s.assume_init()
5299        }
5300    }
5301}
5302#[repr(C)]
5303#[derive(Debug, Default, Copy, Clone)]
5304pub struct BNPoint {
5305    pub x: f32,
5306    pub y: f32,
5307}
5308#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5309const _: () = {
5310    ["Size of BNPoint"][::std::mem::size_of::<BNPoint>() - 8usize];
5311    ["Alignment of BNPoint"][::std::mem::align_of::<BNPoint>() - 4usize];
5312    ["Offset of field: BNPoint::x"][::std::mem::offset_of!(BNPoint, x) - 0usize];
5313    ["Offset of field: BNPoint::y"][::std::mem::offset_of!(BNPoint, y) - 4usize];
5314};
5315#[repr(u8)]
5316#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
5317pub enum BNThemeColor {
5318    #[doc = " Hex dump colors"]
5319    AddressColor = 0,
5320    #[doc = " Hex dump colors"]
5321    ModifiedColor = 1,
5322    #[doc = " Hex dump colors"]
5323    InsertedColor = 2,
5324    #[doc = " Hex dump colors"]
5325    NotPresentColor = 3,
5326    #[doc = " Hex dump colors"]
5327    SelectionColor = 4,
5328    #[doc = " Hex dump colors"]
5329    OutlineColor = 5,
5330    #[doc = " Hex dump colors"]
5331    BackgroundHighlightDarkColor = 6,
5332    #[doc = " Hex dump colors"]
5333    BackgroundHighlightLightColor = 7,
5334    #[doc = " Hex dump colors"]
5335    BoldBackgroundHighlightDarkColor = 8,
5336    #[doc = " Hex dump colors"]
5337    BoldBackgroundHighlightLightColor = 9,
5338    #[doc = " Hex dump colors"]
5339    AlphanumericHighlightColor = 10,
5340    #[doc = " Hex dump colors"]
5341    PrintableHighlightColor = 11,
5342    #[doc = " Graph colors"]
5343    GraphBackgroundDarkColor = 12,
5344    #[doc = " Graph colors"]
5345    GraphBackgroundLightColor = 13,
5346    #[doc = " Graph colors"]
5347    GraphNodeDarkColor = 14,
5348    #[doc = " Graph colors"]
5349    GraphNodeLightColor = 15,
5350    #[doc = " Graph colors"]
5351    GraphNodeOutlineColor = 16,
5352    #[doc = " Graph colors"]
5353    GraphNodeShadowColor = 17,
5354    #[doc = " Graph colors"]
5355    GraphEntryNodeIndicatorColor = 18,
5356    #[doc = " Graph colors"]
5357    GraphExitNodeIndicatorColor = 19,
5358    #[doc = " Graph colors"]
5359    GraphExitNoreturnNodeIndicatorColor = 20,
5360    #[doc = " Graph colors"]
5361    TrueBranchColor = 21,
5362    #[doc = " Graph colors"]
5363    FalseBranchColor = 22,
5364    #[doc = " Graph colors"]
5365    UnconditionalBranchColor = 23,
5366    #[doc = " Graph colors"]
5367    AltTrueBranchColor = 24,
5368    #[doc = " Graph colors"]
5369    AltFalseBranchColor = 25,
5370    #[doc = " Graph colors"]
5371    AltUnconditionalBranchColor = 26,
5372    #[doc = " Disassembly colors"]
5373    InstructionColor = 27,
5374    #[doc = " Disassembly colors"]
5375    RegisterColor = 28,
5376    #[doc = " Disassembly colors"]
5377    NumberColor = 29,
5378    #[doc = " Disassembly colors"]
5379    CodeSymbolColor = 30,
5380    #[doc = " Disassembly colors"]
5381    DataSymbolColor = 31,
5382    #[doc = " Disassembly colors"]
5383    LocalVariableColor = 32,
5384    #[doc = " Disassembly colors"]
5385    StackVariableColor = 33,
5386    #[doc = " Disassembly colors"]
5387    ImportColor = 34,
5388    #[doc = " Disassembly colors"]
5389    ExportColor = 35,
5390    #[doc = " Disassembly colors"]
5391    InstructionHighlightColor = 36,
5392    #[doc = " Disassembly colors"]
5393    RelatedInstructionHighlightColor = 37,
5394    #[doc = " Disassembly colors"]
5395    TokenHighlightColor = 38,
5396    #[doc = " Disassembly colors"]
5397    TokenSelectionColor = 39,
5398    #[doc = " Disassembly colors"]
5399    AnnotationColor = 40,
5400    #[doc = " Disassembly colors"]
5401    OpcodeColor = 41,
5402    #[doc = " Disassembly colors"]
5403    LinearDisassemblyFunctionHeaderColor = 42,
5404    #[doc = " Disassembly colors"]
5405    LinearDisassemblyBlockColor = 43,
5406    #[doc = " Disassembly colors"]
5407    LinearDisassemblyNoteColor = 44,
5408    #[doc = " Disassembly colors"]
5409    LinearDisassemblySeparatorColor = 45,
5410    #[doc = " Disassembly colors"]
5411    LinearDisassemblyCodeFoldColor = 46,
5412    #[doc = " Disassembly colors"]
5413    StringColor = 47,
5414    #[doc = " Disassembly colors"]
5415    TypeNameColor = 48,
5416    #[doc = " Disassembly colors"]
5417    FieldNameColor = 49,
5418    #[doc = " Disassembly colors"]
5419    KeywordColor = 50,
5420    #[doc = " Disassembly colors"]
5421    UncertainColor = 51,
5422    #[doc = " Disassembly colors"]
5423    NameSpaceColor = 52,
5424    #[doc = " Disassembly colors"]
5425    NameSpaceSeparatorColor = 53,
5426    #[doc = " Disassembly colors"]
5427    GotoLabelColor = 54,
5428    #[doc = " Disassembly colors"]
5429    CommentColor = 55,
5430    #[doc = " Disassembly colors"]
5431    OperationColor = 56,
5432    #[doc = " Disassembly colors"]
5433    BaseStructureNameColor = 57,
5434    #[doc = " Disassembly colors"]
5435    IndentationLineColor = 58,
5436    #[doc = " Disassembly colors"]
5437    IndentationLineHighlightColor = 59,
5438    #[doc = " Script console colors"]
5439    ScriptConsoleOutputColor = 60,
5440    #[doc = " Script console colors"]
5441    ScriptConsoleWarningColor = 61,
5442    #[doc = " Script console colors"]
5443    ScriptConsoleErrorColor = 62,
5444    #[doc = " Script console colors"]
5445    ScriptConsoleEchoColor = 63,
5446    #[doc = " Highlighting colors"]
5447    BlueStandardHighlightColor = 64,
5448    #[doc = " Highlighting colors"]
5449    GreenStandardHighlightColor = 65,
5450    #[doc = " Highlighting colors"]
5451    CyanStandardHighlightColor = 66,
5452    #[doc = " Highlighting colors"]
5453    RedStandardHighlightColor = 67,
5454    #[doc = " Highlighting colors"]
5455    MagentaStandardHighlightColor = 68,
5456    #[doc = " Highlighting colors"]
5457    YellowStandardHighlightColor = 69,
5458    #[doc = " Highlighting colors"]
5459    OrangeStandardHighlightColor = 70,
5460    #[doc = " Highlighting colors"]
5461    WhiteStandardHighlightColor = 71,
5462    #[doc = " Highlighting colors"]
5463    BlackStandardHighlightColor = 72,
5464    #[doc = " MiniGraph"]
5465    MiniGraphOverlayColor = 73,
5466    #[doc = " FeatureMap"]
5467    FeatureMapBaseColor = 74,
5468    #[doc = " FeatureMap"]
5469    FeatureMapNavLineColor = 75,
5470    #[doc = " FeatureMap"]
5471    FeatureMapNavHighlightColor = 76,
5472    #[doc = " FeatureMap"]
5473    FeatureMapDataVariableColor = 77,
5474    #[doc = " FeatureMap"]
5475    FeatureMapAsciiStringColor = 78,
5476    #[doc = " FeatureMap"]
5477    FeatureMapUnicodeStringColor = 79,
5478    #[doc = " FeatureMap"]
5479    FeatureMapFunctionColor = 80,
5480    #[doc = " FeatureMap"]
5481    FeatureMapImportColor = 81,
5482    #[doc = " FeatureMap"]
5483    FeatureMapExternColor = 82,
5484    #[doc = " FeatureMap"]
5485    FeatureMapLibraryColor = 83,
5486    #[doc = " Sidebar colors"]
5487    SidebarBackgroundColor = 84,
5488    #[doc = " Sidebar colors"]
5489    SidebarInactiveIconColor = 85,
5490    #[doc = " Sidebar colors"]
5491    SidebarHoverIconColor = 86,
5492    #[doc = " Sidebar colors"]
5493    SidebarActiveIconColor = 87,
5494    #[doc = " Sidebar colors"]
5495    SidebarFocusedIconColor = 88,
5496    #[doc = " Sidebar colors"]
5497    SidebarHoverBackgroundColor = 89,
5498    #[doc = " Sidebar colors"]
5499    SidebarActiveBackgroundColor = 90,
5500    #[doc = " Sidebar colors"]
5501    SidebarFocusedBackgroundColor = 91,
5502    #[doc = " Sidebar colors"]
5503    SidebarActiveIndicatorLineColor = 92,
5504    #[doc = " Deprecated, has no effect (paints as QPalette::Window)"]
5505    SidebarHeaderBackgroundColor = 93,
5506    SidebarHeaderTextColor = 94,
5507    SidebarWidgetBackgroundColor = 95,
5508    #[doc = " Pane colors"]
5509    ActivePaneBackgroundColor = 96,
5510    #[doc = " Pane colors"]
5511    InactivePaneBackgroundColor = 97,
5512    #[doc = " Pane colors"]
5513    FocusedPaneBackgroundColor = 98,
5514    #[doc = " Tab colors"]
5515    TabBarTabActiveColor = 99,
5516    #[doc = " Tab colors"]
5517    TabBarTabHoverColor = 100,
5518    #[doc = " Tab colors"]
5519    TabBarTabInactiveColor = 101,
5520    #[doc = " Tab colors"]
5521    TabBarTabBorderColor = 102,
5522    #[doc = " Tab colors"]
5523    TabBarTabGlowColor = 103,
5524    #[doc = " Status colors"]
5525    StatusBarServerConnectedColor = 104,
5526    #[doc = " Status colors"]
5527    StatusBarServerDisconnectedColor = 105,
5528    #[doc = " Status colors"]
5529    StatusBarServerWarningColor = 106,
5530    #[doc = " Status colors"]
5531    StatusBarProjectColor = 107,
5532    #[doc = " Brace colors"]
5533    BraceOption1Color = 108,
5534    #[doc = " Brace colors"]
5535    BraceOption2Color = 109,
5536    #[doc = " Brace colors"]
5537    BraceOption3Color = 110,
5538    #[doc = " Brace colors"]
5539    BraceOption4Color = 111,
5540    #[doc = " Brace colors"]
5541    BraceOption5Color = 112,
5542    #[doc = " Brace colors"]
5543    BraceOption6Color = 113,
5544    #[doc = " Type class colors"]
5545    VoidTypeColor = 114,
5546    #[doc = " Type class colors"]
5547    StructureTypeColor = 115,
5548    #[doc = " Type class colors"]
5549    EnumerationTypeColor = 116,
5550    #[doc = " Type class colors"]
5551    FunctionTypeColor = 117,
5552    #[doc = " Type class colors"]
5553    BoolTypeColor = 118,
5554    #[doc = " Type class colors"]
5555    IntegerTypeColor = 119,
5556    #[doc = " Type class colors"]
5557    FloatTypeColor = 120,
5558    #[doc = " Type class colors"]
5559    PointerTypeColor = 121,
5560    #[doc = " Type class colors"]
5561    ArrayTypeColor = 122,
5562    #[doc = " Type class colors"]
5563    VarArgsTypeColor = 123,
5564    #[doc = " Type class colors"]
5565    ValueTypeColor = 124,
5566    #[doc = " Type class colors"]
5567    NamedTypeReferenceColor = 125,
5568    #[doc = " Type class colors"]
5569    WideCharTypeColor = 126,
5570}
5571#[repr(u8)]
5572#[doc = " The following edge styles map to Qt's Qt::PenStyle enumeration"]
5573#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
5574pub enum BNEdgePenStyle {
5575    #[doc = " no line at all."]
5576    NoPen = 0,
5577    #[doc = " A plain line (default)"]
5578    SolidLine = 1,
5579    #[doc = " Dashes separated by a few pixels."]
5580    DashLine = 2,
5581    #[doc = " Dots separated by a few pixels."]
5582    DotLine = 3,
5583    #[doc = " Alternate dots and dashes."]
5584    DashDotLine = 4,
5585    #[doc = " One dash, two dots, one dash, two dots."]
5586    DashDotDotLine = 5,
5587}
5588#[repr(C)]
5589#[derive(Debug, Copy, Clone)]
5590pub struct BNEdgeStyle {
5591    pub style: BNEdgePenStyle,
5592    pub width: usize,
5593    pub color: BNThemeColor,
5594}
5595#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5596const _: () = {
5597    ["Size of BNEdgeStyle"][::std::mem::size_of::<BNEdgeStyle>() - 24usize];
5598    ["Alignment of BNEdgeStyle"][::std::mem::align_of::<BNEdgeStyle>() - 8usize];
5599    ["Offset of field: BNEdgeStyle::style"][::std::mem::offset_of!(BNEdgeStyle, style) - 0usize];
5600    ["Offset of field: BNEdgeStyle::width"][::std::mem::offset_of!(BNEdgeStyle, width) - 8usize];
5601    ["Offset of field: BNEdgeStyle::color"][::std::mem::offset_of!(BNEdgeStyle, color) - 16usize];
5602};
5603impl Default for BNEdgeStyle {
5604    fn default() -> Self {
5605        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5606        unsafe {
5607            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5608            s.assume_init()
5609        }
5610    }
5611}
5612#[repr(C)]
5613#[derive(Debug, Copy, Clone)]
5614pub struct BNFlowGraphEdge {
5615    pub type_: BNBranchType,
5616    pub target: *mut BNFlowGraphNode,
5617    pub points: *mut BNPoint,
5618    pub pointCount: usize,
5619    pub backEdge: bool,
5620    pub style: BNEdgeStyle,
5621}
5622#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5623const _: () = {
5624    ["Size of BNFlowGraphEdge"][::std::mem::size_of::<BNFlowGraphEdge>() - 64usize];
5625    ["Alignment of BNFlowGraphEdge"][::std::mem::align_of::<BNFlowGraphEdge>() - 8usize];
5626    ["Offset of field: BNFlowGraphEdge::type_"]
5627        [::std::mem::offset_of!(BNFlowGraphEdge, type_) - 0usize];
5628    ["Offset of field: BNFlowGraphEdge::target"]
5629        [::std::mem::offset_of!(BNFlowGraphEdge, target) - 8usize];
5630    ["Offset of field: BNFlowGraphEdge::points"]
5631        [::std::mem::offset_of!(BNFlowGraphEdge, points) - 16usize];
5632    ["Offset of field: BNFlowGraphEdge::pointCount"]
5633        [::std::mem::offset_of!(BNFlowGraphEdge, pointCount) - 24usize];
5634    ["Offset of field: BNFlowGraphEdge::backEdge"]
5635        [::std::mem::offset_of!(BNFlowGraphEdge, backEdge) - 32usize];
5636    ["Offset of field: BNFlowGraphEdge::style"]
5637        [::std::mem::offset_of!(BNFlowGraphEdge, style) - 40usize];
5638};
5639impl Default for BNFlowGraphEdge {
5640    fn default() -> Self {
5641        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5642        unsafe {
5643            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5644            s.assume_init()
5645        }
5646    }
5647}
5648#[repr(u8)]
5649#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
5650pub enum BNHighlightColorStyle {
5651    StandardHighlightColor = 0,
5652    MixedHighlightColor = 1,
5653    CustomHighlightColor = 2,
5654}
5655#[repr(u8)]
5656#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
5657pub enum BNHighlightStandardColor {
5658    NoHighlightColor = 0,
5659    BlueHighlightColor = 1,
5660    GreenHighlightColor = 2,
5661    CyanHighlightColor = 3,
5662    RedHighlightColor = 4,
5663    MagentaHighlightColor = 5,
5664    YellowHighlightColor = 6,
5665    OrangeHighlightColor = 7,
5666    WhiteHighlightColor = 8,
5667    BlackHighlightColor = 9,
5668}
5669#[repr(C)]
5670#[derive(Debug, Copy, Clone)]
5671pub struct BNHighlightColor {
5672    pub style: BNHighlightColorStyle,
5673    pub color: BNHighlightStandardColor,
5674    pub mixColor: BNHighlightStandardColor,
5675    pub mix: u8,
5676    pub r: u8,
5677    pub g: u8,
5678    pub b: u8,
5679    pub alpha: u8,
5680}
5681#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5682const _: () = {
5683    ["Size of BNHighlightColor"][::std::mem::size_of::<BNHighlightColor>() - 8usize];
5684    ["Alignment of BNHighlightColor"][::std::mem::align_of::<BNHighlightColor>() - 1usize];
5685    ["Offset of field: BNHighlightColor::style"]
5686        [::std::mem::offset_of!(BNHighlightColor, style) - 0usize];
5687    ["Offset of field: BNHighlightColor::color"]
5688        [::std::mem::offset_of!(BNHighlightColor, color) - 1usize];
5689    ["Offset of field: BNHighlightColor::mixColor"]
5690        [::std::mem::offset_of!(BNHighlightColor, mixColor) - 2usize];
5691    ["Offset of field: BNHighlightColor::mix"]
5692        [::std::mem::offset_of!(BNHighlightColor, mix) - 3usize];
5693    ["Offset of field: BNHighlightColor::r"][::std::mem::offset_of!(BNHighlightColor, r) - 4usize];
5694    ["Offset of field: BNHighlightColor::g"][::std::mem::offset_of!(BNHighlightColor, g) - 5usize];
5695    ["Offset of field: BNHighlightColor::b"][::std::mem::offset_of!(BNHighlightColor, b) - 6usize];
5696    ["Offset of field: BNHighlightColor::alpha"]
5697        [::std::mem::offset_of!(BNHighlightColor, alpha) - 7usize];
5698};
5699impl Default for BNHighlightColor {
5700    fn default() -> Self {
5701        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5702        unsafe {
5703            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5704            s.assume_init()
5705        }
5706    }
5707}
5708#[repr(C)]
5709#[derive(Debug, Copy, Clone)]
5710pub struct BNDisassemblyTextLineTypeInfo {
5711    pub hasTypeInfo: bool,
5712    pub parentType: *mut BNType,
5713    pub fieldIndex: usize,
5714    pub offset: u64,
5715}
5716#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5717const _: () = {
5718    ["Size of BNDisassemblyTextLineTypeInfo"]
5719        [::std::mem::size_of::<BNDisassemblyTextLineTypeInfo>() - 32usize];
5720    ["Alignment of BNDisassemblyTextLineTypeInfo"]
5721        [::std::mem::align_of::<BNDisassemblyTextLineTypeInfo>() - 8usize];
5722    ["Offset of field: BNDisassemblyTextLineTypeInfo::hasTypeInfo"]
5723        [::std::mem::offset_of!(BNDisassemblyTextLineTypeInfo, hasTypeInfo) - 0usize];
5724    ["Offset of field: BNDisassemblyTextLineTypeInfo::parentType"]
5725        [::std::mem::offset_of!(BNDisassemblyTextLineTypeInfo, parentType) - 8usize];
5726    ["Offset of field: BNDisassemblyTextLineTypeInfo::fieldIndex"]
5727        [::std::mem::offset_of!(BNDisassemblyTextLineTypeInfo, fieldIndex) - 16usize];
5728    ["Offset of field: BNDisassemblyTextLineTypeInfo::offset"]
5729        [::std::mem::offset_of!(BNDisassemblyTextLineTypeInfo, offset) - 24usize];
5730};
5731impl Default for BNDisassemblyTextLineTypeInfo {
5732    fn default() -> Self {
5733        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5734        unsafe {
5735            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5736            s.assume_init()
5737        }
5738    }
5739}
5740#[repr(C)]
5741#[derive(Debug, Copy, Clone)]
5742pub struct BNDisassemblyTextLine {
5743    pub addr: u64,
5744    pub instrIndex: usize,
5745    pub tokens: *mut BNInstructionTextToken,
5746    pub count: usize,
5747    pub highlight: BNHighlightColor,
5748    pub tags: *mut *mut BNTag,
5749    pub tagCount: usize,
5750    pub typeInfo: BNDisassemblyTextLineTypeInfo,
5751}
5752#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5753const _: () = {
5754    ["Size of BNDisassemblyTextLine"][::std::mem::size_of::<BNDisassemblyTextLine>() - 88usize];
5755    ["Alignment of BNDisassemblyTextLine"]
5756        [::std::mem::align_of::<BNDisassemblyTextLine>() - 8usize];
5757    ["Offset of field: BNDisassemblyTextLine::addr"]
5758        [::std::mem::offset_of!(BNDisassemblyTextLine, addr) - 0usize];
5759    ["Offset of field: BNDisassemblyTextLine::instrIndex"]
5760        [::std::mem::offset_of!(BNDisassemblyTextLine, instrIndex) - 8usize];
5761    ["Offset of field: BNDisassemblyTextLine::tokens"]
5762        [::std::mem::offset_of!(BNDisassemblyTextLine, tokens) - 16usize];
5763    ["Offset of field: BNDisassemblyTextLine::count"]
5764        [::std::mem::offset_of!(BNDisassemblyTextLine, count) - 24usize];
5765    ["Offset of field: BNDisassemblyTextLine::highlight"]
5766        [::std::mem::offset_of!(BNDisassemblyTextLine, highlight) - 32usize];
5767    ["Offset of field: BNDisassemblyTextLine::tags"]
5768        [::std::mem::offset_of!(BNDisassemblyTextLine, tags) - 40usize];
5769    ["Offset of field: BNDisassemblyTextLine::tagCount"]
5770        [::std::mem::offset_of!(BNDisassemblyTextLine, tagCount) - 48usize];
5771    ["Offset of field: BNDisassemblyTextLine::typeInfo"]
5772        [::std::mem::offset_of!(BNDisassemblyTextLine, typeInfo) - 56usize];
5773};
5774impl Default for BNDisassemblyTextLine {
5775    fn default() -> Self {
5776        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5777        unsafe {
5778            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5779            s.assume_init()
5780        }
5781    }
5782}
5783#[repr(C)]
5784#[derive(Debug, Copy, Clone)]
5785pub struct BNLinearDisassemblyLine {
5786    pub type_: BNLinearDisassemblyLineType,
5787    pub view: *mut BNBinaryView,
5788    pub function: *mut BNFunction,
5789    pub block: *mut BNBasicBlock,
5790    pub contents: BNDisassemblyTextLine,
5791}
5792#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5793const _: () = {
5794    ["Size of BNLinearDisassemblyLine"]
5795        [::std::mem::size_of::<BNLinearDisassemblyLine>() - 120usize];
5796    ["Alignment of BNLinearDisassemblyLine"]
5797        [::std::mem::align_of::<BNLinearDisassemblyLine>() - 8usize];
5798    ["Offset of field: BNLinearDisassemblyLine::type_"]
5799        [::std::mem::offset_of!(BNLinearDisassemblyLine, type_) - 0usize];
5800    ["Offset of field: BNLinearDisassemblyLine::view"]
5801        [::std::mem::offset_of!(BNLinearDisassemblyLine, view) - 8usize];
5802    ["Offset of field: BNLinearDisassemblyLine::function"]
5803        [::std::mem::offset_of!(BNLinearDisassemblyLine, function) - 16usize];
5804    ["Offset of field: BNLinearDisassemblyLine::block"]
5805        [::std::mem::offset_of!(BNLinearDisassemblyLine, block) - 24usize];
5806    ["Offset of field: BNLinearDisassemblyLine::contents"]
5807        [::std::mem::offset_of!(BNLinearDisassemblyLine, contents) - 32usize];
5808};
5809impl Default for BNLinearDisassemblyLine {
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 BNReferenceSource {
5821    pub func: *mut BNFunction,
5822    pub arch: *mut BNArchitecture,
5823    pub addr: u64,
5824}
5825#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5826const _: () = {
5827    ["Size of BNReferenceSource"][::std::mem::size_of::<BNReferenceSource>() - 24usize];
5828    ["Alignment of BNReferenceSource"][::std::mem::align_of::<BNReferenceSource>() - 8usize];
5829    ["Offset of field: BNReferenceSource::func"]
5830        [::std::mem::offset_of!(BNReferenceSource, func) - 0usize];
5831    ["Offset of field: BNReferenceSource::arch"]
5832        [::std::mem::offset_of!(BNReferenceSource, arch) - 8usize];
5833    ["Offset of field: BNReferenceSource::addr"]
5834        [::std::mem::offset_of!(BNReferenceSource, addr) - 16usize];
5835};
5836impl Default for BNReferenceSource {
5837    fn default() -> Self {
5838        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5839        unsafe {
5840            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5841            s.assume_init()
5842        }
5843    }
5844}
5845#[repr(C)]
5846#[derive(Debug, Copy, Clone)]
5847pub struct BNTypeFieldReference {
5848    pub func: *mut BNFunction,
5849    pub arch: *mut BNArchitecture,
5850    pub addr: u64,
5851    pub size: usize,
5852    pub incomingType: BNTypeWithConfidence,
5853}
5854#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5855const _: () = {
5856    ["Size of BNTypeFieldReference"][::std::mem::size_of::<BNTypeFieldReference>() - 48usize];
5857    ["Alignment of BNTypeFieldReference"][::std::mem::align_of::<BNTypeFieldReference>() - 8usize];
5858    ["Offset of field: BNTypeFieldReference::func"]
5859        [::std::mem::offset_of!(BNTypeFieldReference, func) - 0usize];
5860    ["Offset of field: BNTypeFieldReference::arch"]
5861        [::std::mem::offset_of!(BNTypeFieldReference, arch) - 8usize];
5862    ["Offset of field: BNTypeFieldReference::addr"]
5863        [::std::mem::offset_of!(BNTypeFieldReference, addr) - 16usize];
5864    ["Offset of field: BNTypeFieldReference::size"]
5865        [::std::mem::offset_of!(BNTypeFieldReference, size) - 24usize];
5866    ["Offset of field: BNTypeFieldReference::incomingType"]
5867        [::std::mem::offset_of!(BNTypeFieldReference, incomingType) - 32usize];
5868};
5869impl Default for BNTypeFieldReference {
5870    fn default() -> Self {
5871        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5872        unsafe {
5873            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5874            s.assume_init()
5875        }
5876    }
5877}
5878#[repr(C)]
5879#[derive(Debug, Copy, Clone)]
5880pub struct BNILReferenceSource {
5881    pub func: *mut BNFunction,
5882    pub arch: *mut BNArchitecture,
5883    pub addr: u64,
5884    pub type_: BNFunctionGraphType,
5885    pub exprId: usize,
5886}
5887#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5888const _: () = {
5889    ["Size of BNILReferenceSource"][::std::mem::size_of::<BNILReferenceSource>() - 40usize];
5890    ["Alignment of BNILReferenceSource"][::std::mem::align_of::<BNILReferenceSource>() - 8usize];
5891    ["Offset of field: BNILReferenceSource::func"]
5892        [::std::mem::offset_of!(BNILReferenceSource, func) - 0usize];
5893    ["Offset of field: BNILReferenceSource::arch"]
5894        [::std::mem::offset_of!(BNILReferenceSource, arch) - 8usize];
5895    ["Offset of field: BNILReferenceSource::addr"]
5896        [::std::mem::offset_of!(BNILReferenceSource, addr) - 16usize];
5897    ["Offset of field: BNILReferenceSource::type_"]
5898        [::std::mem::offset_of!(BNILReferenceSource, type_) - 24usize];
5899    ["Offset of field: BNILReferenceSource::exprId"]
5900        [::std::mem::offset_of!(BNILReferenceSource, exprId) - 32usize];
5901};
5902impl Default for BNILReferenceSource {
5903    fn default() -> Self {
5904        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5905        unsafe {
5906            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5907            s.assume_init()
5908        }
5909    }
5910}
5911#[repr(C)]
5912#[derive(Debug, Copy, Clone)]
5913pub struct BNTypeFieldReferenceSizeInfo {
5914    pub offset: u64,
5915    pub sizes: *mut usize,
5916    pub count: usize,
5917}
5918#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5919const _: () = {
5920    ["Size of BNTypeFieldReferenceSizeInfo"]
5921        [::std::mem::size_of::<BNTypeFieldReferenceSizeInfo>() - 24usize];
5922    ["Alignment of BNTypeFieldReferenceSizeInfo"]
5923        [::std::mem::align_of::<BNTypeFieldReferenceSizeInfo>() - 8usize];
5924    ["Offset of field: BNTypeFieldReferenceSizeInfo::offset"]
5925        [::std::mem::offset_of!(BNTypeFieldReferenceSizeInfo, offset) - 0usize];
5926    ["Offset of field: BNTypeFieldReferenceSizeInfo::sizes"]
5927        [::std::mem::offset_of!(BNTypeFieldReferenceSizeInfo, sizes) - 8usize];
5928    ["Offset of field: BNTypeFieldReferenceSizeInfo::count"]
5929        [::std::mem::offset_of!(BNTypeFieldReferenceSizeInfo, count) - 16usize];
5930};
5931impl Default for BNTypeFieldReferenceSizeInfo {
5932    fn default() -> Self {
5933        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5934        unsafe {
5935            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5936            s.assume_init()
5937        }
5938    }
5939}
5940#[repr(C)]
5941#[derive(Debug, Copy, Clone)]
5942pub struct BNTypeFieldReferenceTypeInfo {
5943    pub offset: u64,
5944    pub types: *mut BNTypeWithConfidence,
5945    pub count: usize,
5946}
5947#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5948const _: () = {
5949    ["Size of BNTypeFieldReferenceTypeInfo"]
5950        [::std::mem::size_of::<BNTypeFieldReferenceTypeInfo>() - 24usize];
5951    ["Alignment of BNTypeFieldReferenceTypeInfo"]
5952        [::std::mem::align_of::<BNTypeFieldReferenceTypeInfo>() - 8usize];
5953    ["Offset of field: BNTypeFieldReferenceTypeInfo::offset"]
5954        [::std::mem::offset_of!(BNTypeFieldReferenceTypeInfo, offset) - 0usize];
5955    ["Offset of field: BNTypeFieldReferenceTypeInfo::types"]
5956        [::std::mem::offset_of!(BNTypeFieldReferenceTypeInfo, types) - 8usize];
5957    ["Offset of field: BNTypeFieldReferenceTypeInfo::count"]
5958        [::std::mem::offset_of!(BNTypeFieldReferenceTypeInfo, count) - 16usize];
5959};
5960impl Default for BNTypeFieldReferenceTypeInfo {
5961    fn default() -> Self {
5962        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5963        unsafe {
5964            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5965            s.assume_init()
5966        }
5967    }
5968}
5969#[repr(C)]
5970#[derive(Debug, Copy, Clone)]
5971pub struct BNVariableReferenceSource {
5972    pub var: BNVariable,
5973    pub source: BNILReferenceSource,
5974}
5975#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5976const _: () = {
5977    ["Size of BNVariableReferenceSource"]
5978        [::std::mem::size_of::<BNVariableReferenceSource>() - 56usize];
5979    ["Alignment of BNVariableReferenceSource"]
5980        [::std::mem::align_of::<BNVariableReferenceSource>() - 8usize];
5981    ["Offset of field: BNVariableReferenceSource::var"]
5982        [::std::mem::offset_of!(BNVariableReferenceSource, var) - 0usize];
5983    ["Offset of field: BNVariableReferenceSource::source"]
5984        [::std::mem::offset_of!(BNVariableReferenceSource, source) - 16usize];
5985};
5986impl Default for BNVariableReferenceSource {
5987    fn default() -> Self {
5988        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5989        unsafe {
5990            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5991            s.assume_init()
5992        }
5993    }
5994}
5995#[repr(u8)]
5996#[doc = " This describes how a type is referenced"]
5997#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
5998pub enum BNTypeReferenceType {
5999    #[doc = " Type A contains type B"]
6000    DirectTypeReferenceType = 0,
6001    #[doc = " All other cases, e.g., type A contains a pointer to type B"]
6002    IndirectTypeReferenceType = 1,
6003    #[doc = " The nature of the reference is unknown"]
6004    UnknownTypeReferenceType = 2,
6005}
6006#[repr(C)]
6007#[derive(Debug, Copy, Clone)]
6008pub struct BNTypeReferenceSource {
6009    pub name: BNQualifiedName,
6010    pub offset: u64,
6011    pub type_: BNTypeReferenceType,
6012}
6013#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6014const _: () = {
6015    ["Size of BNTypeReferenceSource"][::std::mem::size_of::<BNTypeReferenceSource>() - 40usize];
6016    ["Alignment of BNTypeReferenceSource"]
6017        [::std::mem::align_of::<BNTypeReferenceSource>() - 8usize];
6018    ["Offset of field: BNTypeReferenceSource::name"]
6019        [::std::mem::offset_of!(BNTypeReferenceSource, name) - 0usize];
6020    ["Offset of field: BNTypeReferenceSource::offset"]
6021        [::std::mem::offset_of!(BNTypeReferenceSource, offset) - 24usize];
6022    ["Offset of field: BNTypeReferenceSource::type_"]
6023        [::std::mem::offset_of!(BNTypeReferenceSource, type_) - 32usize];
6024};
6025impl Default for BNTypeReferenceSource {
6026    fn default() -> Self {
6027        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6028        unsafe {
6029            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6030            s.assume_init()
6031        }
6032    }
6033}
6034#[repr(u8)]
6035#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
6036pub enum BNTagTypeType {
6037    UserTagType = 0,
6038    NotificationTagType = 1,
6039    BookmarksTagType = 2,
6040}
6041#[repr(u8)]
6042#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
6043pub enum BNTagReferenceType {
6044    AddressTagReference = 0,
6045    FunctionTagReference = 1,
6046    DataTagReference = 2,
6047}
6048#[repr(C)]
6049#[derive(Debug, Copy, Clone)]
6050pub struct BNTagReference {
6051    pub refType: BNTagReferenceType,
6052    pub autoDefined: bool,
6053    pub tag: *mut BNTag,
6054    pub arch: *mut BNArchitecture,
6055    pub func: *mut BNFunction,
6056    pub addr: u64,
6057}
6058#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6059const _: () = {
6060    ["Size of BNTagReference"][::std::mem::size_of::<BNTagReference>() - 40usize];
6061    ["Alignment of BNTagReference"][::std::mem::align_of::<BNTagReference>() - 8usize];
6062    ["Offset of field: BNTagReference::refType"]
6063        [::std::mem::offset_of!(BNTagReference, refType) - 0usize];
6064    ["Offset of field: BNTagReference::autoDefined"]
6065        [::std::mem::offset_of!(BNTagReference, autoDefined) - 1usize];
6066    ["Offset of field: BNTagReference::tag"][::std::mem::offset_of!(BNTagReference, tag) - 8usize];
6067    ["Offset of field: BNTagReference::arch"]
6068        [::std::mem::offset_of!(BNTagReference, arch) - 16usize];
6069    ["Offset of field: BNTagReference::func"]
6070        [::std::mem::offset_of!(BNTagReference, func) - 24usize];
6071    ["Offset of field: BNTagReference::addr"]
6072        [::std::mem::offset_of!(BNTagReference, addr) - 32usize];
6073};
6074impl Default for BNTagReference {
6075    fn default() -> Self {
6076        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6077        unsafe {
6078            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6079            s.assume_init()
6080        }
6081    }
6082}
6083#[repr(C)]
6084#[derive(Debug, Copy, Clone)]
6085pub struct BNCallingConventionWithConfidence {
6086    pub convention: *mut BNCallingConvention,
6087    pub confidence: u8,
6088}
6089#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6090const _: () = {
6091    ["Size of BNCallingConventionWithConfidence"]
6092        [::std::mem::size_of::<BNCallingConventionWithConfidence>() - 16usize];
6093    ["Alignment of BNCallingConventionWithConfidence"]
6094        [::std::mem::align_of::<BNCallingConventionWithConfidence>() - 8usize];
6095    ["Offset of field: BNCallingConventionWithConfidence::convention"]
6096        [::std::mem::offset_of!(BNCallingConventionWithConfidence, convention) - 0usize];
6097    ["Offset of field: BNCallingConventionWithConfidence::confidence"]
6098        [::std::mem::offset_of!(BNCallingConventionWithConfidence, confidence) - 8usize];
6099};
6100impl Default for BNCallingConventionWithConfidence {
6101    fn default() -> Self {
6102        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6103        unsafe {
6104            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6105            s.assume_init()
6106        }
6107    }
6108}
6109#[repr(C)]
6110#[derive(Debug, Default, Copy, Clone)]
6111pub struct BNBoolWithConfidence {
6112    pub value: bool,
6113    pub confidence: u8,
6114}
6115#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6116const _: () = {
6117    ["Size of BNBoolWithConfidence"][::std::mem::size_of::<BNBoolWithConfidence>() - 2usize];
6118    ["Alignment of BNBoolWithConfidence"][::std::mem::align_of::<BNBoolWithConfidence>() - 1usize];
6119    ["Offset of field: BNBoolWithConfidence::value"]
6120        [::std::mem::offset_of!(BNBoolWithConfidence, value) - 0usize];
6121    ["Offset of field: BNBoolWithConfidence::confidence"]
6122        [::std::mem::offset_of!(BNBoolWithConfidence, confidence) - 1usize];
6123};
6124#[repr(C)]
6125#[derive(Debug, Default, Copy, Clone)]
6126pub struct BNOffsetWithConfidence {
6127    pub value: i64,
6128    pub confidence: u8,
6129}
6130#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6131const _: () = {
6132    ["Size of BNOffsetWithConfidence"][::std::mem::size_of::<BNOffsetWithConfidence>() - 16usize];
6133    ["Alignment of BNOffsetWithConfidence"]
6134        [::std::mem::align_of::<BNOffsetWithConfidence>() - 8usize];
6135    ["Offset of field: BNOffsetWithConfidence::value"]
6136        [::std::mem::offset_of!(BNOffsetWithConfidence, value) - 0usize];
6137    ["Offset of field: BNOffsetWithConfidence::confidence"]
6138        [::std::mem::offset_of!(BNOffsetWithConfidence, confidence) - 8usize];
6139};
6140#[repr(C)]
6141#[derive(Debug, Copy, Clone)]
6142pub struct BNParameterVariablesWithConfidence {
6143    pub vars: *mut BNVariable,
6144    pub count: usize,
6145    pub confidence: u8,
6146}
6147#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6148const _: () = {
6149    ["Size of BNParameterVariablesWithConfidence"]
6150        [::std::mem::size_of::<BNParameterVariablesWithConfidence>() - 24usize];
6151    ["Alignment of BNParameterVariablesWithConfidence"]
6152        [::std::mem::align_of::<BNParameterVariablesWithConfidence>() - 8usize];
6153    ["Offset of field: BNParameterVariablesWithConfidence::vars"]
6154        [::std::mem::offset_of!(BNParameterVariablesWithConfidence, vars) - 0usize];
6155    ["Offset of field: BNParameterVariablesWithConfidence::count"]
6156        [::std::mem::offset_of!(BNParameterVariablesWithConfidence, count) - 8usize];
6157    ["Offset of field: BNParameterVariablesWithConfidence::confidence"]
6158        [::std::mem::offset_of!(BNParameterVariablesWithConfidence, confidence) - 16usize];
6159};
6160impl Default for BNParameterVariablesWithConfidence {
6161    fn default() -> Self {
6162        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6163        unsafe {
6164            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6165            s.assume_init()
6166        }
6167    }
6168}
6169#[repr(C)]
6170#[derive(Debug, Copy, Clone)]
6171pub struct BNRegisterSetWithConfidence {
6172    pub regs: *mut u32,
6173    pub count: usize,
6174    pub confidence: u8,
6175}
6176#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6177const _: () = {
6178    ["Size of BNRegisterSetWithConfidence"]
6179        [::std::mem::size_of::<BNRegisterSetWithConfidence>() - 24usize];
6180    ["Alignment of BNRegisterSetWithConfidence"]
6181        [::std::mem::align_of::<BNRegisterSetWithConfidence>() - 8usize];
6182    ["Offset of field: BNRegisterSetWithConfidence::regs"]
6183        [::std::mem::offset_of!(BNRegisterSetWithConfidence, regs) - 0usize];
6184    ["Offset of field: BNRegisterSetWithConfidence::count"]
6185        [::std::mem::offset_of!(BNRegisterSetWithConfidence, count) - 8usize];
6186    ["Offset of field: BNRegisterSetWithConfidence::confidence"]
6187        [::std::mem::offset_of!(BNRegisterSetWithConfidence, confidence) - 16usize];
6188};
6189impl Default for BNRegisterSetWithConfidence {
6190    fn default() -> Self {
6191        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6192        unsafe {
6193            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6194            s.assume_init()
6195        }
6196    }
6197}
6198#[repr(C)]
6199#[derive(Debug, Copy, Clone)]
6200pub struct BNValueLocationComponent {
6201    pub variable: BNVariable,
6202    pub offset: i64,
6203    pub sizeValid: bool,
6204    pub size: u64,
6205}
6206#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6207const _: () = {
6208    ["Size of BNValueLocationComponent"]
6209        [::std::mem::size_of::<BNValueLocationComponent>() - 40usize];
6210    ["Alignment of BNValueLocationComponent"]
6211        [::std::mem::align_of::<BNValueLocationComponent>() - 8usize];
6212    ["Offset of field: BNValueLocationComponent::variable"]
6213        [::std::mem::offset_of!(BNValueLocationComponent, variable) - 0usize];
6214    ["Offset of field: BNValueLocationComponent::offset"]
6215        [::std::mem::offset_of!(BNValueLocationComponent, offset) - 16usize];
6216    ["Offset of field: BNValueLocationComponent::sizeValid"]
6217        [::std::mem::offset_of!(BNValueLocationComponent, sizeValid) - 24usize];
6218    ["Offset of field: BNValueLocationComponent::size"]
6219        [::std::mem::offset_of!(BNValueLocationComponent, size) - 32usize];
6220};
6221impl Default for BNValueLocationComponent {
6222    fn default() -> Self {
6223        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6224        unsafe {
6225            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6226            s.assume_init()
6227        }
6228    }
6229}
6230#[repr(C)]
6231#[derive(Debug, Copy, Clone)]
6232pub struct BNValueLocation {
6233    pub count: usize,
6234    pub components: *mut BNValueLocationComponent,
6235    pub indirect: bool,
6236    pub returnedPointerValid: bool,
6237    pub returnedPointer: BNVariable,
6238}
6239#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6240const _: () = {
6241    ["Size of BNValueLocation"][::std::mem::size_of::<BNValueLocation>() - 40usize];
6242    ["Alignment of BNValueLocation"][::std::mem::align_of::<BNValueLocation>() - 8usize];
6243    ["Offset of field: BNValueLocation::count"]
6244        [::std::mem::offset_of!(BNValueLocation, count) - 0usize];
6245    ["Offset of field: BNValueLocation::components"]
6246        [::std::mem::offset_of!(BNValueLocation, components) - 8usize];
6247    ["Offset of field: BNValueLocation::indirect"]
6248        [::std::mem::offset_of!(BNValueLocation, indirect) - 16usize];
6249    ["Offset of field: BNValueLocation::returnedPointerValid"]
6250        [::std::mem::offset_of!(BNValueLocation, returnedPointerValid) - 17usize];
6251    ["Offset of field: BNValueLocation::returnedPointer"]
6252        [::std::mem::offset_of!(BNValueLocation, returnedPointer) - 24usize];
6253};
6254impl Default for BNValueLocation {
6255    fn default() -> Self {
6256        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6257        unsafe {
6258            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6259            s.assume_init()
6260        }
6261    }
6262}
6263#[repr(C)]
6264#[derive(Debug, Copy, Clone)]
6265pub struct BNValueLocationWithConfidence {
6266    pub location: BNValueLocation,
6267    pub confidence: u8,
6268}
6269#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6270const _: () = {
6271    ["Size of BNValueLocationWithConfidence"]
6272        [::std::mem::size_of::<BNValueLocationWithConfidence>() - 48usize];
6273    ["Alignment of BNValueLocationWithConfidence"]
6274        [::std::mem::align_of::<BNValueLocationWithConfidence>() - 8usize];
6275    ["Offset of field: BNValueLocationWithConfidence::location"]
6276        [::std::mem::offset_of!(BNValueLocationWithConfidence, location) - 0usize];
6277    ["Offset of field: BNValueLocationWithConfidence::confidence"]
6278        [::std::mem::offset_of!(BNValueLocationWithConfidence, confidence) - 40usize];
6279};
6280impl Default for BNValueLocationWithConfidence {
6281    fn default() -> Self {
6282        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6283        unsafe {
6284            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6285            s.assume_init()
6286        }
6287    }
6288}
6289#[repr(C)]
6290#[derive(Debug, Copy, Clone)]
6291pub struct BNValueLocationListWithConfidence {
6292    pub locations: *mut BNValueLocation,
6293    pub count: usize,
6294    pub confidence: u8,
6295}
6296#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6297const _: () = {
6298    ["Size of BNValueLocationListWithConfidence"]
6299        [::std::mem::size_of::<BNValueLocationListWithConfidence>() - 24usize];
6300    ["Alignment of BNValueLocationListWithConfidence"]
6301        [::std::mem::align_of::<BNValueLocationListWithConfidence>() - 8usize];
6302    ["Offset of field: BNValueLocationListWithConfidence::locations"]
6303        [::std::mem::offset_of!(BNValueLocationListWithConfidence, locations) - 0usize];
6304    ["Offset of field: BNValueLocationListWithConfidence::count"]
6305        [::std::mem::offset_of!(BNValueLocationListWithConfidence, count) - 8usize];
6306    ["Offset of field: BNValueLocationListWithConfidence::confidence"]
6307        [::std::mem::offset_of!(BNValueLocationListWithConfidence, confidence) - 16usize];
6308};
6309impl Default for BNValueLocationListWithConfidence {
6310    fn default() -> Self {
6311        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6312        unsafe {
6313            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6314            s.assume_init()
6315        }
6316    }
6317}
6318#[repr(u8)]
6319#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
6320pub enum BNValueLocationSource {
6321    DefaultLocationSource = 0,
6322    PassByValueLocationSource = 1,
6323    PassByReferenceLocationSource = 2,
6324    CustomLocationSource = 3,
6325}
6326#[repr(C)]
6327#[derive(Debug, Copy, Clone)]
6328pub struct BNFunctionParameter {
6329    pub name: *mut ::std::os::raw::c_char,
6330    pub type_: *mut BNType,
6331    pub typeConfidence: u8,
6332    pub locationSource: BNValueLocationSource,
6333    pub location: BNValueLocation,
6334}
6335#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6336const _: () = {
6337    ["Size of BNFunctionParameter"][::std::mem::size_of::<BNFunctionParameter>() - 64usize];
6338    ["Alignment of BNFunctionParameter"][::std::mem::align_of::<BNFunctionParameter>() - 8usize];
6339    ["Offset of field: BNFunctionParameter::name"]
6340        [::std::mem::offset_of!(BNFunctionParameter, name) - 0usize];
6341    ["Offset of field: BNFunctionParameter::type_"]
6342        [::std::mem::offset_of!(BNFunctionParameter, type_) - 8usize];
6343    ["Offset of field: BNFunctionParameter::typeConfidence"]
6344        [::std::mem::offset_of!(BNFunctionParameter, typeConfidence) - 16usize];
6345    ["Offset of field: BNFunctionParameter::locationSource"]
6346        [::std::mem::offset_of!(BNFunctionParameter, locationSource) - 17usize];
6347    ["Offset of field: BNFunctionParameter::location"]
6348        [::std::mem::offset_of!(BNFunctionParameter, location) - 24usize];
6349};
6350impl Default for BNFunctionParameter {
6351    fn default() -> Self {
6352        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6353        unsafe {
6354            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6355            s.assume_init()
6356        }
6357    }
6358}
6359#[repr(C)]
6360#[derive(Debug, Copy, Clone)]
6361pub struct BNReturnValue {
6362    pub type_: *mut BNType,
6363    pub typeConfidence: u8,
6364    pub defaultLocation: bool,
6365    pub location: BNValueLocation,
6366    pub locationConfidence: u8,
6367}
6368#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6369const _: () = {
6370    ["Size of BNReturnValue"][::std::mem::size_of::<BNReturnValue>() - 64usize];
6371    ["Alignment of BNReturnValue"][::std::mem::align_of::<BNReturnValue>() - 8usize];
6372    ["Offset of field: BNReturnValue::type_"]
6373        [::std::mem::offset_of!(BNReturnValue, type_) - 0usize];
6374    ["Offset of field: BNReturnValue::typeConfidence"]
6375        [::std::mem::offset_of!(BNReturnValue, typeConfidence) - 8usize];
6376    ["Offset of field: BNReturnValue::defaultLocation"]
6377        [::std::mem::offset_of!(BNReturnValue, defaultLocation) - 9usize];
6378    ["Offset of field: BNReturnValue::location"]
6379        [::std::mem::offset_of!(BNReturnValue, location) - 16usize];
6380    ["Offset of field: BNReturnValue::locationConfidence"]
6381        [::std::mem::offset_of!(BNReturnValue, locationConfidence) - 56usize];
6382};
6383impl Default for BNReturnValue {
6384    fn default() -> Self {
6385        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6386        unsafe {
6387            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6388            s.assume_init()
6389        }
6390    }
6391}
6392#[repr(C)]
6393#[derive(Debug, Copy, Clone)]
6394pub struct BNCallLayout {
6395    pub parameters: *mut BNValueLocation,
6396    pub parameterCount: usize,
6397    pub returnValueValid: bool,
6398    pub returnValue: BNValueLocation,
6399    pub stackAdjustment: i64,
6400    pub registerStackAdjustmentRegisters: *mut u32,
6401    pub registerStackAdjustmentAmounts: *mut i32,
6402    pub registerStackAdjustmentCount: usize,
6403}
6404#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6405const _: () = {
6406    ["Size of BNCallLayout"][::std::mem::size_of::<BNCallLayout>() - 96usize];
6407    ["Alignment of BNCallLayout"][::std::mem::align_of::<BNCallLayout>() - 8usize];
6408    ["Offset of field: BNCallLayout::parameters"]
6409        [::std::mem::offset_of!(BNCallLayout, parameters) - 0usize];
6410    ["Offset of field: BNCallLayout::parameterCount"]
6411        [::std::mem::offset_of!(BNCallLayout, parameterCount) - 8usize];
6412    ["Offset of field: BNCallLayout::returnValueValid"]
6413        [::std::mem::offset_of!(BNCallLayout, returnValueValid) - 16usize];
6414    ["Offset of field: BNCallLayout::returnValue"]
6415        [::std::mem::offset_of!(BNCallLayout, returnValue) - 24usize];
6416    ["Offset of field: BNCallLayout::stackAdjustment"]
6417        [::std::mem::offset_of!(BNCallLayout, stackAdjustment) - 64usize];
6418    ["Offset of field: BNCallLayout::registerStackAdjustmentRegisters"]
6419        [::std::mem::offset_of!(BNCallLayout, registerStackAdjustmentRegisters) - 72usize];
6420    ["Offset of field: BNCallLayout::registerStackAdjustmentAmounts"]
6421        [::std::mem::offset_of!(BNCallLayout, registerStackAdjustmentAmounts) - 80usize];
6422    ["Offset of field: BNCallLayout::registerStackAdjustmentCount"]
6423        [::std::mem::offset_of!(BNCallLayout, registerStackAdjustmentCount) - 88usize];
6424};
6425impl Default for BNCallLayout {
6426    fn default() -> Self {
6427        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6428        unsafe {
6429            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6430            s.assume_init()
6431        }
6432    }
6433}
6434#[repr(C)]
6435#[derive(Debug, Copy, Clone)]
6436pub struct BNQualifiedNameAndType {
6437    pub name: BNQualifiedName,
6438    pub type_: *mut BNType,
6439}
6440#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6441const _: () = {
6442    ["Size of BNQualifiedNameAndType"][::std::mem::size_of::<BNQualifiedNameAndType>() - 32usize];
6443    ["Alignment of BNQualifiedNameAndType"]
6444        [::std::mem::align_of::<BNQualifiedNameAndType>() - 8usize];
6445    ["Offset of field: BNQualifiedNameAndType::name"]
6446        [::std::mem::offset_of!(BNQualifiedNameAndType, name) - 0usize];
6447    ["Offset of field: BNQualifiedNameAndType::type_"]
6448        [::std::mem::offset_of!(BNQualifiedNameAndType, type_) - 24usize];
6449};
6450impl Default for BNQualifiedNameAndType {
6451    fn default() -> Self {
6452        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6453        unsafe {
6454            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6455            s.assume_init()
6456        }
6457    }
6458}
6459#[repr(C)]
6460#[derive(Debug, Copy, Clone)]
6461pub struct BNQualifiedNameTypeAndId {
6462    pub name: BNQualifiedName,
6463    pub id: *mut ::std::os::raw::c_char,
6464    pub type_: *mut BNType,
6465}
6466#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6467const _: () = {
6468    ["Size of BNQualifiedNameTypeAndId"]
6469        [::std::mem::size_of::<BNQualifiedNameTypeAndId>() - 40usize];
6470    ["Alignment of BNQualifiedNameTypeAndId"]
6471        [::std::mem::align_of::<BNQualifiedNameTypeAndId>() - 8usize];
6472    ["Offset of field: BNQualifiedNameTypeAndId::name"]
6473        [::std::mem::offset_of!(BNQualifiedNameTypeAndId, name) - 0usize];
6474    ["Offset of field: BNQualifiedNameTypeAndId::id"]
6475        [::std::mem::offset_of!(BNQualifiedNameTypeAndId, id) - 24usize];
6476    ["Offset of field: BNQualifiedNameTypeAndId::type_"]
6477        [::std::mem::offset_of!(BNQualifiedNameTypeAndId, type_) - 32usize];
6478};
6479impl Default for BNQualifiedNameTypeAndId {
6480    fn default() -> Self {
6481        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6482        unsafe {
6483            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6484            s.assume_init()
6485        }
6486    }
6487}
6488#[repr(C)]
6489#[derive(Debug, Copy, Clone)]
6490pub struct BNStructureMember {
6491    pub type_: *mut BNType,
6492    pub name: *mut ::std::os::raw::c_char,
6493    pub offset: u64,
6494    pub typeConfidence: u8,
6495    pub access: BNMemberAccess,
6496    pub scope: BNMemberScope,
6497    pub bitPosition: u8,
6498    pub bitWidth: u8,
6499}
6500#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6501const _: () = {
6502    ["Size of BNStructureMember"][::std::mem::size_of::<BNStructureMember>() - 32usize];
6503    ["Alignment of BNStructureMember"][::std::mem::align_of::<BNStructureMember>() - 8usize];
6504    ["Offset of field: BNStructureMember::type_"]
6505        [::std::mem::offset_of!(BNStructureMember, type_) - 0usize];
6506    ["Offset of field: BNStructureMember::name"]
6507        [::std::mem::offset_of!(BNStructureMember, name) - 8usize];
6508    ["Offset of field: BNStructureMember::offset"]
6509        [::std::mem::offset_of!(BNStructureMember, offset) - 16usize];
6510    ["Offset of field: BNStructureMember::typeConfidence"]
6511        [::std::mem::offset_of!(BNStructureMember, typeConfidence) - 24usize];
6512    ["Offset of field: BNStructureMember::access"]
6513        [::std::mem::offset_of!(BNStructureMember, access) - 25usize];
6514    ["Offset of field: BNStructureMember::scope"]
6515        [::std::mem::offset_of!(BNStructureMember, scope) - 26usize];
6516    ["Offset of field: BNStructureMember::bitPosition"]
6517        [::std::mem::offset_of!(BNStructureMember, bitPosition) - 27usize];
6518    ["Offset of field: BNStructureMember::bitWidth"]
6519        [::std::mem::offset_of!(BNStructureMember, bitWidth) - 28usize];
6520};
6521impl Default for BNStructureMember {
6522    fn default() -> Self {
6523        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6524        unsafe {
6525            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6526            s.assume_init()
6527        }
6528    }
6529}
6530#[repr(C)]
6531#[derive(Debug, Copy, Clone)]
6532pub struct BNInheritedStructureMember {
6533    pub base: *mut BNNamedTypeReference,
6534    pub baseOffset: u64,
6535    pub member: BNStructureMember,
6536    pub memberIndex: usize,
6537}
6538#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6539const _: () = {
6540    ["Size of BNInheritedStructureMember"]
6541        [::std::mem::size_of::<BNInheritedStructureMember>() - 56usize];
6542    ["Alignment of BNInheritedStructureMember"]
6543        [::std::mem::align_of::<BNInheritedStructureMember>() - 8usize];
6544    ["Offset of field: BNInheritedStructureMember::base"]
6545        [::std::mem::offset_of!(BNInheritedStructureMember, base) - 0usize];
6546    ["Offset of field: BNInheritedStructureMember::baseOffset"]
6547        [::std::mem::offset_of!(BNInheritedStructureMember, baseOffset) - 8usize];
6548    ["Offset of field: BNInheritedStructureMember::member"]
6549        [::std::mem::offset_of!(BNInheritedStructureMember, member) - 16usize];
6550    ["Offset of field: BNInheritedStructureMember::memberIndex"]
6551        [::std::mem::offset_of!(BNInheritedStructureMember, memberIndex) - 48usize];
6552};
6553impl Default for BNInheritedStructureMember {
6554    fn default() -> Self {
6555        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6556        unsafe {
6557            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6558            s.assume_init()
6559        }
6560    }
6561}
6562#[repr(C)]
6563#[derive(Debug, Copy, Clone)]
6564pub struct BNBaseStructure {
6565    pub type_: *mut BNNamedTypeReference,
6566    pub offset: u64,
6567    pub width: u64,
6568}
6569#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6570const _: () = {
6571    ["Size of BNBaseStructure"][::std::mem::size_of::<BNBaseStructure>() - 24usize];
6572    ["Alignment of BNBaseStructure"][::std::mem::align_of::<BNBaseStructure>() - 8usize];
6573    ["Offset of field: BNBaseStructure::type_"]
6574        [::std::mem::offset_of!(BNBaseStructure, type_) - 0usize];
6575    ["Offset of field: BNBaseStructure::offset"]
6576        [::std::mem::offset_of!(BNBaseStructure, offset) - 8usize];
6577    ["Offset of field: BNBaseStructure::width"]
6578        [::std::mem::offset_of!(BNBaseStructure, width) - 16usize];
6579};
6580impl Default for BNBaseStructure {
6581    fn default() -> Self {
6582        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6583        unsafe {
6584            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6585            s.assume_init()
6586        }
6587    }
6588}
6589#[repr(C)]
6590#[derive(Debug, Copy, Clone)]
6591pub struct BNEnumerationMember {
6592    pub name: *mut ::std::os::raw::c_char,
6593    pub value: u64,
6594    pub isDefault: bool,
6595}
6596#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6597const _: () = {
6598    ["Size of BNEnumerationMember"][::std::mem::size_of::<BNEnumerationMember>() - 24usize];
6599    ["Alignment of BNEnumerationMember"][::std::mem::align_of::<BNEnumerationMember>() - 8usize];
6600    ["Offset of field: BNEnumerationMember::name"]
6601        [::std::mem::offset_of!(BNEnumerationMember, name) - 0usize];
6602    ["Offset of field: BNEnumerationMember::value"]
6603        [::std::mem::offset_of!(BNEnumerationMember, value) - 8usize];
6604    ["Offset of field: BNEnumerationMember::isDefault"]
6605        [::std::mem::offset_of!(BNEnumerationMember, isDefault) - 16usize];
6606};
6607impl Default for BNEnumerationMember {
6608    fn default() -> Self {
6609        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6610        unsafe {
6611            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6612            s.assume_init()
6613        }
6614    }
6615}
6616#[repr(C)]
6617#[derive(Debug, Copy, Clone)]
6618pub struct BNFunctionRecognizer {
6619    pub context: *mut ::std::os::raw::c_void,
6620    pub recognizeLowLevelIL: ::std::option::Option<
6621        unsafe extern "C" fn(
6622            ctxt: *mut ::std::os::raw::c_void,
6623            data: *mut BNBinaryView,
6624            func: *mut BNFunction,
6625            il: *mut BNLowLevelILFunction,
6626        ) -> bool,
6627    >,
6628    pub recognizeMediumLevelIL: ::std::option::Option<
6629        unsafe extern "C" fn(
6630            ctxt: *mut ::std::os::raw::c_void,
6631            data: *mut BNBinaryView,
6632            func: *mut BNFunction,
6633            il: *mut BNMediumLevelILFunction,
6634        ) -> bool,
6635    >,
6636}
6637#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6638const _: () = {
6639    ["Size of BNFunctionRecognizer"][::std::mem::size_of::<BNFunctionRecognizer>() - 24usize];
6640    ["Alignment of BNFunctionRecognizer"][::std::mem::align_of::<BNFunctionRecognizer>() - 8usize];
6641    ["Offset of field: BNFunctionRecognizer::context"]
6642        [::std::mem::offset_of!(BNFunctionRecognizer, context) - 0usize];
6643    ["Offset of field: BNFunctionRecognizer::recognizeLowLevelIL"]
6644        [::std::mem::offset_of!(BNFunctionRecognizer, recognizeLowLevelIL) - 8usize];
6645    ["Offset of field: BNFunctionRecognizer::recognizeMediumLevelIL"]
6646        [::std::mem::offset_of!(BNFunctionRecognizer, recognizeMediumLevelIL) - 16usize];
6647};
6648impl Default for BNFunctionRecognizer {
6649    fn default() -> Self {
6650        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6651        unsafe {
6652            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6653            s.assume_init()
6654        }
6655    }
6656}
6657#[repr(C)]
6658#[derive(Debug, Copy, Clone)]
6659pub struct BNCustomRelocationHandler {
6660    pub context: *mut ::std::os::raw::c_void,
6661    pub freeObject: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
6662    pub getRelocationInfo: ::std::option::Option<
6663        unsafe extern "C" fn(
6664            ctxt: *mut ::std::os::raw::c_void,
6665            view: *mut BNBinaryView,
6666            arch: *mut BNArchitecture,
6667            result: *mut BNRelocationInfo,
6668            resultCount: usize,
6669        ) -> bool,
6670    >,
6671    pub applyRelocation: ::std::option::Option<
6672        unsafe extern "C" fn(
6673            ctxt: *mut ::std::os::raw::c_void,
6674            view: *mut BNBinaryView,
6675            arch: *mut BNArchitecture,
6676            reloc: *mut BNRelocation,
6677            dest: *mut u8,
6678            len: usize,
6679        ) -> bool,
6680    >,
6681    pub getOperandForExternalRelocation: ::std::option::Option<
6682        unsafe extern "C" fn(
6683            ctxt: *mut ::std::os::raw::c_void,
6684            data: *const u8,
6685            addr: u64,
6686            length: usize,
6687            il: *mut BNLowLevelILFunction,
6688            relocation: *mut BNRelocation,
6689        ) -> usize,
6690    >,
6691}
6692#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6693const _: () = {
6694    ["Size of BNCustomRelocationHandler"]
6695        [::std::mem::size_of::<BNCustomRelocationHandler>() - 40usize];
6696    ["Alignment of BNCustomRelocationHandler"]
6697        [::std::mem::align_of::<BNCustomRelocationHandler>() - 8usize];
6698    ["Offset of field: BNCustomRelocationHandler::context"]
6699        [::std::mem::offset_of!(BNCustomRelocationHandler, context) - 0usize];
6700    ["Offset of field: BNCustomRelocationHandler::freeObject"]
6701        [::std::mem::offset_of!(BNCustomRelocationHandler, freeObject) - 8usize];
6702    ["Offset of field: BNCustomRelocationHandler::getRelocationInfo"]
6703        [::std::mem::offset_of!(BNCustomRelocationHandler, getRelocationInfo) - 16usize];
6704    ["Offset of field: BNCustomRelocationHandler::applyRelocation"]
6705        [::std::mem::offset_of!(BNCustomRelocationHandler, applyRelocation) - 24usize];
6706    ["Offset of field: BNCustomRelocationHandler::getOperandForExternalRelocation"][::std::mem::offset_of!(
6707        BNCustomRelocationHandler,
6708        getOperandForExternalRelocation
6709    ) - 32usize];
6710};
6711impl Default for BNCustomRelocationHandler {
6712    fn default() -> Self {
6713        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6714        unsafe {
6715            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6716            s.assume_init()
6717        }
6718    }
6719}
6720#[repr(u8)]
6721#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
6722pub enum BNTypeParserOption {
6723    IncludeSystemTypes = 0,
6724    BuiltinMacros = 1,
6725}
6726#[repr(C)]
6727#[derive(Debug, Copy, Clone)]
6728pub struct BNParsedType {
6729    pub name: BNQualifiedName,
6730    pub type_: *mut BNType,
6731    pub isUser: bool,
6732}
6733#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6734const _: () = {
6735    ["Size of BNParsedType"][::std::mem::size_of::<BNParsedType>() - 40usize];
6736    ["Alignment of BNParsedType"][::std::mem::align_of::<BNParsedType>() - 8usize];
6737    ["Offset of field: BNParsedType::name"][::std::mem::offset_of!(BNParsedType, name) - 0usize];
6738    ["Offset of field: BNParsedType::type_"][::std::mem::offset_of!(BNParsedType, type_) - 24usize];
6739    ["Offset of field: BNParsedType::isUser"]
6740        [::std::mem::offset_of!(BNParsedType, isUser) - 32usize];
6741};
6742impl Default for BNParsedType {
6743    fn default() -> Self {
6744        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6745        unsafe {
6746            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6747            s.assume_init()
6748        }
6749    }
6750}
6751#[repr(C)]
6752#[derive(Debug, Copy, Clone)]
6753pub struct BNTypeParserResult {
6754    pub types: *mut BNParsedType,
6755    pub variables: *mut BNParsedType,
6756    pub functions: *mut BNParsedType,
6757    pub typeCount: usize,
6758    pub variableCount: usize,
6759    pub functionCount: usize,
6760}
6761#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6762const _: () = {
6763    ["Size of BNTypeParserResult"][::std::mem::size_of::<BNTypeParserResult>() - 48usize];
6764    ["Alignment of BNTypeParserResult"][::std::mem::align_of::<BNTypeParserResult>() - 8usize];
6765    ["Offset of field: BNTypeParserResult::types"]
6766        [::std::mem::offset_of!(BNTypeParserResult, types) - 0usize];
6767    ["Offset of field: BNTypeParserResult::variables"]
6768        [::std::mem::offset_of!(BNTypeParserResult, variables) - 8usize];
6769    ["Offset of field: BNTypeParserResult::functions"]
6770        [::std::mem::offset_of!(BNTypeParserResult, functions) - 16usize];
6771    ["Offset of field: BNTypeParserResult::typeCount"]
6772        [::std::mem::offset_of!(BNTypeParserResult, typeCount) - 24usize];
6773    ["Offset of field: BNTypeParserResult::variableCount"]
6774        [::std::mem::offset_of!(BNTypeParserResult, variableCount) - 32usize];
6775    ["Offset of field: BNTypeParserResult::functionCount"]
6776        [::std::mem::offset_of!(BNTypeParserResult, functionCount) - 40usize];
6777};
6778impl Default for BNTypeParserResult {
6779    fn default() -> Self {
6780        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6781        unsafe {
6782            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6783            s.assume_init()
6784        }
6785    }
6786}
6787#[repr(u8)]
6788#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
6789pub enum BNTypeParserErrorSeverity {
6790    IgnoredSeverity = 0,
6791    NoteSeverity = 1,
6792    RemarkSeverity = 2,
6793    WarningSeverity = 3,
6794    ErrorSeverity = 4,
6795    FatalSeverity = 5,
6796}
6797#[repr(C)]
6798#[derive(Debug, Copy, Clone)]
6799pub struct BNTypeParserError {
6800    pub severity: BNTypeParserErrorSeverity,
6801    pub message: *mut ::std::os::raw::c_char,
6802    pub fileName: *mut ::std::os::raw::c_char,
6803    pub line: u64,
6804    pub column: u64,
6805}
6806#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6807const _: () = {
6808    ["Size of BNTypeParserError"][::std::mem::size_of::<BNTypeParserError>() - 40usize];
6809    ["Alignment of BNTypeParserError"][::std::mem::align_of::<BNTypeParserError>() - 8usize];
6810    ["Offset of field: BNTypeParserError::severity"]
6811        [::std::mem::offset_of!(BNTypeParserError, severity) - 0usize];
6812    ["Offset of field: BNTypeParserError::message"]
6813        [::std::mem::offset_of!(BNTypeParserError, message) - 8usize];
6814    ["Offset of field: BNTypeParserError::fileName"]
6815        [::std::mem::offset_of!(BNTypeParserError, fileName) - 16usize];
6816    ["Offset of field: BNTypeParserError::line"]
6817        [::std::mem::offset_of!(BNTypeParserError, line) - 24usize];
6818    ["Offset of field: BNTypeParserError::column"]
6819        [::std::mem::offset_of!(BNTypeParserError, column) - 32usize];
6820};
6821impl Default for BNTypeParserError {
6822    fn default() -> Self {
6823        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6824        unsafe {
6825            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6826            s.assume_init()
6827        }
6828    }
6829}
6830#[repr(C)]
6831#[derive(Debug, Copy, Clone)]
6832pub struct BNQualifiedNameList {
6833    pub names: *mut BNQualifiedName,
6834    pub count: usize,
6835}
6836#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6837const _: () = {
6838    ["Size of BNQualifiedNameList"][::std::mem::size_of::<BNQualifiedNameList>() - 16usize];
6839    ["Alignment of BNQualifiedNameList"][::std::mem::align_of::<BNQualifiedNameList>() - 8usize];
6840    ["Offset of field: BNQualifiedNameList::names"]
6841        [::std::mem::offset_of!(BNQualifiedNameList, names) - 0usize];
6842    ["Offset of field: BNQualifiedNameList::count"]
6843        [::std::mem::offset_of!(BNQualifiedNameList, count) - 8usize];
6844};
6845impl Default for BNQualifiedNameList {
6846    fn default() -> Self {
6847        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6848        unsafe {
6849            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6850            s.assume_init()
6851        }
6852    }
6853}
6854#[repr(u8)]
6855#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
6856pub enum BNUpdateResult {
6857    UpdateFailed = 0,
6858    UpdateSuccess = 1,
6859    AlreadyUpToDate = 2,
6860    UpdateAvailable = 3,
6861}
6862#[repr(C)]
6863#[derive(Debug, Copy, Clone)]
6864pub struct BNUpdateChannel {
6865    pub name: *mut ::std::os::raw::c_char,
6866    pub description: *mut ::std::os::raw::c_char,
6867    pub latestVersion: *mut ::std::os::raw::c_char,
6868}
6869#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6870const _: () = {
6871    ["Size of BNUpdateChannel"][::std::mem::size_of::<BNUpdateChannel>() - 24usize];
6872    ["Alignment of BNUpdateChannel"][::std::mem::align_of::<BNUpdateChannel>() - 8usize];
6873    ["Offset of field: BNUpdateChannel::name"]
6874        [::std::mem::offset_of!(BNUpdateChannel, name) - 0usize];
6875    ["Offset of field: BNUpdateChannel::description"]
6876        [::std::mem::offset_of!(BNUpdateChannel, description) - 8usize];
6877    ["Offset of field: BNUpdateChannel::latestVersion"]
6878        [::std::mem::offset_of!(BNUpdateChannel, latestVersion) - 16usize];
6879};
6880impl Default for BNUpdateChannel {
6881    fn default() -> Self {
6882        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6883        unsafe {
6884            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6885            s.assume_init()
6886        }
6887    }
6888}
6889#[repr(C)]
6890#[derive(Debug, Copy, Clone)]
6891pub struct BNChangelogEntry {
6892    pub version: BNVersionInfo,
6893    pub notes: *mut ::std::os::raw::c_char,
6894    pub time: u64,
6895}
6896#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6897const _: () = {
6898    ["Size of BNChangelogEntry"][::std::mem::size_of::<BNChangelogEntry>() - 40usize];
6899    ["Alignment of BNChangelogEntry"][::std::mem::align_of::<BNChangelogEntry>() - 8usize];
6900    ["Offset of field: BNChangelogEntry::version"]
6901        [::std::mem::offset_of!(BNChangelogEntry, version) - 0usize];
6902    ["Offset of field: BNChangelogEntry::notes"]
6903        [::std::mem::offset_of!(BNChangelogEntry, notes) - 24usize];
6904    ["Offset of field: BNChangelogEntry::time"]
6905        [::std::mem::offset_of!(BNChangelogEntry, time) - 32usize];
6906};
6907impl Default for BNChangelogEntry {
6908    fn default() -> Self {
6909        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6910        unsafe {
6911            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6912            s.assume_init()
6913        }
6914    }
6915}
6916#[repr(C)]
6917#[derive(Debug, Copy, Clone)]
6918pub struct BNUpdateVersionNew {
6919    pub version: BNVersionInfo,
6920    pub name: *mut ::std::os::raw::c_char,
6921    pub time: u64,
6922}
6923#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6924const _: () = {
6925    ["Size of BNUpdateVersionNew"][::std::mem::size_of::<BNUpdateVersionNew>() - 40usize];
6926    ["Alignment of BNUpdateVersionNew"][::std::mem::align_of::<BNUpdateVersionNew>() - 8usize];
6927    ["Offset of field: BNUpdateVersionNew::version"]
6928        [::std::mem::offset_of!(BNUpdateVersionNew, version) - 0usize];
6929    ["Offset of field: BNUpdateVersionNew::name"]
6930        [::std::mem::offset_of!(BNUpdateVersionNew, name) - 24usize];
6931    ["Offset of field: BNUpdateVersionNew::time"]
6932        [::std::mem::offset_of!(BNUpdateVersionNew, time) - 32usize];
6933};
6934impl Default for BNUpdateVersionNew {
6935    fn default() -> Self {
6936        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6937        unsafe {
6938            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6939            s.assume_init()
6940        }
6941    }
6942}
6943#[repr(C)]
6944#[derive(Debug, Copy, Clone)]
6945pub struct BNUpdateChannelFullInfo {
6946    pub versions: *mut BNUpdateVersionNew,
6947    pub versionCount: u64,
6948    pub changelogEntries: *mut BNChangelogEntry,
6949    pub changelogEntryCount: u64,
6950    pub name: *mut ::std::os::raw::c_char,
6951    pub desc: *mut ::std::os::raw::c_char,
6952    pub latestVersion: *mut ::std::os::raw::c_char,
6953}
6954#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6955const _: () = {
6956    ["Size of BNUpdateChannelFullInfo"][::std::mem::size_of::<BNUpdateChannelFullInfo>() - 56usize];
6957    ["Alignment of BNUpdateChannelFullInfo"]
6958        [::std::mem::align_of::<BNUpdateChannelFullInfo>() - 8usize];
6959    ["Offset of field: BNUpdateChannelFullInfo::versions"]
6960        [::std::mem::offset_of!(BNUpdateChannelFullInfo, versions) - 0usize];
6961    ["Offset of field: BNUpdateChannelFullInfo::versionCount"]
6962        [::std::mem::offset_of!(BNUpdateChannelFullInfo, versionCount) - 8usize];
6963    ["Offset of field: BNUpdateChannelFullInfo::changelogEntries"]
6964        [::std::mem::offset_of!(BNUpdateChannelFullInfo, changelogEntries) - 16usize];
6965    ["Offset of field: BNUpdateChannelFullInfo::changelogEntryCount"]
6966        [::std::mem::offset_of!(BNUpdateChannelFullInfo, changelogEntryCount) - 24usize];
6967    ["Offset of field: BNUpdateChannelFullInfo::name"]
6968        [::std::mem::offset_of!(BNUpdateChannelFullInfo, name) - 32usize];
6969    ["Offset of field: BNUpdateChannelFullInfo::desc"]
6970        [::std::mem::offset_of!(BNUpdateChannelFullInfo, desc) - 40usize];
6971    ["Offset of field: BNUpdateChannelFullInfo::latestVersion"]
6972        [::std::mem::offset_of!(BNUpdateChannelFullInfo, latestVersion) - 48usize];
6973};
6974impl Default for BNUpdateChannelFullInfo {
6975    fn default() -> Self {
6976        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6977        unsafe {
6978            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6979            s.assume_init()
6980        }
6981    }
6982}
6983#[repr(C)]
6984#[derive(Debug, Copy, Clone)]
6985pub struct BNUpdateVersion {
6986    pub version: *mut ::std::os::raw::c_char,
6987    pub notes: *mut ::std::os::raw::c_char,
6988    pub time: u64,
6989}
6990#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6991const _: () = {
6992    ["Size of BNUpdateVersion"][::std::mem::size_of::<BNUpdateVersion>() - 24usize];
6993    ["Alignment of BNUpdateVersion"][::std::mem::align_of::<BNUpdateVersion>() - 8usize];
6994    ["Offset of field: BNUpdateVersion::version"]
6995        [::std::mem::offset_of!(BNUpdateVersion, version) - 0usize];
6996    ["Offset of field: BNUpdateVersion::notes"]
6997        [::std::mem::offset_of!(BNUpdateVersion, notes) - 8usize];
6998    ["Offset of field: BNUpdateVersion::time"]
6999        [::std::mem::offset_of!(BNUpdateVersion, time) - 16usize];
7000};
7001impl Default for BNUpdateVersion {
7002    fn default() -> Self {
7003        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7004        unsafe {
7005            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7006            s.assume_init()
7007        }
7008    }
7009}
7010#[repr(C)]
7011#[derive(Debug, Copy, Clone)]
7012pub struct BNStringReference {
7013    pub type_: BNStringType,
7014    pub start: u64,
7015    pub length: usize,
7016}
7017#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7018const _: () = {
7019    ["Size of BNStringReference"][::std::mem::size_of::<BNStringReference>() - 24usize];
7020    ["Alignment of BNStringReference"][::std::mem::align_of::<BNStringReference>() - 8usize];
7021    ["Offset of field: BNStringReference::type_"]
7022        [::std::mem::offset_of!(BNStringReference, type_) - 0usize];
7023    ["Offset of field: BNStringReference::start"]
7024        [::std::mem::offset_of!(BNStringReference, start) - 8usize];
7025    ["Offset of field: BNStringReference::length"]
7026        [::std::mem::offset_of!(BNStringReference, length) - 16usize];
7027};
7028impl Default for BNStringReference {
7029    fn default() -> Self {
7030        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7031        unsafe {
7032            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7033            s.assume_init()
7034        }
7035    }
7036}
7037#[repr(u8)]
7038#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
7039pub enum BNPluginCommandType {
7040    DefaultPluginCommand = 0,
7041    AddressPluginCommand = 1,
7042    RangePluginCommand = 2,
7043    FunctionPluginCommand = 3,
7044    LowLevelILFunctionPluginCommand = 4,
7045    LowLevelILInstructionPluginCommand = 5,
7046    MediumLevelILFunctionPluginCommand = 6,
7047    MediumLevelILInstructionPluginCommand = 7,
7048    HighLevelILFunctionPluginCommand = 8,
7049    HighLevelILInstructionPluginCommand = 9,
7050    ProjectPluginCommand = 10,
7051    GlobalPluginCommand = 11,
7052}
7053#[repr(C)]
7054#[derive(Debug, Copy, Clone)]
7055pub struct BNPluginCommand {
7056    pub name: *mut ::std::os::raw::c_char,
7057    pub description: *mut ::std::os::raw::c_char,
7058    pub type_: BNPluginCommandType,
7059    pub context: *mut ::std::os::raw::c_void,
7060    pub globalCommand:
7061        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
7062    pub defaultCommand: ::std::option::Option<
7063        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, view: *mut BNBinaryView),
7064    >,
7065    pub addressCommand: ::std::option::Option<
7066        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, view: *mut BNBinaryView, addr: u64),
7067    >,
7068    pub rangeCommand: ::std::option::Option<
7069        unsafe extern "C" fn(
7070            ctxt: *mut ::std::os::raw::c_void,
7071            view: *mut BNBinaryView,
7072            addr: u64,
7073            len: u64,
7074        ),
7075    >,
7076    pub functionCommand: ::std::option::Option<
7077        unsafe extern "C" fn(
7078            ctxt: *mut ::std::os::raw::c_void,
7079            view: *mut BNBinaryView,
7080            func: *mut BNFunction,
7081        ),
7082    >,
7083    pub lowLevelILFunctionCommand: ::std::option::Option<
7084        unsafe extern "C" fn(
7085            ctxt: *mut ::std::os::raw::c_void,
7086            view: *mut BNBinaryView,
7087            func: *mut BNLowLevelILFunction,
7088        ),
7089    >,
7090    pub lowLevelILInstructionCommand: ::std::option::Option<
7091        unsafe extern "C" fn(
7092            ctxt: *mut ::std::os::raw::c_void,
7093            view: *mut BNBinaryView,
7094            func: *mut BNLowLevelILFunction,
7095            instr: usize,
7096        ),
7097    >,
7098    pub mediumLevelILFunctionCommand: ::std::option::Option<
7099        unsafe extern "C" fn(
7100            ctxt: *mut ::std::os::raw::c_void,
7101            view: *mut BNBinaryView,
7102            func: *mut BNMediumLevelILFunction,
7103        ),
7104    >,
7105    pub mediumLevelILInstructionCommand: ::std::option::Option<
7106        unsafe extern "C" fn(
7107            ctxt: *mut ::std::os::raw::c_void,
7108            view: *mut BNBinaryView,
7109            func: *mut BNMediumLevelILFunction,
7110            instr: usize,
7111        ),
7112    >,
7113    pub highLevelILFunctionCommand: ::std::option::Option<
7114        unsafe extern "C" fn(
7115            ctxt: *mut ::std::os::raw::c_void,
7116            view: *mut BNBinaryView,
7117            func: *mut BNHighLevelILFunction,
7118        ),
7119    >,
7120    pub highLevelILInstructionCommand: ::std::option::Option<
7121        unsafe extern "C" fn(
7122            ctxt: *mut ::std::os::raw::c_void,
7123            view: *mut BNBinaryView,
7124            func: *mut BNHighLevelILFunction,
7125            instr: usize,
7126        ),
7127    >,
7128    pub projectCommand: ::std::option::Option<
7129        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, view: *mut BNProject),
7130    >,
7131    pub globalIsValid:
7132        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
7133    pub defaultIsValid: ::std::option::Option<
7134        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, view: *mut BNBinaryView) -> bool,
7135    >,
7136    pub addressIsValid: ::std::option::Option<
7137        unsafe extern "C" fn(
7138            ctxt: *mut ::std::os::raw::c_void,
7139            view: *mut BNBinaryView,
7140            addr: u64,
7141        ) -> bool,
7142    >,
7143    pub rangeIsValid: ::std::option::Option<
7144        unsafe extern "C" fn(
7145            ctxt: *mut ::std::os::raw::c_void,
7146            view: *mut BNBinaryView,
7147            addr: u64,
7148            len: u64,
7149        ) -> bool,
7150    >,
7151    pub functionIsValid: ::std::option::Option<
7152        unsafe extern "C" fn(
7153            ctxt: *mut ::std::os::raw::c_void,
7154            view: *mut BNBinaryView,
7155            func: *mut BNFunction,
7156        ) -> bool,
7157    >,
7158    pub lowLevelILFunctionIsValid: ::std::option::Option<
7159        unsafe extern "C" fn(
7160            ctxt: *mut ::std::os::raw::c_void,
7161            view: *mut BNBinaryView,
7162            func: *mut BNLowLevelILFunction,
7163        ) -> bool,
7164    >,
7165    pub lowLevelILInstructionIsValid: ::std::option::Option<
7166        unsafe extern "C" fn(
7167            ctxt: *mut ::std::os::raw::c_void,
7168            view: *mut BNBinaryView,
7169            func: *mut BNLowLevelILFunction,
7170            instr: usize,
7171        ) -> bool,
7172    >,
7173    pub mediumLevelILFunctionIsValid: ::std::option::Option<
7174        unsafe extern "C" fn(
7175            ctxt: *mut ::std::os::raw::c_void,
7176            view: *mut BNBinaryView,
7177            func: *mut BNMediumLevelILFunction,
7178        ) -> bool,
7179    >,
7180    pub mediumLevelILInstructionIsValid: ::std::option::Option<
7181        unsafe extern "C" fn(
7182            ctxt: *mut ::std::os::raw::c_void,
7183            view: *mut BNBinaryView,
7184            func: *mut BNMediumLevelILFunction,
7185            instr: usize,
7186        ) -> bool,
7187    >,
7188    pub highLevelILFunctionIsValid: ::std::option::Option<
7189        unsafe extern "C" fn(
7190            ctxt: *mut ::std::os::raw::c_void,
7191            view: *mut BNBinaryView,
7192            func: *mut BNHighLevelILFunction,
7193        ) -> bool,
7194    >,
7195    pub highLevelILInstructionIsValid: ::std::option::Option<
7196        unsafe extern "C" fn(
7197            ctxt: *mut ::std::os::raw::c_void,
7198            view: *mut BNBinaryView,
7199            func: *mut BNHighLevelILFunction,
7200            instr: usize,
7201        ) -> bool,
7202    >,
7203    pub projectIsValid: ::std::option::Option<
7204        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, view: *mut BNProject) -> bool,
7205    >,
7206}
7207#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7208const _: () = {
7209    ["Size of BNPluginCommand"][::std::mem::size_of::<BNPluginCommand>() - 224usize];
7210    ["Alignment of BNPluginCommand"][::std::mem::align_of::<BNPluginCommand>() - 8usize];
7211    ["Offset of field: BNPluginCommand::name"]
7212        [::std::mem::offset_of!(BNPluginCommand, name) - 0usize];
7213    ["Offset of field: BNPluginCommand::description"]
7214        [::std::mem::offset_of!(BNPluginCommand, description) - 8usize];
7215    ["Offset of field: BNPluginCommand::type_"]
7216        [::std::mem::offset_of!(BNPluginCommand, type_) - 16usize];
7217    ["Offset of field: BNPluginCommand::context"]
7218        [::std::mem::offset_of!(BNPluginCommand, context) - 24usize];
7219    ["Offset of field: BNPluginCommand::globalCommand"]
7220        [::std::mem::offset_of!(BNPluginCommand, globalCommand) - 32usize];
7221    ["Offset of field: BNPluginCommand::defaultCommand"]
7222        [::std::mem::offset_of!(BNPluginCommand, defaultCommand) - 40usize];
7223    ["Offset of field: BNPluginCommand::addressCommand"]
7224        [::std::mem::offset_of!(BNPluginCommand, addressCommand) - 48usize];
7225    ["Offset of field: BNPluginCommand::rangeCommand"]
7226        [::std::mem::offset_of!(BNPluginCommand, rangeCommand) - 56usize];
7227    ["Offset of field: BNPluginCommand::functionCommand"]
7228        [::std::mem::offset_of!(BNPluginCommand, functionCommand) - 64usize];
7229    ["Offset of field: BNPluginCommand::lowLevelILFunctionCommand"]
7230        [::std::mem::offset_of!(BNPluginCommand, lowLevelILFunctionCommand) - 72usize];
7231    ["Offset of field: BNPluginCommand::lowLevelILInstructionCommand"]
7232        [::std::mem::offset_of!(BNPluginCommand, lowLevelILInstructionCommand) - 80usize];
7233    ["Offset of field: BNPluginCommand::mediumLevelILFunctionCommand"]
7234        [::std::mem::offset_of!(BNPluginCommand, mediumLevelILFunctionCommand) - 88usize];
7235    ["Offset of field: BNPluginCommand::mediumLevelILInstructionCommand"]
7236        [::std::mem::offset_of!(BNPluginCommand, mediumLevelILInstructionCommand) - 96usize];
7237    ["Offset of field: BNPluginCommand::highLevelILFunctionCommand"]
7238        [::std::mem::offset_of!(BNPluginCommand, highLevelILFunctionCommand) - 104usize];
7239    ["Offset of field: BNPluginCommand::highLevelILInstructionCommand"]
7240        [::std::mem::offset_of!(BNPluginCommand, highLevelILInstructionCommand) - 112usize];
7241    ["Offset of field: BNPluginCommand::projectCommand"]
7242        [::std::mem::offset_of!(BNPluginCommand, projectCommand) - 120usize];
7243    ["Offset of field: BNPluginCommand::globalIsValid"]
7244        [::std::mem::offset_of!(BNPluginCommand, globalIsValid) - 128usize];
7245    ["Offset of field: BNPluginCommand::defaultIsValid"]
7246        [::std::mem::offset_of!(BNPluginCommand, defaultIsValid) - 136usize];
7247    ["Offset of field: BNPluginCommand::addressIsValid"]
7248        [::std::mem::offset_of!(BNPluginCommand, addressIsValid) - 144usize];
7249    ["Offset of field: BNPluginCommand::rangeIsValid"]
7250        [::std::mem::offset_of!(BNPluginCommand, rangeIsValid) - 152usize];
7251    ["Offset of field: BNPluginCommand::functionIsValid"]
7252        [::std::mem::offset_of!(BNPluginCommand, functionIsValid) - 160usize];
7253    ["Offset of field: BNPluginCommand::lowLevelILFunctionIsValid"]
7254        [::std::mem::offset_of!(BNPluginCommand, lowLevelILFunctionIsValid) - 168usize];
7255    ["Offset of field: BNPluginCommand::lowLevelILInstructionIsValid"]
7256        [::std::mem::offset_of!(BNPluginCommand, lowLevelILInstructionIsValid) - 176usize];
7257    ["Offset of field: BNPluginCommand::mediumLevelILFunctionIsValid"]
7258        [::std::mem::offset_of!(BNPluginCommand, mediumLevelILFunctionIsValid) - 184usize];
7259    ["Offset of field: BNPluginCommand::mediumLevelILInstructionIsValid"]
7260        [::std::mem::offset_of!(BNPluginCommand, mediumLevelILInstructionIsValid) - 192usize];
7261    ["Offset of field: BNPluginCommand::highLevelILFunctionIsValid"]
7262        [::std::mem::offset_of!(BNPluginCommand, highLevelILFunctionIsValid) - 200usize];
7263    ["Offset of field: BNPluginCommand::highLevelILInstructionIsValid"]
7264        [::std::mem::offset_of!(BNPluginCommand, highLevelILInstructionIsValid) - 208usize];
7265    ["Offset of field: BNPluginCommand::projectIsValid"]
7266        [::std::mem::offset_of!(BNPluginCommand, projectIsValid) - 216usize];
7267};
7268impl Default for BNPluginCommand {
7269    fn default() -> Self {
7270        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7271        unsafe {
7272            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7273            s.assume_init()
7274        }
7275    }
7276}
7277#[repr(C)]
7278#[derive(Debug, Copy, Clone)]
7279pub struct BNCustomCallingConvention {
7280    pub context: *mut ::std::os::raw::c_void,
7281    pub freeObject: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
7282    pub getCallerSavedRegisters: ::std::option::Option<
7283        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
7284    >,
7285    pub getCalleeSavedRegisters: ::std::option::Option<
7286        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
7287    >,
7288    pub getIntegerArgumentRegisters: ::std::option::Option<
7289        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
7290    >,
7291    pub getFloatArgumentRegisters: ::std::option::Option<
7292        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
7293    >,
7294    pub getRequiredArgumentRegisters: ::std::option::Option<
7295        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
7296    >,
7297    pub getRequiredClobberedRegisters: ::std::option::Option<
7298        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
7299    >,
7300    pub freeRegisterList: ::std::option::Option<
7301        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, regs: *mut u32, len: usize),
7302    >,
7303    pub areArgumentRegistersSharedIndex:
7304        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
7305    pub isStackReservedForArgumentRegisters:
7306        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
7307    pub isStackAdjustedOnReturn:
7308        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
7309    pub isEligibleForHeuristics:
7310        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
7311    pub getIntegerReturnValueRegister:
7312        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> u32>,
7313    pub getHighIntegerReturnValueRegister:
7314        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> u32>,
7315    pub getFloatReturnValueRegister:
7316        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> u32>,
7317    pub getGlobalPointerRegisters: ::std::option::Option<
7318        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
7319    >,
7320    pub getImplicitlyDefinedRegisters: ::std::option::Option<
7321        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
7322    >,
7323    pub getIncomingRegisterValue: ::std::option::Option<
7324        unsafe extern "C" fn(
7325            ctxt: *mut ::std::os::raw::c_void,
7326            reg: u32,
7327            func: *mut BNFunction,
7328            result: *mut BNRegisterValue,
7329        ),
7330    >,
7331    pub getIncomingFlagValue: ::std::option::Option<
7332        unsafe extern "C" fn(
7333            ctxt: *mut ::std::os::raw::c_void,
7334            flag: u32,
7335            func: *mut BNFunction,
7336            result: *mut BNRegisterValue,
7337        ),
7338    >,
7339    pub isReturnTypeRegisterCompatible: ::std::option::Option<
7340        unsafe extern "C" fn(
7341            ctxt: *mut ::std::os::raw::c_void,
7342            view: *mut BNBinaryView,
7343            type_: *mut BNType,
7344        ) -> bool,
7345    >,
7346    pub getIndirectReturnValueLocation: ::std::option::Option<
7347        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, outVar: *mut BNVariable),
7348    >,
7349    pub getReturnedIndirectReturnValuePointer: ::std::option::Option<
7350        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, outVar: *mut BNVariable) -> bool,
7351    >,
7352    pub isArgumentTypeRegisterCompatible: ::std::option::Option<
7353        unsafe extern "C" fn(
7354            ctxt: *mut ::std::os::raw::c_void,
7355            view: *mut BNBinaryView,
7356            type_: *mut BNType,
7357        ) -> bool,
7358    >,
7359    pub isNonRegisterArgumentIndirect: ::std::option::Option<
7360        unsafe extern "C" fn(
7361            ctxt: *mut ::std::os::raw::c_void,
7362            view: *mut BNBinaryView,
7363            type_: *mut BNType,
7364        ) -> bool,
7365    >,
7366    pub areStackArgumentsNaturallyAligned:
7367        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
7368    pub areStackArgumentsPushedLeftToRight:
7369        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
7370    pub getIncomingVariableForParameterVariable: ::std::option::Option<
7371        unsafe extern "C" fn(
7372            ctxt: *mut ::std::os::raw::c_void,
7373            var: *const BNVariable,
7374            func: *mut BNFunction,
7375            result: *mut BNVariable,
7376        ),
7377    >,
7378    pub getParameterVariableForIncomingVariable: ::std::option::Option<
7379        unsafe extern "C" fn(
7380            ctxt: *mut ::std::os::raw::c_void,
7381            var: *const BNVariable,
7382            func: *mut BNFunction,
7383            result: *mut BNVariable,
7384        ),
7385    >,
7386    pub areArgumentRegistersUsedForVarArgs:
7387        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
7388    pub getCallLayout: ::std::option::Option<
7389        unsafe extern "C" fn(
7390            ctxt: *mut ::std::os::raw::c_void,
7391            view: *mut BNBinaryView,
7392            returnValue: *mut BNReturnValue,
7393            params: *mut BNFunctionParameter,
7394            paramCount: usize,
7395            hasPermittedRegs: bool,
7396            permittedRegs: *mut u32,
7397            permittedRegCount: usize,
7398            result: *mut BNCallLayout,
7399        ),
7400    >,
7401    pub freeCallLayout: ::std::option::Option<
7402        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, layout: *mut BNCallLayout),
7403    >,
7404    pub getReturnValueLocation: ::std::option::Option<
7405        unsafe extern "C" fn(
7406            ctxt: *mut ::std::os::raw::c_void,
7407            view: *mut BNBinaryView,
7408            returnValue: *mut BNReturnValue,
7409            outLocation: *mut BNValueLocation,
7410        ),
7411    >,
7412    pub freeValueLocation: ::std::option::Option<
7413        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, location: *mut BNValueLocation),
7414    >,
7415    pub getParameterLocations: ::std::option::Option<
7416        unsafe extern "C" fn(
7417            ctxt: *mut ::std::os::raw::c_void,
7418            view: *mut BNBinaryView,
7419            returnValue: *mut BNValueLocation,
7420            params: *mut BNFunctionParameter,
7421            paramCount: usize,
7422            hasPermittedRegs: bool,
7423            permittedRegs: *mut u32,
7424            permittedRegCount: usize,
7425            outLocationCount: *mut usize,
7426        ) -> *mut BNValueLocation,
7427    >,
7428    pub freeParameterLocations: ::std::option::Option<
7429        unsafe extern "C" fn(
7430            ctxt: *mut ::std::os::raw::c_void,
7431            locations: *mut BNValueLocation,
7432            count: usize,
7433        ),
7434    >,
7435    pub getParameterOrderingForVariables: ::std::option::Option<
7436        unsafe extern "C" fn(
7437            ctxt: *mut ::std::os::raw::c_void,
7438            view: *mut BNBinaryView,
7439            vars: *mut BNVariable,
7440            types: *mut *mut BNType,
7441            paramCount: usize,
7442            outCount: *mut usize,
7443        ) -> *mut BNVariable,
7444    >,
7445    pub freeVariableList: ::std::option::Option<
7446        unsafe extern "C" fn(
7447            ctxt: *mut ::std::os::raw::c_void,
7448            vars: *mut BNVariable,
7449            count: usize,
7450        ),
7451    >,
7452    pub getStackAdjustmentForLocations: ::std::option::Option<
7453        unsafe extern "C" fn(
7454            ctxt: *mut ::std::os::raw::c_void,
7455            view: *mut BNBinaryView,
7456            returnValue: *mut BNValueLocation,
7457            locations: *mut BNValueLocation,
7458            types: *mut *mut BNType,
7459            paramCount: usize,
7460        ) -> i64,
7461    >,
7462    pub getRegisterStackAdjustments: ::std::option::Option<
7463        unsafe extern "C" fn(
7464            ctxt: *mut ::std::os::raw::c_void,
7465            view: *mut BNBinaryView,
7466            returnValue: *mut BNValueLocation,
7467            params: *mut BNValueLocation,
7468            paramCount: usize,
7469            outRegs: *mut *mut u32,
7470            outAdjust: *mut *mut i32,
7471        ) -> usize,
7472    >,
7473    pub freeRegisterStackAdjustments: ::std::option::Option<
7474        unsafe extern "C" fn(
7475            ctxt: *mut ::std::os::raw::c_void,
7476            regs: *mut u32,
7477            adjust: *mut i32,
7478            count: usize,
7479        ),
7480    >,
7481}
7482#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7483const _: () = {
7484    ["Size of BNCustomCallingConvention"]
7485        [::std::mem::size_of::<BNCustomCallingConvention>() - 328usize];
7486    ["Alignment of BNCustomCallingConvention"]
7487        [::std::mem::align_of::<BNCustomCallingConvention>() - 8usize];
7488    ["Offset of field: BNCustomCallingConvention::context"]
7489        [::std::mem::offset_of!(BNCustomCallingConvention, context) - 0usize];
7490    ["Offset of field: BNCustomCallingConvention::freeObject"]
7491        [::std::mem::offset_of!(BNCustomCallingConvention, freeObject) - 8usize];
7492    ["Offset of field: BNCustomCallingConvention::getCallerSavedRegisters"]
7493        [::std::mem::offset_of!(BNCustomCallingConvention, getCallerSavedRegisters) - 16usize];
7494    ["Offset of field: BNCustomCallingConvention::getCalleeSavedRegisters"]
7495        [::std::mem::offset_of!(BNCustomCallingConvention, getCalleeSavedRegisters) - 24usize];
7496    ["Offset of field: BNCustomCallingConvention::getIntegerArgumentRegisters"]
7497        [::std::mem::offset_of!(BNCustomCallingConvention, getIntegerArgumentRegisters) - 32usize];
7498    ["Offset of field: BNCustomCallingConvention::getFloatArgumentRegisters"]
7499        [::std::mem::offset_of!(BNCustomCallingConvention, getFloatArgumentRegisters) - 40usize];
7500    ["Offset of field: BNCustomCallingConvention::getRequiredArgumentRegisters"]
7501        [::std::mem::offset_of!(BNCustomCallingConvention, getRequiredArgumentRegisters) - 48usize];
7502    ["Offset of field: BNCustomCallingConvention::getRequiredClobberedRegisters"][::std::mem::offset_of!(
7503        BNCustomCallingConvention,
7504        getRequiredClobberedRegisters
7505    ) - 56usize];
7506    ["Offset of field: BNCustomCallingConvention::freeRegisterList"]
7507        [::std::mem::offset_of!(BNCustomCallingConvention, freeRegisterList) - 64usize];
7508    ["Offset of field: BNCustomCallingConvention::areArgumentRegistersSharedIndex"][::std::mem::offset_of!(
7509        BNCustomCallingConvention,
7510        areArgumentRegistersSharedIndex
7511    ) - 72usize];
7512    ["Offset of field: BNCustomCallingConvention::isStackReservedForArgumentRegisters"][::std::mem::offset_of!(
7513        BNCustomCallingConvention,
7514        isStackReservedForArgumentRegisters
7515    )
7516        - 80usize];
7517    ["Offset of field: BNCustomCallingConvention::isStackAdjustedOnReturn"]
7518        [::std::mem::offset_of!(BNCustomCallingConvention, isStackAdjustedOnReturn) - 88usize];
7519    ["Offset of field: BNCustomCallingConvention::isEligibleForHeuristics"]
7520        [::std::mem::offset_of!(BNCustomCallingConvention, isEligibleForHeuristics) - 96usize];
7521    ["Offset of field: BNCustomCallingConvention::getIntegerReturnValueRegister"][::std::mem::offset_of!(
7522        BNCustomCallingConvention,
7523        getIntegerReturnValueRegister
7524    ) - 104usize];
7525    ["Offset of field: BNCustomCallingConvention::getHighIntegerReturnValueRegister"][::std::mem::offset_of!(
7526        BNCustomCallingConvention,
7527        getHighIntegerReturnValueRegister
7528    ) - 112usize];
7529    ["Offset of field: BNCustomCallingConvention::getFloatReturnValueRegister"]
7530        [::std::mem::offset_of!(BNCustomCallingConvention, getFloatReturnValueRegister) - 120usize];
7531    ["Offset of field: BNCustomCallingConvention::getGlobalPointerRegisters"]
7532        [::std::mem::offset_of!(BNCustomCallingConvention, getGlobalPointerRegisters) - 128usize];
7533    ["Offset of field: BNCustomCallingConvention::getImplicitlyDefinedRegisters"][::std::mem::offset_of!(
7534        BNCustomCallingConvention,
7535        getImplicitlyDefinedRegisters
7536    ) - 136usize];
7537    ["Offset of field: BNCustomCallingConvention::getIncomingRegisterValue"]
7538        [::std::mem::offset_of!(BNCustomCallingConvention, getIncomingRegisterValue) - 144usize];
7539    ["Offset of field: BNCustomCallingConvention::getIncomingFlagValue"]
7540        [::std::mem::offset_of!(BNCustomCallingConvention, getIncomingFlagValue) - 152usize];
7541    ["Offset of field: BNCustomCallingConvention::isReturnTypeRegisterCompatible"][::std::mem::offset_of!(
7542        BNCustomCallingConvention,
7543        isReturnTypeRegisterCompatible
7544    ) - 160usize];
7545    ["Offset of field: BNCustomCallingConvention::getIndirectReturnValueLocation"][::std::mem::offset_of!(
7546        BNCustomCallingConvention,
7547        getIndirectReturnValueLocation
7548    ) - 168usize];
7549    ["Offset of field: BNCustomCallingConvention::getReturnedIndirectReturnValuePointer"][::std::mem::offset_of!(
7550        BNCustomCallingConvention,
7551        getReturnedIndirectReturnValuePointer
7552    )
7553        - 176usize];
7554    ["Offset of field: BNCustomCallingConvention::isArgumentTypeRegisterCompatible"][::std::mem::offset_of!(
7555        BNCustomCallingConvention,
7556        isArgumentTypeRegisterCompatible
7557    ) - 184usize];
7558    ["Offset of field: BNCustomCallingConvention::isNonRegisterArgumentIndirect"][::std::mem::offset_of!(
7559        BNCustomCallingConvention,
7560        isNonRegisterArgumentIndirect
7561    ) - 192usize];
7562    ["Offset of field: BNCustomCallingConvention::areStackArgumentsNaturallyAligned"][::std::mem::offset_of!(
7563        BNCustomCallingConvention,
7564        areStackArgumentsNaturallyAligned
7565    ) - 200usize];
7566    ["Offset of field: BNCustomCallingConvention::areStackArgumentsPushedLeftToRight"][::std::mem::offset_of!(
7567        BNCustomCallingConvention,
7568        areStackArgumentsPushedLeftToRight
7569    )
7570        - 208usize];
7571    ["Offset of field: BNCustomCallingConvention::getIncomingVariableForParameterVariable"][::std::mem::offset_of!(
7572        BNCustomCallingConvention,
7573        getIncomingVariableForParameterVariable
7574    )
7575        - 216usize];
7576    ["Offset of field: BNCustomCallingConvention::getParameterVariableForIncomingVariable"][::std::mem::offset_of!(
7577        BNCustomCallingConvention,
7578        getParameterVariableForIncomingVariable
7579    )
7580        - 224usize];
7581    ["Offset of field: BNCustomCallingConvention::areArgumentRegistersUsedForVarArgs"][::std::mem::offset_of!(
7582        BNCustomCallingConvention,
7583        areArgumentRegistersUsedForVarArgs
7584    )
7585        - 232usize];
7586    ["Offset of field: BNCustomCallingConvention::getCallLayout"]
7587        [::std::mem::offset_of!(BNCustomCallingConvention, getCallLayout) - 240usize];
7588    ["Offset of field: BNCustomCallingConvention::freeCallLayout"]
7589        [::std::mem::offset_of!(BNCustomCallingConvention, freeCallLayout) - 248usize];
7590    ["Offset of field: BNCustomCallingConvention::getReturnValueLocation"]
7591        [::std::mem::offset_of!(BNCustomCallingConvention, getReturnValueLocation) - 256usize];
7592    ["Offset of field: BNCustomCallingConvention::freeValueLocation"]
7593        [::std::mem::offset_of!(BNCustomCallingConvention, freeValueLocation) - 264usize];
7594    ["Offset of field: BNCustomCallingConvention::getParameterLocations"]
7595        [::std::mem::offset_of!(BNCustomCallingConvention, getParameterLocations) - 272usize];
7596    ["Offset of field: BNCustomCallingConvention::freeParameterLocations"]
7597        [::std::mem::offset_of!(BNCustomCallingConvention, freeParameterLocations) - 280usize];
7598    ["Offset of field: BNCustomCallingConvention::getParameterOrderingForVariables"][::std::mem::offset_of!(
7599        BNCustomCallingConvention,
7600        getParameterOrderingForVariables
7601    ) - 288usize];
7602    ["Offset of field: BNCustomCallingConvention::freeVariableList"]
7603        [::std::mem::offset_of!(BNCustomCallingConvention, freeVariableList) - 296usize];
7604    ["Offset of field: BNCustomCallingConvention::getStackAdjustmentForLocations"][::std::mem::offset_of!(
7605        BNCustomCallingConvention,
7606        getStackAdjustmentForLocations
7607    ) - 304usize];
7608    ["Offset of field: BNCustomCallingConvention::getRegisterStackAdjustments"]
7609        [::std::mem::offset_of!(BNCustomCallingConvention, getRegisterStackAdjustments) - 312usize];
7610    ["Offset of field: BNCustomCallingConvention::freeRegisterStackAdjustments"][::std::mem::offset_of!(
7611        BNCustomCallingConvention,
7612        freeRegisterStackAdjustments
7613    ) - 320usize];
7614};
7615impl Default for BNCustomCallingConvention {
7616    fn default() -> Self {
7617        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7618        unsafe {
7619            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7620            s.assume_init()
7621        }
7622    }
7623}
7624#[repr(C)]
7625#[derive(Debug, Copy, Clone)]
7626pub struct BNVariableNameAndType {
7627    pub var: BNVariable,
7628    pub type_: *mut BNType,
7629    pub name: *mut ::std::os::raw::c_char,
7630    pub autoDefined: bool,
7631    pub typeConfidence: u8,
7632}
7633#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7634const _: () = {
7635    ["Size of BNVariableNameAndType"][::std::mem::size_of::<BNVariableNameAndType>() - 40usize];
7636    ["Alignment of BNVariableNameAndType"]
7637        [::std::mem::align_of::<BNVariableNameAndType>() - 8usize];
7638    ["Offset of field: BNVariableNameAndType::var"]
7639        [::std::mem::offset_of!(BNVariableNameAndType, var) - 0usize];
7640    ["Offset of field: BNVariableNameAndType::type_"]
7641        [::std::mem::offset_of!(BNVariableNameAndType, type_) - 16usize];
7642    ["Offset of field: BNVariableNameAndType::name"]
7643        [::std::mem::offset_of!(BNVariableNameAndType, name) - 24usize];
7644    ["Offset of field: BNVariableNameAndType::autoDefined"]
7645        [::std::mem::offset_of!(BNVariableNameAndType, autoDefined) - 32usize];
7646    ["Offset of field: BNVariableNameAndType::typeConfidence"]
7647        [::std::mem::offset_of!(BNVariableNameAndType, typeConfidence) - 33usize];
7648};
7649impl Default for BNVariableNameAndType {
7650    fn default() -> Self {
7651        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7652        unsafe {
7653            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7654            s.assume_init()
7655        }
7656    }
7657}
7658#[repr(C)]
7659#[derive(Debug, Copy, Clone)]
7660pub struct BNStackVariableReference {
7661    pub sourceOperand: u32,
7662    pub typeConfidence: u8,
7663    pub type_: *mut BNType,
7664    pub name: *mut ::std::os::raw::c_char,
7665    pub varIdentifier: u64,
7666    pub referencedOffset: i64,
7667    pub size: usize,
7668}
7669#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7670const _: () = {
7671    ["Size of BNStackVariableReference"]
7672        [::std::mem::size_of::<BNStackVariableReference>() - 48usize];
7673    ["Alignment of BNStackVariableReference"]
7674        [::std::mem::align_of::<BNStackVariableReference>() - 8usize];
7675    ["Offset of field: BNStackVariableReference::sourceOperand"]
7676        [::std::mem::offset_of!(BNStackVariableReference, sourceOperand) - 0usize];
7677    ["Offset of field: BNStackVariableReference::typeConfidence"]
7678        [::std::mem::offset_of!(BNStackVariableReference, typeConfidence) - 4usize];
7679    ["Offset of field: BNStackVariableReference::type_"]
7680        [::std::mem::offset_of!(BNStackVariableReference, type_) - 8usize];
7681    ["Offset of field: BNStackVariableReference::name"]
7682        [::std::mem::offset_of!(BNStackVariableReference, name) - 16usize];
7683    ["Offset of field: BNStackVariableReference::varIdentifier"]
7684        [::std::mem::offset_of!(BNStackVariableReference, varIdentifier) - 24usize];
7685    ["Offset of field: BNStackVariableReference::referencedOffset"]
7686        [::std::mem::offset_of!(BNStackVariableReference, referencedOffset) - 32usize];
7687    ["Offset of field: BNStackVariableReference::size"]
7688        [::std::mem::offset_of!(BNStackVariableReference, size) - 40usize];
7689};
7690impl Default for BNStackVariableReference {
7691    fn default() -> Self {
7692        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7693        unsafe {
7694            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7695            s.assume_init()
7696        }
7697    }
7698}
7699#[repr(C)]
7700#[derive(Debug, Copy, Clone)]
7701pub struct BNIndirectBranchInfo {
7702    pub sourceArch: *mut BNArchitecture,
7703    pub sourceAddr: u64,
7704    pub destArch: *mut BNArchitecture,
7705    pub destAddr: u64,
7706    pub autoDefined: bool,
7707}
7708#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7709const _: () = {
7710    ["Size of BNIndirectBranchInfo"][::std::mem::size_of::<BNIndirectBranchInfo>() - 40usize];
7711    ["Alignment of BNIndirectBranchInfo"][::std::mem::align_of::<BNIndirectBranchInfo>() - 8usize];
7712    ["Offset of field: BNIndirectBranchInfo::sourceArch"]
7713        [::std::mem::offset_of!(BNIndirectBranchInfo, sourceArch) - 0usize];
7714    ["Offset of field: BNIndirectBranchInfo::sourceAddr"]
7715        [::std::mem::offset_of!(BNIndirectBranchInfo, sourceAddr) - 8usize];
7716    ["Offset of field: BNIndirectBranchInfo::destArch"]
7717        [::std::mem::offset_of!(BNIndirectBranchInfo, destArch) - 16usize];
7718    ["Offset of field: BNIndirectBranchInfo::destAddr"]
7719        [::std::mem::offset_of!(BNIndirectBranchInfo, destAddr) - 24usize];
7720    ["Offset of field: BNIndirectBranchInfo::autoDefined"]
7721        [::std::mem::offset_of!(BNIndirectBranchInfo, autoDefined) - 32usize];
7722};
7723impl Default for BNIndirectBranchInfo {
7724    fn default() -> Self {
7725        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7726        unsafe {
7727            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7728            s.assume_init()
7729        }
7730    }
7731}
7732#[repr(C)]
7733#[derive(Debug, Copy, Clone)]
7734pub struct BNArchitectureAndAddress {
7735    pub arch: *mut BNArchitecture,
7736    pub address: u64,
7737}
7738#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7739const _: () = {
7740    ["Size of BNArchitectureAndAddress"]
7741        [::std::mem::size_of::<BNArchitectureAndAddress>() - 16usize];
7742    ["Alignment of BNArchitectureAndAddress"]
7743        [::std::mem::align_of::<BNArchitectureAndAddress>() - 8usize];
7744    ["Offset of field: BNArchitectureAndAddress::arch"]
7745        [::std::mem::offset_of!(BNArchitectureAndAddress, arch) - 0usize];
7746    ["Offset of field: BNArchitectureAndAddress::address"]
7747        [::std::mem::offset_of!(BNArchitectureAndAddress, address) - 8usize];
7748};
7749impl Default for BNArchitectureAndAddress {
7750    fn default() -> Self {
7751        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7752        unsafe {
7753            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7754            s.assume_init()
7755        }
7756    }
7757}
7758#[repr(C)]
7759#[derive(Debug, Copy, Clone)]
7760pub struct BNUserVariableValue {
7761    pub var: BNVariable,
7762    pub defSite: BNArchitectureAndAddress,
7763    pub after: bool,
7764    pub value: BNPossibleValueSet,
7765}
7766#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7767const _: () = {
7768    ["Size of BNUserVariableValue"][::std::mem::size_of::<BNUserVariableValue>() - 104usize];
7769    ["Alignment of BNUserVariableValue"][::std::mem::align_of::<BNUserVariableValue>() - 8usize];
7770    ["Offset of field: BNUserVariableValue::var"]
7771        [::std::mem::offset_of!(BNUserVariableValue, var) - 0usize];
7772    ["Offset of field: BNUserVariableValue::defSite"]
7773        [::std::mem::offset_of!(BNUserVariableValue, defSite) - 16usize];
7774    ["Offset of field: BNUserVariableValue::after"]
7775        [::std::mem::offset_of!(BNUserVariableValue, after) - 32usize];
7776    ["Offset of field: BNUserVariableValue::value"]
7777        [::std::mem::offset_of!(BNUserVariableValue, value) - 40usize];
7778};
7779impl Default for BNUserVariableValue {
7780    fn default() -> Self {
7781        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7782        unsafe {
7783            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7784            s.assume_init()
7785        }
7786    }
7787}
7788#[repr(C)]
7789#[derive(Debug, Copy, Clone)]
7790pub struct BNVariableFieldResolutionInfo {
7791    pub location: BNArchitectureAndAddress,
7792    pub var: BNVariable,
7793    pub info: *mut BNFieldResolutionInfo,
7794}
7795#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7796const _: () = {
7797    ["Size of BNVariableFieldResolutionInfo"]
7798        [::std::mem::size_of::<BNVariableFieldResolutionInfo>() - 40usize];
7799    ["Alignment of BNVariableFieldResolutionInfo"]
7800        [::std::mem::align_of::<BNVariableFieldResolutionInfo>() - 8usize];
7801    ["Offset of field: BNVariableFieldResolutionInfo::location"]
7802        [::std::mem::offset_of!(BNVariableFieldResolutionInfo, location) - 0usize];
7803    ["Offset of field: BNVariableFieldResolutionInfo::var"]
7804        [::std::mem::offset_of!(BNVariableFieldResolutionInfo, var) - 16usize];
7805    ["Offset of field: BNVariableFieldResolutionInfo::info"]
7806        [::std::mem::offset_of!(BNVariableFieldResolutionInfo, info) - 32usize];
7807};
7808impl Default for BNVariableFieldResolutionInfo {
7809    fn default() -> Self {
7810        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7811        unsafe {
7812            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7813            s.assume_init()
7814        }
7815    }
7816}
7817#[repr(u8)]
7818#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
7819pub enum BNFunctionUpdateType {
7820    UserFunctionUpdate = 0,
7821    FullAutoFunctionUpdate = 1,
7822    IncrementalAutoFunctionUpdate = 2,
7823}
7824#[repr(u8)]
7825#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
7826pub enum BNAnalysisState {
7827    #[doc = " Entry point before any analysis begins"]
7828    InitialState = 0,
7829    #[doc = " Module-level analysis is deferred; On-demand function analysis is permitted"]
7830    HoldState = 1,
7831    #[doc = " No active analysis; system is idle and ready"]
7832    IdleState = 2,
7833    #[doc = " Context gathering and auxiliary data preparation"]
7834    DiscoveryState = 3,
7835    #[doc = " Instruction decoding and control flow discovery"]
7836    DisassembleState = 4,
7837    #[doc = " Core semantic and structural analysis"]
7838    AnalyzeState = 5,
7839    #[doc = " Supplemental analysis: sweeping, type resolution, and pattern matching"]
7840    ExtendedAnalyzeState = 6,
7841}
7842#[repr(C)]
7843#[derive(Debug, Copy, Clone)]
7844pub struct BNActiveAnalysisInfo {
7845    pub func: *mut BNFunction,
7846    pub analysisTime: u64,
7847    pub updateCount: usize,
7848    pub submitCount: usize,
7849}
7850#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7851const _: () = {
7852    ["Size of BNActiveAnalysisInfo"][::std::mem::size_of::<BNActiveAnalysisInfo>() - 32usize];
7853    ["Alignment of BNActiveAnalysisInfo"][::std::mem::align_of::<BNActiveAnalysisInfo>() - 8usize];
7854    ["Offset of field: BNActiveAnalysisInfo::func"]
7855        [::std::mem::offset_of!(BNActiveAnalysisInfo, func) - 0usize];
7856    ["Offset of field: BNActiveAnalysisInfo::analysisTime"]
7857        [::std::mem::offset_of!(BNActiveAnalysisInfo, analysisTime) - 8usize];
7858    ["Offset of field: BNActiveAnalysisInfo::updateCount"]
7859        [::std::mem::offset_of!(BNActiveAnalysisInfo, updateCount) - 16usize];
7860    ["Offset of field: BNActiveAnalysisInfo::submitCount"]
7861        [::std::mem::offset_of!(BNActiveAnalysisInfo, submitCount) - 24usize];
7862};
7863impl Default for BNActiveAnalysisInfo {
7864    fn default() -> Self {
7865        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7866        unsafe {
7867            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7868            s.assume_init()
7869        }
7870    }
7871}
7872#[repr(C)]
7873#[derive(Debug, Copy, Clone)]
7874pub struct BNAnalysisInfo {
7875    pub state: BNAnalysisState,
7876    pub analysisTime: u64,
7877    pub activeInfo: *mut BNActiveAnalysisInfo,
7878    pub count: usize,
7879}
7880#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7881const _: () = {
7882    ["Size of BNAnalysisInfo"][::std::mem::size_of::<BNAnalysisInfo>() - 32usize];
7883    ["Alignment of BNAnalysisInfo"][::std::mem::align_of::<BNAnalysisInfo>() - 8usize];
7884    ["Offset of field: BNAnalysisInfo::state"]
7885        [::std::mem::offset_of!(BNAnalysisInfo, state) - 0usize];
7886    ["Offset of field: BNAnalysisInfo::analysisTime"]
7887        [::std::mem::offset_of!(BNAnalysisInfo, analysisTime) - 8usize];
7888    ["Offset of field: BNAnalysisInfo::activeInfo"]
7889        [::std::mem::offset_of!(BNAnalysisInfo, activeInfo) - 16usize];
7890    ["Offset of field: BNAnalysisInfo::count"]
7891        [::std::mem::offset_of!(BNAnalysisInfo, count) - 24usize];
7892};
7893impl Default for BNAnalysisInfo {
7894    fn default() -> Self {
7895        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7896        unsafe {
7897            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7898            s.assume_init()
7899        }
7900    }
7901}
7902#[repr(C)]
7903#[derive(Debug, Copy, Clone)]
7904pub struct BNAnalysisProgress {
7905    pub state: BNAnalysisState,
7906    pub count: usize,
7907    pub total: usize,
7908}
7909#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7910const _: () = {
7911    ["Size of BNAnalysisProgress"][::std::mem::size_of::<BNAnalysisProgress>() - 24usize];
7912    ["Alignment of BNAnalysisProgress"][::std::mem::align_of::<BNAnalysisProgress>() - 8usize];
7913    ["Offset of field: BNAnalysisProgress::state"]
7914        [::std::mem::offset_of!(BNAnalysisProgress, state) - 0usize];
7915    ["Offset of field: BNAnalysisProgress::count"]
7916        [::std::mem::offset_of!(BNAnalysisProgress, count) - 8usize];
7917    ["Offset of field: BNAnalysisProgress::total"]
7918        [::std::mem::offset_of!(BNAnalysisProgress, total) - 16usize];
7919};
7920impl Default for BNAnalysisProgress {
7921    fn default() -> Self {
7922        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7923        unsafe {
7924            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7925            s.assume_init()
7926        }
7927    }
7928}
7929#[repr(u8)]
7930#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
7931pub enum BNAnalysisMode {
7932    FullAnalysisMode = 0,
7933    IntermediateAnalysisMode = 1,
7934    BasicAnalysisMode = 2,
7935    ControlFlowAnalysisMode = 3,
7936}
7937#[repr(C)]
7938#[derive(Debug, Copy, Clone)]
7939pub struct BNAnalysisParameters {
7940    pub maxAnalysisTime: u64,
7941    pub maxFunctionSize: u64,
7942    pub maxFunctionAnalysisTime: u64,
7943    pub maxFunctionUpdateCount: usize,
7944    pub maxFunctionSubmitCount: usize,
7945    pub suppressNewAutoFunctionAnalysis: bool,
7946    pub mode: BNAnalysisMode,
7947    pub alwaysAnalyzeIndirectBranches: bool,
7948    pub advancedAnalysisCacheSize: usize,
7949}
7950#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7951const _: () = {
7952    ["Size of BNAnalysisParameters"][::std::mem::size_of::<BNAnalysisParameters>() - 56usize];
7953    ["Alignment of BNAnalysisParameters"][::std::mem::align_of::<BNAnalysisParameters>() - 8usize];
7954    ["Offset of field: BNAnalysisParameters::maxAnalysisTime"]
7955        [::std::mem::offset_of!(BNAnalysisParameters, maxAnalysisTime) - 0usize];
7956    ["Offset of field: BNAnalysisParameters::maxFunctionSize"]
7957        [::std::mem::offset_of!(BNAnalysisParameters, maxFunctionSize) - 8usize];
7958    ["Offset of field: BNAnalysisParameters::maxFunctionAnalysisTime"]
7959        [::std::mem::offset_of!(BNAnalysisParameters, maxFunctionAnalysisTime) - 16usize];
7960    ["Offset of field: BNAnalysisParameters::maxFunctionUpdateCount"]
7961        [::std::mem::offset_of!(BNAnalysisParameters, maxFunctionUpdateCount) - 24usize];
7962    ["Offset of field: BNAnalysisParameters::maxFunctionSubmitCount"]
7963        [::std::mem::offset_of!(BNAnalysisParameters, maxFunctionSubmitCount) - 32usize];
7964    ["Offset of field: BNAnalysisParameters::suppressNewAutoFunctionAnalysis"]
7965        [::std::mem::offset_of!(BNAnalysisParameters, suppressNewAutoFunctionAnalysis) - 40usize];
7966    ["Offset of field: BNAnalysisParameters::mode"]
7967        [::std::mem::offset_of!(BNAnalysisParameters, mode) - 41usize];
7968    ["Offset of field: BNAnalysisParameters::alwaysAnalyzeIndirectBranches"]
7969        [::std::mem::offset_of!(BNAnalysisParameters, alwaysAnalyzeIndirectBranches) - 42usize];
7970    ["Offset of field: BNAnalysisParameters::advancedAnalysisCacheSize"]
7971        [::std::mem::offset_of!(BNAnalysisParameters, advancedAnalysisCacheSize) - 48usize];
7972};
7973impl Default for BNAnalysisParameters {
7974    fn default() -> Self {
7975        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7976        unsafe {
7977            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7978            s.assume_init()
7979        }
7980    }
7981}
7982#[repr(C)]
7983#[derive(Debug, Copy, Clone)]
7984pub struct BNDownloadInstanceResponse {
7985    pub statusCode: u16,
7986    pub headerCount: u64,
7987    pub headerKeys: *mut *mut ::std::os::raw::c_char,
7988    pub headerValues: *mut *mut ::std::os::raw::c_char,
7989}
7990#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7991const _: () = {
7992    ["Size of BNDownloadInstanceResponse"]
7993        [::std::mem::size_of::<BNDownloadInstanceResponse>() - 32usize];
7994    ["Alignment of BNDownloadInstanceResponse"]
7995        [::std::mem::align_of::<BNDownloadInstanceResponse>() - 8usize];
7996    ["Offset of field: BNDownloadInstanceResponse::statusCode"]
7997        [::std::mem::offset_of!(BNDownloadInstanceResponse, statusCode) - 0usize];
7998    ["Offset of field: BNDownloadInstanceResponse::headerCount"]
7999        [::std::mem::offset_of!(BNDownloadInstanceResponse, headerCount) - 8usize];
8000    ["Offset of field: BNDownloadInstanceResponse::headerKeys"]
8001        [::std::mem::offset_of!(BNDownloadInstanceResponse, headerKeys) - 16usize];
8002    ["Offset of field: BNDownloadInstanceResponse::headerValues"]
8003        [::std::mem::offset_of!(BNDownloadInstanceResponse, headerValues) - 24usize];
8004};
8005impl Default for BNDownloadInstanceResponse {
8006    fn default() -> Self {
8007        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8008        unsafe {
8009            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8010            s.assume_init()
8011        }
8012    }
8013}
8014#[repr(C)]
8015#[derive(Debug, Copy, Clone)]
8016pub struct BNDownloadInstanceInputOutputCallbacks {
8017    pub readCallback: ::std::option::Option<
8018        unsafe extern "C" fn(data: *mut u8, len: u64, ctxt: *mut ::std::os::raw::c_void) -> i64,
8019    >,
8020    pub readContext: *mut ::std::os::raw::c_void,
8021    pub writeCallback: ::std::option::Option<
8022        unsafe extern "C" fn(data: *mut u8, len: u64, ctxt: *mut ::std::os::raw::c_void) -> u64,
8023    >,
8024    pub writeContext: *mut ::std::os::raw::c_void,
8025    pub progressCallback: BNProgressFunction,
8026    pub progressContext: *mut ::std::os::raw::c_void,
8027}
8028#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8029const _: () = {
8030    ["Size of BNDownloadInstanceInputOutputCallbacks"]
8031        [::std::mem::size_of::<BNDownloadInstanceInputOutputCallbacks>() - 48usize];
8032    ["Alignment of BNDownloadInstanceInputOutputCallbacks"]
8033        [::std::mem::align_of::<BNDownloadInstanceInputOutputCallbacks>() - 8usize];
8034    ["Offset of field: BNDownloadInstanceInputOutputCallbacks::readCallback"]
8035        [::std::mem::offset_of!(BNDownloadInstanceInputOutputCallbacks, readCallback) - 0usize];
8036    ["Offset of field: BNDownloadInstanceInputOutputCallbacks::readContext"]
8037        [::std::mem::offset_of!(BNDownloadInstanceInputOutputCallbacks, readContext) - 8usize];
8038    ["Offset of field: BNDownloadInstanceInputOutputCallbacks::writeCallback"]
8039        [::std::mem::offset_of!(BNDownloadInstanceInputOutputCallbacks, writeCallback) - 16usize];
8040    ["Offset of field: BNDownloadInstanceInputOutputCallbacks::writeContext"]
8041        [::std::mem::offset_of!(BNDownloadInstanceInputOutputCallbacks, writeContext) - 24usize];
8042    ["Offset of field: BNDownloadInstanceInputOutputCallbacks::progressCallback"][::std::mem::offset_of!(
8043        BNDownloadInstanceInputOutputCallbacks,
8044        progressCallback
8045    ) - 32usize];
8046    ["Offset of field: BNDownloadInstanceInputOutputCallbacks::progressContext"]
8047        [::std::mem::offset_of!(BNDownloadInstanceInputOutputCallbacks, progressContext) - 40usize];
8048};
8049impl Default for BNDownloadInstanceInputOutputCallbacks {
8050    fn default() -> Self {
8051        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8052        unsafe {
8053            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8054            s.assume_init()
8055        }
8056    }
8057}
8058#[repr(C)]
8059#[derive(Debug, Copy, Clone)]
8060pub struct BNDownloadInstanceOutputCallbacks {
8061    pub writeCallback: ::std::option::Option<
8062        unsafe extern "C" fn(data: *mut u8, len: u64, ctxt: *mut ::std::os::raw::c_void) -> u64,
8063    >,
8064    pub writeContext: *mut ::std::os::raw::c_void,
8065    pub progressCallback: BNProgressFunction,
8066    pub progressContext: *mut ::std::os::raw::c_void,
8067}
8068#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8069const _: () = {
8070    ["Size of BNDownloadInstanceOutputCallbacks"]
8071        [::std::mem::size_of::<BNDownloadInstanceOutputCallbacks>() - 32usize];
8072    ["Alignment of BNDownloadInstanceOutputCallbacks"]
8073        [::std::mem::align_of::<BNDownloadInstanceOutputCallbacks>() - 8usize];
8074    ["Offset of field: BNDownloadInstanceOutputCallbacks::writeCallback"]
8075        [::std::mem::offset_of!(BNDownloadInstanceOutputCallbacks, writeCallback) - 0usize];
8076    ["Offset of field: BNDownloadInstanceOutputCallbacks::writeContext"]
8077        [::std::mem::offset_of!(BNDownloadInstanceOutputCallbacks, writeContext) - 8usize];
8078    ["Offset of field: BNDownloadInstanceOutputCallbacks::progressCallback"]
8079        [::std::mem::offset_of!(BNDownloadInstanceOutputCallbacks, progressCallback) - 16usize];
8080    ["Offset of field: BNDownloadInstanceOutputCallbacks::progressContext"]
8081        [::std::mem::offset_of!(BNDownloadInstanceOutputCallbacks, progressContext) - 24usize];
8082};
8083impl Default for BNDownloadInstanceOutputCallbacks {
8084    fn default() -> Self {
8085        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8086        unsafe {
8087            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8088            s.assume_init()
8089        }
8090    }
8091}
8092#[repr(C)]
8093#[derive(Debug, Copy, Clone)]
8094pub struct BNDownloadInstanceCallbacks {
8095    pub context: *mut ::std::os::raw::c_void,
8096    pub destroyInstance:
8097        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
8098    pub performRequest: ::std::option::Option<
8099        unsafe extern "C" fn(
8100            ctxt: *mut ::std::os::raw::c_void,
8101            url: *const ::std::os::raw::c_char,
8102        ) -> ::std::os::raw::c_int,
8103    >,
8104    pub performCustomRequest: ::std::option::Option<
8105        unsafe extern "C" fn(
8106            ctxt: *mut ::std::os::raw::c_void,
8107            method: *const ::std::os::raw::c_char,
8108            url: *const ::std::os::raw::c_char,
8109            headerCount: u64,
8110            headerKeys: *const *const ::std::os::raw::c_char,
8111            headerValues: *const *const ::std::os::raw::c_char,
8112            response: *mut *mut BNDownloadInstanceResponse,
8113        ) -> ::std::os::raw::c_int,
8114    >,
8115    pub freeResponse: ::std::option::Option<
8116        unsafe extern "C" fn(
8117            ctxt: *mut ::std::os::raw::c_void,
8118            response: *mut BNDownloadInstanceResponse,
8119        ),
8120    >,
8121}
8122#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8123const _: () = {
8124    ["Size of BNDownloadInstanceCallbacks"]
8125        [::std::mem::size_of::<BNDownloadInstanceCallbacks>() - 40usize];
8126    ["Alignment of BNDownloadInstanceCallbacks"]
8127        [::std::mem::align_of::<BNDownloadInstanceCallbacks>() - 8usize];
8128    ["Offset of field: BNDownloadInstanceCallbacks::context"]
8129        [::std::mem::offset_of!(BNDownloadInstanceCallbacks, context) - 0usize];
8130    ["Offset of field: BNDownloadInstanceCallbacks::destroyInstance"]
8131        [::std::mem::offset_of!(BNDownloadInstanceCallbacks, destroyInstance) - 8usize];
8132    ["Offset of field: BNDownloadInstanceCallbacks::performRequest"]
8133        [::std::mem::offset_of!(BNDownloadInstanceCallbacks, performRequest) - 16usize];
8134    ["Offset of field: BNDownloadInstanceCallbacks::performCustomRequest"]
8135        [::std::mem::offset_of!(BNDownloadInstanceCallbacks, performCustomRequest) - 24usize];
8136    ["Offset of field: BNDownloadInstanceCallbacks::freeResponse"]
8137        [::std::mem::offset_of!(BNDownloadInstanceCallbacks, freeResponse) - 32usize];
8138};
8139impl Default for BNDownloadInstanceCallbacks {
8140    fn default() -> Self {
8141        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8142        unsafe {
8143            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8144            s.assume_init()
8145        }
8146    }
8147}
8148#[repr(C)]
8149#[derive(Debug, Copy, Clone)]
8150pub struct BNDownloadProviderCallbacks {
8151    pub context: *mut ::std::os::raw::c_void,
8152    pub createInstance: ::std::option::Option<
8153        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> *mut BNDownloadInstance,
8154    >,
8155}
8156#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8157const _: () = {
8158    ["Size of BNDownloadProviderCallbacks"]
8159        [::std::mem::size_of::<BNDownloadProviderCallbacks>() - 16usize];
8160    ["Alignment of BNDownloadProviderCallbacks"]
8161        [::std::mem::align_of::<BNDownloadProviderCallbacks>() - 8usize];
8162    ["Offset of field: BNDownloadProviderCallbacks::context"]
8163        [::std::mem::offset_of!(BNDownloadProviderCallbacks, context) - 0usize];
8164    ["Offset of field: BNDownloadProviderCallbacks::createInstance"]
8165        [::std::mem::offset_of!(BNDownloadProviderCallbacks, createInstance) - 8usize];
8166};
8167impl Default for BNDownloadProviderCallbacks {
8168    fn default() -> Self {
8169        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8170        unsafe {
8171            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8172            s.assume_init()
8173        }
8174    }
8175}
8176#[repr(C)]
8177#[derive(Debug, Copy, Clone)]
8178pub struct BNWebsocketClientOutputCallbacks {
8179    pub context: *mut ::std::os::raw::c_void,
8180    pub connectedCallback:
8181        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
8182    pub disconnectedCallback:
8183        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
8184    pub errorCallback: ::std::option::Option<
8185        unsafe extern "C" fn(msg: *const ::std::os::raw::c_char, ctxt: *mut ::std::os::raw::c_void),
8186    >,
8187    pub readCallback: ::std::option::Option<
8188        unsafe extern "C" fn(data: *mut u8, len: u64, ctxt: *mut ::std::os::raw::c_void) -> bool,
8189    >,
8190}
8191#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8192const _: () = {
8193    ["Size of BNWebsocketClientOutputCallbacks"]
8194        [::std::mem::size_of::<BNWebsocketClientOutputCallbacks>() - 40usize];
8195    ["Alignment of BNWebsocketClientOutputCallbacks"]
8196        [::std::mem::align_of::<BNWebsocketClientOutputCallbacks>() - 8usize];
8197    ["Offset of field: BNWebsocketClientOutputCallbacks::context"]
8198        [::std::mem::offset_of!(BNWebsocketClientOutputCallbacks, context) - 0usize];
8199    ["Offset of field: BNWebsocketClientOutputCallbacks::connectedCallback"]
8200        [::std::mem::offset_of!(BNWebsocketClientOutputCallbacks, connectedCallback) - 8usize];
8201    ["Offset of field: BNWebsocketClientOutputCallbacks::disconnectedCallback"]
8202        [::std::mem::offset_of!(BNWebsocketClientOutputCallbacks, disconnectedCallback) - 16usize];
8203    ["Offset of field: BNWebsocketClientOutputCallbacks::errorCallback"]
8204        [::std::mem::offset_of!(BNWebsocketClientOutputCallbacks, errorCallback) - 24usize];
8205    ["Offset of field: BNWebsocketClientOutputCallbacks::readCallback"]
8206        [::std::mem::offset_of!(BNWebsocketClientOutputCallbacks, readCallback) - 32usize];
8207};
8208impl Default for BNWebsocketClientOutputCallbacks {
8209    fn default() -> Self {
8210        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8211        unsafe {
8212            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8213            s.assume_init()
8214        }
8215    }
8216}
8217#[repr(C)]
8218#[derive(Debug, Copy, Clone)]
8219pub struct BNWebsocketClientCallbacks {
8220    pub context: *mut ::std::os::raw::c_void,
8221    pub destroyClient:
8222        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
8223    pub connect: ::std::option::Option<
8224        unsafe extern "C" fn(
8225            ctxt: *mut ::std::os::raw::c_void,
8226            host: *const ::std::os::raw::c_char,
8227            headerCount: u64,
8228            headerKeys: *const *const ::std::os::raw::c_char,
8229            headerValues: *const *const ::std::os::raw::c_char,
8230        ) -> bool,
8231    >,
8232    pub write: ::std::option::Option<
8233        unsafe extern "C" fn(data: *const u8, len: u64, ctxt: *mut ::std::os::raw::c_void) -> bool,
8234    >,
8235    pub disconnect:
8236        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
8237}
8238#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8239const _: () = {
8240    ["Size of BNWebsocketClientCallbacks"]
8241        [::std::mem::size_of::<BNWebsocketClientCallbacks>() - 40usize];
8242    ["Alignment of BNWebsocketClientCallbacks"]
8243        [::std::mem::align_of::<BNWebsocketClientCallbacks>() - 8usize];
8244    ["Offset of field: BNWebsocketClientCallbacks::context"]
8245        [::std::mem::offset_of!(BNWebsocketClientCallbacks, context) - 0usize];
8246    ["Offset of field: BNWebsocketClientCallbacks::destroyClient"]
8247        [::std::mem::offset_of!(BNWebsocketClientCallbacks, destroyClient) - 8usize];
8248    ["Offset of field: BNWebsocketClientCallbacks::connect"]
8249        [::std::mem::offset_of!(BNWebsocketClientCallbacks, connect) - 16usize];
8250    ["Offset of field: BNWebsocketClientCallbacks::write"]
8251        [::std::mem::offset_of!(BNWebsocketClientCallbacks, write) - 24usize];
8252    ["Offset of field: BNWebsocketClientCallbacks::disconnect"]
8253        [::std::mem::offset_of!(BNWebsocketClientCallbacks, disconnect) - 32usize];
8254};
8255impl Default for BNWebsocketClientCallbacks {
8256    fn default() -> Self {
8257        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8258        unsafe {
8259            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8260            s.assume_init()
8261        }
8262    }
8263}
8264#[repr(C)]
8265#[derive(Debug, Copy, Clone)]
8266pub struct BNWebsocketProviderCallbacks {
8267    pub context: *mut ::std::os::raw::c_void,
8268    pub createClient: ::std::option::Option<
8269        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> *mut BNWebsocketClient,
8270    >,
8271}
8272#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8273const _: () = {
8274    ["Size of BNWebsocketProviderCallbacks"]
8275        [::std::mem::size_of::<BNWebsocketProviderCallbacks>() - 16usize];
8276    ["Alignment of BNWebsocketProviderCallbacks"]
8277        [::std::mem::align_of::<BNWebsocketProviderCallbacks>() - 8usize];
8278    ["Offset of field: BNWebsocketProviderCallbacks::context"]
8279        [::std::mem::offset_of!(BNWebsocketProviderCallbacks, context) - 0usize];
8280    ["Offset of field: BNWebsocketProviderCallbacks::createClient"]
8281        [::std::mem::offset_of!(BNWebsocketProviderCallbacks, createClient) - 8usize];
8282};
8283impl Default for BNWebsocketProviderCallbacks {
8284    fn default() -> Self {
8285        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8286        unsafe {
8287            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8288            s.assume_init()
8289        }
8290    }
8291}
8292#[repr(u8)]
8293#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
8294pub enum BNFindFlag {
8295    FindCaseSensitive = 0,
8296    FindCaseInsensitive = 1,
8297    FindIgnoreWhitespace = 2,
8298}
8299#[repr(u8)]
8300#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
8301pub enum BNScriptingProviderInputReadyState {
8302    NotReadyForInput = 0,
8303    ReadyForScriptExecution = 1,
8304    ReadyForScriptProgramInput = 2,
8305}
8306#[repr(u8)]
8307#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
8308pub enum BNScriptingProviderExecuteResult {
8309    InvalidScriptInput = 0,
8310    IncompleteScriptInput = 1,
8311    SuccessfulScriptExecution = 2,
8312    ScriptExecutionCancelled = 3,
8313}
8314#[repr(u8)]
8315#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
8316pub enum BNPluginDependencyDecision {
8317    PluginDependencyReinstall = 0,
8318    PluginDependencyDisable = 1,
8319    PluginDependencyLoadAnyway = 2,
8320}
8321#[repr(u8)]
8322#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
8323pub enum BNPluginDependencyConflictStatus {
8324    PluginDependencyProvenConflict = 0,
8325    PluginDependencyUnknownCompatibility = 1,
8326}
8327#[repr(C)]
8328#[derive(Debug, Copy, Clone)]
8329pub struct BNPluginDependencyInfo {
8330    pub name: *const ::std::os::raw::c_char,
8331    pub dependencies: *const ::std::os::raw::c_char,
8332}
8333#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8334const _: () = {
8335    ["Size of BNPluginDependencyInfo"][::std::mem::size_of::<BNPluginDependencyInfo>() - 16usize];
8336    ["Alignment of BNPluginDependencyInfo"]
8337        [::std::mem::align_of::<BNPluginDependencyInfo>() - 8usize];
8338    ["Offset of field: BNPluginDependencyInfo::name"]
8339        [::std::mem::offset_of!(BNPluginDependencyInfo, name) - 0usize];
8340    ["Offset of field: BNPluginDependencyInfo::dependencies"]
8341        [::std::mem::offset_of!(BNPluginDependencyInfo, dependencies) - 8usize];
8342};
8343impl Default for BNPluginDependencyInfo {
8344    fn default() -> Self {
8345        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8346        unsafe {
8347            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8348            s.assume_init()
8349        }
8350    }
8351}
8352#[repr(C)]
8353#[derive(Debug, Copy, Clone)]
8354pub struct BNPluginDependencyRequirement {
8355    pub pluginName: *mut ::std::os::raw::c_char,
8356    pub requirement: *mut ::std::os::raw::c_char,
8357}
8358#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8359const _: () = {
8360    ["Size of BNPluginDependencyRequirement"]
8361        [::std::mem::size_of::<BNPluginDependencyRequirement>() - 16usize];
8362    ["Alignment of BNPluginDependencyRequirement"]
8363        [::std::mem::align_of::<BNPluginDependencyRequirement>() - 8usize];
8364    ["Offset of field: BNPluginDependencyRequirement::pluginName"]
8365        [::std::mem::offset_of!(BNPluginDependencyRequirement, pluginName) - 0usize];
8366    ["Offset of field: BNPluginDependencyRequirement::requirement"]
8367        [::std::mem::offset_of!(BNPluginDependencyRequirement, requirement) - 8usize];
8368};
8369impl Default for BNPluginDependencyRequirement {
8370    fn default() -> Self {
8371        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8372        unsafe {
8373            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8374            s.assume_init()
8375        }
8376    }
8377}
8378#[repr(C)]
8379#[derive(Debug, Copy, Clone)]
8380pub struct BNPluginDependencyConflict {
8381    pub status: BNPluginDependencyConflictStatus,
8382    pub packageName: *mut ::std::os::raw::c_char,
8383    pub candidateRequirements: *mut BNPluginDependencyRequirement,
8384    pub candidateRequirementCount: usize,
8385    pub installedRequirements: *mut BNPluginDependencyRequirement,
8386    pub installedRequirementCount: usize,
8387}
8388#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8389const _: () = {
8390    ["Size of BNPluginDependencyConflict"]
8391        [::std::mem::size_of::<BNPluginDependencyConflict>() - 48usize];
8392    ["Alignment of BNPluginDependencyConflict"]
8393        [::std::mem::align_of::<BNPluginDependencyConflict>() - 8usize];
8394    ["Offset of field: BNPluginDependencyConflict::status"]
8395        [::std::mem::offset_of!(BNPluginDependencyConflict, status) - 0usize];
8396    ["Offset of field: BNPluginDependencyConflict::packageName"]
8397        [::std::mem::offset_of!(BNPluginDependencyConflict, packageName) - 8usize];
8398    ["Offset of field: BNPluginDependencyConflict::candidateRequirements"]
8399        [::std::mem::offset_of!(BNPluginDependencyConflict, candidateRequirements) - 16usize];
8400    ["Offset of field: BNPluginDependencyConflict::candidateRequirementCount"]
8401        [::std::mem::offset_of!(BNPluginDependencyConflict, candidateRequirementCount) - 24usize];
8402    ["Offset of field: BNPluginDependencyConflict::installedRequirements"]
8403        [::std::mem::offset_of!(BNPluginDependencyConflict, installedRequirements) - 32usize];
8404    ["Offset of field: BNPluginDependencyConflict::installedRequirementCount"]
8405        [::std::mem::offset_of!(BNPluginDependencyConflict, installedRequirementCount) - 40usize];
8406};
8407impl Default for BNPluginDependencyConflict {
8408    fn default() -> Self {
8409        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8410        unsafe {
8411            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8412            s.assume_init()
8413        }
8414    }
8415}
8416#[repr(C)]
8417#[derive(Debug, Copy, Clone)]
8418pub struct BNPluginDependencyIssue {
8419    pub repository: *const ::std::os::raw::c_char,
8420    pub name: *const ::std::os::raw::c_char,
8421    pub path: *const ::std::os::raw::c_char,
8422    pub dependencies: *const ::std::os::raw::c_char,
8423}
8424#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8425const _: () = {
8426    ["Size of BNPluginDependencyIssue"][::std::mem::size_of::<BNPluginDependencyIssue>() - 32usize];
8427    ["Alignment of BNPluginDependencyIssue"]
8428        [::std::mem::align_of::<BNPluginDependencyIssue>() - 8usize];
8429    ["Offset of field: BNPluginDependencyIssue::repository"]
8430        [::std::mem::offset_of!(BNPluginDependencyIssue, repository) - 0usize];
8431    ["Offset of field: BNPluginDependencyIssue::name"]
8432        [::std::mem::offset_of!(BNPluginDependencyIssue, name) - 8usize];
8433    ["Offset of field: BNPluginDependencyIssue::path"]
8434        [::std::mem::offset_of!(BNPluginDependencyIssue, path) - 16usize];
8435    ["Offset of field: BNPluginDependencyIssue::dependencies"]
8436        [::std::mem::offset_of!(BNPluginDependencyIssue, dependencies) - 24usize];
8437};
8438impl Default for BNPluginDependencyIssue {
8439    fn default() -> Self {
8440        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8441        unsafe {
8442            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8443            s.assume_init()
8444        }
8445    }
8446}
8447#[repr(C)]
8448#[derive(Debug, Copy, Clone)]
8449pub struct BNPluginDependencyStartupCallbacks {
8450    pub context: *mut ::std::os::raw::c_void,
8451    pub checkDependencies: ::std::option::Option<
8452        unsafe extern "C" fn(
8453            ctxt: *mut ::std::os::raw::c_void,
8454            issues: *const BNPluginDependencyIssue,
8455            count: usize,
8456            decisions: *mut BNPluginDependencyDecision,
8457        ) -> bool,
8458    >,
8459}
8460#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8461const _: () = {
8462    ["Size of BNPluginDependencyStartupCallbacks"]
8463        [::std::mem::size_of::<BNPluginDependencyStartupCallbacks>() - 16usize];
8464    ["Alignment of BNPluginDependencyStartupCallbacks"]
8465        [::std::mem::align_of::<BNPluginDependencyStartupCallbacks>() - 8usize];
8466    ["Offset of field: BNPluginDependencyStartupCallbacks::context"]
8467        [::std::mem::offset_of!(BNPluginDependencyStartupCallbacks, context) - 0usize];
8468    ["Offset of field: BNPluginDependencyStartupCallbacks::checkDependencies"]
8469        [::std::mem::offset_of!(BNPluginDependencyStartupCallbacks, checkDependencies) - 8usize];
8470};
8471impl Default for BNPluginDependencyStartupCallbacks {
8472    fn default() -> Self {
8473        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8474        unsafe {
8475            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8476            s.assume_init()
8477        }
8478    }
8479}
8480#[repr(C)]
8481#[derive(Debug, Copy, Clone)]
8482pub struct BNPluginDependencyResolutionCallbacks {
8483    pub context: *mut ::std::os::raw::c_void,
8484    pub dependencyResolved: ::std::option::Option<
8485        unsafe extern "C" fn(
8486            ctxt: *mut ::std::os::raw::c_void,
8487            repository: *const ::std::os::raw::c_char,
8488            path: *const ::std::os::raw::c_char,
8489        ),
8490    >,
8491}
8492#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8493const _: () = {
8494    ["Size of BNPluginDependencyResolutionCallbacks"]
8495        [::std::mem::size_of::<BNPluginDependencyResolutionCallbacks>() - 16usize];
8496    ["Alignment of BNPluginDependencyResolutionCallbacks"]
8497        [::std::mem::align_of::<BNPluginDependencyResolutionCallbacks>() - 8usize];
8498    ["Offset of field: BNPluginDependencyResolutionCallbacks::context"]
8499        [::std::mem::offset_of!(BNPluginDependencyResolutionCallbacks, context) - 0usize];
8500    ["Offset of field: BNPluginDependencyResolutionCallbacks::dependencyResolved"][::std::mem::offset_of!(
8501        BNPluginDependencyResolutionCallbacks,
8502        dependencyResolved
8503    ) - 8usize];
8504};
8505impl Default for BNPluginDependencyResolutionCallbacks {
8506    fn default() -> Self {
8507        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8508        unsafe {
8509            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8510            s.assume_init()
8511        }
8512    }
8513}
8514#[repr(C)]
8515#[derive(Debug, Copy, Clone)]
8516pub struct BNScriptingProviderModuleInstalledCallbacks {
8517    pub context: *mut ::std::os::raw::c_void,
8518    pub moduleInstalled: ::std::option::Option<
8519        unsafe extern "C" fn(
8520            ctxt: *mut ::std::os::raw::c_void,
8521            modules: *const ::std::os::raw::c_char,
8522        ) -> bool,
8523    >,
8524}
8525#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8526const _: () = {
8527    ["Size of BNScriptingProviderModuleInstalledCallbacks"]
8528        [::std::mem::size_of::<BNScriptingProviderModuleInstalledCallbacks>() - 16usize];
8529    ["Alignment of BNScriptingProviderModuleInstalledCallbacks"]
8530        [::std::mem::align_of::<BNScriptingProviderModuleInstalledCallbacks>() - 8usize];
8531    ["Offset of field: BNScriptingProviderModuleInstalledCallbacks::context"]
8532        [::std::mem::offset_of!(BNScriptingProviderModuleInstalledCallbacks, context) - 0usize];
8533    ["Offset of field: BNScriptingProviderModuleInstalledCallbacks::moduleInstalled"][::std::mem::offset_of!(
8534        BNScriptingProviderModuleInstalledCallbacks,
8535        moduleInstalled
8536    ) - 8usize];
8537};
8538impl Default for BNScriptingProviderModuleInstalledCallbacks {
8539    fn default() -> Self {
8540        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8541        unsafe {
8542            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8543            s.assume_init()
8544        }
8545    }
8546}
8547#[repr(C)]
8548#[derive(Debug, Copy, Clone)]
8549pub struct BNScriptingProviderInstallModulesWithExclusionsCallbacks {
8550    pub context: *mut ::std::os::raw::c_void,
8551    pub installModulesWithExclusions: ::std::option::Option<
8552        unsafe extern "C" fn(
8553            ctxt: *mut ::std::os::raw::c_void,
8554            modules: *const ::std::os::raw::c_char,
8555            excludedPackageNames: *const *const ::std::os::raw::c_char,
8556            excludedPackageNameCount: usize,
8557        ) -> bool,
8558    >,
8559}
8560#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8561const _: () = {
8562    ["Size of BNScriptingProviderInstallModulesWithExclusionsCallbacks"][::std::mem::size_of::<
8563        BNScriptingProviderInstallModulesWithExclusionsCallbacks,
8564    >() - 16usize];
8565    ["Alignment of BNScriptingProviderInstallModulesWithExclusionsCallbacks"][::std::mem::align_of::<
8566        BNScriptingProviderInstallModulesWithExclusionsCallbacks,
8567    >() - 8usize];
8568    ["Offset of field: BNScriptingProviderInstallModulesWithExclusionsCallbacks::context"][::std::mem::offset_of!(
8569        BNScriptingProviderInstallModulesWithExclusionsCallbacks,
8570        context
8571    )
8572        - 0usize];
8573    [
8574        "Offset of field: BNScriptingProviderInstallModulesWithExclusionsCallbacks::installModulesWithExclusions",
8575    ][::std::mem::offset_of!(
8576        BNScriptingProviderInstallModulesWithExclusionsCallbacks,
8577        installModulesWithExclusions
8578    ) - 8usize];
8579};
8580impl Default for BNScriptingProviderInstallModulesWithExclusionsCallbacks {
8581    fn default() -> Self {
8582        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8583        unsafe {
8584            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8585            s.assume_init()
8586        }
8587    }
8588}
8589#[repr(C)]
8590#[derive(Debug, Copy, Clone)]
8591pub struct BNScriptingProviderDependencyConflictCallbacks {
8592    pub context: *mut ::std::os::raw::c_void,
8593    pub getDependencyConflicts: ::std::option::Option<
8594        unsafe extern "C" fn(
8595            ctxt: *mut ::std::os::raw::c_void,
8596            candidate: *const BNPluginDependencyInfo,
8597            installedPlugins: *const BNPluginDependencyInfo,
8598            installedPluginCount: usize,
8599        ) -> *mut ::std::os::raw::c_char,
8600    >,
8601}
8602#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8603const _: () = {
8604    ["Size of BNScriptingProviderDependencyConflictCallbacks"]
8605        [::std::mem::size_of::<BNScriptingProviderDependencyConflictCallbacks>() - 16usize];
8606    ["Alignment of BNScriptingProviderDependencyConflictCallbacks"]
8607        [::std::mem::align_of::<BNScriptingProviderDependencyConflictCallbacks>() - 8usize];
8608    ["Offset of field: BNScriptingProviderDependencyConflictCallbacks::context"]
8609        [::std::mem::offset_of!(BNScriptingProviderDependencyConflictCallbacks, context) - 0usize];
8610    ["Offset of field: BNScriptingProviderDependencyConflictCallbacks::getDependencyConflicts"][::std::mem::offset_of!(
8611        BNScriptingProviderDependencyConflictCallbacks,
8612        getDependencyConflicts
8613    )
8614        - 8usize];
8615};
8616impl Default for BNScriptingProviderDependencyConflictCallbacks {
8617    fn default() -> Self {
8618        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8619        unsafe {
8620            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8621            s.assume_init()
8622        }
8623    }
8624}
8625#[repr(C)]
8626#[derive(Debug, Copy, Clone)]
8627pub struct BNScriptingInstanceCallbacks {
8628    pub context: *mut ::std::os::raw::c_void,
8629    pub destroyInstance:
8630        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
8631    pub externalRefTaken:
8632        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
8633    pub externalRefReleased:
8634        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
8635    pub executeScriptInput: ::std::option::Option<
8636        unsafe extern "C" fn(
8637            ctxt: *mut ::std::os::raw::c_void,
8638            input: *const ::std::os::raw::c_char,
8639        ) -> BNScriptingProviderExecuteResult,
8640    >,
8641    pub executeScriptInputFromFilename: ::std::option::Option<
8642        unsafe extern "C" fn(
8643            ctxt: *mut ::std::os::raw::c_void,
8644            input: *const ::std::os::raw::c_char,
8645        ) -> BNScriptingProviderExecuteResult,
8646    >,
8647    pub cancelScriptInput:
8648        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
8649    pub releaseBinaryView: ::std::option::Option<
8650        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, view: *mut BNBinaryView),
8651    >,
8652    pub setCurrentBinaryView: ::std::option::Option<
8653        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, view: *mut BNBinaryView),
8654    >,
8655    pub setCurrentFunction: ::std::option::Option<
8656        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, func: *mut BNFunction),
8657    >,
8658    pub setCurrentBasicBlock: ::std::option::Option<
8659        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, block: *mut BNBasicBlock),
8660    >,
8661    pub setCurrentAddress:
8662        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, addr: u64)>,
8663    pub setCurrentSelection: ::std::option::Option<
8664        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, begin: u64, end: u64),
8665    >,
8666    pub completeInput: ::std::option::Option<
8667        unsafe extern "C" fn(
8668            ctxt: *mut ::std::os::raw::c_void,
8669            text: *const ::std::os::raw::c_char,
8670            state: u64,
8671        ) -> *mut ::std::os::raw::c_char,
8672    >,
8673    pub stop: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
8674    pub canCompleteArguments: ::std::option::Option<
8675        unsafe extern "C" fn(
8676            ctx: *mut ::std::os::raw::c_void,
8677            text: *const ::std::os::raw::c_char,
8678        ) -> bool,
8679    >,
8680    pub completeArguments: ::std::option::Option<
8681        unsafe extern "C" fn(
8682            ctxt: *mut ::std::os::raw::c_void,
8683            text: *const ::std::os::raw::c_char,
8684            argumentStart: *mut u64,
8685        ) -> *mut ::std::os::raw::c_char,
8686    >,
8687}
8688#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8689const _: () = {
8690    ["Size of BNScriptingInstanceCallbacks"]
8691        [::std::mem::size_of::<BNScriptingInstanceCallbacks>() - 136usize];
8692    ["Alignment of BNScriptingInstanceCallbacks"]
8693        [::std::mem::align_of::<BNScriptingInstanceCallbacks>() - 8usize];
8694    ["Offset of field: BNScriptingInstanceCallbacks::context"]
8695        [::std::mem::offset_of!(BNScriptingInstanceCallbacks, context) - 0usize];
8696    ["Offset of field: BNScriptingInstanceCallbacks::destroyInstance"]
8697        [::std::mem::offset_of!(BNScriptingInstanceCallbacks, destroyInstance) - 8usize];
8698    ["Offset of field: BNScriptingInstanceCallbacks::externalRefTaken"]
8699        [::std::mem::offset_of!(BNScriptingInstanceCallbacks, externalRefTaken) - 16usize];
8700    ["Offset of field: BNScriptingInstanceCallbacks::externalRefReleased"]
8701        [::std::mem::offset_of!(BNScriptingInstanceCallbacks, externalRefReleased) - 24usize];
8702    ["Offset of field: BNScriptingInstanceCallbacks::executeScriptInput"]
8703        [::std::mem::offset_of!(BNScriptingInstanceCallbacks, executeScriptInput) - 32usize];
8704    ["Offset of field: BNScriptingInstanceCallbacks::executeScriptInputFromFilename"][::std::mem::offset_of!(
8705        BNScriptingInstanceCallbacks,
8706        executeScriptInputFromFilename
8707    ) - 40usize];
8708    ["Offset of field: BNScriptingInstanceCallbacks::cancelScriptInput"]
8709        [::std::mem::offset_of!(BNScriptingInstanceCallbacks, cancelScriptInput) - 48usize];
8710    ["Offset of field: BNScriptingInstanceCallbacks::releaseBinaryView"]
8711        [::std::mem::offset_of!(BNScriptingInstanceCallbacks, releaseBinaryView) - 56usize];
8712    ["Offset of field: BNScriptingInstanceCallbacks::setCurrentBinaryView"]
8713        [::std::mem::offset_of!(BNScriptingInstanceCallbacks, setCurrentBinaryView) - 64usize];
8714    ["Offset of field: BNScriptingInstanceCallbacks::setCurrentFunction"]
8715        [::std::mem::offset_of!(BNScriptingInstanceCallbacks, setCurrentFunction) - 72usize];
8716    ["Offset of field: BNScriptingInstanceCallbacks::setCurrentBasicBlock"]
8717        [::std::mem::offset_of!(BNScriptingInstanceCallbacks, setCurrentBasicBlock) - 80usize];
8718    ["Offset of field: BNScriptingInstanceCallbacks::setCurrentAddress"]
8719        [::std::mem::offset_of!(BNScriptingInstanceCallbacks, setCurrentAddress) - 88usize];
8720    ["Offset of field: BNScriptingInstanceCallbacks::setCurrentSelection"]
8721        [::std::mem::offset_of!(BNScriptingInstanceCallbacks, setCurrentSelection) - 96usize];
8722    ["Offset of field: BNScriptingInstanceCallbacks::completeInput"]
8723        [::std::mem::offset_of!(BNScriptingInstanceCallbacks, completeInput) - 104usize];
8724    ["Offset of field: BNScriptingInstanceCallbacks::stop"]
8725        [::std::mem::offset_of!(BNScriptingInstanceCallbacks, stop) - 112usize];
8726    ["Offset of field: BNScriptingInstanceCallbacks::canCompleteArguments"]
8727        [::std::mem::offset_of!(BNScriptingInstanceCallbacks, canCompleteArguments) - 120usize];
8728    ["Offset of field: BNScriptingInstanceCallbacks::completeArguments"]
8729        [::std::mem::offset_of!(BNScriptingInstanceCallbacks, completeArguments) - 128usize];
8730};
8731impl Default for BNScriptingInstanceCallbacks {
8732    fn default() -> Self {
8733        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8734        unsafe {
8735            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8736            s.assume_init()
8737        }
8738    }
8739}
8740#[repr(C)]
8741#[derive(Debug, Copy, Clone)]
8742pub struct BNScriptingProviderCallbacks {
8743    pub context: *mut ::std::os::raw::c_void,
8744    pub createInstance: ::std::option::Option<
8745        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> *mut BNScriptingInstance,
8746    >,
8747    pub loadModule: ::std::option::Option<
8748        unsafe extern "C" fn(
8749            ctxt: *mut ::std::os::raw::c_void,
8750            repoPath: *const ::std::os::raw::c_char,
8751            pluginPath: *const ::std::os::raw::c_char,
8752            force: bool,
8753        ) -> bool,
8754    >,
8755    pub installModules: ::std::option::Option<
8756        unsafe extern "C" fn(
8757            ctxt: *mut ::std::os::raw::c_void,
8758            modules: *const ::std::os::raw::c_char,
8759        ) -> bool,
8760    >,
8761}
8762#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8763const _: () = {
8764    ["Size of BNScriptingProviderCallbacks"]
8765        [::std::mem::size_of::<BNScriptingProviderCallbacks>() - 32usize];
8766    ["Alignment of BNScriptingProviderCallbacks"]
8767        [::std::mem::align_of::<BNScriptingProviderCallbacks>() - 8usize];
8768    ["Offset of field: BNScriptingProviderCallbacks::context"]
8769        [::std::mem::offset_of!(BNScriptingProviderCallbacks, context) - 0usize];
8770    ["Offset of field: BNScriptingProviderCallbacks::createInstance"]
8771        [::std::mem::offset_of!(BNScriptingProviderCallbacks, createInstance) - 8usize];
8772    ["Offset of field: BNScriptingProviderCallbacks::loadModule"]
8773        [::std::mem::offset_of!(BNScriptingProviderCallbacks, loadModule) - 16usize];
8774    ["Offset of field: BNScriptingProviderCallbacks::installModules"]
8775        [::std::mem::offset_of!(BNScriptingProviderCallbacks, installModules) - 24usize];
8776};
8777impl Default for BNScriptingProviderCallbacks {
8778    fn default() -> Self {
8779        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8780        unsafe {
8781            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8782            s.assume_init()
8783        }
8784    }
8785}
8786#[repr(C)]
8787#[derive(Debug, Copy, Clone)]
8788pub struct BNScriptingOutputListener {
8789    pub context: *mut ::std::os::raw::c_void,
8790    pub output: ::std::option::Option<
8791        unsafe extern "C" fn(
8792            ctxt: *mut ::std::os::raw::c_void,
8793            text: *const ::std::os::raw::c_char,
8794        ),
8795    >,
8796    pub warning: ::std::option::Option<
8797        unsafe extern "C" fn(
8798            ctxt: *mut ::std::os::raw::c_void,
8799            text: *const ::std::os::raw::c_char,
8800        ),
8801    >,
8802    pub error: ::std::option::Option<
8803        unsafe extern "C" fn(
8804            ctxt: *mut ::std::os::raw::c_void,
8805            text: *const ::std::os::raw::c_char,
8806        ),
8807    >,
8808    pub inputReadyStateChanged: ::std::option::Option<
8809        unsafe extern "C" fn(
8810            ctxt: *mut ::std::os::raw::c_void,
8811            state: BNScriptingProviderInputReadyState,
8812        ),
8813    >,
8814}
8815#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8816const _: () = {
8817    ["Size of BNScriptingOutputListener"]
8818        [::std::mem::size_of::<BNScriptingOutputListener>() - 40usize];
8819    ["Alignment of BNScriptingOutputListener"]
8820        [::std::mem::align_of::<BNScriptingOutputListener>() - 8usize];
8821    ["Offset of field: BNScriptingOutputListener::context"]
8822        [::std::mem::offset_of!(BNScriptingOutputListener, context) - 0usize];
8823    ["Offset of field: BNScriptingOutputListener::output"]
8824        [::std::mem::offset_of!(BNScriptingOutputListener, output) - 8usize];
8825    ["Offset of field: BNScriptingOutputListener::warning"]
8826        [::std::mem::offset_of!(BNScriptingOutputListener, warning) - 16usize];
8827    ["Offset of field: BNScriptingOutputListener::error"]
8828        [::std::mem::offset_of!(BNScriptingOutputListener, error) - 24usize];
8829    ["Offset of field: BNScriptingOutputListener::inputReadyStateChanged"]
8830        [::std::mem::offset_of!(BNScriptingOutputListener, inputReadyStateChanged) - 32usize];
8831};
8832impl Default for BNScriptingOutputListener {
8833    fn default() -> Self {
8834        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8835        unsafe {
8836            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8837            s.assume_init()
8838        }
8839    }
8840}
8841#[repr(C)]
8842#[derive(Debug, Copy, Clone)]
8843pub struct BNMainThreadCallbacks {
8844    pub context: *mut ::std::os::raw::c_void,
8845    pub addAction: ::std::option::Option<
8846        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, action: *mut BNMainThreadAction),
8847    >,
8848}
8849#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8850const _: () = {
8851    ["Size of BNMainThreadCallbacks"][::std::mem::size_of::<BNMainThreadCallbacks>() - 16usize];
8852    ["Alignment of BNMainThreadCallbacks"]
8853        [::std::mem::align_of::<BNMainThreadCallbacks>() - 8usize];
8854    ["Offset of field: BNMainThreadCallbacks::context"]
8855        [::std::mem::offset_of!(BNMainThreadCallbacks, context) - 0usize];
8856    ["Offset of field: BNMainThreadCallbacks::addAction"]
8857        [::std::mem::offset_of!(BNMainThreadCallbacks, addAction) - 8usize];
8858};
8859impl Default for BNMainThreadCallbacks {
8860    fn default() -> Self {
8861        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8862        unsafe {
8863            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8864            s.assume_init()
8865        }
8866    }
8867}
8868#[repr(C)]
8869#[derive(Copy, Clone)]
8870pub struct BNTypeParserCallbacks {
8871    pub context: *mut ::std::os::raw::c_void,
8872    pub getOptionText: ::std::option::Option<
8873        unsafe extern "C" fn(
8874            ctxt: *mut ::std::os::raw::c_void,
8875            option: BNTypeParserOption,
8876            value: *const ::std::os::raw::c_char,
8877            result: *mut *mut ::std::os::raw::c_char,
8878        ) -> bool,
8879    >,
8880    pub preprocessSource: ::std::option::Option<
8881        unsafe extern "C" fn(
8882            ctxt: *mut ::std::os::raw::c_void,
8883            source: *const ::std::os::raw::c_char,
8884            fileName: *const ::std::os::raw::c_char,
8885            platform: *mut BNPlatform,
8886            existingTypes: *mut BNTypeContainer,
8887            options: *const *const ::std::os::raw::c_char,
8888            optionCount: usize,
8889            includeDirs: *const *const ::std::os::raw::c_char,
8890            includeDirCount: usize,
8891            output: *mut *mut ::std::os::raw::c_char,
8892            errors: *mut *mut BNTypeParserError,
8893            errorCount: *mut usize,
8894        ) -> bool,
8895    >,
8896    pub parseTypesFromSource: ::std::option::Option<
8897        unsafe extern "C" fn(
8898            ctxt: *mut ::std::os::raw::c_void,
8899            source: *const ::std::os::raw::c_char,
8900            fileName: *const ::std::os::raw::c_char,
8901            platform: *mut BNPlatform,
8902            existingTypes: *mut BNTypeContainer,
8903            options: *const *const ::std::os::raw::c_char,
8904            optionCount: usize,
8905            includeDirs: *const *const ::std::os::raw::c_char,
8906            includeDirCount: usize,
8907            autoTypeSource: *const ::std::os::raw::c_char,
8908            result: *mut BNTypeParserResult,
8909            errors: *mut *mut BNTypeParserError,
8910            errorCount: *mut usize,
8911        ) -> bool,
8912    >,
8913    pub parseTypeString: ::std::option::Option<
8914        unsafe extern "C" fn(
8915            ctxt: *mut ::std::os::raw::c_void,
8916            source: *const ::std::os::raw::c_char,
8917            platform: *mut BNPlatform,
8918            existingTypes: *mut BNTypeContainer,
8919            result: *mut BNQualifiedNameAndType,
8920            errors: *mut *mut BNTypeParserError,
8921            errorCount: *mut usize,
8922        ) -> bool,
8923    >,
8924    pub freeString: ::std::option::Option<
8925        unsafe extern "C" fn(
8926            ctxt: *mut ::std::os::raw::c_void,
8927            string: *mut ::std::os::raw::c_char,
8928        ),
8929    >,
8930    pub freeResult: ::std::option::Option<
8931        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, result: *mut BNTypeParserResult),
8932    >,
8933    pub freeErrorList: ::std::option::Option<
8934        unsafe extern "C" fn(
8935            ctxt: *mut ::std::os::raw::c_void,
8936            errors: *mut BNTypeParserError,
8937            errorCount: usize,
8938        ),
8939    >,
8940}
8941#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8942const _: () = {
8943    ["Size of BNTypeParserCallbacks"][::std::mem::size_of::<BNTypeParserCallbacks>() - 64usize];
8944    ["Alignment of BNTypeParserCallbacks"]
8945        [::std::mem::align_of::<BNTypeParserCallbacks>() - 8usize];
8946    ["Offset of field: BNTypeParserCallbacks::context"]
8947        [::std::mem::offset_of!(BNTypeParserCallbacks, context) - 0usize];
8948    ["Offset of field: BNTypeParserCallbacks::getOptionText"]
8949        [::std::mem::offset_of!(BNTypeParserCallbacks, getOptionText) - 8usize];
8950    ["Offset of field: BNTypeParserCallbacks::preprocessSource"]
8951        [::std::mem::offset_of!(BNTypeParserCallbacks, preprocessSource) - 16usize];
8952    ["Offset of field: BNTypeParserCallbacks::parseTypesFromSource"]
8953        [::std::mem::offset_of!(BNTypeParserCallbacks, parseTypesFromSource) - 24usize];
8954    ["Offset of field: BNTypeParserCallbacks::parseTypeString"]
8955        [::std::mem::offset_of!(BNTypeParserCallbacks, parseTypeString) - 32usize];
8956    ["Offset of field: BNTypeParserCallbacks::freeString"]
8957        [::std::mem::offset_of!(BNTypeParserCallbacks, freeString) - 40usize];
8958    ["Offset of field: BNTypeParserCallbacks::freeResult"]
8959        [::std::mem::offset_of!(BNTypeParserCallbacks, freeResult) - 48usize];
8960    ["Offset of field: BNTypeParserCallbacks::freeErrorList"]
8961        [::std::mem::offset_of!(BNTypeParserCallbacks, freeErrorList) - 56usize];
8962};
8963impl Default for BNTypeParserCallbacks {
8964    fn default() -> Self {
8965        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8966        unsafe {
8967            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8968            s.assume_init()
8969        }
8970    }
8971}
8972#[repr(C)]
8973#[derive(Debug, Copy, Clone)]
8974pub struct BNTypePrinterCallbacks {
8975    pub context: *mut ::std::os::raw::c_void,
8976    pub getTypeTokens: ::std::option::Option<
8977        unsafe extern "C" fn(
8978            ctxt: *mut ::std::os::raw::c_void,
8979            type_: *mut BNType,
8980            platform: *mut BNPlatform,
8981            name: *mut BNQualifiedName,
8982            baseConfidence: u8,
8983            escaping: BNTokenEscapingType,
8984            result: *mut *mut BNInstructionTextToken,
8985            resultCount: *mut usize,
8986        ) -> bool,
8987    >,
8988    pub getTypeTokensBeforeName: ::std::option::Option<
8989        unsafe extern "C" fn(
8990            ctxt: *mut ::std::os::raw::c_void,
8991            type_: *mut BNType,
8992            platform: *mut BNPlatform,
8993            baseConfidence: u8,
8994            parentType: *mut BNType,
8995            escaping: BNTokenEscapingType,
8996            result: *mut *mut BNInstructionTextToken,
8997            resultCount: *mut usize,
8998        ) -> bool,
8999    >,
9000    pub getTypeTokensAfterName: ::std::option::Option<
9001        unsafe extern "C" fn(
9002            ctxt: *mut ::std::os::raw::c_void,
9003            type_: *mut BNType,
9004            platform: *mut BNPlatform,
9005            baseConfidence: u8,
9006            parentType: *mut BNType,
9007            escaping: BNTokenEscapingType,
9008            result: *mut *mut BNInstructionTextToken,
9009            resultCount: *mut usize,
9010        ) -> bool,
9011    >,
9012    pub getTypeString: ::std::option::Option<
9013        unsafe extern "C" fn(
9014            ctxt: *mut ::std::os::raw::c_void,
9015            type_: *mut BNType,
9016            platform: *mut BNPlatform,
9017            name: *mut BNQualifiedName,
9018            escaping: BNTokenEscapingType,
9019            result: *mut *mut ::std::os::raw::c_char,
9020        ) -> bool,
9021    >,
9022    pub getTypeStringBeforeName: ::std::option::Option<
9023        unsafe extern "C" fn(
9024            ctxt: *mut ::std::os::raw::c_void,
9025            type_: *mut BNType,
9026            platform: *mut BNPlatform,
9027            escaping: BNTokenEscapingType,
9028            result: *mut *mut ::std::os::raw::c_char,
9029        ) -> bool,
9030    >,
9031    pub getTypeStringAfterName: ::std::option::Option<
9032        unsafe extern "C" fn(
9033            ctxt: *mut ::std::os::raw::c_void,
9034            type_: *mut BNType,
9035            platform: *mut BNPlatform,
9036            escaping: BNTokenEscapingType,
9037            result: *mut *mut ::std::os::raw::c_char,
9038        ) -> bool,
9039    >,
9040    pub getTypeLines: ::std::option::Option<
9041        unsafe extern "C" fn(
9042            ctxt: *mut ::std::os::raw::c_void,
9043            type_: *mut BNType,
9044            types: *mut BNTypeContainer,
9045            name: *mut BNQualifiedName,
9046            paddingCols: ::std::os::raw::c_int,
9047            collapsed: bool,
9048            escaping: BNTokenEscapingType,
9049            result: *mut *mut BNTypeDefinitionLine,
9050            resultCount: *mut usize,
9051        ) -> bool,
9052    >,
9053    pub printAllTypes: ::std::option::Option<
9054        unsafe extern "C" fn(
9055            ctxt: *mut ::std::os::raw::c_void,
9056            names: *mut BNQualifiedName,
9057            types: *mut *mut BNType,
9058            typeCount: usize,
9059            data: *mut BNBinaryView,
9060            paddingCols: ::std::os::raw::c_int,
9061            escaping: BNTokenEscapingType,
9062            result: *mut *mut ::std::os::raw::c_char,
9063        ) -> bool,
9064    >,
9065    pub freeTokens: ::std::option::Option<
9066        unsafe extern "C" fn(
9067            ctxt: *mut ::std::os::raw::c_void,
9068            tokens: *mut BNInstructionTextToken,
9069            count: usize,
9070        ),
9071    >,
9072    pub freeString: ::std::option::Option<
9073        unsafe extern "C" fn(
9074            ctxt: *mut ::std::os::raw::c_void,
9075            string: *mut ::std::os::raw::c_char,
9076        ),
9077    >,
9078    pub freeLines: ::std::option::Option<
9079        unsafe extern "C" fn(
9080            ctxt: *mut ::std::os::raw::c_void,
9081            lines: *mut BNTypeDefinitionLine,
9082            count: usize,
9083        ),
9084    >,
9085}
9086#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9087const _: () = {
9088    ["Size of BNTypePrinterCallbacks"][::std::mem::size_of::<BNTypePrinterCallbacks>() - 96usize];
9089    ["Alignment of BNTypePrinterCallbacks"]
9090        [::std::mem::align_of::<BNTypePrinterCallbacks>() - 8usize];
9091    ["Offset of field: BNTypePrinterCallbacks::context"]
9092        [::std::mem::offset_of!(BNTypePrinterCallbacks, context) - 0usize];
9093    ["Offset of field: BNTypePrinterCallbacks::getTypeTokens"]
9094        [::std::mem::offset_of!(BNTypePrinterCallbacks, getTypeTokens) - 8usize];
9095    ["Offset of field: BNTypePrinterCallbacks::getTypeTokensBeforeName"]
9096        [::std::mem::offset_of!(BNTypePrinterCallbacks, getTypeTokensBeforeName) - 16usize];
9097    ["Offset of field: BNTypePrinterCallbacks::getTypeTokensAfterName"]
9098        [::std::mem::offset_of!(BNTypePrinterCallbacks, getTypeTokensAfterName) - 24usize];
9099    ["Offset of field: BNTypePrinterCallbacks::getTypeString"]
9100        [::std::mem::offset_of!(BNTypePrinterCallbacks, getTypeString) - 32usize];
9101    ["Offset of field: BNTypePrinterCallbacks::getTypeStringBeforeName"]
9102        [::std::mem::offset_of!(BNTypePrinterCallbacks, getTypeStringBeforeName) - 40usize];
9103    ["Offset of field: BNTypePrinterCallbacks::getTypeStringAfterName"]
9104        [::std::mem::offset_of!(BNTypePrinterCallbacks, getTypeStringAfterName) - 48usize];
9105    ["Offset of field: BNTypePrinterCallbacks::getTypeLines"]
9106        [::std::mem::offset_of!(BNTypePrinterCallbacks, getTypeLines) - 56usize];
9107    ["Offset of field: BNTypePrinterCallbacks::printAllTypes"]
9108        [::std::mem::offset_of!(BNTypePrinterCallbacks, printAllTypes) - 64usize];
9109    ["Offset of field: BNTypePrinterCallbacks::freeTokens"]
9110        [::std::mem::offset_of!(BNTypePrinterCallbacks, freeTokens) - 72usize];
9111    ["Offset of field: BNTypePrinterCallbacks::freeString"]
9112        [::std::mem::offset_of!(BNTypePrinterCallbacks, freeString) - 80usize];
9113    ["Offset of field: BNTypePrinterCallbacks::freeLines"]
9114        [::std::mem::offset_of!(BNTypePrinterCallbacks, freeLines) - 88usize];
9115};
9116impl Default for BNTypePrinterCallbacks {
9117    fn default() -> Self {
9118        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9119        unsafe {
9120            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9121            s.assume_init()
9122        }
9123    }
9124}
9125#[repr(C)]
9126#[derive(Debug, Default, Copy, Clone)]
9127pub struct BNConstantReference {
9128    pub value: i64,
9129    pub size: usize,
9130    pub pointer: bool,
9131    pub intermediate: bool,
9132}
9133#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9134const _: () = {
9135    ["Size of BNConstantReference"][::std::mem::size_of::<BNConstantReference>() - 24usize];
9136    ["Alignment of BNConstantReference"][::std::mem::align_of::<BNConstantReference>() - 8usize];
9137    ["Offset of field: BNConstantReference::value"]
9138        [::std::mem::offset_of!(BNConstantReference, value) - 0usize];
9139    ["Offset of field: BNConstantReference::size"]
9140        [::std::mem::offset_of!(BNConstantReference, size) - 8usize];
9141    ["Offset of field: BNConstantReference::pointer"]
9142        [::std::mem::offset_of!(BNConstantReference, pointer) - 16usize];
9143    ["Offset of field: BNConstantReference::intermediate"]
9144        [::std::mem::offset_of!(BNConstantReference, intermediate) - 17usize];
9145};
9146#[repr(C)]
9147#[derive(Debug, Copy, Clone)]
9148pub struct BNMetadataValueStore {
9149    pub size: usize,
9150    pub keys: *mut *mut ::std::os::raw::c_char,
9151    pub values: *mut *mut BNMetadata,
9152}
9153#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9154const _: () = {
9155    ["Size of BNMetadataValueStore"][::std::mem::size_of::<BNMetadataValueStore>() - 24usize];
9156    ["Alignment of BNMetadataValueStore"][::std::mem::align_of::<BNMetadataValueStore>() - 8usize];
9157    ["Offset of field: BNMetadataValueStore::size"]
9158        [::std::mem::offset_of!(BNMetadataValueStore, size) - 0usize];
9159    ["Offset of field: BNMetadataValueStore::keys"]
9160        [::std::mem::offset_of!(BNMetadataValueStore, keys) - 8usize];
9161    ["Offset of field: BNMetadataValueStore::values"]
9162        [::std::mem::offset_of!(BNMetadataValueStore, values) - 16usize];
9163};
9164impl Default for BNMetadataValueStore {
9165    fn default() -> Self {
9166        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9167        unsafe {
9168            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9169            s.assume_init()
9170        }
9171    }
9172}
9173#[repr(u8)]
9174#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9175pub enum BNSaveOption {
9176    RemoveUndoData = 0,
9177    TrimSnapshots = 1,
9178    PurgeOriginalFilenamePath = 2,
9179}
9180#[repr(u8)]
9181#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9182pub enum BNMessageBoxIcon {
9183    InformationIcon = 0,
9184    QuestionIcon = 1,
9185    WarningIcon = 2,
9186    ErrorIcon = 3,
9187}
9188#[repr(u8)]
9189#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9190pub enum BNMessageBoxButtonSet {
9191    OKButtonSet = 0,
9192    YesNoButtonSet = 1,
9193    YesNoCancelButtonSet = 2,
9194}
9195#[repr(u8)]
9196#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9197pub enum BNMessageBoxButtonResult {
9198    NoButton = 0,
9199    YesButton = 1,
9200    OKButton = 2,
9201    CancelButton = 3,
9202}
9203#[repr(u8)]
9204#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9205pub enum BNFormInputFieldType {
9206    LabelFormField = 0,
9207    SeparatorFormField = 1,
9208    TextLineFormField = 2,
9209    MultilineTextFormField = 3,
9210    IntegerFormField = 4,
9211    AddressFormField = 5,
9212    ChoiceFormField = 6,
9213    OpenFileNameFormField = 7,
9214    SaveFileNameFormField = 8,
9215    DirectoryNameFormField = 9,
9216    CheckboxFormField = 10,
9217}
9218#[repr(C)]
9219#[derive(Debug, Copy, Clone)]
9220pub struct BNFormInputField {
9221    pub type_: BNFormInputFieldType,
9222    pub prompt: *const ::std::os::raw::c_char,
9223    #[doc = " For AddressFormField"]
9224    pub view: *mut BNBinaryView,
9225    #[doc = " For AddressFormField"]
9226    pub currentAddress: u64,
9227    #[doc = " For ChoiceFormField"]
9228    pub choices: *mut *const ::std::os::raw::c_char,
9229    #[doc = " For ChoiceFormField"]
9230    pub count: usize,
9231    #[doc = " For OpenFileNameFormField, SaveFileNameFormField"]
9232    pub ext: *const ::std::os::raw::c_char,
9233    #[doc = " For SaveFileNameFormField"]
9234    pub defaultName: *const ::std::os::raw::c_char,
9235    pub intResult: i64,
9236    pub addressResult: u64,
9237    pub stringResult: *mut ::std::os::raw::c_char,
9238    pub indexResult: usize,
9239    pub hasDefault: bool,
9240    pub intDefault: i64,
9241    pub addressDefault: u64,
9242    pub stringDefault: *const ::std::os::raw::c_char,
9243    pub indexDefault: usize,
9244}
9245#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9246const _: () = {
9247    ["Size of BNFormInputField"][::std::mem::size_of::<BNFormInputField>() - 136usize];
9248    ["Alignment of BNFormInputField"][::std::mem::align_of::<BNFormInputField>() - 8usize];
9249    ["Offset of field: BNFormInputField::type_"]
9250        [::std::mem::offset_of!(BNFormInputField, type_) - 0usize];
9251    ["Offset of field: BNFormInputField::prompt"]
9252        [::std::mem::offset_of!(BNFormInputField, prompt) - 8usize];
9253    ["Offset of field: BNFormInputField::view"]
9254        [::std::mem::offset_of!(BNFormInputField, view) - 16usize];
9255    ["Offset of field: BNFormInputField::currentAddress"]
9256        [::std::mem::offset_of!(BNFormInputField, currentAddress) - 24usize];
9257    ["Offset of field: BNFormInputField::choices"]
9258        [::std::mem::offset_of!(BNFormInputField, choices) - 32usize];
9259    ["Offset of field: BNFormInputField::count"]
9260        [::std::mem::offset_of!(BNFormInputField, count) - 40usize];
9261    ["Offset of field: BNFormInputField::ext"]
9262        [::std::mem::offset_of!(BNFormInputField, ext) - 48usize];
9263    ["Offset of field: BNFormInputField::defaultName"]
9264        [::std::mem::offset_of!(BNFormInputField, defaultName) - 56usize];
9265    ["Offset of field: BNFormInputField::intResult"]
9266        [::std::mem::offset_of!(BNFormInputField, intResult) - 64usize];
9267    ["Offset of field: BNFormInputField::addressResult"]
9268        [::std::mem::offset_of!(BNFormInputField, addressResult) - 72usize];
9269    ["Offset of field: BNFormInputField::stringResult"]
9270        [::std::mem::offset_of!(BNFormInputField, stringResult) - 80usize];
9271    ["Offset of field: BNFormInputField::indexResult"]
9272        [::std::mem::offset_of!(BNFormInputField, indexResult) - 88usize];
9273    ["Offset of field: BNFormInputField::hasDefault"]
9274        [::std::mem::offset_of!(BNFormInputField, hasDefault) - 96usize];
9275    ["Offset of field: BNFormInputField::intDefault"]
9276        [::std::mem::offset_of!(BNFormInputField, intDefault) - 104usize];
9277    ["Offset of field: BNFormInputField::addressDefault"]
9278        [::std::mem::offset_of!(BNFormInputField, addressDefault) - 112usize];
9279    ["Offset of field: BNFormInputField::stringDefault"]
9280        [::std::mem::offset_of!(BNFormInputField, stringDefault) - 120usize];
9281    ["Offset of field: BNFormInputField::indexDefault"]
9282        [::std::mem::offset_of!(BNFormInputField, indexDefault) - 128usize];
9283};
9284impl Default for BNFormInputField {
9285    fn default() -> Self {
9286        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9287        unsafe {
9288            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9289            s.assume_init()
9290        }
9291    }
9292}
9293#[repr(C)]
9294#[derive(Debug, Copy, Clone)]
9295pub struct BNInteractionHandlerCallbacks {
9296    pub context: *mut ::std::os::raw::c_void,
9297    pub showPlainTextReport: ::std::option::Option<
9298        unsafe extern "C" fn(
9299            ctxt: *mut ::std::os::raw::c_void,
9300            view: *mut BNBinaryView,
9301            title: *const ::std::os::raw::c_char,
9302            contents: *const ::std::os::raw::c_char,
9303        ),
9304    >,
9305    pub showMarkdownReport: ::std::option::Option<
9306        unsafe extern "C" fn(
9307            ctxt: *mut ::std::os::raw::c_void,
9308            view: *mut BNBinaryView,
9309            title: *const ::std::os::raw::c_char,
9310            contents: *const ::std::os::raw::c_char,
9311            plaintext: *const ::std::os::raw::c_char,
9312        ),
9313    >,
9314    pub showHTMLReport: ::std::option::Option<
9315        unsafe extern "C" fn(
9316            ctxt: *mut ::std::os::raw::c_void,
9317            view: *mut BNBinaryView,
9318            title: *const ::std::os::raw::c_char,
9319            contents: *const ::std::os::raw::c_char,
9320            plaintext: *const ::std::os::raw::c_char,
9321        ),
9322    >,
9323    pub showGraphReport: ::std::option::Option<
9324        unsafe extern "C" fn(
9325            ctxt: *mut ::std::os::raw::c_void,
9326            view: *mut BNBinaryView,
9327            title: *const ::std::os::raw::c_char,
9328            graph: *mut BNFlowGraph,
9329        ),
9330    >,
9331    pub showReportCollection: ::std::option::Option<
9332        unsafe extern "C" fn(
9333            ctxt: *mut ::std::os::raw::c_void,
9334            title: *const ::std::os::raw::c_char,
9335            reports: *mut BNReportCollection,
9336        ),
9337    >,
9338    pub getTextLineInput: ::std::option::Option<
9339        unsafe extern "C" fn(
9340            ctxt: *mut ::std::os::raw::c_void,
9341            result: *mut *mut ::std::os::raw::c_char,
9342            prompt: *const ::std::os::raw::c_char,
9343            title: *const ::std::os::raw::c_char,
9344        ) -> bool,
9345    >,
9346    pub getIntegerInput: ::std::option::Option<
9347        unsafe extern "C" fn(
9348            ctxt: *mut ::std::os::raw::c_void,
9349            result: *mut i64,
9350            prompt: *const ::std::os::raw::c_char,
9351            title: *const ::std::os::raw::c_char,
9352        ) -> bool,
9353    >,
9354    pub getAddressInput: ::std::option::Option<
9355        unsafe extern "C" fn(
9356            ctxt: *mut ::std::os::raw::c_void,
9357            result: *mut u64,
9358            prompt: *const ::std::os::raw::c_char,
9359            title: *const ::std::os::raw::c_char,
9360            view: *mut BNBinaryView,
9361            currentAddr: u64,
9362        ) -> bool,
9363    >,
9364    pub getChoiceInput: ::std::option::Option<
9365        unsafe extern "C" fn(
9366            ctxt: *mut ::std::os::raw::c_void,
9367            result: *mut usize,
9368            prompt: *const ::std::os::raw::c_char,
9369            title: *const ::std::os::raw::c_char,
9370            choices: *mut *const ::std::os::raw::c_char,
9371            count: usize,
9372        ) -> bool,
9373    >,
9374    pub getLargeChoiceInput: ::std::option::Option<
9375        unsafe extern "C" fn(
9376            ctxt: *mut ::std::os::raw::c_void,
9377            result: *mut usize,
9378            prompt: *const ::std::os::raw::c_char,
9379            title: *const ::std::os::raw::c_char,
9380            choices: *mut *const ::std::os::raw::c_char,
9381            count: usize,
9382        ) -> bool,
9383    >,
9384    pub getOpenFileNameInput: ::std::option::Option<
9385        unsafe extern "C" fn(
9386            ctxt: *mut ::std::os::raw::c_void,
9387            result: *mut *mut ::std::os::raw::c_char,
9388            prompt: *const ::std::os::raw::c_char,
9389            ext: *const ::std::os::raw::c_char,
9390        ) -> bool,
9391    >,
9392    pub getSaveFileNameInput: ::std::option::Option<
9393        unsafe extern "C" fn(
9394            ctxt: *mut ::std::os::raw::c_void,
9395            result: *mut *mut ::std::os::raw::c_char,
9396            prompt: *const ::std::os::raw::c_char,
9397            ext: *const ::std::os::raw::c_char,
9398            defaultName: *const ::std::os::raw::c_char,
9399        ) -> bool,
9400    >,
9401    pub getDirectoryNameInput: ::std::option::Option<
9402        unsafe extern "C" fn(
9403            ctxt: *mut ::std::os::raw::c_void,
9404            result: *mut *mut ::std::os::raw::c_char,
9405            prompt: *const ::std::os::raw::c_char,
9406            defaultName: *const ::std::os::raw::c_char,
9407        ) -> bool,
9408    >,
9409    pub getCheckboxInput: ::std::option::Option<
9410        unsafe extern "C" fn(
9411            ctxt: *mut ::std::os::raw::c_void,
9412            result: *mut i64,
9413            prompt: *const ::std::os::raw::c_char,
9414            title: *const ::std::os::raw::c_char,
9415            defaultChoice: *const i64,
9416        ) -> bool,
9417    >,
9418    pub getFormInput: ::std::option::Option<
9419        unsafe extern "C" fn(
9420            ctxt: *mut ::std::os::raw::c_void,
9421            fields: *mut BNFormInputField,
9422            count: usize,
9423            title: *const ::std::os::raw::c_char,
9424        ) -> bool,
9425    >,
9426    pub showMessageBox: ::std::option::Option<
9427        unsafe extern "C" fn(
9428            ctxt: *mut ::std::os::raw::c_void,
9429            title: *const ::std::os::raw::c_char,
9430            text: *const ::std::os::raw::c_char,
9431            buttons: BNMessageBoxButtonSet,
9432            icon: BNMessageBoxIcon,
9433        ) -> BNMessageBoxButtonResult,
9434    >,
9435    pub openUrl: ::std::option::Option<
9436        unsafe extern "C" fn(
9437            ctxt: *mut ::std::os::raw::c_void,
9438            url: *const ::std::os::raw::c_char,
9439        ) -> bool,
9440    >,
9441    pub runProgressDialog: ::std::option::Option<
9442        unsafe extern "C" fn(
9443            ctxt: *mut ::std::os::raw::c_void,
9444            title: *const ::std::os::raw::c_char,
9445            canCancel: bool,
9446            task: ::std::option::Option<
9447                unsafe extern "C" fn(
9448                    taskCtxt: *mut ::std::os::raw::c_void,
9449                    progress: BNProgressFunction,
9450                    progressCtxt: *mut ::std::os::raw::c_void,
9451                ),
9452            >,
9453            taskCtxt: *mut ::std::os::raw::c_void,
9454        ) -> bool,
9455    >,
9456}
9457#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9458const _: () = {
9459    ["Size of BNInteractionHandlerCallbacks"]
9460        [::std::mem::size_of::<BNInteractionHandlerCallbacks>() - 152usize];
9461    ["Alignment of BNInteractionHandlerCallbacks"]
9462        [::std::mem::align_of::<BNInteractionHandlerCallbacks>() - 8usize];
9463    ["Offset of field: BNInteractionHandlerCallbacks::context"]
9464        [::std::mem::offset_of!(BNInteractionHandlerCallbacks, context) - 0usize];
9465    ["Offset of field: BNInteractionHandlerCallbacks::showPlainTextReport"]
9466        [::std::mem::offset_of!(BNInteractionHandlerCallbacks, showPlainTextReport) - 8usize];
9467    ["Offset of field: BNInteractionHandlerCallbacks::showMarkdownReport"]
9468        [::std::mem::offset_of!(BNInteractionHandlerCallbacks, showMarkdownReport) - 16usize];
9469    ["Offset of field: BNInteractionHandlerCallbacks::showHTMLReport"]
9470        [::std::mem::offset_of!(BNInteractionHandlerCallbacks, showHTMLReport) - 24usize];
9471    ["Offset of field: BNInteractionHandlerCallbacks::showGraphReport"]
9472        [::std::mem::offset_of!(BNInteractionHandlerCallbacks, showGraphReport) - 32usize];
9473    ["Offset of field: BNInteractionHandlerCallbacks::showReportCollection"]
9474        [::std::mem::offset_of!(BNInteractionHandlerCallbacks, showReportCollection) - 40usize];
9475    ["Offset of field: BNInteractionHandlerCallbacks::getTextLineInput"]
9476        [::std::mem::offset_of!(BNInteractionHandlerCallbacks, getTextLineInput) - 48usize];
9477    ["Offset of field: BNInteractionHandlerCallbacks::getIntegerInput"]
9478        [::std::mem::offset_of!(BNInteractionHandlerCallbacks, getIntegerInput) - 56usize];
9479    ["Offset of field: BNInteractionHandlerCallbacks::getAddressInput"]
9480        [::std::mem::offset_of!(BNInteractionHandlerCallbacks, getAddressInput) - 64usize];
9481    ["Offset of field: BNInteractionHandlerCallbacks::getChoiceInput"]
9482        [::std::mem::offset_of!(BNInteractionHandlerCallbacks, getChoiceInput) - 72usize];
9483    ["Offset of field: BNInteractionHandlerCallbacks::getLargeChoiceInput"]
9484        [::std::mem::offset_of!(BNInteractionHandlerCallbacks, getLargeChoiceInput) - 80usize];
9485    ["Offset of field: BNInteractionHandlerCallbacks::getOpenFileNameInput"]
9486        [::std::mem::offset_of!(BNInteractionHandlerCallbacks, getOpenFileNameInput) - 88usize];
9487    ["Offset of field: BNInteractionHandlerCallbacks::getSaveFileNameInput"]
9488        [::std::mem::offset_of!(BNInteractionHandlerCallbacks, getSaveFileNameInput) - 96usize];
9489    ["Offset of field: BNInteractionHandlerCallbacks::getDirectoryNameInput"]
9490        [::std::mem::offset_of!(BNInteractionHandlerCallbacks, getDirectoryNameInput) - 104usize];
9491    ["Offset of field: BNInteractionHandlerCallbacks::getCheckboxInput"]
9492        [::std::mem::offset_of!(BNInteractionHandlerCallbacks, getCheckboxInput) - 112usize];
9493    ["Offset of field: BNInteractionHandlerCallbacks::getFormInput"]
9494        [::std::mem::offset_of!(BNInteractionHandlerCallbacks, getFormInput) - 120usize];
9495    ["Offset of field: BNInteractionHandlerCallbacks::showMessageBox"]
9496        [::std::mem::offset_of!(BNInteractionHandlerCallbacks, showMessageBox) - 128usize];
9497    ["Offset of field: BNInteractionHandlerCallbacks::openUrl"]
9498        [::std::mem::offset_of!(BNInteractionHandlerCallbacks, openUrl) - 136usize];
9499    ["Offset of field: BNInteractionHandlerCallbacks::runProgressDialog"]
9500        [::std::mem::offset_of!(BNInteractionHandlerCallbacks, runProgressDialog) - 144usize];
9501};
9502impl Default for BNInteractionHandlerCallbacks {
9503    fn default() -> Self {
9504        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9505        unsafe {
9506            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9507            s.assume_init()
9508        }
9509    }
9510}
9511#[repr(C)]
9512#[derive(Debug, Copy, Clone)]
9513pub struct BNObjectDestructionCallbacks {
9514    pub context: *mut ::std::os::raw::c_void,
9515    #[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."]
9516    pub destructBinaryView: ::std::option::Option<
9517        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, view: *mut BNBinaryView),
9518    >,
9519    pub destructFileMetadata: ::std::option::Option<
9520        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, file: *mut BNFileMetadata),
9521    >,
9522    pub destructFunction: ::std::option::Option<
9523        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, func: *mut BNFunction),
9524    >,
9525}
9526#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9527const _: () = {
9528    ["Size of BNObjectDestructionCallbacks"]
9529        [::std::mem::size_of::<BNObjectDestructionCallbacks>() - 32usize];
9530    ["Alignment of BNObjectDestructionCallbacks"]
9531        [::std::mem::align_of::<BNObjectDestructionCallbacks>() - 8usize];
9532    ["Offset of field: BNObjectDestructionCallbacks::context"]
9533        [::std::mem::offset_of!(BNObjectDestructionCallbacks, context) - 0usize];
9534    ["Offset of field: BNObjectDestructionCallbacks::destructBinaryView"]
9535        [::std::mem::offset_of!(BNObjectDestructionCallbacks, destructBinaryView) - 8usize];
9536    ["Offset of field: BNObjectDestructionCallbacks::destructFileMetadata"]
9537        [::std::mem::offset_of!(BNObjectDestructionCallbacks, destructFileMetadata) - 16usize];
9538    ["Offset of field: BNObjectDestructionCallbacks::destructFunction"]
9539        [::std::mem::offset_of!(BNObjectDestructionCallbacks, destructFunction) - 24usize];
9540};
9541impl Default for BNObjectDestructionCallbacks {
9542    fn default() -> Self {
9543        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9544        unsafe {
9545            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9546            s.assume_init()
9547        }
9548    }
9549}
9550#[repr(C)]
9551#[derive(Debug, Copy, Clone)]
9552pub struct BNTypeContext {
9553    pub type_: *mut BNType,
9554    pub offset: usize,
9555}
9556#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9557const _: () = {
9558    ["Size of BNTypeContext"][::std::mem::size_of::<BNTypeContext>() - 16usize];
9559    ["Alignment of BNTypeContext"][::std::mem::align_of::<BNTypeContext>() - 8usize];
9560    ["Offset of field: BNTypeContext::type_"]
9561        [::std::mem::offset_of!(BNTypeContext, type_) - 0usize];
9562    ["Offset of field: BNTypeContext::offset"]
9563        [::std::mem::offset_of!(BNTypeContext, offset) - 8usize];
9564};
9565impl Default for BNTypeContext {
9566    fn default() -> Self {
9567        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9568        unsafe {
9569            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9570            s.assume_init()
9571        }
9572    }
9573}
9574#[repr(C)]
9575#[derive(Debug, Copy, Clone)]
9576pub struct BNCustomDataRenderer {
9577    pub context: *mut ::std::os::raw::c_void,
9578    pub freeObject: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
9579    pub isValidForData: ::std::option::Option<
9580        unsafe extern "C" fn(
9581            ctxt: *mut ::std::os::raw::c_void,
9582            view: *mut BNBinaryView,
9583            addr: u64,
9584            type_: *mut BNType,
9585            typeCtx: *mut BNTypeContext,
9586            ctxCount: usize,
9587        ) -> bool,
9588    >,
9589    pub getLinesForData: ::std::option::Option<
9590        unsafe extern "C" fn(
9591            ctxt: *mut ::std::os::raw::c_void,
9592            view: *mut BNBinaryView,
9593            addr: u64,
9594            type_: *mut BNType,
9595            prefix: *const BNInstructionTextToken,
9596            prefixCount: usize,
9597            width: usize,
9598            count: *mut usize,
9599            typeCtx: *mut BNTypeContext,
9600            ctxCount: usize,
9601            language: *const ::std::os::raw::c_char,
9602        ) -> *mut BNDisassemblyTextLine,
9603    >,
9604    pub freeLines: ::std::option::Option<
9605        unsafe extern "C" fn(
9606            ctx: *mut ::std::os::raw::c_void,
9607            lines: *mut BNDisassemblyTextLine,
9608            count: usize,
9609        ),
9610    >,
9611}
9612#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9613const _: () = {
9614    ["Size of BNCustomDataRenderer"][::std::mem::size_of::<BNCustomDataRenderer>() - 40usize];
9615    ["Alignment of BNCustomDataRenderer"][::std::mem::align_of::<BNCustomDataRenderer>() - 8usize];
9616    ["Offset of field: BNCustomDataRenderer::context"]
9617        [::std::mem::offset_of!(BNCustomDataRenderer, context) - 0usize];
9618    ["Offset of field: BNCustomDataRenderer::freeObject"]
9619        [::std::mem::offset_of!(BNCustomDataRenderer, freeObject) - 8usize];
9620    ["Offset of field: BNCustomDataRenderer::isValidForData"]
9621        [::std::mem::offset_of!(BNCustomDataRenderer, isValidForData) - 16usize];
9622    ["Offset of field: BNCustomDataRenderer::getLinesForData"]
9623        [::std::mem::offset_of!(BNCustomDataRenderer, getLinesForData) - 24usize];
9624    ["Offset of field: BNCustomDataRenderer::freeLines"]
9625        [::std::mem::offset_of!(BNCustomDataRenderer, freeLines) - 32usize];
9626};
9627impl Default for BNCustomDataRenderer {
9628    fn default() -> Self {
9629        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9630        unsafe {
9631            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9632            s.assume_init()
9633        }
9634    }
9635}
9636#[repr(u8)]
9637#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9638pub enum BNSectionSemantics {
9639    DefaultSectionSemantics = 0,
9640    ReadOnlyCodeSectionSemantics = 1,
9641    ReadOnlyDataSectionSemantics = 2,
9642    ReadWriteDataSectionSemantics = 3,
9643    ExternalSectionSemantics = 4,
9644}
9645#[repr(C)]
9646#[derive(Debug, Default, Copy, Clone)]
9647pub struct BNAddressRange {
9648    pub start: u64,
9649    pub end: u64,
9650}
9651#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9652const _: () = {
9653    ["Size of BNAddressRange"][::std::mem::size_of::<BNAddressRange>() - 16usize];
9654    ["Alignment of BNAddressRange"][::std::mem::align_of::<BNAddressRange>() - 8usize];
9655    ["Offset of field: BNAddressRange::start"]
9656        [::std::mem::offset_of!(BNAddressRange, start) - 0usize];
9657    ["Offset of field: BNAddressRange::end"][::std::mem::offset_of!(BNAddressRange, end) - 8usize];
9658};
9659#[repr(C)]
9660#[derive(Debug, Copy, Clone)]
9661pub struct BNSystemCallInfo {
9662    pub number: u32,
9663    pub name: BNQualifiedName,
9664    pub type_: *mut BNType,
9665}
9666#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9667const _: () = {
9668    ["Size of BNSystemCallInfo"][::std::mem::size_of::<BNSystemCallInfo>() - 40usize];
9669    ["Alignment of BNSystemCallInfo"][::std::mem::align_of::<BNSystemCallInfo>() - 8usize];
9670    ["Offset of field: BNSystemCallInfo::number"]
9671        [::std::mem::offset_of!(BNSystemCallInfo, number) - 0usize];
9672    ["Offset of field: BNSystemCallInfo::name"]
9673        [::std::mem::offset_of!(BNSystemCallInfo, name) - 8usize];
9674    ["Offset of field: BNSystemCallInfo::type_"]
9675        [::std::mem::offset_of!(BNSystemCallInfo, type_) - 32usize];
9676};
9677impl Default for BNSystemCallInfo {
9678    fn default() -> Self {
9679        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9680        unsafe {
9681            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9682            s.assume_init()
9683        }
9684    }
9685}
9686#[repr(u8)]
9687#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9688pub enum BNILBranchDependence {
9689    NotBranchDependent = 0,
9690    TrueBranchDependent = 1,
9691    FalseBranchDependent = 2,
9692}
9693#[repr(C)]
9694#[derive(Debug, Copy, Clone)]
9695pub struct BNILBranchInstructionAndDependence {
9696    pub branch: usize,
9697    pub dependence: BNILBranchDependence,
9698}
9699#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9700const _: () = {
9701    ["Size of BNILBranchInstructionAndDependence"]
9702        [::std::mem::size_of::<BNILBranchInstructionAndDependence>() - 16usize];
9703    ["Alignment of BNILBranchInstructionAndDependence"]
9704        [::std::mem::align_of::<BNILBranchInstructionAndDependence>() - 8usize];
9705    ["Offset of field: BNILBranchInstructionAndDependence::branch"]
9706        [::std::mem::offset_of!(BNILBranchInstructionAndDependence, branch) - 0usize];
9707    ["Offset of field: BNILBranchInstructionAndDependence::dependence"]
9708        [::std::mem::offset_of!(BNILBranchInstructionAndDependence, dependence) - 8usize];
9709};
9710impl Default for BNILBranchInstructionAndDependence {
9711    fn default() -> Self {
9712        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9713        unsafe {
9714            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9715            s.assume_init()
9716        }
9717    }
9718}
9719#[repr(C)]
9720#[derive(Debug, Copy, Clone)]
9721pub struct BNPerformanceInfo {
9722    pub name: *mut ::std::os::raw::c_char,
9723    pub seconds: f64,
9724}
9725#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9726const _: () = {
9727    ["Size of BNPerformanceInfo"][::std::mem::size_of::<BNPerformanceInfo>() - 16usize];
9728    ["Alignment of BNPerformanceInfo"][::std::mem::align_of::<BNPerformanceInfo>() - 8usize];
9729    ["Offset of field: BNPerformanceInfo::name"]
9730        [::std::mem::offset_of!(BNPerformanceInfo, name) - 0usize];
9731    ["Offset of field: BNPerformanceInfo::seconds"]
9732        [::std::mem::offset_of!(BNPerformanceInfo, seconds) - 8usize];
9733};
9734impl Default for BNPerformanceInfo {
9735    fn default() -> Self {
9736        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9737        unsafe {
9738            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9739            s.assume_init()
9740        }
9741    }
9742}
9743#[repr(C)]
9744#[derive(Debug, Copy, Clone)]
9745pub struct BNStatHistogram {
9746    pub name: *mut ::std::os::raw::c_char,
9747    pub total: u64,
9748    pub buckets: [u64; 65usize],
9749}
9750#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9751const _: () = {
9752    ["Size of BNStatHistogram"][::std::mem::size_of::<BNStatHistogram>() - 536usize];
9753    ["Alignment of BNStatHistogram"][::std::mem::align_of::<BNStatHistogram>() - 8usize];
9754    ["Offset of field: BNStatHistogram::name"]
9755        [::std::mem::offset_of!(BNStatHistogram, name) - 0usize];
9756    ["Offset of field: BNStatHistogram::total"]
9757        [::std::mem::offset_of!(BNStatHistogram, total) - 8usize];
9758    ["Offset of field: BNStatHistogram::buckets"]
9759        [::std::mem::offset_of!(BNStatHistogram, buckets) - 16usize];
9760};
9761impl Default for BNStatHistogram {
9762    fn default() -> Self {
9763        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9764        unsafe {
9765            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9766            s.assume_init()
9767        }
9768    }
9769}
9770#[repr(C)]
9771#[derive(Debug, Copy, Clone)]
9772pub struct BNMemoryUsageInfo {
9773    pub name: *mut ::std::os::raw::c_char,
9774    pub value: u64,
9775}
9776#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9777const _: () = {
9778    ["Size of BNMemoryUsageInfo"][::std::mem::size_of::<BNMemoryUsageInfo>() - 16usize];
9779    ["Alignment of BNMemoryUsageInfo"][::std::mem::align_of::<BNMemoryUsageInfo>() - 8usize];
9780    ["Offset of field: BNMemoryUsageInfo::name"]
9781        [::std::mem::offset_of!(BNMemoryUsageInfo, name) - 0usize];
9782    ["Offset of field: BNMemoryUsageInfo::value"]
9783        [::std::mem::offset_of!(BNMemoryUsageInfo, value) - 8usize];
9784};
9785impl Default for BNMemoryUsageInfo {
9786    fn default() -> Self {
9787        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9788        unsafe {
9789            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9790            s.assume_init()
9791        }
9792    }
9793}
9794#[repr(u8)]
9795#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9796pub enum BNMetadataType {
9797    InvalidDataType = 0,
9798    BooleanDataType = 1,
9799    StringDataType = 2,
9800    UnsignedIntegerDataType = 3,
9801    SignedIntegerDataType = 4,
9802    DoubleDataType = 5,
9803    RawDataType = 6,
9804    KeyValueDataType = 7,
9805    ArrayDataType = 8,
9806}
9807impl BNMetadataStoreFlag {
9808    #[doc = " The value is kept in memory for this session only."]
9809    pub const MetadataStoreEphemeral: BNMetadataStoreFlag = BNMetadataStoreFlag(0);
9810    #[doc = " Serialize the value into the BNDB snapshot so it survives reload."]
9811    pub const MetadataStorePersistent: BNMetadataStoreFlag = BNMetadataStoreFlag(1);
9812    #[doc = " Mark the file as analysis-changed (drives the \"dirty\" indicator). Set this for\n genuine user-visible edits. Leave it clear when caching re-derivable data."]
9813    pub const MetadataStoreMarksAnalysisChanged: BNMetadataStoreFlag = BNMetadataStoreFlag(2);
9814}
9815impl ::std::ops::BitOr<BNMetadataStoreFlag> for BNMetadataStoreFlag {
9816    type Output = Self;
9817    #[inline]
9818    fn bitor(self, other: Self) -> Self {
9819        BNMetadataStoreFlag(self.0 | other.0)
9820    }
9821}
9822impl ::std::ops::BitOrAssign for BNMetadataStoreFlag {
9823    #[inline]
9824    fn bitor_assign(&mut self, rhs: BNMetadataStoreFlag) {
9825        self.0 |= rhs.0;
9826    }
9827}
9828impl ::std::ops::BitAnd<BNMetadataStoreFlag> for BNMetadataStoreFlag {
9829    type Output = Self;
9830    #[inline]
9831    fn bitand(self, other: Self) -> Self {
9832        BNMetadataStoreFlag(self.0 & other.0)
9833    }
9834}
9835impl ::std::ops::BitAndAssign for BNMetadataStoreFlag {
9836    #[inline]
9837    fn bitand_assign(&mut self, rhs: BNMetadataStoreFlag) {
9838        self.0 &= rhs.0;
9839    }
9840}
9841#[repr(transparent)]
9842#[doc = " Controls how a metadata write behaves on a BinaryView or Function."]
9843#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9844pub struct BNMetadataStoreFlag(pub u8);
9845#[repr(C)]
9846#[derive(Debug, Default, Copy, Clone)]
9847pub struct BNRegisterStackAdjustment {
9848    pub regStack: u32,
9849    pub adjustment: i32,
9850    pub confidence: u8,
9851}
9852#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9853const _: () = {
9854    ["Size of BNRegisterStackAdjustment"]
9855        [::std::mem::size_of::<BNRegisterStackAdjustment>() - 12usize];
9856    ["Alignment of BNRegisterStackAdjustment"]
9857        [::std::mem::align_of::<BNRegisterStackAdjustment>() - 4usize];
9858    ["Offset of field: BNRegisterStackAdjustment::regStack"]
9859        [::std::mem::offset_of!(BNRegisterStackAdjustment, regStack) - 0usize];
9860    ["Offset of field: BNRegisterStackAdjustment::adjustment"]
9861        [::std::mem::offset_of!(BNRegisterStackAdjustment, adjustment) - 4usize];
9862    ["Offset of field: BNRegisterStackAdjustment::confidence"]
9863        [::std::mem::offset_of!(BNRegisterStackAdjustment, confidence) - 8usize];
9864};
9865#[repr(u8)]
9866#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9867pub enum BNReportType {
9868    PlainTextReportType = 0,
9869    MarkdownReportType = 1,
9870    HTMLReportType = 2,
9871    FlowGraphReportType = 3,
9872}
9873#[repr(C)]
9874#[derive(Debug, Copy, Clone)]
9875pub struct BNCustomFlowGraph {
9876    pub context: *mut ::std::os::raw::c_void,
9877    pub prepareForLayout:
9878        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
9879    pub populateNodes:
9880        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
9881    pub completeLayout:
9882        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
9883    pub update: ::std::option::Option<
9884        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> *mut BNFlowGraph,
9885    >,
9886    pub freeObject: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
9887    pub externalRefTaken:
9888        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
9889    pub externalRefReleased:
9890        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
9891}
9892#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9893const _: () = {
9894    ["Size of BNCustomFlowGraph"][::std::mem::size_of::<BNCustomFlowGraph>() - 64usize];
9895    ["Alignment of BNCustomFlowGraph"][::std::mem::align_of::<BNCustomFlowGraph>() - 8usize];
9896    ["Offset of field: BNCustomFlowGraph::context"]
9897        [::std::mem::offset_of!(BNCustomFlowGraph, context) - 0usize];
9898    ["Offset of field: BNCustomFlowGraph::prepareForLayout"]
9899        [::std::mem::offset_of!(BNCustomFlowGraph, prepareForLayout) - 8usize];
9900    ["Offset of field: BNCustomFlowGraph::populateNodes"]
9901        [::std::mem::offset_of!(BNCustomFlowGraph, populateNodes) - 16usize];
9902    ["Offset of field: BNCustomFlowGraph::completeLayout"]
9903        [::std::mem::offset_of!(BNCustomFlowGraph, completeLayout) - 24usize];
9904    ["Offset of field: BNCustomFlowGraph::update"]
9905        [::std::mem::offset_of!(BNCustomFlowGraph, update) - 32usize];
9906    ["Offset of field: BNCustomFlowGraph::freeObject"]
9907        [::std::mem::offset_of!(BNCustomFlowGraph, freeObject) - 40usize];
9908    ["Offset of field: BNCustomFlowGraph::externalRefTaken"]
9909        [::std::mem::offset_of!(BNCustomFlowGraph, externalRefTaken) - 48usize];
9910    ["Offset of field: BNCustomFlowGraph::externalRefReleased"]
9911        [::std::mem::offset_of!(BNCustomFlowGraph, externalRefReleased) - 56usize];
9912};
9913impl Default for BNCustomFlowGraph {
9914    fn default() -> Self {
9915        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9916        unsafe {
9917            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9918            s.assume_init()
9919        }
9920    }
9921}
9922#[repr(C)]
9923#[derive(Debug, Copy, Clone)]
9924pub struct BNCustomFlowGraphLayout {
9925    pub context: *mut ::std::os::raw::c_void,
9926    pub layout: ::std::option::Option<
9927        unsafe extern "C" fn(
9928            ctxt: *mut ::std::os::raw::c_void,
9929            graph: *mut BNFlowGraph,
9930            nodes: *mut *mut BNFlowGraphNode,
9931            nodeCount: usize,
9932        ) -> bool,
9933    >,
9934}
9935#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9936const _: () = {
9937    ["Size of BNCustomFlowGraphLayout"][::std::mem::size_of::<BNCustomFlowGraphLayout>() - 16usize];
9938    ["Alignment of BNCustomFlowGraphLayout"]
9939        [::std::mem::align_of::<BNCustomFlowGraphLayout>() - 8usize];
9940    ["Offset of field: BNCustomFlowGraphLayout::context"]
9941        [::std::mem::offset_of!(BNCustomFlowGraphLayout, context) - 0usize];
9942    ["Offset of field: BNCustomFlowGraphLayout::layout"]
9943        [::std::mem::offset_of!(BNCustomFlowGraphLayout, layout) - 8usize];
9944};
9945impl Default for BNCustomFlowGraphLayout {
9946    fn default() -> Self {
9947        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9948        unsafe {
9949            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9950            s.assume_init()
9951        }
9952    }
9953}
9954#[repr(C)]
9955#[derive(Debug, Default, Copy, Clone)]
9956pub struct BNRange {
9957    pub start: u64,
9958    pub end: u64,
9959}
9960#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9961const _: () = {
9962    ["Size of BNRange"][::std::mem::size_of::<BNRange>() - 16usize];
9963    ["Alignment of BNRange"][::std::mem::align_of::<BNRange>() - 8usize];
9964    ["Offset of field: BNRange::start"][::std::mem::offset_of!(BNRange, start) - 0usize];
9965    ["Offset of field: BNRange::end"][::std::mem::offset_of!(BNRange, end) - 8usize];
9966};
9967#[repr(u8)]
9968#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9969pub enum BNAnalysisSkipReason {
9970    NoSkipReason = 0,
9971    AlwaysSkipReason = 1,
9972    ExceedFunctionSizeSkipReason = 2,
9973    ExceedFunctionAnalysisTimeSkipReason = 3,
9974    ExceedFunctionUpdateCountSkipReason = 4,
9975    NewAutoFunctionAnalysisSuppressedReason = 5,
9976    BasicAnalysisSkipReason = 6,
9977    IntermediateAnalysisSkipReason = 7,
9978    AnalysisPipelineSuspendedReason = 8,
9979}
9980#[repr(u8)]
9981#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9982pub enum BNSettingsScope {
9983    SettingsInvalidScope = 0,
9984    SettingsAutoScope = 1,
9985    SettingsDefaultScope = 2,
9986    SettingsUserScope = 4,
9987    SettingsProjectScope = 8,
9988    SettingsResourceScope = 16,
9989}
9990#[repr(u8)]
9991#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9992pub enum BNLinearViewObjectIdentifierType {
9993    SingleLinearViewObject = 0,
9994    AddressLinearViewObject = 1,
9995    AddressRangeLinearViewObject = 2,
9996}
9997#[repr(C)]
9998#[derive(Debug, Copy, Clone)]
9999pub struct BNLinearViewObjectIdentifier {
10000    pub name: *mut ::std::os::raw::c_char,
10001    pub type_: BNLinearViewObjectIdentifierType,
10002    pub start: u64,
10003    pub end: u64,
10004}
10005#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10006const _: () = {
10007    ["Size of BNLinearViewObjectIdentifier"]
10008        [::std::mem::size_of::<BNLinearViewObjectIdentifier>() - 32usize];
10009    ["Alignment of BNLinearViewObjectIdentifier"]
10010        [::std::mem::align_of::<BNLinearViewObjectIdentifier>() - 8usize];
10011    ["Offset of field: BNLinearViewObjectIdentifier::name"]
10012        [::std::mem::offset_of!(BNLinearViewObjectIdentifier, name) - 0usize];
10013    ["Offset of field: BNLinearViewObjectIdentifier::type_"]
10014        [::std::mem::offset_of!(BNLinearViewObjectIdentifier, type_) - 8usize];
10015    ["Offset of field: BNLinearViewObjectIdentifier::start"]
10016        [::std::mem::offset_of!(BNLinearViewObjectIdentifier, start) - 16usize];
10017    ["Offset of field: BNLinearViewObjectIdentifier::end"]
10018        [::std::mem::offset_of!(BNLinearViewObjectIdentifier, end) - 24usize];
10019};
10020impl Default for BNLinearViewObjectIdentifier {
10021    fn default() -> Self {
10022        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10023        unsafe {
10024            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10025            s.assume_init()
10026        }
10027    }
10028}
10029#[repr(u8)]
10030#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
10031pub enum BNBinaryViewEventType {
10032    BinaryViewFinalizationEvent = 0,
10033    BinaryViewInitialAnalysisCompletionEvent = 1,
10034}
10035#[repr(u8)]
10036#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
10037pub enum BNDeadStoreElimination {
10038    DefaultDeadStoreElimination = 0,
10039    PreventDeadStoreElimination = 1,
10040    AllowDeadStoreElimination = 2,
10041}
10042#[repr(u8)]
10043#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
10044pub enum BNExprFolding {
10045    DefaultExprFolding = 0,
10046    PreventExprFolding = 1,
10047    AllowExprFolding = 2,
10048}
10049#[repr(u8)]
10050#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
10051pub enum BNEarlyReturn {
10052    DefaultEarlyReturn = 0,
10053    PreventEarlyReturn = 1,
10054    SmallestSideEarlyReturn = 2,
10055    TrueSideEarlyReturn = 3,
10056    FalseSideEarlyReturn = 4,
10057}
10058#[repr(u8)]
10059#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
10060pub enum BNSwitchRecovery {
10061    DefaultSwitchRecovery = 0,
10062    PreventSwitchRecovery = 1,
10063    AllowSwitchRecovery = 2,
10064}
10065#[repr(C)]
10066#[derive(Debug, Copy, Clone)]
10067pub struct BNDebugFunctionInfo {
10068    pub shortName: *mut ::std::os::raw::c_char,
10069    pub fullName: *mut ::std::os::raw::c_char,
10070    pub rawName: *mut ::std::os::raw::c_char,
10071    pub address: u64,
10072    pub type_: *mut BNType,
10073    pub platform: *mut BNPlatform,
10074    pub components: *mut *mut ::std::os::raw::c_char,
10075    pub componentN: usize,
10076    pub localVariables: *mut BNVariableNameAndType,
10077    pub localVariableN: usize,
10078}
10079#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10080const _: () = {
10081    ["Size of BNDebugFunctionInfo"][::std::mem::size_of::<BNDebugFunctionInfo>() - 80usize];
10082    ["Alignment of BNDebugFunctionInfo"][::std::mem::align_of::<BNDebugFunctionInfo>() - 8usize];
10083    ["Offset of field: BNDebugFunctionInfo::shortName"]
10084        [::std::mem::offset_of!(BNDebugFunctionInfo, shortName) - 0usize];
10085    ["Offset of field: BNDebugFunctionInfo::fullName"]
10086        [::std::mem::offset_of!(BNDebugFunctionInfo, fullName) - 8usize];
10087    ["Offset of field: BNDebugFunctionInfo::rawName"]
10088        [::std::mem::offset_of!(BNDebugFunctionInfo, rawName) - 16usize];
10089    ["Offset of field: BNDebugFunctionInfo::address"]
10090        [::std::mem::offset_of!(BNDebugFunctionInfo, address) - 24usize];
10091    ["Offset of field: BNDebugFunctionInfo::type_"]
10092        [::std::mem::offset_of!(BNDebugFunctionInfo, type_) - 32usize];
10093    ["Offset of field: BNDebugFunctionInfo::platform"]
10094        [::std::mem::offset_of!(BNDebugFunctionInfo, platform) - 40usize];
10095    ["Offset of field: BNDebugFunctionInfo::components"]
10096        [::std::mem::offset_of!(BNDebugFunctionInfo, components) - 48usize];
10097    ["Offset of field: BNDebugFunctionInfo::componentN"]
10098        [::std::mem::offset_of!(BNDebugFunctionInfo, componentN) - 56usize];
10099    ["Offset of field: BNDebugFunctionInfo::localVariables"]
10100        [::std::mem::offset_of!(BNDebugFunctionInfo, localVariables) - 64usize];
10101    ["Offset of field: BNDebugFunctionInfo::localVariableN"]
10102        [::std::mem::offset_of!(BNDebugFunctionInfo, localVariableN) - 72usize];
10103};
10104impl Default for BNDebugFunctionInfo {
10105    fn default() -> Self {
10106        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10107        unsafe {
10108            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10109            s.assume_init()
10110        }
10111    }
10112}
10113#[repr(C)]
10114#[derive(Debug, Copy, Clone)]
10115pub struct BNSecretsProviderCallbacks {
10116    pub context: *mut ::std::os::raw::c_void,
10117    pub hasData: ::std::option::Option<
10118        unsafe extern "C" fn(
10119            ctxt: *mut ::std::os::raw::c_void,
10120            key: *const ::std::os::raw::c_char,
10121        ) -> bool,
10122    >,
10123    pub getData: ::std::option::Option<
10124        unsafe extern "C" fn(
10125            ctxt: *mut ::std::os::raw::c_void,
10126            key: *const ::std::os::raw::c_char,
10127        ) -> *mut ::std::os::raw::c_char,
10128    >,
10129    pub storeData: ::std::option::Option<
10130        unsafe extern "C" fn(
10131            ctxt: *mut ::std::os::raw::c_void,
10132            key: *const ::std::os::raw::c_char,
10133            data: *const ::std::os::raw::c_char,
10134        ) -> bool,
10135    >,
10136    pub deleteData: ::std::option::Option<
10137        unsafe extern "C" fn(
10138            ctxt: *mut ::std::os::raw::c_void,
10139            key: *const ::std::os::raw::c_char,
10140        ) -> bool,
10141    >,
10142}
10143#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10144const _: () = {
10145    ["Size of BNSecretsProviderCallbacks"]
10146        [::std::mem::size_of::<BNSecretsProviderCallbacks>() - 40usize];
10147    ["Alignment of BNSecretsProviderCallbacks"]
10148        [::std::mem::align_of::<BNSecretsProviderCallbacks>() - 8usize];
10149    ["Offset of field: BNSecretsProviderCallbacks::context"]
10150        [::std::mem::offset_of!(BNSecretsProviderCallbacks, context) - 0usize];
10151    ["Offset of field: BNSecretsProviderCallbacks::hasData"]
10152        [::std::mem::offset_of!(BNSecretsProviderCallbacks, hasData) - 8usize];
10153    ["Offset of field: BNSecretsProviderCallbacks::getData"]
10154        [::std::mem::offset_of!(BNSecretsProviderCallbacks, getData) - 16usize];
10155    ["Offset of field: BNSecretsProviderCallbacks::storeData"]
10156        [::std::mem::offset_of!(BNSecretsProviderCallbacks, storeData) - 24usize];
10157    ["Offset of field: BNSecretsProviderCallbacks::deleteData"]
10158        [::std::mem::offset_of!(BNSecretsProviderCallbacks, deleteData) - 32usize];
10159};
10160impl Default for BNSecretsProviderCallbacks {
10161    fn default() -> Self {
10162        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10163        unsafe {
10164            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10165            s.assume_init()
10166        }
10167    }
10168}
10169#[repr(C)]
10170#[derive(Debug, Copy, Clone)]
10171pub struct BNMergedVariable {
10172    pub target: BNVariable,
10173    pub sources: *mut BNVariable,
10174    pub sourceCount: usize,
10175}
10176#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10177const _: () = {
10178    ["Size of BNMergedVariable"][::std::mem::size_of::<BNMergedVariable>() - 32usize];
10179    ["Alignment of BNMergedVariable"][::std::mem::align_of::<BNMergedVariable>() - 8usize];
10180    ["Offset of field: BNMergedVariable::target"]
10181        [::std::mem::offset_of!(BNMergedVariable, target) - 0usize];
10182    ["Offset of field: BNMergedVariable::sources"]
10183        [::std::mem::offset_of!(BNMergedVariable, sources) - 16usize];
10184    ["Offset of field: BNMergedVariable::sourceCount"]
10185        [::std::mem::offset_of!(BNMergedVariable, sourceCount) - 24usize];
10186};
10187impl Default for BNMergedVariable {
10188    fn default() -> Self {
10189        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10190        unsafe {
10191            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10192            s.assume_init()
10193        }
10194    }
10195}
10196#[repr(C)]
10197#[derive(Debug, Copy, Clone)]
10198pub struct BNEnterpriseServerCallbacks {
10199    pub context: *mut ::std::os::raw::c_void,
10200    pub licenseStatusChanged: ::std::option::Option<
10201        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, stillValid: bool),
10202    >,
10203}
10204#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10205const _: () = {
10206    ["Size of BNEnterpriseServerCallbacks"]
10207        [::std::mem::size_of::<BNEnterpriseServerCallbacks>() - 16usize];
10208    ["Alignment of BNEnterpriseServerCallbacks"]
10209        [::std::mem::align_of::<BNEnterpriseServerCallbacks>() - 8usize];
10210    ["Offset of field: BNEnterpriseServerCallbacks::context"]
10211        [::std::mem::offset_of!(BNEnterpriseServerCallbacks, context) - 0usize];
10212    ["Offset of field: BNEnterpriseServerCallbacks::licenseStatusChanged"]
10213        [::std::mem::offset_of!(BNEnterpriseServerCallbacks, licenseStatusChanged) - 8usize];
10214};
10215impl Default for BNEnterpriseServerCallbacks {
10216    fn default() -> Self {
10217        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10218        unsafe {
10219            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10220            s.assume_init()
10221        }
10222    }
10223}
10224#[repr(C)]
10225#[derive(Debug, Copy, Clone)]
10226pub struct BNTypeArchiveNotification {
10227    pub context: *mut ::std::os::raw::c_void,
10228    pub typeAdded: ::std::option::Option<
10229        unsafe extern "C" fn(
10230            ctxt: *mut ::std::os::raw::c_void,
10231            archive: *mut BNTypeArchive,
10232            id: *const ::std::os::raw::c_char,
10233            definition: *mut BNType,
10234        ),
10235    >,
10236    pub typeUpdated: ::std::option::Option<
10237        unsafe extern "C" fn(
10238            ctxt: *mut ::std::os::raw::c_void,
10239            archive: *mut BNTypeArchive,
10240            id: *const ::std::os::raw::c_char,
10241            oldDefinition: *mut BNType,
10242            newDefinition: *mut BNType,
10243        ),
10244    >,
10245    pub typeRenamed: ::std::option::Option<
10246        unsafe extern "C" fn(
10247            ctxt: *mut ::std::os::raw::c_void,
10248            archive: *mut BNTypeArchive,
10249            id: *const ::std::os::raw::c_char,
10250            oldName: *const BNQualifiedName,
10251            newName: *const BNQualifiedName,
10252        ),
10253    >,
10254    pub typeDeleted: ::std::option::Option<
10255        unsafe extern "C" fn(
10256            ctxt: *mut ::std::os::raw::c_void,
10257            archive: *mut BNTypeArchive,
10258            id: *const ::std::os::raw::c_char,
10259            definition: *mut BNType,
10260        ),
10261    >,
10262}
10263#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10264const _: () = {
10265    ["Size of BNTypeArchiveNotification"]
10266        [::std::mem::size_of::<BNTypeArchiveNotification>() - 40usize];
10267    ["Alignment of BNTypeArchiveNotification"]
10268        [::std::mem::align_of::<BNTypeArchiveNotification>() - 8usize];
10269    ["Offset of field: BNTypeArchiveNotification::context"]
10270        [::std::mem::offset_of!(BNTypeArchiveNotification, context) - 0usize];
10271    ["Offset of field: BNTypeArchiveNotification::typeAdded"]
10272        [::std::mem::offset_of!(BNTypeArchiveNotification, typeAdded) - 8usize];
10273    ["Offset of field: BNTypeArchiveNotification::typeUpdated"]
10274        [::std::mem::offset_of!(BNTypeArchiveNotification, typeUpdated) - 16usize];
10275    ["Offset of field: BNTypeArchiveNotification::typeRenamed"]
10276        [::std::mem::offset_of!(BNTypeArchiveNotification, typeRenamed) - 24usize];
10277    ["Offset of field: BNTypeArchiveNotification::typeDeleted"]
10278        [::std::mem::offset_of!(BNTypeArchiveNotification, typeDeleted) - 32usize];
10279};
10280impl Default for BNTypeArchiveNotification {
10281    fn default() -> Self {
10282        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10283        unsafe {
10284            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10285            s.assume_init()
10286        }
10287    }
10288}
10289#[repr(u8)]
10290#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
10291pub enum BNTypeContainerType {
10292    AnalysisTypeContainerType = 0,
10293    AnalysisAutoTypeContainerType = 1,
10294    AnalysisUserTypeContainerType = 2,
10295    TypeLibraryTypeContainerType = 3,
10296    TypeArchiveTypeContainerType = 4,
10297    DebugInfoTypeContainerType = 5,
10298    PlatformTypeContainerType = 6,
10299    EmptyTypeContainerType = 7,
10300    OtherTypeContainerType = 8,
10301}
10302#[repr(u8)]
10303#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
10304pub enum BNSyncStatus {
10305    NotSyncedSyncStatus = 0,
10306    NoChangesSyncStatus = 1,
10307    UnknownSyncStatus = 2,
10308    CanPushSyncStatus = 3,
10309    CanPullSyncStatus = 4,
10310    CanPushAndPullSyncStatus = 5,
10311    ConflictSyncStatus = 6,
10312}
10313#[repr(u8)]
10314#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
10315pub enum BNBaseAddressDetectionPOISetting {
10316    POIAnalysisStringsOnly = 0,
10317    POIAnalysisFunctionsOnly = 1,
10318    POIAnalysisAll = 2,
10319}
10320#[repr(u8)]
10321#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
10322pub enum BNBaseAddressDetectionAnalysisMode {
10323    InstructionAnalysisBaseAddressDetection = 0,
10324    SamplingBaseAddressDetection = 1,
10325}
10326#[repr(u8)]
10327#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
10328pub enum BNBaseAddressDetectionPOIType {
10329    POIString = 0,
10330    POIFunction = 1,
10331    POIDataVariable = 2,
10332    POIFileStart = 3,
10333    POIFileEnd = 4,
10334}
10335#[repr(u8)]
10336#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
10337pub enum BNBaseAddressDetectionConfidence {
10338    NoConfidence = 0,
10339    LowConfidence = 1,
10340    HighConfidence = 2,
10341}
10342#[repr(C)]
10343#[derive(Debug, Copy, Clone)]
10344pub struct BNBaseAddressDetectionCommonSettings {
10345    pub Architecture: *const ::std::os::raw::c_char,
10346    pub MinStrlen: u32,
10347    pub LowerBoundary: u64,
10348    pub UpperBoundary: u64,
10349}
10350#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10351const _: () = {
10352    ["Size of BNBaseAddressDetectionCommonSettings"]
10353        [::std::mem::size_of::<BNBaseAddressDetectionCommonSettings>() - 32usize];
10354    ["Alignment of BNBaseAddressDetectionCommonSettings"]
10355        [::std::mem::align_of::<BNBaseAddressDetectionCommonSettings>() - 8usize];
10356    ["Offset of field: BNBaseAddressDetectionCommonSettings::Architecture"]
10357        [::std::mem::offset_of!(BNBaseAddressDetectionCommonSettings, Architecture) - 0usize];
10358    ["Offset of field: BNBaseAddressDetectionCommonSettings::MinStrlen"]
10359        [::std::mem::offset_of!(BNBaseAddressDetectionCommonSettings, MinStrlen) - 8usize];
10360    ["Offset of field: BNBaseAddressDetectionCommonSettings::LowerBoundary"]
10361        [::std::mem::offset_of!(BNBaseAddressDetectionCommonSettings, LowerBoundary) - 16usize];
10362    ["Offset of field: BNBaseAddressDetectionCommonSettings::UpperBoundary"]
10363        [::std::mem::offset_of!(BNBaseAddressDetectionCommonSettings, UpperBoundary) - 24usize];
10364};
10365impl Default for BNBaseAddressDetectionCommonSettings {
10366    fn default() -> Self {
10367        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10368        unsafe {
10369            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10370            s.assume_init()
10371        }
10372    }
10373}
10374#[repr(C)]
10375#[derive(Debug, Copy, Clone)]
10376pub struct BNBaseAddressDetectionInstructionAnalysisSettings {
10377    pub Common: BNBaseAddressDetectionCommonSettings,
10378    pub Analysis: *const ::std::os::raw::c_char,
10379    pub Alignment: u32,
10380    pub POIAnalysis: BNBaseAddressDetectionPOISetting,
10381    pub MaxPointersPerCluster: u32,
10382}
10383#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10384const _: () = {
10385    ["Size of BNBaseAddressDetectionInstructionAnalysisSettings"]
10386        [::std::mem::size_of::<BNBaseAddressDetectionInstructionAnalysisSettings>() - 56usize];
10387    ["Alignment of BNBaseAddressDetectionInstructionAnalysisSettings"]
10388        [::std::mem::align_of::<BNBaseAddressDetectionInstructionAnalysisSettings>() - 8usize];
10389    ["Offset of field: BNBaseAddressDetectionInstructionAnalysisSettings::Common"][::std::mem::offset_of!(
10390        BNBaseAddressDetectionInstructionAnalysisSettings,
10391        Common
10392    ) - 0usize];
10393    ["Offset of field: BNBaseAddressDetectionInstructionAnalysisSettings::Analysis"][::std::mem::offset_of!(
10394        BNBaseAddressDetectionInstructionAnalysisSettings,
10395        Analysis
10396    ) - 32usize];
10397    ["Offset of field: BNBaseAddressDetectionInstructionAnalysisSettings::Alignment"][::std::mem::offset_of!(
10398        BNBaseAddressDetectionInstructionAnalysisSettings,
10399        Alignment
10400    ) - 40usize];
10401    ["Offset of field: BNBaseAddressDetectionInstructionAnalysisSettings::POIAnalysis"][::std::mem::offset_of!(
10402        BNBaseAddressDetectionInstructionAnalysisSettings,
10403        POIAnalysis
10404    )
10405        - 44usize];
10406    ["Offset of field: BNBaseAddressDetectionInstructionAnalysisSettings::MaxPointersPerCluster"][::std::mem::offset_of!(
10407        BNBaseAddressDetectionInstructionAnalysisSettings,
10408        MaxPointersPerCluster
10409    )
10410        - 48usize];
10411};
10412impl Default for BNBaseAddressDetectionInstructionAnalysisSettings {
10413    fn default() -> Self {
10414        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10415        unsafe {
10416            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10417            s.assume_init()
10418        }
10419    }
10420}
10421#[repr(C)]
10422#[derive(Debug, Copy, Clone)]
10423pub struct BNBaseAddressDetectionSamplingSettings {
10424    pub Common: BNBaseAddressDetectionCommonSettings,
10425    pub Alignment: u32,
10426}
10427#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10428const _: () = {
10429    ["Size of BNBaseAddressDetectionSamplingSettings"]
10430        [::std::mem::size_of::<BNBaseAddressDetectionSamplingSettings>() - 40usize];
10431    ["Alignment of BNBaseAddressDetectionSamplingSettings"]
10432        [::std::mem::align_of::<BNBaseAddressDetectionSamplingSettings>() - 8usize];
10433    ["Offset of field: BNBaseAddressDetectionSamplingSettings::Common"]
10434        [::std::mem::offset_of!(BNBaseAddressDetectionSamplingSettings, Common) - 0usize];
10435    ["Offset of field: BNBaseAddressDetectionSamplingSettings::Alignment"]
10436        [::std::mem::offset_of!(BNBaseAddressDetectionSamplingSettings, Alignment) - 32usize];
10437};
10438impl Default for BNBaseAddressDetectionSamplingSettings {
10439    fn default() -> Self {
10440        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10441        unsafe {
10442            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10443            s.assume_init()
10444        }
10445    }
10446}
10447#[repr(C)]
10448#[derive(Debug, Copy, Clone)]
10449pub struct BNBaseAddressDetectionSettings {
10450    pub Architecture: *const ::std::os::raw::c_char,
10451    pub Analysis: *const ::std::os::raw::c_char,
10452    pub MinStrlen: u32,
10453    pub Alignment: u32,
10454    pub LowerBoundary: u64,
10455    pub UpperBoundary: u64,
10456    pub POIAnalysis: BNBaseAddressDetectionPOISetting,
10457    pub MaxPointersPerCluster: u32,
10458    pub AnalysisMode: BNBaseAddressDetectionAnalysisMode,
10459}
10460#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10461const _: () = {
10462    ["Size of BNBaseAddressDetectionSettings"]
10463        [::std::mem::size_of::<BNBaseAddressDetectionSettings>() - 56usize];
10464    ["Alignment of BNBaseAddressDetectionSettings"]
10465        [::std::mem::align_of::<BNBaseAddressDetectionSettings>() - 8usize];
10466    ["Offset of field: BNBaseAddressDetectionSettings::Architecture"]
10467        [::std::mem::offset_of!(BNBaseAddressDetectionSettings, Architecture) - 0usize];
10468    ["Offset of field: BNBaseAddressDetectionSettings::Analysis"]
10469        [::std::mem::offset_of!(BNBaseAddressDetectionSettings, Analysis) - 8usize];
10470    ["Offset of field: BNBaseAddressDetectionSettings::MinStrlen"]
10471        [::std::mem::offset_of!(BNBaseAddressDetectionSettings, MinStrlen) - 16usize];
10472    ["Offset of field: BNBaseAddressDetectionSettings::Alignment"]
10473        [::std::mem::offset_of!(BNBaseAddressDetectionSettings, Alignment) - 20usize];
10474    ["Offset of field: BNBaseAddressDetectionSettings::LowerBoundary"]
10475        [::std::mem::offset_of!(BNBaseAddressDetectionSettings, LowerBoundary) - 24usize];
10476    ["Offset of field: BNBaseAddressDetectionSettings::UpperBoundary"]
10477        [::std::mem::offset_of!(BNBaseAddressDetectionSettings, UpperBoundary) - 32usize];
10478    ["Offset of field: BNBaseAddressDetectionSettings::POIAnalysis"]
10479        [::std::mem::offset_of!(BNBaseAddressDetectionSettings, POIAnalysis) - 40usize];
10480    ["Offset of field: BNBaseAddressDetectionSettings::MaxPointersPerCluster"]
10481        [::std::mem::offset_of!(BNBaseAddressDetectionSettings, MaxPointersPerCluster) - 44usize];
10482    ["Offset of field: BNBaseAddressDetectionSettings::AnalysisMode"]
10483        [::std::mem::offset_of!(BNBaseAddressDetectionSettings, AnalysisMode) - 48usize];
10484};
10485impl Default for BNBaseAddressDetectionSettings {
10486    fn default() -> Self {
10487        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10488        unsafe {
10489            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10490            s.assume_init()
10491        }
10492    }
10493}
10494#[repr(C)]
10495#[derive(Debug, Copy, Clone)]
10496pub struct BNBaseAddressDetectionReason {
10497    pub Pointer: u64,
10498    pub POIOffset: u64,
10499    pub POIType: BNBaseAddressDetectionPOIType,
10500}
10501#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10502const _: () = {
10503    ["Size of BNBaseAddressDetectionReason"]
10504        [::std::mem::size_of::<BNBaseAddressDetectionReason>() - 24usize];
10505    ["Alignment of BNBaseAddressDetectionReason"]
10506        [::std::mem::align_of::<BNBaseAddressDetectionReason>() - 8usize];
10507    ["Offset of field: BNBaseAddressDetectionReason::Pointer"]
10508        [::std::mem::offset_of!(BNBaseAddressDetectionReason, Pointer) - 0usize];
10509    ["Offset of field: BNBaseAddressDetectionReason::POIOffset"]
10510        [::std::mem::offset_of!(BNBaseAddressDetectionReason, POIOffset) - 8usize];
10511    ["Offset of field: BNBaseAddressDetectionReason::POIType"]
10512        [::std::mem::offset_of!(BNBaseAddressDetectionReason, POIType) - 16usize];
10513};
10514impl Default for BNBaseAddressDetectionReason {
10515    fn default() -> Self {
10516        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10517        unsafe {
10518            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10519            s.assume_init()
10520        }
10521    }
10522}
10523#[repr(C)]
10524#[derive(Debug, Default, Copy, Clone)]
10525pub struct BNBaseAddressDetectionScore {
10526    pub Score: usize,
10527    pub BaseAddress: u64,
10528}
10529#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10530const _: () = {
10531    ["Size of BNBaseAddressDetectionScore"]
10532        [::std::mem::size_of::<BNBaseAddressDetectionScore>() - 16usize];
10533    ["Alignment of BNBaseAddressDetectionScore"]
10534        [::std::mem::align_of::<BNBaseAddressDetectionScore>() - 8usize];
10535    ["Offset of field: BNBaseAddressDetectionScore::Score"]
10536        [::std::mem::offset_of!(BNBaseAddressDetectionScore, Score) - 0usize];
10537    ["Offset of field: BNBaseAddressDetectionScore::BaseAddress"]
10538        [::std::mem::offset_of!(BNBaseAddressDetectionScore, BaseAddress) - 8usize];
10539};
10540#[repr(u8)]
10541#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
10542pub enum BNCollaborationPermissionLevel {
10543    AdminPermission = 1,
10544    EditPermission = 2,
10545    ViewPermission = 3,
10546}
10547#[repr(u8)]
10548#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
10549pub enum BNRemoteFileType {
10550    #[doc = " \"RW\""]
10551    RawDataFileType = 0,
10552    #[doc = " \"BV\""]
10553    BinaryViewAnalysisFileType = 1,
10554    #[doc = " \"TA\""]
10555    TypeArchiveFileType = 2,
10556    #[doc = " Others"]
10557    UnknownFileType = 3,
10558}
10559#[repr(u8)]
10560#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
10561pub enum BNMergeConflictDataType {
10562    TextConflictDataType = 0,
10563    JsonConflictDataType = 1,
10564    BinaryConflictDataType = 2,
10565}
10566#[repr(C)]
10567#[derive(Debug, Copy, Clone)]
10568pub struct BNAnalysisMergeConflictSplitterCallbacks {
10569    pub context: *mut ::std::os::raw::c_void,
10570    pub getName: ::std::option::Option<
10571        unsafe extern "C" fn(context: *mut ::std::os::raw::c_void) -> *mut ::std::os::raw::c_char,
10572    >,
10573    pub reset: ::std::option::Option<unsafe extern "C" fn(context: *mut ::std::os::raw::c_void)>,
10574    pub finished: ::std::option::Option<unsafe extern "C" fn(context: *mut ::std::os::raw::c_void)>,
10575    pub canSplit: ::std::option::Option<
10576        unsafe extern "C" fn(
10577            context: *mut ::std::os::raw::c_void,
10578            key: *const ::std::os::raw::c_char,
10579            conflict: *const BNAnalysisMergeConflict,
10580        ) -> bool,
10581    >,
10582    pub split: ::std::option::Option<
10583        unsafe extern "C" fn(
10584            context: *mut ::std::os::raw::c_void,
10585            originalKey: *const ::std::os::raw::c_char,
10586            originalConflict: *const BNAnalysisMergeConflict,
10587            result: *mut BNKeyValueStore,
10588            newKeys: *mut *mut *mut ::std::os::raw::c_char,
10589            newConflicts: *mut *mut *mut BNAnalysisMergeConflict,
10590            newCount: *mut usize,
10591        ) -> bool,
10592    >,
10593    pub freeName: ::std::option::Option<
10594        unsafe extern "C" fn(
10595            context: *mut ::std::os::raw::c_void,
10596            name: *mut ::std::os::raw::c_char,
10597        ),
10598    >,
10599    pub freeKeyList: ::std::option::Option<
10600        unsafe extern "C" fn(
10601            context: *mut ::std::os::raw::c_void,
10602            keyList: *mut *mut ::std::os::raw::c_char,
10603            count: usize,
10604        ),
10605    >,
10606    pub freeConflictList: ::std::option::Option<
10607        unsafe extern "C" fn(
10608            context: *mut ::std::os::raw::c_void,
10609            conflictList: *mut *mut BNAnalysisMergeConflict,
10610            count: usize,
10611        ),
10612    >,
10613}
10614#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10615const _: () = {
10616    ["Size of BNAnalysisMergeConflictSplitterCallbacks"]
10617        [::std::mem::size_of::<BNAnalysisMergeConflictSplitterCallbacks>() - 72usize];
10618    ["Alignment of BNAnalysisMergeConflictSplitterCallbacks"]
10619        [::std::mem::align_of::<BNAnalysisMergeConflictSplitterCallbacks>() - 8usize];
10620    ["Offset of field: BNAnalysisMergeConflictSplitterCallbacks::context"]
10621        [::std::mem::offset_of!(BNAnalysisMergeConflictSplitterCallbacks, context) - 0usize];
10622    ["Offset of field: BNAnalysisMergeConflictSplitterCallbacks::getName"]
10623        [::std::mem::offset_of!(BNAnalysisMergeConflictSplitterCallbacks, getName) - 8usize];
10624    ["Offset of field: BNAnalysisMergeConflictSplitterCallbacks::reset"]
10625        [::std::mem::offset_of!(BNAnalysisMergeConflictSplitterCallbacks, reset) - 16usize];
10626    ["Offset of field: BNAnalysisMergeConflictSplitterCallbacks::finished"]
10627        [::std::mem::offset_of!(BNAnalysisMergeConflictSplitterCallbacks, finished) - 24usize];
10628    ["Offset of field: BNAnalysisMergeConflictSplitterCallbacks::canSplit"]
10629        [::std::mem::offset_of!(BNAnalysisMergeConflictSplitterCallbacks, canSplit) - 32usize];
10630    ["Offset of field: BNAnalysisMergeConflictSplitterCallbacks::split"]
10631        [::std::mem::offset_of!(BNAnalysisMergeConflictSplitterCallbacks, split) - 40usize];
10632    ["Offset of field: BNAnalysisMergeConflictSplitterCallbacks::freeName"]
10633        [::std::mem::offset_of!(BNAnalysisMergeConflictSplitterCallbacks, freeName) - 48usize];
10634    ["Offset of field: BNAnalysisMergeConflictSplitterCallbacks::freeKeyList"]
10635        [::std::mem::offset_of!(BNAnalysisMergeConflictSplitterCallbacks, freeKeyList) - 56usize];
10636    ["Offset of field: BNAnalysisMergeConflictSplitterCallbacks::freeConflictList"][::std::mem::offset_of!(
10637        BNAnalysisMergeConflictSplitterCallbacks,
10638        freeConflictList
10639    ) - 64usize];
10640};
10641impl Default for BNAnalysisMergeConflictSplitterCallbacks {
10642    fn default() -> Self {
10643        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10644        unsafe {
10645            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10646            s.assume_init()
10647        }
10648    }
10649}
10650#[repr(C)]
10651#[derive(Debug, Copy, Clone)]
10652pub struct BNDemanglerConfig {
10653    pub platform: *mut BNPlatform,
10654    pub view: *mut BNBinaryView,
10655    pub simplifyTemplates: bool,
10656}
10657#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10658const _: () = {
10659    ["Size of BNDemanglerConfig"][::std::mem::size_of::<BNDemanglerConfig>() - 24usize];
10660    ["Alignment of BNDemanglerConfig"][::std::mem::align_of::<BNDemanglerConfig>() - 8usize];
10661    ["Offset of field: BNDemanglerConfig::platform"]
10662        [::std::mem::offset_of!(BNDemanglerConfig, platform) - 0usize];
10663    ["Offset of field: BNDemanglerConfig::view"]
10664        [::std::mem::offset_of!(BNDemanglerConfig, view) - 8usize];
10665    ["Offset of field: BNDemanglerConfig::simplifyTemplates"]
10666        [::std::mem::offset_of!(BNDemanglerConfig, simplifyTemplates) - 16usize];
10667};
10668impl Default for BNDemanglerConfig {
10669    fn default() -> Self {
10670        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10671        unsafe {
10672            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10673            s.assume_init()
10674        }
10675    }
10676}
10677#[repr(C)]
10678#[derive(Debug, Copy, Clone)]
10679pub struct BNDemanglerResult {
10680    pub name: BNQualifiedName,
10681    pub type_: *mut BNType,
10682}
10683#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10684const _: () = {
10685    ["Size of BNDemanglerResult"][::std::mem::size_of::<BNDemanglerResult>() - 32usize];
10686    ["Alignment of BNDemanglerResult"][::std::mem::align_of::<BNDemanglerResult>() - 8usize];
10687    ["Offset of field: BNDemanglerResult::name"]
10688        [::std::mem::offset_of!(BNDemanglerResult, name) - 0usize];
10689    ["Offset of field: BNDemanglerResult::type_"]
10690        [::std::mem::offset_of!(BNDemanglerResult, type_) - 24usize];
10691};
10692impl Default for BNDemanglerResult {
10693    fn default() -> Self {
10694        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10695        unsafe {
10696            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10697            s.assume_init()
10698        }
10699    }
10700}
10701#[repr(C)]
10702#[derive(Debug, Copy, Clone)]
10703pub struct BNDemanglerCallbacks {
10704    pub context: *mut ::std::os::raw::c_void,
10705    pub isMangledString: ::std::option::Option<
10706        unsafe extern "C" fn(
10707            ctxt: *mut ::std::os::raw::c_void,
10708            name: *const ::std::os::raw::c_char,
10709        ) -> bool,
10710    >,
10711    pub demangle: ::std::option::Option<
10712        unsafe extern "C" fn(
10713            ctxt: *mut ::std::os::raw::c_void,
10714            name: *const ::std::os::raw::c_char,
10715            config: *const BNDemanglerConfig,
10716            result: *mut BNDemanglerResult,
10717        ) -> bool,
10718    >,
10719    pub freeResult: ::std::option::Option<
10720        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, result: *mut BNDemanglerResult),
10721    >,
10722}
10723#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10724const _: () = {
10725    ["Size of BNDemanglerCallbacks"][::std::mem::size_of::<BNDemanglerCallbacks>() - 32usize];
10726    ["Alignment of BNDemanglerCallbacks"][::std::mem::align_of::<BNDemanglerCallbacks>() - 8usize];
10727    ["Offset of field: BNDemanglerCallbacks::context"]
10728        [::std::mem::offset_of!(BNDemanglerCallbacks, context) - 0usize];
10729    ["Offset of field: BNDemanglerCallbacks::isMangledString"]
10730        [::std::mem::offset_of!(BNDemanglerCallbacks, isMangledString) - 8usize];
10731    ["Offset of field: BNDemanglerCallbacks::demangle"]
10732        [::std::mem::offset_of!(BNDemanglerCallbacks, demangle) - 16usize];
10733    ["Offset of field: BNDemanglerCallbacks::freeResult"]
10734        [::std::mem::offset_of!(BNDemanglerCallbacks, freeResult) - 24usize];
10735};
10736impl Default for BNDemanglerCallbacks {
10737    fn default() -> Self {
10738        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10739        unsafe {
10740            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10741            s.assume_init()
10742        }
10743    }
10744}
10745#[repr(u8)]
10746#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
10747pub enum BNScopeType {
10748    OneLineScopeType = 0,
10749    HasSubScopeScopeType = 1,
10750    BlockScopeType = 2,
10751    SwitchScopeType = 3,
10752    CaseScopeType = 4,
10753}
10754#[repr(u8)]
10755#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
10756pub enum BNBraceRequirement {
10757    OptionalBraces = 0,
10758    BracesNotAllowed = 1,
10759    BracesAlwaysRequired = 2,
10760}
10761#[repr(C)]
10762#[derive(Debug, Default, Copy, Clone)]
10763pub struct BNTokenEmitterExpr {
10764    pub address: u64,
10765    pub sourceOperand: u32,
10766    pub exprIndex: usize,
10767    pub instrIndex: usize,
10768}
10769#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10770const _: () = {
10771    ["Size of BNTokenEmitterExpr"][::std::mem::size_of::<BNTokenEmitterExpr>() - 32usize];
10772    ["Alignment of BNTokenEmitterExpr"][::std::mem::align_of::<BNTokenEmitterExpr>() - 8usize];
10773    ["Offset of field: BNTokenEmitterExpr::address"]
10774        [::std::mem::offset_of!(BNTokenEmitterExpr, address) - 0usize];
10775    ["Offset of field: BNTokenEmitterExpr::sourceOperand"]
10776        [::std::mem::offset_of!(BNTokenEmitterExpr, sourceOperand) - 8usize];
10777    ["Offset of field: BNTokenEmitterExpr::exprIndex"]
10778        [::std::mem::offset_of!(BNTokenEmitterExpr, exprIndex) - 16usize];
10779    ["Offset of field: BNTokenEmitterExpr::instrIndex"]
10780        [::std::mem::offset_of!(BNTokenEmitterExpr, instrIndex) - 24usize];
10781};
10782#[repr(u8)]
10783#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
10784pub enum BNOperatorPrecedence {
10785    TopLevelOperatorPrecedence = 0,
10786    AssignmentOperatorPrecedence = 1,
10787    TernaryOperatorPrecedence = 2,
10788    LogicalOrOperatorPrecedence = 3,
10789    LogicalAndOperatorPrecedence = 4,
10790    BitwiseOrOperatorPrecedence = 5,
10791    BitwiseXorOperatorPrecedence = 6,
10792    BitwiseAndOperatorPrecedence = 7,
10793    EqualityOperatorPrecedence = 8,
10794    CompareOperatorPrecedence = 9,
10795    ShiftOperatorPrecedence = 10,
10796    AddOperatorPrecedence = 11,
10797    SubOperatorPrecedence = 12,
10798    MultiplyOperatorPrecedence = 13,
10799    DivideOperatorPrecedence = 14,
10800    LowUnaryOperatorPrecedence = 15,
10801    UnaryOperatorPrecedence = 16,
10802    HighUnaryOperatorPrecedence = 17,
10803    MemberAndFunctionOperatorPrecedence = 18,
10804    ScopeOperatorPrecedence = 19,
10805}
10806#[repr(u8)]
10807#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
10808pub enum BNSymbolDisplayType {
10809    DisplaySymbolOnly = 0,
10810    AddressOfDataSymbols = 1,
10811    DereferenceNonDataSymbols = 2,
10812}
10813#[repr(u8)]
10814#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
10815pub enum BNSymbolDisplayResult {
10816    NoSymbolAvailable = 0,
10817    DataSymbolResult = 1,
10818    OtherSymbolResult = 2,
10819}
10820#[repr(C)]
10821#[derive(Debug, Copy, Clone)]
10822pub struct BNCustomLanguageRepresentationFunction {
10823    pub context: *mut ::std::os::raw::c_void,
10824    pub freeObject: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
10825    pub externalRefTaken:
10826        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
10827    pub externalRefReleased:
10828        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
10829    pub initTokenEmitter: ::std::option::Option<
10830        unsafe extern "C" fn(
10831            ctxt: *mut ::std::os::raw::c_void,
10832            tokens: *mut BNHighLevelILTokenEmitter,
10833        ),
10834    >,
10835    pub getExprText: ::std::option::Option<
10836        unsafe extern "C" fn(
10837            ctxt: *mut ::std::os::raw::c_void,
10838            il: *mut BNHighLevelILFunction,
10839            exprIndex: usize,
10840            tokens: *mut BNHighLevelILTokenEmitter,
10841            settings: *mut BNDisassemblySettings,
10842            asFullAst: bool,
10843            precedence: BNOperatorPrecedence,
10844            statement: bool,
10845        ),
10846    >,
10847    pub beginLines: ::std::option::Option<
10848        unsafe extern "C" fn(
10849            ctxt: *mut ::std::os::raw::c_void,
10850            il: *mut BNHighLevelILFunction,
10851            exprIndex: usize,
10852            tokens: *mut BNHighLevelILTokenEmitter,
10853        ),
10854    >,
10855    pub endLines: ::std::option::Option<
10856        unsafe extern "C" fn(
10857            ctxt: *mut ::std::os::raw::c_void,
10858            il: *mut BNHighLevelILFunction,
10859            exprIndex: usize,
10860            tokens: *mut BNHighLevelILTokenEmitter,
10861        ),
10862    >,
10863    pub getCommentStartString: ::std::option::Option<
10864        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> *mut ::std::os::raw::c_char,
10865    >,
10866    pub getCommentEndString: ::std::option::Option<
10867        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> *mut ::std::os::raw::c_char,
10868    >,
10869    pub getAnnotationStartString: ::std::option::Option<
10870        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> *mut ::std::os::raw::c_char,
10871    >,
10872    pub getAnnotationEndString: ::std::option::Option<
10873        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> *mut ::std::os::raw::c_char,
10874    >,
10875}
10876#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10877const _: () = {
10878    ["Size of BNCustomLanguageRepresentationFunction"]
10879        [::std::mem::size_of::<BNCustomLanguageRepresentationFunction>() - 96usize];
10880    ["Alignment of BNCustomLanguageRepresentationFunction"]
10881        [::std::mem::align_of::<BNCustomLanguageRepresentationFunction>() - 8usize];
10882    ["Offset of field: BNCustomLanguageRepresentationFunction::context"]
10883        [::std::mem::offset_of!(BNCustomLanguageRepresentationFunction, context) - 0usize];
10884    ["Offset of field: BNCustomLanguageRepresentationFunction::freeObject"]
10885        [::std::mem::offset_of!(BNCustomLanguageRepresentationFunction, freeObject) - 8usize];
10886    ["Offset of field: BNCustomLanguageRepresentationFunction::externalRefTaken"][::std::mem::offset_of!(
10887        BNCustomLanguageRepresentationFunction,
10888        externalRefTaken
10889    ) - 16usize];
10890    ["Offset of field: BNCustomLanguageRepresentationFunction::externalRefReleased"][::std::mem::offset_of!(
10891        BNCustomLanguageRepresentationFunction,
10892        externalRefReleased
10893    ) - 24usize];
10894    ["Offset of field: BNCustomLanguageRepresentationFunction::initTokenEmitter"][::std::mem::offset_of!(
10895        BNCustomLanguageRepresentationFunction,
10896        initTokenEmitter
10897    ) - 32usize];
10898    ["Offset of field: BNCustomLanguageRepresentationFunction::getExprText"]
10899        [::std::mem::offset_of!(BNCustomLanguageRepresentationFunction, getExprText) - 40usize];
10900    ["Offset of field: BNCustomLanguageRepresentationFunction::beginLines"]
10901        [::std::mem::offset_of!(BNCustomLanguageRepresentationFunction, beginLines) - 48usize];
10902    ["Offset of field: BNCustomLanguageRepresentationFunction::endLines"]
10903        [::std::mem::offset_of!(BNCustomLanguageRepresentationFunction, endLines) - 56usize];
10904    ["Offset of field: BNCustomLanguageRepresentationFunction::getCommentStartString"][::std::mem::offset_of!(
10905        BNCustomLanguageRepresentationFunction,
10906        getCommentStartString
10907    ) - 64usize];
10908    ["Offset of field: BNCustomLanguageRepresentationFunction::getCommentEndString"][::std::mem::offset_of!(
10909        BNCustomLanguageRepresentationFunction,
10910        getCommentEndString
10911    ) - 72usize];
10912    ["Offset of field: BNCustomLanguageRepresentationFunction::getAnnotationStartString"][::std::mem::offset_of!(
10913        BNCustomLanguageRepresentationFunction,
10914        getAnnotationStartString
10915    )
10916        - 80usize];
10917    ["Offset of field: BNCustomLanguageRepresentationFunction::getAnnotationEndString"][::std::mem::offset_of!(
10918        BNCustomLanguageRepresentationFunction,
10919        getAnnotationEndString
10920    )
10921        - 88usize];
10922};
10923impl Default for BNCustomLanguageRepresentationFunction {
10924    fn default() -> Self {
10925        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10926        unsafe {
10927            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10928            s.assume_init()
10929        }
10930    }
10931}
10932#[repr(C)]
10933#[derive(Debug, Copy, Clone)]
10934pub struct BNCustomLanguageRepresentationFunctionType {
10935    pub context: *mut ::std::os::raw::c_void,
10936    pub create: ::std::option::Option<
10937        unsafe extern "C" fn(
10938            ctxt: *mut ::std::os::raw::c_void,
10939            arch: *mut BNArchitecture,
10940            owner: *mut BNFunction,
10941            highLevelIL: *mut BNHighLevelILFunction,
10942        ) -> *mut BNLanguageRepresentationFunction,
10943    >,
10944    pub isValid: ::std::option::Option<
10945        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, view: *mut BNBinaryView) -> bool,
10946    >,
10947    pub getTypePrinter: ::std::option::Option<
10948        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> *mut BNTypePrinter,
10949    >,
10950    pub getTypeParser: ::std::option::Option<
10951        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> *mut BNTypeParser,
10952    >,
10953    pub getLineFormatter: ::std::option::Option<
10954        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> *mut BNLineFormatter,
10955    >,
10956    pub getFunctionTypeTokens: ::std::option::Option<
10957        unsafe extern "C" fn(
10958            ctxt: *mut ::std::os::raw::c_void,
10959            func: *mut BNFunction,
10960            settings: *mut BNDisassemblySettings,
10961            count: *mut usize,
10962        ) -> *mut BNDisassemblyTextLine,
10963    >,
10964    pub freeLines: ::std::option::Option<
10965        unsafe extern "C" fn(
10966            ctxt: *mut ::std::os::raw::c_void,
10967            lines: *mut BNDisassemblyTextLine,
10968            count: usize,
10969        ),
10970    >,
10971}
10972#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10973const _: () = {
10974    ["Size of BNCustomLanguageRepresentationFunctionType"]
10975        [::std::mem::size_of::<BNCustomLanguageRepresentationFunctionType>() - 64usize];
10976    ["Alignment of BNCustomLanguageRepresentationFunctionType"]
10977        [::std::mem::align_of::<BNCustomLanguageRepresentationFunctionType>() - 8usize];
10978    ["Offset of field: BNCustomLanguageRepresentationFunctionType::context"]
10979        [::std::mem::offset_of!(BNCustomLanguageRepresentationFunctionType, context) - 0usize];
10980    ["Offset of field: BNCustomLanguageRepresentationFunctionType::create"]
10981        [::std::mem::offset_of!(BNCustomLanguageRepresentationFunctionType, create) - 8usize];
10982    ["Offset of field: BNCustomLanguageRepresentationFunctionType::isValid"]
10983        [::std::mem::offset_of!(BNCustomLanguageRepresentationFunctionType, isValid) - 16usize];
10984    ["Offset of field: BNCustomLanguageRepresentationFunctionType::getTypePrinter"][::std::mem::offset_of!(
10985        BNCustomLanguageRepresentationFunctionType,
10986        getTypePrinter
10987    ) - 24usize];
10988    ["Offset of field: BNCustomLanguageRepresentationFunctionType::getTypeParser"][::std::mem::offset_of!(
10989        BNCustomLanguageRepresentationFunctionType,
10990        getTypeParser
10991    ) - 32usize];
10992    ["Offset of field: BNCustomLanguageRepresentationFunctionType::getLineFormatter"][::std::mem::offset_of!(
10993        BNCustomLanguageRepresentationFunctionType,
10994        getLineFormatter
10995    ) - 40usize];
10996    ["Offset of field: BNCustomLanguageRepresentationFunctionType::getFunctionTypeTokens"][::std::mem::offset_of!(
10997        BNCustomLanguageRepresentationFunctionType,
10998        getFunctionTypeTokens
10999    )
11000        - 48usize];
11001    ["Offset of field: BNCustomLanguageRepresentationFunctionType::freeLines"]
11002        [::std::mem::offset_of!(BNCustomLanguageRepresentationFunctionType, freeLines) - 56usize];
11003};
11004impl Default for BNCustomLanguageRepresentationFunctionType {
11005    fn default() -> Self {
11006        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11007        unsafe {
11008            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11009            s.assume_init()
11010        }
11011    }
11012}
11013#[repr(u8)]
11014#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
11015pub enum BNBuiltinType {
11016    BuiltinNone = 0,
11017    BuiltinMemcpy = 1,
11018    BuiltinMemset = 2,
11019    BuiltinStrncpy = 3,
11020    BuiltinStrcpy = 4,
11021    BuiltinWcscpy = 5,
11022    BuiltinWmemcpy = 6,
11023}
11024#[repr(C)]
11025#[derive(Debug, Default, Copy, Clone)]
11026pub struct BNSegmentInfo {
11027    pub start: u64,
11028    pub length: u64,
11029    pub dataOffset: u64,
11030    pub dataLength: u64,
11031    pub flags: u32,
11032}
11033#[allow(clippy::unnecessary_operation, clippy::identity_op)]
11034const _: () = {
11035    ["Size of BNSegmentInfo"][::std::mem::size_of::<BNSegmentInfo>() - 40usize];
11036    ["Alignment of BNSegmentInfo"][::std::mem::align_of::<BNSegmentInfo>() - 8usize];
11037    ["Offset of field: BNSegmentInfo::start"]
11038        [::std::mem::offset_of!(BNSegmentInfo, start) - 0usize];
11039    ["Offset of field: BNSegmentInfo::length"]
11040        [::std::mem::offset_of!(BNSegmentInfo, length) - 8usize];
11041    ["Offset of field: BNSegmentInfo::dataOffset"]
11042        [::std::mem::offset_of!(BNSegmentInfo, dataOffset) - 16usize];
11043    ["Offset of field: BNSegmentInfo::dataLength"]
11044        [::std::mem::offset_of!(BNSegmentInfo, dataLength) - 24usize];
11045    ["Offset of field: BNSegmentInfo::flags"]
11046        [::std::mem::offset_of!(BNSegmentInfo, flags) - 32usize];
11047};
11048#[repr(C)]
11049#[derive(Debug, Copy, Clone)]
11050pub struct BNSectionInfo {
11051    pub name: *const ::std::os::raw::c_char,
11052    pub start: u64,
11053    pub length: u64,
11054    pub semantics: BNSectionSemantics,
11055    pub type_: *const ::std::os::raw::c_char,
11056    pub align: u64,
11057    pub entrySize: u64,
11058    pub linkedSection: *const ::std::os::raw::c_char,
11059    pub infoSection: *const ::std::os::raw::c_char,
11060    pub infoData: u64,
11061}
11062#[allow(clippy::unnecessary_operation, clippy::identity_op)]
11063const _: () = {
11064    ["Size of BNSectionInfo"][::std::mem::size_of::<BNSectionInfo>() - 80usize];
11065    ["Alignment of BNSectionInfo"][::std::mem::align_of::<BNSectionInfo>() - 8usize];
11066    ["Offset of field: BNSectionInfo::name"][::std::mem::offset_of!(BNSectionInfo, name) - 0usize];
11067    ["Offset of field: BNSectionInfo::start"]
11068        [::std::mem::offset_of!(BNSectionInfo, start) - 8usize];
11069    ["Offset of field: BNSectionInfo::length"]
11070        [::std::mem::offset_of!(BNSectionInfo, length) - 16usize];
11071    ["Offset of field: BNSectionInfo::semantics"]
11072        [::std::mem::offset_of!(BNSectionInfo, semantics) - 24usize];
11073    ["Offset of field: BNSectionInfo::type_"]
11074        [::std::mem::offset_of!(BNSectionInfo, type_) - 32usize];
11075    ["Offset of field: BNSectionInfo::align"]
11076        [::std::mem::offset_of!(BNSectionInfo, align) - 40usize];
11077    ["Offset of field: BNSectionInfo::entrySize"]
11078        [::std::mem::offset_of!(BNSectionInfo, entrySize) - 48usize];
11079    ["Offset of field: BNSectionInfo::linkedSection"]
11080        [::std::mem::offset_of!(BNSectionInfo, linkedSection) - 56usize];
11081    ["Offset of field: BNSectionInfo::infoSection"]
11082        [::std::mem::offset_of!(BNSectionInfo, infoSection) - 64usize];
11083    ["Offset of field: BNSectionInfo::infoData"]
11084        [::std::mem::offset_of!(BNSectionInfo, infoData) - 72usize];
11085};
11086impl Default for BNSectionInfo {
11087    fn default() -> Self {
11088        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11089        unsafe {
11090            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11091            s.assume_init()
11092        }
11093    }
11094}
11095#[repr(C)]
11096#[derive(Debug, Copy, Clone)]
11097pub struct BNMemoryRegionInfo {
11098    pub name: *mut ::std::os::raw::c_char,
11099    pub displayName: *mut ::std::os::raw::c_char,
11100    pub start: u64,
11101    pub length: u64,
11102    pub flags: u32,
11103    pub enabled: bool,
11104    pub rebaseable: bool,
11105    pub fill: u8,
11106    pub hasTarget: bool,
11107    pub absoluteAddressMode: bool,
11108    pub local: bool,
11109}
11110#[allow(clippy::unnecessary_operation, clippy::identity_op)]
11111const _: () = {
11112    ["Size of BNMemoryRegionInfo"][::std::mem::size_of::<BNMemoryRegionInfo>() - 48usize];
11113    ["Alignment of BNMemoryRegionInfo"][::std::mem::align_of::<BNMemoryRegionInfo>() - 8usize];
11114    ["Offset of field: BNMemoryRegionInfo::name"]
11115        [::std::mem::offset_of!(BNMemoryRegionInfo, name) - 0usize];
11116    ["Offset of field: BNMemoryRegionInfo::displayName"]
11117        [::std::mem::offset_of!(BNMemoryRegionInfo, displayName) - 8usize];
11118    ["Offset of field: BNMemoryRegionInfo::start"]
11119        [::std::mem::offset_of!(BNMemoryRegionInfo, start) - 16usize];
11120    ["Offset of field: BNMemoryRegionInfo::length"]
11121        [::std::mem::offset_of!(BNMemoryRegionInfo, length) - 24usize];
11122    ["Offset of field: BNMemoryRegionInfo::flags"]
11123        [::std::mem::offset_of!(BNMemoryRegionInfo, flags) - 32usize];
11124    ["Offset of field: BNMemoryRegionInfo::enabled"]
11125        [::std::mem::offset_of!(BNMemoryRegionInfo, enabled) - 36usize];
11126    ["Offset of field: BNMemoryRegionInfo::rebaseable"]
11127        [::std::mem::offset_of!(BNMemoryRegionInfo, rebaseable) - 37usize];
11128    ["Offset of field: BNMemoryRegionInfo::fill"]
11129        [::std::mem::offset_of!(BNMemoryRegionInfo, fill) - 38usize];
11130    ["Offset of field: BNMemoryRegionInfo::hasTarget"]
11131        [::std::mem::offset_of!(BNMemoryRegionInfo, hasTarget) - 39usize];
11132    ["Offset of field: BNMemoryRegionInfo::absoluteAddressMode"]
11133        [::std::mem::offset_of!(BNMemoryRegionInfo, absoluteAddressMode) - 40usize];
11134    ["Offset of field: BNMemoryRegionInfo::local"]
11135        [::std::mem::offset_of!(BNMemoryRegionInfo, local) - 41usize];
11136};
11137impl Default for BNMemoryRegionInfo {
11138    fn default() -> Self {
11139        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11140        unsafe {
11141            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11142            s.assume_init()
11143        }
11144    }
11145}
11146#[repr(C)]
11147#[derive(Debug, Copy, Clone)]
11148pub struct BNResolvedMemoryRange {
11149    pub start: u64,
11150    pub length: u64,
11151    pub regions: *mut BNMemoryRegionInfo,
11152    pub regionCount: usize,
11153}
11154#[allow(clippy::unnecessary_operation, clippy::identity_op)]
11155const _: () = {
11156    ["Size of BNResolvedMemoryRange"][::std::mem::size_of::<BNResolvedMemoryRange>() - 32usize];
11157    ["Alignment of BNResolvedMemoryRange"]
11158        [::std::mem::align_of::<BNResolvedMemoryRange>() - 8usize];
11159    ["Offset of field: BNResolvedMemoryRange::start"]
11160        [::std::mem::offset_of!(BNResolvedMemoryRange, start) - 0usize];
11161    ["Offset of field: BNResolvedMemoryRange::length"]
11162        [::std::mem::offset_of!(BNResolvedMemoryRange, length) - 8usize];
11163    ["Offset of field: BNResolvedMemoryRange::regions"]
11164        [::std::mem::offset_of!(BNResolvedMemoryRange, regions) - 16usize];
11165    ["Offset of field: BNResolvedMemoryRange::regionCount"]
11166        [::std::mem::offset_of!(BNResolvedMemoryRange, regionCount) - 24usize];
11167};
11168impl Default for BNResolvedMemoryRange {
11169    fn default() -> Self {
11170        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11171        unsafe {
11172            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11173            s.assume_init()
11174        }
11175    }
11176}
11177pub type BNCollaborationAnalysisConflictHandler = ::std::option::Option<
11178    unsafe extern "C" fn(
11179        arg1: *mut ::std::os::raw::c_void,
11180        keys: *mut *const ::std::os::raw::c_char,
11181        conflicts: *mut *mut BNAnalysisMergeConflict,
11182        conflictCount: usize,
11183    ) -> bool,
11184>;
11185pub type BNCollaborationNameChangesetFunction = ::std::option::Option<
11186    unsafe extern "C" fn(
11187        arg1: *mut ::std::os::raw::c_void,
11188        arg2: *mut BNCollaborationChangeset,
11189    ) -> bool,
11190>;
11191#[repr(C)]
11192#[derive(Debug, Copy, Clone)]
11193pub struct BNFirmwareNinjaDevice {
11194    pub name: *mut ::std::os::raw::c_char,
11195    pub start: u64,
11196    pub end: u64,
11197    pub info: *mut ::std::os::raw::c_char,
11198}
11199#[allow(clippy::unnecessary_operation, clippy::identity_op)]
11200const _: () = {
11201    ["Size of BNFirmwareNinjaDevice"][::std::mem::size_of::<BNFirmwareNinjaDevice>() - 32usize];
11202    ["Alignment of BNFirmwareNinjaDevice"]
11203        [::std::mem::align_of::<BNFirmwareNinjaDevice>() - 8usize];
11204    ["Offset of field: BNFirmwareNinjaDevice::name"]
11205        [::std::mem::offset_of!(BNFirmwareNinjaDevice, name) - 0usize];
11206    ["Offset of field: BNFirmwareNinjaDevice::start"]
11207        [::std::mem::offset_of!(BNFirmwareNinjaDevice, start) - 8usize];
11208    ["Offset of field: BNFirmwareNinjaDevice::end"]
11209        [::std::mem::offset_of!(BNFirmwareNinjaDevice, end) - 16usize];
11210    ["Offset of field: BNFirmwareNinjaDevice::info"]
11211        [::std::mem::offset_of!(BNFirmwareNinjaDevice, info) - 24usize];
11212};
11213impl Default for BNFirmwareNinjaDevice {
11214    fn default() -> Self {
11215        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11216        unsafe {
11217            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11218            s.assume_init()
11219        }
11220    }
11221}
11222#[repr(u8)]
11223#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
11224pub enum BNFirmwareNinjaSectionType {
11225    CodeSectionType = 0,
11226    DataSectionType = 1,
11227    CompressionSectionType = 2,
11228    PaddingSectionType = 3,
11229}
11230#[repr(u8)]
11231#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
11232pub enum BNFirmwareNinjaSectionAnalysisMode {
11233    DefaultSectionAnalysisMode = 0,
11234    IgnorePaddingSectionAnalysisMode = 1,
11235    DetectStringsSectionAnalysisMode = 2,
11236}
11237#[repr(C)]
11238#[derive(Debug, Copy, Clone)]
11239pub struct BNFirmwareNinjaSection {
11240    pub type_: BNFirmwareNinjaSectionType,
11241    pub start: u64,
11242    pub end: u64,
11243    pub entropy: f32,
11244}
11245#[allow(clippy::unnecessary_operation, clippy::identity_op)]
11246const _: () = {
11247    ["Size of BNFirmwareNinjaSection"][::std::mem::size_of::<BNFirmwareNinjaSection>() - 32usize];
11248    ["Alignment of BNFirmwareNinjaSection"]
11249        [::std::mem::align_of::<BNFirmwareNinjaSection>() - 8usize];
11250    ["Offset of field: BNFirmwareNinjaSection::type_"]
11251        [::std::mem::offset_of!(BNFirmwareNinjaSection, type_) - 0usize];
11252    ["Offset of field: BNFirmwareNinjaSection::start"]
11253        [::std::mem::offset_of!(BNFirmwareNinjaSection, start) - 8usize];
11254    ["Offset of field: BNFirmwareNinjaSection::end"]
11255        [::std::mem::offset_of!(BNFirmwareNinjaSection, end) - 16usize];
11256    ["Offset of field: BNFirmwareNinjaSection::entropy"]
11257        [::std::mem::offset_of!(BNFirmwareNinjaSection, entropy) - 24usize];
11258};
11259impl Default for BNFirmwareNinjaSection {
11260    fn default() -> Self {
11261        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11262        unsafe {
11263            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11264            s.assume_init()
11265        }
11266    }
11267}
11268#[repr(u8)]
11269#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
11270pub enum BNFirmwareNinjaMemoryHeuristic {
11271    NoMemoryHeuristic = 0,
11272    HasReadBarrierMemoryHeuristic = 1,
11273    HasWriteBarrierMemoryHeuristic = 2,
11274    StoreToOOBMemoryMemoryHeuristic = 3,
11275    LoadFromOOBMemoryMemoryHeuristic = 4,
11276    RepeatLoadStoreMemoryHeuristic = 5,
11277    CallParamOOBPointerMemoryHeuristic = 6,
11278}
11279#[repr(u8)]
11280#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
11281pub enum BNFirmwareNinjaMemoryAccessType {
11282    NoMemoryAccessType = 0,
11283    ReadMemoryAccessType = 1,
11284    WriteMemoryAccessType = 2,
11285}
11286#[repr(C)]
11287#[derive(Debug, Copy, Clone)]
11288pub struct BNFirmwareNinjaMemoryAccess {
11289    pub instrAddress: u64,
11290    pub memAddress: BNRegisterValue,
11291    pub heuristic: BNFirmwareNinjaMemoryHeuristic,
11292    pub type_: BNFirmwareNinjaMemoryAccessType,
11293    pub value: BNRegisterValue,
11294}
11295#[allow(clippy::unnecessary_operation, clippy::identity_op)]
11296const _: () = {
11297    ["Size of BNFirmwareNinjaMemoryAccess"]
11298        [::std::mem::size_of::<BNFirmwareNinjaMemoryAccess>() - 80usize];
11299    ["Alignment of BNFirmwareNinjaMemoryAccess"]
11300        [::std::mem::align_of::<BNFirmwareNinjaMemoryAccess>() - 8usize];
11301    ["Offset of field: BNFirmwareNinjaMemoryAccess::instrAddress"]
11302        [::std::mem::offset_of!(BNFirmwareNinjaMemoryAccess, instrAddress) - 0usize];
11303    ["Offset of field: BNFirmwareNinjaMemoryAccess::memAddress"]
11304        [::std::mem::offset_of!(BNFirmwareNinjaMemoryAccess, memAddress) - 8usize];
11305    ["Offset of field: BNFirmwareNinjaMemoryAccess::heuristic"]
11306        [::std::mem::offset_of!(BNFirmwareNinjaMemoryAccess, heuristic) - 40usize];
11307    ["Offset of field: BNFirmwareNinjaMemoryAccess::type_"]
11308        [::std::mem::offset_of!(BNFirmwareNinjaMemoryAccess, type_) - 41usize];
11309    ["Offset of field: BNFirmwareNinjaMemoryAccess::value"]
11310        [::std::mem::offset_of!(BNFirmwareNinjaMemoryAccess, value) - 48usize];
11311};
11312impl Default for BNFirmwareNinjaMemoryAccess {
11313    fn default() -> Self {
11314        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11315        unsafe {
11316            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11317            s.assume_init()
11318        }
11319    }
11320}
11321#[repr(C)]
11322#[derive(Debug, Copy, Clone)]
11323pub struct BNFirmwareNinjaFunctionMemoryAccesses {
11324    pub start: u64,
11325    pub count: usize,
11326    pub accesses: *mut *mut BNFirmwareNinjaMemoryAccess,
11327}
11328#[allow(clippy::unnecessary_operation, clippy::identity_op)]
11329const _: () = {
11330    ["Size of BNFirmwareNinjaFunctionMemoryAccesses"]
11331        [::std::mem::size_of::<BNFirmwareNinjaFunctionMemoryAccesses>() - 24usize];
11332    ["Alignment of BNFirmwareNinjaFunctionMemoryAccesses"]
11333        [::std::mem::align_of::<BNFirmwareNinjaFunctionMemoryAccesses>() - 8usize];
11334    ["Offset of field: BNFirmwareNinjaFunctionMemoryAccesses::start"]
11335        [::std::mem::offset_of!(BNFirmwareNinjaFunctionMemoryAccesses, start) - 0usize];
11336    ["Offset of field: BNFirmwareNinjaFunctionMemoryAccesses::count"]
11337        [::std::mem::offset_of!(BNFirmwareNinjaFunctionMemoryAccesses, count) - 8usize];
11338    ["Offset of field: BNFirmwareNinjaFunctionMemoryAccesses::accesses"]
11339        [::std::mem::offset_of!(BNFirmwareNinjaFunctionMemoryAccesses, accesses) - 16usize];
11340};
11341impl Default for BNFirmwareNinjaFunctionMemoryAccesses {
11342    fn default() -> Self {
11343        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11344        unsafe {
11345            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11346            s.assume_init()
11347        }
11348    }
11349}
11350#[repr(C)]
11351#[derive(Debug, Copy, Clone)]
11352pub struct BNFirmwareNinjaDeviceAccesses {
11353    pub name: *mut ::std::os::raw::c_char,
11354    pub total: usize,
11355    pub unique: usize,
11356}
11357#[allow(clippy::unnecessary_operation, clippy::identity_op)]
11358const _: () = {
11359    ["Size of BNFirmwareNinjaDeviceAccesses"]
11360        [::std::mem::size_of::<BNFirmwareNinjaDeviceAccesses>() - 24usize];
11361    ["Alignment of BNFirmwareNinjaDeviceAccesses"]
11362        [::std::mem::align_of::<BNFirmwareNinjaDeviceAccesses>() - 8usize];
11363    ["Offset of field: BNFirmwareNinjaDeviceAccesses::name"]
11364        [::std::mem::offset_of!(BNFirmwareNinjaDeviceAccesses, name) - 0usize];
11365    ["Offset of field: BNFirmwareNinjaDeviceAccesses::total"]
11366        [::std::mem::offset_of!(BNFirmwareNinjaDeviceAccesses, total) - 8usize];
11367    ["Offset of field: BNFirmwareNinjaDeviceAccesses::unique"]
11368        [::std::mem::offset_of!(BNFirmwareNinjaDeviceAccesses, unique) - 16usize];
11369};
11370impl Default for BNFirmwareNinjaDeviceAccesses {
11371    fn default() -> Self {
11372        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11373        unsafe {
11374            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11375            s.assume_init()
11376        }
11377    }
11378}
11379#[repr(C)]
11380#[derive(Debug, Copy, Clone)]
11381pub struct BNLineFormatterSettings {
11382    pub highLevelIL: *mut BNHighLevelILFunction,
11383    pub desiredLineLength: usize,
11384    pub minimumContentLength: usize,
11385    pub tabWidth: usize,
11386    pub maximumAnnotationLength: usize,
11387    pub stringWrappingWidth: usize,
11388    pub languageName: *mut ::std::os::raw::c_char,
11389    pub commentStartString: *mut ::std::os::raw::c_char,
11390    pub commentEndString: *mut ::std::os::raw::c_char,
11391    pub annotationStartString: *mut ::std::os::raw::c_char,
11392    pub annotationEndString: *mut ::std::os::raw::c_char,
11393}
11394#[allow(clippy::unnecessary_operation, clippy::identity_op)]
11395const _: () = {
11396    ["Size of BNLineFormatterSettings"][::std::mem::size_of::<BNLineFormatterSettings>() - 88usize];
11397    ["Alignment of BNLineFormatterSettings"]
11398        [::std::mem::align_of::<BNLineFormatterSettings>() - 8usize];
11399    ["Offset of field: BNLineFormatterSettings::highLevelIL"]
11400        [::std::mem::offset_of!(BNLineFormatterSettings, highLevelIL) - 0usize];
11401    ["Offset of field: BNLineFormatterSettings::desiredLineLength"]
11402        [::std::mem::offset_of!(BNLineFormatterSettings, desiredLineLength) - 8usize];
11403    ["Offset of field: BNLineFormatterSettings::minimumContentLength"]
11404        [::std::mem::offset_of!(BNLineFormatterSettings, minimumContentLength) - 16usize];
11405    ["Offset of field: BNLineFormatterSettings::tabWidth"]
11406        [::std::mem::offset_of!(BNLineFormatterSettings, tabWidth) - 24usize];
11407    ["Offset of field: BNLineFormatterSettings::maximumAnnotationLength"]
11408        [::std::mem::offset_of!(BNLineFormatterSettings, maximumAnnotationLength) - 32usize];
11409    ["Offset of field: BNLineFormatterSettings::stringWrappingWidth"]
11410        [::std::mem::offset_of!(BNLineFormatterSettings, stringWrappingWidth) - 40usize];
11411    ["Offset of field: BNLineFormatterSettings::languageName"]
11412        [::std::mem::offset_of!(BNLineFormatterSettings, languageName) - 48usize];
11413    ["Offset of field: BNLineFormatterSettings::commentStartString"]
11414        [::std::mem::offset_of!(BNLineFormatterSettings, commentStartString) - 56usize];
11415    ["Offset of field: BNLineFormatterSettings::commentEndString"]
11416        [::std::mem::offset_of!(BNLineFormatterSettings, commentEndString) - 64usize];
11417    ["Offset of field: BNLineFormatterSettings::annotationStartString"]
11418        [::std::mem::offset_of!(BNLineFormatterSettings, annotationStartString) - 72usize];
11419    ["Offset of field: BNLineFormatterSettings::annotationEndString"]
11420        [::std::mem::offset_of!(BNLineFormatterSettings, annotationEndString) - 80usize];
11421};
11422impl Default for BNLineFormatterSettings {
11423    fn default() -> Self {
11424        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11425        unsafe {
11426            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11427            s.assume_init()
11428        }
11429    }
11430}
11431#[repr(C)]
11432#[derive(Debug, Copy, Clone)]
11433pub struct BNCustomLineFormatter {
11434    pub context: *mut ::std::os::raw::c_void,
11435    pub formatLines: ::std::option::Option<
11436        unsafe extern "C" fn(
11437            ctxt: *mut ::std::os::raw::c_void,
11438            inLines: *mut BNDisassemblyTextLine,
11439            inCount: usize,
11440            settings: *const BNLineFormatterSettings,
11441            outCount: *mut usize,
11442        ) -> *mut BNDisassemblyTextLine,
11443    >,
11444    pub freeLines: ::std::option::Option<
11445        unsafe extern "C" fn(
11446            ctxt: *mut ::std::os::raw::c_void,
11447            lines: *mut BNDisassemblyTextLine,
11448            count: usize,
11449        ),
11450    >,
11451}
11452#[allow(clippy::unnecessary_operation, clippy::identity_op)]
11453const _: () = {
11454    ["Size of BNCustomLineFormatter"][::std::mem::size_of::<BNCustomLineFormatter>() - 24usize];
11455    ["Alignment of BNCustomLineFormatter"]
11456        [::std::mem::align_of::<BNCustomLineFormatter>() - 8usize];
11457    ["Offset of field: BNCustomLineFormatter::context"]
11458        [::std::mem::offset_of!(BNCustomLineFormatter, context) - 0usize];
11459    ["Offset of field: BNCustomLineFormatter::formatLines"]
11460        [::std::mem::offset_of!(BNCustomLineFormatter, formatLines) - 8usize];
11461    ["Offset of field: BNCustomLineFormatter::freeLines"]
11462        [::std::mem::offset_of!(BNCustomLineFormatter, freeLines) - 16usize];
11463};
11464impl Default for BNCustomLineFormatter {
11465    fn default() -> Self {
11466        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11467        unsafe {
11468            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11469            s.assume_init()
11470        }
11471    }
11472}
11473#[repr(C)]
11474#[derive(Debug, Copy, Clone)]
11475pub struct BNRenderLayerCallbacks {
11476    pub context: *mut ::std::os::raw::c_void,
11477    pub applyToFlowGraph: ::std::option::Option<
11478        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, graph: *mut BNFlowGraph),
11479    >,
11480    pub applyToLinearViewObject: ::std::option::Option<
11481        unsafe extern "C" fn(
11482            ctxt: *mut ::std::os::raw::c_void,
11483            obj: *mut BNLinearViewObject,
11484            prev: *mut BNLinearViewObject,
11485            next: *mut BNLinearViewObject,
11486            inLines: *mut BNLinearDisassemblyLine,
11487            inLineCount: usize,
11488            outLines: *mut *mut BNLinearDisassemblyLine,
11489            outLineCount: *mut usize,
11490        ),
11491    >,
11492    pub freeLines: ::std::option::Option<
11493        unsafe extern "C" fn(
11494            ctxt: *mut ::std::os::raw::c_void,
11495            lines: *mut BNLinearDisassemblyLine,
11496            count: usize,
11497        ),
11498    >,
11499}
11500#[allow(clippy::unnecessary_operation, clippy::identity_op)]
11501const _: () = {
11502    ["Size of BNRenderLayerCallbacks"][::std::mem::size_of::<BNRenderLayerCallbacks>() - 32usize];
11503    ["Alignment of BNRenderLayerCallbacks"]
11504        [::std::mem::align_of::<BNRenderLayerCallbacks>() - 8usize];
11505    ["Offset of field: BNRenderLayerCallbacks::context"]
11506        [::std::mem::offset_of!(BNRenderLayerCallbacks, context) - 0usize];
11507    ["Offset of field: BNRenderLayerCallbacks::applyToFlowGraph"]
11508        [::std::mem::offset_of!(BNRenderLayerCallbacks, applyToFlowGraph) - 8usize];
11509    ["Offset of field: BNRenderLayerCallbacks::applyToLinearViewObject"]
11510        [::std::mem::offset_of!(BNRenderLayerCallbacks, applyToLinearViewObject) - 16usize];
11511    ["Offset of field: BNRenderLayerCallbacks::freeLines"]
11512        [::std::mem::offset_of!(BNRenderLayerCallbacks, freeLines) - 24usize];
11513};
11514impl Default for BNRenderLayerCallbacks {
11515    fn default() -> Self {
11516        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11517        unsafe {
11518            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11519            s.assume_init()
11520        }
11521    }
11522}
11523#[repr(u8)]
11524#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
11525pub enum BNRenderLayerDefaultEnableState {
11526    DisabledByDefaultRenderLayerDefaultEnableState = 0,
11527    EnabledByDefaultRenderLayerDefaultEnableState = 1,
11528    AlwaysEnabledRenderLayerDefaultEnableState = 2,
11529}
11530#[repr(C)]
11531#[derive(Debug, Default, Copy, Clone)]
11532pub struct BNExprMapInfo {
11533    pub lowerIndex: usize,
11534    pub higherIndex: usize,
11535    pub mapLowerToHigher: bool,
11536    pub mapHigherToLower: bool,
11537    pub lowerToHigherDirect: bool,
11538    pub higherToLowerDirect: bool,
11539}
11540#[allow(clippy::unnecessary_operation, clippy::identity_op)]
11541const _: () = {
11542    ["Size of BNExprMapInfo"][::std::mem::size_of::<BNExprMapInfo>() - 24usize];
11543    ["Alignment of BNExprMapInfo"][::std::mem::align_of::<BNExprMapInfo>() - 8usize];
11544    ["Offset of field: BNExprMapInfo::lowerIndex"]
11545        [::std::mem::offset_of!(BNExprMapInfo, lowerIndex) - 0usize];
11546    ["Offset of field: BNExprMapInfo::higherIndex"]
11547        [::std::mem::offset_of!(BNExprMapInfo, higherIndex) - 8usize];
11548    ["Offset of field: BNExprMapInfo::mapLowerToHigher"]
11549        [::std::mem::offset_of!(BNExprMapInfo, mapLowerToHigher) - 16usize];
11550    ["Offset of field: BNExprMapInfo::mapHigherToLower"]
11551        [::std::mem::offset_of!(BNExprMapInfo, mapHigherToLower) - 17usize];
11552    ["Offset of field: BNExprMapInfo::lowerToHigherDirect"]
11553        [::std::mem::offset_of!(BNExprMapInfo, lowerToHigherDirect) - 18usize];
11554    ["Offset of field: BNExprMapInfo::higherToLowerDirect"]
11555        [::std::mem::offset_of!(BNExprMapInfo, higherToLowerDirect) - 19usize];
11556};
11557#[repr(C)]
11558#[derive(Debug, Copy, Clone)]
11559pub struct BNAllTypeReferences {
11560    pub codeRefs: *mut BNReferenceSource,
11561    pub codeRefCount: usize,
11562    pub dataRefs: *mut u64,
11563    pub dataRefCount: usize,
11564    pub typeRefs: *mut BNTypeReferenceSource,
11565    pub typeRefCount: usize,
11566}
11567#[allow(clippy::unnecessary_operation, clippy::identity_op)]
11568const _: () = {
11569    ["Size of BNAllTypeReferences"][::std::mem::size_of::<BNAllTypeReferences>() - 48usize];
11570    ["Alignment of BNAllTypeReferences"][::std::mem::align_of::<BNAllTypeReferences>() - 8usize];
11571    ["Offset of field: BNAllTypeReferences::codeRefs"]
11572        [::std::mem::offset_of!(BNAllTypeReferences, codeRefs) - 0usize];
11573    ["Offset of field: BNAllTypeReferences::codeRefCount"]
11574        [::std::mem::offset_of!(BNAllTypeReferences, codeRefCount) - 8usize];
11575    ["Offset of field: BNAllTypeReferences::dataRefs"]
11576        [::std::mem::offset_of!(BNAllTypeReferences, dataRefs) - 16usize];
11577    ["Offset of field: BNAllTypeReferences::dataRefCount"]
11578        [::std::mem::offset_of!(BNAllTypeReferences, dataRefCount) - 24usize];
11579    ["Offset of field: BNAllTypeReferences::typeRefs"]
11580        [::std::mem::offset_of!(BNAllTypeReferences, typeRefs) - 32usize];
11581    ["Offset of field: BNAllTypeReferences::typeRefCount"]
11582        [::std::mem::offset_of!(BNAllTypeReferences, typeRefCount) - 40usize];
11583};
11584impl Default for BNAllTypeReferences {
11585    fn default() -> Self {
11586        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11587        unsafe {
11588            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11589            s.assume_init()
11590        }
11591    }
11592}
11593#[repr(C)]
11594#[derive(Debug, Copy, Clone)]
11595pub struct BNAllTypeFieldReferences {
11596    pub codeRefs: *mut BNTypeFieldReference,
11597    pub codeRefCount: usize,
11598    pub dataRefsTo: *mut u64,
11599    pub dataRefToCount: usize,
11600    pub dataRefsFrom: *mut u64,
11601    pub dataRefFromCount: usize,
11602    pub typeRefs: *mut BNTypeReferenceSource,
11603    pub typeRefCount: usize,
11604}
11605#[allow(clippy::unnecessary_operation, clippy::identity_op)]
11606const _: () = {
11607    ["Size of BNAllTypeFieldReferences"]
11608        [::std::mem::size_of::<BNAllTypeFieldReferences>() - 64usize];
11609    ["Alignment of BNAllTypeFieldReferences"]
11610        [::std::mem::align_of::<BNAllTypeFieldReferences>() - 8usize];
11611    ["Offset of field: BNAllTypeFieldReferences::codeRefs"]
11612        [::std::mem::offset_of!(BNAllTypeFieldReferences, codeRefs) - 0usize];
11613    ["Offset of field: BNAllTypeFieldReferences::codeRefCount"]
11614        [::std::mem::offset_of!(BNAllTypeFieldReferences, codeRefCount) - 8usize];
11615    ["Offset of field: BNAllTypeFieldReferences::dataRefsTo"]
11616        [::std::mem::offset_of!(BNAllTypeFieldReferences, dataRefsTo) - 16usize];
11617    ["Offset of field: BNAllTypeFieldReferences::dataRefToCount"]
11618        [::std::mem::offset_of!(BNAllTypeFieldReferences, dataRefToCount) - 24usize];
11619    ["Offset of field: BNAllTypeFieldReferences::dataRefsFrom"]
11620        [::std::mem::offset_of!(BNAllTypeFieldReferences, dataRefsFrom) - 32usize];
11621    ["Offset of field: BNAllTypeFieldReferences::dataRefFromCount"]
11622        [::std::mem::offset_of!(BNAllTypeFieldReferences, dataRefFromCount) - 40usize];
11623    ["Offset of field: BNAllTypeFieldReferences::typeRefs"]
11624        [::std::mem::offset_of!(BNAllTypeFieldReferences, typeRefs) - 48usize];
11625    ["Offset of field: BNAllTypeFieldReferences::typeRefCount"]
11626        [::std::mem::offset_of!(BNAllTypeFieldReferences, typeRefCount) - 56usize];
11627};
11628impl Default for BNAllTypeFieldReferences {
11629    fn default() -> Self {
11630        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11631        unsafe {
11632            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11633            s.assume_init()
11634        }
11635    }
11636}
11637#[repr(C)]
11638#[derive(Debug, Copy, Clone)]
11639pub struct BNTypeAttribute {
11640    pub name: *mut ::std::os::raw::c_char,
11641    pub value: *mut ::std::os::raw::c_char,
11642}
11643#[allow(clippy::unnecessary_operation, clippy::identity_op)]
11644const _: () = {
11645    ["Size of BNTypeAttribute"][::std::mem::size_of::<BNTypeAttribute>() - 16usize];
11646    ["Alignment of BNTypeAttribute"][::std::mem::align_of::<BNTypeAttribute>() - 8usize];
11647    ["Offset of field: BNTypeAttribute::name"]
11648        [::std::mem::offset_of!(BNTypeAttribute, name) - 0usize];
11649    ["Offset of field: BNTypeAttribute::value"]
11650        [::std::mem::offset_of!(BNTypeAttribute, value) - 8usize];
11651};
11652impl Default for BNTypeAttribute {
11653    fn default() -> Self {
11654        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11655        unsafe {
11656            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11657            s.assume_init()
11658        }
11659    }
11660}
11661#[repr(C)]
11662#[derive(Debug, Copy, Clone)]
11663pub struct BNCustomConstantRenderer {
11664    pub context: *mut ::std::os::raw::c_void,
11665    pub isValidForType: ::std::option::Option<
11666        unsafe extern "C" fn(
11667            ctxt: *mut ::std::os::raw::c_void,
11668            hlil: *mut BNHighLevelILFunction,
11669            type_: *mut BNType,
11670        ) -> bool,
11671    >,
11672    pub renderConstant: ::std::option::Option<
11673        unsafe extern "C" fn(
11674            ctxt: *mut ::std::os::raw::c_void,
11675            hlil: *mut BNHighLevelILFunction,
11676            expr: usize,
11677            type_: *mut BNType,
11678            val: i64,
11679            tokens: *mut BNHighLevelILTokenEmitter,
11680            settings: *mut BNDisassemblySettings,
11681            precedence: BNOperatorPrecedence,
11682        ) -> bool,
11683    >,
11684    pub renderConstantPointer: ::std::option::Option<
11685        unsafe extern "C" fn(
11686            ctxt: *mut ::std::os::raw::c_void,
11687            hlil: *mut BNHighLevelILFunction,
11688            expr: usize,
11689            type_: *mut BNType,
11690            val: i64,
11691            tokens: *mut BNHighLevelILTokenEmitter,
11692            settings: *mut BNDisassemblySettings,
11693            symbolDisplay: BNSymbolDisplayType,
11694            precedence: BNOperatorPrecedence,
11695        ) -> bool,
11696    >,
11697}
11698#[allow(clippy::unnecessary_operation, clippy::identity_op)]
11699const _: () = {
11700    ["Size of BNCustomConstantRenderer"]
11701        [::std::mem::size_of::<BNCustomConstantRenderer>() - 32usize];
11702    ["Alignment of BNCustomConstantRenderer"]
11703        [::std::mem::align_of::<BNCustomConstantRenderer>() - 8usize];
11704    ["Offset of field: BNCustomConstantRenderer::context"]
11705        [::std::mem::offset_of!(BNCustomConstantRenderer, context) - 0usize];
11706    ["Offset of field: BNCustomConstantRenderer::isValidForType"]
11707        [::std::mem::offset_of!(BNCustomConstantRenderer, isValidForType) - 8usize];
11708    ["Offset of field: BNCustomConstantRenderer::renderConstant"]
11709        [::std::mem::offset_of!(BNCustomConstantRenderer, renderConstant) - 16usize];
11710    ["Offset of field: BNCustomConstantRenderer::renderConstantPointer"]
11711        [::std::mem::offset_of!(BNCustomConstantRenderer, renderConstantPointer) - 24usize];
11712};
11713impl Default for BNCustomConstantRenderer {
11714    fn default() -> Self {
11715        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11716        unsafe {
11717            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11718            s.assume_init()
11719        }
11720    }
11721}
11722#[repr(C)]
11723#[derive(Debug, Copy, Clone)]
11724pub struct BNCustomStringRecognizer {
11725    pub context: *mut ::std::os::raw::c_void,
11726    pub isValidForType: ::std::option::Option<
11727        unsafe extern "C" fn(
11728            ctxt: *mut ::std::os::raw::c_void,
11729            hlil: *mut BNHighLevelILFunction,
11730            type_: *mut BNType,
11731        ) -> bool,
11732    >,
11733    pub recognizeConstant: ::std::option::Option<
11734        unsafe extern "C" fn(
11735            ctxt: *mut ::std::os::raw::c_void,
11736            hlil: *mut BNHighLevelILFunction,
11737            expr: usize,
11738            type_: *mut BNType,
11739            val: i64,
11740            result: *mut BNDerivedString,
11741        ) -> bool,
11742    >,
11743    pub recognizeConstantPointer: ::std::option::Option<
11744        unsafe extern "C" fn(
11745            ctxt: *mut ::std::os::raw::c_void,
11746            hlil: *mut BNHighLevelILFunction,
11747            expr: usize,
11748            type_: *mut BNType,
11749            val: i64,
11750            result: *mut BNDerivedString,
11751        ) -> bool,
11752    >,
11753    pub recognizeExternPointer: ::std::option::Option<
11754        unsafe extern "C" fn(
11755            ctxt: *mut ::std::os::raw::c_void,
11756            hlil: *mut BNHighLevelILFunction,
11757            expr: usize,
11758            type_: *mut BNType,
11759            val: i64,
11760            offset: u64,
11761            result: *mut BNDerivedString,
11762        ) -> bool,
11763    >,
11764    pub recognizeImport: ::std::option::Option<
11765        unsafe extern "C" fn(
11766            ctxt: *mut ::std::os::raw::c_void,
11767            hlil: *mut BNHighLevelILFunction,
11768            expr: usize,
11769            type_: *mut BNType,
11770            val: i64,
11771            result: *mut BNDerivedString,
11772        ) -> bool,
11773    >,
11774    pub recognizeConstantData: ::std::option::Option<
11775        unsafe extern "C" fn(
11776            ctxt: *mut ::std::os::raw::c_void,
11777            hlil: *mut BNHighLevelILFunction,
11778            expr: usize,
11779            result: *mut BNDerivedString,
11780        ) -> bool,
11781    >,
11782    pub recognizeStructInit: ::std::option::Option<
11783        unsafe extern "C" fn(
11784            ctxt: *mut ::std::os::raw::c_void,
11785            hlil: *mut BNHighLevelILFunction,
11786            expr: usize,
11787            type_: *mut BNType,
11788            fieldOffsets: *const u64,
11789            fieldValues: *const i64,
11790            fieldCount: usize,
11791            result: *mut BNDerivedString,
11792        ) -> bool,
11793    >,
11794}
11795#[allow(clippy::unnecessary_operation, clippy::identity_op)]
11796const _: () = {
11797    ["Size of BNCustomStringRecognizer"]
11798        [::std::mem::size_of::<BNCustomStringRecognizer>() - 64usize];
11799    ["Alignment of BNCustomStringRecognizer"]
11800        [::std::mem::align_of::<BNCustomStringRecognizer>() - 8usize];
11801    ["Offset of field: BNCustomStringRecognizer::context"]
11802        [::std::mem::offset_of!(BNCustomStringRecognizer, context) - 0usize];
11803    ["Offset of field: BNCustomStringRecognizer::isValidForType"]
11804        [::std::mem::offset_of!(BNCustomStringRecognizer, isValidForType) - 8usize];
11805    ["Offset of field: BNCustomStringRecognizer::recognizeConstant"]
11806        [::std::mem::offset_of!(BNCustomStringRecognizer, recognizeConstant) - 16usize];
11807    ["Offset of field: BNCustomStringRecognizer::recognizeConstantPointer"]
11808        [::std::mem::offset_of!(BNCustomStringRecognizer, recognizeConstantPointer) - 24usize];
11809    ["Offset of field: BNCustomStringRecognizer::recognizeExternPointer"]
11810        [::std::mem::offset_of!(BNCustomStringRecognizer, recognizeExternPointer) - 32usize];
11811    ["Offset of field: BNCustomStringRecognizer::recognizeImport"]
11812        [::std::mem::offset_of!(BNCustomStringRecognizer, recognizeImport) - 40usize];
11813    ["Offset of field: BNCustomStringRecognizer::recognizeConstantData"]
11814        [::std::mem::offset_of!(BNCustomStringRecognizer, recognizeConstantData) - 48usize];
11815    ["Offset of field: BNCustomStringRecognizer::recognizeStructInit"]
11816        [::std::mem::offset_of!(BNCustomStringRecognizer, recognizeStructInit) - 56usize];
11817};
11818impl Default for BNCustomStringRecognizer {
11819    fn default() -> Self {
11820        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11821        unsafe {
11822            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11823            s.assume_init()
11824        }
11825    }
11826}
11827#[repr(C)]
11828#[derive(Debug, Copy, Clone)]
11829pub struct BNCustomStringTypeInfo {
11830    pub name: *mut ::std::os::raw::c_char,
11831    pub stringPrefix: *mut ::std::os::raw::c_char,
11832    pub stringPostfix: *mut ::std::os::raw::c_char,
11833}
11834#[allow(clippy::unnecessary_operation, clippy::identity_op)]
11835const _: () = {
11836    ["Size of BNCustomStringTypeInfo"][::std::mem::size_of::<BNCustomStringTypeInfo>() - 24usize];
11837    ["Alignment of BNCustomStringTypeInfo"]
11838        [::std::mem::align_of::<BNCustomStringTypeInfo>() - 8usize];
11839    ["Offset of field: BNCustomStringTypeInfo::name"]
11840        [::std::mem::offset_of!(BNCustomStringTypeInfo, name) - 0usize];
11841    ["Offset of field: BNCustomStringTypeInfo::stringPrefix"]
11842        [::std::mem::offset_of!(BNCustomStringTypeInfo, stringPrefix) - 8usize];
11843    ["Offset of field: BNCustomStringTypeInfo::stringPostfix"]
11844        [::std::mem::offset_of!(BNCustomStringTypeInfo, stringPostfix) - 16usize];
11845};
11846impl Default for BNCustomStringTypeInfo {
11847    fn default() -> Self {
11848        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11849        unsafe {
11850            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11851            s.assume_init()
11852        }
11853    }
11854}
11855#[repr(C)]
11856#[derive(Debug, Default, Copy, Clone)]
11857pub struct BNSimilarityEntityId {
11858    pub value: u32,
11859}
11860#[allow(clippy::unnecessary_operation, clippy::identity_op)]
11861const _: () = {
11862    ["Size of BNSimilarityEntityId"][::std::mem::size_of::<BNSimilarityEntityId>() - 4usize];
11863    ["Alignment of BNSimilarityEntityId"][::std::mem::align_of::<BNSimilarityEntityId>() - 4usize];
11864    ["Offset of field: BNSimilarityEntityId::value"]
11865        [::std::mem::offset_of!(BNSimilarityEntityId, value) - 0usize];
11866};
11867#[repr(C)]
11868#[derive(Debug, Default, Copy, Clone)]
11869pub struct BNSimilarityResultId {
11870    pub value: u64,
11871}
11872#[allow(clippy::unnecessary_operation, clippy::identity_op)]
11873const _: () = {
11874    ["Size of BNSimilarityResultId"][::std::mem::size_of::<BNSimilarityResultId>() - 8usize];
11875    ["Alignment of BNSimilarityResultId"][::std::mem::align_of::<BNSimilarityResultId>() - 8usize];
11876    ["Offset of field: BNSimilarityResultId::value"]
11877        [::std::mem::offset_of!(BNSimilarityResultId, value) - 0usize];
11878};
11879#[repr(C)]
11880#[derive(Debug, Default, Copy, Clone)]
11881pub struct BNSimilaritySessionNodeId {
11882    pub value: u32,
11883}
11884#[allow(clippy::unnecessary_operation, clippy::identity_op)]
11885const _: () = {
11886    ["Size of BNSimilaritySessionNodeId"]
11887        [::std::mem::size_of::<BNSimilaritySessionNodeId>() - 4usize];
11888    ["Alignment of BNSimilaritySessionNodeId"]
11889        [::std::mem::align_of::<BNSimilaritySessionNodeId>() - 4usize];
11890    ["Offset of field: BNSimilaritySessionNodeId::value"]
11891        [::std::mem::offset_of!(BNSimilaritySessionNodeId, value) - 0usize];
11892};
11893#[repr(C)]
11894#[derive(Debug, Default, Copy, Clone)]
11895pub struct BNSimilaritySessionId {
11896    pub value: u32,
11897}
11898#[allow(clippy::unnecessary_operation, clippy::identity_op)]
11899const _: () = {
11900    ["Size of BNSimilaritySessionId"][::std::mem::size_of::<BNSimilaritySessionId>() - 4usize];
11901    ["Alignment of BNSimilaritySessionId"]
11902        [::std::mem::align_of::<BNSimilaritySessionId>() - 4usize];
11903    ["Offset of field: BNSimilaritySessionId::value"]
11904        [::std::mem::offset_of!(BNSimilaritySessionId, value) - 0usize];
11905};
11906#[repr(C)]
11907#[derive(Debug, Default, Copy, Clone)]
11908pub struct BNSimilarityProviderId {
11909    pub value: u32,
11910}
11911#[allow(clippy::unnecessary_operation, clippy::identity_op)]
11912const _: () = {
11913    ["Size of BNSimilarityProviderId"][::std::mem::size_of::<BNSimilarityProviderId>() - 4usize];
11914    ["Alignment of BNSimilarityProviderId"]
11915        [::std::mem::align_of::<BNSimilarityProviderId>() - 4usize];
11916    ["Offset of field: BNSimilarityProviderId::value"]
11917        [::std::mem::offset_of!(BNSimilarityProviderId, value) - 0usize];
11918};
11919#[repr(C)]
11920#[derive(Debug, Default, Copy, Clone)]
11921pub struct BNSimilaritySessionResolverId {
11922    pub value: u32,
11923}
11924#[allow(clippy::unnecessary_operation, clippy::identity_op)]
11925const _: () = {
11926    ["Size of BNSimilaritySessionResolverId"]
11927        [::std::mem::size_of::<BNSimilaritySessionResolverId>() - 4usize];
11928    ["Alignment of BNSimilaritySessionResolverId"]
11929        [::std::mem::align_of::<BNSimilaritySessionResolverId>() - 4usize];
11930    ["Offset of field: BNSimilaritySessionResolverId::value"]
11931        [::std::mem::offset_of!(BNSimilaritySessionResolverId, value) - 0usize];
11932};
11933#[repr(C)]
11934#[derive(Debug, Default, Copy, Clone)]
11935pub struct BNSimilarityEntityRef {
11936    pub nodeId: BNSimilaritySessionNodeId,
11937    pub entityId: BNSimilarityEntityId,
11938}
11939#[allow(clippy::unnecessary_operation, clippy::identity_op)]
11940const _: () = {
11941    ["Size of BNSimilarityEntityRef"][::std::mem::size_of::<BNSimilarityEntityRef>() - 8usize];
11942    ["Alignment of BNSimilarityEntityRef"]
11943        [::std::mem::align_of::<BNSimilarityEntityRef>() - 4usize];
11944    ["Offset of field: BNSimilarityEntityRef::nodeId"]
11945        [::std::mem::offset_of!(BNSimilarityEntityRef, nodeId) - 0usize];
11946    ["Offset of field: BNSimilarityEntityRef::entityId"]
11947        [::std::mem::offset_of!(BNSimilarityEntityRef, entityId) - 4usize];
11948};
11949#[repr(u8)]
11950#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
11951pub enum BNSimilarityEntityType {
11952    SimilarityEntityFunction = 0,
11953}
11954#[repr(u8)]
11955#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
11956pub enum BNSimilarityApplyStatus {
11957    SimilarityApplySuccess = 0,
11958    SimilarityApplyNodeInactive = 1,
11959    SimilarityApplyEntityNotFound = 2,
11960    SimilarityApplyUnsupported = 3,
11961    SimilarityApplyFailed = 4,
11962}
11963#[repr(C)]
11964#[derive(Debug, Default, Copy, Clone)]
11965pub struct BNSimilarityResult {
11966    pub providerId: BNSimilarityProviderId,
11967    pub similarity: u8,
11968    pub confidence: u8,
11969    pub target: BNSimilarityEntityRef,
11970}
11971#[allow(clippy::unnecessary_operation, clippy::identity_op)]
11972const _: () = {
11973    ["Size of BNSimilarityResult"][::std::mem::size_of::<BNSimilarityResult>() - 16usize];
11974    ["Alignment of BNSimilarityResult"][::std::mem::align_of::<BNSimilarityResult>() - 4usize];
11975    ["Offset of field: BNSimilarityResult::providerId"]
11976        [::std::mem::offset_of!(BNSimilarityResult, providerId) - 0usize];
11977    ["Offset of field: BNSimilarityResult::similarity"]
11978        [::std::mem::offset_of!(BNSimilarityResult, similarity) - 4usize];
11979    ["Offset of field: BNSimilarityResult::confidence"]
11980        [::std::mem::offset_of!(BNSimilarityResult, confidence) - 5usize];
11981    ["Offset of field: BNSimilarityResult::target"]
11982        [::std::mem::offset_of!(BNSimilarityResult, target) - 8usize];
11983};
11984#[repr(C)]
11985#[derive(Debug, Copy, Clone)]
11986pub struct BNSimilarityEntityInfo {
11987    pub type_: BNSimilarityEntityType,
11988    pub address: u64,
11989    pub name: *const ::std::os::raw::c_char,
11990}
11991#[allow(clippy::unnecessary_operation, clippy::identity_op)]
11992const _: () = {
11993    ["Size of BNSimilarityEntityInfo"][::std::mem::size_of::<BNSimilarityEntityInfo>() - 24usize];
11994    ["Alignment of BNSimilarityEntityInfo"]
11995        [::std::mem::align_of::<BNSimilarityEntityInfo>() - 8usize];
11996    ["Offset of field: BNSimilarityEntityInfo::type_"]
11997        [::std::mem::offset_of!(BNSimilarityEntityInfo, type_) - 0usize];
11998    ["Offset of field: BNSimilarityEntityInfo::address"]
11999        [::std::mem::offset_of!(BNSimilarityEntityInfo, address) - 8usize];
12000    ["Offset of field: BNSimilarityEntityInfo::name"]
12001        [::std::mem::offset_of!(BNSimilarityEntityInfo, name) - 16usize];
12002};
12003impl Default for BNSimilarityEntityInfo {
12004    fn default() -> Self {
12005        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
12006        unsafe {
12007            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
12008            s.assume_init()
12009        }
12010    }
12011}
12012#[repr(u8)]
12013#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
12014pub enum BNSimilarityViewType {
12015    SimilarityViewFlowGraph = 0,
12016    SimilarityViewLinear = 1,
12017}
12018#[repr(u8)]
12019#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
12020pub enum BNSimilarityAnnotationType {
12021    SimilarityAnnotationAdded = 0,
12022    SimilarityAnnotationRemoved = 1,
12023    SimilarityAnnotationChanged = 2,
12024}
12025#[repr(C)]
12026#[derive(Debug, Default, Copy, Clone)]
12027pub struct BNSimilaritySessionCompletionQuery {
12028    pub hasNodeId: bool,
12029    pub nodeId: BNSimilaritySessionNodeId,
12030    pub hasProviderId: bool,
12031    pub providerId: BNSimilarityProviderId,
12032    pub hasResolverId: bool,
12033    pub resolverId: BNSimilaritySessionResolverId,
12034}
12035#[allow(clippy::unnecessary_operation, clippy::identity_op)]
12036const _: () = {
12037    ["Size of BNSimilaritySessionCompletionQuery"]
12038        [::std::mem::size_of::<BNSimilaritySessionCompletionQuery>() - 24usize];
12039    ["Alignment of BNSimilaritySessionCompletionQuery"]
12040        [::std::mem::align_of::<BNSimilaritySessionCompletionQuery>() - 4usize];
12041    ["Offset of field: BNSimilaritySessionCompletionQuery::hasNodeId"]
12042        [::std::mem::offset_of!(BNSimilaritySessionCompletionQuery, hasNodeId) - 0usize];
12043    ["Offset of field: BNSimilaritySessionCompletionQuery::nodeId"]
12044        [::std::mem::offset_of!(BNSimilaritySessionCompletionQuery, nodeId) - 4usize];
12045    ["Offset of field: BNSimilaritySessionCompletionQuery::hasProviderId"]
12046        [::std::mem::offset_of!(BNSimilaritySessionCompletionQuery, hasProviderId) - 8usize];
12047    ["Offset of field: BNSimilaritySessionCompletionQuery::providerId"]
12048        [::std::mem::offset_of!(BNSimilaritySessionCompletionQuery, providerId) - 12usize];
12049    ["Offset of field: BNSimilaritySessionCompletionQuery::hasResolverId"]
12050        [::std::mem::offset_of!(BNSimilaritySessionCompletionQuery, hasResolverId) - 16usize];
12051    ["Offset of field: BNSimilaritySessionCompletionQuery::resolverId"]
12052        [::std::mem::offset_of!(BNSimilaritySessionCompletionQuery, resolverId) - 20usize];
12053};
12054#[repr(C)]
12055#[derive(Debug, Copy, Clone)]
12056pub struct BNCustomSimilarityProvider {
12057    pub context: *mut ::std::os::raw::c_void,
12058    pub externalRefTaken:
12059        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
12060    pub externalRefReleased:
12061        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
12062    pub updateSettings: ::std::option::Option<
12063        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, settings: *mut BNSettings) -> bool,
12064    >,
12065    pub visitNode: ::std::option::Option<
12066        unsafe extern "C" fn(
12067            ctxt: *mut ::std::os::raw::c_void,
12068            node: *mut BNSimilaritySessionNode,
12069            results: *mut BNSimilarityProviderResults,
12070            completion: *mut BNSimilaritySessionCompletion,
12071        ) -> bool,
12072    >,
12073    pub visitNodeEdge: ::std::option::Option<
12074        unsafe extern "C" fn(
12075            ctxt: *mut ::std::os::raw::c_void,
12076            from: *mut BNSimilaritySessionNode,
12077            to: *mut BNSimilaritySessionNode,
12078            results: *mut BNSimilarityProviderResults,
12079            completion: *mut BNSimilaritySessionCompletion,
12080        ) -> bool,
12081    >,
12082    pub getName: ::std::option::Option<
12083        unsafe extern "C" fn(
12084            ctxt: *mut ::std::os::raw::c_void,
12085            node: *mut BNSimilaritySessionNode,
12086            entity: BNSimilarityEntityId,
12087            result: BNSimilarityResultId,
12088        ) -> *mut ::std::os::raw::c_char,
12089    >,
12090    pub apply: ::std::option::Option<
12091        unsafe extern "C" fn(
12092            ctxt: *mut ::std::os::raw::c_void,
12093            node: *mut BNSimilaritySessionNode,
12094            entity: BNSimilarityEntityId,
12095            result: BNSimilarityResultId,
12096        ) -> BNSimilarityApplyStatus,
12097    >,
12098    pub render: ::std::option::Option<
12099        unsafe extern "C" fn(
12100            ctxt: *mut ::std::os::raw::c_void,
12101            node: *mut BNSimilaritySessionNode,
12102            entity: BNSimilarityEntityId,
12103            context: *mut BNSimilarityRenderContext,
12104            result: BNSimilarityResultId,
12105        ),
12106    >,
12107    pub free: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
12108}
12109#[allow(clippy::unnecessary_operation, clippy::identity_op)]
12110const _: () = {
12111    ["Size of BNCustomSimilarityProvider"]
12112        [::std::mem::size_of::<BNCustomSimilarityProvider>() - 80usize];
12113    ["Alignment of BNCustomSimilarityProvider"]
12114        [::std::mem::align_of::<BNCustomSimilarityProvider>() - 8usize];
12115    ["Offset of field: BNCustomSimilarityProvider::context"]
12116        [::std::mem::offset_of!(BNCustomSimilarityProvider, context) - 0usize];
12117    ["Offset of field: BNCustomSimilarityProvider::externalRefTaken"]
12118        [::std::mem::offset_of!(BNCustomSimilarityProvider, externalRefTaken) - 8usize];
12119    ["Offset of field: BNCustomSimilarityProvider::externalRefReleased"]
12120        [::std::mem::offset_of!(BNCustomSimilarityProvider, externalRefReleased) - 16usize];
12121    ["Offset of field: BNCustomSimilarityProvider::updateSettings"]
12122        [::std::mem::offset_of!(BNCustomSimilarityProvider, updateSettings) - 24usize];
12123    ["Offset of field: BNCustomSimilarityProvider::visitNode"]
12124        [::std::mem::offset_of!(BNCustomSimilarityProvider, visitNode) - 32usize];
12125    ["Offset of field: BNCustomSimilarityProvider::visitNodeEdge"]
12126        [::std::mem::offset_of!(BNCustomSimilarityProvider, visitNodeEdge) - 40usize];
12127    ["Offset of field: BNCustomSimilarityProvider::getName"]
12128        [::std::mem::offset_of!(BNCustomSimilarityProvider, getName) - 48usize];
12129    ["Offset of field: BNCustomSimilarityProvider::apply"]
12130        [::std::mem::offset_of!(BNCustomSimilarityProvider, apply) - 56usize];
12131    ["Offset of field: BNCustomSimilarityProvider::render"]
12132        [::std::mem::offset_of!(BNCustomSimilarityProvider, render) - 64usize];
12133    ["Offset of field: BNCustomSimilarityProvider::free"]
12134        [::std::mem::offset_of!(BNCustomSimilarityProvider, free) - 72usize];
12135};
12136impl Default for BNCustomSimilarityProvider {
12137    fn default() -> Self {
12138        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
12139        unsafe {
12140            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
12141            s.assume_init()
12142        }
12143    }
12144}
12145#[repr(C)]
12146#[derive(Debug, Copy, Clone)]
12147pub struct BNCustomSimilarityProviderType {
12148    pub context: *mut ::std::os::raw::c_void,
12149    pub create: ::std::option::Option<
12150        unsafe extern "C" fn(
12151            ctxt: *mut ::std::os::raw::c_void,
12152            settings: *mut BNSettings,
12153        ) -> *mut BNSimilarityProvider,
12154    >,
12155    pub getDefaultSettings: ::std::option::Option<
12156        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> *mut BNSettings,
12157    >,
12158}
12159#[allow(clippy::unnecessary_operation, clippy::identity_op)]
12160const _: () = {
12161    ["Size of BNCustomSimilarityProviderType"]
12162        [::std::mem::size_of::<BNCustomSimilarityProviderType>() - 24usize];
12163    ["Alignment of BNCustomSimilarityProviderType"]
12164        [::std::mem::align_of::<BNCustomSimilarityProviderType>() - 8usize];
12165    ["Offset of field: BNCustomSimilarityProviderType::context"]
12166        [::std::mem::offset_of!(BNCustomSimilarityProviderType, context) - 0usize];
12167    ["Offset of field: BNCustomSimilarityProviderType::create"]
12168        [::std::mem::offset_of!(BNCustomSimilarityProviderType, create) - 8usize];
12169    ["Offset of field: BNCustomSimilarityProviderType::getDefaultSettings"]
12170        [::std::mem::offset_of!(BNCustomSimilarityProviderType, getDefaultSettings) - 16usize];
12171};
12172impl Default for BNCustomSimilarityProviderType {
12173    fn default() -> Self {
12174        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
12175        unsafe {
12176            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
12177            s.assume_init()
12178        }
12179    }
12180}
12181#[repr(C)]
12182#[derive(Debug, Copy, Clone)]
12183pub struct BNCustomSimilaritySessionResolver {
12184    pub context: *mut ::std::os::raw::c_void,
12185    pub externalRefTaken:
12186        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
12187    pub externalRefReleased:
12188        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
12189    pub updateSettings: ::std::option::Option<
12190        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, settings: *mut BNSettings) -> bool,
12191    >,
12192    pub prepareForNode: ::std::option::Option<
12193        unsafe extern "C" fn(
12194            ctxt: *mut ::std::os::raw::c_void,
12195            session: *mut BNSimilaritySession,
12196            node: *mut BNSimilaritySessionNode,
12197            completion: *mut BNSimilaritySessionCompletion,
12198            resolverId: BNSimilaritySessionResolverId,
12199        ),
12200    >,
12201    pub resolveForNode: ::std::option::Option<
12202        unsafe extern "C" fn(
12203            ctxt: *mut ::std::os::raw::c_void,
12204            session: *mut BNSimilaritySession,
12205            node: *mut BNSimilaritySessionNode,
12206            entities: *const BNSimilarityEntityId,
12207            entityCount: usize,
12208            completion: *mut BNSimilaritySessionCompletion,
12209            resolverId: BNSimilaritySessionResolverId,
12210        ),
12211    >,
12212    pub free: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
12213}
12214#[allow(clippy::unnecessary_operation, clippy::identity_op)]
12215const _: () = {
12216    ["Size of BNCustomSimilaritySessionResolver"]
12217        [::std::mem::size_of::<BNCustomSimilaritySessionResolver>() - 56usize];
12218    ["Alignment of BNCustomSimilaritySessionResolver"]
12219        [::std::mem::align_of::<BNCustomSimilaritySessionResolver>() - 8usize];
12220    ["Offset of field: BNCustomSimilaritySessionResolver::context"]
12221        [::std::mem::offset_of!(BNCustomSimilaritySessionResolver, context) - 0usize];
12222    ["Offset of field: BNCustomSimilaritySessionResolver::externalRefTaken"]
12223        [::std::mem::offset_of!(BNCustomSimilaritySessionResolver, externalRefTaken) - 8usize];
12224    ["Offset of field: BNCustomSimilaritySessionResolver::externalRefReleased"]
12225        [::std::mem::offset_of!(BNCustomSimilaritySessionResolver, externalRefReleased) - 16usize];
12226    ["Offset of field: BNCustomSimilaritySessionResolver::updateSettings"]
12227        [::std::mem::offset_of!(BNCustomSimilaritySessionResolver, updateSettings) - 24usize];
12228    ["Offset of field: BNCustomSimilaritySessionResolver::prepareForNode"]
12229        [::std::mem::offset_of!(BNCustomSimilaritySessionResolver, prepareForNode) - 32usize];
12230    ["Offset of field: BNCustomSimilaritySessionResolver::resolveForNode"]
12231        [::std::mem::offset_of!(BNCustomSimilaritySessionResolver, resolveForNode) - 40usize];
12232    ["Offset of field: BNCustomSimilaritySessionResolver::free"]
12233        [::std::mem::offset_of!(BNCustomSimilaritySessionResolver, free) - 48usize];
12234};
12235impl Default for BNCustomSimilaritySessionResolver {
12236    fn default() -> Self {
12237        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
12238        unsafe {
12239            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
12240            s.assume_init()
12241        }
12242    }
12243}
12244#[repr(C)]
12245#[derive(Debug, Copy, Clone)]
12246pub struct BNCustomSimilaritySessionResolverType {
12247    pub context: *mut ::std::os::raw::c_void,
12248    pub create: ::std::option::Option<
12249        unsafe extern "C" fn(
12250            ctxt: *mut ::std::os::raw::c_void,
12251            session: *mut BNSimilaritySession,
12252            settings: *mut BNSettings,
12253        ) -> *mut BNSimilaritySessionResolver,
12254    >,
12255    pub getDefaultSettings: ::std::option::Option<
12256        unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> *mut BNSettings,
12257    >,
12258}
12259#[allow(clippy::unnecessary_operation, clippy::identity_op)]
12260const _: () = {
12261    ["Size of BNCustomSimilaritySessionResolverType"]
12262        [::std::mem::size_of::<BNCustomSimilaritySessionResolverType>() - 24usize];
12263    ["Alignment of BNCustomSimilaritySessionResolverType"]
12264        [::std::mem::align_of::<BNCustomSimilaritySessionResolverType>() - 8usize];
12265    ["Offset of field: BNCustomSimilaritySessionResolverType::context"]
12266        [::std::mem::offset_of!(BNCustomSimilaritySessionResolverType, context) - 0usize];
12267    ["Offset of field: BNCustomSimilaritySessionResolverType::create"]
12268        [::std::mem::offset_of!(BNCustomSimilaritySessionResolverType, create) - 8usize];
12269    ["Offset of field: BNCustomSimilaritySessionResolverType::getDefaultSettings"][::std::mem::offset_of!(
12270        BNCustomSimilaritySessionResolverType,
12271        getDefaultSettings
12272    ) - 16usize];
12273};
12274impl Default for BNCustomSimilaritySessionResolverType {
12275    fn default() -> Self {
12276        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
12277        unsafe {
12278            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
12279            s.assume_init()
12280        }
12281    }
12282}
12283#[repr(C)]
12284#[derive(Debug, Copy, Clone)]
12285pub struct BNCustomSimilaritySessionReceiver {
12286    pub context: *mut ::std::os::raw::c_void,
12287    pub externalRefTaken:
12288        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
12289    pub externalRefReleased:
12290        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
12291    pub onStarted: ::std::option::Option<
12292        unsafe extern "C" fn(
12293            ctxt: *mut ::std::os::raw::c_void,
12294            completion: *mut BNSimilaritySessionCompletion,
12295        ),
12296    >,
12297    pub onUpdated: ::std::option::Option<
12298        unsafe extern "C" fn(
12299            ctxt: *mut ::std::os::raw::c_void,
12300            node: *mut BNSimilaritySessionNode,
12301            provider: *mut BNSimilarityProvider,
12302            entities: *const BNSimilarityEntityId,
12303            count: usize,
12304        ),
12305    >,
12306    pub free: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
12307}
12308#[allow(clippy::unnecessary_operation, clippy::identity_op)]
12309const _: () = {
12310    ["Size of BNCustomSimilaritySessionReceiver"]
12311        [::std::mem::size_of::<BNCustomSimilaritySessionReceiver>() - 48usize];
12312    ["Alignment of BNCustomSimilaritySessionReceiver"]
12313        [::std::mem::align_of::<BNCustomSimilaritySessionReceiver>() - 8usize];
12314    ["Offset of field: BNCustomSimilaritySessionReceiver::context"]
12315        [::std::mem::offset_of!(BNCustomSimilaritySessionReceiver, context) - 0usize];
12316    ["Offset of field: BNCustomSimilaritySessionReceiver::externalRefTaken"]
12317        [::std::mem::offset_of!(BNCustomSimilaritySessionReceiver, externalRefTaken) - 8usize];
12318    ["Offset of field: BNCustomSimilaritySessionReceiver::externalRefReleased"]
12319        [::std::mem::offset_of!(BNCustomSimilaritySessionReceiver, externalRefReleased) - 16usize];
12320    ["Offset of field: BNCustomSimilaritySessionReceiver::onStarted"]
12321        [::std::mem::offset_of!(BNCustomSimilaritySessionReceiver, onStarted) - 24usize];
12322    ["Offset of field: BNCustomSimilaritySessionReceiver::onUpdated"]
12323        [::std::mem::offset_of!(BNCustomSimilaritySessionReceiver, onUpdated) - 32usize];
12324    ["Offset of field: BNCustomSimilaritySessionReceiver::free"]
12325        [::std::mem::offset_of!(BNCustomSimilaritySessionReceiver, free) - 40usize];
12326};
12327impl Default for BNCustomSimilaritySessionReceiver {
12328    fn default() -> Self {
12329        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
12330        unsafe {
12331            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
12332            s.assume_init()
12333        }
12334    }
12335}
12336#[repr(C)]
12337#[derive(Debug, Copy, Clone)]
12338pub struct BNCustomSimilaritySessionGraphReceiver {
12339    pub context: *mut ::std::os::raw::c_void,
12340    pub externalRefTaken:
12341        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
12342    pub externalRefReleased:
12343        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
12344    pub onGraphChanged:
12345        ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
12346    pub free: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
12347}
12348#[allow(clippy::unnecessary_operation, clippy::identity_op)]
12349const _: () = {
12350    ["Size of BNCustomSimilaritySessionGraphReceiver"]
12351        [::std::mem::size_of::<BNCustomSimilaritySessionGraphReceiver>() - 40usize];
12352    ["Alignment of BNCustomSimilaritySessionGraphReceiver"]
12353        [::std::mem::align_of::<BNCustomSimilaritySessionGraphReceiver>() - 8usize];
12354    ["Offset of field: BNCustomSimilaritySessionGraphReceiver::context"]
12355        [::std::mem::offset_of!(BNCustomSimilaritySessionGraphReceiver, context) - 0usize];
12356    ["Offset of field: BNCustomSimilaritySessionGraphReceiver::externalRefTaken"]
12357        [::std::mem::offset_of!(BNCustomSimilaritySessionGraphReceiver, externalRefTaken) - 8usize];
12358    ["Offset of field: BNCustomSimilaritySessionGraphReceiver::externalRefReleased"][::std::mem::offset_of!(
12359        BNCustomSimilaritySessionGraphReceiver,
12360        externalRefReleased
12361    ) - 16usize];
12362    ["Offset of field: BNCustomSimilaritySessionGraphReceiver::onGraphChanged"]
12363        [::std::mem::offset_of!(BNCustomSimilaritySessionGraphReceiver, onGraphChanged) - 24usize];
12364    ["Offset of field: BNCustomSimilaritySessionGraphReceiver::free"]
12365        [::std::mem::offset_of!(BNCustomSimilaritySessionGraphReceiver, free) - 32usize];
12366};
12367impl Default for BNCustomSimilaritySessionGraphReceiver {
12368    fn default() -> Self {
12369        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
12370        unsafe {
12371            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
12372            s.assume_init()
12373        }
12374    }
12375}
12376unsafe extern "C" {
12377    pub fn BNRegisterSimilarityProviderType(
12378        name: *const ::std::os::raw::c_char,
12379        description: *const ::std::os::raw::c_char,
12380        type_: *mut BNCustomSimilarityProviderType,
12381    ) -> *mut BNSimilarityProviderType;
12382}
12383unsafe extern "C" {
12384    pub fn BNGetSimilarityProviderTypeByName(
12385        name: *const ::std::os::raw::c_char,
12386    ) -> *mut BNSimilarityProviderType;
12387}
12388unsafe extern "C" {
12389    pub fn BNGetSimilarityProviderTypeList(count: *mut usize)
12390    -> *mut *mut BNSimilarityProviderType;
12391}
12392unsafe extern "C" {
12393    pub fn BNFreeSimilarityProviderTypeList(types: *mut *mut BNSimilarityProviderType);
12394}
12395unsafe extern "C" {
12396    pub fn BNSimilarityProviderTypeGetName(
12397        type_: *mut BNSimilarityProviderType,
12398    ) -> *mut ::std::os::raw::c_char;
12399}
12400unsafe extern "C" {
12401    pub fn BNSimilarityProviderTypeGetDescription(
12402        type_: *mut BNSimilarityProviderType,
12403    ) -> *mut ::std::os::raw::c_char;
12404}
12405unsafe extern "C" {
12406    #[doc = " Returns `nullptr` outside the Ultimate edition."]
12407    pub fn BNSimilarityProviderTypeCreateProvider(
12408        type_: *mut BNSimilarityProviderType,
12409        settings: *mut BNSettings,
12410    ) -> *mut BNSimilarityProvider;
12411}
12412unsafe extern "C" {
12413    pub fn BNSimilarityProviderTypeGetDefaultSettings(
12414        type_: *mut BNSimilarityProviderType,
12415    ) -> *mut BNSettings;
12416}
12417unsafe extern "C" {
12418    #[doc = " Returns `nullptr` outside the Ultimate edition without taking ownership of `callbacks`."]
12419    pub fn BNCreateCustomSimilarityProvider(
12420        type_: *mut BNSimilarityProviderType,
12421        callbacks: *mut BNCustomSimilarityProvider,
12422    ) -> *mut BNSimilarityProvider;
12423}
12424unsafe extern "C" {
12425    pub fn BNSimilarityProviderVisitNode(
12426        provider: *mut BNSimilarityProvider,
12427        node: *mut BNSimilaritySessionNode,
12428        completion: *mut BNSimilaritySessionCompletion,
12429    );
12430}
12431unsafe extern "C" {
12432    pub fn BNSimilarityProviderVisitNodeEdge(
12433        provider: *mut BNSimilarityProvider,
12434        from: *mut BNSimilaritySessionNode,
12435        to: *mut BNSimilaritySessionNode,
12436        completion: *mut BNSimilaritySessionCompletion,
12437    );
12438}
12439unsafe extern "C" {
12440    pub fn BNSimilarityProviderPerformVisitNode(
12441        provider: *mut BNSimilarityProvider,
12442        node: *mut BNSimilaritySessionNode,
12443        results: *mut BNSimilarityProviderResults,
12444        completion: *mut BNSimilaritySessionCompletion,
12445    ) -> bool;
12446}
12447unsafe extern "C" {
12448    pub fn BNSimilarityProviderPerformVisitNodeEdge(
12449        provider: *mut BNSimilarityProvider,
12450        from: *mut BNSimilaritySessionNode,
12451        to: *mut BNSimilaritySessionNode,
12452        results: *mut BNSimilarityProviderResults,
12453        completion: *mut BNSimilaritySessionCompletion,
12454    ) -> bool;
12455}
12456unsafe extern "C" {
12457    pub fn BNSimilarityProviderResultsAddResult(
12458        results: *mut BNSimilarityProviderResults,
12459        source: *const BNSimilarityEntityRef,
12460        target: *const BNSimilarityEntityRef,
12461        similarity: u8,
12462        confidence: u8,
12463    ) -> BNSimilarityResultId;
12464}
12465unsafe extern "C" {
12466    pub fn BNSimilarityProviderGetType(
12467        provider: *mut BNSimilarityProvider,
12468    ) -> *mut BNSimilarityProviderType;
12469}
12470unsafe extern "C" {
12471    pub fn BNSimilarityProviderGetId(provider: *mut BNSimilarityProvider)
12472    -> BNSimilarityProviderId;
12473}
12474unsafe extern "C" {
12475    pub fn BNSimilarityProviderGetName(
12476        provider: *mut BNSimilarityProvider,
12477        node: *mut BNSimilaritySessionNode,
12478        entity: BNSimilarityEntityId,
12479        result: BNSimilarityResultId,
12480    ) -> *mut ::std::os::raw::c_char;
12481}
12482unsafe extern "C" {
12483    pub fn BNSimilarityProviderApply(
12484        provider: *mut BNSimilarityProvider,
12485        node: *mut BNSimilaritySessionNode,
12486        entity: BNSimilarityEntityId,
12487        result: BNSimilarityResultId,
12488    ) -> BNSimilarityApplyStatus;
12489}
12490unsafe extern "C" {
12491    pub fn BNSimilaritySessionNodeApplyTarget(
12492        node: *mut BNSimilaritySessionNode,
12493        entity: BNSimilarityEntityId,
12494        target: *const BNSimilarityEntityRef,
12495    ) -> BNSimilarityApplyStatus;
12496}
12497unsafe extern "C" {
12498    pub fn BNSimilarityProviderRender(
12499        provider: *mut BNSimilarityProvider,
12500        node: *mut BNSimilaritySessionNode,
12501        entity: BNSimilarityEntityId,
12502        context: *mut BNSimilarityRenderContext,
12503        result: BNSimilarityResultId,
12504    );
12505}
12506unsafe extern "C" {
12507    pub fn BNCreateSimilarityRenderContext() -> *mut BNSimilarityRenderContext;
12508}
12509unsafe extern "C" {
12510    pub fn BNSimilarityRenderContextSetPreferredViewType(
12511        context: *mut BNSimilarityRenderContext,
12512        type_: BNFunctionViewType,
12513    );
12514}
12515unsafe extern "C" {
12516    pub fn BNSimilarityRenderContextGetPreferredViewType(
12517        context: *mut BNSimilarityRenderContext,
12518    ) -> BNFunctionGraphType;
12519}
12520unsafe extern "C" {
12521    pub fn BNSimilarityRenderContextGetPreferredViewTypeName(
12522        context: *mut BNSimilarityRenderContext,
12523    ) -> *mut ::std::os::raw::c_char;
12524}
12525unsafe extern "C" {
12526    pub fn BNSimilarityRenderContextAddFlowGraph(
12527        context: *mut BNSimilarityRenderContext,
12528        group: *const ::std::os::raw::c_char,
12529        graph: *mut BNFlowGraph,
12530    );
12531}
12532unsafe extern "C" {
12533    pub fn BNSimilarityRenderContextAddFlowGraphForEntity(
12534        context: *mut BNSimilarityRenderContext,
12535        group: *const ::std::os::raw::c_char,
12536        graph: *mut BNFlowGraph,
12537        entity: *const BNSimilarityEntityRef,
12538    );
12539}
12540unsafe extern "C" {
12541    pub fn BNSimilarityRenderContextAddLinearView(
12542        context: *mut BNSimilarityRenderContext,
12543        group: *const ::std::os::raw::c_char,
12544        data: *mut BNBinaryView,
12545        linearView: *mut BNLinearViewObject,
12546    );
12547}
12548unsafe extern "C" {
12549    pub fn BNSimilarityRenderContextAddLinearViewForEntity(
12550        context: *mut BNSimilarityRenderContext,
12551        group: *const ::std::os::raw::c_char,
12552        data: *mut BNBinaryView,
12553        linearView: *mut BNLinearViewObject,
12554        entity: *const BNSimilarityEntityRef,
12555    );
12556}
12557unsafe extern "C" {
12558    pub fn BNGetSimilarityRenderContextViews(
12559        context: *mut BNSimilarityRenderContext,
12560        count: *mut usize,
12561    ) -> *mut *mut BNSimilarityView;
12562}
12563unsafe extern "C" {
12564    pub fn BNFreeSimilarityViewList(views: *mut *mut BNSimilarityView, count: usize);
12565}
12566unsafe extern "C" {
12567    pub fn BNSimilarityViewGetGroup(view: *mut BNSimilarityView) -> *mut ::std::os::raw::c_char;
12568}
12569unsafe extern "C" {
12570    pub fn BNSimilarityViewGetType(view: *mut BNSimilarityView) -> BNSimilarityViewType;
12571}
12572unsafe extern "C" {
12573    pub fn BNSimilarityViewGetFlowGraph(view: *mut BNSimilarityView) -> *mut BNFlowGraph;
12574}
12575unsafe extern "C" {
12576    pub fn BNSimilarityViewGetLinearViewData(view: *mut BNSimilarityView) -> *mut BNBinaryView;
12577}
12578unsafe extern "C" {
12579    pub fn BNSimilarityViewGetLinearView(view: *mut BNSimilarityView) -> *mut BNLinearViewObject;
12580}
12581unsafe extern "C" {
12582    pub fn BNSimilarityViewGetEntity(
12583        view: *mut BNSimilarityView,
12584        entity: *mut BNSimilarityEntityRef,
12585    ) -> bool;
12586}
12587unsafe extern "C" {
12588    pub fn BNNewSimilarityViewReference(view: *mut BNSimilarityView) -> *mut BNSimilarityView;
12589}
12590unsafe extern "C" {
12591    pub fn BNFreeSimilarityView(view: *mut BNSimilarityView);
12592}
12593unsafe extern "C" {
12594    pub fn BNNewSimilarityRenderContextReference(
12595        context: *mut BNSimilarityRenderContext,
12596    ) -> *mut BNSimilarityRenderContext;
12597}
12598unsafe extern "C" {
12599    pub fn BNFreeSimilarityRenderContext(context: *mut BNSimilarityRenderContext);
12600}
12601unsafe extern "C" {
12602    pub fn BNCreateDiffRenderer() -> *mut BNDiffRenderer;
12603}
12604unsafe extern "C" {
12605    pub fn BNDiffRendererAddRangeAnnotation(
12606        renderer: *mut BNDiffRenderer,
12607        start: u64,
12608        end: u64,
12609        type_: BNSimilarityAnnotationType,
12610    );
12611}
12612unsafe extern "C" {
12613    pub fn BNDiffRendererRenderFunction(
12614        renderer: *mut BNDiffRenderer,
12615        context: *mut BNSimilarityRenderContext,
12616        function: *mut BNFunction,
12617    );
12618}
12619unsafe extern "C" {
12620    pub fn BNDiffRendererRenderFunctionForEntity(
12621        renderer: *mut BNDiffRenderer,
12622        context: *mut BNSimilarityRenderContext,
12623        function: *mut BNFunction,
12624        entity: *const BNSimilarityEntityRef,
12625    );
12626}
12627unsafe extern "C" {
12628    pub fn BNDiffRendererRenderFlowGraph(
12629        renderer: *mut BNDiffRenderer,
12630        context: *mut BNSimilarityRenderContext,
12631        group: *const ::std::os::raw::c_char,
12632        graph: *mut BNFlowGraph,
12633    );
12634}
12635unsafe extern "C" {
12636    pub fn BNDiffRendererRenderFlowGraphForEntity(
12637        renderer: *mut BNDiffRenderer,
12638        context: *mut BNSimilarityRenderContext,
12639        group: *const ::std::os::raw::c_char,
12640        graph: *mut BNFlowGraph,
12641        entity: *const BNSimilarityEntityRef,
12642    );
12643}
12644unsafe extern "C" {
12645    pub fn BNDiffRendererRenderLinearView(
12646        renderer: *mut BNDiffRenderer,
12647        context: *mut BNSimilarityRenderContext,
12648        group: *const ::std::os::raw::c_char,
12649        data: *mut BNBinaryView,
12650        linearView: *mut BNLinearViewObject,
12651    );
12652}
12653unsafe extern "C" {
12654    pub fn BNDiffRendererRenderLinearViewForEntity(
12655        renderer: *mut BNDiffRenderer,
12656        context: *mut BNSimilarityRenderContext,
12657        group: *const ::std::os::raw::c_char,
12658        data: *mut BNBinaryView,
12659        linearView: *mut BNLinearViewObject,
12660        entity: *const BNSimilarityEntityRef,
12661    );
12662}
12663unsafe extern "C" {
12664    pub fn BNNewDiffRendererReference(renderer: *mut BNDiffRenderer) -> *mut BNDiffRenderer;
12665}
12666unsafe extern "C" {
12667    pub fn BNFreeDiffRenderer(renderer: *mut BNDiffRenderer);
12668}
12669unsafe extern "C" {
12670    pub fn BNNewSimilarityProviderReference(
12671        provider: *mut BNSimilarityProvider,
12672    ) -> *mut BNSimilarityProvider;
12673}
12674unsafe extern "C" {
12675    pub fn BNFreeSimilarityProvider(provider: *mut BNSimilarityProvider);
12676}
12677unsafe extern "C" {
12678    pub fn BNFreeSimilarityResultIdList(results: *mut BNSimilarityResultId);
12679}
12680unsafe extern "C" {
12681    pub fn BNRegisterSimilaritySessionResolverType(
12682        name: *const ::std::os::raw::c_char,
12683        description: *const ::std::os::raw::c_char,
12684        type_: *mut BNCustomSimilaritySessionResolverType,
12685    ) -> *mut BNSimilaritySessionResolverType;
12686}
12687unsafe extern "C" {
12688    pub fn BNGetSimilaritySessionResolverTypeByName(
12689        name: *const ::std::os::raw::c_char,
12690    ) -> *mut BNSimilaritySessionResolverType;
12691}
12692unsafe extern "C" {
12693    pub fn BNGetSimilaritySessionResolverTypeList(
12694        count: *mut usize,
12695    ) -> *mut *mut BNSimilaritySessionResolverType;
12696}
12697unsafe extern "C" {
12698    pub fn BNFreeSimilaritySessionResolverTypeList(
12699        types: *mut *mut BNSimilaritySessionResolverType,
12700    );
12701}
12702unsafe extern "C" {
12703    pub fn BNSimilaritySessionResolverTypeGetName(
12704        type_: *mut BNSimilaritySessionResolverType,
12705    ) -> *mut ::std::os::raw::c_char;
12706}
12707unsafe extern "C" {
12708    pub fn BNSimilaritySessionResolverTypeGetDescription(
12709        type_: *mut BNSimilaritySessionResolverType,
12710    ) -> *mut ::std::os::raw::c_char;
12711}
12712unsafe extern "C" {
12713    pub fn BNSimilaritySessionResolverTypeCreateResolver(
12714        type_: *mut BNSimilaritySessionResolverType,
12715        session: *mut BNSimilaritySession,
12716        settings: *mut BNSettings,
12717    ) -> *mut BNSimilaritySessionResolver;
12718}
12719unsafe extern "C" {
12720    pub fn BNSimilaritySessionResolverTypeGetDefaultSettings(
12721        type_: *mut BNSimilaritySessionResolverType,
12722    ) -> *mut BNSettings;
12723}
12724unsafe extern "C" {
12725    pub fn BNCreateCustomSimilaritySessionResolver(
12726        type_: *mut BNSimilaritySessionResolverType,
12727        session: *mut BNSimilaritySession,
12728        callbacks: *mut BNCustomSimilaritySessionResolver,
12729    ) -> *mut BNSimilaritySessionResolver;
12730}
12731unsafe extern "C" {
12732    pub fn BNSimilaritySessionResolverGetType(
12733        resolver: *mut BNSimilaritySessionResolver,
12734    ) -> *mut BNSimilaritySessionResolverType;
12735}
12736unsafe extern "C" {
12737    pub fn BNSimilaritySessionResolverGetId(
12738        resolver: *mut BNSimilaritySessionResolver,
12739    ) -> BNSimilaritySessionResolverId;
12740}
12741unsafe extern "C" {
12742    pub fn BNSimilaritySessionResolverPrepareForNode(
12743        resolver: *mut BNSimilaritySessionResolver,
12744        session: *mut BNSimilaritySession,
12745        node: *mut BNSimilaritySessionNode,
12746        completion: *mut BNSimilaritySessionCompletion,
12747    );
12748}
12749unsafe extern "C" {
12750    pub fn BNSimilaritySessionResolverResolveForNode(
12751        resolver: *mut BNSimilaritySessionResolver,
12752        session: *mut BNSimilaritySession,
12753        node: *mut BNSimilaritySessionNode,
12754        entities: *const BNSimilarityEntityId,
12755        entityCount: usize,
12756        completion: *mut BNSimilaritySessionCompletion,
12757    );
12758}
12759unsafe extern "C" {
12760    pub fn BNNewSimilaritySessionResolverReference(
12761        resolver: *mut BNSimilaritySessionResolver,
12762    ) -> *mut BNSimilaritySessionResolver;
12763}
12764unsafe extern "C" {
12765    pub fn BNFreeSimilaritySessionResolver(resolver: *mut BNSimilaritySessionResolver);
12766}
12767unsafe extern "C" {
12768    pub fn BNFreeSimilaritySessionResolverList(
12769        resolvers: *mut *mut BNSimilaritySessionResolver,
12770        count: usize,
12771    );
12772}
12773unsafe extern "C" {
12774    pub fn BNCreateSimilaritySessionNode(view: *mut BNBinaryView) -> *mut BNSimilaritySessionNode;
12775}
12776unsafe extern "C" {
12777    pub fn BNCreateSimilaritySessionNodeFromFile(
12778        file: *mut BNFileMetadata,
12779    ) -> *mut BNSimilaritySessionNode;
12780}
12781unsafe extern "C" {
12782    pub fn BNSimilaritySessionNodeGetView(node: *mut BNSimilaritySessionNode) -> *mut BNBinaryView;
12783}
12784unsafe extern "C" {
12785    pub fn BNSimilaritySessionNodeSetView(
12786        node: *mut BNSimilaritySessionNode,
12787        view: *mut BNBinaryView,
12788    );
12789}
12790unsafe extern "C" {
12791    pub fn BNSimilaritySessionNodeGetFile(
12792        node: *mut BNSimilaritySessionNode,
12793    ) -> *mut BNFileMetadata;
12794}
12795unsafe extern "C" {
12796    pub fn BNSimilaritySessionNodeGetLoadOptions(
12797        node: *mut BNSimilaritySessionNode,
12798    ) -> *mut BNSettings;
12799}
12800unsafe extern "C" {
12801    pub fn BNSimilaritySessionNodeGetId(
12802        node: *mut BNSimilaritySessionNode,
12803    ) -> BNSimilaritySessionNodeId;
12804}
12805unsafe extern "C" {
12806    pub fn BNSimilaritySessionNodeCreateEntity(
12807        node: *mut BNSimilaritySessionNode,
12808        info: *const BNSimilarityEntityInfo,
12809    ) -> BNSimilarityEntityId;
12810}
12811unsafe extern "C" {
12812    pub fn BNSimilaritySessionNodeRemoveEntity(
12813        node: *mut BNSimilaritySessionNode,
12814        id: BNSimilarityEntityId,
12815    ) -> bool;
12816}
12817unsafe extern "C" {
12818    pub fn BNSimilaritySessionNodeGetEntity(
12819        node: *mut BNSimilaritySessionNode,
12820        id: BNSimilarityEntityId,
12821        result: *mut BNSimilarityEntityInfo,
12822    ) -> bool;
12823}
12824unsafe extern "C" {
12825    pub fn BNFreeSimilarityEntityInfo(info: *mut BNSimilarityEntityInfo);
12826}
12827unsafe extern "C" {
12828    pub fn BNSimilaritySessionNodeGetEntities(
12829        node: *mut BNSimilaritySessionNode,
12830        count: *mut usize,
12831    ) -> *mut BNSimilarityEntityId;
12832}
12833unsafe extern "C" {
12834    pub fn BNSimilaritySessionNodeAddScheduledEntity(
12835        node: *mut BNSimilaritySessionNode,
12836        id: BNSimilarityEntityId,
12837    ) -> bool;
12838}
12839unsafe extern "C" {
12840    pub fn BNSimilaritySessionNodeRemoveScheduledEntity(
12841        node: *mut BNSimilaritySessionNode,
12842        id: BNSimilarityEntityId,
12843    ) -> bool;
12844}
12845unsafe extern "C" {
12846    pub fn BNSimilaritySessionNodeGetScheduledEntities(
12847        node: *mut BNSimilaritySessionNode,
12848        count: *mut usize,
12849    ) -> *mut BNSimilarityEntityId;
12850}
12851unsafe extern "C" {
12852    pub fn BNSimilaritySessionNodeGetEntityFunction(
12853        node: *mut BNSimilaritySessionNode,
12854        id: BNSimilarityEntityId,
12855    ) -> *mut BNFunction;
12856}
12857unsafe extern "C" {
12858    pub fn BNSimilaritySessionNodeGetResults(
12859        node: *mut BNSimilaritySessionNode,
12860        entity: BNSimilarityEntityId,
12861        count: *mut usize,
12862    ) -> *mut BNSimilarityResultId;
12863}
12864unsafe extern "C" {
12865    pub fn BNSimilaritySessionNodeGetResult(
12866        node: *mut BNSimilaritySessionNode,
12867        resultId: BNSimilarityResultId,
12868        result: *mut BNSimilarityResult,
12869    ) -> bool;
12870}
12871unsafe extern "C" {
12872    pub fn BNSimilaritySessionNodeSetResolvedResult(
12873        node: *mut BNSimilaritySessionNode,
12874        entity: BNSimilarityEntityId,
12875        result: BNSimilarityResultId,
12876    ) -> bool;
12877}
12878unsafe extern "C" {
12879    pub fn BNSimilaritySessionNodeGetResolvedResult(
12880        node: *mut BNSimilaritySessionNode,
12881        entity: BNSimilarityEntityId,
12882        result: *mut BNSimilarityResultId,
12883    ) -> bool;
12884}
12885unsafe extern "C" {
12886    pub fn BNSimilaritySessionNodeClearResolvedResult(
12887        node: *mut BNSimilaritySessionNode,
12888        entity: BNSimilarityEntityId,
12889    ) -> bool;
12890}
12891unsafe extern "C" {
12892    pub fn BNFreeSimilarityEntityList(entities: *mut BNSimilarityEntityId);
12893}
12894unsafe extern "C" {
12895    pub fn BNSimilaritySessionNodeGetIncomingEdges(
12896        node: *mut BNSimilaritySessionNode,
12897        count: *mut usize,
12898    ) -> *mut BNSimilaritySessionNodeId;
12899}
12900unsafe extern "C" {
12901    pub fn BNSimilaritySessionNodeGetOutgoingEdges(
12902        node: *mut BNSimilaritySessionNode,
12903        count: *mut usize,
12904    ) -> *mut BNSimilaritySessionNodeId;
12905}
12906unsafe extern "C" {
12907    pub fn BNFreeSimilaritySessionNodeEdgeList(edges: *mut BNSimilaritySessionNodeId);
12908}
12909unsafe extern "C" {
12910    pub fn BNSimilaritySessionNodeGetIncomingNodes(
12911        node: *mut BNSimilaritySessionNode,
12912        count: *mut usize,
12913    ) -> *mut *mut BNSimilaritySessionNode;
12914}
12915unsafe extern "C" {
12916    pub fn BNSimilaritySessionNodeGetOutgoingNodes(
12917        node: *mut BNSimilaritySessionNode,
12918        count: *mut usize,
12919    ) -> *mut *mut BNSimilaritySessionNode;
12920}
12921unsafe extern "C" {
12922    pub fn BNNewSimilaritySessionNodeReference(
12923        node: *mut BNSimilaritySessionNode,
12924    ) -> *mut BNSimilaritySessionNode;
12925}
12926unsafe extern "C" {
12927    pub fn BNFreeSimilaritySessionNode(node: *mut BNSimilaritySessionNode);
12928}
12929unsafe extern "C" {
12930    pub fn BNSimilaritySessionGraphAddNode(
12931        graph: *mut BNSimilaritySessionGraph,
12932        node: *mut BNSimilaritySessionNode,
12933    );
12934}
12935unsafe extern "C" {
12936    pub fn BNSimilaritySessionGraphRemoveNode(
12937        graph: *mut BNSimilaritySessionGraph,
12938        node: *mut BNSimilaritySessionNode,
12939    );
12940}
12941unsafe extern "C" {
12942    pub fn BNSimilaritySessionGraphIsValidEdge(
12943        graph: *mut BNSimilaritySessionGraph,
12944        from: *mut BNSimilaritySessionNode,
12945        to: *mut BNSimilaritySessionNode,
12946    ) -> bool;
12947}
12948unsafe extern "C" {
12949    pub fn BNSimilaritySessionGraphAddEdge(
12950        graph: *mut BNSimilaritySessionGraph,
12951        from: *mut BNSimilaritySessionNode,
12952        to: *mut BNSimilaritySessionNode,
12953    ) -> bool;
12954}
12955unsafe extern "C" {
12956    pub fn BNSimilaritySessionGraphRemoveEdge(
12957        graph: *mut BNSimilaritySessionGraph,
12958        from: *mut BNSimilaritySessionNode,
12959        to: *mut BNSimilaritySessionNode,
12960    ) -> bool;
12961}
12962unsafe extern "C" {
12963    pub fn BNSimilaritySessionGraphGetNode(
12964        graph: *mut BNSimilaritySessionGraph,
12965        id: BNSimilaritySessionNodeId,
12966    ) -> *mut BNSimilaritySessionNode;
12967}
12968unsafe extern "C" {
12969    pub fn BNSimilaritySessionGraphGetNodes(
12970        graph: *mut BNSimilaritySessionGraph,
12971        count: *mut usize,
12972    ) -> *mut *mut BNSimilaritySessionNode;
12973}
12974unsafe extern "C" {
12975    pub fn BNFreeSimilaritySessionNodeList(nodes: *mut *mut BNSimilaritySessionNode, count: usize);
12976}
12977unsafe extern "C" {
12978    pub fn BNSimilaritySessionGraphGetSchedule(
12979        graph: *mut BNSimilaritySessionGraph,
12980        nodeCounts: *mut *mut usize,
12981        levelCount: *mut usize,
12982    ) -> *mut *mut *mut BNSimilaritySessionNode;
12983}
12984unsafe extern "C" {
12985    pub fn BNFreeSimilaritySessionNodeSchedule(
12986        schedule: *mut *mut *mut BNSimilaritySessionNode,
12987        nodeCounts: *mut usize,
12988        levelCount: usize,
12989    );
12990}
12991unsafe extern "C" {
12992    pub fn BNNewSimilaritySessionGraphReference(
12993        node: *mut BNSimilaritySessionGraph,
12994    ) -> *mut BNSimilaritySessionGraph;
12995}
12996unsafe extern "C" {
12997    pub fn BNFreeSimilaritySessionGraph(graph: *mut BNSimilaritySessionGraph);
12998}
12999unsafe extern "C" {
13000    pub fn BNCreateCustomSimilaritySessionGraphReceiver(
13001        callbacks: *mut BNCustomSimilaritySessionGraphReceiver,
13002    ) -> *mut BNSimilaritySessionGraphReceiver;
13003}
13004unsafe extern "C" {
13005    pub fn BNNewSimilaritySessionGraphReceiverReference(
13006        receiver: *mut BNSimilaritySessionGraphReceiver,
13007    ) -> *mut BNSimilaritySessionGraphReceiver;
13008}
13009unsafe extern "C" {
13010    pub fn BNFreeSimilaritySessionGraphReceiver(receiver: *mut BNSimilaritySessionGraphReceiver);
13011}
13012unsafe extern "C" {
13013    pub fn BNFreeSimilaritySessionGraphReceiverList(
13014        receivers: *mut *mut BNSimilaritySessionGraphReceiver,
13015        count: usize,
13016    );
13017}
13018unsafe extern "C" {
13019    pub fn BNSimilaritySessionGraphReceiverNotifyGraphChanged(
13020        receiver: *mut BNSimilaritySessionGraphReceiver,
13021    );
13022}
13023unsafe extern "C" {
13024    pub fn BNSimilaritySessionGraphAddReceiver(
13025        graph: *mut BNSimilaritySessionGraph,
13026        receiver: *mut BNSimilaritySessionGraphReceiver,
13027    );
13028}
13029unsafe extern "C" {
13030    pub fn BNSimilaritySessionGraphRemoveReceiver(
13031        graph: *mut BNSimilaritySessionGraph,
13032        receiver: *mut BNSimilaritySessionGraphReceiver,
13033    );
13034}
13035unsafe extern "C" {
13036    pub fn BNSimilaritySessionGraphGetReceivers(
13037        graph: *mut BNSimilaritySessionGraph,
13038        count: *mut usize,
13039    ) -> *mut *mut BNSimilaritySessionGraphReceiver;
13040}
13041unsafe extern "C" {
13042    pub fn BNCreateSimilaritySession() -> *mut BNSimilaritySession;
13043}
13044unsafe extern "C" {
13045    pub fn BNSimilaritySessionGetId(session: *mut BNSimilaritySession) -> BNSimilaritySessionId;
13046}
13047unsafe extern "C" {
13048    pub fn BNCreateCustomSimilaritySessionReceiver(
13049        callbacks: *mut BNCustomSimilaritySessionReceiver,
13050    ) -> *mut BNSimilaritySessionReceiver;
13051}
13052unsafe extern "C" {
13053    pub fn BNNewSimilaritySessionReceiverReference(
13054        receiver: *mut BNSimilaritySessionReceiver,
13055    ) -> *mut BNSimilaritySessionReceiver;
13056}
13057unsafe extern "C" {
13058    pub fn BNFreeSimilaritySessionReceiver(receiver: *mut BNSimilaritySessionReceiver);
13059}
13060unsafe extern "C" {
13061    pub fn BNFreeSimilaritySessionReceiverList(
13062        receivers: *mut *mut BNSimilaritySessionReceiver,
13063        count: usize,
13064    );
13065}
13066unsafe extern "C" {
13067    pub fn BNSimilaritySessionReceiverNotifyStart(
13068        receiver: *mut BNSimilaritySessionReceiver,
13069        completion: *mut BNSimilaritySessionCompletion,
13070    );
13071}
13072unsafe extern "C" {
13073    pub fn BNSimilaritySessionReceiverNotifyBatch(
13074        receiver: *mut BNSimilaritySessionReceiver,
13075        node: *mut BNSimilaritySessionNode,
13076        provider: *mut BNSimilarityProvider,
13077        entities: *const BNSimilarityEntityId,
13078        count: usize,
13079    );
13080}
13081unsafe extern "C" {
13082    pub fn BNSimilaritySessionAddProvider(
13083        session: *mut BNSimilaritySession,
13084        provider: *mut BNSimilarityProvider,
13085    );
13086}
13087unsafe extern "C" {
13088    pub fn BNSimilaritySessionRemoveProvider(
13089        session: *mut BNSimilaritySession,
13090        provider: *mut BNSimilarityProvider,
13091    );
13092}
13093unsafe extern "C" {
13094    pub fn BNSimilaritySessionUpdateProviderSettings(
13095        session: *mut BNSimilaritySession,
13096        provider: *mut BNSimilarityProvider,
13097        settings: *mut BNSettings,
13098    ) -> bool;
13099}
13100unsafe extern "C" {
13101    pub fn BNSimilaritySessionGetProvider(
13102        session: *mut BNSimilaritySession,
13103        id: BNSimilarityProviderId,
13104    ) -> *mut BNSimilarityProvider;
13105}
13106unsafe extern "C" {
13107    pub fn BNSimilaritySessionGetProviders(
13108        session: *mut BNSimilaritySession,
13109        count: *mut usize,
13110    ) -> *mut *mut BNSimilarityProvider;
13111}
13112unsafe extern "C" {
13113    pub fn BNFreeSimilarityProviderList(providers: *mut *mut BNSimilarityProvider, count: usize);
13114}
13115unsafe extern "C" {
13116    pub fn BNSimilaritySessionAddResolver(
13117        session: *mut BNSimilaritySession,
13118        resolver: *mut BNSimilaritySessionResolver,
13119    ) -> bool;
13120}
13121unsafe extern "C" {
13122    pub fn BNSimilaritySessionRemoveResolver(
13123        session: *mut BNSimilaritySession,
13124        resolver: *mut BNSimilaritySessionResolver,
13125    ) -> bool;
13126}
13127unsafe extern "C" {
13128    pub fn BNSimilaritySessionUpdateResolverSettings(
13129        session: *mut BNSimilaritySession,
13130        resolver: *mut BNSimilaritySessionResolver,
13131        settings: *mut BNSettings,
13132    ) -> bool;
13133}
13134unsafe extern "C" {
13135    pub fn BNSimilaritySessionGetResolver(
13136        session: *mut BNSimilaritySession,
13137        id: BNSimilaritySessionResolverId,
13138    ) -> *mut BNSimilaritySessionResolver;
13139}
13140unsafe extern "C" {
13141    pub fn BNSimilaritySessionGetResolvers(
13142        session: *mut BNSimilaritySession,
13143        count: *mut usize,
13144    ) -> *mut *mut BNSimilaritySessionResolver;
13145}
13146unsafe extern "C" {
13147    pub fn BNSimilaritySessionAddReceiver(
13148        session: *mut BNSimilaritySession,
13149        receiver: *mut BNSimilaritySessionReceiver,
13150    );
13151}
13152unsafe extern "C" {
13153    pub fn BNSimilaritySessionRemoveReceiver(
13154        session: *mut BNSimilaritySession,
13155        receiver: *mut BNSimilaritySessionReceiver,
13156    );
13157}
13158unsafe extern "C" {
13159    pub fn BNSimilaritySessionGetReceivers(
13160        session: *mut BNSimilaritySession,
13161        count: *mut usize,
13162    ) -> *mut *mut BNSimilaritySessionReceiver;
13163}
13164unsafe extern "C" {
13165    pub fn BNSimilaritySessionGetGraph(
13166        session: *mut BNSimilaritySession,
13167    ) -> *mut BNSimilaritySessionGraph;
13168}
13169unsafe extern "C" {
13170    pub fn BNSimilaritySessionRun(
13171        session: *mut BNSimilaritySession,
13172    ) -> *mut BNSimilaritySessionCompletion;
13173}
13174unsafe extern "C" {
13175    pub fn BNNewSimilaritySessionReference(
13176        session: *mut BNSimilaritySession,
13177    ) -> *mut BNSimilaritySession;
13178}
13179unsafe extern "C" {
13180    pub fn BNFreeSimilaritySession(session: *mut BNSimilaritySession);
13181}
13182unsafe extern "C" {
13183    pub fn BNCreateSimilaritySessionCompletion() -> *mut BNSimilaritySessionCompletion;
13184}
13185unsafe extern "C" {
13186    pub fn BNSimilaritySessionCompletionIsFinished(
13187        completion: *mut BNSimilaritySessionCompletion,
13188    ) -> bool;
13189}
13190unsafe extern "C" {
13191    pub fn BNSimilaritySessionCompletionRequestStop(completion: *mut BNSimilaritySessionCompletion);
13192}
13193unsafe extern "C" {
13194    pub fn BNSimilaritySessionCompletionIsStopRequested(
13195        completion: *mut BNSimilaritySessionCompletion,
13196    ) -> bool;
13197}
13198unsafe extern "C" {
13199    pub fn BNSimilaritySessionCompletionGetProgress(
13200        completion: *mut BNSimilaritySessionCompletion,
13201        query: *const BNSimilaritySessionCompletionQuery,
13202    ) -> f64;
13203}
13204unsafe extern "C" {
13205    pub fn BNSimilaritySessionCompletionSetProgress(
13206        completion: *mut BNSimilaritySessionCompletion,
13207        query: *const BNSimilaritySessionCompletionQuery,
13208        progress: f64,
13209    );
13210}
13211unsafe extern "C" {
13212    pub fn BNSimilaritySessionCompletionGetTiming(
13213        completion: *mut BNSimilaritySessionCompletion,
13214        query: *const BNSimilaritySessionCompletionQuery,
13215    ) -> u64;
13216}
13217unsafe extern "C" {
13218    pub fn BNNewSimilaritySessionCompletionReference(
13219        completion: *mut BNSimilaritySessionCompletion,
13220    ) -> *mut BNSimilaritySessionCompletion;
13221}
13222unsafe extern "C" {
13223    pub fn BNFreeSimilaritySessionCompletion(completion: *mut BNSimilaritySessionCompletion);
13224}
13225unsafe extern "C" {
13226    pub fn BNAllocString(contents: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
13227}
13228unsafe extern "C" {
13229    pub fn BNAllocStringWithLength(
13230        contents: *const ::std::os::raw::c_char,
13231        len: usize,
13232    ) -> *mut ::std::os::raw::c_char;
13233}
13234unsafe extern "C" {
13235    pub fn BNFreeString(str_: *mut ::std::os::raw::c_char);
13236}
13237unsafe extern "C" {
13238    pub fn BNAllocStringList(
13239        contents: *mut *const ::std::os::raw::c_char,
13240        size: usize,
13241    ) -> *mut *mut ::std::os::raw::c_char;
13242}
13243unsafe extern "C" {
13244    pub fn BNAllocUninitializedStringList(size: usize) -> *mut *mut ::std::os::raw::c_char;
13245}
13246unsafe extern "C" {
13247    pub fn BNFreeStringList(strs: *mut *mut ::std::os::raw::c_char, count: usize);
13248}
13249unsafe extern "C" {
13250    pub fn BNShutdown();
13251}
13252unsafe extern "C" {
13253    pub fn BNIsShutdownRequested() -> bool;
13254}
13255unsafe extern "C" {
13256    pub fn BNGetVersionInfo() -> BNVersionInfo;
13257}
13258unsafe extern "C" {
13259    pub fn BNGetVersionString() -> *mut ::std::os::raw::c_char;
13260}
13261unsafe extern "C" {
13262    pub fn BNGetBuildId() -> u32;
13263}
13264unsafe extern "C" {
13265    pub fn BNGetCurrentCoreABIVersion() -> u32;
13266}
13267unsafe extern "C" {
13268    pub fn BNGetMinimumCoreABIVersion() -> u32;
13269}
13270unsafe extern "C" {
13271    pub fn BNGetSerialNumber() -> *mut ::std::os::raw::c_char;
13272}
13273unsafe extern "C" {
13274    pub fn BNGetLicenseExpirationTime() -> u64;
13275}
13276unsafe extern "C" {
13277    pub fn BNIsLicenseValidated() -> bool;
13278}
13279unsafe extern "C" {
13280    pub fn BNGetLicensedUserEmail() -> *mut ::std::os::raw::c_char;
13281}
13282unsafe extern "C" {
13283    pub fn BNGetProduct() -> *mut ::std::os::raw::c_char;
13284}
13285unsafe extern "C" {
13286    pub fn BNGetProductType() -> *mut ::std::os::raw::c_char;
13287}
13288unsafe extern "C" {
13289    pub fn BNGetLicenseAddons(count: *mut usize) -> *mut BNLicenseAddon;
13290}
13291unsafe extern "C" {
13292    pub fn BNFreeLicenseAddons(addons: *mut BNLicenseAddon, count: usize);
13293}
13294unsafe extern "C" {
13295    pub fn BNGetLicenseCount() -> ::std::os::raw::c_int;
13296}
13297unsafe extern "C" {
13298    pub fn BNIsUIEnabled() -> bool;
13299}
13300unsafe extern "C" {
13301    pub fn BNSetLicense(licenseData: *const ::std::os::raw::c_char);
13302}
13303unsafe extern "C" {
13304    pub fn BNIsDatabase(filename: *const ::std::os::raw::c_char) -> bool;
13305}
13306unsafe extern "C" {
13307    pub fn BNIsDatabaseFromData(data: *const ::std::os::raw::c_void, len: usize) -> bool;
13308}
13309unsafe extern "C" {
13310    pub fn BNAuthenticateEnterpriseServerWithToken(
13311        token: *const ::std::os::raw::c_char,
13312        remember: bool,
13313    ) -> bool;
13314}
13315unsafe extern "C" {
13316    pub fn BNAuthenticateEnterpriseServerWithCredentials(
13317        username: *const ::std::os::raw::c_char,
13318        password: *const ::std::os::raw::c_char,
13319        remember: bool,
13320    ) -> bool;
13321}
13322unsafe extern "C" {
13323    pub fn BNAuthenticateEnterpriseServerWithMethod(
13324        method: *const ::std::os::raw::c_char,
13325        remember: bool,
13326    ) -> bool;
13327}
13328unsafe extern "C" {
13329    pub fn BNGetEnterpriseServerAuthenticationMethods(
13330        methods: *mut *mut *mut ::std::os::raw::c_char,
13331        names: *mut *mut *mut ::std::os::raw::c_char,
13332    ) -> usize;
13333}
13334unsafe extern "C" {
13335    pub fn BNDeauthenticateEnterpriseServer() -> bool;
13336}
13337unsafe extern "C" {
13338    pub fn BNCancelEnterpriseServerAuthentication();
13339}
13340unsafe extern "C" {
13341    pub fn BNConnectEnterpriseServer() -> bool;
13342}
13343unsafe extern "C" {
13344    pub fn BNUpdateEnterpriseServerLicense(timeout: u64) -> bool;
13345}
13346unsafe extern "C" {
13347    pub fn BNReleaseEnterpriseServerLicense() -> bool;
13348}
13349unsafe extern "C" {
13350    pub fn BNIsEnterpriseServerConnected() -> bool;
13351}
13352unsafe extern "C" {
13353    pub fn BNIsEnterpriseServerAuthenticated() -> bool;
13354}
13355unsafe extern "C" {
13356    pub fn BNGetEnterpriseServerUsername() -> *mut ::std::os::raw::c_char;
13357}
13358unsafe extern "C" {
13359    pub fn BNGetEnterpriseServerToken() -> *mut ::std::os::raw::c_char;
13360}
13361unsafe extern "C" {
13362    pub fn BNGetEnterpriseServerUrl() -> *mut ::std::os::raw::c_char;
13363}
13364unsafe extern "C" {
13365    pub fn BNSetEnterpriseServerUrl(url: *const ::std::os::raw::c_char) -> bool;
13366}
13367unsafe extern "C" {
13368    pub fn BNGetEnterpriseServerName() -> *mut ::std::os::raw::c_char;
13369}
13370unsafe extern "C" {
13371    pub fn BNGetEnterpriseServerId() -> *mut ::std::os::raw::c_char;
13372}
13373unsafe extern "C" {
13374    pub fn BNGetEnterpriseServerVersion() -> u64;
13375}
13376unsafe extern "C" {
13377    pub fn BNGetEnterpriseServerBuildId() -> *mut ::std::os::raw::c_char;
13378}
13379unsafe extern "C" {
13380    pub fn BNGetEnterpriseServerLicenseExpirationTime() -> u64;
13381}
13382unsafe extern "C" {
13383    pub fn BNGetEnterpriseServerLicenseDuration() -> u64;
13384}
13385unsafe extern "C" {
13386    pub fn BNIsEnterpriseServerFloatingLicense() -> bool;
13387}
13388unsafe extern "C" {
13389    pub fn BNGetEnterpriseServerReservationTimeLimit() -> u64;
13390}
13391unsafe extern "C" {
13392    pub fn BNIsEnterpriseServerLicenseStillActivated() -> bool;
13393}
13394unsafe extern "C" {
13395    pub fn BNGetEnterpriseServerLastError() -> *mut ::std::os::raw::c_char;
13396}
13397unsafe extern "C" {
13398    pub fn BNRegisterEnterpriseServerNotification(notify: *mut BNEnterpriseServerCallbacks);
13399}
13400unsafe extern "C" {
13401    pub fn BNUnregisterEnterpriseServerNotification(notify: *mut BNEnterpriseServerCallbacks);
13402}
13403unsafe extern "C" {
13404    pub fn BNIsEnterpriseServerInitialized() -> bool;
13405}
13406unsafe extern "C" {
13407    pub fn BNInitializeEnterpriseServer() -> bool;
13408}
13409unsafe extern "C" {
13410    pub fn BNRegisterObjectDestructionCallbacks(callbacks: *mut BNObjectDestructionCallbacks);
13411}
13412unsafe extern "C" {
13413    pub fn BNUnregisterObjectDestructionCallbacks(callbacks: *mut BNObjectDestructionCallbacks);
13414}
13415unsafe extern "C" {
13416    pub fn BNGetUniqueIdentifierString() -> *mut ::std::os::raw::c_char;
13417}
13418unsafe extern "C" {
13419    #[doc = " Plugin initialization"]
13420    pub fn BNInitPlugins(allowUserPlugins: bool) -> bool;
13421}
13422unsafe extern "C" {
13423    pub fn BNDisablePlugins();
13424}
13425unsafe extern "C" {
13426    pub fn BNIsPluginsEnabled() -> bool;
13427}
13428unsafe extern "C" {
13429    pub fn BNGetInstallDirectory() -> *mut ::std::os::raw::c_char;
13430}
13431unsafe extern "C" {
13432    pub fn BNGetBundledPluginDirectory() -> *mut ::std::os::raw::c_char;
13433}
13434unsafe extern "C" {
13435    pub fn BNGetBundledScriptPluginDirectory() -> *mut ::std::os::raw::c_char;
13436}
13437unsafe extern "C" {
13438    pub fn BNSetBundledPluginDirectory(path: *const ::std::os::raw::c_char);
13439}
13440unsafe extern "C" {
13441    pub fn BNSetBundledScriptPluginDirectory(path: *const ::std::os::raw::c_char);
13442}
13443unsafe extern "C" {
13444    pub fn BNGetUserDirectory() -> *mut ::std::os::raw::c_char;
13445}
13446unsafe extern "C" {
13447    pub fn BNGetUserPluginDirectory() -> *mut ::std::os::raw::c_char;
13448}
13449unsafe extern "C" {
13450    pub fn BNGetRepositoriesDirectory() -> *mut ::std::os::raw::c_char;
13451}
13452unsafe extern "C" {
13453    pub fn BNGetSettingsFileName() -> *mut ::std::os::raw::c_char;
13454}
13455unsafe extern "C" {
13456    pub fn BNSaveLastRun();
13457}
13458unsafe extern "C" {
13459    pub fn BNGetPathRelativeToBundledPluginDirectory(
13460        path: *const ::std::os::raw::c_char,
13461    ) -> *mut ::std::os::raw::c_char;
13462}
13463unsafe extern "C" {
13464    pub fn BNGetPathRelativeToUserPluginDirectory(
13465        path: *const ::std::os::raw::c_char,
13466    ) -> *mut ::std::os::raw::c_char;
13467}
13468unsafe extern "C" {
13469    pub fn BNGetPathRelativeToUserDirectory(
13470        path: *const ::std::os::raw::c_char,
13471    ) -> *mut ::std::os::raw::c_char;
13472}
13473unsafe extern "C" {
13474    pub fn BNExecuteWorkerProcess(
13475        path: *const ::std::os::raw::c_char,
13476        args: *mut *const ::std::os::raw::c_char,
13477        input: *mut BNDataBuffer,
13478        output: *mut *mut ::std::os::raw::c_char,
13479        error: *mut *mut ::std::os::raw::c_char,
13480        stdoutIsText: bool,
13481        stderrIsText: bool,
13482    ) -> bool;
13483}
13484unsafe extern "C" {
13485    pub fn BNSetCurrentPluginLoadOrder(order: BNPluginLoadPhase);
13486}
13487unsafe extern "C" {
13488    pub fn BNAddRequiredPluginDependency(name: *const ::std::os::raw::c_char);
13489}
13490unsafe extern "C" {
13491    pub fn BNAddOptionalPluginDependency(name: *const ::std::os::raw::c_char);
13492}
13493unsafe extern "C" {
13494    #[doc = " Logging"]
13495    pub fn BNLog(
13496        session: usize,
13497        level: BNLogLevel,
13498        logger_name: *const ::std::os::raw::c_char,
13499        tid: usize,
13500        fmt: *const ::std::os::raw::c_char,
13501        ...
13502    );
13503}
13504unsafe extern "C" {
13505    pub fn BNLogDebug(fmt: *const ::std::os::raw::c_char, ...);
13506}
13507unsafe extern "C" {
13508    pub fn BNLogInfo(fmt: *const ::std::os::raw::c_char, ...);
13509}
13510unsafe extern "C" {
13511    pub fn BNLogWarn(fmt: *const ::std::os::raw::c_char, ...);
13512}
13513unsafe extern "C" {
13514    pub fn BNLogError(fmt: *const ::std::os::raw::c_char, ...);
13515}
13516unsafe extern "C" {
13517    pub fn BNLogAlert(fmt: *const ::std::os::raw::c_char, ...);
13518}
13519unsafe extern "C" {
13520    pub fn BNLogString(
13521        session: usize,
13522        level: BNLogLevel,
13523        logger_name: *const ::std::os::raw::c_char,
13524        tid: usize,
13525        str_: *const ::std::os::raw::c_char,
13526    );
13527}
13528unsafe extern "C" {
13529    pub fn BNLogWithStackTrace(
13530        session: usize,
13531        level: BNLogLevel,
13532        logger_name: *const ::std::os::raw::c_char,
13533        tid: usize,
13534        stackTrace: *const ::std::os::raw::c_char,
13535        fmt: *const ::std::os::raw::c_char,
13536        ...
13537    );
13538}
13539unsafe extern "C" {
13540    pub fn BNLogDebugWithStackTrace(
13541        stackTrace: *const ::std::os::raw::c_char,
13542        fmt: *const ::std::os::raw::c_char,
13543        ...
13544    );
13545}
13546unsafe extern "C" {
13547    pub fn BNLogInfoWithStackTrace(
13548        stackTrace: *const ::std::os::raw::c_char,
13549        fmt: *const ::std::os::raw::c_char,
13550        ...
13551    );
13552}
13553unsafe extern "C" {
13554    pub fn BNLogWarnWithStackTrace(
13555        stackTrace: *const ::std::os::raw::c_char,
13556        fmt: *const ::std::os::raw::c_char,
13557        ...
13558    );
13559}
13560unsafe extern "C" {
13561    pub fn BNLogErrorWithStackTrace(
13562        stackTrace: *const ::std::os::raw::c_char,
13563        fmt: *const ::std::os::raw::c_char,
13564        ...
13565    );
13566}
13567unsafe extern "C" {
13568    pub fn BNLogAlertWithStackTrace(
13569        stackTrace: *const ::std::os::raw::c_char,
13570        fmt: *const ::std::os::raw::c_char,
13571        ...
13572    );
13573}
13574unsafe extern "C" {
13575    pub fn BNLogStringWithStackTrace(
13576        session: usize,
13577        level: BNLogLevel,
13578        logger_name: *const ::std::os::raw::c_char,
13579        tid: usize,
13580        stackTrace: *const ::std::os::raw::c_char,
13581        str_: *const ::std::os::raw::c_char,
13582    );
13583}
13584unsafe extern "C" {
13585    pub fn BNNewLoggerReference(logger: *mut BNLogger) -> *mut BNLogger;
13586}
13587unsafe extern "C" {
13588    pub fn BNFreeLogger(logger: *mut BNLogger);
13589}
13590unsafe extern "C" {
13591    pub fn BNLoggerLog(
13592        logger: *mut BNLogger,
13593        level: BNLogLevel,
13594        fmt: *const ::std::os::raw::c_char,
13595        ...
13596    );
13597}
13598unsafe extern "C" {
13599    pub fn BNLoggerLogString(
13600        logger: *mut BNLogger,
13601        level: BNLogLevel,
13602        msg: *const ::std::os::raw::c_char,
13603    );
13604}
13605unsafe extern "C" {
13606    pub fn BNLoggerLogWithStackTrace(
13607        logger: *mut BNLogger,
13608        level: BNLogLevel,
13609        stackTrace: *const ::std::os::raw::c_char,
13610        fmt: *const ::std::os::raw::c_char,
13611        ...
13612    );
13613}
13614unsafe extern "C" {
13615    pub fn BNLoggerLogStringWithStackTrace(
13616        logger: *mut BNLogger,
13617        level: BNLogLevel,
13618        stackTrace: *const ::std::os::raw::c_char,
13619        msg: *const ::std::os::raw::c_char,
13620    );
13621}
13622unsafe extern "C" {
13623    pub fn BNLoggerGetName(logger: *mut BNLogger) -> *mut ::std::os::raw::c_char;
13624}
13625unsafe extern "C" {
13626    pub fn BNLoggerGetSessionId(logger: *mut BNLogger) -> usize;
13627}
13628unsafe extern "C" {
13629    pub fn BNLogCreateLogger(
13630        loggerName: *const ::std::os::raw::c_char,
13631        sessionId: usize,
13632    ) -> *mut BNLogger;
13633}
13634unsafe extern "C" {
13635    pub fn BNLogGetLogger(
13636        loggerName: *const ::std::os::raw::c_char,
13637        sessionId: usize,
13638    ) -> *mut BNLogger;
13639}
13640unsafe extern "C" {
13641    pub fn BNLogGetLoggerNames(count: *mut usize) -> *mut *mut ::std::os::raw::c_char;
13642}
13643unsafe extern "C" {
13644    pub fn BNRegisterLogListener(listener: *mut BNLogListener);
13645}
13646unsafe extern "C" {
13647    pub fn BNUnregisterLogListener(listener: *mut BNLogListener);
13648}
13649unsafe extern "C" {
13650    pub fn BNUpdateLogListeners();
13651}
13652unsafe extern "C" {
13653    pub fn BNLogToStdout(minimumLevel: BNLogLevel);
13654}
13655unsafe extern "C" {
13656    pub fn BNLogToStderr(minimumLevel: BNLogLevel);
13657}
13658unsafe extern "C" {
13659    pub fn BNLogToFile(
13660        minimumLevel: BNLogLevel,
13661        path: *const ::std::os::raw::c_char,
13662        append: bool,
13663    ) -> bool;
13664}
13665unsafe extern "C" {
13666    pub fn BNCloseLogs();
13667}
13668unsafe extern "C" {
13669    #[doc = " Temporary files"]
13670    pub fn BNCreateTemporaryFile() -> *mut BNTemporaryFile;
13671}
13672unsafe extern "C" {
13673    pub fn BNCreateTemporaryFileWithContents(data: *mut BNDataBuffer) -> *mut BNTemporaryFile;
13674}
13675unsafe extern "C" {
13676    pub fn BNNewTemporaryFileReference(file: *mut BNTemporaryFile) -> *mut BNTemporaryFile;
13677}
13678unsafe extern "C" {
13679    pub fn BNFreeTemporaryFile(file: *mut BNTemporaryFile);
13680}
13681unsafe extern "C" {
13682    pub fn BNGetTemporaryFilePath(file: *mut BNTemporaryFile) -> *mut ::std::os::raw::c_char;
13683}
13684unsafe extern "C" {
13685    pub fn BNGetTemporaryFileContents(file: *mut BNTemporaryFile) -> *mut BNDataBuffer;
13686}
13687unsafe extern "C" {
13688    #[doc = " Data buffer management"]
13689    pub fn BNCreateDataBuffer(data: *const ::std::os::raw::c_void, len: usize)
13690    -> *mut BNDataBuffer;
13691}
13692unsafe extern "C" {
13693    pub fn BNDuplicateDataBuffer(buf: *mut BNDataBuffer) -> *mut BNDataBuffer;
13694}
13695unsafe extern "C" {
13696    pub fn BNFreeDataBuffer(buf: *mut BNDataBuffer);
13697}
13698unsafe extern "C" {
13699    pub fn BNGetDataBufferContents(buf: *mut BNDataBuffer) -> *mut ::std::os::raw::c_void;
13700}
13701unsafe extern "C" {
13702    pub fn BNGetDataBufferContentsAt(
13703        buf: *mut BNDataBuffer,
13704        offset: usize,
13705    ) -> *mut ::std::os::raw::c_void;
13706}
13707unsafe extern "C" {
13708    pub fn BNGetDataBufferLength(buf: *mut BNDataBuffer) -> usize;
13709}
13710unsafe extern "C" {
13711    pub fn BNGetDataBufferSlice(
13712        buf: *mut BNDataBuffer,
13713        start: usize,
13714        len: usize,
13715    ) -> *mut BNDataBuffer;
13716}
13717unsafe extern "C" {
13718    pub fn BNSetDataBufferLength(buf: *mut BNDataBuffer, len: usize);
13719}
13720unsafe extern "C" {
13721    pub fn BNClearDataBuffer(buf: *mut BNDataBuffer);
13722}
13723unsafe extern "C" {
13724    pub fn BNSetDataBufferContents(
13725        buf: *mut BNDataBuffer,
13726        data: *mut ::std::os::raw::c_void,
13727        len: usize,
13728    );
13729}
13730unsafe extern "C" {
13731    pub fn BNAssignDataBuffer(dest: *mut BNDataBuffer, src: *mut BNDataBuffer);
13732}
13733unsafe extern "C" {
13734    pub fn BNAppendDataBuffer(dest: *mut BNDataBuffer, src: *mut BNDataBuffer);
13735}
13736unsafe extern "C" {
13737    pub fn BNAppendDataBufferContents(
13738        dest: *mut BNDataBuffer,
13739        src: *const ::std::os::raw::c_void,
13740        len: usize,
13741    );
13742}
13743unsafe extern "C" {
13744    pub fn BNGetDataBufferByte(buf: *mut BNDataBuffer, offset: usize) -> u8;
13745}
13746unsafe extern "C" {
13747    pub fn BNSetDataBufferByte(buf: *mut BNDataBuffer, offset: usize, val: u8);
13748}
13749unsafe extern "C" {
13750    pub fn BNDataBufferToEscapedString(
13751        buf: *mut BNDataBuffer,
13752        nullTerminates: bool,
13753        escapePrintable: bool,
13754    ) -> *mut ::std::os::raw::c_char;
13755}
13756unsafe extern "C" {
13757    pub fn BNDecodeEscapedString(str_: *const ::std::os::raw::c_char) -> *mut BNDataBuffer;
13758}
13759unsafe extern "C" {
13760    pub fn BNDataBufferToBase64(buf: *mut BNDataBuffer) -> *mut ::std::os::raw::c_char;
13761}
13762unsafe extern "C" {
13763    pub fn BNDecodeBase64(str_: *const ::std::os::raw::c_char) -> *mut BNDataBuffer;
13764}
13765unsafe extern "C" {
13766    pub fn BNZlibCompress(buf: *mut BNDataBuffer) -> *mut BNDataBuffer;
13767}
13768unsafe extern "C" {
13769    pub fn BNZlibDecompress(buf: *mut BNDataBuffer) -> *mut BNDataBuffer;
13770}
13771unsafe extern "C" {
13772    pub fn BNLzmaDecompress(buf: *mut BNDataBuffer) -> *mut BNDataBuffer;
13773}
13774unsafe extern "C" {
13775    pub fn BNLzma2Decompress(buf: *mut BNDataBuffer) -> *mut BNDataBuffer;
13776}
13777unsafe extern "C" {
13778    pub fn BNXzDecompress(buf: *mut BNDataBuffer) -> *mut BNDataBuffer;
13779}
13780unsafe extern "C" {
13781    #[doc = " Save settings"]
13782    pub fn BNCreateSaveSettings() -> *mut BNSaveSettings;
13783}
13784unsafe extern "C" {
13785    pub fn BNNewSaveSettingsReference(settings: *mut BNSaveSettings) -> *mut BNSaveSettings;
13786}
13787unsafe extern "C" {
13788    pub fn BNFreeSaveSettings(settings: *mut BNSaveSettings);
13789}
13790unsafe extern "C" {
13791    pub fn BNIsSaveSettingsOptionSet(settings: *mut BNSaveSettings, option: BNSaveOption) -> bool;
13792}
13793unsafe extern "C" {
13794    pub fn BNSetSaveSettingsOption(
13795        settings: *mut BNSaveSettings,
13796        option: BNSaveOption,
13797        state: bool,
13798    );
13799}
13800unsafe extern "C" {
13801    pub fn BNGetSaveSettingsName(settings: *mut BNSaveSettings) -> *mut ::std::os::raw::c_char;
13802}
13803unsafe extern "C" {
13804    pub fn BNSetSaveSettingsName(
13805        settings: *mut BNSaveSettings,
13806        name: *const ::std::os::raw::c_char,
13807    );
13808}
13809unsafe extern "C" {
13810    #[doc = " File metadata object"]
13811    pub fn BNCreateFileMetadata() -> *mut BNFileMetadata;
13812}
13813unsafe extern "C" {
13814    pub fn BNNewFileReference(file: *mut BNFileMetadata) -> *mut BNFileMetadata;
13815}
13816unsafe extern "C" {
13817    pub fn BNFreeFileMetadata(file: *mut BNFileMetadata);
13818}
13819unsafe extern "C" {
13820    pub fn BNCloseFile(file: *mut BNFileMetadata);
13821}
13822unsafe extern "C" {
13823    pub fn BNSetFileMetadataNavigationHandler(
13824        file: *mut BNFileMetadata,
13825        handler: *mut BNNavigationHandler,
13826    );
13827}
13828unsafe extern "C" {
13829    pub fn BNIsFileModified(file: *mut BNFileMetadata) -> bool;
13830}
13831unsafe extern "C" {
13832    pub fn BNIsAnalysisChanged(file: *mut BNFileMetadata) -> bool;
13833}
13834unsafe extern "C" {
13835    pub fn BNMarkFileModified(file: *mut BNFileMetadata);
13836}
13837unsafe extern "C" {
13838    pub fn BNMarkFileSaved(file: *mut BNFileMetadata);
13839}
13840unsafe extern "C" {
13841    pub fn BNIsBackedByDatabase(
13842        file: *mut BNFileMetadata,
13843        binaryViewType: *const ::std::os::raw::c_char,
13844    ) -> bool;
13845}
13846unsafe extern "C" {
13847    pub fn BNCreateDatabase(
13848        data: *mut BNBinaryView,
13849        path: *const ::std::os::raw::c_char,
13850        settings: *mut BNSaveSettings,
13851    ) -> bool;
13852}
13853unsafe extern "C" {
13854    pub fn BNCreateDatabaseWithProgress(
13855        data: *mut BNBinaryView,
13856        path: *const ::std::os::raw::c_char,
13857        ctxt: *mut ::std::os::raw::c_void,
13858        progress: BNProgressFunction,
13859        settings: *mut BNSaveSettings,
13860    ) -> bool;
13861}
13862unsafe extern "C" {
13863    pub fn BNOpenExistingDatabase(
13864        file: *mut BNFileMetadata,
13865        path: *const ::std::os::raw::c_char,
13866    ) -> *mut BNBinaryView;
13867}
13868unsafe extern "C" {
13869    pub fn BNOpenExistingDatabaseWithProgress(
13870        file: *mut BNFileMetadata,
13871        path: *const ::std::os::raw::c_char,
13872        ctxt: *mut ::std::os::raw::c_void,
13873        progress: BNProgressFunction,
13874    ) -> *mut BNBinaryView;
13875}
13876unsafe extern "C" {
13877    pub fn BNOpenDatabaseForConfiguration(
13878        file: *mut BNFileMetadata,
13879        path: *const ::std::os::raw::c_char,
13880    ) -> *mut BNBinaryView;
13881}
13882unsafe extern "C" {
13883    pub fn BNReopenMovedDatabase(
13884        file: *mut BNFileMetadata,
13885        path: *const ::std::os::raw::c_char,
13886    ) -> bool;
13887}
13888unsafe extern "C" {
13889    pub fn BNSaveAutoSnapshot(data: *mut BNBinaryView, settings: *mut BNSaveSettings) -> bool;
13890}
13891unsafe extern "C" {
13892    pub fn BNSaveAutoSnapshotWithProgress(
13893        data: *mut BNBinaryView,
13894        ctxt: *mut ::std::os::raw::c_void,
13895        progress: BNProgressFunction,
13896        settings: *mut BNSaveSettings,
13897    ) -> bool;
13898}
13899unsafe extern "C" {
13900    pub fn BNGetSnapshotData(
13901        file: *mut BNFileMetadata,
13902        data: *mut BNKeyValueStore,
13903        cache: *mut BNKeyValueStore,
13904        ctxt: *mut ::std::os::raw::c_void,
13905        progress: BNProgressFunction,
13906    );
13907}
13908unsafe extern "C" {
13909    pub fn BNApplySnapshotData(
13910        file: *mut BNFileMetadata,
13911        view: *mut BNBinaryView,
13912        data: *mut BNKeyValueStore,
13913        cache: *mut BNKeyValueStore,
13914        ctxt: *mut ::std::os::raw::c_void,
13915        progress: BNProgressFunction,
13916        openForConfiguration: bool,
13917        restoreRawView: bool,
13918    );
13919}
13920unsafe extern "C" {
13921    pub fn BNGetFileMetadataDatabase(file: *mut BNFileMetadata) -> *mut BNDatabase;
13922}
13923unsafe extern "C" {
13924    #[doc = " Key value store"]
13925    pub fn BNCreateKeyValueStore() -> *mut BNKeyValueStore;
13926}
13927unsafe extern "C" {
13928    pub fn BNCreateKeyValueStoreFromDataBuffer(buffer: *mut BNDataBuffer) -> *mut BNKeyValueStore;
13929}
13930unsafe extern "C" {
13931    pub fn BNNewKeyValueStoreReference(store: *mut BNKeyValueStore) -> *mut BNKeyValueStore;
13932}
13933unsafe extern "C" {
13934    pub fn BNFreeKeyValueStore(store: *mut BNKeyValueStore);
13935}
13936unsafe extern "C" {
13937    pub fn BNGetKeyValueStoreKeys(
13938        store: *mut BNKeyValueStore,
13939        count: *mut usize,
13940    ) -> *mut *mut ::std::os::raw::c_char;
13941}
13942unsafe extern "C" {
13943    pub fn BNKeyValueStoreHasValue(
13944        store: *mut BNKeyValueStore,
13945        name: *const ::std::os::raw::c_char,
13946    ) -> bool;
13947}
13948unsafe extern "C" {
13949    pub fn BNGetKeyValueStoreValue(
13950        store: *mut BNKeyValueStore,
13951        name: *const ::std::os::raw::c_char,
13952    ) -> *mut ::std::os::raw::c_char;
13953}
13954unsafe extern "C" {
13955    pub fn BNGetKeyValueStoreValueHash(
13956        store: *mut BNKeyValueStore,
13957        name: *const ::std::os::raw::c_char,
13958    ) -> *mut BNDataBuffer;
13959}
13960unsafe extern "C" {
13961    pub fn BNGetKeyValueStoreBuffer(
13962        store: *mut BNKeyValueStore,
13963        name: *const ::std::os::raw::c_char,
13964    ) -> *mut BNDataBuffer;
13965}
13966unsafe extern "C" {
13967    pub fn BNSetKeyValueStoreValue(
13968        store: *mut BNKeyValueStore,
13969        name: *const ::std::os::raw::c_char,
13970        value: *const ::std::os::raw::c_char,
13971    ) -> bool;
13972}
13973unsafe extern "C" {
13974    pub fn BNSetKeyValueStoreBuffer(
13975        store: *mut BNKeyValueStore,
13976        name: *const ::std::os::raw::c_char,
13977        value: *const BNDataBuffer,
13978    ) -> bool;
13979}
13980unsafe extern "C" {
13981    pub fn BNGetKeyValueStoreSerializedData(store: *mut BNKeyValueStore) -> *mut BNDataBuffer;
13982}
13983unsafe extern "C" {
13984    pub fn BNBeginKeyValueStoreNamespace(
13985        store: *mut BNKeyValueStore,
13986        name: *const ::std::os::raw::c_char,
13987    );
13988}
13989unsafe extern "C" {
13990    pub fn BNEndKeyValueStoreNamespace(store: *mut BNKeyValueStore);
13991}
13992unsafe extern "C" {
13993    pub fn BNIsKeyValueStoreEmpty(store: *mut BNKeyValueStore) -> bool;
13994}
13995unsafe extern "C" {
13996    pub fn BNGetKeyValueStoreValueSize(store: *mut BNKeyValueStore) -> usize;
13997}
13998unsafe extern "C" {
13999    pub fn BNGetKeyValueStoreDataSize(store: *mut BNKeyValueStore) -> usize;
14000}
14001unsafe extern "C" {
14002    pub fn BNGetKeyValueStoreValueStorageSize(store: *mut BNKeyValueStore) -> usize;
14003}
14004unsafe extern "C" {
14005    pub fn BNGetKeyValueStoreNamespaceSize(store: *mut BNKeyValueStore) -> usize;
14006}
14007unsafe extern "C" {
14008    #[doc = " Project object"]
14009    pub fn BNNewProjectReference(project: *mut BNProject) -> *mut BNProject;
14010}
14011unsafe extern "C" {
14012    pub fn BNFreeProject(project: *mut BNProject);
14013}
14014unsafe extern "C" {
14015    pub fn BNFreeProjectList(projects: *mut *mut BNProject, count: usize);
14016}
14017unsafe extern "C" {
14018    pub fn BNGetOpenProjects(count: *mut usize) -> *mut *mut BNProject;
14019}
14020unsafe extern "C" {
14021    pub fn BNCreateProject(
14022        path: *const ::std::os::raw::c_char,
14023        name: *const ::std::os::raw::c_char,
14024    ) -> *mut BNProject;
14025}
14026unsafe extern "C" {
14027    pub fn BNOpenProject(path: *const ::std::os::raw::c_char) -> *mut BNProject;
14028}
14029unsafe extern "C" {
14030    pub fn BNProjectOpen(project: *mut BNProject) -> bool;
14031}
14032unsafe extern "C" {
14033    pub fn BNProjectClose(project: *mut BNProject) -> bool;
14034}
14035unsafe extern "C" {
14036    pub fn BNProjectGetId(project: *mut BNProject) -> *mut ::std::os::raw::c_char;
14037}
14038unsafe extern "C" {
14039    pub fn BNProjectIsOpen(project: *mut BNProject) -> bool;
14040}
14041unsafe extern "C" {
14042    pub fn BNProjectGetPath(project: *mut BNProject) -> *mut ::std::os::raw::c_char;
14043}
14044unsafe extern "C" {
14045    pub fn BNProjectGetFilePathInProject(
14046        project: *mut BNProject,
14047        file: *mut BNProjectFile,
14048    ) -> *mut ::std::os::raw::c_char;
14049}
14050unsafe extern "C" {
14051    pub fn BNProjectGetName(project: *mut BNProject) -> *mut ::std::os::raw::c_char;
14052}
14053unsafe extern "C" {
14054    pub fn BNProjectSetName(project: *mut BNProject, name: *const ::std::os::raw::c_char) -> bool;
14055}
14056unsafe extern "C" {
14057    pub fn BNProjectGetDescription(project: *mut BNProject) -> *mut ::std::os::raw::c_char;
14058}
14059unsafe extern "C" {
14060    pub fn BNProjectSetDescription(
14061        project: *mut BNProject,
14062        description: *const ::std::os::raw::c_char,
14063    ) -> bool;
14064}
14065unsafe extern "C" {
14066    pub fn BNProjectQueryMetadata(
14067        project: *mut BNProject,
14068        key: *const ::std::os::raw::c_char,
14069    ) -> *mut BNMetadata;
14070}
14071unsafe extern "C" {
14072    pub fn BNProjectStoreMetadata(
14073        project: *mut BNProject,
14074        key: *const ::std::os::raw::c_char,
14075        value: *mut BNMetadata,
14076    ) -> bool;
14077}
14078unsafe extern "C" {
14079    pub fn BNProjectRemoveMetadata(
14080        project: *mut BNProject,
14081        key: *const ::std::os::raw::c_char,
14082    ) -> bool;
14083}
14084unsafe extern "C" {
14085    pub fn BNProjectCreateFileFromPath(
14086        project: *mut BNProject,
14087        path: *const ::std::os::raw::c_char,
14088        folder: *mut BNProjectFolder,
14089        name: *const ::std::os::raw::c_char,
14090        description: *const ::std::os::raw::c_char,
14091        ctxt: *mut ::std::os::raw::c_void,
14092        progress: BNProgressFunction,
14093    ) -> *mut BNProjectFile;
14094}
14095unsafe extern "C" {
14096    pub fn BNProjectCreateFileFromPathUnsafe(
14097        project: *mut BNProject,
14098        path: *const ::std::os::raw::c_char,
14099        folder: *mut BNProjectFolder,
14100        name: *const ::std::os::raw::c_char,
14101        description: *const ::std::os::raw::c_char,
14102        id: *const ::std::os::raw::c_char,
14103        creationTimestamp: i64,
14104        ctxt: *mut ::std::os::raw::c_void,
14105        progress: BNProgressFunction,
14106    ) -> *mut BNProjectFile;
14107}
14108unsafe extern "C" {
14109    pub fn BNProjectCreateFile(
14110        project: *mut BNProject,
14111        contents: *const u8,
14112        contentsSize: usize,
14113        folder: *mut BNProjectFolder,
14114        name: *const ::std::os::raw::c_char,
14115        description: *const ::std::os::raw::c_char,
14116        ctxt: *mut ::std::os::raw::c_void,
14117        progress: BNProgressFunction,
14118    ) -> *mut BNProjectFile;
14119}
14120unsafe extern "C" {
14121    pub fn BNProjectCreateFileUnsafe(
14122        project: *mut BNProject,
14123        contents: *const u8,
14124        contentsSize: usize,
14125        folder: *mut BNProjectFolder,
14126        name: *const ::std::os::raw::c_char,
14127        description: *const ::std::os::raw::c_char,
14128        id: *const ::std::os::raw::c_char,
14129        creationTimestamp: i64,
14130        ctxt: *mut ::std::os::raw::c_void,
14131        progress: BNProgressFunction,
14132    ) -> *mut BNProjectFile;
14133}
14134unsafe extern "C" {
14135    pub fn BNProjectGetFiles(project: *mut BNProject, count: *mut usize)
14136    -> *mut *mut BNProjectFile;
14137}
14138unsafe extern "C" {
14139    pub fn BNProjectGetFileById(
14140        project: *mut BNProject,
14141        id: *const ::std::os::raw::c_char,
14142    ) -> *mut BNProjectFile;
14143}
14144unsafe extern "C" {
14145    pub fn BNProjectGetFileByPathOnDisk(
14146        project: *mut BNProject,
14147        path: *const ::std::os::raw::c_char,
14148    ) -> *mut BNProjectFile;
14149}
14150unsafe extern "C" {
14151    pub fn BNProjectGetFilesByPathInProject(
14152        project: *mut BNProject,
14153        path: *const ::std::os::raw::c_char,
14154        count: *mut usize,
14155    ) -> *mut *mut BNProjectFile;
14156}
14157unsafe extern "C" {
14158    pub fn BNProjectGetFilesInFolder(
14159        project: *mut BNProject,
14160        folder: *mut BNProjectFolder,
14161        count: *mut usize,
14162    ) -> *mut *mut BNProjectFile;
14163}
14164unsafe extern "C" {
14165    pub fn BNProjectPushFile(project: *mut BNProject, file: *mut BNProjectFile) -> bool;
14166}
14167unsafe extern "C" {
14168    pub fn BNProjectDeleteFile(project: *mut BNProject, file: *mut BNProjectFile) -> bool;
14169}
14170unsafe extern "C" {
14171    pub fn BNProjectCreateFolderFromPath(
14172        project: *mut BNProject,
14173        path: *const ::std::os::raw::c_char,
14174        parent: *mut BNProjectFolder,
14175        description: *const ::std::os::raw::c_char,
14176        ctxt: *mut ::std::os::raw::c_void,
14177        progress: BNProgressFunction,
14178    ) -> *mut BNProjectFolder;
14179}
14180unsafe extern "C" {
14181    pub fn BNProjectCreateFolder(
14182        project: *mut BNProject,
14183        parent: *mut BNProjectFolder,
14184        name: *const ::std::os::raw::c_char,
14185        description: *const ::std::os::raw::c_char,
14186    ) -> *mut BNProjectFolder;
14187}
14188unsafe extern "C" {
14189    pub fn BNProjectCreateFolderUnsafe(
14190        project: *mut BNProject,
14191        parent: *mut BNProjectFolder,
14192        name: *const ::std::os::raw::c_char,
14193        description: *const ::std::os::raw::c_char,
14194        id: *const ::std::os::raw::c_char,
14195    ) -> *mut BNProjectFolder;
14196}
14197unsafe extern "C" {
14198    pub fn BNProjectGetFolders(
14199        project: *mut BNProject,
14200        count: *mut usize,
14201    ) -> *mut *mut BNProjectFolder;
14202}
14203unsafe extern "C" {
14204    pub fn BNProjectGetFolderById(
14205        project: *mut BNProject,
14206        id: *const ::std::os::raw::c_char,
14207    ) -> *mut BNProjectFolder;
14208}
14209unsafe extern "C" {
14210    pub fn BNProjectPushFolder(project: *mut BNProject, folder: *mut BNProjectFolder) -> bool;
14211}
14212unsafe extern "C" {
14213    pub fn BNProjectDeleteFolder(
14214        project: *mut BNProject,
14215        folder: *mut BNProjectFolder,
14216        ctxt: *mut ::std::os::raw::c_void,
14217        progress: BNProgressFunction,
14218    ) -> bool;
14219}
14220unsafe extern "C" {
14221    pub fn BNProjectBeginBulkOperation(project: *mut BNProject) -> bool;
14222}
14223unsafe extern "C" {
14224    pub fn BNProjectEndBulkOperation(project: *mut BNProject) -> bool;
14225}
14226unsafe extern "C" {
14227    pub fn BNProjectGetRemoteProject(project: *mut BNProject) -> *mut BNRemoteProject;
14228}
14229unsafe extern "C" {
14230    #[doc = " ProjectFile object"]
14231    pub fn BNNewProjectFileReference(file: *mut BNProjectFile) -> *mut BNProjectFile;
14232}
14233unsafe extern "C" {
14234    pub fn BNFreeProjectFile(file: *mut BNProjectFile);
14235}
14236unsafe extern "C" {
14237    pub fn BNFreeProjectFileList(files: *mut *mut BNProjectFile, count: usize);
14238}
14239unsafe extern "C" {
14240    pub fn BNProjectFileGetPathOnDisk(file: *mut BNProjectFile) -> *mut ::std::os::raw::c_char;
14241}
14242unsafe extern "C" {
14243    pub fn BNProjectFileGetPathInProject(file: *const BNProjectFile)
14244    -> *mut ::std::os::raw::c_char;
14245}
14246unsafe extern "C" {
14247    pub fn BNProjectFileExistsOnDisk(file: *mut BNProjectFile) -> bool;
14248}
14249unsafe extern "C" {
14250    pub fn BNProjectFileGetName(file: *mut BNProjectFile) -> *mut ::std::os::raw::c_char;
14251}
14252unsafe extern "C" {
14253    pub fn BNProjectFileSetName(
14254        file: *mut BNProjectFile,
14255        name: *const ::std::os::raw::c_char,
14256    ) -> bool;
14257}
14258unsafe extern "C" {
14259    pub fn BNProjectFileGetDescription(file: *mut BNProjectFile) -> *mut ::std::os::raw::c_char;
14260}
14261unsafe extern "C" {
14262    pub fn BNProjectFileSetDescription(
14263        file: *mut BNProjectFile,
14264        description: *const ::std::os::raw::c_char,
14265    ) -> bool;
14266}
14267unsafe extern "C" {
14268    pub fn BNProjectFileGetId(file: *mut BNProjectFile) -> *mut ::std::os::raw::c_char;
14269}
14270unsafe extern "C" {
14271    pub fn BNProjectFileGetFolder(file: *mut BNProjectFile) -> *mut BNProjectFolder;
14272}
14273unsafe extern "C" {
14274    pub fn BNProjectFileSetFolder(file: *mut BNProjectFile, folder: *mut BNProjectFolder) -> bool;
14275}
14276unsafe extern "C" {
14277    pub fn BNProjectFileGetProject(file: *mut BNProjectFile) -> *mut BNProject;
14278}
14279unsafe extern "C" {
14280    pub fn BNProjectFileExport(
14281        file: *mut BNProjectFile,
14282        destination: *const ::std::os::raw::c_char,
14283    ) -> bool;
14284}
14285unsafe extern "C" {
14286    pub fn BNProjectFileGetCreationTimestamp(file: *mut BNProjectFile) -> i64;
14287}
14288unsafe extern "C" {
14289    pub fn BNProjectFileAddDependency(file: *mut BNProjectFile, dep: *mut BNProjectFile) -> bool;
14290}
14291unsafe extern "C" {
14292    pub fn BNProjectFileRemoveDependency(file: *mut BNProjectFile, dep: *mut BNProjectFile)
14293    -> bool;
14294}
14295unsafe extern "C" {
14296    pub fn BNProjectFileGetDependencies(
14297        file: *mut BNProjectFile,
14298        count: *mut usize,
14299    ) -> *mut *mut BNProjectFile;
14300}
14301unsafe extern "C" {
14302    pub fn BNProjectFileGetRequiredBy(
14303        file: *mut BNProjectFile,
14304        count: *mut usize,
14305    ) -> *mut *mut BNProjectFile;
14306}
14307unsafe extern "C" {
14308    #[doc = " ProjectFolder object"]
14309    pub fn BNNewProjectFolderReference(folder: *mut BNProjectFolder) -> *mut BNProjectFolder;
14310}
14311unsafe extern "C" {
14312    pub fn BNFreeProjectFolder(folder: *mut BNProjectFolder);
14313}
14314unsafe extern "C" {
14315    pub fn BNFreeProjectFolderList(folders: *mut *mut BNProjectFolder, count: usize);
14316}
14317unsafe extern "C" {
14318    pub fn BNProjectFolderGetId(folder: *mut BNProjectFolder) -> *mut ::std::os::raw::c_char;
14319}
14320unsafe extern "C" {
14321    pub fn BNProjectFolderGetName(folder: *mut BNProjectFolder) -> *mut ::std::os::raw::c_char;
14322}
14323unsafe extern "C" {
14324    pub fn BNProjectFolderSetName(
14325        folder: *mut BNProjectFolder,
14326        name: *const ::std::os::raw::c_char,
14327    ) -> bool;
14328}
14329unsafe extern "C" {
14330    pub fn BNProjectFolderGetDescription(
14331        folder: *mut BNProjectFolder,
14332    ) -> *mut ::std::os::raw::c_char;
14333}
14334unsafe extern "C" {
14335    pub fn BNProjectFolderSetDescription(
14336        folder: *mut BNProjectFolder,
14337        description: *const ::std::os::raw::c_char,
14338    ) -> bool;
14339}
14340unsafe extern "C" {
14341    pub fn BNProjectFolderGetParent(folder: *mut BNProjectFolder) -> *mut BNProjectFolder;
14342}
14343unsafe extern "C" {
14344    pub fn BNProjectFolderSetParent(
14345        folder: *mut BNProjectFolder,
14346        parent: *mut BNProjectFolder,
14347    ) -> bool;
14348}
14349unsafe extern "C" {
14350    pub fn BNProjectFolderGetProject(folder: *mut BNProjectFolder) -> *mut BNProject;
14351}
14352unsafe extern "C" {
14353    pub fn BNProjectFolderExport(
14354        folder: *mut BNProjectFolder,
14355        destination: *const ::std::os::raw::c_char,
14356        ctxt: *mut ::std::os::raw::c_void,
14357        progress: BNProgressFunction,
14358    ) -> bool;
14359}
14360unsafe extern "C" {
14361    pub fn BNProjectFolderGetFiles(
14362        folder: *mut BNProjectFolder,
14363        count: *mut usize,
14364    ) -> *mut *mut BNProjectFile;
14365}
14366unsafe extern "C" {
14367    #[doc = " ExternalLibrary object"]
14368    pub fn BNNewExternalLibraryReference(lib: *mut BNExternalLibrary) -> *mut BNExternalLibrary;
14369}
14370unsafe extern "C" {
14371    pub fn BNFreeExternalLibrary(lib: *mut BNExternalLibrary);
14372}
14373unsafe extern "C" {
14374    pub fn BNFreeExternalLibraryList(libs: *mut *mut BNExternalLibrary, count: usize);
14375}
14376unsafe extern "C" {
14377    pub fn BNExternalLibraryGetName(lib: *mut BNExternalLibrary) -> *mut ::std::os::raw::c_char;
14378}
14379unsafe extern "C" {
14380    pub fn BNExternalLibrarySetBackingFile(lib: *mut BNExternalLibrary, file: *mut BNProjectFile);
14381}
14382unsafe extern "C" {
14383    pub fn BNExternalLibraryGetBackingFile(lib: *mut BNExternalLibrary) -> *mut BNProjectFile;
14384}
14385unsafe extern "C" {
14386    #[doc = " ExternalLocation object"]
14387    pub fn BNNewExternalLocationReference(loc: *mut BNExternalLocation) -> *mut BNExternalLocation;
14388}
14389unsafe extern "C" {
14390    pub fn BNFreeExternalLocation(loc: *mut BNExternalLocation);
14391}
14392unsafe extern "C" {
14393    pub fn BNFreeExternalLocationList(locs: *mut *mut BNExternalLocation, count: usize);
14394}
14395unsafe extern "C" {
14396    pub fn BNExternalLocationGetSourceSymbol(loc: *mut BNExternalLocation) -> *mut BNSymbol;
14397}
14398unsafe extern "C" {
14399    pub fn BNExternalLocationGetTargetAddress(loc: *mut BNExternalLocation) -> u64;
14400}
14401unsafe extern "C" {
14402    pub fn BNExternalLocationGetTargetSymbol(
14403        loc: *mut BNExternalLocation,
14404    ) -> *mut ::std::os::raw::c_char;
14405}
14406unsafe extern "C" {
14407    pub fn BNExternalLocationGetExternalLibrary(
14408        loc: *mut BNExternalLocation,
14409    ) -> *mut BNExternalLibrary;
14410}
14411unsafe extern "C" {
14412    pub fn BNExternalLocationHasTargetAddress(loc: *mut BNExternalLocation) -> bool;
14413}
14414unsafe extern "C" {
14415    pub fn BNExternalLocationHasTargetSymbol(loc: *mut BNExternalLocation) -> bool;
14416}
14417unsafe extern "C" {
14418    pub fn BNExternalLocationSetTargetAddress(
14419        loc: *mut BNExternalLocation,
14420        address: *mut u64,
14421    ) -> bool;
14422}
14423unsafe extern "C" {
14424    pub fn BNExternalLocationSetTargetSymbol(
14425        loc: *mut BNExternalLocation,
14426        symbol: *const ::std::os::raw::c_char,
14427    ) -> bool;
14428}
14429unsafe extern "C" {
14430    pub fn BNExternalLocationSetExternalLibrary(
14431        loc: *mut BNExternalLocation,
14432        library: *mut BNExternalLibrary,
14433    );
14434}
14435unsafe extern "C" {
14436    #[doc = " Database object"]
14437    pub fn BNNewDatabaseReference(database: *mut BNDatabase) -> *mut BNDatabase;
14438}
14439unsafe extern "C" {
14440    pub fn BNFreeDatabase(database: *mut BNDatabase);
14441}
14442unsafe extern "C" {
14443    pub fn BNCreateDatabaseInstance() -> *mut BNDatabase;
14444}
14445unsafe extern "C" {
14446    pub fn BNDatabaseOpenExisting(
14447        database: *mut BNDatabase,
14448        path: *const ::std::os::raw::c_char,
14449    ) -> bool;
14450}
14451unsafe extern "C" {
14452    pub fn BNSetDatabaseCurrentSnapshot(database: *mut BNDatabase, id: i64);
14453}
14454unsafe extern "C" {
14455    pub fn BNGetDatabaseCurrentSnapshot(database: *mut BNDatabase) -> *mut BNSnapshot;
14456}
14457unsafe extern "C" {
14458    pub fn BNGetDatabaseSnapshots(
14459        database: *mut BNDatabase,
14460        count: *mut usize,
14461    ) -> *mut *mut BNSnapshot;
14462}
14463unsafe extern "C" {
14464    pub fn BNGetDatabaseSnapshot(database: *mut BNDatabase, id: i64) -> *mut BNSnapshot;
14465}
14466unsafe extern "C" {
14467    pub fn BNWriteDatabaseSnapshotData(
14468        database: *mut BNDatabase,
14469        parents: *mut i64,
14470        parentCount: usize,
14471        file: *mut BNBinaryView,
14472        name: *const ::std::os::raw::c_char,
14473        data: *mut BNKeyValueStore,
14474        autoSave: bool,
14475        ctxt: *mut ::std::os::raw::c_void,
14476        progress: BNProgressFunction,
14477    ) -> i64;
14478}
14479unsafe extern "C" {
14480    pub fn BNTrimDatabaseSnapshot(database: *mut BNDatabase, id: i64) -> bool;
14481}
14482unsafe extern "C" {
14483    pub fn BNRemoveDatabaseSnapshot(database: *mut BNDatabase, id: i64) -> bool;
14484}
14485unsafe extern "C" {
14486    pub fn BNGetDatabaseGlobalKeys(
14487        database: *mut BNDatabase,
14488        count: *mut usize,
14489    ) -> *mut *mut ::std::os::raw::c_char;
14490}
14491unsafe extern "C" {
14492    pub fn BNDatabaseHasGlobal(
14493        database: *mut BNDatabase,
14494        key: *const ::std::os::raw::c_char,
14495    ) -> ::std::os::raw::c_int;
14496}
14497unsafe extern "C" {
14498    pub fn BNReadDatabaseGlobal(
14499        database: *mut BNDatabase,
14500        key: *const ::std::os::raw::c_char,
14501    ) -> *mut ::std::os::raw::c_char;
14502}
14503unsafe extern "C" {
14504    pub fn BNWriteDatabaseGlobal(
14505        database: *mut BNDatabase,
14506        key: *const ::std::os::raw::c_char,
14507        val: *const ::std::os::raw::c_char,
14508    ) -> bool;
14509}
14510unsafe extern "C" {
14511    pub fn BNReadDatabaseGlobalData(
14512        database: *mut BNDatabase,
14513        key: *const ::std::os::raw::c_char,
14514    ) -> *mut BNDataBuffer;
14515}
14516unsafe extern "C" {
14517    pub fn BNWriteDatabaseGlobalData(
14518        database: *mut BNDatabase,
14519        key: *const ::std::os::raw::c_char,
14520        val: *mut BNDataBuffer,
14521    ) -> bool;
14522}
14523unsafe extern "C" {
14524    pub fn BNReadDatabaseAnalysisCache(database: *mut BNDatabase) -> *mut BNKeyValueStore;
14525}
14526unsafe extern "C" {
14527    pub fn BNWriteDatabaseAnalysisCache(
14528        database: *mut BNDatabase,
14529        val: *mut BNKeyValueStore,
14530    ) -> bool;
14531}
14532unsafe extern "C" {
14533    pub fn BNSnapshotHasData(db: *mut BNDatabase, id: i64) -> bool;
14534}
14535unsafe extern "C" {
14536    #[doc = " Database snapshots"]
14537    pub fn BNNewSnapshotReference(snapshot: *mut BNSnapshot) -> *mut BNSnapshot;
14538}
14539unsafe extern "C" {
14540    pub fn BNFreeSnapshot(snapshot: *mut BNSnapshot);
14541}
14542unsafe extern "C" {
14543    pub fn BNFreeSnapshotList(snapshots: *mut *mut BNSnapshot, count: usize);
14544}
14545unsafe extern "C" {
14546    pub fn BNGetSnapshotDatabase(snapshot: *mut BNSnapshot) -> *mut BNDatabase;
14547}
14548unsafe extern "C" {
14549    pub fn BNGetSnapshotId(snapshot: *mut BNSnapshot) -> i64;
14550}
14551unsafe extern "C" {
14552    pub fn BNGetSnapshotFirstParent(snapshot: *mut BNSnapshot) -> *mut BNSnapshot;
14553}
14554unsafe extern "C" {
14555    pub fn BNGetSnapshotParents(
14556        snapshot: *mut BNSnapshot,
14557        count: *mut usize,
14558    ) -> *mut *mut BNSnapshot;
14559}
14560unsafe extern "C" {
14561    pub fn BNGetSnapshotChildren(
14562        snapshot: *mut BNSnapshot,
14563        count: *mut usize,
14564    ) -> *mut *mut BNSnapshot;
14565}
14566unsafe extern "C" {
14567    pub fn BNGetSnapshotName(snapshot: *mut BNSnapshot) -> *mut ::std::os::raw::c_char;
14568}
14569unsafe extern "C" {
14570    pub fn BNSetSnapshotName(snapshot: *mut BNSnapshot, name: *const ::std::os::raw::c_char);
14571}
14572unsafe extern "C" {
14573    pub fn BNIsSnapshotAutoSave(snapshot: *mut BNSnapshot) -> bool;
14574}
14575unsafe extern "C" {
14576    pub fn BNSnapshotHasContents(snapshot: *mut BNSnapshot) -> bool;
14577}
14578unsafe extern "C" {
14579    pub fn BNSnapshotHasUndo(snapshot: *mut BNSnapshot) -> bool;
14580}
14581unsafe extern "C" {
14582    pub fn BNGetSnapshotFileContents(snapshot: *mut BNSnapshot) -> *mut BNDataBuffer;
14583}
14584unsafe extern "C" {
14585    pub fn BNGetSnapshotFileContentsHash(snapshot: *mut BNSnapshot) -> *mut BNDataBuffer;
14586}
14587unsafe extern "C" {
14588    pub fn BNReadSnapshotData(snapshot: *mut BNSnapshot) -> *mut BNKeyValueStore;
14589}
14590unsafe extern "C" {
14591    pub fn BNReadSnapshotDataWithProgress(
14592        snapshot: *mut BNSnapshot,
14593        ctxt: *mut ::std::os::raw::c_void,
14594        progress: BNProgressFunction,
14595    ) -> *mut BNKeyValueStore;
14596}
14597unsafe extern "C" {
14598    pub fn BNGetSnapshotUndoData(snapshot: *mut BNSnapshot) -> *mut BNDataBuffer;
14599}
14600unsafe extern "C" {
14601    pub fn BNGetSnapshotUndoEntries(
14602        snapshot: *mut BNSnapshot,
14603        file: *mut BNFileMetadata,
14604        count: *mut usize,
14605    ) -> *mut *mut BNUndoEntry;
14606}
14607unsafe extern "C" {
14608    pub fn BNGetSnapshotUndoEntriesWithProgress(
14609        snapshot: *mut BNSnapshot,
14610        file: *mut BNFileMetadata,
14611        ctxt: *mut ::std::os::raw::c_void,
14612        progress: BNProgressFunction,
14613        count: *mut usize,
14614    ) -> *mut *mut BNUndoEntry;
14615}
14616unsafe extern "C" {
14617    pub fn BNSnapshotHasAncestor(snapshot: *mut BNSnapshot, other: *mut BNSnapshot) -> bool;
14618}
14619unsafe extern "C" {
14620    pub fn BNSnapshotStoreData(
14621        snapshot: *mut BNSnapshot,
14622        data: *mut BNKeyValueStore,
14623        ctxt: *mut ::std::os::raw::c_void,
14624        progress: BNProgressFunction,
14625    ) -> bool;
14626}
14627unsafe extern "C" {
14628    #[doc = " Undo actions"]
14629    pub fn BNNewUndoActionReference(action: *mut BNUndoAction) -> *mut BNUndoAction;
14630}
14631unsafe extern "C" {
14632    pub fn BNFreeUndoAction(action: *mut BNUndoAction);
14633}
14634unsafe extern "C" {
14635    pub fn BNFreeUndoActionList(actions: *mut *mut BNUndoAction, count: usize);
14636}
14637unsafe extern "C" {
14638    pub fn BNUndoActionGetSummaryText(action: *mut BNUndoAction) -> *mut ::std::os::raw::c_char;
14639}
14640unsafe extern "C" {
14641    pub fn BNUndoActionGetSummary(
14642        action: *mut BNUndoAction,
14643        tokenCount: *mut usize,
14644    ) -> *mut BNInstructionTextToken;
14645}
14646unsafe extern "C" {
14647    #[doc = " Undo entries"]
14648    pub fn BNNewUndoEntryReference(entry: *mut BNUndoEntry) -> *mut BNUndoEntry;
14649}
14650unsafe extern "C" {
14651    pub fn BNFreeUndoEntry(entry: *mut BNUndoEntry);
14652}
14653unsafe extern "C" {
14654    pub fn BNFreeUndoEntryList(entrys: *mut *mut BNUndoEntry, count: usize);
14655}
14656unsafe extern "C" {
14657    pub fn BNUndoEntryGetId(entry: *mut BNUndoEntry) -> *mut ::std::os::raw::c_char;
14658}
14659unsafe extern "C" {
14660    pub fn BNUndoEntryGetActions(
14661        entry: *mut BNUndoEntry,
14662        count: *mut usize,
14663    ) -> *mut *mut BNUndoAction;
14664}
14665unsafe extern "C" {
14666    pub fn BNUndoEntryGetTimestamp(entry: *mut BNUndoEntry) -> u64;
14667}
14668unsafe extern "C" {
14669    pub fn BNRebase(data: *mut BNBinaryView, address: u64) -> bool;
14670}
14671unsafe extern "C" {
14672    pub fn BNRebaseWithProgress(
14673        data: *mut BNBinaryView,
14674        address: u64,
14675        ctxt: *mut ::std::os::raw::c_void,
14676        progress: BNProgressFunction,
14677    ) -> bool;
14678}
14679unsafe extern "C" {
14680    pub fn BNCreateSnapshotedView(
14681        data: *mut BNBinaryView,
14682        viewName: *const ::std::os::raw::c_char,
14683    ) -> bool;
14684}
14685unsafe extern "C" {
14686    pub fn BNCreateSnapshotedViewWithProgress(
14687        data: *mut BNBinaryView,
14688        viewName: *const ::std::os::raw::c_char,
14689        ctxt: *mut ::std::os::raw::c_void,
14690        progress: BNProgressFunction,
14691    ) -> bool;
14692}
14693unsafe extern "C" {
14694    pub fn BNGetOriginalFilename(file: *mut BNFileMetadata) -> *mut ::std::os::raw::c_char;
14695}
14696unsafe extern "C" {
14697    pub fn BNSetOriginalFilename(file: *mut BNFileMetadata, name: *const ::std::os::raw::c_char);
14698}
14699unsafe extern "C" {
14700    pub fn BNGetFilename(file: *mut BNFileMetadata) -> *mut ::std::os::raw::c_char;
14701}
14702unsafe extern "C" {
14703    pub fn BNSetFilename(file: *mut BNFileMetadata, name: *const ::std::os::raw::c_char);
14704}
14705unsafe extern "C" {
14706    pub fn BNGetVirtualPath(file: *mut BNFileMetadata) -> *mut ::std::os::raw::c_char;
14707}
14708unsafe extern "C" {
14709    pub fn BNSetVirtualPath(file: *mut BNFileMetadata, path: *const ::std::os::raw::c_char);
14710}
14711unsafe extern "C" {
14712    pub fn BNGetDisplayName(file: *mut BNFileMetadata) -> *mut ::std::os::raw::c_char;
14713}
14714unsafe extern "C" {
14715    pub fn BNSetDisplayName(file: *mut BNFileMetadata, name: *const ::std::os::raw::c_char);
14716}
14717unsafe extern "C" {
14718    pub fn BNGetProjectFile(file: *mut BNFileMetadata) -> *mut BNProjectFile;
14719}
14720unsafe extern "C" {
14721    pub fn BNSetProjectFile(file: *mut BNFileMetadata, pfile: *mut BNProjectFile);
14722}
14723unsafe extern "C" {
14724    pub fn BNBeginUndoActions(
14725        file: *mut BNFileMetadata,
14726        anonymousAllowed: bool,
14727    ) -> *mut ::std::os::raw::c_char;
14728}
14729unsafe extern "C" {
14730    pub fn BNCommitUndoActions(file: *mut BNFileMetadata, id: *const ::std::os::raw::c_char);
14731}
14732unsafe extern "C" {
14733    pub fn BNRevertUndoActions(file: *mut BNFileMetadata, id: *const ::std::os::raw::c_char);
14734}
14735unsafe extern "C" {
14736    pub fn BNForgetUndoActions(file: *mut BNFileMetadata, id: *const ::std::os::raw::c_char);
14737}
14738unsafe extern "C" {
14739    pub fn BNCanUndo(file: *mut BNFileMetadata) -> bool;
14740}
14741unsafe extern "C" {
14742    pub fn BNUndo(file: *mut BNFileMetadata) -> bool;
14743}
14744unsafe extern "C" {
14745    pub fn BNCanRedo(file: *mut BNFileMetadata) -> bool;
14746}
14747unsafe extern "C" {
14748    pub fn BNRedo(file: *mut BNFileMetadata) -> bool;
14749}
14750unsafe extern "C" {
14751    pub fn BNGetUndoEntries(file: *mut BNFileMetadata, count: *mut usize) -> *mut *mut BNUndoEntry;
14752}
14753unsafe extern "C" {
14754    pub fn BNGetRedoEntries(file: *mut BNFileMetadata, count: *mut usize) -> *mut *mut BNUndoEntry;
14755}
14756unsafe extern "C" {
14757    pub fn BNGetLastUndoEntry(file: *mut BNFileMetadata) -> *mut BNUndoEntry;
14758}
14759unsafe extern "C" {
14760    pub fn BNGetLastRedoEntry(file: *mut BNFileMetadata) -> *mut BNUndoEntry;
14761}
14762unsafe extern "C" {
14763    pub fn BNGetLastUndoEntryTitle(file: *mut BNFileMetadata) -> *mut ::std::os::raw::c_char;
14764}
14765unsafe extern "C" {
14766    pub fn BNGetLastRedoEntryTitle(file: *mut BNFileMetadata) -> *mut ::std::os::raw::c_char;
14767}
14768unsafe extern "C" {
14769    pub fn BNFreeUndoEntries(entries: *mut *mut BNUndoEntry, count: usize);
14770}
14771unsafe extern "C" {
14772    pub fn BNClearUndoEntries(file: *mut BNFileMetadata);
14773}
14774unsafe extern "C" {
14775    pub fn BNNewUserReference(user: *mut BNUser) -> *mut BNUser;
14776}
14777unsafe extern "C" {
14778    pub fn BNFreeUser(user: *mut BNUser);
14779}
14780unsafe extern "C" {
14781    pub fn BNGetUsers(file: *mut BNFileMetadata, count: *mut usize) -> *mut *mut BNUser;
14782}
14783unsafe extern "C" {
14784    pub fn BNFreeUserList(users: *mut *mut BNUser, count: usize);
14785}
14786unsafe extern "C" {
14787    pub fn BNGetUserName(user: *mut BNUser) -> *mut ::std::os::raw::c_char;
14788}
14789unsafe extern "C" {
14790    pub fn BNGetUserEmail(user: *mut BNUser) -> *mut ::std::os::raw::c_char;
14791}
14792unsafe extern "C" {
14793    pub fn BNGetUserId(user: *mut BNUser) -> *mut ::std::os::raw::c_char;
14794}
14795unsafe extern "C" {
14796    pub fn BNGetCurrentView(file: *mut BNFileMetadata) -> *mut ::std::os::raw::c_char;
14797}
14798unsafe extern "C" {
14799    pub fn BNGetCurrentOffset(file: *mut BNFileMetadata) -> u64;
14800}
14801unsafe extern "C" {
14802    pub fn BNNavigate(
14803        file: *mut BNFileMetadata,
14804        view: *const ::std::os::raw::c_char,
14805        offset: u64,
14806    ) -> bool;
14807}
14808unsafe extern "C" {
14809    pub fn BNGetFileViewOfType(
14810        file: *mut BNFileMetadata,
14811        name: *const ::std::os::raw::c_char,
14812    ) -> *mut BNBinaryView;
14813}
14814unsafe extern "C" {
14815    pub fn BNGetExistingViews(
14816        file: *mut BNFileMetadata,
14817        count: *mut usize,
14818    ) -> *mut *mut ::std::os::raw::c_char;
14819}
14820unsafe extern "C" {
14821    pub fn BNFileMetadataGetSessionId(file: *mut BNFileMetadata) -> usize;
14822}
14823unsafe extern "C" {
14824    pub fn BNIsSnapshotDataAppliedWithoutError(view: *mut BNFileMetadata) -> bool;
14825}
14826unsafe extern "C" {
14827    pub fn BNUnregisterViewOfType(
14828        file: *mut BNFileMetadata,
14829        type_: *const ::std::os::raw::c_char,
14830        view: *mut BNBinaryView,
14831    );
14832}
14833unsafe extern "C" {
14834    #[doc = " Memory Map"]
14835    pub fn BNGetBaseMemoryMapDescription(view: *mut BNBinaryView) -> *mut ::std::os::raw::c_char;
14836}
14837unsafe extern "C" {
14838    pub fn BNGetMemoryMapDescription(view: *mut BNBinaryView) -> *mut ::std::os::raw::c_char;
14839}
14840unsafe extern "C" {
14841    pub fn BNSetLogicalMemoryMapEnabled(view: *mut BNBinaryView, enabled: bool);
14842}
14843unsafe extern "C" {
14844    pub fn BNIsMemoryMapActivated(view: *mut BNBinaryView) -> bool;
14845}
14846unsafe extern "C" {
14847    pub fn BNAddBinaryMemoryRegion(
14848        view: *mut BNBinaryView,
14849        name: *const ::std::os::raw::c_char,
14850        start: u64,
14851        data: *mut BNBinaryView,
14852        flags: u32,
14853    ) -> bool;
14854}
14855unsafe extern "C" {
14856    pub fn BNAddDataMemoryRegion(
14857        view: *mut BNBinaryView,
14858        name: *const ::std::os::raw::c_char,
14859        start: u64,
14860        data: *mut BNDataBuffer,
14861        flags: u32,
14862    ) -> bool;
14863}
14864unsafe extern "C" {
14865    pub fn BNAddUnbackedMemoryRegion(
14866        view: *mut BNBinaryView,
14867        name: *const ::std::os::raw::c_char,
14868        start: u64,
14869        length: u64,
14870        flags: u32,
14871        fill: u8,
14872    ) -> bool;
14873}
14874unsafe extern "C" {
14875    pub fn BNAddRemoteMemoryRegion(
14876        view: *mut BNBinaryView,
14877        name: *const ::std::os::raw::c_char,
14878        start: u64,
14879        accessor: *mut BNFileAccessor,
14880        flags: u32,
14881    ) -> bool;
14882}
14883unsafe extern "C" {
14884    pub fn BNRemoveMemoryRegion(
14885        view: *mut BNBinaryView,
14886        name: *const ::std::os::raw::c_char,
14887    ) -> bool;
14888}
14889unsafe extern "C" {
14890    pub fn BNGetActiveMemoryRegionAt(
14891        view: *mut BNBinaryView,
14892        addr: u64,
14893    ) -> *mut ::std::os::raw::c_char;
14894}
14895unsafe extern "C" {
14896    pub fn BNGetMemoryRegionFlags(
14897        view: *mut BNBinaryView,
14898        name: *const ::std::os::raw::c_char,
14899    ) -> u32;
14900}
14901unsafe extern "C" {
14902    pub fn BNSetMemoryRegionFlags(
14903        view: *mut BNBinaryView,
14904        name: *const ::std::os::raw::c_char,
14905        flags: u32,
14906    ) -> bool;
14907}
14908unsafe extern "C" {
14909    pub fn BNIsMemoryRegionEnabled(
14910        view: *mut BNBinaryView,
14911        name: *const ::std::os::raw::c_char,
14912    ) -> bool;
14913}
14914unsafe extern "C" {
14915    pub fn BNSetMemoryRegionEnabled(
14916        view: *mut BNBinaryView,
14917        name: *const ::std::os::raw::c_char,
14918        enable: bool,
14919    ) -> bool;
14920}
14921unsafe extern "C" {
14922    pub fn BNIsMemoryRegionRebaseable(
14923        view: *mut BNBinaryView,
14924        name: *const ::std::os::raw::c_char,
14925    ) -> bool;
14926}
14927unsafe extern "C" {
14928    pub fn BNSetMemoryRegionRebaseable(
14929        view: *mut BNBinaryView,
14930        name: *const ::std::os::raw::c_char,
14931        rebaseable: bool,
14932    ) -> bool;
14933}
14934unsafe extern "C" {
14935    pub fn BNGetMemoryRegionFill(
14936        view: *mut BNBinaryView,
14937        name: *const ::std::os::raw::c_char,
14938    ) -> u8;
14939}
14940unsafe extern "C" {
14941    pub fn BNSetMemoryRegionFill(
14942        view: *mut BNBinaryView,
14943        name: *const ::std::os::raw::c_char,
14944        fill: u8,
14945    ) -> bool;
14946}
14947unsafe extern "C" {
14948    pub fn BNGetMemoryRegionDisplayName(
14949        view: *mut BNBinaryView,
14950        name: *const ::std::os::raw::c_char,
14951    ) -> *mut ::std::os::raw::c_char;
14952}
14953unsafe extern "C" {
14954    pub fn BNSetMemoryRegionDisplayName(
14955        view: *mut BNBinaryView,
14956        name: *const ::std::os::raw::c_char,
14957        displayName: *const ::std::os::raw::c_char,
14958    ) -> bool;
14959}
14960unsafe extern "C" {
14961    pub fn BNIsMemoryRegionLocal(
14962        view: *mut BNBinaryView,
14963        name: *const ::std::os::raw::c_char,
14964    ) -> bool;
14965}
14966unsafe extern "C" {
14967    pub fn BNGetMemoryRegionInfo(
14968        view: *mut BNBinaryView,
14969        name: *const ::std::os::raw::c_char,
14970        result: *mut BNMemoryRegionInfo,
14971    ) -> bool;
14972}
14973unsafe extern "C" {
14974    pub fn BNGetActiveMemoryRegionInfoAt(
14975        view: *mut BNBinaryView,
14976        addr: u64,
14977        result: *mut BNMemoryRegionInfo,
14978    ) -> bool;
14979}
14980unsafe extern "C" {
14981    pub fn BNGetResolvedMemoryRangeAt(
14982        view: *mut BNBinaryView,
14983        addr: u64,
14984        result: *mut BNResolvedMemoryRange,
14985    ) -> bool;
14986}
14987unsafe extern "C" {
14988    pub fn BNFreeMemoryRegionInfo(info: *mut BNMemoryRegionInfo);
14989}
14990unsafe extern "C" {
14991    pub fn BNFreeResolvedMemoryRange(range: *mut BNResolvedMemoryRange);
14992}
14993unsafe extern "C" {
14994    pub fn BNGetMemoryRegions(
14995        view: *mut BNBinaryView,
14996        count: *mut usize,
14997    ) -> *mut BNMemoryRegionInfo;
14998}
14999unsafe extern "C" {
15000    pub fn BNFreeMemoryRegions(regions: *mut BNMemoryRegionInfo, count: usize);
15001}
15002unsafe extern "C" {
15003    pub fn BNGetResolvedMemoryRanges(
15004        view: *mut BNBinaryView,
15005        count: *mut usize,
15006    ) -> *mut BNResolvedMemoryRange;
15007}
15008unsafe extern "C" {
15009    pub fn BNFreeResolvedMemoryRanges(ranges: *mut BNResolvedMemoryRange, count: usize);
15010}
15011unsafe extern "C" {
15012    pub fn BNResetMemoryMap(view: *mut BNBinaryView);
15013}
15014unsafe extern "C" {
15015    #[doc = " Binary view access"]
15016    pub fn BNNewViewReference(view: *mut BNBinaryView) -> *mut BNBinaryView;
15017}
15018unsafe extern "C" {
15019    pub fn BNFreeBinaryView(view: *mut BNBinaryView);
15020}
15021unsafe extern "C" {
15022    pub fn BNGetFileForView(view: *mut BNBinaryView) -> *mut BNFileMetadata;
15023}
15024unsafe extern "C" {
15025    pub fn BNGetViewType(view: *mut BNBinaryView) -> *mut ::std::os::raw::c_char;
15026}
15027unsafe extern "C" {
15028    pub fn BNGetParentView(view: *mut BNBinaryView) -> *mut BNBinaryView;
15029}
15030unsafe extern "C" {
15031    pub fn BNReadViewData(
15032        view: *mut BNBinaryView,
15033        dest: *mut ::std::os::raw::c_void,
15034        offset: u64,
15035        len: usize,
15036    ) -> usize;
15037}
15038unsafe extern "C" {
15039    pub fn BNReadViewBuffer(view: *mut BNBinaryView, offset: u64, len: usize) -> *mut BNDataBuffer;
15040}
15041unsafe extern "C" {
15042    pub fn BNGetViewDataPointer(view: *mut BNBinaryView) -> *const u8;
15043}
15044unsafe extern "C" {
15045    pub fn BNGetViewDataLength(view: *mut BNBinaryView) -> usize;
15046}
15047unsafe extern "C" {
15048    pub fn BNWriteViewData(
15049        view: *mut BNBinaryView,
15050        offset: u64,
15051        data: *const ::std::os::raw::c_void,
15052        len: usize,
15053    ) -> usize;
15054}
15055unsafe extern "C" {
15056    pub fn BNWriteViewBuffer(
15057        view: *mut BNBinaryView,
15058        offset: u64,
15059        data: *mut BNDataBuffer,
15060    ) -> usize;
15061}
15062unsafe extern "C" {
15063    pub fn BNInsertViewData(
15064        view: *mut BNBinaryView,
15065        offset: u64,
15066        data: *const ::std::os::raw::c_void,
15067        len: usize,
15068    ) -> usize;
15069}
15070unsafe extern "C" {
15071    pub fn BNInsertViewBuffer(
15072        view: *mut BNBinaryView,
15073        offset: u64,
15074        data: *mut BNDataBuffer,
15075    ) -> usize;
15076}
15077unsafe extern "C" {
15078    pub fn BNRemoveViewData(view: *mut BNBinaryView, offset: u64, len: u64) -> usize;
15079}
15080unsafe extern "C" {
15081    pub fn BNNotifyDataWritten(view: *mut BNBinaryView, offset: u64, len: usize);
15082}
15083unsafe extern "C" {
15084    pub fn BNNotifyDataInserted(view: *mut BNBinaryView, offset: u64, len: usize);
15085}
15086unsafe extern "C" {
15087    pub fn BNNotifyDataRemoved(view: *mut BNBinaryView, offset: u64, len: u64);
15088}
15089unsafe extern "C" {
15090    pub fn BNGetEntropy(
15091        view: *mut BNBinaryView,
15092        offset: u64,
15093        len: usize,
15094        blockSize: usize,
15095        result: *mut f32,
15096    ) -> usize;
15097}
15098unsafe extern "C" {
15099    pub fn BNGetModification(view: *mut BNBinaryView, offset: u64) -> BNModificationStatus;
15100}
15101unsafe extern "C" {
15102    pub fn BNGetModificationArray(
15103        view: *mut BNBinaryView,
15104        offset: u64,
15105        result: *mut BNModificationStatus,
15106        len: usize,
15107    ) -> usize;
15108}
15109unsafe extern "C" {
15110    pub fn BNIsValidOffset(view: *mut BNBinaryView, offset: u64) -> bool;
15111}
15112unsafe extern "C" {
15113    pub fn BNIsOffsetReadable(view: *mut BNBinaryView, offset: u64) -> bool;
15114}
15115unsafe extern "C" {
15116    pub fn BNIsOffsetWritable(view: *mut BNBinaryView, offset: u64) -> bool;
15117}
15118unsafe extern "C" {
15119    pub fn BNIsOffsetExecutable(view: *mut BNBinaryView, offset: u64) -> bool;
15120}
15121unsafe extern "C" {
15122    pub fn BNIsOffsetBackedByFile(view: *mut BNBinaryView, offset: u64) -> bool;
15123}
15124unsafe extern "C" {
15125    pub fn BNIsOffsetCodeSemantics(view: *mut BNBinaryView, offset: u64) -> bool;
15126}
15127unsafe extern "C" {
15128    pub fn BNIsOffsetExternSemantics(view: *mut BNBinaryView, offset: u64) -> bool;
15129}
15130unsafe extern "C" {
15131    pub fn BNIsOffsetWritableSemantics(view: *mut BNBinaryView, offset: u64) -> bool;
15132}
15133unsafe extern "C" {
15134    pub fn BNIsOffsetReadOnlySemantics(view: *mut BNBinaryView, offset: u64) -> bool;
15135}
15136unsafe extern "C" {
15137    pub fn BNGetNextValidOffset(view: *mut BNBinaryView, offset: u64) -> u64;
15138}
15139unsafe extern "C" {
15140    pub fn BNGetImageBase(view: *mut BNBinaryView) -> u64;
15141}
15142unsafe extern "C" {
15143    pub fn BNGetOriginalImageBase(view: *mut BNBinaryView) -> u64;
15144}
15145unsafe extern "C" {
15146    pub fn BNSetOriginalImageBase(view: *mut BNBinaryView, imageBase: u64);
15147}
15148unsafe extern "C" {
15149    pub fn BNGetStartOffset(view: *mut BNBinaryView) -> u64;
15150}
15151unsafe extern "C" {
15152    pub fn BNGetEndOffset(view: *mut BNBinaryView) -> u64;
15153}
15154unsafe extern "C" {
15155    pub fn BNGetViewLength(view: *mut BNBinaryView) -> u64;
15156}
15157unsafe extern "C" {
15158    pub fn BNGetEntryPoint(view: *mut BNBinaryView) -> u64;
15159}
15160unsafe extern "C" {
15161    pub fn BNGetDefaultArchitecture(view: *mut BNBinaryView) -> *mut BNArchitecture;
15162}
15163unsafe extern "C" {
15164    pub fn BNSetDefaultArchitecture(view: *mut BNBinaryView, arch: *mut BNArchitecture);
15165}
15166unsafe extern "C" {
15167    pub fn BNGetDefaultPlatform(view: *mut BNBinaryView) -> *mut BNPlatform;
15168}
15169unsafe extern "C" {
15170    pub fn BNSetDefaultPlatform(view: *mut BNBinaryView, platform: *mut BNPlatform);
15171}
15172unsafe extern "C" {
15173    pub fn BNGetDefaultEndianness(view: *mut BNBinaryView) -> BNEndianness;
15174}
15175unsafe extern "C" {
15176    pub fn BNIsRelocatable(view: *mut BNBinaryView) -> bool;
15177}
15178unsafe extern "C" {
15179    pub fn BNGetViewAddressSize(view: *mut BNBinaryView) -> usize;
15180}
15181unsafe extern "C" {
15182    pub fn BNIsViewModified(view: *mut BNBinaryView) -> bool;
15183}
15184unsafe extern "C" {
15185    pub fn BNIsExecutableView(view: *mut BNBinaryView) -> bool;
15186}
15187unsafe extern "C" {
15188    pub fn BNSaveToFile(view: *mut BNBinaryView, file: *mut BNFileAccessor) -> bool;
15189}
15190unsafe extern "C" {
15191    pub fn BNSaveToFilename(
15192        view: *mut BNBinaryView,
15193        filename: *const ::std::os::raw::c_char,
15194    ) -> bool;
15195}
15196unsafe extern "C" {
15197    pub fn BNDefineRelocation(
15198        view: *mut BNBinaryView,
15199        arch: *mut BNArchitecture,
15200        info: *mut BNRelocationInfo,
15201        target: u64,
15202        reloc: u64,
15203    );
15204}
15205unsafe extern "C" {
15206    pub fn BNDefineSymbolRelocation(
15207        view: *mut BNBinaryView,
15208        arch: *mut BNArchitecture,
15209        info: *mut BNRelocationInfo,
15210        target: *mut BNSymbol,
15211        reloc: u64,
15212    );
15213}
15214unsafe extern "C" {
15215    pub fn BNGetRelocationRanges(view: *mut BNBinaryView, count: *mut usize) -> *mut BNRange;
15216}
15217unsafe extern "C" {
15218    pub fn BNGetRelocationRangesAtAddress(
15219        view: *mut BNBinaryView,
15220        addr: u64,
15221        count: *mut usize,
15222    ) -> *mut BNRange;
15223}
15224unsafe extern "C" {
15225    pub fn BNGetRelocationRangesInRange(
15226        view: *mut BNBinaryView,
15227        addr: u64,
15228        size: u64,
15229        count: *mut usize,
15230    ) -> *mut BNRange;
15231}
15232unsafe extern "C" {
15233    pub fn BNRangeContainsRelocation(view: *mut BNBinaryView, addr: u64, size: usize) -> bool;
15234}
15235unsafe extern "C" {
15236    pub fn BNGetRelocationsAt(
15237        view: *mut BNBinaryView,
15238        addr: u64,
15239        count: *mut usize,
15240    ) -> *mut *mut BNRelocation;
15241}
15242unsafe extern "C" {
15243    pub fn BNFreeRelocationList(relocations: *mut *mut BNRelocation, count: usize);
15244}
15245unsafe extern "C" {
15246    pub fn BNFreeRelocationRanges(ranges: *mut BNRange);
15247}
15248unsafe extern "C" {
15249    pub fn BNGetNextRelocation(
15250        view: *mut BNBinaryView,
15251        addr: u64,
15252        maxAddr: u64,
15253    ) -> *mut BNRelocation;
15254}
15255unsafe extern "C" {
15256    pub fn BNRegisterDataNotification(
15257        view: *mut BNBinaryView,
15258        notify: *mut BNBinaryDataNotification,
15259    );
15260}
15261unsafe extern "C" {
15262    pub fn BNUnregisterDataNotification(
15263        view: *mut BNBinaryView,
15264        notify: *mut BNBinaryDataNotification,
15265    );
15266}
15267unsafe extern "C" {
15268    pub fn BNRegisterProjectNotification(
15269        project: *mut BNProject,
15270        notify: *mut BNProjectNotification,
15271    );
15272}
15273unsafe extern "C" {
15274    pub fn BNUnregisterProjectNotification(
15275        project: *mut BNProject,
15276        notify: *mut BNProjectNotification,
15277    );
15278}
15279unsafe extern "C" {
15280    pub fn BNCanAssemble(view: *mut BNBinaryView, arch: *mut BNArchitecture) -> bool;
15281}
15282unsafe extern "C" {
15283    pub fn BNIsNeverBranchPatchAvailable(
15284        view: *mut BNBinaryView,
15285        arch: *mut BNArchitecture,
15286        addr: u64,
15287    ) -> bool;
15288}
15289unsafe extern "C" {
15290    pub fn BNIsAlwaysBranchPatchAvailable(
15291        view: *mut BNBinaryView,
15292        arch: *mut BNArchitecture,
15293        addr: u64,
15294    ) -> bool;
15295}
15296unsafe extern "C" {
15297    pub fn BNIsInvertBranchPatchAvailable(
15298        view: *mut BNBinaryView,
15299        arch: *mut BNArchitecture,
15300        addr: u64,
15301    ) -> bool;
15302}
15303unsafe extern "C" {
15304    pub fn BNIsSkipAndReturnZeroPatchAvailable(
15305        view: *mut BNBinaryView,
15306        arch: *mut BNArchitecture,
15307        addr: u64,
15308    ) -> bool;
15309}
15310unsafe extern "C" {
15311    pub fn BNIsSkipAndReturnValuePatchAvailable(
15312        view: *mut BNBinaryView,
15313        arch: *mut BNArchitecture,
15314        addr: u64,
15315    ) -> bool;
15316}
15317unsafe extern "C" {
15318    pub fn BNConvertToNop(view: *mut BNBinaryView, arch: *mut BNArchitecture, addr: u64) -> bool;
15319}
15320unsafe extern "C" {
15321    pub fn BNAlwaysBranch(view: *mut BNBinaryView, arch: *mut BNArchitecture, addr: u64) -> bool;
15322}
15323unsafe extern "C" {
15324    pub fn BNInvertBranch(view: *mut BNBinaryView, arch: *mut BNArchitecture, addr: u64) -> bool;
15325}
15326unsafe extern "C" {
15327    pub fn BNSkipAndReturnValue(
15328        view: *mut BNBinaryView,
15329        arch: *mut BNArchitecture,
15330        addr: u64,
15331        value: u64,
15332    ) -> bool;
15333}
15334unsafe extern "C" {
15335    pub fn BNGetInstructionLength(
15336        view: *mut BNBinaryView,
15337        arch: *mut BNArchitecture,
15338        addr: u64,
15339    ) -> usize;
15340}
15341unsafe extern "C" {
15342    pub fn BNFindNextData(
15343        view: *mut BNBinaryView,
15344        start: u64,
15345        data: *mut BNDataBuffer,
15346        result: *mut u64,
15347        flags: BNFindFlag,
15348    ) -> bool;
15349}
15350unsafe extern "C" {
15351    pub fn BNFindNextText(
15352        view: *mut BNBinaryView,
15353        start: u64,
15354        data: *const ::std::os::raw::c_char,
15355        result: *mut u64,
15356        settings: *mut BNDisassemblySettings,
15357        flags: BNFindFlag,
15358        viewType: BNFunctionViewType,
15359    ) -> bool;
15360}
15361unsafe extern "C" {
15362    pub fn BNFindNextConstant(
15363        view: *mut BNBinaryView,
15364        start: u64,
15365        constant: u64,
15366        result: *mut u64,
15367        settings: *mut BNDisassemblySettings,
15368        viewType: BNFunctionViewType,
15369    ) -> bool;
15370}
15371unsafe extern "C" {
15372    pub fn BNFindNextDataWithProgress(
15373        view: *mut BNBinaryView,
15374        start: u64,
15375        end: u64,
15376        data: *mut BNDataBuffer,
15377        result: *mut u64,
15378        flags: BNFindFlag,
15379        ctxt: *mut ::std::os::raw::c_void,
15380        progress: BNProgressFunction,
15381    ) -> bool;
15382}
15383unsafe extern "C" {
15384    pub fn BNFindNextTextWithProgress(
15385        view: *mut BNBinaryView,
15386        start: u64,
15387        end: u64,
15388        data: *const ::std::os::raw::c_char,
15389        result: *mut u64,
15390        settings: *mut BNDisassemblySettings,
15391        flags: BNFindFlag,
15392        viewType: BNFunctionViewType,
15393        ctxt: *mut ::std::os::raw::c_void,
15394        progress: BNProgressFunction,
15395    ) -> bool;
15396}
15397unsafe extern "C" {
15398    pub fn BNFindNextConstantWithProgress(
15399        view: *mut BNBinaryView,
15400        start: u64,
15401        end: u64,
15402        constant: u64,
15403        result: *mut u64,
15404        settings: *mut BNDisassemblySettings,
15405        viewType: BNFunctionViewType,
15406        ctxt: *mut ::std::os::raw::c_void,
15407        progress: BNProgressFunction,
15408    ) -> bool;
15409}
15410unsafe extern "C" {
15411    pub fn BNFindAllDataWithProgress(
15412        view: *mut BNBinaryView,
15413        start: u64,
15414        end: u64,
15415        data: *mut BNDataBuffer,
15416        flags: BNFindFlag,
15417        ctxt: *mut ::std::os::raw::c_void,
15418        progress: BNProgressFunction,
15419        matchCtxt: *mut ::std::os::raw::c_void,
15420        matchCallback: ::std::option::Option<
15421            unsafe extern "C" fn(
15422                matchCtxt: *mut ::std::os::raw::c_void,
15423                addr: u64,
15424                match_: *mut BNDataBuffer,
15425            ) -> bool,
15426        >,
15427    ) -> bool;
15428}
15429unsafe extern "C" {
15430    pub fn BNFindAllTextWithProgress(
15431        view: *mut BNBinaryView,
15432        start: u64,
15433        end: u64,
15434        data: *const ::std::os::raw::c_char,
15435        settings: *mut BNDisassemblySettings,
15436        flags: BNFindFlag,
15437        viewType: BNFunctionViewType,
15438        ctxt: *mut ::std::os::raw::c_void,
15439        progress: BNProgressFunction,
15440        matchCtxt: *mut ::std::os::raw::c_void,
15441        matchCallback: ::std::option::Option<
15442            unsafe extern "C" fn(
15443                matchCtxt: *mut ::std::os::raw::c_void,
15444                addr: u64,
15445                match_: *const ::std::os::raw::c_char,
15446                line: *mut BNLinearDisassemblyLine,
15447            ) -> bool,
15448        >,
15449    ) -> bool;
15450}
15451unsafe extern "C" {
15452    pub fn BNFindAllConstantWithProgress(
15453        view: *mut BNBinaryView,
15454        start: u64,
15455        end: u64,
15456        constant: u64,
15457        settings: *mut BNDisassemblySettings,
15458        viewType: BNFunctionViewType,
15459        ctxt: *mut ::std::os::raw::c_void,
15460        progress: BNProgressFunction,
15461        matchCtxt: *mut ::std::os::raw::c_void,
15462        matchCallback: ::std::option::Option<
15463            unsafe extern "C" fn(
15464                matchCtxt: *mut ::std::os::raw::c_void,
15465                addr: u64,
15466                line: *mut BNLinearDisassemblyLine,
15467            ) -> bool,
15468        >,
15469    ) -> bool;
15470}
15471unsafe extern "C" {
15472    pub fn BNSearch(
15473        view: *mut BNBinaryView,
15474        query: *const ::std::os::raw::c_char,
15475        context: *mut ::std::os::raw::c_void,
15476        progressCallback: BNProgressFunction,
15477        matchContext: *mut ::std::os::raw::c_void,
15478        callback: ::std::option::Option<
15479            unsafe extern "C" fn(
15480                arg1: *mut ::std::os::raw::c_void,
15481                arg2: u64,
15482                arg3: *mut BNDataBuffer,
15483            ) -> bool,
15484        >,
15485    ) -> bool;
15486}
15487unsafe extern "C" {
15488    pub fn BNDetectSearchMode(query: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
15489}
15490unsafe extern "C" {
15491    pub fn BNPerformSearch(
15492        query: *const ::std::os::raw::c_char,
15493        buffer: *const u8,
15494        size: usize,
15495        callback: BNProgressFunction,
15496        context: *mut ::std::os::raw::c_void,
15497    ) -> bool;
15498}
15499unsafe extern "C" {
15500    pub fn BNBeginBulkAddSegments(view: *mut BNBinaryView);
15501}
15502unsafe extern "C" {
15503    pub fn BNEndBulkAddSegments(view: *mut BNBinaryView);
15504}
15505unsafe extern "C" {
15506    pub fn BNCancelBulkAddSegments(view: *mut BNBinaryView);
15507}
15508unsafe extern "C" {
15509    pub fn BNAddAutoSegment(
15510        view: *mut BNBinaryView,
15511        start: u64,
15512        length: u64,
15513        dataOffset: u64,
15514        dataLength: u64,
15515        flags: u32,
15516    );
15517}
15518unsafe extern "C" {
15519    pub fn BNAddAutoSegments(
15520        view: *mut BNBinaryView,
15521        segmentInfo: *const BNSegmentInfo,
15522        count: usize,
15523    );
15524}
15525unsafe extern "C" {
15526    pub fn BNRemoveAutoSegment(view: *mut BNBinaryView, start: u64, length: u64);
15527}
15528unsafe extern "C" {
15529    pub fn BNAddUserSegment(
15530        view: *mut BNBinaryView,
15531        start: u64,
15532        length: u64,
15533        dataOffset: u64,
15534        dataLength: u64,
15535        flags: u32,
15536    );
15537}
15538unsafe extern "C" {
15539    pub fn BNAddUserSegments(
15540        view: *mut BNBinaryView,
15541        segmentInfo: *const BNSegmentInfo,
15542        count: usize,
15543    );
15544}
15545unsafe extern "C" {
15546    pub fn BNRemoveUserSegment(view: *mut BNBinaryView, start: u64, length: u64);
15547}
15548unsafe extern "C" {
15549    pub fn BNGetSegments(view: *mut BNBinaryView, count: *mut usize) -> *mut *mut BNSegment;
15550}
15551unsafe extern "C" {
15552    pub fn BNFreeSegmentList(segments: *mut *mut BNSegment, count: usize);
15553}
15554unsafe extern "C" {
15555    pub fn BNGetSegmentAt(view: *mut BNBinaryView, addr: u64) -> *mut BNSegment;
15556}
15557unsafe extern "C" {
15558    pub fn BNGetAddressForDataOffset(view: *mut BNBinaryView, offset: u64, addr: *mut u64) -> bool;
15559}
15560unsafe extern "C" {
15561    pub fn BNGetComponentByGuid(
15562        view: *mut BNBinaryView,
15563        guid: *const ::std::os::raw::c_char,
15564    ) -> *mut BNComponent;
15565}
15566unsafe extern "C" {
15567    pub fn BNGetRootComponent(view: *mut BNBinaryView) -> *mut BNComponent;
15568}
15569unsafe extern "C" {
15570    pub fn BNCreateComponent(view: *mut BNBinaryView) -> *mut BNComponent;
15571}
15572unsafe extern "C" {
15573    pub fn BNCreateComponentWithParent(
15574        view: *mut BNBinaryView,
15575        parentGUID: *const ::std::os::raw::c_char,
15576    ) -> *mut BNComponent;
15577}
15578unsafe extern "C" {
15579    pub fn BNCreateComponentWithName(
15580        view: *mut BNBinaryView,
15581        name: *const ::std::os::raw::c_char,
15582    ) -> *mut BNComponent;
15583}
15584unsafe extern "C" {
15585    pub fn BNCreateComponentWithParentAndName(
15586        view: *mut BNBinaryView,
15587        parentGUID: *const ::std::os::raw::c_char,
15588        name: *const ::std::os::raw::c_char,
15589    ) -> *mut BNComponent;
15590}
15591unsafe extern "C" {
15592    pub fn BNGetComponentByPath(
15593        view: *mut BNBinaryView,
15594        path: *const ::std::os::raw::c_char,
15595    ) -> *mut BNComponent;
15596}
15597unsafe extern "C" {
15598    pub fn BNRemoveComponent(view: *mut BNBinaryView, component: *mut BNComponent) -> bool;
15599}
15600unsafe extern "C" {
15601    pub fn BNRemoveComponentByGuid(
15602        view: *mut BNBinaryView,
15603        guid: *const ::std::os::raw::c_char,
15604    ) -> bool;
15605}
15606unsafe extern "C" {
15607    pub fn BNAddAutoSection(
15608        view: *mut BNBinaryView,
15609        name: *const ::std::os::raw::c_char,
15610        start: u64,
15611        length: u64,
15612        semantics: BNSectionSemantics,
15613        type_: *const ::std::os::raw::c_char,
15614        align: u64,
15615        entrySize: u64,
15616        linkedSection: *const ::std::os::raw::c_char,
15617        infoSection: *const ::std::os::raw::c_char,
15618        infoData: u64,
15619    );
15620}
15621unsafe extern "C" {
15622    pub fn BNAddAutoSections(
15623        view: *mut BNBinaryView,
15624        sectionInfo: *const BNSectionInfo,
15625        count: usize,
15626    );
15627}
15628unsafe extern "C" {
15629    pub fn BNRemoveAutoSection(view: *mut BNBinaryView, name: *const ::std::os::raw::c_char);
15630}
15631unsafe extern "C" {
15632    pub fn BNAddUserSection(
15633        view: *mut BNBinaryView,
15634        name: *const ::std::os::raw::c_char,
15635        start: u64,
15636        length: u64,
15637        semantics: BNSectionSemantics,
15638        type_: *const ::std::os::raw::c_char,
15639        align: u64,
15640        entrySize: u64,
15641        linkedSection: *const ::std::os::raw::c_char,
15642        infoSection: *const ::std::os::raw::c_char,
15643        infoData: u64,
15644    );
15645}
15646unsafe extern "C" {
15647    pub fn BNAddUserSections(
15648        view: *mut BNBinaryView,
15649        sectionInfo: *const BNSectionInfo,
15650        count: usize,
15651    );
15652}
15653unsafe extern "C" {
15654    pub fn BNRemoveUserSection(view: *mut BNBinaryView, name: *const ::std::os::raw::c_char);
15655}
15656unsafe extern "C" {
15657    pub fn BNGetSections(view: *mut BNBinaryView, count: *mut usize) -> *mut *mut BNSection;
15658}
15659unsafe extern "C" {
15660    pub fn BNGetSectionsAt(
15661        view: *mut BNBinaryView,
15662        addr: u64,
15663        count: *mut usize,
15664    ) -> *mut *mut BNSection;
15665}
15666unsafe extern "C" {
15667    pub fn BNFreeSectionList(sections: *mut *mut BNSection, count: usize);
15668}
15669unsafe extern "C" {
15670    pub fn BNGetSectionByName(
15671        view: *mut BNBinaryView,
15672        name: *const ::std::os::raw::c_char,
15673    ) -> *mut BNSection;
15674}
15675unsafe extern "C" {
15676    pub fn BNGetUniqueSectionNames(
15677        view: *mut BNBinaryView,
15678        names: *mut *const ::std::os::raw::c_char,
15679        count: usize,
15680    ) -> *mut *mut ::std::os::raw::c_char;
15681}
15682unsafe extern "C" {
15683    pub fn BNGetAllocatedRanges(view: *mut BNBinaryView, count: *mut usize) -> *mut BNAddressRange;
15684}
15685unsafe extern "C" {
15686    pub fn BNGetMappedAddressRanges(
15687        view: *mut BNBinaryView,
15688        count: *mut usize,
15689    ) -> *mut BNAddressRange;
15690}
15691unsafe extern "C" {
15692    pub fn BNGetBackedAddressRanges(
15693        view: *mut BNBinaryView,
15694        count: *mut usize,
15695    ) -> *mut BNAddressRange;
15696}
15697unsafe extern "C" {
15698    pub fn BNFreeAddressRanges(ranges: *mut BNAddressRange);
15699}
15700unsafe extern "C" {
15701    pub fn BNGetNameSpaces(view: *mut BNBinaryView, count: *mut usize) -> *mut BNNameSpace;
15702}
15703unsafe extern "C" {
15704    pub fn BNFreeNameSpaceList(nameSpace: *mut BNNameSpace, count: usize);
15705}
15706unsafe extern "C" {
15707    pub fn BNGetExternalNameSpace() -> BNNameSpace;
15708}
15709unsafe extern "C" {
15710    pub fn BNGetInternalNameSpace() -> BNNameSpace;
15711}
15712unsafe extern "C" {
15713    pub fn BNFreeNameSpace(name: *mut BNNameSpace);
15714}
15715unsafe extern "C" {
15716    pub fn BNGetGlobalPointerValues(
15717        view: *mut BNBinaryView,
15718        count: *mut usize,
15719    ) -> *mut BNRegisterValueWithConfidenceAndRegister;
15720}
15721unsafe extern "C" {
15722    pub fn BNGetDefaultGlobalPointerValues(
15723        view: *mut BNBinaryView,
15724        count: *mut usize,
15725    ) -> *mut BNRegisterValueWithConfidenceAndRegister;
15726}
15727unsafe extern "C" {
15728    pub fn BNGetUserGlobalPointerValues(
15729        view: *mut BNBinaryView,
15730        count: *mut usize,
15731    ) -> *mut BNRegisterValueWithConfidenceAndRegister;
15732}
15733unsafe extern "C" {
15734    pub fn BNFreeRegisterValueWithConfidenceAndRegisterList(
15735        values: *mut BNRegisterValueWithConfidenceAndRegister,
15736    );
15737}
15738unsafe extern "C" {
15739    pub fn BNUserGlobalPointerValuesSet(view: *mut BNBinaryView) -> bool;
15740}
15741unsafe extern "C" {
15742    pub fn BNClearUserGlobalPointerValues(view: *mut BNBinaryView);
15743}
15744unsafe extern "C" {
15745    pub fn BNSetUserGlobalPointerValues(
15746        view: *mut BNBinaryView,
15747        values: *const BNRegisterValueWithConfidenceAndRegister,
15748        count: usize,
15749    );
15750}
15751unsafe extern "C" {
15752    pub fn BNStringifyUnicodeData(
15753        data: *mut BNBinaryView,
15754        arch: *mut BNArchitecture,
15755        buffer: *const BNDataBuffer,
15756        nullTerminates: bool,
15757        allowShortStrings: bool,
15758        string: *mut *mut ::std::os::raw::c_char,
15759        type_: *mut BNStringType,
15760    ) -> bool;
15761}
15762unsafe extern "C" {
15763    #[doc = " Raw binary data view"]
15764    pub fn BNCreateBinaryDataView(file: *mut BNFileMetadata) -> *mut BNBinaryView;
15765}
15766unsafe extern "C" {
15767    pub fn BNCreateBinaryDataViewFromBuffer(
15768        file: *mut BNFileMetadata,
15769        buf: *mut BNDataBuffer,
15770    ) -> *mut BNBinaryView;
15771}
15772unsafe extern "C" {
15773    pub fn BNCreateBinaryDataViewFromData(
15774        file: *mut BNFileMetadata,
15775        data: *const ::std::os::raw::c_void,
15776        len: usize,
15777    ) -> *mut BNBinaryView;
15778}
15779unsafe extern "C" {
15780    pub fn BNCreateBinaryDataViewFromFilename(
15781        file: *mut BNFileMetadata,
15782        filename: *const ::std::os::raw::c_char,
15783    ) -> *mut BNBinaryView;
15784}
15785unsafe extern "C" {
15786    pub fn BNCreateBinaryDataViewFromFile(
15787        file: *mut BNFileMetadata,
15788        accessor: *mut BNFileAccessor,
15789    ) -> *mut BNBinaryView;
15790}
15791unsafe extern "C" {
15792    #[doc = " Creation of new types of binary views"]
15793    pub fn BNCreateCustomBinaryView(
15794        name: *const ::std::os::raw::c_char,
15795        file: *mut BNFileMetadata,
15796        parent: *mut BNBinaryView,
15797        view: *mut BNCustomBinaryView,
15798    ) -> *mut BNBinaryView;
15799}
15800unsafe extern "C" {
15801    pub fn BNGetBinaryViewTypeByName(name: *const ::std::os::raw::c_char) -> *mut BNBinaryViewType;
15802}
15803unsafe extern "C" {
15804    pub fn BNGetBinaryViewTypes(count: *mut usize) -> *mut *mut BNBinaryViewType;
15805}
15806unsafe extern "C" {
15807    pub fn BNGetBinaryViewTypesForData(
15808        data: *mut BNBinaryView,
15809        count: *mut usize,
15810    ) -> *mut *mut BNBinaryViewType;
15811}
15812unsafe extern "C" {
15813    pub fn BNFreeBinaryViewTypeList(types: *mut *mut BNBinaryViewType);
15814}
15815unsafe extern "C" {
15816    pub fn BNGetBinaryViewTypeName(type_: *mut BNBinaryViewType) -> *mut ::std::os::raw::c_char;
15817}
15818unsafe extern "C" {
15819    pub fn BNGetBinaryViewTypeLongName(type_: *mut BNBinaryViewType)
15820    -> *mut ::std::os::raw::c_char;
15821}
15822unsafe extern "C" {
15823    pub fn BNIsBinaryViewTypeDeprecated(type_: *mut BNBinaryViewType) -> bool;
15824}
15825unsafe extern "C" {
15826    pub fn BNCreateBinaryViewOfType(
15827        type_: *mut BNBinaryViewType,
15828        data: *mut BNBinaryView,
15829    ) -> *mut BNBinaryView;
15830}
15831unsafe extern "C" {
15832    pub fn BNParseBinaryViewOfType(
15833        type_: *mut BNBinaryViewType,
15834        data: *mut BNBinaryView,
15835    ) -> *mut BNBinaryView;
15836}
15837unsafe extern "C" {
15838    pub fn BNIsBinaryViewTypeValidForData(
15839        type_: *mut BNBinaryViewType,
15840        data: *mut BNBinaryView,
15841    ) -> bool;
15842}
15843unsafe extern "C" {
15844    pub fn BNIsBinaryViewTypeForceLoadable(type_: *mut BNBinaryViewType) -> bool;
15845}
15846unsafe extern "C" {
15847    pub fn BNBinaryViewTypeHasNoInitialContent(type_: *mut BNBinaryViewType) -> bool;
15848}
15849unsafe extern "C" {
15850    pub fn BNGetBinaryViewDefaultLoadSettingsForData(
15851        type_: *mut BNBinaryViewType,
15852        data: *mut BNBinaryView,
15853    ) -> *mut BNSettings;
15854}
15855unsafe extern "C" {
15856    pub fn BNGetBinaryViewLoadSettingsForData(
15857        type_: *mut BNBinaryViewType,
15858        data: *mut BNBinaryView,
15859    ) -> *mut BNSettings;
15860}
15861unsafe extern "C" {
15862    pub fn BNRegisterBinaryViewType(
15863        name: *const ::std::os::raw::c_char,
15864        longName: *const ::std::os::raw::c_char,
15865        type_: *mut BNCustomBinaryViewType,
15866    ) -> *mut BNBinaryViewType;
15867}
15868unsafe extern "C" {
15869    pub fn BNRegisterArchitectureForViewType(
15870        type_: *mut BNBinaryViewType,
15871        id: u32,
15872        endian: BNEndianness,
15873        arch: *mut BNArchitecture,
15874    );
15875}
15876unsafe extern "C" {
15877    pub fn BNGetArchitectureForViewType(
15878        type_: *mut BNBinaryViewType,
15879        id: u32,
15880        endian: BNEndianness,
15881    ) -> *mut BNArchitecture;
15882}
15883unsafe extern "C" {
15884    pub fn BNRegisterPlatformForViewType(
15885        type_: *mut BNBinaryViewType,
15886        id: u32,
15887        arch: *mut BNArchitecture,
15888        platform: *mut BNPlatform,
15889    );
15890}
15891unsafe extern "C" {
15892    pub fn BNGetPlatformForViewType(
15893        type_: *mut BNBinaryViewType,
15894        id: u32,
15895        arch: *mut BNArchitecture,
15896    ) -> *mut BNPlatform;
15897}
15898unsafe extern "C" {
15899    pub fn BNRegisterDefaultPlatformForViewType(
15900        type_: *mut BNBinaryViewType,
15901        arch: *mut BNArchitecture,
15902        platform: *mut BNPlatform,
15903    );
15904}
15905unsafe extern "C" {
15906    #[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."]
15907    pub fn BNRegisterPlatformRecognizerForViewType(
15908        type_: *mut BNBinaryViewType,
15909        id: u64,
15910        endian: BNEndianness,
15911        callback: ::std::option::Option<
15912            unsafe extern "C" fn(
15913                ctx: *mut ::std::os::raw::c_void,
15914                view: *mut BNBinaryView,
15915                metadata: *mut BNMetadata,
15916            ) -> *mut BNPlatform,
15917        >,
15918        ctx: *mut ::std::os::raw::c_void,
15919    );
15920}
15921unsafe extern "C" {
15922    #[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."]
15923    pub fn BNRecognizePlatformForViewType(
15924        type_: *mut BNBinaryViewType,
15925        id: u64,
15926        endian: BNEndianness,
15927        view: *mut BNBinaryView,
15928        metadata: *mut BNMetadata,
15929    ) -> *mut BNPlatform;
15930}
15931unsafe extern "C" {
15932    pub fn BNRegisterBinaryViewEvent(
15933        type_: BNBinaryViewEventType,
15934        callback: ::std::option::Option<
15935            unsafe extern "C" fn(ctx: *mut ::std::os::raw::c_void, view: *mut BNBinaryView),
15936        >,
15937        ctx: *mut ::std::os::raw::c_void,
15938    );
15939}
15940unsafe extern "C" {
15941    #[doc = " Stream reader object"]
15942    pub fn BNCreateBinaryReader(view: *mut BNBinaryView) -> *mut BNBinaryReader;
15943}
15944unsafe extern "C" {
15945    pub fn BNFreeBinaryReader(stream: *mut BNBinaryReader);
15946}
15947unsafe extern "C" {
15948    pub fn BNGetBinaryReaderEndianness(stream: *mut BNBinaryReader) -> BNEndianness;
15949}
15950unsafe extern "C" {
15951    pub fn BNSetBinaryReaderEndianness(stream: *mut BNBinaryReader, endian: BNEndianness);
15952}
15953unsafe extern "C" {
15954    pub fn BNReadData(
15955        stream: *mut BNBinaryReader,
15956        dest: *mut ::std::os::raw::c_void,
15957        len: usize,
15958    ) -> bool;
15959}
15960unsafe extern "C" {
15961    pub fn BNRead8(stream: *mut BNBinaryReader, result: *mut u8) -> bool;
15962}
15963unsafe extern "C" {
15964    pub fn BNRead16(stream: *mut BNBinaryReader, result: *mut u16) -> bool;
15965}
15966unsafe extern "C" {
15967    pub fn BNRead32(stream: *mut BNBinaryReader, result: *mut u32) -> bool;
15968}
15969unsafe extern "C" {
15970    pub fn BNRead64(stream: *mut BNBinaryReader, result: *mut u64) -> bool;
15971}
15972unsafe extern "C" {
15973    pub fn BNReadLE16(stream: *mut BNBinaryReader, result: *mut u16) -> bool;
15974}
15975unsafe extern "C" {
15976    pub fn BNReadLE32(stream: *mut BNBinaryReader, result: *mut u32) -> bool;
15977}
15978unsafe extern "C" {
15979    pub fn BNReadLE64(stream: *mut BNBinaryReader, result: *mut u64) -> bool;
15980}
15981unsafe extern "C" {
15982    pub fn BNReadBE16(stream: *mut BNBinaryReader, result: *mut u16) -> bool;
15983}
15984unsafe extern "C" {
15985    pub fn BNReadBE32(stream: *mut BNBinaryReader, result: *mut u32) -> bool;
15986}
15987unsafe extern "C" {
15988    pub fn BNReadBE64(stream: *mut BNBinaryReader, result: *mut u64) -> bool;
15989}
15990unsafe extern "C" {
15991    pub fn BNReadPointer(
15992        view: *mut BNBinaryView,
15993        stream: *mut BNBinaryReader,
15994        result: *mut u64,
15995    ) -> bool;
15996}
15997unsafe extern "C" {
15998    pub fn BNGetReaderPosition(stream: *mut BNBinaryReader) -> u64;
15999}
16000unsafe extern "C" {
16001    pub fn BNSeekBinaryReader(stream: *mut BNBinaryReader, offset: u64);
16002}
16003unsafe extern "C" {
16004    pub fn BNSeekBinaryReaderRelative(stream: *mut BNBinaryReader, offset: i64);
16005}
16006unsafe extern "C" {
16007    pub fn BNGetBinaryReaderVirtualBase(stream: *mut BNBinaryReader) -> u64;
16008}
16009unsafe extern "C" {
16010    pub fn BNSetBinaryReaderVirtualBase(stream: *mut BNBinaryReader, base: u64);
16011}
16012unsafe extern "C" {
16013    pub fn BNIsEndOfFile(stream: *mut BNBinaryReader) -> bool;
16014}
16015unsafe extern "C" {
16016    #[doc = " Stream writer object"]
16017    pub fn BNCreateBinaryWriter(view: *mut BNBinaryView) -> *mut BNBinaryWriter;
16018}
16019unsafe extern "C" {
16020    pub fn BNFreeBinaryWriter(stream: *mut BNBinaryWriter);
16021}
16022unsafe extern "C" {
16023    pub fn BNGetBinaryWriterEndianness(stream: *mut BNBinaryWriter) -> BNEndianness;
16024}
16025unsafe extern "C" {
16026    pub fn BNSetBinaryWriterEndianness(stream: *mut BNBinaryWriter, endian: BNEndianness);
16027}
16028unsafe extern "C" {
16029    pub fn BNWriteData(
16030        stream: *mut BNBinaryWriter,
16031        src: *const ::std::os::raw::c_void,
16032        len: usize,
16033    ) -> bool;
16034}
16035unsafe extern "C" {
16036    pub fn BNWrite8(stream: *mut BNBinaryWriter, val: u8) -> bool;
16037}
16038unsafe extern "C" {
16039    pub fn BNWrite16(stream: *mut BNBinaryWriter, val: u16) -> bool;
16040}
16041unsafe extern "C" {
16042    pub fn BNWrite32(stream: *mut BNBinaryWriter, val: u32) -> bool;
16043}
16044unsafe extern "C" {
16045    pub fn BNWrite64(stream: *mut BNBinaryWriter, val: u64) -> bool;
16046}
16047unsafe extern "C" {
16048    pub fn BNWriteLE16(stream: *mut BNBinaryWriter, val: u16) -> bool;
16049}
16050unsafe extern "C" {
16051    pub fn BNWriteLE32(stream: *mut BNBinaryWriter, val: u32) -> bool;
16052}
16053unsafe extern "C" {
16054    pub fn BNWriteLE64(stream: *mut BNBinaryWriter, val: u64) -> bool;
16055}
16056unsafe extern "C" {
16057    pub fn BNWriteBE16(stream: *mut BNBinaryWriter, val: u16) -> bool;
16058}
16059unsafe extern "C" {
16060    pub fn BNWriteBE32(stream: *mut BNBinaryWriter, val: u32) -> bool;
16061}
16062unsafe extern "C" {
16063    pub fn BNWriteBE64(stream: *mut BNBinaryWriter, val: u64) -> bool;
16064}
16065unsafe extern "C" {
16066    pub fn BNGetWriterPosition(stream: *mut BNBinaryWriter) -> u64;
16067}
16068unsafe extern "C" {
16069    pub fn BNSeekBinaryWriter(stream: *mut BNBinaryWriter, offset: u64);
16070}
16071unsafe extern "C" {
16072    pub fn BNSeekBinaryWriterRelative(stream: *mut BNBinaryWriter, offset: i64);
16073}
16074unsafe extern "C" {
16075    #[doc = " Transforms"]
16076    pub fn BNGetTransformByName(name: *const ::std::os::raw::c_char) -> *mut BNTransform;
16077}
16078unsafe extern "C" {
16079    pub fn BNGetTransformTypeList(count: *mut usize) -> *mut *mut BNTransform;
16080}
16081unsafe extern "C" {
16082    pub fn BNFreeTransformTypeList(xforms: *mut *mut BNTransform);
16083}
16084unsafe extern "C" {
16085    pub fn BNRegisterTransformType(
16086        type_: BNTransformType,
16087        name: *const ::std::os::raw::c_char,
16088        longName: *const ::std::os::raw::c_char,
16089        group: *const ::std::os::raw::c_char,
16090        xform: *mut BNCustomTransform,
16091    ) -> *mut BNTransform;
16092}
16093unsafe extern "C" {
16094    pub fn BNRegisterTransformTypeWithCapabilities(
16095        type_: BNTransformType,
16096        capabilities: u32,
16097        name: *const ::std::os::raw::c_char,
16098        longName: *const ::std::os::raw::c_char,
16099        group: *const ::std::os::raw::c_char,
16100        xform: *mut BNCustomTransform,
16101    ) -> *mut BNTransform;
16102}
16103unsafe extern "C" {
16104    pub fn BNGetTransformType(xform: *mut BNTransform) -> BNTransformType;
16105}
16106unsafe extern "C" {
16107    pub fn BNGetTransformCapabilities(xform: *mut BNTransform) -> u32;
16108}
16109unsafe extern "C" {
16110    pub fn BNTransformSupportsDetection(xform: *mut BNTransform) -> bool;
16111}
16112unsafe extern "C" {
16113    pub fn BNTransformSupportsContext(xform: *mut BNTransform) -> bool;
16114}
16115unsafe extern "C" {
16116    pub fn BNGetTransformName(xform: *mut BNTransform) -> *mut ::std::os::raw::c_char;
16117}
16118unsafe extern "C" {
16119    pub fn BNGetTransformLongName(xform: *mut BNTransform) -> *mut ::std::os::raw::c_char;
16120}
16121unsafe extern "C" {
16122    pub fn BNGetTransformGroup(xform: *mut BNTransform) -> *mut ::std::os::raw::c_char;
16123}
16124unsafe extern "C" {
16125    pub fn BNGetTransformParameterList(
16126        xform: *mut BNTransform,
16127        count: *mut usize,
16128    ) -> *mut BNTransformParameterInfo;
16129}
16130unsafe extern "C" {
16131    pub fn BNFreeTransformParameterList(params: *mut BNTransformParameterInfo, count: usize);
16132}
16133unsafe extern "C" {
16134    pub fn BNDecode(
16135        xform: *mut BNTransform,
16136        input: *mut BNDataBuffer,
16137        output: *mut BNDataBuffer,
16138        params: *mut BNTransformParameter,
16139        paramCount: usize,
16140    ) -> bool;
16141}
16142unsafe extern "C" {
16143    pub fn BNEncode(
16144        xform: *mut BNTransform,
16145        input: *mut BNDataBuffer,
16146        output: *mut BNDataBuffer,
16147        params: *mut BNTransformParameter,
16148        paramCount: usize,
16149    ) -> bool;
16150}
16151unsafe extern "C" {
16152    pub fn BNDecodeWithContext(
16153        xform: *mut BNTransform,
16154        context: *mut BNTransformContext,
16155        params: *mut BNTransformParameter,
16156        paramCount: usize,
16157    ) -> bool;
16158}
16159unsafe extern "C" {
16160    pub fn BNCanDecode(xform: *mut BNTransform, input: *mut BNBinaryView) -> bool;
16161}
16162unsafe extern "C" {
16163    #[doc = " Transform Context"]
16164    pub fn BNNewTransformContextReference(
16165        context: *mut BNTransformContext,
16166    ) -> *mut BNTransformContext;
16167}
16168unsafe extern "C" {
16169    pub fn BNFreeTransformContext(context: *mut BNTransformContext);
16170}
16171unsafe extern "C" {
16172    pub fn BNTransformContextGetInput(context: *mut BNTransformContext) -> *mut BNBinaryView;
16173}
16174unsafe extern "C" {
16175    pub fn BNTransformContextGetFileName(
16176        context: *mut BNTransformContext,
16177    ) -> *mut ::std::os::raw::c_char;
16178}
16179unsafe extern "C" {
16180    pub fn BNTransformContextGetAvailableTransforms(
16181        context: *mut BNTransformContext,
16182        count: *mut usize,
16183    ) -> *mut *mut ::std::os::raw::c_char;
16184}
16185unsafe extern "C" {
16186    pub fn BNTransformContextGetTransformName(
16187        context: *mut BNTransformContext,
16188    ) -> *mut ::std::os::raw::c_char;
16189}
16190unsafe extern "C" {
16191    pub fn BNTransformContextSetTransformName(
16192        context: *mut BNTransformContext,
16193        transformName: *const ::std::os::raw::c_char,
16194    );
16195}
16196unsafe extern "C" {
16197    pub fn BNTransformContextSetTransformParameters(
16198        context: *mut BNTransformContext,
16199        params: *mut BNTransformParameter,
16200        paramCount: usize,
16201    );
16202}
16203unsafe extern "C" {
16204    pub fn BNTransformContextSetTransformParameter(
16205        context: *mut BNTransformContext,
16206        name: *const ::std::os::raw::c_char,
16207        data: *mut BNDataBuffer,
16208    );
16209}
16210unsafe extern "C" {
16211    pub fn BNTransformContextHasTransformParameter(
16212        context: *mut BNTransformContext,
16213        name: *const ::std::os::raw::c_char,
16214    ) -> bool;
16215}
16216unsafe extern "C" {
16217    pub fn BNTransformContextClearTransformParameter(
16218        context: *mut BNTransformContext,
16219        name: *const ::std::os::raw::c_char,
16220    );
16221}
16222unsafe extern "C" {
16223    pub fn BNTransformContextGetExtractionMessage(
16224        context: *mut BNTransformContext,
16225    ) -> *mut ::std::os::raw::c_char;
16226}
16227unsafe extern "C" {
16228    pub fn BNTransformContextGetExtractionResult(
16229        context: *mut BNTransformContext,
16230    ) -> BNTransformResult;
16231}
16232unsafe extern "C" {
16233    pub fn BNTransformContextGetTransformResult(
16234        context: *mut BNTransformContext,
16235    ) -> BNTransformResult;
16236}
16237unsafe extern "C" {
16238    pub fn BNTransformContextSetTransformResult(
16239        context: *mut BNTransformContext,
16240        result: BNTransformResult,
16241    );
16242}
16243unsafe extern "C" {
16244    pub fn BNTransformContextGetMetadata(context: *mut BNTransformContext) -> *mut BNMetadata;
16245}
16246unsafe extern "C" {
16247    pub fn BNTransformContextGetParent(context: *mut BNTransformContext)
16248    -> *mut BNTransformContext;
16249}
16250unsafe extern "C" {
16251    pub fn BNTransformContextGetChildCount(context: *mut BNTransformContext) -> usize;
16252}
16253unsafe extern "C" {
16254    pub fn BNTransformContextGetChildren(
16255        context: *mut BNTransformContext,
16256        count: *mut usize,
16257    ) -> *mut *mut BNTransformContext;
16258}
16259unsafe extern "C" {
16260    pub fn BNFreeTransformContextList(contexts: *mut *mut BNTransformContext, count: usize);
16261}
16262unsafe extern "C" {
16263    pub fn BNTransformContextGetChild(
16264        context: *mut BNTransformContext,
16265        filename: *const ::std::os::raw::c_char,
16266    ) -> *mut BNTransformContext;
16267}
16268unsafe extern "C" {
16269    pub fn BNTransformContextSetChild(
16270        context: *mut BNTransformContext,
16271        data: *mut BNDataBuffer,
16272        filename: *const ::std::os::raw::c_char,
16273        result: BNTransformResult,
16274        message: *const ::std::os::raw::c_char,
16275        filenameIsDescriptor: bool,
16276    ) -> *mut BNTransformContext;
16277}
16278unsafe extern "C" {
16279    pub fn BNTransformContextIsLeaf(context: *mut BNTransformContext) -> bool;
16280}
16281unsafe extern "C" {
16282    pub fn BNTransformContextIsRoot(context: *mut BNTransformContext) -> bool;
16283}
16284unsafe extern "C" {
16285    pub fn BNTransformContextGetAvailableFiles(
16286        context: *mut BNTransformContext,
16287        count: *mut usize,
16288    ) -> *mut *mut ::std::os::raw::c_char;
16289}
16290unsafe extern "C" {
16291    pub fn BNTransformContextSetAvailableFiles(
16292        context: *mut BNTransformContext,
16293        files: *mut *const ::std::os::raw::c_char,
16294        count: usize,
16295    );
16296}
16297unsafe extern "C" {
16298    pub fn BNTransformContextHasAvailableFiles(context: *mut BNTransformContext) -> bool;
16299}
16300unsafe extern "C" {
16301    pub fn BNTransformContextGetRequestedFiles(
16302        context: *mut BNTransformContext,
16303        count: *mut usize,
16304    ) -> *mut *mut ::std::os::raw::c_char;
16305}
16306unsafe extern "C" {
16307    pub fn BNTransformContextSetRequestedFiles(
16308        context: *mut BNTransformContext,
16309        files: *mut *const ::std::os::raw::c_char,
16310        count: usize,
16311    );
16312}
16313unsafe extern "C" {
16314    pub fn BNTransformContextHasRequestedFiles(context: *mut BNTransformContext) -> bool;
16315}
16316unsafe extern "C" {
16317    pub fn BNTransformContextIsDatabase(context: *mut BNTransformContext) -> bool;
16318}
16319unsafe extern "C" {
16320    pub fn BNTransformContextIsInteractive(context: *mut BNTransformContext) -> bool;
16321}
16322unsafe extern "C" {
16323    pub fn BNTransformContextGetSettings(context: *mut BNTransformContext) -> *mut BNSettings;
16324}
16325unsafe extern "C" {
16326    #[doc = " Transform Session"]
16327    pub fn BNCreateTransformSession(
16328        filename: *const ::std::os::raw::c_char,
16329        options: *const ::std::os::raw::c_char,
16330    ) -> *mut BNTransformSession;
16331}
16332unsafe extern "C" {
16333    pub fn BNCreateTransformSessionWithMode(
16334        filename: *const ::std::os::raw::c_char,
16335        mode: BNTransformSessionMode,
16336        options: *const ::std::os::raw::c_char,
16337    ) -> *mut BNTransformSession;
16338}
16339unsafe extern "C" {
16340    pub fn BNCreateTransformSessionFromBinaryView(
16341        initialView: *mut BNBinaryView,
16342        options: *const ::std::os::raw::c_char,
16343    ) -> *mut BNTransformSession;
16344}
16345unsafe extern "C" {
16346    pub fn BNCreateTransformSessionFromBinaryViewWithMode(
16347        initialView: *mut BNBinaryView,
16348        mode: BNTransformSessionMode,
16349        options: *const ::std::os::raw::c_char,
16350    ) -> *mut BNTransformSession;
16351}
16352unsafe extern "C" {
16353    pub fn BNCreateTransformSessionFromTransformContextWithMode(
16354        context: *mut BNTransformContext,
16355        mode: BNTransformSessionMode,
16356        options: *const ::std::os::raw::c_char,
16357    ) -> *mut BNTransformSession;
16358}
16359unsafe extern "C" {
16360    pub fn BNNewTransformSessionReference(
16361        session: *mut BNTransformSession,
16362    ) -> *mut BNTransformSession;
16363}
16364unsafe extern "C" {
16365    pub fn BNFreeTransformSession(session: *mut BNTransformSession);
16366}
16367unsafe extern "C" {
16368    pub fn BNTransformSessionSetInteractive(session: *mut BNTransformSession, interactive: bool);
16369}
16370unsafe extern "C" {
16371    pub fn BNTransformSessionGetCurrentView(session: *mut BNTransformSession) -> *mut BNBinaryView;
16372}
16373unsafe extern "C" {
16374    pub fn BNTransformSessionGetRootContext(
16375        session: *mut BNTransformSession,
16376    ) -> *mut BNTransformContext;
16377}
16378unsafe extern "C" {
16379    pub fn BNTransformSessionGetCurrentContext(
16380        session: *mut BNTransformSession,
16381    ) -> *mut BNTransformContext;
16382}
16383unsafe extern "C" {
16384    pub fn BNTransformSessionProcessFrom(
16385        session: *mut BNTransformSession,
16386        context: *mut BNTransformContext,
16387    ) -> bool;
16388}
16389unsafe extern "C" {
16390    pub fn BNTransformSessionProcess(session: *mut BNTransformSession) -> bool;
16391}
16392unsafe extern "C" {
16393    pub fn BNTransformSessionHasAnyStages(session: *mut BNTransformSession) -> bool;
16394}
16395unsafe extern "C" {
16396    pub fn BNTransformSessionHasSinglePath(session: *mut BNTransformSession) -> bool;
16397}
16398unsafe extern "C" {
16399    pub fn BNTransformSessionGetSelectedContexts(
16400        session: *mut BNTransformSession,
16401        count: *mut usize,
16402    ) -> *mut *mut BNTransformContext;
16403}
16404unsafe extern "C" {
16405    pub fn BNTransformSessionSetSelectedContexts(
16406        session: *mut BNTransformSession,
16407        contexts: *mut *mut BNTransformContext,
16408        count: usize,
16409    );
16410}
16411unsafe extern "C" {
16412    #[doc = " Architectures"]
16413    pub fn BNGetArchitectureByName(name: *const ::std::os::raw::c_char) -> *mut BNArchitecture;
16414}
16415unsafe extern "C" {
16416    pub fn BNGetArchitectureList(count: *mut usize) -> *mut *mut BNArchitecture;
16417}
16418unsafe extern "C" {
16419    pub fn BNFreeArchitectureList(archs: *mut *mut BNArchitecture);
16420}
16421unsafe extern "C" {
16422    pub fn BNRegisterArchitecture(
16423        name: *const ::std::os::raw::c_char,
16424        arch: *mut BNCustomArchitecture,
16425    ) -> *mut BNArchitecture;
16426}
16427unsafe extern "C" {
16428    pub fn BNRegisterArchitectureExtension(
16429        name: *const ::std::os::raw::c_char,
16430        base: *mut BNArchitecture,
16431        arch: *mut BNCustomArchitecture,
16432    ) -> *mut BNArchitecture;
16433}
16434unsafe extern "C" {
16435    pub fn BNAddArchitectureRedirection(
16436        arch: *mut BNArchitecture,
16437        from: *mut BNArchitecture,
16438        to: *mut BNArchitecture,
16439    );
16440}
16441unsafe extern "C" {
16442    pub fn BNRegisterArchitectureHook(
16443        base: *mut BNArchitecture,
16444        arch: *mut BNCustomArchitecture,
16445    ) -> *mut BNArchitecture;
16446}
16447unsafe extern "C" {
16448    pub fn BNFinalizeArchitectureHook(base: *mut BNArchitecture);
16449}
16450unsafe extern "C" {
16451    pub fn BNGetNativeTypeParserArchitecture() -> *mut BNArchitecture;
16452}
16453unsafe extern "C" {
16454    pub fn BNGetArchitectureName(arch: *mut BNArchitecture) -> *mut ::std::os::raw::c_char;
16455}
16456unsafe extern "C" {
16457    pub fn BNGetArchitectureEndianness(arch: *mut BNArchitecture) -> BNEndianness;
16458}
16459unsafe extern "C" {
16460    pub fn BNGetArchitectureAddressSize(arch: *mut BNArchitecture) -> usize;
16461}
16462unsafe extern "C" {
16463    pub fn BNGetArchitectureDefaultIntegerSize(arch: *mut BNArchitecture) -> usize;
16464}
16465unsafe extern "C" {
16466    pub fn BNGetArchitectureInstructionAlignment(arch: *mut BNArchitecture) -> usize;
16467}
16468unsafe extern "C" {
16469    pub fn BNGetArchitectureLinearSweepInitialAlignment(arch: *mut BNArchitecture) -> usize;
16470}
16471unsafe extern "C" {
16472    pub fn BNGetArchitectureLinearSweepAnalysisCapabilities(arch: *mut BNArchitecture) -> u32;
16473}
16474unsafe extern "C" {
16475    pub fn BNGetArchitectureMaxInstructionLength(arch: *mut BNArchitecture) -> usize;
16476}
16477unsafe extern "C" {
16478    pub fn BNGetArchitectureOpcodeDisplayLength(arch: *mut BNArchitecture) -> usize;
16479}
16480unsafe extern "C" {
16481    pub fn BNGetAssociatedArchitectureByAddress(
16482        arch: *mut BNArchitecture,
16483        addr: *mut u64,
16484    ) -> *mut BNArchitecture;
16485}
16486unsafe extern "C" {
16487    pub fn BNGetInstructionInfo(
16488        arch: *mut BNArchitecture,
16489        data: *const u8,
16490        addr: u64,
16491        maxLen: usize,
16492        result: *mut BNInstructionInfo,
16493    ) -> bool;
16494}
16495unsafe extern "C" {
16496    pub fn BNGetInstructionText(
16497        arch: *mut BNArchitecture,
16498        data: *const u8,
16499        addr: u64,
16500        len: *mut usize,
16501        result: *mut *mut BNInstructionTextToken,
16502        count: *mut usize,
16503    ) -> bool;
16504}
16505unsafe extern "C" {
16506    pub fn BNGetInstructionTextWithContext(
16507        arch: *mut BNArchitecture,
16508        data: *const u8,
16509        addr: u64,
16510        len: *mut usize,
16511        context: *mut ::std::os::raw::c_void,
16512        result: *mut *mut BNInstructionTextToken,
16513        count: *mut usize,
16514    ) -> bool;
16515}
16516unsafe extern "C" {
16517    pub fn BNGetInstructionLowLevelIL(
16518        arch: *mut BNArchitecture,
16519        data: *const u8,
16520        addr: u64,
16521        len: *mut usize,
16522        il: *mut BNLowLevelILFunction,
16523    ) -> bool;
16524}
16525unsafe extern "C" {
16526    pub fn BNFreeInstructionText(tokens: *mut BNInstructionTextToken, count: usize);
16527}
16528unsafe extern "C" {
16529    pub fn BNArchitectureSetDefaultAnalyzeBasicBlocksCallback(
16530        callback: *mut ::std::os::raw::c_void,
16531    ) -> bool;
16532}
16533unsafe extern "C" {
16534    pub fn BNArchitectureDefaultAnalyzeBasicBlocks(
16535        function: *mut BNFunction,
16536        context: *mut BNBasicBlockAnalysisContext,
16537    );
16538}
16539unsafe extern "C" {
16540    pub fn BNArchitectureAnalyzeBasicBlocks(
16541        arch: *mut BNArchitecture,
16542        function: *mut BNFunction,
16543        context: *mut BNBasicBlockAnalysisContext,
16544    );
16545}
16546unsafe extern "C" {
16547    pub fn BNArchitectureSetDefaultLiftFunctionCallback(
16548        callback: *mut ::std::os::raw::c_void,
16549    ) -> bool;
16550}
16551unsafe extern "C" {
16552    pub fn BNArchitectureDefaultLiftFunction(
16553        function: *mut BNLowLevelILFunction,
16554        context: *mut BNFunctionLifterContext,
16555    ) -> bool;
16556}
16557unsafe extern "C" {
16558    pub fn BNArchitectureLiftFunction(
16559        arch: *mut BNArchitecture,
16560        function: *mut BNLowLevelILFunction,
16561        context: *mut BNFunctionLifterContext,
16562    ) -> bool;
16563}
16564unsafe extern "C" {
16565    pub fn BNArchitectureFreeFunctionArchContext(
16566        arch: *mut BNArchitecture,
16567        context: *mut ::std::os::raw::c_void,
16568    );
16569}
16570unsafe extern "C" {
16571    pub fn BNFreeInstructionTextLines(lines: *mut BNInstructionTextLine, count: usize);
16572}
16573unsafe extern "C" {
16574    pub fn BNGetArchitectureRegisterName(
16575        arch: *mut BNArchitecture,
16576        reg: u32,
16577    ) -> *mut ::std::os::raw::c_char;
16578}
16579unsafe extern "C" {
16580    pub fn BNGetArchitectureFlagName(
16581        arch: *mut BNArchitecture,
16582        flag: u32,
16583    ) -> *mut ::std::os::raw::c_char;
16584}
16585unsafe extern "C" {
16586    pub fn BNGetArchitectureFlagWriteTypeName(
16587        arch: *mut BNArchitecture,
16588        flags: u32,
16589    ) -> *mut ::std::os::raw::c_char;
16590}
16591unsafe extern "C" {
16592    pub fn BNGetArchitectureSemanticFlagClassName(
16593        arch: *mut BNArchitecture,
16594        semClass: u32,
16595    ) -> *mut ::std::os::raw::c_char;
16596}
16597unsafe extern "C" {
16598    pub fn BNGetArchitectureSemanticFlagGroupName(
16599        arch: *mut BNArchitecture,
16600        semGroup: u32,
16601    ) -> *mut ::std::os::raw::c_char;
16602}
16603unsafe extern "C" {
16604    pub fn BNGetFullWidthArchitectureRegisters(
16605        arch: *mut BNArchitecture,
16606        count: *mut usize,
16607    ) -> *mut u32;
16608}
16609unsafe extern "C" {
16610    pub fn BNGetAllArchitectureRegisters(arch: *mut BNArchitecture, count: *mut usize) -> *mut u32;
16611}
16612unsafe extern "C" {
16613    pub fn BNGetAllArchitectureFlags(arch: *mut BNArchitecture, count: *mut usize) -> *mut u32;
16614}
16615unsafe extern "C" {
16616    pub fn BNGetAllArchitectureFlagWriteTypes(
16617        arch: *mut BNArchitecture,
16618        count: *mut usize,
16619    ) -> *mut u32;
16620}
16621unsafe extern "C" {
16622    pub fn BNGetAllArchitectureSemanticFlagClasses(
16623        arch: *mut BNArchitecture,
16624        count: *mut usize,
16625    ) -> *mut u32;
16626}
16627unsafe extern "C" {
16628    pub fn BNGetAllArchitectureSemanticFlagGroups(
16629        arch: *mut BNArchitecture,
16630        count: *mut usize,
16631    ) -> *mut u32;
16632}
16633unsafe extern "C" {
16634    pub fn BNGetArchitectureFlagRole(
16635        arch: *mut BNArchitecture,
16636        flag: u32,
16637        semClass: u32,
16638    ) -> BNFlagRole;
16639}
16640unsafe extern "C" {
16641    pub fn BNGetArchitectureFlagsRequiredForFlagCondition(
16642        arch: *mut BNArchitecture,
16643        cond: BNLowLevelILFlagCondition,
16644        semClass: u32,
16645        count: *mut usize,
16646    ) -> *mut u32;
16647}
16648unsafe extern "C" {
16649    pub fn BNGetArchitectureFlagsRequiredForSemanticFlagGroup(
16650        arch: *mut BNArchitecture,
16651        semGroup: u32,
16652        count: *mut usize,
16653    ) -> *mut u32;
16654}
16655unsafe extern "C" {
16656    pub fn BNGetArchitectureFlagConditionsForSemanticFlagGroup(
16657        arch: *mut BNArchitecture,
16658        semGroup: u32,
16659        count: *mut usize,
16660    ) -> *mut BNFlagConditionForSemanticClass;
16661}
16662unsafe extern "C" {
16663    pub fn BNFreeFlagConditionsForSemanticFlagGroup(
16664        conditions: *mut BNFlagConditionForSemanticClass,
16665    );
16666}
16667unsafe extern "C" {
16668    pub fn BNGetArchitectureFlagsWrittenByFlagWriteType(
16669        arch: *mut BNArchitecture,
16670        writeType: u32,
16671        count: *mut usize,
16672    ) -> *mut u32;
16673}
16674unsafe extern "C" {
16675    pub fn BNGetArchitectureSemanticClassForFlagWriteType(
16676        arch: *mut BNArchitecture,
16677        writeType: u32,
16678    ) -> u32;
16679}
16680unsafe extern "C" {
16681    pub fn BNGetArchitectureFlagWriteLowLevelIL(
16682        arch: *mut BNArchitecture,
16683        op: BNLowLevelILOperation,
16684        size: usize,
16685        flagWriteType: u32,
16686        flag: u32,
16687        operands: *mut BNRegisterOrConstant,
16688        operandCount: usize,
16689        il: *mut BNLowLevelILFunction,
16690    ) -> usize;
16691}
16692unsafe extern "C" {
16693    pub fn BNGetDefaultArchitectureFlagWriteLowLevelIL(
16694        arch: *mut BNArchitecture,
16695        op: BNLowLevelILOperation,
16696        size: usize,
16697        role: BNFlagRole,
16698        operands: *mut BNRegisterOrConstant,
16699        operandCount: usize,
16700        il: *mut BNLowLevelILFunction,
16701    ) -> usize;
16702}
16703unsafe extern "C" {
16704    pub fn BNGetArchitectureFlagConditionLowLevelIL(
16705        arch: *mut BNArchitecture,
16706        cond: BNLowLevelILFlagCondition,
16707        semClass: u32,
16708        il: *mut BNLowLevelILFunction,
16709    ) -> usize;
16710}
16711unsafe extern "C" {
16712    pub fn BNGetDefaultArchitectureFlagConditionLowLevelIL(
16713        arch: *mut BNArchitecture,
16714        cond: BNLowLevelILFlagCondition,
16715        semClass: u32,
16716        il: *mut BNLowLevelILFunction,
16717    ) -> usize;
16718}
16719unsafe extern "C" {
16720    pub fn BNGetArchitectureSemanticFlagGroupLowLevelIL(
16721        arch: *mut BNArchitecture,
16722        semGroup: u32,
16723        il: *mut BNLowLevelILFunction,
16724    ) -> usize;
16725}
16726unsafe extern "C" {
16727    pub fn BNGetModifiedArchitectureRegistersOnWrite(
16728        arch: *mut BNArchitecture,
16729        reg: u32,
16730        count: *mut usize,
16731    ) -> *mut u32;
16732}
16733unsafe extern "C" {
16734    pub fn BNFreeRegisterList(regs: *mut u32);
16735}
16736unsafe extern "C" {
16737    pub fn BNGetArchitectureRegisterInfo(arch: *mut BNArchitecture, reg: u32) -> BNRegisterInfo;
16738}
16739unsafe extern "C" {
16740    pub fn BNGetArchitectureStackPointerRegister(arch: *mut BNArchitecture) -> u32;
16741}
16742unsafe extern "C" {
16743    pub fn BNGetArchitectureLinkRegister(arch: *mut BNArchitecture) -> u32;
16744}
16745unsafe extern "C" {
16746    pub fn BNGetArchitectureGlobalRegisters(
16747        arch: *mut BNArchitecture,
16748        count: *mut usize,
16749    ) -> *mut u32;
16750}
16751unsafe extern "C" {
16752    pub fn BNIsArchitectureGlobalRegister(arch: *mut BNArchitecture, reg: u32) -> bool;
16753}
16754unsafe extern "C" {
16755    pub fn BNGetArchitectureSystemRegisters(
16756        arch: *mut BNArchitecture,
16757        count: *mut usize,
16758    ) -> *mut u32;
16759}
16760unsafe extern "C" {
16761    pub fn BNIsArchitectureSystemRegister(arch: *mut BNArchitecture, reg: u32) -> bool;
16762}
16763unsafe extern "C" {
16764    pub fn BNGetArchitectureRegisterByName(
16765        arch: *mut BNArchitecture,
16766        name: *const ::std::os::raw::c_char,
16767    ) -> u32;
16768}
16769unsafe extern "C" {
16770    pub fn BNGetArchitectureRegisterStackName(
16771        arch: *mut BNArchitecture,
16772        regStack: u32,
16773    ) -> *mut ::std::os::raw::c_char;
16774}
16775unsafe extern "C" {
16776    pub fn BNGetAllArchitectureRegisterStacks(
16777        arch: *mut BNArchitecture,
16778        count: *mut usize,
16779    ) -> *mut u32;
16780}
16781unsafe extern "C" {
16782    pub fn BNGetArchitectureRegisterStackInfo(
16783        arch: *mut BNArchitecture,
16784        regStack: u32,
16785    ) -> BNRegisterStackInfo;
16786}
16787unsafe extern "C" {
16788    pub fn BNGetArchitectureRegisterStackForRegister(arch: *mut BNArchitecture, reg: u32) -> u32;
16789}
16790unsafe extern "C" {
16791    pub fn BNGetArchitectureIntrinsicClass(
16792        arch: *mut BNArchitecture,
16793        intrinsic: u32,
16794    ) -> BNIntrinsicClass;
16795}
16796unsafe extern "C" {
16797    pub fn BNGetArchitectureIntrinsicName(
16798        arch: *mut BNArchitecture,
16799        intrinsic: u32,
16800    ) -> *mut ::std::os::raw::c_char;
16801}
16802unsafe extern "C" {
16803    pub fn BNGetAllArchitectureIntrinsics(arch: *mut BNArchitecture, count: *mut usize)
16804    -> *mut u32;
16805}
16806unsafe extern "C" {
16807    pub fn BNGetArchitectureIntrinsicInputs(
16808        arch: *mut BNArchitecture,
16809        intrinsic: u32,
16810        count: *mut usize,
16811    ) -> *mut BNNameAndType;
16812}
16813unsafe extern "C" {
16814    pub fn BNFreeNameAndTypeList(nt: *mut BNNameAndType, count: usize);
16815}
16816unsafe extern "C" {
16817    pub fn BNGetArchitectureIntrinsicOutputs(
16818        arch: *mut BNArchitecture,
16819        intrinsic: u32,
16820        count: *mut usize,
16821    ) -> *mut BNTypeWithConfidence;
16822}
16823unsafe extern "C" {
16824    pub fn BNFreeOutputTypeList(types: *mut BNTypeWithConfidence, count: usize);
16825}
16826unsafe extern "C" {
16827    pub fn BNCanArchitectureAssemble(arch: *mut BNArchitecture) -> bool;
16828}
16829unsafe extern "C" {
16830    pub fn BNAssemble(
16831        arch: *mut BNArchitecture,
16832        code: *const ::std::os::raw::c_char,
16833        addr: u64,
16834        result: *mut BNDataBuffer,
16835        errors: *mut *mut ::std::os::raw::c_char,
16836    ) -> bool;
16837}
16838unsafe extern "C" {
16839    pub fn BNIsArchitectureNeverBranchPatchAvailable(
16840        arch: *mut BNArchitecture,
16841        data: *const u8,
16842        addr: u64,
16843        len: usize,
16844    ) -> bool;
16845}
16846unsafe extern "C" {
16847    pub fn BNIsArchitectureAlwaysBranchPatchAvailable(
16848        arch: *mut BNArchitecture,
16849        data: *const u8,
16850        addr: u64,
16851        len: usize,
16852    ) -> bool;
16853}
16854unsafe extern "C" {
16855    pub fn BNIsArchitectureInvertBranchPatchAvailable(
16856        arch: *mut BNArchitecture,
16857        data: *const u8,
16858        addr: u64,
16859        len: usize,
16860    ) -> bool;
16861}
16862unsafe extern "C" {
16863    pub fn BNIsArchitectureSkipAndReturnZeroPatchAvailable(
16864        arch: *mut BNArchitecture,
16865        data: *const u8,
16866        addr: u64,
16867        len: usize,
16868    ) -> bool;
16869}
16870unsafe extern "C" {
16871    pub fn BNIsArchitectureSkipAndReturnValuePatchAvailable(
16872        arch: *mut BNArchitecture,
16873        data: *const u8,
16874        addr: u64,
16875        len: usize,
16876    ) -> bool;
16877}
16878unsafe extern "C" {
16879    pub fn BNArchitectureConvertToNop(
16880        arch: *mut BNArchitecture,
16881        data: *mut u8,
16882        addr: u64,
16883        len: usize,
16884    ) -> bool;
16885}
16886unsafe extern "C" {
16887    pub fn BNArchitectureAlwaysBranch(
16888        arch: *mut BNArchitecture,
16889        data: *mut u8,
16890        addr: u64,
16891        len: usize,
16892    ) -> bool;
16893}
16894unsafe extern "C" {
16895    pub fn BNArchitectureInvertBranch(
16896        arch: *mut BNArchitecture,
16897        data: *mut u8,
16898        addr: u64,
16899        len: usize,
16900    ) -> bool;
16901}
16902unsafe extern "C" {
16903    pub fn BNArchitectureSkipAndReturnValue(
16904        arch: *mut BNArchitecture,
16905        data: *mut u8,
16906        addr: u64,
16907        len: usize,
16908        value: u64,
16909    ) -> bool;
16910}
16911unsafe extern "C" {
16912    pub fn BNRegisterArchitectureFunctionRecognizer(
16913        arch: *mut BNArchitecture,
16914        rec: *mut BNFunctionRecognizer,
16915    );
16916}
16917unsafe extern "C" {
16918    pub fn BNArchitectureRegisterRelocationHandler(
16919        arch: *mut BNArchitecture,
16920        viewName: *const ::std::os::raw::c_char,
16921        handler: *mut BNRelocationHandler,
16922    );
16923}
16924unsafe extern "C" {
16925    pub fn BNCreateRelocationHandler(
16926        handler: *mut BNCustomRelocationHandler,
16927    ) -> *mut BNRelocationHandler;
16928}
16929unsafe extern "C" {
16930    pub fn BNArchitectureGetRelocationHandler(
16931        arch: *mut BNArchitecture,
16932        viewName: *const ::std::os::raw::c_char,
16933    ) -> *mut BNRelocationHandler;
16934}
16935unsafe extern "C" {
16936    pub fn BNNewRelocationHandlerReference(
16937        handler: *mut BNRelocationHandler,
16938    ) -> *mut BNRelocationHandler;
16939}
16940unsafe extern "C" {
16941    pub fn BNFreeRelocationHandler(handler: *mut BNRelocationHandler);
16942}
16943unsafe extern "C" {
16944    pub fn BNRelocationHandlerGetRelocationInfo(
16945        handler: *mut BNRelocationHandler,
16946        data: *mut BNBinaryView,
16947        arch: *mut BNArchitecture,
16948        info: *mut BNRelocationInfo,
16949        infoCount: usize,
16950    ) -> bool;
16951}
16952unsafe extern "C" {
16953    pub fn BNRelocationHandlerApplyRelocation(
16954        handler: *mut BNRelocationHandler,
16955        view: *mut BNBinaryView,
16956        arch: *mut BNArchitecture,
16957        reloc: *mut BNRelocation,
16958        dest: *mut u8,
16959        len: usize,
16960    ) -> bool;
16961}
16962unsafe extern "C" {
16963    pub fn BNRelocationHandlerDefaultApplyRelocation(
16964        handler: *mut BNRelocationHandler,
16965        view: *mut BNBinaryView,
16966        arch: *mut BNArchitecture,
16967        reloc: *mut BNRelocation,
16968        dest: *mut u8,
16969        len: usize,
16970    ) -> bool;
16971}
16972unsafe extern "C" {
16973    pub fn BNRelocationHandlerGetOperandForExternalRelocation(
16974        handler: *mut BNRelocationHandler,
16975        data: *const u8,
16976        addr: u64,
16977        length: usize,
16978        il: *const BNLowLevelILFunction,
16979        relocation: *mut BNRelocation,
16980    ) -> usize;
16981}
16982unsafe extern "C" {
16983    #[doc = " Analysis"]
16984    pub fn BNAddAnalysisOption(view: *mut BNBinaryView, name: *const ::std::os::raw::c_char);
16985}
16986unsafe extern "C" {
16987    pub fn BNAddFunctionForAnalysis(
16988        view: *mut BNBinaryView,
16989        platform: *mut BNPlatform,
16990        addr: u64,
16991        autoDiscovered: bool,
16992        type_: *mut BNType,
16993    ) -> *mut BNFunction;
16994}
16995unsafe extern "C" {
16996    pub fn BNAddEntryPointForAnalysis(
16997        view: *mut BNBinaryView,
16998        platform: *mut BNPlatform,
16999        addr: u64,
17000    );
17001}
17002unsafe extern "C" {
17003    pub fn BNRemoveAnalysisFunction(
17004        view: *mut BNBinaryView,
17005        func: *mut BNFunction,
17006        updateRefs: bool,
17007    );
17008}
17009unsafe extern "C" {
17010    pub fn BNCreateUserFunction(
17011        view: *mut BNBinaryView,
17012        platform: *mut BNPlatform,
17013        addr: u64,
17014    ) -> *mut BNFunction;
17015}
17016unsafe extern "C" {
17017    pub fn BNRemoveUserFunction(view: *mut BNBinaryView, func: *mut BNFunction);
17018}
17019unsafe extern "C" {
17020    pub fn BNHasInitialAnalysis(view: *mut BNBinaryView) -> bool;
17021}
17022unsafe extern "C" {
17023    pub fn BNSetAnalysisHold(view: *mut BNBinaryView, enable: bool);
17024}
17025unsafe extern "C" {
17026    pub fn BNGetFunctionAnalysisUpdateDisabled(view: *mut BNBinaryView) -> bool;
17027}
17028unsafe extern "C" {
17029    pub fn BNSetFunctionAnalysisUpdateDisabled(view: *mut BNBinaryView, disabled: bool);
17030}
17031unsafe extern "C" {
17032    pub fn BNUpdateAnalysisAndWait(view: *mut BNBinaryView);
17033}
17034unsafe extern "C" {
17035    pub fn BNUpdateAnalysis(view: *mut BNBinaryView);
17036}
17037unsafe extern "C" {
17038    pub fn BNAbortAnalysis(view: *mut BNBinaryView);
17039}
17040unsafe extern "C" {
17041    pub fn BNAnalysisIsAborted(view: *mut BNBinaryView) -> bool;
17042}
17043unsafe extern "C" {
17044    pub fn BNIsFunctionUpdateNeeded(func: *mut BNFunction) -> bool;
17045}
17046unsafe extern "C" {
17047    pub fn BNRequestAdvancedFunctionAnalysisData(func: *mut BNFunction);
17048}
17049unsafe extern "C" {
17050    pub fn BNReleaseAdvancedFunctionAnalysisData(func: *mut BNFunction);
17051}
17052unsafe extern "C" {
17053    pub fn BNReleaseAdvancedFunctionAnalysisDataMultiple(func: *mut BNFunction, count: usize);
17054}
17055unsafe extern "C" {
17056    pub fn BNNewFunctionReference(func: *mut BNFunction) -> *mut BNFunction;
17057}
17058unsafe extern "C" {
17059    pub fn BNFreeFunction(func: *mut BNFunction);
17060}
17061unsafe extern "C" {
17062    pub fn BNGetAnalysisFunctionList(
17063        view: *mut BNBinaryView,
17064        count: *mut usize,
17065    ) -> *mut *mut BNFunction;
17066}
17067unsafe extern "C" {
17068    pub fn BNFreeFunctionList(funcs: *mut *mut BNFunction, count: usize);
17069}
17070unsafe extern "C" {
17071    pub fn BNHasFunctions(view: *mut BNBinaryView) -> bool;
17072}
17073unsafe extern "C" {
17074    pub fn BNHasSymbols(view: *mut BNBinaryView) -> bool;
17075}
17076unsafe extern "C" {
17077    pub fn BNHasDataVariables(view: *mut BNBinaryView) -> bool;
17078}
17079unsafe extern "C" {
17080    pub fn BNGetAnalysisFunction(
17081        view: *mut BNBinaryView,
17082        platform: *mut BNPlatform,
17083        addr: u64,
17084    ) -> *mut BNFunction;
17085}
17086unsafe extern "C" {
17087    pub fn BNGetRecentAnalysisFunctionForAddress(
17088        view: *mut BNBinaryView,
17089        addr: u64,
17090    ) -> *mut BNFunction;
17091}
17092unsafe extern "C" {
17093    pub fn BNGetAnalysisFunctionsForAddress(
17094        view: *mut BNBinaryView,
17095        addr: u64,
17096        count: *mut usize,
17097    ) -> *mut *mut BNFunction;
17098}
17099unsafe extern "C" {
17100    pub fn BNGetAnalysisFunctionsContainingAddress(
17101        view: *mut BNBinaryView,
17102        addr: u64,
17103        count: *mut usize,
17104    ) -> *mut *mut BNFunction;
17105}
17106unsafe extern "C" {
17107    pub fn BNGetAnalysisEntryPoint(view: *mut BNBinaryView) -> *mut BNFunction;
17108}
17109unsafe extern "C" {
17110    pub fn BNGetAllEntryFunctions(
17111        view: *mut BNBinaryView,
17112        count: *mut usize,
17113    ) -> *mut *mut BNFunction;
17114}
17115unsafe extern "C" {
17116    pub fn BNAddToEntryFunctions(view: *mut BNBinaryView, func: *mut BNFunction);
17117}
17118unsafe extern "C" {
17119    pub fn BNGetGlobalCommentForAddress(
17120        view: *mut BNBinaryView,
17121        addr: u64,
17122    ) -> *mut ::std::os::raw::c_char;
17123}
17124unsafe extern "C" {
17125    pub fn BNGetGlobalCommentedAddresses(view: *mut BNBinaryView, count: *mut usize) -> *mut u64;
17126}
17127unsafe extern "C" {
17128    pub fn BNSetGlobalCommentForAddress(
17129        view: *mut BNBinaryView,
17130        addr: u64,
17131        comment: *const ::std::os::raw::c_char,
17132    );
17133}
17134unsafe extern "C" {
17135    pub fn BNGetFunctionData(func: *mut BNFunction) -> *mut BNBinaryView;
17136}
17137unsafe extern "C" {
17138    pub fn BNGetFunctionArchitecture(func: *mut BNFunction) -> *mut BNArchitecture;
17139}
17140unsafe extern "C" {
17141    pub fn BNGetFunctionPlatform(func: *mut BNFunction) -> *mut BNPlatform;
17142}
17143unsafe extern "C" {
17144    pub fn BNGetFunctionStart(func: *mut BNFunction) -> u64;
17145}
17146unsafe extern "C" {
17147    pub fn BNGetFunctionSymbol(func: *mut BNFunction) -> *mut BNSymbol;
17148}
17149unsafe extern "C" {
17150    pub fn BNWasFunctionAutomaticallyDiscovered(func: *mut BNFunction) -> bool;
17151}
17152unsafe extern "C" {
17153    pub fn BNFunctionHasUserAnnotations(func: *mut BNFunction) -> bool;
17154}
17155unsafe extern "C" {
17156    pub fn BNCanFunctionReturn(func: *mut BNFunction) -> BNBoolWithConfidence;
17157}
17158unsafe extern "C" {
17159    pub fn BNIsFunctionPure(func: *mut BNFunction) -> BNBoolWithConfidence;
17160}
17161unsafe extern "C" {
17162    pub fn BNSetFunctionAutoType(func: *mut BNFunction, type_: *mut BNType);
17163}
17164unsafe extern "C" {
17165    pub fn BNSetFunctionUserType(func: *mut BNFunction, type_: *mut BNType);
17166}
17167unsafe extern "C" {
17168    pub fn BNFunctionHasUserType(func: *mut BNFunction) -> bool;
17169}
17170unsafe extern "C" {
17171    pub fn BNGetFunctionComment(func: *mut BNFunction) -> *mut ::std::os::raw::c_char;
17172}
17173unsafe extern "C" {
17174    pub fn BNGetCommentForAddress(func: *mut BNFunction, addr: u64) -> *mut ::std::os::raw::c_char;
17175}
17176unsafe extern "C" {
17177    pub fn BNGetCommentedAddresses(func: *mut BNFunction, count: *mut usize) -> *mut u64;
17178}
17179unsafe extern "C" {
17180    pub fn BNFreeAddressList(addrs: *mut u64);
17181}
17182unsafe extern "C" {
17183    pub fn BNSetFunctionComment(func: *mut BNFunction, comment: *const ::std::os::raw::c_char);
17184}
17185unsafe extern "C" {
17186    pub fn BNSetCommentForAddress(
17187        func: *mut BNFunction,
17188        addr: u64,
17189        comment: *const ::std::os::raw::c_char,
17190    );
17191}
17192unsafe extern "C" {
17193    pub fn BNAddUserCodeReference(
17194        func: *mut BNFunction,
17195        fromArch: *mut BNArchitecture,
17196        fromAddr: u64,
17197        toAddr: u64,
17198    );
17199}
17200unsafe extern "C" {
17201    pub fn BNRemoveUserCodeReference(
17202        func: *mut BNFunction,
17203        fromArch: *mut BNArchitecture,
17204        fromAddr: u64,
17205        toAddr: u64,
17206    );
17207}
17208unsafe extern "C" {
17209    pub fn BNAddUserTypeReference(
17210        func: *mut BNFunction,
17211        fromArch: *mut BNArchitecture,
17212        fromAddr: u64,
17213        name: *mut BNQualifiedName,
17214    );
17215}
17216unsafe extern "C" {
17217    pub fn BNRemoveUserTypeReference(
17218        func: *mut BNFunction,
17219        fromArch: *mut BNArchitecture,
17220        fromAddr: u64,
17221        name: *mut BNQualifiedName,
17222    );
17223}
17224unsafe extern "C" {
17225    pub fn BNAddUserTypeFieldReference(
17226        func: *mut BNFunction,
17227        fromArch: *mut BNArchitecture,
17228        fromAddr: u64,
17229        name: *mut BNQualifiedName,
17230        offset: u64,
17231        size: usize,
17232    );
17233}
17234unsafe extern "C" {
17235    pub fn BNRemoveUserTypeFieldReference(
17236        func: *mut BNFunction,
17237        fromArch: *mut BNArchitecture,
17238        fromAddr: u64,
17239        name: *mut BNQualifiedName,
17240        offset: u64,
17241        size: usize,
17242    );
17243}
17244unsafe extern "C" {
17245    pub fn BNGetForeignFunctionLiftedIL(
17246        func: *const BNFunction,
17247        logger: *const BNLogger,
17248        inlinedCallsCount: usize,
17249        inlinedCalls: *const u64,
17250    ) -> *mut BNLowLevelILFunction;
17251}
17252unsafe extern "C" {
17253    pub fn BNNewBasicBlockReference(block: *mut BNBasicBlock) -> *mut BNBasicBlock;
17254}
17255unsafe extern "C" {
17256    pub fn BNFreeBasicBlock(block: *mut BNBasicBlock);
17257}
17258unsafe extern "C" {
17259    pub fn BNNewLifterInstructionDataReference(
17260        instrData: *mut BNLifterInstructionData,
17261    ) -> *mut BNLifterInstructionData;
17262}
17263unsafe extern "C" {
17264    pub fn BNFreeLifterInstructionData(instrData: *mut BNLifterInstructionData);
17265}
17266unsafe extern "C" {
17267    pub fn BNLifterInstructionDataAppend(
17268        instrData: *mut BNLifterInstructionData,
17269        block: *mut BNBasicBlock,
17270        data: *const ::std::os::raw::c_void,
17271        len: usize,
17272    );
17273}
17274unsafe extern "C" {
17275    pub fn BNLifterInstructionDataGet(
17276        instrData: *mut BNLifterInstructionData,
17277        block: *mut BNBasicBlock,
17278        addr: u64,
17279        len: *mut usize,
17280    ) -> *const u8;
17281}
17282unsafe extern "C" {
17283    pub fn BNGetFunctionBasicBlockList(
17284        func: *mut BNFunction,
17285        count: *mut usize,
17286    ) -> *mut *mut BNBasicBlock;
17287}
17288unsafe extern "C" {
17289    pub fn BNFreeBasicBlockList(blocks: *mut *mut BNBasicBlock, count: usize);
17290}
17291unsafe extern "C" {
17292    pub fn BNGetFunctionBasicBlockAtAddress(
17293        func: *mut BNFunction,
17294        arch: *mut BNArchitecture,
17295        addr: u64,
17296    ) -> *mut BNBasicBlock;
17297}
17298unsafe extern "C" {
17299    pub fn BNGetRecentBasicBlockForAddress(view: *mut BNBinaryView, addr: u64)
17300    -> *mut BNBasicBlock;
17301}
17302unsafe extern "C" {
17303    pub fn BNGetBasicBlocksForAddress(
17304        view: *mut BNBinaryView,
17305        addr: u64,
17306        count: *mut usize,
17307    ) -> *mut *mut BNBasicBlock;
17308}
17309unsafe extern "C" {
17310    pub fn BNGetBasicBlocksStartingAtAddress(
17311        view: *mut BNBinaryView,
17312        addr: u64,
17313        count: *mut usize,
17314    ) -> *mut *mut BNBasicBlock;
17315}
17316unsafe extern "C" {
17317    pub fn BNGetFunctionHighestAddress(func: *mut BNFunction) -> u64;
17318}
17319unsafe extern "C" {
17320    pub fn BNGetFunctionLowestAddress(func: *mut BNFunction) -> u64;
17321}
17322unsafe extern "C" {
17323    pub fn BNGetFunctionAddressRanges(
17324        func: *mut BNFunction,
17325        count: *mut usize,
17326    ) -> *mut BNAddressRange;
17327}
17328unsafe extern "C" {
17329    pub fn BNGetFunctionLowLevelIL(func: *mut BNFunction) -> *mut BNLowLevelILFunction;
17330}
17331unsafe extern "C" {
17332    pub fn BNGetFunctionLowLevelILIfAvailable(func: *mut BNFunction) -> *mut BNLowLevelILFunction;
17333}
17334unsafe extern "C" {
17335    pub fn BNFreeILInstructionList(list: *mut usize);
17336}
17337unsafe extern "C" {
17338    pub fn BNGetFunctionMediumLevelIL(func: *mut BNFunction) -> *mut BNMediumLevelILFunction;
17339}
17340unsafe extern "C" {
17341    pub fn BNGetFunctionMediumLevelILIfAvailable(
17342        func: *mut BNFunction,
17343    ) -> *mut BNMediumLevelILFunction;
17344}
17345unsafe extern "C" {
17346    pub fn BNGetFunctionMappedMediumLevelIL(func: *mut BNFunction) -> *mut BNMediumLevelILFunction;
17347}
17348unsafe extern "C" {
17349    pub fn BNGetFunctionMappedMediumLevelILIfAvailable(
17350        func: *mut BNFunction,
17351    ) -> *mut BNMediumLevelILFunction;
17352}
17353unsafe extern "C" {
17354    pub fn BNGetFunctionHighLevelIL(func: *mut BNFunction) -> *mut BNHighLevelILFunction;
17355}
17356unsafe extern "C" {
17357    pub fn BNGetFunctionHighLevelILIfAvailable(func: *mut BNFunction)
17358    -> *mut BNHighLevelILFunction;
17359}
17360unsafe extern "C" {
17361    pub fn BNGetFunctionLanguageRepresentation(
17362        func: *mut BNFunction,
17363        language: *const ::std::os::raw::c_char,
17364    ) -> *mut BNLanguageRepresentationFunction;
17365}
17366unsafe extern "C" {
17367    pub fn BNGetFunctionLanguageRepresentationIfAvailable(
17368        func: *mut BNFunction,
17369        language: *const ::std::os::raw::c_char,
17370    ) -> *mut BNLanguageRepresentationFunction;
17371}
17372unsafe extern "C" {
17373    pub fn BNGetConstantData(
17374        func: *mut BNFunction,
17375        state: BNRegisterValueType,
17376        value: u64,
17377        size: usize,
17378        builtin: *mut BNBuiltinType,
17379    ) -> *mut BNDataBuffer;
17380}
17381unsafe extern "C" {
17382    pub fn BNGetRegisterValueAtInstruction(
17383        func: *mut BNFunction,
17384        arch: *mut BNArchitecture,
17385        addr: u64,
17386        reg: u32,
17387    ) -> BNRegisterValue;
17388}
17389unsafe extern "C" {
17390    pub fn BNGetRegisterValueAfterInstruction(
17391        func: *mut BNFunction,
17392        arch: *mut BNArchitecture,
17393        addr: u64,
17394        reg: u32,
17395    ) -> BNRegisterValue;
17396}
17397unsafe extern "C" {
17398    pub fn BNGetStackContentsAtInstruction(
17399        func: *mut BNFunction,
17400        arch: *mut BNArchitecture,
17401        addr: u64,
17402        offset: i64,
17403        size: usize,
17404    ) -> BNRegisterValue;
17405}
17406unsafe extern "C" {
17407    pub fn BNGetStackContentsAfterInstruction(
17408        func: *mut BNFunction,
17409        arch: *mut BNArchitecture,
17410        addr: u64,
17411        offset: i64,
17412        size: usize,
17413    ) -> BNRegisterValue;
17414}
17415unsafe extern "C" {
17416    pub fn BNGetParameterValueAtInstruction(
17417        func: *mut BNFunction,
17418        arch: *mut BNArchitecture,
17419        addr: u64,
17420        functionType: *mut BNType,
17421        i: usize,
17422    ) -> BNRegisterValue;
17423}
17424unsafe extern "C" {
17425    pub fn BNGetParameterValueAtLowLevelILInstruction(
17426        func: *mut BNFunction,
17427        instr: usize,
17428        functionType: *mut BNType,
17429        i: usize,
17430    ) -> BNRegisterValue;
17431}
17432unsafe extern "C" {
17433    pub fn BNGetRegistersReadByInstruction(
17434        func: *mut BNFunction,
17435        arch: *mut BNArchitecture,
17436        addr: u64,
17437        count: *mut usize,
17438    ) -> *mut u32;
17439}
17440unsafe extern "C" {
17441    pub fn BNGetRegistersWrittenByInstruction(
17442        func: *mut BNFunction,
17443        arch: *mut BNArchitecture,
17444        addr: u64,
17445        count: *mut usize,
17446    ) -> *mut u32;
17447}
17448unsafe extern "C" {
17449    pub fn BNGetStackVariablesReferencedByInstruction(
17450        func: *mut BNFunction,
17451        arch: *mut BNArchitecture,
17452        addr: u64,
17453        count: *mut usize,
17454    ) -> *mut BNStackVariableReference;
17455}
17456unsafe extern "C" {
17457    pub fn BNGetStackVariablesReferencedByInstructionIfAvailable(
17458        func: *mut BNFunction,
17459        arch: *mut BNArchitecture,
17460        addr: u64,
17461        count: *mut usize,
17462    ) -> *mut BNStackVariableReference;
17463}
17464unsafe extern "C" {
17465    pub fn BNFreeStackVariableReferenceList(refs: *mut BNStackVariableReference, count: usize);
17466}
17467unsafe extern "C" {
17468    pub fn BNGetConstantsReferencedByInstruction(
17469        func: *mut BNFunction,
17470        arch: *mut BNArchitecture,
17471        addr: u64,
17472        count: *mut usize,
17473    ) -> *mut BNConstantReference;
17474}
17475unsafe extern "C" {
17476    pub fn BNGetConstantsReferencedByInstructionIfAvailable(
17477        func: *mut BNFunction,
17478        arch: *mut BNArchitecture,
17479        addr: u64,
17480        count: *mut usize,
17481    ) -> *mut BNConstantReference;
17482}
17483unsafe extern "C" {
17484    pub fn BNFreeConstantReferenceList(refs: *mut BNConstantReference);
17485}
17486unsafe extern "C" {
17487    pub fn BNGetFunctionLiftedIL(func: *mut BNFunction) -> *mut BNLowLevelILFunction;
17488}
17489unsafe extern "C" {
17490    pub fn BNGetFunctionLiftedILIfAvailable(func: *mut BNFunction) -> *mut BNLowLevelILFunction;
17491}
17492unsafe extern "C" {
17493    pub fn BNGetLiftedILFlagUsesForDefinition(
17494        func: *mut BNFunction,
17495        i: usize,
17496        flag: u32,
17497        count: *mut usize,
17498    ) -> *mut usize;
17499}
17500unsafe extern "C" {
17501    pub fn BNGetLiftedILFlagDefinitionsForUse(
17502        func: *mut BNFunction,
17503        i: usize,
17504        flag: u32,
17505        count: *mut usize,
17506    ) -> *mut usize;
17507}
17508unsafe extern "C" {
17509    pub fn BNGetFlagsReadByLiftedILInstruction(
17510        func: *mut BNFunction,
17511        i: usize,
17512        count: *mut usize,
17513    ) -> *mut u32;
17514}
17515unsafe extern "C" {
17516    pub fn BNGetFlagsWrittenByLiftedILInstruction(
17517        func: *mut BNFunction,
17518        i: usize,
17519        count: *mut usize,
17520    ) -> *mut u32;
17521}
17522unsafe extern "C" {
17523    pub fn BNGetFunctionType(func: *mut BNFunction) -> *mut BNType;
17524}
17525unsafe extern "C" {
17526    pub fn BNGetFunctionReturnType(func: *mut BNFunction) -> BNTypeWithConfidence;
17527}
17528unsafe extern "C" {
17529    pub fn BNGetFunctionReturnValue(func: *mut BNFunction) -> BNReturnValue;
17530}
17531unsafe extern "C" {
17532    pub fn BNFreeReturnValue(ret: *mut BNReturnValue);
17533}
17534unsafe extern "C" {
17535    pub fn BNIsFunctionReturnValueDefaultLocation(func: *mut BNFunction) -> bool;
17536}
17537unsafe extern "C" {
17538    pub fn BNGetFunctionReturnValueLocation(func: *mut BNFunction)
17539    -> BNValueLocationWithConfidence;
17540}
17541unsafe extern "C" {
17542    pub fn BNGetFunctionReturnRegisters(func: *mut BNFunction) -> BNRegisterSetWithConfidence;
17543}
17544unsafe extern "C" {
17545    pub fn BNGetFunctionCallingConvention(
17546        func: *mut BNFunction,
17547    ) -> BNCallingConventionWithConfidence;
17548}
17549unsafe extern "C" {
17550    pub fn BNGetFunctionParameterVariables(
17551        func: *mut BNFunction,
17552    ) -> BNParameterVariablesWithConfidence;
17553}
17554unsafe extern "C" {
17555    pub fn BNFreeParameterVariables(vars: *mut BNParameterVariablesWithConfidence);
17556}
17557unsafe extern "C" {
17558    pub fn BNGetFunctionParameterLocations(
17559        func: *mut BNFunction,
17560    ) -> BNValueLocationListWithConfidence;
17561}
17562unsafe extern "C" {
17563    pub fn BNFreeParameterLocations(locations: *mut BNValueLocationListWithConfidence);
17564}
17565unsafe extern "C" {
17566    pub fn BNGetValueLocationVariableForReturnValue(
17567        location: *const BNValueLocation,
17568        var: *mut BNVariable,
17569    ) -> bool;
17570}
17571unsafe extern "C" {
17572    pub fn BNGetValueLocationVariableForParameter(
17573        location: *const BNValueLocation,
17574        var: *mut BNVariable,
17575        idx: usize,
17576    ) -> bool;
17577}
17578unsafe extern "C" {
17579    pub fn BNFunctionHasVariableArguments(func: *mut BNFunction) -> BNBoolWithConfidence;
17580}
17581unsafe extern "C" {
17582    pub fn BNGetFunctionStackAdjustment(func: *mut BNFunction) -> BNOffsetWithConfidence;
17583}
17584unsafe extern "C" {
17585    pub fn BNGetFunctionRegisterStackAdjustments(
17586        func: *mut BNFunction,
17587        count: *mut usize,
17588    ) -> *mut BNRegisterStackAdjustment;
17589}
17590unsafe extern "C" {
17591    pub fn BNFreeRegisterStackAdjustments(adjustments: *mut BNRegisterStackAdjustment);
17592}
17593unsafe extern "C" {
17594    pub fn BNGetFunctionClobberedRegisters(func: *mut BNFunction) -> BNRegisterSetWithConfidence;
17595}
17596unsafe extern "C" {
17597    pub fn BNFreeRegisterSet(regs: *mut BNRegisterSetWithConfidence);
17598}
17599unsafe extern "C" {
17600    pub fn BNSetAutoFunctionReturnType(func: *mut BNFunction, type_: *mut BNTypeWithConfidence);
17601}
17602unsafe extern "C" {
17603    pub fn BNSetAutoIsFunctionReturnValueDefaultLocation(
17604        func: *mut BNFunction,
17605        defaultLocation: bool,
17606    );
17607}
17608unsafe extern "C" {
17609    pub fn BNSetAutoFunctionReturnValueLocation(
17610        func: *mut BNFunction,
17611        location: *mut BNValueLocationWithConfidence,
17612    );
17613}
17614unsafe extern "C" {
17615    pub fn BNSetAutoFunctionReturnValue(func: *mut BNFunction, returnValue: *mut BNReturnValue);
17616}
17617unsafe extern "C" {
17618    pub fn BNSetAutoFunctionCallingConvention(
17619        func: *mut BNFunction,
17620        convention: *mut BNCallingConventionWithConfidence,
17621    );
17622}
17623unsafe extern "C" {
17624    pub fn BNSetAutoFunctionParameterLocations(
17625        func: *mut BNFunction,
17626        locations: *mut BNValueLocationListWithConfidence,
17627    );
17628}
17629unsafe extern "C" {
17630    pub fn BNSetAutoFunctionHasVariableArguments(
17631        func: *mut BNFunction,
17632        varArgs: *mut BNBoolWithConfidence,
17633    );
17634}
17635unsafe extern "C" {
17636    pub fn BNSetAutoFunctionCanReturn(func: *mut BNFunction, returns: *mut BNBoolWithConfidence);
17637}
17638unsafe extern "C" {
17639    pub fn BNSetAutoFunctionPure(func: *mut BNFunction, pure_: *mut BNBoolWithConfidence);
17640}
17641unsafe extern "C" {
17642    pub fn BNSetAutoFunctionStackAdjustment(
17643        func: *mut BNFunction,
17644        stackAdjust: *mut BNOffsetWithConfidence,
17645    );
17646}
17647unsafe extern "C" {
17648    pub fn BNSetAutoFunctionRegisterStackAdjustments(
17649        func: *mut BNFunction,
17650        adjustments: *mut BNRegisterStackAdjustment,
17651        count: usize,
17652    );
17653}
17654unsafe extern "C" {
17655    pub fn BNSetAutoFunctionClobberedRegisters(
17656        func: *mut BNFunction,
17657        regs: *mut BNRegisterSetWithConfidence,
17658    );
17659}
17660unsafe extern "C" {
17661    pub fn BNSetUserFunctionReturnType(func: *mut BNFunction, type_: *mut BNTypeWithConfidence);
17662}
17663unsafe extern "C" {
17664    pub fn BNSetUserIsFunctionReturnValueDefaultLocation(
17665        func: *mut BNFunction,
17666        defaultLocation: bool,
17667    );
17668}
17669unsafe extern "C" {
17670    pub fn BNSetUserFunctionReturnValueLocation(
17671        func: *mut BNFunction,
17672        location: *mut BNValueLocationWithConfidence,
17673    );
17674}
17675unsafe extern "C" {
17676    pub fn BNSetUserFunctionReturnValue(func: *mut BNFunction, returnValue: *mut BNReturnValue);
17677}
17678unsafe extern "C" {
17679    pub fn BNSetUserFunctionCallingConvention(
17680        func: *mut BNFunction,
17681        convention: *mut BNCallingConventionWithConfidence,
17682    );
17683}
17684unsafe extern "C" {
17685    pub fn BNSetUserFunctionParameterLocations(
17686        func: *mut BNFunction,
17687        locations: *mut BNValueLocationListWithConfidence,
17688    );
17689}
17690unsafe extern "C" {
17691    pub fn BNSetUserFunctionHasVariableArguments(
17692        func: *mut BNFunction,
17693        varArgs: *mut BNBoolWithConfidence,
17694    );
17695}
17696unsafe extern "C" {
17697    pub fn BNSetUserFunctionCanReturn(func: *mut BNFunction, returns: *mut BNBoolWithConfidence);
17698}
17699unsafe extern "C" {
17700    pub fn BNSetUserFunctionPure(func: *mut BNFunction, pure_: *mut BNBoolWithConfidence);
17701}
17702unsafe extern "C" {
17703    pub fn BNSetUserFunctionStackAdjustment(
17704        func: *mut BNFunction,
17705        stackAdjust: *mut BNOffsetWithConfidence,
17706    );
17707}
17708unsafe extern "C" {
17709    pub fn BNSetUserFunctionRegisterStackAdjustments(
17710        func: *mut BNFunction,
17711        adjustments: *mut BNRegisterStackAdjustment,
17712        count: usize,
17713    );
17714}
17715unsafe extern "C" {
17716    pub fn BNSetUserFunctionClobberedRegisters(
17717        func: *mut BNFunction,
17718        regs: *mut BNRegisterSetWithConfidence,
17719    );
17720}
17721unsafe extern "C" {
17722    pub fn BNApplyImportedTypes(func: *mut BNFunction, sym: *mut BNSymbol, type_: *mut BNType);
17723}
17724unsafe extern "C" {
17725    pub fn BNApplyAutoDiscoveredFunctionType(func: *mut BNFunction, type_: *mut BNType);
17726}
17727unsafe extern "C" {
17728    pub fn BNFunctionHasExplicitlyDefinedType(func: *mut BNFunction) -> bool;
17729}
17730unsafe extern "C" {
17731    pub fn BNGetFunctionTypeTokens(
17732        func: *mut BNFunction,
17733        settings: *mut BNDisassemblySettings,
17734        count: *mut usize,
17735    ) -> *mut BNDisassemblyTextLine;
17736}
17737unsafe extern "C" {
17738    pub fn BNGetFunctionGlobalPointerValues(
17739        func: *mut BNFunction,
17740        count: *mut usize,
17741    ) -> *mut BNRegisterValueWithConfidenceAndRegister;
17742}
17743unsafe extern "C" {
17744    pub fn BNFunctionUsesIncomingGlobalPointer(func: *mut BNFunction) -> bool;
17745}
17746unsafe extern "C" {
17747    pub fn BNGetFunctionRegisterValueAtExit(
17748        func: *mut BNFunction,
17749        reg: u32,
17750    ) -> BNRegisterValueWithConfidence;
17751}
17752unsafe extern "C" {
17753    pub fn BNIsFunctionInlinedDuringAnalysis(func: *mut BNFunction) -> BNBoolWithConfidence;
17754}
17755unsafe extern "C" {
17756    pub fn BNGetFunctionInlinedDuringAnalysis(
17757        func: *mut BNFunction,
17758    ) -> BNInlineDuringAnalysisWithConfidence;
17759}
17760unsafe extern "C" {
17761    pub fn BNSetAutoFunctionInlinedDuringAnalysis(
17762        func: *mut BNFunction,
17763        inlined: BNInlineDuringAnalysisWithConfidence,
17764    );
17765}
17766unsafe extern "C" {
17767    pub fn BNSetUserFunctionInlinedDuringAnalysis(
17768        func: *mut BNFunction,
17769        inlined: BNInlineDuringAnalysisWithConfidence,
17770    );
17771}
17772unsafe extern "C" {
17773    pub fn BNGetInstructionContainingAddress(
17774        func: *mut BNFunction,
17775        arch: *mut BNArchitecture,
17776        addr: u64,
17777        start: *mut u64,
17778    ) -> bool;
17779}
17780unsafe extern "C" {
17781    pub fn BNGetBasicBlockFunction(block: *mut BNBasicBlock) -> *mut BNFunction;
17782}
17783unsafe extern "C" {
17784    pub fn BNGetBasicBlockArchitecture(block: *mut BNBasicBlock) -> *mut BNArchitecture;
17785}
17786unsafe extern "C" {
17787    pub fn BNGetBasicBlockSource(block: *mut BNBasicBlock) -> *mut BNBasicBlock;
17788}
17789unsafe extern "C" {
17790    pub fn BNGetBasicBlockStart(block: *mut BNBasicBlock) -> u64;
17791}
17792unsafe extern "C" {
17793    pub fn BNSetBasicBlockEnd(block: *mut BNBasicBlock, end: u64);
17794}
17795unsafe extern "C" {
17796    pub fn BNGetBasicBlockEnd(block: *mut BNBasicBlock) -> u64;
17797}
17798unsafe extern "C" {
17799    pub fn BNGetBasicBlockLength(block: *mut BNBasicBlock) -> u64;
17800}
17801unsafe extern "C" {
17802    pub fn BNGetBasicBlockOutgoingEdges(
17803        block: *mut BNBasicBlock,
17804        count: *mut usize,
17805    ) -> *mut BNBasicBlockEdge;
17806}
17807unsafe extern "C" {
17808    pub fn BNGetBasicBlockIncomingEdges(
17809        block: *mut BNBasicBlock,
17810        count: *mut usize,
17811    ) -> *mut BNBasicBlockEdge;
17812}
17813unsafe extern "C" {
17814    pub fn BNFreeBasicBlockEdgeList(edges: *mut BNBasicBlockEdge, count: usize);
17815}
17816unsafe extern "C" {
17817    pub fn BNBasicBlockHasUndeterminedOutgoingEdges(block: *mut BNBasicBlock) -> bool;
17818}
17819unsafe extern "C" {
17820    pub fn BNBasicBlockAddPendingOutgoingEdge(
17821        block: *mut BNBasicBlock,
17822        type_: BNBranchType,
17823        addr: u64,
17824        arch: *mut BNArchitecture,
17825        fallThrough: bool,
17826    );
17827}
17828unsafe extern "C" {
17829    pub fn BNGetBasicBlockPendingOutgoingEdges(
17830        block: *mut BNBasicBlock,
17831        count: *mut usize,
17832    ) -> *mut BNPendingBasicBlockEdge;
17833}
17834unsafe extern "C" {
17835    pub fn BNFreePendingBasicBlockEdgeList(edges: *mut BNPendingBasicBlockEdge);
17836}
17837unsafe extern "C" {
17838    pub fn BNClearBasicBlockPendingOutgoingEdges(block: *mut BNBasicBlock);
17839}
17840unsafe extern "C" {
17841    pub fn BNBasicBlockSetUndeterminedOutgoingEdges(block: *mut BNBasicBlock, value: bool);
17842}
17843unsafe extern "C" {
17844    pub fn BNBasicBlockSetFallThroughToFunction(block: *mut BNBasicBlock, value: bool);
17845}
17846unsafe extern "C" {
17847    pub fn BNBasicBlockIsFallThroughToFunction(block: *mut BNBasicBlock) -> bool;
17848}
17849unsafe extern "C" {
17850    pub fn BNBasicBlockCanExit(block: *mut BNBasicBlock) -> bool;
17851}
17852unsafe extern "C" {
17853    pub fn BNBasicBlockSetCanExit(block: *mut BNBasicBlock, value: bool);
17854}
17855unsafe extern "C" {
17856    pub fn BNBasicBlockSetHasInvalidInstructions(block: *mut BNBasicBlock, value: bool);
17857}
17858unsafe extern "C" {
17859    pub fn BNBasicBlockHasInvalidInstructions(block: *mut BNBasicBlock) -> bool;
17860}
17861unsafe extern "C" {
17862    pub fn BNGetBasicBlockIndex(block: *mut BNBasicBlock) -> usize;
17863}
17864unsafe extern "C" {
17865    pub fn BNGetBasicBlockDominators(
17866        block: *mut BNBasicBlock,
17867        count: *mut usize,
17868        post: bool,
17869    ) -> *mut *mut BNBasicBlock;
17870}
17871unsafe extern "C" {
17872    pub fn BNGetBasicBlockStrictDominators(
17873        block: *mut BNBasicBlock,
17874        count: *mut usize,
17875        post: bool,
17876    ) -> *mut *mut BNBasicBlock;
17877}
17878unsafe extern "C" {
17879    pub fn BNGetBasicBlockImmediateDominator(
17880        block: *mut BNBasicBlock,
17881        post: bool,
17882    ) -> *mut BNBasicBlock;
17883}
17884unsafe extern "C" {
17885    pub fn BNGetBasicBlockDominatorTreeChildren(
17886        block: *mut BNBasicBlock,
17887        count: *mut usize,
17888        post: bool,
17889    ) -> *mut *mut BNBasicBlock;
17890}
17891unsafe extern "C" {
17892    pub fn BNGetBasicBlockDominanceFrontier(
17893        block: *mut BNBasicBlock,
17894        count: *mut usize,
17895        post: bool,
17896    ) -> *mut *mut BNBasicBlock;
17897}
17898unsafe extern "C" {
17899    pub fn BNGetBasicBlockIteratedDominanceFrontier(
17900        blocks: *mut *mut BNBasicBlock,
17901        incomingCount: usize,
17902        outputCount: *mut usize,
17903    ) -> *mut *mut BNBasicBlock;
17904}
17905unsafe extern "C" {
17906    pub fn BNIsILBasicBlock(block: *mut BNBasicBlock) -> bool;
17907}
17908unsafe extern "C" {
17909    pub fn BNIsLowLevelILBasicBlock(block: *mut BNBasicBlock) -> bool;
17910}
17911unsafe extern "C" {
17912    pub fn BNIsMediumLevelILBasicBlock(block: *mut BNBasicBlock) -> bool;
17913}
17914unsafe extern "C" {
17915    pub fn BNIsHighLevelILBasicBlock(block: *mut BNBasicBlock) -> bool;
17916}
17917unsafe extern "C" {
17918    pub fn BNGetBasicBlockFunctionGraphType(block: *mut BNBasicBlock) -> BNFunctionGraphType;
17919}
17920unsafe extern "C" {
17921    pub fn BNGetBasicBlockLowLevelILFunction(block: *mut BNBasicBlock)
17922    -> *mut BNLowLevelILFunction;
17923}
17924unsafe extern "C" {
17925    pub fn BNGetBasicBlockMediumLevelILFunction(
17926        block: *mut BNBasicBlock,
17927    ) -> *mut BNMediumLevelILFunction;
17928}
17929unsafe extern "C" {
17930    pub fn BNGetBasicBlockHighLevelILFunction(
17931        block: *mut BNBasicBlock,
17932    ) -> *mut BNHighLevelILFunction;
17933}
17934unsafe extern "C" {
17935    pub fn BNGetBasicBlockInstructionContainingAddress(
17936        block: *mut BNBasicBlock,
17937        addr: u64,
17938        start: *mut u64,
17939    ) -> bool;
17940}
17941unsafe extern "C" {
17942    pub fn BNGetBasicBlockSourceBlock(block: *mut BNBasicBlock) -> *mut BNBasicBlock;
17943}
17944unsafe extern "C" {
17945    pub fn BNGetBasicBlockDisassemblyText(
17946        block: *mut BNBasicBlock,
17947        settings: *mut BNDisassemblySettings,
17948        count: *mut usize,
17949    ) -> *mut BNDisassemblyTextLine;
17950}
17951unsafe extern "C" {
17952    pub fn BNFreeDisassemblyTextLines(lines: *mut BNDisassemblyTextLine, count: usize);
17953}
17954unsafe extern "C" {
17955    pub fn BNGetDisplayStringForInteger(
17956        binaryView: *mut BNBinaryView,
17957        type_: BNIntegerDisplayType,
17958        value: u64,
17959        inputWidth: usize,
17960        isSigned: bool,
17961    ) -> *mut ::std::os::raw::c_char;
17962}
17963unsafe extern "C" {
17964    pub fn BNCreateDisassemblyTextRenderer(
17965        func: *mut BNFunction,
17966        settings: *mut BNDisassemblySettings,
17967    ) -> *mut BNDisassemblyTextRenderer;
17968}
17969unsafe extern "C" {
17970    pub fn BNCreateLowLevelILDisassemblyTextRenderer(
17971        func: *mut BNLowLevelILFunction,
17972        settings: *mut BNDisassemblySettings,
17973    ) -> *mut BNDisassemblyTextRenderer;
17974}
17975unsafe extern "C" {
17976    pub fn BNCreateMediumLevelILDisassemblyTextRenderer(
17977        func: *mut BNMediumLevelILFunction,
17978        settings: *mut BNDisassemblySettings,
17979    ) -> *mut BNDisassemblyTextRenderer;
17980}
17981unsafe extern "C" {
17982    pub fn BNCreateHighLevelILDisassemblyTextRenderer(
17983        func: *mut BNHighLevelILFunction,
17984        settings: *mut BNDisassemblySettings,
17985    ) -> *mut BNDisassemblyTextRenderer;
17986}
17987unsafe extern "C" {
17988    pub fn BNNewDisassemblyTextRendererReference(
17989        renderer: *mut BNDisassemblyTextRenderer,
17990    ) -> *mut BNDisassemblyTextRenderer;
17991}
17992unsafe extern "C" {
17993    pub fn BNFreeDisassemblyTextRenderer(renderer: *mut BNDisassemblyTextRenderer);
17994}
17995unsafe extern "C" {
17996    pub fn BNGetDisassemblyTextRendererFunction(
17997        renderer: *mut BNDisassemblyTextRenderer,
17998    ) -> *mut BNFunction;
17999}
18000unsafe extern "C" {
18001    pub fn BNGetDisassemblyTextRendererLowLevelILFunction(
18002        renderer: *mut BNDisassemblyTextRenderer,
18003    ) -> *mut BNLowLevelILFunction;
18004}
18005unsafe extern "C" {
18006    pub fn BNGetDisassemblyTextRendererMediumLevelILFunction(
18007        renderer: *mut BNDisassemblyTextRenderer,
18008    ) -> *mut BNMediumLevelILFunction;
18009}
18010unsafe extern "C" {
18011    pub fn BNGetDisassemblyTextRendererHighLevelILFunction(
18012        renderer: *mut BNDisassemblyTextRenderer,
18013    ) -> *mut BNHighLevelILFunction;
18014}
18015unsafe extern "C" {
18016    pub fn BNGetDisassemblyTextRendererBasicBlock(
18017        renderer: *mut BNDisassemblyTextRenderer,
18018    ) -> *mut BNBasicBlock;
18019}
18020unsafe extern "C" {
18021    pub fn BNGetDisassemblyTextRendererArchitecture(
18022        renderer: *mut BNDisassemblyTextRenderer,
18023    ) -> *mut BNArchitecture;
18024}
18025unsafe extern "C" {
18026    pub fn BNGetDisassemblyTextRendererSettings(
18027        renderer: *mut BNDisassemblyTextRenderer,
18028    ) -> *mut BNDisassemblySettings;
18029}
18030unsafe extern "C" {
18031    pub fn BNSetDisassemblyTextRendererBasicBlock(
18032        renderer: *mut BNDisassemblyTextRenderer,
18033        block: *mut BNBasicBlock,
18034    );
18035}
18036unsafe extern "C" {
18037    pub fn BNSetDisassemblyTextRendererArchitecture(
18038        renderer: *mut BNDisassemblyTextRenderer,
18039        arch: *mut BNArchitecture,
18040    );
18041}
18042unsafe extern "C" {
18043    pub fn BNSetDisassemblyTextRendererSettings(
18044        renderer: *mut BNDisassemblyTextRenderer,
18045        settings: *mut BNDisassemblySettings,
18046    );
18047}
18048unsafe extern "C" {
18049    pub fn BNIsILDisassemblyTextRenderer(renderer: *mut BNDisassemblyTextRenderer) -> bool;
18050}
18051unsafe extern "C" {
18052    pub fn BNDisassemblyTextRendererHasDataFlow(renderer: *mut BNDisassemblyTextRenderer) -> bool;
18053}
18054unsafe extern "C" {
18055    pub fn BNGetDisassemblyTextRendererInstructionAnnotations(
18056        renderer: *mut BNDisassemblyTextRenderer,
18057        addr: u64,
18058        count: *mut usize,
18059    ) -> *mut BNInstructionTextToken;
18060}
18061unsafe extern "C" {
18062    pub fn BNGetDisassemblyTextRendererInstructionText(
18063        renderer: *mut BNDisassemblyTextRenderer,
18064        addr: u64,
18065        len: *mut usize,
18066        result: *mut *mut BNDisassemblyTextLine,
18067        count: *mut usize,
18068    ) -> bool;
18069}
18070unsafe extern "C" {
18071    pub fn BNGetDisassemblyTextRendererLines(
18072        renderer: *mut BNDisassemblyTextRenderer,
18073        addr: u64,
18074        len: *mut usize,
18075        result: *mut *mut BNDisassemblyTextLine,
18076        count: *mut usize,
18077    ) -> bool;
18078}
18079unsafe extern "C" {
18080    pub fn BNPostProcessDisassemblyTextRendererLines(
18081        renderer: *mut BNDisassemblyTextRenderer,
18082        addr: u64,
18083        len: usize,
18084        inLines: *mut BNDisassemblyTextLine,
18085        inCount: usize,
18086        outCount: *mut usize,
18087        indentSpaces: *const ::std::os::raw::c_char,
18088    ) -> *mut BNDisassemblyTextLine;
18089}
18090unsafe extern "C" {
18091    pub fn BNResetDisassemblyTextRendererDeduplicatedComments(
18092        renderer: *mut BNDisassemblyTextRenderer,
18093    );
18094}
18095unsafe extern "C" {
18096    pub fn BNGetDisassemblyTextRendererSymbolTokens(
18097        renderer: *mut BNDisassemblyTextRenderer,
18098        addr: u64,
18099        size: usize,
18100        operand: usize,
18101        result: *mut *mut BNInstructionTextToken,
18102        count: *mut usize,
18103    ) -> bool;
18104}
18105unsafe extern "C" {
18106    pub fn BNGetDisassemblyTextRendererSymbolTokensStatic(
18107        addr: u64,
18108        size: usize,
18109        operand: usize,
18110        data: *mut BNBinaryView,
18111        maxSymbolWidth: usize,
18112        func: *mut BNFunction,
18113        confidence: u8,
18114        symbolDisplay: BNSymbolDisplayType,
18115        precedence: BNOperatorPrecedence,
18116        instrAddr: u64,
18117        exprIndex: u64,
18118        result: *mut *mut BNInstructionTextToken,
18119        count: *mut usize,
18120    ) -> BNSymbolDisplayResult;
18121}
18122unsafe extern "C" {
18123    pub fn BNGetDisassemblyTextRendererStackVariableReferenceTokens(
18124        renderer: *mut BNDisassemblyTextRenderer,
18125        ref_: *mut BNStackVariableReference,
18126        count: *mut usize,
18127    ) -> *mut BNInstructionTextToken;
18128}
18129unsafe extern "C" {
18130    pub fn BNIsIntegerToken(type_: BNInstructionTextTokenType) -> bool;
18131}
18132unsafe extern "C" {
18133    pub fn BNGetDisassemblyTextRendererIntegerTokens(
18134        renderer: *mut BNDisassemblyTextRenderer,
18135        token: *mut BNInstructionTextToken,
18136        arch: *mut BNArchitecture,
18137        addr: u64,
18138        count: *mut usize,
18139    ) -> *mut BNInstructionTextToken;
18140}
18141unsafe extern "C" {
18142    pub fn BNDisassemblyTextRendererWrapComment(
18143        renderer: *mut BNDisassemblyTextRenderer,
18144        inLine: *const BNDisassemblyTextLine,
18145        outLineCount: *mut usize,
18146        comment: *const ::std::os::raw::c_char,
18147        hasAutoAnnotations: bool,
18148        leadingSpaces: *const ::std::os::raw::c_char,
18149        indentSpaces: *const ::std::os::raw::c_char,
18150    ) -> *mut BNDisassemblyTextLine;
18151}
18152unsafe extern "C" {
18153    pub fn BNGetStringLiteralPrefix(type_: BNStringType) -> *mut ::std::os::raw::c_char;
18154}
18155unsafe extern "C" {
18156    pub fn BNMarkFunctionAsRecentlyUsed(func: *mut BNFunction);
18157}
18158unsafe extern "C" {
18159    pub fn BNMarkBasicBlockAsRecentlyUsed(block: *mut BNBasicBlock);
18160}
18161unsafe extern "C" {
18162    pub fn BNGetCodeReferences(
18163        view: *mut BNBinaryView,
18164        addr: u64,
18165        count: *mut usize,
18166        limit: bool,
18167        maxItems: usize,
18168    ) -> *mut BNReferenceSource;
18169}
18170unsafe extern "C" {
18171    pub fn BNGetCodeReferencesInRange(
18172        view: *mut BNBinaryView,
18173        addr: u64,
18174        len: u64,
18175        count: *mut usize,
18176        limit: bool,
18177        maxItems: usize,
18178    ) -> *mut BNReferenceSource;
18179}
18180unsafe extern "C" {
18181    pub fn BNFreeCodeReferences(refs: *mut BNReferenceSource, count: usize);
18182}
18183unsafe extern "C" {
18184    pub fn BNFreeTypeFieldReferences(refs: *mut BNTypeFieldReference, count: usize);
18185}
18186unsafe extern "C" {
18187    pub fn BNFreeILReferences(refs: *mut BNILReferenceSource, count: usize);
18188}
18189unsafe extern "C" {
18190    pub fn BNGetCodeReferencesFrom(
18191        view: *mut BNBinaryView,
18192        src: *mut BNReferenceSource,
18193        count: *mut usize,
18194    ) -> *mut u64;
18195}
18196unsafe extern "C" {
18197    pub fn BNGetCodeReferencesFromInRange(
18198        view: *mut BNBinaryView,
18199        src: *mut BNReferenceSource,
18200        len: u64,
18201        count: *mut usize,
18202    ) -> *mut u64;
18203}
18204unsafe extern "C" {
18205    pub fn BNGetDataReferences(
18206        view: *mut BNBinaryView,
18207        addr: u64,
18208        count: *mut usize,
18209        limit: bool,
18210        maxItems: usize,
18211    ) -> *mut u64;
18212}
18213unsafe extern "C" {
18214    pub fn BNGetDataReferencesInRange(
18215        view: *mut BNBinaryView,
18216        addr: u64,
18217        len: u64,
18218        count: *mut usize,
18219        limit: bool,
18220        maxItems: usize,
18221    ) -> *mut u64;
18222}
18223unsafe extern "C" {
18224    pub fn BNGetDataReferencesFrom(
18225        view: *mut BNBinaryView,
18226        addr: u64,
18227        count: *mut usize,
18228    ) -> *mut u64;
18229}
18230unsafe extern "C" {
18231    pub fn BNGetDataReferencesFromInRange(
18232        view: *mut BNBinaryView,
18233        addr: u64,
18234        len: u64,
18235        count: *mut usize,
18236    ) -> *mut u64;
18237}
18238unsafe extern "C" {
18239    pub fn BNAddDataReference(view: *mut BNBinaryView, fromAddr: u64, toAddr: u64);
18240}
18241unsafe extern "C" {
18242    pub fn BNRemoveDataReference(view: *mut BNBinaryView, fromAddr: u64, toAddr: u64);
18243}
18244unsafe extern "C" {
18245    pub fn BNAddUserDataReference(view: *mut BNBinaryView, fromAddr: u64, toAddr: u64);
18246}
18247unsafe extern "C" {
18248    pub fn BNRemoveUserDataReference(view: *mut BNBinaryView, fromAddr: u64, toAddr: u64);
18249}
18250unsafe extern "C" {
18251    pub fn BNFreeDataReferences(refs: *mut u64);
18252}
18253unsafe extern "C" {
18254    pub fn BNFreeTypeReferences(refs: *mut BNTypeReferenceSource, count: usize);
18255}
18256unsafe extern "C" {
18257    pub fn BNFreeTypeFieldReferenceSizeInfo(refs: *mut BNTypeFieldReferenceSizeInfo, count: usize);
18258}
18259unsafe extern "C" {
18260    pub fn BNFreeTypeFieldReferenceTypeInfo(refs: *mut BNTypeFieldReferenceTypeInfo, count: usize);
18261}
18262unsafe extern "C" {
18263    pub fn BNFreeTypeFieldReferenceSizes(refs: *mut usize, count: usize);
18264}
18265unsafe extern "C" {
18266    pub fn BNFreeTypeFieldReferenceTypes(refs: *mut BNTypeWithConfidence, count: usize);
18267}
18268unsafe extern "C" {
18269    #[doc = " References to type"]
18270    pub fn BNGetCodeReferencesForType(
18271        view: *mut BNBinaryView,
18272        type_: *mut BNQualifiedName,
18273        count: *mut usize,
18274        limit: bool,
18275        maxItems: usize,
18276    ) -> *mut BNReferenceSource;
18277}
18278unsafe extern "C" {
18279    pub fn BNGetDataReferencesForType(
18280        view: *mut BNBinaryView,
18281        type_: *mut BNQualifiedName,
18282        count: *mut usize,
18283        limit: bool,
18284        maxItems: usize,
18285    ) -> *mut u64;
18286}
18287unsafe extern "C" {
18288    pub fn BNGetTypeReferencesForType(
18289        view: *mut BNBinaryView,
18290        type_: *mut BNQualifiedName,
18291        count: *mut usize,
18292        limit: bool,
18293        maxItems: usize,
18294    ) -> *mut BNTypeReferenceSource;
18295}
18296unsafe extern "C" {
18297    #[doc = " References to type field"]
18298    pub fn BNGetCodeReferencesForTypeField(
18299        view: *mut BNBinaryView,
18300        type_: *mut BNQualifiedName,
18301        offset: u64,
18302        count: *mut usize,
18303        limit: bool,
18304        maxItems: usize,
18305    ) -> *mut BNTypeFieldReference;
18306}
18307unsafe extern "C" {
18308    pub fn BNGetDataReferencesForTypeField(
18309        view: *mut BNBinaryView,
18310        type_: *mut BNQualifiedName,
18311        offset: u64,
18312        count: *mut usize,
18313        limit: bool,
18314        maxItems: usize,
18315    ) -> *mut u64;
18316}
18317unsafe extern "C" {
18318    pub fn BNGetDataReferencesFromForTypeField(
18319        view: *mut BNBinaryView,
18320        type_: *mut BNQualifiedName,
18321        offset: u64,
18322        count: *mut usize,
18323        limit: bool,
18324        maxItems: usize,
18325    ) -> *mut u64;
18326}
18327unsafe extern "C" {
18328    pub fn BNGetTypeReferencesForTypeField(
18329        view: *mut BNBinaryView,
18330        type_: *mut BNQualifiedName,
18331        offset: u64,
18332        count: *mut usize,
18333        limit: bool,
18334        maxItems: usize,
18335    ) -> *mut BNTypeReferenceSource;
18336}
18337unsafe extern "C" {
18338    pub fn BNGetAllReferencesForType(
18339        view: *mut BNBinaryView,
18340        type_: *mut BNQualifiedName,
18341        limit: bool,
18342        maxItems: usize,
18343    ) -> BNAllTypeReferences;
18344}
18345unsafe extern "C" {
18346    pub fn BNFreeAllTypeReferences(refs: *mut BNAllTypeReferences);
18347}
18348unsafe extern "C" {
18349    pub fn BNGetAllReferencesForTypeField(
18350        view: *mut BNBinaryView,
18351        type_: *mut BNQualifiedName,
18352        offset: u64,
18353        limit: bool,
18354        maxItems: usize,
18355    ) -> BNAllTypeFieldReferences;
18356}
18357unsafe extern "C" {
18358    pub fn BNFreeAllTypeFieldReferences(refs: *mut BNAllTypeFieldReferences);
18359}
18360unsafe extern "C" {
18361    pub fn BNGetCodeReferencesForTypeFrom(
18362        view: *mut BNBinaryView,
18363        addr: *mut BNReferenceSource,
18364        count: *mut usize,
18365    ) -> *mut BNTypeReferenceSource;
18366}
18367unsafe extern "C" {
18368    pub fn BNGetCodeReferencesForTypeFromInRange(
18369        view: *mut BNBinaryView,
18370        addr: *mut BNReferenceSource,
18371        len: u64,
18372        count: *mut usize,
18373    ) -> *mut BNTypeReferenceSource;
18374}
18375unsafe extern "C" {
18376    pub fn BNGetCodeReferencesForTypeFieldsFrom(
18377        view: *mut BNBinaryView,
18378        addr: *mut BNReferenceSource,
18379        count: *mut usize,
18380    ) -> *mut BNTypeReferenceSource;
18381}
18382unsafe extern "C" {
18383    pub fn BNGetCodeReferencesForTypeFieldsFromInRange(
18384        view: *mut BNBinaryView,
18385        addr: *mut BNReferenceSource,
18386        len: u64,
18387        count: *mut usize,
18388    ) -> *mut BNTypeReferenceSource;
18389}
18390unsafe extern "C" {
18391    pub fn BNGetAllFieldsReferenced(
18392        view: *mut BNBinaryView,
18393        type_: *mut BNQualifiedName,
18394        count: *mut usize,
18395    ) -> *mut u64;
18396}
18397unsafe extern "C" {
18398    pub fn BNGetAllSizesReferenced(
18399        view: *mut BNBinaryView,
18400        type_: *mut BNQualifiedName,
18401        count: *mut usize,
18402    ) -> *mut BNTypeFieldReferenceSizeInfo;
18403}
18404unsafe extern "C" {
18405    pub fn BNGetAllTypesReferenced(
18406        view: *mut BNBinaryView,
18407        type_: *mut BNQualifiedName,
18408        count: *mut usize,
18409    ) -> *mut BNTypeFieldReferenceTypeInfo;
18410}
18411unsafe extern "C" {
18412    pub fn BNGetSizesReferenced(
18413        view: *mut BNBinaryView,
18414        type_: *mut BNQualifiedName,
18415        offset: u64,
18416        count: *mut usize,
18417    ) -> *mut usize;
18418}
18419unsafe extern "C" {
18420    pub fn BNGetTypesReferenced(
18421        view: *mut BNBinaryView,
18422        type_: *mut BNQualifiedName,
18423        offset: u64,
18424        count: *mut usize,
18425    ) -> *mut BNTypeWithConfidence;
18426}
18427unsafe extern "C" {
18428    pub fn BNGetOutgoingDirectTypeReferences(
18429        view: *mut BNBinaryView,
18430        type_: *mut BNQualifiedName,
18431        count: *mut usize,
18432    ) -> *mut BNQualifiedName;
18433}
18434unsafe extern "C" {
18435    pub fn BNGetOutgoingRecursiveTypeReferences(
18436        view: *mut BNBinaryView,
18437        types: *mut BNQualifiedName,
18438        typeCount: usize,
18439        count: *mut usize,
18440    ) -> *mut BNQualifiedName;
18441}
18442unsafe extern "C" {
18443    pub fn BNGetIncomingDirectTypeReferences(
18444        view: *mut BNBinaryView,
18445        type_: *mut BNQualifiedName,
18446        count: *mut usize,
18447    ) -> *mut BNQualifiedName;
18448}
18449unsafe extern "C" {
18450    pub fn BNGetIncomingRecursiveTypeReferences(
18451        view: *mut BNBinaryView,
18452        types: *mut BNQualifiedName,
18453        typeCount: usize,
18454        count: *mut usize,
18455    ) -> *mut BNQualifiedName;
18456}
18457unsafe extern "C" {
18458    pub fn BNRegisterGlobalFunctionRecognizer(rec: *mut BNFunctionRecognizer);
18459}
18460unsafe extern "C" {
18461    pub fn BNGetStringAtAddress(
18462        view: *mut BNBinaryView,
18463        addr: u64,
18464        strRef: *mut BNStringReference,
18465    ) -> bool;
18466}
18467unsafe extern "C" {
18468    pub fn BNGetStrings(view: *mut BNBinaryView, count: *mut usize) -> *mut BNStringReference;
18469}
18470unsafe extern "C" {
18471    pub fn BNGetStringsInRange(
18472        view: *mut BNBinaryView,
18473        start: u64,
18474        len: u64,
18475        count: *mut usize,
18476    ) -> *mut BNStringReference;
18477}
18478unsafe extern "C" {
18479    pub fn BNFreeStringReferenceList(strings: *mut BNStringReference);
18480}
18481#[repr(C)]
18482#[derive(Debug, Copy, Clone)]
18483pub struct BNStringDetectionParameters {
18484    pub minStringLength: usize,
18485    pub utf8Enabled: bool,
18486    pub utf16Enabled: bool,
18487    pub utf32Enabled: bool,
18488    #[doc = " Unicode block names as accepted by the \"analysis.unicode.blocks\" setting."]
18489    pub unicodeBlockNames: *const *const ::std::os::raw::c_char,
18490    pub unicodeBlockNameCount: usize,
18491}
18492#[allow(clippy::unnecessary_operation, clippy::identity_op)]
18493const _: () = {
18494    ["Size of BNStringDetectionParameters"]
18495        [::std::mem::size_of::<BNStringDetectionParameters>() - 32usize];
18496    ["Alignment of BNStringDetectionParameters"]
18497        [::std::mem::align_of::<BNStringDetectionParameters>() - 8usize];
18498    ["Offset of field: BNStringDetectionParameters::minStringLength"]
18499        [::std::mem::offset_of!(BNStringDetectionParameters, minStringLength) - 0usize];
18500    ["Offset of field: BNStringDetectionParameters::utf8Enabled"]
18501        [::std::mem::offset_of!(BNStringDetectionParameters, utf8Enabled) - 8usize];
18502    ["Offset of field: BNStringDetectionParameters::utf16Enabled"]
18503        [::std::mem::offset_of!(BNStringDetectionParameters, utf16Enabled) - 9usize];
18504    ["Offset of field: BNStringDetectionParameters::utf32Enabled"]
18505        [::std::mem::offset_of!(BNStringDetectionParameters, utf32Enabled) - 10usize];
18506    ["Offset of field: BNStringDetectionParameters::unicodeBlockNames"]
18507        [::std::mem::offset_of!(BNStringDetectionParameters, unicodeBlockNames) - 16usize];
18508    ["Offset of field: BNStringDetectionParameters::unicodeBlockNameCount"]
18509        [::std::mem::offset_of!(BNStringDetectionParameters, unicodeBlockNameCount) - 24usize];
18510};
18511impl Default for BNStringDetectionParameters {
18512    fn default() -> Self {
18513        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
18514        unsafe {
18515            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
18516            s.assume_init()
18517        }
18518    }
18519}
18520unsafe extern "C" {
18521    #[doc = " A compiled string detector. Immutable once created, so a single instance may be shared\n across threads. Free with BNFreeStringDetector."]
18522    pub fn BNCreateStringDetector(
18523        params: *const BNStringDetectionParameters,
18524    ) -> *mut BNStringDetector;
18525}
18526unsafe extern "C" {
18527    pub fn BNFreeStringDetector(detector: *mut BNStringDetector);
18528}
18529unsafe extern "C" {
18530    #[doc = " Detects strings starting within the first blockLen bytes of data. Strings may extend up to\n dataLen bytes, allowing callers to scan large buffers in chunks with a BN_MAX_STRING_LENGTH\n overlap tail. lastFoundString (optional, in/out, zero-initialize before the first call)\n carries overlap state across consecutive calls so strings spanning a chunk boundary are not\n reported twice. Result addresses are relative to baseAddress. Free the result with\n BNFreeStringReferenceList."]
18531    pub fn BNStringDetectorDetectStrings(
18532        detector: *mut BNStringDetector,
18533        data: *const u8,
18534        dataLen: usize,
18535        blockLen: usize,
18536        baseAddress: u64,
18537        lastFoundString: *mut BNStringReference,
18538        count: *mut usize,
18539    ) -> *mut BNStringReference;
18540}
18541unsafe extern "C" {
18542    pub fn BNGetDerivedStrings(view: *mut BNBinaryView, count: *mut usize) -> *mut BNDerivedString;
18543}
18544unsafe extern "C" {
18545    pub fn BNGetDerivedStringCodeReferences(
18546        view: *mut BNBinaryView,
18547        str_: *mut BNDerivedString,
18548        count: *mut usize,
18549        limit: bool,
18550        maxItems: usize,
18551    ) -> *mut BNReferenceSource;
18552}
18553unsafe extern "C" {
18554    pub fn BNFreeDerivedStringList(strings: *mut BNDerivedString, count: usize);
18555}
18556unsafe extern "C" {
18557    pub fn BNGetStackLayout(func: *mut BNFunction, count: *mut usize)
18558    -> *mut BNVariableNameAndType;
18559}
18560unsafe extern "C" {
18561    pub fn BNFreeVariableNameAndTypeList(vars: *mut BNVariableNameAndType, count: usize);
18562}
18563unsafe extern "C" {
18564    pub fn BNCreateAutoStackVariable(
18565        func: *mut BNFunction,
18566        offset: i64,
18567        type_: *mut BNTypeWithConfidence,
18568        name: *const ::std::os::raw::c_char,
18569    );
18570}
18571unsafe extern "C" {
18572    pub fn BNCreateUserStackVariable(
18573        func: *mut BNFunction,
18574        offset: i64,
18575        type_: *mut BNTypeWithConfidence,
18576        name: *const ::std::os::raw::c_char,
18577    );
18578}
18579unsafe extern "C" {
18580    pub fn BNDeleteAutoStackVariable(func: *mut BNFunction, offset: i64);
18581}
18582unsafe extern "C" {
18583    pub fn BNDeleteUserStackVariable(func: *mut BNFunction, offset: i64);
18584}
18585unsafe extern "C" {
18586    pub fn BNGetStackVariableAtFrameOffset(
18587        func: *mut BNFunction,
18588        arch: *mut BNArchitecture,
18589        addr: u64,
18590        offset: i64,
18591        var: *mut BNVariableNameAndType,
18592    ) -> bool;
18593}
18594unsafe extern "C" {
18595    pub fn BNGetStackVariableAtFrameOffsetAfterInstruction(
18596        func: *mut BNFunction,
18597        arch: *mut BNArchitecture,
18598        addr: u64,
18599        offset: i64,
18600        var: *mut BNVariableNameAndType,
18601    ) -> bool;
18602}
18603unsafe extern "C" {
18604    pub fn BNFreeVariableNameAndType(var: *mut BNVariableNameAndType);
18605}
18606unsafe extern "C" {
18607    pub fn BNGetFunctionVariables(
18608        func: *mut BNFunction,
18609        count: *mut usize,
18610    ) -> *mut BNVariableNameAndType;
18611}
18612unsafe extern "C" {
18613    pub fn BNCreateAutoVariable(
18614        func: *mut BNFunction,
18615        var: *const BNVariable,
18616        type_: *mut BNTypeWithConfidence,
18617        name: *const ::std::os::raw::c_char,
18618        ignoreDisjointUses: bool,
18619    );
18620}
18621unsafe extern "C" {
18622    pub fn BNCreateUserVariable(
18623        func: *mut BNFunction,
18624        var: *const BNVariable,
18625        type_: *mut BNTypeWithConfidence,
18626        name: *const ::std::os::raw::c_char,
18627        ignoreDisjointUses: bool,
18628    );
18629}
18630unsafe extern "C" {
18631    pub fn BNDeleteUserVariable(func: *mut BNFunction, var: *const BNVariable);
18632}
18633unsafe extern "C" {
18634    pub fn BNIsVariableUserDefined(func: *mut BNFunction, var: *const BNVariable) -> bool;
18635}
18636unsafe extern "C" {
18637    pub fn BNGetVariableType(func: *mut BNFunction, var: *const BNVariable)
18638    -> BNTypeWithConfidence;
18639}
18640unsafe extern "C" {
18641    pub fn BNGetVariableName(
18642        func: *mut BNFunction,
18643        var: *const BNVariable,
18644    ) -> *mut ::std::os::raw::c_char;
18645}
18646unsafe extern "C" {
18647    pub fn BNGetVariableNameOrDefault(
18648        func: *mut BNFunction,
18649        var: *const BNVariable,
18650    ) -> *mut ::std::os::raw::c_char;
18651}
18652unsafe extern "C" {
18653    pub fn BNGetLastSeenVariableNameOrDefault(
18654        func: *mut BNFunction,
18655        var: *const BNVariable,
18656    ) -> *mut ::std::os::raw::c_char;
18657}
18658unsafe extern "C" {
18659    pub fn BNToVariableIdentifier(var: *const BNVariable) -> u64;
18660}
18661unsafe extern "C" {
18662    pub fn BNFromVariableIdentifier(id: u64) -> BNVariable;
18663}
18664unsafe extern "C" {
18665    pub fn BNGetFunctionVariableDeadStoreElimination(
18666        func: *mut BNFunction,
18667        var: *const BNVariable,
18668    ) -> BNDeadStoreElimination;
18669}
18670unsafe extern "C" {
18671    pub fn BNSetFunctionVariableDeadStoreElimination(
18672        func: *mut BNFunction,
18673        var: *const BNVariable,
18674        mode: BNDeadStoreElimination,
18675    );
18676}
18677unsafe extern "C" {
18678    pub fn BNGetExprFolding(func: *mut BNFunction, addr: u64) -> BNExprFolding;
18679}
18680unsafe extern "C" {
18681    pub fn BNSetExprFolding(func: *mut BNFunction, addr: u64, mode: BNExprFolding);
18682}
18683unsafe extern "C" {
18684    pub fn BNIsConditionInverted(func: *mut BNFunction, addr: u64) -> bool;
18685}
18686unsafe extern "C" {
18687    pub fn BNSetConditionInverted(func: *mut BNFunction, addr: u64, invert: bool);
18688}
18689unsafe extern "C" {
18690    pub fn BNGetEarlyReturn(func: *mut BNFunction, addr: u64) -> BNEarlyReturn;
18691}
18692unsafe extern "C" {
18693    pub fn BNSetEarlyReturn(func: *mut BNFunction, addr: u64, mode: BNEarlyReturn);
18694}
18695unsafe extern "C" {
18696    pub fn BNGetSwitchRecovery(func: *mut BNFunction, addr: u64) -> BNSwitchRecovery;
18697}
18698unsafe extern "C" {
18699    pub fn BNSetSwitchRecovery(func: *mut BNFunction, addr: u64, mode: BNSwitchRecovery);
18700}
18701unsafe extern "C" {
18702    pub fn BNGetMergedVariables(func: *mut BNFunction, count: *mut usize) -> *mut BNMergedVariable;
18703}
18704unsafe extern "C" {
18705    pub fn BNFreeMergedVariableList(vars: *mut BNMergedVariable, count: usize);
18706}
18707unsafe extern "C" {
18708    pub fn BNMergeVariables(
18709        func: *mut BNFunction,
18710        target: *const BNVariable,
18711        sources: *const BNVariable,
18712        sourceCount: usize,
18713    );
18714}
18715unsafe extern "C" {
18716    pub fn BNUnmergeVariables(
18717        func: *mut BNFunction,
18718        target: *const BNVariable,
18719        sources: *const BNVariable,
18720        sourceCount: usize,
18721    );
18722}
18723unsafe extern "C" {
18724    pub fn BNGetSplitVariables(func: *mut BNFunction, count: *mut usize) -> *mut BNVariable;
18725}
18726unsafe extern "C" {
18727    pub fn BNSplitVariable(func: *mut BNFunction, var: *const BNVariable);
18728}
18729unsafe extern "C" {
18730    pub fn BNUnsplitVariable(func: *mut BNFunction, var: *const BNVariable);
18731}
18732unsafe extern "C" {
18733    pub fn BNGetFunctionCallSites(
18734        func: *mut BNFunction,
18735        count: *mut usize,
18736    ) -> *mut BNReferenceSource;
18737}
18738unsafe extern "C" {
18739    pub fn BNGetCallees(
18740        view: *mut BNBinaryView,
18741        callSite: *mut BNReferenceSource,
18742        count: *mut usize,
18743    ) -> *mut u64;
18744}
18745unsafe extern "C" {
18746    pub fn BNGetCallers(
18747        view: *mut BNBinaryView,
18748        callee: u64,
18749        count: *mut usize,
18750    ) -> *mut BNReferenceSource;
18751}
18752unsafe extern "C" {
18753    pub fn BNSetAutoIndirectBranches(
18754        func: *mut BNFunction,
18755        sourceArch: *mut BNArchitecture,
18756        source: u64,
18757        branches: *mut BNArchitectureAndAddress,
18758        count: usize,
18759    );
18760}
18761unsafe extern "C" {
18762    pub fn BNSetUserIndirectBranches(
18763        func: *mut BNFunction,
18764        sourceArch: *mut BNArchitecture,
18765        source: u64,
18766        branches: *mut BNArchitectureAndAddress,
18767        count: usize,
18768    );
18769}
18770unsafe extern "C" {
18771    pub fn BNSetGuidedSourceBlocks(
18772        func: *mut BNFunction,
18773        addresses: *mut BNArchitectureAndAddress,
18774        count: usize,
18775    );
18776}
18777unsafe extern "C" {
18778    pub fn BNAddGuidedSourceBlocks(
18779        func: *mut BNFunction,
18780        addresses: *mut BNArchitectureAndAddress,
18781        count: usize,
18782    );
18783}
18784unsafe extern "C" {
18785    pub fn BNRemoveGuidedSourceBlocks(
18786        func: *mut BNFunction,
18787        addresses: *mut BNArchitectureAndAddress,
18788        count: usize,
18789    );
18790}
18791unsafe extern "C" {
18792    pub fn BNIsGuidedSourceBlock(
18793        func: *mut BNFunction,
18794        arch: *mut BNArchitecture,
18795        addr: u64,
18796    ) -> bool;
18797}
18798unsafe extern "C" {
18799    pub fn BNGetGuidedSourceBlocks(
18800        func: *mut BNFunction,
18801        count: *mut usize,
18802    ) -> *mut BNArchitectureAndAddress;
18803}
18804unsafe extern "C" {
18805    pub fn BNHasGuidedSourceBlocks(func: *mut BNFunction) -> bool;
18806}
18807unsafe extern "C" {
18808    pub fn BNFreeArchitectureAndAddressList(addresses: *mut BNArchitectureAndAddress);
18809}
18810unsafe extern "C" {
18811    pub fn BNGetIndirectBranches(
18812        func: *mut BNFunction,
18813        count: *mut usize,
18814    ) -> *mut BNIndirectBranchInfo;
18815}
18816unsafe extern "C" {
18817    pub fn BNGetIndirectBranchesAt(
18818        func: *mut BNFunction,
18819        arch: *mut BNArchitecture,
18820        addr: u64,
18821        count: *mut usize,
18822    ) -> *mut BNIndirectBranchInfo;
18823}
18824unsafe extern "C" {
18825    pub fn BNFreeIndirectBranchList(branches: *mut BNIndirectBranchInfo);
18826}
18827unsafe extern "C" {
18828    pub fn BNGetCalleeForAnalysis(
18829        func: *mut BNFunction,
18830        platform: *mut BNPlatform,
18831        addr: u64,
18832        exact: bool,
18833    ) -> *mut BNFunction;
18834}
18835unsafe extern "C" {
18836    pub fn BNGetUnresolvedIndirectBranches(
18837        func: *mut BNFunction,
18838        count: *mut usize,
18839    ) -> *mut BNArchitectureAndAddress;
18840}
18841unsafe extern "C" {
18842    pub fn BNHasUnresolvedIndirectBranches(func: *mut BNFunction) -> bool;
18843}
18844unsafe extern "C" {
18845    pub fn BNFunctionToggleRegion(func: *mut BNFunction, hash: u64);
18846}
18847unsafe extern "C" {
18848    pub fn BNFunctionIsRegionCollapsed(func: *mut BNFunction, hash: u64) -> bool;
18849}
18850unsafe extern "C" {
18851    pub fn BNFunctionExpandAll(func: *mut BNFunction);
18852}
18853unsafe extern "C" {
18854    pub fn BNFunctionCollapseRegion(func: *mut BNFunction, hash: u64);
18855}
18856unsafe extern "C" {
18857    pub fn BNFunctionExpandRegion(func: *mut BNFunction, hash: u64);
18858}
18859unsafe extern "C" {
18860    pub fn BNFunctionStoreMetadata(
18861        func: *mut BNFunction,
18862        key: *const ::std::os::raw::c_char,
18863        value: *mut BNMetadata,
18864        flags: BNMetadataStoreFlag,
18865    );
18866}
18867unsafe extern "C" {
18868    pub fn BNFunctionQueryMetadata(
18869        func: *mut BNFunction,
18870        key: *const ::std::os::raw::c_char,
18871    ) -> *mut BNMetadata;
18872}
18873unsafe extern "C" {
18874    pub fn BNFunctionRemoveMetadata(func: *mut BNFunction, key: *const ::std::os::raw::c_char);
18875}
18876unsafe extern "C" {
18877    pub fn BNFunctionGetMetadata(func: *mut BNFunction) -> *mut BNMetadata;
18878}
18879unsafe extern "C" {
18880    pub fn BNFunctionGetAutoMetadata(func: *mut BNFunction) -> *mut BNMetadata;
18881}
18882unsafe extern "C" {
18883    pub fn BNSetAutoCallTypeAdjustment(
18884        func: *mut BNFunction,
18885        arch: *mut BNArchitecture,
18886        addr: u64,
18887        type_: *mut BNTypeWithConfidence,
18888    );
18889}
18890unsafe extern "C" {
18891    pub fn BNSetUserCallTypeAdjustment(
18892        func: *mut BNFunction,
18893        arch: *mut BNArchitecture,
18894        addr: u64,
18895        type_: *mut BNTypeWithConfidence,
18896    );
18897}
18898unsafe extern "C" {
18899    pub fn BNSetAutoCallStackAdjustment(
18900        func: *mut BNFunction,
18901        arch: *mut BNArchitecture,
18902        addr: u64,
18903        adjust: i64,
18904        confidence: u8,
18905    );
18906}
18907unsafe extern "C" {
18908    pub fn BNSetUserCallStackAdjustment(
18909        func: *mut BNFunction,
18910        arch: *mut BNArchitecture,
18911        addr: u64,
18912        adjust: i64,
18913        confidence: u8,
18914    );
18915}
18916unsafe extern "C" {
18917    pub fn BNSetAutoCallRegisterStackAdjustment(
18918        func: *mut BNFunction,
18919        arch: *mut BNArchitecture,
18920        addr: u64,
18921        adjust: *mut BNRegisterStackAdjustment,
18922        count: usize,
18923    );
18924}
18925unsafe extern "C" {
18926    pub fn BNSetUserCallRegisterStackAdjustment(
18927        func: *mut BNFunction,
18928        arch: *mut BNArchitecture,
18929        addr: u64,
18930        adjust: *mut BNRegisterStackAdjustment,
18931        count: usize,
18932    );
18933}
18934unsafe extern "C" {
18935    pub fn BNSetAutoCallRegisterStackAdjustmentForRegisterStack(
18936        func: *mut BNFunction,
18937        arch: *mut BNArchitecture,
18938        addr: u64,
18939        regStack: u32,
18940        adjust: i32,
18941        confidence: u8,
18942    );
18943}
18944unsafe extern "C" {
18945    pub fn BNSetUserCallRegisterStackAdjustmentForRegisterStack(
18946        func: *mut BNFunction,
18947        arch: *mut BNArchitecture,
18948        addr: u64,
18949        regStack: u32,
18950        adjust: i32,
18951        confidence: u8,
18952    );
18953}
18954unsafe extern "C" {
18955    pub fn BNGetCallTypeAdjustment(
18956        func: *mut BNFunction,
18957        arch: *mut BNArchitecture,
18958        addr: u64,
18959    ) -> BNTypeWithConfidence;
18960}
18961unsafe extern "C" {
18962    pub fn BNGetCallStackAdjustment(
18963        func: *mut BNFunction,
18964        arch: *mut BNArchitecture,
18965        addr: u64,
18966    ) -> BNOffsetWithConfidence;
18967}
18968unsafe extern "C" {
18969    pub fn BNGetCallRegisterStackAdjustment(
18970        func: *mut BNFunction,
18971        arch: *mut BNArchitecture,
18972        addr: u64,
18973        count: *mut usize,
18974    ) -> *mut BNRegisterStackAdjustment;
18975}
18976unsafe extern "C" {
18977    pub fn BNGetCallRegisterStackAdjustmentForRegisterStack(
18978        func: *mut BNFunction,
18979        arch: *mut BNArchitecture,
18980        addr: u64,
18981        regStack: u32,
18982    ) -> BNRegisterStackAdjustment;
18983}
18984unsafe extern "C" {
18985    pub fn BNIsCallInstruction(func: *mut BNFunction, arch: *mut BNArchitecture, addr: u64)
18986    -> bool;
18987}
18988unsafe extern "C" {
18989    pub fn BNGetFunctionBlockAnnotations(
18990        func: *mut BNFunction,
18991        arch: *mut BNArchitecture,
18992        addr: u64,
18993        count: *mut usize,
18994    ) -> *mut BNInstructionTextLine;
18995}
18996unsafe extern "C" {
18997    pub fn BNGetFunctionBlockSortHint(
18998        func: *mut BNFunction,
18999        arch: *mut BNArchitecture,
19000        addr: u64,
19001        result: *mut i64,
19002    ) -> bool;
19003}
19004unsafe extern "C" {
19005    pub fn BNGetIntegerConstantDisplayType(
19006        func: *mut BNFunction,
19007        arch: *mut BNArchitecture,
19008        instrAddr: u64,
19009        value: u64,
19010        operand: usize,
19011    ) -> BNIntegerDisplayType;
19012}
19013unsafe extern "C" {
19014    pub fn BNSetIntegerConstantDisplayType(
19015        func: *mut BNFunction,
19016        arch: *mut BNArchitecture,
19017        instrAddr: u64,
19018        value: u64,
19019        operand: usize,
19020        type_: BNIntegerDisplayType,
19021        typeID: *const ::std::os::raw::c_char,
19022    );
19023}
19024unsafe extern "C" {
19025    pub fn BNGetIntegerConstantDisplayTypeEnumerationType(
19026        func: *mut BNFunction,
19027        arch: *mut BNArchitecture,
19028        instrAddr: u64,
19029        value: u64,
19030        operand: usize,
19031    ) -> *mut ::std::os::raw::c_char;
19032}
19033unsafe extern "C" {
19034    pub fn BNIsFunctionTooLarge(func: *mut BNFunction) -> bool;
19035}
19036unsafe extern "C" {
19037    pub fn BNIsFunctionAnalysisSkipped(func: *mut BNFunction) -> bool;
19038}
19039unsafe extern "C" {
19040    pub fn BNGetAnalysisSkipReason(func: *mut BNFunction) -> BNAnalysisSkipReason;
19041}
19042unsafe extern "C" {
19043    pub fn BNGetFunctionAnalysisSkipOverride(
19044        func: *mut BNFunction,
19045    ) -> BNFunctionAnalysisSkipOverride;
19046}
19047unsafe extern "C" {
19048    pub fn BNSetFunctionAnalysisSkipOverride(
19049        func: *mut BNFunction,
19050        skip: BNFunctionAnalysisSkipOverride,
19051    );
19052}
19053unsafe extern "C" {
19054    pub fn BNGetGotoLabelName(func: *mut BNFunction, labelId: u64) -> *mut ::std::os::raw::c_char;
19055}
19056unsafe extern "C" {
19057    pub fn BNSetUserGotoLabelName(
19058        func: *mut BNFunction,
19059        labelId: u64,
19060        name: *const ::std::os::raw::c_char,
19061    );
19062}
19063unsafe extern "C" {
19064    #[doc = " BNAnalyzeBasicBlockContext operations"]
19065    pub fn BNAnalyzeBasicBlocksContextCreateBasicBlock(
19066        abb: *mut BNBasicBlockAnalysisContext,
19067        arch: *mut BNArchitecture,
19068        addr: u64,
19069    ) -> *mut BNBasicBlock;
19070}
19071unsafe extern "C" {
19072    pub fn BNAnalyzeBasicBlocksContextAddBasicBlockToFunction(
19073        abb: *mut BNBasicBlockAnalysisContext,
19074        block: *mut BNBasicBlock,
19075    );
19076}
19077unsafe extern "C" {
19078    pub fn BNAnalyzeBasicBlocksContextAddTempReference(
19079        abb: *mut BNBasicBlockAnalysisContext,
19080        target: *mut BNFunction,
19081    );
19082}
19083unsafe extern "C" {
19084    pub fn BNAnalyzeBasicBlocksContextSetDirectCodeReferences(
19085        abb: *mut BNBasicBlockAnalysisContext,
19086        sources: *mut BNArchitectureAndAddress,
19087        targets: *mut u64,
19088        count: usize,
19089    );
19090}
19091unsafe extern "C" {
19092    pub fn BNAnalyzeBasicBlocksContextSetDirectNoReturnCalls(
19093        abb: *mut BNBasicBlockAnalysisContext,
19094        sources: *mut BNArchitectureAndAddress,
19095        count: usize,
19096    );
19097}
19098unsafe extern "C" {
19099    pub fn BNAnalyzeBasicBlocksContextSetContextualFunctionReturns(
19100        abb: *mut BNBasicBlockAnalysisContext,
19101        sources: *mut BNArchitectureAndAddress,
19102        values: *mut bool,
19103        count: usize,
19104    );
19105}
19106unsafe extern "C" {
19107    pub fn BNAnalyzeBasicBlocksContextSetHaltedDisassemblyAddresses(
19108        abb: *mut BNBasicBlockAnalysisContext,
19109        sources: *mut BNArchitectureAndAddress,
19110        count: usize,
19111    );
19112}
19113unsafe extern "C" {
19114    pub fn BNAnalyzeBasicBlocksContextSetInlinedUnresolvedIndirectBranches(
19115        abb: *mut BNBasicBlockAnalysisContext,
19116        locations: *mut BNArchitectureAndAddress,
19117        count: usize,
19118    );
19119}
19120unsafe extern "C" {
19121    pub fn BNGetParametersForAnalysis(view: *mut BNBinaryView) -> BNAnalysisParameters;
19122}
19123unsafe extern "C" {
19124    pub fn BNSetParametersForAnalysis(view: *mut BNBinaryView, params: BNAnalysisParameters);
19125}
19126unsafe extern "C" {
19127    pub fn BNGetMaxFunctionSizeForAnalysis(view: *mut BNBinaryView) -> u64;
19128}
19129unsafe extern "C" {
19130    pub fn BNSetMaxFunctionSizeForAnalysis(view: *mut BNBinaryView, size: u64);
19131}
19132unsafe extern "C" {
19133    pub fn BNGetNewAutoFunctionAnalysisSuppressed(view: *mut BNBinaryView) -> bool;
19134}
19135unsafe extern "C" {
19136    pub fn BNSetNewAutoFunctionAnalysisSuppressed(view: *mut BNBinaryView, suppress: bool);
19137}
19138unsafe extern "C" {
19139    pub fn BNAddAnalysisCompletionEvent(
19140        view: *mut BNBinaryView,
19141        ctxt: *mut ::std::os::raw::c_void,
19142        callback: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
19143    ) -> *mut BNAnalysisCompletionEvent;
19144}
19145unsafe extern "C" {
19146    pub fn BNNewAnalysisCompletionEventReference(
19147        event: *mut BNAnalysisCompletionEvent,
19148    ) -> *mut BNAnalysisCompletionEvent;
19149}
19150unsafe extern "C" {
19151    pub fn BNFreeAnalysisCompletionEvent(event: *mut BNAnalysisCompletionEvent);
19152}
19153unsafe extern "C" {
19154    pub fn BNCancelAnalysisCompletionEvent(event: *mut BNAnalysisCompletionEvent);
19155}
19156unsafe extern "C" {
19157    pub fn BNShouldSkipTargetAnalysis(
19158        view: *mut BNBinaryView,
19159        source: *mut BNArchitectureAndAddress,
19160        sourceFunc: *mut BNFunction,
19161        sourceEnd: u64,
19162        target: *mut BNArchitectureAndAddress,
19163    ) -> bool;
19164}
19165unsafe extern "C" {
19166    pub fn BNGetAnalysisInfo(view: *mut BNBinaryView) -> *mut BNAnalysisInfo;
19167}
19168unsafe extern "C" {
19169    pub fn BNFreeAnalysisInfo(info: *mut BNAnalysisInfo);
19170}
19171unsafe extern "C" {
19172    pub fn BNGetAnalysisProgress(view: *mut BNBinaryView) -> BNAnalysisProgress;
19173}
19174unsafe extern "C" {
19175    pub fn BNGetAnalysisState(view: *mut BNBinaryView) -> BNAnalysisState;
19176}
19177unsafe extern "C" {
19178    pub fn BNGetBackgroundAnalysisTask(view: *mut BNBinaryView) -> *mut BNBackgroundTask;
19179}
19180unsafe extern "C" {
19181    pub fn BNGetNextFunctionStartAfterAddress(view: *mut BNBinaryView, addr: u64) -> u64;
19182}
19183unsafe extern "C" {
19184    pub fn BNGetNextBasicBlockStartAfterAddress(view: *mut BNBinaryView, addr: u64) -> u64;
19185}
19186unsafe extern "C" {
19187    pub fn BNGetNextDataAfterAddress(view: *mut BNBinaryView, addr: u64) -> u64;
19188}
19189unsafe extern "C" {
19190    pub fn BNGetNextDataVariableStartAfterAddress(view: *mut BNBinaryView, addr: u64) -> u64;
19191}
19192unsafe extern "C" {
19193    pub fn BNGetPreviousFunctionStartBeforeAddress(view: *mut BNBinaryView, addr: u64) -> u64;
19194}
19195unsafe extern "C" {
19196    pub fn BNGetPreviousBasicBlockStartBeforeAddress(view: *mut BNBinaryView, addr: u64) -> u64;
19197}
19198unsafe extern "C" {
19199    pub fn BNGetPreviousBasicBlockEndBeforeAddress(view: *mut BNBinaryView, addr: u64) -> u64;
19200}
19201unsafe extern "C" {
19202    pub fn BNGetPreviousDataBeforeAddress(view: *mut BNBinaryView, addr: u64) -> u64;
19203}
19204unsafe extern "C" {
19205    pub fn BNGetPreviousDataVariableStartBeforeAddress(view: *mut BNBinaryView, addr: u64) -> u64;
19206}
19207unsafe extern "C" {
19208    pub fn BNCreateLinearViewDisassembly(
19209        view: *mut BNBinaryView,
19210        settings: *mut BNDisassemblySettings,
19211    ) -> *mut BNLinearViewObject;
19212}
19213unsafe extern "C" {
19214    pub fn BNCreateLinearViewLiftedIL(
19215        view: *mut BNBinaryView,
19216        settings: *mut BNDisassemblySettings,
19217    ) -> *mut BNLinearViewObject;
19218}
19219unsafe extern "C" {
19220    pub fn BNCreateLinearViewLowLevelIL(
19221        view: *mut BNBinaryView,
19222        settings: *mut BNDisassemblySettings,
19223    ) -> *mut BNLinearViewObject;
19224}
19225unsafe extern "C" {
19226    pub fn BNCreateLinearViewLowLevelILSSAForm(
19227        view: *mut BNBinaryView,
19228        settings: *mut BNDisassemblySettings,
19229    ) -> *mut BNLinearViewObject;
19230}
19231unsafe extern "C" {
19232    pub fn BNCreateLinearViewMediumLevelIL(
19233        view: *mut BNBinaryView,
19234        settings: *mut BNDisassemblySettings,
19235    ) -> *mut BNLinearViewObject;
19236}
19237unsafe extern "C" {
19238    pub fn BNCreateLinearViewMediumLevelILSSAForm(
19239        view: *mut BNBinaryView,
19240        settings: *mut BNDisassemblySettings,
19241    ) -> *mut BNLinearViewObject;
19242}
19243unsafe extern "C" {
19244    pub fn BNCreateLinearViewMappedMediumLevelIL(
19245        view: *mut BNBinaryView,
19246        settings: *mut BNDisassemblySettings,
19247    ) -> *mut BNLinearViewObject;
19248}
19249unsafe extern "C" {
19250    pub fn BNCreateLinearViewMappedMediumLevelILSSAForm(
19251        view: *mut BNBinaryView,
19252        settings: *mut BNDisassemblySettings,
19253    ) -> *mut BNLinearViewObject;
19254}
19255unsafe extern "C" {
19256    pub fn BNCreateLinearViewHighLevelIL(
19257        view: *mut BNBinaryView,
19258        settings: *mut BNDisassemblySettings,
19259    ) -> *mut BNLinearViewObject;
19260}
19261unsafe extern "C" {
19262    pub fn BNCreateLinearViewHighLevelILSSAForm(
19263        view: *mut BNBinaryView,
19264        settings: *mut BNDisassemblySettings,
19265    ) -> *mut BNLinearViewObject;
19266}
19267unsafe extern "C" {
19268    pub fn BNCreateLinearViewLanguageRepresentation(
19269        view: *mut BNBinaryView,
19270        settings: *mut BNDisassemblySettings,
19271        language: *const ::std::os::raw::c_char,
19272    ) -> *mut BNLinearViewObject;
19273}
19274unsafe extern "C" {
19275    pub fn BNCreateLinearViewDataOnly(
19276        view: *mut BNBinaryView,
19277        settings: *mut BNDisassemblySettings,
19278    ) -> *mut BNLinearViewObject;
19279}
19280unsafe extern "C" {
19281    pub fn BNCreateLinearViewSingleFunctionDisassembly(
19282        func: *mut BNFunction,
19283        settings: *mut BNDisassemblySettings,
19284    ) -> *mut BNLinearViewObject;
19285}
19286unsafe extern "C" {
19287    pub fn BNCreateLinearViewSingleFunctionLiftedIL(
19288        func: *mut BNFunction,
19289        settings: *mut BNDisassemblySettings,
19290    ) -> *mut BNLinearViewObject;
19291}
19292unsafe extern "C" {
19293    pub fn BNCreateLinearViewSingleFunctionLowLevelIL(
19294        func: *mut BNFunction,
19295        settings: *mut BNDisassemblySettings,
19296    ) -> *mut BNLinearViewObject;
19297}
19298unsafe extern "C" {
19299    pub fn BNCreateLinearViewSingleFunctionLowLevelILSSAForm(
19300        func: *mut BNFunction,
19301        settings: *mut BNDisassemblySettings,
19302    ) -> *mut BNLinearViewObject;
19303}
19304unsafe extern "C" {
19305    pub fn BNCreateLinearViewSingleFunctionMediumLevelIL(
19306        func: *mut BNFunction,
19307        settings: *mut BNDisassemblySettings,
19308    ) -> *mut BNLinearViewObject;
19309}
19310unsafe extern "C" {
19311    pub fn BNCreateLinearViewSingleFunctionMediumLevelILSSAForm(
19312        func: *mut BNFunction,
19313        settings: *mut BNDisassemblySettings,
19314    ) -> *mut BNLinearViewObject;
19315}
19316unsafe extern "C" {
19317    pub fn BNCreateLinearViewSingleFunctionMappedMediumLevelIL(
19318        func: *mut BNFunction,
19319        settings: *mut BNDisassemblySettings,
19320    ) -> *mut BNLinearViewObject;
19321}
19322unsafe extern "C" {
19323    pub fn BNCreateLinearViewSingleFunctionMappedMediumLevelILSSAForm(
19324        func: *mut BNFunction,
19325        settings: *mut BNDisassemblySettings,
19326    ) -> *mut BNLinearViewObject;
19327}
19328unsafe extern "C" {
19329    pub fn BNCreateLinearViewSingleFunctionHighLevelIL(
19330        func: *mut BNFunction,
19331        settings: *mut BNDisassemblySettings,
19332    ) -> *mut BNLinearViewObject;
19333}
19334unsafe extern "C" {
19335    pub fn BNCreateLinearViewSingleFunctionHighLevelILSSAForm(
19336        func: *mut BNFunction,
19337        settings: *mut BNDisassemblySettings,
19338    ) -> *mut BNLinearViewObject;
19339}
19340unsafe extern "C" {
19341    pub fn BNCreateLinearViewSingleFunctionLanguageRepresentation(
19342        func: *mut BNFunction,
19343        settings: *mut BNDisassemblySettings,
19344        language: *const ::std::os::raw::c_char,
19345    ) -> *mut BNLinearViewObject;
19346}
19347unsafe extern "C" {
19348    pub fn BNNewLinearViewObjectReference(obj: *mut BNLinearViewObject) -> *mut BNLinearViewObject;
19349}
19350unsafe extern "C" {
19351    pub fn BNFreeLinearViewObject(obj: *mut BNLinearViewObject);
19352}
19353unsafe extern "C" {
19354    pub fn BNGetFirstLinearViewObjectChild(obj: *mut BNLinearViewObject)
19355    -> *mut BNLinearViewObject;
19356}
19357unsafe extern "C" {
19358    pub fn BNGetLastLinearViewObjectChild(obj: *mut BNLinearViewObject) -> *mut BNLinearViewObject;
19359}
19360unsafe extern "C" {
19361    pub fn BNGetPreviousLinearViewObjectChild(
19362        parent: *mut BNLinearViewObject,
19363        child: *mut BNLinearViewObject,
19364    ) -> *mut BNLinearViewObject;
19365}
19366unsafe extern "C" {
19367    pub fn BNGetNextLinearViewObjectChild(
19368        parent: *mut BNLinearViewObject,
19369        child: *mut BNLinearViewObject,
19370    ) -> *mut BNLinearViewObject;
19371}
19372unsafe extern "C" {
19373    pub fn BNGetLinearViewObjectChildForAddress(
19374        parent: *mut BNLinearViewObject,
19375        addr: u64,
19376    ) -> *mut BNLinearViewObject;
19377}
19378unsafe extern "C" {
19379    pub fn BNGetLinearViewObjectChildForIdentifier(
19380        parent: *mut BNLinearViewObject,
19381        id: *mut BNLinearViewObjectIdentifier,
19382    ) -> *mut BNLinearViewObject;
19383}
19384unsafe extern "C" {
19385    pub fn BNGetLinearViewObjectLines(
19386        obj: *mut BNLinearViewObject,
19387        prev: *mut BNLinearViewObject,
19388        next: *mut BNLinearViewObject,
19389        count: *mut usize,
19390    ) -> *mut BNLinearDisassemblyLine;
19391}
19392unsafe extern "C" {
19393    pub fn BNFreeLinearDisassemblyLines(lines: *mut BNLinearDisassemblyLine, count: usize);
19394}
19395unsafe extern "C" {
19396    pub fn BNGetLinearViewObjectStart(obj: *mut BNLinearViewObject) -> u64;
19397}
19398unsafe extern "C" {
19399    pub fn BNGetLinearViewObjectEnd(obj: *mut BNLinearViewObject) -> u64;
19400}
19401unsafe extern "C" {
19402    pub fn BNGetLinearViewObjectIdentifier(
19403        obj: *mut BNLinearViewObject,
19404    ) -> BNLinearViewObjectIdentifier;
19405}
19406unsafe extern "C" {
19407    pub fn BNFreeLinearViewObjectIdentifier(id: *mut BNLinearViewObjectIdentifier);
19408}
19409unsafe extern "C" {
19410    pub fn BNCompareLinearViewObjectChildren(
19411        obj: *mut BNLinearViewObject,
19412        a: *mut BNLinearViewObject,
19413        b: *mut BNLinearViewObject,
19414    ) -> ::std::os::raw::c_int;
19415}
19416unsafe extern "C" {
19417    pub fn BNGetLinearViewObjectOrderingIndexTotal(obj: *mut BNLinearViewObject) -> u64;
19418}
19419unsafe extern "C" {
19420    pub fn BNGetLinearViewObjectOrderingIndexForChild(
19421        parent: *mut BNLinearViewObject,
19422        child: *mut BNLinearViewObject,
19423    ) -> u64;
19424}
19425unsafe extern "C" {
19426    pub fn BNGetLinearViewObjectChildForOrderingIndex(
19427        parent: *mut BNLinearViewObject,
19428        idx: u64,
19429    ) -> *mut BNLinearViewObject;
19430}
19431unsafe extern "C" {
19432    pub fn BNCreateLinearViewCursor(root: *mut BNLinearViewObject) -> *mut BNLinearViewCursor;
19433}
19434unsafe extern "C" {
19435    pub fn BNDuplicateLinearViewCursor(cursor: *mut BNLinearViewCursor) -> *mut BNLinearViewCursor;
19436}
19437unsafe extern "C" {
19438    pub fn BNNewLinearViewCursorReference(
19439        cursor: *mut BNLinearViewCursor,
19440    ) -> *mut BNLinearViewCursor;
19441}
19442unsafe extern "C" {
19443    pub fn BNFreeLinearViewCursor(cursor: *mut BNLinearViewCursor);
19444}
19445unsafe extern "C" {
19446    pub fn BNIsLinearViewCursorBeforeBegin(cursor: *mut BNLinearViewCursor) -> bool;
19447}
19448unsafe extern "C" {
19449    pub fn BNIsLinearViewCursorAfterEnd(cursor: *mut BNLinearViewCursor) -> bool;
19450}
19451unsafe extern "C" {
19452    pub fn BNGetLinearViewCursorCurrentObject(
19453        cursor: *mut BNLinearViewCursor,
19454    ) -> *mut BNLinearViewObject;
19455}
19456unsafe extern "C" {
19457    pub fn BNGetLinearViewCursorPath(
19458        cursor: *mut BNLinearViewCursor,
19459        count: *mut usize,
19460    ) -> *mut BNLinearViewObjectIdentifier;
19461}
19462unsafe extern "C" {
19463    pub fn BNFreeLinearViewCursorPath(objs: *mut BNLinearViewObjectIdentifier, count: usize);
19464}
19465unsafe extern "C" {
19466    pub fn BNGetLinearViewCursorPathObjects(
19467        cursor: *mut BNLinearViewCursor,
19468        count: *mut usize,
19469    ) -> *mut *mut BNLinearViewObject;
19470}
19471unsafe extern "C" {
19472    pub fn BNFreeLinearViewCursorPathObjects(objs: *mut *mut BNLinearViewObject, count: usize);
19473}
19474unsafe extern "C" {
19475    pub fn BNGetLinearViewCursorOrderingIndex(cursor: *mut BNLinearViewCursor) -> BNAddressRange;
19476}
19477unsafe extern "C" {
19478    pub fn BNGetLinearViewCursorOrderingIndexTotal(cursor: *mut BNLinearViewCursor) -> u64;
19479}
19480unsafe extern "C" {
19481    pub fn BNSeekLinearViewCursorToBegin(cursor: *mut BNLinearViewCursor);
19482}
19483unsafe extern "C" {
19484    pub fn BNSeekLinearViewCursorToEnd(cursor: *mut BNLinearViewCursor);
19485}
19486unsafe extern "C" {
19487    pub fn BNSeekLinearViewCursorToAddress(cursor: *mut BNLinearViewCursor, addr: u64);
19488}
19489unsafe extern "C" {
19490    pub fn BNSeekLinearViewCursorToPath(
19491        cursor: *mut BNLinearViewCursor,
19492        ids: *mut BNLinearViewObjectIdentifier,
19493        count: usize,
19494    ) -> bool;
19495}
19496unsafe extern "C" {
19497    pub fn BNSeekLinearViewCursorToPathAndAddress(
19498        cursor: *mut BNLinearViewCursor,
19499        ids: *mut BNLinearViewObjectIdentifier,
19500        count: usize,
19501        addr: u64,
19502    ) -> bool;
19503}
19504unsafe extern "C" {
19505    pub fn BNSeekLinearViewCursorToCursorPath(
19506        cursor: *mut BNLinearViewCursor,
19507        path: *mut BNLinearViewCursor,
19508    ) -> bool;
19509}
19510unsafe extern "C" {
19511    pub fn BNSeekLinearViewCursorToCursorPathAndAddress(
19512        cursor: *mut BNLinearViewCursor,
19513        path: *mut BNLinearViewCursor,
19514        addr: u64,
19515    ) -> bool;
19516}
19517unsafe extern "C" {
19518    pub fn BNSeekLinearViewCursorToOrderingIndex(cursor: *mut BNLinearViewCursor, idx: u64);
19519}
19520unsafe extern "C" {
19521    pub fn BNLinearViewCursorNext(cursor: *mut BNLinearViewCursor) -> bool;
19522}
19523unsafe extern "C" {
19524    pub fn BNLinearViewCursorPrevious(cursor: *mut BNLinearViewCursor) -> bool;
19525}
19526unsafe extern "C" {
19527    pub fn BNGetLinearViewCursorLines(
19528        cursor: *mut BNLinearViewCursor,
19529        count: *mut usize,
19530    ) -> *mut BNLinearDisassemblyLine;
19531}
19532unsafe extern "C" {
19533    pub fn BNCompareLinearViewCursors(
19534        a: *mut BNLinearViewCursor,
19535        b: *mut BNLinearViewCursor,
19536    ) -> ::std::os::raw::c_int;
19537}
19538unsafe extern "C" {
19539    pub fn BNGetLinearViewCursorRenderLayers(
19540        cursor: *mut BNLinearViewCursor,
19541        count: *mut usize,
19542    ) -> *mut *mut BNRenderLayer;
19543}
19544unsafe extern "C" {
19545    pub fn BNAddLinearViewCursorRenderLayer(
19546        cursor: *mut BNLinearViewCursor,
19547        layer: *mut BNRenderLayer,
19548    );
19549}
19550unsafe extern "C" {
19551    pub fn BNRemoveLinearViewCursorRenderLayer(
19552        cursor: *mut BNLinearViewCursor,
19553        layer: *mut BNRenderLayer,
19554    );
19555}
19556unsafe extern "C" {
19557    pub fn BNDefineDataVariable(
19558        view: *mut BNBinaryView,
19559        addr: u64,
19560        type_: *mut BNTypeWithConfidence,
19561    );
19562}
19563unsafe extern "C" {
19564    pub fn BNDefineUserDataVariable(
19565        view: *mut BNBinaryView,
19566        addr: u64,
19567        type_: *mut BNTypeWithConfidence,
19568    );
19569}
19570unsafe extern "C" {
19571    pub fn BNUndefineDataVariable(view: *mut BNBinaryView, addr: u64, blacklist: bool);
19572}
19573unsafe extern "C" {
19574    pub fn BNUndefineUserDataVariable(view: *mut BNBinaryView, addr: u64);
19575}
19576unsafe extern "C" {
19577    pub fn BNGetDataVariables(view: *mut BNBinaryView, count: *mut usize) -> *mut BNDataVariable;
19578}
19579unsafe extern "C" {
19580    pub fn BNFreeDataVariable(var: *mut BNDataVariable);
19581}
19582unsafe extern "C" {
19583    pub fn BNFreeDataVariables(vars: *mut BNDataVariable, count: usize);
19584}
19585unsafe extern "C" {
19586    pub fn BNFreeDataVariableAndName(var: *mut BNDataVariableAndName);
19587}
19588unsafe extern "C" {
19589    pub fn BNFreeDataVariablesAndName(vars: *mut BNDataVariableAndName, count: usize);
19590}
19591unsafe extern "C" {
19592    pub fn BNFreeDataVariableAndNameAndDebugParserList(
19593        vars: *mut BNDataVariableAndNameAndDebugParser,
19594        count: usize,
19595    );
19596}
19597unsafe extern "C" {
19598    pub fn BNGetDataVariableAtAddress(
19599        view: *mut BNBinaryView,
19600        addr: u64,
19601        var: *mut BNDataVariable,
19602    ) -> bool;
19603}
19604unsafe extern "C" {
19605    pub fn BNParseTypeString(
19606        view: *mut BNBinaryView,
19607        text: *const ::std::os::raw::c_char,
19608        result: *mut BNQualifiedNameAndType,
19609        errors: *mut *mut ::std::os::raw::c_char,
19610        typesAllowRedefinition: *mut BNQualifiedNameList,
19611        importDepencencies: bool,
19612    ) -> bool;
19613}
19614unsafe extern "C" {
19615    pub fn BNParseTypesString(
19616        view: *mut BNBinaryView,
19617        text: *const ::std::os::raw::c_char,
19618        options: *const *const ::std::os::raw::c_char,
19619        optionCount: usize,
19620        includeDirs: *const *const ::std::os::raw::c_char,
19621        includeDirCount: usize,
19622        result: *mut BNTypeParserResult,
19623        errors: *mut *mut ::std::os::raw::c_char,
19624        typesAllowRedefinition: *mut BNQualifiedNameList,
19625        importDepencencies: bool,
19626    ) -> bool;
19627}
19628unsafe extern "C" {
19629    pub fn BNFreeQualifiedNameAndType(obj: *mut BNQualifiedNameAndType);
19630}
19631unsafe extern "C" {
19632    pub fn BNFreeQualifiedNameAndTypeArray(obj: *mut BNQualifiedNameAndType, count: usize);
19633}
19634unsafe extern "C" {
19635    pub fn BNFreeQualifiedNameTypeAndId(obj: *mut BNQualifiedNameTypeAndId);
19636}
19637unsafe extern "C" {
19638    pub fn BNEscapeTypeName(
19639        name: *const ::std::os::raw::c_char,
19640        escaping: BNTokenEscapingType,
19641    ) -> *mut ::std::os::raw::c_char;
19642}
19643unsafe extern "C" {
19644    pub fn BNUnescapeTypeName(
19645        name: *const ::std::os::raw::c_char,
19646        escaping: BNTokenEscapingType,
19647    ) -> *mut ::std::os::raw::c_char;
19648}
19649unsafe extern "C" {
19650    pub fn BNGetAnalysisTypeList(
19651        view: *mut BNBinaryView,
19652        count: *mut usize,
19653    ) -> *mut BNQualifiedNameAndType;
19654}
19655unsafe extern "C" {
19656    pub fn BNGetAnalysisDependencySortedTypeList(
19657        view: *mut BNBinaryView,
19658        count: *mut usize,
19659    ) -> *mut BNQualifiedNameAndType;
19660}
19661unsafe extern "C" {
19662    pub fn BNFreeTypeAndNameList(types: *mut BNQualifiedNameAndType, count: usize);
19663}
19664unsafe extern "C" {
19665    pub fn BNFreeTypeIdList(types: *mut BNQualifiedNameTypeAndId, count: usize);
19666}
19667unsafe extern "C" {
19668    pub fn BNGetAnalysisTypeNames(
19669        view: *mut BNBinaryView,
19670        count: *mut usize,
19671        matching: *const ::std::os::raw::c_char,
19672    ) -> *mut BNQualifiedName;
19673}
19674unsafe extern "C" {
19675    pub fn BNFreeTypeNameList(names: *mut BNQualifiedName, count: usize);
19676}
19677unsafe extern "C" {
19678    pub fn BNGetAnalysisTypeContainer(view: *mut BNBinaryView) -> *mut BNTypeContainer;
19679}
19680unsafe extern "C" {
19681    pub fn BNGetAnalysisAutoTypeContainer(view: *mut BNBinaryView) -> *mut BNTypeContainer;
19682}
19683unsafe extern "C" {
19684    pub fn BNGetAnalysisUserTypeContainer(view: *mut BNBinaryView) -> *mut BNTypeContainer;
19685}
19686unsafe extern "C" {
19687    pub fn BNGetAnalysisTypeByName(
19688        view: *mut BNBinaryView,
19689        name: *mut BNQualifiedName,
19690    ) -> *mut BNType;
19691}
19692unsafe extern "C" {
19693    pub fn BNGetAnalysisTypeByRef(
19694        view: *mut BNBinaryView,
19695        ref_: *mut BNNamedTypeReference,
19696    ) -> *mut BNType;
19697}
19698unsafe extern "C" {
19699    pub fn BNGetAnalysisTypeById(
19700        view: *mut BNBinaryView,
19701        id: *const ::std::os::raw::c_char,
19702    ) -> *mut BNType;
19703}
19704unsafe extern "C" {
19705    pub fn BNGetAnalysisTypeId(
19706        view: *mut BNBinaryView,
19707        name: *mut BNQualifiedName,
19708    ) -> *mut ::std::os::raw::c_char;
19709}
19710unsafe extern "C" {
19711    pub fn BNGetAnalysisTypeNameById(
19712        view: *mut BNBinaryView,
19713        id: *const ::std::os::raw::c_char,
19714    ) -> BNQualifiedName;
19715}
19716unsafe extern "C" {
19717    pub fn BNIsAnalysisTypeAutoDefined(view: *mut BNBinaryView, name: *mut BNQualifiedName)
19718    -> bool;
19719}
19720unsafe extern "C" {
19721    pub fn BNDefineAnalysisType(
19722        view: *mut BNBinaryView,
19723        id: *const ::std::os::raw::c_char,
19724        defaultName: *mut BNQualifiedName,
19725        type_: *mut BNType,
19726    ) -> BNQualifiedName;
19727}
19728unsafe extern "C" {
19729    pub fn BNDefineUserAnalysisType(
19730        view: *mut BNBinaryView,
19731        name: *mut BNQualifiedName,
19732        type_: *mut BNType,
19733    );
19734}
19735unsafe extern "C" {
19736    pub fn BNDefineAnalysisTypes(
19737        view: *mut BNBinaryView,
19738        types: *mut BNQualifiedNameTypeAndId,
19739        count: usize,
19740        progress: BNProgressFunction,
19741        progressContext: *mut ::std::os::raw::c_void,
19742        resultIds: *mut *mut *mut ::std::os::raw::c_char,
19743        resultNames: *mut *mut BNQualifiedName,
19744    ) -> usize;
19745}
19746unsafe extern "C" {
19747    pub fn BNDefineUserAnalysisTypes(
19748        view: *mut BNBinaryView,
19749        types: *mut BNQualifiedNameAndType,
19750        count: usize,
19751        progress: BNProgressFunction,
19752        progressContext: *mut ::std::os::raw::c_void,
19753    );
19754}
19755unsafe extern "C" {
19756    pub fn BNUndefineAnalysisType(view: *mut BNBinaryView, id: *const ::std::os::raw::c_char);
19757}
19758unsafe extern "C" {
19759    pub fn BNUndefineUserAnalysisType(view: *mut BNBinaryView, name: *mut BNQualifiedName);
19760}
19761unsafe extern "C" {
19762    pub fn BNRenameAnalysisType(
19763        view: *mut BNBinaryView,
19764        oldName: *mut BNQualifiedName,
19765        newName: *mut BNQualifiedName,
19766    );
19767}
19768unsafe extern "C" {
19769    pub fn BNGetAnalysisSystemCallType(
19770        view: *mut BNBinaryView,
19771        platform: *mut BNPlatform,
19772        id: u32,
19773    ) -> *mut BNType;
19774}
19775unsafe extern "C" {
19776    pub fn BNGetAnalysisSystemCallName(
19777        view: *mut BNBinaryView,
19778        platform: *mut BNPlatform,
19779        id: u32,
19780    ) -> *mut ::std::os::raw::c_char;
19781}
19782unsafe extern "C" {
19783    pub fn BNGenerateAutoTypeId(
19784        source: *const ::std::os::raw::c_char,
19785        name: *mut BNQualifiedName,
19786    ) -> *mut ::std::os::raw::c_char;
19787}
19788unsafe extern "C" {
19789    pub fn BNGenerateAutoPlatformTypeId(
19790        platform: *mut BNPlatform,
19791        name: *mut BNQualifiedName,
19792    ) -> *mut ::std::os::raw::c_char;
19793}
19794unsafe extern "C" {
19795    pub fn BNGenerateAutoDemangledTypeId(name: *mut BNQualifiedName)
19796    -> *mut ::std::os::raw::c_char;
19797}
19798unsafe extern "C" {
19799    pub fn BNGetAutoPlatformTypeIdSource(platform: *mut BNPlatform) -> *mut ::std::os::raw::c_char;
19800}
19801unsafe extern "C" {
19802    pub fn BNGetAutoDemangledTypeIdSource() -> *mut ::std::os::raw::c_char;
19803}
19804unsafe extern "C" {
19805    pub fn BNGenerateAutoDebugTypeId(name: *mut BNQualifiedName) -> *mut ::std::os::raw::c_char;
19806}
19807unsafe extern "C" {
19808    pub fn BNGetAutoDebugTypeIdSource() -> *mut ::std::os::raw::c_char;
19809}
19810unsafe extern "C" {
19811    pub fn BNRegisterPlatformTypes(view: *mut BNBinaryView, platform: *mut BNPlatform);
19812}
19813unsafe extern "C" {
19814    pub fn BNLookupImportedTypePlatform(
19815        view: *mut BNBinaryView,
19816        typeName: *const BNQualifiedName,
19817        platform: *mut *mut BNPlatform,
19818        resultName: *mut BNQualifiedName,
19819    ) -> bool;
19820}
19821unsafe extern "C" {
19822    pub fn BNReanalyzeAllFunctions(view: *mut BNBinaryView);
19823}
19824unsafe extern "C" {
19825    pub fn BNAnalyzeFunction(func: *mut BNFunction);
19826}
19827unsafe extern "C" {
19828    pub fn BNReanalyzeFunction(func: *mut BNFunction, type_: BNFunctionUpdateType);
19829}
19830unsafe extern "C" {
19831    pub fn BNMarkUpdatesRequired(func: *mut BNFunction, type_: BNFunctionUpdateType);
19832}
19833unsafe extern "C" {
19834    pub fn BNMarkCallerUpdatesRequired(func: *mut BNFunction, type_: BNFunctionUpdateType);
19835}
19836unsafe extern "C" {
19837    pub fn BNGetInstructionHighlight(
19838        func: *mut BNFunction,
19839        arch: *mut BNArchitecture,
19840        addr: u64,
19841    ) -> BNHighlightColor;
19842}
19843unsafe extern "C" {
19844    pub fn BNSetAutoInstructionHighlight(
19845        func: *mut BNFunction,
19846        arch: *mut BNArchitecture,
19847        addr: u64,
19848        color: BNHighlightColor,
19849    );
19850}
19851unsafe extern "C" {
19852    pub fn BNSetUserInstructionHighlight(
19853        func: *mut BNFunction,
19854        arch: *mut BNArchitecture,
19855        addr: u64,
19856        color: BNHighlightColor,
19857    );
19858}
19859unsafe extern "C" {
19860    pub fn BNGetBasicBlockHighlight(block: *mut BNBasicBlock) -> BNHighlightColor;
19861}
19862unsafe extern "C" {
19863    pub fn BNSetAutoBasicBlockHighlight(block: *mut BNBasicBlock, color: BNHighlightColor);
19864}
19865unsafe extern "C" {
19866    pub fn BNSetUserBasicBlockHighlight(block: *mut BNBasicBlock, color: BNHighlightColor);
19867}
19868unsafe extern "C" {
19869    pub fn BNFreeTypeContainer(container: *mut BNTypeContainer);
19870}
19871unsafe extern "C" {
19872    pub fn BNDuplicateTypeContainer(container: *mut BNTypeContainer) -> *mut BNTypeContainer;
19873}
19874unsafe extern "C" {
19875    pub fn BNTypeContainerGetId(container: *mut BNTypeContainer) -> *mut ::std::os::raw::c_char;
19876}
19877unsafe extern "C" {
19878    pub fn BNTypeContainerGetName(container: *mut BNTypeContainer) -> *mut ::std::os::raw::c_char;
19879}
19880unsafe extern "C" {
19881    pub fn BNTypeContainerGetType(container: *mut BNTypeContainer) -> BNTypeContainerType;
19882}
19883unsafe extern "C" {
19884    pub fn BNTypeContainerIsMutable(container: *mut BNTypeContainer) -> bool;
19885}
19886unsafe extern "C" {
19887    pub fn BNTypeContainerGetPlatform(container: *mut BNTypeContainer) -> *mut BNPlatform;
19888}
19889unsafe extern "C" {
19890    pub fn BNTypeContainerAddTypes(
19891        container: *mut BNTypeContainer,
19892        typeNames: *const BNQualifiedName,
19893        types: *mut *mut BNType,
19894        typeCount: usize,
19895        progress: BNProgressFunction,
19896        progressContext: *mut ::std::os::raw::c_void,
19897        resultNames: *mut *mut BNQualifiedName,
19898        resultIds: *mut *mut *mut ::std::os::raw::c_char,
19899        resultCount: *mut usize,
19900    ) -> bool;
19901}
19902unsafe extern "C" {
19903    pub fn BNTypeContainerRenameType(
19904        container: *mut BNTypeContainer,
19905        typeId: *const ::std::os::raw::c_char,
19906        newName: *const BNQualifiedName,
19907    ) -> bool;
19908}
19909unsafe extern "C" {
19910    pub fn BNTypeContainerDeleteType(
19911        container: *mut BNTypeContainer,
19912        typeId: *const ::std::os::raw::c_char,
19913    ) -> bool;
19914}
19915unsafe extern "C" {
19916    pub fn BNTypeContainerGetTypeId(
19917        container: *mut BNTypeContainer,
19918        typeName: *const BNQualifiedName,
19919        result: *mut *mut ::std::os::raw::c_char,
19920    ) -> bool;
19921}
19922unsafe extern "C" {
19923    pub fn BNTypeContainerGetTypeName(
19924        container: *mut BNTypeContainer,
19925        typeId: *const ::std::os::raw::c_char,
19926        result: *mut BNQualifiedName,
19927    ) -> bool;
19928}
19929unsafe extern "C" {
19930    pub fn BNTypeContainerGetTypeById(
19931        container: *mut BNTypeContainer,
19932        typeId: *const ::std::os::raw::c_char,
19933        result: *mut *mut BNType,
19934    ) -> bool;
19935}
19936unsafe extern "C" {
19937    pub fn BNTypeContainerGetTypes(
19938        container: *mut BNTypeContainer,
19939        typeIds: *mut *mut *mut ::std::os::raw::c_char,
19940        typeNames: *mut *mut BNQualifiedName,
19941        types: *mut *mut *mut BNType,
19942        count: *mut usize,
19943    ) -> bool;
19944}
19945unsafe extern "C" {
19946    pub fn BNTypeContainerGetTypeByName(
19947        container: *mut BNTypeContainer,
19948        typeName: *const BNQualifiedName,
19949        result: *mut *mut BNType,
19950    ) -> bool;
19951}
19952unsafe extern "C" {
19953    pub fn BNTypeContainerGetTypeIds(
19954        container: *mut BNTypeContainer,
19955        typeIds: *mut *mut *mut ::std::os::raw::c_char,
19956        count: *mut usize,
19957    ) -> bool;
19958}
19959unsafe extern "C" {
19960    pub fn BNTypeContainerGetTypeNames(
19961        container: *mut BNTypeContainer,
19962        typeNames: *mut *mut BNQualifiedName,
19963        count: *mut usize,
19964    ) -> bool;
19965}
19966unsafe extern "C" {
19967    pub fn BNTypeContainerGetTypeNamesAndIds(
19968        container: *mut BNTypeContainer,
19969        typeIds: *mut *mut *mut ::std::os::raw::c_char,
19970        typeNames: *mut *mut BNQualifiedName,
19971        count: *mut usize,
19972    ) -> bool;
19973}
19974unsafe extern "C" {
19975    pub fn BNTypeContainerGetTypeCount(container: *mut BNTypeContainer) -> usize;
19976}
19977unsafe extern "C" {
19978    pub fn BNTypeContainerParseTypeString(
19979        container: *mut BNTypeContainer,
19980        source: *const ::std::os::raw::c_char,
19981        importDepencencies: bool,
19982        result: *mut BNQualifiedNameAndType,
19983        errors: *mut *mut BNTypeParserError,
19984        errorCount: *mut usize,
19985    ) -> bool;
19986}
19987unsafe extern "C" {
19988    pub fn BNTypeContainerParseTypesFromSource(
19989        container: *mut BNTypeContainer,
19990        source: *const ::std::os::raw::c_char,
19991        fileName: *const ::std::os::raw::c_char,
19992        options: *const *const ::std::os::raw::c_char,
19993        optionCount: usize,
19994        includeDirs: *const *const ::std::os::raw::c_char,
19995        includeDirCount: usize,
19996        autoTypeSource: *const ::std::os::raw::c_char,
19997        importDepencencies: bool,
19998        result: *mut BNTypeParserResult,
19999        errors: *mut *mut BNTypeParserError,
20000        errorCount: *mut usize,
20001    ) -> bool;
20002}
20003unsafe extern "C" {
20004    pub fn BNGetEmptyTypeContainer() -> *mut BNTypeContainer;
20005}
20006unsafe extern "C" {
20007    pub fn BNCreateTagType(view: *mut BNBinaryView) -> *mut BNTagType;
20008}
20009unsafe extern "C" {
20010    pub fn BNNewTagTypeReference(tagType: *mut BNTagType) -> *mut BNTagType;
20011}
20012unsafe extern "C" {
20013    pub fn BNFreeTagType(tagType: *mut BNTagType);
20014}
20015unsafe extern "C" {
20016    pub fn BNFreeTagTypeList(tagTypes: *mut *mut BNTagType, count: usize);
20017}
20018unsafe extern "C" {
20019    pub fn BNTagTypeGetView(tagType: *mut BNTagType) -> *mut BNBinaryView;
20020}
20021unsafe extern "C" {
20022    pub fn BNTagTypeGetId(tagType: *mut BNTagType) -> *mut ::std::os::raw::c_char;
20023}
20024unsafe extern "C" {
20025    pub fn BNTagTypeGetName(tagType: *mut BNTagType) -> *mut ::std::os::raw::c_char;
20026}
20027unsafe extern "C" {
20028    pub fn BNTagTypeSetName(tagType: *mut BNTagType, name: *const ::std::os::raw::c_char);
20029}
20030unsafe extern "C" {
20031    pub fn BNTagTypeGetIcon(tagType: *mut BNTagType) -> *mut ::std::os::raw::c_char;
20032}
20033unsafe extern "C" {
20034    pub fn BNTagTypeSetIcon(tagType: *mut BNTagType, icon: *const ::std::os::raw::c_char);
20035}
20036unsafe extern "C" {
20037    pub fn BNTagTypeGetVisible(tagType: *mut BNTagType) -> bool;
20038}
20039unsafe extern "C" {
20040    pub fn BNTagTypeSetVisible(tagType: *mut BNTagType, visible: bool);
20041}
20042unsafe extern "C" {
20043    pub fn BNTagTypeGetType(tagType: *mut BNTagType) -> BNTagTypeType;
20044}
20045unsafe extern "C" {
20046    pub fn BNTagTypeSetType(tagType: *mut BNTagType, type_: BNTagTypeType);
20047}
20048unsafe extern "C" {
20049    pub fn BNCreateTag(type_: *mut BNTagType, data: *const ::std::os::raw::c_char) -> *mut BNTag;
20050}
20051unsafe extern "C" {
20052    pub fn BNNewTagReference(tag: *mut BNTag) -> *mut BNTag;
20053}
20054unsafe extern "C" {
20055    pub fn BNFreeTag(tag: *mut BNTag);
20056}
20057unsafe extern "C" {
20058    pub fn BNFreeTagList(tags: *mut *mut BNTag, count: usize);
20059}
20060unsafe extern "C" {
20061    pub fn BNTagGetId(tag: *mut BNTag) -> *mut ::std::os::raw::c_char;
20062}
20063unsafe extern "C" {
20064    pub fn BNTagGetType(tag: *mut BNTag) -> *mut BNTagType;
20065}
20066unsafe extern "C" {
20067    pub fn BNTagGetData(tag: *mut BNTag) -> *mut ::std::os::raw::c_char;
20068}
20069unsafe extern "C" {
20070    pub fn BNTagSetData(tag: *mut BNTag, data: *const ::std::os::raw::c_char);
20071}
20072unsafe extern "C" {
20073    pub fn BNAddTagType(view: *mut BNBinaryView, tagType: *mut BNTagType);
20074}
20075unsafe extern "C" {
20076    pub fn BNRemoveTagType(view: *mut BNBinaryView, tagType: *mut BNTagType);
20077}
20078unsafe extern "C" {
20079    pub fn BNGetTagType(
20080        view: *mut BNBinaryView,
20081        name: *const ::std::os::raw::c_char,
20082    ) -> *mut BNTagType;
20083}
20084unsafe extern "C" {
20085    pub fn BNGetTagTypeWithType(
20086        view: *mut BNBinaryView,
20087        name: *const ::std::os::raw::c_char,
20088        type_: BNTagTypeType,
20089    ) -> *mut BNTagType;
20090}
20091unsafe extern "C" {
20092    pub fn BNGetTagTypeById(
20093        view: *mut BNBinaryView,
20094        id: *const ::std::os::raw::c_char,
20095    ) -> *mut BNTagType;
20096}
20097unsafe extern "C" {
20098    pub fn BNGetTagTypeByIdWithType(
20099        view: *mut BNBinaryView,
20100        id: *const ::std::os::raw::c_char,
20101        type_: BNTagTypeType,
20102    ) -> *mut BNTagType;
20103}
20104unsafe extern "C" {
20105    pub fn BNGetTagTypes(view: *mut BNBinaryView, count: *mut usize) -> *mut *mut BNTagType;
20106}
20107unsafe extern "C" {
20108    pub fn BNAddTag(view: *mut BNBinaryView, tag: *mut BNTag, user: bool);
20109}
20110unsafe extern "C" {
20111    pub fn BNGetTag(view: *mut BNBinaryView, tagId: *const ::std::os::raw::c_char) -> *mut BNTag;
20112}
20113unsafe extern "C" {
20114    pub fn BNRemoveTag(view: *mut BNBinaryView, tag: *mut BNTag, user: bool);
20115}
20116unsafe extern "C" {
20117    pub fn BNGetAllTagReferences(view: *mut BNBinaryView, count: *mut usize)
20118    -> *mut BNTagReference;
20119}
20120unsafe extern "C" {
20121    pub fn BNGetAllAddressTagReferences(
20122        view: *mut BNBinaryView,
20123        count: *mut usize,
20124    ) -> *mut BNTagReference;
20125}
20126unsafe extern "C" {
20127    pub fn BNGetAllFunctionTagReferences(
20128        view: *mut BNBinaryView,
20129        count: *mut usize,
20130    ) -> *mut BNTagReference;
20131}
20132unsafe extern "C" {
20133    pub fn BNGetAllTagReferencesOfType(
20134        view: *mut BNBinaryView,
20135        tagType: *mut BNTagType,
20136        count: *mut usize,
20137    ) -> *mut BNTagReference;
20138}
20139unsafe extern "C" {
20140    pub fn BNGetTagReferencesOfType(
20141        view: *mut BNBinaryView,
20142        tagType: *mut BNTagType,
20143        count: *mut usize,
20144    ) -> *mut BNTagReference;
20145}
20146unsafe extern "C" {
20147    pub fn BNGetDataTagReferences(
20148        view: *mut BNBinaryView,
20149        count: *mut usize,
20150    ) -> *mut BNTagReference;
20151}
20152unsafe extern "C" {
20153    pub fn BNGetAutoDataTagReferences(
20154        view: *mut BNBinaryView,
20155        count: *mut usize,
20156    ) -> *mut BNTagReference;
20157}
20158unsafe extern "C" {
20159    pub fn BNGetUserDataTagReferences(
20160        view: *mut BNBinaryView,
20161        count: *mut usize,
20162    ) -> *mut BNTagReference;
20163}
20164unsafe extern "C" {
20165    pub fn BNRemoveTagReference(view: *mut BNBinaryView, ref_: BNTagReference);
20166}
20167unsafe extern "C" {
20168    pub fn BNFreeTagReferences(refs: *mut BNTagReference, count: usize);
20169}
20170unsafe extern "C" {
20171    pub fn BNGetDataTags(view: *mut BNBinaryView, addr: u64, count: *mut usize) -> *mut *mut BNTag;
20172}
20173unsafe extern "C" {
20174    pub fn BNGetAutoDataTags(
20175        view: *mut BNBinaryView,
20176        addr: u64,
20177        count: *mut usize,
20178    ) -> *mut *mut BNTag;
20179}
20180unsafe extern "C" {
20181    pub fn BNGetUserDataTags(
20182        view: *mut BNBinaryView,
20183        addr: u64,
20184        count: *mut usize,
20185    ) -> *mut *mut BNTag;
20186}
20187unsafe extern "C" {
20188    pub fn BNGetDataTagsOfType(
20189        view: *mut BNBinaryView,
20190        addr: u64,
20191        tagType: *mut BNTagType,
20192        count: *mut usize,
20193    ) -> *mut *mut BNTag;
20194}
20195unsafe extern "C" {
20196    pub fn BNGetAutoDataTagsOfType(
20197        view: *mut BNBinaryView,
20198        addr: u64,
20199        tagType: *mut BNTagType,
20200        count: *mut usize,
20201    ) -> *mut *mut BNTag;
20202}
20203unsafe extern "C" {
20204    pub fn BNGetUserDataTagsOfType(
20205        view: *mut BNBinaryView,
20206        addr: u64,
20207        tagType: *mut BNTagType,
20208        count: *mut usize,
20209    ) -> *mut *mut BNTag;
20210}
20211unsafe extern "C" {
20212    pub fn BNGetDataTagsInRange(
20213        view: *mut BNBinaryView,
20214        start: u64,
20215        end: u64,
20216        count: *mut usize,
20217    ) -> *mut BNTagReference;
20218}
20219unsafe extern "C" {
20220    pub fn BNGetAutoDataTagsInRange(
20221        view: *mut BNBinaryView,
20222        start: u64,
20223        end: u64,
20224        count: *mut usize,
20225    ) -> *mut BNTagReference;
20226}
20227unsafe extern "C" {
20228    pub fn BNGetUserDataTagsInRange(
20229        view: *mut BNBinaryView,
20230        start: u64,
20231        end: u64,
20232        count: *mut usize,
20233    ) -> *mut BNTagReference;
20234}
20235unsafe extern "C" {
20236    pub fn BNAddAutoDataTag(view: *mut BNBinaryView, addr: u64, tag: *mut BNTag);
20237}
20238unsafe extern "C" {
20239    pub fn BNRemoveAutoDataTag(view: *mut BNBinaryView, addr: u64, tag: *mut BNTag);
20240}
20241unsafe extern "C" {
20242    pub fn BNRemoveAutoDataTagsOfType(view: *mut BNBinaryView, addr: u64, tagType: *mut BNTagType);
20243}
20244unsafe extern "C" {
20245    pub fn BNAddUserDataTag(view: *mut BNBinaryView, addr: u64, tag: *mut BNTag);
20246}
20247unsafe extern "C" {
20248    pub fn BNRemoveUserDataTag(view: *mut BNBinaryView, addr: u64, tag: *mut BNTag);
20249}
20250unsafe extern "C" {
20251    pub fn BNRemoveUserDataTagsOfType(view: *mut BNBinaryView, addr: u64, tagType: *mut BNTagType);
20252}
20253unsafe extern "C" {
20254    pub fn BNGetTagReferencesOfTypeCount(view: *mut BNBinaryView, tagType: *mut BNTagType)
20255    -> usize;
20256}
20257unsafe extern "C" {
20258    pub fn BNGetAllTagReferencesOfTypeCount(
20259        view: *mut BNBinaryView,
20260        tagType: *mut BNTagType,
20261    ) -> usize;
20262}
20263unsafe extern "C" {
20264    pub fn BNGetAllTagReferenceTypeCounts(
20265        view: *mut BNBinaryView,
20266        tagTypes: *mut *mut *mut BNTagType,
20267        counts: *mut *mut usize,
20268        count: *mut usize,
20269    );
20270}
20271unsafe extern "C" {
20272    pub fn BNFreeTagReferenceTypeCounts(
20273        tagTypes: *mut *mut BNTagType,
20274        counts: *mut usize,
20275        count: usize,
20276    );
20277}
20278unsafe extern "C" {
20279    pub fn BNGetFunctionAllTagReferences(
20280        func: *mut BNFunction,
20281        count: *mut usize,
20282    ) -> *mut BNTagReference;
20283}
20284unsafe extern "C" {
20285    pub fn BNGetFunctionTagReferencesOfType(
20286        func: *mut BNFunction,
20287        tagType: *mut BNTagType,
20288        count: *mut usize,
20289    ) -> *mut BNTagReference;
20290}
20291unsafe extern "C" {
20292    pub fn BNGetAddressTagReferences(
20293        func: *mut BNFunction,
20294        count: *mut usize,
20295    ) -> *mut BNTagReference;
20296}
20297unsafe extern "C" {
20298    pub fn BNGetAutoAddressTagReferences(
20299        func: *mut BNFunction,
20300        count: *mut usize,
20301    ) -> *mut BNTagReference;
20302}
20303unsafe extern "C" {
20304    pub fn BNGetUserAddressTagReferences(
20305        func: *mut BNFunction,
20306        count: *mut usize,
20307    ) -> *mut BNTagReference;
20308}
20309unsafe extern "C" {
20310    pub fn BNGetAddressTags(
20311        func: *mut BNFunction,
20312        arch: *mut BNArchitecture,
20313        addr: u64,
20314        count: *mut usize,
20315    ) -> *mut *mut BNTag;
20316}
20317unsafe extern "C" {
20318    pub fn BNGetAutoAddressTags(
20319        func: *mut BNFunction,
20320        arch: *mut BNArchitecture,
20321        addr: u64,
20322        count: *mut usize,
20323    ) -> *mut *mut BNTag;
20324}
20325unsafe extern "C" {
20326    pub fn BNGetUserAddressTags(
20327        func: *mut BNFunction,
20328        arch: *mut BNArchitecture,
20329        addr: u64,
20330        count: *mut usize,
20331    ) -> *mut *mut BNTag;
20332}
20333unsafe extern "C" {
20334    pub fn BNGetAddressTagsOfType(
20335        func: *mut BNFunction,
20336        arch: *mut BNArchitecture,
20337        addr: u64,
20338        tagType: *mut BNTagType,
20339        count: *mut usize,
20340    ) -> *mut *mut BNTag;
20341}
20342unsafe extern "C" {
20343    pub fn BNGetAutoAddressTagsOfType(
20344        func: *mut BNFunction,
20345        arch: *mut BNArchitecture,
20346        addr: u64,
20347        tagType: *mut BNTagType,
20348        count: *mut usize,
20349    ) -> *mut *mut BNTag;
20350}
20351unsafe extern "C" {
20352    pub fn BNGetUserAddressTagsOfType(
20353        func: *mut BNFunction,
20354        arch: *mut BNArchitecture,
20355        addr: u64,
20356        tagType: *mut BNTagType,
20357        count: *mut usize,
20358    ) -> *mut *mut BNTag;
20359}
20360unsafe extern "C" {
20361    pub fn BNGetAddressTagsInRange(
20362        func: *mut BNFunction,
20363        arch: *mut BNArchitecture,
20364        start: u64,
20365        end: u64,
20366        count: *mut usize,
20367    ) -> *mut BNTagReference;
20368}
20369unsafe extern "C" {
20370    pub fn BNGetAutoAddressTagsInRange(
20371        func: *mut BNFunction,
20372        arch: *mut BNArchitecture,
20373        start: u64,
20374        end: u64,
20375        count: *mut usize,
20376    ) -> *mut BNTagReference;
20377}
20378unsafe extern "C" {
20379    pub fn BNGetUserAddressTagsInRange(
20380        func: *mut BNFunction,
20381        arch: *mut BNArchitecture,
20382        start: u64,
20383        end: u64,
20384        count: *mut usize,
20385    ) -> *mut BNTagReference;
20386}
20387unsafe extern "C" {
20388    pub fn BNAddAutoAddressTag(
20389        func: *mut BNFunction,
20390        arch: *mut BNArchitecture,
20391        addr: u64,
20392        tag: *mut BNTag,
20393    );
20394}
20395unsafe extern "C" {
20396    pub fn BNRemoveAutoAddressTag(
20397        func: *mut BNFunction,
20398        arch: *mut BNArchitecture,
20399        addr: u64,
20400        tag: *mut BNTag,
20401    );
20402}
20403unsafe extern "C" {
20404    pub fn BNRemoveAutoAddressTagsOfType(
20405        func: *mut BNFunction,
20406        arch: *mut BNArchitecture,
20407        addr: u64,
20408        tagType: *mut BNTagType,
20409    );
20410}
20411unsafe extern "C" {
20412    pub fn BNAddUserAddressTag(
20413        func: *mut BNFunction,
20414        arch: *mut BNArchitecture,
20415        addr: u64,
20416        tag: *mut BNTag,
20417    );
20418}
20419unsafe extern "C" {
20420    pub fn BNRemoveUserAddressTag(
20421        func: *mut BNFunction,
20422        arch: *mut BNArchitecture,
20423        addr: u64,
20424        tag: *mut BNTag,
20425    );
20426}
20427unsafe extern "C" {
20428    pub fn BNRemoveUserAddressTagsOfType(
20429        func: *mut BNFunction,
20430        arch: *mut BNArchitecture,
20431        addr: u64,
20432        tagType: *mut BNTagType,
20433    );
20434}
20435unsafe extern "C" {
20436    pub fn BNGetFunctionTagReferences(
20437        func: *mut BNFunction,
20438        count: *mut usize,
20439    ) -> *mut BNTagReference;
20440}
20441unsafe extern "C" {
20442    pub fn BNGetAutoFunctionTagReferences(
20443        func: *mut BNFunction,
20444        count: *mut usize,
20445    ) -> *mut BNTagReference;
20446}
20447unsafe extern "C" {
20448    pub fn BNGetUserFunctionTagReferences(
20449        func: *mut BNFunction,
20450        count: *mut usize,
20451    ) -> *mut BNTagReference;
20452}
20453unsafe extern "C" {
20454    pub fn BNGetFunctionTags(func: *mut BNFunction, count: *mut usize) -> *mut *mut BNTag;
20455}
20456unsafe extern "C" {
20457    pub fn BNGetAutoFunctionTags(func: *mut BNFunction, count: *mut usize) -> *mut *mut BNTag;
20458}
20459unsafe extern "C" {
20460    pub fn BNGetUserFunctionTags(func: *mut BNFunction, count: *mut usize) -> *mut *mut BNTag;
20461}
20462unsafe extern "C" {
20463    pub fn BNGetFunctionTagsOfType(
20464        func: *mut BNFunction,
20465        tagType: *mut BNTagType,
20466        count: *mut usize,
20467    ) -> *mut *mut BNTag;
20468}
20469unsafe extern "C" {
20470    pub fn BNGetAutoFunctionTagsOfType(
20471        func: *mut BNFunction,
20472        tagType: *mut BNTagType,
20473        count: *mut usize,
20474    ) -> *mut *mut BNTag;
20475}
20476unsafe extern "C" {
20477    pub fn BNGetUserFunctionTagsOfType(
20478        func: *mut BNFunction,
20479        tagType: *mut BNTagType,
20480        count: *mut usize,
20481    ) -> *mut *mut BNTag;
20482}
20483unsafe extern "C" {
20484    pub fn BNAddAutoFunctionTag(func: *mut BNFunction, tag: *mut BNTag);
20485}
20486unsafe extern "C" {
20487    pub fn BNRemoveAutoFunctionTag(func: *mut BNFunction, tag: *mut BNTag);
20488}
20489unsafe extern "C" {
20490    pub fn BNRemoveAutoFunctionTagsOfType(func: *mut BNFunction, tagType: *mut BNTagType);
20491}
20492unsafe extern "C" {
20493    pub fn BNAddUserFunctionTag(func: *mut BNFunction, tag: *mut BNTag);
20494}
20495unsafe extern "C" {
20496    pub fn BNRemoveUserFunctionTag(func: *mut BNFunction, tag: *mut BNTag);
20497}
20498unsafe extern "C" {
20499    pub fn BNRemoveUserFunctionTagsOfType(func: *mut BNFunction, tagType: *mut BNTagType);
20500}
20501unsafe extern "C" {
20502    pub fn BNGetFunctionAnalysisPerformanceInfo(
20503        func: *mut BNFunction,
20504        count: *mut usize,
20505    ) -> *mut BNPerformanceInfo;
20506}
20507unsafe extern "C" {
20508    pub fn BNFreeAnalysisPerformanceInfo(info: *mut BNPerformanceInfo, count: usize);
20509}
20510unsafe extern "C" {
20511    pub fn BNGetUnresolvedStackAdjustmentGraph(func: *mut BNFunction) -> *mut BNFlowGraph;
20512}
20513unsafe extern "C" {
20514    pub fn BNSetUserVariableValue(
20515        func: *mut BNFunction,
20516        var: *const BNVariable,
20517        defSite: *const BNArchitectureAndAddress,
20518        after: bool,
20519        value: *const BNPossibleValueSet,
20520    );
20521}
20522unsafe extern "C" {
20523    pub fn BNClearUserVariableValue(
20524        func: *mut BNFunction,
20525        var: *const BNVariable,
20526        defSite: *const BNArchitectureAndAddress,
20527        after: bool,
20528    );
20529}
20530unsafe extern "C" {
20531    pub fn BNGetAllUserVariableValues(
20532        func: *mut BNFunction,
20533        count: *mut usize,
20534    ) -> *mut BNUserVariableValue;
20535}
20536unsafe extern "C" {
20537    pub fn BNFreeUserVariableValues(result: *mut BNUserVariableValue);
20538}
20539unsafe extern "C" {
20540    pub fn BNParsePossibleValueSet(
20541        view: *mut BNBinaryView,
20542        valueText: *const ::std::os::raw::c_char,
20543        state: BNRegisterValueType,
20544        result: *mut BNPossibleValueSet,
20545        here: u64,
20546        errors: *mut *mut ::std::os::raw::c_char,
20547    ) -> bool;
20548}
20549unsafe extern "C" {
20550    pub fn BNCreateForcedVariableVersion(
20551        func: *mut BNFunction,
20552        var: *const BNVariable,
20553        defSite: *const BNArchitectureAndAddress,
20554    );
20555}
20556unsafe extern "C" {
20557    pub fn BNClearForcedVariableVersion(
20558        func: *mut BNFunction,
20559        var: *const BNVariable,
20560        defSite: *const BNArchitectureAndAddress,
20561    );
20562}
20563unsafe extern "C" {
20564    pub fn BNSetFieldResolutionForVariableAt(
20565        func: *mut BNFunction,
20566        var: *const BNVariable,
20567        defSite: *const BNArchitectureAndAddress,
20568        info: *const BNFieldResolutionInfo,
20569    );
20570}
20571unsafe extern "C" {
20572    pub fn BNGetFieldResolutionForVariableAt(
20573        func: *mut BNFunction,
20574        var: *const BNVariable,
20575        defSite: *const BNArchitectureAndAddress,
20576    ) -> *mut BNFieldResolutionInfo;
20577}
20578unsafe extern "C" {
20579    pub fn BNGetAllVariableFieldResolutions(
20580        func: *mut BNFunction,
20581        count: *mut usize,
20582    ) -> *mut BNVariableFieldResolutionInfo;
20583}
20584unsafe extern "C" {
20585    pub fn BNFreeVariableFieldResolutions(result: *mut BNVariableFieldResolutionInfo, count: usize);
20586}
20587unsafe extern "C" {
20588    pub fn BNClearFieldResolutionForVariableAt(
20589        func: *mut BNFunction,
20590        var: *const BNVariable,
20591        defSite: *const BNArchitectureAndAddress,
20592    );
20593}
20594unsafe extern "C" {
20595    pub fn BNRequestFunctionDebugReport(func: *mut BNFunction, name: *const ::std::os::raw::c_char);
20596}
20597unsafe extern "C" {
20598    pub fn BNFunctionCheckForDebugReport(
20599        func: *mut BNFunction,
20600        name: *const ::std::os::raw::c_char,
20601    ) -> bool;
20602}
20603unsafe extern "C" {
20604    pub fn BNGetMediumLevelILVariableReferences(
20605        func: *mut BNFunction,
20606        var: *mut BNVariable,
20607        count: *mut usize,
20608    ) -> *mut BNILReferenceSource;
20609}
20610unsafe extern "C" {
20611    pub fn BNGetMediumLevelILVariableReferencesFrom(
20612        func: *mut BNFunction,
20613        arch: *mut BNArchitecture,
20614        address: u64,
20615        count: *mut usize,
20616    ) -> *mut BNVariableReferenceSource;
20617}
20618unsafe extern "C" {
20619    pub fn BNGetMediumLevelILVariableReferencesInRange(
20620        func: *mut BNFunction,
20621        arch: *mut BNArchitecture,
20622        address: u64,
20623        len: u64,
20624        count: *mut usize,
20625    ) -> *mut BNVariableReferenceSource;
20626}
20627unsafe extern "C" {
20628    pub fn BNGetMediumLevelILVariableReferencesIfAvailable(
20629        func: *mut BNFunction,
20630        var: *mut BNVariable,
20631        count: *mut usize,
20632    ) -> *mut BNILReferenceSource;
20633}
20634unsafe extern "C" {
20635    pub fn BNGetMediumLevelILVariableReferencesFromIfAvailable(
20636        func: *mut BNFunction,
20637        arch: *mut BNArchitecture,
20638        address: u64,
20639        count: *mut usize,
20640    ) -> *mut BNVariableReferenceSource;
20641}
20642unsafe extern "C" {
20643    pub fn BNGetMediumLevelILVariableReferencesInRangeIfAvailable(
20644        func: *mut BNFunction,
20645        arch: *mut BNArchitecture,
20646        address: u64,
20647        len: u64,
20648        count: *mut usize,
20649    ) -> *mut BNVariableReferenceSource;
20650}
20651unsafe extern "C" {
20652    pub fn BNGetHighLevelILVariableReferences(
20653        func: *mut BNFunction,
20654        var: *mut BNVariable,
20655        count: *mut usize,
20656    ) -> *mut BNILReferenceSource;
20657}
20658unsafe extern "C" {
20659    pub fn BNGetHighLevelILVariableReferencesFrom(
20660        func: *mut BNFunction,
20661        arch: *mut BNArchitecture,
20662        address: u64,
20663        count: *mut usize,
20664    ) -> *mut BNVariableReferenceSource;
20665}
20666unsafe extern "C" {
20667    pub fn BNGetHighLevelILVariableReferencesInRange(
20668        func: *mut BNFunction,
20669        arch: *mut BNArchitecture,
20670        address: u64,
20671        len: u64,
20672        count: *mut usize,
20673    ) -> *mut BNVariableReferenceSource;
20674}
20675unsafe extern "C" {
20676    pub fn BNGetHighLevelILVariableReferencesIfAvailable(
20677        func: *mut BNFunction,
20678        var: *mut BNVariable,
20679        count: *mut usize,
20680    ) -> *mut BNILReferenceSource;
20681}
20682unsafe extern "C" {
20683    pub fn BNGetHighLevelILVariableReferencesFromIfAvailable(
20684        func: *mut BNFunction,
20685        arch: *mut BNArchitecture,
20686        address: u64,
20687        count: *mut usize,
20688    ) -> *mut BNVariableReferenceSource;
20689}
20690unsafe extern "C" {
20691    pub fn BNGetHighLevelILVariableReferencesInRangeIfAvailable(
20692        func: *mut BNFunction,
20693        arch: *mut BNArchitecture,
20694        address: u64,
20695        len: u64,
20696        count: *mut usize,
20697    ) -> *mut BNVariableReferenceSource;
20698}
20699unsafe extern "C" {
20700    pub fn BNFreeVariableList(vars: *mut BNVariable);
20701}
20702unsafe extern "C" {
20703    pub fn BNFreeVariableReferenceSourceList(vars: *mut BNVariableReferenceSource, count: usize);
20704}
20705unsafe extern "C" {
20706    #[doc = " Analysis Context"]
20707    pub fn BNCreateAnalysisContext() -> *mut BNAnalysisContext;
20708}
20709unsafe extern "C" {
20710    pub fn BNNewAnalysisContextReference(
20711        analysisContext: *mut BNAnalysisContext,
20712    ) -> *mut BNAnalysisContext;
20713}
20714unsafe extern "C" {
20715    pub fn BNFreeAnalysisContext(analysisContext: *mut BNAnalysisContext);
20716}
20717unsafe extern "C" {
20718    pub fn BNAnalysisContextGetBinaryView(
20719        analysisContext: *mut BNAnalysisContext,
20720    ) -> *mut BNBinaryView;
20721}
20722unsafe extern "C" {
20723    pub fn BNAnalysisContextGetFunction(analysisContext: *mut BNAnalysisContext)
20724    -> *mut BNFunction;
20725}
20726unsafe extern "C" {
20727    pub fn BNAnalysisContextGetLiftedILFunction(
20728        analysisContext: *mut BNAnalysisContext,
20729    ) -> *mut BNLowLevelILFunction;
20730}
20731unsafe extern "C" {
20732    pub fn BNAnalysisContextGetLowLevelILFunction(
20733        analysisContext: *mut BNAnalysisContext,
20734    ) -> *mut BNLowLevelILFunction;
20735}
20736unsafe extern "C" {
20737    pub fn BNAnalysisContextGetMediumLevelILFunction(
20738        analysisContext: *mut BNAnalysisContext,
20739    ) -> *mut BNMediumLevelILFunction;
20740}
20741unsafe extern "C" {
20742    pub fn BNAnalysisContextGetHighLevelILFunction(
20743        analysisContext: *mut BNAnalysisContext,
20744    ) -> *mut BNHighLevelILFunction;
20745}
20746unsafe extern "C" {
20747    pub fn BNSetBasicBlockList(
20748        analysisContext: *mut BNAnalysisContext,
20749        basicBlocks: *mut *mut BNBasicBlock,
20750        count: usize,
20751    );
20752}
20753unsafe extern "C" {
20754    pub fn BNSetLiftedILFunction(
20755        analysisContext: *mut BNAnalysisContext,
20756        liftedIL: *mut BNLowLevelILFunction,
20757    );
20758}
20759unsafe extern "C" {
20760    pub fn BNSetLowLevelILFunction(
20761        analysisContext: *mut BNAnalysisContext,
20762        lowLevelIL: *mut BNLowLevelILFunction,
20763    );
20764}
20765unsafe extern "C" {
20766    pub fn BNSetMediumLevelILFunction(
20767        analysisContext: *mut BNAnalysisContext,
20768        mediumLevelIL: *mut BNMediumLevelILFunction,
20769        llilSSAToMLILSSAInstrMap: *mut usize,
20770        instrCount: usize,
20771        llilSSAToMLILSSAExprMap: *mut BNExprMapInfo,
20772        exprCount: usize,
20773    );
20774}
20775unsafe extern "C" {
20776    pub fn BNSetHighLevelILFunction(
20777        analysisContext: *mut BNAnalysisContext,
20778        highLevelIL: *mut BNHighLevelILFunction,
20779    );
20780}
20781unsafe extern "C" {
20782    pub fn BNAnalysisContextInform(
20783        analysisContext: *mut BNAnalysisContext,
20784        request: *const ::std::os::raw::c_char,
20785    ) -> bool;
20786}
20787unsafe extern "C" {
20788    #[doc = " Settings cache access"]
20789    pub fn BNAnalysisContextGetSettingBool(
20790        analysisContext: *mut BNAnalysisContext,
20791        key: *const ::std::os::raw::c_char,
20792    ) -> bool;
20793}
20794unsafe extern "C" {
20795    pub fn BNAnalysisContextGetSettingDouble(
20796        analysisContext: *mut BNAnalysisContext,
20797        key: *const ::std::os::raw::c_char,
20798    ) -> f64;
20799}
20800unsafe extern "C" {
20801    pub fn BNAnalysisContextGetSettingInt64(
20802        analysisContext: *mut BNAnalysisContext,
20803        key: *const ::std::os::raw::c_char,
20804    ) -> i64;
20805}
20806unsafe extern "C" {
20807    pub fn BNAnalysisContextGetSettingUInt64(
20808        analysisContext: *mut BNAnalysisContext,
20809        key: *const ::std::os::raw::c_char,
20810    ) -> u64;
20811}
20812unsafe extern "C" {
20813    pub fn BNAnalysisContextGetSettingString(
20814        analysisContext: *mut BNAnalysisContext,
20815        key: *const ::std::os::raw::c_char,
20816    ) -> *mut ::std::os::raw::c_char;
20817}
20818unsafe extern "C" {
20819    pub fn BNAnalysisContextGetSettingStringList(
20820        analysisContext: *mut BNAnalysisContext,
20821        key: *const ::std::os::raw::c_char,
20822        count: *mut usize,
20823    ) -> *mut *mut ::std::os::raw::c_char;
20824}
20825unsafe extern "C" {
20826    #[doc = " Memory map access"]
20827    pub fn BNAnalysisContextIsValidOffset(
20828        analysisContext: *mut BNAnalysisContext,
20829        offset: u64,
20830    ) -> bool;
20831}
20832unsafe extern "C" {
20833    pub fn BNAnalysisContextIsOffsetReadable(
20834        analysisContext: *mut BNAnalysisContext,
20835        offset: u64,
20836    ) -> bool;
20837}
20838unsafe extern "C" {
20839    pub fn BNAnalysisContextIsOffsetWritable(
20840        analysisContext: *mut BNAnalysisContext,
20841        offset: u64,
20842    ) -> bool;
20843}
20844unsafe extern "C" {
20845    pub fn BNAnalysisContextIsOffsetExecutable(
20846        analysisContext: *mut BNAnalysisContext,
20847        offset: u64,
20848    ) -> bool;
20849}
20850unsafe extern "C" {
20851    pub fn BNAnalysisContextIsOffsetBackedByFile(
20852        analysisContext: *mut BNAnalysisContext,
20853        offset: u64,
20854    ) -> bool;
20855}
20856unsafe extern "C" {
20857    pub fn BNAnalysisContextIsOffsetCodeSemantics(
20858        analysisContext: *mut BNAnalysisContext,
20859        offset: u64,
20860    ) -> bool;
20861}
20862unsafe extern "C" {
20863    pub fn BNAnalysisContextIsOffsetExternSemantics(
20864        analysisContext: *mut BNAnalysisContext,
20865        offset: u64,
20866    ) -> bool;
20867}
20868unsafe extern "C" {
20869    pub fn BNAnalysisContextIsOffsetWritableSemantics(
20870        analysisContext: *mut BNAnalysisContext,
20871        offset: u64,
20872    ) -> bool;
20873}
20874unsafe extern "C" {
20875    pub fn BNAnalysisContextIsOffsetReadOnlySemantics(
20876        analysisContext: *mut BNAnalysisContext,
20877        offset: u64,
20878    ) -> bool;
20879}
20880unsafe extern "C" {
20881    pub fn BNAnalysisContextGetSections(
20882        analysisContext: *mut BNAnalysisContext,
20883        count: *mut usize,
20884    ) -> *mut *mut BNSection;
20885}
20886unsafe extern "C" {
20887    pub fn BNAnalysisContextGetSectionByName(
20888        analysisContext: *mut BNAnalysisContext,
20889        name: *const ::std::os::raw::c_char,
20890    ) -> *mut BNSection;
20891}
20892unsafe extern "C" {
20893    pub fn BNAnalysisContextGetSectionsAt(
20894        analysisContext: *mut BNAnalysisContext,
20895        addr: u64,
20896        count: *mut usize,
20897    ) -> *mut *mut BNSection;
20898}
20899unsafe extern "C" {
20900    pub fn BNAnalysisContextGetStart(analysisContext: *mut BNAnalysisContext) -> u64;
20901}
20902unsafe extern "C" {
20903    pub fn BNAnalysisContextGetEnd(analysisContext: *mut BNAnalysisContext) -> u64;
20904}
20905unsafe extern "C" {
20906    pub fn BNAnalysisContextGetLength(analysisContext: *mut BNAnalysisContext) -> u64;
20907}
20908unsafe extern "C" {
20909    pub fn BNAnalysisContextGetNextValidOffset(
20910        analysisContext: *mut BNAnalysisContext,
20911        offset: u64,
20912    ) -> u64;
20913}
20914unsafe extern "C" {
20915    pub fn BNAnalysisContextGetNextMappedAddress(
20916        analysisContext: *mut BNAnalysisContext,
20917        addr: u64,
20918        flags: u32,
20919    ) -> u64;
20920}
20921unsafe extern "C" {
20922    pub fn BNAnalysisContextGetNextBackedAddress(
20923        analysisContext: *mut BNAnalysisContext,
20924        addr: u64,
20925        flags: u32,
20926    ) -> u64;
20927}
20928unsafe extern "C" {
20929    pub fn BNAnalysisContextGetSegmentAt(
20930        analysisContext: *mut BNAnalysisContext,
20931        addr: u64,
20932    ) -> *mut BNSegment;
20933}
20934unsafe extern "C" {
20935    pub fn BNAnalysisContextGetMappedAddressRanges(
20936        analysisContext: *mut BNAnalysisContext,
20937        count: *mut usize,
20938    ) -> *mut BNAddressRange;
20939}
20940unsafe extern "C" {
20941    pub fn BNAnalysisContextGetBackedAddressRanges(
20942        analysisContext: *mut BNAnalysisContext,
20943        count: *mut usize,
20944    ) -> *mut BNAddressRange;
20945}
20946unsafe extern "C" {
20947    #[doc = " Activity"]
20948    pub fn BNCreateActivity(
20949        configuration: *const ::std::os::raw::c_char,
20950        ctxt: *mut ::std::os::raw::c_void,
20951        action: ::std::option::Option<
20952            unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void, arg2: *mut BNAnalysisContext),
20953        >,
20954    ) -> *mut BNActivity;
20955}
20956unsafe extern "C" {
20957    pub fn BNCreateActivityWithEligibility(
20958        configuration: *const ::std::os::raw::c_char,
20959        ctxt: *mut ::std::os::raw::c_void,
20960        action: ::std::option::Option<
20961            unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void, arg2: *mut BNAnalysisContext),
20962        >,
20963        eligibilityHandler: ::std::option::Option<
20964            unsafe extern "C" fn(
20965                arg1: *mut ::std::os::raw::c_void,
20966                arg2: *mut BNActivity,
20967                arg3: *mut BNAnalysisContext,
20968            ) -> bool,
20969        >,
20970    ) -> *mut BNActivity;
20971}
20972unsafe extern "C" {
20973    pub fn BNNewActivityReference(activity: *mut BNActivity) -> *mut BNActivity;
20974}
20975unsafe extern "C" {
20976    pub fn BNFreeActivity(activity: *mut BNActivity);
20977}
20978unsafe extern "C" {
20979    pub fn BNActivityGetName(activity: *mut BNActivity) -> *mut ::std::os::raw::c_char;
20980}
20981unsafe extern "C" {
20982    #[doc = " Workflow"]
20983    pub fn BNCreateWorkflow(name: *const ::std::os::raw::c_char) -> *mut BNWorkflow;
20984}
20985unsafe extern "C" {
20986    pub fn BNNewWorkflowReference(workflow: *mut BNWorkflow) -> *mut BNWorkflow;
20987}
20988unsafe extern "C" {
20989    pub fn BNFreeWorkflow(workflow: *mut BNWorkflow);
20990}
20991unsafe extern "C" {
20992    pub fn BNGetWorkflowList(count: *mut usize) -> *mut *mut BNWorkflow;
20993}
20994unsafe extern "C" {
20995    pub fn BNFreeWorkflowList(workflows: *mut *mut BNWorkflow, count: usize);
20996}
20997unsafe extern "C" {
20998    pub fn BNWorkflowGet(name: *const ::std::os::raw::c_char) -> *mut BNWorkflow;
20999}
21000unsafe extern "C" {
21001    pub fn BNWorkflowGetOrCreate(name: *const ::std::os::raw::c_char) -> *mut BNWorkflow;
21002}
21003unsafe extern "C" {
21004    pub fn BNRegisterWorkflow(
21005        workflow: *mut BNWorkflow,
21006        configuration: *const ::std::os::raw::c_char,
21007    ) -> bool;
21008}
21009unsafe extern "C" {
21010    pub fn BNWorkflowClone(
21011        workflow: *mut BNWorkflow,
21012        name: *const ::std::os::raw::c_char,
21013        activity: *const ::std::os::raw::c_char,
21014    ) -> *mut BNWorkflow;
21015}
21016unsafe extern "C" {
21017    pub fn BNWorkflowRegisterActivity(
21018        workflow: *mut BNWorkflow,
21019        activity: *mut BNActivity,
21020        subactivities: *mut *const ::std::os::raw::c_char,
21021        size: usize,
21022    ) -> *mut BNActivity;
21023}
21024unsafe extern "C" {
21025    pub fn BNWorkflowContains(
21026        workflow: *mut BNWorkflow,
21027        activity: *const ::std::os::raw::c_char,
21028    ) -> bool;
21029}
21030unsafe extern "C" {
21031    pub fn BNWorkflowGetConfiguration(
21032        workflow: *mut BNWorkflow,
21033        activity: *const ::std::os::raw::c_char,
21034    ) -> *mut ::std::os::raw::c_char;
21035}
21036unsafe extern "C" {
21037    pub fn BNGetWorkflowName(workflow: *mut BNWorkflow) -> *mut ::std::os::raw::c_char;
21038}
21039unsafe extern "C" {
21040    pub fn BNWorkflowIsRegistered(workflow: *mut BNWorkflow) -> bool;
21041}
21042unsafe extern "C" {
21043    pub fn BNWorkflowSize(workflow: *mut BNWorkflow) -> usize;
21044}
21045unsafe extern "C" {
21046    pub fn BNWorkflowGetActivity(
21047        workflow: *mut BNWorkflow,
21048        activity: *const ::std::os::raw::c_char,
21049    ) -> *mut BNActivity;
21050}
21051unsafe extern "C" {
21052    pub fn BNWorkflowGetActivityRoots(
21053        workflow: *mut BNWorkflow,
21054        activity: *const ::std::os::raw::c_char,
21055        inoutSize: *mut usize,
21056    ) -> *mut *const ::std::os::raw::c_char;
21057}
21058unsafe extern "C" {
21059    pub fn BNWorkflowGetSubactivities(
21060        workflow: *mut BNWorkflow,
21061        activity: *const ::std::os::raw::c_char,
21062        immediate: bool,
21063        inoutSize: *mut usize,
21064    ) -> *mut *const ::std::os::raw::c_char;
21065}
21066unsafe extern "C" {
21067    pub fn BNWorkflowAssignSubactivities(
21068        workflow: *mut BNWorkflow,
21069        activity: *const ::std::os::raw::c_char,
21070        activities: *mut *const ::std::os::raw::c_char,
21071        size: usize,
21072    ) -> bool;
21073}
21074unsafe extern "C" {
21075    pub fn BNWorkflowClear(workflow: *mut BNWorkflow) -> bool;
21076}
21077unsafe extern "C" {
21078    pub fn BNWorkflowInsert(
21079        workflow: *mut BNWorkflow,
21080        activity: *const ::std::os::raw::c_char,
21081        activities: *mut *const ::std::os::raw::c_char,
21082        size: usize,
21083    ) -> bool;
21084}
21085unsafe extern "C" {
21086    pub fn BNWorkflowInsertAfter(
21087        workflow: *mut BNWorkflow,
21088        activity: *const ::std::os::raw::c_char,
21089        activities: *mut *const ::std::os::raw::c_char,
21090        size: usize,
21091    ) -> bool;
21092}
21093unsafe extern "C" {
21094    pub fn BNWorkflowRemove(
21095        workflow: *mut BNWorkflow,
21096        activity: *const ::std::os::raw::c_char,
21097    ) -> bool;
21098}
21099unsafe extern "C" {
21100    pub fn BNWorkflowReplace(
21101        workflow: *mut BNWorkflow,
21102        activity: *const ::std::os::raw::c_char,
21103        newActivity: *const ::std::os::raw::c_char,
21104    ) -> bool;
21105}
21106unsafe extern "C" {
21107    pub fn BNWorkflowGetGraph(
21108        workflow: *mut BNWorkflow,
21109        activity: *const ::std::os::raw::c_char,
21110        sequential: bool,
21111    ) -> *mut BNFlowGraph;
21112}
21113unsafe extern "C" {
21114    pub fn BNWorkflowShowReport(workflow: *mut BNWorkflow, name: *const ::std::os::raw::c_char);
21115}
21116unsafe extern "C" {
21117    pub fn BNWorkflowGetEligibilitySettings(
21118        workflow: *mut BNWorkflow,
21119        inoutSize: *mut usize,
21120    ) -> *mut *const ::std::os::raw::c_char;
21121}
21122unsafe extern "C" {
21123    #[doc = " BinaryView Workflow Machine"]
21124    pub fn BNGetWorkflowForBinaryView(view: *mut BNBinaryView) -> *mut BNWorkflow;
21125}
21126unsafe extern "C" {
21127    pub fn BNPostWorkflowRequestForBinaryView(
21128        view: *mut BNBinaryView,
21129        request: *const ::std::os::raw::c_char,
21130    ) -> *mut ::std::os::raw::c_char;
21131}
21132unsafe extern "C" {
21133    pub fn BNGetWorkflowGraphForBinaryView(
21134        view: *mut BNBinaryView,
21135        name: *const ::std::os::raw::c_char,
21136        sequential: bool,
21137    ) -> *mut BNFlowGraph;
21138}
21139unsafe extern "C" {
21140    pub fn BNShowWorkflowReportForBinaryView(
21141        view: *mut BNBinaryView,
21142        name: *const ::std::os::raw::c_char,
21143    );
21144}
21145unsafe extern "C" {
21146    #[doc = " Function Workflow Machine"]
21147    pub fn BNGetWorkflowForFunction(func: *mut BNFunction) -> *mut BNWorkflow;
21148}
21149unsafe extern "C" {
21150    pub fn BNPostWorkflowRequestForFunction(
21151        func: *mut BNFunction,
21152        request: *const ::std::os::raw::c_char,
21153    ) -> *mut ::std::os::raw::c_char;
21154}
21155unsafe extern "C" {
21156    pub fn BNGetWorkflowGraphForFunction(
21157        func: *mut BNFunction,
21158        name: *const ::std::os::raw::c_char,
21159        sequential: bool,
21160    ) -> *mut BNFlowGraph;
21161}
21162unsafe extern "C" {
21163    pub fn BNShowWorkflowReportForFunction(
21164        func: *mut BNFunction,
21165        name: *const ::std::os::raw::c_char,
21166    );
21167}
21168unsafe extern "C" {
21169    #[doc = " Provenance"]
21170    pub fn BNGetProvenanceString(func: *mut BNFunction) -> *mut ::std::os::raw::c_char;
21171}
21172unsafe extern "C" {
21173    #[doc = " Disassembly settings"]
21174    pub fn BNCreateDisassemblySettings() -> *mut BNDisassemblySettings;
21175}
21176unsafe extern "C" {
21177    pub fn BNDefaultDisassemblySettings() -> *mut BNDisassemblySettings;
21178}
21179unsafe extern "C" {
21180    pub fn BNDefaultGraphDisassemblySettings() -> *mut BNDisassemblySettings;
21181}
21182unsafe extern "C" {
21183    pub fn BNDefaultLinearDisassemblySettings() -> *mut BNDisassemblySettings;
21184}
21185unsafe extern "C" {
21186    pub fn BNNewDisassemblySettingsReference(
21187        settings: *mut BNDisassemblySettings,
21188    ) -> *mut BNDisassemblySettings;
21189}
21190unsafe extern "C" {
21191    pub fn BNDuplicateDisassemblySettings(
21192        settings: *mut BNDisassemblySettings,
21193    ) -> *mut BNDisassemblySettings;
21194}
21195unsafe extern "C" {
21196    pub fn BNFreeDisassemblySettings(settings: *mut BNDisassemblySettings);
21197}
21198unsafe extern "C" {
21199    pub fn BNIsDisassemblySettingsOptionSet(
21200        settings: *mut BNDisassemblySettings,
21201        option: BNDisassemblyOption,
21202    ) -> bool;
21203}
21204unsafe extern "C" {
21205    pub fn BNSetDisassemblySettingsOption(
21206        settings: *mut BNDisassemblySettings,
21207        option: BNDisassemblyOption,
21208        state: bool,
21209    );
21210}
21211unsafe extern "C" {
21212    pub fn BNGetDisassemblyWidth(settings: *mut BNDisassemblySettings) -> usize;
21213}
21214unsafe extern "C" {
21215    pub fn BNSetDisassemblyWidth(settings: *mut BNDisassemblySettings, width: usize);
21216}
21217unsafe extern "C" {
21218    pub fn BNGetDisassemblyMaximumSymbolWidth(settings: *mut BNDisassemblySettings) -> usize;
21219}
21220unsafe extern "C" {
21221    pub fn BNSetDisassemblyMaximumSymbolWidth(settings: *mut BNDisassemblySettings, width: usize);
21222}
21223unsafe extern "C" {
21224    pub fn BNGetDisassemblyGutterWidth(settings: *mut BNDisassemblySettings) -> usize;
21225}
21226unsafe extern "C" {
21227    pub fn BNSetDisassemblyGutterWidth(settings: *mut BNDisassemblySettings, width: usize);
21228}
21229unsafe extern "C" {
21230    pub fn BNGetDisassemblyAddressMode(
21231        settings: *mut BNDisassemblySettings,
21232    ) -> BNDisassemblyAddressMode;
21233}
21234unsafe extern "C" {
21235    pub fn BNSetDisassemblyAddressMode(
21236        settings: *mut BNDisassemblySettings,
21237        mode: BNDisassemblyAddressMode,
21238    );
21239}
21240unsafe extern "C" {
21241    pub fn BNGetDisassemblyAddressBaseOffset(settings: *mut BNDisassemblySettings) -> u64;
21242}
21243unsafe extern "C" {
21244    pub fn BNSetDisassemblyAddressBaseOffset(
21245        settings: *mut BNDisassemblySettings,
21246        addressBaseOffset: u64,
21247    );
21248}
21249unsafe extern "C" {
21250    pub fn BNGetDisassemblyCallParameterHints(
21251        settings: *mut BNDisassemblySettings,
21252    ) -> BNDisassemblyCallParameterHints;
21253}
21254unsafe extern "C" {
21255    pub fn BNSetDisassemblyCallParameterHints(
21256        settings: *mut BNDisassemblySettings,
21257        hints: BNDisassemblyCallParameterHints,
21258    );
21259}
21260unsafe extern "C" {
21261    pub fn BNGetDisassemblyBlockLabels(
21262        settings: *mut BNDisassemblySettings,
21263    ) -> BNDisassemblyBlockLabels;
21264}
21265unsafe extern "C" {
21266    pub fn BNSetDisassemblyBlockLabels(
21267        settings: *mut BNDisassemblySettings,
21268        labels: BNDisassemblyBlockLabels,
21269    );
21270}
21271unsafe extern "C" {
21272    #[doc = " Flow graphs"]
21273    pub fn BNCreateFlowGraph() -> *mut BNFlowGraph;
21274}
21275unsafe extern "C" {
21276    pub fn BNCreateFunctionGraph(
21277        func: *mut BNFunction,
21278        type_: BNFunctionViewType,
21279        settings: *mut BNDisassemblySettings,
21280    ) -> *mut BNFlowGraph;
21281}
21282unsafe extern "C" {
21283    pub fn BNCreateLowLevelILFunctionGraph(
21284        func: *mut BNLowLevelILFunction,
21285        settings: *mut BNDisassemblySettings,
21286    ) -> *mut BNFlowGraph;
21287}
21288unsafe extern "C" {
21289    pub fn BNCreateMediumLevelILFunctionGraph(
21290        func: *mut BNMediumLevelILFunction,
21291        settings: *mut BNDisassemblySettings,
21292    ) -> *mut BNFlowGraph;
21293}
21294unsafe extern "C" {
21295    pub fn BNCreateHighLevelILFunctionGraph(
21296        func: *mut BNHighLevelILFunction,
21297        settings: *mut BNDisassemblySettings,
21298    ) -> *mut BNFlowGraph;
21299}
21300unsafe extern "C" {
21301    pub fn BNCreateImmediateFunctionGraph(
21302        func: *mut BNFunction,
21303        type_: BNFunctionViewType,
21304        settings: *mut BNDisassemblySettings,
21305    ) -> *mut BNFlowGraph;
21306}
21307unsafe extern "C" {
21308    pub fn BNCreateLowLevelILImmediateFunctionGraph(
21309        func: *mut BNLowLevelILFunction,
21310        settings: *mut BNDisassemblySettings,
21311    ) -> *mut BNFlowGraph;
21312}
21313unsafe extern "C" {
21314    pub fn BNCreateMediumLevelILImmediateFunctionGraph(
21315        func: *mut BNMediumLevelILFunction,
21316        settings: *mut BNDisassemblySettings,
21317    ) -> *mut BNFlowGraph;
21318}
21319unsafe extern "C" {
21320    pub fn BNCreateHighLevelILImmediateFunctionGraph(
21321        func: *mut BNHighLevelILFunction,
21322        settings: *mut BNDisassemblySettings,
21323    ) -> *mut BNFlowGraph;
21324}
21325unsafe extern "C" {
21326    pub fn BNCreateCustomFlowGraph(callbacks: *mut BNCustomFlowGraph) -> *mut BNFlowGraph;
21327}
21328unsafe extern "C" {
21329    pub fn BNNewFlowGraphReference(graph: *mut BNFlowGraph) -> *mut BNFlowGraph;
21330}
21331unsafe extern "C" {
21332    pub fn BNFreeFlowGraph(graph: *mut BNFlowGraph);
21333}
21334unsafe extern "C" {
21335    pub fn BNGetFunctionForFlowGraph(graph: *mut BNFlowGraph) -> *mut BNFunction;
21336}
21337unsafe extern "C" {
21338    pub fn BNSetFunctionForFlowGraph(graph: *mut BNFlowGraph, func: *mut BNFunction);
21339}
21340unsafe extern "C" {
21341    pub fn BNGetViewForFlowGraph(graph: *mut BNFlowGraph) -> *mut BNBinaryView;
21342}
21343unsafe extern "C" {
21344    pub fn BNSetViewForFlowGraph(graph: *mut BNFlowGraph, view: *mut BNBinaryView);
21345}
21346unsafe extern "C" {
21347    pub fn BNGetHorizontalFlowGraphNodeMargin(graph: *mut BNFlowGraph) -> ::std::os::raw::c_int;
21348}
21349unsafe extern "C" {
21350    pub fn BNGetVerticalFlowGraphNodeMargin(graph: *mut BNFlowGraph) -> ::std::os::raw::c_int;
21351}
21352unsafe extern "C" {
21353    pub fn BNSetFlowGraphNodeMargins(
21354        graph: *mut BNFlowGraph,
21355        horiz: ::std::os::raw::c_int,
21356        vert: ::std::os::raw::c_int,
21357    );
21358}
21359unsafe extern "C" {
21360    pub fn BNStartFlowGraphLayout(
21361        graph: *mut BNFlowGraph,
21362        ctxt: *mut ::std::os::raw::c_void,
21363        func: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
21364    ) -> *mut BNFlowGraphLayoutRequest;
21365}
21366unsafe extern "C" {
21367    pub fn BNIsFlowGraphLayoutComplete(graph: *mut BNFlowGraph) -> bool;
21368}
21369unsafe extern "C" {
21370    pub fn BNNewFlowGraphLayoutRequestReference(
21371        layout: *mut BNFlowGraphLayoutRequest,
21372    ) -> *mut BNFlowGraphLayoutRequest;
21373}
21374unsafe extern "C" {
21375    pub fn BNFreeFlowGraphLayoutRequest(layout: *mut BNFlowGraphLayoutRequest);
21376}
21377unsafe extern "C" {
21378    pub fn BNIsFlowGraphLayoutRequestComplete(layout: *mut BNFlowGraphLayoutRequest) -> bool;
21379}
21380unsafe extern "C" {
21381    pub fn BNGetGraphForFlowGraphLayoutRequest(
21382        layout: *mut BNFlowGraphLayoutRequest,
21383    ) -> *mut BNFlowGraph;
21384}
21385unsafe extern "C" {
21386    pub fn BNAbortFlowGraphLayoutRequest(graph: *mut BNFlowGraphLayoutRequest);
21387}
21388unsafe extern "C" {
21389    pub fn BNIsILFlowGraph(graph: *mut BNFlowGraph) -> bool;
21390}
21391unsafe extern "C" {
21392    pub fn BNIsLowLevelILFlowGraph(graph: *mut BNFlowGraph) -> bool;
21393}
21394unsafe extern "C" {
21395    pub fn BNIsMediumLevelILFlowGraph(graph: *mut BNFlowGraph) -> bool;
21396}
21397unsafe extern "C" {
21398    pub fn BNIsHighLevelILFlowGraph(graph: *mut BNFlowGraph) -> bool;
21399}
21400unsafe extern "C" {
21401    pub fn BNGetFlowGraphLowLevelILFunction(graph: *mut BNFlowGraph) -> *mut BNLowLevelILFunction;
21402}
21403unsafe extern "C" {
21404    pub fn BNGetFlowGraphMediumLevelILFunction(
21405        graph: *mut BNFlowGraph,
21406    ) -> *mut BNMediumLevelILFunction;
21407}
21408unsafe extern "C" {
21409    pub fn BNGetFlowGraphHighLevelILFunction(graph: *mut BNFlowGraph)
21410    -> *mut BNHighLevelILFunction;
21411}
21412unsafe extern "C" {
21413    pub fn BNSetFlowGraphLowLevelILFunction(
21414        graph: *mut BNFlowGraph,
21415        func: *mut BNLowLevelILFunction,
21416    );
21417}
21418unsafe extern "C" {
21419    pub fn BNSetFlowGraphMediumLevelILFunction(
21420        graph: *mut BNFlowGraph,
21421        func: *mut BNMediumLevelILFunction,
21422    );
21423}
21424unsafe extern "C" {
21425    pub fn BNSetFlowGraphHighLevelILFunction(
21426        graph: *mut BNFlowGraph,
21427        func: *mut BNHighLevelILFunction,
21428    );
21429}
21430unsafe extern "C" {
21431    pub fn BNGetFlowGraphNodes(
21432        graph: *mut BNFlowGraph,
21433        count: *mut usize,
21434    ) -> *mut *mut BNFlowGraphNode;
21435}
21436unsafe extern "C" {
21437    pub fn BNGetFlowGraphNode(graph: *mut BNFlowGraph, i: usize) -> *mut BNFlowGraphNode;
21438}
21439unsafe extern "C" {
21440    pub fn BNGetFlowGraphNodesInRegion(
21441        graph: *mut BNFlowGraph,
21442        left: ::std::os::raw::c_int,
21443        top: ::std::os::raw::c_int,
21444        right: ::std::os::raw::c_int,
21445        bottom: ::std::os::raw::c_int,
21446        count: *mut usize,
21447    ) -> *mut *mut BNFlowGraphNode;
21448}
21449unsafe extern "C" {
21450    pub fn BNFreeFlowGraphNodeList(nodes: *mut *mut BNFlowGraphNode, count: usize);
21451}
21452unsafe extern "C" {
21453    pub fn BNGetFlowGraphNodeCount(graph: *mut BNFlowGraph) -> usize;
21454}
21455unsafe extern "C" {
21456    pub fn BNFlowGraphHasNodes(graph: *mut BNFlowGraph) -> bool;
21457}
21458unsafe extern "C" {
21459    pub fn BNAddFlowGraphNode(graph: *mut BNFlowGraph, node: *mut BNFlowGraphNode) -> usize;
21460}
21461unsafe extern "C" {
21462    pub fn BNReplaceFlowGraphNode(graph: *mut BNFlowGraph, i: usize, newNode: *mut BNFlowGraphNode);
21463}
21464unsafe extern "C" {
21465    pub fn BNClearFlowGraphNodes(graph: *mut BNFlowGraph);
21466}
21467unsafe extern "C" {
21468    pub fn BNGetFlowGraphWidth(graph: *mut BNFlowGraph) -> ::std::os::raw::c_int;
21469}
21470unsafe extern "C" {
21471    pub fn BNGetFlowGraphHeight(graph: *mut BNFlowGraph) -> ::std::os::raw::c_int;
21472}
21473unsafe extern "C" {
21474    pub fn BNFlowGraphSetWidth(graph: *mut BNFlowGraph, width: ::std::os::raw::c_int);
21475}
21476unsafe extern "C" {
21477    pub fn BNFlowGraphSetHeight(graph: *mut BNFlowGraph, height: ::std::os::raw::c_int);
21478}
21479unsafe extern "C" {
21480    pub fn BNGetFlowGraphRenderLayers(
21481        graph: *mut BNFlowGraph,
21482        count: *mut usize,
21483    ) -> *mut *mut BNRenderLayer;
21484}
21485unsafe extern "C" {
21486    pub fn BNAddFlowGraphRenderLayer(graph: *mut BNFlowGraph, layer: *mut BNRenderLayer);
21487}
21488unsafe extern "C" {
21489    pub fn BNRemoveFlowGraphRenderLayer(graph: *mut BNFlowGraph, layer: *mut BNRenderLayer);
21490}
21491unsafe extern "C" {
21492    pub fn BNCreateFlowGraphNode(graph: *mut BNFlowGraph) -> *mut BNFlowGraphNode;
21493}
21494unsafe extern "C" {
21495    pub fn BNNewFlowGraphNodeReference(node: *mut BNFlowGraphNode) -> *mut BNFlowGraphNode;
21496}
21497unsafe extern "C" {
21498    pub fn BNFreeFlowGraphNode(node: *mut BNFlowGraphNode);
21499}
21500unsafe extern "C" {
21501    pub fn BNGetFlowGraphNodeOwner(node: *mut BNFlowGraphNode) -> *mut BNFlowGraph;
21502}
21503unsafe extern "C" {
21504    pub fn BNGetFlowGraphBasicBlock(node: *mut BNFlowGraphNode) -> *mut BNBasicBlock;
21505}
21506unsafe extern "C" {
21507    pub fn BNSetFlowGraphBasicBlock(node: *mut BNFlowGraphNode, block: *mut BNBasicBlock);
21508}
21509unsafe extern "C" {
21510    pub fn BNFlowGraphNodeSetX(node: *mut BNFlowGraphNode, x: ::std::os::raw::c_int);
21511}
21512unsafe extern "C" {
21513    pub fn BNFlowGraphNodeSetY(node: *mut BNFlowGraphNode, y: ::std::os::raw::c_int);
21514}
21515unsafe extern "C" {
21516    pub fn BNGetFlowGraphNodeX(node: *mut BNFlowGraphNode) -> ::std::os::raw::c_int;
21517}
21518unsafe extern "C" {
21519    pub fn BNGetFlowGraphNodeY(node: *mut BNFlowGraphNode) -> ::std::os::raw::c_int;
21520}
21521unsafe extern "C" {
21522    pub fn BNGetFlowGraphNodeWidth(node: *mut BNFlowGraphNode) -> ::std::os::raw::c_int;
21523}
21524unsafe extern "C" {
21525    pub fn BNGetFlowGraphNodeHeight(node: *mut BNFlowGraphNode) -> ::std::os::raw::c_int;
21526}
21527unsafe extern "C" {
21528    pub fn BNGetFlowGraphNodeLines(
21529        node: *mut BNFlowGraphNode,
21530        count: *mut usize,
21531    ) -> *mut BNDisassemblyTextLine;
21532}
21533unsafe extern "C" {
21534    pub fn BNSetFlowGraphNodeLines(
21535        node: *mut BNFlowGraphNode,
21536        lines: *mut BNDisassemblyTextLine,
21537        count: usize,
21538    );
21539}
21540unsafe extern "C" {
21541    pub fn BNGetFlowGraphNodeOutgoingEdges(
21542        node: *mut BNFlowGraphNode,
21543        count: *mut usize,
21544    ) -> *mut BNFlowGraphEdge;
21545}
21546unsafe extern "C" {
21547    pub fn BNGetFlowGraphNodeIncomingEdges(
21548        node: *mut BNFlowGraphNode,
21549        count: *mut usize,
21550    ) -> *mut BNFlowGraphEdge;
21551}
21552unsafe extern "C" {
21553    pub fn BNFreeFlowGraphNodeEdgeList(edges: *mut BNFlowGraphEdge, count: usize);
21554}
21555unsafe extern "C" {
21556    pub fn BNAddFlowGraphNodeOutgoingEdge(
21557        node: *mut BNFlowGraphNode,
21558        type_: BNBranchType,
21559        target: *mut BNFlowGraphNode,
21560        edgeStyle: BNEdgeStyle,
21561    );
21562}
21563unsafe extern "C" {
21564    pub fn BNGetFlowGraphNodeHighlight(node: *mut BNFlowGraphNode) -> BNHighlightColor;
21565}
21566unsafe extern "C" {
21567    pub fn BNSetFlowGraphNodeHighlight(node: *mut BNFlowGraphNode, color: BNHighlightColor);
21568}
21569unsafe extern "C" {
21570    pub fn BNFinishPrepareForLayout(graph: *mut BNFlowGraph);
21571}
21572unsafe extern "C" {
21573    pub fn BNFlowGraphUpdateQueryMode(graph: *mut BNFlowGraph) -> bool;
21574}
21575unsafe extern "C" {
21576    pub fn BNFlowGraphHasUpdates(graph: *mut BNFlowGraph) -> bool;
21577}
21578unsafe extern "C" {
21579    pub fn BNUpdateFlowGraph(graph: *mut BNFlowGraph) -> *mut BNFlowGraph;
21580}
21581unsafe extern "C" {
21582    pub fn BNSetFlowGraphOption(graph: *mut BNFlowGraph, option: BNFlowGraphOption, value: bool);
21583}
21584unsafe extern "C" {
21585    pub fn BNIsFlowGraphOptionSet(graph: *mut BNFlowGraph, option: BNFlowGraphOption) -> bool;
21586}
21587unsafe extern "C" {
21588    pub fn BNIsNodeValidForFlowGraph(graph: *mut BNFlowGraph, node: *mut BNFlowGraphNode) -> bool;
21589}
21590unsafe extern "C" {
21591    pub fn BNFlowGraphNodeSetVisibilityRegion(
21592        node: *mut BNFlowGraphNode,
21593        x: ::std::os::raw::c_int,
21594        y: ::std::os::raw::c_int,
21595        w: ::std::os::raw::c_int,
21596        h: ::std::os::raw::c_int,
21597    );
21598}
21599unsafe extern "C" {
21600    pub fn BNFlowGraphNodeSetOutgoingEdgePoints(
21601        node: *mut BNFlowGraphNode,
21602        edgeNum: usize,
21603        points: *mut BNPoint,
21604        pointCount: usize,
21605    );
21606}
21607unsafe extern "C" {
21608    pub fn BNGetFlowGraphLayouts(count: *mut usize) -> *mut *mut BNFlowGraphLayout;
21609}
21610unsafe extern "C" {
21611    pub fn BNFreeFlowGraphLayoutList(layouts: *mut *mut BNFlowGraphLayout);
21612}
21613unsafe extern "C" {
21614    pub fn BNRegisterFlowGraphLayout(
21615        name: *const ::std::os::raw::c_char,
21616        callbacks: *mut BNCustomFlowGraphLayout,
21617    ) -> *mut BNFlowGraphLayout;
21618}
21619unsafe extern "C" {
21620    pub fn BNGetFlowGraphLayoutByName(
21621        name: *const ::std::os::raw::c_char,
21622    ) -> *mut BNFlowGraphLayout;
21623}
21624unsafe extern "C" {
21625    pub fn BNGetFlowGraphLayoutName(layout: *mut BNFlowGraphLayout) -> *mut ::std::os::raw::c_char;
21626}
21627unsafe extern "C" {
21628    pub fn BNFlowGraphLayoutLayout(
21629        layout: *mut BNFlowGraphLayout,
21630        graph: *mut BNFlowGraph,
21631        nodes: *mut *mut BNFlowGraphNode,
21632        nodeCount: usize,
21633    ) -> bool;
21634}
21635unsafe extern "C" {
21636    #[doc = " Symbols"]
21637    pub fn BNCreateSymbol(
21638        type_: BNSymbolType,
21639        shortName: *const ::std::os::raw::c_char,
21640        fullName: *const ::std::os::raw::c_char,
21641        rawName: *const ::std::os::raw::c_char,
21642        addr: u64,
21643        binding: BNSymbolBinding,
21644        nameSpace: *const BNNameSpace,
21645        ordinal: u64,
21646    ) -> *mut BNSymbol;
21647}
21648unsafe extern "C" {
21649    pub fn BNNewSymbolReference(sym: *mut BNSymbol) -> *mut BNSymbol;
21650}
21651unsafe extern "C" {
21652    pub fn BNFreeSymbol(sym: *mut BNSymbol);
21653}
21654unsafe extern "C" {
21655    pub fn BNGetSymbolType(sym: *mut BNSymbol) -> BNSymbolType;
21656}
21657unsafe extern "C" {
21658    pub fn BNGetSymbolBinding(sym: *mut BNSymbol) -> BNSymbolBinding;
21659}
21660unsafe extern "C" {
21661    pub fn BNGetSymbolNameSpace(sym: *mut BNSymbol) -> BNNameSpace;
21662}
21663unsafe extern "C" {
21664    pub fn BNGetSymbolShortName(sym: *mut BNSymbol) -> *mut ::std::os::raw::c_char;
21665}
21666unsafe extern "C" {
21667    pub fn BNGetSymbolShortNameRef(sym: *mut BNSymbol) -> *mut BNStringRef;
21668}
21669unsafe extern "C" {
21670    pub fn BNGetSymbolFullName(sym: *mut BNSymbol) -> *mut ::std::os::raw::c_char;
21671}
21672unsafe extern "C" {
21673    pub fn BNGetSymbolFullNameRef(sym: *mut BNSymbol) -> *mut BNStringRef;
21674}
21675unsafe extern "C" {
21676    pub fn BNGetSymbolRawName(sym: *mut BNSymbol) -> *mut ::std::os::raw::c_char;
21677}
21678unsafe extern "C" {
21679    pub fn BNGetSymbolRawNameRef(sym: *mut BNSymbol) -> *mut BNStringRef;
21680}
21681unsafe extern "C" {
21682    pub fn BNGetSymbolRawBytes(
21683        sym: *mut BNSymbol,
21684        count: *mut usize,
21685    ) -> *mut ::std::os::raw::c_void;
21686}
21687unsafe extern "C" {
21688    pub fn BNFreeSymbolRawBytes(bytes: *mut ::std::os::raw::c_void);
21689}
21690unsafe extern "C" {
21691    pub fn BNGetSymbolAddress(sym: *mut BNSymbol) -> u64;
21692}
21693unsafe extern "C" {
21694    pub fn BNGetSymbolOrdinal(sym: *mut BNSymbol) -> u64;
21695}
21696unsafe extern "C" {
21697    pub fn BNIsSymbolAutoDefined(sym: *mut BNSymbol) -> bool;
21698}
21699unsafe extern "C" {
21700    pub fn BNGetSymbolByAddress(
21701        view: *mut BNBinaryView,
21702        addr: u64,
21703        nameSpace: *const BNNameSpace,
21704    ) -> *mut BNSymbol;
21705}
21706unsafe extern "C" {
21707    pub fn BNGetSymbolByRawName(
21708        view: *mut BNBinaryView,
21709        name: *const ::std::os::raw::c_char,
21710        nameSpace: *const BNNameSpace,
21711    ) -> *mut BNSymbol;
21712}
21713unsafe extern "C" {
21714    pub fn BNGetSymbolsByName(
21715        view: *mut BNBinaryView,
21716        name: *const ::std::os::raw::c_char,
21717        count: *mut usize,
21718        nameSpace: *const BNNameSpace,
21719    ) -> *mut *mut BNSymbol;
21720}
21721unsafe extern "C" {
21722    pub fn BNGetSymbolsByRawName(
21723        view: *mut BNBinaryView,
21724        name: *const ::std::os::raw::c_char,
21725        count: *mut usize,
21726        nameSpace: *const BNNameSpace,
21727    ) -> *mut *mut BNSymbol;
21728}
21729unsafe extern "C" {
21730    pub fn BNGetSymbols(
21731        view: *mut BNBinaryView,
21732        count: *mut usize,
21733        nameSpace: *const BNNameSpace,
21734    ) -> *mut *mut BNSymbol;
21735}
21736unsafe extern "C" {
21737    pub fn BNGetSymbolsInRange(
21738        view: *mut BNBinaryView,
21739        start: u64,
21740        len: u64,
21741        count: *mut usize,
21742        nameSpace: *const BNNameSpace,
21743    ) -> *mut *mut BNSymbol;
21744}
21745unsafe extern "C" {
21746    pub fn BNGetSymbolsOfType(
21747        view: *mut BNBinaryView,
21748        type_: BNSymbolType,
21749        count: *mut usize,
21750        nameSpace: *const BNNameSpace,
21751    ) -> *mut *mut BNSymbol;
21752}
21753unsafe extern "C" {
21754    pub fn BNGetSymbolsOfTypeInRange(
21755        view: *mut BNBinaryView,
21756        type_: BNSymbolType,
21757        start: u64,
21758        len: u64,
21759        count: *mut usize,
21760        nameSpace: *const BNNameSpace,
21761    ) -> *mut *mut BNSymbol;
21762}
21763unsafe extern "C" {
21764    pub fn BNFreeSymbolList(syms: *mut *mut BNSymbol, count: usize);
21765}
21766unsafe extern "C" {
21767    pub fn BNGetVisibleSymbols(
21768        view: *mut BNBinaryView,
21769        count: *mut usize,
21770        nameSpace: *const BNNameSpace,
21771    ) -> *mut *mut BNSymbol;
21772}
21773unsafe extern "C" {
21774    pub fn BNDefineAutoSymbol(view: *mut BNBinaryView, sym: *mut BNSymbol);
21775}
21776unsafe extern "C" {
21777    pub fn BNUndefineAutoSymbol(view: *mut BNBinaryView, sym: *mut BNSymbol);
21778}
21779unsafe extern "C" {
21780    pub fn BNDefineUserSymbol(view: *mut BNBinaryView, sym: *mut BNSymbol);
21781}
21782unsafe extern "C" {
21783    pub fn BNUndefineUserSymbol(view: *mut BNBinaryView, sym: *mut BNSymbol);
21784}
21785unsafe extern "C" {
21786    pub fn BNDefineImportedFunction(
21787        view: *mut BNBinaryView,
21788        importAddressSym: *mut BNSymbol,
21789        func: *mut BNFunction,
21790        type_: *mut BNType,
21791    );
21792}
21793unsafe extern "C" {
21794    pub fn BNDefineAutoSymbolAndVariableOrFunction(
21795        view: *mut BNBinaryView,
21796        platform: *mut BNPlatform,
21797        sym: *mut BNSymbol,
21798        type_: *mut BNTypeWithConfidence,
21799    ) -> *mut BNSymbol;
21800}
21801unsafe extern "C" {
21802    pub fn BNBeginBulkModifySymbols(view: *mut BNBinaryView);
21803}
21804unsafe extern "C" {
21805    pub fn BNEndBulkModifySymbols(view: *mut BNBinaryView);
21806}
21807unsafe extern "C" {
21808    pub fn BNGetDebugInfo(view: *mut BNBinaryView) -> *mut BNDebugInfo;
21809}
21810unsafe extern "C" {
21811    pub fn BNApplyDebugInfo(view: *mut BNBinaryView, newDebugInfo: *mut BNDebugInfo);
21812}
21813unsafe extern "C" {
21814    pub fn BNSetDebugInfo(view: *mut BNBinaryView, newDebugInfo: *mut BNDebugInfo);
21815}
21816unsafe extern "C" {
21817    pub fn BNIsApplyingDebugInfo(view: *mut BNBinaryView) -> bool;
21818}
21819unsafe extern "C" {
21820    pub fn BNImportedFunctionFromImportAddressSymbol(
21821        sym: *mut BNSymbol,
21822        addr: u64,
21823    ) -> *mut BNSymbol;
21824}
21825unsafe extern "C" {
21826    #[doc = " Low-level IL"]
21827    pub fn BNCreateLowLevelILFunction(
21828        arch: *mut BNArchitecture,
21829        func: *mut BNFunction,
21830    ) -> *mut BNLowLevelILFunction;
21831}
21832unsafe extern "C" {
21833    pub fn BNNewLowLevelILFunctionReference(
21834        func: *mut BNLowLevelILFunction,
21835    ) -> *mut BNLowLevelILFunction;
21836}
21837unsafe extern "C" {
21838    pub fn BNFreeLowLevelILFunction(func: *mut BNLowLevelILFunction);
21839}
21840unsafe extern "C" {
21841    pub fn BNGetLowLevelILOwnerFunction(func: *mut BNLowLevelILFunction) -> *mut BNFunction;
21842}
21843unsafe extern "C" {
21844    pub fn BNLowLevelILGetCurrentAddress(func: *mut BNLowLevelILFunction) -> u64;
21845}
21846unsafe extern "C" {
21847    pub fn BNLowLevelILSetCurrentAddress(
21848        func: *mut BNLowLevelILFunction,
21849        arch: *mut BNArchitecture,
21850        addr: u64,
21851    );
21852}
21853unsafe extern "C" {
21854    pub fn BNLowLevelILSetCurrentSourceBlock(
21855        func: *mut BNLowLevelILFunction,
21856        source: *mut BNBasicBlock,
21857    );
21858}
21859unsafe extern "C" {
21860    pub fn BNLowLevelILGetInstructionStart(
21861        func: *mut BNLowLevelILFunction,
21862        arch: *mut BNArchitecture,
21863        addr: u64,
21864    ) -> usize;
21865}
21866unsafe extern "C" {
21867    pub fn BNLowLevelILGetInstructionsAt(
21868        func: *mut BNLowLevelILFunction,
21869        arch: *mut BNArchitecture,
21870        addr: u64,
21871        count: *mut usize,
21872    ) -> *mut usize;
21873}
21874unsafe extern "C" {
21875    pub fn BNLowLevelILGetExitsForInstruction(
21876        func: *mut BNLowLevelILFunction,
21877        instr: usize,
21878        count: *mut usize,
21879    ) -> *mut usize;
21880}
21881unsafe extern "C" {
21882    pub fn BNLowLevelILClearIndirectBranches(func: *mut BNLowLevelILFunction);
21883}
21884unsafe extern "C" {
21885    pub fn BNLowLevelILSetIndirectBranches(
21886        func: *mut BNLowLevelILFunction,
21887        branches: *mut BNArchitectureAndAddress,
21888        count: usize,
21889    );
21890}
21891unsafe extern "C" {
21892    pub fn BNLowLevelILAddExpr(
21893        func: *mut BNLowLevelILFunction,
21894        operation: BNLowLevelILOperation,
21895        size: usize,
21896        flags: u32,
21897        a: u64,
21898        b: u64,
21899        c: u64,
21900        d: u64,
21901    ) -> usize;
21902}
21903unsafe extern "C" {
21904    pub fn BNLowLevelILAddExprWithLocation(
21905        func: *mut BNLowLevelILFunction,
21906        addr: u64,
21907        sourceOperand: u32,
21908        operation: BNLowLevelILOperation,
21909        size: usize,
21910        flags: u32,
21911        a: u64,
21912        b: u64,
21913        c: u64,
21914        d: u64,
21915    ) -> usize;
21916}
21917unsafe extern "C" {
21918    pub fn BNLowLevelILSetExprSourceOperand(
21919        func: *mut BNLowLevelILFunction,
21920        expr: usize,
21921        operand: u32,
21922    );
21923}
21924unsafe extern "C" {
21925    pub fn BNLowLevelILAddInstruction(func: *mut BNLowLevelILFunction, expr: usize) -> usize;
21926}
21927unsafe extern "C" {
21928    pub fn BNLowLevelILGoto(
21929        func: *mut BNLowLevelILFunction,
21930        label: *mut BNLowLevelILLabel,
21931    ) -> usize;
21932}
21933unsafe extern "C" {
21934    pub fn BNLowLevelILGotoWithLocation(
21935        func: *mut BNLowLevelILFunction,
21936        label: *mut BNLowLevelILLabel,
21937        addr: u64,
21938        sourceOperand: u32,
21939    ) -> usize;
21940}
21941unsafe extern "C" {
21942    pub fn BNLowLevelILIf(
21943        func: *mut BNLowLevelILFunction,
21944        op: u64,
21945        t: *mut BNLowLevelILLabel,
21946        f: *mut BNLowLevelILLabel,
21947    ) -> usize;
21948}
21949unsafe extern "C" {
21950    pub fn BNLowLevelILIfWithLocation(
21951        func: *mut BNLowLevelILFunction,
21952        op: u64,
21953        t: *mut BNLowLevelILLabel,
21954        f: *mut BNLowLevelILLabel,
21955        addr: u64,
21956        sourceOperand: u32,
21957    ) -> usize;
21958}
21959unsafe extern "C" {
21960    pub fn BNLowLevelILInitLabel(label: *mut BNLowLevelILLabel);
21961}
21962unsafe extern "C" {
21963    pub fn BNLowLevelILMarkLabel(func: *mut BNLowLevelILFunction, label: *mut BNLowLevelILLabel);
21964}
21965unsafe extern "C" {
21966    pub fn BNFinalizeLowLevelILFunction(func: *mut BNLowLevelILFunction);
21967}
21968unsafe extern "C" {
21969    pub fn BNGenerateLowLevelILSSAForm(func: *mut BNLowLevelILFunction);
21970}
21971unsafe extern "C" {
21972    pub fn BNLowLevelILFunctionHasIndirectBranches(func: *mut BNLowLevelILFunction) -> bool;
21973}
21974unsafe extern "C" {
21975    pub fn BNPrepareToCopyLowLevelILFunction(
21976        func: *mut BNLowLevelILFunction,
21977        src: *mut BNLowLevelILFunction,
21978    );
21979}
21980unsafe extern "C" {
21981    pub fn BNPrepareToCopyLowLevelILBasicBlock(
21982        func: *mut BNLowLevelILFunction,
21983        block: *mut BNBasicBlock,
21984    );
21985}
21986unsafe extern "C" {
21987    pub fn BNGetLabelForLowLevelILSourceInstruction(
21988        func: *mut BNLowLevelILFunction,
21989        instr: usize,
21990    ) -> *mut BNLowLevelILLabel;
21991}
21992unsafe extern "C" {
21993    pub fn BNPrepareToCopyForeignFunction(
21994        dst: *mut BNLowLevelILFunction,
21995        src: *mut BNLowLevelILFunction,
21996        count: *mut usize,
21997    ) -> *mut *mut BNBasicBlock;
21998}
21999unsafe extern "C" {
22000    pub fn BNLowLevelILAddLabelMap(
22001        func: *mut BNLowLevelILFunction,
22002        values: *mut u64,
22003        labels: *mut *mut BNLowLevelILLabel,
22004        count: usize,
22005    ) -> usize;
22006}
22007unsafe extern "C" {
22008    pub fn BNLowLevelILAddOperandList(
22009        func: *mut BNLowLevelILFunction,
22010        operands: *mut u64,
22011        count: usize,
22012    ) -> usize;
22013}
22014unsafe extern "C" {
22015    pub fn BNLowLevelILGetOperandList(
22016        func: *mut BNLowLevelILFunction,
22017        expr: usize,
22018        operand: usize,
22019        count: *mut usize,
22020    ) -> *mut u64;
22021}
22022unsafe extern "C" {
22023    pub fn BNLowLevelILFreeOperandList(operands: *mut u64);
22024}
22025unsafe extern "C" {
22026    pub fn BNLowLevelILGetOperand(func: *mut BNLowLevelILFunction, offset: usize) -> u64;
22027}
22028unsafe extern "C" {
22029    pub fn BNCacheLowLevelILPossibleValueSet(
22030        func: *mut BNLowLevelILFunction,
22031        pvs: *mut BNPossibleValueSet,
22032    ) -> usize;
22033}
22034unsafe extern "C" {
22035    pub fn BNGetCachedLowLevelILPossibleValueSet(
22036        func: *mut BNLowLevelILFunction,
22037        idx: usize,
22038    ) -> BNPossibleValueSet;
22039}
22040unsafe extern "C" {
22041    pub fn BNGetLowLevelILByIndex(
22042        func: *mut BNLowLevelILFunction,
22043        i: usize,
22044    ) -> BNLowLevelILInstruction;
22045}
22046unsafe extern "C" {
22047    pub fn BNGetLowLevelILIndexForInstruction(func: *mut BNLowLevelILFunction, i: usize) -> usize;
22048}
22049unsafe extern "C" {
22050    pub fn BNGetLowLevelILInstructionForExpr(func: *mut BNLowLevelILFunction, expr: usize)
22051    -> usize;
22052}
22053unsafe extern "C" {
22054    pub fn BNGetLowLevelILInstructionCount(func: *mut BNLowLevelILFunction) -> usize;
22055}
22056unsafe extern "C" {
22057    pub fn BNGetLowLevelILExprCount(func: *mut BNLowLevelILFunction) -> usize;
22058}
22059unsafe extern "C" {
22060    pub fn BNUpdateLowLevelILOperand(
22061        func: *mut BNLowLevelILFunction,
22062        instr: usize,
22063        operandIndex: usize,
22064        value: u64,
22065    );
22066}
22067unsafe extern "C" {
22068    pub fn BNReplaceLowLevelILExpr(func: *mut BNLowLevelILFunction, expr: usize, newExpr: usize);
22069}
22070unsafe extern "C" {
22071    pub fn BNSetLowLevelILExprAttributes(
22072        func: *mut BNLowLevelILFunction,
22073        expr: usize,
22074        attributes: u32,
22075    );
22076}
22077unsafe extern "C" {
22078    pub fn BNAddLowLevelILLabelForAddress(
22079        func: *mut BNLowLevelILFunction,
22080        arch: *mut BNArchitecture,
22081        addr: u64,
22082    );
22083}
22084unsafe extern "C" {
22085    pub fn BNGetLowLevelILLabelForAddress(
22086        func: *mut BNLowLevelILFunction,
22087        arch: *mut BNArchitecture,
22088        addr: u64,
22089    ) -> *mut BNLowLevelILLabel;
22090}
22091unsafe extern "C" {
22092    pub fn BNPrepareBlockTranslation(
22093        func: *mut BNLowLevelILFunction,
22094        arch: *mut BNArchitecture,
22095        addr: u64,
22096    );
22097}
22098unsafe extern "C" {
22099    pub fn BNGetLowLevelILExprText(
22100        func: *mut BNLowLevelILFunction,
22101        arch: *mut BNArchitecture,
22102        i: usize,
22103        settings: *mut BNDisassemblySettings,
22104        tokens: *mut *mut BNInstructionTextToken,
22105        count: *mut usize,
22106    ) -> bool;
22107}
22108unsafe extern "C" {
22109    pub fn BNGetLowLevelILInstructionText(
22110        il: *mut BNLowLevelILFunction,
22111        func: *mut BNFunction,
22112        arch: *mut BNArchitecture,
22113        i: usize,
22114        settings: *mut BNDisassemblySettings,
22115        tokens: *mut *mut BNInstructionTextToken,
22116        count: *mut usize,
22117    ) -> bool;
22118}
22119unsafe extern "C" {
22120    pub fn BNGetLowLevelILTemporaryRegisterCount(func: *mut BNLowLevelILFunction) -> u32;
22121}
22122unsafe extern "C" {
22123    pub fn BNGetLowLevelILTemporaryFlagCount(func: *mut BNLowLevelILFunction) -> u32;
22124}
22125unsafe extern "C" {
22126    pub fn BNGetLowLevelILBasicBlockList(
22127        func: *mut BNLowLevelILFunction,
22128        count: *mut usize,
22129    ) -> *mut *mut BNBasicBlock;
22130}
22131unsafe extern "C" {
22132    pub fn BNGetLowLevelILBasicBlockForInstruction(
22133        func: *mut BNLowLevelILFunction,
22134        i: usize,
22135    ) -> *mut BNBasicBlock;
22136}
22137unsafe extern "C" {
22138    pub fn BNGetLowLevelILSSAForm(func: *mut BNLowLevelILFunction) -> *mut BNLowLevelILFunction;
22139}
22140unsafe extern "C" {
22141    pub fn BNGetLowLevelILNonSSAForm(func: *mut BNLowLevelILFunction) -> *mut BNLowLevelILFunction;
22142}
22143unsafe extern "C" {
22144    pub fn BNGetLowLevelILSSAInstructionIndex(
22145        func: *mut BNLowLevelILFunction,
22146        instr: usize,
22147    ) -> usize;
22148}
22149unsafe extern "C" {
22150    pub fn BNGetLowLevelILNonSSAInstructionIndex(
22151        func: *mut BNLowLevelILFunction,
22152        instr: usize,
22153    ) -> usize;
22154}
22155unsafe extern "C" {
22156    pub fn BNGetLowLevelILSSAExprIndex(func: *mut BNLowLevelILFunction, expr: usize) -> usize;
22157}
22158unsafe extern "C" {
22159    pub fn BNGetLowLevelILNonSSAExprIndex(func: *mut BNLowLevelILFunction, expr: usize) -> usize;
22160}
22161unsafe extern "C" {
22162    pub fn BNGetLowLevelILSSARegisterDefinition(
22163        func: *mut BNLowLevelILFunction,
22164        reg: u32,
22165        version: usize,
22166    ) -> usize;
22167}
22168unsafe extern "C" {
22169    pub fn BNGetLowLevelILSSAFlagDefinition(
22170        func: *mut BNLowLevelILFunction,
22171        reg: u32,
22172        version: usize,
22173    ) -> usize;
22174}
22175unsafe extern "C" {
22176    pub fn BNGetLowLevelILSSAMemoryDefinition(
22177        func: *mut BNLowLevelILFunction,
22178        version: usize,
22179    ) -> usize;
22180}
22181unsafe extern "C" {
22182    pub fn BNGetLowLevelILSSARegisterUses(
22183        func: *mut BNLowLevelILFunction,
22184        reg: u32,
22185        version: usize,
22186        count: *mut usize,
22187    ) -> *mut usize;
22188}
22189unsafe extern "C" {
22190    pub fn BNGetLowLevelILSSAFlagUses(
22191        func: *mut BNLowLevelILFunction,
22192        reg: u32,
22193        version: usize,
22194        count: *mut usize,
22195    ) -> *mut usize;
22196}
22197unsafe extern "C" {
22198    pub fn BNGetLowLevelILSSAMemoryUses(
22199        func: *mut BNLowLevelILFunction,
22200        version: usize,
22201        count: *mut usize,
22202    ) -> *mut usize;
22203}
22204unsafe extern "C" {
22205    pub fn BNGetLowLevelILSSARegisterValue(
22206        func: *mut BNLowLevelILFunction,
22207        reg: u32,
22208        version: usize,
22209    ) -> BNRegisterValue;
22210}
22211unsafe extern "C" {
22212    pub fn BNGetLowLevelILSSAFlagValue(
22213        func: *mut BNLowLevelILFunction,
22214        flag: u32,
22215        version: usize,
22216    ) -> BNRegisterValue;
22217}
22218unsafe extern "C" {
22219    pub fn BNGetLowLevelILExprValue(
22220        func: *mut BNLowLevelILFunction,
22221        expr: usize,
22222    ) -> BNRegisterValue;
22223}
22224unsafe extern "C" {
22225    pub fn BNGetLowLevelILPossibleExprValues(
22226        func: *mut BNLowLevelILFunction,
22227        expr: usize,
22228        options: *mut BNDataFlowQueryOption,
22229        optionCount: usize,
22230    ) -> BNPossibleValueSet;
22231}
22232unsafe extern "C" {
22233    pub fn BNGetLowLevelILRegisterValueAtInstruction(
22234        func: *mut BNLowLevelILFunction,
22235        reg: u32,
22236        instr: usize,
22237    ) -> BNRegisterValue;
22238}
22239unsafe extern "C" {
22240    pub fn BNGetLowLevelILRegisterValueAfterInstruction(
22241        func: *mut BNLowLevelILFunction,
22242        reg: u32,
22243        instr: usize,
22244    ) -> BNRegisterValue;
22245}
22246unsafe extern "C" {
22247    pub fn BNGetLowLevelILPossibleRegisterValuesAtInstruction(
22248        func: *mut BNLowLevelILFunction,
22249        reg: u32,
22250        instr: usize,
22251        options: *mut BNDataFlowQueryOption,
22252        optionCount: usize,
22253    ) -> BNPossibleValueSet;
22254}
22255unsafe extern "C" {
22256    pub fn BNGetLowLevelILPossibleRegisterValuesAfterInstruction(
22257        func: *mut BNLowLevelILFunction,
22258        reg: u32,
22259        instr: usize,
22260        options: *mut BNDataFlowQueryOption,
22261        optionCount: usize,
22262    ) -> BNPossibleValueSet;
22263}
22264unsafe extern "C" {
22265    pub fn BNGetLowLevelILFlagValueAtInstruction(
22266        func: *mut BNLowLevelILFunction,
22267        flag: u32,
22268        instr: usize,
22269    ) -> BNRegisterValue;
22270}
22271unsafe extern "C" {
22272    pub fn BNGetLowLevelILFlagValueAfterInstruction(
22273        func: *mut BNLowLevelILFunction,
22274        flag: u32,
22275        instr: usize,
22276    ) -> BNRegisterValue;
22277}
22278unsafe extern "C" {
22279    pub fn BNGetLowLevelILPossibleFlagValuesAtInstruction(
22280        func: *mut BNLowLevelILFunction,
22281        flag: u32,
22282        instr: usize,
22283        options: *mut BNDataFlowQueryOption,
22284        optionCount: usize,
22285    ) -> BNPossibleValueSet;
22286}
22287unsafe extern "C" {
22288    pub fn BNGetLowLevelILPossibleFlagValuesAfterInstruction(
22289        func: *mut BNLowLevelILFunction,
22290        flag: u32,
22291        instr: usize,
22292        options: *mut BNDataFlowQueryOption,
22293        optionCount: usize,
22294    ) -> BNPossibleValueSet;
22295}
22296unsafe extern "C" {
22297    pub fn BNGetLowLevelILStackContentsAtInstruction(
22298        func: *mut BNLowLevelILFunction,
22299        offset: i64,
22300        len: usize,
22301        instr: usize,
22302    ) -> BNRegisterValue;
22303}
22304unsafe extern "C" {
22305    pub fn BNGetLowLevelILStackContentsAfterInstruction(
22306        func: *mut BNLowLevelILFunction,
22307        offset: i64,
22308        len: usize,
22309        instr: usize,
22310    ) -> BNRegisterValue;
22311}
22312unsafe extern "C" {
22313    pub fn BNGetLowLevelILPossibleStackContentsAtInstruction(
22314        func: *mut BNLowLevelILFunction,
22315        offset: i64,
22316        len: usize,
22317        instr: usize,
22318        options: *mut BNDataFlowQueryOption,
22319        optionCount: usize,
22320    ) -> BNPossibleValueSet;
22321}
22322unsafe extern "C" {
22323    pub fn BNGetLowLevelILPossibleStackContentsAfterInstruction(
22324        func: *mut BNLowLevelILFunction,
22325        offset: i64,
22326        len: usize,
22327        instr: usize,
22328        options: *mut BNDataFlowQueryOption,
22329        optionCount: usize,
22330    ) -> BNPossibleValueSet;
22331}
22332unsafe extern "C" {
22333    pub fn BNGetLowLevelRegisters(func: *mut BNLowLevelILFunction, count: *mut usize) -> *mut u32;
22334}
22335unsafe extern "C" {
22336    pub fn BNGetLowLevelRegisterStacks(
22337        func: *mut BNLowLevelILFunction,
22338        count: *mut usize,
22339    ) -> *mut u32;
22340}
22341unsafe extern "C" {
22342    pub fn BNGetLowLevelFlags(func: *mut BNLowLevelILFunction, count: *mut usize) -> *mut u32;
22343}
22344unsafe extern "C" {
22345    pub fn BNGetLowLevelSSARegistersWithoutVersions(
22346        func: *mut BNLowLevelILFunction,
22347        count: *mut usize,
22348    ) -> *mut u32;
22349}
22350unsafe extern "C" {
22351    pub fn BNGetLowLevelSSARegisterStacksWithoutVersions(
22352        func: *mut BNLowLevelILFunction,
22353        count: *mut usize,
22354    ) -> *mut u32;
22355}
22356unsafe extern "C" {
22357    pub fn BNGetLowLevelSSAFlagsWithoutVersions(
22358        func: *mut BNLowLevelILFunction,
22359        count: *mut usize,
22360    ) -> *mut u32;
22361}
22362unsafe extern "C" {
22363    pub fn BNGetLowLevelRegisterSSAVersions(
22364        func: *mut BNLowLevelILFunction,
22365        var: u32,
22366        count: *mut usize,
22367    ) -> *mut usize;
22368}
22369unsafe extern "C" {
22370    pub fn BNGetLowLevelRegisterStackSSAVersions(
22371        func: *mut BNLowLevelILFunction,
22372        var: u32,
22373        count: *mut usize,
22374    ) -> *mut usize;
22375}
22376unsafe extern "C" {
22377    pub fn BNGetLowLevelFlagSSAVersions(
22378        func: *mut BNLowLevelILFunction,
22379        var: u32,
22380        count: *mut usize,
22381    ) -> *mut usize;
22382}
22383unsafe extern "C" {
22384    pub fn BNGetLowLevelMemoryVersions(
22385        func: *mut BNLowLevelILFunction,
22386        count: *mut usize,
22387    ) -> *mut usize;
22388}
22389unsafe extern "C" {
22390    pub fn BNFreeLLILVariablesList(vars: *mut u32);
22391}
22392unsafe extern "C" {
22393    pub fn BNFreeLLILVariableVersionList(versions: *mut usize);
22394}
22395unsafe extern "C" {
22396    pub fn BNGetMediumLevelILForLowLevelIL(
22397        func: *mut BNLowLevelILFunction,
22398    ) -> *mut BNMediumLevelILFunction;
22399}
22400unsafe extern "C" {
22401    pub fn BNGetMappedMediumLevelIL(
22402        func: *mut BNLowLevelILFunction,
22403    ) -> *mut BNMediumLevelILFunction;
22404}
22405unsafe extern "C" {
22406    pub fn BNGetMediumLevelILInstructionIndex(
22407        func: *mut BNLowLevelILFunction,
22408        instr: usize,
22409    ) -> usize;
22410}
22411unsafe extern "C" {
22412    pub fn BNGetMediumLevelILExprIndex(func: *mut BNLowLevelILFunction, expr: usize) -> usize;
22413}
22414unsafe extern "C" {
22415    pub fn BNGetMediumLevelILExprIndexes(
22416        func: *mut BNLowLevelILFunction,
22417        expr: usize,
22418        count: *mut usize,
22419    ) -> *mut usize;
22420}
22421unsafe extern "C" {
22422    pub fn BNGetMappedMediumLevelILInstructionIndex(
22423        func: *mut BNLowLevelILFunction,
22424        instr: usize,
22425    ) -> usize;
22426}
22427unsafe extern "C" {
22428    pub fn BNGetMappedMediumLevelILExprIndex(func: *mut BNLowLevelILFunction, expr: usize)
22429    -> usize;
22430}
22431unsafe extern "C" {
22432    #[doc = " Medium-level IL"]
22433    pub fn BNCreateMediumLevelILFunction(
22434        arch: *mut BNArchitecture,
22435        func: *mut BNFunction,
22436        lowLevelIL: *mut BNLowLevelILFunction,
22437    ) -> *mut BNMediumLevelILFunction;
22438}
22439unsafe extern "C" {
22440    pub fn BNNewMediumLevelILFunctionReference(
22441        func: *mut BNMediumLevelILFunction,
22442    ) -> *mut BNMediumLevelILFunction;
22443}
22444unsafe extern "C" {
22445    pub fn BNFreeMediumLevelILFunction(func: *mut BNMediumLevelILFunction);
22446}
22447unsafe extern "C" {
22448    pub fn BNGetMediumLevelILOwnerFunction(func: *mut BNMediumLevelILFunction) -> *mut BNFunction;
22449}
22450unsafe extern "C" {
22451    pub fn BNMediumLevelILGetCurrentAddress(func: *mut BNMediumLevelILFunction) -> u64;
22452}
22453unsafe extern "C" {
22454    pub fn BNMediumLevelILSetCurrentAddress(
22455        func: *mut BNMediumLevelILFunction,
22456        arch: *mut BNArchitecture,
22457        addr: u64,
22458    );
22459}
22460unsafe extern "C" {
22461    pub fn BNMediumLevelILGetInstructionStart(
22462        func: *mut BNMediumLevelILFunction,
22463        arch: *mut BNArchitecture,
22464        addr: u64,
22465    ) -> usize;
22466}
22467unsafe extern "C" {
22468    pub fn BNMediumLevelILAddExpr(
22469        func: *mut BNMediumLevelILFunction,
22470        operation: BNMediumLevelILOperation,
22471        size: usize,
22472        a: u64,
22473        b: u64,
22474        c: u64,
22475        d: u64,
22476        e: u64,
22477    ) -> usize;
22478}
22479unsafe extern "C" {
22480    pub fn BNMediumLevelILAddExprWithLocation(
22481        func: *mut BNMediumLevelILFunction,
22482        operation: BNMediumLevelILOperation,
22483        addr: u64,
22484        sourceOperand: u32,
22485        size: usize,
22486        a: u64,
22487        b: u64,
22488        c: u64,
22489        d: u64,
22490        e: u64,
22491    ) -> usize;
22492}
22493unsafe extern "C" {
22494    pub fn BNMediumLevelILAddInstruction(func: *mut BNMediumLevelILFunction, expr: usize) -> usize;
22495}
22496unsafe extern "C" {
22497    pub fn BNMediumLevelILGoto(
22498        func: *mut BNMediumLevelILFunction,
22499        label: *mut BNMediumLevelILLabel,
22500    ) -> usize;
22501}
22502unsafe extern "C" {
22503    pub fn BNMediumLevelILGotoWithLocation(
22504        func: *mut BNMediumLevelILFunction,
22505        label: *mut BNMediumLevelILLabel,
22506        addr: u64,
22507        sourceOperand: u32,
22508    ) -> usize;
22509}
22510unsafe extern "C" {
22511    pub fn BNMediumLevelILIf(
22512        func: *mut BNMediumLevelILFunction,
22513        op: u64,
22514        t: *mut BNMediumLevelILLabel,
22515        f: *mut BNMediumLevelILLabel,
22516    ) -> usize;
22517}
22518unsafe extern "C" {
22519    pub fn BNMediumLevelILIfWithLocation(
22520        func: *mut BNMediumLevelILFunction,
22521        op: u64,
22522        t: *mut BNMediumLevelILLabel,
22523        f: *mut BNMediumLevelILLabel,
22524        addr: u64,
22525        sourceOperand: u32,
22526    ) -> usize;
22527}
22528unsafe extern "C" {
22529    pub fn BNMediumLevelILInitLabel(label: *mut BNMediumLevelILLabel);
22530}
22531unsafe extern "C" {
22532    pub fn BNMediumLevelILMarkLabel(
22533        func: *mut BNMediumLevelILFunction,
22534        label: *mut BNMediumLevelILLabel,
22535    );
22536}
22537unsafe extern "C" {
22538    pub fn BNFinalizeMediumLevelILFunction(func: *mut BNMediumLevelILFunction);
22539}
22540unsafe extern "C" {
22541    pub fn BNGenerateMediumLevelILSSAForm(
22542        func: *mut BNMediumLevelILFunction,
22543        analyzeConditionals: bool,
22544        handleAliases: bool,
22545        knownNotAliases: *mut BNVariable,
22546        knownNotAliasCount: usize,
22547        knownAliases: *mut BNVariable,
22548        knownAliasCount: usize,
22549    );
22550}
22551unsafe extern "C" {
22552    pub fn BNPrepareToCopyMediumLevelILFunction(
22553        func: *mut BNMediumLevelILFunction,
22554        src: *mut BNMediumLevelILFunction,
22555    );
22556}
22557unsafe extern "C" {
22558    pub fn BNPrepareToCopyMediumLevelILBasicBlock(
22559        func: *mut BNMediumLevelILFunction,
22560        block: *mut BNBasicBlock,
22561    );
22562}
22563unsafe extern "C" {
22564    pub fn BNGetLabelForMediumLevelILSourceInstruction(
22565        func: *mut BNMediumLevelILFunction,
22566        instr: usize,
22567    ) -> *mut BNMediumLevelILLabel;
22568}
22569unsafe extern "C" {
22570    pub fn BNMediumLevelILAddLabelMap(
22571        func: *mut BNMediumLevelILFunction,
22572        values: *mut u64,
22573        labels: *mut *mut BNMediumLevelILLabel,
22574        count: usize,
22575    ) -> usize;
22576}
22577unsafe extern "C" {
22578    pub fn BNMediumLevelILAddOperandList(
22579        func: *mut BNMediumLevelILFunction,
22580        operands: *mut u64,
22581        count: usize,
22582    ) -> usize;
22583}
22584unsafe extern "C" {
22585    pub fn BNMediumLevelILGetOperandList(
22586        func: *mut BNMediumLevelILFunction,
22587        expr: usize,
22588        operand: usize,
22589        count: *mut usize,
22590    ) -> *mut u64;
22591}
22592unsafe extern "C" {
22593    pub fn BNMediumLevelILFreeOperandList(operands: *mut u64);
22594}
22595unsafe extern "C" {
22596    pub fn BNMediumLevelILGetOperand(func: *mut BNMediumLevelILFunction, offset: usize) -> u64;
22597}
22598unsafe extern "C" {
22599    pub fn BNCacheMediumLevelILPossibleValueSet(
22600        func: *mut BNMediumLevelILFunction,
22601        pvs: *mut BNPossibleValueSet,
22602    ) -> usize;
22603}
22604unsafe extern "C" {
22605    pub fn BNGetCachedMediumLevelILPossibleValueSet(
22606        func: *mut BNMediumLevelILFunction,
22607        idx: usize,
22608    ) -> BNPossibleValueSet;
22609}
22610unsafe extern "C" {
22611    pub fn BNGetMediumLevelILByIndex(
22612        func: *mut BNMediumLevelILFunction,
22613        i: usize,
22614    ) -> BNMediumLevelILInstruction;
22615}
22616unsafe extern "C" {
22617    pub fn BNGetMediumLevelILIndexForInstruction(
22618        func: *mut BNMediumLevelILFunction,
22619        i: usize,
22620    ) -> usize;
22621}
22622unsafe extern "C" {
22623    pub fn BNGetMediumLevelILInstructionForExpr(
22624        func: *mut BNMediumLevelILFunction,
22625        expr: usize,
22626    ) -> usize;
22627}
22628unsafe extern "C" {
22629    pub fn BNGetMediumLevelILInstructionCount(func: *mut BNMediumLevelILFunction) -> usize;
22630}
22631unsafe extern "C" {
22632    pub fn BNGetMediumLevelILExprCount(func: *mut BNMediumLevelILFunction) -> usize;
22633}
22634unsafe extern "C" {
22635    pub fn BNUpdateMediumLevelILOperand(
22636        func: *mut BNMediumLevelILFunction,
22637        instr: usize,
22638        operandIndex: usize,
22639        value: u64,
22640    );
22641}
22642unsafe extern "C" {
22643    pub fn BNMarkMediumLevelILInstructionForRemoval(
22644        func: *mut BNMediumLevelILFunction,
22645        instr: usize,
22646    );
22647}
22648unsafe extern "C" {
22649    pub fn BNReplaceMediumLevelILInstruction(
22650        func: *mut BNMediumLevelILFunction,
22651        instr: usize,
22652        expr: usize,
22653    );
22654}
22655unsafe extern "C" {
22656    pub fn BNReplaceMediumLevelILExpr(
22657        func: *mut BNMediumLevelILFunction,
22658        expr: usize,
22659        newExpr: usize,
22660    );
22661}
22662unsafe extern "C" {
22663    pub fn BNSetMediumLevelILExprAttributes(
22664        func: *mut BNMediumLevelILFunction,
22665        expr: usize,
22666        attributes: u32,
22667    );
22668}
22669unsafe extern "C" {
22670    pub fn BNGetMediumLevelILExprText(
22671        func: *mut BNMediumLevelILFunction,
22672        arch: *mut BNArchitecture,
22673        i: usize,
22674        tokens: *mut *mut BNInstructionTextToken,
22675        count: *mut usize,
22676        settings: *mut BNDisassemblySettings,
22677    ) -> bool;
22678}
22679unsafe extern "C" {
22680    pub fn BNGetMediumLevelILInstructionText(
22681        il: *mut BNMediumLevelILFunction,
22682        func: *mut BNFunction,
22683        arch: *mut BNArchitecture,
22684        i: usize,
22685        tokens: *mut *mut BNInstructionTextToken,
22686        count: *mut usize,
22687        settings: *mut BNDisassemblySettings,
22688    ) -> bool;
22689}
22690unsafe extern "C" {
22691    pub fn BNGetMediumLevelILBasicBlockList(
22692        func: *mut BNMediumLevelILFunction,
22693        count: *mut usize,
22694    ) -> *mut *mut BNBasicBlock;
22695}
22696unsafe extern "C" {
22697    pub fn BNGetMediumLevelILBasicBlockForInstruction(
22698        func: *mut BNMediumLevelILFunction,
22699        i: usize,
22700    ) -> *mut BNBasicBlock;
22701}
22702unsafe extern "C" {
22703    pub fn BNGetMediumLevelILSSAForm(
22704        func: *mut BNMediumLevelILFunction,
22705    ) -> *mut BNMediumLevelILFunction;
22706}
22707unsafe extern "C" {
22708    pub fn BNGetMediumLevelILNonSSAForm(
22709        func: *mut BNMediumLevelILFunction,
22710    ) -> *mut BNMediumLevelILFunction;
22711}
22712unsafe extern "C" {
22713    pub fn BNGetMediumLevelILSSAInstructionIndex(
22714        func: *mut BNMediumLevelILFunction,
22715        instr: usize,
22716    ) -> usize;
22717}
22718unsafe extern "C" {
22719    pub fn BNGetMediumLevelILNonSSAInstructionIndex(
22720        func: *mut BNMediumLevelILFunction,
22721        instr: usize,
22722    ) -> usize;
22723}
22724unsafe extern "C" {
22725    pub fn BNGetMediumLevelILSSAExprIndex(func: *mut BNMediumLevelILFunction, expr: usize)
22726    -> usize;
22727}
22728unsafe extern "C" {
22729    pub fn BNGetMediumLevelILNonSSAExprIndex(
22730        func: *mut BNMediumLevelILFunction,
22731        expr: usize,
22732    ) -> usize;
22733}
22734unsafe extern "C" {
22735    pub fn BNGetMediumLevelILSSAVarDefinition(
22736        func: *mut BNMediumLevelILFunction,
22737        var: *const BNVariable,
22738        version: usize,
22739    ) -> usize;
22740}
22741unsafe extern "C" {
22742    pub fn BNGetMediumLevelILSSAMemoryDefinition(
22743        func: *mut BNMediumLevelILFunction,
22744        version: usize,
22745    ) -> usize;
22746}
22747unsafe extern "C" {
22748    pub fn BNGetMediumLevelILSSAVarUses(
22749        func: *mut BNMediumLevelILFunction,
22750        var: *const BNVariable,
22751        version: usize,
22752        count: *mut usize,
22753    ) -> *mut usize;
22754}
22755unsafe extern "C" {
22756    pub fn BNGetMediumLevelILSSAMemoryUses(
22757        func: *mut BNMediumLevelILFunction,
22758        version: usize,
22759        count: *mut usize,
22760    ) -> *mut usize;
22761}
22762unsafe extern "C" {
22763    pub fn BNIsMediumLevelILSSAVarLive(
22764        func: *mut BNMediumLevelILFunction,
22765        var: *const BNVariable,
22766        version: usize,
22767    ) -> bool;
22768}
22769unsafe extern "C" {
22770    pub fn BNIsMediumLevelILSSAVarLiveAt(
22771        func: *mut BNMediumLevelILFunction,
22772        var: *const BNVariable,
22773        version: usize,
22774        instr: usize,
22775    ) -> bool;
22776}
22777unsafe extern "C" {
22778    pub fn BNIsMediumLevelILVarLiveAt(
22779        func: *mut BNMediumLevelILFunction,
22780        var: *const BNVariable,
22781        instr: usize,
22782    ) -> bool;
22783}
22784unsafe extern "C" {
22785    pub fn BNGetMediumLevelILVariables(
22786        func: *mut BNMediumLevelILFunction,
22787        count: *mut usize,
22788    ) -> *mut BNVariable;
22789}
22790unsafe extern "C" {
22791    pub fn BNGetMediumLevelILAliasedVariables(
22792        func: *mut BNMediumLevelILFunction,
22793        count: *mut usize,
22794    ) -> *mut BNVariable;
22795}
22796unsafe extern "C" {
22797    pub fn BNGetMediumLevelILVariableSSAVersions(
22798        func: *mut BNMediumLevelILFunction,
22799        var: *const BNVariable,
22800        count: *mut usize,
22801    ) -> *mut usize;
22802}
22803unsafe extern "C" {
22804    pub fn BNGetMediumLevelILVariableDefinitions(
22805        func: *mut BNMediumLevelILFunction,
22806        var: *const BNVariable,
22807        count: *mut usize,
22808    ) -> *mut usize;
22809}
22810unsafe extern "C" {
22811    pub fn BNGetMediumLevelILVariableUses(
22812        func: *mut BNMediumLevelILFunction,
22813        var: *const BNVariable,
22814        count: *mut usize,
22815    ) -> *mut usize;
22816}
22817unsafe extern "C" {
22818    pub fn BNGetMediumLevelILLiveInstructionsForVariable(
22819        func: *mut BNMediumLevelILFunction,
22820        var: *const BNVariable,
22821        includeLastUse: bool,
22822        count: *mut usize,
22823    ) -> *mut usize;
22824}
22825unsafe extern "C" {
22826    pub fn BNGetDefaultIndexForMediumLevelILVariableDefinition(
22827        func: *mut BNMediumLevelILFunction,
22828        var: *const BNVariable,
22829        instrIndex: usize,
22830    ) -> u32;
22831}
22832unsafe extern "C" {
22833    pub fn BNGetMediumLevelILSSAVarValue(
22834        func: *mut BNMediumLevelILFunction,
22835        var: *const BNVariable,
22836        version: usize,
22837    ) -> BNRegisterValue;
22838}
22839unsafe extern "C" {
22840    pub fn BNGetMediumLevelILExprValue(
22841        func: *mut BNMediumLevelILFunction,
22842        expr: usize,
22843    ) -> BNRegisterValue;
22844}
22845unsafe extern "C" {
22846    pub fn BNGetMediumLevelILPossibleSSAVarValues(
22847        func: *mut BNMediumLevelILFunction,
22848        var: *const BNVariable,
22849        version: usize,
22850        instr: usize,
22851        options: *mut BNDataFlowQueryOption,
22852        optionCount: usize,
22853    ) -> BNPossibleValueSet;
22854}
22855unsafe extern "C" {
22856    pub fn BNGetMediumLevelILPossibleExprValues(
22857        func: *mut BNMediumLevelILFunction,
22858        expr: usize,
22859        options: *mut BNDataFlowQueryOption,
22860        optionCount: usize,
22861    ) -> BNPossibleValueSet;
22862}
22863unsafe extern "C" {
22864    pub fn BNGetMediumLevelILSSAVarVersionAtILInstruction(
22865        func: *mut BNMediumLevelILFunction,
22866        var: *const BNVariable,
22867        instr: usize,
22868    ) -> usize;
22869}
22870unsafe extern "C" {
22871    pub fn BNGetMediumLevelILSSAVarVersionAfterILInstruction(
22872        func: *mut BNMediumLevelILFunction,
22873        var: *const BNVariable,
22874        instr: usize,
22875    ) -> usize;
22876}
22877unsafe extern "C" {
22878    pub fn BNGetMediumLevelILSSAMemoryVersionAtILInstruction(
22879        func: *mut BNMediumLevelILFunction,
22880        instr: usize,
22881    ) -> usize;
22882}
22883unsafe extern "C" {
22884    pub fn BNGetMediumLevelILSSAMemoryVersionAfterILInstruction(
22885        func: *mut BNMediumLevelILFunction,
22886        instr: usize,
22887    ) -> usize;
22888}
22889unsafe extern "C" {
22890    pub fn BNGetMediumLevelILVariableForRegisterAtInstruction(
22891        func: *mut BNMediumLevelILFunction,
22892        reg: u32,
22893        instr: usize,
22894    ) -> BNVariable;
22895}
22896unsafe extern "C" {
22897    pub fn BNGetMediumLevelILVariableForRegisterAfterInstruction(
22898        func: *mut BNMediumLevelILFunction,
22899        reg: u32,
22900        instr: usize,
22901    ) -> BNVariable;
22902}
22903unsafe extern "C" {
22904    pub fn BNGetMediumLevelILVariableForFlagAtInstruction(
22905        func: *mut BNMediumLevelILFunction,
22906        flag: u32,
22907        instr: usize,
22908    ) -> BNVariable;
22909}
22910unsafe extern "C" {
22911    pub fn BNGetMediumLevelILVariableForFlagAfterInstruction(
22912        func: *mut BNMediumLevelILFunction,
22913        flag: u32,
22914        instr: usize,
22915    ) -> BNVariable;
22916}
22917unsafe extern "C" {
22918    pub fn BNGetMediumLevelILVariableForStackLocationAtInstruction(
22919        func: *mut BNMediumLevelILFunction,
22920        offset: i64,
22921        instr: usize,
22922    ) -> BNVariable;
22923}
22924unsafe extern "C" {
22925    pub fn BNGetMediumLevelILVariableForStackLocationAfterInstruction(
22926        func: *mut BNMediumLevelILFunction,
22927        offset: i64,
22928        instr: usize,
22929    ) -> BNVariable;
22930}
22931unsafe extern "C" {
22932    pub fn BNGetMediumLevelILRegisterValueAtInstruction(
22933        func: *mut BNMediumLevelILFunction,
22934        reg: u32,
22935        instr: usize,
22936    ) -> BNRegisterValue;
22937}
22938unsafe extern "C" {
22939    pub fn BNGetMediumLevelILRegisterValueAfterInstruction(
22940        func: *mut BNMediumLevelILFunction,
22941        reg: u32,
22942        instr: usize,
22943    ) -> BNRegisterValue;
22944}
22945unsafe extern "C" {
22946    pub fn BNGetMediumLevelILPossibleRegisterValuesAtInstruction(
22947        func: *mut BNMediumLevelILFunction,
22948        reg: u32,
22949        instr: usize,
22950        options: *mut BNDataFlowQueryOption,
22951        optionCount: usize,
22952    ) -> BNPossibleValueSet;
22953}
22954unsafe extern "C" {
22955    pub fn BNGetMediumLevelILPossibleRegisterValuesAfterInstruction(
22956        func: *mut BNMediumLevelILFunction,
22957        reg: u32,
22958        instr: usize,
22959        options: *mut BNDataFlowQueryOption,
22960        optionCount: usize,
22961    ) -> BNPossibleValueSet;
22962}
22963unsafe extern "C" {
22964    pub fn BNGetMediumLevelILFlagValueAtInstruction(
22965        func: *mut BNMediumLevelILFunction,
22966        flag: u32,
22967        instr: usize,
22968    ) -> BNRegisterValue;
22969}
22970unsafe extern "C" {
22971    pub fn BNGetMediumLevelILFlagValueAfterInstruction(
22972        func: *mut BNMediumLevelILFunction,
22973        flag: u32,
22974        instr: usize,
22975    ) -> BNRegisterValue;
22976}
22977unsafe extern "C" {
22978    pub fn BNGetMediumLevelILPossibleFlagValuesAtInstruction(
22979        func: *mut BNMediumLevelILFunction,
22980        flag: u32,
22981        instr: usize,
22982        options: *mut BNDataFlowQueryOption,
22983        optionCount: usize,
22984    ) -> BNPossibleValueSet;
22985}
22986unsafe extern "C" {
22987    pub fn BNGetMediumLevelILPossibleFlagValuesAfterInstruction(
22988        func: *mut BNMediumLevelILFunction,
22989        flag: u32,
22990        instr: usize,
22991        options: *mut BNDataFlowQueryOption,
22992        optionCount: usize,
22993    ) -> BNPossibleValueSet;
22994}
22995unsafe extern "C" {
22996    pub fn BNGetMediumLevelILStackContentsAtInstruction(
22997        func: *mut BNMediumLevelILFunction,
22998        offset: i64,
22999        len: usize,
23000        instr: usize,
23001    ) -> BNRegisterValue;
23002}
23003unsafe extern "C" {
23004    pub fn BNGetMediumLevelILStackContentsAfterInstruction(
23005        func: *mut BNMediumLevelILFunction,
23006        offset: i64,
23007        len: usize,
23008        instr: usize,
23009    ) -> BNRegisterValue;
23010}
23011unsafe extern "C" {
23012    pub fn BNGetMediumLevelILPossibleStackContentsAtInstruction(
23013        func: *mut BNMediumLevelILFunction,
23014        offset: i64,
23015        len: usize,
23016        instr: usize,
23017        options: *mut BNDataFlowQueryOption,
23018        optionCount: usize,
23019    ) -> BNPossibleValueSet;
23020}
23021unsafe extern "C" {
23022    pub fn BNGetMediumLevelILPossibleStackContentsAfterInstruction(
23023        func: *mut BNMediumLevelILFunction,
23024        offset: i64,
23025        len: usize,
23026        instr: usize,
23027        options: *mut BNDataFlowQueryOption,
23028        optionCount: usize,
23029    ) -> BNPossibleValueSet;
23030}
23031unsafe extern "C" {
23032    pub fn BNGetMediumLevelILBranchDependence(
23033        func: *mut BNMediumLevelILFunction,
23034        curInstr: usize,
23035        branchInstr: usize,
23036    ) -> BNILBranchDependence;
23037}
23038unsafe extern "C" {
23039    pub fn BNGetAllMediumLevelILBranchDependence(
23040        func: *mut BNMediumLevelILFunction,
23041        instr: usize,
23042        count: *mut usize,
23043    ) -> *mut BNILBranchInstructionAndDependence;
23044}
23045unsafe extern "C" {
23046    pub fn BNFreeILBranchDependenceList(branches: *mut BNILBranchInstructionAndDependence);
23047}
23048unsafe extern "C" {
23049    pub fn BNGetLowLevelILForMediumLevelIL(
23050        func: *mut BNMediumLevelILFunction,
23051    ) -> *mut BNLowLevelILFunction;
23052}
23053unsafe extern "C" {
23054    pub fn BNGetLowLevelILInstructionIndex(
23055        func: *mut BNMediumLevelILFunction,
23056        instr: usize,
23057    ) -> usize;
23058}
23059unsafe extern "C" {
23060    pub fn BNGetLowLevelILExprIndex(func: *mut BNMediumLevelILFunction, expr: usize) -> usize;
23061}
23062unsafe extern "C" {
23063    pub fn BNGetLowLevelILExprIndexes(
23064        func: *mut BNMediumLevelILFunction,
23065        expr: usize,
23066        count: *mut usize,
23067    ) -> *mut usize;
23068}
23069unsafe extern "C" {
23070    pub fn BNGetHighLevelILForMediumLevelIL(
23071        func: *mut BNMediumLevelILFunction,
23072    ) -> *mut BNHighLevelILFunction;
23073}
23074unsafe extern "C" {
23075    pub fn BNGetHighLevelILInstructionIndex(
23076        func: *mut BNMediumLevelILFunction,
23077        instr: usize,
23078    ) -> usize;
23079}
23080unsafe extern "C" {
23081    pub fn BNGetHighLevelILExprIndex(func: *mut BNMediumLevelILFunction, expr: usize) -> usize;
23082}
23083unsafe extern "C" {
23084    pub fn BNGetHighLevelILExprIndexes(
23085        func: *mut BNMediumLevelILFunction,
23086        expr: usize,
23087        count: *mut usize,
23088    ) -> *mut usize;
23089}
23090unsafe extern "C" {
23091    pub fn BNGetMediumLevelILExprType(
23092        func: *mut BNMediumLevelILFunction,
23093        expr: usize,
23094    ) -> BNTypeWithConfidence;
23095}
23096unsafe extern "C" {
23097    pub fn BNSetMediumLevelILExprType(
23098        func: *mut BNMediumLevelILFunction,
23099        expr: usize,
23100        type_: *mut BNTypeWithConfidence,
23101    );
23102}
23103unsafe extern "C" {
23104    #[doc = " High-level IL"]
23105    pub fn BNCreateHighLevelILFunction(
23106        arch: *mut BNArchitecture,
23107        func: *mut BNFunction,
23108    ) -> *mut BNHighLevelILFunction;
23109}
23110unsafe extern "C" {
23111    pub fn BNNewHighLevelILFunctionReference(
23112        func: *mut BNHighLevelILFunction,
23113    ) -> *mut BNHighLevelILFunction;
23114}
23115unsafe extern "C" {
23116    pub fn BNFreeHighLevelILFunction(func: *mut BNHighLevelILFunction);
23117}
23118unsafe extern "C" {
23119    pub fn BNGetHighLevelILOwnerFunction(func: *mut BNHighLevelILFunction) -> *mut BNFunction;
23120}
23121unsafe extern "C" {
23122    pub fn BNHighLevelILGetCurrentAddress(func: *mut BNHighLevelILFunction) -> u64;
23123}
23124unsafe extern "C" {
23125    pub fn BNHighLevelILSetCurrentAddress(
23126        func: *mut BNHighLevelILFunction,
23127        arch: *mut BNArchitecture,
23128        addr: u64,
23129    );
23130}
23131unsafe extern "C" {
23132    pub fn BNHighLevelILAddExpr(
23133        func: *mut BNHighLevelILFunction,
23134        operation: BNHighLevelILOperation,
23135        size: usize,
23136        a: u64,
23137        b: u64,
23138        c: u64,
23139        d: u64,
23140        e: u64,
23141    ) -> usize;
23142}
23143unsafe extern "C" {
23144    pub fn BNHighLevelILAddExprWithLocation(
23145        func: *mut BNHighLevelILFunction,
23146        operation: BNHighLevelILOperation,
23147        addr: u64,
23148        sourceOperand: u32,
23149        size: usize,
23150        a: u64,
23151        b: u64,
23152        c: u64,
23153        d: u64,
23154        e: u64,
23155    ) -> usize;
23156}
23157unsafe extern "C" {
23158    pub fn BNGetHighLevelILRootExpr(func: *mut BNHighLevelILFunction) -> usize;
23159}
23160unsafe extern "C" {
23161    pub fn BNSetHighLevelILRootExpr(func: *mut BNHighLevelILFunction, expr: usize);
23162}
23163unsafe extern "C" {
23164    pub fn BNFinalizeHighLevelILFunction(func: *mut BNHighLevelILFunction);
23165}
23166unsafe extern "C" {
23167    pub fn BNGenerateHighLevelILSSAForm(
23168        func: *mut BNHighLevelILFunction,
23169        aliases: *mut BNVariable,
23170        aliasCount: usize,
23171    );
23172}
23173unsafe extern "C" {
23174    pub fn BNHighLevelILAddOperandList(
23175        func: *mut BNHighLevelILFunction,
23176        operands: *mut u64,
23177        count: usize,
23178    ) -> usize;
23179}
23180unsafe extern "C" {
23181    pub fn BNHighLevelILGetOperandList(
23182        func: *mut BNHighLevelILFunction,
23183        expr: usize,
23184        operand: usize,
23185        count: *mut usize,
23186    ) -> *mut u64;
23187}
23188unsafe extern "C" {
23189    pub fn BNHighLevelILFreeOperandList(operands: *mut u64);
23190}
23191unsafe extern "C" {
23192    pub fn BNHighLevelILGetOperand(func: *mut BNHighLevelILFunction, offset: usize) -> u64;
23193}
23194unsafe extern "C" {
23195    pub fn BNCacheHighLevelILPossibleValueSet(
23196        func: *mut BNHighLevelILFunction,
23197        pvs: *mut BNPossibleValueSet,
23198    ) -> usize;
23199}
23200unsafe extern "C" {
23201    pub fn BNGetCachedHighLevelILPossibleValueSet(
23202        func: *mut BNHighLevelILFunction,
23203        idx: usize,
23204    ) -> BNPossibleValueSet;
23205}
23206unsafe extern "C" {
23207    pub fn BNGetHighLevelILByIndex(
23208        func: *mut BNHighLevelILFunction,
23209        i: usize,
23210        asFullAst: bool,
23211    ) -> BNHighLevelILInstruction;
23212}
23213unsafe extern "C" {
23214    pub fn BNGetHighLevelILIndexForInstruction(func: *mut BNHighLevelILFunction, i: usize)
23215    -> usize;
23216}
23217unsafe extern "C" {
23218    pub fn BNGetHighLevelILInstructionForExpr(
23219        func: *mut BNHighLevelILFunction,
23220        expr: usize,
23221    ) -> usize;
23222}
23223unsafe extern "C" {
23224    pub fn BNGetHighLevelILInstructionCount(func: *mut BNHighLevelILFunction) -> usize;
23225}
23226unsafe extern "C" {
23227    pub fn BNGetHighLevelILExprCount(func: *mut BNHighLevelILFunction) -> usize;
23228}
23229unsafe extern "C" {
23230    pub fn BNGetMediumLevelILForHighLevelILFunction(
23231        func: *mut BNHighLevelILFunction,
23232    ) -> *mut BNMediumLevelILFunction;
23233}
23234unsafe extern "C" {
23235    pub fn BNGetMediumLevelILExprIndexFromHighLevelIL(
23236        func: *mut BNHighLevelILFunction,
23237        expr: usize,
23238    ) -> usize;
23239}
23240unsafe extern "C" {
23241    pub fn BNGetMediumLevelILExprIndexesFromHighLevelIL(
23242        func: *mut BNHighLevelILFunction,
23243        expr: usize,
23244        count: *mut usize,
23245    ) -> *mut usize;
23246}
23247unsafe extern "C" {
23248    pub fn BNUpdateHighLevelILOperand(
23249        func: *mut BNHighLevelILFunction,
23250        instr: usize,
23251        operandIndex: usize,
23252        value: u64,
23253    );
23254}
23255unsafe extern "C" {
23256    pub fn BNReplaceHighLevelILExpr(func: *mut BNHighLevelILFunction, expr: usize, newExpr: usize);
23257}
23258unsafe extern "C" {
23259    pub fn BNSetHighLevelILExprAttributes(
23260        func: *mut BNHighLevelILFunction,
23261        expr: usize,
23262        attributes: u32,
23263    );
23264}
23265unsafe extern "C" {
23266    pub fn BNGetHighLevelILExprText(
23267        func: *mut BNHighLevelILFunction,
23268        expr: usize,
23269        asFullAst: bool,
23270        count: *mut usize,
23271        settings: *mut BNDisassemblySettings,
23272    ) -> *mut BNDisassemblyTextLine;
23273}
23274unsafe extern "C" {
23275    pub fn BNGetHighLevelILExprType(
23276        func: *mut BNHighLevelILFunction,
23277        expr: usize,
23278    ) -> BNTypeWithConfidence;
23279}
23280unsafe extern "C" {
23281    pub fn BNSetHighLevelILExprType(
23282        func: *mut BNHighLevelILFunction,
23283        expr: usize,
23284        type_: *mut BNTypeWithConfidence,
23285    );
23286}
23287unsafe extern "C" {
23288    pub fn BNGetHighLevelILBasicBlockList(
23289        func: *mut BNHighLevelILFunction,
23290        count: *mut usize,
23291    ) -> *mut *mut BNBasicBlock;
23292}
23293unsafe extern "C" {
23294    pub fn BNGetHighLevelILBasicBlockForInstruction(
23295        func: *mut BNHighLevelILFunction,
23296        i: usize,
23297    ) -> *mut BNBasicBlock;
23298}
23299unsafe extern "C" {
23300    pub fn BNGetHighLevelILSSAForm(func: *mut BNHighLevelILFunction) -> *mut BNHighLevelILFunction;
23301}
23302unsafe extern "C" {
23303    pub fn BNGetHighLevelILNonSSAForm(
23304        func: *mut BNHighLevelILFunction,
23305    ) -> *mut BNHighLevelILFunction;
23306}
23307unsafe extern "C" {
23308    pub fn BNGetHighLevelILSSAInstructionIndex(
23309        func: *mut BNHighLevelILFunction,
23310        instr: usize,
23311    ) -> usize;
23312}
23313unsafe extern "C" {
23314    pub fn BNGetHighLevelILNonSSAInstructionIndex(
23315        func: *mut BNHighLevelILFunction,
23316        instr: usize,
23317    ) -> usize;
23318}
23319unsafe extern "C" {
23320    pub fn BNGetHighLevelILSSAExprIndex(func: *mut BNHighLevelILFunction, expr: usize) -> usize;
23321}
23322unsafe extern "C" {
23323    pub fn BNGetHighLevelILNonSSAExprIndex(func: *mut BNHighLevelILFunction, expr: usize) -> usize;
23324}
23325unsafe extern "C" {
23326    pub fn BNGetHighLevelILSSAVarDefinition(
23327        func: *mut BNHighLevelILFunction,
23328        var: *const BNVariable,
23329        version: usize,
23330    ) -> usize;
23331}
23332unsafe extern "C" {
23333    pub fn BNGetHighLevelILSSAMemoryDefinition(
23334        func: *mut BNHighLevelILFunction,
23335        version: usize,
23336    ) -> usize;
23337}
23338unsafe extern "C" {
23339    pub fn BNGetHighLevelILSSAVarUses(
23340        func: *mut BNHighLevelILFunction,
23341        var: *const BNVariable,
23342        version: usize,
23343        count: *mut usize,
23344    ) -> *mut usize;
23345}
23346unsafe extern "C" {
23347    pub fn BNGetHighLevelILSSAMemoryUses(
23348        func: *mut BNHighLevelILFunction,
23349        version: usize,
23350        count: *mut usize,
23351    ) -> *mut usize;
23352}
23353unsafe extern "C" {
23354    pub fn BNIsHighLevelILSSAVarLive(
23355        func: *mut BNHighLevelILFunction,
23356        var: *const BNVariable,
23357        version: usize,
23358    ) -> bool;
23359}
23360unsafe extern "C" {
23361    pub fn BNIsHighLevelILSSAVarLiveAt(
23362        func: *mut BNHighLevelILFunction,
23363        var: *const BNVariable,
23364        version: usize,
23365        instr: usize,
23366    ) -> bool;
23367}
23368unsafe extern "C" {
23369    pub fn BNIsHighLevelILVarLiveAt(
23370        func: *mut BNHighLevelILFunction,
23371        var: *const BNVariable,
23372        instr: usize,
23373    ) -> bool;
23374}
23375unsafe extern "C" {
23376    pub fn BNHighLevelILHasSideEffects(func: *mut BNHighLevelILFunction, exprIndex: usize) -> bool;
23377}
23378unsafe extern "C" {
23379    pub fn BNGetHighLevelILExprScopeType(
23380        func: *mut BNHighLevelILFunction,
23381        exprIndex: usize,
23382    ) -> BNScopeType;
23383}
23384unsafe extern "C" {
23385    pub fn BNGetHighLevelILVariables(
23386        func: *mut BNHighLevelILFunction,
23387        count: *mut usize,
23388    ) -> *mut BNVariable;
23389}
23390unsafe extern "C" {
23391    pub fn BNGetHighLevelILAliasedVariables(
23392        func: *mut BNHighLevelILFunction,
23393        count: *mut usize,
23394    ) -> *mut BNVariable;
23395}
23396unsafe extern "C" {
23397    pub fn BNGetHighLevelILVariableSSAVersions(
23398        func: *mut BNHighLevelILFunction,
23399        var: *const BNVariable,
23400        count: *mut usize,
23401    ) -> *mut usize;
23402}
23403unsafe extern "C" {
23404    pub fn BNGetHighLevelILVariableDefinitions(
23405        func: *mut BNHighLevelILFunction,
23406        var: *const BNVariable,
23407        count: *mut usize,
23408    ) -> *mut usize;
23409}
23410unsafe extern "C" {
23411    pub fn BNGetHighLevelILVariableUses(
23412        func: *mut BNHighLevelILFunction,
23413        var: *const BNVariable,
23414        count: *mut usize,
23415    ) -> *mut usize;
23416}
23417unsafe extern "C" {
23418    pub fn BNGetHighLevelILSSAVarVersionAtILInstruction(
23419        func: *mut BNHighLevelILFunction,
23420        var: *const BNVariable,
23421        instr: usize,
23422    ) -> usize;
23423}
23424unsafe extern "C" {
23425    pub fn BNGetHighLevelILSSAMemoryVersionAtILInstruction(
23426        func: *mut BNHighLevelILFunction,
23427        instr: usize,
23428    ) -> usize;
23429}
23430unsafe extern "C" {
23431    pub fn BNGetHighLevelILExprIndexForLabel(func: *mut BNHighLevelILFunction, label: u64)
23432    -> usize;
23433}
23434unsafe extern "C" {
23435    pub fn BNGetHighLevelILUsesForLabel(
23436        func: *mut BNHighLevelILFunction,
23437        label: u64,
23438        count: *mut usize,
23439    ) -> *mut usize;
23440}
23441unsafe extern "C" {
23442    pub fn BNHighLevelILExprLessThan(
23443        leftFunc: *mut BNHighLevelILFunction,
23444        leftExpr: usize,
23445        rightFunc: *mut BNHighLevelILFunction,
23446        rightExpr: usize,
23447    ) -> bool;
23448}
23449unsafe extern "C" {
23450    pub fn BNHighLevelILExprEqual(
23451        leftFunc: *mut BNHighLevelILFunction,
23452        leftExpr: usize,
23453        rightFunc: *mut BNHighLevelILFunction,
23454        rightExpr: usize,
23455    ) -> bool;
23456}
23457unsafe extern "C" {
23458    pub fn BNSetHighLevelILDerivedStringReferenceForExpr(
23459        func: *mut BNHighLevelILFunction,
23460        expr: usize,
23461        str_: *mut BNDerivedString,
23462    );
23463}
23464unsafe extern "C" {
23465    pub fn BNRemoveHighLevelILDerivedStringReferenceForExpr(
23466        func: *mut BNHighLevelILFunction,
23467        expr: usize,
23468    );
23469}
23470unsafe extern "C" {
23471    pub fn BNGetHighLevelILDerivedStringReferenceForExpr(
23472        func: *mut BNHighLevelILFunction,
23473        expr: usize,
23474        out: *mut BNDerivedString,
23475    ) -> bool;
23476}
23477unsafe extern "C" {
23478    #[doc = " Type Libraries"]
23479    pub fn BNNewTypeLibrary(
23480        arch: *mut BNArchitecture,
23481        name: *const ::std::os::raw::c_char,
23482    ) -> *mut BNTypeLibrary;
23483}
23484unsafe extern "C" {
23485    pub fn BNNewTypeLibraryReference(lib: *mut BNTypeLibrary) -> *mut BNTypeLibrary;
23486}
23487unsafe extern "C" {
23488    pub fn BNDuplicateTypeLibrary(lib: *mut BNTypeLibrary) -> *mut BNTypeLibrary;
23489}
23490unsafe extern "C" {
23491    pub fn BNLoadTypeLibraryFromFile(path: *const ::std::os::raw::c_char) -> *mut BNTypeLibrary;
23492}
23493unsafe extern "C" {
23494    pub fn BNTypeLibraryDecompressToFile(
23495        lib: *mut BNTypeLibrary,
23496        output: *const ::std::os::raw::c_char,
23497    ) -> bool;
23498}
23499unsafe extern "C" {
23500    pub fn BNFreeTypeLibrary(lib: *mut BNTypeLibrary);
23501}
23502unsafe extern "C" {
23503    pub fn BNLookupTypeLibraryByName(
23504        arch: *mut BNArchitecture,
23505        name: *const ::std::os::raw::c_char,
23506    ) -> *mut BNTypeLibrary;
23507}
23508unsafe extern "C" {
23509    pub fn BNLookupTypeLibraryByGuid(
23510        arch: *mut BNArchitecture,
23511        guid: *const ::std::os::raw::c_char,
23512    ) -> *mut BNTypeLibrary;
23513}
23514unsafe extern "C" {
23515    pub fn BNGetArchitectureTypeLibraries(
23516        arch: *mut BNArchitecture,
23517        count: *mut usize,
23518    ) -> *mut *mut BNTypeLibrary;
23519}
23520unsafe extern "C" {
23521    pub fn BNFreeTypeLibraryList(lib: *mut *mut BNTypeLibrary, count: usize);
23522}
23523unsafe extern "C" {
23524    pub fn BNFinalizeTypeLibrary(lib: *mut BNTypeLibrary) -> bool;
23525}
23526unsafe extern "C" {
23527    pub fn BNRegisterTypeLibrary(lib: *mut BNTypeLibrary);
23528}
23529unsafe extern "C" {
23530    pub fn BNGetTypeLibraryArchitecture(lib: *mut BNTypeLibrary) -> *mut BNArchitecture;
23531}
23532unsafe extern "C" {
23533    pub fn BNSetTypeLibraryName(lib: *mut BNTypeLibrary, name: *const ::std::os::raw::c_char);
23534}
23535unsafe extern "C" {
23536    pub fn BNGetTypeLibraryName(lib: *mut BNTypeLibrary) -> *mut ::std::os::raw::c_char;
23537}
23538unsafe extern "C" {
23539    pub fn BNAddTypeLibraryAlternateName(
23540        lib: *mut BNTypeLibrary,
23541        name: *const ::std::os::raw::c_char,
23542    );
23543}
23544unsafe extern "C" {
23545    pub fn BNRemoveTypeLibraryAlternateName(
23546        lib: *mut BNTypeLibrary,
23547        name: *const ::std::os::raw::c_char,
23548    );
23549}
23550unsafe extern "C" {
23551    pub fn BNGetTypeLibraryAlternateNames(
23552        lib: *mut BNTypeLibrary,
23553        count: *mut usize,
23554    ) -> *mut *mut ::std::os::raw::c_char;
23555}
23556unsafe extern "C" {
23557    pub fn BNSetTypeLibraryDependencyName(
23558        lib: *mut BNTypeLibrary,
23559        name: *const ::std::os::raw::c_char,
23560    );
23561}
23562unsafe extern "C" {
23563    pub fn BNGetTypeLibraryDependencyName(lib: *mut BNTypeLibrary) -> *mut ::std::os::raw::c_char;
23564}
23565unsafe extern "C" {
23566    pub fn BNSetTypeLibraryGuid(lib: *mut BNTypeLibrary, name: *const ::std::os::raw::c_char);
23567}
23568unsafe extern "C" {
23569    pub fn BNGetTypeLibraryGuid(lib: *mut BNTypeLibrary) -> *mut ::std::os::raw::c_char;
23570}
23571unsafe extern "C" {
23572    pub fn BNClearTypeLibraryPlatforms(lib: *mut BNTypeLibrary);
23573}
23574unsafe extern "C" {
23575    pub fn BNAddTypeLibraryPlatform(lib: *mut BNTypeLibrary, platform: *mut BNPlatform);
23576}
23577unsafe extern "C" {
23578    pub fn BNGetTypeLibraryPlatforms(
23579        lib: *mut BNTypeLibrary,
23580        count: *mut usize,
23581    ) -> *mut *mut ::std::os::raw::c_char;
23582}
23583unsafe extern "C" {
23584    pub fn BNTypeLibraryStoreMetadata(
23585        lib: *mut BNTypeLibrary,
23586        key: *const ::std::os::raw::c_char,
23587        value: *mut BNMetadata,
23588    );
23589}
23590unsafe extern "C" {
23591    pub fn BNTypeLibraryQueryMetadata(
23592        lib: *mut BNTypeLibrary,
23593        key: *const ::std::os::raw::c_char,
23594    ) -> *mut BNMetadata;
23595}
23596unsafe extern "C" {
23597    pub fn BNTypeLibraryGetMetadata(lib: *mut BNTypeLibrary) -> *mut BNMetadata;
23598}
23599unsafe extern "C" {
23600    pub fn BNTypeLibraryRemoveMetadata(lib: *mut BNTypeLibrary, key: *const ::std::os::raw::c_char);
23601}
23602unsafe extern "C" {
23603    pub fn BNGetTypeLibraryTypeContainer(lib: *mut BNTypeLibrary) -> *mut BNTypeContainer;
23604}
23605unsafe extern "C" {
23606    pub fn BNAddTypeLibraryNamedObject(
23607        lib: *mut BNTypeLibrary,
23608        name: *mut BNQualifiedName,
23609        type_: *mut BNType,
23610    );
23611}
23612unsafe extern "C" {
23613    pub fn BNRemoveTypeLibraryNamedObject(lib: *mut BNTypeLibrary, name: *mut BNQualifiedName);
23614}
23615unsafe extern "C" {
23616    pub fn BNAddTypeLibraryNamedType(
23617        lib: *mut BNTypeLibrary,
23618        name: *mut BNQualifiedName,
23619        type_: *mut BNType,
23620    );
23621}
23622unsafe extern "C" {
23623    pub fn BNRemoveTypeLibraryNamedType(lib: *mut BNTypeLibrary, name: *mut BNQualifiedName);
23624}
23625unsafe extern "C" {
23626    pub fn BNAddTypeLibraryNamedTypeSource(
23627        lib: *mut BNTypeLibrary,
23628        name: *mut BNQualifiedName,
23629        source: *const ::std::os::raw::c_char,
23630    );
23631}
23632unsafe extern "C" {
23633    pub fn BNGetTypeLibraryNamedObject(
23634        lib: *mut BNTypeLibrary,
23635        name: *mut BNQualifiedName,
23636    ) -> *mut BNType;
23637}
23638unsafe extern "C" {
23639    pub fn BNGetTypeLibraryNamedType(
23640        lib: *mut BNTypeLibrary,
23641        name: *mut BNQualifiedName,
23642    ) -> *mut BNType;
23643}
23644unsafe extern "C" {
23645    pub fn BNGetTypeLibraryNamedTypeSource(
23646        lib: *mut BNTypeLibrary,
23647        name: *mut BNQualifiedName,
23648    ) -> *mut ::std::os::raw::c_char;
23649}
23650unsafe extern "C" {
23651    pub fn BNGetTypeLibraryNamedObjects(
23652        lib: *mut BNTypeLibrary,
23653        count: *mut usize,
23654    ) -> *mut BNQualifiedNameAndType;
23655}
23656unsafe extern "C" {
23657    pub fn BNGetTypeLibraryNamedTypes(
23658        lib: *mut BNTypeLibrary,
23659        count: *mut usize,
23660    ) -> *mut BNQualifiedNameAndType;
23661}
23662unsafe extern "C" {
23663    pub fn BNWriteTypeLibraryToFile(
23664        lib: *mut BNTypeLibrary,
23665        path: *const ::std::os::raw::c_char,
23666    ) -> bool;
23667}
23668unsafe extern "C" {
23669    pub fn BNAddBinaryViewTypeLibrary(view: *mut BNBinaryView, lib: *mut BNTypeLibrary);
23670}
23671unsafe extern "C" {
23672    pub fn BNGetBinaryViewTypeLibrary(
23673        view: *mut BNBinaryView,
23674        name: *const ::std::os::raw::c_char,
23675    ) -> *mut BNTypeLibrary;
23676}
23677unsafe extern "C" {
23678    pub fn BNGetBinaryViewTypeLibraries(
23679        view: *mut BNBinaryView,
23680        count: *mut usize,
23681    ) -> *mut *mut BNTypeLibrary;
23682}
23683unsafe extern "C" {
23684    pub fn BNBinaryViewImportTypeLibraryType(
23685        view: *mut BNBinaryView,
23686        lib: *mut *mut BNTypeLibrary,
23687        name: *mut BNQualifiedName,
23688    ) -> *mut BNType;
23689}
23690unsafe extern "C" {
23691    pub fn BNBinaryViewImportTypeLibraryObject(
23692        view: *mut BNBinaryView,
23693        lib: *mut *mut BNTypeLibrary,
23694        name: *mut BNQualifiedName,
23695    ) -> *mut BNType;
23696}
23697unsafe extern "C" {
23698    pub fn BNBinaryViewImportTypeLibraryTypeByGuid(
23699        view: *mut BNBinaryView,
23700        guid: *const ::std::os::raw::c_char,
23701    ) -> *mut BNType;
23702}
23703unsafe extern "C" {
23704    pub fn BNBinaryViewGetTypeNameByGuid(
23705        view: *mut BNBinaryView,
23706        guid: *const ::std::os::raw::c_char,
23707    ) -> BNQualifiedName;
23708}
23709unsafe extern "C" {
23710    pub fn BNBinaryViewExportTypeToTypeLibrary(
23711        view: *mut BNBinaryView,
23712        lib: *mut BNTypeLibrary,
23713        name: *mut BNQualifiedName,
23714        type_: *mut BNType,
23715    );
23716}
23717unsafe extern "C" {
23718    pub fn BNBinaryViewExportObjectToTypeLibrary(
23719        view: *mut BNBinaryView,
23720        lib: *mut BNTypeLibrary,
23721        name: *mut BNQualifiedName,
23722        type_: *mut BNType,
23723    );
23724}
23725unsafe extern "C" {
23726    pub fn BNBinaryViewSetManualDependencies(
23727        view: *mut BNBinaryView,
23728        viewTypeNames: *mut BNQualifiedName,
23729        libTypeNames: *mut BNQualifiedName,
23730        libNames: *mut *mut ::std::os::raw::c_char,
23731        count: usize,
23732    );
23733}
23734unsafe extern "C" {
23735    pub fn BNBinaryViewRecordImportedObjectLibrary(
23736        view: *mut BNBinaryView,
23737        tgtPlatform: *mut BNPlatform,
23738        tgtAddr: u64,
23739        lib: *mut BNTypeLibrary,
23740        name: *mut BNQualifiedName,
23741    );
23742}
23743unsafe extern "C" {
23744    pub fn BNBinaryViewLookupImportedObjectLibrary(
23745        view: *mut BNBinaryView,
23746        tgtPlatform: *mut BNPlatform,
23747        tgtAddr: u64,
23748        lib: *mut *mut BNTypeLibrary,
23749        name: *mut BNQualifiedName,
23750    ) -> bool;
23751}
23752unsafe extern "C" {
23753    pub fn BNBinaryViewLookupImportedTypeLibrary(
23754        view: *mut BNBinaryView,
23755        typeName: *const BNQualifiedName,
23756        lib: *mut *mut BNTypeLibrary,
23757        resultName: *mut BNQualifiedName,
23758    ) -> bool;
23759}
23760unsafe extern "C" {
23761    #[doc = " Language Representation"]
23762    pub fn BNRegisterLanguageRepresentationFunctionType(
23763        name: *const ::std::os::raw::c_char,
23764        type_: *mut BNCustomLanguageRepresentationFunctionType,
23765    ) -> *mut BNLanguageRepresentationFunctionType;
23766}
23767unsafe extern "C" {
23768    pub fn BNGetLanguageRepresentationFunctionTypeByName(
23769        name: *const ::std::os::raw::c_char,
23770    ) -> *mut BNLanguageRepresentationFunctionType;
23771}
23772unsafe extern "C" {
23773    pub fn BNGetLanguageRepresentationFunctionTypeList(
23774        count: *mut usize,
23775    ) -> *mut *mut BNLanguageRepresentationFunctionType;
23776}
23777unsafe extern "C" {
23778    pub fn BNFreeLanguageRepresentationFunctionTypeList(
23779        types: *mut *mut BNLanguageRepresentationFunctionType,
23780    );
23781}
23782unsafe extern "C" {
23783    pub fn BNGetLanguageRepresentationFunctionTypeName(
23784        type_: *mut BNLanguageRepresentationFunctionType,
23785    ) -> *mut ::std::os::raw::c_char;
23786}
23787unsafe extern "C" {
23788    pub fn BNCreateLanguageRepresentationFunction(
23789        type_: *mut BNLanguageRepresentationFunctionType,
23790        arch: *mut BNArchitecture,
23791        func: *mut BNFunction,
23792        highLevelIL: *mut BNHighLevelILFunction,
23793    ) -> *mut BNLanguageRepresentationFunction;
23794}
23795unsafe extern "C" {
23796    pub fn BNIsLanguageRepresentationFunctionTypeValid(
23797        type_: *mut BNLanguageRepresentationFunctionType,
23798        view: *mut BNBinaryView,
23799    ) -> bool;
23800}
23801unsafe extern "C" {
23802    pub fn BNGetLanguageRepresentationFunctionTypePrinter(
23803        type_: *mut BNLanguageRepresentationFunctionType,
23804    ) -> *mut BNTypePrinter;
23805}
23806unsafe extern "C" {
23807    pub fn BNGetLanguageRepresentationFunctionTypeParser(
23808        type_: *mut BNLanguageRepresentationFunctionType,
23809    ) -> *mut BNTypeParser;
23810}
23811unsafe extern "C" {
23812    pub fn BNGetLanguageRepresentationFunctionTypeLineFormatter(
23813        type_: *mut BNLanguageRepresentationFunctionType,
23814    ) -> *mut BNLineFormatter;
23815}
23816unsafe extern "C" {
23817    pub fn BNGetLanguageRepresentationFunctionTypeFunctionTypeTokens(
23818        type_: *mut BNLanguageRepresentationFunctionType,
23819        func: *mut BNFunction,
23820        settings: *mut BNDisassemblySettings,
23821        count: *mut usize,
23822    ) -> *mut BNDisassemblyTextLine;
23823}
23824unsafe extern "C" {
23825    pub fn BNCreateCustomLanguageRepresentationFunction(
23826        type_: *mut BNLanguageRepresentationFunctionType,
23827        arch: *mut BNArchitecture,
23828        func: *mut BNFunction,
23829        highLevelIL: *mut BNHighLevelILFunction,
23830        callbacks: *mut BNCustomLanguageRepresentationFunction,
23831    ) -> *mut BNLanguageRepresentationFunction;
23832}
23833unsafe extern "C" {
23834    pub fn BNNewLanguageRepresentationFunctionReference(
23835        func: *mut BNLanguageRepresentationFunction,
23836    ) -> *mut BNLanguageRepresentationFunction;
23837}
23838unsafe extern "C" {
23839    pub fn BNFreeLanguageRepresentationFunction(func: *mut BNLanguageRepresentationFunction);
23840}
23841unsafe extern "C" {
23842    pub fn BNGetLanguageRepresentationType(
23843        func: *mut BNLanguageRepresentationFunction,
23844    ) -> *mut BNLanguageRepresentationFunctionType;
23845}
23846unsafe extern "C" {
23847    pub fn BNGetLanguageRepresentationArchitecture(
23848        func: *mut BNLanguageRepresentationFunction,
23849    ) -> *mut BNArchitecture;
23850}
23851unsafe extern "C" {
23852    pub fn BNGetLanguageRepresentationOwnerFunction(
23853        func: *mut BNLanguageRepresentationFunction,
23854    ) -> *mut BNFunction;
23855}
23856unsafe extern "C" {
23857    pub fn BNGetLanguageRepresentationILFunction(
23858        func: *mut BNLanguageRepresentationFunction,
23859    ) -> *mut BNHighLevelILFunction;
23860}
23861unsafe extern "C" {
23862    pub fn BNGetLanguageRepresentationFunctionExprText(
23863        func: *mut BNLanguageRepresentationFunction,
23864        il: *mut BNHighLevelILFunction,
23865        exprIndex: usize,
23866        settings: *mut BNDisassemblySettings,
23867        asFullAst: bool,
23868        precedence: BNOperatorPrecedence,
23869        statement: bool,
23870        count: *mut usize,
23871    ) -> *mut BNDisassemblyTextLine;
23872}
23873unsafe extern "C" {
23874    pub fn BNGetLanguageRepresentationFunctionLinearLines(
23875        func: *mut BNLanguageRepresentationFunction,
23876        il: *mut BNHighLevelILFunction,
23877        exprIndex: usize,
23878        settings: *mut BNDisassemblySettings,
23879        asFullAst: bool,
23880        count: *mut usize,
23881    ) -> *mut BNDisassemblyTextLine;
23882}
23883unsafe extern "C" {
23884    pub fn BNGetLanguageRepresentationFunctionBlockLines(
23885        func: *mut BNLanguageRepresentationFunction,
23886        block: *mut BNBasicBlock,
23887        settings: *mut BNDisassemblySettings,
23888        count: *mut usize,
23889    ) -> *mut BNDisassemblyTextLine;
23890}
23891unsafe extern "C" {
23892    pub fn BNGetLanguageRepresentationFunctionHighlight(
23893        func: *mut BNLanguageRepresentationFunction,
23894        block: *mut BNBasicBlock,
23895    ) -> BNHighlightColor;
23896}
23897unsafe extern "C" {
23898    pub fn BNGetLanguageRepresentationFunctionCommentStartString(
23899        func: *mut BNLanguageRepresentationFunction,
23900    ) -> *mut ::std::os::raw::c_char;
23901}
23902unsafe extern "C" {
23903    pub fn BNGetLanguageRepresentationFunctionCommentEndString(
23904        func: *mut BNLanguageRepresentationFunction,
23905    ) -> *mut ::std::os::raw::c_char;
23906}
23907unsafe extern "C" {
23908    pub fn BNGetLanguageRepresentationFunctionAnnotationStartString(
23909        func: *mut BNLanguageRepresentationFunction,
23910    ) -> *mut ::std::os::raw::c_char;
23911}
23912unsafe extern "C" {
23913    pub fn BNGetLanguageRepresentationFunctionAnnotationEndString(
23914        func: *mut BNLanguageRepresentationFunction,
23915    ) -> *mut ::std::os::raw::c_char;
23916}
23917unsafe extern "C" {
23918    pub fn BNNewFieldResolutionInfoReference(
23919        info: *mut BNFieldResolutionInfo,
23920    ) -> *mut BNFieldResolutionInfo;
23921}
23922unsafe extern "C" {
23923    pub fn BNFreeFieldResolutionInfo(info: *mut BNFieldResolutionInfo);
23924}
23925unsafe extern "C" {
23926    #[doc = " Types"]
23927    pub fn BNTypesEqual(a: *mut BNType, b: *mut BNType) -> bool;
23928}
23929unsafe extern "C" {
23930    pub fn BNTypesNotEqual(a: *mut BNType, b: *mut BNType) -> bool;
23931}
23932unsafe extern "C" {
23933    pub fn BNCreateVoidType() -> *mut BNType;
23934}
23935unsafe extern "C" {
23936    pub fn BNCreateBoolType() -> *mut BNType;
23937}
23938unsafe extern "C" {
23939    pub fn BNCreateIntegerType(
23940        width: usize,
23941        sign: *mut BNBoolWithConfidence,
23942        altName: *const ::std::os::raw::c_char,
23943    ) -> *mut BNType;
23944}
23945unsafe extern "C" {
23946    pub fn BNCreateFloatType(width: usize, altName: *const ::std::os::raw::c_char) -> *mut BNType;
23947}
23948unsafe extern "C" {
23949    pub fn BNCreateWideCharType(
23950        width: usize,
23951        altName: *const ::std::os::raw::c_char,
23952    ) -> *mut BNType;
23953}
23954unsafe extern "C" {
23955    pub fn BNCreateStructureType(s: *mut BNStructure) -> *mut BNType;
23956}
23957unsafe extern "C" {
23958    pub fn BNCreateEnumerationType(
23959        arch: *mut BNArchitecture,
23960        e: *mut BNEnumeration,
23961        width: usize,
23962        isSigned: *mut BNBoolWithConfidence,
23963    ) -> *mut BNType;
23964}
23965unsafe extern "C" {
23966    pub fn BNCreateEnumerationTypeOfWidth(
23967        e: *mut BNEnumeration,
23968        width: usize,
23969        isSigned: *mut BNBoolWithConfidence,
23970    ) -> *mut BNType;
23971}
23972unsafe extern "C" {
23973    pub fn BNCreatePointerType(
23974        arch: *mut BNArchitecture,
23975        type_: *const BNTypeWithConfidence,
23976        cnst: *mut BNBoolWithConfidence,
23977        vltl: *mut BNBoolWithConfidence,
23978        refType: BNReferenceType,
23979    ) -> *mut BNType;
23980}
23981unsafe extern "C" {
23982    pub fn BNCreatePointerTypeOfWidth(
23983        width: usize,
23984        type_: *const BNTypeWithConfidence,
23985        cnst: *mut BNBoolWithConfidence,
23986        vltl: *mut BNBoolWithConfidence,
23987        refType: BNReferenceType,
23988    ) -> *mut BNType;
23989}
23990unsafe extern "C" {
23991    pub fn BNCreateFragmentType(
23992        width: usize,
23993        type_: *const BNTypeWithConfidence,
23994        offset: u64,
23995        endianness: BNEndianness,
23996    ) -> *mut BNType;
23997}
23998unsafe extern "C" {
23999    pub fn BNCreateFragmentTypeBits(
24000        width: usize,
24001        type_: *const BNTypeWithConfidence,
24002        originalFragmentOffsetBytes: u64,
24003        originalFragmentWidthBytes: usize,
24004        endianness: BNEndianness,
24005        fragmentStartBit: usize,
24006        fragmentWidthBits: usize,
24007        fragmentTruncatedStartBits: usize,
24008        wrapBit: usize,
24009    ) -> *mut BNType;
24010}
24011unsafe extern "C" {
24012    pub fn BNCreateArrayType(type_: *const BNTypeWithConfidence, elem: u64) -> *mut BNType;
24013}
24014unsafe extern "C" {
24015    pub fn BNCreateFunctionType(
24016        returnValue: *mut BNReturnValue,
24017        callingConvention: *mut BNCallingConventionWithConfidence,
24018        params: *mut BNFunctionParameter,
24019        paramCount: usize,
24020        varArg: *mut BNBoolWithConfidence,
24021        canReturn: *mut BNBoolWithConfidence,
24022        stackAdjust: *mut BNOffsetWithConfidence,
24023        regStackAdjustRegs: *mut u32,
24024        regStackAdjustValues: *mut BNOffsetWithConfidence,
24025        regStackAdjustCount: usize,
24026        ft: BNNameType,
24027        pure_: *mut BNBoolWithConfidence,
24028    ) -> *mut BNType;
24029}
24030unsafe extern "C" {
24031    pub fn BNCreateVarArgsType() -> *mut BNType;
24032}
24033unsafe extern "C" {
24034    pub fn BNCreateValueType(value: *const ::std::os::raw::c_char) -> *mut BNType;
24035}
24036unsafe extern "C" {
24037    pub fn BNGetNameTypeString(classFunctionType: BNNameType) -> *mut ::std::os::raw::c_char;
24038}
24039unsafe extern "C" {
24040    pub fn BNNewTypeReference(type_: *mut BNType) -> *mut BNType;
24041}
24042unsafe extern "C" {
24043    pub fn BNDuplicateType(type_: *mut BNType) -> *mut BNType;
24044}
24045unsafe extern "C" {
24046    pub fn BNGetTypeAndName(
24047        type_: *mut BNType,
24048        name: *mut BNQualifiedName,
24049        escaping: BNTokenEscapingType,
24050    ) -> *mut ::std::os::raw::c_char;
24051}
24052unsafe extern "C" {
24053    pub fn BNFreeType(type_: *mut BNType);
24054}
24055unsafe extern "C" {
24056    pub fn BNFreeTypeList(types: *mut *mut BNType, count: usize);
24057}
24058unsafe extern "C" {
24059    pub fn BNTypeSetIgnored(type_: *mut BNType, ignored: bool) -> *mut BNType;
24060}
24061unsafe extern "C" {
24062    pub fn BNCreateTypeBuilderFromType(type_: *mut BNType) -> *mut BNTypeBuilder;
24063}
24064unsafe extern "C" {
24065    pub fn BNCreateVoidTypeBuilder() -> *mut BNTypeBuilder;
24066}
24067unsafe extern "C" {
24068    pub fn BNCreateBoolTypeBuilder() -> *mut BNTypeBuilder;
24069}
24070unsafe extern "C" {
24071    pub fn BNCreateIntegerTypeBuilder(
24072        width: usize,
24073        sign: *mut BNBoolWithConfidence,
24074        altName: *const ::std::os::raw::c_char,
24075    ) -> *mut BNTypeBuilder;
24076}
24077unsafe extern "C" {
24078    pub fn BNCreateFloatTypeBuilder(
24079        width: usize,
24080        altName: *const ::std::os::raw::c_char,
24081    ) -> *mut BNTypeBuilder;
24082}
24083unsafe extern "C" {
24084    pub fn BNCreateWideCharTypeBuilder(
24085        width: usize,
24086        altName: *const ::std::os::raw::c_char,
24087    ) -> *mut BNTypeBuilder;
24088}
24089unsafe extern "C" {
24090    pub fn BNCreateStructureTypeBuilder(s: *mut BNStructure) -> *mut BNTypeBuilder;
24091}
24092unsafe extern "C" {
24093    pub fn BNCreateStructureTypeBuilderWithBuilder(
24094        s: *mut BNStructureBuilder,
24095    ) -> *mut BNTypeBuilder;
24096}
24097unsafe extern "C" {
24098    pub fn BNCreateEnumerationTypeBuilder(
24099        arch: *mut BNArchitecture,
24100        e: *mut BNEnumeration,
24101        width: usize,
24102        isSigned: *mut BNBoolWithConfidence,
24103    ) -> *mut BNTypeBuilder;
24104}
24105unsafe extern "C" {
24106    pub fn BNCreateEnumerationTypeBuilderWithBuilder(
24107        arch: *mut BNArchitecture,
24108        e: *mut BNEnumerationBuilder,
24109        width: usize,
24110        isSigned: *mut BNBoolWithConfidence,
24111    ) -> *mut BNTypeBuilder;
24112}
24113unsafe extern "C" {
24114    pub fn BNCreatePointerTypeBuilder(
24115        arch: *mut BNArchitecture,
24116        type_: *const BNTypeWithConfidence,
24117        cnst: *mut BNBoolWithConfidence,
24118        vltl: *mut BNBoolWithConfidence,
24119        refType: BNReferenceType,
24120    ) -> *mut BNTypeBuilder;
24121}
24122unsafe extern "C" {
24123    pub fn BNCreatePointerTypeBuilderOfWidth(
24124        width: usize,
24125        type_: *const BNTypeWithConfidence,
24126        cnst: *mut BNBoolWithConfidence,
24127        vltl: *mut BNBoolWithConfidence,
24128        refType: BNReferenceType,
24129    ) -> *mut BNTypeBuilder;
24130}
24131unsafe extern "C" {
24132    pub fn BNCreateFragmentTypeBuilder(
24133        width: usize,
24134        type_: *const BNTypeWithConfidence,
24135        offset: u64,
24136        endianness: BNEndianness,
24137    ) -> *mut BNTypeBuilder;
24138}
24139unsafe extern "C" {
24140    pub fn BNCreateFragmentTypeBuilderBits(
24141        width: usize,
24142        type_: *const BNTypeWithConfidence,
24143        originalFragmentOffsetBytes: u64,
24144        originalFragmentWidthBytes: usize,
24145        endianness: BNEndianness,
24146        fragmentStartBit: usize,
24147        fragmentWidthBits: usize,
24148        fragmentTruncatedStartBits: usize,
24149        wrapBit: usize,
24150    ) -> *mut BNTypeBuilder;
24151}
24152unsafe extern "C" {
24153    pub fn BNCreateArrayTypeBuilder(
24154        type_: *const BNTypeWithConfidence,
24155        elem: u64,
24156    ) -> *mut BNTypeBuilder;
24157}
24158unsafe extern "C" {
24159    pub fn BNCreateFunctionTypeBuilder(
24160        returnValue: *mut BNReturnValue,
24161        callingConvention: *mut BNCallingConventionWithConfidence,
24162        params: *mut BNFunctionParameter,
24163        paramCount: usize,
24164        varArg: *mut BNBoolWithConfidence,
24165        canReturn: *mut BNBoolWithConfidence,
24166        stackAdjust: *mut BNOffsetWithConfidence,
24167        regStackAdjustRegs: *mut u32,
24168        regStackAdjustValues: *mut BNOffsetWithConfidence,
24169        regStackAdjustCount: usize,
24170        ft: BNNameType,
24171        pure_: *mut BNBoolWithConfidence,
24172    ) -> *mut BNTypeBuilder;
24173}
24174unsafe extern "C" {
24175    pub fn BNCreateVarArgsTypeBuilder() -> *mut BNTypeBuilder;
24176}
24177unsafe extern "C" {
24178    pub fn BNCreateValueTypeBuilder(value: *const ::std::os::raw::c_char) -> *mut BNTypeBuilder;
24179}
24180unsafe extern "C" {
24181    pub fn BNFinalizeTypeBuilder(type_: *mut BNTypeBuilder) -> *mut BNType;
24182}
24183unsafe extern "C" {
24184    pub fn BNDuplicateTypeBuilder(type_: *mut BNTypeBuilder) -> *mut BNTypeBuilder;
24185}
24186unsafe extern "C" {
24187    pub fn BNGetTypeBuilderTypeAndName(
24188        type_: *mut BNTypeBuilder,
24189        name: *mut BNQualifiedName,
24190    ) -> *mut ::std::os::raw::c_char;
24191}
24192unsafe extern "C" {
24193    pub fn BNFreeTypeBuilder(type_: *mut BNTypeBuilder);
24194}
24195unsafe extern "C" {
24196    pub fn BNTypeGetTypeName(nt: *mut BNType) -> BNQualifiedName;
24197}
24198unsafe extern "C" {
24199    pub fn BNGetTypeClass(type_: *mut BNType) -> BNTypeClass;
24200}
24201unsafe extern "C" {
24202    pub fn BNGetTypeWidth(type_: *mut BNType) -> u64;
24203}
24204unsafe extern "C" {
24205    pub fn BNGetTypeAlignment(type_: *mut BNType) -> usize;
24206}
24207unsafe extern "C" {
24208    pub fn BNGetIntegerTypeDisplayType(type_: *mut BNType) -> BNIntegerDisplayType;
24209}
24210unsafe extern "C" {
24211    pub fn BNSetIntegerTypeDisplayType(
24212        type_: *mut BNTypeBuilder,
24213        displayType: BNIntegerDisplayType,
24214    );
24215}
24216unsafe extern "C" {
24217    pub fn BNIsTypeSigned(type_: *mut BNType) -> BNBoolWithConfidence;
24218}
24219unsafe extern "C" {
24220    pub fn BNIsTypeConst(type_: *mut BNType) -> BNBoolWithConfidence;
24221}
24222unsafe extern "C" {
24223    pub fn BNIsTypeVolatile(type_: *mut BNType) -> BNBoolWithConfidence;
24224}
24225unsafe extern "C" {
24226    pub fn BNIsTypeFloatingPoint(type_: *mut BNType) -> bool;
24227}
24228unsafe extern "C" {
24229    pub fn BNGetChildType(type_: *mut BNType) -> BNTypeWithConfidence;
24230}
24231unsafe extern "C" {
24232    pub fn BNGetTypeReturnValue(type_: *mut BNType) -> BNReturnValue;
24233}
24234unsafe extern "C" {
24235    pub fn BNIsTypeReturnValueDefaultLocation(type_: *mut BNType) -> bool;
24236}
24237unsafe extern "C" {
24238    pub fn BNGetTypeReturnValueLocation(type_: *mut BNType) -> BNValueLocationWithConfidence;
24239}
24240unsafe extern "C" {
24241    pub fn BNParseValueLocation(
24242        str_: *const ::std::os::raw::c_char,
24243        arch: *mut BNArchitecture,
24244        location: *mut BNValueLocation,
24245        error: *mut *mut ::std::os::raw::c_char,
24246    ) -> bool;
24247}
24248unsafe extern "C" {
24249    pub fn BNValueLocationToString(
24250        location: *mut BNValueLocation,
24251        arch: *mut BNArchitecture,
24252    ) -> *mut ::std::os::raw::c_char;
24253}
24254unsafe extern "C" {
24255    pub fn BNValueLocationComponentToString(
24256        component: *mut BNValueLocationComponent,
24257        arch: *mut BNArchitecture,
24258    ) -> *mut ::std::os::raw::c_char;
24259}
24260unsafe extern "C" {
24261    pub fn BNFreeValueLocation(location: *mut BNValueLocation);
24262}
24263unsafe extern "C" {
24264    pub fn BNGetTypeCallingConvention(type_: *mut BNType) -> BNCallingConventionWithConfidence;
24265}
24266unsafe extern "C" {
24267    pub fn BNGetTypeCallingConventionName(type_: *mut BNType) -> BNCallingConventionName;
24268}
24269unsafe extern "C" {
24270    pub fn BNGetTypeParameters(type_: *mut BNType, count: *mut usize) -> *mut BNFunctionParameter;
24271}
24272unsafe extern "C" {
24273    pub fn BNFreeTypeParameterList(types: *mut BNFunctionParameter, count: usize);
24274}
24275unsafe extern "C" {
24276    pub fn BNTypeHasVariableArguments(type_: *mut BNType) -> BNBoolWithConfidence;
24277}
24278unsafe extern "C" {
24279    pub fn BNTypeHasTemplateArguments(type_: *mut BNType) -> bool;
24280}
24281unsafe extern "C" {
24282    pub fn BNFunctionTypeCanReturn(type_: *mut BNType) -> BNBoolWithConfidence;
24283}
24284unsafe extern "C" {
24285    pub fn BNIsTypePure(type_: *mut BNType) -> BNBoolWithConfidence;
24286}
24287unsafe extern "C" {
24288    pub fn BNGetTypeStructure(type_: *mut BNType) -> *mut BNStructure;
24289}
24290unsafe extern "C" {
24291    pub fn BNGetTypeEnumeration(type_: *mut BNType) -> *mut BNEnumeration;
24292}
24293unsafe extern "C" {
24294    pub fn BNGetTypeNamedTypeReference(type_: *mut BNType) -> *mut BNNamedTypeReference;
24295}
24296unsafe extern "C" {
24297    pub fn BNGetTypeElementCount(type_: *mut BNType) -> u64;
24298}
24299unsafe extern "C" {
24300    pub fn BNGetTypeOffset(type_: *mut BNType) -> u64;
24301}
24302unsafe extern "C" {
24303    pub fn BNGetTypeFragmentOriginalOffsetBytes(type_: *mut BNType) -> u64;
24304}
24305unsafe extern "C" {
24306    pub fn BNGetTypeFragmentOriginalWidthBytes(type_: *mut BNType) -> usize;
24307}
24308unsafe extern "C" {
24309    pub fn BNGetTypeFragmentStartBit(type_: *mut BNType) -> usize;
24310}
24311unsafe extern "C" {
24312    pub fn BNGetTypeFragmentWidthBits(type_: *mut BNType) -> usize;
24313}
24314unsafe extern "C" {
24315    pub fn BNGetTypeFragmentTruncatedStartBits(type_: *mut BNType) -> usize;
24316}
24317unsafe extern "C" {
24318    pub fn BNGetTypeFragmentWrapBit(type_: *mut BNType) -> usize;
24319}
24320unsafe extern "C" {
24321    pub fn BNGetTypeFragmentEndianness(type_: *mut BNType) -> BNEndianness;
24322}
24323unsafe extern "C" {
24324    pub fn BNGetTypeStackAdjustment(type_: *mut BNType) -> BNOffsetWithConfidence;
24325}
24326unsafe extern "C" {
24327    pub fn BNTypeGetStructureName(type_: *mut BNType) -> BNQualifiedName;
24328}
24329unsafe extern "C" {
24330    pub fn BNGetRegisteredTypeName(type_: *mut BNType) -> *mut BNNamedTypeReference;
24331}
24332unsafe extern "C" {
24333    pub fn BNTypeGetReferenceType(type_: *mut BNType) -> BNReferenceType;
24334}
24335unsafe extern "C" {
24336    pub fn BNTypeGetPointerBaseType(type_: *mut BNType) -> BNPointerBaseType;
24337}
24338unsafe extern "C" {
24339    pub fn BNTypeGetPointerBaseOffset(type_: *mut BNType) -> i64;
24340}
24341unsafe extern "C" {
24342    pub fn BNTypeGetNameType(type_: *mut BNType) -> BNNameType;
24343}
24344unsafe extern "C" {
24345    pub fn BNGetTypeAlternateName(type_: *mut BNType) -> *mut ::std::os::raw::c_char;
24346}
24347unsafe extern "C" {
24348    pub fn BNTypeGetSystemCallNumber(type_: *mut BNType) -> u32;
24349}
24350unsafe extern "C" {
24351    pub fn BNTypeIsSystemCall(type_: *mut BNType) -> bool;
24352}
24353unsafe extern "C" {
24354    pub fn BNGetTypePointerSuffix(type_: *mut BNType, count: *mut usize) -> *mut BNPointerSuffix;
24355}
24356unsafe extern "C" {
24357    pub fn BNGetTypePointerSuffixString(type_: *mut BNType) -> *mut ::std::os::raw::c_char;
24358}
24359unsafe extern "C" {
24360    pub fn BNGetTypePointerSuffixTokens(
24361        type_: *mut BNType,
24362        baseConfidence: u8,
24363        count: *mut usize,
24364    ) -> *mut BNInstructionTextToken;
24365}
24366unsafe extern "C" {
24367    pub fn BNFreePointerSuffixList(suffix: *mut BNPointerSuffix, count: usize);
24368}
24369unsafe extern "C" {
24370    pub fn BNTypeShouldDisplayReturnType(type_: *mut BNType) -> bool;
24371}
24372unsafe extern "C" {
24373    pub fn BNGetTypeAttributes(type_: *mut BNType, count: *mut usize) -> *mut BNTypeAttribute;
24374}
24375unsafe extern "C" {
24376    pub fn BNGetTypeAttributeByName(
24377        type_: *mut BNType,
24378        name: *const ::std::os::raw::c_char,
24379    ) -> *mut ::std::os::raw::c_char;
24380}
24381unsafe extern "C" {
24382    pub fn BNFreeTypeAttributeList(attr: *mut BNTypeAttribute, count: usize);
24383}
24384unsafe extern "C" {
24385    pub fn BNDerefNamedTypeReference(view: *mut BNBinaryView, type_: *mut BNType) -> *mut BNType;
24386}
24387unsafe extern "C" {
24388    pub fn BNGetTypeString(
24389        type_: *mut BNType,
24390        platform: *mut BNPlatform,
24391        escaping: BNTokenEscapingType,
24392    ) -> *mut ::std::os::raw::c_char;
24393}
24394unsafe extern "C" {
24395    pub fn BNGetTypeStringBeforeName(
24396        type_: *mut BNType,
24397        platform: *mut BNPlatform,
24398        escaping: BNTokenEscapingType,
24399    ) -> *mut ::std::os::raw::c_char;
24400}
24401unsafe extern "C" {
24402    pub fn BNGetTypeStringAfterName(
24403        type_: *mut BNType,
24404        platform: *mut BNPlatform,
24405        escaping: BNTokenEscapingType,
24406    ) -> *mut ::std::os::raw::c_char;
24407}
24408unsafe extern "C" {
24409    pub fn BNGetTypeTokens(
24410        type_: *mut BNType,
24411        platform: *mut BNPlatform,
24412        baseConfidence: u8,
24413        escaping: BNTokenEscapingType,
24414        count: *mut usize,
24415    ) -> *mut BNInstructionTextToken;
24416}
24417unsafe extern "C" {
24418    pub fn BNGetTypeTokensBeforeName(
24419        type_: *mut BNType,
24420        platform: *mut BNPlatform,
24421        baseConfidence: u8,
24422        escaping: BNTokenEscapingType,
24423        count: *mut usize,
24424    ) -> *mut BNInstructionTextToken;
24425}
24426unsafe extern "C" {
24427    pub fn BNGetTypeTokensAfterName(
24428        type_: *mut BNType,
24429        platform: *mut BNPlatform,
24430        baseConfidence: u8,
24431        escaping: BNTokenEscapingType,
24432        count: *mut usize,
24433    ) -> *mut BNInstructionTextToken;
24434}
24435unsafe extern "C" {
24436    pub fn BNTypeWithReplacedStructure(
24437        type_: *mut BNType,
24438        from: *mut BNStructure,
24439        to: *mut BNStructure,
24440    ) -> *mut BNType;
24441}
24442unsafe extern "C" {
24443    pub fn BNTypeWithReplacedEnumeration(
24444        type_: *mut BNType,
24445        from: *mut BNEnumeration,
24446        to: *mut BNEnumeration,
24447    ) -> *mut BNType;
24448}
24449unsafe extern "C" {
24450    pub fn BNTypeWithReplacedNamedTypeReference(
24451        type_: *mut BNType,
24452        from: *mut BNNamedTypeReference,
24453        to: *mut BNNamedTypeReference,
24454    ) -> *mut BNType;
24455}
24456unsafe extern "C" {
24457    pub fn BNAddTypeMemberTokens(
24458        type_: *mut BNType,
24459        data: *mut BNBinaryView,
24460        tokens: *mut *mut BNInstructionTextToken,
24461        tokenCount: *mut usize,
24462        offset: i64,
24463        nameList: *mut *mut *mut ::std::os::raw::c_char,
24464        nameCount: *mut usize,
24465        size: usize,
24466        indirect: bool,
24467        info: *mut BNFieldResolutionInfo,
24468    ) -> bool;
24469}
24470unsafe extern "C" {
24471    pub fn BNGetTypeLines(
24472        type_: *mut BNType,
24473        types: *mut BNTypeContainer,
24474        name: *const ::std::os::raw::c_char,
24475        paddingCols: ::std::os::raw::c_int,
24476        collapsed: bool,
24477        escaping: BNTokenEscapingType,
24478        count: *mut usize,
24479    ) -> *mut BNTypeDefinitionLine;
24480}
24481unsafe extern "C" {
24482    pub fn BNFreeTypeDefinitionLineList(list: *mut BNTypeDefinitionLine, count: usize);
24483}
24484unsafe extern "C" {
24485    pub fn BNEnumerateTypesForAccess(
24486        type_: *mut BNType,
24487        data: *mut BNBinaryView,
24488        offset: u64,
24489        size: usize,
24490        baseConfidence: u8,
24491        terminal: ::std::option::Option<
24492            unsafe extern "C" fn(
24493                arg1: *mut ::std::os::raw::c_void,
24494                arg2: *mut BNTypeWithConfidence,
24495                arg3: *mut BNFieldResolutionInfo,
24496            ),
24497        >,
24498        ctxt: *mut ::std::os::raw::c_void,
24499    ) -> bool;
24500}
24501unsafe extern "C" {
24502    pub fn BNTypeBuilderGetTypeName(nt: *mut BNTypeBuilder) -> BNQualifiedName;
24503}
24504unsafe extern "C" {
24505    pub fn BNTypeBuilderSetTypeName(type_: *mut BNTypeBuilder, name: *mut BNQualifiedName);
24506}
24507unsafe extern "C" {
24508    pub fn BNTypeBuilderSetAlternateName(
24509        type_: *mut BNTypeBuilder,
24510        name: *const ::std::os::raw::c_char,
24511    );
24512}
24513unsafe extern "C" {
24514    pub fn BNGetTypeBuilderClass(type_: *mut BNTypeBuilder) -> BNTypeClass;
24515}
24516unsafe extern "C" {
24517    pub fn BNTypeBuilderSetSystemCallNumber(type_: *mut BNTypeBuilder, v: bool, n: u32);
24518}
24519unsafe extern "C" {
24520    pub fn BNGetTypeBuilderWidth(type_: *mut BNTypeBuilder) -> u64;
24521}
24522unsafe extern "C" {
24523    pub fn BNGetTypeBuilderAlignment(type_: *mut BNTypeBuilder) -> usize;
24524}
24525unsafe extern "C" {
24526    pub fn BNIsTypeBuilderSigned(type_: *mut BNTypeBuilder) -> BNBoolWithConfidence;
24527}
24528unsafe extern "C" {
24529    pub fn BNIsTypeBuilderConst(type_: *mut BNTypeBuilder) -> BNBoolWithConfidence;
24530}
24531unsafe extern "C" {
24532    pub fn BNIsTypeBuilderVolatile(type_: *mut BNTypeBuilder) -> BNBoolWithConfidence;
24533}
24534unsafe extern "C" {
24535    pub fn BNIsTypeBuilderFloatingPoint(type_: *mut BNTypeBuilder) -> bool;
24536}
24537unsafe extern "C" {
24538    pub fn BNGetTypeBuilderChildType(type_: *mut BNTypeBuilder) -> BNTypeWithConfidence;
24539}
24540unsafe extern "C" {
24541    pub fn BNGetTypeBuilderReturnValue(type_: *mut BNTypeBuilder) -> BNReturnValue;
24542}
24543unsafe extern "C" {
24544    pub fn BNIsTypeBuilderReturnValueDefaultLocation(type_: *mut BNTypeBuilder) -> bool;
24545}
24546unsafe extern "C" {
24547    pub fn BNGetTypeBuilderReturnValueLocation(
24548        type_: *mut BNTypeBuilder,
24549    ) -> BNValueLocationWithConfidence;
24550}
24551unsafe extern "C" {
24552    pub fn BNGetTypeBuilderCallingConvention(
24553        type_: *mut BNTypeBuilder,
24554    ) -> BNCallingConventionWithConfidence;
24555}
24556unsafe extern "C" {
24557    pub fn BNGetTypeBuilderCallingConventionName(
24558        type_: *mut BNTypeBuilder,
24559    ) -> BNCallingConventionName;
24560}
24561unsafe extern "C" {
24562    pub fn BNGetTypeBuilderParameters(
24563        type_: *mut BNTypeBuilder,
24564        count: *mut usize,
24565    ) -> *mut BNFunctionParameter;
24566}
24567unsafe extern "C" {
24568    pub fn BNTypeBuilderHasVariableArguments(type_: *mut BNTypeBuilder) -> BNBoolWithConfidence;
24569}
24570unsafe extern "C" {
24571    pub fn BNFunctionTypeBuilderCanReturn(type_: *mut BNTypeBuilder) -> BNBoolWithConfidence;
24572}
24573unsafe extern "C" {
24574    pub fn BNIsTypeBuilderPure(type_: *mut BNTypeBuilder) -> BNBoolWithConfidence;
24575}
24576unsafe extern "C" {
24577    pub fn BNGetTypeBuilderStructure(type_: *mut BNTypeBuilder) -> *mut BNStructure;
24578}
24579unsafe extern "C" {
24580    pub fn BNGetTypeBuilderEnumeration(type_: *mut BNTypeBuilder) -> *mut BNEnumeration;
24581}
24582unsafe extern "C" {
24583    pub fn BNGetTypeBuilderNamedTypeReference(
24584        type_: *mut BNTypeBuilder,
24585    ) -> *mut BNNamedTypeReference;
24586}
24587unsafe extern "C" {
24588    pub fn BNSetTypeBuilderNamedTypeReference(
24589        type_: *mut BNTypeBuilder,
24590        ntr: *mut BNNamedTypeReference,
24591    );
24592}
24593unsafe extern "C" {
24594    pub fn BNGetTypeBuilderElementCount(type_: *mut BNTypeBuilder) -> u64;
24595}
24596unsafe extern "C" {
24597    pub fn BNGetTypeBuilderOffset(type_: *mut BNTypeBuilder) -> u64;
24598}
24599unsafe extern "C" {
24600    pub fn BNGetTypeBuilderFragmentOriginalOffsetBytes(type_: *mut BNTypeBuilder) -> u64;
24601}
24602unsafe extern "C" {
24603    pub fn BNGetTypeBuilderFragmentOriginalWidthBytes(type_: *mut BNTypeBuilder) -> usize;
24604}
24605unsafe extern "C" {
24606    pub fn BNGetTypeBuilderFragmentStartBit(type_: *mut BNTypeBuilder) -> usize;
24607}
24608unsafe extern "C" {
24609    pub fn BNGetTypeBuilderFragmentWidthBits(type_: *mut BNTypeBuilder) -> usize;
24610}
24611unsafe extern "C" {
24612    pub fn BNGetTypeBuilderFragmentTruncatedStartBits(type_: *mut BNTypeBuilder) -> usize;
24613}
24614unsafe extern "C" {
24615    pub fn BNGetTypeBuilderFragmentWrapBit(type_: *mut BNTypeBuilder) -> usize;
24616}
24617unsafe extern "C" {
24618    pub fn BNGetTypeBuilderFragmentEndianness(type_: *mut BNTypeBuilder) -> BNEndianness;
24619}
24620unsafe extern "C" {
24621    pub fn BNSetTypeBuilderOffset(type_: *mut BNTypeBuilder, offset: u64);
24622}
24623unsafe extern "C" {
24624    pub fn BNSetTypeBuilderPointerBase(
24625        type_: *mut BNTypeBuilder,
24626        baseType: BNPointerBaseType,
24627        baseOffset: i64,
24628    );
24629}
24630unsafe extern "C" {
24631    pub fn BNSetTypeBuilderFragmentOriginalOffsetBytes(type_: *mut BNTypeBuilder, offset: u64);
24632}
24633unsafe extern "C" {
24634    pub fn BNSetTypeBuilderFragmentOriginalWidthBytes(type_: *mut BNTypeBuilder, size: usize);
24635}
24636unsafe extern "C" {
24637    pub fn BNSetTypeBuilderFragmentStartBit(type_: *mut BNTypeBuilder, startBit: usize);
24638}
24639unsafe extern "C" {
24640    pub fn BNSetTypeBuilderFragmentWidthBits(type_: *mut BNTypeBuilder, widthBits: usize);
24641}
24642unsafe extern "C" {
24643    pub fn BNSetTypeBuilderFragmentTruncatedStartBits(
24644        type_: *mut BNTypeBuilder,
24645        truncatedBits: usize,
24646    );
24647}
24648unsafe extern "C" {
24649    pub fn BNSetTypeBuilderFragmentWrapBit(type_: *mut BNTypeBuilder, wrapBit: usize);
24650}
24651unsafe extern "C" {
24652    pub fn BNSetTypeBuilderFragmentEndianness(type_: *mut BNTypeBuilder, endianness: BNEndianness);
24653}
24654unsafe extern "C" {
24655    pub fn BNSetFunctionTypeBuilderCanReturn(
24656        type_: *mut BNTypeBuilder,
24657        canReturn: *mut BNBoolWithConfidence,
24658    );
24659}
24660unsafe extern "C" {
24661    pub fn BNSetTypeBuilderPure(type_: *mut BNTypeBuilder, pure_: *mut BNBoolWithConfidence);
24662}
24663unsafe extern "C" {
24664    pub fn BNSetFunctionTypeBuilderParameters(
24665        type_: *mut BNTypeBuilder,
24666        params: *mut BNFunctionParameter,
24667        paramCount: usize,
24668    );
24669}
24670unsafe extern "C" {
24671    pub fn BNTypeBuilderSetWidth(type_: *mut BNTypeBuilder, width: usize);
24672}
24673unsafe extern "C" {
24674    pub fn BNTypeBuilderSetAlignment(type_: *mut BNTypeBuilder, alignment: usize);
24675}
24676unsafe extern "C" {
24677    pub fn BNTypeBuilderSetConst(type_: *mut BNTypeBuilder, cnst: *mut BNBoolWithConfidence);
24678}
24679unsafe extern "C" {
24680    pub fn BNTypeBuilderSetVolatile(type_: *mut BNTypeBuilder, vltl: *mut BNBoolWithConfidence);
24681}
24682unsafe extern "C" {
24683    pub fn BNTypeBuilderSetSigned(type_: *mut BNTypeBuilder, sign: *mut BNBoolWithConfidence);
24684}
24685unsafe extern "C" {
24686    pub fn BNTypeBuilderSetChildType(type_: *mut BNTypeBuilder, child: *mut BNTypeWithConfidence);
24687}
24688unsafe extern "C" {
24689    pub fn BNTypeBuilderSetReturnValue(type_: *mut BNTypeBuilder, rv: *mut BNReturnValue);
24690}
24691unsafe extern "C" {
24692    pub fn BNTypeBuilderSetIsReturnValueDefaultLocation(
24693        type_: *mut BNTypeBuilder,
24694        defaultLocation: bool,
24695    );
24696}
24697unsafe extern "C" {
24698    pub fn BNTypeBuilderSetReturnValueLocation(
24699        type_: *mut BNTypeBuilder,
24700        location: *mut BNValueLocationWithConfidence,
24701    );
24702}
24703unsafe extern "C" {
24704    pub fn BNTypeBuilderSetCallingConvention(
24705        type_: *mut BNTypeBuilder,
24706        cc: *mut BNCallingConventionWithConfidence,
24707    );
24708}
24709unsafe extern "C" {
24710    pub fn BNTypeBuilderSetCallingConventionName(
24711        type_: *mut BNTypeBuilder,
24712        cc: BNCallingConventionName,
24713    );
24714}
24715unsafe extern "C" {
24716    pub fn BNGetTypeBuilderStackAdjustment(type_: *mut BNTypeBuilder) -> BNOffsetWithConfidence;
24717}
24718unsafe extern "C" {
24719    pub fn BNTypeBuilderGetStructureName(type_: *mut BNTypeBuilder) -> BNQualifiedName;
24720}
24721unsafe extern "C" {
24722    pub fn BNTypeBuilderGetReferenceType(type_: *mut BNTypeBuilder) -> BNReferenceType;
24723}
24724unsafe extern "C" {
24725    pub fn BNTypeBuilderGetPointerBaseType(type_: *mut BNTypeBuilder) -> BNPointerBaseType;
24726}
24727unsafe extern "C" {
24728    pub fn BNTypeBuilderGetPointerBaseOffset(type_: *mut BNTypeBuilder) -> i64;
24729}
24730unsafe extern "C" {
24731    pub fn BNGetTypeBuilderAlternateName(type_: *mut BNTypeBuilder) -> *mut ::std::os::raw::c_char;
24732}
24733unsafe extern "C" {
24734    pub fn BNTypeBuilderIsSystemCall(type_: *mut BNTypeBuilder) -> bool;
24735}
24736unsafe extern "C" {
24737    pub fn BNTypeBuilderGetSystemCallNumber(type_: *mut BNTypeBuilder) -> u32;
24738}
24739unsafe extern "C" {
24740    pub fn BNTypeBuilderSetStackAdjustment(
24741        type_: *mut BNTypeBuilder,
24742        adjust: *mut BNOffsetWithConfidence,
24743    );
24744}
24745unsafe extern "C" {
24746    pub fn BNGetTypeBuilderPointerSuffix(
24747        type_: *mut BNTypeBuilder,
24748        count: *mut usize,
24749    ) -> *mut BNPointerSuffix;
24750}
24751unsafe extern "C" {
24752    pub fn BNGetTypeBuilderPointerSuffixString(
24753        type_: *mut BNTypeBuilder,
24754    ) -> *mut ::std::os::raw::c_char;
24755}
24756unsafe extern "C" {
24757    pub fn BNGetTypeBuilderPointerSuffixTokens(
24758        type_: *mut BNTypeBuilder,
24759        baseConfidence: u8,
24760        count: *mut usize,
24761    ) -> *mut BNInstructionTextToken;
24762}
24763unsafe extern "C" {
24764    pub fn BNAddTypeBuilderPointerSuffix(type_: *mut BNTypeBuilder, ps: BNPointerSuffix);
24765}
24766unsafe extern "C" {
24767    pub fn BNSetTypeBuilderPointerSuffix(
24768        type_: *mut BNTypeBuilder,
24769        suffix: *mut BNPointerSuffix,
24770        count: usize,
24771    );
24772}
24773unsafe extern "C" {
24774    pub fn BNGetTypeBuilderNameType(type_: *mut BNTypeBuilder) -> BNNameType;
24775}
24776unsafe extern "C" {
24777    pub fn BNTypeBuilderHasTemplateArguments(type_: *mut BNTypeBuilder) -> bool;
24778}
24779unsafe extern "C" {
24780    pub fn BNSetTypeBuilderNameType(type_: *mut BNTypeBuilder, nameType: BNNameType);
24781}
24782unsafe extern "C" {
24783    pub fn BNSetTypeBuilderHasTemplateArguments(
24784        type_: *mut BNTypeBuilder,
24785        hasTemplateArguments: bool,
24786    );
24787}
24788unsafe extern "C" {
24789    pub fn BNSetTypeBuilderAttribute(
24790        type_: *mut BNTypeBuilder,
24791        name: *const ::std::os::raw::c_char,
24792        value: *const ::std::os::raw::c_char,
24793    );
24794}
24795unsafe extern "C" {
24796    pub fn BNSetTypeBuilderAttributeList(
24797        type_: *mut BNTypeBuilder,
24798        attrs: *mut BNTypeAttribute,
24799        count: usize,
24800    );
24801}
24802unsafe extern "C" {
24803    pub fn BNRemoveTypeBuilderAttribute(
24804        type_: *mut BNTypeBuilder,
24805        name: *const ::std::os::raw::c_char,
24806    );
24807}
24808unsafe extern "C" {
24809    pub fn BNGetTypeBuilderAttributes(
24810        type_: *mut BNTypeBuilder,
24811        count: *mut usize,
24812    ) -> *mut BNTypeAttribute;
24813}
24814unsafe extern "C" {
24815    pub fn BNGetTypeBuilderAttributeByName(
24816        type_: *mut BNTypeBuilder,
24817        name: *const ::std::os::raw::c_char,
24818    ) -> *mut ::std::os::raw::c_char;
24819}
24820unsafe extern "C" {
24821    pub fn BNGetTypeBuilderString(
24822        type_: *mut BNTypeBuilder,
24823        platform: *mut BNPlatform,
24824    ) -> *mut ::std::os::raw::c_char;
24825}
24826unsafe extern "C" {
24827    pub fn BNGetTypeBuilderStringBeforeName(
24828        type_: *mut BNTypeBuilder,
24829        platform: *mut BNPlatform,
24830    ) -> *mut ::std::os::raw::c_char;
24831}
24832unsafe extern "C" {
24833    pub fn BNGetTypeBuilderStringAfterName(
24834        type_: *mut BNTypeBuilder,
24835        platform: *mut BNPlatform,
24836    ) -> *mut ::std::os::raw::c_char;
24837}
24838unsafe extern "C" {
24839    pub fn BNGetTypeBuilderTokens(
24840        type_: *mut BNTypeBuilder,
24841        platform: *mut BNPlatform,
24842        baseConfidence: u8,
24843        count: *mut usize,
24844    ) -> *mut BNInstructionTextToken;
24845}
24846unsafe extern "C" {
24847    pub fn BNGetTypeBuilderTokensBeforeName(
24848        type_: *mut BNTypeBuilder,
24849        platform: *mut BNPlatform,
24850        baseConfidence: u8,
24851        count: *mut usize,
24852    ) -> *mut BNInstructionTextToken;
24853}
24854unsafe extern "C" {
24855    pub fn BNGetTypeBuilderTokensAfterName(
24856        type_: *mut BNTypeBuilder,
24857        platform: *mut BNPlatform,
24858        baseConfidence: u8,
24859        count: *mut usize,
24860    ) -> *mut BNInstructionTextToken;
24861}
24862unsafe extern "C" {
24863    pub fn BNCreateNamedTypeReference(
24864        nt: *mut BNNamedTypeReference,
24865        width: usize,
24866        align: usize,
24867        cnst: *mut BNBoolWithConfidence,
24868        vltl: *mut BNBoolWithConfidence,
24869    ) -> *mut BNType;
24870}
24871unsafe extern "C" {
24872    pub fn BNCreateNamedTypeReferenceFromTypeAndId(
24873        id: *const ::std::os::raw::c_char,
24874        name: *mut BNQualifiedName,
24875        type_: *mut BNType,
24876    ) -> *mut BNType;
24877}
24878unsafe extern "C" {
24879    pub fn BNCreateNamedTypeReferenceFromType(
24880        view: *mut BNBinaryView,
24881        name: *mut BNQualifiedName,
24882    ) -> *mut BNType;
24883}
24884unsafe extern "C" {
24885    pub fn BNCreateNamedTypeReferenceBuilder(
24886        nt: *mut BNNamedTypeReference,
24887        width: usize,
24888        align: usize,
24889        cnst: *mut BNBoolWithConfidence,
24890        vltl: *mut BNBoolWithConfidence,
24891    ) -> *mut BNTypeBuilder;
24892}
24893unsafe extern "C" {
24894    pub fn BNCreateNamedTypeReferenceBuilderWithBuilder(
24895        nt: *mut BNNamedTypeReferenceBuilder,
24896        width: usize,
24897        align: usize,
24898        cnst: *mut BNBoolWithConfidence,
24899        vltl: *mut BNBoolWithConfidence,
24900    ) -> *mut BNTypeBuilder;
24901}
24902unsafe extern "C" {
24903    pub fn BNCreateNamedTypeReferenceBuilderFromTypeAndId(
24904        id: *const ::std::os::raw::c_char,
24905        name: *mut BNQualifiedName,
24906        type_: *mut BNType,
24907    ) -> *mut BNTypeBuilder;
24908}
24909unsafe extern "C" {
24910    pub fn BNCreateNamedTypeReferenceBuilderFromType(
24911        view: *mut BNBinaryView,
24912        name: *mut BNQualifiedName,
24913    ) -> *mut BNTypeBuilder;
24914}
24915unsafe extern "C" {
24916    pub fn BNCreateNamedType(
24917        cls: BNNamedTypeReferenceClass,
24918        id: *const ::std::os::raw::c_char,
24919        name: *mut BNQualifiedName,
24920    ) -> *mut BNNamedTypeReference;
24921}
24922unsafe extern "C" {
24923    pub fn BNGetTypeReferenceClass(nt: *mut BNNamedTypeReference) -> BNNamedTypeReferenceClass;
24924}
24925unsafe extern "C" {
24926    pub fn BNGetTypeReferenceId(nt: *mut BNNamedTypeReference) -> *mut ::std::os::raw::c_char;
24927}
24928unsafe extern "C" {
24929    pub fn BNGetTypeReferenceName(nt: *mut BNNamedTypeReference) -> BNQualifiedName;
24930}
24931unsafe extern "C" {
24932    pub fn BNFreeQualifiedName(name: *mut BNQualifiedName);
24933}
24934unsafe extern "C" {
24935    pub fn BNFreeQualifiedNameArray(names: *mut BNQualifiedName, count: usize);
24936}
24937unsafe extern "C" {
24938    pub fn BNFreeNamedTypeReference(nt: *mut BNNamedTypeReference);
24939}
24940unsafe extern "C" {
24941    pub fn BNNewNamedTypeReference(nt: *mut BNNamedTypeReference) -> *mut BNNamedTypeReference;
24942}
24943unsafe extern "C" {
24944    pub fn BNCreateNamedTypeBuilder(
24945        cls: BNNamedTypeReferenceClass,
24946        id: *const ::std::os::raw::c_char,
24947        name: *mut BNQualifiedName,
24948    ) -> *mut BNNamedTypeReferenceBuilder;
24949}
24950unsafe extern "C" {
24951    pub fn BNFreeNamedTypeReferenceBuilder(s: *mut BNNamedTypeReferenceBuilder);
24952}
24953unsafe extern "C" {
24954    pub fn BNSetNamedTypeReferenceBuilderTypeClass(
24955        s: *mut BNNamedTypeReferenceBuilder,
24956        type_: BNNamedTypeReferenceClass,
24957    );
24958}
24959unsafe extern "C" {
24960    pub fn BNSetNamedTypeReferenceBuilderTypeId(
24961        s: *mut BNNamedTypeReferenceBuilder,
24962        id: *const ::std::os::raw::c_char,
24963    );
24964}
24965unsafe extern "C" {
24966    pub fn BNSetNamedTypeReferenceBuilderName(
24967        s: *mut BNNamedTypeReferenceBuilder,
24968        name: *mut BNQualifiedName,
24969    );
24970}
24971unsafe extern "C" {
24972    pub fn BNFinalizeNamedTypeReferenceBuilder(
24973        s: *mut BNNamedTypeReferenceBuilder,
24974    ) -> *mut BNNamedTypeReference;
24975}
24976unsafe extern "C" {
24977    pub fn BNGetTypeReferenceBuilderClass(
24978        nt: *mut BNNamedTypeReferenceBuilder,
24979    ) -> BNNamedTypeReferenceClass;
24980}
24981unsafe extern "C" {
24982    pub fn BNGetTypeReferenceBuilderId(
24983        nt: *mut BNNamedTypeReferenceBuilder,
24984    ) -> *mut ::std::os::raw::c_char;
24985}
24986unsafe extern "C" {
24987    pub fn BNGetTypeReferenceBuilderName(nt: *mut BNNamedTypeReferenceBuilder) -> BNQualifiedName;
24988}
24989unsafe extern "C" {
24990    pub fn BNSetNamedTypeReferenceBuilder(
24991        type_: *mut BNTypeBuilder,
24992        nt: *mut BNNamedTypeReferenceBuilder,
24993    );
24994}
24995unsafe extern "C" {
24996    pub fn BNCreateStructureBuilder() -> *mut BNStructureBuilder;
24997}
24998unsafe extern "C" {
24999    pub fn BNCreateStructureBuilderWithOptions(
25000        type_: BNStructureVariant,
25001        packed: bool,
25002    ) -> *mut BNStructureBuilder;
25003}
25004unsafe extern "C" {
25005    pub fn BNCreateStructureBuilderFromStructure(s: *mut BNStructure) -> *mut BNStructureBuilder;
25006}
25007unsafe extern "C" {
25008    pub fn BNDuplicateStructureBuilder(s: *mut BNStructureBuilder) -> *mut BNStructureBuilder;
25009}
25010unsafe extern "C" {
25011    pub fn BNFinalizeStructureBuilder(s: *mut BNStructureBuilder) -> *mut BNStructure;
25012}
25013unsafe extern "C" {
25014    pub fn BNNewStructureReference(s: *mut BNStructure) -> *mut BNStructure;
25015}
25016unsafe extern "C" {
25017    pub fn BNFreeStructure(s: *mut BNStructure);
25018}
25019unsafe extern "C" {
25020    pub fn BNFreeStructureBuilder(s: *mut BNStructureBuilder);
25021}
25022unsafe extern "C" {
25023    pub fn BNSetStructureBuilder(type_: *mut BNTypeBuilder, s: *mut BNStructureBuilder);
25024}
25025unsafe extern "C" {
25026    pub fn BNGetStructureMemberByName(
25027        s: *mut BNStructure,
25028        name: *const ::std::os::raw::c_char,
25029    ) -> *mut BNStructureMember;
25030}
25031unsafe extern "C" {
25032    pub fn BNGetStructureMemberAtOffset(
25033        s: *mut BNStructure,
25034        offset: i64,
25035        idx: *mut usize,
25036    ) -> *mut BNStructureMember;
25037}
25038unsafe extern "C" {
25039    pub fn BNFreeStructureMember(s: *mut BNStructureMember);
25040}
25041unsafe extern "C" {
25042    pub fn BNGetStructureMembers(s: *mut BNStructure, count: *mut usize) -> *mut BNStructureMember;
25043}
25044unsafe extern "C" {
25045    pub fn BNFreeStructureMemberList(members: *mut BNStructureMember, count: usize);
25046}
25047unsafe extern "C" {
25048    pub fn BNGetStructureMembersIncludingInherited(
25049        s: *mut BNStructure,
25050        types: *mut BNTypeContainer,
25051        count: *mut usize,
25052    ) -> *mut BNInheritedStructureMember;
25053}
25054unsafe extern "C" {
25055    pub fn BNFreeInheritedStructureMemberList(
25056        members: *mut BNInheritedStructureMember,
25057        count: usize,
25058    );
25059}
25060unsafe extern "C" {
25061    pub fn BNGetMemberIncludingInheritedAtOffset(
25062        s: *mut BNStructure,
25063        view: *mut BNBinaryView,
25064        offset: i64,
25065    ) -> *mut BNInheritedStructureMember;
25066}
25067unsafe extern "C" {
25068    pub fn BNFreeInheritedStructureMember(members: *mut BNInheritedStructureMember);
25069}
25070unsafe extern "C" {
25071    pub fn BNGetStructureWidth(s: *mut BNStructure) -> u64;
25072}
25073unsafe extern "C" {
25074    pub fn BNGetStructurePointerOffset(s: *mut BNStructure) -> i64;
25075}
25076unsafe extern "C" {
25077    pub fn BNGetStructureAlignment(s: *mut BNStructure) -> usize;
25078}
25079unsafe extern "C" {
25080    pub fn BNIsStructurePacked(s: *mut BNStructure) -> bool;
25081}
25082unsafe extern "C" {
25083    pub fn BNIsStructureUnion(s: *mut BNStructure) -> bool;
25084}
25085unsafe extern "C" {
25086    pub fn BNStructurePropagatesDataVariableReferences(s: *mut BNStructure) -> bool;
25087}
25088unsafe extern "C" {
25089    pub fn BNGetStructureType(s: *mut BNStructure) -> BNStructureVariant;
25090}
25091unsafe extern "C" {
25092    pub fn BNGetBaseStructuresForStructure(
25093        s: *mut BNStructure,
25094        count: *mut usize,
25095    ) -> *mut BNBaseStructure;
25096}
25097unsafe extern "C" {
25098    pub fn BNFreeBaseStructureList(bases: *mut BNBaseStructure, count: usize);
25099}
25100unsafe extern "C" {
25101    pub fn BNResolveStructureMemberOrBaseMember(
25102        s: *mut BNStructure,
25103        data: *mut BNBinaryView,
25104        offset: u64,
25105        size: usize,
25106        callbackContext: *mut ::std::os::raw::c_void,
25107        resolveFunc: ::std::option::Option<
25108            unsafe extern "C" fn(
25109                ctxt: *mut ::std::os::raw::c_void,
25110                baseName: *mut BNNamedTypeReference,
25111                resolvedStruct: *mut BNStructure,
25112                memberIndex: usize,
25113                structOffset: u64,
25114                adjustedOffset: u64,
25115                member: BNStructureMember,
25116            ),
25117        >,
25118        memberIndexHintValid: bool,
25119        memberIndexHint: usize,
25120    ) -> bool;
25121}
25122unsafe extern "C" {
25123    pub fn BNStructureWithReplacedStructure(
25124        s: *mut BNStructure,
25125        from: *mut BNStructure,
25126        to: *mut BNStructure,
25127    ) -> *mut BNStructure;
25128}
25129unsafe extern "C" {
25130    pub fn BNStructureWithReplacedEnumeration(
25131        s: *mut BNStructure,
25132        from: *mut BNEnumeration,
25133        to: *mut BNEnumeration,
25134    ) -> *mut BNStructure;
25135}
25136unsafe extern "C" {
25137    pub fn BNStructureWithReplacedNamedTypeReference(
25138        s: *mut BNStructure,
25139        from: *mut BNNamedTypeReference,
25140        to: *mut BNNamedTypeReference,
25141    ) -> *mut BNStructure;
25142}
25143unsafe extern "C" {
25144    pub fn BNGetStructureBuilderMemberByName(
25145        s: *mut BNStructureBuilder,
25146        name: *const ::std::os::raw::c_char,
25147    ) -> *mut BNStructureMember;
25148}
25149unsafe extern "C" {
25150    pub fn BNGetStructureBuilderMemberAtOffset(
25151        s: *mut BNStructureBuilder,
25152        offset: i64,
25153        idx: *mut usize,
25154    ) -> *mut BNStructureMember;
25155}
25156unsafe extern "C" {
25157    pub fn BNGetStructureBuilderMembers(
25158        s: *mut BNStructureBuilder,
25159        count: *mut usize,
25160    ) -> *mut BNStructureMember;
25161}
25162unsafe extern "C" {
25163    pub fn BNGetStructureBuilderWidth(s: *mut BNStructureBuilder) -> u64;
25164}
25165unsafe extern "C" {
25166    pub fn BNSetStructureBuilderWidth(s: *mut BNStructureBuilder, width: u64);
25167}
25168unsafe extern "C" {
25169    pub fn BNGetStructureBuilderPointerOffset(s: *mut BNStructureBuilder) -> i64;
25170}
25171unsafe extern "C" {
25172    pub fn BNSetStructureBuilderPointerOffset(s: *mut BNStructureBuilder, offset: i64);
25173}
25174unsafe extern "C" {
25175    pub fn BNGetStructureBuilderAlignment(s: *mut BNStructureBuilder) -> usize;
25176}
25177unsafe extern "C" {
25178    pub fn BNSetStructureBuilderAlignment(s: *mut BNStructureBuilder, align: usize);
25179}
25180unsafe extern "C" {
25181    pub fn BNIsStructureBuilderPacked(s: *mut BNStructureBuilder) -> bool;
25182}
25183unsafe extern "C" {
25184    pub fn BNSetStructureBuilderPacked(s: *mut BNStructureBuilder, packed: bool);
25185}
25186unsafe extern "C" {
25187    pub fn BNIsStructureBuilderUnion(s: *mut BNStructureBuilder) -> bool;
25188}
25189unsafe extern "C" {
25190    pub fn BNSetStructureBuilderType(s: *mut BNStructureBuilder, type_: BNStructureVariant);
25191}
25192unsafe extern "C" {
25193    pub fn BNStructureBuilderPropagatesDataVariableReferences(s: *mut BNStructureBuilder) -> bool;
25194}
25195unsafe extern "C" {
25196    pub fn BNSetStructureBuilderPropagatesDataVariableReferences(
25197        s: *mut BNStructureBuilder,
25198        value: bool,
25199    );
25200}
25201unsafe extern "C" {
25202    pub fn BNGetStructureBuilderType(s: *mut BNStructureBuilder) -> BNStructureVariant;
25203}
25204unsafe extern "C" {
25205    pub fn BNGetBaseStructuresForStructureBuilder(
25206        s: *mut BNStructureBuilder,
25207        count: *mut usize,
25208    ) -> *mut BNBaseStructure;
25209}
25210unsafe extern "C" {
25211    pub fn BNSetBaseStructuresForStructureBuilder(
25212        s: *mut BNStructureBuilder,
25213        bases: *mut BNBaseStructure,
25214        count: usize,
25215    );
25216}
25217unsafe extern "C" {
25218    pub fn BNAddStructureBuilderMember(
25219        s: *mut BNStructureBuilder,
25220        type_: *const BNTypeWithConfidence,
25221        name: *const ::std::os::raw::c_char,
25222        access: BNMemberAccess,
25223        scope: BNMemberScope,
25224    );
25225}
25226unsafe extern "C" {
25227    pub fn BNAddStructureBuilderMemberAtOffset(
25228        s: *mut BNStructureBuilder,
25229        type_: *const BNTypeWithConfidence,
25230        name: *const ::std::os::raw::c_char,
25231        offset: u64,
25232        overwriteExisting: bool,
25233        access: BNMemberAccess,
25234        scope: BNMemberScope,
25235        bitPosition: u8,
25236        bitWidth: u8,
25237    );
25238}
25239unsafe extern "C" {
25240    pub fn BNRemoveStructureBuilderMember(s: *mut BNStructureBuilder, idx: usize);
25241}
25242unsafe extern "C" {
25243    pub fn BNReplaceStructureBuilderMember(
25244        s: *mut BNStructureBuilder,
25245        idx: usize,
25246        type_: *const BNTypeWithConfidence,
25247        name: *const ::std::os::raw::c_char,
25248        overwriteExisting: bool,
25249    );
25250}
25251unsafe extern "C" {
25252    pub fn BNCreateEnumerationBuilder() -> *mut BNEnumerationBuilder;
25253}
25254unsafe extern "C" {
25255    pub fn BNCreateEnumerationBuilderFromEnumeration(
25256        e: *mut BNEnumeration,
25257    ) -> *mut BNEnumerationBuilder;
25258}
25259unsafe extern "C" {
25260    pub fn BNDuplicateEnumerationBuilder(e: *mut BNEnumerationBuilder)
25261    -> *mut BNEnumerationBuilder;
25262}
25263unsafe extern "C" {
25264    pub fn BNFinalizeEnumerationBuilder(e: *mut BNEnumerationBuilder) -> *mut BNEnumeration;
25265}
25266unsafe extern "C" {
25267    pub fn BNNewEnumerationReference(e: *mut BNEnumeration) -> *mut BNEnumeration;
25268}
25269unsafe extern "C" {
25270    pub fn BNFreeEnumeration(e: *mut BNEnumeration);
25271}
25272unsafe extern "C" {
25273    pub fn BNFreeEnumerationBuilder(e: *mut BNEnumerationBuilder);
25274}
25275unsafe extern "C" {
25276    pub fn BNSetEnumerationBuilder(type_: *mut BNTypeBuilder, e: *mut BNEnumerationBuilder);
25277}
25278unsafe extern "C" {
25279    pub fn BNGetEnumerationMembers(
25280        e: *mut BNEnumeration,
25281        count: *mut usize,
25282    ) -> *mut BNEnumerationMember;
25283}
25284unsafe extern "C" {
25285    pub fn BNGetEnumerationTokensForValue(
25286        e: *mut BNEnumeration,
25287        value: u64,
25288        width: u64,
25289        count: *mut usize,
25290        type_: *mut BNType,
25291    ) -> *mut BNInstructionTextToken;
25292}
25293unsafe extern "C" {
25294    pub fn BNFreeEnumerationMemberList(members: *mut BNEnumerationMember, count: usize);
25295}
25296unsafe extern "C" {
25297    pub fn BNGetEnumerationBuilderMembers(
25298        e: *mut BNEnumerationBuilder,
25299        count: *mut usize,
25300    ) -> *mut BNEnumerationMember;
25301}
25302unsafe extern "C" {
25303    pub fn BNAddEnumerationBuilderMember(
25304        e: *mut BNEnumerationBuilder,
25305        name: *const ::std::os::raw::c_char,
25306    );
25307}
25308unsafe extern "C" {
25309    pub fn BNAddEnumerationBuilderMemberWithValue(
25310        e: *mut BNEnumerationBuilder,
25311        name: *const ::std::os::raw::c_char,
25312        value: u64,
25313    );
25314}
25315unsafe extern "C" {
25316    pub fn BNRemoveEnumerationBuilderMember(e: *mut BNEnumerationBuilder, idx: usize);
25317}
25318unsafe extern "C" {
25319    pub fn BNReplaceEnumerationBuilderMember(
25320        e: *mut BNEnumerationBuilder,
25321        idx: usize,
25322        name: *const ::std::os::raw::c_char,
25323        value: u64,
25324    );
25325}
25326unsafe extern "C" {
25327    pub fn BNCreateStructureFromOffsetAccess(
25328        view: *mut BNBinaryView,
25329        name: *mut BNQualifiedName,
25330        newMember: *mut bool,
25331    ) -> *mut BNStructure;
25332}
25333unsafe extern "C" {
25334    pub fn BNCreateStructureMemberFromAccess(
25335        view: *mut BNBinaryView,
25336        name: *mut BNQualifiedName,
25337        offset: u64,
25338    ) -> BNTypeWithConfidence;
25339}
25340unsafe extern "C" {
25341    pub fn BNAddExpressionParserMagicValue(
25342        view: *mut BNBinaryView,
25343        name: *const ::std::os::raw::c_char,
25344        value: u64,
25345    );
25346}
25347unsafe extern "C" {
25348    pub fn BNRemoveExpressionParserMagicValue(
25349        view: *mut BNBinaryView,
25350        name: *const ::std::os::raw::c_char,
25351    );
25352}
25353unsafe extern "C" {
25354    pub fn BNAddExpressionParserMagicValues(
25355        view: *mut BNBinaryView,
25356        names: *mut *const ::std::os::raw::c_char,
25357        values: *mut u64,
25358        count: usize,
25359    );
25360}
25361unsafe extern "C" {
25362    pub fn BNRemoveExpressionParserMagicValues(
25363        view: *mut BNBinaryView,
25364        names: *mut *const ::std::os::raw::c_char,
25365        count: usize,
25366    );
25367}
25368unsafe extern "C" {
25369    pub fn BNGetExpressionParserMagicValue(
25370        view: *mut BNBinaryView,
25371        name: *const ::std::os::raw::c_char,
25372        value: *mut u64,
25373    ) -> bool;
25374}
25375unsafe extern "C" {
25376    pub fn BNGetFunctionParentComponents(
25377        view: *mut BNBinaryView,
25378        func: *mut BNFunction,
25379        count: *mut usize,
25380    ) -> *mut *mut BNComponent;
25381}
25382unsafe extern "C" {
25383    pub fn BNGetDataVariableParentComponents(
25384        view: *mut BNBinaryView,
25385        dataVariable: u64,
25386        count: *mut usize,
25387    ) -> *mut *mut BNComponent;
25388}
25389unsafe extern "C" {
25390    pub fn BNCheckForStringAnnotationType(
25391        view: *mut BNBinaryView,
25392        addr: u64,
25393        value: *mut *mut ::std::os::raw::c_char,
25394        strType: *mut BNStringType,
25395        allowShortStrings: bool,
25396        allowLargeStrings: bool,
25397        childWidth: usize,
25398    ) -> bool;
25399}
25400unsafe extern "C" {
25401    pub fn BNLoadFilename(
25402        filename: *const ::std::os::raw::c_char,
25403        updateAnalysis: bool,
25404        options: *const ::std::os::raw::c_char,
25405        progress: BNProgressFunction,
25406        progressContext: *mut ::std::os::raw::c_void,
25407    ) -> *mut BNBinaryView;
25408}
25409unsafe extern "C" {
25410    pub fn BNLoadProjectFile(
25411        projectFile: *mut BNProjectFile,
25412        updateAnalysis: bool,
25413        options: *const ::std::os::raw::c_char,
25414        progress: BNProgressFunction,
25415        progressContext: *mut ::std::os::raw::c_void,
25416    ) -> *mut BNBinaryView;
25417}
25418unsafe extern "C" {
25419    pub fn BNLoadBinaryView(
25420        view: *mut BNBinaryView,
25421        updateAnalysis: bool,
25422        options: *const ::std::os::raw::c_char,
25423        progress: BNProgressFunction,
25424        progressContext: *mut ::std::os::raw::c_void,
25425    ) -> *mut BNBinaryView;
25426}
25427unsafe extern "C" {
25428    pub fn BNParseTextFormat(filename: *const ::std::os::raw::c_char) -> *mut BNBinaryView;
25429}
25430unsafe extern "C" {
25431    pub fn BNBinaryViewAddExternalLibrary(
25432        view: *mut BNBinaryView,
25433        name: *const ::std::os::raw::c_char,
25434        backingFile: *mut BNProjectFile,
25435        isAuto: bool,
25436    ) -> *mut BNExternalLibrary;
25437}
25438unsafe extern "C" {
25439    pub fn BNBinaryViewRemoveExternalLibrary(
25440        view: *mut BNBinaryView,
25441        name: *const ::std::os::raw::c_char,
25442    );
25443}
25444unsafe extern "C" {
25445    pub fn BNBinaryViewGetExternalLibrary(
25446        view: *mut BNBinaryView,
25447        name: *const ::std::os::raw::c_char,
25448    ) -> *mut BNExternalLibrary;
25449}
25450unsafe extern "C" {
25451    pub fn BNBinaryViewGetExternalLibraries(
25452        view: *mut BNBinaryView,
25453        count: *mut usize,
25454    ) -> *mut *mut BNExternalLibrary;
25455}
25456unsafe extern "C" {
25457    pub fn BNBinaryViewAddExternalLocation(
25458        view: *mut BNBinaryView,
25459        sourceSymbol: *mut BNSymbol,
25460        library: *mut BNExternalLibrary,
25461        targetSymbol: *const ::std::os::raw::c_char,
25462        targetAddress: *mut u64,
25463        isAuto: bool,
25464    ) -> *mut BNExternalLocation;
25465}
25466unsafe extern "C" {
25467    pub fn BNBinaryViewRemoveExternalLocation(view: *mut BNBinaryView, sourceSymbol: *mut BNSymbol);
25468}
25469unsafe extern "C" {
25470    pub fn BNBinaryViewGetExternalLocation(
25471        view: *mut BNBinaryView,
25472        sourceSymbol: *mut BNSymbol,
25473    ) -> *mut BNExternalLocation;
25474}
25475unsafe extern "C" {
25476    pub fn BNBinaryViewGetExternalLocations(
25477        view: *mut BNBinaryView,
25478        count: *mut usize,
25479    ) -> *mut *mut BNExternalLocation;
25480}
25481unsafe extern "C" {
25482    #[doc = " Source code processing"]
25483    pub fn BNPreprocessSource(
25484        source: *const ::std::os::raw::c_char,
25485        fileName: *const ::std::os::raw::c_char,
25486        output: *mut *mut ::std::os::raw::c_char,
25487        errors: *mut *mut ::std::os::raw::c_char,
25488        includeDirs: *mut *const ::std::os::raw::c_char,
25489        includeDirCount: usize,
25490    ) -> bool;
25491}
25492unsafe extern "C" {
25493    pub fn BNParseTypesFromSource(
25494        platform: *mut BNPlatform,
25495        source: *const ::std::os::raw::c_char,
25496        fileName: *const ::std::os::raw::c_char,
25497        result: *mut BNTypeParserResult,
25498        errors: *mut *mut ::std::os::raw::c_char,
25499        includeDirs: *mut *const ::std::os::raw::c_char,
25500        includeDirCount: usize,
25501        autoTypeSource: *const ::std::os::raw::c_char,
25502    ) -> bool;
25503}
25504unsafe extern "C" {
25505    pub fn BNParseTypesFromSourceFile(
25506        platform: *mut BNPlatform,
25507        fileName: *const ::std::os::raw::c_char,
25508        result: *mut BNTypeParserResult,
25509        errors: *mut *mut ::std::os::raw::c_char,
25510        includeDirs: *mut *const ::std::os::raw::c_char,
25511        includeDirCount: usize,
25512        autoTypeSource: *const ::std::os::raw::c_char,
25513    ) -> bool;
25514}
25515unsafe extern "C" {
25516    pub fn BNRegisterTypeParser(
25517        name: *const ::std::os::raw::c_char,
25518        callbacks: *mut BNTypeParserCallbacks,
25519    ) -> *mut BNTypeParser;
25520}
25521unsafe extern "C" {
25522    pub fn BNGetTypeParserList(count: *mut usize) -> *mut *mut BNTypeParser;
25523}
25524unsafe extern "C" {
25525    pub fn BNFreeTypeParserList(parsers: *mut *mut BNTypeParser);
25526}
25527unsafe extern "C" {
25528    pub fn BNGetTypeParserByName(name: *const ::std::os::raw::c_char) -> *mut BNTypeParser;
25529}
25530unsafe extern "C" {
25531    pub fn BNGetDefaultTypeParser() -> *mut BNTypeParser;
25532}
25533unsafe extern "C" {
25534    pub fn BNGetTypeParserName(parser: *mut BNTypeParser) -> *mut ::std::os::raw::c_char;
25535}
25536unsafe extern "C" {
25537    pub fn BNGetTypeParserOptionText(
25538        parser: *mut BNTypeParser,
25539        option: BNTypeParserOption,
25540        value: *const ::std::os::raw::c_char,
25541        result: *mut *mut ::std::os::raw::c_char,
25542    ) -> bool;
25543}
25544unsafe extern "C" {
25545    pub fn BNTypeParserPreprocessSource(
25546        parser: *mut BNTypeParser,
25547        source: *const ::std::os::raw::c_char,
25548        fileName: *const ::std::os::raw::c_char,
25549        platform: *mut BNPlatform,
25550        existingTypes: *mut BNTypeContainer,
25551        options: *const *const ::std::os::raw::c_char,
25552        optionCount: usize,
25553        includeDirs: *const *const ::std::os::raw::c_char,
25554        includeDirCount: usize,
25555        output: *mut *mut ::std::os::raw::c_char,
25556        errors: *mut *mut BNTypeParserError,
25557        errorCount: *mut usize,
25558    ) -> bool;
25559}
25560unsafe extern "C" {
25561    pub fn BNTypeParserParseTypesFromSource(
25562        parser: *mut BNTypeParser,
25563        source: *const ::std::os::raw::c_char,
25564        fileName: *const ::std::os::raw::c_char,
25565        platform: *mut BNPlatform,
25566        existingTypes: *mut BNTypeContainer,
25567        options: *const *const ::std::os::raw::c_char,
25568        optionCount: usize,
25569        includeDirs: *const *const ::std::os::raw::c_char,
25570        includeDirCount: usize,
25571        autoTypeSource: *const ::std::os::raw::c_char,
25572        result: *mut BNTypeParserResult,
25573        errors: *mut *mut BNTypeParserError,
25574        errorCount: *mut usize,
25575    ) -> bool;
25576}
25577unsafe extern "C" {
25578    pub fn BNTypeParserParseTypeString(
25579        parser: *mut BNTypeParser,
25580        source: *const ::std::os::raw::c_char,
25581        platform: *mut BNPlatform,
25582        existingTypes: *mut BNTypeContainer,
25583        result: *mut BNQualifiedNameAndType,
25584        errors: *mut *mut BNTypeParserError,
25585        errorCount: *mut usize,
25586    ) -> bool;
25587}
25588unsafe extern "C" {
25589    pub fn BNParseTypeParserOptionsText(
25590        optionsText: *const ::std::os::raw::c_char,
25591        count: *mut usize,
25592    ) -> *mut *mut ::std::os::raw::c_char;
25593}
25594unsafe extern "C" {
25595    pub fn BNFormatTypeParserParseErrors(
25596        errors: *mut BNTypeParserError,
25597        count: usize,
25598    ) -> *mut ::std::os::raw::c_char;
25599}
25600unsafe extern "C" {
25601    pub fn BNRegisterTypePrinter(
25602        name: *const ::std::os::raw::c_char,
25603        callbacks: *mut BNTypePrinterCallbacks,
25604    ) -> *mut BNTypePrinter;
25605}
25606unsafe extern "C" {
25607    pub fn BNGetTypePrinterList(count: *mut usize) -> *mut *mut BNTypePrinter;
25608}
25609unsafe extern "C" {
25610    pub fn BNFreeTypePrinterList(printers: *mut *mut BNTypePrinter);
25611}
25612unsafe extern "C" {
25613    pub fn BNGetTypePrinterByName(name: *const ::std::os::raw::c_char) -> *mut BNTypePrinter;
25614}
25615unsafe extern "C" {
25616    pub fn BNGetTypePrinterName(printer: *mut BNTypePrinter) -> *mut ::std::os::raw::c_char;
25617}
25618unsafe extern "C" {
25619    pub fn BNGetTypePrinterTypeTokens(
25620        printer: *mut BNTypePrinter,
25621        type_: *mut BNType,
25622        platform: *mut BNPlatform,
25623        name: *mut BNQualifiedName,
25624        baseConfidence: u8,
25625        escaping: BNTokenEscapingType,
25626        result: *mut *mut BNInstructionTextToken,
25627        resultCount: *mut usize,
25628    ) -> bool;
25629}
25630unsafe extern "C" {
25631    pub fn BNGetTypePrinterTypeTokensBeforeName(
25632        printer: *mut BNTypePrinter,
25633        type_: *mut BNType,
25634        platform: *mut BNPlatform,
25635        baseConfidence: u8,
25636        parentType: *mut BNType,
25637        escaping: BNTokenEscapingType,
25638        result: *mut *mut BNInstructionTextToken,
25639        resultCount: *mut usize,
25640    ) -> bool;
25641}
25642unsafe extern "C" {
25643    pub fn BNGetTypePrinterTypeTokensAfterName(
25644        printer: *mut BNTypePrinter,
25645        type_: *mut BNType,
25646        platform: *mut BNPlatform,
25647        baseConfidence: u8,
25648        parentType: *mut BNType,
25649        escaping: BNTokenEscapingType,
25650        result: *mut *mut BNInstructionTextToken,
25651        resultCount: *mut usize,
25652    ) -> bool;
25653}
25654unsafe extern "C" {
25655    pub fn BNGetTypePrinterTypeString(
25656        printer: *mut BNTypePrinter,
25657        type_: *mut BNType,
25658        platform: *mut BNPlatform,
25659        name: *mut BNQualifiedName,
25660        escaping: BNTokenEscapingType,
25661        result: *mut *mut ::std::os::raw::c_char,
25662    ) -> bool;
25663}
25664unsafe extern "C" {
25665    pub fn BNGetTypePrinterTypeStringBeforeName(
25666        printer: *mut BNTypePrinter,
25667        type_: *mut BNType,
25668        platform: *mut BNPlatform,
25669        escaping: BNTokenEscapingType,
25670        result: *mut *mut ::std::os::raw::c_char,
25671    ) -> bool;
25672}
25673unsafe extern "C" {
25674    pub fn BNGetTypePrinterTypeStringAfterName(
25675        printer: *mut BNTypePrinter,
25676        type_: *mut BNType,
25677        platform: *mut BNPlatform,
25678        escaping: BNTokenEscapingType,
25679        result: *mut *mut ::std::os::raw::c_char,
25680    ) -> bool;
25681}
25682unsafe extern "C" {
25683    pub fn BNGetTypePrinterTypeLines(
25684        printer: *mut BNTypePrinter,
25685        type_: *mut BNType,
25686        types: *mut BNTypeContainer,
25687        name: *mut BNQualifiedName,
25688        paddingCols: ::std::os::raw::c_int,
25689        collapsed: bool,
25690        escaping: BNTokenEscapingType,
25691        result: *mut *mut BNTypeDefinitionLine,
25692        resultCount: *mut usize,
25693    ) -> bool;
25694}
25695unsafe extern "C" {
25696    pub fn BNTypePrinterPrintAllTypes(
25697        printer: *mut BNTypePrinter,
25698        names: *mut BNQualifiedName,
25699        types: *mut *mut BNType,
25700        typeCount: usize,
25701        data: *mut BNBinaryView,
25702        paddingCols: ::std::os::raw::c_int,
25703        escaping: BNTokenEscapingType,
25704        result: *mut *mut ::std::os::raw::c_char,
25705    ) -> bool;
25706}
25707unsafe extern "C" {
25708    pub fn BNTypePrinterDefaultPrintAllTypes(
25709        printer: *mut BNTypePrinter,
25710        names: *mut BNQualifiedName,
25711        types: *mut *mut BNType,
25712        typeCount: usize,
25713        data: *mut BNBinaryView,
25714        paddingCols: ::std::os::raw::c_int,
25715        escaping: BNTokenEscapingType,
25716        result: *mut *mut ::std::os::raw::c_char,
25717    ) -> bool;
25718}
25719unsafe extern "C" {
25720    pub fn BNFreeTypeParserResult(result: *mut BNTypeParserResult);
25721}
25722unsafe extern "C" {
25723    pub fn BNFreeTypeParserErrors(errors: *mut BNTypeParserError, count: usize);
25724}
25725unsafe extern "C" {
25726    #[doc = " Updates"]
25727    pub fn BNGetUpdateChannels(
25728        count: *mut usize,
25729        errors: *mut *mut ::std::os::raw::c_char,
25730    ) -> *mut BNUpdateChannel;
25731}
25732unsafe extern "C" {
25733    pub fn BNFreeUpdateChannelList(list: *mut BNUpdateChannel, count: usize);
25734}
25735unsafe extern "C" {
25736    pub fn BNGetUpdateChannelVersions(
25737        channel: *const ::std::os::raw::c_char,
25738        count: *mut usize,
25739        errors: *mut *mut ::std::os::raw::c_char,
25740    ) -> *mut BNUpdateVersion;
25741}
25742unsafe extern "C" {
25743    pub fn BNFreeUpdateChannelVersionList(list: *mut BNUpdateVersion, count: usize);
25744}
25745unsafe extern "C" {
25746    pub fn BNGetFullInfoUpdateChannels(
25747        count: *mut usize,
25748        errors: *mut *mut ::std::os::raw::c_char,
25749    ) -> *mut BNUpdateChannelFullInfo;
25750}
25751unsafe extern "C" {
25752    pub fn BNFreeFullInfoUpdateChannels(list: *mut BNUpdateChannelFullInfo, count: usize);
25753}
25754unsafe extern "C" {
25755    pub fn BNAreUpdatesAvailable(
25756        channel: *const ::std::os::raw::c_char,
25757        expireTime: *mut u64,
25758        serverTime: *mut u64,
25759        errors: *mut *mut ::std::os::raw::c_char,
25760    ) -> bool;
25761}
25762unsafe extern "C" {
25763    pub fn BNUpdateToVersion(
25764        channel: *const ::std::os::raw::c_char,
25765        version: *const ::std::os::raw::c_char,
25766        errors: *mut *mut ::std::os::raw::c_char,
25767        progress: BNProgressFunction,
25768        context: *mut ::std::os::raw::c_void,
25769    ) -> BNUpdateResult;
25770}
25771unsafe extern "C" {
25772    pub fn BNUpdateToLatestVersion(
25773        channel: *const ::std::os::raw::c_char,
25774        errors: *mut *mut ::std::os::raw::c_char,
25775        progress: BNProgressFunction,
25776        context: *mut ::std::os::raw::c_void,
25777    ) -> BNUpdateResult;
25778}
25779unsafe extern "C" {
25780    pub fn BNAreAutoUpdatesEnabled() -> bool;
25781}
25782unsafe extern "C" {
25783    pub fn BNSetAutoUpdatesEnabled(enabled: bool);
25784}
25785unsafe extern "C" {
25786    pub fn BNGetTimeSinceLastUpdateCheck() -> u64;
25787}
25788unsafe extern "C" {
25789    pub fn BNUpdatesChecked();
25790}
25791unsafe extern "C" {
25792    pub fn BNGetActiveUpdateChannel() -> *mut ::std::os::raw::c_char;
25793}
25794unsafe extern "C" {
25795    pub fn BNSetActiveUpdateChannel(channel: *const ::std::os::raw::c_char);
25796}
25797unsafe extern "C" {
25798    pub fn BNIsUpdateInstallationPending() -> bool;
25799}
25800unsafe extern "C" {
25801    pub fn BNInstallPendingUpdate(errors: *mut *mut ::std::os::raw::c_char);
25802}
25803unsafe extern "C" {
25804    #[doc = " Plugin commands"]
25805    pub fn BNRegisterPluginCommandGlobal(
25806        name: *const ::std::os::raw::c_char,
25807        description: *const ::std::os::raw::c_char,
25808        action: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
25809        isValid: ::std::option::Option<
25810            unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool,
25811        >,
25812        context: *mut ::std::os::raw::c_void,
25813    );
25814}
25815unsafe extern "C" {
25816    pub fn BNRegisterPluginCommand(
25817        name: *const ::std::os::raw::c_char,
25818        description: *const ::std::os::raw::c_char,
25819        action: ::std::option::Option<
25820            unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, view: *mut BNBinaryView),
25821        >,
25822        isValid: ::std::option::Option<
25823            unsafe extern "C" fn(
25824                ctxt: *mut ::std::os::raw::c_void,
25825                view: *mut BNBinaryView,
25826            ) -> bool,
25827        >,
25828        context: *mut ::std::os::raw::c_void,
25829    );
25830}
25831unsafe extern "C" {
25832    pub fn BNRegisterPluginCommandForAddress(
25833        name: *const ::std::os::raw::c_char,
25834        description: *const ::std::os::raw::c_char,
25835        action: ::std::option::Option<
25836            unsafe extern "C" fn(
25837                ctxt: *mut ::std::os::raw::c_void,
25838                view: *mut BNBinaryView,
25839                addr: u64,
25840            ),
25841        >,
25842        isValid: ::std::option::Option<
25843            unsafe extern "C" fn(
25844                ctxt: *mut ::std::os::raw::c_void,
25845                view: *mut BNBinaryView,
25846                addr: u64,
25847            ) -> bool,
25848        >,
25849        context: *mut ::std::os::raw::c_void,
25850    );
25851}
25852unsafe extern "C" {
25853    pub fn BNRegisterPluginCommandForRange(
25854        name: *const ::std::os::raw::c_char,
25855        description: *const ::std::os::raw::c_char,
25856        action: ::std::option::Option<
25857            unsafe extern "C" fn(
25858                ctxt: *mut ::std::os::raw::c_void,
25859                view: *mut BNBinaryView,
25860                addr: u64,
25861                len: u64,
25862            ),
25863        >,
25864        isValid: ::std::option::Option<
25865            unsafe extern "C" fn(
25866                ctxt: *mut ::std::os::raw::c_void,
25867                view: *mut BNBinaryView,
25868                addr: u64,
25869                len: u64,
25870            ) -> bool,
25871        >,
25872        context: *mut ::std::os::raw::c_void,
25873    );
25874}
25875unsafe extern "C" {
25876    pub fn BNRegisterPluginCommandForFunction(
25877        name: *const ::std::os::raw::c_char,
25878        description: *const ::std::os::raw::c_char,
25879        action: ::std::option::Option<
25880            unsafe extern "C" fn(
25881                ctxt: *mut ::std::os::raw::c_void,
25882                view: *mut BNBinaryView,
25883                func: *mut BNFunction,
25884            ),
25885        >,
25886        isValid: ::std::option::Option<
25887            unsafe extern "C" fn(
25888                ctxt: *mut ::std::os::raw::c_void,
25889                view: *mut BNBinaryView,
25890                func: *mut BNFunction,
25891            ) -> bool,
25892        >,
25893        context: *mut ::std::os::raw::c_void,
25894    );
25895}
25896unsafe extern "C" {
25897    pub fn BNRegisterPluginCommandForLowLevelILFunction(
25898        name: *const ::std::os::raw::c_char,
25899        description: *const ::std::os::raw::c_char,
25900        action: ::std::option::Option<
25901            unsafe extern "C" fn(
25902                ctxt: *mut ::std::os::raw::c_void,
25903                view: *mut BNBinaryView,
25904                func: *mut BNLowLevelILFunction,
25905            ),
25906        >,
25907        isValid: ::std::option::Option<
25908            unsafe extern "C" fn(
25909                ctxt: *mut ::std::os::raw::c_void,
25910                view: *mut BNBinaryView,
25911                func: *mut BNLowLevelILFunction,
25912            ) -> bool,
25913        >,
25914        context: *mut ::std::os::raw::c_void,
25915    );
25916}
25917unsafe extern "C" {
25918    pub fn BNRegisterPluginCommandForLowLevelILInstruction(
25919        name: *const ::std::os::raw::c_char,
25920        description: *const ::std::os::raw::c_char,
25921        action: ::std::option::Option<
25922            unsafe extern "C" fn(
25923                ctxt: *mut ::std::os::raw::c_void,
25924                view: *mut BNBinaryView,
25925                func: *mut BNLowLevelILFunction,
25926                instr: usize,
25927            ),
25928        >,
25929        isValid: ::std::option::Option<
25930            unsafe extern "C" fn(
25931                ctxt: *mut ::std::os::raw::c_void,
25932                view: *mut BNBinaryView,
25933                func: *mut BNLowLevelILFunction,
25934                instr: usize,
25935            ) -> bool,
25936        >,
25937        context: *mut ::std::os::raw::c_void,
25938    );
25939}
25940unsafe extern "C" {
25941    pub fn BNRegisterPluginCommandForMediumLevelILFunction(
25942        name: *const ::std::os::raw::c_char,
25943        description: *const ::std::os::raw::c_char,
25944        action: ::std::option::Option<
25945            unsafe extern "C" fn(
25946                ctxt: *mut ::std::os::raw::c_void,
25947                view: *mut BNBinaryView,
25948                func: *mut BNMediumLevelILFunction,
25949            ),
25950        >,
25951        isValid: ::std::option::Option<
25952            unsafe extern "C" fn(
25953                ctxt: *mut ::std::os::raw::c_void,
25954                view: *mut BNBinaryView,
25955                func: *mut BNMediumLevelILFunction,
25956            ) -> bool,
25957        >,
25958        context: *mut ::std::os::raw::c_void,
25959    );
25960}
25961unsafe extern "C" {
25962    pub fn BNRegisterPluginCommandForMediumLevelILInstruction(
25963        name: *const ::std::os::raw::c_char,
25964        description: *const ::std::os::raw::c_char,
25965        action: ::std::option::Option<
25966            unsafe extern "C" fn(
25967                ctxt: *mut ::std::os::raw::c_void,
25968                view: *mut BNBinaryView,
25969                func: *mut BNMediumLevelILFunction,
25970                instr: usize,
25971            ),
25972        >,
25973        isValid: ::std::option::Option<
25974            unsafe extern "C" fn(
25975                ctxt: *mut ::std::os::raw::c_void,
25976                view: *mut BNBinaryView,
25977                func: *mut BNMediumLevelILFunction,
25978                instr: usize,
25979            ) -> bool,
25980        >,
25981        context: *mut ::std::os::raw::c_void,
25982    );
25983}
25984unsafe extern "C" {
25985    pub fn BNRegisterPluginCommandForHighLevelILFunction(
25986        name: *const ::std::os::raw::c_char,
25987        description: *const ::std::os::raw::c_char,
25988        action: ::std::option::Option<
25989            unsafe extern "C" fn(
25990                ctxt: *mut ::std::os::raw::c_void,
25991                view: *mut BNBinaryView,
25992                func: *mut BNHighLevelILFunction,
25993            ),
25994        >,
25995        isValid: ::std::option::Option<
25996            unsafe extern "C" fn(
25997                ctxt: *mut ::std::os::raw::c_void,
25998                view: *mut BNBinaryView,
25999                func: *mut BNHighLevelILFunction,
26000            ) -> bool,
26001        >,
26002        context: *mut ::std::os::raw::c_void,
26003    );
26004}
26005unsafe extern "C" {
26006    pub fn BNRegisterPluginCommandForHighLevelILInstruction(
26007        name: *const ::std::os::raw::c_char,
26008        description: *const ::std::os::raw::c_char,
26009        action: ::std::option::Option<
26010            unsafe extern "C" fn(
26011                ctxt: *mut ::std::os::raw::c_void,
26012                view: *mut BNBinaryView,
26013                func: *mut BNHighLevelILFunction,
26014                instr: usize,
26015            ),
26016        >,
26017        isValid: ::std::option::Option<
26018            unsafe extern "C" fn(
26019                ctxt: *mut ::std::os::raw::c_void,
26020                view: *mut BNBinaryView,
26021                func: *mut BNHighLevelILFunction,
26022                instr: usize,
26023            ) -> bool,
26024        >,
26025        context: *mut ::std::os::raw::c_void,
26026    );
26027}
26028unsafe extern "C" {
26029    pub fn BNRegisterPluginCommandForProject(
26030        name: *const ::std::os::raw::c_char,
26031        description: *const ::std::os::raw::c_char,
26032        action: ::std::option::Option<
26033            unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, project: *mut BNProject),
26034        >,
26035        isValid: ::std::option::Option<
26036            unsafe extern "C" fn(
26037                ctxt: *mut ::std::os::raw::c_void,
26038                project: *mut BNProject,
26039            ) -> bool,
26040        >,
26041        context: *mut ::std::os::raw::c_void,
26042    );
26043}
26044unsafe extern "C" {
26045    pub fn BNGetAllPluginCommands(count: *mut usize) -> *mut BNPluginCommand;
26046}
26047unsafe extern "C" {
26048    pub fn BNGetValidPluginCommandsGlobal(count: *mut usize) -> *mut BNPluginCommand;
26049}
26050unsafe extern "C" {
26051    pub fn BNGetValidPluginCommands(
26052        view: *mut BNBinaryView,
26053        count: *mut usize,
26054    ) -> *mut BNPluginCommand;
26055}
26056unsafe extern "C" {
26057    pub fn BNGetValidPluginCommandsForAddress(
26058        view: *mut BNBinaryView,
26059        addr: u64,
26060        count: *mut usize,
26061    ) -> *mut BNPluginCommand;
26062}
26063unsafe extern "C" {
26064    pub fn BNGetValidPluginCommandsForRange(
26065        view: *mut BNBinaryView,
26066        addr: u64,
26067        len: u64,
26068        count: *mut usize,
26069    ) -> *mut BNPluginCommand;
26070}
26071unsafe extern "C" {
26072    pub fn BNGetValidPluginCommandsForFunction(
26073        view: *mut BNBinaryView,
26074        func: *mut BNFunction,
26075        count: *mut usize,
26076    ) -> *mut BNPluginCommand;
26077}
26078unsafe extern "C" {
26079    pub fn BNGetValidPluginCommandsForLowLevelILFunction(
26080        view: *mut BNBinaryView,
26081        func: *mut BNLowLevelILFunction,
26082        count: *mut usize,
26083    ) -> *mut BNPluginCommand;
26084}
26085unsafe extern "C" {
26086    pub fn BNGetValidPluginCommandsForLowLevelILInstruction(
26087        view: *mut BNBinaryView,
26088        func: *mut BNLowLevelILFunction,
26089        instr: usize,
26090        count: *mut usize,
26091    ) -> *mut BNPluginCommand;
26092}
26093unsafe extern "C" {
26094    pub fn BNGetValidPluginCommandsForMediumLevelILFunction(
26095        view: *mut BNBinaryView,
26096        func: *mut BNMediumLevelILFunction,
26097        count: *mut usize,
26098    ) -> *mut BNPluginCommand;
26099}
26100unsafe extern "C" {
26101    pub fn BNGetValidPluginCommandsForMediumLevelILInstruction(
26102        view: *mut BNBinaryView,
26103        func: *mut BNMediumLevelILFunction,
26104        instr: usize,
26105        count: *mut usize,
26106    ) -> *mut BNPluginCommand;
26107}
26108unsafe extern "C" {
26109    pub fn BNGetValidPluginCommandsForHighLevelILFunction(
26110        view: *mut BNBinaryView,
26111        func: *mut BNHighLevelILFunction,
26112        count: *mut usize,
26113    ) -> *mut BNPluginCommand;
26114}
26115unsafe extern "C" {
26116    pub fn BNGetValidPluginCommandsForHighLevelILInstruction(
26117        view: *mut BNBinaryView,
26118        func: *mut BNHighLevelILFunction,
26119        instr: usize,
26120        count: *mut usize,
26121    ) -> *mut BNPluginCommand;
26122}
26123unsafe extern "C" {
26124    pub fn BNGetValidPluginCommandsForProject(
26125        project: *mut BNProject,
26126        count: *mut usize,
26127    ) -> *mut BNPluginCommand;
26128}
26129unsafe extern "C" {
26130    pub fn BNFreePluginCommandList(commands: *mut BNPluginCommand);
26131}
26132unsafe extern "C" {
26133    #[doc = " Calling conventions"]
26134    pub fn BNCreateCallingConvention(
26135        arch: *mut BNArchitecture,
26136        name: *const ::std::os::raw::c_char,
26137        cc: *mut BNCustomCallingConvention,
26138    ) -> *mut BNCallingConvention;
26139}
26140unsafe extern "C" {
26141    pub fn BNRegisterCallingConvention(arch: *mut BNArchitecture, cc: *mut BNCallingConvention);
26142}
26143unsafe extern "C" {
26144    pub fn BNNewCallingConventionReference(
26145        cc: *mut BNCallingConvention,
26146    ) -> *mut BNCallingConvention;
26147}
26148unsafe extern "C" {
26149    pub fn BNFreeCallingConvention(cc: *mut BNCallingConvention);
26150}
26151unsafe extern "C" {
26152    pub fn BNGetArchitectureCallingConventions(
26153        arch: *mut BNArchitecture,
26154        count: *mut usize,
26155    ) -> *mut *mut BNCallingConvention;
26156}
26157unsafe extern "C" {
26158    pub fn BNFreeCallingConventionList(list: *mut *mut BNCallingConvention, count: usize);
26159}
26160unsafe extern "C" {
26161    pub fn BNGetArchitectureCallingConventionByName(
26162        arch: *mut BNArchitecture,
26163        name: *const ::std::os::raw::c_char,
26164    ) -> *mut BNCallingConvention;
26165}
26166unsafe extern "C" {
26167    pub fn BNGetCallingConventionArchitecture(cc: *mut BNCallingConvention) -> *mut BNArchitecture;
26168}
26169unsafe extern "C" {
26170    pub fn BNGetCallingConventionName(cc: *mut BNCallingConvention) -> *mut ::std::os::raw::c_char;
26171}
26172unsafe extern "C" {
26173    pub fn BNGetCallerSavedRegisters(cc: *mut BNCallingConvention, count: *mut usize) -> *mut u32;
26174}
26175unsafe extern "C" {
26176    pub fn BNGetCalleeSavedRegisters(cc: *mut BNCallingConvention, count: *mut usize) -> *mut u32;
26177}
26178unsafe extern "C" {
26179    pub fn BNGetIntegerArgumentRegisters(
26180        cc: *mut BNCallingConvention,
26181        count: *mut usize,
26182    ) -> *mut u32;
26183}
26184unsafe extern "C" {
26185    pub fn BNGetFloatArgumentRegisters(cc: *mut BNCallingConvention, count: *mut usize)
26186    -> *mut u32;
26187}
26188unsafe extern "C" {
26189    pub fn BNGetRequiredArgumentRegisters(
26190        cc: *mut BNCallingConvention,
26191        count: *mut usize,
26192    ) -> *mut u32;
26193}
26194unsafe extern "C" {
26195    pub fn BNGetRequiredClobberedRegisters(
26196        cc: *mut BNCallingConvention,
26197        count: *mut usize,
26198    ) -> *mut u32;
26199}
26200unsafe extern "C" {
26201    pub fn BNAreArgumentRegistersSharedIndex(cc: *mut BNCallingConvention) -> bool;
26202}
26203unsafe extern "C" {
26204    pub fn BNAreArgumentRegistersUsedForVarArgs(cc: *mut BNCallingConvention) -> bool;
26205}
26206unsafe extern "C" {
26207    pub fn BNIsStackReservedForArgumentRegisters(cc: *mut BNCallingConvention) -> bool;
26208}
26209unsafe extern "C" {
26210    pub fn BNIsStackAdjustedOnReturn(cc: *mut BNCallingConvention) -> bool;
26211}
26212unsafe extern "C" {
26213    pub fn BNIsEligibleForHeuristics(cc: *mut BNCallingConvention) -> bool;
26214}
26215unsafe extern "C" {
26216    pub fn BNGetIntegerReturnValueRegister(cc: *mut BNCallingConvention) -> u32;
26217}
26218unsafe extern "C" {
26219    pub fn BNGetHighIntegerReturnValueRegister(cc: *mut BNCallingConvention) -> u32;
26220}
26221unsafe extern "C" {
26222    pub fn BNGetFloatReturnValueRegister(cc: *mut BNCallingConvention) -> u32;
26223}
26224unsafe extern "C" {
26225    pub fn BNGetGlobalPointerRegisters(cc: *mut BNCallingConvention, count: *mut usize)
26226    -> *mut u32;
26227}
26228unsafe extern "C" {
26229    pub fn BNGetImplicitlyDefinedRegisters(
26230        cc: *mut BNCallingConvention,
26231        count: *mut usize,
26232    ) -> *mut u32;
26233}
26234unsafe extern "C" {
26235    pub fn BNGetIncomingRegisterValue(
26236        cc: *mut BNCallingConvention,
26237        reg: u32,
26238        func: *mut BNFunction,
26239    ) -> BNRegisterValue;
26240}
26241unsafe extern "C" {
26242    pub fn BNGetIncomingFlagValue(
26243        cc: *mut BNCallingConvention,
26244        reg: u32,
26245        func: *mut BNFunction,
26246    ) -> BNRegisterValue;
26247}
26248unsafe extern "C" {
26249    pub fn BNGetCallLayout(
26250        cc: *mut BNCallingConvention,
26251        view: *mut BNBinaryView,
26252        returnValue: *const BNReturnValue,
26253        params: *const BNFunctionParameter,
26254        paramCount: usize,
26255        permittedRegs: *const u32,
26256        permittedRegCount: usize,
26257    ) -> BNCallLayout;
26258}
26259unsafe extern "C" {
26260    pub fn BNGetCallLayoutDefaultPermittedArgs(
26261        cc: *mut BNCallingConvention,
26262        view: *mut BNBinaryView,
26263        returnValue: *const BNReturnValue,
26264        params: *const BNFunctionParameter,
26265        paramCount: usize,
26266    ) -> BNCallLayout;
26267}
26268unsafe extern "C" {
26269    pub fn BNGetDefaultCallLayout(
26270        cc: *mut BNCallingConvention,
26271        view: *mut BNBinaryView,
26272        returnValue: *const BNReturnValue,
26273        params: *const BNFunctionParameter,
26274        paramCount: usize,
26275        permittedRegs: *const u32,
26276        permittedRegCount: usize,
26277    ) -> BNCallLayout;
26278}
26279unsafe extern "C" {
26280    pub fn BNGetDefaultCallLayoutDefaultPermittedArgs(
26281        cc: *mut BNCallingConvention,
26282        view: *mut BNBinaryView,
26283        returnValue: *const BNReturnValue,
26284        params: *const BNFunctionParameter,
26285        paramCount: usize,
26286    ) -> BNCallLayout;
26287}
26288unsafe extern "C" {
26289    pub fn BNFreeCallLayout(layout: *mut BNCallLayout);
26290}
26291unsafe extern "C" {
26292    pub fn BNGetReturnValueLocation(
26293        cc: *mut BNCallingConvention,
26294        view: *mut BNBinaryView,
26295        returnValue: *mut BNReturnValue,
26296    ) -> BNValueLocation;
26297}
26298unsafe extern "C" {
26299    pub fn BNGetDefaultReturnValueLocation(
26300        cc: *mut BNCallingConvention,
26301        view: *mut BNBinaryView,
26302        returnValue: *mut BNReturnValue,
26303    ) -> BNValueLocation;
26304}
26305unsafe extern "C" {
26306    pub fn BNGetParameterLocations(
26307        cc: *mut BNCallingConvention,
26308        view: *mut BNBinaryView,
26309        returnValue: *mut BNValueLocation,
26310        params: *mut BNFunctionParameter,
26311        paramCount: usize,
26312        permittedRegs: *const u32,
26313        permittedRegCount: usize,
26314        outCount: *mut usize,
26315    ) -> *mut BNValueLocation;
26316}
26317unsafe extern "C" {
26318    pub fn BNGetParameterLocationsDefaultPermittedArgs(
26319        cc: *mut BNCallingConvention,
26320        view: *mut BNBinaryView,
26321        returnValue: *mut BNValueLocation,
26322        params: *mut BNFunctionParameter,
26323        paramCount: usize,
26324        outCount: *mut usize,
26325    ) -> *mut BNValueLocation;
26326}
26327unsafe extern "C" {
26328    pub fn BNGetDefaultParameterLocations(
26329        cc: *mut BNCallingConvention,
26330        view: *mut BNBinaryView,
26331        returnValue: *mut BNValueLocation,
26332        params: *mut BNFunctionParameter,
26333        paramCount: usize,
26334        permittedRegs: *const u32,
26335        permittedRegCount: usize,
26336        outCount: *mut usize,
26337    ) -> *mut BNValueLocation;
26338}
26339unsafe extern "C" {
26340    pub fn BNGetDefaultParameterLocationsDefaultPermittedArgs(
26341        cc: *mut BNCallingConvention,
26342        view: *mut BNBinaryView,
26343        returnValue: *mut BNValueLocation,
26344        params: *mut BNFunctionParameter,
26345        paramCount: usize,
26346        outCount: *mut usize,
26347    ) -> *mut BNValueLocation;
26348}
26349unsafe extern "C" {
26350    pub fn BNFreeValueLocationList(locations: *mut BNValueLocation, count: usize);
26351}
26352unsafe extern "C" {
26353    pub fn BNGetParameterOrderingForVariables(
26354        cc: *mut BNCallingConvention,
26355        view: *mut BNBinaryView,
26356        paramVars: *const BNVariable,
26357        paramTypes: *mut *const BNType,
26358        paramCount: usize,
26359        count: *mut usize,
26360    ) -> *mut BNVariable;
26361}
26362unsafe extern "C" {
26363    pub fn BNGetDefaultParameterOrderingForVariables(
26364        cc: *mut BNCallingConvention,
26365        paramVars: *const BNVariable,
26366        paramTypes: *mut *const BNType,
26367        paramCount: usize,
26368        count: *mut usize,
26369    ) -> *mut BNVariable;
26370}
26371unsafe extern "C" {
26372    pub fn BNGetStackAdjustmentForLocations(
26373        cc: *mut BNCallingConvention,
26374        view: *mut BNBinaryView,
26375        returnValue: *mut BNValueLocation,
26376        paramLocations: *const BNValueLocation,
26377        paramTypes: *mut *const BNType,
26378        paramCount: usize,
26379    ) -> i64;
26380}
26381unsafe extern "C" {
26382    pub fn BNGetDefaultStackAdjustmentForLocations(
26383        cc: *mut BNCallingConvention,
26384        returnValue: *mut BNValueLocation,
26385        paramLocations: *const BNValueLocation,
26386        paramTypes: *mut *const BNType,
26387        paramCount: usize,
26388    ) -> i64;
26389}
26390unsafe extern "C" {
26391    pub fn BNGetCallingConventionRegisterStackAdjustments(
26392        cc: *mut BNCallingConvention,
26393        view: *mut BNBinaryView,
26394        returnValue: *mut BNValueLocation,
26395        params: *mut BNValueLocation,
26396        paramCount: usize,
26397        outRegs: *mut *mut u32,
26398        outAdjust: *mut *mut i32,
26399    ) -> usize;
26400}
26401unsafe extern "C" {
26402    pub fn BNGetCallingConventionDefaultRegisterStackAdjustments(
26403        cc: *mut BNCallingConvention,
26404        returnValue: *mut BNValueLocation,
26405        params: *mut BNValueLocation,
26406        paramCount: usize,
26407        outRegs: *mut *mut u32,
26408        outAdjust: *mut *mut i32,
26409    ) -> usize;
26410}
26411unsafe extern "C" {
26412    pub fn BNFreeCallingConventionRegisterStackAdjustments(regs: *mut u32, adjust: *mut i32);
26413}
26414unsafe extern "C" {
26415    pub fn BNGetIncomingVariableForParameterVariable(
26416        cc: *mut BNCallingConvention,
26417        var: *const BNVariable,
26418        func: *mut BNFunction,
26419    ) -> BNVariable;
26420}
26421unsafe extern "C" {
26422    pub fn BNGetParameterVariableForIncomingVariable(
26423        cc: *mut BNCallingConvention,
26424        var: *const BNVariable,
26425        func: *mut BNFunction,
26426    ) -> BNVariable;
26427}
26428unsafe extern "C" {
26429    pub fn BNGetDefaultIncomingVariableForParameterVariable(
26430        cc: *mut BNCallingConvention,
26431        var: *const BNVariable,
26432    ) -> BNVariable;
26433}
26434unsafe extern "C" {
26435    pub fn BNGetDefaultParameterVariableForIncomingVariable(
26436        cc: *mut BNCallingConvention,
26437        var: *const BNVariable,
26438    ) -> BNVariable;
26439}
26440unsafe extern "C" {
26441    pub fn BNIsReturnTypeRegisterCompatible(
26442        cc: *mut BNCallingConvention,
26443        view: *mut BNBinaryView,
26444        type_: *mut BNType,
26445    ) -> bool;
26446}
26447unsafe extern "C" {
26448    pub fn BNDefaultIsReturnTypeRegisterCompatible(
26449        cc: *mut BNCallingConvention,
26450        type_: *mut BNType,
26451    ) -> bool;
26452}
26453unsafe extern "C" {
26454    pub fn BNGetIndirectReturnValueLocation(cc: *mut BNCallingConvention) -> BNVariable;
26455}
26456unsafe extern "C" {
26457    pub fn BNGetDefaultIndirectReturnValueLocation(cc: *mut BNCallingConvention) -> BNVariable;
26458}
26459unsafe extern "C" {
26460    pub fn BNGetReturnedIndirectReturnValuePointer(
26461        cc: *mut BNCallingConvention,
26462        outVar: *mut BNVariable,
26463    ) -> bool;
26464}
26465unsafe extern "C" {
26466    pub fn BNIsArgumentTypeRegisterCompatible(
26467        cc: *mut BNCallingConvention,
26468        view: *mut BNBinaryView,
26469        type_: *mut BNType,
26470    ) -> bool;
26471}
26472unsafe extern "C" {
26473    pub fn BNDefaultIsArgumentTypeRegisterCompatible(
26474        cc: *mut BNCallingConvention,
26475        type_: *mut BNType,
26476    ) -> bool;
26477}
26478unsafe extern "C" {
26479    pub fn BNIsNonRegisterArgumentIndirect(
26480        cc: *mut BNCallingConvention,
26481        view: *mut BNBinaryView,
26482        type_: *mut BNType,
26483    ) -> bool;
26484}
26485unsafe extern "C" {
26486    pub fn BNAreStackArgumentsNaturallyAligned(cc: *mut BNCallingConvention) -> bool;
26487}
26488unsafe extern "C" {
26489    pub fn BNAreStackArgumentsPushedLeftToRight(cc: *mut BNCallingConvention) -> bool;
26490}
26491unsafe extern "C" {
26492    pub fn BNGetArchitectureDefaultCallingConvention(
26493        arch: *mut BNArchitecture,
26494    ) -> *mut BNCallingConvention;
26495}
26496unsafe extern "C" {
26497    pub fn BNGetArchitectureCdeclCallingConvention(
26498        arch: *mut BNArchitecture,
26499    ) -> *mut BNCallingConvention;
26500}
26501unsafe extern "C" {
26502    pub fn BNGetArchitectureStdcallCallingConvention(
26503        arch: *mut BNArchitecture,
26504    ) -> *mut BNCallingConvention;
26505}
26506unsafe extern "C" {
26507    pub fn BNGetArchitectureFastcallCallingConvention(
26508        arch: *mut BNArchitecture,
26509    ) -> *mut BNCallingConvention;
26510}
26511unsafe extern "C" {
26512    pub fn BNSetArchitectureDefaultCallingConvention(
26513        arch: *mut BNArchitecture,
26514        cc: *mut BNCallingConvention,
26515    );
26516}
26517unsafe extern "C" {
26518    pub fn BNSetArchitectureCdeclCallingConvention(
26519        arch: *mut BNArchitecture,
26520        cc: *mut BNCallingConvention,
26521    );
26522}
26523unsafe extern "C" {
26524    pub fn BNSetArchitectureStdcallCallingConvention(
26525        arch: *mut BNArchitecture,
26526        cc: *mut BNCallingConvention,
26527    );
26528}
26529unsafe extern "C" {
26530    pub fn BNSetArchitectureFastcallCallingConvention(
26531        arch: *mut BNArchitecture,
26532        cc: *mut BNCallingConvention,
26533    );
26534}
26535unsafe extern "C" {
26536    #[doc = " Platforms"]
26537    pub fn BNCreatePlatform(
26538        arch: *mut BNArchitecture,
26539        name: *const ::std::os::raw::c_char,
26540    ) -> *mut BNPlatform;
26541}
26542unsafe extern "C" {
26543    pub fn BNCreatePlatformWithTypes(
26544        arch: *mut BNArchitecture,
26545        name: *const ::std::os::raw::c_char,
26546        typeFile: *const ::std::os::raw::c_char,
26547        includeDirs: *mut *const ::std::os::raw::c_char,
26548        includeDirCount: usize,
26549    ) -> *mut BNPlatform;
26550}
26551unsafe extern "C" {
26552    pub fn BNCreateCustomPlatform(
26553        arch: *mut BNArchitecture,
26554        name: *const ::std::os::raw::c_char,
26555        impl_: *mut BNCustomPlatform,
26556    ) -> *mut BNPlatform;
26557}
26558unsafe extern "C" {
26559    pub fn BNCreateCustomPlatformWithTypes(
26560        arch: *mut BNArchitecture,
26561        name: *const ::std::os::raw::c_char,
26562        impl_: *mut BNCustomPlatform,
26563        typeFile: *const ::std::os::raw::c_char,
26564        includeDirs: *mut *const ::std::os::raw::c_char,
26565        includeDirCount: usize,
26566    ) -> *mut BNPlatform;
26567}
26568unsafe extern "C" {
26569    pub fn BNRegisterPlatform(os: *const ::std::os::raw::c_char, platform: *mut BNPlatform);
26570}
26571unsafe extern "C" {
26572    pub fn BNNewPlatformReference(platform: *mut BNPlatform) -> *mut BNPlatform;
26573}
26574unsafe extern "C" {
26575    pub fn BNFreePlatform(platform: *mut BNPlatform);
26576}
26577unsafe extern "C" {
26578    pub fn BNGetPlatformName(platform: *mut BNPlatform) -> *mut ::std::os::raw::c_char;
26579}
26580unsafe extern "C" {
26581    pub fn BNGetPlatformArchitecture(platform: *mut BNPlatform) -> *mut BNArchitecture;
26582}
26583unsafe extern "C" {
26584    pub fn BNGetPlatformByName(name: *const ::std::os::raw::c_char) -> *mut BNPlatform;
26585}
26586unsafe extern "C" {
26587    pub fn BNGetPlatformList(count: *mut usize) -> *mut *mut BNPlatform;
26588}
26589unsafe extern "C" {
26590    pub fn BNGetPlatformListByArchitecture(
26591        arch: *mut BNArchitecture,
26592        count: *mut usize,
26593    ) -> *mut *mut BNPlatform;
26594}
26595unsafe extern "C" {
26596    pub fn BNGetPlatformListByOS(
26597        os: *const ::std::os::raw::c_char,
26598        count: *mut usize,
26599    ) -> *mut *mut BNPlatform;
26600}
26601unsafe extern "C" {
26602    pub fn BNGetPlatformListByOSAndArchitecture(
26603        os: *const ::std::os::raw::c_char,
26604        arch: *mut BNArchitecture,
26605        count: *mut usize,
26606    ) -> *mut *mut BNPlatform;
26607}
26608unsafe extern "C" {
26609    pub fn BNFreePlatformList(platform: *mut *mut BNPlatform, count: usize);
26610}
26611unsafe extern "C" {
26612    pub fn BNGetPlatformOSList(count: *mut usize) -> *mut *mut ::std::os::raw::c_char;
26613}
26614unsafe extern "C" {
26615    pub fn BNFreePlatformOSList(list: *mut *mut ::std::os::raw::c_char, count: usize);
26616}
26617unsafe extern "C" {
26618    pub fn BNGetPlatformDefaultCallingConvention(
26619        platform: *mut BNPlatform,
26620    ) -> *mut BNCallingConvention;
26621}
26622unsafe extern "C" {
26623    pub fn BNGetPlatformCdeclCallingConvention(
26624        platform: *mut BNPlatform,
26625    ) -> *mut BNCallingConvention;
26626}
26627unsafe extern "C" {
26628    pub fn BNGetPlatformStdcallCallingConvention(
26629        platform: *mut BNPlatform,
26630    ) -> *mut BNCallingConvention;
26631}
26632unsafe extern "C" {
26633    pub fn BNGetPlatformFastcallCallingConvention(
26634        platform: *mut BNPlatform,
26635    ) -> *mut BNCallingConvention;
26636}
26637unsafe extern "C" {
26638    pub fn BNGetPlatformCallingConventions(
26639        platform: *mut BNPlatform,
26640        count: *mut usize,
26641    ) -> *mut *mut BNCallingConvention;
26642}
26643unsafe extern "C" {
26644    pub fn BNGetPlatformSystemCallConvention(platform: *mut BNPlatform)
26645    -> *mut BNCallingConvention;
26646}
26647unsafe extern "C" {
26648    pub fn BNRegisterPlatformCallingConvention(
26649        platform: *mut BNPlatform,
26650        cc: *mut BNCallingConvention,
26651    );
26652}
26653unsafe extern "C" {
26654    pub fn BNRegisterPlatformDefaultCallingConvention(
26655        platform: *mut BNPlatform,
26656        cc: *mut BNCallingConvention,
26657    );
26658}
26659unsafe extern "C" {
26660    pub fn BNRegisterPlatformCdeclCallingConvention(
26661        platform: *mut BNPlatform,
26662        cc: *mut BNCallingConvention,
26663    );
26664}
26665unsafe extern "C" {
26666    pub fn BNRegisterPlatformStdcallCallingConvention(
26667        platform: *mut BNPlatform,
26668        cc: *mut BNCallingConvention,
26669    );
26670}
26671unsafe extern "C" {
26672    pub fn BNRegisterPlatformFastcallCallingConvention(
26673        platform: *mut BNPlatform,
26674        cc: *mut BNCallingConvention,
26675    );
26676}
26677unsafe extern "C" {
26678    pub fn BNSetPlatformSystemCallConvention(
26679        platform: *mut BNPlatform,
26680        cc: *mut BNCallingConvention,
26681    );
26682}
26683unsafe extern "C" {
26684    pub fn BNGetPlatformGlobalRegisters(platform: *mut BNPlatform, count: *mut usize) -> *mut u32;
26685}
26686unsafe extern "C" {
26687    pub fn BNGetPlatformGlobalRegisterType(platform: *mut BNPlatform, reg: u32) -> *mut BNType;
26688}
26689unsafe extern "C" {
26690    pub fn BNGetPlatformAddressSize(platform: *mut BNPlatform) -> usize;
26691}
26692unsafe extern "C" {
26693    pub fn BNPlatformAdjustTypeParserInput(
26694        platform: *mut BNPlatform,
26695        parser: *mut BNTypeParser,
26696        argumentsIn: *const *const ::std::os::raw::c_char,
26697        argumentsLenIn: usize,
26698        sourceFileNamesIn: *const *const ::std::os::raw::c_char,
26699        sourceFileValuesIn: *const *const ::std::os::raw::c_char,
26700        sourceFilesLenIn: usize,
26701        argumentsOut: *mut *mut *mut ::std::os::raw::c_char,
26702        argumentsLenOut: *mut usize,
26703        sourceFileNamesOut: *mut *mut *mut ::std::os::raw::c_char,
26704        sourceFileValuesOut: *mut *mut *mut ::std::os::raw::c_char,
26705        sourceFilesLenOut: *mut usize,
26706    );
26707}
26708unsafe extern "C" {
26709    pub fn BNGetArchitectureStandalonePlatform(arch: *mut BNArchitecture) -> *mut BNPlatform;
26710}
26711unsafe extern "C" {
26712    pub fn BNGetRelatedPlatform(
26713        platform: *mut BNPlatform,
26714        arch: *mut BNArchitecture,
26715    ) -> *mut BNPlatform;
26716}
26717unsafe extern "C" {
26718    pub fn BNAddRelatedPlatform(
26719        platform: *mut BNPlatform,
26720        arch: *mut BNArchitecture,
26721        related: *mut BNPlatform,
26722    );
26723}
26724unsafe extern "C" {
26725    pub fn BNGetRelatedPlatforms(
26726        platform: *mut BNPlatform,
26727        count: *mut usize,
26728    ) -> *mut *mut BNPlatform;
26729}
26730unsafe extern "C" {
26731    pub fn BNGetAssociatedPlatformByAddress(
26732        platform: *mut BNPlatform,
26733        addr: *mut u64,
26734    ) -> *mut BNPlatform;
26735}
26736unsafe extern "C" {
26737    pub fn BNGetPlatformTypeContainer(platform: *mut BNPlatform) -> *mut BNTypeContainer;
26738}
26739unsafe extern "C" {
26740    pub fn BNGetPlatformTypes(
26741        platform: *mut BNPlatform,
26742        count: *mut usize,
26743    ) -> *mut BNQualifiedNameAndType;
26744}
26745unsafe extern "C" {
26746    pub fn BNGetPlatformVariables(
26747        platform: *mut BNPlatform,
26748        count: *mut usize,
26749    ) -> *mut BNQualifiedNameAndType;
26750}
26751unsafe extern "C" {
26752    pub fn BNGetPlatformFunctions(
26753        platform: *mut BNPlatform,
26754        count: *mut usize,
26755    ) -> *mut BNQualifiedNameAndType;
26756}
26757unsafe extern "C" {
26758    pub fn BNGetPlatformSystemCalls(
26759        platform: *mut BNPlatform,
26760        count: *mut usize,
26761    ) -> *mut BNSystemCallInfo;
26762}
26763unsafe extern "C" {
26764    pub fn BNFreeSystemCallList(syscalls: *mut BNSystemCallInfo, count: usize);
26765}
26766unsafe extern "C" {
26767    pub fn BNGetPlatformTypeByName(
26768        platform: *mut BNPlatform,
26769        name: *mut BNQualifiedName,
26770    ) -> *mut BNType;
26771}
26772unsafe extern "C" {
26773    pub fn BNGetPlatformVariableByName(
26774        platform: *mut BNPlatform,
26775        name: *mut BNQualifiedName,
26776    ) -> *mut BNType;
26777}
26778unsafe extern "C" {
26779    pub fn BNGetPlatformFunctionByName(
26780        platform: *mut BNPlatform,
26781        name: *mut BNQualifiedName,
26782        exactMatch: bool,
26783    ) -> *mut BNType;
26784}
26785unsafe extern "C" {
26786    pub fn BNGetPlatformSystemCallName(
26787        platform: *mut BNPlatform,
26788        number: u32,
26789    ) -> *mut ::std::os::raw::c_char;
26790}
26791unsafe extern "C" {
26792    pub fn BNGetPlatformSystemCallType(platform: *mut BNPlatform, number: u32) -> *mut BNType;
26793}
26794unsafe extern "C" {
26795    pub fn BNGetPlatformTypeLibraries(
26796        platform: *mut BNPlatform,
26797        count: *mut usize,
26798    ) -> *mut *mut BNTypeLibrary;
26799}
26800unsafe extern "C" {
26801    pub fn BNGetPlatformTypeLibrariesByName(
26802        platform: *mut BNPlatform,
26803        depName: *const ::std::os::raw::c_char,
26804        count: *mut usize,
26805    ) -> *mut *mut BNTypeLibrary;
26806}
26807unsafe extern "C" {
26808    #[doc = " Download providers"]
26809    pub fn BNRegisterDownloadProvider(
26810        name: *const ::std::os::raw::c_char,
26811        callbacks: *mut BNDownloadProviderCallbacks,
26812    ) -> *mut BNDownloadProvider;
26813}
26814unsafe extern "C" {
26815    pub fn BNGetDownloadProviderList(count: *mut usize) -> *mut *mut BNDownloadProvider;
26816}
26817unsafe extern "C" {
26818    pub fn BNFreeDownloadProviderList(providers: *mut *mut BNDownloadProvider);
26819}
26820unsafe extern "C" {
26821    pub fn BNGetDownloadProviderByName(
26822        name: *const ::std::os::raw::c_char,
26823    ) -> *mut BNDownloadProvider;
26824}
26825unsafe extern "C" {
26826    pub fn BNGetDownloadProviderName(
26827        provider: *mut BNDownloadProvider,
26828    ) -> *mut ::std::os::raw::c_char;
26829}
26830unsafe extern "C" {
26831    pub fn BNCreateDownloadProviderInstance(
26832        provider: *mut BNDownloadProvider,
26833    ) -> *mut BNDownloadInstance;
26834}
26835unsafe extern "C" {
26836    pub fn BNInitDownloadInstance(
26837        provider: *mut BNDownloadProvider,
26838        callbacks: *mut BNDownloadInstanceCallbacks,
26839    ) -> *mut BNDownloadInstance;
26840}
26841unsafe extern "C" {
26842    pub fn BNNewDownloadInstanceReference(
26843        instance: *mut BNDownloadInstance,
26844    ) -> *mut BNDownloadInstance;
26845}
26846unsafe extern "C" {
26847    pub fn BNFreeDownloadInstance(instance: *mut BNDownloadInstance);
26848}
26849unsafe extern "C" {
26850    pub fn BNFreeDownloadInstanceResponse(response: *mut BNDownloadInstanceResponse);
26851}
26852unsafe extern "C" {
26853    pub fn BNPerformDownloadRequest(
26854        instance: *mut BNDownloadInstance,
26855        url: *const ::std::os::raw::c_char,
26856        callbacks: *mut BNDownloadInstanceOutputCallbacks,
26857    ) -> ::std::os::raw::c_int;
26858}
26859unsafe extern "C" {
26860    pub fn BNPerformCustomRequest(
26861        instance: *mut BNDownloadInstance,
26862        method: *const ::std::os::raw::c_char,
26863        url: *const ::std::os::raw::c_char,
26864        headerCount: u64,
26865        headerKeys: *const *const ::std::os::raw::c_char,
26866        headerValues: *const *const ::std::os::raw::c_char,
26867        response: *mut *mut BNDownloadInstanceResponse,
26868        callbacks: *mut BNDownloadInstanceInputOutputCallbacks,
26869    ) -> ::std::os::raw::c_int;
26870}
26871unsafe extern "C" {
26872    pub fn BNReadDataForDownloadInstance(
26873        instance: *mut BNDownloadInstance,
26874        data: *mut u8,
26875        len: u64,
26876    ) -> i64;
26877}
26878unsafe extern "C" {
26879    pub fn BNWriteDataForDownloadInstance(
26880        instance: *mut BNDownloadInstance,
26881        data: *mut u8,
26882        len: u64,
26883    ) -> u64;
26884}
26885unsafe extern "C" {
26886    pub fn BNNotifyProgressForDownloadInstance(
26887        instance: *mut BNDownloadInstance,
26888        progress: u64,
26889        total: u64,
26890    ) -> bool;
26891}
26892unsafe extern "C" {
26893    pub fn BNGetErrorForDownloadInstance(
26894        instance: *mut BNDownloadInstance,
26895    ) -> *mut ::std::os::raw::c_char;
26896}
26897unsafe extern "C" {
26898    pub fn BNSetErrorForDownloadInstance(
26899        instance: *mut BNDownloadInstance,
26900        error: *const ::std::os::raw::c_char,
26901    );
26902}
26903unsafe extern "C" {
26904    #[doc = " Websocket providers"]
26905    pub fn BNRegisterWebsocketProvider(
26906        name: *const ::std::os::raw::c_char,
26907        callbacks: *mut BNWebsocketProviderCallbacks,
26908    ) -> *mut BNWebsocketProvider;
26909}
26910unsafe extern "C" {
26911    pub fn BNGetWebsocketProviderList(count: *mut usize) -> *mut *mut BNWebsocketProvider;
26912}
26913unsafe extern "C" {
26914    pub fn BNFreeWebsocketProviderList(providers: *mut *mut BNWebsocketProvider);
26915}
26916unsafe extern "C" {
26917    pub fn BNGetWebsocketProviderByName(
26918        name: *const ::std::os::raw::c_char,
26919    ) -> *mut BNWebsocketProvider;
26920}
26921unsafe extern "C" {
26922    pub fn BNGetWebsocketProviderName(
26923        provider: *mut BNWebsocketProvider,
26924    ) -> *mut ::std::os::raw::c_char;
26925}
26926unsafe extern "C" {
26927    pub fn BNCreateWebsocketProviderClient(
26928        provider: *mut BNWebsocketProvider,
26929    ) -> *mut BNWebsocketClient;
26930}
26931unsafe extern "C" {
26932    pub fn BNInitWebsocketClient(
26933        provider: *mut BNWebsocketProvider,
26934        callbacks: *mut BNWebsocketClientCallbacks,
26935    ) -> *mut BNWebsocketClient;
26936}
26937unsafe extern "C" {
26938    pub fn BNNewWebsocketClientReference(client: *mut BNWebsocketClient) -> *mut BNWebsocketClient;
26939}
26940unsafe extern "C" {
26941    pub fn BNFreeWebsocketClient(client: *mut BNWebsocketClient);
26942}
26943unsafe extern "C" {
26944    pub fn BNConnectWebsocketClient(
26945        client: *mut BNWebsocketClient,
26946        url: *const ::std::os::raw::c_char,
26947        headerCount: u64,
26948        headerKeys: *const *const ::std::os::raw::c_char,
26949        headerValues: *const *const ::std::os::raw::c_char,
26950        callbacks: *mut BNWebsocketClientOutputCallbacks,
26951    ) -> bool;
26952}
26953unsafe extern "C" {
26954    pub fn BNNotifyWebsocketClientConnect(client: *mut BNWebsocketClient) -> bool;
26955}
26956unsafe extern "C" {
26957    pub fn BNNotifyWebsocketClientDisconnect(client: *mut BNWebsocketClient);
26958}
26959unsafe extern "C" {
26960    pub fn BNNotifyWebsocketClientError(
26961        client: *mut BNWebsocketClient,
26962        msg: *const ::std::os::raw::c_char,
26963    );
26964}
26965unsafe extern "C" {
26966    pub fn BNNotifyWebsocketClientReadData(
26967        client: *mut BNWebsocketClient,
26968        data: *mut u8,
26969        len: u64,
26970    ) -> bool;
26971}
26972unsafe extern "C" {
26973    pub fn BNWriteWebsocketClientData(
26974        client: *mut BNWebsocketClient,
26975        data: *const u8,
26976        len: u64,
26977    ) -> u64;
26978}
26979unsafe extern "C" {
26980    pub fn BNDisconnectWebsocketClient(client: *mut BNWebsocketClient) -> bool;
26981}
26982unsafe extern "C" {
26983    #[doc = " Scripting providers"]
26984    pub fn BNRegisterScriptingProvider(
26985        name: *const ::std::os::raw::c_char,
26986        apiName: *const ::std::os::raw::c_char,
26987        callbacks: *mut BNScriptingProviderCallbacks,
26988    ) -> *mut BNScriptingProvider;
26989}
26990unsafe extern "C" {
26991    pub fn BNGetScriptingProviderList(count: *mut usize) -> *mut *mut BNScriptingProvider;
26992}
26993unsafe extern "C" {
26994    pub fn BNFreeScriptingProviderList(providers: *mut *mut BNScriptingProvider);
26995}
26996unsafe extern "C" {
26997    pub fn BNGetScriptingProviderByName(
26998        name: *const ::std::os::raw::c_char,
26999    ) -> *mut BNScriptingProvider;
27000}
27001unsafe extern "C" {
27002    pub fn BNGetScriptingProviderByAPIName(
27003        name: *const ::std::os::raw::c_char,
27004    ) -> *mut BNScriptingProvider;
27005}
27006unsafe extern "C" {
27007    pub fn BNGetScriptingProviderName(
27008        provider: *mut BNScriptingProvider,
27009    ) -> *mut ::std::os::raw::c_char;
27010}
27011unsafe extern "C" {
27012    pub fn BNGetScriptingProviderAPIName(
27013        provider: *mut BNScriptingProvider,
27014    ) -> *mut ::std::os::raw::c_char;
27015}
27016unsafe extern "C" {
27017    pub fn BNCreateScriptingProviderInstance(
27018        provider: *mut BNScriptingProvider,
27019    ) -> *mut BNScriptingInstance;
27020}
27021unsafe extern "C" {
27022    pub fn BNLoadScriptingProviderModule(
27023        provider: *mut BNScriptingProvider,
27024        repository: *const ::std::os::raw::c_char,
27025        module: *const ::std::os::raw::c_char,
27026        force: bool,
27027    ) -> bool;
27028}
27029unsafe extern "C" {
27030    pub fn BNInstallScriptingProviderModules(
27031        provider: *mut BNScriptingProvider,
27032        modules: *const ::std::os::raw::c_char,
27033    ) -> bool;
27034}
27035unsafe extern "C" {
27036    pub fn BNIsScriptingProviderModuleInstalled(
27037        provider: *mut BNScriptingProvider,
27038        modules: *const ::std::os::raw::c_char,
27039    ) -> bool;
27040}
27041unsafe extern "C" {
27042    pub fn BNSetScriptingProviderModuleInstalledCallback(
27043        provider: *mut BNScriptingProvider,
27044        callbacks: *mut BNScriptingProviderModuleInstalledCallbacks,
27045    );
27046}
27047unsafe extern "C" {
27048    pub fn BNSetScriptingProviderInstallModulesWithExclusionsCallback(
27049        provider: *mut BNScriptingProvider,
27050        callbacks: *mut BNScriptingProviderInstallModulesWithExclusionsCallbacks,
27051    );
27052}
27053unsafe extern "C" {
27054    pub fn BNSetScriptingProviderDependencyConflictCallback(
27055        provider: *mut BNScriptingProvider,
27056        callbacks: *mut BNScriptingProviderDependencyConflictCallbacks,
27057    );
27058}
27059unsafe extern "C" {
27060    pub fn BNSetPluginDependencyStartupCallback(callbacks: *mut BNPluginDependencyStartupCallbacks);
27061}
27062unsafe extern "C" {
27063    pub fn BNSetPluginDependencyResolutionCallback(
27064        callbacks: *mut BNPluginDependencyResolutionCallbacks,
27065    );
27066}
27067unsafe extern "C" {
27068    pub fn BNInitScriptingInstance(
27069        provider: *mut BNScriptingProvider,
27070        callbacks: *mut BNScriptingInstanceCallbacks,
27071    ) -> *mut BNScriptingInstance;
27072}
27073unsafe extern "C" {
27074    pub fn BNNewScriptingInstanceReference(
27075        instance: *mut BNScriptingInstance,
27076    ) -> *mut BNScriptingInstance;
27077}
27078unsafe extern "C" {
27079    pub fn BNFreeScriptingInstance(instance: *mut BNScriptingInstance);
27080}
27081unsafe extern "C" {
27082    pub fn BNNotifyOutputForScriptingInstance(
27083        instance: *mut BNScriptingInstance,
27084        text: *const ::std::os::raw::c_char,
27085    );
27086}
27087unsafe extern "C" {
27088    pub fn BNNotifyWarningForScriptingInstance(
27089        instance: *mut BNScriptingInstance,
27090        text: *const ::std::os::raw::c_char,
27091    );
27092}
27093unsafe extern "C" {
27094    pub fn BNNotifyErrorForScriptingInstance(
27095        instance: *mut BNScriptingInstance,
27096        text: *const ::std::os::raw::c_char,
27097    );
27098}
27099unsafe extern "C" {
27100    pub fn BNNotifyInputReadyStateForScriptingInstance(
27101        instance: *mut BNScriptingInstance,
27102        state: BNScriptingProviderInputReadyState,
27103    );
27104}
27105unsafe extern "C" {
27106    pub fn BNRegisterScriptingInstanceOutputListener(
27107        instance: *mut BNScriptingInstance,
27108        callbacks: *mut BNScriptingOutputListener,
27109    );
27110}
27111unsafe extern "C" {
27112    pub fn BNUnregisterScriptingInstanceOutputListener(
27113        instance: *mut BNScriptingInstance,
27114        callbacks: *mut BNScriptingOutputListener,
27115    );
27116}
27117unsafe extern "C" {
27118    pub fn BNGetScriptingInstanceDelimiters(
27119        instance: *mut BNScriptingInstance,
27120    ) -> *mut ::std::os::raw::c_char;
27121}
27122unsafe extern "C" {
27123    pub fn BNSetScriptingInstanceDelimiters(
27124        instance: *mut BNScriptingInstance,
27125        delimiters: *const ::std::os::raw::c_char,
27126    );
27127}
27128unsafe extern "C" {
27129    pub fn BNGetScriptingInstanceInputReadyState(
27130        instance: *mut BNScriptingInstance,
27131    ) -> BNScriptingProviderInputReadyState;
27132}
27133unsafe extern "C" {
27134    pub fn BNExecuteScriptInput(
27135        instance: *mut BNScriptingInstance,
27136        input: *const ::std::os::raw::c_char,
27137    ) -> BNScriptingProviderExecuteResult;
27138}
27139unsafe extern "C" {
27140    pub fn BNExecuteScriptInputFromFilename(
27141        instance: *mut BNScriptingInstance,
27142        filename: *const ::std::os::raw::c_char,
27143    ) -> BNScriptingProviderExecuteResult;
27144}
27145unsafe extern "C" {
27146    pub fn BNCancelScriptInput(instance: *mut BNScriptingInstance);
27147}
27148unsafe extern "C" {
27149    pub fn BNScriptingInstanceReleaseBinaryView(
27150        instance: *mut BNScriptingInstance,
27151        view: *mut BNBinaryView,
27152    );
27153}
27154unsafe extern "C" {
27155    pub fn BNSetScriptingInstanceCurrentBinaryView(
27156        instance: *mut BNScriptingInstance,
27157        view: *mut BNBinaryView,
27158    );
27159}
27160unsafe extern "C" {
27161    pub fn BNSetScriptingInstanceCurrentFunction(
27162        instance: *mut BNScriptingInstance,
27163        func: *mut BNFunction,
27164    );
27165}
27166unsafe extern "C" {
27167    pub fn BNSetScriptingInstanceCurrentBasicBlock(
27168        instance: *mut BNScriptingInstance,
27169        block: *mut BNBasicBlock,
27170    );
27171}
27172unsafe extern "C" {
27173    pub fn BNSetScriptingInstanceCurrentAddress(instance: *mut BNScriptingInstance, addr: u64);
27174}
27175unsafe extern "C" {
27176    pub fn BNSetScriptingInstanceCurrentSelection(
27177        instance: *mut BNScriptingInstance,
27178        begin: u64,
27179        end: u64,
27180    );
27181}
27182unsafe extern "C" {
27183    pub fn BNScriptingInstanceCompleteInput(
27184        instance: *mut BNScriptingInstance,
27185        text: *const ::std::os::raw::c_char,
27186        state: u64,
27187    ) -> *mut ::std::os::raw::c_char;
27188}
27189unsafe extern "C" {
27190    pub fn BNScriptingInstanceCanCompleteArguments(
27191        instance: *mut BNScriptingInstance,
27192        text: *const ::std::os::raw::c_char,
27193    ) -> bool;
27194}
27195unsafe extern "C" {
27196    pub fn BNScriptingInstanceCompleteArguments(
27197        instance: *mut BNScriptingInstance,
27198        text: *const ::std::os::raw::c_char,
27199        argumentStart: *mut u64,
27200    ) -> *mut ::std::os::raw::c_char;
27201}
27202unsafe extern "C" {
27203    pub fn BNStopScriptingInstance(instance: *mut BNScriptingInstance);
27204}
27205unsafe extern "C" {
27206    pub fn BNFuzzyMatchSingle(
27207        target: *const ::std::os::raw::c_char,
27208        query: *const ::std::os::raw::c_char,
27209    ) -> usize;
27210}
27211unsafe extern "C" {
27212    #[doc = " Main thread actions"]
27213    pub fn BNRegisterMainThread(callbacks: *mut BNMainThreadCallbacks);
27214}
27215unsafe extern "C" {
27216    pub fn BNNewMainThreadActionReference(
27217        action: *mut BNMainThreadAction,
27218    ) -> *mut BNMainThreadAction;
27219}
27220unsafe extern "C" {
27221    pub fn BNFreeMainThreadAction(action: *mut BNMainThreadAction);
27222}
27223unsafe extern "C" {
27224    pub fn BNExecuteMainThreadAction(action: *mut BNMainThreadAction);
27225}
27226unsafe extern "C" {
27227    pub fn BNIsMainThreadActionDone(action: *mut BNMainThreadAction) -> bool;
27228}
27229unsafe extern "C" {
27230    pub fn BNWaitForMainThreadAction(action: *mut BNMainThreadAction);
27231}
27232unsafe extern "C" {
27233    pub fn BNExecuteOnMainThread(
27234        ctxt: *mut ::std::os::raw::c_void,
27235        func: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
27236    ) -> *mut BNMainThreadAction;
27237}
27238unsafe extern "C" {
27239    pub fn BNExecuteOnMainThreadAndWait(
27240        ctxt: *mut ::std::os::raw::c_void,
27241        func: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
27242    );
27243}
27244unsafe extern "C" {
27245    pub fn BNIsMainThread() -> bool;
27246}
27247unsafe extern "C" {
27248    #[doc = " Worker thread queue management"]
27249    pub fn BNWorkerEnqueue(
27250        ctxt: *mut ::std::os::raw::c_void,
27251        action: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
27252    );
27253}
27254unsafe extern "C" {
27255    pub fn BNWorkerEnqueueNamed(
27256        ctxt: *mut ::std::os::raw::c_void,
27257        action: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
27258        name: *const ::std::os::raw::c_char,
27259    );
27260}
27261unsafe extern "C" {
27262    pub fn BNWorkerPriorityEnqueue(
27263        ctxt: *mut ::std::os::raw::c_void,
27264        action: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
27265    );
27266}
27267unsafe extern "C" {
27268    pub fn BNWorkerPriorityEnqueueNamed(
27269        ctxt: *mut ::std::os::raw::c_void,
27270        action: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
27271        name: *const ::std::os::raw::c_char,
27272    );
27273}
27274unsafe extern "C" {
27275    pub fn BNWorkerInteractiveEnqueue(
27276        ctxt: *mut ::std::os::raw::c_void,
27277        action: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
27278    );
27279}
27280unsafe extern "C" {
27281    pub fn BNWorkerInteractiveEnqueueNamed(
27282        ctxt: *mut ::std::os::raw::c_void,
27283        action: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
27284        name: *const ::std::os::raw::c_char,
27285    );
27286}
27287unsafe extern "C" {
27288    pub fn BNGetWorkerThreadCount() -> usize;
27289}
27290unsafe extern "C" {
27291    pub fn BNSetWorkerThreadCount(count: usize);
27292}
27293unsafe extern "C" {
27294    pub fn BNSetThreadName(name: *const ::std::os::raw::c_char);
27295}
27296unsafe extern "C" {
27297    #[doc = " Background task progress reporting"]
27298    pub fn BNBeginBackgroundTask(
27299        initialText: *const ::std::os::raw::c_char,
27300        canCancel: bool,
27301    ) -> *mut BNBackgroundTask;
27302}
27303unsafe extern "C" {
27304    pub fn BNFinishBackgroundTask(task: *mut BNBackgroundTask);
27305}
27306unsafe extern "C" {
27307    pub fn BNSetBackgroundTaskProgressText(
27308        task: *mut BNBackgroundTask,
27309        text: *const ::std::os::raw::c_char,
27310    );
27311}
27312unsafe extern "C" {
27313    pub fn BNIsBackgroundTaskCancelled(task: *mut BNBackgroundTask) -> bool;
27314}
27315unsafe extern "C" {
27316    pub fn BNGetRunningBackgroundTasks(count: *mut usize) -> *mut *mut BNBackgroundTask;
27317}
27318unsafe extern "C" {
27319    pub fn BNNewBackgroundTaskReference(task: *mut BNBackgroundTask) -> *mut BNBackgroundTask;
27320}
27321unsafe extern "C" {
27322    pub fn BNFreeBackgroundTask(task: *mut BNBackgroundTask);
27323}
27324unsafe extern "C" {
27325    pub fn BNFreeBackgroundTaskList(tasks: *mut *mut BNBackgroundTask, count: usize);
27326}
27327unsafe extern "C" {
27328    pub fn BNGetBackgroundTaskProgressText(
27329        task: *mut BNBackgroundTask,
27330    ) -> *mut ::std::os::raw::c_char;
27331}
27332unsafe extern "C" {
27333    pub fn BNGetBackgroundTaskRuntimeSeconds(task: *mut BNBackgroundTask) -> u64;
27334}
27335unsafe extern "C" {
27336    pub fn BNCanCancelBackgroundTask(task: *mut BNBackgroundTask) -> bool;
27337}
27338unsafe extern "C" {
27339    pub fn BNCancelBackgroundTask(task: *mut BNBackgroundTask);
27340}
27341unsafe extern "C" {
27342    pub fn BNIsBackgroundTaskFinished(task: *mut BNBackgroundTask) -> bool;
27343}
27344unsafe extern "C" {
27345    #[doc = " Interaction APIs"]
27346    pub fn BNRegisterInteractionHandler(callbacks: *mut BNInteractionHandlerCallbacks);
27347}
27348unsafe extern "C" {
27349    pub fn BNMarkdownToHTML(contents: *const ::std::os::raw::c_char)
27350    -> *mut ::std::os::raw::c_char;
27351}
27352unsafe extern "C" {
27353    pub fn BNShowPlainTextReport(
27354        view: *mut BNBinaryView,
27355        title: *const ::std::os::raw::c_char,
27356        contents: *const ::std::os::raw::c_char,
27357    );
27358}
27359unsafe extern "C" {
27360    pub fn BNShowMarkdownReport(
27361        view: *mut BNBinaryView,
27362        title: *const ::std::os::raw::c_char,
27363        contents: *const ::std::os::raw::c_char,
27364        plaintext: *const ::std::os::raw::c_char,
27365    );
27366}
27367unsafe extern "C" {
27368    pub fn BNShowHTMLReport(
27369        view: *mut BNBinaryView,
27370        title: *const ::std::os::raw::c_char,
27371        contents: *const ::std::os::raw::c_char,
27372        plaintext: *const ::std::os::raw::c_char,
27373    );
27374}
27375unsafe extern "C" {
27376    pub fn BNShowGraphReport(
27377        view: *mut BNBinaryView,
27378        title: *const ::std::os::raw::c_char,
27379        graph: *mut BNFlowGraph,
27380    );
27381}
27382unsafe extern "C" {
27383    pub fn BNShowReportCollection(
27384        title: *const ::std::os::raw::c_char,
27385        reports: *mut BNReportCollection,
27386    );
27387}
27388unsafe extern "C" {
27389    pub fn BNGetTextLineInput(
27390        result: *mut *mut ::std::os::raw::c_char,
27391        prompt: *const ::std::os::raw::c_char,
27392        title: *const ::std::os::raw::c_char,
27393    ) -> bool;
27394}
27395unsafe extern "C" {
27396    pub fn BNGetIntegerInput(
27397        result: *mut i64,
27398        prompt: *const ::std::os::raw::c_char,
27399        title: *const ::std::os::raw::c_char,
27400    ) -> bool;
27401}
27402unsafe extern "C" {
27403    pub fn BNGetAddressInput(
27404        result: *mut u64,
27405        prompt: *const ::std::os::raw::c_char,
27406        title: *const ::std::os::raw::c_char,
27407        view: *mut BNBinaryView,
27408        currentAddr: u64,
27409    ) -> bool;
27410}
27411unsafe extern "C" {
27412    pub fn BNGetChoiceInput(
27413        result: *mut usize,
27414        prompt: *const ::std::os::raw::c_char,
27415        title: *const ::std::os::raw::c_char,
27416        choices: *mut *const ::std::os::raw::c_char,
27417        count: usize,
27418    ) -> bool;
27419}
27420unsafe extern "C" {
27421    pub fn BNGetLargeChoiceInput(
27422        result: *mut usize,
27423        prompt: *const ::std::os::raw::c_char,
27424        title: *const ::std::os::raw::c_char,
27425        choices: *mut *const ::std::os::raw::c_char,
27426        count: usize,
27427    ) -> bool;
27428}
27429unsafe extern "C" {
27430    pub fn BNGetOpenFileNameInput(
27431        result: *mut *mut ::std::os::raw::c_char,
27432        prompt: *const ::std::os::raw::c_char,
27433        ext: *const ::std::os::raw::c_char,
27434    ) -> bool;
27435}
27436unsafe extern "C" {
27437    pub fn BNGetSaveFileNameInput(
27438        result: *mut *mut ::std::os::raw::c_char,
27439        prompt: *const ::std::os::raw::c_char,
27440        ext: *const ::std::os::raw::c_char,
27441        defaultName: *const ::std::os::raw::c_char,
27442    ) -> bool;
27443}
27444unsafe extern "C" {
27445    pub fn BNGetDirectoryNameInput(
27446        result: *mut *mut ::std::os::raw::c_char,
27447        prompt: *const ::std::os::raw::c_char,
27448        defaultName: *const ::std::os::raw::c_char,
27449    ) -> bool;
27450}
27451unsafe extern "C" {
27452    pub fn BNGetCheckboxInput(
27453        result: *mut i64,
27454        prompt: *const ::std::os::raw::c_char,
27455        title: *const ::std::os::raw::c_char,
27456        defaultChoice: *const i64,
27457    ) -> bool;
27458}
27459unsafe extern "C" {
27460    pub fn BNGetFormInput(
27461        fields: *mut BNFormInputField,
27462        count: usize,
27463        title: *const ::std::os::raw::c_char,
27464    ) -> bool;
27465}
27466unsafe extern "C" {
27467    pub fn BNFreeFormInputResults(fields: *mut BNFormInputField, count: usize);
27468}
27469unsafe extern "C" {
27470    pub fn BNShowMessageBox(
27471        title: *const ::std::os::raw::c_char,
27472        text: *const ::std::os::raw::c_char,
27473        buttons: BNMessageBoxButtonSet,
27474        icon: BNMessageBoxIcon,
27475    ) -> BNMessageBoxButtonResult;
27476}
27477unsafe extern "C" {
27478    pub fn BNOpenUrl(url: *const ::std::os::raw::c_char) -> bool;
27479}
27480unsafe extern "C" {
27481    pub fn BNRunProgressDialog(
27482        title: *const ::std::os::raw::c_char,
27483        canCancel: bool,
27484        task: ::std::option::Option<
27485            unsafe extern "C" fn(
27486                taskCtxt: *mut ::std::os::raw::c_void,
27487                progress: BNProgressFunction,
27488                progressCtxt: *mut ::std::os::raw::c_void,
27489            ),
27490        >,
27491        taskCtxt: *mut ::std::os::raw::c_void,
27492    ) -> bool;
27493}
27494unsafe extern "C" {
27495    pub fn BNCreateReportCollection() -> *mut BNReportCollection;
27496}
27497unsafe extern "C" {
27498    pub fn BNNewReportCollectionReference(
27499        reports: *mut BNReportCollection,
27500    ) -> *mut BNReportCollection;
27501}
27502unsafe extern "C" {
27503    pub fn BNFreeReportCollection(reports: *mut BNReportCollection);
27504}
27505unsafe extern "C" {
27506    pub fn BNGetReportCollectionCount(reports: *mut BNReportCollection) -> usize;
27507}
27508unsafe extern "C" {
27509    pub fn BNGetReportType(reports: *mut BNReportCollection, i: usize) -> BNReportType;
27510}
27511unsafe extern "C" {
27512    pub fn BNGetReportView(reports: *mut BNReportCollection, i: usize) -> *mut BNBinaryView;
27513}
27514unsafe extern "C" {
27515    pub fn BNGetReportTitle(
27516        reports: *mut BNReportCollection,
27517        i: usize,
27518    ) -> *mut ::std::os::raw::c_char;
27519}
27520unsafe extern "C" {
27521    pub fn BNGetReportContents(
27522        reports: *mut BNReportCollection,
27523        i: usize,
27524    ) -> *mut ::std::os::raw::c_char;
27525}
27526unsafe extern "C" {
27527    pub fn BNGetReportPlainText(
27528        reports: *mut BNReportCollection,
27529        i: usize,
27530    ) -> *mut ::std::os::raw::c_char;
27531}
27532unsafe extern "C" {
27533    pub fn BNGetReportFlowGraph(reports: *mut BNReportCollection, i: usize) -> *mut BNFlowGraph;
27534}
27535unsafe extern "C" {
27536    pub fn BNAddPlainTextReportToCollection(
27537        reports: *mut BNReportCollection,
27538        view: *mut BNBinaryView,
27539        title: *const ::std::os::raw::c_char,
27540        contents: *const ::std::os::raw::c_char,
27541    );
27542}
27543unsafe extern "C" {
27544    pub fn BNAddMarkdownReportToCollection(
27545        reports: *mut BNReportCollection,
27546        view: *mut BNBinaryView,
27547        title: *const ::std::os::raw::c_char,
27548        contents: *const ::std::os::raw::c_char,
27549        plaintext: *const ::std::os::raw::c_char,
27550    );
27551}
27552unsafe extern "C" {
27553    pub fn BNAddHTMLReportToCollection(
27554        reports: *mut BNReportCollection,
27555        view: *mut BNBinaryView,
27556        title: *const ::std::os::raw::c_char,
27557        contents: *const ::std::os::raw::c_char,
27558        plaintext: *const ::std::os::raw::c_char,
27559    );
27560}
27561unsafe extern "C" {
27562    pub fn BNAddGraphReportToCollection(
27563        reports: *mut BNReportCollection,
27564        view: *mut BNBinaryView,
27565        title: *const ::std::os::raw::c_char,
27566        graph: *mut BNFlowGraph,
27567    );
27568}
27569unsafe extern "C" {
27570    pub fn BNUpdateReportFlowGraph(
27571        reports: *mut BNReportCollection,
27572        i: usize,
27573        graph: *mut BNFlowGraph,
27574    );
27575}
27576unsafe extern "C" {
27577    #[doc = " Demangler"]
27578    pub fn BNGetDefaultDemanglerConfig() -> BNDemanglerConfig;
27579}
27580unsafe extern "C" {
27581    pub fn BNGetDemanglerConfigForPlatform(
27582        platform: *mut BNPlatform,
27583        simplifyTemplates: bool,
27584    ) -> BNDemanglerConfig;
27585}
27586unsafe extern "C" {
27587    pub fn BNGetDemanglerConfigForBinaryView(view: *mut BNBinaryView) -> BNDemanglerConfig;
27588}
27589unsafe extern "C" {
27590    pub fn BNDemangle(
27591        name: *const ::std::os::raw::c_char,
27592        config: *const BNDemanglerConfig,
27593        result: *mut BNDemanglerResult,
27594    ) -> bool;
27595}
27596unsafe extern "C" {
27597    pub fn BNDemangleWithDemangler(
27598        demangler: *const BNDemangler,
27599        name: *const ::std::os::raw::c_char,
27600        config: *const BNDemanglerConfig,
27601        result: *mut BNDemanglerResult,
27602    ) -> bool;
27603}
27604unsafe extern "C" {
27605    pub fn BNFreeDemanglerResult(result: *mut BNDemanglerResult);
27606}
27607unsafe extern "C" {
27608    pub fn BNSimplifyDemangledTemplateName(
27609        name: *const BNQualifiedName,
27610        result: *mut BNQualifiedName,
27611    ) -> bool;
27612}
27613unsafe extern "C" {
27614    pub fn BNRegisterDemangler(
27615        name: *const ::std::os::raw::c_char,
27616        callbacks: *const BNDemanglerCallbacks,
27617    ) -> *mut BNDemangler;
27618}
27619unsafe extern "C" {
27620    pub fn BNGetDemanglerList(count: *mut usize) -> *mut *mut BNDemangler;
27621}
27622unsafe extern "C" {
27623    pub fn BNFreeDemanglerList(demanglers: *mut *mut BNDemangler);
27624}
27625unsafe extern "C" {
27626    pub fn BNGetDemanglerByName(name: *const ::std::os::raw::c_char) -> *mut BNDemangler;
27627}
27628unsafe extern "C" {
27629    pub fn BNGetMSVCDemangler() -> *mut BNDemangler;
27630}
27631unsafe extern "C" {
27632    pub fn BNGetGNU3Demangler() -> *mut BNDemangler;
27633}
27634unsafe extern "C" {
27635    pub fn BNGetLLVMDemangler() -> *mut BNDemangler;
27636}
27637unsafe extern "C" {
27638    pub fn BNGetDemanglerName(demangler: *const BNDemangler) -> *mut ::std::os::raw::c_char;
27639}
27640unsafe extern "C" {
27641    pub fn BNPromoteDemangler(demangler: *const BNDemangler) -> bool;
27642}
27643unsafe extern "C" {
27644    pub fn BNIsDemanglerMangledName(
27645        demangler: *const BNDemangler,
27646        name: *const ::std::os::raw::c_char,
27647    ) -> bool;
27648}
27649unsafe extern "C" {
27650    #[doc = " Plugin repository APIs"]
27651    pub fn BNPluginGetApis(p: *mut BNPlugin, count: *mut usize)
27652    -> *mut *mut ::std::os::raw::c_char;
27653}
27654unsafe extern "C" {
27655    pub fn BNPluginGetAuthor(p: *mut BNPlugin) -> *const ::std::os::raw::c_char;
27656}
27657unsafe extern "C" {
27658    pub fn BNPluginGetDescription(p: *mut BNPlugin) -> *const ::std::os::raw::c_char;
27659}
27660unsafe extern "C" {
27661    pub fn BNPluginGetLicenseText(p: *mut BNPlugin) -> *const ::std::os::raw::c_char;
27662}
27663unsafe extern "C" {
27664    pub fn BNPluginGetMinimumVersionInfo(p: *mut BNPlugin) -> BNVersionInfo;
27665}
27666unsafe extern "C" {
27667    pub fn BNPluginGetMaximumVersionInfo(p: *mut BNPlugin) -> BNVersionInfo;
27668}
27669unsafe extern "C" {
27670    pub fn BNParseVersionString(v: *const ::std::os::raw::c_char) -> BNVersionInfo;
27671}
27672unsafe extern "C" {
27673    pub fn BNVersionLessThan(smaller: BNVersionInfo, larger: BNVersionInfo) -> bool;
27674}
27675unsafe extern "C" {
27676    pub fn BNPluginVersionIDLessThan(
27677        p: *mut BNPlugin,
27678        smaller: *const ::std::os::raw::c_char,
27679        larger: *const ::std::os::raw::c_char,
27680    ) -> bool;
27681}
27682unsafe extern "C" {
27683    pub fn BNPluginGetName(p: *mut BNPlugin) -> *const ::std::os::raw::c_char;
27684}
27685unsafe extern "C" {
27686    pub fn BNPluginGetProjectUrl(p: *mut BNPlugin) -> *const ::std::os::raw::c_char;
27687}
27688unsafe extern "C" {
27689    pub fn BNPluginGetPackageUrl(p: *mut BNPlugin) -> *const ::std::os::raw::c_char;
27690}
27691unsafe extern "C" {
27692    pub fn BNPluginGetAuthorUrl(p: *mut BNPlugin) -> *const ::std::os::raw::c_char;
27693}
27694unsafe extern "C" {
27695    pub fn BNPluginGetVersions(p: *mut BNPlugin, count: *mut usize) -> *mut BNPluginVersion;
27696}
27697unsafe extern "C" {
27698    pub fn BNFreePluginVersions(r: *mut BNPluginVersion, count: usize);
27699}
27700unsafe extern "C" {
27701    pub fn BNPluginGetCurrentVersionID(p: *mut BNPlugin) -> *const ::std::os::raw::c_char;
27702}
27703unsafe extern "C" {
27704    pub fn BNPluginGetLatestVersionID(p: *mut BNPlugin) -> *const ::std::os::raw::c_char;
27705}
27706unsafe extern "C" {
27707    pub fn BNPluginGetCurrentVersion(p: *mut BNPlugin) -> BNPluginVersion;
27708}
27709unsafe extern "C" {
27710    pub fn BNPluginFreeVersion(v: BNPluginVersion);
27711}
27712unsafe extern "C" {
27713    pub fn BNPluginGetCommit(p: *mut BNPlugin) -> *const ::std::os::raw::c_char;
27714}
27715unsafe extern "C" {
27716    pub fn BNPluginGetViewOnly(p: *mut BNPlugin) -> bool;
27717}
27718unsafe extern "C" {
27719    pub fn BNPluginGetIsPaid(p: *mut BNPlugin) -> bool;
27720}
27721unsafe extern "C" {
27722    pub fn BNFreePluginTypes(r: *mut BNPluginType);
27723}
27724unsafe extern "C" {
27725    pub fn BNNewPluginReference(r: *mut BNPlugin) -> *mut BNPlugin;
27726}
27727unsafe extern "C" {
27728    pub fn BNFreePlugin(plugin: *mut BNPlugin);
27729}
27730unsafe extern "C" {
27731    pub fn BNPluginGetPath(p: *mut BNPlugin) -> *const ::std::os::raw::c_char;
27732}
27733unsafe extern "C" {
27734    pub fn BNPluginGetSubdir(p: *mut BNPlugin) -> *const ::std::os::raw::c_char;
27735}
27736unsafe extern "C" {
27737    pub fn BNPluginGetDependencies(p: *mut BNPlugin) -> *const ::std::os::raw::c_char;
27738}
27739unsafe extern "C" {
27740    pub fn BNPluginGetDependenciesForVersion(
27741        p: *mut BNPlugin,
27742        versionID: *const ::std::os::raw::c_char,
27743    ) -> *const ::std::os::raw::c_char;
27744}
27745unsafe extern "C" {
27746    pub fn BNPluginGetDependencyConflicts(
27747        p: *mut BNPlugin,
27748        count: *mut usize,
27749    ) -> *mut BNPluginDependencyConflict;
27750}
27751unsafe extern "C" {
27752    pub fn BNPluginGetDependencyConflictsForVersion(
27753        p: *mut BNPlugin,
27754        versionID: *const ::std::os::raw::c_char,
27755        count: *mut usize,
27756    ) -> *mut BNPluginDependencyConflict;
27757}
27758unsafe extern "C" {
27759    pub fn BNFreePluginDependencyConflicts(
27760        conflicts: *mut BNPluginDependencyConflict,
27761        count: usize,
27762    );
27763}
27764unsafe extern "C" {
27765    pub fn BNPluginGetLongdescription(p: *mut BNPlugin) -> *const ::std::os::raw::c_char;
27766}
27767unsafe extern "C" {
27768    pub fn BNPluginGetLastUpdate(p: *mut BNPlugin) -> u64;
27769}
27770unsafe extern "C" {
27771    pub fn BNPluginIsInstalled(p: *mut BNPlugin) -> bool;
27772}
27773unsafe extern "C" {
27774    pub fn BNPluginIsListed(p: *mut BNPlugin) -> bool;
27775}
27776unsafe extern "C" {
27777    pub fn BNPluginIsDeprecated(p: *mut BNPlugin) -> bool;
27778}
27779unsafe extern "C" {
27780    pub fn BNPluginIsEnabled(p: *mut BNPlugin) -> bool;
27781}
27782unsafe extern "C" {
27783    pub fn BNPluginGetPluginStatus(p: *mut BNPlugin) -> BNPluginStatus;
27784}
27785unsafe extern "C" {
27786    pub fn BNPluginGetPluginTypes(p: *mut BNPlugin, count: *mut usize) -> *mut BNPluginType;
27787}
27788unsafe extern "C" {
27789    pub fn BNPluginEnable(p: *mut BNPlugin, force: bool) -> bool;
27790}
27791unsafe extern "C" {
27792    pub fn BNPluginDisable(p: *mut BNPlugin) -> bool;
27793}
27794unsafe extern "C" {
27795    pub fn BNPluginInstall(p: *mut BNPlugin, versionID: *const ::std::os::raw::c_char) -> bool;
27796}
27797unsafe extern "C" {
27798    pub fn BNPluginInstallDependencies(p: *mut BNPlugin) -> bool;
27799}
27800unsafe extern "C" {
27801    pub fn BNPluginInstallDependenciesForVersion(
27802        p: *mut BNPlugin,
27803        versionID: *const ::std::os::raw::c_char,
27804    ) -> bool;
27805}
27806unsafe extern "C" {
27807    pub fn BNPluginInstallDependenciesWithExclusions(
27808        p: *mut BNPlugin,
27809        excludedPackageNames: *const *const ::std::os::raw::c_char,
27810        excludedPackageNameCount: usize,
27811    ) -> bool;
27812}
27813unsafe extern "C" {
27814    pub fn BNPluginInstallDependenciesWithExclusionsForVersion(
27815        p: *mut BNPlugin,
27816        versionID: *const ::std::os::raw::c_char,
27817        excludedPackageNames: *const *const ::std::os::raw::c_char,
27818        excludedPackageNameCount: usize,
27819    ) -> bool;
27820}
27821unsafe extern "C" {
27822    pub fn BNPluginUninstall(p: *mut BNPlugin) -> bool;
27823}
27824unsafe extern "C" {
27825    pub fn BNPluginCancelUninstall(p: *mut BNPlugin) -> bool;
27826}
27827unsafe extern "C" {
27828    pub fn BNPluginUpdate(p: *mut BNPlugin, versionID: *const ::std::os::raw::c_char) -> bool;
27829}
27830unsafe extern "C" {
27831    pub fn BNPluginGetPlatforms(
27832        p: *mut BNPlugin,
27833        count: *mut usize,
27834    ) -> *mut *mut ::std::os::raw::c_char;
27835}
27836unsafe extern "C" {
27837    pub fn BNFreePluginPlatforms(platforms: *mut *mut ::std::os::raw::c_char, count: usize);
27838}
27839unsafe extern "C" {
27840    pub fn BNPluginGetRepository(p: *mut BNPlugin) -> *const ::std::os::raw::c_char;
27841}
27842unsafe extern "C" {
27843    pub fn BNPluginIsBeingDeleted(p: *mut BNPlugin) -> bool;
27844}
27845unsafe extern "C" {
27846    pub fn BNPluginIsBeingUpdated(p: *mut BNPlugin) -> bool;
27847}
27848unsafe extern "C" {
27849    pub fn BNPluginIsRunning(p: *mut BNPlugin) -> bool;
27850}
27851unsafe extern "C" {
27852    pub fn BNPluginIsUpdatePending(p: *mut BNPlugin) -> bool;
27853}
27854unsafe extern "C" {
27855    pub fn BNPluginIsDisablePending(p: *mut BNPlugin) -> bool;
27856}
27857unsafe extern "C" {
27858    pub fn BNPluginIsDeletePending(p: *mut BNPlugin) -> bool;
27859}
27860unsafe extern "C" {
27861    pub fn BNPluginIsUpdateAvailable(p: *mut BNPlugin) -> bool;
27862}
27863unsafe extern "C" {
27864    pub fn BNPluginAreDependenciesBeingInstalled(p: *mut BNPlugin) -> bool;
27865}
27866unsafe extern "C" {
27867    pub fn BNPluginGetProjectData(p: *mut BNPlugin) -> *mut ::std::os::raw::c_char;
27868}
27869unsafe extern "C" {
27870    pub fn BNPluginGetCurrentVersionCreationDate(p: *mut BNPlugin) -> *mut ::std::os::raw::c_char;
27871}
27872unsafe extern "C" {
27873    pub fn BNNewRepositoryReference(r: *mut BNRepository) -> *mut BNRepository;
27874}
27875unsafe extern "C" {
27876    pub fn BNFreeRepository(r: *mut BNRepository);
27877}
27878unsafe extern "C" {
27879    pub fn BNRepositoryGetUrl(r: *mut BNRepository) -> *mut ::std::os::raw::c_char;
27880}
27881unsafe extern "C" {
27882    pub fn BNRepositoryGetRepoPath(r: *mut BNRepository) -> *mut ::std::os::raw::c_char;
27883}
27884unsafe extern "C" {
27885    pub fn BNRepositoryGetPlugins(r: *mut BNRepository, count: *mut usize) -> *mut *mut BNPlugin;
27886}
27887unsafe extern "C" {
27888    pub fn BNFreeRepositoryPluginList(r: *mut *mut BNPlugin);
27889}
27890unsafe extern "C" {
27891    pub fn BNRepositoryFreePluginDirectoryList(
27892        list: *mut *mut ::std::os::raw::c_char,
27893        count: usize,
27894    );
27895}
27896unsafe extern "C" {
27897    pub fn BNRepositoryGetPluginByPath(
27898        r: *mut BNRepository,
27899        pluginPath: *const ::std::os::raw::c_char,
27900    ) -> *mut BNPlugin;
27901}
27902unsafe extern "C" {
27903    pub fn BNRepositoryGetPluginsPath(r: *mut BNRepository) -> *const ::std::os::raw::c_char;
27904}
27905unsafe extern "C" {
27906    pub fn BNRepositoryManagerCheckForUpdates() -> bool;
27907}
27908unsafe extern "C" {
27909    pub fn BNRepositoryManagerGetRepositories(count: *mut usize) -> *mut *mut BNRepository;
27910}
27911unsafe extern "C" {
27912    pub fn BNFreeRepositoryManagerRepositoriesList(r: *mut *mut BNRepository);
27913}
27914unsafe extern "C" {
27915    pub fn BNRepositoryManagerAddRepository(
27916        url: *const ::std::os::raw::c_char,
27917        repoPath: *const ::std::os::raw::c_char,
27918    ) -> bool;
27919}
27920unsafe extern "C" {
27921    pub fn BNRepositoryGetRepositoryByPath(
27922        repoPath: *const ::std::os::raw::c_char,
27923    ) -> *mut BNRepository;
27924}
27925unsafe extern "C" {
27926    pub fn BNRepositoryManagerGetDefaultRepository() -> *mut BNRepository;
27927}
27928unsafe extern "C" {
27929    #[doc = " Components"]
27930    pub fn BNNewComponentReference(component: *mut BNComponent) -> *mut BNComponent;
27931}
27932unsafe extern "C" {
27933    pub fn BNFreeComponent(component: *mut BNComponent);
27934}
27935unsafe extern "C" {
27936    pub fn BNComponentGetContainedFunctions(
27937        component: *mut BNComponent,
27938        count: *mut usize,
27939    ) -> *mut *mut BNFunction;
27940}
27941unsafe extern "C" {
27942    pub fn BNComponentGetContainedComponents(
27943        component: *mut BNComponent,
27944        count: *mut usize,
27945    ) -> *mut *mut BNComponent;
27946}
27947unsafe extern "C" {
27948    pub fn BNComponentGetContainedDataVariables(
27949        component: *mut BNComponent,
27950        count: *mut usize,
27951    ) -> *mut BNDataVariable;
27952}
27953unsafe extern "C" {
27954    pub fn BNComponentGetReferencedDataVariables(
27955        component: *mut BNComponent,
27956        count: *mut usize,
27957    ) -> *mut BNDataVariable;
27958}
27959unsafe extern "C" {
27960    pub fn BNComponentGetReferencedDataVariablesRecursive(
27961        component: *mut BNComponent,
27962        count: *mut usize,
27963    ) -> *mut BNDataVariable;
27964}
27965unsafe extern "C" {
27966    pub fn BNComponentGetReferencedTypes(
27967        component: *mut BNComponent,
27968        count: *mut usize,
27969    ) -> *mut *mut BNType;
27970}
27971unsafe extern "C" {
27972    pub fn BNComponentGetReferencedTypesRecursive(
27973        component: *mut BNComponent,
27974        count: *mut usize,
27975    ) -> *mut *mut BNType;
27976}
27977unsafe extern "C" {
27978    pub fn BNFreeComponents(components: *mut *mut BNComponent, count: usize);
27979}
27980unsafe extern "C" {
27981    pub fn BNComponentFreeReferencedTypes(types: *mut *mut BNType, count: usize);
27982}
27983unsafe extern "C" {
27984    pub fn BNComponentGetParent(component: *mut BNComponent) -> *mut BNComponent;
27985}
27986unsafe extern "C" {
27987    pub fn BNComponentContainsFunction(
27988        component: *mut BNComponent,
27989        function: *mut BNFunction,
27990    ) -> bool;
27991}
27992unsafe extern "C" {
27993    pub fn BNComponentContainsComponent(
27994        parent: *mut BNComponent,
27995        component: *mut BNComponent,
27996    ) -> bool;
27997}
27998unsafe extern "C" {
27999    pub fn BNComponentContainsDataVariable(component: *mut BNComponent, address: u64) -> bool;
28000}
28001unsafe extern "C" {
28002    pub fn BNComponentAddFunctionReference(
28003        component: *mut BNComponent,
28004        function: *mut BNFunction,
28005    ) -> bool;
28006}
28007unsafe extern "C" {
28008    pub fn BNComponentAddComponent(parent: *mut BNComponent, component: *mut BNComponent) -> bool;
28009}
28010unsafe extern "C" {
28011    pub fn BNComponentAddDataVariable(component: *mut BNComponent, address: u64) -> bool;
28012}
28013unsafe extern "C" {
28014    pub fn BNComponentRemoveComponent(component: *mut BNComponent) -> bool;
28015}
28016unsafe extern "C" {
28017    pub fn BNComponentRemoveFunctionReference(
28018        component: *mut BNComponent,
28019        function: *mut BNFunction,
28020    ) -> bool;
28021}
28022unsafe extern "C" {
28023    pub fn BNComponentRemoveAllFunctions(component: *mut BNComponent);
28024}
28025unsafe extern "C" {
28026    pub fn BNComponentRemoveDataVariable(component: *mut BNComponent, address: u64) -> bool;
28027}
28028unsafe extern "C" {
28029    pub fn BNComponentAddAllMembersFromComponent(
28030        component: *mut BNComponent,
28031        fromComponent: *mut BNComponent,
28032    );
28033}
28034unsafe extern "C" {
28035    pub fn BNComponentGetGuid(component: *mut BNComponent) -> *mut ::std::os::raw::c_char;
28036}
28037unsafe extern "C" {
28038    pub fn BNComponentsEqual(a: *mut BNComponent, b: *mut BNComponent) -> bool;
28039}
28040unsafe extern "C" {
28041    pub fn BNComponentsNotEqual(a: *mut BNComponent, b: *mut BNComponent) -> bool;
28042}
28043unsafe extern "C" {
28044    pub fn BNComponentGetDisplayName(component: *mut BNComponent) -> *mut ::std::os::raw::c_char;
28045}
28046unsafe extern "C" {
28047    pub fn BNComponentGetOriginalName(component: *mut BNComponent) -> *mut ::std::os::raw::c_char;
28048}
28049unsafe extern "C" {
28050    pub fn BNComponentSetName(component: *mut BNComponent, name: *const ::std::os::raw::c_char);
28051}
28052unsafe extern "C" {
28053    pub fn BNComponentGetView(component: *mut BNComponent) -> *mut BNBinaryView;
28054}
28055unsafe extern "C" {
28056    #[doc = " LLVM Services APIs"]
28057    pub fn BNLlvmServicesInit();
28058}
28059unsafe extern "C" {
28060    pub fn BNLlvmServicesAssemble(
28061        src: *const ::std::os::raw::c_char,
28062        dialect: ::std::os::raw::c_int,
28063        triplet: *const ::std::os::raw::c_char,
28064        codeModel: ::std::os::raw::c_int,
28065        relocMode: ::std::os::raw::c_int,
28066        outBytes: *mut *mut ::std::os::raw::c_char,
28067        outBytesLen: *mut ::std::os::raw::c_int,
28068        err: *mut *mut ::std::os::raw::c_char,
28069        errLen: *mut ::std::os::raw::c_int,
28070    ) -> ::std::os::raw::c_int;
28071}
28072unsafe extern "C" {
28073    pub fn BNLlvmServicesAssembleFree(
28074        outBytes: *mut ::std::os::raw::c_char,
28075        err: *mut ::std::os::raw::c_char,
28076    );
28077}
28078unsafe extern "C" {
28079    pub fn BNLlvmServicesDisasmInstruction(
28080        triplet: *const ::std::os::raw::c_char,
28081        src: *mut u8,
28082        srcLen: ::std::os::raw::c_int,
28083        addr: u64,
28084        result: *mut ::std::os::raw::c_char,
28085        resultMaxSize: usize,
28086    ) -> ::std::os::raw::c_int;
28087}
28088unsafe extern "C" {
28089    #[doc = " Filesystem functionality"]
28090    pub fn BNDeleteFile(path: *const ::std::os::raw::c_char) -> bool;
28091}
28092unsafe extern "C" {
28093    pub fn BNDeleteDirectory(path: *const ::std::os::raw::c_char) -> bool;
28094}
28095unsafe extern "C" {
28096    pub fn BNCreateDirectory(
28097        path: *const ::std::os::raw::c_char,
28098        createSubdirectories: bool,
28099    ) -> bool;
28100}
28101unsafe extern "C" {
28102    pub fn BNPathExists(path: *const ::std::os::raw::c_char) -> bool;
28103}
28104unsafe extern "C" {
28105    pub fn BNIsPathDirectory(path: *const ::std::os::raw::c_char) -> bool;
28106}
28107unsafe extern "C" {
28108    pub fn BNIsPathRegularFile(path: *const ::std::os::raw::c_char) -> bool;
28109}
28110unsafe extern "C" {
28111    pub fn BNFileSize(path: *const ::std::os::raw::c_char, size: *mut u64) -> bool;
28112}
28113unsafe extern "C" {
28114    pub fn BNRenameFile(
28115        source: *const ::std::os::raw::c_char,
28116        dest: *const ::std::os::raw::c_char,
28117    ) -> bool;
28118}
28119unsafe extern "C" {
28120    pub fn BNCopyFile(
28121        source: *const ::std::os::raw::c_char,
28122        dest: *const ::std::os::raw::c_char,
28123    ) -> bool;
28124}
28125unsafe extern "C" {
28126    pub fn BNGetFilePathsInDirectory(
28127        path: *const ::std::os::raw::c_char,
28128        count: *mut usize,
28129    ) -> *mut *mut ::std::os::raw::c_char;
28130}
28131unsafe extern "C" {
28132    pub fn BNGetSystemCacheDirectory() -> *mut ::std::os::raw::c_char;
28133}
28134unsafe extern "C" {
28135    #[doc = " Settings APIs"]
28136    pub fn BNCreateSettings(schemaId: *const ::std::os::raw::c_char) -> *mut BNSettings;
28137}
28138unsafe extern "C" {
28139    pub fn BNNewSettingsReference(settings: *mut BNSettings) -> *mut BNSettings;
28140}
28141unsafe extern "C" {
28142    pub fn BNFreeSettings(settings: *mut BNSettings);
28143}
28144unsafe extern "C" {
28145    pub fn BNLoadSettingsFile(
28146        settings: *mut BNSettings,
28147        fileName: *const ::std::os::raw::c_char,
28148        scope: BNSettingsScope,
28149        view: *mut BNBinaryView,
28150    ) -> bool;
28151}
28152unsafe extern "C" {
28153    pub fn BNSettingsSetResourceId(
28154        settings: *mut BNSettings,
28155        resourceId: *const ::std::os::raw::c_char,
28156    );
28157}
28158unsafe extern "C" {
28159    pub fn BNSettingsRegisterGroup(
28160        settings: *mut BNSettings,
28161        group: *const ::std::os::raw::c_char,
28162        title: *const ::std::os::raw::c_char,
28163    ) -> bool;
28164}
28165unsafe extern "C" {
28166    pub fn BNSettingsRegisterSetting(
28167        settings: *mut BNSettings,
28168        key: *const ::std::os::raw::c_char,
28169        properties: *const ::std::os::raw::c_char,
28170    ) -> bool;
28171}
28172unsafe extern "C" {
28173    pub fn BNSettingsContains(
28174        settings: *mut BNSettings,
28175        key: *const ::std::os::raw::c_char,
28176    ) -> bool;
28177}
28178unsafe extern "C" {
28179    pub fn BNSettingsIsEmpty(
28180        settings: *mut BNSettings,
28181        view: *mut BNBinaryView,
28182        func: *mut BNFunction,
28183        scope: BNSettingsScope,
28184    ) -> bool;
28185}
28186unsafe extern "C" {
28187    pub fn BNSettingsKeysList(
28188        settings: *mut BNSettings,
28189        inoutSize: *mut usize,
28190    ) -> *mut *const ::std::os::raw::c_char;
28191}
28192unsafe extern "C" {
28193    pub fn BNSettingsQueryPropertyString(
28194        settings: *mut BNSettings,
28195        key: *const ::std::os::raw::c_char,
28196        property: *const ::std::os::raw::c_char,
28197    ) -> *mut ::std::os::raw::c_char;
28198}
28199unsafe extern "C" {
28200    pub fn BNSettingsQueryPropertyStringList(
28201        settings: *mut BNSettings,
28202        key: *const ::std::os::raw::c_char,
28203        property: *const ::std::os::raw::c_char,
28204        inoutSize: *mut usize,
28205    ) -> *mut *const ::std::os::raw::c_char;
28206}
28207unsafe extern "C" {
28208    pub fn BNSettingsUpdateProperty(
28209        settings: *mut BNSettings,
28210        key: *const ::std::os::raw::c_char,
28211        property: *const ::std::os::raw::c_char,
28212    ) -> bool;
28213}
28214unsafe extern "C" {
28215    pub fn BNSettingsUpdateBoolProperty(
28216        settings: *mut BNSettings,
28217        key: *const ::std::os::raw::c_char,
28218        property: *const ::std::os::raw::c_char,
28219        value: bool,
28220    ) -> bool;
28221}
28222unsafe extern "C" {
28223    pub fn BNSettingsUpdateDoubleProperty(
28224        settings: *mut BNSettings,
28225        key: *const ::std::os::raw::c_char,
28226        property: *const ::std::os::raw::c_char,
28227        value: f64,
28228    ) -> bool;
28229}
28230unsafe extern "C" {
28231    pub fn BNSettingsUpdateInt64Property(
28232        settings: *mut BNSettings,
28233        key: *const ::std::os::raw::c_char,
28234        property: *const ::std::os::raw::c_char,
28235        value: i64,
28236    ) -> bool;
28237}
28238unsafe extern "C" {
28239    pub fn BNSettingsUpdateUInt64Property(
28240        settings: *mut BNSettings,
28241        key: *const ::std::os::raw::c_char,
28242        property: *const ::std::os::raw::c_char,
28243        value: u64,
28244    ) -> bool;
28245}
28246unsafe extern "C" {
28247    pub fn BNSettingsUpdateStringProperty(
28248        settings: *mut BNSettings,
28249        key: *const ::std::os::raw::c_char,
28250        property: *const ::std::os::raw::c_char,
28251        value: *const ::std::os::raw::c_char,
28252    ) -> bool;
28253}
28254unsafe extern "C" {
28255    pub fn BNSettingsUpdateStringListProperty(
28256        settings: *mut BNSettings,
28257        key: *const ::std::os::raw::c_char,
28258        property: *const ::std::os::raw::c_char,
28259        value: *mut *const ::std::os::raw::c_char,
28260        size: usize,
28261    ) -> bool;
28262}
28263unsafe extern "C" {
28264    pub fn BNSettingsDeserializeSchema(
28265        settings: *mut BNSettings,
28266        schema: *const ::std::os::raw::c_char,
28267        scope: BNSettingsScope,
28268        merge: bool,
28269    ) -> bool;
28270}
28271unsafe extern "C" {
28272    pub fn BNSettingsSerializeSchema(settings: *mut BNSettings) -> *mut ::std::os::raw::c_char;
28273}
28274unsafe extern "C" {
28275    pub fn BNDeserializeSettings(
28276        settings: *mut BNSettings,
28277        contents: *const ::std::os::raw::c_char,
28278        view: *mut BNBinaryView,
28279        func: *mut BNFunction,
28280        scope: BNSettingsScope,
28281    ) -> bool;
28282}
28283unsafe extern "C" {
28284    pub fn BNSerializeSettings(
28285        settings: *mut BNSettings,
28286        view: *mut BNBinaryView,
28287        func: *mut BNFunction,
28288        scope: BNSettingsScope,
28289    ) -> *mut ::std::os::raw::c_char;
28290}
28291unsafe extern "C" {
28292    pub fn BNSettingsReset(
28293        settings: *mut BNSettings,
28294        key: *const ::std::os::raw::c_char,
28295        view: *mut BNBinaryView,
28296        func: *mut BNFunction,
28297        scope: BNSettingsScope,
28298    ) -> bool;
28299}
28300unsafe extern "C" {
28301    pub fn BNSettingsResetAll(
28302        settings: *mut BNSettings,
28303        view: *mut BNBinaryView,
28304        func: *mut BNFunction,
28305        scope: BNSettingsScope,
28306        schemaOnly: bool,
28307    ) -> bool;
28308}
28309unsafe extern "C" {
28310    pub fn BNSettingsGetBool(
28311        settings: *mut BNSettings,
28312        key: *const ::std::os::raw::c_char,
28313        view: *mut BNBinaryView,
28314        func: *mut BNFunction,
28315        scope: *mut BNSettingsScope,
28316    ) -> bool;
28317}
28318unsafe extern "C" {
28319    pub fn BNSettingsGetDouble(
28320        settings: *mut BNSettings,
28321        key: *const ::std::os::raw::c_char,
28322        view: *mut BNBinaryView,
28323        func: *mut BNFunction,
28324        scope: *mut BNSettingsScope,
28325    ) -> f64;
28326}
28327unsafe extern "C" {
28328    pub fn BNSettingsGetInt64(
28329        settings: *mut BNSettings,
28330        key: *const ::std::os::raw::c_char,
28331        view: *mut BNBinaryView,
28332        func: *mut BNFunction,
28333        scope: *mut BNSettingsScope,
28334    ) -> i64;
28335}
28336unsafe extern "C" {
28337    pub fn BNSettingsGetUInt64(
28338        settings: *mut BNSettings,
28339        key: *const ::std::os::raw::c_char,
28340        view: *mut BNBinaryView,
28341        func: *mut BNFunction,
28342        scope: *mut BNSettingsScope,
28343    ) -> u64;
28344}
28345unsafe extern "C" {
28346    pub fn BNSettingsGetString(
28347        settings: *mut BNSettings,
28348        key: *const ::std::os::raw::c_char,
28349        view: *mut BNBinaryView,
28350        func: *mut BNFunction,
28351        scope: *mut BNSettingsScope,
28352    ) -> *mut ::std::os::raw::c_char;
28353}
28354unsafe extern "C" {
28355    pub fn BNSettingsGetStringList(
28356        settings: *mut BNSettings,
28357        key: *const ::std::os::raw::c_char,
28358        view: *mut BNBinaryView,
28359        func: *mut BNFunction,
28360        scope: *mut BNSettingsScope,
28361        inoutSize: *mut usize,
28362    ) -> *mut *const ::std::os::raw::c_char;
28363}
28364unsafe extern "C" {
28365    pub fn BNSettingsGetJson(
28366        settings: *mut BNSettings,
28367        key: *const ::std::os::raw::c_char,
28368        view: *mut BNBinaryView,
28369        func: *mut BNFunction,
28370        scope: *mut BNSettingsScope,
28371    ) -> *mut ::std::os::raw::c_char;
28372}
28373unsafe extern "C" {
28374    pub fn BNSettingsSetBool(
28375        settings: *mut BNSettings,
28376        view: *mut BNBinaryView,
28377        func: *mut BNFunction,
28378        scope: BNSettingsScope,
28379        key: *const ::std::os::raw::c_char,
28380        value: bool,
28381    ) -> bool;
28382}
28383unsafe extern "C" {
28384    pub fn BNSettingsSetDouble(
28385        settings: *mut BNSettings,
28386        view: *mut BNBinaryView,
28387        func: *mut BNFunction,
28388        scope: BNSettingsScope,
28389        key: *const ::std::os::raw::c_char,
28390        value: f64,
28391    ) -> bool;
28392}
28393unsafe extern "C" {
28394    pub fn BNSettingsSetInt64(
28395        settings: *mut BNSettings,
28396        view: *mut BNBinaryView,
28397        func: *mut BNFunction,
28398        scope: BNSettingsScope,
28399        key: *const ::std::os::raw::c_char,
28400        value: i64,
28401    ) -> bool;
28402}
28403unsafe extern "C" {
28404    pub fn BNSettingsSetUInt64(
28405        settings: *mut BNSettings,
28406        view: *mut BNBinaryView,
28407        func: *mut BNFunction,
28408        scope: BNSettingsScope,
28409        key: *const ::std::os::raw::c_char,
28410        value: u64,
28411    ) -> bool;
28412}
28413unsafe extern "C" {
28414    pub fn BNSettingsSetString(
28415        settings: *mut BNSettings,
28416        view: *mut BNBinaryView,
28417        func: *mut BNFunction,
28418        scope: BNSettingsScope,
28419        key: *const ::std::os::raw::c_char,
28420        value: *const ::std::os::raw::c_char,
28421    ) -> bool;
28422}
28423unsafe extern "C" {
28424    pub fn BNSettingsSetStringList(
28425        settings: *mut BNSettings,
28426        view: *mut BNBinaryView,
28427        func: *mut BNFunction,
28428        scope: BNSettingsScope,
28429        key: *const ::std::os::raw::c_char,
28430        value: *mut *const ::std::os::raw::c_char,
28431        size: usize,
28432    ) -> bool;
28433}
28434unsafe extern "C" {
28435    pub fn BNSettingsSetJson(
28436        settings: *mut BNSettings,
28437        view: *mut BNBinaryView,
28438        func: *mut BNFunction,
28439        scope: BNSettingsScope,
28440        key: *const ::std::os::raw::c_char,
28441        value: *const ::std::os::raw::c_char,
28442    ) -> bool;
28443}
28444unsafe extern "C" {
28445    #[doc = " Create Metadata of various types"]
28446    pub fn BNNewMetadataReference(data: *mut BNMetadata) -> *mut BNMetadata;
28447}
28448unsafe extern "C" {
28449    pub fn BNCreateMetadataBooleanData(data: bool) -> *mut BNMetadata;
28450}
28451unsafe extern "C" {
28452    pub fn BNCreateMetadataStringData(data: *const ::std::os::raw::c_char) -> *mut BNMetadata;
28453}
28454unsafe extern "C" {
28455    pub fn BNCreateMetadataUnsignedIntegerData(data: u64) -> *mut BNMetadata;
28456}
28457unsafe extern "C" {
28458    pub fn BNCreateMetadataSignedIntegerData(data: i64) -> *mut BNMetadata;
28459}
28460unsafe extern "C" {
28461    pub fn BNCreateMetadataDoubleData(data: f64) -> *mut BNMetadata;
28462}
28463unsafe extern "C" {
28464    pub fn BNCreateMetadataOfType(type_: BNMetadataType) -> *mut BNMetadata;
28465}
28466unsafe extern "C" {
28467    pub fn BNCreateMetadataRawData(data: *const u8, size: usize) -> *mut BNMetadata;
28468}
28469unsafe extern "C" {
28470    pub fn BNCreateMetadataArray(data: *mut *mut BNMetadata, size: usize) -> *mut BNMetadata;
28471}
28472unsafe extern "C" {
28473    pub fn BNCreateMetadataValueStore(
28474        keys: *mut *const ::std::os::raw::c_char,
28475        values: *mut *mut BNMetadata,
28476        size: usize,
28477    ) -> *mut BNMetadata;
28478}
28479unsafe extern "C" {
28480    pub fn BNCreateMetadataBooleanListData(data: *mut bool, size: usize) -> *mut BNMetadata;
28481}
28482unsafe extern "C" {
28483    pub fn BNCreateMetadataUnsignedIntegerListData(data: *mut u64, size: usize) -> *mut BNMetadata;
28484}
28485unsafe extern "C" {
28486    pub fn BNCreateMetadataSignedIntegerListData(data: *mut i64, size: usize) -> *mut BNMetadata;
28487}
28488unsafe extern "C" {
28489    pub fn BNCreateMetadataDoubleListData(data: *mut f64, size: usize) -> *mut BNMetadata;
28490}
28491unsafe extern "C" {
28492    pub fn BNCreateMetadataStringListData(
28493        data: *mut *const ::std::os::raw::c_char,
28494        size: usize,
28495    ) -> *mut BNMetadata;
28496}
28497unsafe extern "C" {
28498    pub fn BNMetadataIsEqual(lhs: *mut BNMetadata, rhs: *mut BNMetadata) -> bool;
28499}
28500unsafe extern "C" {
28501    pub fn BNMetadataSetValueForKey(
28502        data: *mut BNMetadata,
28503        key: *const ::std::os::raw::c_char,
28504        md: *mut BNMetadata,
28505    ) -> bool;
28506}
28507unsafe extern "C" {
28508    pub fn BNMetadataGetForKey(
28509        data: *mut BNMetadata,
28510        key: *const ::std::os::raw::c_char,
28511    ) -> *mut BNMetadata;
28512}
28513unsafe extern "C" {
28514    pub fn BNMetadataArrayAppend(data: *mut BNMetadata, md: *mut BNMetadata) -> bool;
28515}
28516unsafe extern "C" {
28517    pub fn BNMetadataRemoveKey(data: *mut BNMetadata, key: *const ::std::os::raw::c_char);
28518}
28519unsafe extern "C" {
28520    pub fn BNMetadataSize(data: *mut BNMetadata) -> usize;
28521}
28522unsafe extern "C" {
28523    pub fn BNMetadataGetForIndex(data: *mut BNMetadata, index: usize) -> *mut BNMetadata;
28524}
28525unsafe extern "C" {
28526    pub fn BNMetadataRemoveIndex(data: *mut BNMetadata, index: usize);
28527}
28528unsafe extern "C" {
28529    pub fn BNFreeMetadataArray(data: *mut *mut BNMetadata);
28530}
28531unsafe extern "C" {
28532    pub fn BNFreeMetadataValueStore(data: *mut BNMetadataValueStore);
28533}
28534unsafe extern "C" {
28535    pub fn BNFreeMetadata(data: *mut BNMetadata);
28536}
28537unsafe extern "C" {
28538    pub fn BNFreeMetadataRaw(data: *mut u8);
28539}
28540unsafe extern "C" {
28541    pub fn BNFreeMetadataBooleanList(arg1: *mut bool, arg2: usize);
28542}
28543unsafe extern "C" {
28544    pub fn BNFreeMetadataUnsignedIntegerList(arg1: *mut u64, arg2: usize);
28545}
28546unsafe extern "C" {
28547    pub fn BNFreeMetadataSignedIntegerList(arg1: *mut i64, arg2: usize);
28548}
28549unsafe extern "C" {
28550    pub fn BNFreeMetadataDoubleList(arg1: *mut f64, arg2: usize);
28551}
28552unsafe extern "C" {
28553    pub fn BNFreeMetadataStringList(arg1: *mut *mut ::std::os::raw::c_char, arg2: usize);
28554}
28555unsafe extern "C" {
28556    #[doc = " Retrieve Structured Data"]
28557    pub fn BNMetadataGetBoolean(data: *mut BNMetadata) -> bool;
28558}
28559unsafe extern "C" {
28560    pub fn BNMetadataGetString(data: *mut BNMetadata) -> *mut ::std::os::raw::c_char;
28561}
28562unsafe extern "C" {
28563    pub fn BNMetadataGetUnsignedInteger(data: *mut BNMetadata) -> u64;
28564}
28565unsafe extern "C" {
28566    pub fn BNMetadataGetSignedInteger(data: *mut BNMetadata) -> i64;
28567}
28568unsafe extern "C" {
28569    pub fn BNMetadataGetDouble(data: *mut BNMetadata) -> f64;
28570}
28571unsafe extern "C" {
28572    pub fn BNMetadataGetBooleanList(data: *mut BNMetadata, arg1: *mut usize) -> *mut bool;
28573}
28574unsafe extern "C" {
28575    pub fn BNMetadataGetStringList(
28576        data: *mut BNMetadata,
28577        arg1: *mut usize,
28578    ) -> *mut *mut ::std::os::raw::c_char;
28579}
28580unsafe extern "C" {
28581    pub fn BNMetadataGetUnsignedIntegerList(data: *mut BNMetadata, arg1: *mut usize) -> *mut u64;
28582}
28583unsafe extern "C" {
28584    pub fn BNMetadataGetSignedIntegerList(data: *mut BNMetadata, arg1: *mut usize) -> *mut i64;
28585}
28586unsafe extern "C" {
28587    pub fn BNMetadataGetDoubleList(data: *mut BNMetadata, arg1: *mut usize) -> *mut f64;
28588}
28589unsafe extern "C" {
28590    pub fn BNMetadataGetRaw(data: *mut BNMetadata, size: *mut usize) -> *mut u8;
28591}
28592unsafe extern "C" {
28593    pub fn BNMetadataGetArray(data: *mut BNMetadata, size: *mut usize) -> *mut *mut BNMetadata;
28594}
28595unsafe extern "C" {
28596    pub fn BNMetadataGetValueStore(data: *mut BNMetadata) -> *mut BNMetadataValueStore;
28597}
28598unsafe extern "C" {
28599    pub fn BNMetadataGetJsonString(data: *mut BNMetadata) -> *mut ::std::os::raw::c_char;
28600}
28601unsafe extern "C" {
28602    #[doc = " Query type of Metadata"]
28603    pub fn BNMetadataGetType(data: *mut BNMetadata) -> BNMetadataType;
28604}
28605unsafe extern "C" {
28606    pub fn BNMetadataIsBoolean(data: *mut BNMetadata) -> bool;
28607}
28608unsafe extern "C" {
28609    pub fn BNMetadataIsString(data: *mut BNMetadata) -> bool;
28610}
28611unsafe extern "C" {
28612    pub fn BNMetadataIsUnsignedInteger(data: *mut BNMetadata) -> bool;
28613}
28614unsafe extern "C" {
28615    pub fn BNMetadataIsSignedInteger(data: *mut BNMetadata) -> bool;
28616}
28617unsafe extern "C" {
28618    pub fn BNMetadataIsDouble(data: *mut BNMetadata) -> bool;
28619}
28620unsafe extern "C" {
28621    pub fn BNMetadataIsBooleanList(data: *mut BNMetadata) -> bool;
28622}
28623unsafe extern "C" {
28624    pub fn BNMetadataIsStringList(data: *mut BNMetadata) -> bool;
28625}
28626unsafe extern "C" {
28627    pub fn BNMetadataIsUnsignedIntegerList(data: *mut BNMetadata) -> bool;
28628}
28629unsafe extern "C" {
28630    pub fn BNMetadataIsSignedIntegerList(data: *mut BNMetadata) -> bool;
28631}
28632unsafe extern "C" {
28633    pub fn BNMetadataIsDoubleList(data: *mut BNMetadata) -> bool;
28634}
28635unsafe extern "C" {
28636    pub fn BNMetadataIsRaw(data: *mut BNMetadata) -> bool;
28637}
28638unsafe extern "C" {
28639    pub fn BNMetadataIsArray(data: *mut BNMetadata) -> bool;
28640}
28641unsafe extern "C" {
28642    pub fn BNMetadataIsKeyValueStore(data: *mut BNMetadata) -> bool;
28643}
28644unsafe extern "C" {
28645    #[doc = " Store/Query structured data to/from a BinaryView"]
28646    pub fn BNBinaryViewStoreMetadata(
28647        view: *mut BNBinaryView,
28648        key: *const ::std::os::raw::c_char,
28649        value: *mut BNMetadata,
28650        flags: BNMetadataStoreFlag,
28651    );
28652}
28653unsafe extern "C" {
28654    pub fn BNBinaryViewQueryMetadata(
28655        view: *mut BNBinaryView,
28656        key: *const ::std::os::raw::c_char,
28657    ) -> *mut BNMetadata;
28658}
28659unsafe extern "C" {
28660    pub fn BNBinaryViewRemoveMetadata(view: *mut BNBinaryView, key: *const ::std::os::raw::c_char);
28661}
28662unsafe extern "C" {
28663    pub fn BNBinaryViewGetMetadata(view: *mut BNBinaryView) -> *mut BNMetadata;
28664}
28665unsafe extern "C" {
28666    pub fn BNBinaryViewGetAutoMetadata(view: *mut BNBinaryView) -> *mut BNMetadata;
28667}
28668unsafe extern "C" {
28669    pub fn BNBinaryViewGetLoadSettingsTypeNames(
28670        view: *mut BNBinaryView,
28671        count: *mut usize,
28672    ) -> *mut *mut ::std::os::raw::c_char;
28673}
28674unsafe extern "C" {
28675    pub fn BNBinaryViewGetLoadSettings(
28676        view: *mut BNBinaryView,
28677        typeName: *const ::std::os::raw::c_char,
28678    ) -> *mut BNSettings;
28679}
28680unsafe extern "C" {
28681    pub fn BNBinaryViewSetLoadSettings(
28682        view: *mut BNBinaryView,
28683        typeName: *const ::std::os::raw::c_char,
28684        settings: *mut BNSettings,
28685    );
28686}
28687unsafe extern "C" {
28688    pub fn BNBinaryViewFinalizeNewSegments(view: *mut BNBinaryView) -> bool;
28689}
28690unsafe extern "C" {
28691    #[doc = " Relocation object methods"]
28692    pub fn BNNewRelocationReference(reloc: *mut BNRelocation) -> *mut BNRelocation;
28693}
28694unsafe extern "C" {
28695    pub fn BNFreeRelocation(reloc: *mut BNRelocation);
28696}
28697unsafe extern "C" {
28698    pub fn BNRelocationGetInfo(reloc: *mut BNRelocation) -> BNRelocationInfo;
28699}
28700unsafe extern "C" {
28701    pub fn BNRelocationGetArchitecture(reloc: *mut BNRelocation) -> *mut BNArchitecture;
28702}
28703unsafe extern "C" {
28704    pub fn BNRelocationGetTarget(reloc: *mut BNRelocation) -> u64;
28705}
28706unsafe extern "C" {
28707    pub fn BNRelocationGetReloc(reloc: *mut BNRelocation) -> u64;
28708}
28709unsafe extern "C" {
28710    pub fn BNRelocationGetSymbol(reloc: *mut BNRelocation) -> *mut BNSymbol;
28711}
28712unsafe extern "C" {
28713    #[doc = " Segment object methods"]
28714    pub fn BNCreateSegment(
28715        start: u64,
28716        length: u64,
28717        dataOffset: u64,
28718        dataLength: u64,
28719        flags: u32,
28720        autoDefined: bool,
28721    ) -> *mut BNSegment;
28722}
28723unsafe extern "C" {
28724    pub fn BNNewSegmentReference(seg: *mut BNSegment) -> *mut BNSegment;
28725}
28726unsafe extern "C" {
28727    pub fn BNFreeSegment(seg: *mut BNSegment);
28728}
28729unsafe extern "C" {
28730    pub fn BNSegmentGetStart(segment: *mut BNSegment) -> u64;
28731}
28732unsafe extern "C" {
28733    pub fn BNSegmentGetLength(segment: *mut BNSegment) -> u64;
28734}
28735unsafe extern "C" {
28736    pub fn BNSegmentGetEnd(segment: *mut BNSegment) -> u64;
28737}
28738unsafe extern "C" {
28739    pub fn BNSegmentGetDataEnd(segment: *mut BNSegment) -> u64;
28740}
28741unsafe extern "C" {
28742    pub fn BNSegmentGetDataOffset(segment: *mut BNSegment) -> u64;
28743}
28744unsafe extern "C" {
28745    pub fn BNSegmentGetDataLength(segment: *mut BNSegment) -> u64;
28746}
28747unsafe extern "C" {
28748    pub fn BNSegmentGetFlags(segment: *mut BNSegment) -> u32;
28749}
28750unsafe extern "C" {
28751    pub fn BNSegmentIsAutoDefined(segment: *mut BNSegment) -> bool;
28752}
28753unsafe extern "C" {
28754    #[doc = " Section object methods"]
28755    pub fn BNNewSectionReference(section: *mut BNSection) -> *mut BNSection;
28756}
28757unsafe extern "C" {
28758    pub fn BNFreeSection(section: *mut BNSection);
28759}
28760unsafe extern "C" {
28761    pub fn BNSectionGetName(section: *mut BNSection) -> *mut ::std::os::raw::c_char;
28762}
28763unsafe extern "C" {
28764    pub fn BNSectionGetType(section: *mut BNSection) -> *mut ::std::os::raw::c_char;
28765}
28766unsafe extern "C" {
28767    pub fn BNSectionGetStart(section: *mut BNSection) -> u64;
28768}
28769unsafe extern "C" {
28770    pub fn BNSectionGetLength(section: *mut BNSection) -> u64;
28771}
28772unsafe extern "C" {
28773    pub fn BNSectionGetEnd(section: *mut BNSection) -> u64;
28774}
28775unsafe extern "C" {
28776    pub fn BNSectionGetLinkedSection(section: *mut BNSection) -> *mut ::std::os::raw::c_char;
28777}
28778unsafe extern "C" {
28779    pub fn BNSectionGetInfoSection(section: *mut BNSection) -> *mut ::std::os::raw::c_char;
28780}
28781unsafe extern "C" {
28782    pub fn BNSectionGetInfoData(section: *mut BNSection) -> u64;
28783}
28784unsafe extern "C" {
28785    pub fn BNSectionGetAlign(section: *mut BNSection) -> u64;
28786}
28787unsafe extern "C" {
28788    pub fn BNSectionGetEntrySize(section: *mut BNSection) -> u64;
28789}
28790unsafe extern "C" {
28791    pub fn BNSectionGetSemantics(section: *mut BNSection) -> BNSectionSemantics;
28792}
28793unsafe extern "C" {
28794    pub fn BNSectionIsAutoDefined(section: *mut BNSection) -> bool;
28795}
28796unsafe extern "C" {
28797    #[doc = " Custom Data Render methods"]
28798    pub fn BNCreateDataRenderer(renderer: *mut BNCustomDataRenderer) -> *mut BNDataRenderer;
28799}
28800unsafe extern "C" {
28801    pub fn BNNewDataRendererReference(renderer: *mut BNDataRenderer) -> *mut BNDataRenderer;
28802}
28803unsafe extern "C" {
28804    pub fn BNIsValidForData(
28805        ctxt: *mut ::std::os::raw::c_void,
28806        view: *mut BNBinaryView,
28807        addr: u64,
28808        type_: *mut BNType,
28809        typeCtx: *mut BNTypeContext,
28810        ctxCount: usize,
28811    ) -> bool;
28812}
28813unsafe extern "C" {
28814    pub fn BNGetLinesForData(
28815        ctxt: *mut ::std::os::raw::c_void,
28816        view: *mut BNBinaryView,
28817        addr: u64,
28818        type_: *mut BNType,
28819        prefix: *const BNInstructionTextToken,
28820        prefixCount: usize,
28821        width: usize,
28822        count: *mut usize,
28823        typeCtx: *mut BNTypeContext,
28824        ctxCount: usize,
28825        language: *const ::std::os::raw::c_char,
28826    ) -> *mut BNDisassemblyTextLine;
28827}
28828unsafe extern "C" {
28829    pub fn BNRenderLinesForData(
28830        data: *mut BNBinaryView,
28831        addr: u64,
28832        type_: *mut BNType,
28833        prefix: *const BNInstructionTextToken,
28834        prefixCount: usize,
28835        width: usize,
28836        count: *mut usize,
28837        typeCtx: *mut BNTypeContext,
28838        ctxCount: usize,
28839        language: *const ::std::os::raw::c_char,
28840    ) -> *mut BNDisassemblyTextLine;
28841}
28842unsafe extern "C" {
28843    pub fn BNFreeDataRenderer(renderer: *mut BNDataRenderer);
28844}
28845unsafe extern "C" {
28846    pub fn BNGetDataRendererContainer() -> *mut BNDataRendererContainer;
28847}
28848unsafe extern "C" {
28849    pub fn BNRegisterGenericDataRenderer(
28850        container: *mut BNDataRendererContainer,
28851        renderer: *mut BNDataRenderer,
28852    );
28853}
28854unsafe extern "C" {
28855    pub fn BNRegisterTypeSpecificDataRenderer(
28856        container: *mut BNDataRendererContainer,
28857        renderer: *mut BNDataRenderer,
28858    );
28859}
28860unsafe extern "C" {
28861    pub fn BNParseExpression(
28862        view: *mut BNBinaryView,
28863        expression: *const ::std::os::raw::c_char,
28864        offset: *mut u64,
28865        here: u64,
28866        errorString: *mut *mut ::std::os::raw::c_char,
28867    ) -> bool;
28868}
28869unsafe extern "C" {
28870    pub fn BNFreeParseError(errorString: *mut ::std::os::raw::c_char);
28871}
28872unsafe extern "C" {
28873    pub fn BNGetCurrentStackTraceString() -> *mut ::std::os::raw::c_char;
28874}
28875unsafe extern "C" {
28876    pub fn BNRegisterObjectRefDebugTrace(
28877        typeName: *const ::std::os::raw::c_char,
28878    ) -> *mut ::std::os::raw::c_void;
28879}
28880unsafe extern "C" {
28881    pub fn BNUnregisterObjectRefDebugTrace(
28882        typeName: *const ::std::os::raw::c_char,
28883        trace: *mut ::std::os::raw::c_void,
28884    );
28885}
28886unsafe extern "C" {
28887    pub fn BNGetMemoryUsageInfo(count: *mut usize) -> *mut BNMemoryUsageInfo;
28888}
28889unsafe extern "C" {
28890    pub fn BNFreeMemoryUsageInfo(info: *mut BNMemoryUsageInfo, count: usize);
28891}
28892unsafe extern "C" {
28893    pub fn BNGetStatHistograms(count: *mut usize) -> *mut BNStatHistogram;
28894}
28895unsafe extern "C" {
28896    pub fn BNFreeStatHistograms(stats: *mut BNStatHistogram, count: usize);
28897}
28898unsafe extern "C" {
28899    pub fn BNGetAddressRenderedWidth(addr: u64) -> u32;
28900}
28901unsafe extern "C" {
28902    pub fn BNRegisterDebugInfoParser(
28903        name: *const ::std::os::raw::c_char,
28904        isValid: ::std::option::Option<
28905            unsafe extern "C" fn(
28906                arg1: *mut ::std::os::raw::c_void,
28907                arg2: *mut BNBinaryView,
28908            ) -> bool,
28909        >,
28910        parseInfo: ::std::option::Option<
28911            unsafe extern "C" fn(
28912                arg1: *mut ::std::os::raw::c_void,
28913                arg2: *mut BNDebugInfo,
28914                arg3: *mut BNBinaryView,
28915                arg4: *mut BNBinaryView,
28916                arg5: BNProgressFunction,
28917                arg6: *mut ::std::os::raw::c_void,
28918            ) -> bool,
28919        >,
28920        context: *mut ::std::os::raw::c_void,
28921    ) -> *mut BNDebugInfoParser;
28922}
28923unsafe extern "C" {
28924    pub fn BNUnregisterDebugInfoParser(rawName: *const ::std::os::raw::c_char);
28925}
28926unsafe extern "C" {
28927    pub fn BNGetDebugInfoParserByName(
28928        name: *const ::std::os::raw::c_char,
28929    ) -> *mut BNDebugInfoParser;
28930}
28931unsafe extern "C" {
28932    pub fn BNGetDebugInfoParsers(count: *mut usize) -> *mut *mut BNDebugInfoParser;
28933}
28934unsafe extern "C" {
28935    pub fn BNGetDebugInfoParsersForView(
28936        view: *mut BNBinaryView,
28937        count: *mut usize,
28938    ) -> *mut *mut BNDebugInfoParser;
28939}
28940unsafe extern "C" {
28941    pub fn BNGetDebugInfoParserName(parser: *mut BNDebugInfoParser) -> *mut ::std::os::raw::c_char;
28942}
28943unsafe extern "C" {
28944    pub fn BNIsDebugInfoParserValidForView(
28945        parser: *mut BNDebugInfoParser,
28946        view: *mut BNBinaryView,
28947    ) -> bool;
28948}
28949unsafe extern "C" {
28950    pub fn BNParseDebugInfo(
28951        parser: *mut BNDebugInfoParser,
28952        view: *mut BNBinaryView,
28953        debugFile: *mut BNBinaryView,
28954        existingDebugInfo: *mut BNDebugInfo,
28955        progress: BNProgressFunction,
28956        progressCtxt: *mut ::std::os::raw::c_void,
28957    ) -> *mut BNDebugInfo;
28958}
28959unsafe extern "C" {
28960    pub fn BNNewDebugInfoParserReference(parser: *mut BNDebugInfoParser) -> *mut BNDebugInfoParser;
28961}
28962unsafe extern "C" {
28963    pub fn BNFreeDebugInfoParserReference(parser: *mut BNDebugInfoParser);
28964}
28965unsafe extern "C" {
28966    pub fn BNFreeDebugInfoParserList(parsers: *mut *mut BNDebugInfoParser, count: usize);
28967}
28968unsafe extern "C" {
28969    pub fn BNNewDebugInfoReference(debugInfo: *mut BNDebugInfo) -> *mut BNDebugInfo;
28970}
28971unsafe extern "C" {
28972    pub fn BNFreeDebugInfoReference(debugInfo: *mut BNDebugInfo);
28973}
28974unsafe extern "C" {
28975    pub fn BNGetDebugParserNames(
28976        debugInfo: *mut BNDebugInfo,
28977        count: *mut usize,
28978    ) -> *mut *mut ::std::os::raw::c_char;
28979}
28980unsafe extern "C" {
28981    pub fn BNGetDebugInfoTypeContainer(
28982        debugInfo: *mut BNDebugInfo,
28983        parserName: *const ::std::os::raw::c_char,
28984    ) -> *mut BNTypeContainer;
28985}
28986unsafe extern "C" {
28987    pub fn BNRemoveDebugParserInfo(
28988        debugInfo: *mut BNDebugInfo,
28989        parserName: *const ::std::os::raw::c_char,
28990    ) -> bool;
28991}
28992unsafe extern "C" {
28993    pub fn BNRemoveDebugParserTypes(
28994        debugInfo: *mut BNDebugInfo,
28995        parserName: *const ::std::os::raw::c_char,
28996    ) -> bool;
28997}
28998unsafe extern "C" {
28999    pub fn BNRemoveDebugParserFunctions(
29000        debugInfo: *mut BNDebugInfo,
29001        parserName: *const ::std::os::raw::c_char,
29002    ) -> bool;
29003}
29004unsafe extern "C" {
29005    pub fn BNRemoveDebugParserDataVariables(
29006        debugInfo: *mut BNDebugInfo,
29007        parserName: *const ::std::os::raw::c_char,
29008    ) -> bool;
29009}
29010unsafe extern "C" {
29011    pub fn BNAddDebugType(
29012        debugInfo: *mut BNDebugInfo,
29013        name: *const ::std::os::raw::c_char,
29014        type_: *const BNType,
29015        components: *mut *const ::std::os::raw::c_char,
29016        components_count: usize,
29017    ) -> bool;
29018}
29019unsafe extern "C" {
29020    pub fn BNGetDebugTypes(
29021        debugInfo: *mut BNDebugInfo,
29022        name: *const ::std::os::raw::c_char,
29023        count: *mut usize,
29024    ) -> *mut BNNameAndType;
29025}
29026unsafe extern "C" {
29027    pub fn BNGetDebugTypeByName(
29028        debugInfo: *mut BNDebugInfo,
29029        parserName: *const ::std::os::raw::c_char,
29030        typeName: *const ::std::os::raw::c_char,
29031    ) -> *mut BNType;
29032}
29033unsafe extern "C" {
29034    pub fn BNGetDebugTypesByName(
29035        debugInfo: *mut BNDebugInfo,
29036        typeName: *const ::std::os::raw::c_char,
29037        count: *mut usize,
29038    ) -> *mut BNNameAndType;
29039}
29040unsafe extern "C" {
29041    pub fn BNRemoveDebugTypeByName(
29042        debugInfo: *mut BNDebugInfo,
29043        parserName: *const ::std::os::raw::c_char,
29044        typeName: *const ::std::os::raw::c_char,
29045    ) -> bool;
29046}
29047unsafe extern "C" {
29048    pub fn BNFreeDebugTypes(types: *mut BNNameAndType, count: usize);
29049}
29050unsafe extern "C" {
29051    pub fn BNAddDebugFunction(debugInfo: *mut BNDebugInfo, func: *mut BNDebugFunctionInfo) -> bool;
29052}
29053unsafe extern "C" {
29054    pub fn BNGetDebugFunctions(
29055        debugInfo: *mut BNDebugInfo,
29056        name: *const ::std::os::raw::c_char,
29057        count: *mut usize,
29058    ) -> *mut BNDebugFunctionInfo;
29059}
29060unsafe extern "C" {
29061    pub fn BNRemoveDebugFunctionByIndex(
29062        debugInfo: *mut BNDebugInfo,
29063        parserName: *const ::std::os::raw::c_char,
29064        index: usize,
29065    ) -> bool;
29066}
29067unsafe extern "C" {
29068    pub fn BNFreeDebugFunctions(functions: *mut BNDebugFunctionInfo, count: usize);
29069}
29070unsafe extern "C" {
29071    pub fn BNAddDebugDataVariable(
29072        debugInfo: *mut BNDebugInfo,
29073        address: u64,
29074        type_: *const BNType,
29075        name: *const ::std::os::raw::c_char,
29076        components: *mut *const ::std::os::raw::c_char,
29077        components_count: usize,
29078    ) -> bool;
29079}
29080unsafe extern "C" {
29081    pub fn BNAddDebugDataVariableInfo(
29082        debugInfo: *mut BNDebugInfo,
29083        var: *const BNDataVariableAndName,
29084    ) -> bool;
29085}
29086unsafe extern "C" {
29087    pub fn BNGetDebugDataVariables(
29088        debugInfo: *mut BNDebugInfo,
29089        name: *const ::std::os::raw::c_char,
29090        count: *mut usize,
29091    ) -> *mut BNDataVariableAndName;
29092}
29093unsafe extern "C" {
29094    pub fn BNGetDebugDataVariableByName(
29095        debugInfo: *mut BNDebugInfo,
29096        parserName: *const ::std::os::raw::c_char,
29097        variableName: *const ::std::os::raw::c_char,
29098        var: *mut BNDataVariableAndName,
29099    ) -> bool;
29100}
29101unsafe extern "C" {
29102    pub fn BNGetDebugDataVariableByAddress(
29103        debugInfo: *mut BNDebugInfo,
29104        parserName: *const ::std::os::raw::c_char,
29105        address: u64,
29106        var: *mut BNDataVariableAndName,
29107    ) -> bool;
29108}
29109unsafe extern "C" {
29110    pub fn BNGetDebugDataVariablesByName(
29111        debugInfo: *mut BNDebugInfo,
29112        variableName: *const ::std::os::raw::c_char,
29113        count: *mut usize,
29114    ) -> *mut BNDataVariableAndName;
29115}
29116unsafe extern "C" {
29117    pub fn BNGetDebugDataVariablesByAddress(
29118        debugInfo: *mut BNDebugInfo,
29119        address: u64,
29120        count: *mut usize,
29121    ) -> *mut BNDataVariableAndNameAndDebugParser;
29122}
29123unsafe extern "C" {
29124    pub fn BNRemoveDebugDataVariableByAddress(
29125        debugInfo: *mut BNDebugInfo,
29126        parserName: *const ::std::os::raw::c_char,
29127        address: u64,
29128    ) -> bool;
29129}
29130unsafe extern "C" {
29131    #[doc = " Secrets providers"]
29132    pub fn BNRegisterSecretsProvider(
29133        name: *const ::std::os::raw::c_char,
29134        callbacks: *mut BNSecretsProviderCallbacks,
29135    ) -> *mut BNSecretsProvider;
29136}
29137unsafe extern "C" {
29138    pub fn BNGetSecretsProviderList(count: *mut usize) -> *mut *mut BNSecretsProvider;
29139}
29140unsafe extern "C" {
29141    pub fn BNFreeSecretsProviderList(providers: *mut *mut BNSecretsProvider);
29142}
29143unsafe extern "C" {
29144    pub fn BNGetSecretsProviderByName(
29145        name: *const ::std::os::raw::c_char,
29146    ) -> *mut BNSecretsProvider;
29147}
29148unsafe extern "C" {
29149    pub fn BNGetSecretsProviderName(
29150        provider: *mut BNSecretsProvider,
29151    ) -> *mut ::std::os::raw::c_char;
29152}
29153unsafe extern "C" {
29154    pub fn BNSecretsProviderHasData(
29155        provider: *mut BNSecretsProvider,
29156        key: *const ::std::os::raw::c_char,
29157    ) -> bool;
29158}
29159unsafe extern "C" {
29160    pub fn BNGetSecretsProviderData(
29161        provider: *mut BNSecretsProvider,
29162        key: *const ::std::os::raw::c_char,
29163    ) -> *mut ::std::os::raw::c_char;
29164}
29165unsafe extern "C" {
29166    pub fn BNStoreSecretsProviderData(
29167        provider: *mut BNSecretsProvider,
29168        key: *const ::std::os::raw::c_char,
29169        data: *const ::std::os::raw::c_char,
29170    ) -> bool;
29171}
29172unsafe extern "C" {
29173    pub fn BNDeleteSecretsProviderData(
29174        provider: *mut BNSecretsProvider,
29175        key: *const ::std::os::raw::c_char,
29176    ) -> bool;
29177}
29178unsafe extern "C" {
29179    pub fn BNCreateSymbolQueue() -> *mut BNSymbolQueue;
29180}
29181unsafe extern "C" {
29182    pub fn BNDestroySymbolQueue(queue: *mut BNSymbolQueue);
29183}
29184unsafe extern "C" {
29185    pub fn BNAppendSymbolQueue(
29186        queue: *mut BNSymbolQueue,
29187        resolve: ::std::option::Option<
29188            unsafe extern "C" fn(
29189                ctxt: *mut ::std::os::raw::c_void,
29190                symbol: *mut *mut BNSymbol,
29191                type_: *mut BNTypeWithConfidence,
29192            ),
29193        >,
29194        resolveContext: *mut ::std::os::raw::c_void,
29195        add: ::std::option::Option<
29196            unsafe extern "C" fn(
29197                ctxt: *mut ::std::os::raw::c_void,
29198                symbol: *mut BNSymbol,
29199                type_: *mut BNTypeWithConfidence,
29200            ),
29201        >,
29202        addContext: *mut ::std::os::raw::c_void,
29203    );
29204}
29205unsafe extern "C" {
29206    pub fn BNProcessSymbolQueue(queue: *mut BNSymbolQueue);
29207}
29208unsafe extern "C" {
29209    pub fn BNCoreEnumToString(
29210        enumName: *const ::std::os::raw::c_char,
29211        value: usize,
29212        result: *mut *mut ::std::os::raw::c_char,
29213    ) -> bool;
29214}
29215unsafe extern "C" {
29216    pub fn BNCoreEnumFromString(
29217        enumName: *const ::std::os::raw::c_char,
29218        value: *const ::std::os::raw::c_char,
29219        result: *mut usize,
29220    ) -> bool;
29221}
29222unsafe extern "C" {
29223    #[doc = " Type Archives"]
29224    pub fn BNNewTypeArchiveReference(archive: *mut BNTypeArchive) -> *mut BNTypeArchive;
29225}
29226unsafe extern "C" {
29227    pub fn BNFreeTypeArchiveReference(archive: *mut BNTypeArchive);
29228}
29229unsafe extern "C" {
29230    pub fn BNFreeTypeArchiveList(archives: *mut *mut BNTypeArchive, count: usize);
29231}
29232unsafe extern "C" {
29233    pub fn BNOpenTypeArchive(path: *const ::std::os::raw::c_char) -> *mut BNTypeArchive;
29234}
29235unsafe extern "C" {
29236    pub fn BNCreateTypeArchive(
29237        path: *const ::std::os::raw::c_char,
29238        platform: *mut BNPlatform,
29239    ) -> *mut BNTypeArchive;
29240}
29241unsafe extern "C" {
29242    pub fn BNCreateTypeArchiveWithId(
29243        path: *const ::std::os::raw::c_char,
29244        platform: *mut BNPlatform,
29245        id: *const ::std::os::raw::c_char,
29246    ) -> *mut BNTypeArchive;
29247}
29248unsafe extern "C" {
29249    pub fn BNLookupTypeArchiveById(id: *const ::std::os::raw::c_char) -> *mut BNTypeArchive;
29250}
29251unsafe extern "C" {
29252    pub fn BNCloseTypeArchive(archive: *mut BNTypeArchive);
29253}
29254unsafe extern "C" {
29255    pub fn BNIsTypeArchive(path: *const ::std::os::raw::c_char) -> bool;
29256}
29257unsafe extern "C" {
29258    pub fn BNGetTypeArchiveId(archive: *mut BNTypeArchive) -> *mut ::std::os::raw::c_char;
29259}
29260unsafe extern "C" {
29261    pub fn BNGetTypeArchivePath(archive: *mut BNTypeArchive) -> *mut ::std::os::raw::c_char;
29262}
29263unsafe extern "C" {
29264    pub fn BNGetTypeArchivePlatform(archive: *mut BNTypeArchive) -> *mut BNPlatform;
29265}
29266unsafe extern "C" {
29267    pub fn BNGetTypeArchiveCurrentSnapshotId(
29268        archive: *mut BNTypeArchive,
29269    ) -> *mut ::std::os::raw::c_char;
29270}
29271unsafe extern "C" {
29272    pub fn BNSetTypeArchiveCurrentSnapshot(
29273        archive: *mut BNTypeArchive,
29274        id: *const ::std::os::raw::c_char,
29275    );
29276}
29277unsafe extern "C" {
29278    pub fn BNGetTypeArchiveAllSnapshotIds(
29279        archive: *mut BNTypeArchive,
29280        count: *mut usize,
29281    ) -> *mut *mut ::std::os::raw::c_char;
29282}
29283unsafe extern "C" {
29284    pub fn BNGetTypeArchiveSnapshotParentIds(
29285        archive: *mut BNTypeArchive,
29286        id: *const ::std::os::raw::c_char,
29287        count: *mut usize,
29288    ) -> *mut *mut ::std::os::raw::c_char;
29289}
29290unsafe extern "C" {
29291    pub fn BNGetTypeArchiveSnapshotChildIds(
29292        archive: *mut BNTypeArchive,
29293        id: *const ::std::os::raw::c_char,
29294        count: *mut usize,
29295    ) -> *mut *mut ::std::os::raw::c_char;
29296}
29297unsafe extern "C" {
29298    pub fn BNGetTypeArchiveTypeContainer(archive: *mut BNTypeArchive) -> *mut BNTypeContainer;
29299}
29300unsafe extern "C" {
29301    pub fn BNAddTypeArchiveTypes(
29302        archive: *mut BNTypeArchive,
29303        types: *const BNQualifiedNameAndType,
29304        count: usize,
29305    ) -> bool;
29306}
29307unsafe extern "C" {
29308    pub fn BNRenameTypeArchiveType(
29309        archive: *mut BNTypeArchive,
29310        id: *const ::std::os::raw::c_char,
29311        newName: *const BNQualifiedName,
29312    ) -> bool;
29313}
29314unsafe extern "C" {
29315    pub fn BNDeleteTypeArchiveType(
29316        archive: *mut BNTypeArchive,
29317        id: *const ::std::os::raw::c_char,
29318    ) -> bool;
29319}
29320unsafe extern "C" {
29321    pub fn BNGetTypeArchiveTypeById(
29322        archive: *mut BNTypeArchive,
29323        id: *const ::std::os::raw::c_char,
29324        snapshot: *const ::std::os::raw::c_char,
29325    ) -> *mut BNType;
29326}
29327unsafe extern "C" {
29328    pub fn BNGetTypeArchiveTypeByName(
29329        archive: *mut BNTypeArchive,
29330        name: *const BNQualifiedName,
29331        snapshot: *const ::std::os::raw::c_char,
29332    ) -> *mut BNType;
29333}
29334unsafe extern "C" {
29335    pub fn BNGetTypeArchiveTypeId(
29336        archive: *mut BNTypeArchive,
29337        name: *const BNQualifiedName,
29338        snapshot: *const ::std::os::raw::c_char,
29339    ) -> *mut ::std::os::raw::c_char;
29340}
29341unsafe extern "C" {
29342    pub fn BNGetTypeArchiveTypeName(
29343        archive: *mut BNTypeArchive,
29344        id: *const ::std::os::raw::c_char,
29345        snapshot: *const ::std::os::raw::c_char,
29346    ) -> BNQualifiedName;
29347}
29348unsafe extern "C" {
29349    pub fn BNGetTypeArchiveTypes(
29350        archive: *mut BNTypeArchive,
29351        snapshot: *const ::std::os::raw::c_char,
29352        count: *mut usize,
29353    ) -> *mut BNQualifiedNameTypeAndId;
29354}
29355unsafe extern "C" {
29356    pub fn BNGetTypeArchiveTypeIds(
29357        archive: *mut BNTypeArchive,
29358        snapshot: *const ::std::os::raw::c_char,
29359        count: *mut usize,
29360    ) -> *mut *mut ::std::os::raw::c_char;
29361}
29362unsafe extern "C" {
29363    pub fn BNGetTypeArchiveTypeNames(
29364        archive: *mut BNTypeArchive,
29365        snapshot: *const ::std::os::raw::c_char,
29366        count: *mut usize,
29367    ) -> *mut BNQualifiedName;
29368}
29369unsafe extern "C" {
29370    pub fn BNGetTypeArchiveTypeNamesAndIds(
29371        archive: *mut BNTypeArchive,
29372        snapshot: *const ::std::os::raw::c_char,
29373        names: *mut *mut BNQualifiedName,
29374        ids: *mut *mut *mut ::std::os::raw::c_char,
29375        count: *mut usize,
29376    ) -> bool;
29377}
29378unsafe extern "C" {
29379    pub fn BNGetTypeArchiveOutgoingDirectTypeReferences(
29380        archive: *mut BNTypeArchive,
29381        id: *const ::std::os::raw::c_char,
29382        snapshot: *const ::std::os::raw::c_char,
29383        count: *mut usize,
29384    ) -> *mut *mut ::std::os::raw::c_char;
29385}
29386unsafe extern "C" {
29387    pub fn BNGetTypeArchiveOutgoingRecursiveTypeReferences(
29388        archive: *mut BNTypeArchive,
29389        id: *const ::std::os::raw::c_char,
29390        snapshot: *const ::std::os::raw::c_char,
29391        count: *mut usize,
29392    ) -> *mut *mut ::std::os::raw::c_char;
29393}
29394unsafe extern "C" {
29395    pub fn BNGetTypeArchiveIncomingDirectTypeReferences(
29396        archive: *mut BNTypeArchive,
29397        id: *const ::std::os::raw::c_char,
29398        snapshot: *const ::std::os::raw::c_char,
29399        count: *mut usize,
29400    ) -> *mut *mut ::std::os::raw::c_char;
29401}
29402unsafe extern "C" {
29403    pub fn BNGetTypeArchiveIncomingRecursiveTypeReferences(
29404        archive: *mut BNTypeArchive,
29405        id: *const ::std::os::raw::c_char,
29406        snapshot: *const ::std::os::raw::c_char,
29407        count: *mut usize,
29408    ) -> *mut *mut ::std::os::raw::c_char;
29409}
29410unsafe extern "C" {
29411    pub fn BNTypeArchiveNewSnapshotTransaction(
29412        archive: *mut BNTypeArchive,
29413        func: ::std::option::Option<
29414            unsafe extern "C" fn(
29415                context: *mut ::std::os::raw::c_void,
29416                id: *const ::std::os::raw::c_char,
29417            ) -> bool,
29418        >,
29419        context: *mut ::std::os::raw::c_void,
29420        parents: *const *const ::std::os::raw::c_char,
29421        parentCount: usize,
29422    ) -> *mut ::std::os::raw::c_char;
29423}
29424unsafe extern "C" {
29425    pub fn BNRegisterTypeArchiveNotification(
29426        archive: *mut BNTypeArchive,
29427        notification: *mut BNTypeArchiveNotification,
29428    );
29429}
29430unsafe extern "C" {
29431    pub fn BNUnregisterTypeArchiveNotification(
29432        archive: *mut BNTypeArchive,
29433        notification: *mut BNTypeArchiveNotification,
29434    );
29435}
29436unsafe extern "C" {
29437    pub fn BNTypeArchiveStoreMetadata(
29438        archive: *mut BNTypeArchive,
29439        key: *const ::std::os::raw::c_char,
29440        value: *mut BNMetadata,
29441    ) -> bool;
29442}
29443unsafe extern "C" {
29444    pub fn BNTypeArchiveQueryMetadata(
29445        archive: *mut BNTypeArchive,
29446        key: *const ::std::os::raw::c_char,
29447    ) -> *mut BNMetadata;
29448}
29449unsafe extern "C" {
29450    pub fn BNTypeArchiveRemoveMetadata(
29451        archive: *mut BNTypeArchive,
29452        key: *const ::std::os::raw::c_char,
29453    ) -> bool;
29454}
29455unsafe extern "C" {
29456    pub fn BNTypeArchiveSerializeSnapshot(
29457        archive: *mut BNTypeArchive,
29458        snapshot: *const ::std::os::raw::c_char,
29459    ) -> *mut BNDataBuffer;
29460}
29461unsafe extern "C" {
29462    pub fn BNTypeArchiveDeserializeSnapshot(
29463        archive: *mut BNTypeArchive,
29464        buffer: *mut BNDataBuffer,
29465    ) -> *mut ::std::os::raw::c_char;
29466}
29467unsafe extern "C" {
29468    pub fn BNTypeArchiveMergeSnapshots(
29469        archive: *mut BNTypeArchive,
29470        baseSnapshot: *const ::std::os::raw::c_char,
29471        firstSnapshot: *const ::std::os::raw::c_char,
29472        secondSnapshot: *const ::std::os::raw::c_char,
29473        mergeConflictKeysIn: *const *const ::std::os::raw::c_char,
29474        mergeConflictValuesIn: *const *const ::std::os::raw::c_char,
29475        mergeConflictCountIn: usize,
29476        mergeConflictsOut: *mut *mut *mut ::std::os::raw::c_char,
29477        mergeConflictCountOut: *mut usize,
29478        result: *mut *mut ::std::os::raw::c_char,
29479        progress: BNProgressFunction,
29480        context: *mut ::std::os::raw::c_void,
29481    ) -> bool;
29482}
29483unsafe extern "C" {
29484    pub fn BNBinaryViewAttachTypeArchive(
29485        view: *mut BNBinaryView,
29486        id: *const ::std::os::raw::c_char,
29487        path: *const ::std::os::raw::c_char,
29488    ) -> *mut BNTypeArchive;
29489}
29490unsafe extern "C" {
29491    pub fn BNBinaryViewDetachTypeArchive(
29492        view: *mut BNBinaryView,
29493        id: *const ::std::os::raw::c_char,
29494    ) -> bool;
29495}
29496unsafe extern "C" {
29497    pub fn BNBinaryViewGetTypeArchive(
29498        view: *mut BNBinaryView,
29499        id: *const ::std::os::raw::c_char,
29500    ) -> *mut BNTypeArchive;
29501}
29502unsafe extern "C" {
29503    pub fn BNBinaryViewGetTypeArchives(
29504        view: *mut BNBinaryView,
29505        ids: *mut *mut *mut ::std::os::raw::c_char,
29506        paths: *mut *mut *mut ::std::os::raw::c_char,
29507    ) -> usize;
29508}
29509unsafe extern "C" {
29510    pub fn BNBinaryViewGetTypeArchivePath(
29511        view: *mut BNBinaryView,
29512        id: *const ::std::os::raw::c_char,
29513    ) -> *mut ::std::os::raw::c_char;
29514}
29515unsafe extern "C" {
29516    pub fn BNBinaryViewGetTypeArchiveTypeNameList(
29517        view: *mut BNBinaryView,
29518        names: *mut *mut BNQualifiedName,
29519    ) -> usize;
29520}
29521unsafe extern "C" {
29522    pub fn BNBinaryViewGetTypeArchiveTypeNames(
29523        view: *mut BNBinaryView,
29524        name: *mut BNQualifiedName,
29525        archiveIds: *mut *mut *mut ::std::os::raw::c_char,
29526        archiveTypeIds: *mut *mut *mut ::std::os::raw::c_char,
29527    ) -> usize;
29528}
29529unsafe extern "C" {
29530    pub fn BNBinaryViewGetAssociatedTypeArchiveTypes(
29531        view: *mut BNBinaryView,
29532        typeIds: *mut *mut *mut ::std::os::raw::c_char,
29533        archiveIds: *mut *mut *mut ::std::os::raw::c_char,
29534        archiveTypeIds: *mut *mut *mut ::std::os::raw::c_char,
29535    ) -> usize;
29536}
29537unsafe extern "C" {
29538    pub fn BNBinaryViewGetAssociatedTypesFromArchive(
29539        view: *mut BNBinaryView,
29540        archiveId: *const ::std::os::raw::c_char,
29541        typeIds: *mut *mut *mut ::std::os::raw::c_char,
29542        archiveTypeIds: *mut *mut *mut ::std::os::raw::c_char,
29543    ) -> usize;
29544}
29545unsafe extern "C" {
29546    pub fn BNBinaryViewGetAssociatedTypeArchiveTypeTarget(
29547        view: *mut BNBinaryView,
29548        typeId: *const ::std::os::raw::c_char,
29549        archiveId: *mut *mut ::std::os::raw::c_char,
29550        archiveTypeId: *mut *mut ::std::os::raw::c_char,
29551    ) -> bool;
29552}
29553unsafe extern "C" {
29554    pub fn BNBinaryViewGetAssociatedTypeArchiveTypeSource(
29555        view: *mut BNBinaryView,
29556        archiveId: *const ::std::os::raw::c_char,
29557        archiveTypeId: *const ::std::os::raw::c_char,
29558        typeId: *mut *mut ::std::os::raw::c_char,
29559    ) -> bool;
29560}
29561unsafe extern "C" {
29562    pub fn BNBinaryViewGetTypeArchiveSyncStatus(
29563        view: *mut BNBinaryView,
29564        typeId: *const ::std::os::raw::c_char,
29565    ) -> BNSyncStatus;
29566}
29567unsafe extern "C" {
29568    pub fn BNBinaryViewDisassociateTypeArchiveType(
29569        view: *mut BNBinaryView,
29570        typeId: *const ::std::os::raw::c_char,
29571    ) -> bool;
29572}
29573unsafe extern "C" {
29574    pub fn BNBinaryViewPullTypeArchiveTypes(
29575        view: *mut BNBinaryView,
29576        archiveId: *const ::std::os::raw::c_char,
29577        archiveTypeIds: *const *const ::std::os::raw::c_char,
29578        archiveTypeIdCount: usize,
29579        updatedArchiveTypeIds: *mut *mut *mut ::std::os::raw::c_char,
29580        updatedAnalysisTypeIds: *mut *mut *mut ::std::os::raw::c_char,
29581        updatedTypeCount: *mut usize,
29582    ) -> bool;
29583}
29584unsafe extern "C" {
29585    pub fn BNBinaryViewPushTypeArchiveTypes(
29586        view: *mut BNBinaryView,
29587        archiveId: *const ::std::os::raw::c_char,
29588        typeIds: *const *const ::std::os::raw::c_char,
29589        typeIdCount: usize,
29590        updatedAnalysisTypeIds: *mut *mut *mut ::std::os::raw::c_char,
29591        updatedArchiveTypeIds: *mut *mut *mut ::std::os::raw::c_char,
29592        updatedTypeCount: *mut usize,
29593    ) -> bool;
29594}
29595unsafe extern "C" {
29596    #[doc = " Base Address Detection"]
29597    pub fn BNCreateBaseAddressDetection(view: *mut BNBinaryView) -> *mut BNBaseAddressDetection;
29598}
29599unsafe extern "C" {
29600    pub fn BNDetectBaseAddress(
29601        bad: *mut BNBaseAddressDetection,
29602        settings: *mut BNBaseAddressDetectionSettings,
29603    ) -> bool;
29604}
29605unsafe extern "C" {
29606    pub fn BNDetectBaseAddressWithInstructionAnalysis(
29607        bad: *mut BNBaseAddressDetection,
29608        settings: *mut BNBaseAddressDetectionInstructionAnalysisSettings,
29609    ) -> bool;
29610}
29611unsafe extern "C" {
29612    pub fn BNDetectBaseAddressWithSampling(
29613        bad: *mut BNBaseAddressDetection,
29614        settings: *mut BNBaseAddressDetectionSamplingSettings,
29615    ) -> bool;
29616}
29617unsafe extern "C" {
29618    pub fn BNGetBaseAddressDetectionScores(
29619        bad: *mut BNBaseAddressDetection,
29620        scores: *mut BNBaseAddressDetectionScore,
29621        count: usize,
29622        confidence: *mut BNBaseAddressDetectionConfidence,
29623        lastTestedBaseAddress: *mut u64,
29624    ) -> usize;
29625}
29626unsafe extern "C" {
29627    pub fn BNGetBaseAddressDetectionReasons(
29628        bad: *mut BNBaseAddressDetection,
29629        baseAddress: u64,
29630        count: *mut usize,
29631    ) -> *mut BNBaseAddressDetectionReason;
29632}
29633unsafe extern "C" {
29634    pub fn BNFreeBaseAddressDetectionReasons(reasons: *mut BNBaseAddressDetectionReason);
29635}
29636unsafe extern "C" {
29637    pub fn BNAbortBaseAddressDetection(bad: *mut BNBaseAddressDetection);
29638}
29639unsafe extern "C" {
29640    pub fn BNIsBaseAddressDetectionAborted(bad: *mut BNBaseAddressDetection) -> bool;
29641}
29642unsafe extern "C" {
29643    pub fn BNFreeBaseAddressDetection(bad: *mut BNBaseAddressDetection);
29644}
29645unsafe extern "C" {
29646    #[doc = " Unicode"]
29647    pub fn BNUnicodeGetBlockRange(
29648        name: *const ::std::os::raw::c_char,
29649        rangeStart: *mut u32,
29650        rangeEnd: *mut u32,
29651    ) -> bool;
29652}
29653unsafe extern "C" {
29654    pub fn BNUnicodeGetBlocksForNames(
29655        names: *const *const ::std::os::raw::c_char,
29656        nameCount: usize,
29657        starts: *mut *mut *mut u32,
29658        ends: *mut *mut *mut u32,
29659        blockListCounts: *mut *mut usize,
29660        blockCount: *mut usize,
29661    );
29662}
29663unsafe extern "C" {
29664    pub fn BNFreeUnicodeBlockList(
29665        starts: *mut *mut u32,
29666        ends: *mut *mut u32,
29667        blockCounts: *mut usize,
29668        blockListCounts: usize,
29669    );
29670}
29671unsafe extern "C" {
29672    pub fn BNUnicodeGetBlockNames(names: *mut *mut *mut ::std::os::raw::c_char, count: *mut usize);
29673}
29674unsafe extern "C" {
29675    pub fn BNUnicodeGetBlockRanges(
29676        names: *mut *mut *mut ::std::os::raw::c_char,
29677        rangeStarts: *mut *mut u32,
29678        rangeEnds: *mut *mut u32,
29679        count: *mut usize,
29680    );
29681}
29682unsafe extern "C" {
29683    pub fn BNFreeUnicodeRangeList(starts: *mut u32, ends: *mut u32);
29684}
29685unsafe extern "C" {
29686    pub fn BNUnicodeGetUTF8String(
29687        starts: *mut *mut u32,
29688        ends: *mut *mut u32,
29689        blockListCounts: *mut usize,
29690        blockCount: usize,
29691        data: *const u8,
29692        offset: usize,
29693        dataLen: usize,
29694    ) -> *mut ::std::os::raw::c_char;
29695}
29696unsafe extern "C" {
29697    pub fn BNUnicodeToEscapedString(
29698        starts: *mut *mut u32,
29699        ends: *mut *mut u32,
29700        blockListCounts: *mut usize,
29701        blockCount: usize,
29702        utf8Enabled: bool,
29703        data: *const ::std::os::raw::c_void,
29704        dataLen: usize,
29705    ) -> *mut ::std::os::raw::c_char;
29706}
29707unsafe extern "C" {
29708    pub fn BNUnicodeToEscapedStringForView(
29709        view: *mut BNBinaryView,
29710        data: *const ::std::os::raw::c_void,
29711        dataLen: usize,
29712    ) -> *mut ::std::os::raw::c_char;
29713}
29714unsafe extern "C" {
29715    pub fn BNUnicodeGetDisplayWidth(str_: *const ::std::os::raw::c_char) -> usize;
29716}
29717unsafe extern "C" {
29718    pub fn BNUnicodeGetNextGraphemeClusterBoundary(
29719        str_: *const ::std::os::raw::c_char,
29720        len: usize,
29721        offset: usize,
29722    ) -> usize;
29723}
29724unsafe extern "C" {
29725    #[doc = " Collaboration"]
29726    pub fn BNCollaborationGetActiveRemote() -> *mut BNRemote;
29727}
29728unsafe extern "C" {
29729    pub fn BNCollaborationSetActiveRemote(remote: *mut BNRemote);
29730}
29731unsafe extern "C" {
29732    pub fn BNCollaborationStoreDataInKeychain(
29733        key: *const ::std::os::raw::c_char,
29734        dataKeys: *mut *const ::std::os::raw::c_char,
29735        dataValues: *mut *const ::std::os::raw::c_char,
29736        dataCount: usize,
29737    ) -> bool;
29738}
29739unsafe extern "C" {
29740    pub fn BNCollaborationHasDataInKeychain(key: *const ::std::os::raw::c_char) -> bool;
29741}
29742unsafe extern "C" {
29743    pub fn BNCollaborationGetDataFromKeychain(
29744        key: *const ::std::os::raw::c_char,
29745        foundKeys: *mut *mut *mut ::std::os::raw::c_char,
29746        foundValues: *mut *mut *mut ::std::os::raw::c_char,
29747    ) -> usize;
29748}
29749unsafe extern "C" {
29750    pub fn BNCollaborationDeleteDataFromKeychain(key: *const ::std::os::raw::c_char) -> bool;
29751}
29752unsafe extern "C" {
29753    pub fn BNCollaborationLoadRemotes() -> bool;
29754}
29755unsafe extern "C" {
29756    pub fn BNCollaborationGetRemotes(count: *mut usize) -> *mut *mut BNRemote;
29757}
29758unsafe extern "C" {
29759    pub fn BNCollaborationGetRemoteById(remoteId: *const ::std::os::raw::c_char) -> *mut BNRemote;
29760}
29761unsafe extern "C" {
29762    pub fn BNCollaborationGetRemoteByAddress(
29763        remoteAddress: *const ::std::os::raw::c_char,
29764    ) -> *mut BNRemote;
29765}
29766unsafe extern "C" {
29767    pub fn BNCollaborationGetRemoteByName(name: *const ::std::os::raw::c_char) -> *mut BNRemote;
29768}
29769unsafe extern "C" {
29770    pub fn BNCollaborationCreateRemote(
29771        name: *const ::std::os::raw::c_char,
29772        address: *const ::std::os::raw::c_char,
29773    ) -> *mut BNRemote;
29774}
29775unsafe extern "C" {
29776    pub fn BNCollaborationRemoveRemote(remote: *mut BNRemote);
29777}
29778unsafe extern "C" {
29779    pub fn BNCollaborationSaveRemotes();
29780}
29781unsafe extern "C" {
29782    pub fn BNCollaborationSyncDatabase(
29783        metadata: *mut BNFileMetadata,
29784        file: *mut BNRemoteFile,
29785        conflictHandler: BNCollaborationAnalysisConflictHandler,
29786        conflictHandlerCtxt: *mut ::std::os::raw::c_void,
29787        progress: BNProgressFunction,
29788        progressCtxt: *mut ::std::os::raw::c_void,
29789        nameChangeset: BNCollaborationNameChangesetFunction,
29790        nameChangesetCtxt: *mut ::std::os::raw::c_void,
29791    ) -> bool;
29792}
29793unsafe extern "C" {
29794    pub fn BNCollaborationSyncTypeArchive(
29795        archive: *mut BNTypeArchive,
29796        file: *mut BNRemoteFile,
29797        conflictHandler: ::std::option::Option<
29798            unsafe extern "C" fn(
29799                arg1: *mut ::std::os::raw::c_void,
29800                conflicts: *mut *mut BNTypeArchiveMergeConflict,
29801                conflictCount: usize,
29802            ) -> bool,
29803        >,
29804        conflictHandlerCtxt: *mut ::std::os::raw::c_void,
29805        progress: BNProgressFunction,
29806        progressCtxt: *mut ::std::os::raw::c_void,
29807    ) -> bool;
29808}
29809unsafe extern "C" {
29810    pub fn BNCollaborationPushTypeArchive(
29811        archive: *mut BNTypeArchive,
29812        file: *mut BNRemoteFile,
29813        count: *mut usize,
29814        progress: BNProgressFunction,
29815        progressCtxt: *mut ::std::os::raw::c_void,
29816    ) -> bool;
29817}
29818unsafe extern "C" {
29819    pub fn BNCollaborationPullTypeArchive(
29820        archive: *mut BNTypeArchive,
29821        file: *mut BNRemoteFile,
29822        count: *mut usize,
29823        conflictHandler: ::std::option::Option<
29824            unsafe extern "C" fn(
29825                arg1: *mut ::std::os::raw::c_void,
29826                conflicts: *mut *mut BNTypeArchiveMergeConflict,
29827                conflictCount: usize,
29828            ) -> bool,
29829        >,
29830        conflictHandlerCtxt: *mut ::std::os::raw::c_void,
29831        progress: BNProgressFunction,
29832        progressCtxt: *mut ::std::os::raw::c_void,
29833    ) -> bool;
29834}
29835unsafe extern "C" {
29836    pub fn BNCollaborationIsCollaborationTypeArchive(archive: *mut BNTypeArchive) -> bool;
29837}
29838unsafe extern "C" {
29839    pub fn BNCollaborationGetRemoteForLocalTypeArchive(
29840        archive: *mut BNTypeArchive,
29841    ) -> *mut BNRemote;
29842}
29843unsafe extern "C" {
29844    pub fn BNCollaborationGetRemoteProjectForLocalTypeArchive(
29845        archive: *mut BNTypeArchive,
29846    ) -> *mut BNRemoteProject;
29847}
29848unsafe extern "C" {
29849    pub fn BNCollaborationGetRemoteFileForLocalTypeArchive(
29850        archive: *mut BNTypeArchive,
29851    ) -> *mut BNRemoteFile;
29852}
29853unsafe extern "C" {
29854    pub fn BNCollaborationGetRemoteSnapshotFromLocalTypeArchive(
29855        archive: *mut BNTypeArchive,
29856        snapshotId: *const ::std::os::raw::c_char,
29857    ) -> *mut BNCollaborationSnapshot;
29858}
29859unsafe extern "C" {
29860    pub fn BNCollaborationGetLocalSnapshotFromRemoteTypeArchive(
29861        snapshot: *mut BNCollaborationSnapshot,
29862        archive: *mut BNTypeArchive,
29863    ) -> *mut ::std::os::raw::c_char;
29864}
29865unsafe extern "C" {
29866    pub fn BNCollaborationIsTypeArchiveSnapshotIgnored(
29867        archive: *mut BNTypeArchive,
29868        snapshot: *const ::std::os::raw::c_char,
29869    ) -> bool;
29870}
29871unsafe extern "C" {
29872    pub fn BNCollaborationSetSnapshotAuthor(
29873        database: *mut BNDatabase,
29874        snapshot: *mut BNSnapshot,
29875        author: *const ::std::os::raw::c_char,
29876    ) -> bool;
29877}
29878unsafe extern "C" {
29879    pub fn BNCollaborationDefaultProjectPath(
29880        project: *mut BNRemoteProject,
29881    ) -> *mut ::std::os::raw::c_char;
29882}
29883unsafe extern "C" {
29884    pub fn BNCollaborationDefaultFilePath(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
29885}
29886unsafe extern "C" {
29887    pub fn BNCollaborationDownloadFile(
29888        file: *mut BNRemoteFile,
29889        dbPath: *const ::std::os::raw::c_char,
29890        progress: BNProgressFunction,
29891        progressContext: *mut ::std::os::raw::c_void,
29892    ) -> *mut BNFileMetadata;
29893}
29894unsafe extern "C" {
29895    pub fn BNCollaborationUploadDatabase(
29896        metadata: *mut BNFileMetadata,
29897        project: *mut BNRemoteProject,
29898        folder: *mut BNRemoteFolder,
29899        progress: BNProgressFunction,
29900        progressContext: *mut ::std::os::raw::c_void,
29901        nameChangeset: BNCollaborationNameChangesetFunction,
29902        nameChangesetContext: *mut ::std::os::raw::c_void,
29903    ) -> *mut BNRemoteFile;
29904}
29905unsafe extern "C" {
29906    pub fn BNCollaborationIsCollaborationDatabase(database: *mut BNDatabase) -> bool;
29907}
29908unsafe extern "C" {
29909    pub fn BNCollaborationGetRemoteForLocalDatabase(
29910        database: *mut BNDatabase,
29911        result: *mut *mut BNRemote,
29912    ) -> bool;
29913}
29914unsafe extern "C" {
29915    pub fn BNCollaborationGetRemoteProjectForLocalDatabase(
29916        database: *mut BNDatabase,
29917        result: *mut *mut BNRemoteProject,
29918    ) -> bool;
29919}
29920unsafe extern "C" {
29921    pub fn BNCollaborationGetRemoteFileForLocalDatabase(
29922        database: *mut BNDatabase,
29923        result: *mut *mut BNRemoteFile,
29924    ) -> bool;
29925}
29926unsafe extern "C" {
29927    pub fn BNCollaborationAssignSnapshotMap(
29928        localSnapshot: *mut BNSnapshot,
29929        remoteSnapshot: *mut BNCollaborationSnapshot,
29930    ) -> bool;
29931}
29932unsafe extern "C" {
29933    pub fn BNCollaborationGetRemoteSnapshotFromLocal(
29934        snapshot: *mut BNSnapshot,
29935        result: *mut *mut BNCollaborationSnapshot,
29936    ) -> bool;
29937}
29938unsafe extern "C" {
29939    pub fn BNCollaborationGetLocalSnapshotFromRemote(
29940        snapshot: *mut BNCollaborationSnapshot,
29941        database: *mut BNDatabase,
29942        result: *mut *mut BNSnapshot,
29943    ) -> bool;
29944}
29945unsafe extern "C" {
29946    pub fn BNCollaborationDownloadTypeArchive(
29947        file: *mut BNRemoteFile,
29948        dbPath: *const ::std::os::raw::c_char,
29949        progress: BNProgressFunction,
29950        progressContext: *mut ::std::os::raw::c_void,
29951        result: *mut *mut BNTypeArchive,
29952    ) -> bool;
29953}
29954unsafe extern "C" {
29955    pub fn BNCollaborationUploadTypeArchive(
29956        archive: *mut BNTypeArchive,
29957        project: *mut BNRemoteProject,
29958        folder: *mut BNRemoteFolder,
29959        progress: BNProgressFunction,
29960        progressContext: *mut ::std::os::raw::c_void,
29961        coreFile: *mut BNProjectFile,
29962        result: *mut *mut BNRemoteFile,
29963    ) -> bool;
29964}
29965unsafe extern "C" {
29966    pub fn BNCollaborationDownloadDatabaseForFile(
29967        file: *mut BNRemoteFile,
29968        dbPath: *const ::std::os::raw::c_char,
29969        force: bool,
29970        progress: BNProgressFunction,
29971        progressContext: *mut ::std::os::raw::c_void,
29972    ) -> bool;
29973}
29974unsafe extern "C" {
29975    pub fn BNCollaborationMergeSnapshots(
29976        first: *mut BNSnapshot,
29977        second: *mut BNSnapshot,
29978        conflictHandler: BNCollaborationAnalysisConflictHandler,
29979        conflictHandlerCtxt: *mut ::std::os::raw::c_void,
29980        progress: BNProgressFunction,
29981        progressContext: *mut ::std::os::raw::c_void,
29982    ) -> *mut BNSnapshot;
29983}
29984unsafe extern "C" {
29985    pub fn BNCollaborationPullDatabase(
29986        database: *mut BNDatabase,
29987        file: *mut BNRemoteFile,
29988        count: *mut usize,
29989        conflictHandler: BNCollaborationAnalysisConflictHandler,
29990        conflictHandlerCtxt: *mut ::std::os::raw::c_void,
29991        progress: BNProgressFunction,
29992        progressContext: *mut ::std::os::raw::c_void,
29993        nameChangeset: BNCollaborationNameChangesetFunction,
29994        nameChangesetContext: *mut ::std::os::raw::c_void,
29995    ) -> bool;
29996}
29997unsafe extern "C" {
29998    pub fn BNCollaborationMergeDatabase(
29999        database: *mut BNDatabase,
30000        conflictHandler: BNCollaborationAnalysisConflictHandler,
30001        conflictHandlerCtxt: *mut ::std::os::raw::c_void,
30002        progress: BNProgressFunction,
30003        progressContext: *mut ::std::os::raw::c_void,
30004    ) -> bool;
30005}
30006unsafe extern "C" {
30007    pub fn BNCollaborationPushDatabase(
30008        database: *mut BNDatabase,
30009        file: *mut BNRemoteFile,
30010        count: *mut usize,
30011        progress: BNProgressFunction,
30012        progressContext: *mut ::std::os::raw::c_void,
30013    ) -> bool;
30014}
30015unsafe extern "C" {
30016    pub fn BNCollaborationDumpDatabase(database: *mut BNDatabase) -> bool;
30017}
30018unsafe extern "C" {
30019    pub fn BNCollaborationIgnoreSnapshot(
30020        database: *mut BNDatabase,
30021        snapshot: *mut BNSnapshot,
30022    ) -> bool;
30023}
30024unsafe extern "C" {
30025    pub fn BNCollaborationIsSnapshotIgnored(
30026        database: *mut BNDatabase,
30027        snapshot: *mut BNSnapshot,
30028    ) -> bool;
30029}
30030unsafe extern "C" {
30031    pub fn BNCollaborationGetSnapshotAuthor(
30032        database: *mut BNDatabase,
30033        snapshot: *mut BNSnapshot,
30034        result: *mut *mut ::std::os::raw::c_char,
30035    ) -> bool;
30036}
30037unsafe extern "C" {
30038    pub fn BNCollaborationFreeIdList(ids: *mut u64, size: usize);
30039}
30040unsafe extern "C" {
30041    pub fn BNCollaborationFreeSnapshotIdList(ids: *mut i64, size: usize);
30042}
30043unsafe extern "C" {
30044    #[doc = " LazyT"]
30045    pub fn BNCollaborationLazyTCreate(
30046        ctor: ::std::option::Option<
30047            unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void) -> *mut ::std::os::raw::c_void,
30048        >,
30049        context: *mut ::std::os::raw::c_void,
30050    ) -> *mut BNCollaborationLazyT;
30051}
30052unsafe extern "C" {
30053    pub fn BNCollaborationLazyTDereference(
30054        lazyT: *mut BNCollaborationLazyT,
30055    ) -> *mut ::std::os::raw::c_void;
30056}
30057unsafe extern "C" {
30058    pub fn BNCollaborationFreeLazyT(lazyT: *mut BNCollaborationLazyT);
30059}
30060unsafe extern "C" {
30061    #[doc = " Remote"]
30062    pub fn BNNewRemoteReference(remote: *mut BNRemote) -> *mut BNRemote;
30063}
30064unsafe extern "C" {
30065    pub fn BNFreeRemote(remote: *mut BNRemote);
30066}
30067unsafe extern "C" {
30068    pub fn BNFreeRemoteList(remotes: *mut *mut BNRemote, count: usize);
30069}
30070unsafe extern "C" {
30071    pub fn BNRemoteGetUniqueId(remote: *mut BNRemote) -> *mut ::std::os::raw::c_char;
30072}
30073unsafe extern "C" {
30074    pub fn BNRemoteGetName(remote: *mut BNRemote) -> *mut ::std::os::raw::c_char;
30075}
30076unsafe extern "C" {
30077    pub fn BNRemoteGetAddress(remote: *mut BNRemote) -> *mut ::std::os::raw::c_char;
30078}
30079unsafe extern "C" {
30080    pub fn BNRemoteHasLoadedMetadata(remote: *mut BNRemote) -> bool;
30081}
30082unsafe extern "C" {
30083    pub fn BNRemoteIsConnected(remote: *mut BNRemote) -> bool;
30084}
30085unsafe extern "C" {
30086    pub fn BNRemoteGetUsername(remote: *mut BNRemote) -> *mut ::std::os::raw::c_char;
30087}
30088unsafe extern "C" {
30089    pub fn BNRemoteGetToken(remote: *mut BNRemote) -> *mut ::std::os::raw::c_char;
30090}
30091unsafe extern "C" {
30092    pub fn BNRemoteGetServerVersion(remote: *mut BNRemote) -> ::std::os::raw::c_int;
30093}
30094unsafe extern "C" {
30095    pub fn BNRemoteGetServerBuildVersion(remote: *mut BNRemote) -> BNVersionInfo;
30096}
30097unsafe extern "C" {
30098    pub fn BNRemoteGetServerBuildId(remote: *mut BNRemote) -> *mut ::std::os::raw::c_char;
30099}
30100unsafe extern "C" {
30101    pub fn BNRemoteGetAuthBackends(
30102        remote: *mut BNRemote,
30103        backendIds: *mut *mut *mut ::std::os::raw::c_char,
30104        backendNames: *mut *mut *mut ::std::os::raw::c_char,
30105        count: *mut usize,
30106    ) -> bool;
30107}
30108unsafe extern "C" {
30109    pub fn BNRemoteHasPulledProjects(remote: *mut BNRemote) -> bool;
30110}
30111unsafe extern "C" {
30112    pub fn BNRemoteHasPulledUsers(remote: *mut BNRemote) -> bool;
30113}
30114unsafe extern "C" {
30115    pub fn BNRemoteHasPulledGroups(remote: *mut BNRemote) -> bool;
30116}
30117unsafe extern "C" {
30118    pub fn BNRemoteIsAdmin(remote: *mut BNRemote) -> bool;
30119}
30120unsafe extern "C" {
30121    pub fn BNRemoteIsEnterprise(remote: *mut BNRemote) -> bool;
30122}
30123unsafe extern "C" {
30124    pub fn BNRemoteLoadMetadata(remote: *mut BNRemote) -> bool;
30125}
30126unsafe extern "C" {
30127    pub fn BNRemoteRequestAuthenticationToken(
30128        remote: *mut BNRemote,
30129        username: *const ::std::os::raw::c_char,
30130        password: *const ::std::os::raw::c_char,
30131    ) -> *mut ::std::os::raw::c_char;
30132}
30133unsafe extern "C" {
30134    pub fn BNRemoteConnect(
30135        remote: *mut BNRemote,
30136        username: *const ::std::os::raw::c_char,
30137        token: *const ::std::os::raw::c_char,
30138    ) -> bool;
30139}
30140unsafe extern "C" {
30141    pub fn BNRemoteDisconnect(remote: *mut BNRemote) -> bool;
30142}
30143unsafe extern "C" {
30144    pub fn BNRemoteGetProjects(
30145        remote: *mut BNRemote,
30146        count: *mut usize,
30147    ) -> *mut *mut BNRemoteProject;
30148}
30149unsafe extern "C" {
30150    pub fn BNRemoteGetProjectById(
30151        remote: *mut BNRemote,
30152        id: *const ::std::os::raw::c_char,
30153    ) -> *mut BNRemoteProject;
30154}
30155unsafe extern "C" {
30156    pub fn BNRemoteGetProjectByName(
30157        remote: *mut BNRemote,
30158        name: *const ::std::os::raw::c_char,
30159    ) -> *mut BNRemoteProject;
30160}
30161unsafe extern "C" {
30162    pub fn BNRemotePullProjects(
30163        remote: *mut BNRemote,
30164        progress: BNProgressFunction,
30165        progressContext: *mut ::std::os::raw::c_void,
30166    ) -> bool;
30167}
30168unsafe extern "C" {
30169    pub fn BNRemoteCreateProject(
30170        remote: *mut BNRemote,
30171        name: *const ::std::os::raw::c_char,
30172        description: *const ::std::os::raw::c_char,
30173    ) -> *mut BNRemoteProject;
30174}
30175unsafe extern "C" {
30176    pub fn BNRemoteImportLocalProject(
30177        remote: *mut BNRemote,
30178        localProject: *mut BNProject,
30179        progress: BNProgressFunction,
30180        progressCtxt: *mut ::std::os::raw::c_void,
30181    ) -> *mut BNRemoteProject;
30182}
30183unsafe extern "C" {
30184    pub fn BNRemotePushProject(
30185        remote: *mut BNRemote,
30186        project: *mut BNRemoteProject,
30187        extraFieldKeys: *mut *const ::std::os::raw::c_char,
30188        extraFieldValues: *mut *const ::std::os::raw::c_char,
30189        extraFieldCount: usize,
30190    ) -> bool;
30191}
30192unsafe extern "C" {
30193    pub fn BNRemoteDeleteProject(remote: *mut BNRemote, project: *mut BNRemoteProject) -> bool;
30194}
30195unsafe extern "C" {
30196    pub fn BNRemoteGetGroups(
30197        remote: *mut BNRemote,
30198        count: *mut usize,
30199    ) -> *mut *mut BNCollaborationGroup;
30200}
30201unsafe extern "C" {
30202    pub fn BNRemoteGetGroupById(remote: *mut BNRemote, id: u64) -> *mut BNCollaborationGroup;
30203}
30204unsafe extern "C" {
30205    pub fn BNRemoteGetGroupByName(
30206        remote: *mut BNRemote,
30207        name: *const ::std::os::raw::c_char,
30208    ) -> *mut BNCollaborationGroup;
30209}
30210unsafe extern "C" {
30211    pub fn BNRemoteSearchGroups(
30212        remote: *mut BNRemote,
30213        prefix: *const ::std::os::raw::c_char,
30214        groupIds: *mut *mut u64,
30215        groupNames: *mut *mut *mut ::std::os::raw::c_char,
30216        count: *mut usize,
30217    ) -> bool;
30218}
30219unsafe extern "C" {
30220    pub fn BNRemotePullGroups(
30221        remote: *mut BNRemote,
30222        progress: BNProgressFunction,
30223        progressContext: *mut ::std::os::raw::c_void,
30224    ) -> bool;
30225}
30226unsafe extern "C" {
30227    pub fn BNRemoteCreateGroup(
30228        remote: *mut BNRemote,
30229        name: *const ::std::os::raw::c_char,
30230        users: *mut *mut BNCollaborationUser,
30231        userCount: usize,
30232    ) -> *mut BNCollaborationGroup;
30233}
30234unsafe extern "C" {
30235    pub fn BNRemotePushGroup(
30236        remote: *mut BNRemote,
30237        group: *mut BNCollaborationGroup,
30238        extraFieldKeys: *mut *const ::std::os::raw::c_char,
30239        extraFieldValues: *mut *const ::std::os::raw::c_char,
30240        extraFieldCount: usize,
30241    ) -> bool;
30242}
30243unsafe extern "C" {
30244    pub fn BNRemoteDeleteGroup(remote: *mut BNRemote, group: *mut BNCollaborationGroup) -> bool;
30245}
30246unsafe extern "C" {
30247    pub fn BNRemoteGetUsers(
30248        remote: *mut BNRemote,
30249        count: *mut usize,
30250    ) -> *mut *mut BNCollaborationUser;
30251}
30252unsafe extern "C" {
30253    pub fn BNRemoteGetUserById(
30254        remote: *mut BNRemote,
30255        id: *const ::std::os::raw::c_char,
30256    ) -> *mut BNCollaborationUser;
30257}
30258unsafe extern "C" {
30259    pub fn BNRemoteGetUserByUsername(
30260        remote: *mut BNRemote,
30261        username: *const ::std::os::raw::c_char,
30262    ) -> *mut BNCollaborationUser;
30263}
30264unsafe extern "C" {
30265    pub fn BNRemoteGetCurrentUser(remote: *mut BNRemote) -> *mut BNCollaborationUser;
30266}
30267unsafe extern "C" {
30268    pub fn BNRemoteSearchUsers(
30269        remote: *mut BNRemote,
30270        prefix: *const ::std::os::raw::c_char,
30271        userIds: *mut *mut *mut ::std::os::raw::c_char,
30272        usernames: *mut *mut *mut ::std::os::raw::c_char,
30273        count: *mut usize,
30274    ) -> bool;
30275}
30276unsafe extern "C" {
30277    pub fn BNRemoteFindFiles(
30278        remote: *mut BNRemote,
30279        name: *const ::std::os::raw::c_char,
30280        count: *mut usize,
30281    ) -> *mut BNRemoteFileSearchMatch;
30282}
30283unsafe extern "C" {
30284    pub fn BNFreeRemoteFileSearchMatchList(matches: *mut BNRemoteFileSearchMatch, count: usize);
30285}
30286unsafe extern "C" {
30287    pub fn BNRemotePullUsers(
30288        remote: *mut BNRemote,
30289        progress: BNProgressFunction,
30290        progressContext: *mut ::std::os::raw::c_void,
30291    ) -> bool;
30292}
30293unsafe extern "C" {
30294    pub fn BNRemoteCreateUser(
30295        remote: *mut BNRemote,
30296        username: *const ::std::os::raw::c_char,
30297        email: *const ::std::os::raw::c_char,
30298        isActive: bool,
30299        password: *const ::std::os::raw::c_char,
30300        groupIds: *const u64,
30301        groupIdCount: usize,
30302        userPermissionIds: *const u64,
30303        userPermissionIdCount: usize,
30304    ) -> *mut BNCollaborationUser;
30305}
30306unsafe extern "C" {
30307    pub fn BNRemotePushUser(
30308        remote: *mut BNRemote,
30309        user: *mut BNCollaborationUser,
30310        extraFieldKeys: *mut *const ::std::os::raw::c_char,
30311        extraFieldValues: *mut *const ::std::os::raw::c_char,
30312        extraFieldCount: usize,
30313    ) -> bool;
30314}
30315unsafe extern "C" {
30316    pub fn BNRemoteRequest(
30317        remote: *mut BNRemote,
30318        request: *mut ::std::os::raw::c_void,
30319        ret: *mut ::std::os::raw::c_void,
30320    ) -> ::std::os::raw::c_int;
30321}
30322unsafe extern "C" {
30323    #[doc = " CollabGroup"]
30324    pub fn BNNewCollaborationGroupReference(
30325        group: *mut BNCollaborationGroup,
30326    ) -> *mut BNCollaborationGroup;
30327}
30328unsafe extern "C" {
30329    pub fn BNFreeCollaborationGroup(group: *mut BNCollaborationGroup);
30330}
30331unsafe extern "C" {
30332    pub fn BNFreeCollaborationGroupList(group: *mut *mut BNCollaborationGroup, count: usize);
30333}
30334unsafe extern "C" {
30335    pub fn BNCollaborationGroupGetRemote(group: *mut BNCollaborationGroup) -> *mut BNRemote;
30336}
30337unsafe extern "C" {
30338    pub fn BNCollaborationGroupGetUrl(
30339        group: *mut BNCollaborationGroup,
30340    ) -> *mut ::std::os::raw::c_char;
30341}
30342unsafe extern "C" {
30343    pub fn BNCollaborationGroupGetId(group: *mut BNCollaborationGroup) -> u64;
30344}
30345unsafe extern "C" {
30346    pub fn BNCollaborationGroupGetName(
30347        group: *mut BNCollaborationGroup,
30348    ) -> *mut ::std::os::raw::c_char;
30349}
30350unsafe extern "C" {
30351    pub fn BNCollaborationGroupSetName(
30352        group: *mut BNCollaborationGroup,
30353        name: *const ::std::os::raw::c_char,
30354    );
30355}
30356unsafe extern "C" {
30357    pub fn BNCollaborationGroupGetUsers(
30358        group: *mut BNCollaborationGroup,
30359        count: *mut usize,
30360    ) -> *mut *mut BNCollaborationUser;
30361}
30362unsafe extern "C" {
30363    pub fn BNCollaborationGroupSetUsers(
30364        group: *mut BNCollaborationGroup,
30365        users: *mut *mut BNCollaborationUser,
30366        count: usize,
30367    ) -> bool;
30368}
30369unsafe extern "C" {
30370    pub fn BNCollaborationGroupContainsUser(
30371        group: *mut BNCollaborationGroup,
30372        user: *mut BNCollaborationUser,
30373    ) -> bool;
30374}
30375unsafe extern "C" {
30376    #[doc = " CollabUser"]
30377    pub fn BNNewCollaborationUserReference(
30378        user: *mut BNCollaborationUser,
30379    ) -> *mut BNCollaborationUser;
30380}
30381unsafe extern "C" {
30382    pub fn BNFreeCollaborationUser(user: *mut BNCollaborationUser);
30383}
30384unsafe extern "C" {
30385    pub fn BNFreeCollaborationUserList(users: *mut *mut BNCollaborationUser, count: usize);
30386}
30387unsafe extern "C" {
30388    pub fn BNCollaborationUserGetRemote(user: *mut BNCollaborationUser) -> *mut BNRemote;
30389}
30390unsafe extern "C" {
30391    pub fn BNCollaborationUserGetUrl(user: *mut BNCollaborationUser)
30392    -> *mut ::std::os::raw::c_char;
30393}
30394unsafe extern "C" {
30395    pub fn BNCollaborationUserGetId(user: *mut BNCollaborationUser) -> *mut ::std::os::raw::c_char;
30396}
30397unsafe extern "C" {
30398    pub fn BNCollaborationUserGetUsername(
30399        user: *mut BNCollaborationUser,
30400    ) -> *mut ::std::os::raw::c_char;
30401}
30402unsafe extern "C" {
30403    pub fn BNCollaborationUserGetEmail(
30404        user: *mut BNCollaborationUser,
30405    ) -> *mut ::std::os::raw::c_char;
30406}
30407unsafe extern "C" {
30408    pub fn BNCollaborationUserGetLastLogin(
30409        user: *mut BNCollaborationUser,
30410    ) -> *mut ::std::os::raw::c_char;
30411}
30412unsafe extern "C" {
30413    pub fn BNCollaborationUserIsActive(user: *mut BNCollaborationUser) -> bool;
30414}
30415unsafe extern "C" {
30416    pub fn BNCollaborationUserSetUsername(
30417        user: *mut BNCollaborationUser,
30418        username: *const ::std::os::raw::c_char,
30419    ) -> bool;
30420}
30421unsafe extern "C" {
30422    pub fn BNCollaborationUserSetEmail(
30423        user: *mut BNCollaborationUser,
30424        email: *const ::std::os::raw::c_char,
30425    ) -> bool;
30426}
30427unsafe extern "C" {
30428    pub fn BNCollaborationUserSetIsActive(user: *mut BNCollaborationUser, isActive: bool) -> bool;
30429}
30430unsafe extern "C" {
30431    #[doc = " RemoteProject"]
30432    pub fn BNNewRemoteProjectReference(project: *mut BNRemoteProject) -> *mut BNRemoteProject;
30433}
30434unsafe extern "C" {
30435    pub fn BNFreeRemoteProject(project: *mut BNRemoteProject);
30436}
30437unsafe extern "C" {
30438    pub fn BNFreeRemoteProjectList(projects: *mut *mut BNRemoteProject, count: usize);
30439}
30440unsafe extern "C" {
30441    pub fn BNRemoteProjectGetCoreProject(project: *mut BNRemoteProject) -> *mut BNProject;
30442}
30443unsafe extern "C" {
30444    pub fn BNRemoteProjectIsOpen(project: *mut BNRemoteProject) -> bool;
30445}
30446unsafe extern "C" {
30447    pub fn BNRemoteProjectOpen(
30448        project: *mut BNRemoteProject,
30449        progress: BNProgressFunction,
30450        progressCtxt: *mut ::std::os::raw::c_void,
30451    ) -> bool;
30452}
30453unsafe extern "C" {
30454    pub fn BNRemoteProjectClose(project: *mut BNRemoteProject);
30455}
30456unsafe extern "C" {
30457    pub fn BNRemoteProjectGetRemote(project: *mut BNRemoteProject) -> *mut BNRemote;
30458}
30459unsafe extern "C" {
30460    pub fn BNRemoteProjectGetUrl(project: *mut BNRemoteProject) -> *mut ::std::os::raw::c_char;
30461}
30462unsafe extern "C" {
30463    pub fn BNRemoteProjectGetCreated(project: *mut BNRemoteProject) -> i64;
30464}
30465unsafe extern "C" {
30466    pub fn BNRemoteProjectGetLastModified(project: *mut BNRemoteProject) -> i64;
30467}
30468unsafe extern "C" {
30469    pub fn BNRemoteProjectGetId(project: *mut BNRemoteProject) -> *mut ::std::os::raw::c_char;
30470}
30471unsafe extern "C" {
30472    pub fn BNRemoteProjectGetName(project: *mut BNRemoteProject) -> *mut ::std::os::raw::c_char;
30473}
30474unsafe extern "C" {
30475    pub fn BNRemoteProjectSetName(
30476        project: *mut BNRemoteProject,
30477        name: *const ::std::os::raw::c_char,
30478    ) -> bool;
30479}
30480unsafe extern "C" {
30481    pub fn BNRemoteProjectGetDescription(
30482        project: *mut BNRemoteProject,
30483    ) -> *mut ::std::os::raw::c_char;
30484}
30485unsafe extern "C" {
30486    pub fn BNRemoteProjectSetDescription(
30487        project: *mut BNRemoteProject,
30488        description: *const ::std::os::raw::c_char,
30489    ) -> bool;
30490}
30491unsafe extern "C" {
30492    pub fn BNRemoteProjectGetReceivedFileCount(project: *mut BNRemoteProject) -> u64;
30493}
30494unsafe extern "C" {
30495    pub fn BNRemoteProjectGetReceivedFolderCount(project: *mut BNRemoteProject) -> u64;
30496}
30497unsafe extern "C" {
30498    pub fn BNRemoteProjectHasPulledFiles(project: *mut BNRemoteProject) -> bool;
30499}
30500unsafe extern "C" {
30501    pub fn BNRemoteProjectHasPulledFolders(project: *mut BNRemoteProject) -> bool;
30502}
30503unsafe extern "C" {
30504    pub fn BNRemoteProjectHasPulledGroupPermissions(project: *mut BNRemoteProject) -> bool;
30505}
30506unsafe extern "C" {
30507    pub fn BNRemoteProjectHasPulledUserPermissions(project: *mut BNRemoteProject) -> bool;
30508}
30509unsafe extern "C" {
30510    pub fn BNRemoteProjectIsAdmin(project: *mut BNRemoteProject) -> bool;
30511}
30512unsafe extern "C" {
30513    pub fn BNRemoteProjectGetFiles(
30514        project: *mut BNRemoteProject,
30515        count: *mut usize,
30516    ) -> *mut *mut BNRemoteFile;
30517}
30518unsafe extern "C" {
30519    pub fn BNRemoteProjectGetFileById(
30520        project: *mut BNRemoteProject,
30521        id: *const ::std::os::raw::c_char,
30522    ) -> *mut BNRemoteFile;
30523}
30524unsafe extern "C" {
30525    pub fn BNRemoteProjectGetFileByName(
30526        project: *mut BNRemoteProject,
30527        name: *const ::std::os::raw::c_char,
30528    ) -> *mut BNRemoteFile;
30529}
30530unsafe extern "C" {
30531    pub fn BNRemoteProjectPullFiles(
30532        project: *mut BNRemoteProject,
30533        progress: BNProgressFunction,
30534        progressContext: *mut ::std::os::raw::c_void,
30535    ) -> bool;
30536}
30537unsafe extern "C" {
30538    pub fn BNRemoteProjectCreateFile(
30539        project: *mut BNRemoteProject,
30540        filename: *const ::std::os::raw::c_char,
30541        contents: *mut u8,
30542        contentsSize: usize,
30543        name: *const ::std::os::raw::c_char,
30544        description: *const ::std::os::raw::c_char,
30545        folder: *mut BNRemoteFolder,
30546        type_: BNRemoteFileType,
30547        progress: BNProgressFunction,
30548        progressContext: *mut ::std::os::raw::c_void,
30549    ) -> *mut BNRemoteFile;
30550}
30551unsafe extern "C" {
30552    pub fn BNRemoteProjectPushFile(
30553        project: *mut BNRemoteProject,
30554        file: *mut BNRemoteFile,
30555        extraFieldKeys: *mut *const ::std::os::raw::c_char,
30556        extraFieldValues: *mut *const ::std::os::raw::c_char,
30557        extraFieldCount: usize,
30558    ) -> bool;
30559}
30560unsafe extern "C" {
30561    pub fn BNRemoteProjectDeleteFile(
30562        project: *mut BNRemoteProject,
30563        file: *mut BNRemoteFile,
30564    ) -> bool;
30565}
30566unsafe extern "C" {
30567    pub fn BNRemoteProjectGetFolders(
30568        project: *mut BNRemoteProject,
30569        count: *mut usize,
30570    ) -> *mut *mut BNRemoteFolder;
30571}
30572unsafe extern "C" {
30573    pub fn BNRemoteProjectGetFolderById(
30574        project: *mut BNRemoteProject,
30575        id: *const ::std::os::raw::c_char,
30576    ) -> *mut BNRemoteFolder;
30577}
30578unsafe extern "C" {
30579    pub fn BNRemoteProjectPullFolders(
30580        project: *mut BNRemoteProject,
30581        progress: BNProgressFunction,
30582        progressContext: *mut ::std::os::raw::c_void,
30583    ) -> bool;
30584}
30585unsafe extern "C" {
30586    pub fn BNRemoteProjectCreateFolder(
30587        project: *mut BNRemoteProject,
30588        name: *const ::std::os::raw::c_char,
30589        description: *const ::std::os::raw::c_char,
30590        parent: *mut BNRemoteFolder,
30591        progress: BNProgressFunction,
30592        progressContext: *mut ::std::os::raw::c_void,
30593    ) -> *mut BNRemoteFolder;
30594}
30595unsafe extern "C" {
30596    pub fn BNRemoteProjectPushFolder(
30597        project: *mut BNRemoteProject,
30598        folder: *mut BNRemoteFolder,
30599        extraFieldKeys: *mut *const ::std::os::raw::c_char,
30600        extraFieldValues: *mut *const ::std::os::raw::c_char,
30601        extraFieldCount: usize,
30602    ) -> bool;
30603}
30604unsafe extern "C" {
30605    pub fn BNRemoteProjectDeleteFolder(
30606        project: *mut BNRemoteProject,
30607        folder: *mut BNRemoteFolder,
30608    ) -> bool;
30609}
30610unsafe extern "C" {
30611    pub fn BNRemoteProjectGetGroupPermissions(
30612        project: *mut BNRemoteProject,
30613        count: *mut usize,
30614    ) -> *mut *mut BNCollaborationPermission;
30615}
30616unsafe extern "C" {
30617    pub fn BNRemoteProjectGetUserPermissions(
30618        project: *mut BNRemoteProject,
30619        count: *mut usize,
30620    ) -> *mut *mut BNCollaborationPermission;
30621}
30622unsafe extern "C" {
30623    pub fn BNRemoteProjectGetPermissionById(
30624        project: *mut BNRemoteProject,
30625        id: *const ::std::os::raw::c_char,
30626    ) -> *mut BNCollaborationPermission;
30627}
30628unsafe extern "C" {
30629    pub fn BNRemoteProjectPullGroupPermissions(
30630        project: *mut BNRemoteProject,
30631        progress: BNProgressFunction,
30632        progressContext: *mut ::std::os::raw::c_void,
30633    ) -> bool;
30634}
30635unsafe extern "C" {
30636    pub fn BNRemoteProjectPullUserPermissions(
30637        project: *mut BNRemoteProject,
30638        progress: BNProgressFunction,
30639        progressContext: *mut ::std::os::raw::c_void,
30640    ) -> bool;
30641}
30642unsafe extern "C" {
30643    pub fn BNRemoteProjectCreateGroupPermission(
30644        project: *mut BNRemoteProject,
30645        groupId: i64,
30646        level: BNCollaborationPermissionLevel,
30647        progress: BNProgressFunction,
30648        progressContext: *mut ::std::os::raw::c_void,
30649    ) -> *mut BNCollaborationPermission;
30650}
30651unsafe extern "C" {
30652    pub fn BNRemoteProjectCreateUserPermission(
30653        project: *mut BNRemoteProject,
30654        userId: *const ::std::os::raw::c_char,
30655        level: BNCollaborationPermissionLevel,
30656        progress: BNProgressFunction,
30657        progressContext: *mut ::std::os::raw::c_void,
30658    ) -> *mut BNCollaborationPermission;
30659}
30660unsafe extern "C" {
30661    pub fn BNRemoteProjectPushPermission(
30662        project: *mut BNRemoteProject,
30663        permission: *mut BNCollaborationPermission,
30664        extraFieldKeys: *mut *const ::std::os::raw::c_char,
30665        extraFieldValues: *mut *const ::std::os::raw::c_char,
30666        extraFieldCount: usize,
30667    ) -> bool;
30668}
30669unsafe extern "C" {
30670    pub fn BNRemoteProjectDeletePermission(
30671        project: *mut BNRemoteProject,
30672        permission: *mut BNCollaborationPermission,
30673    ) -> bool;
30674}
30675unsafe extern "C" {
30676    pub fn BNRemoteProjectCanUserView(
30677        project: *mut BNRemoteProject,
30678        user: *mut BNCollaborationUser,
30679    ) -> bool;
30680}
30681unsafe extern "C" {
30682    pub fn BNRemoteProjectCanUserEdit(
30683        project: *mut BNRemoteProject,
30684        user: *mut BNCollaborationUser,
30685    ) -> bool;
30686}
30687unsafe extern "C" {
30688    pub fn BNRemoteProjectCanUserAdmin(
30689        project: *mut BNRemoteProject,
30690        user: *mut BNCollaborationUser,
30691    ) -> bool;
30692}
30693unsafe extern "C" {
30694    #[doc = " RemoteFile"]
30695    pub fn BNNewRemoteFileReference(file: *mut BNRemoteFile) -> *mut BNRemoteFile;
30696}
30697unsafe extern "C" {
30698    pub fn BNFreeRemoteFile(file: *mut BNRemoteFile);
30699}
30700unsafe extern "C" {
30701    pub fn BNFreeRemoteFileList(files: *mut *mut BNRemoteFile, count: usize);
30702}
30703unsafe extern "C" {
30704    pub fn BNRemoteFileGetCoreFile(file: *mut BNRemoteFile) -> *mut BNProjectFile;
30705}
30706unsafe extern "C" {
30707    pub fn BNRemoteFileGetProject(file: *mut BNRemoteFile) -> *mut BNRemoteProject;
30708}
30709unsafe extern "C" {
30710    pub fn BNRemoteFileGetFolder(file: *mut BNRemoteFile) -> *mut BNRemoteFolder;
30711}
30712unsafe extern "C" {
30713    pub fn BNRemoteFileGetRemote(file: *mut BNRemoteFile) -> *mut BNRemote;
30714}
30715unsafe extern "C" {
30716    pub fn BNRemoteFileGetUrl(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
30717}
30718unsafe extern "C" {
30719    pub fn BNRemoteFileGetChatLogUrl(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
30720}
30721unsafe extern "C" {
30722    pub fn BNRemoteFileGetUserPositionsUrl(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
30723}
30724unsafe extern "C" {
30725    pub fn BNRemoteFileGetId(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
30726}
30727unsafe extern "C" {
30728    pub fn BNRemoteFileGetType(file: *mut BNRemoteFile) -> BNRemoteFileType;
30729}
30730unsafe extern "C" {
30731    pub fn BNRemoteFileGetCreated(file: *mut BNRemoteFile) -> i64;
30732}
30733unsafe extern "C" {
30734    pub fn BNRemoteFileGetCreatedBy(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
30735}
30736unsafe extern "C" {
30737    pub fn BNRemoteFileGetLastModified(file: *mut BNRemoteFile) -> i64;
30738}
30739unsafe extern "C" {
30740    pub fn BNRemoteFileGetLastSnapshot(file: *mut BNRemoteFile) -> i64;
30741}
30742unsafe extern "C" {
30743    pub fn BNRemoteFileGetLastSnapshotBy(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
30744}
30745unsafe extern "C" {
30746    pub fn BNRemoteFileGetLastSnapshotName(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
30747}
30748unsafe extern "C" {
30749    pub fn BNRemoteFileGetHash(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
30750}
30751unsafe extern "C" {
30752    pub fn BNRemoteFileGetName(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
30753}
30754unsafe extern "C" {
30755    pub fn BNRemoteFileGetDescription(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
30756}
30757unsafe extern "C" {
30758    pub fn BNRemoteFileGetMetadata(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
30759}
30760unsafe extern "C" {
30761    pub fn BNRemoteFileGetSize(file: *mut BNRemoteFile) -> u64;
30762}
30763unsafe extern "C" {
30764    pub fn BNRemoteFileHasPulledSnapshots(file: *mut BNRemoteFile) -> bool;
30765}
30766unsafe extern "C" {
30767    pub fn BNRemoteFileSetName(
30768        file: *mut BNRemoteFile,
30769        name: *const ::std::os::raw::c_char,
30770    ) -> bool;
30771}
30772unsafe extern "C" {
30773    pub fn BNRemoteFileSetDescription(
30774        file: *mut BNRemoteFile,
30775        description: *const ::std::os::raw::c_char,
30776    ) -> bool;
30777}
30778unsafe extern "C" {
30779    pub fn BNRemoteFileSetFolder(file: *mut BNRemoteFile, folder: *mut BNRemoteFolder) -> bool;
30780}
30781unsafe extern "C" {
30782    pub fn BNRemoteFileSetMetadata(
30783        file: *mut BNRemoteFile,
30784        metadata: *const ::std::os::raw::c_char,
30785    ) -> bool;
30786}
30787unsafe extern "C" {
30788    pub fn BNRemoteFileGetSnapshots(
30789        file: *mut BNRemoteFile,
30790        count: *mut usize,
30791    ) -> *mut *mut BNCollaborationSnapshot;
30792}
30793unsafe extern "C" {
30794    pub fn BNRemoteFileGetSnapshotById(
30795        file: *mut BNRemoteFile,
30796        id: *const ::std::os::raw::c_char,
30797    ) -> *mut BNCollaborationSnapshot;
30798}
30799unsafe extern "C" {
30800    pub fn BNRemoteFilePullSnapshots(
30801        file: *mut BNRemoteFile,
30802        progress: BNProgressFunction,
30803        progressContext: *mut ::std::os::raw::c_void,
30804    ) -> bool;
30805}
30806unsafe extern "C" {
30807    pub fn BNRemoteFileCreateSnapshot(
30808        file: *mut BNRemoteFile,
30809        name: *const ::std::os::raw::c_char,
30810        contents: *mut u8,
30811        contentsSize: usize,
30812        analysisCacheContents: *mut u8,
30813        analysisCacheContentsSize: usize,
30814        fileContents: *mut u8,
30815        fileContentsSize: usize,
30816        parentIds: *mut *const ::std::os::raw::c_char,
30817        parentIdCount: usize,
30818        progress: BNProgressFunction,
30819        progressContext: *mut ::std::os::raw::c_void,
30820    ) -> *mut BNCollaborationSnapshot;
30821}
30822unsafe extern "C" {
30823    pub fn BNRemoteFileDeleteSnapshot(
30824        file: *mut BNRemoteFile,
30825        snapshot: *mut BNCollaborationSnapshot,
30826    ) -> bool;
30827}
30828unsafe extern "C" {
30829    pub fn BNRemoteFileDownload(
30830        file: *mut BNRemoteFile,
30831        progress: BNProgressFunction,
30832        progressCtxt: *mut ::std::os::raw::c_void,
30833    ) -> bool;
30834}
30835unsafe extern "C" {
30836    pub fn BNRemoteFileDownloadContents(
30837        file: *mut BNRemoteFile,
30838        progress: BNProgressFunction,
30839        progressCtxt: *mut ::std::os::raw::c_void,
30840        data: *mut *mut u8,
30841        size: *mut usize,
30842    ) -> bool;
30843}
30844unsafe extern "C" {
30845    pub fn BNRemoteFileRequestUserPositions(file: *mut BNRemoteFile)
30846    -> *mut ::std::os::raw::c_char;
30847}
30848unsafe extern "C" {
30849    pub fn BNRemoteFileRequestChatLog(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
30850}
30851unsafe extern "C" {
30852    #[doc = " RemoteFolder"]
30853    pub fn BNNewRemoteFolderReference(folder: *mut BNRemoteFolder) -> *mut BNRemoteFolder;
30854}
30855unsafe extern "C" {
30856    pub fn BNFreeRemoteFolder(folder: *mut BNRemoteFolder);
30857}
30858unsafe extern "C" {
30859    pub fn BNFreeRemoteFolderList(folders: *mut *mut BNRemoteFolder, count: usize);
30860}
30861unsafe extern "C" {
30862    pub fn BNRemoteFolderGetCoreFolder(folder: *mut BNRemoteFolder) -> *mut BNProjectFolder;
30863}
30864unsafe extern "C" {
30865    pub fn BNRemoteFolderGetProject(folder: *mut BNRemoteFolder) -> *mut BNRemoteProject;
30866}
30867unsafe extern "C" {
30868    pub fn BNRemoteFolderGetRemote(folder: *mut BNRemoteFolder) -> *mut BNRemote;
30869}
30870unsafe extern "C" {
30871    pub fn BNRemoteFolderGetParent(
30872        folder: *mut BNRemoteFolder,
30873        parent: *mut *mut BNRemoteFolder,
30874    ) -> bool;
30875}
30876unsafe extern "C" {
30877    pub fn BNRemoteFolderGetUrl(folder: *mut BNRemoteFolder) -> *mut ::std::os::raw::c_char;
30878}
30879unsafe extern "C" {
30880    pub fn BNRemoteFolderGetId(folder: *mut BNRemoteFolder) -> *mut ::std::os::raw::c_char;
30881}
30882unsafe extern "C" {
30883    pub fn BNRemoteFolderGetParentId(
30884        folder: *mut BNRemoteFolder,
30885        result: *mut *mut ::std::os::raw::c_char,
30886    ) -> bool;
30887}
30888unsafe extern "C" {
30889    pub fn BNRemoteFolderGetName(folder: *mut BNRemoteFolder) -> *mut ::std::os::raw::c_char;
30890}
30891unsafe extern "C" {
30892    pub fn BNRemoteFolderGetDescription(folder: *mut BNRemoteFolder)
30893    -> *mut ::std::os::raw::c_char;
30894}
30895unsafe extern "C" {
30896    pub fn BNRemoteFolderSetName(
30897        folder: *mut BNRemoteFolder,
30898        name: *const ::std::os::raw::c_char,
30899    ) -> bool;
30900}
30901unsafe extern "C" {
30902    pub fn BNRemoteFolderSetDescription(
30903        folder: *mut BNRemoteFolder,
30904        description: *const ::std::os::raw::c_char,
30905    ) -> bool;
30906}
30907unsafe extern "C" {
30908    pub fn BNRemoteFolderSetParent(
30909        folder: *mut BNRemoteFolder,
30910        parent: *mut BNRemoteFolder,
30911    ) -> bool;
30912}
30913unsafe extern "C" {
30914    #[doc = " CollabPermission"]
30915    pub fn BNNewCollaborationPermissionReference(
30916        permission: *mut BNCollaborationPermission,
30917    ) -> *mut BNCollaborationPermission;
30918}
30919unsafe extern "C" {
30920    pub fn BNFreeCollaborationPermission(permission: *mut BNCollaborationPermission);
30921}
30922unsafe extern "C" {
30923    pub fn BNFreeCollaborationPermissionList(
30924        permissions: *mut *mut BNCollaborationPermission,
30925        count: usize,
30926    );
30927}
30928unsafe extern "C" {
30929    pub fn BNCollaborationPermissionGetProject(
30930        permission: *mut BNCollaborationPermission,
30931    ) -> *mut BNRemoteProject;
30932}
30933unsafe extern "C" {
30934    pub fn BNCollaborationPermissionGetRemote(
30935        permission: *mut BNCollaborationPermission,
30936    ) -> *mut BNRemote;
30937}
30938unsafe extern "C" {
30939    pub fn BNCollaborationPermissionGetId(
30940        permission: *mut BNCollaborationPermission,
30941    ) -> *mut ::std::os::raw::c_char;
30942}
30943unsafe extern "C" {
30944    pub fn BNCollaborationPermissionGetUrl(
30945        permission: *mut BNCollaborationPermission,
30946    ) -> *mut ::std::os::raw::c_char;
30947}
30948unsafe extern "C" {
30949    pub fn BNCollaborationPermissionGetGroupId(permission: *mut BNCollaborationPermission) -> u64;
30950}
30951unsafe extern "C" {
30952    pub fn BNCollaborationPermissionGetGroupName(
30953        permission: *mut BNCollaborationPermission,
30954    ) -> *mut ::std::os::raw::c_char;
30955}
30956unsafe extern "C" {
30957    pub fn BNCollaborationPermissionGetUserId(
30958        permission: *mut BNCollaborationPermission,
30959    ) -> *mut ::std::os::raw::c_char;
30960}
30961unsafe extern "C" {
30962    pub fn BNCollaborationPermissionGetUsername(
30963        permission: *mut BNCollaborationPermission,
30964    ) -> *mut ::std::os::raw::c_char;
30965}
30966unsafe extern "C" {
30967    pub fn BNCollaborationPermissionGetLevel(
30968        permission: *mut BNCollaborationPermission,
30969    ) -> BNCollaborationPermissionLevel;
30970}
30971unsafe extern "C" {
30972    pub fn BNCollaborationPermissionSetLevel(
30973        permission: *mut BNCollaborationPermission,
30974        level: BNCollaborationPermissionLevel,
30975    );
30976}
30977unsafe extern "C" {
30978    pub fn BNCollaborationPermissionCanView(permission: *mut BNCollaborationPermission) -> bool;
30979}
30980unsafe extern "C" {
30981    pub fn BNCollaborationPermissionCanEdit(permission: *mut BNCollaborationPermission) -> bool;
30982}
30983unsafe extern "C" {
30984    pub fn BNCollaborationPermissionCanAdmin(permission: *mut BNCollaborationPermission) -> bool;
30985}
30986unsafe extern "C" {
30987    #[doc = " AnalysisMergeConflict"]
30988    pub fn BNNewAnalysisMergeConflictReference(
30989        conflict: *mut BNAnalysisMergeConflict,
30990    ) -> *mut BNAnalysisMergeConflict;
30991}
30992unsafe extern "C" {
30993    pub fn BNFreeAnalysisMergeConflict(conflict: *mut BNAnalysisMergeConflict);
30994}
30995unsafe extern "C" {
30996    pub fn BNFreeAnalysisMergeConflictList(
30997        conflicts: *mut *mut BNAnalysisMergeConflict,
30998        count: usize,
30999    );
31000}
31001unsafe extern "C" {
31002    pub fn BNAnalysisMergeConflictGetDatabase(
31003        conflict: *mut BNAnalysisMergeConflict,
31004    ) -> *mut BNDatabase;
31005}
31006unsafe extern "C" {
31007    pub fn BNAnalysisMergeConflictGetType(
31008        conflict: *mut BNAnalysisMergeConflict,
31009    ) -> *mut ::std::os::raw::c_char;
31010}
31011unsafe extern "C" {
31012    pub fn BNAnalysisMergeConflictGetKey(
31013        conflict: *mut BNAnalysisMergeConflict,
31014    ) -> *mut ::std::os::raw::c_char;
31015}
31016unsafe extern "C" {
31017    pub fn BNAnalysisMergeConflictGetDataType(
31018        conflict: *mut BNAnalysisMergeConflict,
31019    ) -> BNMergeConflictDataType;
31020}
31021unsafe extern "C" {
31022    pub fn BNAnalysisMergeConflictGetBase(
31023        conflict: *mut BNAnalysisMergeConflict,
31024    ) -> *mut ::std::os::raw::c_char;
31025}
31026unsafe extern "C" {
31027    pub fn BNAnalysisMergeConflictGetFirst(
31028        conflict: *mut BNAnalysisMergeConflict,
31029    ) -> *mut ::std::os::raw::c_char;
31030}
31031unsafe extern "C" {
31032    pub fn BNAnalysisMergeConflictGetSecond(
31033        conflict: *mut BNAnalysisMergeConflict,
31034    ) -> *mut ::std::os::raw::c_char;
31035}
31036unsafe extern "C" {
31037    pub fn BNAnalysisMergeConflictGetBaseFile(
31038        conflict: *mut BNAnalysisMergeConflict,
31039    ) -> *mut BNFileMetadata;
31040}
31041unsafe extern "C" {
31042    pub fn BNAnalysisMergeConflictGetFirstFile(
31043        conflict: *mut BNAnalysisMergeConflict,
31044    ) -> *mut BNFileMetadata;
31045}
31046unsafe extern "C" {
31047    pub fn BNAnalysisMergeConflictGetSecondFile(
31048        conflict: *mut BNAnalysisMergeConflict,
31049    ) -> *mut BNFileMetadata;
31050}
31051unsafe extern "C" {
31052    pub fn BNAnalysisMergeConflictGetBaseSnapshot(
31053        conflict: *mut BNAnalysisMergeConflict,
31054    ) -> *mut BNSnapshot;
31055}
31056unsafe extern "C" {
31057    pub fn BNAnalysisMergeConflictGetFirstSnapshot(
31058        conflict: *mut BNAnalysisMergeConflict,
31059    ) -> *mut BNSnapshot;
31060}
31061unsafe extern "C" {
31062    pub fn BNAnalysisMergeConflictGetSecondSnapshot(
31063        conflict: *mut BNAnalysisMergeConflict,
31064    ) -> *mut BNSnapshot;
31065}
31066unsafe extern "C" {
31067    pub fn BNAnalysisMergeConflictGetPathItemString(
31068        conflict: *mut BNAnalysisMergeConflict,
31069        path: *const ::std::os::raw::c_char,
31070    ) -> *mut ::std::os::raw::c_char;
31071}
31072unsafe extern "C" {
31073    pub fn BNAnalysisMergeConflictGetPathItemSerialized(
31074        conflict: *mut BNAnalysisMergeConflict,
31075        path: *const ::std::os::raw::c_char,
31076    ) -> *mut ::std::os::raw::c_char;
31077}
31078unsafe extern "C" {
31079    pub fn BNAnalysisMergeConflictGetPathItem(
31080        conflict: *mut BNAnalysisMergeConflict,
31081        path: *const ::std::os::raw::c_char,
31082    ) -> *mut ::std::os::raw::c_void;
31083}
31084unsafe extern "C" {
31085    pub fn BNAnalysisMergeConflictSuccess(
31086        conflict: *mut BNAnalysisMergeConflict,
31087        value: *const ::std::os::raw::c_char,
31088    ) -> bool;
31089}
31090unsafe extern "C" {
31091    #[doc = " TypeArchiveMergeConflict"]
31092    pub fn BNNewTypeArchiveMergeConflictReference(
31093        conflict: *mut BNTypeArchiveMergeConflict,
31094    ) -> *mut BNTypeArchiveMergeConflict;
31095}
31096unsafe extern "C" {
31097    pub fn BNFreeTypeArchiveMergeConflict(conflict: *mut BNTypeArchiveMergeConflict);
31098}
31099unsafe extern "C" {
31100    pub fn BNFreeTypeArchiveMergeConflictList(
31101        conflicts: *mut *mut BNTypeArchiveMergeConflict,
31102        count: usize,
31103    );
31104}
31105unsafe extern "C" {
31106    pub fn BNTypeArchiveMergeConflictGetTypeArchive(
31107        conflict: *mut BNTypeArchiveMergeConflict,
31108    ) -> *mut BNTypeArchive;
31109}
31110unsafe extern "C" {
31111    pub fn BNTypeArchiveMergeConflictGetTypeId(
31112        conflict: *mut BNTypeArchiveMergeConflict,
31113    ) -> *mut ::std::os::raw::c_char;
31114}
31115unsafe extern "C" {
31116    pub fn BNTypeArchiveMergeConflictGetBaseSnapshotId(
31117        conflict: *mut BNTypeArchiveMergeConflict,
31118    ) -> *mut ::std::os::raw::c_char;
31119}
31120unsafe extern "C" {
31121    pub fn BNTypeArchiveMergeConflictGetFirstSnapshotId(
31122        conflict: *mut BNTypeArchiveMergeConflict,
31123    ) -> *mut ::std::os::raw::c_char;
31124}
31125unsafe extern "C" {
31126    pub fn BNTypeArchiveMergeConflictGetSecondSnapshotId(
31127        conflict: *mut BNTypeArchiveMergeConflict,
31128    ) -> *mut ::std::os::raw::c_char;
31129}
31130unsafe extern "C" {
31131    pub fn BNTypeArchiveMergeConflictSuccess(
31132        conflict: *mut BNTypeArchiveMergeConflict,
31133        value: *const ::std::os::raw::c_char,
31134    ) -> bool;
31135}
31136unsafe extern "C" {
31137    #[doc = " CollabSnapshot"]
31138    pub fn BNNewCollaborationSnapshotReference(
31139        snapshot: *mut BNCollaborationSnapshot,
31140    ) -> *mut BNCollaborationSnapshot;
31141}
31142unsafe extern "C" {
31143    pub fn BNFreeCollaborationSnapshot(snapshot: *mut BNCollaborationSnapshot);
31144}
31145unsafe extern "C" {
31146    pub fn BNFreeCollaborationSnapshotList(
31147        snapshots: *mut *mut BNCollaborationSnapshot,
31148        count: usize,
31149    );
31150}
31151unsafe extern "C" {
31152    pub fn BNCollaborationSnapshotGetFile(
31153        snapshot: *mut BNCollaborationSnapshot,
31154    ) -> *mut BNRemoteFile;
31155}
31156unsafe extern "C" {
31157    pub fn BNCollaborationSnapshotGetProject(
31158        snapshot: *mut BNCollaborationSnapshot,
31159    ) -> *mut BNRemoteProject;
31160}
31161unsafe extern "C" {
31162    pub fn BNCollaborationSnapshotGetRemote(
31163        snapshot: *mut BNCollaborationSnapshot,
31164    ) -> *mut BNRemote;
31165}
31166unsafe extern "C" {
31167    pub fn BNCollaborationSnapshotGetUrl(
31168        snapshot: *mut BNCollaborationSnapshot,
31169    ) -> *mut ::std::os::raw::c_char;
31170}
31171unsafe extern "C" {
31172    pub fn BNCollaborationSnapshotGetId(
31173        snapshot: *mut BNCollaborationSnapshot,
31174    ) -> *mut ::std::os::raw::c_char;
31175}
31176unsafe extern "C" {
31177    pub fn BNCollaborationSnapshotGetName(
31178        snapshot: *mut BNCollaborationSnapshot,
31179    ) -> *mut ::std::os::raw::c_char;
31180}
31181unsafe extern "C" {
31182    pub fn BNCollaborationSnapshotGetAuthor(
31183        snapshot: *mut BNCollaborationSnapshot,
31184    ) -> *mut ::std::os::raw::c_char;
31185}
31186unsafe extern "C" {
31187    pub fn BNCollaborationSnapshotGetCreated(snapshot: *mut BNCollaborationSnapshot) -> i64;
31188}
31189unsafe extern "C" {
31190    pub fn BNCollaborationSnapshotGetLastModified(snapshot: *mut BNCollaborationSnapshot) -> i64;
31191}
31192unsafe extern "C" {
31193    pub fn BNCollaborationSnapshotGetHash(
31194        snapshot: *mut BNCollaborationSnapshot,
31195    ) -> *mut ::std::os::raw::c_char;
31196}
31197unsafe extern "C" {
31198    pub fn BNCollaborationSnapshotGetSnapshotFileHash(
31199        snapshot: *mut BNCollaborationSnapshot,
31200    ) -> *mut ::std::os::raw::c_char;
31201}
31202unsafe extern "C" {
31203    pub fn BNCollaborationSnapshotHasPulledUndoEntries(
31204        snapshot: *mut BNCollaborationSnapshot,
31205    ) -> bool;
31206}
31207unsafe extern "C" {
31208    pub fn BNCollaborationSnapshotIsFinalized(snapshot: *mut BNCollaborationSnapshot) -> bool;
31209}
31210unsafe extern "C" {
31211    pub fn BNCollaborationSnapshotGetParentIds(
31212        snapshot: *mut BNCollaborationSnapshot,
31213        count: *mut usize,
31214    ) -> *mut *mut ::std::os::raw::c_char;
31215}
31216unsafe extern "C" {
31217    pub fn BNCollaborationSnapshotGetChildIds(
31218        snapshot: *mut BNCollaborationSnapshot,
31219        count: *mut usize,
31220    ) -> *mut *mut ::std::os::raw::c_char;
31221}
31222unsafe extern "C" {
31223    pub fn BNCollaborationSnapshotGetAnalysisCacheBuildId(
31224        snapshot: *mut BNCollaborationSnapshot,
31225    ) -> u64;
31226}
31227unsafe extern "C" {
31228    pub fn BNCollaborationSnapshotGetTitle(
31229        snapshot: *mut BNCollaborationSnapshot,
31230    ) -> *mut ::std::os::raw::c_char;
31231}
31232unsafe extern "C" {
31233    pub fn BNCollaborationSnapshotGetDescription(
31234        snapshot: *mut BNCollaborationSnapshot,
31235    ) -> *mut ::std::os::raw::c_char;
31236}
31237unsafe extern "C" {
31238    pub fn BNCollaborationSnapshotGetAuthorUsername(
31239        snapshot: *mut BNCollaborationSnapshot,
31240    ) -> *mut ::std::os::raw::c_char;
31241}
31242unsafe extern "C" {
31243    pub fn BNCollaborationSnapshotGetParents(
31244        snapshot: *mut BNCollaborationSnapshot,
31245        count: *mut usize,
31246    ) -> *mut *mut BNCollaborationSnapshot;
31247}
31248unsafe extern "C" {
31249    pub fn BNCollaborationSnapshotGetChildren(
31250        snapshot: *mut BNCollaborationSnapshot,
31251        count: *mut usize,
31252    ) -> *mut *mut BNCollaborationSnapshot;
31253}
31254unsafe extern "C" {
31255    pub fn BNCollaborationSnapshotGetUndoEntries(
31256        snapshot: *mut BNCollaborationSnapshot,
31257        count: *mut usize,
31258    ) -> *mut *mut BNCollaborationUndoEntry;
31259}
31260unsafe extern "C" {
31261    pub fn BNCollaborationSnapshotGetUndoEntryById(
31262        snapshot: *mut BNCollaborationSnapshot,
31263        id: u64,
31264    ) -> *mut BNCollaborationUndoEntry;
31265}
31266unsafe extern "C" {
31267    pub fn BNCollaborationSnapshotPullUndoEntries(
31268        snapshot: *mut BNCollaborationSnapshot,
31269        progress: BNProgressFunction,
31270        progressContext: *mut ::std::os::raw::c_void,
31271    ) -> bool;
31272}
31273unsafe extern "C" {
31274    pub fn BNCollaborationSnapshotCreateUndoEntry(
31275        snapshot: *mut BNCollaborationSnapshot,
31276        hasParent: bool,
31277        parent: u64,
31278        data: *const ::std::os::raw::c_char,
31279    ) -> *mut BNCollaborationUndoEntry;
31280}
31281unsafe extern "C" {
31282    pub fn BNCollaborationSnapshotFinalize(snapshot: *mut BNCollaborationSnapshot) -> bool;
31283}
31284unsafe extern "C" {
31285    pub fn BNCollaborationSnapshotDownloadSnapshotFile(
31286        snapshot: *mut BNCollaborationSnapshot,
31287        progress: BNProgressFunction,
31288        progressContext: *mut ::std::os::raw::c_void,
31289        data: *mut *mut u8,
31290        size: *mut usize,
31291    ) -> bool;
31292}
31293unsafe extern "C" {
31294    pub fn BNCollaborationSnapshotDownload(
31295        snapshot: *mut BNCollaborationSnapshot,
31296        progress: BNProgressFunction,
31297        progressContext: *mut ::std::os::raw::c_void,
31298        data: *mut *mut u8,
31299        size: *mut usize,
31300    ) -> bool;
31301}
31302unsafe extern "C" {
31303    pub fn BNCollaborationSnapshotDownloadAnalysisCache(
31304        snapshot: *mut BNCollaborationSnapshot,
31305        progress: BNProgressFunction,
31306        progressContext: *mut ::std::os::raw::c_void,
31307        data: *mut *mut u8,
31308        size: *mut usize,
31309    ) -> bool;
31310}
31311unsafe extern "C" {
31312    #[doc = " CollabUndoEntry"]
31313    pub fn BNNewCollaborationUndoEntryReference(
31314        entry: *mut BNCollaborationUndoEntry,
31315    ) -> *mut BNCollaborationUndoEntry;
31316}
31317unsafe extern "C" {
31318    pub fn BNFreeCollaborationUndoEntry(entry: *mut BNCollaborationUndoEntry);
31319}
31320unsafe extern "C" {
31321    pub fn BNFreeCollaborationUndoEntryList(
31322        entries: *mut *mut BNCollaborationUndoEntry,
31323        count: usize,
31324    );
31325}
31326unsafe extern "C" {
31327    pub fn BNCollaborationUndoEntryGetSnapshot(
31328        undoEntry: *mut BNCollaborationUndoEntry,
31329    ) -> *mut BNCollaborationSnapshot;
31330}
31331unsafe extern "C" {
31332    pub fn BNCollaborationUndoEntryGetFile(
31333        undoEntry: *mut BNCollaborationUndoEntry,
31334    ) -> *mut BNRemoteFile;
31335}
31336unsafe extern "C" {
31337    pub fn BNCollaborationUndoEntryGetProject(
31338        undoEntry: *mut BNCollaborationUndoEntry,
31339    ) -> *mut BNRemoteProject;
31340}
31341unsafe extern "C" {
31342    pub fn BNCollaborationUndoEntryGetRemote(
31343        undoEntry: *mut BNCollaborationUndoEntry,
31344    ) -> *mut BNRemote;
31345}
31346unsafe extern "C" {
31347    pub fn BNCollaborationUndoEntryGetUrl(
31348        undoEntry: *mut BNCollaborationUndoEntry,
31349    ) -> *mut ::std::os::raw::c_char;
31350}
31351unsafe extern "C" {
31352    pub fn BNCollaborationUndoEntryGetId(undoEntry: *mut BNCollaborationUndoEntry) -> u64;
31353}
31354unsafe extern "C" {
31355    pub fn BNCollaborationUndoEntryGetParentId(
31356        undoEntry: *mut BNCollaborationUndoEntry,
31357        parentId: *mut u64,
31358    ) -> bool;
31359}
31360unsafe extern "C" {
31361    pub fn BNCollaborationUndoEntryGetData(
31362        undoEntry: *mut BNCollaborationUndoEntry,
31363        data: *mut *mut ::std::os::raw::c_char,
31364    ) -> bool;
31365}
31366unsafe extern "C" {
31367    pub fn BNCollaborationUndoEntryGetParent(
31368        undoEntry: *mut BNCollaborationUndoEntry,
31369    ) -> *mut BNCollaborationUndoEntry;
31370}
31371unsafe extern "C" {
31372    #[doc = " CollabChangeset"]
31373    pub fn BNNewCollaborationChangesetReference(
31374        changeset: *mut BNCollaborationChangeset,
31375    ) -> *mut BNCollaborationChangeset;
31376}
31377unsafe extern "C" {
31378    pub fn BNFreeCollaborationChangeset(changeset: *mut BNCollaborationChangeset);
31379}
31380unsafe extern "C" {
31381    pub fn BNFreeCollaborationChangesetList(
31382        changesets: *mut *mut BNCollaborationChangeset,
31383        count: usize,
31384    );
31385}
31386unsafe extern "C" {
31387    pub fn BNCollaborationChangesetGetDatabase(
31388        changeset: *mut BNCollaborationChangeset,
31389    ) -> *mut BNDatabase;
31390}
31391unsafe extern "C" {
31392    pub fn BNCollaborationChangesetGetFile(
31393        changeset: *mut BNCollaborationChangeset,
31394    ) -> *mut BNRemoteFile;
31395}
31396unsafe extern "C" {
31397    pub fn BNCollaborationChangesetGetSnapshotIds(
31398        changeset: *mut BNCollaborationChangeset,
31399        count: *mut usize,
31400    ) -> *mut i64;
31401}
31402unsafe extern "C" {
31403    pub fn BNCollaborationChangesetGetAuthor(
31404        changeset: *mut BNCollaborationChangeset,
31405    ) -> *mut BNCollaborationUser;
31406}
31407unsafe extern "C" {
31408    pub fn BNCollaborationChangesetGetName(
31409        changeset: *mut BNCollaborationChangeset,
31410    ) -> *mut ::std::os::raw::c_char;
31411}
31412unsafe extern "C" {
31413    pub fn BNCollaborationChangesetSetName(
31414        changeset: *mut BNCollaborationChangeset,
31415        name: *const ::std::os::raw::c_char,
31416    ) -> bool;
31417}
31418unsafe extern "C" {
31419    #[doc = " AnalysisMergeConflictSplitter"]
31420    pub fn BNRegisterAnalysisMergeConflictSplitter(
31421        callbacks: *mut BNAnalysisMergeConflictSplitterCallbacks,
31422    ) -> *mut BNAnalysisMergeConflictSplitter;
31423}
31424unsafe extern "C" {
31425    pub fn BNGetAnalysisMergeConflictSplitterList(
31426        count: *mut usize,
31427    ) -> *mut *mut BNAnalysisMergeConflictSplitter;
31428}
31429unsafe extern "C" {
31430    pub fn BNFreeAnalysisMergeConflictSplitterList(
31431        splitters: *mut *mut BNAnalysisMergeConflictSplitter,
31432        count: usize,
31433    );
31434}
31435unsafe extern "C" {
31436    pub fn BNAnalysisMergeConflictSplitterGetName(
31437        splitter: *mut BNAnalysisMergeConflictSplitter,
31438    ) -> *mut ::std::os::raw::c_char;
31439}
31440unsafe extern "C" {
31441    pub fn BNAnalysisMergeConflictSplitterCanSplit(
31442        splitter: *mut BNAnalysisMergeConflictSplitter,
31443        key: *const ::std::os::raw::c_char,
31444        conflict: *mut BNAnalysisMergeConflict,
31445    ) -> bool;
31446}
31447unsafe extern "C" {
31448    pub fn BNAnalysisMergeConflictSplitterSplit(
31449        splitter: *mut BNAnalysisMergeConflictSplitter,
31450        originalKey: *const ::std::os::raw::c_char,
31451        originalConflict: *mut BNAnalysisMergeConflict,
31452        result: *mut BNKeyValueStore,
31453        newKeys: *mut *mut *mut ::std::os::raw::c_char,
31454        newConflicts: *mut *mut *mut BNAnalysisMergeConflict,
31455        newCount: *mut usize,
31456    ) -> bool;
31457}
31458unsafe extern "C" {
31459    #[doc = " High level token emitter"]
31460    pub fn BNNewHighLevelILTokenEmitterReference(
31461        emitter: *mut BNHighLevelILTokenEmitter,
31462    ) -> *mut BNHighLevelILTokenEmitter;
31463}
31464unsafe extern "C" {
31465    pub fn BNHighLevelILTokenPrependCollapseBlankIndicator(emitter: *mut BNHighLevelILTokenEmitter);
31466}
31467unsafe extern "C" {
31468    pub fn BNHighLevelILTokenPrependCollapseIndicator(
31469        emitter: *mut BNHighLevelILTokenEmitter,
31470        context: BNInstructionTextTokenContext,
31471        hash: u64,
31472    );
31473}
31474unsafe extern "C" {
31475    pub fn BNHighLevelILTokenEmitterHasCollapsableRegions(
31476        emitter: *mut BNHighLevelILTokenEmitter,
31477    ) -> bool;
31478}
31479unsafe extern "C" {
31480    pub fn BNHighLevelILTokenEmitterSetHasCollapsableRegions(
31481        emitter: *mut BNHighLevelILTokenEmitter,
31482        state: bool,
31483    );
31484}
31485unsafe extern "C" {
31486    pub fn BNFreeHighLevelILTokenEmitter(emitter: *mut BNHighLevelILTokenEmitter);
31487}
31488unsafe extern "C" {
31489    pub fn BNHighLevelILTokenEmitterAppend(
31490        emitter: *mut BNHighLevelILTokenEmitter,
31491        token: *mut BNInstructionTextToken,
31492    );
31493}
31494unsafe extern "C" {
31495    pub fn BNHighLevelILTokenEmitterInitLine(emitter: *mut BNHighLevelILTokenEmitter);
31496}
31497unsafe extern "C" {
31498    pub fn BNHighLevelILTokenEmitterNewLine(emitter: *mut BNHighLevelILTokenEmitter);
31499}
31500unsafe extern "C" {
31501    pub fn BNHighLevelILTokenEmitterIncreaseIndent(emitter: *mut BNHighLevelILTokenEmitter);
31502}
31503unsafe extern "C" {
31504    pub fn BNHighLevelILTokenEmitterDecreaseIndent(emitter: *mut BNHighLevelILTokenEmitter);
31505}
31506unsafe extern "C" {
31507    pub fn BNHighLevelILTokenEmitterScopeSeparator(emitter: *mut BNHighLevelILTokenEmitter);
31508}
31509unsafe extern "C" {
31510    pub fn BNHighLevelILTokenEmitterBeginScope(
31511        emitter: *mut BNHighLevelILTokenEmitter,
31512        type_: BNScopeType,
31513    );
31514}
31515unsafe extern "C" {
31516    pub fn BNHighLevelILTokenEmitterEndScope(
31517        emitter: *mut BNHighLevelILTokenEmitter,
31518        type_: BNScopeType,
31519    );
31520}
31521unsafe extern "C" {
31522    pub fn BNHighLevelILTokenEmitterScopeContinuation(
31523        emitter: *mut BNHighLevelILTokenEmitter,
31524        forceSameLine: bool,
31525    );
31526}
31527unsafe extern "C" {
31528    pub fn BNHighLevelILTokenEmitterFinalizeScope(emitter: *mut BNHighLevelILTokenEmitter);
31529}
31530unsafe extern "C" {
31531    pub fn BNHighLevelILTokenEmitterNoIndentForThisLine(emitter: *mut BNHighLevelILTokenEmitter);
31532}
31533unsafe extern "C" {
31534    pub fn BNHighLevelILTokenEmitterBeginForceZeroConfidence(
31535        emitter: *mut BNHighLevelILTokenEmitter,
31536    );
31537}
31538unsafe extern "C" {
31539    pub fn BNHighLevelILTokenEmitterEndForceZeroConfidence(emitter: *mut BNHighLevelILTokenEmitter);
31540}
31541unsafe extern "C" {
31542    pub fn BNHighLevelILTokenEmitterSetCurrentExpr(
31543        emitter: *mut BNHighLevelILTokenEmitter,
31544        expr: BNTokenEmitterExpr,
31545    ) -> BNTokenEmitterExpr;
31546}
31547unsafe extern "C" {
31548    pub fn BNHighLevelILTokenEmitterRestoreCurrentExpr(
31549        emitter: *mut BNHighLevelILTokenEmitter,
31550        expr: BNTokenEmitterExpr,
31551    );
31552}
31553unsafe extern "C" {
31554    pub fn BNHighLevelILTokenEmitterFinalize(emitter: *mut BNHighLevelILTokenEmitter);
31555}
31556unsafe extern "C" {
31557    pub fn BNHighLevelILTokenEmitterAppendOpenParen(emitter: *mut BNHighLevelILTokenEmitter);
31558}
31559unsafe extern "C" {
31560    pub fn BNHighLevelILTokenEmitterAppendCloseParen(emitter: *mut BNHighLevelILTokenEmitter);
31561}
31562unsafe extern "C" {
31563    pub fn BNHighLevelILTokenEmitterAppendOpenBracket(emitter: *mut BNHighLevelILTokenEmitter);
31564}
31565unsafe extern "C" {
31566    pub fn BNHighLevelILTokenEmitterAppendCloseBracket(emitter: *mut BNHighLevelILTokenEmitter);
31567}
31568unsafe extern "C" {
31569    pub fn BNHighLevelILTokenEmitterAppendOpenBrace(emitter: *mut BNHighLevelILTokenEmitter);
31570}
31571unsafe extern "C" {
31572    pub fn BNHighLevelILTokenEmitterAppendCloseBrace(emitter: *mut BNHighLevelILTokenEmitter);
31573}
31574unsafe extern "C" {
31575    pub fn BNHighLevelILTokenEmitterAppendSemicolon(emitter: *mut BNHighLevelILTokenEmitter);
31576}
31577unsafe extern "C" {
31578    pub fn BNHighLevelILTokenEmitterSetBraceRequirement(
31579        emitter: *mut BNHighLevelILTokenEmitter,
31580        required: BNBraceRequirement,
31581    );
31582}
31583unsafe extern "C" {
31584    pub fn BNHighLevelILTokenEmitterSetBracesAroundSwitchCases(
31585        emitter: *mut BNHighLevelILTokenEmitter,
31586        braces: bool,
31587    );
31588}
31589unsafe extern "C" {
31590    pub fn BNHighLevelILTokenEmitterSetDefaultBracesOnSameLine(
31591        emitter: *mut BNHighLevelILTokenEmitter,
31592        sameLine: bool,
31593    );
31594}
31595unsafe extern "C" {
31596    pub fn BNHighLevelILTokenEmitterSetSimpleScopeAllowed(
31597        emitter: *mut BNHighLevelILTokenEmitter,
31598        allowed: bool,
31599    );
31600}
31601unsafe extern "C" {
31602    pub fn BNHighLevelILTokenEmitterGetBraceRequirement(
31603        emitter: *mut BNHighLevelILTokenEmitter,
31604    ) -> BNBraceRequirement;
31605}
31606unsafe extern "C" {
31607    pub fn BNHighLevelILTokenEmitterHasBracesAroundSwitchCases(
31608        emitter: *mut BNHighLevelILTokenEmitter,
31609    ) -> bool;
31610}
31611unsafe extern "C" {
31612    pub fn BNHighLevelILTokenEmitterGetDefaultBracesOnSameLine(
31613        emitter: *mut BNHighLevelILTokenEmitter,
31614    ) -> bool;
31615}
31616unsafe extern "C" {
31617    pub fn BNHighLevelILTokenEmitterGetMaxTernarySimplficationTokens(
31618        emitter: *mut BNHighLevelILTokenEmitter,
31619    ) -> usize;
31620}
31621unsafe extern "C" {
31622    pub fn BNHighLevelILTokenEmitterIsSimpleScopeAllowed(
31623        emitter: *mut BNHighLevelILTokenEmitter,
31624    ) -> bool;
31625}
31626unsafe extern "C" {
31627    pub fn BNHighLevelILTokenEmitterGetCurrentTokens(
31628        emitter: *mut BNHighLevelILTokenEmitter,
31629        tokenCount: *mut usize,
31630    ) -> *mut BNInstructionTextToken;
31631}
31632unsafe extern "C" {
31633    pub fn BNHighLevelILTokenEmitterSetCurrentTokens(
31634        emitter: *mut BNHighLevelILTokenEmitter,
31635        tokens: *mut BNInstructionTextToken,
31636        tokenCount: usize,
31637    );
31638}
31639unsafe extern "C" {
31640    pub fn BNHighLevelILTokenEmitterGetLines(
31641        emitter: *mut BNHighLevelILTokenEmitter,
31642        count: *mut usize,
31643    ) -> *mut BNDisassemblyTextLine;
31644}
31645unsafe extern "C" {
31646    pub fn BNAddHighLevelILSizeToken(
31647        size: usize,
31648        type_: BNInstructionTextTokenType,
31649        tokens: *mut BNHighLevelILTokenEmitter,
31650    );
31651}
31652unsafe extern "C" {
31653    pub fn BNAddHighLevelILFloatSizeToken(
31654        size: usize,
31655        type_: BNInstructionTextTokenType,
31656        tokens: *mut BNHighLevelILTokenEmitter,
31657    );
31658}
31659unsafe extern "C" {
31660    pub fn BNAddHighLevelILVarTextToken(
31661        func: *mut BNHighLevelILFunction,
31662        var: *const BNVariable,
31663        tokens: *mut BNHighLevelILTokenEmitter,
31664        exprIndex: usize,
31665        size: usize,
31666    );
31667}
31668unsafe extern "C" {
31669    pub fn BNAddHighLevelILIntegerTextToken(
31670        func: *mut BNHighLevelILFunction,
31671        exprIndex: usize,
31672        val: i64,
31673        size: usize,
31674        tokens: *mut BNHighLevelILTokenEmitter,
31675    );
31676}
31677unsafe extern "C" {
31678    pub fn BNAddHighLevelILArrayIndexToken(
31679        func: *mut BNHighLevelILFunction,
31680        exprIndex: usize,
31681        val: i64,
31682        size: usize,
31683        tokens: *mut BNHighLevelILTokenEmitter,
31684        address: u64,
31685    );
31686}
31687unsafe extern "C" {
31688    pub fn BNAddHighLevelILPointerTextToken(
31689        func: *mut BNHighLevelILFunction,
31690        exprIndex: usize,
31691        val: i64,
31692        tokens: *mut BNHighLevelILTokenEmitter,
31693        settings: *mut BNDisassemblySettings,
31694        symbolDisplay: BNSymbolDisplayType,
31695        precedence: BNOperatorPrecedence,
31696        allowShortString: bool,
31697    ) -> BNSymbolDisplayResult;
31698}
31699unsafe extern "C" {
31700    pub fn BNAddHighLevelILConstantTextToken(
31701        func: *mut BNHighLevelILFunction,
31702        exprIndex: usize,
31703        val: i64,
31704        size: usize,
31705        tokens: *mut BNHighLevelILTokenEmitter,
31706        settings: *mut BNDisassemblySettings,
31707        precedence: BNOperatorPrecedence,
31708    );
31709}
31710unsafe extern "C" {
31711    pub fn BNAddNamesForOuterStructureMembers(
31712        data: *mut BNBinaryView,
31713        type_: *mut BNType,
31714        hlil: *mut BNHighLevelILFunction,
31715        varExpr: usize,
31716        nameCount: *mut usize,
31717    ) -> *mut *mut ::std::os::raw::c_char;
31718}
31719unsafe extern "C" {
31720    pub fn BNZeroExtend(value: i64, sourceSize: usize, destSize: usize) -> i64;
31721}
31722unsafe extern "C" {
31723    pub fn BNSignExtend(value: i64, sourceSize: usize, destSize: usize) -> i64;
31724}
31725unsafe extern "C" {
31726    pub fn BNMaskToSize(value: i64, size: usize) -> i64;
31727}
31728unsafe extern "C" {
31729    pub fn BNGetMaskForSize(size: usize) -> i64;
31730}
31731unsafe extern "C" {
31732    #[doc = " FirmwareNinja"]
31733    pub fn BNCreateFirmwareNinja(view: *mut BNBinaryView) -> *mut BNFirmwareNinja;
31734}
31735unsafe extern "C" {
31736    pub fn BNFreeFirmwareNinja(fn_: *mut BNFirmwareNinja);
31737}
31738unsafe extern "C" {
31739    pub fn BNFirmwareNinjaStoreCustomDevice(
31740        fn_: *mut BNFirmwareNinja,
31741        name: *const ::std::os::raw::c_char,
31742        start: u64,
31743        end: u64,
31744        info: *const ::std::os::raw::c_char,
31745    ) -> bool;
31746}
31747unsafe extern "C" {
31748    pub fn BNFirmwareNinjaRemoveCustomDevice(
31749        fn_: *mut BNFirmwareNinja,
31750        name: *const ::std::os::raw::c_char,
31751    ) -> bool;
31752}
31753unsafe extern "C" {
31754    pub fn BNFirmwareNinjaQueryCustomDevices(
31755        fn_: *mut BNFirmwareNinja,
31756        devices: *mut *mut BNFirmwareNinjaDevice,
31757    ) -> ::std::os::raw::c_int;
31758}
31759unsafe extern "C" {
31760    pub fn BNFirmwareNinjaFreeDevices(
31761        devices: *mut BNFirmwareNinjaDevice,
31762        size: ::std::os::raw::c_int,
31763    );
31764}
31765unsafe extern "C" {
31766    pub fn BNFirmwareNinjaQueryBoardNamesForArchitecture(
31767        fn_: *mut BNFirmwareNinja,
31768        arch: *mut BNArchitecture,
31769        boards: *mut *mut *mut ::std::os::raw::c_char,
31770    ) -> ::std::os::raw::c_int;
31771}
31772unsafe extern "C" {
31773    pub fn BNFirmwareNinjaFreeBoardNames(
31774        boards: *mut *mut ::std::os::raw::c_char,
31775        size: ::std::os::raw::c_int,
31776    );
31777}
31778unsafe extern "C" {
31779    pub fn BNFirmwareNinjaQueryBoardDevices(
31780        fn_: *mut BNFirmwareNinja,
31781        arch: *mut BNArchitecture,
31782        board: *const ::std::os::raw::c_char,
31783        devices: *mut *mut BNFirmwareNinjaDevice,
31784    ) -> ::std::os::raw::c_int;
31785}
31786unsafe extern "C" {
31787    pub fn BNFirmwareNinjaFindSectionsWithEntropy(
31788        fn_: *mut BNFirmwareNinja,
31789        sections: *mut *mut BNFirmwareNinjaSection,
31790        highCodeEntropyThreshold: f32,
31791        lowCodeEntropyThreshold: f32,
31792        blockSize: usize,
31793        mode: BNFirmwareNinjaSectionAnalysisMode,
31794    ) -> ::std::os::raw::c_int;
31795}
31796unsafe extern "C" {
31797    pub fn BNFirmwareNinjaFreeSections(
31798        sections: *mut BNFirmwareNinjaSection,
31799        size: ::std::os::raw::c_int,
31800    );
31801}
31802unsafe extern "C" {
31803    pub fn BNFirmwareNinjaGetFunctionMemoryAccesses(
31804        fn_: *mut BNFirmwareNinja,
31805        fma: *mut *mut *mut BNFirmwareNinjaFunctionMemoryAccesses,
31806        progress: BNProgressFunction,
31807        progressContext: *mut ::std::os::raw::c_void,
31808    ) -> ::std::os::raw::c_int;
31809}
31810unsafe extern "C" {
31811    pub fn BNFirmwareNinjaFreeFunctionMemoryAccesses(
31812        fma: *mut *mut BNFirmwareNinjaFunctionMemoryAccesses,
31813        size: ::std::os::raw::c_int,
31814    );
31815}
31816unsafe extern "C" {
31817    pub fn BNFirmwareNinjaStoreFunctionMemoryAccessesToMetadata(
31818        fn_: *mut BNFirmwareNinja,
31819        fma: *mut *mut BNFirmwareNinjaFunctionMemoryAccesses,
31820        size: ::std::os::raw::c_int,
31821    );
31822}
31823unsafe extern "C" {
31824    pub fn BNFirmwareNinjaQueryFunctionMemoryAccessesFromMetadata(
31825        fn_: *mut BNFirmwareNinja,
31826        fma: *mut *mut *mut BNFirmwareNinjaFunctionMemoryAccesses,
31827    ) -> ::std::os::raw::c_int;
31828}
31829unsafe extern "C" {
31830    pub fn BNFirmwareNinjaGetBoardDeviceAccesses(
31831        fn_: *mut BNFirmwareNinja,
31832        fma: *mut *mut BNFirmwareNinjaFunctionMemoryAccesses,
31833        size: ::std::os::raw::c_int,
31834        accesses: *mut *mut BNFirmwareNinjaDeviceAccesses,
31835        arch: *mut BNArchitecture,
31836    ) -> ::std::os::raw::c_int;
31837}
31838unsafe extern "C" {
31839    pub fn BNFirmwareNinjaFreeBoardDeviceAccesses(
31840        accesses: *mut BNFirmwareNinjaDeviceAccesses,
31841        size: ::std::os::raw::c_int,
31842    );
31843}
31844unsafe extern "C" {
31845    pub fn BNFirmwareNinjaGetMemoryRegionReferenceTree(
31846        fn_: *mut BNFirmwareNinja,
31847        start: u64,
31848        end: u64,
31849        fma: *mut *mut BNFirmwareNinjaFunctionMemoryAccesses,
31850        size: ::std::os::raw::c_int,
31851        value: *mut u64,
31852    ) -> *mut BNFirmwareNinjaReferenceNode;
31853}
31854unsafe extern "C" {
31855    pub fn BNFirmwareNinjaGetAddressReferenceTree(
31856        fn_: *mut BNFirmwareNinja,
31857        address: u64,
31858        fma: *mut *mut BNFirmwareNinjaFunctionMemoryAccesses,
31859        size: ::std::os::raw::c_int,
31860        value: *mut u64,
31861    ) -> *mut BNFirmwareNinjaReferenceNode;
31862}
31863unsafe extern "C" {
31864    pub fn BNFirmwareNinjaQueryRelationships(
31865        fn_: *mut BNFirmwareNinja,
31866        count: *mut usize,
31867    ) -> *mut *mut BNFirmwareNinjaRelationship;
31868}
31869unsafe extern "C" {
31870    pub fn BNFirmwareNinjaFreeRelationships(
31871        relationships: *mut *mut BNFirmwareNinjaRelationship,
31872        count: usize,
31873    );
31874}
31875unsafe extern "C" {
31876    pub fn BNFirmwareNinjaAddRelationship(
31877        fn_: *mut BNFirmwareNinja,
31878        rel: *mut BNFirmwareNinjaRelationship,
31879    );
31880}
31881unsafe extern "C" {
31882    pub fn BNFirmwareNinjaGetRelationshipByGuid(
31883        fn_: *mut BNFirmwareNinja,
31884        guid: *const ::std::os::raw::c_char,
31885    ) -> *mut BNFirmwareNinjaRelationship;
31886}
31887unsafe extern "C" {
31888    pub fn BNFirmwareNinjaRemoveRelationshipByGuid(
31889        fn_: *mut BNFirmwareNinja,
31890        guid: *const ::std::os::raw::c_char,
31891    );
31892}
31893unsafe extern "C" {
31894    pub fn BNFirmwareNinjaReferenceNodeIsFunction(node: *mut BNFirmwareNinjaReferenceNode) -> bool;
31895}
31896unsafe extern "C" {
31897    pub fn BNFirmwareNinjaReferenceNodeIsDataVariable(
31898        node: *mut BNFirmwareNinjaReferenceNode,
31899    ) -> bool;
31900}
31901unsafe extern "C" {
31902    pub fn BNFirmwareNinjaReferenceNodeHasChildren(node: *mut BNFirmwareNinjaReferenceNode)
31903    -> bool;
31904}
31905unsafe extern "C" {
31906    pub fn BNFirmwareNinjaReferenceNodeGetFunction(
31907        node: *mut BNFirmwareNinjaReferenceNode,
31908    ) -> *mut BNFunction;
31909}
31910unsafe extern "C" {
31911    pub fn BNFirmwareNinjaReferenceNodeGetDataVariable(
31912        node: *mut BNFirmwareNinjaReferenceNode,
31913        dataVariable: *mut BNDataVariable,
31914    ) -> bool;
31915}
31916unsafe extern "C" {
31917    pub fn BNFirmwareNinjaReferenceNodeGetChildren(
31918        parent: *mut BNFirmwareNinjaReferenceNode,
31919        count: *mut usize,
31920    ) -> *mut *mut BNFirmwareNinjaReferenceNode;
31921}
31922unsafe extern "C" {
31923    pub fn BNFreeFirmwareNinjaReferenceNode(node: *mut BNFirmwareNinjaReferenceNode);
31924}
31925unsafe extern "C" {
31926    pub fn BNNewFirmwareNinjaReferenceNodeReference(
31927        node: *mut BNFirmwareNinjaReferenceNode,
31928    ) -> *mut BNFirmwareNinjaReferenceNode;
31929}
31930unsafe extern "C" {
31931    pub fn BNFreeFirmwareNinjaReferenceNodes(
31932        nodes: *mut *mut BNFirmwareNinjaReferenceNode,
31933        count: usize,
31934    );
31935}
31936unsafe extern "C" {
31937    pub fn BNCreateFirmwareNinjaRelationship(
31938        view: *mut BNBinaryView,
31939    ) -> *mut BNFirmwareNinjaRelationship;
31940}
31941unsafe extern "C" {
31942    pub fn BNFreeFirmwareNinjaRelationship(rel: *mut BNFirmwareNinjaRelationship);
31943}
31944unsafe extern "C" {
31945    pub fn BNNewFirmwareNinjaRelationshipReference(
31946        rel: *mut BNFirmwareNinjaRelationship,
31947    ) -> *mut BNFirmwareNinjaRelationship;
31948}
31949unsafe extern "C" {
31950    pub fn BNFirmwareNinjaRelationshipSetPrimaryAddress(
31951        rel: *mut BNFirmwareNinjaRelationship,
31952        address: u64,
31953    );
31954}
31955unsafe extern "C" {
31956    pub fn BNFirmwareNinjaRelationshipSetPrimaryDataVariable(
31957        rel: *mut BNFirmwareNinjaRelationship,
31958        dataVariableAddress: u64,
31959    );
31960}
31961unsafe extern "C" {
31962    pub fn BNFirmwareNinjaRelationshipSetPrimaryFunction(
31963        rel: *mut BNFirmwareNinjaRelationship,
31964        function: *mut BNFunction,
31965    );
31966}
31967unsafe extern "C" {
31968    pub fn BNFirmwareNinjaRelationshipPrimaryIsDataVariable(
31969        rel: *mut BNFirmwareNinjaRelationship,
31970    ) -> bool;
31971}
31972unsafe extern "C" {
31973    pub fn BNFirmwareNinjaRelationshipPrimaryIsFunction(
31974        rel: *mut BNFirmwareNinjaRelationship,
31975    ) -> bool;
31976}
31977unsafe extern "C" {
31978    pub fn BNFirmwareNinjaRelationshipPrimaryIsAddress(
31979        rel: *mut BNFirmwareNinjaRelationship,
31980    ) -> bool;
31981}
31982unsafe extern "C" {
31983    pub fn BNFirmwareNinjaRelationshipGetPrimaryDataVariable(
31984        rel: *mut BNFirmwareNinjaRelationship,
31985        dataVariable: *mut BNDataVariable,
31986    ) -> bool;
31987}
31988unsafe extern "C" {
31989    pub fn BNFirmwareNinjaRelationshipGetPrimaryFunction(
31990        rel: *mut BNFirmwareNinjaRelationship,
31991    ) -> *mut BNFunction;
31992}
31993unsafe extern "C" {
31994    pub fn BNFirmwareNinjaRelationshipGetPrimaryAddress(
31995        rel: *mut BNFirmwareNinjaRelationship,
31996        result: *mut u64,
31997    ) -> bool;
31998}
31999unsafe extern "C" {
32000    pub fn BNFirmwareNinjaRelationshipSetSecondaryExternalAddress(
32001        rel: *mut BNFirmwareNinjaRelationship,
32002        projectFile: *mut BNProjectFile,
32003        address: u64,
32004    );
32005}
32006unsafe extern "C" {
32007    pub fn BNFirmwareNinjaRelationshipSetSecondaryExternalSymbol(
32008        rel: *mut BNFirmwareNinjaRelationship,
32009        projectFile: *mut BNProjectFile,
32010        symbol: *const ::std::os::raw::c_char,
32011    );
32012}
32013unsafe extern "C" {
32014    pub fn BNFirmwareNinjaRelationshipSetSecondaryAddress(
32015        rel: *mut BNFirmwareNinjaRelationship,
32016        address: u64,
32017    );
32018}
32019unsafe extern "C" {
32020    pub fn BNFirmwareNinjaRelationshipSetSecondaryDataVariable(
32021        rel: *mut BNFirmwareNinjaRelationship,
32022        dataVariableAddress: u64,
32023    );
32024}
32025unsafe extern "C" {
32026    pub fn BNFirmwareNinjaRelationshipSetSecondaryFunction(
32027        rel: *mut BNFirmwareNinjaRelationship,
32028        function: *mut BNFunction,
32029    );
32030}
32031unsafe extern "C" {
32032    pub fn BNFirmwareNinjaRelationshipSecondaryIsDataVariable(
32033        rel: *mut BNFirmwareNinjaRelationship,
32034    ) -> bool;
32035}
32036unsafe extern "C" {
32037    pub fn BNFirmwareNinjaRelationshipSecondaryIsFunction(
32038        rel: *mut BNFirmwareNinjaRelationship,
32039    ) -> bool;
32040}
32041unsafe extern "C" {
32042    pub fn BNFirmwareNinjaRelationshipSecondaryIsAddress(
32043        rel: *mut BNFirmwareNinjaRelationship,
32044    ) -> bool;
32045}
32046unsafe extern "C" {
32047    pub fn BNFirmwareNinjaRelationshipSecondaryIsExternalAddress(
32048        rel: *mut BNFirmwareNinjaRelationship,
32049    ) -> bool;
32050}
32051unsafe extern "C" {
32052    pub fn BNFirmwareNinjaRelationshipSecondaryIsExternalSymbol(
32053        rel: *mut BNFirmwareNinjaRelationship,
32054    ) -> bool;
32055}
32056unsafe extern "C" {
32057    pub fn BNFirmwareNinjaRelationshipGetSecondaryExternalProjectFile(
32058        rel: *mut BNFirmwareNinjaRelationship,
32059    ) -> *mut BNProjectFile;
32060}
32061unsafe extern "C" {
32062    pub fn BNFirmwareNinjaRelationshipGetSecondaryAddress(
32063        rel: *mut BNFirmwareNinjaRelationship,
32064        result: *mut u64,
32065    ) -> bool;
32066}
32067unsafe extern "C" {
32068    pub fn BNFirmwareNinjaRelationshipGetSecondaryDataVariable(
32069        rel: *mut BNFirmwareNinjaRelationship,
32070        dataVariable: *mut BNDataVariable,
32071    ) -> bool;
32072}
32073unsafe extern "C" {
32074    pub fn BNFirmwareNinjaRelationshipGetSecondaryFunction(
32075        rel: *mut BNFirmwareNinjaRelationship,
32076    ) -> *mut BNFunction;
32077}
32078unsafe extern "C" {
32079    pub fn BNFirmwareNinjaRelationshipGetSecondaryExternalSymbol(
32080        rel: *mut BNFirmwareNinjaRelationship,
32081    ) -> *mut ::std::os::raw::c_char;
32082}
32083unsafe extern "C" {
32084    pub fn BNFirmwareNinjaRelationshipSetDescription(
32085        rel: *mut BNFirmwareNinjaRelationship,
32086        description: *const ::std::os::raw::c_char,
32087    );
32088}
32089unsafe extern "C" {
32090    pub fn BNFirmwareNinjaRelationshipGetDescription(
32091        rel: *mut BNFirmwareNinjaRelationship,
32092    ) -> *mut ::std::os::raw::c_char;
32093}
32094unsafe extern "C" {
32095    pub fn BNFirmwareNinjaRelationshipSetProvenance(
32096        rel: *mut BNFirmwareNinjaRelationship,
32097        provenance: *const ::std::os::raw::c_char,
32098    );
32099}
32100unsafe extern "C" {
32101    pub fn BNFirmwareNinjaRelationshipGetProvenance(
32102        rel: *mut BNFirmwareNinjaRelationship,
32103    ) -> *mut ::std::os::raw::c_char;
32104}
32105unsafe extern "C" {
32106    pub fn BNFirmwareNinjaRelationshipGetGuid(
32107        rel: *mut BNFirmwareNinjaRelationship,
32108    ) -> *mut ::std::os::raw::c_char;
32109}
32110unsafe extern "C" {
32111    #[doc = " Line formatters"]
32112    pub fn BNRegisterLineFormatter(
32113        name: *const ::std::os::raw::c_char,
32114        callbacks: *mut BNCustomLineFormatter,
32115    ) -> *mut BNLineFormatter;
32116}
32117unsafe extern "C" {
32118    pub fn BNGetLineFormatterList(count: *mut usize) -> *mut *mut BNLineFormatter;
32119}
32120unsafe extern "C" {
32121    pub fn BNFreeLineFormatterList(formatters: *mut *mut BNLineFormatter);
32122}
32123unsafe extern "C" {
32124    pub fn BNGetLineFormatterByName(name: *const ::std::os::raw::c_char) -> *mut BNLineFormatter;
32125}
32126unsafe extern "C" {
32127    pub fn BNGetDefaultLineFormatter() -> *mut BNLineFormatter;
32128}
32129unsafe extern "C" {
32130    pub fn BNGetLineFormatterName(formatter: *mut BNLineFormatter) -> *mut ::std::os::raw::c_char;
32131}
32132unsafe extern "C" {
32133    pub fn BNFormatLines(
32134        formatter: *mut BNLineFormatter,
32135        inLines: *mut BNDisassemblyTextLine,
32136        inCount: usize,
32137        settings: *const BNLineFormatterSettings,
32138        outCount: *mut usize,
32139    ) -> *mut BNDisassemblyTextLine;
32140}
32141unsafe extern "C" {
32142    pub fn BNGetDefaultLineFormatterSettings(
32143        settings: *mut BNDisassemblySettings,
32144        func: *mut BNHighLevelILFunction,
32145    ) -> *mut BNLineFormatterSettings;
32146}
32147unsafe extern "C" {
32148    pub fn BNGetLanguageRepresentationLineFormatterSettings(
32149        settings: *mut BNDisassemblySettings,
32150        func: *mut BNLanguageRepresentationFunction,
32151    ) -> *mut BNLineFormatterSettings;
32152}
32153unsafe extern "C" {
32154    pub fn BNFreeLineFormatterSettings(settings: *mut BNLineFormatterSettings);
32155}
32156unsafe extern "C" {
32157    #[doc = " Render Layers"]
32158    pub fn BNRegisterRenderLayer(
32159        name: *const ::std::os::raw::c_char,
32160        callbacks: *mut BNRenderLayerCallbacks,
32161        enableState: BNRenderLayerDefaultEnableState,
32162    ) -> *mut BNRenderLayer;
32163}
32164unsafe extern "C" {
32165    pub fn BNGetRenderLayerList(count: *mut usize) -> *mut *mut BNRenderLayer;
32166}
32167unsafe extern "C" {
32168    pub fn BNFreeRenderLayerList(renderLayers: *mut *mut BNRenderLayer);
32169}
32170unsafe extern "C" {
32171    pub fn BNGetRenderLayerByName(name: *const ::std::os::raw::c_char) -> *mut BNRenderLayer;
32172}
32173unsafe extern "C" {
32174    pub fn BNGetRenderLayerName(renderLayer: *mut BNRenderLayer) -> *mut ::std::os::raw::c_char;
32175}
32176unsafe extern "C" {
32177    pub fn BNGetRenderLayerDefaultEnableState(
32178        renderLayer: *mut BNRenderLayer,
32179    ) -> BNRenderLayerDefaultEnableState;
32180}
32181unsafe extern "C" {
32182    pub fn BNApplyRenderLayerToFlowGraph(renderLayer: *mut BNRenderLayer, graph: *mut BNFlowGraph);
32183}
32184unsafe extern "C" {
32185    pub fn BNApplyRenderLayerToLinearViewObject(
32186        renderLayer: *mut BNRenderLayer,
32187        obj: *mut BNLinearViewObject,
32188        prev: *mut BNLinearViewObject,
32189        next: *mut BNLinearViewObject,
32190        inLines: *mut BNLinearDisassemblyLine,
32191        inLineCount: usize,
32192        outLines: *mut *mut BNLinearDisassemblyLine,
32193        outLineCount: *mut usize,
32194    );
32195}
32196unsafe extern "C" {
32197    pub fn BNFreeStringRef(ref_: *mut BNStringRef);
32198}
32199unsafe extern "C" {
32200    pub fn BNDuplicateStringRef(ref_: *mut BNStringRef) -> *mut BNStringRef;
32201}
32202unsafe extern "C" {
32203    pub fn BNGetStringRefContents(ref_: *mut BNStringRef) -> *const ::std::os::raw::c_char;
32204}
32205unsafe extern "C" {
32206    pub fn BNGetStringRefSize(ref_: *mut BNStringRef) -> usize;
32207}
32208unsafe extern "C" {
32209    pub fn BNCreateStringRef(str_: *const ::std::os::raw::c_char) -> *mut BNStringRef;
32210}
32211unsafe extern "C" {
32212    pub fn BNCreateStringRefOfLength(
32213        str_: *const ::std::os::raw::c_char,
32214        len: usize,
32215    ) -> *mut BNStringRef;
32216}
32217unsafe extern "C" {
32218    #[doc = " Constant Renderers"]
32219    pub fn BNRegisterConstantRenderer(
32220        name: *const ::std::os::raw::c_char,
32221        renderer: *mut BNCustomConstantRenderer,
32222    ) -> *mut BNConstantRenderer;
32223}
32224unsafe extern "C" {
32225    pub fn BNGetConstantRendererByName(
32226        name: *const ::std::os::raw::c_char,
32227    ) -> *mut BNConstantRenderer;
32228}
32229unsafe extern "C" {
32230    pub fn BNGetConstantRendererList(count: *mut usize) -> *mut *mut BNConstantRenderer;
32231}
32232unsafe extern "C" {
32233    pub fn BNFreeConstantRendererList(renderers: *mut *mut BNConstantRenderer);
32234}
32235unsafe extern "C" {
32236    pub fn BNGetConstantRendererName(
32237        renderer: *mut BNConstantRenderer,
32238    ) -> *mut ::std::os::raw::c_char;
32239}
32240unsafe extern "C" {
32241    pub fn BNIsConstantRendererValidForType(
32242        renderer: *mut BNConstantRenderer,
32243        il: *mut BNHighLevelILFunction,
32244        type_: *mut BNType,
32245    ) -> bool;
32246}
32247unsafe extern "C" {
32248    pub fn BNConstantRendererRenderConstant(
32249        renderer: *mut BNConstantRenderer,
32250        il: *mut BNHighLevelILFunction,
32251        exprIndex: usize,
32252        type_: *mut BNType,
32253        val: i64,
32254        tokens: *mut BNHighLevelILTokenEmitter,
32255        settings: *mut BNDisassemblySettings,
32256        precedence: BNOperatorPrecedence,
32257    ) -> bool;
32258}
32259unsafe extern "C" {
32260    pub fn BNConstantRendererRenderConstantPointer(
32261        renderer: *mut BNConstantRenderer,
32262        il: *mut BNHighLevelILFunction,
32263        exprIndex: usize,
32264        type_: *mut BNType,
32265        val: i64,
32266        tokens: *mut BNHighLevelILTokenEmitter,
32267        settings: *mut BNDisassemblySettings,
32268        symbolDisplay: BNSymbolDisplayType,
32269        precedence: BNOperatorPrecedence,
32270    ) -> bool;
32271}
32272unsafe extern "C" {
32273    #[doc = " String recognizers"]
32274    pub fn BNRegisterCustomStringType(info: *mut BNCustomStringTypeInfo)
32275    -> *mut BNCustomStringType;
32276}
32277unsafe extern "C" {
32278    pub fn BNGetCustomStringTypeByName(
32279        name: *const ::std::os::raw::c_char,
32280    ) -> *mut BNCustomStringType;
32281}
32282unsafe extern "C" {
32283    pub fn BNGetCustomStringTypeByID(id: u32) -> *mut BNCustomStringType;
32284}
32285unsafe extern "C" {
32286    pub fn BNGetCustomStringTypeList(count: *mut usize) -> *mut *mut BNCustomStringType;
32287}
32288unsafe extern "C" {
32289    pub fn BNFreeCustomStringTypeList(types: *mut *mut BNCustomStringType);
32290}
32291unsafe extern "C" {
32292    pub fn BNGetCustomStringTypeName(type_: *mut BNCustomStringType)
32293    -> *mut ::std::os::raw::c_char;
32294}
32295unsafe extern "C" {
32296    pub fn BNGetCustomStringTypePrefix(
32297        type_: *mut BNCustomStringType,
32298    ) -> *mut ::std::os::raw::c_char;
32299}
32300unsafe extern "C" {
32301    pub fn BNGetCustomStringTypePostfix(
32302        type_: *mut BNCustomStringType,
32303    ) -> *mut ::std::os::raw::c_char;
32304}
32305unsafe extern "C" {
32306    pub fn BNRegisterStringRecognizer(
32307        name: *const ::std::os::raw::c_char,
32308        recognizer: *mut BNCustomStringRecognizer,
32309    ) -> *mut BNStringRecognizer;
32310}
32311unsafe extern "C" {
32312    pub fn BNGetStringRecognizerByName(
32313        name: *const ::std::os::raw::c_char,
32314    ) -> *mut BNStringRecognizer;
32315}
32316unsafe extern "C" {
32317    pub fn BNGetStringRecognizerList(count: *mut usize) -> *mut *mut BNStringRecognizer;
32318}
32319unsafe extern "C" {
32320    pub fn BNFreeStringRecognizerList(recognizers: *mut *mut BNStringRecognizer);
32321}
32322unsafe extern "C" {
32323    pub fn BNGetStringRecognizerName(
32324        recognizer: *mut BNStringRecognizer,
32325    ) -> *mut ::std::os::raw::c_char;
32326}
32327unsafe extern "C" {
32328    pub fn BNIsStringRecognizerValidForType(
32329        recognizer: *mut BNStringRecognizer,
32330        il: *mut BNHighLevelILFunction,
32331        type_: *mut BNType,
32332    ) -> bool;
32333}
32334unsafe extern "C" {
32335    pub fn BNStringRecognizerRecognizeConstant(
32336        recognizer: *mut BNStringRecognizer,
32337        il: *mut BNHighLevelILFunction,
32338        exprIndex: usize,
32339        type_: *mut BNType,
32340        val: i64,
32341        out: *mut BNDerivedString,
32342    ) -> bool;
32343}
32344unsafe extern "C" {
32345    pub fn BNStringRecognizerRecognizeConstantPointer(
32346        recognizer: *mut BNStringRecognizer,
32347        il: *mut BNHighLevelILFunction,
32348        exprIndex: usize,
32349        type_: *mut BNType,
32350        val: i64,
32351        out: *mut BNDerivedString,
32352    ) -> bool;
32353}
32354unsafe extern "C" {
32355    pub fn BNStringRecognizerRecognizeExternPointer(
32356        recognizer: *mut BNStringRecognizer,
32357        il: *mut BNHighLevelILFunction,
32358        exprIndex: usize,
32359        type_: *mut BNType,
32360        val: i64,
32361        offset: u64,
32362        out: *mut BNDerivedString,
32363    ) -> bool;
32364}
32365unsafe extern "C" {
32366    pub fn BNStringRecognizerRecognizeImport(
32367        recognizer: *mut BNStringRecognizer,
32368        il: *mut BNHighLevelILFunction,
32369        exprIndex: usize,
32370        type_: *mut BNType,
32371        val: i64,
32372        out: *mut BNDerivedString,
32373    ) -> bool;
32374}
32375unsafe extern "C" {
32376    pub fn BNStringRecognizerRecognizeConstantData(
32377        recognizer: *mut BNStringRecognizer,
32378        il: *mut BNHighLevelILFunction,
32379        exprIndex: usize,
32380        out: *mut BNDerivedString,
32381    ) -> bool;
32382}
32383unsafe extern "C" {
32384    pub fn BNStringRecognizerRecognizeStructInit(
32385        recognizer: *mut BNStringRecognizer,
32386        il: *mut BNHighLevelILFunction,
32387        exprIndex: usize,
32388        type_: *mut BNType,
32389        fieldOffsets: *const u64,
32390        fieldValues: *const i64,
32391        fieldCount: usize,
32392        out: *mut BNDerivedString,
32393    ) -> bool;
32394}
32395unsafe extern "C" {
32396    #[doc = " PossibleValueSet operations"]
32397    pub fn BNFreePossibleValueSet(object: *mut BNPossibleValueSet);
32398}
32399unsafe extern "C" {
32400    pub fn BNPossibleValueSetUnion(
32401        object: *const BNPossibleValueSet,
32402        other: *const BNPossibleValueSet,
32403        size: usize,
32404    ) -> BNPossibleValueSet;
32405}
32406unsafe extern "C" {
32407    pub fn BNPossibleValueSetIntersection(
32408        object: *const BNPossibleValueSet,
32409        other: *const BNPossibleValueSet,
32410        size: usize,
32411    ) -> BNPossibleValueSet;
32412}
32413unsafe extern "C" {
32414    pub fn BNPossibleValueSetAdd(
32415        object: *const BNPossibleValueSet,
32416        other: *const BNPossibleValueSet,
32417        size: usize,
32418    ) -> BNPossibleValueSet;
32419}
32420unsafe extern "C" {
32421    pub fn BNPossibleValueSetSubtract(
32422        object: *const BNPossibleValueSet,
32423        other: *const BNPossibleValueSet,
32424        size: usize,
32425    ) -> BNPossibleValueSet;
32426}
32427unsafe extern "C" {
32428    pub fn BNPossibleValueSetMultiply(
32429        object: *const BNPossibleValueSet,
32430        other: *const BNPossibleValueSet,
32431        size: usize,
32432    ) -> BNPossibleValueSet;
32433}
32434unsafe extern "C" {
32435    pub fn BNPossibleValueSetSignedDivide(
32436        object: *const BNPossibleValueSet,
32437        other: *const BNPossibleValueSet,
32438        size: usize,
32439    ) -> BNPossibleValueSet;
32440}
32441unsafe extern "C" {
32442    pub fn BNPossibleValueSetUnsignedDivide(
32443        object: *const BNPossibleValueSet,
32444        other: *const BNPossibleValueSet,
32445        size: usize,
32446    ) -> BNPossibleValueSet;
32447}
32448unsafe extern "C" {
32449    pub fn BNPossibleValueSetSignedMod(
32450        object: *const BNPossibleValueSet,
32451        other: *const BNPossibleValueSet,
32452        size: usize,
32453    ) -> BNPossibleValueSet;
32454}
32455unsafe extern "C" {
32456    pub fn BNPossibleValueSetUnsignedMod(
32457        object: *const BNPossibleValueSet,
32458        other: *const BNPossibleValueSet,
32459        size: usize,
32460    ) -> BNPossibleValueSet;
32461}
32462unsafe extern "C" {
32463    pub fn BNPossibleValueSetAnd(
32464        object: *const BNPossibleValueSet,
32465        other: *const BNPossibleValueSet,
32466        size: usize,
32467    ) -> BNPossibleValueSet;
32468}
32469unsafe extern "C" {
32470    pub fn BNPossibleValueSetOr(
32471        object: *const BNPossibleValueSet,
32472        other: *const BNPossibleValueSet,
32473        size: usize,
32474    ) -> BNPossibleValueSet;
32475}
32476unsafe extern "C" {
32477    pub fn BNPossibleValueSetXor(
32478        object: *const BNPossibleValueSet,
32479        other: *const BNPossibleValueSet,
32480        size: usize,
32481    ) -> BNPossibleValueSet;
32482}
32483unsafe extern "C" {
32484    pub fn BNPossibleValueSetShiftLeft(
32485        object: *const BNPossibleValueSet,
32486        other: *const BNPossibleValueSet,
32487        size: usize,
32488    ) -> BNPossibleValueSet;
32489}
32490unsafe extern "C" {
32491    pub fn BNPossibleValueSetLogicalShiftRight(
32492        object: *const BNPossibleValueSet,
32493        other: *const BNPossibleValueSet,
32494        size: usize,
32495    ) -> BNPossibleValueSet;
32496}
32497unsafe extern "C" {
32498    pub fn BNPossibleValueSetArithShiftRight(
32499        object: *const BNPossibleValueSet,
32500        other: *const BNPossibleValueSet,
32501        size: usize,
32502    ) -> BNPossibleValueSet;
32503}
32504unsafe extern "C" {
32505    pub fn BNPossibleValueSetRotateLeft(
32506        object: *const BNPossibleValueSet,
32507        other: *const BNPossibleValueSet,
32508        size: usize,
32509    ) -> BNPossibleValueSet;
32510}
32511unsafe extern "C" {
32512    pub fn BNPossibleValueSetRotateRight(
32513        object: *const BNPossibleValueSet,
32514        other: *const BNPossibleValueSet,
32515        size: usize,
32516    ) -> BNPossibleValueSet;
32517}
32518unsafe extern "C" {
32519    pub fn BNPossibleValueSetNegate(
32520        object: *const BNPossibleValueSet,
32521        size: usize,
32522    ) -> BNPossibleValueSet;
32523}
32524unsafe extern "C" {
32525    pub fn BNPossibleValueSetNot(
32526        object: *const BNPossibleValueSet,
32527        size: usize,
32528    ) -> BNPossibleValueSet;
32529}