1pub const BN_CURRENT_UI_ABI_VERSION: u32 = 17;
4pub const BN_MINIMUM_UI_ABI_VERSION: u32 = 17;
5
6pub const BN_CURRENT_CORE_ABI_VERSION: u32 = 168;
7pub const BN_MINIMUM_CORE_ABI_VERSION: u32 = 168;
8pub const MAX_RELOCATION_SIZE: u32 = 8;
9#[repr(u8)]
10#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
11pub enum BNPluginLoadPhase {
12 NativePluginLoadPhase = 0,
13 ScriptingProviderLoadPhase = 1,
14 ScriptPluginLoadPhase = 2,
15}
16#[repr(C)]
17#[derive(Debug, Copy, Clone)]
18pub struct BNDataBuffer {
19 _unused: [u8; 0],
20}
21#[repr(C)]
22#[derive(Debug, Copy, Clone)]
23pub struct BNBinaryView {
24 _unused: [u8; 0],
25}
26#[repr(C)]
27#[derive(Debug, Copy, Clone)]
28pub struct BNBinaryViewType {
29 _unused: [u8; 0],
30}
31#[repr(C)]
32#[derive(Debug, Copy, Clone)]
33pub struct BNBinaryReader {
34 _unused: [u8; 0],
35}
36#[repr(C)]
37#[derive(Debug, Copy, Clone)]
38pub struct BNBinaryWriter {
39 _unused: [u8; 0],
40}
41#[repr(C)]
42#[derive(Debug, Copy, Clone)]
43pub struct BNKeyValueStore {
44 _unused: [u8; 0],
45}
46#[repr(C)]
47#[derive(Debug, Copy, Clone)]
48pub struct BNSnapshot {
49 _unused: [u8; 0],
50}
51#[repr(C)]
52#[derive(Debug, Copy, Clone)]
53pub struct BNDatabase {
54 _unused: [u8; 0],
55}
56#[repr(C)]
57#[derive(Debug, Copy, Clone)]
58pub struct BNFileMetadata {
59 _unused: [u8; 0],
60}
61#[repr(C)]
62#[derive(Debug, Copy, Clone)]
63pub struct BNTransform {
64 _unused: [u8; 0],
65}
66#[repr(C)]
67#[derive(Debug, Copy, Clone)]
68pub struct BNTransformContext {
69 _unused: [u8; 0],
70}
71#[repr(C)]
72#[derive(Debug, Copy, Clone)]
73pub struct BNTransformSession {
74 _unused: [u8; 0],
75}
76#[repr(C)]
77#[derive(Debug, Copy, Clone)]
78pub struct BNArchitecture {
79 _unused: [u8; 0],
80}
81#[repr(C)]
82#[derive(Debug, Copy, Clone)]
83pub struct BNFunction {
84 _unused: [u8; 0],
85}
86#[repr(C)]
87#[derive(Debug, Copy, Clone)]
88pub struct BNBasicBlock {
89 _unused: [u8; 0],
90}
91#[repr(C)]
92#[derive(Debug, Copy, Clone)]
93pub struct BNDownloadProvider {
94 _unused: [u8; 0],
95}
96#[repr(C)]
97#[derive(Debug, Copy, Clone)]
98pub struct BNDownloadInstance {
99 _unused: [u8; 0],
100}
101#[repr(C)]
102#[derive(Debug, Copy, Clone)]
103pub struct BNWebsocketProvider {
104 _unused: [u8; 0],
105}
106#[repr(C)]
107#[derive(Debug, Copy, Clone)]
108pub struct BNWebsocketClient {
109 _unused: [u8; 0],
110}
111#[repr(C)]
112#[derive(Debug, Copy, Clone)]
113pub struct BNTypeParser {
114 _unused: [u8; 0],
115}
116#[repr(C)]
117#[derive(Debug, Copy, Clone)]
118pub struct BNTypePrinter {
119 _unused: [u8; 0],
120}
121#[repr(C)]
122#[derive(Debug, Copy, Clone)]
123pub struct BNFlowGraph {
124 _unused: [u8; 0],
125}
126#[repr(C)]
127#[derive(Debug, Copy, Clone)]
128pub struct BNFlowGraphNode {
129 _unused: [u8; 0],
130}
131#[repr(C)]
132#[derive(Debug, Copy, Clone)]
133pub struct BNFlowGraphLayout {
134 _unused: [u8; 0],
135}
136#[repr(C)]
137#[derive(Debug, Copy, Clone)]
138pub struct BNFlowGraphLayoutRequest {
139 _unused: [u8; 0],
140}
141#[repr(C)]
142#[derive(Debug, Copy, Clone)]
143pub struct BNSymbol {
144 _unused: [u8; 0],
145}
146#[repr(C)]
147#[derive(Debug, Copy, Clone)]
148pub struct BNTemporaryFile {
149 _unused: [u8; 0],
150}
151#[repr(C)]
152#[derive(Debug, Copy, Clone)]
153pub struct BNLowLevelILFunction {
154 _unused: [u8; 0],
155}
156#[repr(C)]
157#[derive(Debug, Copy, Clone)]
158pub struct BNMediumLevelILFunction {
159 _unused: [u8; 0],
160}
161#[repr(C)]
162#[derive(Debug, Copy, Clone)]
163pub struct BNHighLevelILFunction {
164 _unused: [u8; 0],
165}
166#[repr(C)]
167#[derive(Debug, Copy, Clone)]
168pub struct BNLanguageRepresentationFunction {
169 _unused: [u8; 0],
170}
171#[repr(C)]
172#[derive(Debug, Copy, Clone)]
173pub struct BNLanguageRepresentationFunctionType {
174 _unused: [u8; 0],
175}
176#[repr(C)]
177#[derive(Debug, Copy, Clone)]
178pub struct BNHighLevelILTokenEmitter {
179 _unused: [u8; 0],
180}
181#[repr(C)]
182#[derive(Debug, Copy, Clone)]
183pub struct BNType {
184 _unused: [u8; 0],
185}
186#[repr(C)]
187#[derive(Debug, Copy, Clone)]
188pub struct BNTypeBuilder {
189 _unused: [u8; 0],
190}
191#[repr(C)]
192#[derive(Debug, Copy, Clone)]
193pub struct BNTypeLibrary {
194 _unused: [u8; 0],
195}
196#[repr(C)]
197#[derive(Debug, Copy, Clone)]
198pub struct BNFieldResolutionInfo {
199 _unused: [u8; 0],
200}
201#[repr(C)]
202#[derive(Debug, Copy, Clone)]
203pub struct BNStructure {
204 _unused: [u8; 0],
205}
206#[repr(C)]
207#[derive(Debug, Copy, Clone)]
208pub struct BNStructureBuilder {
209 _unused: [u8; 0],
210}
211#[repr(C)]
212#[derive(Debug, Copy, Clone)]
213pub struct BNTagType {
214 _unused: [u8; 0],
215}
216#[repr(C)]
217#[derive(Debug, Copy, Clone)]
218pub struct BNTag {
219 _unused: [u8; 0],
220}
221#[repr(C)]
222#[derive(Debug, Copy, Clone)]
223pub struct BNUser {
224 _unused: [u8; 0],
225}
226#[repr(C)]
227#[derive(Debug, Copy, Clone)]
228pub struct BNNamedTypeReference {
229 _unused: [u8; 0],
230}
231#[repr(C)]
232#[derive(Debug, Copy, Clone)]
233pub struct BNNamedTypeReferenceBuilder {
234 _unused: [u8; 0],
235}
236#[repr(C)]
237#[derive(Debug, Copy, Clone)]
238pub struct BNEnumeration {
239 _unused: [u8; 0],
240}
241#[repr(C)]
242#[derive(Debug, Copy, Clone)]
243pub struct BNEnumerationBuilder {
244 _unused: [u8; 0],
245}
246#[repr(C)]
247#[derive(Debug, Copy, Clone)]
248pub struct BNCallingConvention {
249 _unused: [u8; 0],
250}
251#[repr(C)]
252#[derive(Debug, Copy, Clone)]
253pub struct BNPlatform {
254 _unused: [u8; 0],
255}
256#[repr(C)]
257#[derive(Debug, Copy, Clone)]
258pub struct BNActivity {
259 _unused: [u8; 0],
260}
261#[repr(C)]
262#[derive(Debug, Copy, Clone)]
263pub struct BNAnalysisContext {
264 _unused: [u8; 0],
265}
266#[repr(C)]
267#[derive(Debug, Copy, Clone)]
268pub struct BNWorkflow {
269 _unused: [u8; 0],
270}
271#[repr(C)]
272#[derive(Debug, Copy, Clone)]
273pub struct BNAnalysisCompletionEvent {
274 _unused: [u8; 0],
275}
276#[repr(C)]
277#[derive(Debug, Copy, Clone)]
278pub struct BNDisassemblySettings {
279 _unused: [u8; 0],
280}
281#[repr(C)]
282#[derive(Debug, Copy, Clone)]
283pub struct BNSaveSettings {
284 _unused: [u8; 0],
285}
286#[repr(C)]
287#[derive(Debug, Copy, Clone)]
288pub struct BNScriptingProvider {
289 _unused: [u8; 0],
290}
291#[repr(C)]
292#[derive(Debug, Copy, Clone)]
293pub struct BNScriptingInstance {
294 _unused: [u8; 0],
295}
296#[repr(C)]
297#[derive(Debug, Copy, Clone)]
298pub struct BNMainThreadAction {
299 _unused: [u8; 0],
300}
301#[repr(C)]
302#[derive(Debug, Copy, Clone)]
303pub struct BNBackgroundTask {
304 _unused: [u8; 0],
305}
306#[repr(C)]
307#[derive(Debug, Copy, Clone)]
308pub struct BNRepository {
309 _unused: [u8; 0],
310}
311#[repr(C)]
312#[derive(Debug, Copy, Clone)]
313pub struct BNPlugin {
314 _unused: [u8; 0],
315}
316#[repr(C)]
317#[derive(Debug, Copy, Clone)]
318pub struct BNComponent {
319 _unused: [u8; 0],
320}
321#[repr(C)]
322#[derive(Debug, Copy, Clone)]
323pub struct BNSettings {
324 _unused: [u8; 0],
325}
326#[repr(C)]
327#[derive(Debug, Copy, Clone)]
328pub struct BNMetadata {
329 _unused: [u8; 0],
330}
331#[repr(C)]
332#[derive(Debug, Copy, Clone)]
333pub struct BNReportCollection {
334 _unused: [u8; 0],
335}
336#[repr(C)]
337#[derive(Debug, Copy, Clone)]
338pub struct BNRelocation {
339 _unused: [u8; 0],
340}
341#[repr(C)]
342#[derive(Debug, Copy, Clone)]
343pub struct BNSegment {
344 _unused: [u8; 0],
345}
346#[repr(C)]
347#[derive(Debug, Copy, Clone)]
348pub struct BNSection {
349 _unused: [u8; 0],
350}
351#[repr(C)]
352#[derive(Debug, Copy, Clone)]
353pub struct BNRelocationHandler {
354 _unused: [u8; 0],
355}
356#[repr(C)]
357#[derive(Debug, Copy, Clone)]
358pub struct BNDataRenderer {
359 _unused: [u8; 0],
360}
361#[repr(C)]
362#[derive(Debug, Copy, Clone)]
363pub struct BNDataRendererContainer {
364 _unused: [u8; 0],
365}
366#[repr(C)]
367#[derive(Debug, Copy, Clone)]
368pub struct BNDisassemblyTextRenderer {
369 _unused: [u8; 0],
370}
371#[repr(C)]
372#[derive(Debug, Copy, Clone)]
373pub struct BNLinearViewObject {
374 _unused: [u8; 0],
375}
376#[repr(C)]
377#[derive(Debug, Copy, Clone)]
378pub struct BNLinearViewCursor {
379 _unused: [u8; 0],
380}
381#[repr(C)]
382#[derive(Debug, Copy, Clone)]
383pub struct BNDebugInfo {
384 _unused: [u8; 0],
385}
386#[repr(C)]
387#[derive(Debug, Copy, Clone)]
388pub struct BNDebugInfoParser {
389 _unused: [u8; 0],
390}
391#[repr(C)]
392#[derive(Debug, Copy, Clone)]
393pub struct BNSecretsProvider {
394 _unused: [u8; 0],
395}
396#[repr(C)]
397#[derive(Debug, Copy, Clone)]
398pub struct BNLogger {
399 _unused: [u8; 0],
400}
401#[repr(C)]
402#[derive(Debug, Copy, Clone)]
403pub struct BNSymbolQueue {
404 _unused: [u8; 0],
405}
406#[repr(C)]
407#[derive(Debug, Copy, Clone)]
408pub struct BNTypeArchive {
409 _unused: [u8; 0],
410}
411#[repr(C)]
412#[derive(Debug, Copy, Clone)]
413pub struct BNTypeContainer {
414 _unused: [u8; 0],
415}
416#[repr(C)]
417#[derive(Debug, Copy, Clone)]
418pub struct BNProject {
419 _unused: [u8; 0],
420}
421#[repr(C)]
422#[derive(Debug, Copy, Clone)]
423pub struct BNProjectFile {
424 _unused: [u8; 0],
425}
426#[repr(C)]
427#[derive(Debug, Copy, Clone)]
428pub struct BNExternalLibrary {
429 _unused: [u8; 0],
430}
431#[repr(C)]
432#[derive(Debug, Copy, Clone)]
433pub struct BNExternalLocation {
434 _unused: [u8; 0],
435}
436#[repr(C)]
437#[derive(Debug, Copy, Clone)]
438pub struct BNProjectFolder {
439 _unused: [u8; 0],
440}
441#[repr(C)]
442#[derive(Debug, Copy, Clone)]
443pub struct BNBaseAddressDetection {
444 _unused: [u8; 0],
445}
446#[repr(C)]
447#[derive(Debug, Copy, Clone)]
448pub struct BNCollaborationChangeset {
449 _unused: [u8; 0],
450}
451#[repr(C)]
452#[derive(Debug, Copy, Clone)]
453pub struct BNRemoteFile {
454 _unused: [u8; 0],
455}
456#[repr(C)]
457#[derive(Debug, Copy, Clone)]
458pub struct BNRemoteFolder {
459 _unused: [u8; 0],
460}
461#[repr(C)]
462#[derive(Debug, Copy, Clone)]
463pub struct BNCollaborationGroup {
464 _unused: [u8; 0],
465}
466#[repr(C)]
467#[derive(Debug, Copy, Clone)]
468pub struct BNCollaborationPermission {
469 _unused: [u8; 0],
470}
471#[repr(C)]
472#[derive(Debug, Copy, Clone)]
473pub struct BNRemoteProject {
474 _unused: [u8; 0],
475}
476#[repr(C)]
477#[derive(Debug, Copy, Clone)]
478pub struct BNRemote {
479 _unused: [u8; 0],
480}
481#[repr(C)]
482#[derive(Debug, Copy, Clone)]
483pub struct BNCollaborationSnapshot {
484 _unused: [u8; 0],
485}
486#[repr(C)]
487#[derive(Debug, Copy, Clone)]
488pub struct BNCollaborationUndoEntry {
489 _unused: [u8; 0],
490}
491#[repr(C)]
492#[derive(Debug, Copy, Clone)]
493pub struct BNCollaborationUser {
494 _unused: [u8; 0],
495}
496#[repr(C)]
497#[derive(Debug, Copy, Clone)]
498pub struct BNAnalysisMergeConflict {
499 _unused: [u8; 0],
500}
501#[repr(C)]
502#[derive(Debug, Copy, Clone)]
503pub struct BNAnalysisMergeConflictSplitter {
504 _unused: [u8; 0],
505}
506#[repr(C)]
507#[derive(Debug, Copy, Clone)]
508pub struct BNTypeArchiveMergeConflict {
509 _unused: [u8; 0],
510}
511#[repr(C)]
512#[derive(Debug, Copy, Clone)]
513pub struct BNCollaborationLazyT {
514 _unused: [u8; 0],
515}
516#[repr(C)]
517#[derive(Debug, Copy, Clone)]
518pub struct BNUndoAction {
519 _unused: [u8; 0],
520}
521#[repr(C)]
522#[derive(Debug, Copy, Clone)]
523pub struct BNUndoEntry {
524 _unused: [u8; 0],
525}
526#[repr(C)]
527#[derive(Debug, Copy, Clone)]
528pub struct BNDemangler {
529 _unused: [u8; 0],
530}
531#[repr(C)]
532#[derive(Debug, Copy, Clone)]
533pub struct BNFirmwareNinja {
534 _unused: [u8; 0],
535}
536#[repr(C)]
537#[derive(Debug, Copy, Clone)]
538pub struct BNFirmwareNinjaReferenceNode {
539 _unused: [u8; 0],
540}
541#[repr(C)]
542#[derive(Debug, Copy, Clone)]
543pub struct BNFirmwareNinjaRelationship {
544 _unused: [u8; 0],
545}
546#[repr(C)]
547#[derive(Debug, Copy, Clone)]
548pub struct BNLineFormatter {
549 _unused: [u8; 0],
550}
551#[repr(C)]
552#[derive(Debug, Copy, Clone)]
553pub struct BNRenderLayer {
554 _unused: [u8; 0],
555}
556#[repr(C)]
557#[derive(Debug, Copy, Clone)]
558pub struct BNStringRef {
559 _unused: [u8; 0],
560}
561#[repr(C)]
562#[derive(Debug, Copy, Clone)]
563pub struct BNConstantRenderer {
564 _unused: [u8; 0],
565}
566#[repr(C)]
567#[derive(Debug, Copy, Clone)]
568pub struct BNStringRecognizer {
569 _unused: [u8; 0],
570}
571#[repr(C)]
572#[derive(Debug, Copy, Clone)]
573pub struct BNCustomStringType {
574 _unused: [u8; 0],
575}
576#[repr(C)]
577#[derive(Debug, Copy, Clone)]
578pub struct BNVersionInfo {
579 pub major: u32,
580 pub minor: u32,
581 pub build: u32,
582 pub channel: *mut ::std::os::raw::c_char,
583}
584#[allow(clippy::unnecessary_operation, clippy::identity_op)]
585const _: () = {
586 ["Size of BNVersionInfo"][::std::mem::size_of::<BNVersionInfo>() - 24usize];
587 ["Alignment of BNVersionInfo"][::std::mem::align_of::<BNVersionInfo>() - 8usize];
588 ["Offset of field: BNVersionInfo::major"]
589 [::std::mem::offset_of!(BNVersionInfo, major) - 0usize];
590 ["Offset of field: BNVersionInfo::minor"]
591 [::std::mem::offset_of!(BNVersionInfo, minor) - 4usize];
592 ["Offset of field: BNVersionInfo::build"]
593 [::std::mem::offset_of!(BNVersionInfo, build) - 8usize];
594 ["Offset of field: BNVersionInfo::channel"]
595 [::std::mem::offset_of!(BNVersionInfo, channel) - 16usize];
596};
597impl Default for BNVersionInfo {
598 fn default() -> Self {
599 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
600 unsafe {
601 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
602 s.assume_init()
603 }
604 }
605}
606#[repr(C)]
607#[derive(Debug, Copy, Clone)]
608pub struct BNPluginVersionPlatform {
609 pub name: *mut ::std::os::raw::c_char,
610 pub downloadUrl: *mut ::std::os::raw::c_char,
611 pub untrackedDownloadUrl: *mut ::std::os::raw::c_char,
612}
613#[allow(clippy::unnecessary_operation, clippy::identity_op)]
614const _: () = {
615 ["Size of BNPluginVersionPlatform"][::std::mem::size_of::<BNPluginVersionPlatform>() - 24usize];
616 ["Alignment of BNPluginVersionPlatform"]
617 [::std::mem::align_of::<BNPluginVersionPlatform>() - 8usize];
618 ["Offset of field: BNPluginVersionPlatform::name"]
619 [::std::mem::offset_of!(BNPluginVersionPlatform, name) - 0usize];
620 ["Offset of field: BNPluginVersionPlatform::downloadUrl"]
621 [::std::mem::offset_of!(BNPluginVersionPlatform, downloadUrl) - 8usize];
622 ["Offset of field: BNPluginVersionPlatform::untrackedDownloadUrl"]
623 [::std::mem::offset_of!(BNPluginVersionPlatform, untrackedDownloadUrl) - 16usize];
624};
625impl Default for BNPluginVersionPlatform {
626 fn default() -> Self {
627 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
628 unsafe {
629 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
630 s.assume_init()
631 }
632 }
633}
634#[repr(C)]
635#[derive(Debug, Copy, Clone)]
636pub struct BNPluginVersion {
637 pub id: *mut ::std::os::raw::c_char,
638 pub versionString: *mut ::std::os::raw::c_char,
639 pub longDescription: *mut ::std::os::raw::c_char,
640 pub changelog: *mut ::std::os::raw::c_char,
641 pub minimumClientVersion: u64,
642 pub platforms: *mut BNPluginVersionPlatform,
643 pub platformCount: usize,
644 pub created: *mut ::std::os::raw::c_char,
645}
646#[allow(clippy::unnecessary_operation, clippy::identity_op)]
647const _: () = {
648 ["Size of BNPluginVersion"][::std::mem::size_of::<BNPluginVersion>() - 64usize];
649 ["Alignment of BNPluginVersion"][::std::mem::align_of::<BNPluginVersion>() - 8usize];
650 ["Offset of field: BNPluginVersion::id"][::std::mem::offset_of!(BNPluginVersion, id) - 0usize];
651 ["Offset of field: BNPluginVersion::versionString"]
652 [::std::mem::offset_of!(BNPluginVersion, versionString) - 8usize];
653 ["Offset of field: BNPluginVersion::longDescription"]
654 [::std::mem::offset_of!(BNPluginVersion, longDescription) - 16usize];
655 ["Offset of field: BNPluginVersion::changelog"]
656 [::std::mem::offset_of!(BNPluginVersion, changelog) - 24usize];
657 ["Offset of field: BNPluginVersion::minimumClientVersion"]
658 [::std::mem::offset_of!(BNPluginVersion, minimumClientVersion) - 32usize];
659 ["Offset of field: BNPluginVersion::platforms"]
660 [::std::mem::offset_of!(BNPluginVersion, platforms) - 40usize];
661 ["Offset of field: BNPluginVersion::platformCount"]
662 [::std::mem::offset_of!(BNPluginVersion, platformCount) - 48usize];
663 ["Offset of field: BNPluginVersion::created"]
664 [::std::mem::offset_of!(BNPluginVersion, created) - 56usize];
665};
666impl Default for BNPluginVersion {
667 fn default() -> Self {
668 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
669 unsafe {
670 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
671 s.assume_init()
672 }
673 }
674}
675#[repr(C)]
676#[derive(Debug, Copy, Clone)]
677pub struct BNRemoteFileSearchMatch {
678 pub projectId: *mut ::std::os::raw::c_char,
679 pub projectName: *mut ::std::os::raw::c_char,
680 pub fileId: *mut ::std::os::raw::c_char,
681 pub fileName: *mut ::std::os::raw::c_char,
682}
683#[allow(clippy::unnecessary_operation, clippy::identity_op)]
684const _: () = {
685 ["Size of BNRemoteFileSearchMatch"][::std::mem::size_of::<BNRemoteFileSearchMatch>() - 32usize];
686 ["Alignment of BNRemoteFileSearchMatch"]
687 [::std::mem::align_of::<BNRemoteFileSearchMatch>() - 8usize];
688 ["Offset of field: BNRemoteFileSearchMatch::projectId"]
689 [::std::mem::offset_of!(BNRemoteFileSearchMatch, projectId) - 0usize];
690 ["Offset of field: BNRemoteFileSearchMatch::projectName"]
691 [::std::mem::offset_of!(BNRemoteFileSearchMatch, projectName) - 8usize];
692 ["Offset of field: BNRemoteFileSearchMatch::fileId"]
693 [::std::mem::offset_of!(BNRemoteFileSearchMatch, fileId) - 16usize];
694 ["Offset of field: BNRemoteFileSearchMatch::fileName"]
695 [::std::mem::offset_of!(BNRemoteFileSearchMatch, fileName) - 24usize];
696};
697impl Default for BNRemoteFileSearchMatch {
698 fn default() -> Self {
699 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
700 unsafe {
701 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
702 s.assume_init()
703 }
704 }
705}
706pub type BNProgressFunction = ::std::option::Option<
707 unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void, arg2: usize, arg3: usize) -> bool,
708>;
709#[repr(u8)]
710#[doc = "! Console log levels"]
711#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
712pub enum BNLogLevel {
713 DebugLog = 0,
714 #[doc = "! Debug logging level, most verbose logging level"]
715 InfoLog = 1,
716 #[doc = "! Information logging level, default logging level"]
717 WarningLog = 2,
718 #[doc = "! Warning logging level, messages show with warning icon in the UI"]
719 ErrorLog = 3,
720 #[doc = "! Error logging level, messages show with error icon in the UI"]
721 AlertLog = 4,
722}
723#[repr(u8)]
724#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
725pub enum BNEndianness {
726 LittleEndian = 0,
727 BigEndian = 1,
728}
729#[repr(u8)]
730#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
731pub enum BNModificationStatus {
732 Original = 0,
733 Changed = 1,
734 Inserted = 2,
735}
736#[repr(u16)]
737#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
738pub enum BNTransformType {
739 #[doc = " Two-way transform of data, binary input/output"]
740 BinaryCodecTransform = 0,
741 #[doc = " Two-way transform of data, encoder output is text"]
742 TextCodecTransform = 1,
743 #[doc = " Two-way transform of data, encoder output is Unicode string (as UTF8)"]
744 UnicodeCodecTransform = 2,
745 #[doc = " One-way decode only"]
746 DecodeTransform = 3,
747 #[doc = " One-way encode only, output is binary"]
748 BinaryEncodeTransform = 4,
749 #[doc = " One-way encode only, output is text"]
750 TextEncodeTransform = 5,
751 #[doc = " Two-way encryption"]
752 EncryptTransform = 6,
753 #[doc = " Transform that can be undone by performing twice"]
754 InvertingTransform = 7,
755 #[doc = " Hash function"]
756 HashTransform = 8,
757}
758#[repr(u8)]
759#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
760pub enum BNTransformSessionMode {
761 #[doc = " Open the root file as-is (no unwrapping)"]
762 TransformSessionModeDisabled = 0,
763 #[doc = " Discover all paths (build the full context tree)"]
764 TransformSessionModeFull = 1,
765 #[doc = " Interactively request selection at each level of the container hierarchy"]
766 TransformSessionModeInteractive = 2,
767}
768#[repr(u8)]
769#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
770pub enum BNTransformResult {
771 TransformSuccess = 0,
772 TransformNotAttempted = 1,
773 TransformFailure = 2,
774 TransformRequiresPassword = 3,
775}
776#[repr(u8)]
777#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
778pub enum BNBranchType {
779 UnconditionalBranch = 0,
780 FalseBranch = 1,
781 TrueBranch = 2,
782 CallDestination = 3,
783 FunctionReturn = 4,
784 SystemCall = 5,
785 IndirectBranch = 6,
786 ExceptionBranch = 7,
787 UnresolvedBranch = 127,
788 UserDefinedBranch = 128,
789}
790#[repr(u8)]
791#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
792pub enum BNInstructionTextTokenType {
793 TextToken = 0,
794 InstructionToken = 1,
795 OperandSeparatorToken = 2,
796 RegisterToken = 3,
797 IntegerToken = 4,
798 PossibleAddressToken = 5,
799 BeginMemoryOperandToken = 6,
800 EndMemoryOperandToken = 7,
801 FloatingPointToken = 8,
802 AnnotationToken = 9,
803 CodeRelativeAddressToken = 10,
804 ArgumentNameToken = 11,
805 HexDumpByteValueToken = 12,
806 HexDumpSkippedByteToken = 13,
807 HexDumpInvalidByteToken = 14,
808 HexDumpTextToken = 15,
809 OpcodeToken = 16,
810 StringToken = 17,
811 CharacterConstantToken = 18,
812 KeywordToken = 19,
813 TypeNameToken = 20,
814 FieldNameToken = 21,
815 NameSpaceToken = 22,
816 NameSpaceSeparatorToken = 23,
817 TagToken = 24,
818 StructOffsetToken = 25,
819 StructOffsetByteValueToken = 26,
820 StructureHexDumpTextToken = 27,
821 GotoLabelToken = 28,
822 CommentToken = 29,
823 PossibleValueToken = 30,
824 PossibleValueTypeToken = 31,
825 ArrayIndexToken = 32,
826 IndentationToken = 33,
827 UnknownMemoryToken = 34,
828 EnumerationMemberToken = 35,
829 OperationToken = 36,
830 BaseStructureNameToken = 37,
831 BaseStructureSeparatorToken = 38,
832 BraceToken = 39,
833 #[doc = " The following are output by the analysis system automatically, these should\n not be used directly by the architecture plugins"]
834 CodeSymbolToken = 64,
835 #[doc = " The following are output by the analysis system automatically, these should\n not be used directly by the architecture plugins"]
836 DataSymbolToken = 65,
837 #[doc = " The following are output by the analysis system automatically, these should\n not be used directly by the architecture plugins"]
838 LocalVariableToken = 66,
839 #[doc = " The following are output by the analysis system automatically, these should\n not be used directly by the architecture plugins"]
840 ImportToken = 67,
841 #[doc = " The following are output by the analysis system automatically, these should\n not be used directly by the architecture plugins"]
842 AddressDisplayToken = 68,
843 #[doc = " The following are output by the analysis system automatically, these should\n not be used directly by the architecture plugins"]
844 IndirectImportToken = 69,
845 #[doc = " The following are output by the analysis system automatically, these should\n not be used directly by the architecture plugins"]
846 ExternalSymbolToken = 70,
847 #[doc = " The following are output by the analysis system automatically, these should\n not be used directly by the architecture plugins"]
848 StackVariableToken = 71,
849 #[doc = " The following are output by the analysis system automatically, these should\n not be used directly by the architecture plugins"]
850 AddressSeparatorToken = 72,
851 #[doc = " The following are output by the analysis system automatically, these should\n not be used directly by the architecture plugins"]
852 CollapsedInformationToken = 73,
853 #[doc = " The following are output by the analysis system automatically, these should\n not be used directly by the architecture plugins"]
854 CollapseStateIndicatorToken = 74,
855 #[doc = " The following are output by the analysis system automatically, these should\n not be used directly by the architecture plugins"]
856 NewLineToken = 75,
857}
858#[repr(u8)]
859#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
860pub enum BNInstructionTextTokenContext {
861 NoTokenContext = 0,
862 LocalVariableTokenContext = 1,
863 DataVariableTokenContext = 2,
864 FunctionReturnTokenContext = 3,
865 InstructionAddressTokenContext = 4,
866 ILInstructionIndexTokenContext = 5,
867 #[doc = " For Const Data arrays"]
868 ConstDataTokenContext = 6,
869 #[doc = " For ConstData strings"]
870 ConstStringDataTokenContext = 7,
871 #[doc = " For References to strings"]
872 StringReferenceTokenContext = 8,
873 #[doc = " For String DataVariables"]
874 StringDataVariableTokenContext = 9,
875 #[doc = " For displaying strings which aren't associated with an address"]
876 StringDisplayTokenContext = 10,
877 ContentCollapsedContext = 11,
878 ContentExpandedContext = 12,
879 ContentCollapsiblePadding = 13,
880 DerivedStringReferenceTokenContext = 14,
881}
882#[repr(u8)]
883#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
884pub enum BNLinearDisassemblyLineType {
885 BlankLineType = 0,
886 BasicLineType = 1,
887 CodeDisassemblyLineType = 2,
888 DataVariableLineType = 3,
889 HexDumpLineType = 4,
890 FunctionHeaderLineType = 5,
891 FunctionHeaderStartLineType = 6,
892 FunctionHeaderEndLineType = 7,
893 FunctionContinuationLineType = 8,
894 LocalVariableLineType = 9,
895 LocalVariableListEndLineType = 10,
896 FunctionEndLineType = 11,
897 NoteStartLineType = 12,
898 NoteLineType = 13,
899 NoteEndLineType = 14,
900 SectionStartLineType = 15,
901 SectionEndLineType = 16,
902 SectionSeparatorLineType = 17,
903 NonContiguousSeparatorLineType = 18,
904 AnalysisWarningLineType = 19,
905 CollapsedFunctionEndLineType = 20,
906}
907#[repr(u8)]
908#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
909pub enum BNTokenEscapingType {
910 NoTokenEscapingType = 0,
911 BackticksTokenEscapingType = 1,
912 QuotedStringEscapingType = 2,
913 ReplaceInvalidCharsEscapingType = 3,
914}
915#[repr(u8)]
916#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
917pub enum BNSymbolType {
918 FunctionSymbol = 0,
919 ImportAddressSymbol = 1,
920 ImportedFunctionSymbol = 2,
921 DataSymbol = 3,
922 ImportedDataSymbol = 4,
923 ExternalSymbol = 5,
924 LibraryFunctionSymbol = 6,
925 SymbolicFunctionSymbol = 7,
926 LocalLabelSymbol = 8,
927}
928#[repr(u8)]
929#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
930pub enum BNSymbolBinding {
931 NoBinding = 0,
932 LocalBinding = 1,
933 GlobalBinding = 2,
934 WeakBinding = 3,
935}
936#[repr(u8)]
937#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
938pub enum BNLowLevelILOperation {
939 LLIL_NOP = 0,
940 #[doc = " Not valid in SSA form (see LLIL_SET_REG_SSA)"]
941 LLIL_SET_REG = 1,
942 #[doc = " Not valid in SSA form (see LLIL_SET_REG_SPLIT_SSA)"]
943 LLIL_SET_REG_SPLIT = 2,
944 #[doc = " Not valid in SSA form (see LLIL_SET_FLAG_SSA)"]
945 LLIL_SET_FLAG = 3,
946 #[doc = " Not valid in SSA form (see LLIL_SET_REG_STACK_REL_SSA)"]
947 LLIL_SET_REG_STACK_REL = 4,
948 #[doc = " Not valid in SSA form (expanded)"]
949 LLIL_REG_STACK_PUSH = 5,
950 LLIL_ASSERT = 6,
951 LLIL_FORCE_VER = 7,
952 #[doc = " Not valid in SSA form (see LLIL_LOAD_SSA)"]
953 LLIL_LOAD = 8,
954 #[doc = " Not valid in SSA form (see LLIL_STORE_SSA)"]
955 LLIL_STORE = 9,
956 #[doc = " Not valid in SSA form (expanded)"]
957 LLIL_PUSH = 10,
958 #[doc = " Not valid in SSA form (expanded)"]
959 LLIL_POP = 11,
960 #[doc = " Not valid in SSA form (see LLIL_REG_SSA)"]
961 LLIL_REG = 12,
962 #[doc = " Not valid in SSA form (see LLIL_REG_SPLIT_SSA)"]
963 LLIL_REG_SPLIT = 13,
964 #[doc = " Not valid in SSA form (see LLIL_REG_STACK_REL_SSA)"]
965 LLIL_REG_STACK_REL = 14,
966 #[doc = " Not valid in SSA form (expanded)"]
967 LLIL_REG_STACK_POP = 15,
968 #[doc = " Not valid in SSA form (see LLIL_REG_STACK_FREE_REL_SSA,\n LLIL_REG_STACK_FREE_ABS_SSA)"]
969 LLIL_REG_STACK_FREE_REG = 16,
970 #[doc = " Not valid in SSA from (see LLIL_REG_STACK_FREE_REL_SSA)"]
971 LLIL_REG_STACK_FREE_REL = 17,
972 LLIL_CONST = 18,
973 LLIL_CONST_PTR = 19,
974 LLIL_EXTERN_PTR = 20,
975 LLIL_FLOAT_CONST = 21,
976 #[doc = " Not valid in SSA form (see LLIL_FLAG_SSA)"]
977 LLIL_FLAG = 22,
978 #[doc = " Not valid in SSA form (see LLIL_FLAG_BIT_SSA)"]
979 LLIL_FLAG_BIT = 23,
980 LLIL_ADD = 24,
981 LLIL_ADC = 25,
982 LLIL_SUB = 26,
983 LLIL_SBB = 27,
984 LLIL_AND = 28,
985 LLIL_OR = 29,
986 LLIL_XOR = 30,
987 LLIL_LSL = 31,
988 LLIL_LSR = 32,
989 LLIL_ASR = 33,
990 LLIL_ROL = 34,
991 LLIL_RLC = 35,
992 LLIL_ROR = 36,
993 LLIL_RRC = 37,
994 LLIL_MUL = 38,
995 LLIL_MULU_DP = 39,
996 LLIL_MULS_DP = 40,
997 LLIL_DIVU = 41,
998 LLIL_DIVU_DP = 42,
999 LLIL_DIVS = 43,
1000 LLIL_DIVS_DP = 44,
1001 LLIL_MODU = 45,
1002 LLIL_MODU_DP = 46,
1003 LLIL_MODS = 47,
1004 LLIL_MODS_DP = 48,
1005 LLIL_NEG = 49,
1006 LLIL_NOT = 50,
1007 LLIL_SX = 51,
1008 LLIL_ZX = 52,
1009 LLIL_LOW_PART = 53,
1010 LLIL_JUMP = 54,
1011 LLIL_JUMP_TO = 55,
1012 LLIL_CALL = 56,
1013 LLIL_CALL_STACK_ADJUST = 57,
1014 LLIL_TAILCALL = 58,
1015 LLIL_RET = 59,
1016 LLIL_NORET = 60,
1017 LLIL_IF = 61,
1018 LLIL_GOTO = 62,
1019 #[doc = " Valid only in Lifted IL"]
1020 LLIL_FLAG_COND = 63,
1021 #[doc = " Valid only in Lifted IL"]
1022 LLIL_FLAG_GROUP = 64,
1023 LLIL_CMP_E = 65,
1024 LLIL_CMP_NE = 66,
1025 LLIL_CMP_SLT = 67,
1026 LLIL_CMP_ULT = 68,
1027 LLIL_CMP_SLE = 69,
1028 LLIL_CMP_ULE = 70,
1029 LLIL_CMP_SGE = 71,
1030 LLIL_CMP_UGE = 72,
1031 LLIL_CMP_SGT = 73,
1032 LLIL_CMP_UGT = 74,
1033 LLIL_TEST_BIT = 75,
1034 LLIL_BOOL_TO_INT = 76,
1035 LLIL_ADD_OVERFLOW = 77,
1036 LLIL_SYSCALL = 78,
1037 LLIL_BP = 79,
1038 LLIL_TRAP = 80,
1039 LLIL_INTRINSIC = 81,
1040 LLIL_UNDEF = 82,
1041 LLIL_UNIMPL = 83,
1042 LLIL_UNIMPL_MEM = 84,
1043 #[doc = " Floating point"]
1044 LLIL_FADD = 85,
1045 #[doc = " Floating point"]
1046 LLIL_FSUB = 86,
1047 #[doc = " Floating point"]
1048 LLIL_FMUL = 87,
1049 #[doc = " Floating point"]
1050 LLIL_FDIV = 88,
1051 #[doc = " Floating point"]
1052 LLIL_FSQRT = 89,
1053 #[doc = " Floating point"]
1054 LLIL_FNEG = 90,
1055 #[doc = " Floating point"]
1056 LLIL_FABS = 91,
1057 #[doc = " Floating point"]
1058 LLIL_FLOAT_TO_INT = 92,
1059 #[doc = " Floating point"]
1060 LLIL_INT_TO_FLOAT = 93,
1061 #[doc = " Floating point"]
1062 LLIL_FLOAT_CONV = 94,
1063 #[doc = " Floating point"]
1064 LLIL_ROUND_TO_INT = 95,
1065 #[doc = " Floating point"]
1066 LLIL_FLOOR = 96,
1067 #[doc = " Floating point"]
1068 LLIL_CEIL = 97,
1069 #[doc = " Floating point"]
1070 LLIL_FTRUNC = 98,
1071 #[doc = " Floating point"]
1072 LLIL_FCMP_E = 99,
1073 #[doc = " Floating point"]
1074 LLIL_FCMP_NE = 100,
1075 #[doc = " Floating point"]
1076 LLIL_FCMP_LT = 101,
1077 #[doc = " Floating point"]
1078 LLIL_FCMP_LE = 102,
1079 #[doc = " Floating point"]
1080 LLIL_FCMP_GE = 103,
1081 #[doc = " Floating point"]
1082 LLIL_FCMP_GT = 104,
1083 #[doc = " Floating point"]
1084 LLIL_FCMP_O = 105,
1085 #[doc = " Floating point"]
1086 LLIL_FCMP_UO = 106,
1087 #[doc = " The following instructions are only used in SSA form"]
1088 LLIL_SET_REG_SSA = 107,
1089 #[doc = " The following instructions are only used in SSA form"]
1090 LLIL_SET_REG_SSA_PARTIAL = 108,
1091 #[doc = " The following instructions are only used in SSA form"]
1092 LLIL_SET_REG_SPLIT_SSA = 109,
1093 #[doc = " The following instructions are only used in SSA form"]
1094 LLIL_SET_REG_STACK_REL_SSA = 110,
1095 #[doc = " The following instructions are only used in SSA form"]
1096 LLIL_SET_REG_STACK_ABS_SSA = 111,
1097 #[doc = " Only valid within an LLIL_SET_REG_SPLIT_SSA instruction"]
1098 LLIL_REG_SPLIT_DEST_SSA = 112,
1099 #[doc = " Only valid within LLIL_SET_REG_STACK_REL_SSA or LLIL_SET_REG_STACK_ABS_SSA"]
1100 LLIL_REG_STACK_DEST_SSA = 113,
1101 LLIL_REG_SSA = 114,
1102 LLIL_REG_SSA_PARTIAL = 115,
1103 LLIL_REG_SPLIT_SSA = 116,
1104 LLIL_REG_STACK_REL_SSA = 117,
1105 LLIL_REG_STACK_ABS_SSA = 118,
1106 LLIL_REG_STACK_FREE_REL_SSA = 119,
1107 LLIL_REG_STACK_FREE_ABS_SSA = 120,
1108 LLIL_SET_FLAG_SSA = 121,
1109 LLIL_ASSERT_SSA = 122,
1110 LLIL_FORCE_VER_SSA = 123,
1111 LLIL_FLAG_SSA = 124,
1112 LLIL_FLAG_BIT_SSA = 125,
1113 LLIL_CALL_SSA = 126,
1114 LLIL_SYSCALL_SSA = 127,
1115 LLIL_TAILCALL_SSA = 128,
1116 #[doc = " Only valid within the LLIL_CALL_SSA, LLIL_SYSCALL_SSA, LLIL_INTRINSIC, LLIL_INTRINSIC_SSA,\n LLIL_MEMORY_INTRINSIC_SSA, LLIL_TAILCALL, LLIL_TAILCALL_SSA instructions"]
1117 LLIL_CALL_PARAM = 129,
1118 #[doc = " Only valid within the LLIL_CALL_SSA or LLIL_SYSCALL_SSA instructions"]
1119 LLIL_CALL_STACK_SSA = 130,
1120 #[doc = " Only valid within the LLIL_CALL_SSA or LLIL_SYSCALL_SSA instructions"]
1121 LLIL_CALL_OUTPUT_SSA = 131,
1122 #[doc = " Only valid within the LLIL_CALL_PARAM instruction"]
1123 LLIL_SEPARATE_PARAM_LIST_SSA = 132,
1124 #[doc = " Only valid within the LLIL_CALL_PARAM or LLIL_SEPARATE_PARAM_LIST_SSA instructions"]
1125 LLIL_SHARED_PARAM_SLOT_SSA = 133,
1126 #[doc = " Only valid within the LLIL_MEMORY_INTRINSIC_SSA instruction"]
1127 LLIL_MEMORY_INTRINSIC_OUTPUT_SSA = 134,
1128 LLIL_LOAD_SSA = 135,
1129 LLIL_STORE_SSA = 136,
1130 LLIL_INTRINSIC_SSA = 137,
1131 LLIL_MEMORY_INTRINSIC_SSA = 138,
1132 LLIL_REG_PHI = 139,
1133 LLIL_REG_STACK_PHI = 140,
1134 LLIL_FLAG_PHI = 141,
1135 LLIL_MEM_PHI = 142,
1136}
1137#[repr(u8)]
1138#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1139pub enum BNLowLevelILFlagCondition {
1140 LLFC_E = 0,
1141 LLFC_NE = 1,
1142 LLFC_SLT = 2,
1143 LLFC_ULT = 3,
1144 LLFC_SLE = 4,
1145 LLFC_ULE = 5,
1146 LLFC_SGE = 6,
1147 LLFC_UGE = 7,
1148 LLFC_SGT = 8,
1149 LLFC_UGT = 9,
1150 LLFC_NEG = 10,
1151 LLFC_POS = 11,
1152 LLFC_O = 12,
1153 LLFC_NO = 13,
1154 LLFC_FE = 14,
1155 LLFC_FNE = 15,
1156 LLFC_FLT = 16,
1157 LLFC_FLE = 17,
1158 LLFC_FGE = 18,
1159 LLFC_FGT = 19,
1160 LLFC_FO = 20,
1161 LLFC_FUO = 21,
1162}
1163#[repr(u8)]
1164#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1165pub enum BNFlagRole {
1166 SpecialFlagRole = 0,
1167 ZeroFlagRole = 1,
1168 PositiveSignFlagRole = 2,
1169 NegativeSignFlagRole = 3,
1170 CarryFlagRole = 4,
1171 OverflowFlagRole = 5,
1172 HalfCarryFlagRole = 6,
1173 EvenParityFlagRole = 7,
1174 OddParityFlagRole = 8,
1175 OrderedFlagRole = 9,
1176 UnorderedFlagRole = 10,
1177 CarryFlagWithInvertedSubtractRole = 11,
1178}
1179#[repr(i8)]
1180#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1181pub enum BNFunctionGraphType {
1182 InvalidILViewType = -1,
1183 NormalFunctionGraph = 0,
1184 LowLevelILFunctionGraph = 1,
1185 LiftedILFunctionGraph = 2,
1186 LowLevelILSSAFormFunctionGraph = 3,
1187 MediumLevelILFunctionGraph = 4,
1188 MediumLevelILSSAFormFunctionGraph = 5,
1189 MappedMediumLevelILFunctionGraph = 6,
1190 MappedMediumLevelILSSAFormFunctionGraph = 7,
1191 HighLevelILFunctionGraph = 8,
1192 HighLevelILSSAFormFunctionGraph = 9,
1193 HighLevelLanguageRepresentationFunctionGraph = 10,
1194}
1195#[repr(C)]
1196#[derive(Debug, Copy, Clone)]
1197pub struct BNFunctionViewType {
1198 pub type_: BNFunctionGraphType,
1199 #[doc = " Only used for HighLevelLanguageRepresentationFunctionGraph"]
1200 pub name: *const ::std::os::raw::c_char,
1201}
1202#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1203const _: () = {
1204 ["Size of BNFunctionViewType"][::std::mem::size_of::<BNFunctionViewType>() - 16usize];
1205 ["Alignment of BNFunctionViewType"][::std::mem::align_of::<BNFunctionViewType>() - 8usize];
1206 ["Offset of field: BNFunctionViewType::type_"]
1207 [::std::mem::offset_of!(BNFunctionViewType, type_) - 0usize];
1208 ["Offset of field: BNFunctionViewType::name"]
1209 [::std::mem::offset_of!(BNFunctionViewType, name) - 8usize];
1210};
1211impl Default for BNFunctionViewType {
1212 fn default() -> Self {
1213 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1214 unsafe {
1215 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1216 s.assume_init()
1217 }
1218 }
1219}
1220#[repr(u8)]
1221#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1222pub enum BNDisassemblyOption {
1223 ShowAddress = 0,
1224 ShowOpcode = 1,
1225 ExpandLongOpcode = 2,
1226 ShowVariablesAtTopOfGraph = 3,
1227 ShowVariableTypesWhenAssigned = 4,
1228 ShowRegisterHighlight = 7,
1229 ShowFunctionAddress = 8,
1230 ShowFunctionHeader = 9,
1231 ShowTypeCasts = 10,
1232 #[doc = " Linear disassembly options"]
1233 GroupLinearDisassemblyFunctions = 64,
1234 #[doc = " Linear disassembly options"]
1235 HighLevelILLinearDisassembly = 65,
1236 #[doc = " Linear disassembly options"]
1237 WaitForIL = 66,
1238 #[doc = " Linear disassembly options"]
1239 IndentHLILBody = 67,
1240 #[doc = " Linear disassembly options"]
1241 DisableLineFormatting = 68,
1242 #[doc = " Debugging options"]
1243 ShowFlagUsage = 128,
1244 #[doc = " Debugging options"]
1245 ShowStackPointer = 129,
1246 #[doc = " Debugging options"]
1247 ShowILTypes = 130,
1248 #[doc = " Debugging options"]
1249 ShowILOpcodes = 131,
1250 #[doc = " Debugging options"]
1251 ShowCollapseIndicators = 132,
1252}
1253#[repr(u32)]
1254#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1255pub enum BNDisassemblyAddressMode {
1256 AbsoluteDisassemblyAddressMode = 0,
1257 RelativeToBinaryStartDisassemblyAddressMode = 1,
1258 RelativeToSegmentStartDisassemblyAddressMode = 2,
1259 RelativeToSectionStartDisassemblyAddressMode = 3,
1260 RelativeToFunctionStartDisassemblyAddressMode = 4,
1261 RelativeToAddressBaseOffsetDisassemblyAddressMode = 5,
1262 RelativeToDataStartDisassemblyAddressMode = 6,
1263 DisassemblyAddressModeMask = 65535,
1264 IncludeNameDisassemblyAddressModeFlag = 65536,
1265 DecimalDisassemblyAddressModeFlag = 131072,
1266 DisassemblyAddressModeFlagsMask = 4294901760,
1267}
1268#[repr(u8)]
1269#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1270pub enum BNDisassemblyCallParameterHints {
1271 NeverShowMatchingParameterHints = 0,
1272 AlwaysShowParameterHints = 1,
1273 NeverShowParameterHints = 2,
1274}
1275#[repr(u8)]
1276#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1277pub enum BNDisassemblyBlockLabels {
1278 NeverShowDefaultBlockLabels = 0,
1279 AlwaysShowBlockLabels = 1,
1280 NeverShowBlockLabels = 2,
1281}
1282#[repr(u8)]
1283#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1284pub enum BNTypeClass {
1285 VoidTypeClass = 0,
1286 BoolTypeClass = 1,
1287 IntegerTypeClass = 2,
1288 FloatTypeClass = 3,
1289 StructureTypeClass = 4,
1290 EnumerationTypeClass = 5,
1291 PointerTypeClass = 6,
1292 ArrayTypeClass = 7,
1293 FunctionTypeClass = 8,
1294 VarArgsTypeClass = 9,
1295 ValueTypeClass = 10,
1296 NamedTypeReferenceClass = 11,
1297 WideCharTypeClass = 12,
1298 FragmentTypeClass = 13,
1299}
1300#[repr(u8)]
1301#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1302pub enum BNNamedTypeReferenceClass {
1303 UnknownNamedTypeClass = 0,
1304 TypedefNamedTypeClass = 1,
1305 ClassNamedTypeClass = 2,
1306 StructNamedTypeClass = 3,
1307 UnionNamedTypeClass = 4,
1308 EnumNamedTypeClass = 5,
1309}
1310#[repr(u8)]
1311#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1312pub enum BNStructureVariant {
1313 ClassStructureType = 0,
1314 StructStructureType = 1,
1315 UnionStructureType = 2,
1316}
1317#[repr(u8)]
1318#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1319pub enum BNMemberScope {
1320 NoScope = 0,
1321 StaticScope = 1,
1322 VirtualScope = 2,
1323 ThunkScope = 3,
1324 FriendScope = 4,
1325}
1326#[repr(u8)]
1327#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1328pub enum BNMemberAccess {
1329 NoAccess = 0,
1330 PrivateAccess = 1,
1331 ProtectedAccess = 2,
1332 PublicAccess = 3,
1333}
1334#[repr(u8)]
1335#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1336pub enum BNReferenceType {
1337 PointerReferenceType = 0,
1338 ReferenceReferenceType = 1,
1339 RValueReferenceType = 2,
1340 NoReference = 3,
1341}
1342#[repr(u8)]
1343#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1344pub enum BNPointerSuffix {
1345 Ptr64Suffix = 0,
1346 UnalignedSuffix = 1,
1347 RestrictSuffix = 2,
1348 ReferenceSuffix = 3,
1349 LvalueSuffix = 4,
1350}
1351#[repr(u8)]
1352#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1353pub enum BNPointerBaseType {
1354 AbsolutePointerBaseType = 0,
1355 RelativeToConstantPointerBaseType = 1,
1356 RelativeToBinaryStartPointerBaseType = 2,
1357 RelativeToVariableAddressPointerBaseType = 3,
1358}
1359#[repr(u8)]
1360#[doc = " Caution: these enumeration values are used a lookups into the static NameTypeStrings in the core\n if you modify this you must also modify the string lookups as well"]
1361#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1362pub enum BNNameType {
1363 NoNameType = 0,
1364 ConstructorNameType = 1,
1365 DestructorNameType = 2,
1366 OperatorNewNameType = 3,
1367 OperatorDeleteNameType = 4,
1368 OperatorAssignNameType = 5,
1369 OperatorRightShiftNameType = 6,
1370 OperatorLeftShiftNameType = 7,
1371 OperatorNotNameType = 8,
1372 OperatorEqualNameType = 9,
1373 OperatorNotEqualNameType = 10,
1374 OperatorArrayNameType = 11,
1375 OperatorArrowNameType = 12,
1376 OperatorStarNameType = 13,
1377 OperatorIncrementNameType = 14,
1378 OperatorDecrementNameType = 15,
1379 OperatorMinusNameType = 16,
1380 OperatorPlusNameType = 17,
1381 OperatorBitAndNameType = 18,
1382 OperatorArrowStarNameType = 19,
1383 OperatorDivideNameType = 20,
1384 OperatorModulusNameType = 21,
1385 OperatorLessThanNameType = 22,
1386 OperatorLessThanEqualNameType = 23,
1387 OperatorGreaterThanNameType = 24,
1388 OperatorGreaterThanEqualNameType = 25,
1389 OperatorCommaNameType = 26,
1390 OperatorParenthesesNameType = 27,
1391 OperatorTildeNameType = 28,
1392 OperatorXorNameType = 29,
1393 OperatorBitOrNameType = 30,
1394 OperatorLogicalAndNameType = 31,
1395 OperatorLogicalOrNameType = 32,
1396 OperatorStarEqualNameType = 33,
1397 OperatorPlusEqualNameType = 34,
1398 OperatorMinusEqualNameType = 35,
1399 OperatorDivideEqualNameType = 36,
1400 OperatorModulusEqualNameType = 37,
1401 OperatorRightShiftEqualNameType = 38,
1402 OperatorLeftShiftEqualNameType = 39,
1403 OperatorAndEqualNameType = 40,
1404 OperatorOrEqualNameType = 41,
1405 OperatorXorEqualNameType = 42,
1406 VFTableNameType = 43,
1407 VBTableNameType = 44,
1408 VCallNameType = 45,
1409 TypeofNameType = 46,
1410 LocalStaticGuardNameType = 47,
1411 StringNameType = 48,
1412 VBaseDestructorNameType = 49,
1413 VectorDeletingDestructorNameType = 50,
1414 DefaultConstructorClosureNameType = 51,
1415 ScalarDeletingDestructorNameType = 52,
1416 VectorConstructorIteratorNameType = 53,
1417 VectorDestructorIteratorNameType = 54,
1418 VectorVBaseConstructorIteratorNameType = 55,
1419 VirtualDisplacementMapNameType = 56,
1420 EHVectorConstructorIteratorNameType = 57,
1421 EHVectorDestructorIteratorNameType = 58,
1422 EHVectorVBaseConstructorIteratorNameType = 59,
1423 CopyConstructorClosureNameType = 60,
1424 UDTReturningNameType = 61,
1425 LocalVFTableNameType = 62,
1426 LocalVFTableConstructorClosureNameType = 63,
1427 OperatorNewArrayNameType = 64,
1428 OperatorDeleteArrayNameType = 65,
1429 PlacementDeleteClosureNameType = 66,
1430 PlacementDeleteClosureArrayNameType = 67,
1431 OperatorReturnTypeNameType = 68,
1432 RttiTypeDescriptor = 69,
1433 RttiBaseClassDescriptor = 70,
1434 RttiBaseClassArray = 71,
1435 RttiClassHierarchyDescriptor = 72,
1436 RttiCompleteObjectLocator = 73,
1437 OperatorUnaryMinusNameType = 74,
1438 OperatorUnaryPlusNameType = 75,
1439 OperatorUnaryBitAndNameType = 76,
1440 OperatorUnaryStarNameType = 77,
1441 OmniCallSigNameType = 78,
1442 ManagedVectorConstructorIteratorNameType = 79,
1443 ManagedVectorDestructorIteratorNameType = 80,
1444 EHVectorCopyConstructorIteratorNameType = 81,
1445 EHVectorVBaseCopyConstructorIteratorNameType = 82,
1446 DynamicInitializerNameType = 83,
1447 DynamicAtExitDestructorNameType = 84,
1448 VectorCopyConstructorIteratorNameType = 85,
1449 VectorVBaseCopyConstructorIteratorNameType = 86,
1450 ManagedVectorCopyConstructorIteratorNameType = 87,
1451 LocalStaticThreadGuardNameType = 88,
1452 UserDefinedLiteralOperatorNameType = 89,
1453}
1454#[repr(u8)]
1455#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1456pub enum BNCallingConventionName {
1457 NoCallingConvention = 0,
1458 CdeclCallingConvention = 1,
1459 PascalCallingConvention = 2,
1460 ThisCallCallingConvention = 3,
1461 STDCallCallingConvention = 4,
1462 FastcallCallingConvention = 5,
1463 CLRCallCallingConvention = 6,
1464 EabiCallCallingConvention = 7,
1465 VectorCallCallingConvention = 8,
1466 SwiftCallingConvention = 9,
1467 SwiftAsyncCallingConvention = 10,
1468}
1469#[repr(u8)]
1470#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1471pub enum BNStringType {
1472 AsciiString = 0,
1473 Utf16String = 1,
1474 Utf32String = 2,
1475 Utf8String = 3,
1476}
1477#[repr(u8)]
1478#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1479pub enum BNIntegerDisplayType {
1480 DefaultIntegerDisplayType = 0,
1481 BinaryDisplayType = 1,
1482 SignedOctalDisplayType = 2,
1483 UnsignedOctalDisplayType = 3,
1484 SignedDecimalDisplayType = 4,
1485 UnsignedDecimalDisplayType = 5,
1486 SignedHexadecimalDisplayType = 6,
1487 UnsignedHexadecimalDisplayType = 7,
1488 CharacterConstantDisplayType = 8,
1489 PointerDisplayType = 9,
1490 FloatDisplayType = 10,
1491 DoubleDisplayType = 11,
1492 EnumerationDisplayType = 12,
1493 InvertedCharacterConstantDisplayType = 13,
1494 UnsignedComplementDecimalDisplayType = 14,
1495 UnsignedComplementHexadecimalDisplayType = 15,
1496}
1497#[repr(u8)]
1498#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1499pub enum BNFlowGraphOption {
1500 FlowGraphUsesBlockHighlights = 0,
1501 FlowGraphUsesInstructionHighlights = 1,
1502 FlowGraphIncludesUserComments = 2,
1503 FlowGraphAllowsPatching = 3,
1504 FlowGraphAllowsInlineInstructionEditing = 4,
1505 FlowGraphShowsSecondaryRegisterHighlighting = 5,
1506 FlowGraphIsAddressable = 6,
1507 FlowGraphIsWorkflowGraph = 7,
1508}
1509#[repr(u8)]
1510#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1511pub enum BNIntrinsicClass {
1512 GeneralIntrinsicClass = 0,
1513 MemoryIntrinsicClass = 1,
1514}
1515#[repr(u8)]
1516#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1517pub enum BNInlineDuringAnalysis {
1518 #[doc = " The called function should not be inlined."]
1519 DoNotInlineCall = 0,
1520 #[doc = " The called function should be inlined, with the inlined\n instructions preserving their original addresses.\n This was the only behavior available up through Binary Ninja 5.2."]
1521 InlinePreservingTargetInstructionAddresses = 1,
1522 #[doc = " The called function should be inlined, with the inlined\n instructions using the call site address as their address.\n This ensures that when the function is inlined into a caller\n multiple times, each occurrence can have different adjustments\n applied to it. The trade-off is that the instructions inlined\n at a given call site have the same address, which in turn\n prevents applying adjustments that depend on instruction\n address to only a subset of those instructions."]
1523 InlineUsingCallAddress = 2,
1524}
1525#[repr(C)]
1526#[derive(Debug, Copy, Clone)]
1527pub struct BNInlineDuringAnalysisWithConfidence {
1528 pub value: BNInlineDuringAnalysis,
1529 pub confidence: u8,
1530}
1531#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1532const _: () = {
1533 ["Size of BNInlineDuringAnalysisWithConfidence"]
1534 [::std::mem::size_of::<BNInlineDuringAnalysisWithConfidence>() - 2usize];
1535 ["Alignment of BNInlineDuringAnalysisWithConfidence"]
1536 [::std::mem::align_of::<BNInlineDuringAnalysisWithConfidence>() - 1usize];
1537 ["Offset of field: BNInlineDuringAnalysisWithConfidence::value"]
1538 [::std::mem::offset_of!(BNInlineDuringAnalysisWithConfidence, value) - 0usize];
1539 ["Offset of field: BNInlineDuringAnalysisWithConfidence::confidence"]
1540 [::std::mem::offset_of!(BNInlineDuringAnalysisWithConfidence, confidence) - 1usize];
1541};
1542impl Default for BNInlineDuringAnalysisWithConfidence {
1543 fn default() -> Self {
1544 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1545 unsafe {
1546 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1547 s.assume_init()
1548 }
1549 }
1550}
1551#[repr(C)]
1552#[derive(Debug, Copy, Clone)]
1553pub struct BNLowLevelILInstruction {
1554 pub operation: BNLowLevelILOperation,
1555 pub attributes: u32,
1556 pub size: usize,
1557 pub flags: u32,
1558 pub sourceOperand: u32,
1559 pub operands: [u64; 4usize],
1560 pub address: u64,
1561}
1562#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1563const _: () = {
1564 ["Size of BNLowLevelILInstruction"][::std::mem::size_of::<BNLowLevelILInstruction>() - 64usize];
1565 ["Alignment of BNLowLevelILInstruction"]
1566 [::std::mem::align_of::<BNLowLevelILInstruction>() - 8usize];
1567 ["Offset of field: BNLowLevelILInstruction::operation"]
1568 [::std::mem::offset_of!(BNLowLevelILInstruction, operation) - 0usize];
1569 ["Offset of field: BNLowLevelILInstruction::attributes"]
1570 [::std::mem::offset_of!(BNLowLevelILInstruction, attributes) - 4usize];
1571 ["Offset of field: BNLowLevelILInstruction::size"]
1572 [::std::mem::offset_of!(BNLowLevelILInstruction, size) - 8usize];
1573 ["Offset of field: BNLowLevelILInstruction::flags"]
1574 [::std::mem::offset_of!(BNLowLevelILInstruction, flags) - 16usize];
1575 ["Offset of field: BNLowLevelILInstruction::sourceOperand"]
1576 [::std::mem::offset_of!(BNLowLevelILInstruction, sourceOperand) - 20usize];
1577 ["Offset of field: BNLowLevelILInstruction::operands"]
1578 [::std::mem::offset_of!(BNLowLevelILInstruction, operands) - 24usize];
1579 ["Offset of field: BNLowLevelILInstruction::address"]
1580 [::std::mem::offset_of!(BNLowLevelILInstruction, address) - 56usize];
1581};
1582impl Default for BNLowLevelILInstruction {
1583 fn default() -> Self {
1584 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1585 unsafe {
1586 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1587 s.assume_init()
1588 }
1589 }
1590}
1591#[repr(C)]
1592#[derive(Debug, Default, Copy, Clone)]
1593pub struct BNLowLevelILLabel {
1594 pub resolved: bool,
1595 pub ref_: usize,
1596 pub operand: usize,
1597}
1598#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1599const _: () = {
1600 ["Size of BNLowLevelILLabel"][::std::mem::size_of::<BNLowLevelILLabel>() - 24usize];
1601 ["Alignment of BNLowLevelILLabel"][::std::mem::align_of::<BNLowLevelILLabel>() - 8usize];
1602 ["Offset of field: BNLowLevelILLabel::resolved"]
1603 [::std::mem::offset_of!(BNLowLevelILLabel, resolved) - 0usize];
1604 ["Offset of field: BNLowLevelILLabel::ref_"]
1605 [::std::mem::offset_of!(BNLowLevelILLabel, ref_) - 8usize];
1606 ["Offset of field: BNLowLevelILLabel::operand"]
1607 [::std::mem::offset_of!(BNLowLevelILLabel, operand) - 16usize];
1608};
1609#[repr(u8)]
1610#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1611pub enum BNImplicitRegisterExtend {
1612 NoExtend = 0,
1613 ZeroExtendToFullWidth = 1,
1614 SignExtendToFullWidth = 2,
1615}
1616#[repr(C)]
1617#[derive(Debug, Copy, Clone)]
1618pub struct BNRegisterInfo {
1619 pub fullWidthRegister: u32,
1620 pub offset: usize,
1621 pub size: usize,
1622 pub extend: BNImplicitRegisterExtend,
1623}
1624#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1625const _: () = {
1626 ["Size of BNRegisterInfo"][::std::mem::size_of::<BNRegisterInfo>() - 32usize];
1627 ["Alignment of BNRegisterInfo"][::std::mem::align_of::<BNRegisterInfo>() - 8usize];
1628 ["Offset of field: BNRegisterInfo::fullWidthRegister"]
1629 [::std::mem::offset_of!(BNRegisterInfo, fullWidthRegister) - 0usize];
1630 ["Offset of field: BNRegisterInfo::offset"]
1631 [::std::mem::offset_of!(BNRegisterInfo, offset) - 8usize];
1632 ["Offset of field: BNRegisterInfo::size"]
1633 [::std::mem::offset_of!(BNRegisterInfo, size) - 16usize];
1634 ["Offset of field: BNRegisterInfo::extend"]
1635 [::std::mem::offset_of!(BNRegisterInfo, extend) - 24usize];
1636};
1637impl Default for BNRegisterInfo {
1638 fn default() -> Self {
1639 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1640 unsafe {
1641 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1642 s.assume_init()
1643 }
1644 }
1645}
1646#[repr(C)]
1647#[derive(Debug, Default, Copy, Clone)]
1648pub struct BNRegisterStackInfo {
1649 pub firstStorageReg: u32,
1650 pub firstTopRelativeReg: u32,
1651 pub storageCount: u32,
1652 pub topRelativeCount: u32,
1653 pub stackTopReg: u32,
1654}
1655#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1656const _: () = {
1657 ["Size of BNRegisterStackInfo"][::std::mem::size_of::<BNRegisterStackInfo>() - 20usize];
1658 ["Alignment of BNRegisterStackInfo"][::std::mem::align_of::<BNRegisterStackInfo>() - 4usize];
1659 ["Offset of field: BNRegisterStackInfo::firstStorageReg"]
1660 [::std::mem::offset_of!(BNRegisterStackInfo, firstStorageReg) - 0usize];
1661 ["Offset of field: BNRegisterStackInfo::firstTopRelativeReg"]
1662 [::std::mem::offset_of!(BNRegisterStackInfo, firstTopRelativeReg) - 4usize];
1663 ["Offset of field: BNRegisterStackInfo::storageCount"]
1664 [::std::mem::offset_of!(BNRegisterStackInfo, storageCount) - 8usize];
1665 ["Offset of field: BNRegisterStackInfo::topRelativeCount"]
1666 [::std::mem::offset_of!(BNRegisterStackInfo, topRelativeCount) - 12usize];
1667 ["Offset of field: BNRegisterStackInfo::stackTopReg"]
1668 [::std::mem::offset_of!(BNRegisterStackInfo, stackTopReg) - 16usize];
1669};
1670#[repr(u32)]
1671#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1672pub enum BNRegisterValueType {
1673 UndeterminedValue = 0,
1674 EntryValue = 1,
1675 ConstantValue = 2,
1676 ConstantPointerValue = 3,
1677 ExternalPointerValue = 4,
1678 StackFrameOffset = 5,
1679 ReturnAddressValue = 6,
1680 ImportedAddressValue = 7,
1681 #[doc = " The following are only valid in BNPossibleValueSet"]
1682 SignedRangeValue = 8,
1683 #[doc = " The following are only valid in BNPossibleValueSet"]
1684 UnsignedRangeValue = 9,
1685 #[doc = " The following are only valid in BNPossibleValueSet"]
1686 LookupTableValue = 10,
1687 #[doc = " The following are only valid in BNPossibleValueSet"]
1688 InSetOfValues = 11,
1689 #[doc = " The following are only valid in BNPossibleValueSet"]
1690 NotInSetOfValues = 12,
1691 #[doc = " The following support constant data and values larger than 8 bytes"]
1692 ConstantDataValue = 32768,
1693 #[doc = " The following support constant data and values larger than 8 bytes"]
1694 ConstantDataZeroExtendValue = 32769,
1695 #[doc = " The following support constant data and values larger than 8 bytes"]
1696 ConstantDataSignExtendValue = 32770,
1697 #[doc = " The following support constant data and values larger than 8 bytes"]
1698 ConstantDataAggregateValue = 32771,
1699}
1700#[repr(u8)]
1701#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1702pub enum BNDataFlowQueryOption {
1703 #[doc = " Use addresses instead of index in the from list within\n LookupTableValue results"]
1704 FromAddressesInLookupTableQueryOption = 0,
1705 AllowReadingWritableMemoryQueryOption = 1,
1706}
1707#[repr(u32)]
1708#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1709pub enum BNPluginStatus {
1710 NotInstalledPluginStatus = 0,
1711 InstalledPluginStatus = 1,
1712 EnabledPluginStatus = 2,
1713 UpdateAvailablePluginStatus = 16,
1714 DeletePendingPluginStatus = 32,
1715 UpdatePendingPluginStatus = 64,
1716 DisablePendingPluginStatus = 128,
1717 PendingRestartPluginStatus = 512,
1718 BeingUpdatedPluginStatus = 1024,
1719 BeingDeletedPluginStatus = 2048,
1720 DependenciesBeingInstalledStatus = 4096,
1721}
1722#[repr(u8)]
1723#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1724pub enum BNPluginType {
1725 CorePluginType = 0,
1726 UiPluginType = 1,
1727 ArchitecturePluginType = 2,
1728 BinaryViewPluginType = 3,
1729 HelperPluginType = 4,
1730 SyncPluginType = 5,
1731}
1732#[repr(C)]
1733#[derive(Debug, Copy, Clone)]
1734pub struct BNLookupTableEntry {
1735 pub fromValues: *mut i64,
1736 pub fromCount: usize,
1737 pub toValue: i64,
1738}
1739#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1740const _: () = {
1741 ["Size of BNLookupTableEntry"][::std::mem::size_of::<BNLookupTableEntry>() - 24usize];
1742 ["Alignment of BNLookupTableEntry"][::std::mem::align_of::<BNLookupTableEntry>() - 8usize];
1743 ["Offset of field: BNLookupTableEntry::fromValues"]
1744 [::std::mem::offset_of!(BNLookupTableEntry, fromValues) - 0usize];
1745 ["Offset of field: BNLookupTableEntry::fromCount"]
1746 [::std::mem::offset_of!(BNLookupTableEntry, fromCount) - 8usize];
1747 ["Offset of field: BNLookupTableEntry::toValue"]
1748 [::std::mem::offset_of!(BNLookupTableEntry, toValue) - 16usize];
1749};
1750impl Default for BNLookupTableEntry {
1751 fn default() -> Self {
1752 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1753 unsafe {
1754 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1755 s.assume_init()
1756 }
1757 }
1758}
1759#[repr(C)]
1760#[derive(Debug, Copy, Clone)]
1761pub struct BNRegisterValue {
1762 pub state: BNRegisterValueType,
1763 pub value: i64,
1764 pub offset: i64,
1765 pub size: usize,
1766}
1767#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1768const _: () = {
1769 ["Size of BNRegisterValue"][::std::mem::size_of::<BNRegisterValue>() - 32usize];
1770 ["Alignment of BNRegisterValue"][::std::mem::align_of::<BNRegisterValue>() - 8usize];
1771 ["Offset of field: BNRegisterValue::state"]
1772 [::std::mem::offset_of!(BNRegisterValue, state) - 0usize];
1773 ["Offset of field: BNRegisterValue::value"]
1774 [::std::mem::offset_of!(BNRegisterValue, value) - 8usize];
1775 ["Offset of field: BNRegisterValue::offset"]
1776 [::std::mem::offset_of!(BNRegisterValue, offset) - 16usize];
1777 ["Offset of field: BNRegisterValue::size"]
1778 [::std::mem::offset_of!(BNRegisterValue, size) - 24usize];
1779};
1780impl Default for BNRegisterValue {
1781 fn default() -> Self {
1782 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1783 unsafe {
1784 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1785 s.assume_init()
1786 }
1787 }
1788}
1789#[repr(C)]
1790#[derive(Debug, Copy, Clone)]
1791pub struct BNRegisterValueWithConfidence {
1792 pub value: BNRegisterValue,
1793 pub confidence: u8,
1794}
1795#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1796const _: () = {
1797 ["Size of BNRegisterValueWithConfidence"]
1798 [::std::mem::size_of::<BNRegisterValueWithConfidence>() - 40usize];
1799 ["Alignment of BNRegisterValueWithConfidence"]
1800 [::std::mem::align_of::<BNRegisterValueWithConfidence>() - 8usize];
1801 ["Offset of field: BNRegisterValueWithConfidence::value"]
1802 [::std::mem::offset_of!(BNRegisterValueWithConfidence, value) - 0usize];
1803 ["Offset of field: BNRegisterValueWithConfidence::confidence"]
1804 [::std::mem::offset_of!(BNRegisterValueWithConfidence, confidence) - 32usize];
1805};
1806impl Default for BNRegisterValueWithConfidence {
1807 fn default() -> Self {
1808 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1809 unsafe {
1810 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1811 s.assume_init()
1812 }
1813 }
1814}
1815#[repr(C)]
1816#[derive(Debug, Default, Copy, Clone)]
1817pub struct BNValueRange {
1818 pub start: u64,
1819 pub end: u64,
1820 pub step: u64,
1821}
1822#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1823const _: () = {
1824 ["Size of BNValueRange"][::std::mem::size_of::<BNValueRange>() - 24usize];
1825 ["Alignment of BNValueRange"][::std::mem::align_of::<BNValueRange>() - 8usize];
1826 ["Offset of field: BNValueRange::start"][::std::mem::offset_of!(BNValueRange, start) - 0usize];
1827 ["Offset of field: BNValueRange::end"][::std::mem::offset_of!(BNValueRange, end) - 8usize];
1828 ["Offset of field: BNValueRange::step"][::std::mem::offset_of!(BNValueRange, step) - 16usize];
1829};
1830#[repr(C)]
1831#[derive(Debug, Copy, Clone)]
1832pub struct BNPossibleValueSet {
1833 pub state: BNRegisterValueType,
1834 pub value: i64,
1835 pub offset: i64,
1836 pub size: usize,
1837 pub ranges: *mut BNValueRange,
1838 pub valueSet: *mut i64,
1839 pub table: *mut BNLookupTableEntry,
1840 pub count: usize,
1841}
1842#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1843const _: () = {
1844 ["Size of BNPossibleValueSet"][::std::mem::size_of::<BNPossibleValueSet>() - 64usize];
1845 ["Alignment of BNPossibleValueSet"][::std::mem::align_of::<BNPossibleValueSet>() - 8usize];
1846 ["Offset of field: BNPossibleValueSet::state"]
1847 [::std::mem::offset_of!(BNPossibleValueSet, state) - 0usize];
1848 ["Offset of field: BNPossibleValueSet::value"]
1849 [::std::mem::offset_of!(BNPossibleValueSet, value) - 8usize];
1850 ["Offset of field: BNPossibleValueSet::offset"]
1851 [::std::mem::offset_of!(BNPossibleValueSet, offset) - 16usize];
1852 ["Offset of field: BNPossibleValueSet::size"]
1853 [::std::mem::offset_of!(BNPossibleValueSet, size) - 24usize];
1854 ["Offset of field: BNPossibleValueSet::ranges"]
1855 [::std::mem::offset_of!(BNPossibleValueSet, ranges) - 32usize];
1856 ["Offset of field: BNPossibleValueSet::valueSet"]
1857 [::std::mem::offset_of!(BNPossibleValueSet, valueSet) - 40usize];
1858 ["Offset of field: BNPossibleValueSet::table"]
1859 [::std::mem::offset_of!(BNPossibleValueSet, table) - 48usize];
1860 ["Offset of field: BNPossibleValueSet::count"]
1861 [::std::mem::offset_of!(BNPossibleValueSet, count) - 56usize];
1862};
1863impl Default for BNPossibleValueSet {
1864 fn default() -> Self {
1865 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1866 unsafe {
1867 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1868 s.assume_init()
1869 }
1870 }
1871}
1872#[repr(C)]
1873#[derive(Debug, Default, Copy, Clone)]
1874pub struct BNRegisterOrConstant {
1875 pub constant: bool,
1876 pub reg: u32,
1877 pub value: u64,
1878}
1879#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1880const _: () = {
1881 ["Size of BNRegisterOrConstant"][::std::mem::size_of::<BNRegisterOrConstant>() - 16usize];
1882 ["Alignment of BNRegisterOrConstant"][::std::mem::align_of::<BNRegisterOrConstant>() - 8usize];
1883 ["Offset of field: BNRegisterOrConstant::constant"]
1884 [::std::mem::offset_of!(BNRegisterOrConstant, constant) - 0usize];
1885 ["Offset of field: BNRegisterOrConstant::reg"]
1886 [::std::mem::offset_of!(BNRegisterOrConstant, reg) - 4usize];
1887 ["Offset of field: BNRegisterOrConstant::value"]
1888 [::std::mem::offset_of!(BNRegisterOrConstant, value) - 8usize];
1889};
1890#[repr(C)]
1891#[derive(Debug, Copy, Clone)]
1892pub struct BNDataVariable {
1893 pub address: u64,
1894 pub type_: *mut BNType,
1895 pub autoDiscovered: bool,
1896 pub typeConfidence: u8,
1897}
1898#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1899const _: () = {
1900 ["Size of BNDataVariable"][::std::mem::size_of::<BNDataVariable>() - 24usize];
1901 ["Alignment of BNDataVariable"][::std::mem::align_of::<BNDataVariable>() - 8usize];
1902 ["Offset of field: BNDataVariable::address"]
1903 [::std::mem::offset_of!(BNDataVariable, address) - 0usize];
1904 ["Offset of field: BNDataVariable::type_"]
1905 [::std::mem::offset_of!(BNDataVariable, type_) - 8usize];
1906 ["Offset of field: BNDataVariable::autoDiscovered"]
1907 [::std::mem::offset_of!(BNDataVariable, autoDiscovered) - 16usize];
1908 ["Offset of field: BNDataVariable::typeConfidence"]
1909 [::std::mem::offset_of!(BNDataVariable, typeConfidence) - 17usize];
1910};
1911impl Default for BNDataVariable {
1912 fn default() -> Self {
1913 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1914 unsafe {
1915 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1916 s.assume_init()
1917 }
1918 }
1919}
1920#[repr(C)]
1921#[derive(Debug, Copy, Clone)]
1922pub struct BNDataVariableAndName {
1923 pub address: u64,
1924 pub type_: *mut BNType,
1925 pub name: *mut ::std::os::raw::c_char,
1926 pub autoDiscovered: bool,
1927 pub typeConfidence: u8,
1928}
1929#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1930const _: () = {
1931 ["Size of BNDataVariableAndName"][::std::mem::size_of::<BNDataVariableAndName>() - 32usize];
1932 ["Alignment of BNDataVariableAndName"]
1933 [::std::mem::align_of::<BNDataVariableAndName>() - 8usize];
1934 ["Offset of field: BNDataVariableAndName::address"]
1935 [::std::mem::offset_of!(BNDataVariableAndName, address) - 0usize];
1936 ["Offset of field: BNDataVariableAndName::type_"]
1937 [::std::mem::offset_of!(BNDataVariableAndName, type_) - 8usize];
1938 ["Offset of field: BNDataVariableAndName::name"]
1939 [::std::mem::offset_of!(BNDataVariableAndName, name) - 16usize];
1940 ["Offset of field: BNDataVariableAndName::autoDiscovered"]
1941 [::std::mem::offset_of!(BNDataVariableAndName, autoDiscovered) - 24usize];
1942 ["Offset of field: BNDataVariableAndName::typeConfidence"]
1943 [::std::mem::offset_of!(BNDataVariableAndName, typeConfidence) - 25usize];
1944};
1945impl Default for BNDataVariableAndName {
1946 fn default() -> Self {
1947 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1948 unsafe {
1949 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1950 s.assume_init()
1951 }
1952 }
1953}
1954#[repr(C)]
1955#[derive(Debug, Copy, Clone)]
1956pub struct BNDataVariableAndNameAndDebugParser {
1957 pub address: u64,
1958 pub type_: *mut BNType,
1959 pub name: *mut ::std::os::raw::c_char,
1960 pub parser: *mut ::std::os::raw::c_char,
1961 pub autoDiscovered: bool,
1962 pub typeConfidence: u8,
1963}
1964#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1965const _: () = {
1966 ["Size of BNDataVariableAndNameAndDebugParser"]
1967 [::std::mem::size_of::<BNDataVariableAndNameAndDebugParser>() - 40usize];
1968 ["Alignment of BNDataVariableAndNameAndDebugParser"]
1969 [::std::mem::align_of::<BNDataVariableAndNameAndDebugParser>() - 8usize];
1970 ["Offset of field: BNDataVariableAndNameAndDebugParser::address"]
1971 [::std::mem::offset_of!(BNDataVariableAndNameAndDebugParser, address) - 0usize];
1972 ["Offset of field: BNDataVariableAndNameAndDebugParser::type_"]
1973 [::std::mem::offset_of!(BNDataVariableAndNameAndDebugParser, type_) - 8usize];
1974 ["Offset of field: BNDataVariableAndNameAndDebugParser::name"]
1975 [::std::mem::offset_of!(BNDataVariableAndNameAndDebugParser, name) - 16usize];
1976 ["Offset of field: BNDataVariableAndNameAndDebugParser::parser"]
1977 [::std::mem::offset_of!(BNDataVariableAndNameAndDebugParser, parser) - 24usize];
1978 ["Offset of field: BNDataVariableAndNameAndDebugParser::autoDiscovered"]
1979 [::std::mem::offset_of!(BNDataVariableAndNameAndDebugParser, autoDiscovered) - 32usize];
1980 ["Offset of field: BNDataVariableAndNameAndDebugParser::typeConfidence"]
1981 [::std::mem::offset_of!(BNDataVariableAndNameAndDebugParser, typeConfidence) - 33usize];
1982};
1983impl Default for BNDataVariableAndNameAndDebugParser {
1984 fn default() -> Self {
1985 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1986 unsafe {
1987 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1988 s.assume_init()
1989 }
1990 }
1991}
1992#[repr(u8)]
1993#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1994pub enum BNMediumLevelILOperation {
1995 MLIL_NOP = 0,
1996 #[doc = " Not valid in SSA form (see MLIL_SET_VAR_SSA)"]
1997 MLIL_SET_VAR = 1,
1998 #[doc = " Not valid in SSA form (see MLIL_SET_VAR_FIELD)"]
1999 MLIL_SET_VAR_FIELD = 2,
2000 #[doc = " Not valid in SSA form (see MLIL_SET_VAR_SPLIT_SSA)"]
2001 MLIL_SET_VAR_SPLIT = 3,
2002 MLIL_ASSERT = 4,
2003 MLIL_FORCE_VER = 5,
2004 #[doc = " Not valid in SSA form (see MLIL_LOAD_SSA)"]
2005 MLIL_LOAD = 6,
2006 #[doc = " Not valid in SSA form (see MLIL_LOAD_STRUCT_SSA)"]
2007 MLIL_LOAD_STRUCT = 7,
2008 #[doc = " Not valid in SSA form (see MLIL_STORE_SSA)"]
2009 MLIL_STORE = 8,
2010 #[doc = " Not valid in SSA form (see MLIL_STORE_STRUCT_SSA)"]
2011 MLIL_STORE_STRUCT = 9,
2012 #[doc = " Not valid in SSA form (see MLIL_VAR_SSA)"]
2013 MLIL_VAR = 10,
2014 #[doc = " Not valid in SSA form (see MLIL_VAR_SSA_FIELD)"]
2015 MLIL_VAR_FIELD = 11,
2016 #[doc = " Not valid in SSA form (see MLIL_VAR_SPLIT_SSA)"]
2017 MLIL_VAR_SPLIT = 12,
2018 MLIL_ADDRESS_OF = 13,
2019 MLIL_ADDRESS_OF_FIELD = 14,
2020 MLIL_CONST = 15,
2021 MLIL_CONST_DATA = 16,
2022 MLIL_CONST_PTR = 17,
2023 MLIL_EXTERN_PTR = 18,
2024 MLIL_FLOAT_CONST = 19,
2025 MLIL_IMPORT = 20,
2026 MLIL_ADD = 21,
2027 MLIL_ADC = 22,
2028 MLIL_SUB = 23,
2029 MLIL_SBB = 24,
2030 MLIL_AND = 25,
2031 MLIL_OR = 26,
2032 MLIL_XOR = 27,
2033 MLIL_LSL = 28,
2034 MLIL_LSR = 29,
2035 MLIL_ASR = 30,
2036 MLIL_ROL = 31,
2037 MLIL_RLC = 32,
2038 MLIL_ROR = 33,
2039 MLIL_RRC = 34,
2040 MLIL_MUL = 35,
2041 MLIL_MULU_DP = 36,
2042 MLIL_MULS_DP = 37,
2043 MLIL_DIVU = 38,
2044 MLIL_DIVU_DP = 39,
2045 MLIL_DIVS = 40,
2046 MLIL_DIVS_DP = 41,
2047 MLIL_MODU = 42,
2048 MLIL_MODU_DP = 43,
2049 MLIL_MODS = 44,
2050 MLIL_MODS_DP = 45,
2051 MLIL_NEG = 46,
2052 MLIL_NOT = 47,
2053 MLIL_SX = 48,
2054 MLIL_ZX = 49,
2055 MLIL_LOW_PART = 50,
2056 MLIL_JUMP = 51,
2057 MLIL_JUMP_TO = 52,
2058 #[doc = " Intermediate stages, does not appear in final forms"]
2059 MLIL_RET_HINT = 53,
2060 #[doc = " Not valid in SSA form (see MLIL_CALL_SSA)"]
2061 MLIL_CALL = 54,
2062 #[doc = " Not valid in SSA form (see MLIL_CALL_UNTYPED_SSA)"]
2063 MLIL_CALL_UNTYPED = 55,
2064 #[doc = " Only valid within MLIL_CALL, MLIL_SYSCALL, MLIL_TAILCALL family instructions"]
2065 MLIL_CALL_OUTPUT = 56,
2066 #[doc = " Only valid within MLIL_CALL, MLIL_SYSCALL, MLIL_TAILCALL family instructions"]
2067 MLIL_CALL_PARAM = 57,
2068 #[doc = " Only valid within the MLIL_CALL_PARAM or MLIL_CALL_PARAM_SSA instructions inside\n untyped call variants"]
2069 MLIL_SEPARATE_PARAM_LIST = 58,
2070 #[doc = " Only valid within the MLIL_CALL_PARAM, MLIL_CALL_PARAM_SSA, or\n MLIL_SEPARATE_PARAM_LIST instructions inside untyped call variants"]
2071 MLIL_SHARED_PARAM_SLOT = 59,
2072 MLIL_RET = 60,
2073 MLIL_NORET = 61,
2074 MLIL_IF = 62,
2075 MLIL_GOTO = 63,
2076 MLIL_CMP_E = 64,
2077 MLIL_CMP_NE = 65,
2078 MLIL_CMP_SLT = 66,
2079 MLIL_CMP_ULT = 67,
2080 MLIL_CMP_SLE = 68,
2081 MLIL_CMP_ULE = 69,
2082 MLIL_CMP_SGE = 70,
2083 MLIL_CMP_UGE = 71,
2084 MLIL_CMP_SGT = 72,
2085 MLIL_CMP_UGT = 73,
2086 MLIL_TEST_BIT = 74,
2087 MLIL_BOOL_TO_INT = 75,
2088 MLIL_ADD_OVERFLOW = 76,
2089 #[doc = " Not valid in SSA form (see MLIL_SYSCALL_SSA)"]
2090 MLIL_SYSCALL = 77,
2091 #[doc = " Not valid in SSA form (see MLIL_SYSCALL_UNTYPED_SSA)"]
2092 MLIL_SYSCALL_UNTYPED = 78,
2093 #[doc = " Not valid in SSA form (see MLIL_TAILCALL_SSA)"]
2094 MLIL_TAILCALL = 79,
2095 #[doc = " Not valid in SSA form (see MLIL_TAILCALL_UNTYPED_SSA)"]
2096 MLIL_TAILCALL_UNTYPED = 80,
2097 #[doc = " Not valid in SSA form (see MLIL_INTRINSIC_SSA)"]
2098 MLIL_INTRINSIC = 81,
2099 #[doc = " Not valid in SSA from (see MLIL_FREE_VAR_SLOT_SSA)"]
2100 MLIL_FREE_VAR_SLOT = 82,
2101 MLIL_BP = 83,
2102 MLIL_TRAP = 84,
2103 MLIL_UNDEF = 85,
2104 MLIL_UNIMPL = 86,
2105 MLIL_UNIMPL_MEM = 87,
2106 #[doc = " Floating point"]
2107 MLIL_FADD = 88,
2108 #[doc = " Floating point"]
2109 MLIL_FSUB = 89,
2110 #[doc = " Floating point"]
2111 MLIL_FMUL = 90,
2112 #[doc = " Floating point"]
2113 MLIL_FDIV = 91,
2114 #[doc = " Floating point"]
2115 MLIL_FSQRT = 92,
2116 #[doc = " Floating point"]
2117 MLIL_FNEG = 93,
2118 #[doc = " Floating point"]
2119 MLIL_FABS = 94,
2120 #[doc = " Floating point"]
2121 MLIL_FLOAT_TO_INT = 95,
2122 #[doc = " Floating point"]
2123 MLIL_INT_TO_FLOAT = 96,
2124 #[doc = " Floating point"]
2125 MLIL_FLOAT_CONV = 97,
2126 #[doc = " Floating point"]
2127 MLIL_ROUND_TO_INT = 98,
2128 #[doc = " Floating point"]
2129 MLIL_FLOOR = 99,
2130 #[doc = " Floating point"]
2131 MLIL_CEIL = 100,
2132 #[doc = " Floating point"]
2133 MLIL_FTRUNC = 101,
2134 #[doc = " Floating point"]
2135 MLIL_FCMP_E = 102,
2136 #[doc = " Floating point"]
2137 MLIL_FCMP_NE = 103,
2138 #[doc = " Floating point"]
2139 MLIL_FCMP_LT = 104,
2140 #[doc = " Floating point"]
2141 MLIL_FCMP_LE = 105,
2142 #[doc = " Floating point"]
2143 MLIL_FCMP_GE = 106,
2144 #[doc = " Floating point"]
2145 MLIL_FCMP_GT = 107,
2146 #[doc = " Floating point"]
2147 MLIL_FCMP_O = 108,
2148 #[doc = " Floating point"]
2149 MLIL_FCMP_UO = 109,
2150 #[doc = " The following instructions are only used in SSA form"]
2151 MLIL_SET_VAR_SSA = 110,
2152 #[doc = " The following instructions are only used in SSA form"]
2153 MLIL_SET_VAR_SSA_FIELD = 111,
2154 #[doc = " The following instructions are only used in SSA form"]
2155 MLIL_SET_VAR_SPLIT_SSA = 112,
2156 #[doc = " The following instructions are only used in SSA form"]
2157 MLIL_SET_VAR_ALIASED = 113,
2158 #[doc = " The following instructions are only used in SSA form"]
2159 MLIL_SET_VAR_ALIASED_FIELD = 114,
2160 #[doc = " The following instructions are only used in SSA form"]
2161 MLIL_VAR_SSA = 115,
2162 #[doc = " The following instructions are only used in SSA form"]
2163 MLIL_VAR_SSA_FIELD = 116,
2164 #[doc = " The following instructions are only used in SSA form"]
2165 MLIL_VAR_ALIASED = 117,
2166 #[doc = " The following instructions are only used in SSA form"]
2167 MLIL_VAR_ALIASED_FIELD = 118,
2168 #[doc = " The following instructions are only used in SSA form"]
2169 MLIL_VAR_SPLIT_SSA = 119,
2170 #[doc = " The following instructions are only used in SSA form"]
2171 MLIL_ASSERT_SSA = 120,
2172 #[doc = " The following instructions are only used in SSA form"]
2173 MLIL_FORCE_VER_SSA = 121,
2174 #[doc = " The following instructions are only used in SSA form"]
2175 MLIL_CALL_SSA = 122,
2176 #[doc = " The following instructions are only used in SSA form"]
2177 MLIL_CALL_UNTYPED_SSA = 123,
2178 #[doc = " The following instructions are only used in SSA form"]
2179 MLIL_SYSCALL_SSA = 124,
2180 #[doc = " The following instructions are only used in SSA form"]
2181 MLIL_SYSCALL_UNTYPED_SSA = 125,
2182 #[doc = " The following instructions are only used in SSA form"]
2183 MLIL_TAILCALL_SSA = 126,
2184 #[doc = " The following instructions are only used in SSA form"]
2185 MLIL_TAILCALL_UNTYPED_SSA = 127,
2186 #[doc = " Only valid within the MLIL_CALL_SSA, MLIL_SYSCALL_SSA, MLIL_TAILCALL_SSA, MLIL_INTRINSIC_SSA family\n instructions"]
2187 MLIL_CALL_PARAM_SSA = 128,
2188 #[doc = " Only valid within the MLIL_CALL_SSA or MLIL_SYSCALL_SSA, MLIL_TAILCALL_SSA family\n instructions"]
2189 MLIL_CALL_OUTPUT_SSA = 129,
2190 #[doc = " Only valid within the MLIL_MEMORY_INTRINSIC_SSA instruction"]
2191 MLIL_MEMORY_INTRINSIC_OUTPUT_SSA = 130,
2192 MLIL_LOAD_SSA = 131,
2193 MLIL_LOAD_STRUCT_SSA = 132,
2194 MLIL_STORE_SSA = 133,
2195 MLIL_STORE_STRUCT_SSA = 134,
2196 MLIL_INTRINSIC_SSA = 135,
2197 MLIL_MEMORY_INTRINSIC_SSA = 136,
2198 MLIL_FREE_VAR_SLOT_SSA = 137,
2199 MLIL_VAR_PHI = 138,
2200 MLIL_MEM_PHI = 139,
2201}
2202#[repr(C)]
2203#[derive(Debug, Copy, Clone)]
2204pub struct BNMediumLevelILInstruction {
2205 pub operation: BNMediumLevelILOperation,
2206 pub attributes: u32,
2207 pub sourceOperand: u32,
2208 pub size: usize,
2209 pub operands: [u64; 5usize],
2210 pub address: u64,
2211}
2212#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2213const _: () = {
2214 ["Size of BNMediumLevelILInstruction"]
2215 [::std::mem::size_of::<BNMediumLevelILInstruction>() - 72usize];
2216 ["Alignment of BNMediumLevelILInstruction"]
2217 [::std::mem::align_of::<BNMediumLevelILInstruction>() - 8usize];
2218 ["Offset of field: BNMediumLevelILInstruction::operation"]
2219 [::std::mem::offset_of!(BNMediumLevelILInstruction, operation) - 0usize];
2220 ["Offset of field: BNMediumLevelILInstruction::attributes"]
2221 [::std::mem::offset_of!(BNMediumLevelILInstruction, attributes) - 4usize];
2222 ["Offset of field: BNMediumLevelILInstruction::sourceOperand"]
2223 [::std::mem::offset_of!(BNMediumLevelILInstruction, sourceOperand) - 8usize];
2224 ["Offset of field: BNMediumLevelILInstruction::size"]
2225 [::std::mem::offset_of!(BNMediumLevelILInstruction, size) - 16usize];
2226 ["Offset of field: BNMediumLevelILInstruction::operands"]
2227 [::std::mem::offset_of!(BNMediumLevelILInstruction, operands) - 24usize];
2228 ["Offset of field: BNMediumLevelILInstruction::address"]
2229 [::std::mem::offset_of!(BNMediumLevelILInstruction, address) - 64usize];
2230};
2231impl Default for BNMediumLevelILInstruction {
2232 fn default() -> Self {
2233 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2234 unsafe {
2235 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2236 s.assume_init()
2237 }
2238 }
2239}
2240#[repr(C)]
2241#[derive(Debug, Default, Copy, Clone)]
2242pub struct BNMediumLevelILLabel {
2243 pub resolved: bool,
2244 pub ref_: usize,
2245 pub operand: usize,
2246}
2247#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2248const _: () = {
2249 ["Size of BNMediumLevelILLabel"][::std::mem::size_of::<BNMediumLevelILLabel>() - 24usize];
2250 ["Alignment of BNMediumLevelILLabel"][::std::mem::align_of::<BNMediumLevelILLabel>() - 8usize];
2251 ["Offset of field: BNMediumLevelILLabel::resolved"]
2252 [::std::mem::offset_of!(BNMediumLevelILLabel, resolved) - 0usize];
2253 ["Offset of field: BNMediumLevelILLabel::ref_"]
2254 [::std::mem::offset_of!(BNMediumLevelILLabel, ref_) - 8usize];
2255 ["Offset of field: BNMediumLevelILLabel::operand"]
2256 [::std::mem::offset_of!(BNMediumLevelILLabel, operand) - 16usize];
2257};
2258#[repr(u8)]
2259#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2260pub enum BNVariableSourceType {
2261 StackVariableSourceType = 0,
2262 RegisterVariableSourceType = 1,
2263 FlagVariableSourceType = 2,
2264}
2265#[repr(C)]
2266#[derive(Debug, Copy, Clone)]
2267pub struct BNVariable {
2268 pub type_: BNVariableSourceType,
2269 pub index: u32,
2270 pub storage: i64,
2271}
2272#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2273const _: () = {
2274 ["Size of BNVariable"][::std::mem::size_of::<BNVariable>() - 16usize];
2275 ["Alignment of BNVariable"][::std::mem::align_of::<BNVariable>() - 8usize];
2276 ["Offset of field: BNVariable::type_"][::std::mem::offset_of!(BNVariable, type_) - 0usize];
2277 ["Offset of field: BNVariable::index"][::std::mem::offset_of!(BNVariable, index) - 4usize];
2278 ["Offset of field: BNVariable::storage"][::std::mem::offset_of!(BNVariable, storage) - 8usize];
2279};
2280impl Default for BNVariable {
2281 fn default() -> Self {
2282 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2283 unsafe {
2284 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2285 s.assume_init()
2286 }
2287 }
2288}
2289#[repr(u8)]
2290#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2291pub enum BNHighLevelILOperation {
2292 HLIL_NOP = 0,
2293 HLIL_BLOCK = 1,
2294 HLIL_IF = 2,
2295 HLIL_WHILE = 3,
2296 HLIL_DO_WHILE = 4,
2297 HLIL_FOR = 5,
2298 HLIL_SWITCH = 6,
2299 HLIL_CASE = 7,
2300 HLIL_BREAK = 8,
2301 HLIL_CONTINUE = 9,
2302 HLIL_JUMP = 10,
2303 HLIL_RET = 11,
2304 HLIL_NORET = 12,
2305 HLIL_GOTO = 13,
2306 HLIL_LABEL = 14,
2307 HLIL_VAR_DECLARE = 15,
2308 HLIL_VAR_INIT = 16,
2309 HLIL_ASSIGN = 17,
2310 HLIL_ASSIGN_UNPACK = 18,
2311 HLIL_FORCE_VER = 19,
2312 HLIL_ASSERT = 20,
2313 HLIL_VAR = 21,
2314 HLIL_STRUCT_FIELD = 22,
2315 HLIL_ARRAY_INDEX = 23,
2316 HLIL_SPLIT = 24,
2317 HLIL_DEREF = 25,
2318 HLIL_DEREF_FIELD = 26,
2319 HLIL_ADDRESS_OF = 27,
2320 HLIL_CONST = 28,
2321 HLIL_CONST_DATA = 29,
2322 HLIL_CONST_PTR = 30,
2323 HLIL_EXTERN_PTR = 31,
2324 HLIL_FLOAT_CONST = 32,
2325 HLIL_IMPORT = 33,
2326 HLIL_ADD = 34,
2327 HLIL_ADC = 35,
2328 HLIL_SUB = 36,
2329 HLIL_SBB = 37,
2330 HLIL_AND = 38,
2331 HLIL_OR = 39,
2332 HLIL_XOR = 40,
2333 HLIL_LSL = 41,
2334 HLIL_LSR = 42,
2335 HLIL_ASR = 43,
2336 HLIL_ROL = 44,
2337 HLIL_RLC = 45,
2338 HLIL_ROR = 46,
2339 HLIL_RRC = 47,
2340 HLIL_MUL = 48,
2341 HLIL_MULU_DP = 49,
2342 HLIL_MULS_DP = 50,
2343 HLIL_DIVU = 51,
2344 HLIL_DIVU_DP = 52,
2345 HLIL_DIVS = 53,
2346 HLIL_DIVS_DP = 54,
2347 HLIL_MODU = 55,
2348 HLIL_MODU_DP = 56,
2349 HLIL_MODS = 57,
2350 HLIL_MODS_DP = 58,
2351 HLIL_NEG = 59,
2352 HLIL_NOT = 60,
2353 HLIL_SX = 61,
2354 HLIL_ZX = 62,
2355 HLIL_LOW_PART = 63,
2356 HLIL_CALL = 64,
2357 HLIL_CMP_E = 65,
2358 HLIL_CMP_NE = 66,
2359 HLIL_CMP_SLT = 67,
2360 HLIL_CMP_ULT = 68,
2361 HLIL_CMP_SLE = 69,
2362 HLIL_CMP_ULE = 70,
2363 HLIL_CMP_SGE = 71,
2364 HLIL_CMP_UGE = 72,
2365 HLIL_CMP_SGT = 73,
2366 HLIL_CMP_UGT = 74,
2367 HLIL_TEST_BIT = 75,
2368 HLIL_BOOL_TO_INT = 76,
2369 HLIL_ADD_OVERFLOW = 77,
2370 HLIL_SYSCALL = 78,
2371 HLIL_TAILCALL = 79,
2372 HLIL_INTRINSIC = 80,
2373 HLIL_BP = 81,
2374 HLIL_TRAP = 82,
2375 HLIL_UNDEF = 83,
2376 HLIL_UNIMPL = 84,
2377 HLIL_UNIMPL_MEM = 85,
2378 #[doc = " Floating point"]
2379 HLIL_FADD = 86,
2380 #[doc = " Floating point"]
2381 HLIL_FSUB = 87,
2382 #[doc = " Floating point"]
2383 HLIL_FMUL = 88,
2384 #[doc = " Floating point"]
2385 HLIL_FDIV = 89,
2386 #[doc = " Floating point"]
2387 HLIL_FSQRT = 90,
2388 #[doc = " Floating point"]
2389 HLIL_FNEG = 91,
2390 #[doc = " Floating point"]
2391 HLIL_FABS = 92,
2392 #[doc = " Floating point"]
2393 HLIL_FLOAT_TO_INT = 93,
2394 #[doc = " Floating point"]
2395 HLIL_INT_TO_FLOAT = 94,
2396 #[doc = " Floating point"]
2397 HLIL_FLOAT_CONV = 95,
2398 #[doc = " Floating point"]
2399 HLIL_ROUND_TO_INT = 96,
2400 #[doc = " Floating point"]
2401 HLIL_FLOOR = 97,
2402 #[doc = " Floating point"]
2403 HLIL_CEIL = 98,
2404 #[doc = " Floating point"]
2405 HLIL_FTRUNC = 99,
2406 #[doc = " Floating point"]
2407 HLIL_FCMP_E = 100,
2408 #[doc = " Floating point"]
2409 HLIL_FCMP_NE = 101,
2410 #[doc = " Floating point"]
2411 HLIL_FCMP_LT = 102,
2412 #[doc = " Floating point"]
2413 HLIL_FCMP_LE = 103,
2414 #[doc = " Floating point"]
2415 HLIL_FCMP_GE = 104,
2416 #[doc = " Floating point"]
2417 HLIL_FCMP_GT = 105,
2418 #[doc = " Floating point"]
2419 HLIL_FCMP_O = 106,
2420 #[doc = " Floating point"]
2421 HLIL_FCMP_UO = 107,
2422 #[doc = " Unreachable hint, typically used in switch statements that analysis knows\n has an unreachable default."]
2423 HLIL_UNREACHABLE = 108,
2424 #[doc = " The following instructions are only used in SSA form"]
2425 HLIL_WHILE_SSA = 109,
2426 #[doc = " The following instructions are only used in SSA form"]
2427 HLIL_DO_WHILE_SSA = 110,
2428 #[doc = " The following instructions are only used in SSA form"]
2429 HLIL_FOR_SSA = 111,
2430 #[doc = " The following instructions are only used in SSA form"]
2431 HLIL_VAR_INIT_SSA = 112,
2432 #[doc = " The following instructions are only used in SSA form"]
2433 HLIL_ASSIGN_MEM_SSA = 113,
2434 #[doc = " The following instructions are only used in SSA form"]
2435 HLIL_ASSIGN_UNPACK_MEM_SSA = 114,
2436 #[doc = " The following instructions are only used in SSA form"]
2437 HLIL_FORCE_VER_SSA = 115,
2438 #[doc = " The following instructions are only used in SSA form"]
2439 HLIL_ASSERT_SSA = 116,
2440 #[doc = " The following instructions are only used in SSA form"]
2441 HLIL_VAR_SSA = 117,
2442 #[doc = " The following instructions are only used in SSA form"]
2443 HLIL_ARRAY_INDEX_SSA = 118,
2444 #[doc = " The following instructions are only used in SSA form"]
2445 HLIL_DEREF_SSA = 119,
2446 #[doc = " The following instructions are only used in SSA form"]
2447 HLIL_DEREF_FIELD_SSA = 120,
2448 #[doc = " The following instructions are only used in SSA form"]
2449 HLIL_CALL_SSA = 121,
2450 #[doc = " The following instructions are only used in SSA form"]
2451 HLIL_SYSCALL_SSA = 122,
2452 #[doc = " The following instructions are only used in SSA form"]
2453 HLIL_INTRINSIC_SSA = 123,
2454 #[doc = " The following instructions are only used in SSA form"]
2455 HLIL_VAR_PHI = 124,
2456 #[doc = " The following instructions are only used in SSA form"]
2457 HLIL_MEM_PHI = 125,
2458}
2459#[repr(C)]
2460#[derive(Debug, Copy, Clone)]
2461pub struct BNHighLevelILInstruction {
2462 pub operation: BNHighLevelILOperation,
2463 pub attributes: u32,
2464 pub sourceOperand: u32,
2465 pub size: usize,
2466 pub operands: [u64; 5usize],
2467 pub address: u64,
2468 pub parent: usize,
2469}
2470#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2471const _: () = {
2472 ["Size of BNHighLevelILInstruction"]
2473 [::std::mem::size_of::<BNHighLevelILInstruction>() - 80usize];
2474 ["Alignment of BNHighLevelILInstruction"]
2475 [::std::mem::align_of::<BNHighLevelILInstruction>() - 8usize];
2476 ["Offset of field: BNHighLevelILInstruction::operation"]
2477 [::std::mem::offset_of!(BNHighLevelILInstruction, operation) - 0usize];
2478 ["Offset of field: BNHighLevelILInstruction::attributes"]
2479 [::std::mem::offset_of!(BNHighLevelILInstruction, attributes) - 4usize];
2480 ["Offset of field: BNHighLevelILInstruction::sourceOperand"]
2481 [::std::mem::offset_of!(BNHighLevelILInstruction, sourceOperand) - 8usize];
2482 ["Offset of field: BNHighLevelILInstruction::size"]
2483 [::std::mem::offset_of!(BNHighLevelILInstruction, size) - 16usize];
2484 ["Offset of field: BNHighLevelILInstruction::operands"]
2485 [::std::mem::offset_of!(BNHighLevelILInstruction, operands) - 24usize];
2486 ["Offset of field: BNHighLevelILInstruction::address"]
2487 [::std::mem::offset_of!(BNHighLevelILInstruction, address) - 64usize];
2488 ["Offset of field: BNHighLevelILInstruction::parent"]
2489 [::std::mem::offset_of!(BNHighLevelILInstruction, parent) - 72usize];
2490};
2491impl Default for BNHighLevelILInstruction {
2492 fn default() -> Self {
2493 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2494 unsafe {
2495 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2496 s.assume_init()
2497 }
2498 }
2499}
2500#[doc = " Callbacks"]
2501#[repr(C)]
2502#[derive(Debug, Copy, Clone)]
2503pub struct BNLogListener {
2504 pub context: *mut ::std::os::raw::c_void,
2505 pub log: ::std::option::Option<
2506 unsafe extern "C" fn(
2507 ctxt: *mut ::std::os::raw::c_void,
2508 sessionId: usize,
2509 level: BNLogLevel,
2510 msg: *const ::std::os::raw::c_char,
2511 logger_name: *const ::std::os::raw::c_char,
2512 tid: usize,
2513 ),
2514 >,
2515 pub logWithStackTrace: ::std::option::Option<
2516 unsafe extern "C" fn(
2517 ctxt: *mut ::std::os::raw::c_void,
2518 sessionId: usize,
2519 level: BNLogLevel,
2520 stackTrace: *const ::std::os::raw::c_char,
2521 msg: *const ::std::os::raw::c_char,
2522 logger_name: *const ::std::os::raw::c_char,
2523 tid: usize,
2524 ),
2525 >,
2526 pub close: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
2527 pub getLogLevel: ::std::option::Option<
2528 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> BNLogLevel,
2529 >,
2530}
2531#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2532const _: () = {
2533 ["Size of BNLogListener"][::std::mem::size_of::<BNLogListener>() - 40usize];
2534 ["Alignment of BNLogListener"][::std::mem::align_of::<BNLogListener>() - 8usize];
2535 ["Offset of field: BNLogListener::context"]
2536 [::std::mem::offset_of!(BNLogListener, context) - 0usize];
2537 ["Offset of field: BNLogListener::log"][::std::mem::offset_of!(BNLogListener, log) - 8usize];
2538 ["Offset of field: BNLogListener::logWithStackTrace"]
2539 [::std::mem::offset_of!(BNLogListener, logWithStackTrace) - 16usize];
2540 ["Offset of field: BNLogListener::close"]
2541 [::std::mem::offset_of!(BNLogListener, close) - 24usize];
2542 ["Offset of field: BNLogListener::getLogLevel"]
2543 [::std::mem::offset_of!(BNLogListener, getLogLevel) - 32usize];
2544};
2545impl Default for BNLogListener {
2546 fn default() -> Self {
2547 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2548 unsafe {
2549 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2550 s.assume_init()
2551 }
2552 }
2553}
2554#[repr(C)]
2555#[derive(Debug, Copy, Clone)]
2556pub struct BNNavigationHandler {
2557 pub context: *mut ::std::os::raw::c_void,
2558 pub getCurrentView: ::std::option::Option<
2559 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> *mut ::std::os::raw::c_char,
2560 >,
2561 pub getCurrentOffset:
2562 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> u64>,
2563 pub navigate: ::std::option::Option<
2564 unsafe extern "C" fn(
2565 ctxt: *mut ::std::os::raw::c_void,
2566 view: *const ::std::os::raw::c_char,
2567 offset: u64,
2568 ) -> bool,
2569 >,
2570}
2571#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2572const _: () = {
2573 ["Size of BNNavigationHandler"][::std::mem::size_of::<BNNavigationHandler>() - 32usize];
2574 ["Alignment of BNNavigationHandler"][::std::mem::align_of::<BNNavigationHandler>() - 8usize];
2575 ["Offset of field: BNNavigationHandler::context"]
2576 [::std::mem::offset_of!(BNNavigationHandler, context) - 0usize];
2577 ["Offset of field: BNNavigationHandler::getCurrentView"]
2578 [::std::mem::offset_of!(BNNavigationHandler, getCurrentView) - 8usize];
2579 ["Offset of field: BNNavigationHandler::getCurrentOffset"]
2580 [::std::mem::offset_of!(BNNavigationHandler, getCurrentOffset) - 16usize];
2581 ["Offset of field: BNNavigationHandler::navigate"]
2582 [::std::mem::offset_of!(BNNavigationHandler, navigate) - 24usize];
2583};
2584impl Default for BNNavigationHandler {
2585 fn default() -> Self {
2586 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2587 unsafe {
2588 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2589 s.assume_init()
2590 }
2591 }
2592}
2593#[repr(C)]
2594#[derive(Debug, Copy, Clone)]
2595pub struct BNNameSpace {
2596 pub name: *mut *mut ::std::os::raw::c_char,
2597 pub join: *mut ::std::os::raw::c_char,
2598 pub nameCount: usize,
2599}
2600#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2601const _: () = {
2602 ["Size of BNNameSpace"][::std::mem::size_of::<BNNameSpace>() - 24usize];
2603 ["Alignment of BNNameSpace"][::std::mem::align_of::<BNNameSpace>() - 8usize];
2604 ["Offset of field: BNNameSpace::name"][::std::mem::offset_of!(BNNameSpace, name) - 0usize];
2605 ["Offset of field: BNNameSpace::join"][::std::mem::offset_of!(BNNameSpace, join) - 8usize];
2606 ["Offset of field: BNNameSpace::nameCount"]
2607 [::std::mem::offset_of!(BNNameSpace, nameCount) - 16usize];
2608};
2609impl Default for BNNameSpace {
2610 fn default() -> Self {
2611 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2612 unsafe {
2613 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2614 s.assume_init()
2615 }
2616 }
2617}
2618#[repr(C)]
2619#[derive(Debug, Copy, Clone)]
2620pub struct BNQualifiedName {
2621 pub name: *mut *mut ::std::os::raw::c_char,
2622 pub join: *mut ::std::os::raw::c_char,
2623 pub nameCount: usize,
2624}
2625#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2626const _: () = {
2627 ["Size of BNQualifiedName"][::std::mem::size_of::<BNQualifiedName>() - 24usize];
2628 ["Alignment of BNQualifiedName"][::std::mem::align_of::<BNQualifiedName>() - 8usize];
2629 ["Offset of field: BNQualifiedName::name"]
2630 [::std::mem::offset_of!(BNQualifiedName, name) - 0usize];
2631 ["Offset of field: BNQualifiedName::join"]
2632 [::std::mem::offset_of!(BNQualifiedName, join) - 8usize];
2633 ["Offset of field: BNQualifiedName::nameCount"]
2634 [::std::mem::offset_of!(BNQualifiedName, nameCount) - 16usize];
2635};
2636impl Default for BNQualifiedName {
2637 fn default() -> Self {
2638 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2639 unsafe {
2640 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2641 s.assume_init()
2642 }
2643 }
2644}
2645#[repr(u8)]
2646#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2647pub enum BNDerivedStringLocationType {
2648 DataBackedStringLocation = 0,
2649 CodeStringLocation = 1,
2650}
2651#[repr(C)]
2652#[derive(Debug, Copy, Clone)]
2653pub struct BNDerivedStringLocation {
2654 pub locationType: BNDerivedStringLocationType,
2655 pub addr: u64,
2656 pub len: u64,
2657}
2658#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2659const _: () = {
2660 ["Size of BNDerivedStringLocation"][::std::mem::size_of::<BNDerivedStringLocation>() - 24usize];
2661 ["Alignment of BNDerivedStringLocation"]
2662 [::std::mem::align_of::<BNDerivedStringLocation>() - 8usize];
2663 ["Offset of field: BNDerivedStringLocation::locationType"]
2664 [::std::mem::offset_of!(BNDerivedStringLocation, locationType) - 0usize];
2665 ["Offset of field: BNDerivedStringLocation::addr"]
2666 [::std::mem::offset_of!(BNDerivedStringLocation, addr) - 8usize];
2667 ["Offset of field: BNDerivedStringLocation::len"]
2668 [::std::mem::offset_of!(BNDerivedStringLocation, len) - 16usize];
2669};
2670impl Default for BNDerivedStringLocation {
2671 fn default() -> Self {
2672 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2673 unsafe {
2674 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2675 s.assume_init()
2676 }
2677 }
2678}
2679#[repr(C)]
2680#[derive(Debug, Copy, Clone)]
2681pub struct BNDerivedString {
2682 pub value: *mut BNStringRef,
2683 pub locationValid: bool,
2684 pub location: BNDerivedStringLocation,
2685 pub customType: *mut BNCustomStringType,
2686}
2687#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2688const _: () = {
2689 ["Size of BNDerivedString"][::std::mem::size_of::<BNDerivedString>() - 48usize];
2690 ["Alignment of BNDerivedString"][::std::mem::align_of::<BNDerivedString>() - 8usize];
2691 ["Offset of field: BNDerivedString::value"]
2692 [::std::mem::offset_of!(BNDerivedString, value) - 0usize];
2693 ["Offset of field: BNDerivedString::locationValid"]
2694 [::std::mem::offset_of!(BNDerivedString, locationValid) - 8usize];
2695 ["Offset of field: BNDerivedString::location"]
2696 [::std::mem::offset_of!(BNDerivedString, location) - 16usize];
2697 ["Offset of field: BNDerivedString::customType"]
2698 [::std::mem::offset_of!(BNDerivedString, customType) - 40usize];
2699};
2700impl Default for BNDerivedString {
2701 fn default() -> Self {
2702 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2703 unsafe {
2704 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2705 s.assume_init()
2706 }
2707 }
2708}
2709#[repr(C)]
2710#[derive(Debug, Copy, Clone)]
2711pub struct BNBinaryDataNotification {
2712 pub context: *mut ::std::os::raw::c_void,
2713 pub notificationBarrier: ::std::option::Option<
2714 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, view: *mut BNBinaryView) -> u64,
2715 >,
2716 pub dataWritten: ::std::option::Option<
2717 unsafe extern "C" fn(
2718 ctxt: *mut ::std::os::raw::c_void,
2719 view: *mut BNBinaryView,
2720 offset: u64,
2721 len: usize,
2722 ),
2723 >,
2724 pub dataInserted: ::std::option::Option<
2725 unsafe extern "C" fn(
2726 ctxt: *mut ::std::os::raw::c_void,
2727 view: *mut BNBinaryView,
2728 offset: u64,
2729 len: usize,
2730 ),
2731 >,
2732 pub dataRemoved: ::std::option::Option<
2733 unsafe extern "C" fn(
2734 ctxt: *mut ::std::os::raw::c_void,
2735 view: *mut BNBinaryView,
2736 offset: u64,
2737 len: u64,
2738 ),
2739 >,
2740 pub functionAdded: ::std::option::Option<
2741 unsafe extern "C" fn(
2742 ctxt: *mut ::std::os::raw::c_void,
2743 view: *mut BNBinaryView,
2744 func: *mut BNFunction,
2745 ),
2746 >,
2747 pub functionRemoved: ::std::option::Option<
2748 unsafe extern "C" fn(
2749 ctxt: *mut ::std::os::raw::c_void,
2750 view: *mut BNBinaryView,
2751 func: *mut BNFunction,
2752 ),
2753 >,
2754 pub functionUpdated: ::std::option::Option<
2755 unsafe extern "C" fn(
2756 ctxt: *mut ::std::os::raw::c_void,
2757 view: *mut BNBinaryView,
2758 func: *mut BNFunction,
2759 ),
2760 >,
2761 pub functionUpdateRequested: ::std::option::Option<
2762 unsafe extern "C" fn(
2763 ctxt: *mut ::std::os::raw::c_void,
2764 view: *mut BNBinaryView,
2765 func: *mut BNFunction,
2766 ),
2767 >,
2768 pub dataVariableAdded: ::std::option::Option<
2769 unsafe extern "C" fn(
2770 ctxt: *mut ::std::os::raw::c_void,
2771 view: *mut BNBinaryView,
2772 var: *mut BNDataVariable,
2773 ),
2774 >,
2775 pub dataVariableRemoved: ::std::option::Option<
2776 unsafe extern "C" fn(
2777 ctxt: *mut ::std::os::raw::c_void,
2778 view: *mut BNBinaryView,
2779 var: *mut BNDataVariable,
2780 ),
2781 >,
2782 pub dataVariableUpdated: ::std::option::Option<
2783 unsafe extern "C" fn(
2784 ctxt: *mut ::std::os::raw::c_void,
2785 view: *mut BNBinaryView,
2786 var: *mut BNDataVariable,
2787 ),
2788 >,
2789 pub dataMetadataUpdated: ::std::option::Option<
2790 unsafe extern "C" fn(
2791 ctxt: *mut ::std::os::raw::c_void,
2792 view: *mut BNBinaryView,
2793 offset: u64,
2794 ),
2795 >,
2796 pub tagTypeUpdated: ::std::option::Option<
2797 unsafe extern "C" fn(
2798 ctxt: *mut ::std::os::raw::c_void,
2799 view: *mut BNBinaryView,
2800 tagType: *mut BNTagType,
2801 ),
2802 >,
2803 pub tagAdded: ::std::option::Option<
2804 unsafe extern "C" fn(
2805 ctxt: *mut ::std::os::raw::c_void,
2806 view: *mut BNBinaryView,
2807 tagRef: *mut BNTagReference,
2808 ),
2809 >,
2810 pub tagRemoved: ::std::option::Option<
2811 unsafe extern "C" fn(
2812 ctxt: *mut ::std::os::raw::c_void,
2813 view: *mut BNBinaryView,
2814 tagRef: *mut BNTagReference,
2815 ),
2816 >,
2817 pub tagUpdated: ::std::option::Option<
2818 unsafe extern "C" fn(
2819 ctxt: *mut ::std::os::raw::c_void,
2820 view: *mut BNBinaryView,
2821 tagRef: *mut BNTagReference,
2822 ),
2823 >,
2824 pub symbolAdded: ::std::option::Option<
2825 unsafe extern "C" fn(
2826 ctxt: *mut ::std::os::raw::c_void,
2827 view: *mut BNBinaryView,
2828 sym: *mut BNSymbol,
2829 ),
2830 >,
2831 pub symbolRemoved: ::std::option::Option<
2832 unsafe extern "C" fn(
2833 ctxt: *mut ::std::os::raw::c_void,
2834 view: *mut BNBinaryView,
2835 sym: *mut BNSymbol,
2836 ),
2837 >,
2838 pub symbolUpdated: ::std::option::Option<
2839 unsafe extern "C" fn(
2840 ctxt: *mut ::std::os::raw::c_void,
2841 view: *mut BNBinaryView,
2842 sym: *mut BNSymbol,
2843 ),
2844 >,
2845 pub stringFound: ::std::option::Option<
2846 unsafe extern "C" fn(
2847 ctxt: *mut ::std::os::raw::c_void,
2848 view: *mut BNBinaryView,
2849 type_: BNStringType,
2850 offset: u64,
2851 len: usize,
2852 ),
2853 >,
2854 pub stringRemoved: ::std::option::Option<
2855 unsafe extern "C" fn(
2856 ctxt: *mut ::std::os::raw::c_void,
2857 view: *mut BNBinaryView,
2858 type_: BNStringType,
2859 offset: u64,
2860 len: usize,
2861 ),
2862 >,
2863 pub derivedStringFound: ::std::option::Option<
2864 unsafe extern "C" fn(
2865 ctxt: *mut ::std::os::raw::c_void,
2866 view: *mut BNBinaryView,
2867 str_: *mut BNDerivedString,
2868 ),
2869 >,
2870 pub derivedStringRemoved: ::std::option::Option<
2871 unsafe extern "C" fn(
2872 ctxt: *mut ::std::os::raw::c_void,
2873 view: *mut BNBinaryView,
2874 str_: *mut BNDerivedString,
2875 ),
2876 >,
2877 pub typeDefined: ::std::option::Option<
2878 unsafe extern "C" fn(
2879 ctxt: *mut ::std::os::raw::c_void,
2880 view: *mut BNBinaryView,
2881 name: *mut BNQualifiedName,
2882 type_: *mut BNType,
2883 ),
2884 >,
2885 pub typeUndefined: ::std::option::Option<
2886 unsafe extern "C" fn(
2887 ctxt: *mut ::std::os::raw::c_void,
2888 view: *mut BNBinaryView,
2889 name: *mut BNQualifiedName,
2890 type_: *mut BNType,
2891 ),
2892 >,
2893 pub typeReferenceChanged: ::std::option::Option<
2894 unsafe extern "C" fn(
2895 ctxt: *mut ::std::os::raw::c_void,
2896 view: *mut BNBinaryView,
2897 name: *mut BNQualifiedName,
2898 type_: *mut BNType,
2899 ),
2900 >,
2901 pub typeFieldReferenceChanged: ::std::option::Option<
2902 unsafe extern "C" fn(
2903 ctxt: *mut ::std::os::raw::c_void,
2904 view: *mut BNBinaryView,
2905 name: *mut BNQualifiedName,
2906 offset: u64,
2907 ),
2908 >,
2909 pub segmentAdded: ::std::option::Option<
2910 unsafe extern "C" fn(
2911 ctxt: *mut ::std::os::raw::c_void,
2912 view: *mut BNBinaryView,
2913 segment: *mut BNSegment,
2914 ),
2915 >,
2916 pub segmentRemoved: ::std::option::Option<
2917 unsafe extern "C" fn(
2918 ctxt: *mut ::std::os::raw::c_void,
2919 view: *mut BNBinaryView,
2920 segment: *mut BNSegment,
2921 ),
2922 >,
2923 pub segmentUpdated: ::std::option::Option<
2924 unsafe extern "C" fn(
2925 ctxt: *mut ::std::os::raw::c_void,
2926 view: *mut BNBinaryView,
2927 segment: *mut BNSegment,
2928 ),
2929 >,
2930 pub sectionAdded: ::std::option::Option<
2931 unsafe extern "C" fn(
2932 ctxt: *mut ::std::os::raw::c_void,
2933 view: *mut BNBinaryView,
2934 section: *mut BNSection,
2935 ),
2936 >,
2937 pub sectionRemoved: ::std::option::Option<
2938 unsafe extern "C" fn(
2939 ctxt: *mut ::std::os::raw::c_void,
2940 view: *mut BNBinaryView,
2941 section: *mut BNSection,
2942 ),
2943 >,
2944 pub sectionUpdated: ::std::option::Option<
2945 unsafe extern "C" fn(
2946 ctxt: *mut ::std::os::raw::c_void,
2947 view: *mut BNBinaryView,
2948 section: *mut BNSection,
2949 ),
2950 >,
2951 pub componentNameUpdated: ::std::option::Option<
2952 unsafe extern "C" fn(
2953 ctxt: *mut ::std::os::raw::c_void,
2954 view: *mut BNBinaryView,
2955 previousName: *mut ::std::os::raw::c_char,
2956 component: *mut BNComponent,
2957 ),
2958 >,
2959 pub componentAdded: ::std::option::Option<
2960 unsafe extern "C" fn(
2961 ctxt: *mut ::std::os::raw::c_void,
2962 view: *mut BNBinaryView,
2963 component: *mut BNComponent,
2964 ),
2965 >,
2966 pub componentMoved: ::std::option::Option<
2967 unsafe extern "C" fn(
2968 ctxt: *mut ::std::os::raw::c_void,
2969 view: *mut BNBinaryView,
2970 formerParent: *mut BNComponent,
2971 newParent: *mut BNComponent,
2972 component: *mut BNComponent,
2973 ),
2974 >,
2975 pub componentRemoved: ::std::option::Option<
2976 unsafe extern "C" fn(
2977 ctxt: *mut ::std::os::raw::c_void,
2978 view: *mut BNBinaryView,
2979 formerParent: *mut BNComponent,
2980 component: *mut BNComponent,
2981 ),
2982 >,
2983 pub componentFunctionAdded: ::std::option::Option<
2984 unsafe extern "C" fn(
2985 ctxt: *mut ::std::os::raw::c_void,
2986 view: *mut BNBinaryView,
2987 component: *mut BNComponent,
2988 function: *mut BNFunction,
2989 ),
2990 >,
2991 pub componentFunctionRemoved: ::std::option::Option<
2992 unsafe extern "C" fn(
2993 ctxt: *mut ::std::os::raw::c_void,
2994 view: *mut BNBinaryView,
2995 component: *mut BNComponent,
2996 function: *mut BNFunction,
2997 ),
2998 >,
2999 pub componentDataVariableAdded: ::std::option::Option<
3000 unsafe extern "C" fn(
3001 ctxt: *mut ::std::os::raw::c_void,
3002 view: *mut BNBinaryView,
3003 component: *mut BNComponent,
3004 var: *mut BNDataVariable,
3005 ),
3006 >,
3007 pub componentDataVariableRemoved: ::std::option::Option<
3008 unsafe extern "C" fn(
3009 ctxt: *mut ::std::os::raw::c_void,
3010 view: *mut BNBinaryView,
3011 component: *mut BNComponent,
3012 var: *mut BNDataVariable,
3013 ),
3014 >,
3015 pub externalLibraryAdded: ::std::option::Option<
3016 unsafe extern "C" fn(
3017 ctxt: *mut ::std::os::raw::c_void,
3018 data: *mut BNBinaryView,
3019 library: *mut BNExternalLibrary,
3020 ),
3021 >,
3022 pub externalLibraryUpdated: ::std::option::Option<
3023 unsafe extern "C" fn(
3024 ctxt: *mut ::std::os::raw::c_void,
3025 data: *mut BNBinaryView,
3026 library: *mut BNExternalLibrary,
3027 ),
3028 >,
3029 pub externalLibraryRemoved: ::std::option::Option<
3030 unsafe extern "C" fn(
3031 ctxt: *mut ::std::os::raw::c_void,
3032 data: *mut BNBinaryView,
3033 library: *mut BNExternalLibrary,
3034 ),
3035 >,
3036 pub externalLocationAdded: ::std::option::Option<
3037 unsafe extern "C" fn(
3038 ctxt: *mut ::std::os::raw::c_void,
3039 data: *mut BNBinaryView,
3040 location: *mut BNExternalLocation,
3041 ),
3042 >,
3043 pub externalLocationUpdated: ::std::option::Option<
3044 unsafe extern "C" fn(
3045 ctxt: *mut ::std::os::raw::c_void,
3046 data: *mut BNBinaryView,
3047 location: *mut BNExternalLocation,
3048 ),
3049 >,
3050 pub externalLocationRemoved: ::std::option::Option<
3051 unsafe extern "C" fn(
3052 ctxt: *mut ::std::os::raw::c_void,
3053 data: *mut BNBinaryView,
3054 location: *mut BNExternalLocation,
3055 ),
3056 >,
3057 pub typeArchiveAttached: ::std::option::Option<
3058 unsafe extern "C" fn(
3059 ctxt: *mut ::std::os::raw::c_void,
3060 view: *mut BNBinaryView,
3061 id: *const ::std::os::raw::c_char,
3062 path: *const ::std::os::raw::c_char,
3063 ),
3064 >,
3065 pub typeArchiveDetached: ::std::option::Option<
3066 unsafe extern "C" fn(
3067 ctxt: *mut ::std::os::raw::c_void,
3068 view: *mut BNBinaryView,
3069 id: *const ::std::os::raw::c_char,
3070 path: *const ::std::os::raw::c_char,
3071 ),
3072 >,
3073 pub typeArchiveConnected: ::std::option::Option<
3074 unsafe extern "C" fn(
3075 ctxt: *mut ::std::os::raw::c_void,
3076 view: *mut BNBinaryView,
3077 archive: *mut BNTypeArchive,
3078 ),
3079 >,
3080 pub typeArchiveDisconnected: ::std::option::Option<
3081 unsafe extern "C" fn(
3082 ctxt: *mut ::std::os::raw::c_void,
3083 view: *mut BNBinaryView,
3084 archive: *mut BNTypeArchive,
3085 ),
3086 >,
3087 pub undoEntryAdded: ::std::option::Option<
3088 unsafe extern "C" fn(
3089 ctxt: *mut ::std::os::raw::c_void,
3090 view: *mut BNBinaryView,
3091 entry: *mut BNUndoEntry,
3092 ),
3093 >,
3094 pub undoEntryTaken: ::std::option::Option<
3095 unsafe extern "C" fn(
3096 ctxt: *mut ::std::os::raw::c_void,
3097 view: *mut BNBinaryView,
3098 entry: *mut BNUndoEntry,
3099 ),
3100 >,
3101 pub redoEntryTaken: ::std::option::Option<
3102 unsafe extern "C" fn(
3103 ctxt: *mut ::std::os::raw::c_void,
3104 view: *mut BNBinaryView,
3105 entry: *mut BNUndoEntry,
3106 ),
3107 >,
3108 pub rebased: ::std::option::Option<
3109 unsafe extern "C" fn(
3110 ctxt: *mut ::std::os::raw::c_void,
3111 oldView: *mut BNBinaryView,
3112 newView: *mut BNBinaryView,
3113 ),
3114 >,
3115}
3116#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3117const _: () = {
3118 ["Size of BNBinaryDataNotification"]
3119 [::std::mem::size_of::<BNBinaryDataNotification>() - 448usize];
3120 ["Alignment of BNBinaryDataNotification"]
3121 [::std::mem::align_of::<BNBinaryDataNotification>() - 8usize];
3122 ["Offset of field: BNBinaryDataNotification::context"]
3123 [::std::mem::offset_of!(BNBinaryDataNotification, context) - 0usize];
3124 ["Offset of field: BNBinaryDataNotification::notificationBarrier"]
3125 [::std::mem::offset_of!(BNBinaryDataNotification, notificationBarrier) - 8usize];
3126 ["Offset of field: BNBinaryDataNotification::dataWritten"]
3127 [::std::mem::offset_of!(BNBinaryDataNotification, dataWritten) - 16usize];
3128 ["Offset of field: BNBinaryDataNotification::dataInserted"]
3129 [::std::mem::offset_of!(BNBinaryDataNotification, dataInserted) - 24usize];
3130 ["Offset of field: BNBinaryDataNotification::dataRemoved"]
3131 [::std::mem::offset_of!(BNBinaryDataNotification, dataRemoved) - 32usize];
3132 ["Offset of field: BNBinaryDataNotification::functionAdded"]
3133 [::std::mem::offset_of!(BNBinaryDataNotification, functionAdded) - 40usize];
3134 ["Offset of field: BNBinaryDataNotification::functionRemoved"]
3135 [::std::mem::offset_of!(BNBinaryDataNotification, functionRemoved) - 48usize];
3136 ["Offset of field: BNBinaryDataNotification::functionUpdated"]
3137 [::std::mem::offset_of!(BNBinaryDataNotification, functionUpdated) - 56usize];
3138 ["Offset of field: BNBinaryDataNotification::functionUpdateRequested"]
3139 [::std::mem::offset_of!(BNBinaryDataNotification, functionUpdateRequested) - 64usize];
3140 ["Offset of field: BNBinaryDataNotification::dataVariableAdded"]
3141 [::std::mem::offset_of!(BNBinaryDataNotification, dataVariableAdded) - 72usize];
3142 ["Offset of field: BNBinaryDataNotification::dataVariableRemoved"]
3143 [::std::mem::offset_of!(BNBinaryDataNotification, dataVariableRemoved) - 80usize];
3144 ["Offset of field: BNBinaryDataNotification::dataVariableUpdated"]
3145 [::std::mem::offset_of!(BNBinaryDataNotification, dataVariableUpdated) - 88usize];
3146 ["Offset of field: BNBinaryDataNotification::dataMetadataUpdated"]
3147 [::std::mem::offset_of!(BNBinaryDataNotification, dataMetadataUpdated) - 96usize];
3148 ["Offset of field: BNBinaryDataNotification::tagTypeUpdated"]
3149 [::std::mem::offset_of!(BNBinaryDataNotification, tagTypeUpdated) - 104usize];
3150 ["Offset of field: BNBinaryDataNotification::tagAdded"]
3151 [::std::mem::offset_of!(BNBinaryDataNotification, tagAdded) - 112usize];
3152 ["Offset of field: BNBinaryDataNotification::tagRemoved"]
3153 [::std::mem::offset_of!(BNBinaryDataNotification, tagRemoved) - 120usize];
3154 ["Offset of field: BNBinaryDataNotification::tagUpdated"]
3155 [::std::mem::offset_of!(BNBinaryDataNotification, tagUpdated) - 128usize];
3156 ["Offset of field: BNBinaryDataNotification::symbolAdded"]
3157 [::std::mem::offset_of!(BNBinaryDataNotification, symbolAdded) - 136usize];
3158 ["Offset of field: BNBinaryDataNotification::symbolRemoved"]
3159 [::std::mem::offset_of!(BNBinaryDataNotification, symbolRemoved) - 144usize];
3160 ["Offset of field: BNBinaryDataNotification::symbolUpdated"]
3161 [::std::mem::offset_of!(BNBinaryDataNotification, symbolUpdated) - 152usize];
3162 ["Offset of field: BNBinaryDataNotification::stringFound"]
3163 [::std::mem::offset_of!(BNBinaryDataNotification, stringFound) - 160usize];
3164 ["Offset of field: BNBinaryDataNotification::stringRemoved"]
3165 [::std::mem::offset_of!(BNBinaryDataNotification, stringRemoved) - 168usize];
3166 ["Offset of field: BNBinaryDataNotification::derivedStringFound"]
3167 [::std::mem::offset_of!(BNBinaryDataNotification, derivedStringFound) - 176usize];
3168 ["Offset of field: BNBinaryDataNotification::derivedStringRemoved"]
3169 [::std::mem::offset_of!(BNBinaryDataNotification, derivedStringRemoved) - 184usize];
3170 ["Offset of field: BNBinaryDataNotification::typeDefined"]
3171 [::std::mem::offset_of!(BNBinaryDataNotification, typeDefined) - 192usize];
3172 ["Offset of field: BNBinaryDataNotification::typeUndefined"]
3173 [::std::mem::offset_of!(BNBinaryDataNotification, typeUndefined) - 200usize];
3174 ["Offset of field: BNBinaryDataNotification::typeReferenceChanged"]
3175 [::std::mem::offset_of!(BNBinaryDataNotification, typeReferenceChanged) - 208usize];
3176 ["Offset of field: BNBinaryDataNotification::typeFieldReferenceChanged"]
3177 [::std::mem::offset_of!(BNBinaryDataNotification, typeFieldReferenceChanged) - 216usize];
3178 ["Offset of field: BNBinaryDataNotification::segmentAdded"]
3179 [::std::mem::offset_of!(BNBinaryDataNotification, segmentAdded) - 224usize];
3180 ["Offset of field: BNBinaryDataNotification::segmentRemoved"]
3181 [::std::mem::offset_of!(BNBinaryDataNotification, segmentRemoved) - 232usize];
3182 ["Offset of field: BNBinaryDataNotification::segmentUpdated"]
3183 [::std::mem::offset_of!(BNBinaryDataNotification, segmentUpdated) - 240usize];
3184 ["Offset of field: BNBinaryDataNotification::sectionAdded"]
3185 [::std::mem::offset_of!(BNBinaryDataNotification, sectionAdded) - 248usize];
3186 ["Offset of field: BNBinaryDataNotification::sectionRemoved"]
3187 [::std::mem::offset_of!(BNBinaryDataNotification, sectionRemoved) - 256usize];
3188 ["Offset of field: BNBinaryDataNotification::sectionUpdated"]
3189 [::std::mem::offset_of!(BNBinaryDataNotification, sectionUpdated) - 264usize];
3190 ["Offset of field: BNBinaryDataNotification::componentNameUpdated"]
3191 [::std::mem::offset_of!(BNBinaryDataNotification, componentNameUpdated) - 272usize];
3192 ["Offset of field: BNBinaryDataNotification::componentAdded"]
3193 [::std::mem::offset_of!(BNBinaryDataNotification, componentAdded) - 280usize];
3194 ["Offset of field: BNBinaryDataNotification::componentMoved"]
3195 [::std::mem::offset_of!(BNBinaryDataNotification, componentMoved) - 288usize];
3196 ["Offset of field: BNBinaryDataNotification::componentRemoved"]
3197 [::std::mem::offset_of!(BNBinaryDataNotification, componentRemoved) - 296usize];
3198 ["Offset of field: BNBinaryDataNotification::componentFunctionAdded"]
3199 [::std::mem::offset_of!(BNBinaryDataNotification, componentFunctionAdded) - 304usize];
3200 ["Offset of field: BNBinaryDataNotification::componentFunctionRemoved"]
3201 [::std::mem::offset_of!(BNBinaryDataNotification, componentFunctionRemoved) - 312usize];
3202 ["Offset of field: BNBinaryDataNotification::componentDataVariableAdded"]
3203 [::std::mem::offset_of!(BNBinaryDataNotification, componentDataVariableAdded) - 320usize];
3204 ["Offset of field: BNBinaryDataNotification::componentDataVariableRemoved"]
3205 [::std::mem::offset_of!(BNBinaryDataNotification, componentDataVariableRemoved) - 328usize];
3206 ["Offset of field: BNBinaryDataNotification::externalLibraryAdded"]
3207 [::std::mem::offset_of!(BNBinaryDataNotification, externalLibraryAdded) - 336usize];
3208 ["Offset of field: BNBinaryDataNotification::externalLibraryUpdated"]
3209 [::std::mem::offset_of!(BNBinaryDataNotification, externalLibraryUpdated) - 344usize];
3210 ["Offset of field: BNBinaryDataNotification::externalLibraryRemoved"]
3211 [::std::mem::offset_of!(BNBinaryDataNotification, externalLibraryRemoved) - 352usize];
3212 ["Offset of field: BNBinaryDataNotification::externalLocationAdded"]
3213 [::std::mem::offset_of!(BNBinaryDataNotification, externalLocationAdded) - 360usize];
3214 ["Offset of field: BNBinaryDataNotification::externalLocationUpdated"]
3215 [::std::mem::offset_of!(BNBinaryDataNotification, externalLocationUpdated) - 368usize];
3216 ["Offset of field: BNBinaryDataNotification::externalLocationRemoved"]
3217 [::std::mem::offset_of!(BNBinaryDataNotification, externalLocationRemoved) - 376usize];
3218 ["Offset of field: BNBinaryDataNotification::typeArchiveAttached"]
3219 [::std::mem::offset_of!(BNBinaryDataNotification, typeArchiveAttached) - 384usize];
3220 ["Offset of field: BNBinaryDataNotification::typeArchiveDetached"]
3221 [::std::mem::offset_of!(BNBinaryDataNotification, typeArchiveDetached) - 392usize];
3222 ["Offset of field: BNBinaryDataNotification::typeArchiveConnected"]
3223 [::std::mem::offset_of!(BNBinaryDataNotification, typeArchiveConnected) - 400usize];
3224 ["Offset of field: BNBinaryDataNotification::typeArchiveDisconnected"]
3225 [::std::mem::offset_of!(BNBinaryDataNotification, typeArchiveDisconnected) - 408usize];
3226 ["Offset of field: BNBinaryDataNotification::undoEntryAdded"]
3227 [::std::mem::offset_of!(BNBinaryDataNotification, undoEntryAdded) - 416usize];
3228 ["Offset of field: BNBinaryDataNotification::undoEntryTaken"]
3229 [::std::mem::offset_of!(BNBinaryDataNotification, undoEntryTaken) - 424usize];
3230 ["Offset of field: BNBinaryDataNotification::redoEntryTaken"]
3231 [::std::mem::offset_of!(BNBinaryDataNotification, redoEntryTaken) - 432usize];
3232 ["Offset of field: BNBinaryDataNotification::rebased"]
3233 [::std::mem::offset_of!(BNBinaryDataNotification, rebased) - 440usize];
3234};
3235impl Default for BNBinaryDataNotification {
3236 fn default() -> Self {
3237 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3238 unsafe {
3239 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3240 s.assume_init()
3241 }
3242 }
3243}
3244#[repr(C)]
3245#[derive(Debug, Copy, Clone)]
3246pub struct BNProjectNotification {
3247 pub context: *mut ::std::os::raw::c_void,
3248 pub beforeOpenProject: ::std::option::Option<
3249 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, project: *mut BNProject) -> bool,
3250 >,
3251 pub afterOpenProject: ::std::option::Option<
3252 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, project: *mut BNProject),
3253 >,
3254 pub beforeCloseProject: ::std::option::Option<
3255 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, project: *mut BNProject) -> bool,
3256 >,
3257 pub afterCloseProject: ::std::option::Option<
3258 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, project: *mut BNProject),
3259 >,
3260 pub beforeProjectMetadataWritten: ::std::option::Option<
3261 unsafe extern "C" fn(
3262 ctxt: *mut ::std::os::raw::c_void,
3263 project: *mut BNProject,
3264 key: *mut ::std::os::raw::c_char,
3265 value: *mut BNMetadata,
3266 ) -> bool,
3267 >,
3268 pub afterProjectMetadataWritten: ::std::option::Option<
3269 unsafe extern "C" fn(
3270 ctxt: *mut ::std::os::raw::c_void,
3271 project: *mut BNProject,
3272 key: *mut ::std::os::raw::c_char,
3273 value: *mut BNMetadata,
3274 ),
3275 >,
3276 pub beforeProjectFileCreated: ::std::option::Option<
3277 unsafe extern "C" fn(
3278 ctxt: *mut ::std::os::raw::c_void,
3279 project: *mut BNProject,
3280 projectFile: *mut BNProjectFile,
3281 ) -> bool,
3282 >,
3283 pub afterProjectFileCreated: ::std::option::Option<
3284 unsafe extern "C" fn(
3285 ctxt: *mut ::std::os::raw::c_void,
3286 project: *mut BNProject,
3287 projectFile: *mut BNProjectFile,
3288 ),
3289 >,
3290 pub beforeProjectFileUpdated: ::std::option::Option<
3291 unsafe extern "C" fn(
3292 ctxt: *mut ::std::os::raw::c_void,
3293 project: *mut BNProject,
3294 projectFile: *mut BNProjectFile,
3295 ) -> bool,
3296 >,
3297 pub afterProjectFileUpdated: ::std::option::Option<
3298 unsafe extern "C" fn(
3299 ctxt: *mut ::std::os::raw::c_void,
3300 project: *mut BNProject,
3301 projectFile: *mut BNProjectFile,
3302 ),
3303 >,
3304 pub beforeProjectFileDeleted: ::std::option::Option<
3305 unsafe extern "C" fn(
3306 ctxt: *mut ::std::os::raw::c_void,
3307 project: *mut BNProject,
3308 projectFile: *mut BNProjectFile,
3309 ) -> bool,
3310 >,
3311 pub afterProjectFileDeleted: ::std::option::Option<
3312 unsafe extern "C" fn(
3313 ctxt: *mut ::std::os::raw::c_void,
3314 project: *mut BNProject,
3315 projectFile: *mut BNProjectFile,
3316 ),
3317 >,
3318 pub beforeProjectFolderCreated: ::std::option::Option<
3319 unsafe extern "C" fn(
3320 ctxt: *mut ::std::os::raw::c_void,
3321 project: *mut BNProject,
3322 projectFolder: *mut BNProjectFolder,
3323 ) -> bool,
3324 >,
3325 pub afterProjectFolderCreated: ::std::option::Option<
3326 unsafe extern "C" fn(
3327 ctxt: *mut ::std::os::raw::c_void,
3328 project: *mut BNProject,
3329 projectFolder: *mut BNProjectFolder,
3330 ),
3331 >,
3332 pub beforeProjectFolderUpdated: ::std::option::Option<
3333 unsafe extern "C" fn(
3334 ctxt: *mut ::std::os::raw::c_void,
3335 project: *mut BNProject,
3336 projectFolder: *mut BNProjectFolder,
3337 ) -> bool,
3338 >,
3339 pub afterProjectFolderUpdated: ::std::option::Option<
3340 unsafe extern "C" fn(
3341 ctxt: *mut ::std::os::raw::c_void,
3342 project: *mut BNProject,
3343 projectFolder: *mut BNProjectFolder,
3344 ),
3345 >,
3346 pub beforeProjectFolderDeleted: ::std::option::Option<
3347 unsafe extern "C" fn(
3348 ctxt: *mut ::std::os::raw::c_void,
3349 project: *mut BNProject,
3350 projectFolder: *mut BNProjectFolder,
3351 ) -> bool,
3352 >,
3353 pub afterProjectFolderDeleted: ::std::option::Option<
3354 unsafe extern "C" fn(
3355 ctxt: *mut ::std::os::raw::c_void,
3356 project: *mut BNProject,
3357 projectFolder: *mut BNProjectFolder,
3358 ),
3359 >,
3360}
3361#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3362const _: () = {
3363 ["Size of BNProjectNotification"][::std::mem::size_of::<BNProjectNotification>() - 152usize];
3364 ["Alignment of BNProjectNotification"]
3365 [::std::mem::align_of::<BNProjectNotification>() - 8usize];
3366 ["Offset of field: BNProjectNotification::context"]
3367 [::std::mem::offset_of!(BNProjectNotification, context) - 0usize];
3368 ["Offset of field: BNProjectNotification::beforeOpenProject"]
3369 [::std::mem::offset_of!(BNProjectNotification, beforeOpenProject) - 8usize];
3370 ["Offset of field: BNProjectNotification::afterOpenProject"]
3371 [::std::mem::offset_of!(BNProjectNotification, afterOpenProject) - 16usize];
3372 ["Offset of field: BNProjectNotification::beforeCloseProject"]
3373 [::std::mem::offset_of!(BNProjectNotification, beforeCloseProject) - 24usize];
3374 ["Offset of field: BNProjectNotification::afterCloseProject"]
3375 [::std::mem::offset_of!(BNProjectNotification, afterCloseProject) - 32usize];
3376 ["Offset of field: BNProjectNotification::beforeProjectMetadataWritten"]
3377 [::std::mem::offset_of!(BNProjectNotification, beforeProjectMetadataWritten) - 40usize];
3378 ["Offset of field: BNProjectNotification::afterProjectMetadataWritten"]
3379 [::std::mem::offset_of!(BNProjectNotification, afterProjectMetadataWritten) - 48usize];
3380 ["Offset of field: BNProjectNotification::beforeProjectFileCreated"]
3381 [::std::mem::offset_of!(BNProjectNotification, beforeProjectFileCreated) - 56usize];
3382 ["Offset of field: BNProjectNotification::afterProjectFileCreated"]
3383 [::std::mem::offset_of!(BNProjectNotification, afterProjectFileCreated) - 64usize];
3384 ["Offset of field: BNProjectNotification::beforeProjectFileUpdated"]
3385 [::std::mem::offset_of!(BNProjectNotification, beforeProjectFileUpdated) - 72usize];
3386 ["Offset of field: BNProjectNotification::afterProjectFileUpdated"]
3387 [::std::mem::offset_of!(BNProjectNotification, afterProjectFileUpdated) - 80usize];
3388 ["Offset of field: BNProjectNotification::beforeProjectFileDeleted"]
3389 [::std::mem::offset_of!(BNProjectNotification, beforeProjectFileDeleted) - 88usize];
3390 ["Offset of field: BNProjectNotification::afterProjectFileDeleted"]
3391 [::std::mem::offset_of!(BNProjectNotification, afterProjectFileDeleted) - 96usize];
3392 ["Offset of field: BNProjectNotification::beforeProjectFolderCreated"]
3393 [::std::mem::offset_of!(BNProjectNotification, beforeProjectFolderCreated) - 104usize];
3394 ["Offset of field: BNProjectNotification::afterProjectFolderCreated"]
3395 [::std::mem::offset_of!(BNProjectNotification, afterProjectFolderCreated) - 112usize];
3396 ["Offset of field: BNProjectNotification::beforeProjectFolderUpdated"]
3397 [::std::mem::offset_of!(BNProjectNotification, beforeProjectFolderUpdated) - 120usize];
3398 ["Offset of field: BNProjectNotification::afterProjectFolderUpdated"]
3399 [::std::mem::offset_of!(BNProjectNotification, afterProjectFolderUpdated) - 128usize];
3400 ["Offset of field: BNProjectNotification::beforeProjectFolderDeleted"]
3401 [::std::mem::offset_of!(BNProjectNotification, beforeProjectFolderDeleted) - 136usize];
3402 ["Offset of field: BNProjectNotification::afterProjectFolderDeleted"]
3403 [::std::mem::offset_of!(BNProjectNotification, afterProjectFolderDeleted) - 144usize];
3404};
3405impl Default for BNProjectNotification {
3406 fn default() -> Self {
3407 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3408 unsafe {
3409 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3410 s.assume_init()
3411 }
3412 }
3413}
3414#[repr(C)]
3415#[derive(Debug, Copy, Clone)]
3416pub struct BNFileAccessor {
3417 pub context: *mut ::std::os::raw::c_void,
3418 pub getLength:
3419 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> u64>,
3420 pub read: ::std::option::Option<
3421 unsafe extern "C" fn(
3422 ctxt: *mut ::std::os::raw::c_void,
3423 dest: *mut ::std::os::raw::c_void,
3424 offset: u64,
3425 len: usize,
3426 ) -> usize,
3427 >,
3428 pub write: ::std::option::Option<
3429 unsafe extern "C" fn(
3430 ctxt: *mut ::std::os::raw::c_void,
3431 offset: u64,
3432 src: *const ::std::os::raw::c_void,
3433 len: usize,
3434 ) -> usize,
3435 >,
3436}
3437#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3438const _: () = {
3439 ["Size of BNFileAccessor"][::std::mem::size_of::<BNFileAccessor>() - 32usize];
3440 ["Alignment of BNFileAccessor"][::std::mem::align_of::<BNFileAccessor>() - 8usize];
3441 ["Offset of field: BNFileAccessor::context"]
3442 [::std::mem::offset_of!(BNFileAccessor, context) - 0usize];
3443 ["Offset of field: BNFileAccessor::getLength"]
3444 [::std::mem::offset_of!(BNFileAccessor, getLength) - 8usize];
3445 ["Offset of field: BNFileAccessor::read"]
3446 [::std::mem::offset_of!(BNFileAccessor, read) - 16usize];
3447 ["Offset of field: BNFileAccessor::write"]
3448 [::std::mem::offset_of!(BNFileAccessor, write) - 24usize];
3449};
3450impl Default for BNFileAccessor {
3451 fn default() -> Self {
3452 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3453 unsafe {
3454 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3455 s.assume_init()
3456 }
3457 }
3458}
3459#[repr(C)]
3460#[derive(Debug, Copy, Clone)]
3461pub struct BNCustomBinaryView {
3462 pub context: *mut ::std::os::raw::c_void,
3463 pub init:
3464 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
3465 pub freeObject: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
3466 pub externalRefTaken:
3467 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
3468 pub externalRefReleased:
3469 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
3470 pub read: ::std::option::Option<
3471 unsafe extern "C" fn(
3472 ctxt: *mut ::std::os::raw::c_void,
3473 dest: *mut ::std::os::raw::c_void,
3474 offset: u64,
3475 len: usize,
3476 ) -> usize,
3477 >,
3478 pub write: ::std::option::Option<
3479 unsafe extern "C" fn(
3480 ctxt: *mut ::std::os::raw::c_void,
3481 offset: u64,
3482 src: *const ::std::os::raw::c_void,
3483 len: usize,
3484 ) -> usize,
3485 >,
3486 pub insert: ::std::option::Option<
3487 unsafe extern "C" fn(
3488 ctxt: *mut ::std::os::raw::c_void,
3489 offset: u64,
3490 src: *const ::std::os::raw::c_void,
3491 len: usize,
3492 ) -> usize,
3493 >,
3494 pub remove: ::std::option::Option<
3495 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, offset: u64, len: u64) -> usize,
3496 >,
3497 pub getModification: ::std::option::Option<
3498 unsafe extern "C" fn(
3499 ctxt: *mut ::std::os::raw::c_void,
3500 offset: u64,
3501 ) -> BNModificationStatus,
3502 >,
3503 pub isValidOffset: ::std::option::Option<
3504 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, offset: u64) -> bool,
3505 >,
3506 pub isOffsetReadable: ::std::option::Option<
3507 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, offset: u64) -> bool,
3508 >,
3509 pub isOffsetWritable: ::std::option::Option<
3510 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, offset: u64) -> bool,
3511 >,
3512 pub isOffsetExecutable: ::std::option::Option<
3513 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, offset: u64) -> bool,
3514 >,
3515 pub isOffsetBackedByFile: ::std::option::Option<
3516 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, offset: u64) -> bool,
3517 >,
3518 pub getNextValidOffset: ::std::option::Option<
3519 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, offset: u64) -> u64,
3520 >,
3521 pub getStart:
3522 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> u64>,
3523 pub getLength:
3524 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> u64>,
3525 pub getEntryPoint:
3526 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> u64>,
3527 pub isExecutable:
3528 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
3529 pub getDefaultEndianness: ::std::option::Option<
3530 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> BNEndianness,
3531 >,
3532 pub isRelocatable:
3533 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
3534 pub getAddressSize:
3535 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> usize>,
3536 pub save: ::std::option::Option<
3537 unsafe extern "C" fn(
3538 ctxt: *mut ::std::os::raw::c_void,
3539 accessor: *mut BNFileAccessor,
3540 ) -> bool,
3541 >,
3542 pub onAfterSnapshotDataApplied:
3543 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
3544}
3545#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3546const _: () = {
3547 ["Size of BNCustomBinaryView"][::std::mem::size_of::<BNCustomBinaryView>() - 200usize];
3548 ["Alignment of BNCustomBinaryView"][::std::mem::align_of::<BNCustomBinaryView>() - 8usize];
3549 ["Offset of field: BNCustomBinaryView::context"]
3550 [::std::mem::offset_of!(BNCustomBinaryView, context) - 0usize];
3551 ["Offset of field: BNCustomBinaryView::init"]
3552 [::std::mem::offset_of!(BNCustomBinaryView, init) - 8usize];
3553 ["Offset of field: BNCustomBinaryView::freeObject"]
3554 [::std::mem::offset_of!(BNCustomBinaryView, freeObject) - 16usize];
3555 ["Offset of field: BNCustomBinaryView::externalRefTaken"]
3556 [::std::mem::offset_of!(BNCustomBinaryView, externalRefTaken) - 24usize];
3557 ["Offset of field: BNCustomBinaryView::externalRefReleased"]
3558 [::std::mem::offset_of!(BNCustomBinaryView, externalRefReleased) - 32usize];
3559 ["Offset of field: BNCustomBinaryView::read"]
3560 [::std::mem::offset_of!(BNCustomBinaryView, read) - 40usize];
3561 ["Offset of field: BNCustomBinaryView::write"]
3562 [::std::mem::offset_of!(BNCustomBinaryView, write) - 48usize];
3563 ["Offset of field: BNCustomBinaryView::insert"]
3564 [::std::mem::offset_of!(BNCustomBinaryView, insert) - 56usize];
3565 ["Offset of field: BNCustomBinaryView::remove"]
3566 [::std::mem::offset_of!(BNCustomBinaryView, remove) - 64usize];
3567 ["Offset of field: BNCustomBinaryView::getModification"]
3568 [::std::mem::offset_of!(BNCustomBinaryView, getModification) - 72usize];
3569 ["Offset of field: BNCustomBinaryView::isValidOffset"]
3570 [::std::mem::offset_of!(BNCustomBinaryView, isValidOffset) - 80usize];
3571 ["Offset of field: BNCustomBinaryView::isOffsetReadable"]
3572 [::std::mem::offset_of!(BNCustomBinaryView, isOffsetReadable) - 88usize];
3573 ["Offset of field: BNCustomBinaryView::isOffsetWritable"]
3574 [::std::mem::offset_of!(BNCustomBinaryView, isOffsetWritable) - 96usize];
3575 ["Offset of field: BNCustomBinaryView::isOffsetExecutable"]
3576 [::std::mem::offset_of!(BNCustomBinaryView, isOffsetExecutable) - 104usize];
3577 ["Offset of field: BNCustomBinaryView::isOffsetBackedByFile"]
3578 [::std::mem::offset_of!(BNCustomBinaryView, isOffsetBackedByFile) - 112usize];
3579 ["Offset of field: BNCustomBinaryView::getNextValidOffset"]
3580 [::std::mem::offset_of!(BNCustomBinaryView, getNextValidOffset) - 120usize];
3581 ["Offset of field: BNCustomBinaryView::getStart"]
3582 [::std::mem::offset_of!(BNCustomBinaryView, getStart) - 128usize];
3583 ["Offset of field: BNCustomBinaryView::getLength"]
3584 [::std::mem::offset_of!(BNCustomBinaryView, getLength) - 136usize];
3585 ["Offset of field: BNCustomBinaryView::getEntryPoint"]
3586 [::std::mem::offset_of!(BNCustomBinaryView, getEntryPoint) - 144usize];
3587 ["Offset of field: BNCustomBinaryView::isExecutable"]
3588 [::std::mem::offset_of!(BNCustomBinaryView, isExecutable) - 152usize];
3589 ["Offset of field: BNCustomBinaryView::getDefaultEndianness"]
3590 [::std::mem::offset_of!(BNCustomBinaryView, getDefaultEndianness) - 160usize];
3591 ["Offset of field: BNCustomBinaryView::isRelocatable"]
3592 [::std::mem::offset_of!(BNCustomBinaryView, isRelocatable) - 168usize];
3593 ["Offset of field: BNCustomBinaryView::getAddressSize"]
3594 [::std::mem::offset_of!(BNCustomBinaryView, getAddressSize) - 176usize];
3595 ["Offset of field: BNCustomBinaryView::save"]
3596 [::std::mem::offset_of!(BNCustomBinaryView, save) - 184usize];
3597 ["Offset of field: BNCustomBinaryView::onAfterSnapshotDataApplied"]
3598 [::std::mem::offset_of!(BNCustomBinaryView, onAfterSnapshotDataApplied) - 192usize];
3599};
3600impl Default for BNCustomBinaryView {
3601 fn default() -> Self {
3602 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3603 unsafe {
3604 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3605 s.assume_init()
3606 }
3607 }
3608}
3609#[repr(C)]
3610#[derive(Debug, Copy, Clone)]
3611pub struct BNCustomBinaryViewType {
3612 pub context: *mut ::std::os::raw::c_void,
3613 pub create: ::std::option::Option<
3614 unsafe extern "C" fn(
3615 ctxt: *mut ::std::os::raw::c_void,
3616 data: *mut BNBinaryView,
3617 ) -> *mut BNBinaryView,
3618 >,
3619 pub parse: ::std::option::Option<
3620 unsafe extern "C" fn(
3621 ctxt: *mut ::std::os::raw::c_void,
3622 data: *mut BNBinaryView,
3623 ) -> *mut BNBinaryView,
3624 >,
3625 pub isValidForData: ::std::option::Option<
3626 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, data: *mut BNBinaryView) -> bool,
3627 >,
3628 pub isDeprecated:
3629 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
3630 pub isForceLoadable:
3631 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
3632 pub getLoadSettingsForData: ::std::option::Option<
3633 unsafe extern "C" fn(
3634 ctxt: *mut ::std::os::raw::c_void,
3635 data: *mut BNBinaryView,
3636 ) -> *mut BNSettings,
3637 >,
3638 pub hasNoInitialContent:
3639 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
3640}
3641#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3642const _: () = {
3643 ["Size of BNCustomBinaryViewType"][::std::mem::size_of::<BNCustomBinaryViewType>() - 64usize];
3644 ["Alignment of BNCustomBinaryViewType"]
3645 [::std::mem::align_of::<BNCustomBinaryViewType>() - 8usize];
3646 ["Offset of field: BNCustomBinaryViewType::context"]
3647 [::std::mem::offset_of!(BNCustomBinaryViewType, context) - 0usize];
3648 ["Offset of field: BNCustomBinaryViewType::create"]
3649 [::std::mem::offset_of!(BNCustomBinaryViewType, create) - 8usize];
3650 ["Offset of field: BNCustomBinaryViewType::parse"]
3651 [::std::mem::offset_of!(BNCustomBinaryViewType, parse) - 16usize];
3652 ["Offset of field: BNCustomBinaryViewType::isValidForData"]
3653 [::std::mem::offset_of!(BNCustomBinaryViewType, isValidForData) - 24usize];
3654 ["Offset of field: BNCustomBinaryViewType::isDeprecated"]
3655 [::std::mem::offset_of!(BNCustomBinaryViewType, isDeprecated) - 32usize];
3656 ["Offset of field: BNCustomBinaryViewType::isForceLoadable"]
3657 [::std::mem::offset_of!(BNCustomBinaryViewType, isForceLoadable) - 40usize];
3658 ["Offset of field: BNCustomBinaryViewType::getLoadSettingsForData"]
3659 [::std::mem::offset_of!(BNCustomBinaryViewType, getLoadSettingsForData) - 48usize];
3660 ["Offset of field: BNCustomBinaryViewType::hasNoInitialContent"]
3661 [::std::mem::offset_of!(BNCustomBinaryViewType, hasNoInitialContent) - 56usize];
3662};
3663impl Default for BNCustomBinaryViewType {
3664 fn default() -> Self {
3665 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3666 unsafe {
3667 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3668 s.assume_init()
3669 }
3670 }
3671}
3672#[repr(C)]
3673#[derive(Debug, Copy, Clone)]
3674pub struct BNTransformParameterInfo {
3675 pub name: *mut ::std::os::raw::c_char,
3676 pub longName: *mut ::std::os::raw::c_char,
3677 #[doc = " Variable length if zero"]
3678 pub fixedLength: usize,
3679}
3680#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3681const _: () = {
3682 ["Size of BNTransformParameterInfo"]
3683 [::std::mem::size_of::<BNTransformParameterInfo>() - 24usize];
3684 ["Alignment of BNTransformParameterInfo"]
3685 [::std::mem::align_of::<BNTransformParameterInfo>() - 8usize];
3686 ["Offset of field: BNTransformParameterInfo::name"]
3687 [::std::mem::offset_of!(BNTransformParameterInfo, name) - 0usize];
3688 ["Offset of field: BNTransformParameterInfo::longName"]
3689 [::std::mem::offset_of!(BNTransformParameterInfo, longName) - 8usize];
3690 ["Offset of field: BNTransformParameterInfo::fixedLength"]
3691 [::std::mem::offset_of!(BNTransformParameterInfo, fixedLength) - 16usize];
3692};
3693impl Default for BNTransformParameterInfo {
3694 fn default() -> Self {
3695 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3696 unsafe {
3697 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3698 s.assume_init()
3699 }
3700 }
3701}
3702#[repr(C)]
3703#[derive(Debug, Copy, Clone)]
3704pub struct BNTransformParameter {
3705 pub name: *const ::std::os::raw::c_char,
3706 pub value: *mut BNDataBuffer,
3707}
3708#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3709const _: () = {
3710 ["Size of BNTransformParameter"][::std::mem::size_of::<BNTransformParameter>() - 16usize];
3711 ["Alignment of BNTransformParameter"][::std::mem::align_of::<BNTransformParameter>() - 8usize];
3712 ["Offset of field: BNTransformParameter::name"]
3713 [::std::mem::offset_of!(BNTransformParameter, name) - 0usize];
3714 ["Offset of field: BNTransformParameter::value"]
3715 [::std::mem::offset_of!(BNTransformParameter, value) - 8usize];
3716};
3717impl Default for BNTransformParameter {
3718 fn default() -> Self {
3719 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3720 unsafe {
3721 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3722 s.assume_init()
3723 }
3724 }
3725}
3726#[repr(C)]
3727#[derive(Debug, Copy, Clone)]
3728pub struct BNCustomTransform {
3729 pub context: *mut ::std::os::raw::c_void,
3730 pub getParameters: ::std::option::Option<
3731 unsafe extern "C" fn(
3732 ctxt: *mut ::std::os::raw::c_void,
3733 count: *mut usize,
3734 ) -> *mut BNTransformParameterInfo,
3735 >,
3736 pub freeParameters: ::std::option::Option<
3737 unsafe extern "C" fn(params: *mut BNTransformParameterInfo, count: usize),
3738 >,
3739 pub decode: ::std::option::Option<
3740 unsafe extern "C" fn(
3741 ctxt: *mut ::std::os::raw::c_void,
3742 input: *mut BNDataBuffer,
3743 output: *mut BNDataBuffer,
3744 params: *mut BNTransformParameter,
3745 paramCount: usize,
3746 ) -> bool,
3747 >,
3748 pub encode: ::std::option::Option<
3749 unsafe extern "C" fn(
3750 ctxt: *mut ::std::os::raw::c_void,
3751 input: *mut BNDataBuffer,
3752 output: *mut BNDataBuffer,
3753 params: *mut BNTransformParameter,
3754 paramCount: usize,
3755 ) -> bool,
3756 >,
3757 pub decodeWithContext: ::std::option::Option<
3758 unsafe extern "C" fn(
3759 ctxt: *mut ::std::os::raw::c_void,
3760 context: *mut BNTransformContext,
3761 params: *mut BNTransformParameter,
3762 paramCount: usize,
3763 ) -> bool,
3764 >,
3765 pub canDecode: ::std::option::Option<
3766 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, input: *mut BNBinaryView) -> bool,
3767 >,
3768}
3769#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3770const _: () = {
3771 ["Size of BNCustomTransform"][::std::mem::size_of::<BNCustomTransform>() - 56usize];
3772 ["Alignment of BNCustomTransform"][::std::mem::align_of::<BNCustomTransform>() - 8usize];
3773 ["Offset of field: BNCustomTransform::context"]
3774 [::std::mem::offset_of!(BNCustomTransform, context) - 0usize];
3775 ["Offset of field: BNCustomTransform::getParameters"]
3776 [::std::mem::offset_of!(BNCustomTransform, getParameters) - 8usize];
3777 ["Offset of field: BNCustomTransform::freeParameters"]
3778 [::std::mem::offset_of!(BNCustomTransform, freeParameters) - 16usize];
3779 ["Offset of field: BNCustomTransform::decode"]
3780 [::std::mem::offset_of!(BNCustomTransform, decode) - 24usize];
3781 ["Offset of field: BNCustomTransform::encode"]
3782 [::std::mem::offset_of!(BNCustomTransform, encode) - 32usize];
3783 ["Offset of field: BNCustomTransform::decodeWithContext"]
3784 [::std::mem::offset_of!(BNCustomTransform, decodeWithContext) - 40usize];
3785 ["Offset of field: BNCustomTransform::canDecode"]
3786 [::std::mem::offset_of!(BNCustomTransform, canDecode) - 48usize];
3787};
3788impl Default for BNCustomTransform {
3789 fn default() -> Self {
3790 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3791 unsafe {
3792 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3793 s.assume_init()
3794 }
3795 }
3796}
3797#[repr(C)]
3798#[derive(Debug, Copy, Clone)]
3799pub struct BNInstructionInfo {
3800 pub length: usize,
3801 pub branchCount: usize,
3802 pub archTransitionByTargetAddr: bool,
3803 pub delaySlots: u8,
3804 pub branchType: [BNBranchType; 3usize],
3805 pub branchTarget: [u64; 3usize],
3806 #[doc = " If null, same architecture as instruction"]
3807 pub branchArch: [*mut BNArchitecture; 3usize],
3808}
3809#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3810const _: () = {
3811 ["Size of BNInstructionInfo"][::std::mem::size_of::<BNInstructionInfo>() - 72usize];
3812 ["Alignment of BNInstructionInfo"][::std::mem::align_of::<BNInstructionInfo>() - 8usize];
3813 ["Offset of field: BNInstructionInfo::length"]
3814 [::std::mem::offset_of!(BNInstructionInfo, length) - 0usize];
3815 ["Offset of field: BNInstructionInfo::branchCount"]
3816 [::std::mem::offset_of!(BNInstructionInfo, branchCount) - 8usize];
3817 ["Offset of field: BNInstructionInfo::archTransitionByTargetAddr"]
3818 [::std::mem::offset_of!(BNInstructionInfo, archTransitionByTargetAddr) - 16usize];
3819 ["Offset of field: BNInstructionInfo::delaySlots"]
3820 [::std::mem::offset_of!(BNInstructionInfo, delaySlots) - 17usize];
3821 ["Offset of field: BNInstructionInfo::branchType"]
3822 [::std::mem::offset_of!(BNInstructionInfo, branchType) - 18usize];
3823 ["Offset of field: BNInstructionInfo::branchTarget"]
3824 [::std::mem::offset_of!(BNInstructionInfo, branchTarget) - 24usize];
3825 ["Offset of field: BNInstructionInfo::branchArch"]
3826 [::std::mem::offset_of!(BNInstructionInfo, branchArch) - 48usize];
3827};
3828impl Default for BNInstructionInfo {
3829 fn default() -> Self {
3830 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3831 unsafe {
3832 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3833 s.assume_init()
3834 }
3835 }
3836}
3837#[repr(u8)]
3838#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3839pub enum BNRelocationType {
3840 ELFGlobalRelocationType = 0,
3841 ELFCopyRelocationType = 1,
3842 ELFJumpSlotRelocationType = 2,
3843 StandardRelocationType = 3,
3844 IgnoredRelocation = 4,
3845 UnhandledRelocation = 5,
3846}
3847#[repr(C)]
3848#[derive(Debug, Copy, Clone)]
3849pub struct BNRelocationInfo {
3850 #[doc = " BinaryNinja Relocation Type"]
3851 pub type_: BNRelocationType,
3852 #[doc = " PC Relative or Absolute (subtract address from relocation)"]
3853 pub pcRelative: bool,
3854 #[doc = " Relative to start of module (Add module base to relocation)"]
3855 pub baseRelative: bool,
3856 #[doc = " Base address for this binary view"]
3857 pub base: u64,
3858 #[doc = " Size of the data to be written"]
3859 pub size: usize,
3860 #[doc = " After addition/subtraction truncate to"]
3861 pub truncateSize: usize,
3862 #[doc = " Base type from relocation entry"]
3863 pub nativeType: u64,
3864 #[doc = " Addend value from relocation entry"]
3865 pub addend: usize,
3866 #[doc = " Addend should be subtracted"]
3867 pub hasSign: bool,
3868 #[doc = " Addend should be read from the BinaryView"]
3869 pub implicitAddend: bool,
3870 #[doc = " Relocation entry points to external symbol"]
3871 pub external: bool,
3872 #[doc = " Index into symbol table"]
3873 pub symbolIndex: usize,
3874 #[doc = " Index into the section table"]
3875 pub sectionIndex: usize,
3876 #[doc = " Absolute address or segment offset"]
3877 pub address: u64,
3878 #[doc = " Target (set automatically)"]
3879 pub target: u64,
3880 #[doc = " This relocation is effecting data not code"]
3881 pub dataRelocation: bool,
3882 pub relocationDataCache: [u8; 8usize],
3883 #[doc = " Link to relocation another related relocation"]
3884 pub prev: *mut BNRelocationInfo,
3885 #[doc = " Link to relocation another related relocation"]
3886 pub next: *mut BNRelocationInfo,
3887}
3888#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3889const _: () = {
3890 ["Size of BNRelocationInfo"][::std::mem::size_of::<BNRelocationInfo>() - 120usize];
3891 ["Alignment of BNRelocationInfo"][::std::mem::align_of::<BNRelocationInfo>() - 8usize];
3892 ["Offset of field: BNRelocationInfo::type_"]
3893 [::std::mem::offset_of!(BNRelocationInfo, type_) - 0usize];
3894 ["Offset of field: BNRelocationInfo::pcRelative"]
3895 [::std::mem::offset_of!(BNRelocationInfo, pcRelative) - 1usize];
3896 ["Offset of field: BNRelocationInfo::baseRelative"]
3897 [::std::mem::offset_of!(BNRelocationInfo, baseRelative) - 2usize];
3898 ["Offset of field: BNRelocationInfo::base"]
3899 [::std::mem::offset_of!(BNRelocationInfo, base) - 8usize];
3900 ["Offset of field: BNRelocationInfo::size"]
3901 [::std::mem::offset_of!(BNRelocationInfo, size) - 16usize];
3902 ["Offset of field: BNRelocationInfo::truncateSize"]
3903 [::std::mem::offset_of!(BNRelocationInfo, truncateSize) - 24usize];
3904 ["Offset of field: BNRelocationInfo::nativeType"]
3905 [::std::mem::offset_of!(BNRelocationInfo, nativeType) - 32usize];
3906 ["Offset of field: BNRelocationInfo::addend"]
3907 [::std::mem::offset_of!(BNRelocationInfo, addend) - 40usize];
3908 ["Offset of field: BNRelocationInfo::hasSign"]
3909 [::std::mem::offset_of!(BNRelocationInfo, hasSign) - 48usize];
3910 ["Offset of field: BNRelocationInfo::implicitAddend"]
3911 [::std::mem::offset_of!(BNRelocationInfo, implicitAddend) - 49usize];
3912 ["Offset of field: BNRelocationInfo::external"]
3913 [::std::mem::offset_of!(BNRelocationInfo, external) - 50usize];
3914 ["Offset of field: BNRelocationInfo::symbolIndex"]
3915 [::std::mem::offset_of!(BNRelocationInfo, symbolIndex) - 56usize];
3916 ["Offset of field: BNRelocationInfo::sectionIndex"]
3917 [::std::mem::offset_of!(BNRelocationInfo, sectionIndex) - 64usize];
3918 ["Offset of field: BNRelocationInfo::address"]
3919 [::std::mem::offset_of!(BNRelocationInfo, address) - 72usize];
3920 ["Offset of field: BNRelocationInfo::target"]
3921 [::std::mem::offset_of!(BNRelocationInfo, target) - 80usize];
3922 ["Offset of field: BNRelocationInfo::dataRelocation"]
3923 [::std::mem::offset_of!(BNRelocationInfo, dataRelocation) - 88usize];
3924 ["Offset of field: BNRelocationInfo::relocationDataCache"]
3925 [::std::mem::offset_of!(BNRelocationInfo, relocationDataCache) - 89usize];
3926 ["Offset of field: BNRelocationInfo::prev"]
3927 [::std::mem::offset_of!(BNRelocationInfo, prev) - 104usize];
3928 ["Offset of field: BNRelocationInfo::next"]
3929 [::std::mem::offset_of!(BNRelocationInfo, next) - 112usize];
3930};
3931impl Default for BNRelocationInfo {
3932 fn default() -> Self {
3933 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3934 unsafe {
3935 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3936 s.assume_init()
3937 }
3938 }
3939}
3940#[repr(C)]
3941#[derive(Debug, Copy, Clone)]
3942pub struct BNInstructionTextToken {
3943 pub type_: BNInstructionTextTokenType,
3944 pub text: *mut ::std::os::raw::c_char,
3945 pub value: u64,
3946 pub width: u64,
3947 pub size: usize,
3948 pub operand: usize,
3949 pub context: BNInstructionTextTokenContext,
3950 pub confidence: u8,
3951 pub address: u64,
3952 pub typeNames: *mut *mut ::std::os::raw::c_char,
3953 pub namesCount: usize,
3954 pub exprIndex: usize,
3955}
3956#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3957const _: () = {
3958 ["Size of BNInstructionTextToken"][::std::mem::size_of::<BNInstructionTextToken>() - 88usize];
3959 ["Alignment of BNInstructionTextToken"]
3960 [::std::mem::align_of::<BNInstructionTextToken>() - 8usize];
3961 ["Offset of field: BNInstructionTextToken::type_"]
3962 [::std::mem::offset_of!(BNInstructionTextToken, type_) - 0usize];
3963 ["Offset of field: BNInstructionTextToken::text"]
3964 [::std::mem::offset_of!(BNInstructionTextToken, text) - 8usize];
3965 ["Offset of field: BNInstructionTextToken::value"]
3966 [::std::mem::offset_of!(BNInstructionTextToken, value) - 16usize];
3967 ["Offset of field: BNInstructionTextToken::width"]
3968 [::std::mem::offset_of!(BNInstructionTextToken, width) - 24usize];
3969 ["Offset of field: BNInstructionTextToken::size"]
3970 [::std::mem::offset_of!(BNInstructionTextToken, size) - 32usize];
3971 ["Offset of field: BNInstructionTextToken::operand"]
3972 [::std::mem::offset_of!(BNInstructionTextToken, operand) - 40usize];
3973 ["Offset of field: BNInstructionTextToken::context"]
3974 [::std::mem::offset_of!(BNInstructionTextToken, context) - 48usize];
3975 ["Offset of field: BNInstructionTextToken::confidence"]
3976 [::std::mem::offset_of!(BNInstructionTextToken, confidence) - 49usize];
3977 ["Offset of field: BNInstructionTextToken::address"]
3978 [::std::mem::offset_of!(BNInstructionTextToken, address) - 56usize];
3979 ["Offset of field: BNInstructionTextToken::typeNames"]
3980 [::std::mem::offset_of!(BNInstructionTextToken, typeNames) - 64usize];
3981 ["Offset of field: BNInstructionTextToken::namesCount"]
3982 [::std::mem::offset_of!(BNInstructionTextToken, namesCount) - 72usize];
3983 ["Offset of field: BNInstructionTextToken::exprIndex"]
3984 [::std::mem::offset_of!(BNInstructionTextToken, exprIndex) - 80usize];
3985};
3986impl Default for BNInstructionTextToken {
3987 fn default() -> Self {
3988 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3989 unsafe {
3990 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3991 s.assume_init()
3992 }
3993 }
3994}
3995#[repr(C)]
3996#[derive(Debug, Copy, Clone)]
3997pub struct BNInstructionTextLine {
3998 pub tokens: *mut BNInstructionTextToken,
3999 pub count: usize,
4000}
4001#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4002const _: () = {
4003 ["Size of BNInstructionTextLine"][::std::mem::size_of::<BNInstructionTextLine>() - 16usize];
4004 ["Alignment of BNInstructionTextLine"]
4005 [::std::mem::align_of::<BNInstructionTextLine>() - 8usize];
4006 ["Offset of field: BNInstructionTextLine::tokens"]
4007 [::std::mem::offset_of!(BNInstructionTextLine, tokens) - 0usize];
4008 ["Offset of field: BNInstructionTextLine::count"]
4009 [::std::mem::offset_of!(BNInstructionTextLine, count) - 8usize];
4010};
4011impl Default for BNInstructionTextLine {
4012 fn default() -> Self {
4013 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4014 unsafe {
4015 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4016 s.assume_init()
4017 }
4018 }
4019}
4020#[repr(u8)]
4021#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
4022pub enum BNTypeDefinitionLineType {
4023 TypedefLineType = 0,
4024 StructDefinitionLineType = 1,
4025 StructFieldLineType = 2,
4026 StructDefinitionEndLineType = 3,
4027 EnumDefinitionLineType = 4,
4028 EnumMemberLineType = 5,
4029 EnumDefinitionEndLineType = 6,
4030 PaddingLineType = 7,
4031 UndefinedXrefLineType = 8,
4032 CollapsedPaddingLineType = 9,
4033 EmptyLineType = 10,
4034}
4035#[repr(C)]
4036#[derive(Debug, Copy, Clone)]
4037pub struct BNTypeDefinitionLine {
4038 pub lineType: BNTypeDefinitionLineType,
4039 pub tokens: *mut BNInstructionTextToken,
4040 pub count: usize,
4041 pub type_: *mut BNType,
4042 pub parentType: *mut BNType,
4043 pub rootType: *mut BNType,
4044 pub rootTypeName: *mut ::std::os::raw::c_char,
4045 pub baseType: *mut BNNamedTypeReference,
4046 pub baseOffset: u64,
4047 pub offset: u64,
4048 pub fieldIndex: usize,
4049}
4050#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4051const _: () = {
4052 ["Size of BNTypeDefinitionLine"][::std::mem::size_of::<BNTypeDefinitionLine>() - 88usize];
4053 ["Alignment of BNTypeDefinitionLine"][::std::mem::align_of::<BNTypeDefinitionLine>() - 8usize];
4054 ["Offset of field: BNTypeDefinitionLine::lineType"]
4055 [::std::mem::offset_of!(BNTypeDefinitionLine, lineType) - 0usize];
4056 ["Offset of field: BNTypeDefinitionLine::tokens"]
4057 [::std::mem::offset_of!(BNTypeDefinitionLine, tokens) - 8usize];
4058 ["Offset of field: BNTypeDefinitionLine::count"]
4059 [::std::mem::offset_of!(BNTypeDefinitionLine, count) - 16usize];
4060 ["Offset of field: BNTypeDefinitionLine::type_"]
4061 [::std::mem::offset_of!(BNTypeDefinitionLine, type_) - 24usize];
4062 ["Offset of field: BNTypeDefinitionLine::parentType"]
4063 [::std::mem::offset_of!(BNTypeDefinitionLine, parentType) - 32usize];
4064 ["Offset of field: BNTypeDefinitionLine::rootType"]
4065 [::std::mem::offset_of!(BNTypeDefinitionLine, rootType) - 40usize];
4066 ["Offset of field: BNTypeDefinitionLine::rootTypeName"]
4067 [::std::mem::offset_of!(BNTypeDefinitionLine, rootTypeName) - 48usize];
4068 ["Offset of field: BNTypeDefinitionLine::baseType"]
4069 [::std::mem::offset_of!(BNTypeDefinitionLine, baseType) - 56usize];
4070 ["Offset of field: BNTypeDefinitionLine::baseOffset"]
4071 [::std::mem::offset_of!(BNTypeDefinitionLine, baseOffset) - 64usize];
4072 ["Offset of field: BNTypeDefinitionLine::offset"]
4073 [::std::mem::offset_of!(BNTypeDefinitionLine, offset) - 72usize];
4074 ["Offset of field: BNTypeDefinitionLine::fieldIndex"]
4075 [::std::mem::offset_of!(BNTypeDefinitionLine, fieldIndex) - 80usize];
4076};
4077impl Default for BNTypeDefinitionLine {
4078 fn default() -> Self {
4079 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4080 unsafe {
4081 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4082 s.assume_init()
4083 }
4084 }
4085}
4086#[repr(C)]
4087#[derive(Debug, Copy, Clone)]
4088pub struct BNFlagConditionForSemanticClass {
4089 pub semanticClass: u32,
4090 pub condition: BNLowLevelILFlagCondition,
4091}
4092#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4093const _: () = {
4094 ["Size of BNFlagConditionForSemanticClass"]
4095 [::std::mem::size_of::<BNFlagConditionForSemanticClass>() - 8usize];
4096 ["Alignment of BNFlagConditionForSemanticClass"]
4097 [::std::mem::align_of::<BNFlagConditionForSemanticClass>() - 4usize];
4098 ["Offset of field: BNFlagConditionForSemanticClass::semanticClass"]
4099 [::std::mem::offset_of!(BNFlagConditionForSemanticClass, semanticClass) - 0usize];
4100 ["Offset of field: BNFlagConditionForSemanticClass::condition"]
4101 [::std::mem::offset_of!(BNFlagConditionForSemanticClass, condition) - 4usize];
4102};
4103impl Default for BNFlagConditionForSemanticClass {
4104 fn default() -> Self {
4105 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4106 unsafe {
4107 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4108 s.assume_init()
4109 }
4110 }
4111}
4112#[repr(C)]
4113#[derive(Debug, Copy, Clone)]
4114pub struct BNNameAndType {
4115 pub name: *mut ::std::os::raw::c_char,
4116 pub type_: *mut BNType,
4117 pub typeConfidence: u8,
4118}
4119#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4120const _: () = {
4121 ["Size of BNNameAndType"][::std::mem::size_of::<BNNameAndType>() - 24usize];
4122 ["Alignment of BNNameAndType"][::std::mem::align_of::<BNNameAndType>() - 8usize];
4123 ["Offset of field: BNNameAndType::name"][::std::mem::offset_of!(BNNameAndType, name) - 0usize];
4124 ["Offset of field: BNNameAndType::type_"]
4125 [::std::mem::offset_of!(BNNameAndType, type_) - 8usize];
4126 ["Offset of field: BNNameAndType::typeConfidence"]
4127 [::std::mem::offset_of!(BNNameAndType, typeConfidence) - 16usize];
4128};
4129impl Default for BNNameAndType {
4130 fn default() -> Self {
4131 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4132 unsafe {
4133 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4134 s.assume_init()
4135 }
4136 }
4137}
4138#[repr(C)]
4139#[derive(Debug, Copy, Clone)]
4140pub struct BNTypeWithConfidence {
4141 pub type_: *mut BNType,
4142 pub confidence: u8,
4143}
4144#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4145const _: () = {
4146 ["Size of BNTypeWithConfidence"][::std::mem::size_of::<BNTypeWithConfidence>() - 16usize];
4147 ["Alignment of BNTypeWithConfidence"][::std::mem::align_of::<BNTypeWithConfidence>() - 8usize];
4148 ["Offset of field: BNTypeWithConfidence::type_"]
4149 [::std::mem::offset_of!(BNTypeWithConfidence, type_) - 0usize];
4150 ["Offset of field: BNTypeWithConfidence::confidence"]
4151 [::std::mem::offset_of!(BNTypeWithConfidence, confidence) - 8usize];
4152};
4153impl Default for BNTypeWithConfidence {
4154 fn default() -> Self {
4155 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4156 unsafe {
4157 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4158 s.assume_init()
4159 }
4160 }
4161}
4162#[repr(u8)]
4163#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
4164pub enum BNFunctionAnalysisSkipOverride {
4165 DefaultFunctionAnalysisSkip = 0,
4166 NeverSkipFunctionAnalysis = 1,
4167 AlwaysSkipFunctionAnalysis = 2,
4168}
4169#[repr(C)]
4170#[derive(Debug, Copy, Clone)]
4171pub struct BNBasicBlockAnalysisContext {
4172 pub function: *mut BNFunction,
4173 #[doc = " IN"]
4174 pub analysisSkipOverride: BNFunctionAnalysisSkipOverride,
4175 pub guidedAnalysisMode: bool,
4176 pub triggerGuidedOnInvalidInstruction: bool,
4177 pub translateTailCalls: bool,
4178 pub disallowBranchToString: bool,
4179 pub maxFunctionSize: u64,
4180 pub indirectBranchesCount: usize,
4181 pub indirectBranches: *mut BNIndirectBranchInfo,
4182 pub indirectNoReturnCallsCount: usize,
4183 pub indirectNoReturnCalls: *mut BNArchitectureAndAddress,
4184 #[doc = " OUT; can be set directly"]
4185 pub maxSizeReached: bool,
4186 #[doc = " IN *and* OUT"]
4187 pub contextualFunctionReturnCount: usize,
4188 pub contextualFunctionReturnLocations: *mut BNArchitectureAndAddress,
4189 pub contextualFunctionReturnValues: *mut bool,
4190 #[doc = " OUT"]
4191 pub directRefCount: usize,
4192 pub directRefSources: *mut BNArchitectureAndAddress,
4193 pub directRefTargets: *mut u64,
4194 pub directNoReturnCallsCount: usize,
4195 pub directNoReturnCalls: *mut BNArchitectureAndAddress,
4196 pub haltedDisassemblyAddressesCount: usize,
4197 pub haltedDisassemblyAddresses: *mut BNArchitectureAndAddress,
4198 pub inlinedUnresolvedIndirectBranchCount: usize,
4199 pub inlinedUnresolvedIndirectBranches: *mut BNArchitectureAndAddress,
4200 pub functionArchContext: *mut ::std::os::raw::c_void,
4201}
4202#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4203const _: () = {
4204 ["Size of BNBasicBlockAnalysisContext"]
4205 [::std::mem::size_of::<BNBasicBlockAnalysisContext>() - 168usize];
4206 ["Alignment of BNBasicBlockAnalysisContext"]
4207 [::std::mem::align_of::<BNBasicBlockAnalysisContext>() - 8usize];
4208 ["Offset of field: BNBasicBlockAnalysisContext::function"]
4209 [::std::mem::offset_of!(BNBasicBlockAnalysisContext, function) - 0usize];
4210 ["Offset of field: BNBasicBlockAnalysisContext::analysisSkipOverride"]
4211 [::std::mem::offset_of!(BNBasicBlockAnalysisContext, analysisSkipOverride) - 8usize];
4212 ["Offset of field: BNBasicBlockAnalysisContext::guidedAnalysisMode"]
4213 [::std::mem::offset_of!(BNBasicBlockAnalysisContext, guidedAnalysisMode) - 9usize];
4214 ["Offset of field: BNBasicBlockAnalysisContext::triggerGuidedOnInvalidInstruction"][::std::mem::offset_of!(
4215 BNBasicBlockAnalysisContext,
4216 triggerGuidedOnInvalidInstruction
4217 )
4218 - 10usize];
4219 ["Offset of field: BNBasicBlockAnalysisContext::translateTailCalls"]
4220 [::std::mem::offset_of!(BNBasicBlockAnalysisContext, translateTailCalls) - 11usize];
4221 ["Offset of field: BNBasicBlockAnalysisContext::disallowBranchToString"]
4222 [::std::mem::offset_of!(BNBasicBlockAnalysisContext, disallowBranchToString) - 12usize];
4223 ["Offset of field: BNBasicBlockAnalysisContext::maxFunctionSize"]
4224 [::std::mem::offset_of!(BNBasicBlockAnalysisContext, maxFunctionSize) - 16usize];
4225 ["Offset of field: BNBasicBlockAnalysisContext::indirectBranchesCount"]
4226 [::std::mem::offset_of!(BNBasicBlockAnalysisContext, indirectBranchesCount) - 24usize];
4227 ["Offset of field: BNBasicBlockAnalysisContext::indirectBranches"]
4228 [::std::mem::offset_of!(BNBasicBlockAnalysisContext, indirectBranches) - 32usize];
4229 ["Offset of field: BNBasicBlockAnalysisContext::indirectNoReturnCallsCount"]
4230 [::std::mem::offset_of!(BNBasicBlockAnalysisContext, indirectNoReturnCallsCount) - 40usize];
4231 ["Offset of field: BNBasicBlockAnalysisContext::indirectNoReturnCalls"]
4232 [::std::mem::offset_of!(BNBasicBlockAnalysisContext, indirectNoReturnCalls) - 48usize];
4233 ["Offset of field: BNBasicBlockAnalysisContext::maxSizeReached"]
4234 [::std::mem::offset_of!(BNBasicBlockAnalysisContext, maxSizeReached) - 56usize];
4235 ["Offset of field: BNBasicBlockAnalysisContext::contextualFunctionReturnCount"][::std::mem::offset_of!(
4236 BNBasicBlockAnalysisContext,
4237 contextualFunctionReturnCount
4238 ) - 64usize];
4239 ["Offset of field: BNBasicBlockAnalysisContext::contextualFunctionReturnLocations"][::std::mem::offset_of!(
4240 BNBasicBlockAnalysisContext,
4241 contextualFunctionReturnLocations
4242 )
4243 - 72usize];
4244 ["Offset of field: BNBasicBlockAnalysisContext::contextualFunctionReturnValues"][::std::mem::offset_of!(
4245 BNBasicBlockAnalysisContext,
4246 contextualFunctionReturnValues
4247 ) - 80usize];
4248 ["Offset of field: BNBasicBlockAnalysisContext::directRefCount"]
4249 [::std::mem::offset_of!(BNBasicBlockAnalysisContext, directRefCount) - 88usize];
4250 ["Offset of field: BNBasicBlockAnalysisContext::directRefSources"]
4251 [::std::mem::offset_of!(BNBasicBlockAnalysisContext, directRefSources) - 96usize];
4252 ["Offset of field: BNBasicBlockAnalysisContext::directRefTargets"]
4253 [::std::mem::offset_of!(BNBasicBlockAnalysisContext, directRefTargets) - 104usize];
4254 ["Offset of field: BNBasicBlockAnalysisContext::directNoReturnCallsCount"]
4255 [::std::mem::offset_of!(BNBasicBlockAnalysisContext, directNoReturnCallsCount) - 112usize];
4256 ["Offset of field: BNBasicBlockAnalysisContext::directNoReturnCalls"]
4257 [::std::mem::offset_of!(BNBasicBlockAnalysisContext, directNoReturnCalls) - 120usize];
4258 ["Offset of field: BNBasicBlockAnalysisContext::haltedDisassemblyAddressesCount"][::std::mem::offset_of!(
4259 BNBasicBlockAnalysisContext,
4260 haltedDisassemblyAddressesCount
4261 ) - 128usize];
4262 ["Offset of field: BNBasicBlockAnalysisContext::haltedDisassemblyAddresses"][::std::mem::offset_of!(
4263 BNBasicBlockAnalysisContext,
4264 haltedDisassemblyAddresses
4265 ) - 136usize];
4266 ["Offset of field: BNBasicBlockAnalysisContext::inlinedUnresolvedIndirectBranchCount"][::std::mem::offset_of!(
4267 BNBasicBlockAnalysisContext,
4268 inlinedUnresolvedIndirectBranchCount
4269 )
4270 - 144usize];
4271 ["Offset of field: BNBasicBlockAnalysisContext::inlinedUnresolvedIndirectBranches"][::std::mem::offset_of!(
4272 BNBasicBlockAnalysisContext,
4273 inlinedUnresolvedIndirectBranches
4274 )
4275 - 152usize];
4276 ["Offset of field: BNBasicBlockAnalysisContext::functionArchContext"]
4277 [::std::mem::offset_of!(BNBasicBlockAnalysisContext, functionArchContext) - 160usize];
4278};
4279impl Default for BNBasicBlockAnalysisContext {
4280 fn default() -> Self {
4281 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4282 unsafe {
4283 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4284 s.assume_init()
4285 }
4286 }
4287}
4288#[repr(C)]
4289#[derive(Debug, Copy, Clone)]
4290pub struct BNFunctionLifterContext {
4291 #[doc = " IN"]
4292 pub platform: *mut BNPlatform,
4293 pub logger: *mut BNLogger,
4294 pub basicBlockCount: usize,
4295 pub basicBlocks: *mut *mut BNBasicBlock,
4296 pub inlinedRemappingEntryCount: usize,
4297 pub inlinedRemappingKeys: *mut BNArchitectureAndAddress,
4298 pub inlinedRemappingValues: *mut BNArchitectureAndAddress,
4299 pub indirectBranchesCount: usize,
4300 pub indirectBranches: *mut BNIndirectBranchInfo,
4301 pub noReturnCallsCount: usize,
4302 pub noReturnCalls: *mut BNArchitectureAndAddress,
4303 pub contextualFunctionReturnCount: usize,
4304 pub contextualFunctionReturnLocations: *mut BNArchitectureAndAddress,
4305 pub contextualFunctionReturnValues: *mut bool,
4306 pub inlinedCallsCount: usize,
4307 pub inlinedCalls: *mut u64,
4308 pub functionArchContext: *mut ::std::os::raw::c_void,
4309 #[doc = " OUT"]
4310 pub containsInlinedFunctions: *mut bool,
4311}
4312#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4313const _: () = {
4314 ["Size of BNFunctionLifterContext"]
4315 [::std::mem::size_of::<BNFunctionLifterContext>() - 144usize];
4316 ["Alignment of BNFunctionLifterContext"]
4317 [::std::mem::align_of::<BNFunctionLifterContext>() - 8usize];
4318 ["Offset of field: BNFunctionLifterContext::platform"]
4319 [::std::mem::offset_of!(BNFunctionLifterContext, platform) - 0usize];
4320 ["Offset of field: BNFunctionLifterContext::logger"]
4321 [::std::mem::offset_of!(BNFunctionLifterContext, logger) - 8usize];
4322 ["Offset of field: BNFunctionLifterContext::basicBlockCount"]
4323 [::std::mem::offset_of!(BNFunctionLifterContext, basicBlockCount) - 16usize];
4324 ["Offset of field: BNFunctionLifterContext::basicBlocks"]
4325 [::std::mem::offset_of!(BNFunctionLifterContext, basicBlocks) - 24usize];
4326 ["Offset of field: BNFunctionLifterContext::inlinedRemappingEntryCount"]
4327 [::std::mem::offset_of!(BNFunctionLifterContext, inlinedRemappingEntryCount) - 32usize];
4328 ["Offset of field: BNFunctionLifterContext::inlinedRemappingKeys"]
4329 [::std::mem::offset_of!(BNFunctionLifterContext, inlinedRemappingKeys) - 40usize];
4330 ["Offset of field: BNFunctionLifterContext::inlinedRemappingValues"]
4331 [::std::mem::offset_of!(BNFunctionLifterContext, inlinedRemappingValues) - 48usize];
4332 ["Offset of field: BNFunctionLifterContext::indirectBranchesCount"]
4333 [::std::mem::offset_of!(BNFunctionLifterContext, indirectBranchesCount) - 56usize];
4334 ["Offset of field: BNFunctionLifterContext::indirectBranches"]
4335 [::std::mem::offset_of!(BNFunctionLifterContext, indirectBranches) - 64usize];
4336 ["Offset of field: BNFunctionLifterContext::noReturnCallsCount"]
4337 [::std::mem::offset_of!(BNFunctionLifterContext, noReturnCallsCount) - 72usize];
4338 ["Offset of field: BNFunctionLifterContext::noReturnCalls"]
4339 [::std::mem::offset_of!(BNFunctionLifterContext, noReturnCalls) - 80usize];
4340 ["Offset of field: BNFunctionLifterContext::contextualFunctionReturnCount"]
4341 [::std::mem::offset_of!(BNFunctionLifterContext, contextualFunctionReturnCount) - 88usize];
4342 ["Offset of field: BNFunctionLifterContext::contextualFunctionReturnLocations"][::std::mem::offset_of!(
4343 BNFunctionLifterContext,
4344 contextualFunctionReturnLocations
4345 ) - 96usize];
4346 ["Offset of field: BNFunctionLifterContext::contextualFunctionReturnValues"][::std::mem::offset_of!(
4347 BNFunctionLifterContext,
4348 contextualFunctionReturnValues
4349 ) - 104usize];
4350 ["Offset of field: BNFunctionLifterContext::inlinedCallsCount"]
4351 [::std::mem::offset_of!(BNFunctionLifterContext, inlinedCallsCount) - 112usize];
4352 ["Offset of field: BNFunctionLifterContext::inlinedCalls"]
4353 [::std::mem::offset_of!(BNFunctionLifterContext, inlinedCalls) - 120usize];
4354 ["Offset of field: BNFunctionLifterContext::functionArchContext"]
4355 [::std::mem::offset_of!(BNFunctionLifterContext, functionArchContext) - 128usize];
4356 ["Offset of field: BNFunctionLifterContext::containsInlinedFunctions"]
4357 [::std::mem::offset_of!(BNFunctionLifterContext, containsInlinedFunctions) - 136usize];
4358};
4359impl Default for BNFunctionLifterContext {
4360 fn default() -> Self {
4361 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4362 unsafe {
4363 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4364 s.assume_init()
4365 }
4366 }
4367}
4368#[repr(C)]
4369#[derive(Debug, Copy, Clone)]
4370pub struct BNCustomArchitecture {
4371 pub context: *mut ::std::os::raw::c_void,
4372 pub init: ::std::option::Option<
4373 unsafe extern "C" fn(context: *mut ::std::os::raw::c_void, obj: *mut BNArchitecture),
4374 >,
4375 pub getEndianness: ::std::option::Option<
4376 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> BNEndianness,
4377 >,
4378 pub getAddressSize:
4379 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> usize>,
4380 pub getDefaultIntegerSize:
4381 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> usize>,
4382 pub getInstructionAlignment:
4383 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> usize>,
4384 pub getMaxInstructionLength:
4385 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> usize>,
4386 pub getOpcodeDisplayLength:
4387 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> usize>,
4388 pub getAssociatedArchitectureByAddress: ::std::option::Option<
4389 unsafe extern "C" fn(
4390 ctxt: *mut ::std::os::raw::c_void,
4391 addr: *mut u64,
4392 ) -> *mut BNArchitecture,
4393 >,
4394 pub getInstructionInfo: ::std::option::Option<
4395 unsafe extern "C" fn(
4396 ctxt: *mut ::std::os::raw::c_void,
4397 data: *const u8,
4398 addr: u64,
4399 maxLen: usize,
4400 result: *mut BNInstructionInfo,
4401 ) -> bool,
4402 >,
4403 pub getInstructionText: ::std::option::Option<
4404 unsafe extern "C" fn(
4405 ctxt: *mut ::std::os::raw::c_void,
4406 data: *const u8,
4407 addr: u64,
4408 len: *mut usize,
4409 result: *mut *mut BNInstructionTextToken,
4410 count: *mut usize,
4411 ) -> bool,
4412 >,
4413 pub getInstructionTextWithContext: ::std::option::Option<
4414 unsafe extern "C" fn(
4415 ctxt: *mut ::std::os::raw::c_void,
4416 data: *const u8,
4417 addr: u64,
4418 len: *mut usize,
4419 context: *mut ::std::os::raw::c_void,
4420 result: *mut *mut BNInstructionTextToken,
4421 count: *mut usize,
4422 ) -> bool,
4423 >,
4424 pub freeInstructionText: ::std::option::Option<
4425 unsafe extern "C" fn(tokens: *mut BNInstructionTextToken, count: usize),
4426 >,
4427 pub getInstructionLowLevelIL: ::std::option::Option<
4428 unsafe extern "C" fn(
4429 ctxt: *mut ::std::os::raw::c_void,
4430 data: *const u8,
4431 addr: u64,
4432 len: *mut usize,
4433 il: *mut BNLowLevelILFunction,
4434 ) -> bool,
4435 >,
4436 pub analyzeBasicBlocks: ::std::option::Option<
4437 unsafe extern "C" fn(
4438 ctxt: *mut ::std::os::raw::c_void,
4439 function: *mut BNFunction,
4440 context: *mut BNBasicBlockAnalysisContext,
4441 ),
4442 >,
4443 pub liftFunction: ::std::option::Option<
4444 unsafe extern "C" fn(
4445 ctext: *mut ::std::os::raw::c_void,
4446 function: *mut BNLowLevelILFunction,
4447 context: *mut BNFunctionLifterContext,
4448 ) -> bool,
4449 >,
4450 pub freeFunctionArchContext: ::std::option::Option<
4451 unsafe extern "C" fn(
4452 ctxt: *mut ::std::os::raw::c_void,
4453 context: *mut ::std::os::raw::c_void,
4454 ),
4455 >,
4456 pub getRegisterName: ::std::option::Option<
4457 unsafe extern "C" fn(
4458 ctxt: *mut ::std::os::raw::c_void,
4459 reg: u32,
4460 ) -> *mut ::std::os::raw::c_char,
4461 >,
4462 pub getFlagName: ::std::option::Option<
4463 unsafe extern "C" fn(
4464 ctxt: *mut ::std::os::raw::c_void,
4465 flag: u32,
4466 ) -> *mut ::std::os::raw::c_char,
4467 >,
4468 pub getFlagWriteTypeName: ::std::option::Option<
4469 unsafe extern "C" fn(
4470 ctxt: *mut ::std::os::raw::c_void,
4471 flags: u32,
4472 ) -> *mut ::std::os::raw::c_char,
4473 >,
4474 pub getSemanticFlagClassName: ::std::option::Option<
4475 unsafe extern "C" fn(
4476 ctxt: *mut ::std::os::raw::c_void,
4477 semClass: u32,
4478 ) -> *mut ::std::os::raw::c_char,
4479 >,
4480 pub getSemanticFlagGroupName: ::std::option::Option<
4481 unsafe extern "C" fn(
4482 ctxt: *mut ::std::os::raw::c_void,
4483 semGroup: u32,
4484 ) -> *mut ::std::os::raw::c_char,
4485 >,
4486 pub getFullWidthRegisters: ::std::option::Option<
4487 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
4488 >,
4489 pub getAllRegisters: ::std::option::Option<
4490 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
4491 >,
4492 pub getAllFlags: ::std::option::Option<
4493 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
4494 >,
4495 pub getAllFlagWriteTypes: ::std::option::Option<
4496 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
4497 >,
4498 pub getAllSemanticFlagClasses: ::std::option::Option<
4499 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
4500 >,
4501 pub getAllSemanticFlagGroups: ::std::option::Option<
4502 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
4503 >,
4504 pub getFlagRole: ::std::option::Option<
4505 unsafe extern "C" fn(
4506 ctxt: *mut ::std::os::raw::c_void,
4507 flag: u32,
4508 semClass: u32,
4509 ) -> BNFlagRole,
4510 >,
4511 pub getFlagsRequiredForFlagCondition: ::std::option::Option<
4512 unsafe extern "C" fn(
4513 ctxt: *mut ::std::os::raw::c_void,
4514 cond: BNLowLevelILFlagCondition,
4515 semClass: u32,
4516 count: *mut usize,
4517 ) -> *mut u32,
4518 >,
4519 pub getFlagsRequiredForSemanticFlagGroup: ::std::option::Option<
4520 unsafe extern "C" fn(
4521 ctxt: *mut ::std::os::raw::c_void,
4522 semGroup: u32,
4523 count: *mut usize,
4524 ) -> *mut u32,
4525 >,
4526 pub getFlagConditionsForSemanticFlagGroup: ::std::option::Option<
4527 unsafe extern "C" fn(
4528 ctxt: *mut ::std::os::raw::c_void,
4529 semGroup: u32,
4530 count: *mut usize,
4531 ) -> *mut BNFlagConditionForSemanticClass,
4532 >,
4533 pub freeFlagConditionsForSemanticFlagGroup: ::std::option::Option<
4534 unsafe extern "C" fn(
4535 ctxt: *mut ::std::os::raw::c_void,
4536 conditions: *mut BNFlagConditionForSemanticClass,
4537 count: usize,
4538 ),
4539 >,
4540 pub getFlagsWrittenByFlagWriteType: ::std::option::Option<
4541 unsafe extern "C" fn(
4542 ctxt: *mut ::std::os::raw::c_void,
4543 writeType: u32,
4544 count: *mut usize,
4545 ) -> *mut u32,
4546 >,
4547 pub getSemanticClassForFlagWriteType: ::std::option::Option<
4548 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, writeType: u32) -> u32,
4549 >,
4550 pub getFlagWriteLowLevelIL: ::std::option::Option<
4551 unsafe extern "C" fn(
4552 ctxt: *mut ::std::os::raw::c_void,
4553 op: BNLowLevelILOperation,
4554 size: usize,
4555 flagWriteType: u32,
4556 flag: u32,
4557 operands: *mut BNRegisterOrConstant,
4558 operandCount: usize,
4559 il: *mut BNLowLevelILFunction,
4560 ) -> usize,
4561 >,
4562 pub getFlagConditionLowLevelIL: ::std::option::Option<
4563 unsafe extern "C" fn(
4564 ctxt: *mut ::std::os::raw::c_void,
4565 cond: BNLowLevelILFlagCondition,
4566 semClass: u32,
4567 il: *mut BNLowLevelILFunction,
4568 ) -> usize,
4569 >,
4570 pub getSemanticFlagGroupLowLevelIL: ::std::option::Option<
4571 unsafe extern "C" fn(
4572 ctxt: *mut ::std::os::raw::c_void,
4573 semGroup: u32,
4574 il: *mut BNLowLevelILFunction,
4575 ) -> usize,
4576 >,
4577 pub freeRegisterList: ::std::option::Option<
4578 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, regs: *mut u32, count: usize),
4579 >,
4580 pub getRegisterInfo: ::std::option::Option<
4581 unsafe extern "C" fn(
4582 ctxt: *mut ::std::os::raw::c_void,
4583 reg: u32,
4584 result: *mut BNRegisterInfo,
4585 ),
4586 >,
4587 pub getStackPointerRegister:
4588 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> u32>,
4589 pub getLinkRegister:
4590 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> u32>,
4591 pub getGlobalRegisters: ::std::option::Option<
4592 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
4593 >,
4594 pub getSystemRegisters: ::std::option::Option<
4595 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
4596 >,
4597 pub getRegisterStackName: ::std::option::Option<
4598 unsafe extern "C" fn(
4599 ctxt: *mut ::std::os::raw::c_void,
4600 regStack: u32,
4601 ) -> *mut ::std::os::raw::c_char,
4602 >,
4603 pub getAllRegisterStacks: ::std::option::Option<
4604 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
4605 >,
4606 pub getRegisterStackInfo: ::std::option::Option<
4607 unsafe extern "C" fn(
4608 ctxt: *mut ::std::os::raw::c_void,
4609 regStack: u32,
4610 result: *mut BNRegisterStackInfo,
4611 ),
4612 >,
4613 pub getIntrinsicClass: ::std::option::Option<
4614 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, intrinsic: u32) -> BNIntrinsicClass,
4615 >,
4616 pub getIntrinsicName: ::std::option::Option<
4617 unsafe extern "C" fn(
4618 ctxt: *mut ::std::os::raw::c_void,
4619 intrinsic: u32,
4620 ) -> *mut ::std::os::raw::c_char,
4621 >,
4622 pub getAllIntrinsics: ::std::option::Option<
4623 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
4624 >,
4625 pub getIntrinsicInputs: ::std::option::Option<
4626 unsafe extern "C" fn(
4627 ctxt: *mut ::std::os::raw::c_void,
4628 intrinsic: u32,
4629 count: *mut usize,
4630 ) -> *mut BNNameAndType,
4631 >,
4632 pub freeNameAndTypeList: ::std::option::Option<
4633 unsafe extern "C" fn(
4634 ctxt: *mut ::std::os::raw::c_void,
4635 nt: *mut BNNameAndType,
4636 count: usize,
4637 ),
4638 >,
4639 pub getIntrinsicOutputs: ::std::option::Option<
4640 unsafe extern "C" fn(
4641 ctxt: *mut ::std::os::raw::c_void,
4642 intrinsic: u32,
4643 count: *mut usize,
4644 ) -> *mut BNTypeWithConfidence,
4645 >,
4646 pub freeTypeList: ::std::option::Option<
4647 unsafe extern "C" fn(
4648 ctxt: *mut ::std::os::raw::c_void,
4649 types: *mut BNTypeWithConfidence,
4650 count: usize,
4651 ),
4652 >,
4653 pub canAssemble:
4654 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
4655 pub assemble: ::std::option::Option<
4656 unsafe extern "C" fn(
4657 ctxt: *mut ::std::os::raw::c_void,
4658 code: *const ::std::os::raw::c_char,
4659 addr: u64,
4660 result: *mut BNDataBuffer,
4661 errors: *mut *mut ::std::os::raw::c_char,
4662 ) -> bool,
4663 >,
4664 pub isNeverBranchPatchAvailable: ::std::option::Option<
4665 unsafe extern "C" fn(
4666 ctxt: *mut ::std::os::raw::c_void,
4667 data: *const u8,
4668 addr: u64,
4669 len: usize,
4670 ) -> bool,
4671 >,
4672 pub isAlwaysBranchPatchAvailable: ::std::option::Option<
4673 unsafe extern "C" fn(
4674 ctxt: *mut ::std::os::raw::c_void,
4675 data: *const u8,
4676 addr: u64,
4677 len: usize,
4678 ) -> bool,
4679 >,
4680 pub isInvertBranchPatchAvailable: ::std::option::Option<
4681 unsafe extern "C" fn(
4682 ctxt: *mut ::std::os::raw::c_void,
4683 data: *const u8,
4684 addr: u64,
4685 len: usize,
4686 ) -> bool,
4687 >,
4688 pub isSkipAndReturnZeroPatchAvailable: ::std::option::Option<
4689 unsafe extern "C" fn(
4690 ctxt: *mut ::std::os::raw::c_void,
4691 data: *const u8,
4692 addr: u64,
4693 len: usize,
4694 ) -> bool,
4695 >,
4696 pub isSkipAndReturnValuePatchAvailable: ::std::option::Option<
4697 unsafe extern "C" fn(
4698 ctxt: *mut ::std::os::raw::c_void,
4699 data: *const u8,
4700 addr: u64,
4701 len: usize,
4702 ) -> bool,
4703 >,
4704 pub convertToNop: ::std::option::Option<
4705 unsafe extern "C" fn(
4706 ctxt: *mut ::std::os::raw::c_void,
4707 data: *mut u8,
4708 addr: u64,
4709 len: usize,
4710 ) -> bool,
4711 >,
4712 pub alwaysBranch: ::std::option::Option<
4713 unsafe extern "C" fn(
4714 ctxt: *mut ::std::os::raw::c_void,
4715 data: *mut u8,
4716 addr: u64,
4717 len: usize,
4718 ) -> bool,
4719 >,
4720 pub invertBranch: ::std::option::Option<
4721 unsafe extern "C" fn(
4722 ctxt: *mut ::std::os::raw::c_void,
4723 data: *mut u8,
4724 addr: u64,
4725 len: usize,
4726 ) -> bool,
4727 >,
4728 pub skipAndReturnValue: ::std::option::Option<
4729 unsafe extern "C" fn(
4730 ctxt: *mut ::std::os::raw::c_void,
4731 data: *mut u8,
4732 addr: u64,
4733 len: usize,
4734 value: u64,
4735 ) -> bool,
4736 >,
4737}
4738#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4739const _: () = {
4740 ["Size of BNCustomArchitecture"][::std::mem::size_of::<BNCustomArchitecture>() - 520usize];
4741 ["Alignment of BNCustomArchitecture"][::std::mem::align_of::<BNCustomArchitecture>() - 8usize];
4742 ["Offset of field: BNCustomArchitecture::context"]
4743 [::std::mem::offset_of!(BNCustomArchitecture, context) - 0usize];
4744 ["Offset of field: BNCustomArchitecture::init"]
4745 [::std::mem::offset_of!(BNCustomArchitecture, init) - 8usize];
4746 ["Offset of field: BNCustomArchitecture::getEndianness"]
4747 [::std::mem::offset_of!(BNCustomArchitecture, getEndianness) - 16usize];
4748 ["Offset of field: BNCustomArchitecture::getAddressSize"]
4749 [::std::mem::offset_of!(BNCustomArchitecture, getAddressSize) - 24usize];
4750 ["Offset of field: BNCustomArchitecture::getDefaultIntegerSize"]
4751 [::std::mem::offset_of!(BNCustomArchitecture, getDefaultIntegerSize) - 32usize];
4752 ["Offset of field: BNCustomArchitecture::getInstructionAlignment"]
4753 [::std::mem::offset_of!(BNCustomArchitecture, getInstructionAlignment) - 40usize];
4754 ["Offset of field: BNCustomArchitecture::getMaxInstructionLength"]
4755 [::std::mem::offset_of!(BNCustomArchitecture, getMaxInstructionLength) - 48usize];
4756 ["Offset of field: BNCustomArchitecture::getOpcodeDisplayLength"]
4757 [::std::mem::offset_of!(BNCustomArchitecture, getOpcodeDisplayLength) - 56usize];
4758 ["Offset of field: BNCustomArchitecture::getAssociatedArchitectureByAddress"][::std::mem::offset_of!(
4759 BNCustomArchitecture,
4760 getAssociatedArchitectureByAddress
4761 ) - 64usize];
4762 ["Offset of field: BNCustomArchitecture::getInstructionInfo"]
4763 [::std::mem::offset_of!(BNCustomArchitecture, getInstructionInfo) - 72usize];
4764 ["Offset of field: BNCustomArchitecture::getInstructionText"]
4765 [::std::mem::offset_of!(BNCustomArchitecture, getInstructionText) - 80usize];
4766 ["Offset of field: BNCustomArchitecture::getInstructionTextWithContext"]
4767 [::std::mem::offset_of!(BNCustomArchitecture, getInstructionTextWithContext) - 88usize];
4768 ["Offset of field: BNCustomArchitecture::freeInstructionText"]
4769 [::std::mem::offset_of!(BNCustomArchitecture, freeInstructionText) - 96usize];
4770 ["Offset of field: BNCustomArchitecture::getInstructionLowLevelIL"]
4771 [::std::mem::offset_of!(BNCustomArchitecture, getInstructionLowLevelIL) - 104usize];
4772 ["Offset of field: BNCustomArchitecture::analyzeBasicBlocks"]
4773 [::std::mem::offset_of!(BNCustomArchitecture, analyzeBasicBlocks) - 112usize];
4774 ["Offset of field: BNCustomArchitecture::liftFunction"]
4775 [::std::mem::offset_of!(BNCustomArchitecture, liftFunction) - 120usize];
4776 ["Offset of field: BNCustomArchitecture::freeFunctionArchContext"]
4777 [::std::mem::offset_of!(BNCustomArchitecture, freeFunctionArchContext) - 128usize];
4778 ["Offset of field: BNCustomArchitecture::getRegisterName"]
4779 [::std::mem::offset_of!(BNCustomArchitecture, getRegisterName) - 136usize];
4780 ["Offset of field: BNCustomArchitecture::getFlagName"]
4781 [::std::mem::offset_of!(BNCustomArchitecture, getFlagName) - 144usize];
4782 ["Offset of field: BNCustomArchitecture::getFlagWriteTypeName"]
4783 [::std::mem::offset_of!(BNCustomArchitecture, getFlagWriteTypeName) - 152usize];
4784 ["Offset of field: BNCustomArchitecture::getSemanticFlagClassName"]
4785 [::std::mem::offset_of!(BNCustomArchitecture, getSemanticFlagClassName) - 160usize];
4786 ["Offset of field: BNCustomArchitecture::getSemanticFlagGroupName"]
4787 [::std::mem::offset_of!(BNCustomArchitecture, getSemanticFlagGroupName) - 168usize];
4788 ["Offset of field: BNCustomArchitecture::getFullWidthRegisters"]
4789 [::std::mem::offset_of!(BNCustomArchitecture, getFullWidthRegisters) - 176usize];
4790 ["Offset of field: BNCustomArchitecture::getAllRegisters"]
4791 [::std::mem::offset_of!(BNCustomArchitecture, getAllRegisters) - 184usize];
4792 ["Offset of field: BNCustomArchitecture::getAllFlags"]
4793 [::std::mem::offset_of!(BNCustomArchitecture, getAllFlags) - 192usize];
4794 ["Offset of field: BNCustomArchitecture::getAllFlagWriteTypes"]
4795 [::std::mem::offset_of!(BNCustomArchitecture, getAllFlagWriteTypes) - 200usize];
4796 ["Offset of field: BNCustomArchitecture::getAllSemanticFlagClasses"]
4797 [::std::mem::offset_of!(BNCustomArchitecture, getAllSemanticFlagClasses) - 208usize];
4798 ["Offset of field: BNCustomArchitecture::getAllSemanticFlagGroups"]
4799 [::std::mem::offset_of!(BNCustomArchitecture, getAllSemanticFlagGroups) - 216usize];
4800 ["Offset of field: BNCustomArchitecture::getFlagRole"]
4801 [::std::mem::offset_of!(BNCustomArchitecture, getFlagRole) - 224usize];
4802 ["Offset of field: BNCustomArchitecture::getFlagsRequiredForFlagCondition"]
4803 [::std::mem::offset_of!(BNCustomArchitecture, getFlagsRequiredForFlagCondition) - 232usize];
4804 ["Offset of field: BNCustomArchitecture::getFlagsRequiredForSemanticFlagGroup"][::std::mem::offset_of!(
4805 BNCustomArchitecture,
4806 getFlagsRequiredForSemanticFlagGroup
4807 ) - 240usize];
4808 ["Offset of field: BNCustomArchitecture::getFlagConditionsForSemanticFlagGroup"][::std::mem::offset_of!(
4809 BNCustomArchitecture,
4810 getFlagConditionsForSemanticFlagGroup
4811 ) - 248usize];
4812 ["Offset of field: BNCustomArchitecture::freeFlagConditionsForSemanticFlagGroup"][::std::mem::offset_of!(
4813 BNCustomArchitecture,
4814 freeFlagConditionsForSemanticFlagGroup
4815 ) - 256usize];
4816 ["Offset of field: BNCustomArchitecture::getFlagsWrittenByFlagWriteType"]
4817 [::std::mem::offset_of!(BNCustomArchitecture, getFlagsWrittenByFlagWriteType) - 264usize];
4818 ["Offset of field: BNCustomArchitecture::getSemanticClassForFlagWriteType"]
4819 [::std::mem::offset_of!(BNCustomArchitecture, getSemanticClassForFlagWriteType) - 272usize];
4820 ["Offset of field: BNCustomArchitecture::getFlagWriteLowLevelIL"]
4821 [::std::mem::offset_of!(BNCustomArchitecture, getFlagWriteLowLevelIL) - 280usize];
4822 ["Offset of field: BNCustomArchitecture::getFlagConditionLowLevelIL"]
4823 [::std::mem::offset_of!(BNCustomArchitecture, getFlagConditionLowLevelIL) - 288usize];
4824 ["Offset of field: BNCustomArchitecture::getSemanticFlagGroupLowLevelIL"]
4825 [::std::mem::offset_of!(BNCustomArchitecture, getSemanticFlagGroupLowLevelIL) - 296usize];
4826 ["Offset of field: BNCustomArchitecture::freeRegisterList"]
4827 [::std::mem::offset_of!(BNCustomArchitecture, freeRegisterList) - 304usize];
4828 ["Offset of field: BNCustomArchitecture::getRegisterInfo"]
4829 [::std::mem::offset_of!(BNCustomArchitecture, getRegisterInfo) - 312usize];
4830 ["Offset of field: BNCustomArchitecture::getStackPointerRegister"]
4831 [::std::mem::offset_of!(BNCustomArchitecture, getStackPointerRegister) - 320usize];
4832 ["Offset of field: BNCustomArchitecture::getLinkRegister"]
4833 [::std::mem::offset_of!(BNCustomArchitecture, getLinkRegister) - 328usize];
4834 ["Offset of field: BNCustomArchitecture::getGlobalRegisters"]
4835 [::std::mem::offset_of!(BNCustomArchitecture, getGlobalRegisters) - 336usize];
4836 ["Offset of field: BNCustomArchitecture::getSystemRegisters"]
4837 [::std::mem::offset_of!(BNCustomArchitecture, getSystemRegisters) - 344usize];
4838 ["Offset of field: BNCustomArchitecture::getRegisterStackName"]
4839 [::std::mem::offset_of!(BNCustomArchitecture, getRegisterStackName) - 352usize];
4840 ["Offset of field: BNCustomArchitecture::getAllRegisterStacks"]
4841 [::std::mem::offset_of!(BNCustomArchitecture, getAllRegisterStacks) - 360usize];
4842 ["Offset of field: BNCustomArchitecture::getRegisterStackInfo"]
4843 [::std::mem::offset_of!(BNCustomArchitecture, getRegisterStackInfo) - 368usize];
4844 ["Offset of field: BNCustomArchitecture::getIntrinsicClass"]
4845 [::std::mem::offset_of!(BNCustomArchitecture, getIntrinsicClass) - 376usize];
4846 ["Offset of field: BNCustomArchitecture::getIntrinsicName"]
4847 [::std::mem::offset_of!(BNCustomArchitecture, getIntrinsicName) - 384usize];
4848 ["Offset of field: BNCustomArchitecture::getAllIntrinsics"]
4849 [::std::mem::offset_of!(BNCustomArchitecture, getAllIntrinsics) - 392usize];
4850 ["Offset of field: BNCustomArchitecture::getIntrinsicInputs"]
4851 [::std::mem::offset_of!(BNCustomArchitecture, getIntrinsicInputs) - 400usize];
4852 ["Offset of field: BNCustomArchitecture::freeNameAndTypeList"]
4853 [::std::mem::offset_of!(BNCustomArchitecture, freeNameAndTypeList) - 408usize];
4854 ["Offset of field: BNCustomArchitecture::getIntrinsicOutputs"]
4855 [::std::mem::offset_of!(BNCustomArchitecture, getIntrinsicOutputs) - 416usize];
4856 ["Offset of field: BNCustomArchitecture::freeTypeList"]
4857 [::std::mem::offset_of!(BNCustomArchitecture, freeTypeList) - 424usize];
4858 ["Offset of field: BNCustomArchitecture::canAssemble"]
4859 [::std::mem::offset_of!(BNCustomArchitecture, canAssemble) - 432usize];
4860 ["Offset of field: BNCustomArchitecture::assemble"]
4861 [::std::mem::offset_of!(BNCustomArchitecture, assemble) - 440usize];
4862 ["Offset of field: BNCustomArchitecture::isNeverBranchPatchAvailable"]
4863 [::std::mem::offset_of!(BNCustomArchitecture, isNeverBranchPatchAvailable) - 448usize];
4864 ["Offset of field: BNCustomArchitecture::isAlwaysBranchPatchAvailable"]
4865 [::std::mem::offset_of!(BNCustomArchitecture, isAlwaysBranchPatchAvailable) - 456usize];
4866 ["Offset of field: BNCustomArchitecture::isInvertBranchPatchAvailable"]
4867 [::std::mem::offset_of!(BNCustomArchitecture, isInvertBranchPatchAvailable) - 464usize];
4868 ["Offset of field: BNCustomArchitecture::isSkipAndReturnZeroPatchAvailable"][::std::mem::offset_of!(
4869 BNCustomArchitecture,
4870 isSkipAndReturnZeroPatchAvailable
4871 ) - 472usize];
4872 ["Offset of field: BNCustomArchitecture::isSkipAndReturnValuePatchAvailable"][::std::mem::offset_of!(
4873 BNCustomArchitecture,
4874 isSkipAndReturnValuePatchAvailable
4875 ) - 480usize];
4876 ["Offset of field: BNCustomArchitecture::convertToNop"]
4877 [::std::mem::offset_of!(BNCustomArchitecture, convertToNop) - 488usize];
4878 ["Offset of field: BNCustomArchitecture::alwaysBranch"]
4879 [::std::mem::offset_of!(BNCustomArchitecture, alwaysBranch) - 496usize];
4880 ["Offset of field: BNCustomArchitecture::invertBranch"]
4881 [::std::mem::offset_of!(BNCustomArchitecture, invertBranch) - 504usize];
4882 ["Offset of field: BNCustomArchitecture::skipAndReturnValue"]
4883 [::std::mem::offset_of!(BNCustomArchitecture, skipAndReturnValue) - 512usize];
4884};
4885impl Default for BNCustomArchitecture {
4886 fn default() -> Self {
4887 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4888 unsafe {
4889 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4890 s.assume_init()
4891 }
4892 }
4893}
4894#[repr(C)]
4895#[derive(Debug, Copy, Clone)]
4896pub struct BNCustomPlatform {
4897 pub context: *mut ::std::os::raw::c_void,
4898 pub init: ::std::option::Option<
4899 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, obj: *mut BNPlatform),
4900 >,
4901 pub viewInit: ::std::option::Option<
4902 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, view: *mut BNBinaryView),
4903 >,
4904 pub getGlobalRegisters: ::std::option::Option<
4905 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
4906 >,
4907 pub freeRegisterList: ::std::option::Option<
4908 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, regs: *mut u32, len: usize),
4909 >,
4910 pub getGlobalRegisterType: ::std::option::Option<
4911 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, reg: u32) -> *mut BNType,
4912 >,
4913 pub getAddressSize:
4914 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> usize>,
4915 pub adjustTypeParserInput: ::std::option::Option<
4916 unsafe extern "C" fn(
4917 ctxt: *mut ::std::os::raw::c_void,
4918 parser: *mut BNTypeParser,
4919 argumentsIn: *const *const ::std::os::raw::c_char,
4920 argumentsLenIn: usize,
4921 sourceFileNamesIn: *const *const ::std::os::raw::c_char,
4922 sourceFileValuesIn: *const *const ::std::os::raw::c_char,
4923 sourceFilesLenIn: usize,
4924 argumentsOut: *mut *mut *mut ::std::os::raw::c_char,
4925 argumentsLenOut: *mut usize,
4926 sourceFileNamesOut: *mut *mut *mut ::std::os::raw::c_char,
4927 sourceFileValuesOut: *mut *mut *mut ::std::os::raw::c_char,
4928 sourceFilesLenOut: *mut usize,
4929 ),
4930 >,
4931 pub freeTypeParserInput: ::std::option::Option<
4932 unsafe extern "C" fn(
4933 ctxt: *mut ::std::os::raw::c_void,
4934 arguments: *mut *mut ::std::os::raw::c_char,
4935 argumentsLen: usize,
4936 sourceFileNames: *mut *mut ::std::os::raw::c_char,
4937 sourceFileValues: *mut *mut ::std::os::raw::c_char,
4938 sourceFilesLen: usize,
4939 ),
4940 >,
4941 pub getFallbackEnabled:
4942 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
4943}
4944#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4945const _: () = {
4946 ["Size of BNCustomPlatform"][::std::mem::size_of::<BNCustomPlatform>() - 80usize];
4947 ["Alignment of BNCustomPlatform"][::std::mem::align_of::<BNCustomPlatform>() - 8usize];
4948 ["Offset of field: BNCustomPlatform::context"]
4949 [::std::mem::offset_of!(BNCustomPlatform, context) - 0usize];
4950 ["Offset of field: BNCustomPlatform::init"]
4951 [::std::mem::offset_of!(BNCustomPlatform, init) - 8usize];
4952 ["Offset of field: BNCustomPlatform::viewInit"]
4953 [::std::mem::offset_of!(BNCustomPlatform, viewInit) - 16usize];
4954 ["Offset of field: BNCustomPlatform::getGlobalRegisters"]
4955 [::std::mem::offset_of!(BNCustomPlatform, getGlobalRegisters) - 24usize];
4956 ["Offset of field: BNCustomPlatform::freeRegisterList"]
4957 [::std::mem::offset_of!(BNCustomPlatform, freeRegisterList) - 32usize];
4958 ["Offset of field: BNCustomPlatform::getGlobalRegisterType"]
4959 [::std::mem::offset_of!(BNCustomPlatform, getGlobalRegisterType) - 40usize];
4960 ["Offset of field: BNCustomPlatform::getAddressSize"]
4961 [::std::mem::offset_of!(BNCustomPlatform, getAddressSize) - 48usize];
4962 ["Offset of field: BNCustomPlatform::adjustTypeParserInput"]
4963 [::std::mem::offset_of!(BNCustomPlatform, adjustTypeParserInput) - 56usize];
4964 ["Offset of field: BNCustomPlatform::freeTypeParserInput"]
4965 [::std::mem::offset_of!(BNCustomPlatform, freeTypeParserInput) - 64usize];
4966 ["Offset of field: BNCustomPlatform::getFallbackEnabled"]
4967 [::std::mem::offset_of!(BNCustomPlatform, getFallbackEnabled) - 72usize];
4968};
4969impl Default for BNCustomPlatform {
4970 fn default() -> Self {
4971 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4972 unsafe {
4973 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4974 s.assume_init()
4975 }
4976 }
4977}
4978#[repr(C)]
4979#[derive(Debug, Copy, Clone)]
4980pub struct BNBasicBlockEdge {
4981 pub type_: BNBranchType,
4982 pub target: *mut BNBasicBlock,
4983 pub backEdge: bool,
4984 pub fallThrough: bool,
4985}
4986#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4987const _: () = {
4988 ["Size of BNBasicBlockEdge"][::std::mem::size_of::<BNBasicBlockEdge>() - 24usize];
4989 ["Alignment of BNBasicBlockEdge"][::std::mem::align_of::<BNBasicBlockEdge>() - 8usize];
4990 ["Offset of field: BNBasicBlockEdge::type_"]
4991 [::std::mem::offset_of!(BNBasicBlockEdge, type_) - 0usize];
4992 ["Offset of field: BNBasicBlockEdge::target"]
4993 [::std::mem::offset_of!(BNBasicBlockEdge, target) - 8usize];
4994 ["Offset of field: BNBasicBlockEdge::backEdge"]
4995 [::std::mem::offset_of!(BNBasicBlockEdge, backEdge) - 16usize];
4996 ["Offset of field: BNBasicBlockEdge::fallThrough"]
4997 [::std::mem::offset_of!(BNBasicBlockEdge, fallThrough) - 17usize];
4998};
4999impl Default for BNBasicBlockEdge {
5000 fn default() -> Self {
5001 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5002 unsafe {
5003 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5004 s.assume_init()
5005 }
5006 }
5007}
5008#[repr(C)]
5009#[derive(Debug, Copy, Clone)]
5010pub struct BNPendingBasicBlockEdge {
5011 pub type_: BNBranchType,
5012 pub arch: *mut BNArchitecture,
5013 pub target: u64,
5014 pub fallThrough: bool,
5015}
5016#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5017const _: () = {
5018 ["Size of BNPendingBasicBlockEdge"][::std::mem::size_of::<BNPendingBasicBlockEdge>() - 32usize];
5019 ["Alignment of BNPendingBasicBlockEdge"]
5020 [::std::mem::align_of::<BNPendingBasicBlockEdge>() - 8usize];
5021 ["Offset of field: BNPendingBasicBlockEdge::type_"]
5022 [::std::mem::offset_of!(BNPendingBasicBlockEdge, type_) - 0usize];
5023 ["Offset of field: BNPendingBasicBlockEdge::arch"]
5024 [::std::mem::offset_of!(BNPendingBasicBlockEdge, arch) - 8usize];
5025 ["Offset of field: BNPendingBasicBlockEdge::target"]
5026 [::std::mem::offset_of!(BNPendingBasicBlockEdge, target) - 16usize];
5027 ["Offset of field: BNPendingBasicBlockEdge::fallThrough"]
5028 [::std::mem::offset_of!(BNPendingBasicBlockEdge, fallThrough) - 24usize];
5029};
5030impl Default for BNPendingBasicBlockEdge {
5031 fn default() -> Self {
5032 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5033 unsafe {
5034 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5035 s.assume_init()
5036 }
5037 }
5038}
5039#[repr(C)]
5040#[derive(Debug, Default, Copy, Clone)]
5041pub struct BNPoint {
5042 pub x: f32,
5043 pub y: f32,
5044}
5045#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5046const _: () = {
5047 ["Size of BNPoint"][::std::mem::size_of::<BNPoint>() - 8usize];
5048 ["Alignment of BNPoint"][::std::mem::align_of::<BNPoint>() - 4usize];
5049 ["Offset of field: BNPoint::x"][::std::mem::offset_of!(BNPoint, x) - 0usize];
5050 ["Offset of field: BNPoint::y"][::std::mem::offset_of!(BNPoint, y) - 4usize];
5051};
5052#[repr(u8)]
5053#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
5054pub enum BNThemeColor {
5055 #[doc = " Hex dump colors"]
5056 AddressColor = 0,
5057 #[doc = " Hex dump colors"]
5058 ModifiedColor = 1,
5059 #[doc = " Hex dump colors"]
5060 InsertedColor = 2,
5061 #[doc = " Hex dump colors"]
5062 NotPresentColor = 3,
5063 #[doc = " Hex dump colors"]
5064 SelectionColor = 4,
5065 #[doc = " Hex dump colors"]
5066 OutlineColor = 5,
5067 #[doc = " Hex dump colors"]
5068 BackgroundHighlightDarkColor = 6,
5069 #[doc = " Hex dump colors"]
5070 BackgroundHighlightLightColor = 7,
5071 #[doc = " Hex dump colors"]
5072 BoldBackgroundHighlightDarkColor = 8,
5073 #[doc = " Hex dump colors"]
5074 BoldBackgroundHighlightLightColor = 9,
5075 #[doc = " Hex dump colors"]
5076 AlphanumericHighlightColor = 10,
5077 #[doc = " Hex dump colors"]
5078 PrintableHighlightColor = 11,
5079 #[doc = " Graph colors"]
5080 GraphBackgroundDarkColor = 12,
5081 #[doc = " Graph colors"]
5082 GraphBackgroundLightColor = 13,
5083 #[doc = " Graph colors"]
5084 GraphNodeDarkColor = 14,
5085 #[doc = " Graph colors"]
5086 GraphNodeLightColor = 15,
5087 #[doc = " Graph colors"]
5088 GraphNodeOutlineColor = 16,
5089 #[doc = " Graph colors"]
5090 GraphNodeShadowColor = 17,
5091 #[doc = " Graph colors"]
5092 GraphEntryNodeIndicatorColor = 18,
5093 #[doc = " Graph colors"]
5094 GraphExitNodeIndicatorColor = 19,
5095 #[doc = " Graph colors"]
5096 GraphExitNoreturnNodeIndicatorColor = 20,
5097 #[doc = " Graph colors"]
5098 TrueBranchColor = 21,
5099 #[doc = " Graph colors"]
5100 FalseBranchColor = 22,
5101 #[doc = " Graph colors"]
5102 UnconditionalBranchColor = 23,
5103 #[doc = " Graph colors"]
5104 AltTrueBranchColor = 24,
5105 #[doc = " Graph colors"]
5106 AltFalseBranchColor = 25,
5107 #[doc = " Graph colors"]
5108 AltUnconditionalBranchColor = 26,
5109 #[doc = " Disassembly colors"]
5110 InstructionColor = 27,
5111 #[doc = " Disassembly colors"]
5112 RegisterColor = 28,
5113 #[doc = " Disassembly colors"]
5114 NumberColor = 29,
5115 #[doc = " Disassembly colors"]
5116 CodeSymbolColor = 30,
5117 #[doc = " Disassembly colors"]
5118 DataSymbolColor = 31,
5119 #[doc = " Disassembly colors"]
5120 LocalVariableColor = 32,
5121 #[doc = " Disassembly colors"]
5122 StackVariableColor = 33,
5123 #[doc = " Disassembly colors"]
5124 ImportColor = 34,
5125 #[doc = " Disassembly colors"]
5126 ExportColor = 35,
5127 #[doc = " Disassembly colors"]
5128 InstructionHighlightColor = 36,
5129 #[doc = " Disassembly colors"]
5130 RelatedInstructionHighlightColor = 37,
5131 #[doc = " Disassembly colors"]
5132 TokenHighlightColor = 38,
5133 #[doc = " Disassembly colors"]
5134 TokenSelectionColor = 39,
5135 #[doc = " Disassembly colors"]
5136 AnnotationColor = 40,
5137 #[doc = " Disassembly colors"]
5138 OpcodeColor = 41,
5139 #[doc = " Disassembly colors"]
5140 LinearDisassemblyFunctionHeaderColor = 42,
5141 #[doc = " Disassembly colors"]
5142 LinearDisassemblyBlockColor = 43,
5143 #[doc = " Disassembly colors"]
5144 LinearDisassemblyNoteColor = 44,
5145 #[doc = " Disassembly colors"]
5146 LinearDisassemblySeparatorColor = 45,
5147 #[doc = " Disassembly colors"]
5148 LinearDisassemblyCodeFoldColor = 46,
5149 #[doc = " Disassembly colors"]
5150 StringColor = 47,
5151 #[doc = " Disassembly colors"]
5152 TypeNameColor = 48,
5153 #[doc = " Disassembly colors"]
5154 FieldNameColor = 49,
5155 #[doc = " Disassembly colors"]
5156 KeywordColor = 50,
5157 #[doc = " Disassembly colors"]
5158 UncertainColor = 51,
5159 #[doc = " Disassembly colors"]
5160 NameSpaceColor = 52,
5161 #[doc = " Disassembly colors"]
5162 NameSpaceSeparatorColor = 53,
5163 #[doc = " Disassembly colors"]
5164 GotoLabelColor = 54,
5165 #[doc = " Disassembly colors"]
5166 CommentColor = 55,
5167 #[doc = " Disassembly colors"]
5168 OperationColor = 56,
5169 #[doc = " Disassembly colors"]
5170 BaseStructureNameColor = 57,
5171 #[doc = " Disassembly colors"]
5172 IndentationLineColor = 58,
5173 #[doc = " Disassembly colors"]
5174 IndentationLineHighlightColor = 59,
5175 #[doc = " Script console colors"]
5176 ScriptConsoleOutputColor = 60,
5177 #[doc = " Script console colors"]
5178 ScriptConsoleWarningColor = 61,
5179 #[doc = " Script console colors"]
5180 ScriptConsoleErrorColor = 62,
5181 #[doc = " Script console colors"]
5182 ScriptConsoleEchoColor = 63,
5183 #[doc = " Highlighting colors"]
5184 BlueStandardHighlightColor = 64,
5185 #[doc = " Highlighting colors"]
5186 GreenStandardHighlightColor = 65,
5187 #[doc = " Highlighting colors"]
5188 CyanStandardHighlightColor = 66,
5189 #[doc = " Highlighting colors"]
5190 RedStandardHighlightColor = 67,
5191 #[doc = " Highlighting colors"]
5192 MagentaStandardHighlightColor = 68,
5193 #[doc = " Highlighting colors"]
5194 YellowStandardHighlightColor = 69,
5195 #[doc = " Highlighting colors"]
5196 OrangeStandardHighlightColor = 70,
5197 #[doc = " Highlighting colors"]
5198 WhiteStandardHighlightColor = 71,
5199 #[doc = " Highlighting colors"]
5200 BlackStandardHighlightColor = 72,
5201 #[doc = " MiniGraph"]
5202 MiniGraphOverlayColor = 73,
5203 #[doc = " FeatureMap"]
5204 FeatureMapBaseColor = 74,
5205 #[doc = " FeatureMap"]
5206 FeatureMapNavLineColor = 75,
5207 #[doc = " FeatureMap"]
5208 FeatureMapNavHighlightColor = 76,
5209 #[doc = " FeatureMap"]
5210 FeatureMapDataVariableColor = 77,
5211 #[doc = " FeatureMap"]
5212 FeatureMapAsciiStringColor = 78,
5213 #[doc = " FeatureMap"]
5214 FeatureMapUnicodeStringColor = 79,
5215 #[doc = " FeatureMap"]
5216 FeatureMapFunctionColor = 80,
5217 #[doc = " FeatureMap"]
5218 FeatureMapImportColor = 81,
5219 #[doc = " FeatureMap"]
5220 FeatureMapExternColor = 82,
5221 #[doc = " FeatureMap"]
5222 FeatureMapLibraryColor = 83,
5223 #[doc = " Sidebar colors"]
5224 SidebarBackgroundColor = 84,
5225 #[doc = " Sidebar colors"]
5226 SidebarInactiveIconColor = 85,
5227 #[doc = " Sidebar colors"]
5228 SidebarHoverIconColor = 86,
5229 #[doc = " Sidebar colors"]
5230 SidebarActiveIconColor = 87,
5231 #[doc = " Sidebar colors"]
5232 SidebarFocusedIconColor = 88,
5233 #[doc = " Sidebar colors"]
5234 SidebarHoverBackgroundColor = 89,
5235 #[doc = " Sidebar colors"]
5236 SidebarActiveBackgroundColor = 90,
5237 #[doc = " Sidebar colors"]
5238 SidebarFocusedBackgroundColor = 91,
5239 #[doc = " Sidebar colors"]
5240 SidebarActiveIndicatorLineColor = 92,
5241 #[doc = " Deprecated, has no effect (paints as QPalette::Window)"]
5242 SidebarHeaderBackgroundColor = 93,
5243 SidebarHeaderTextColor = 94,
5244 SidebarWidgetBackgroundColor = 95,
5245 #[doc = " Pane colors"]
5246 ActivePaneBackgroundColor = 96,
5247 #[doc = " Pane colors"]
5248 InactivePaneBackgroundColor = 97,
5249 #[doc = " Pane colors"]
5250 FocusedPaneBackgroundColor = 98,
5251 #[doc = " Tab colors"]
5252 TabBarTabActiveColor = 99,
5253 #[doc = " Tab colors"]
5254 TabBarTabHoverColor = 100,
5255 #[doc = " Tab colors"]
5256 TabBarTabInactiveColor = 101,
5257 #[doc = " Tab colors"]
5258 TabBarTabBorderColor = 102,
5259 #[doc = " Tab colors"]
5260 TabBarTabGlowColor = 103,
5261 #[doc = " Status colors"]
5262 StatusBarServerConnectedColor = 104,
5263 #[doc = " Status colors"]
5264 StatusBarServerDisconnectedColor = 105,
5265 #[doc = " Status colors"]
5266 StatusBarServerWarningColor = 106,
5267 #[doc = " Status colors"]
5268 StatusBarProjectColor = 107,
5269 #[doc = " Brace colors"]
5270 BraceOption1Color = 108,
5271 #[doc = " Brace colors"]
5272 BraceOption2Color = 109,
5273 #[doc = " Brace colors"]
5274 BraceOption3Color = 110,
5275 #[doc = " Brace colors"]
5276 BraceOption4Color = 111,
5277 #[doc = " Brace colors"]
5278 BraceOption5Color = 112,
5279 #[doc = " Brace colors"]
5280 BraceOption6Color = 113,
5281 #[doc = " Type class colors"]
5282 VoidTypeColor = 114,
5283 #[doc = " Type class colors"]
5284 StructureTypeColor = 115,
5285 #[doc = " Type class colors"]
5286 EnumerationTypeColor = 116,
5287 #[doc = " Type class colors"]
5288 FunctionTypeColor = 117,
5289 #[doc = " Type class colors"]
5290 BoolTypeColor = 118,
5291 #[doc = " Type class colors"]
5292 IntegerTypeColor = 119,
5293 #[doc = " Type class colors"]
5294 FloatTypeColor = 120,
5295 #[doc = " Type class colors"]
5296 PointerTypeColor = 121,
5297 #[doc = " Type class colors"]
5298 ArrayTypeColor = 122,
5299 #[doc = " Type class colors"]
5300 VarArgsTypeColor = 123,
5301 #[doc = " Type class colors"]
5302 ValueTypeColor = 124,
5303 #[doc = " Type class colors"]
5304 NamedTypeReferenceColor = 125,
5305 #[doc = " Type class colors"]
5306 WideCharTypeColor = 126,
5307}
5308#[repr(u8)]
5309#[doc = " The following edge styles map to Qt's Qt::PenStyle enumeration"]
5310#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
5311pub enum BNEdgePenStyle {
5312 #[doc = " no line at all."]
5313 NoPen = 0,
5314 #[doc = " A plain line (default)"]
5315 SolidLine = 1,
5316 #[doc = " Dashes separated by a few pixels."]
5317 DashLine = 2,
5318 #[doc = " Dots separated by a few pixels."]
5319 DotLine = 3,
5320 #[doc = " Alternate dots and dashes."]
5321 DashDotLine = 4,
5322 #[doc = " One dash, two dots, one dash, two dots."]
5323 DashDotDotLine = 5,
5324}
5325#[repr(C)]
5326#[derive(Debug, Copy, Clone)]
5327pub struct BNEdgeStyle {
5328 pub style: BNEdgePenStyle,
5329 pub width: usize,
5330 pub color: BNThemeColor,
5331}
5332#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5333const _: () = {
5334 ["Size of BNEdgeStyle"][::std::mem::size_of::<BNEdgeStyle>() - 24usize];
5335 ["Alignment of BNEdgeStyle"][::std::mem::align_of::<BNEdgeStyle>() - 8usize];
5336 ["Offset of field: BNEdgeStyle::style"][::std::mem::offset_of!(BNEdgeStyle, style) - 0usize];
5337 ["Offset of field: BNEdgeStyle::width"][::std::mem::offset_of!(BNEdgeStyle, width) - 8usize];
5338 ["Offset of field: BNEdgeStyle::color"][::std::mem::offset_of!(BNEdgeStyle, color) - 16usize];
5339};
5340impl Default for BNEdgeStyle {
5341 fn default() -> Self {
5342 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5343 unsafe {
5344 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5345 s.assume_init()
5346 }
5347 }
5348}
5349#[repr(C)]
5350#[derive(Debug, Copy, Clone)]
5351pub struct BNFlowGraphEdge {
5352 pub type_: BNBranchType,
5353 pub target: *mut BNFlowGraphNode,
5354 pub points: *mut BNPoint,
5355 pub pointCount: usize,
5356 pub backEdge: bool,
5357 pub style: BNEdgeStyle,
5358}
5359#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5360const _: () = {
5361 ["Size of BNFlowGraphEdge"][::std::mem::size_of::<BNFlowGraphEdge>() - 64usize];
5362 ["Alignment of BNFlowGraphEdge"][::std::mem::align_of::<BNFlowGraphEdge>() - 8usize];
5363 ["Offset of field: BNFlowGraphEdge::type_"]
5364 [::std::mem::offset_of!(BNFlowGraphEdge, type_) - 0usize];
5365 ["Offset of field: BNFlowGraphEdge::target"]
5366 [::std::mem::offset_of!(BNFlowGraphEdge, target) - 8usize];
5367 ["Offset of field: BNFlowGraphEdge::points"]
5368 [::std::mem::offset_of!(BNFlowGraphEdge, points) - 16usize];
5369 ["Offset of field: BNFlowGraphEdge::pointCount"]
5370 [::std::mem::offset_of!(BNFlowGraphEdge, pointCount) - 24usize];
5371 ["Offset of field: BNFlowGraphEdge::backEdge"]
5372 [::std::mem::offset_of!(BNFlowGraphEdge, backEdge) - 32usize];
5373 ["Offset of field: BNFlowGraphEdge::style"]
5374 [::std::mem::offset_of!(BNFlowGraphEdge, style) - 40usize];
5375};
5376impl Default for BNFlowGraphEdge {
5377 fn default() -> Self {
5378 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5379 unsafe {
5380 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5381 s.assume_init()
5382 }
5383 }
5384}
5385#[repr(u8)]
5386#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
5387pub enum BNHighlightColorStyle {
5388 StandardHighlightColor = 0,
5389 MixedHighlightColor = 1,
5390 CustomHighlightColor = 2,
5391}
5392#[repr(u8)]
5393#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
5394pub enum BNHighlightStandardColor {
5395 NoHighlightColor = 0,
5396 BlueHighlightColor = 1,
5397 GreenHighlightColor = 2,
5398 CyanHighlightColor = 3,
5399 RedHighlightColor = 4,
5400 MagentaHighlightColor = 5,
5401 YellowHighlightColor = 6,
5402 OrangeHighlightColor = 7,
5403 WhiteHighlightColor = 8,
5404 BlackHighlightColor = 9,
5405}
5406#[repr(C)]
5407#[derive(Debug, Copy, Clone)]
5408pub struct BNHighlightColor {
5409 pub style: BNHighlightColorStyle,
5410 pub color: BNHighlightStandardColor,
5411 pub mixColor: BNHighlightStandardColor,
5412 pub mix: u8,
5413 pub r: u8,
5414 pub g: u8,
5415 pub b: u8,
5416 pub alpha: u8,
5417}
5418#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5419const _: () = {
5420 ["Size of BNHighlightColor"][::std::mem::size_of::<BNHighlightColor>() - 8usize];
5421 ["Alignment of BNHighlightColor"][::std::mem::align_of::<BNHighlightColor>() - 1usize];
5422 ["Offset of field: BNHighlightColor::style"]
5423 [::std::mem::offset_of!(BNHighlightColor, style) - 0usize];
5424 ["Offset of field: BNHighlightColor::color"]
5425 [::std::mem::offset_of!(BNHighlightColor, color) - 1usize];
5426 ["Offset of field: BNHighlightColor::mixColor"]
5427 [::std::mem::offset_of!(BNHighlightColor, mixColor) - 2usize];
5428 ["Offset of field: BNHighlightColor::mix"]
5429 [::std::mem::offset_of!(BNHighlightColor, mix) - 3usize];
5430 ["Offset of field: BNHighlightColor::r"][::std::mem::offset_of!(BNHighlightColor, r) - 4usize];
5431 ["Offset of field: BNHighlightColor::g"][::std::mem::offset_of!(BNHighlightColor, g) - 5usize];
5432 ["Offset of field: BNHighlightColor::b"][::std::mem::offset_of!(BNHighlightColor, b) - 6usize];
5433 ["Offset of field: BNHighlightColor::alpha"]
5434 [::std::mem::offset_of!(BNHighlightColor, alpha) - 7usize];
5435};
5436impl Default for BNHighlightColor {
5437 fn default() -> Self {
5438 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5439 unsafe {
5440 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5441 s.assume_init()
5442 }
5443 }
5444}
5445#[repr(C)]
5446#[derive(Debug, Copy, Clone)]
5447pub struct BNDisassemblyTextLineTypeInfo {
5448 pub hasTypeInfo: bool,
5449 pub parentType: *mut BNType,
5450 pub fieldIndex: usize,
5451 pub offset: u64,
5452}
5453#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5454const _: () = {
5455 ["Size of BNDisassemblyTextLineTypeInfo"]
5456 [::std::mem::size_of::<BNDisassemblyTextLineTypeInfo>() - 32usize];
5457 ["Alignment of BNDisassemblyTextLineTypeInfo"]
5458 [::std::mem::align_of::<BNDisassemblyTextLineTypeInfo>() - 8usize];
5459 ["Offset of field: BNDisassemblyTextLineTypeInfo::hasTypeInfo"]
5460 [::std::mem::offset_of!(BNDisassemblyTextLineTypeInfo, hasTypeInfo) - 0usize];
5461 ["Offset of field: BNDisassemblyTextLineTypeInfo::parentType"]
5462 [::std::mem::offset_of!(BNDisassemblyTextLineTypeInfo, parentType) - 8usize];
5463 ["Offset of field: BNDisassemblyTextLineTypeInfo::fieldIndex"]
5464 [::std::mem::offset_of!(BNDisassemblyTextLineTypeInfo, fieldIndex) - 16usize];
5465 ["Offset of field: BNDisassemblyTextLineTypeInfo::offset"]
5466 [::std::mem::offset_of!(BNDisassemblyTextLineTypeInfo, offset) - 24usize];
5467};
5468impl Default for BNDisassemblyTextLineTypeInfo {
5469 fn default() -> Self {
5470 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5471 unsafe {
5472 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5473 s.assume_init()
5474 }
5475 }
5476}
5477#[repr(C)]
5478#[derive(Debug, Copy, Clone)]
5479pub struct BNDisassemblyTextLine {
5480 pub addr: u64,
5481 pub instrIndex: usize,
5482 pub tokens: *mut BNInstructionTextToken,
5483 pub count: usize,
5484 pub highlight: BNHighlightColor,
5485 pub tags: *mut *mut BNTag,
5486 pub tagCount: usize,
5487 pub typeInfo: BNDisassemblyTextLineTypeInfo,
5488}
5489#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5490const _: () = {
5491 ["Size of BNDisassemblyTextLine"][::std::mem::size_of::<BNDisassemblyTextLine>() - 88usize];
5492 ["Alignment of BNDisassemblyTextLine"]
5493 [::std::mem::align_of::<BNDisassemblyTextLine>() - 8usize];
5494 ["Offset of field: BNDisassemblyTextLine::addr"]
5495 [::std::mem::offset_of!(BNDisassemblyTextLine, addr) - 0usize];
5496 ["Offset of field: BNDisassemblyTextLine::instrIndex"]
5497 [::std::mem::offset_of!(BNDisassemblyTextLine, instrIndex) - 8usize];
5498 ["Offset of field: BNDisassemblyTextLine::tokens"]
5499 [::std::mem::offset_of!(BNDisassemblyTextLine, tokens) - 16usize];
5500 ["Offset of field: BNDisassemblyTextLine::count"]
5501 [::std::mem::offset_of!(BNDisassemblyTextLine, count) - 24usize];
5502 ["Offset of field: BNDisassemblyTextLine::highlight"]
5503 [::std::mem::offset_of!(BNDisassemblyTextLine, highlight) - 32usize];
5504 ["Offset of field: BNDisassemblyTextLine::tags"]
5505 [::std::mem::offset_of!(BNDisassemblyTextLine, tags) - 40usize];
5506 ["Offset of field: BNDisassemblyTextLine::tagCount"]
5507 [::std::mem::offset_of!(BNDisassemblyTextLine, tagCount) - 48usize];
5508 ["Offset of field: BNDisassemblyTextLine::typeInfo"]
5509 [::std::mem::offset_of!(BNDisassemblyTextLine, typeInfo) - 56usize];
5510};
5511impl Default for BNDisassemblyTextLine {
5512 fn default() -> Self {
5513 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5514 unsafe {
5515 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5516 s.assume_init()
5517 }
5518 }
5519}
5520#[repr(C)]
5521#[derive(Debug, Copy, Clone)]
5522pub struct BNLinearDisassemblyLine {
5523 pub type_: BNLinearDisassemblyLineType,
5524 pub function: *mut BNFunction,
5525 pub block: *mut BNBasicBlock,
5526 pub contents: BNDisassemblyTextLine,
5527}
5528#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5529const _: () = {
5530 ["Size of BNLinearDisassemblyLine"]
5531 [::std::mem::size_of::<BNLinearDisassemblyLine>() - 112usize];
5532 ["Alignment of BNLinearDisassemblyLine"]
5533 [::std::mem::align_of::<BNLinearDisassemblyLine>() - 8usize];
5534 ["Offset of field: BNLinearDisassemblyLine::type_"]
5535 [::std::mem::offset_of!(BNLinearDisassemblyLine, type_) - 0usize];
5536 ["Offset of field: BNLinearDisassemblyLine::function"]
5537 [::std::mem::offset_of!(BNLinearDisassemblyLine, function) - 8usize];
5538 ["Offset of field: BNLinearDisassemblyLine::block"]
5539 [::std::mem::offset_of!(BNLinearDisassemblyLine, block) - 16usize];
5540 ["Offset of field: BNLinearDisassemblyLine::contents"]
5541 [::std::mem::offset_of!(BNLinearDisassemblyLine, contents) - 24usize];
5542};
5543impl Default for BNLinearDisassemblyLine {
5544 fn default() -> Self {
5545 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5546 unsafe {
5547 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5548 s.assume_init()
5549 }
5550 }
5551}
5552#[repr(C)]
5553#[derive(Debug, Copy, Clone)]
5554pub struct BNReferenceSource {
5555 pub func: *mut BNFunction,
5556 pub arch: *mut BNArchitecture,
5557 pub addr: u64,
5558}
5559#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5560const _: () = {
5561 ["Size of BNReferenceSource"][::std::mem::size_of::<BNReferenceSource>() - 24usize];
5562 ["Alignment of BNReferenceSource"][::std::mem::align_of::<BNReferenceSource>() - 8usize];
5563 ["Offset of field: BNReferenceSource::func"]
5564 [::std::mem::offset_of!(BNReferenceSource, func) - 0usize];
5565 ["Offset of field: BNReferenceSource::arch"]
5566 [::std::mem::offset_of!(BNReferenceSource, arch) - 8usize];
5567 ["Offset of field: BNReferenceSource::addr"]
5568 [::std::mem::offset_of!(BNReferenceSource, addr) - 16usize];
5569};
5570impl Default for BNReferenceSource {
5571 fn default() -> Self {
5572 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5573 unsafe {
5574 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5575 s.assume_init()
5576 }
5577 }
5578}
5579#[repr(C)]
5580#[derive(Debug, Copy, Clone)]
5581pub struct BNTypeFieldReference {
5582 pub func: *mut BNFunction,
5583 pub arch: *mut BNArchitecture,
5584 pub addr: u64,
5585 pub size: usize,
5586 pub incomingType: BNTypeWithConfidence,
5587}
5588#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5589const _: () = {
5590 ["Size of BNTypeFieldReference"][::std::mem::size_of::<BNTypeFieldReference>() - 48usize];
5591 ["Alignment of BNTypeFieldReference"][::std::mem::align_of::<BNTypeFieldReference>() - 8usize];
5592 ["Offset of field: BNTypeFieldReference::func"]
5593 [::std::mem::offset_of!(BNTypeFieldReference, func) - 0usize];
5594 ["Offset of field: BNTypeFieldReference::arch"]
5595 [::std::mem::offset_of!(BNTypeFieldReference, arch) - 8usize];
5596 ["Offset of field: BNTypeFieldReference::addr"]
5597 [::std::mem::offset_of!(BNTypeFieldReference, addr) - 16usize];
5598 ["Offset of field: BNTypeFieldReference::size"]
5599 [::std::mem::offset_of!(BNTypeFieldReference, size) - 24usize];
5600 ["Offset of field: BNTypeFieldReference::incomingType"]
5601 [::std::mem::offset_of!(BNTypeFieldReference, incomingType) - 32usize];
5602};
5603impl Default for BNTypeFieldReference {
5604 fn default() -> Self {
5605 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5606 unsafe {
5607 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5608 s.assume_init()
5609 }
5610 }
5611}
5612#[repr(C)]
5613#[derive(Debug, Copy, Clone)]
5614pub struct BNILReferenceSource {
5615 pub func: *mut BNFunction,
5616 pub arch: *mut BNArchitecture,
5617 pub addr: u64,
5618 pub type_: BNFunctionGraphType,
5619 pub exprId: usize,
5620}
5621#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5622const _: () = {
5623 ["Size of BNILReferenceSource"][::std::mem::size_of::<BNILReferenceSource>() - 40usize];
5624 ["Alignment of BNILReferenceSource"][::std::mem::align_of::<BNILReferenceSource>() - 8usize];
5625 ["Offset of field: BNILReferenceSource::func"]
5626 [::std::mem::offset_of!(BNILReferenceSource, func) - 0usize];
5627 ["Offset of field: BNILReferenceSource::arch"]
5628 [::std::mem::offset_of!(BNILReferenceSource, arch) - 8usize];
5629 ["Offset of field: BNILReferenceSource::addr"]
5630 [::std::mem::offset_of!(BNILReferenceSource, addr) - 16usize];
5631 ["Offset of field: BNILReferenceSource::type_"]
5632 [::std::mem::offset_of!(BNILReferenceSource, type_) - 24usize];
5633 ["Offset of field: BNILReferenceSource::exprId"]
5634 [::std::mem::offset_of!(BNILReferenceSource, exprId) - 32usize];
5635};
5636impl Default for BNILReferenceSource {
5637 fn default() -> Self {
5638 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5639 unsafe {
5640 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5641 s.assume_init()
5642 }
5643 }
5644}
5645#[repr(C)]
5646#[derive(Debug, Copy, Clone)]
5647pub struct BNTypeFieldReferenceSizeInfo {
5648 pub offset: u64,
5649 pub sizes: *mut usize,
5650 pub count: usize,
5651}
5652#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5653const _: () = {
5654 ["Size of BNTypeFieldReferenceSizeInfo"]
5655 [::std::mem::size_of::<BNTypeFieldReferenceSizeInfo>() - 24usize];
5656 ["Alignment of BNTypeFieldReferenceSizeInfo"]
5657 [::std::mem::align_of::<BNTypeFieldReferenceSizeInfo>() - 8usize];
5658 ["Offset of field: BNTypeFieldReferenceSizeInfo::offset"]
5659 [::std::mem::offset_of!(BNTypeFieldReferenceSizeInfo, offset) - 0usize];
5660 ["Offset of field: BNTypeFieldReferenceSizeInfo::sizes"]
5661 [::std::mem::offset_of!(BNTypeFieldReferenceSizeInfo, sizes) - 8usize];
5662 ["Offset of field: BNTypeFieldReferenceSizeInfo::count"]
5663 [::std::mem::offset_of!(BNTypeFieldReferenceSizeInfo, count) - 16usize];
5664};
5665impl Default for BNTypeFieldReferenceSizeInfo {
5666 fn default() -> Self {
5667 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5668 unsafe {
5669 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5670 s.assume_init()
5671 }
5672 }
5673}
5674#[repr(C)]
5675#[derive(Debug, Copy, Clone)]
5676pub struct BNTypeFieldReferenceTypeInfo {
5677 pub offset: u64,
5678 pub types: *mut BNTypeWithConfidence,
5679 pub count: usize,
5680}
5681#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5682const _: () = {
5683 ["Size of BNTypeFieldReferenceTypeInfo"]
5684 [::std::mem::size_of::<BNTypeFieldReferenceTypeInfo>() - 24usize];
5685 ["Alignment of BNTypeFieldReferenceTypeInfo"]
5686 [::std::mem::align_of::<BNTypeFieldReferenceTypeInfo>() - 8usize];
5687 ["Offset of field: BNTypeFieldReferenceTypeInfo::offset"]
5688 [::std::mem::offset_of!(BNTypeFieldReferenceTypeInfo, offset) - 0usize];
5689 ["Offset of field: BNTypeFieldReferenceTypeInfo::types"]
5690 [::std::mem::offset_of!(BNTypeFieldReferenceTypeInfo, types) - 8usize];
5691 ["Offset of field: BNTypeFieldReferenceTypeInfo::count"]
5692 [::std::mem::offset_of!(BNTypeFieldReferenceTypeInfo, count) - 16usize];
5693};
5694impl Default for BNTypeFieldReferenceTypeInfo {
5695 fn default() -> Self {
5696 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5697 unsafe {
5698 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5699 s.assume_init()
5700 }
5701 }
5702}
5703#[repr(C)]
5704#[derive(Debug, Copy, Clone)]
5705pub struct BNVariableReferenceSource {
5706 pub var: BNVariable,
5707 pub source: BNILReferenceSource,
5708}
5709#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5710const _: () = {
5711 ["Size of BNVariableReferenceSource"]
5712 [::std::mem::size_of::<BNVariableReferenceSource>() - 56usize];
5713 ["Alignment of BNVariableReferenceSource"]
5714 [::std::mem::align_of::<BNVariableReferenceSource>() - 8usize];
5715 ["Offset of field: BNVariableReferenceSource::var"]
5716 [::std::mem::offset_of!(BNVariableReferenceSource, var) - 0usize];
5717 ["Offset of field: BNVariableReferenceSource::source"]
5718 [::std::mem::offset_of!(BNVariableReferenceSource, source) - 16usize];
5719};
5720impl Default for BNVariableReferenceSource {
5721 fn default() -> Self {
5722 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5723 unsafe {
5724 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5725 s.assume_init()
5726 }
5727 }
5728}
5729#[repr(u8)]
5730#[doc = " This describes how a type is referenced"]
5731#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
5732pub enum BNTypeReferenceType {
5733 #[doc = " Type A contains type B"]
5734 DirectTypeReferenceType = 0,
5735 #[doc = " All other cases, e.g., type A contains a pointer to type B"]
5736 IndirectTypeReferenceType = 1,
5737 #[doc = " The nature of the reference is unknown"]
5738 UnknownTypeReferenceType = 2,
5739}
5740#[repr(C)]
5741#[derive(Debug, Copy, Clone)]
5742pub struct BNTypeReferenceSource {
5743 pub name: BNQualifiedName,
5744 pub offset: u64,
5745 pub type_: BNTypeReferenceType,
5746}
5747#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5748const _: () = {
5749 ["Size of BNTypeReferenceSource"][::std::mem::size_of::<BNTypeReferenceSource>() - 40usize];
5750 ["Alignment of BNTypeReferenceSource"]
5751 [::std::mem::align_of::<BNTypeReferenceSource>() - 8usize];
5752 ["Offset of field: BNTypeReferenceSource::name"]
5753 [::std::mem::offset_of!(BNTypeReferenceSource, name) - 0usize];
5754 ["Offset of field: BNTypeReferenceSource::offset"]
5755 [::std::mem::offset_of!(BNTypeReferenceSource, offset) - 24usize];
5756 ["Offset of field: BNTypeReferenceSource::type_"]
5757 [::std::mem::offset_of!(BNTypeReferenceSource, type_) - 32usize];
5758};
5759impl Default for BNTypeReferenceSource {
5760 fn default() -> Self {
5761 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5762 unsafe {
5763 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5764 s.assume_init()
5765 }
5766 }
5767}
5768#[repr(u8)]
5769#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
5770pub enum BNTagTypeType {
5771 UserTagType = 0,
5772 NotificationTagType = 1,
5773 BookmarksTagType = 2,
5774}
5775#[repr(u8)]
5776#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
5777pub enum BNTagReferenceType {
5778 AddressTagReference = 0,
5779 FunctionTagReference = 1,
5780 DataTagReference = 2,
5781}
5782#[repr(C)]
5783#[derive(Debug, Copy, Clone)]
5784pub struct BNTagReference {
5785 pub refType: BNTagReferenceType,
5786 pub autoDefined: bool,
5787 pub tag: *mut BNTag,
5788 pub arch: *mut BNArchitecture,
5789 pub func: *mut BNFunction,
5790 pub addr: u64,
5791}
5792#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5793const _: () = {
5794 ["Size of BNTagReference"][::std::mem::size_of::<BNTagReference>() - 40usize];
5795 ["Alignment of BNTagReference"][::std::mem::align_of::<BNTagReference>() - 8usize];
5796 ["Offset of field: BNTagReference::refType"]
5797 [::std::mem::offset_of!(BNTagReference, refType) - 0usize];
5798 ["Offset of field: BNTagReference::autoDefined"]
5799 [::std::mem::offset_of!(BNTagReference, autoDefined) - 1usize];
5800 ["Offset of field: BNTagReference::tag"][::std::mem::offset_of!(BNTagReference, tag) - 8usize];
5801 ["Offset of field: BNTagReference::arch"]
5802 [::std::mem::offset_of!(BNTagReference, arch) - 16usize];
5803 ["Offset of field: BNTagReference::func"]
5804 [::std::mem::offset_of!(BNTagReference, func) - 24usize];
5805 ["Offset of field: BNTagReference::addr"]
5806 [::std::mem::offset_of!(BNTagReference, addr) - 32usize];
5807};
5808impl Default for BNTagReference {
5809 fn default() -> Self {
5810 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5811 unsafe {
5812 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5813 s.assume_init()
5814 }
5815 }
5816}
5817#[repr(C)]
5818#[derive(Debug, Copy, Clone)]
5819pub struct BNCallingConventionWithConfidence {
5820 pub convention: *mut BNCallingConvention,
5821 pub confidence: u8,
5822}
5823#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5824const _: () = {
5825 ["Size of BNCallingConventionWithConfidence"]
5826 [::std::mem::size_of::<BNCallingConventionWithConfidence>() - 16usize];
5827 ["Alignment of BNCallingConventionWithConfidence"]
5828 [::std::mem::align_of::<BNCallingConventionWithConfidence>() - 8usize];
5829 ["Offset of field: BNCallingConventionWithConfidence::convention"]
5830 [::std::mem::offset_of!(BNCallingConventionWithConfidence, convention) - 0usize];
5831 ["Offset of field: BNCallingConventionWithConfidence::confidence"]
5832 [::std::mem::offset_of!(BNCallingConventionWithConfidence, confidence) - 8usize];
5833};
5834impl Default for BNCallingConventionWithConfidence {
5835 fn default() -> Self {
5836 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5837 unsafe {
5838 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5839 s.assume_init()
5840 }
5841 }
5842}
5843#[repr(C)]
5844#[derive(Debug, Default, Copy, Clone)]
5845pub struct BNBoolWithConfidence {
5846 pub value: bool,
5847 pub confidence: u8,
5848}
5849#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5850const _: () = {
5851 ["Size of BNBoolWithConfidence"][::std::mem::size_of::<BNBoolWithConfidence>() - 2usize];
5852 ["Alignment of BNBoolWithConfidence"][::std::mem::align_of::<BNBoolWithConfidence>() - 1usize];
5853 ["Offset of field: BNBoolWithConfidence::value"]
5854 [::std::mem::offset_of!(BNBoolWithConfidence, value) - 0usize];
5855 ["Offset of field: BNBoolWithConfidence::confidence"]
5856 [::std::mem::offset_of!(BNBoolWithConfidence, confidence) - 1usize];
5857};
5858#[repr(C)]
5859#[derive(Debug, Default, Copy, Clone)]
5860pub struct BNOffsetWithConfidence {
5861 pub value: i64,
5862 pub confidence: u8,
5863}
5864#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5865const _: () = {
5866 ["Size of BNOffsetWithConfidence"][::std::mem::size_of::<BNOffsetWithConfidence>() - 16usize];
5867 ["Alignment of BNOffsetWithConfidence"]
5868 [::std::mem::align_of::<BNOffsetWithConfidence>() - 8usize];
5869 ["Offset of field: BNOffsetWithConfidence::value"]
5870 [::std::mem::offset_of!(BNOffsetWithConfidence, value) - 0usize];
5871 ["Offset of field: BNOffsetWithConfidence::confidence"]
5872 [::std::mem::offset_of!(BNOffsetWithConfidence, confidence) - 8usize];
5873};
5874#[repr(C)]
5875#[derive(Debug, Copy, Clone)]
5876pub struct BNParameterVariablesWithConfidence {
5877 pub vars: *mut BNVariable,
5878 pub count: usize,
5879 pub confidence: u8,
5880}
5881#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5882const _: () = {
5883 ["Size of BNParameterVariablesWithConfidence"]
5884 [::std::mem::size_of::<BNParameterVariablesWithConfidence>() - 24usize];
5885 ["Alignment of BNParameterVariablesWithConfidence"]
5886 [::std::mem::align_of::<BNParameterVariablesWithConfidence>() - 8usize];
5887 ["Offset of field: BNParameterVariablesWithConfidence::vars"]
5888 [::std::mem::offset_of!(BNParameterVariablesWithConfidence, vars) - 0usize];
5889 ["Offset of field: BNParameterVariablesWithConfidence::count"]
5890 [::std::mem::offset_of!(BNParameterVariablesWithConfidence, count) - 8usize];
5891 ["Offset of field: BNParameterVariablesWithConfidence::confidence"]
5892 [::std::mem::offset_of!(BNParameterVariablesWithConfidence, confidence) - 16usize];
5893};
5894impl Default for BNParameterVariablesWithConfidence {
5895 fn default() -> Self {
5896 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5897 unsafe {
5898 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5899 s.assume_init()
5900 }
5901 }
5902}
5903#[repr(C)]
5904#[derive(Debug, Copy, Clone)]
5905pub struct BNRegisterSetWithConfidence {
5906 pub regs: *mut u32,
5907 pub count: usize,
5908 pub confidence: u8,
5909}
5910#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5911const _: () = {
5912 ["Size of BNRegisterSetWithConfidence"]
5913 [::std::mem::size_of::<BNRegisterSetWithConfidence>() - 24usize];
5914 ["Alignment of BNRegisterSetWithConfidence"]
5915 [::std::mem::align_of::<BNRegisterSetWithConfidence>() - 8usize];
5916 ["Offset of field: BNRegisterSetWithConfidence::regs"]
5917 [::std::mem::offset_of!(BNRegisterSetWithConfidence, regs) - 0usize];
5918 ["Offset of field: BNRegisterSetWithConfidence::count"]
5919 [::std::mem::offset_of!(BNRegisterSetWithConfidence, count) - 8usize];
5920 ["Offset of field: BNRegisterSetWithConfidence::confidence"]
5921 [::std::mem::offset_of!(BNRegisterSetWithConfidence, confidence) - 16usize];
5922};
5923impl Default for BNRegisterSetWithConfidence {
5924 fn default() -> Self {
5925 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5926 unsafe {
5927 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5928 s.assume_init()
5929 }
5930 }
5931}
5932#[repr(C)]
5933#[derive(Debug, Copy, Clone)]
5934pub struct BNFunctionParameter {
5935 pub name: *mut ::std::os::raw::c_char,
5936 pub type_: *mut BNType,
5937 pub typeConfidence: u8,
5938 pub defaultLocation: bool,
5939 pub location: BNVariable,
5940}
5941#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5942const _: () = {
5943 ["Size of BNFunctionParameter"][::std::mem::size_of::<BNFunctionParameter>() - 40usize];
5944 ["Alignment of BNFunctionParameter"][::std::mem::align_of::<BNFunctionParameter>() - 8usize];
5945 ["Offset of field: BNFunctionParameter::name"]
5946 [::std::mem::offset_of!(BNFunctionParameter, name) - 0usize];
5947 ["Offset of field: BNFunctionParameter::type_"]
5948 [::std::mem::offset_of!(BNFunctionParameter, type_) - 8usize];
5949 ["Offset of field: BNFunctionParameter::typeConfidence"]
5950 [::std::mem::offset_of!(BNFunctionParameter, typeConfidence) - 16usize];
5951 ["Offset of field: BNFunctionParameter::defaultLocation"]
5952 [::std::mem::offset_of!(BNFunctionParameter, defaultLocation) - 17usize];
5953 ["Offset of field: BNFunctionParameter::location"]
5954 [::std::mem::offset_of!(BNFunctionParameter, location) - 24usize];
5955};
5956impl Default for BNFunctionParameter {
5957 fn default() -> Self {
5958 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5959 unsafe {
5960 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5961 s.assume_init()
5962 }
5963 }
5964}
5965#[repr(C)]
5966#[derive(Debug, Copy, Clone)]
5967pub struct BNQualifiedNameAndType {
5968 pub name: BNQualifiedName,
5969 pub type_: *mut BNType,
5970}
5971#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5972const _: () = {
5973 ["Size of BNQualifiedNameAndType"][::std::mem::size_of::<BNQualifiedNameAndType>() - 32usize];
5974 ["Alignment of BNQualifiedNameAndType"]
5975 [::std::mem::align_of::<BNQualifiedNameAndType>() - 8usize];
5976 ["Offset of field: BNQualifiedNameAndType::name"]
5977 [::std::mem::offset_of!(BNQualifiedNameAndType, name) - 0usize];
5978 ["Offset of field: BNQualifiedNameAndType::type_"]
5979 [::std::mem::offset_of!(BNQualifiedNameAndType, type_) - 24usize];
5980};
5981impl Default for BNQualifiedNameAndType {
5982 fn default() -> Self {
5983 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5984 unsafe {
5985 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5986 s.assume_init()
5987 }
5988 }
5989}
5990#[repr(C)]
5991#[derive(Debug, Copy, Clone)]
5992pub struct BNQualifiedNameTypeAndId {
5993 pub name: BNQualifiedName,
5994 pub id: *mut ::std::os::raw::c_char,
5995 pub type_: *mut BNType,
5996}
5997#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5998const _: () = {
5999 ["Size of BNQualifiedNameTypeAndId"]
6000 [::std::mem::size_of::<BNQualifiedNameTypeAndId>() - 40usize];
6001 ["Alignment of BNQualifiedNameTypeAndId"]
6002 [::std::mem::align_of::<BNQualifiedNameTypeAndId>() - 8usize];
6003 ["Offset of field: BNQualifiedNameTypeAndId::name"]
6004 [::std::mem::offset_of!(BNQualifiedNameTypeAndId, name) - 0usize];
6005 ["Offset of field: BNQualifiedNameTypeAndId::id"]
6006 [::std::mem::offset_of!(BNQualifiedNameTypeAndId, id) - 24usize];
6007 ["Offset of field: BNQualifiedNameTypeAndId::type_"]
6008 [::std::mem::offset_of!(BNQualifiedNameTypeAndId, type_) - 32usize];
6009};
6010impl Default for BNQualifiedNameTypeAndId {
6011 fn default() -> Self {
6012 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6013 unsafe {
6014 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6015 s.assume_init()
6016 }
6017 }
6018}
6019#[repr(C)]
6020#[derive(Debug, Copy, Clone)]
6021pub struct BNStructureMember {
6022 pub type_: *mut BNType,
6023 pub name: *mut ::std::os::raw::c_char,
6024 pub offset: u64,
6025 pub typeConfidence: u8,
6026 pub access: BNMemberAccess,
6027 pub scope: BNMemberScope,
6028 pub bitPosition: u8,
6029 pub bitWidth: u8,
6030}
6031#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6032const _: () = {
6033 ["Size of BNStructureMember"][::std::mem::size_of::<BNStructureMember>() - 32usize];
6034 ["Alignment of BNStructureMember"][::std::mem::align_of::<BNStructureMember>() - 8usize];
6035 ["Offset of field: BNStructureMember::type_"]
6036 [::std::mem::offset_of!(BNStructureMember, type_) - 0usize];
6037 ["Offset of field: BNStructureMember::name"]
6038 [::std::mem::offset_of!(BNStructureMember, name) - 8usize];
6039 ["Offset of field: BNStructureMember::offset"]
6040 [::std::mem::offset_of!(BNStructureMember, offset) - 16usize];
6041 ["Offset of field: BNStructureMember::typeConfidence"]
6042 [::std::mem::offset_of!(BNStructureMember, typeConfidence) - 24usize];
6043 ["Offset of field: BNStructureMember::access"]
6044 [::std::mem::offset_of!(BNStructureMember, access) - 25usize];
6045 ["Offset of field: BNStructureMember::scope"]
6046 [::std::mem::offset_of!(BNStructureMember, scope) - 26usize];
6047 ["Offset of field: BNStructureMember::bitPosition"]
6048 [::std::mem::offset_of!(BNStructureMember, bitPosition) - 27usize];
6049 ["Offset of field: BNStructureMember::bitWidth"]
6050 [::std::mem::offset_of!(BNStructureMember, bitWidth) - 28usize];
6051};
6052impl Default for BNStructureMember {
6053 fn default() -> Self {
6054 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6055 unsafe {
6056 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6057 s.assume_init()
6058 }
6059 }
6060}
6061#[repr(C)]
6062#[derive(Debug, Copy, Clone)]
6063pub struct BNInheritedStructureMember {
6064 pub base: *mut BNNamedTypeReference,
6065 pub baseOffset: u64,
6066 pub member: BNStructureMember,
6067 pub memberIndex: usize,
6068}
6069#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6070const _: () = {
6071 ["Size of BNInheritedStructureMember"]
6072 [::std::mem::size_of::<BNInheritedStructureMember>() - 56usize];
6073 ["Alignment of BNInheritedStructureMember"]
6074 [::std::mem::align_of::<BNInheritedStructureMember>() - 8usize];
6075 ["Offset of field: BNInheritedStructureMember::base"]
6076 [::std::mem::offset_of!(BNInheritedStructureMember, base) - 0usize];
6077 ["Offset of field: BNInheritedStructureMember::baseOffset"]
6078 [::std::mem::offset_of!(BNInheritedStructureMember, baseOffset) - 8usize];
6079 ["Offset of field: BNInheritedStructureMember::member"]
6080 [::std::mem::offset_of!(BNInheritedStructureMember, member) - 16usize];
6081 ["Offset of field: BNInheritedStructureMember::memberIndex"]
6082 [::std::mem::offset_of!(BNInheritedStructureMember, memberIndex) - 48usize];
6083};
6084impl Default for BNInheritedStructureMember {
6085 fn default() -> Self {
6086 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6087 unsafe {
6088 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6089 s.assume_init()
6090 }
6091 }
6092}
6093#[repr(C)]
6094#[derive(Debug, Copy, Clone)]
6095pub struct BNBaseStructure {
6096 pub type_: *mut BNNamedTypeReference,
6097 pub offset: u64,
6098 pub width: u64,
6099}
6100#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6101const _: () = {
6102 ["Size of BNBaseStructure"][::std::mem::size_of::<BNBaseStructure>() - 24usize];
6103 ["Alignment of BNBaseStructure"][::std::mem::align_of::<BNBaseStructure>() - 8usize];
6104 ["Offset of field: BNBaseStructure::type_"]
6105 [::std::mem::offset_of!(BNBaseStructure, type_) - 0usize];
6106 ["Offset of field: BNBaseStructure::offset"]
6107 [::std::mem::offset_of!(BNBaseStructure, offset) - 8usize];
6108 ["Offset of field: BNBaseStructure::width"]
6109 [::std::mem::offset_of!(BNBaseStructure, width) - 16usize];
6110};
6111impl Default for BNBaseStructure {
6112 fn default() -> Self {
6113 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6114 unsafe {
6115 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6116 s.assume_init()
6117 }
6118 }
6119}
6120#[repr(C)]
6121#[derive(Debug, Copy, Clone)]
6122pub struct BNEnumerationMember {
6123 pub name: *mut ::std::os::raw::c_char,
6124 pub value: u64,
6125 pub isDefault: bool,
6126}
6127#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6128const _: () = {
6129 ["Size of BNEnumerationMember"][::std::mem::size_of::<BNEnumerationMember>() - 24usize];
6130 ["Alignment of BNEnumerationMember"][::std::mem::align_of::<BNEnumerationMember>() - 8usize];
6131 ["Offset of field: BNEnumerationMember::name"]
6132 [::std::mem::offset_of!(BNEnumerationMember, name) - 0usize];
6133 ["Offset of field: BNEnumerationMember::value"]
6134 [::std::mem::offset_of!(BNEnumerationMember, value) - 8usize];
6135 ["Offset of field: BNEnumerationMember::isDefault"]
6136 [::std::mem::offset_of!(BNEnumerationMember, isDefault) - 16usize];
6137};
6138impl Default for BNEnumerationMember {
6139 fn default() -> Self {
6140 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6141 unsafe {
6142 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6143 s.assume_init()
6144 }
6145 }
6146}
6147#[repr(C)]
6148#[derive(Debug, Copy, Clone)]
6149pub struct BNFunctionRecognizer {
6150 pub context: *mut ::std::os::raw::c_void,
6151 pub recognizeLowLevelIL: ::std::option::Option<
6152 unsafe extern "C" fn(
6153 ctxt: *mut ::std::os::raw::c_void,
6154 data: *mut BNBinaryView,
6155 func: *mut BNFunction,
6156 il: *mut BNLowLevelILFunction,
6157 ) -> bool,
6158 >,
6159 pub recognizeMediumLevelIL: ::std::option::Option<
6160 unsafe extern "C" fn(
6161 ctxt: *mut ::std::os::raw::c_void,
6162 data: *mut BNBinaryView,
6163 func: *mut BNFunction,
6164 il: *mut BNMediumLevelILFunction,
6165 ) -> bool,
6166 >,
6167}
6168#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6169const _: () = {
6170 ["Size of BNFunctionRecognizer"][::std::mem::size_of::<BNFunctionRecognizer>() - 24usize];
6171 ["Alignment of BNFunctionRecognizer"][::std::mem::align_of::<BNFunctionRecognizer>() - 8usize];
6172 ["Offset of field: BNFunctionRecognizer::context"]
6173 [::std::mem::offset_of!(BNFunctionRecognizer, context) - 0usize];
6174 ["Offset of field: BNFunctionRecognizer::recognizeLowLevelIL"]
6175 [::std::mem::offset_of!(BNFunctionRecognizer, recognizeLowLevelIL) - 8usize];
6176 ["Offset of field: BNFunctionRecognizer::recognizeMediumLevelIL"]
6177 [::std::mem::offset_of!(BNFunctionRecognizer, recognizeMediumLevelIL) - 16usize];
6178};
6179impl Default for BNFunctionRecognizer {
6180 fn default() -> Self {
6181 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6182 unsafe {
6183 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6184 s.assume_init()
6185 }
6186 }
6187}
6188#[repr(C)]
6189#[derive(Debug, Copy, Clone)]
6190pub struct BNCustomRelocationHandler {
6191 pub context: *mut ::std::os::raw::c_void,
6192 pub freeObject: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
6193 pub getRelocationInfo: ::std::option::Option<
6194 unsafe extern "C" fn(
6195 ctxt: *mut ::std::os::raw::c_void,
6196 view: *mut BNBinaryView,
6197 arch: *mut BNArchitecture,
6198 result: *mut BNRelocationInfo,
6199 resultCount: usize,
6200 ) -> bool,
6201 >,
6202 pub applyRelocation: ::std::option::Option<
6203 unsafe extern "C" fn(
6204 ctxt: *mut ::std::os::raw::c_void,
6205 view: *mut BNBinaryView,
6206 arch: *mut BNArchitecture,
6207 reloc: *mut BNRelocation,
6208 dest: *mut u8,
6209 len: usize,
6210 ) -> bool,
6211 >,
6212 pub getOperandForExternalRelocation: ::std::option::Option<
6213 unsafe extern "C" fn(
6214 ctxt: *mut ::std::os::raw::c_void,
6215 data: *const u8,
6216 addr: u64,
6217 length: usize,
6218 il: *mut BNLowLevelILFunction,
6219 relocation: *mut BNRelocation,
6220 ) -> usize,
6221 >,
6222}
6223#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6224const _: () = {
6225 ["Size of BNCustomRelocationHandler"]
6226 [::std::mem::size_of::<BNCustomRelocationHandler>() - 40usize];
6227 ["Alignment of BNCustomRelocationHandler"]
6228 [::std::mem::align_of::<BNCustomRelocationHandler>() - 8usize];
6229 ["Offset of field: BNCustomRelocationHandler::context"]
6230 [::std::mem::offset_of!(BNCustomRelocationHandler, context) - 0usize];
6231 ["Offset of field: BNCustomRelocationHandler::freeObject"]
6232 [::std::mem::offset_of!(BNCustomRelocationHandler, freeObject) - 8usize];
6233 ["Offset of field: BNCustomRelocationHandler::getRelocationInfo"]
6234 [::std::mem::offset_of!(BNCustomRelocationHandler, getRelocationInfo) - 16usize];
6235 ["Offset of field: BNCustomRelocationHandler::applyRelocation"]
6236 [::std::mem::offset_of!(BNCustomRelocationHandler, applyRelocation) - 24usize];
6237 ["Offset of field: BNCustomRelocationHandler::getOperandForExternalRelocation"][::std::mem::offset_of!(
6238 BNCustomRelocationHandler,
6239 getOperandForExternalRelocation
6240 ) - 32usize];
6241};
6242impl Default for BNCustomRelocationHandler {
6243 fn default() -> Self {
6244 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6245 unsafe {
6246 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6247 s.assume_init()
6248 }
6249 }
6250}
6251#[repr(u8)]
6252#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
6253pub enum BNTypeParserOption {
6254 IncludeSystemTypes = 0,
6255 BuiltinMacros = 1,
6256}
6257#[repr(C)]
6258#[derive(Debug, Copy, Clone)]
6259pub struct BNParsedType {
6260 pub name: BNQualifiedName,
6261 pub type_: *mut BNType,
6262 pub isUser: bool,
6263}
6264#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6265const _: () = {
6266 ["Size of BNParsedType"][::std::mem::size_of::<BNParsedType>() - 40usize];
6267 ["Alignment of BNParsedType"][::std::mem::align_of::<BNParsedType>() - 8usize];
6268 ["Offset of field: BNParsedType::name"][::std::mem::offset_of!(BNParsedType, name) - 0usize];
6269 ["Offset of field: BNParsedType::type_"][::std::mem::offset_of!(BNParsedType, type_) - 24usize];
6270 ["Offset of field: BNParsedType::isUser"]
6271 [::std::mem::offset_of!(BNParsedType, isUser) - 32usize];
6272};
6273impl Default for BNParsedType {
6274 fn default() -> Self {
6275 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6276 unsafe {
6277 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6278 s.assume_init()
6279 }
6280 }
6281}
6282#[repr(C)]
6283#[derive(Debug, Copy, Clone)]
6284pub struct BNTypeParserResult {
6285 pub types: *mut BNParsedType,
6286 pub variables: *mut BNParsedType,
6287 pub functions: *mut BNParsedType,
6288 pub typeCount: usize,
6289 pub variableCount: usize,
6290 pub functionCount: usize,
6291}
6292#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6293const _: () = {
6294 ["Size of BNTypeParserResult"][::std::mem::size_of::<BNTypeParserResult>() - 48usize];
6295 ["Alignment of BNTypeParserResult"][::std::mem::align_of::<BNTypeParserResult>() - 8usize];
6296 ["Offset of field: BNTypeParserResult::types"]
6297 [::std::mem::offset_of!(BNTypeParserResult, types) - 0usize];
6298 ["Offset of field: BNTypeParserResult::variables"]
6299 [::std::mem::offset_of!(BNTypeParserResult, variables) - 8usize];
6300 ["Offset of field: BNTypeParserResult::functions"]
6301 [::std::mem::offset_of!(BNTypeParserResult, functions) - 16usize];
6302 ["Offset of field: BNTypeParserResult::typeCount"]
6303 [::std::mem::offset_of!(BNTypeParserResult, typeCount) - 24usize];
6304 ["Offset of field: BNTypeParserResult::variableCount"]
6305 [::std::mem::offset_of!(BNTypeParserResult, variableCount) - 32usize];
6306 ["Offset of field: BNTypeParserResult::functionCount"]
6307 [::std::mem::offset_of!(BNTypeParserResult, functionCount) - 40usize];
6308};
6309impl Default for BNTypeParserResult {
6310 fn default() -> Self {
6311 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6312 unsafe {
6313 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6314 s.assume_init()
6315 }
6316 }
6317}
6318#[repr(u8)]
6319#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
6320pub enum BNTypeParserErrorSeverity {
6321 IgnoredSeverity = 0,
6322 NoteSeverity = 1,
6323 RemarkSeverity = 2,
6324 WarningSeverity = 3,
6325 ErrorSeverity = 4,
6326 FatalSeverity = 5,
6327}
6328#[repr(C)]
6329#[derive(Debug, Copy, Clone)]
6330pub struct BNTypeParserError {
6331 pub severity: BNTypeParserErrorSeverity,
6332 pub message: *mut ::std::os::raw::c_char,
6333 pub fileName: *mut ::std::os::raw::c_char,
6334 pub line: u64,
6335 pub column: u64,
6336}
6337#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6338const _: () = {
6339 ["Size of BNTypeParserError"][::std::mem::size_of::<BNTypeParserError>() - 40usize];
6340 ["Alignment of BNTypeParserError"][::std::mem::align_of::<BNTypeParserError>() - 8usize];
6341 ["Offset of field: BNTypeParserError::severity"]
6342 [::std::mem::offset_of!(BNTypeParserError, severity) - 0usize];
6343 ["Offset of field: BNTypeParserError::message"]
6344 [::std::mem::offset_of!(BNTypeParserError, message) - 8usize];
6345 ["Offset of field: BNTypeParserError::fileName"]
6346 [::std::mem::offset_of!(BNTypeParserError, fileName) - 16usize];
6347 ["Offset of field: BNTypeParserError::line"]
6348 [::std::mem::offset_of!(BNTypeParserError, line) - 24usize];
6349 ["Offset of field: BNTypeParserError::column"]
6350 [::std::mem::offset_of!(BNTypeParserError, column) - 32usize];
6351};
6352impl Default for BNTypeParserError {
6353 fn default() -> Self {
6354 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6355 unsafe {
6356 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6357 s.assume_init()
6358 }
6359 }
6360}
6361#[repr(C)]
6362#[derive(Debug, Copy, Clone)]
6363pub struct BNQualifiedNameList {
6364 pub names: *mut BNQualifiedName,
6365 pub count: usize,
6366}
6367#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6368const _: () = {
6369 ["Size of BNQualifiedNameList"][::std::mem::size_of::<BNQualifiedNameList>() - 16usize];
6370 ["Alignment of BNQualifiedNameList"][::std::mem::align_of::<BNQualifiedNameList>() - 8usize];
6371 ["Offset of field: BNQualifiedNameList::names"]
6372 [::std::mem::offset_of!(BNQualifiedNameList, names) - 0usize];
6373 ["Offset of field: BNQualifiedNameList::count"]
6374 [::std::mem::offset_of!(BNQualifiedNameList, count) - 8usize];
6375};
6376impl Default for BNQualifiedNameList {
6377 fn default() -> Self {
6378 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6379 unsafe {
6380 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6381 s.assume_init()
6382 }
6383 }
6384}
6385#[repr(u8)]
6386#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
6387pub enum BNUpdateResult {
6388 UpdateFailed = 0,
6389 UpdateSuccess = 1,
6390 AlreadyUpToDate = 2,
6391 UpdateAvailable = 3,
6392}
6393#[repr(C)]
6394#[derive(Debug, Copy, Clone)]
6395pub struct BNUpdateChannel {
6396 pub name: *mut ::std::os::raw::c_char,
6397 pub description: *mut ::std::os::raw::c_char,
6398 pub latestVersion: *mut ::std::os::raw::c_char,
6399}
6400#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6401const _: () = {
6402 ["Size of BNUpdateChannel"][::std::mem::size_of::<BNUpdateChannel>() - 24usize];
6403 ["Alignment of BNUpdateChannel"][::std::mem::align_of::<BNUpdateChannel>() - 8usize];
6404 ["Offset of field: BNUpdateChannel::name"]
6405 [::std::mem::offset_of!(BNUpdateChannel, name) - 0usize];
6406 ["Offset of field: BNUpdateChannel::description"]
6407 [::std::mem::offset_of!(BNUpdateChannel, description) - 8usize];
6408 ["Offset of field: BNUpdateChannel::latestVersion"]
6409 [::std::mem::offset_of!(BNUpdateChannel, latestVersion) - 16usize];
6410};
6411impl Default for BNUpdateChannel {
6412 fn default() -> Self {
6413 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6414 unsafe {
6415 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6416 s.assume_init()
6417 }
6418 }
6419}
6420#[repr(C)]
6421#[derive(Debug, Copy, Clone)]
6422pub struct BNChangelogEntry {
6423 pub version: BNVersionInfo,
6424 pub notes: *mut ::std::os::raw::c_char,
6425 pub time: u64,
6426}
6427#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6428const _: () = {
6429 ["Size of BNChangelogEntry"][::std::mem::size_of::<BNChangelogEntry>() - 40usize];
6430 ["Alignment of BNChangelogEntry"][::std::mem::align_of::<BNChangelogEntry>() - 8usize];
6431 ["Offset of field: BNChangelogEntry::version"]
6432 [::std::mem::offset_of!(BNChangelogEntry, version) - 0usize];
6433 ["Offset of field: BNChangelogEntry::notes"]
6434 [::std::mem::offset_of!(BNChangelogEntry, notes) - 24usize];
6435 ["Offset of field: BNChangelogEntry::time"]
6436 [::std::mem::offset_of!(BNChangelogEntry, time) - 32usize];
6437};
6438impl Default for BNChangelogEntry {
6439 fn default() -> Self {
6440 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6441 unsafe {
6442 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6443 s.assume_init()
6444 }
6445 }
6446}
6447#[repr(C)]
6448#[derive(Debug, Copy, Clone)]
6449pub struct BNUpdateVersionNew {
6450 pub version: BNVersionInfo,
6451 pub name: *mut ::std::os::raw::c_char,
6452 pub time: u64,
6453}
6454#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6455const _: () = {
6456 ["Size of BNUpdateVersionNew"][::std::mem::size_of::<BNUpdateVersionNew>() - 40usize];
6457 ["Alignment of BNUpdateVersionNew"][::std::mem::align_of::<BNUpdateVersionNew>() - 8usize];
6458 ["Offset of field: BNUpdateVersionNew::version"]
6459 [::std::mem::offset_of!(BNUpdateVersionNew, version) - 0usize];
6460 ["Offset of field: BNUpdateVersionNew::name"]
6461 [::std::mem::offset_of!(BNUpdateVersionNew, name) - 24usize];
6462 ["Offset of field: BNUpdateVersionNew::time"]
6463 [::std::mem::offset_of!(BNUpdateVersionNew, time) - 32usize];
6464};
6465impl Default for BNUpdateVersionNew {
6466 fn default() -> Self {
6467 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6468 unsafe {
6469 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6470 s.assume_init()
6471 }
6472 }
6473}
6474#[repr(C)]
6475#[derive(Debug, Copy, Clone)]
6476pub struct BNUpdateChannelFullInfo {
6477 pub versions: *mut BNUpdateVersionNew,
6478 pub versionCount: u64,
6479 pub changelogEntries: *mut BNChangelogEntry,
6480 pub changelogEntryCount: u64,
6481 pub name: *mut ::std::os::raw::c_char,
6482 pub desc: *mut ::std::os::raw::c_char,
6483 pub latestVersion: *mut ::std::os::raw::c_char,
6484}
6485#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6486const _: () = {
6487 ["Size of BNUpdateChannelFullInfo"][::std::mem::size_of::<BNUpdateChannelFullInfo>() - 56usize];
6488 ["Alignment of BNUpdateChannelFullInfo"]
6489 [::std::mem::align_of::<BNUpdateChannelFullInfo>() - 8usize];
6490 ["Offset of field: BNUpdateChannelFullInfo::versions"]
6491 [::std::mem::offset_of!(BNUpdateChannelFullInfo, versions) - 0usize];
6492 ["Offset of field: BNUpdateChannelFullInfo::versionCount"]
6493 [::std::mem::offset_of!(BNUpdateChannelFullInfo, versionCount) - 8usize];
6494 ["Offset of field: BNUpdateChannelFullInfo::changelogEntries"]
6495 [::std::mem::offset_of!(BNUpdateChannelFullInfo, changelogEntries) - 16usize];
6496 ["Offset of field: BNUpdateChannelFullInfo::changelogEntryCount"]
6497 [::std::mem::offset_of!(BNUpdateChannelFullInfo, changelogEntryCount) - 24usize];
6498 ["Offset of field: BNUpdateChannelFullInfo::name"]
6499 [::std::mem::offset_of!(BNUpdateChannelFullInfo, name) - 32usize];
6500 ["Offset of field: BNUpdateChannelFullInfo::desc"]
6501 [::std::mem::offset_of!(BNUpdateChannelFullInfo, desc) - 40usize];
6502 ["Offset of field: BNUpdateChannelFullInfo::latestVersion"]
6503 [::std::mem::offset_of!(BNUpdateChannelFullInfo, latestVersion) - 48usize];
6504};
6505impl Default for BNUpdateChannelFullInfo {
6506 fn default() -> Self {
6507 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6508 unsafe {
6509 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6510 s.assume_init()
6511 }
6512 }
6513}
6514#[repr(C)]
6515#[derive(Debug, Copy, Clone)]
6516pub struct BNUpdateVersion {
6517 pub version: *mut ::std::os::raw::c_char,
6518 pub notes: *mut ::std::os::raw::c_char,
6519 pub time: u64,
6520}
6521#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6522const _: () = {
6523 ["Size of BNUpdateVersion"][::std::mem::size_of::<BNUpdateVersion>() - 24usize];
6524 ["Alignment of BNUpdateVersion"][::std::mem::align_of::<BNUpdateVersion>() - 8usize];
6525 ["Offset of field: BNUpdateVersion::version"]
6526 [::std::mem::offset_of!(BNUpdateVersion, version) - 0usize];
6527 ["Offset of field: BNUpdateVersion::notes"]
6528 [::std::mem::offset_of!(BNUpdateVersion, notes) - 8usize];
6529 ["Offset of field: BNUpdateVersion::time"]
6530 [::std::mem::offset_of!(BNUpdateVersion, time) - 16usize];
6531};
6532impl Default for BNUpdateVersion {
6533 fn default() -> Self {
6534 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6535 unsafe {
6536 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6537 s.assume_init()
6538 }
6539 }
6540}
6541#[repr(C)]
6542#[derive(Debug, Copy, Clone)]
6543pub struct BNStringReference {
6544 pub type_: BNStringType,
6545 pub start: u64,
6546 pub length: usize,
6547}
6548#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6549const _: () = {
6550 ["Size of BNStringReference"][::std::mem::size_of::<BNStringReference>() - 24usize];
6551 ["Alignment of BNStringReference"][::std::mem::align_of::<BNStringReference>() - 8usize];
6552 ["Offset of field: BNStringReference::type_"]
6553 [::std::mem::offset_of!(BNStringReference, type_) - 0usize];
6554 ["Offset of field: BNStringReference::start"]
6555 [::std::mem::offset_of!(BNStringReference, start) - 8usize];
6556 ["Offset of field: BNStringReference::length"]
6557 [::std::mem::offset_of!(BNStringReference, length) - 16usize];
6558};
6559impl Default for BNStringReference {
6560 fn default() -> Self {
6561 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6562 unsafe {
6563 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6564 s.assume_init()
6565 }
6566 }
6567}
6568#[repr(u8)]
6569#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
6570pub enum BNPluginCommandType {
6571 DefaultPluginCommand = 0,
6572 AddressPluginCommand = 1,
6573 RangePluginCommand = 2,
6574 FunctionPluginCommand = 3,
6575 LowLevelILFunctionPluginCommand = 4,
6576 LowLevelILInstructionPluginCommand = 5,
6577 MediumLevelILFunctionPluginCommand = 6,
6578 MediumLevelILInstructionPluginCommand = 7,
6579 HighLevelILFunctionPluginCommand = 8,
6580 HighLevelILInstructionPluginCommand = 9,
6581 ProjectPluginCommand = 10,
6582 GlobalPluginCommand = 11,
6583}
6584#[repr(C)]
6585#[derive(Debug, Copy, Clone)]
6586pub struct BNPluginCommand {
6587 pub name: *mut ::std::os::raw::c_char,
6588 pub description: *mut ::std::os::raw::c_char,
6589 pub type_: BNPluginCommandType,
6590 pub context: *mut ::std::os::raw::c_void,
6591 pub globalCommand:
6592 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
6593 pub defaultCommand: ::std::option::Option<
6594 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, view: *mut BNBinaryView),
6595 >,
6596 pub addressCommand: ::std::option::Option<
6597 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, view: *mut BNBinaryView, addr: u64),
6598 >,
6599 pub rangeCommand: ::std::option::Option<
6600 unsafe extern "C" fn(
6601 ctxt: *mut ::std::os::raw::c_void,
6602 view: *mut BNBinaryView,
6603 addr: u64,
6604 len: u64,
6605 ),
6606 >,
6607 pub functionCommand: ::std::option::Option<
6608 unsafe extern "C" fn(
6609 ctxt: *mut ::std::os::raw::c_void,
6610 view: *mut BNBinaryView,
6611 func: *mut BNFunction,
6612 ),
6613 >,
6614 pub lowLevelILFunctionCommand: ::std::option::Option<
6615 unsafe extern "C" fn(
6616 ctxt: *mut ::std::os::raw::c_void,
6617 view: *mut BNBinaryView,
6618 func: *mut BNLowLevelILFunction,
6619 ),
6620 >,
6621 pub lowLevelILInstructionCommand: ::std::option::Option<
6622 unsafe extern "C" fn(
6623 ctxt: *mut ::std::os::raw::c_void,
6624 view: *mut BNBinaryView,
6625 func: *mut BNLowLevelILFunction,
6626 instr: usize,
6627 ),
6628 >,
6629 pub mediumLevelILFunctionCommand: ::std::option::Option<
6630 unsafe extern "C" fn(
6631 ctxt: *mut ::std::os::raw::c_void,
6632 view: *mut BNBinaryView,
6633 func: *mut BNMediumLevelILFunction,
6634 ),
6635 >,
6636 pub mediumLevelILInstructionCommand: ::std::option::Option<
6637 unsafe extern "C" fn(
6638 ctxt: *mut ::std::os::raw::c_void,
6639 view: *mut BNBinaryView,
6640 func: *mut BNMediumLevelILFunction,
6641 instr: usize,
6642 ),
6643 >,
6644 pub highLevelILFunctionCommand: ::std::option::Option<
6645 unsafe extern "C" fn(
6646 ctxt: *mut ::std::os::raw::c_void,
6647 view: *mut BNBinaryView,
6648 func: *mut BNHighLevelILFunction,
6649 ),
6650 >,
6651 pub highLevelILInstructionCommand: ::std::option::Option<
6652 unsafe extern "C" fn(
6653 ctxt: *mut ::std::os::raw::c_void,
6654 view: *mut BNBinaryView,
6655 func: *mut BNHighLevelILFunction,
6656 instr: usize,
6657 ),
6658 >,
6659 pub projectCommand: ::std::option::Option<
6660 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, view: *mut BNProject),
6661 >,
6662 pub globalIsValid:
6663 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
6664 pub defaultIsValid: ::std::option::Option<
6665 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, view: *mut BNBinaryView) -> bool,
6666 >,
6667 pub addressIsValid: ::std::option::Option<
6668 unsafe extern "C" fn(
6669 ctxt: *mut ::std::os::raw::c_void,
6670 view: *mut BNBinaryView,
6671 addr: u64,
6672 ) -> bool,
6673 >,
6674 pub rangeIsValid: ::std::option::Option<
6675 unsafe extern "C" fn(
6676 ctxt: *mut ::std::os::raw::c_void,
6677 view: *mut BNBinaryView,
6678 addr: u64,
6679 len: u64,
6680 ) -> bool,
6681 >,
6682 pub functionIsValid: ::std::option::Option<
6683 unsafe extern "C" fn(
6684 ctxt: *mut ::std::os::raw::c_void,
6685 view: *mut BNBinaryView,
6686 func: *mut BNFunction,
6687 ) -> bool,
6688 >,
6689 pub lowLevelILFunctionIsValid: ::std::option::Option<
6690 unsafe extern "C" fn(
6691 ctxt: *mut ::std::os::raw::c_void,
6692 view: *mut BNBinaryView,
6693 func: *mut BNLowLevelILFunction,
6694 ) -> bool,
6695 >,
6696 pub lowLevelILInstructionIsValid: ::std::option::Option<
6697 unsafe extern "C" fn(
6698 ctxt: *mut ::std::os::raw::c_void,
6699 view: *mut BNBinaryView,
6700 func: *mut BNLowLevelILFunction,
6701 instr: usize,
6702 ) -> bool,
6703 >,
6704 pub mediumLevelILFunctionIsValid: ::std::option::Option<
6705 unsafe extern "C" fn(
6706 ctxt: *mut ::std::os::raw::c_void,
6707 view: *mut BNBinaryView,
6708 func: *mut BNMediumLevelILFunction,
6709 ) -> bool,
6710 >,
6711 pub mediumLevelILInstructionIsValid: ::std::option::Option<
6712 unsafe extern "C" fn(
6713 ctxt: *mut ::std::os::raw::c_void,
6714 view: *mut BNBinaryView,
6715 func: *mut BNMediumLevelILFunction,
6716 instr: usize,
6717 ) -> bool,
6718 >,
6719 pub highLevelILFunctionIsValid: ::std::option::Option<
6720 unsafe extern "C" fn(
6721 ctxt: *mut ::std::os::raw::c_void,
6722 view: *mut BNBinaryView,
6723 func: *mut BNHighLevelILFunction,
6724 ) -> bool,
6725 >,
6726 pub highLevelILInstructionIsValid: ::std::option::Option<
6727 unsafe extern "C" fn(
6728 ctxt: *mut ::std::os::raw::c_void,
6729 view: *mut BNBinaryView,
6730 func: *mut BNHighLevelILFunction,
6731 instr: usize,
6732 ) -> bool,
6733 >,
6734 pub projectIsValid: ::std::option::Option<
6735 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, view: *mut BNProject) -> bool,
6736 >,
6737}
6738#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6739const _: () = {
6740 ["Size of BNPluginCommand"][::std::mem::size_of::<BNPluginCommand>() - 224usize];
6741 ["Alignment of BNPluginCommand"][::std::mem::align_of::<BNPluginCommand>() - 8usize];
6742 ["Offset of field: BNPluginCommand::name"]
6743 [::std::mem::offset_of!(BNPluginCommand, name) - 0usize];
6744 ["Offset of field: BNPluginCommand::description"]
6745 [::std::mem::offset_of!(BNPluginCommand, description) - 8usize];
6746 ["Offset of field: BNPluginCommand::type_"]
6747 [::std::mem::offset_of!(BNPluginCommand, type_) - 16usize];
6748 ["Offset of field: BNPluginCommand::context"]
6749 [::std::mem::offset_of!(BNPluginCommand, context) - 24usize];
6750 ["Offset of field: BNPluginCommand::globalCommand"]
6751 [::std::mem::offset_of!(BNPluginCommand, globalCommand) - 32usize];
6752 ["Offset of field: BNPluginCommand::defaultCommand"]
6753 [::std::mem::offset_of!(BNPluginCommand, defaultCommand) - 40usize];
6754 ["Offset of field: BNPluginCommand::addressCommand"]
6755 [::std::mem::offset_of!(BNPluginCommand, addressCommand) - 48usize];
6756 ["Offset of field: BNPluginCommand::rangeCommand"]
6757 [::std::mem::offset_of!(BNPluginCommand, rangeCommand) - 56usize];
6758 ["Offset of field: BNPluginCommand::functionCommand"]
6759 [::std::mem::offset_of!(BNPluginCommand, functionCommand) - 64usize];
6760 ["Offset of field: BNPluginCommand::lowLevelILFunctionCommand"]
6761 [::std::mem::offset_of!(BNPluginCommand, lowLevelILFunctionCommand) - 72usize];
6762 ["Offset of field: BNPluginCommand::lowLevelILInstructionCommand"]
6763 [::std::mem::offset_of!(BNPluginCommand, lowLevelILInstructionCommand) - 80usize];
6764 ["Offset of field: BNPluginCommand::mediumLevelILFunctionCommand"]
6765 [::std::mem::offset_of!(BNPluginCommand, mediumLevelILFunctionCommand) - 88usize];
6766 ["Offset of field: BNPluginCommand::mediumLevelILInstructionCommand"]
6767 [::std::mem::offset_of!(BNPluginCommand, mediumLevelILInstructionCommand) - 96usize];
6768 ["Offset of field: BNPluginCommand::highLevelILFunctionCommand"]
6769 [::std::mem::offset_of!(BNPluginCommand, highLevelILFunctionCommand) - 104usize];
6770 ["Offset of field: BNPluginCommand::highLevelILInstructionCommand"]
6771 [::std::mem::offset_of!(BNPluginCommand, highLevelILInstructionCommand) - 112usize];
6772 ["Offset of field: BNPluginCommand::projectCommand"]
6773 [::std::mem::offset_of!(BNPluginCommand, projectCommand) - 120usize];
6774 ["Offset of field: BNPluginCommand::globalIsValid"]
6775 [::std::mem::offset_of!(BNPluginCommand, globalIsValid) - 128usize];
6776 ["Offset of field: BNPluginCommand::defaultIsValid"]
6777 [::std::mem::offset_of!(BNPluginCommand, defaultIsValid) - 136usize];
6778 ["Offset of field: BNPluginCommand::addressIsValid"]
6779 [::std::mem::offset_of!(BNPluginCommand, addressIsValid) - 144usize];
6780 ["Offset of field: BNPluginCommand::rangeIsValid"]
6781 [::std::mem::offset_of!(BNPluginCommand, rangeIsValid) - 152usize];
6782 ["Offset of field: BNPluginCommand::functionIsValid"]
6783 [::std::mem::offset_of!(BNPluginCommand, functionIsValid) - 160usize];
6784 ["Offset of field: BNPluginCommand::lowLevelILFunctionIsValid"]
6785 [::std::mem::offset_of!(BNPluginCommand, lowLevelILFunctionIsValid) - 168usize];
6786 ["Offset of field: BNPluginCommand::lowLevelILInstructionIsValid"]
6787 [::std::mem::offset_of!(BNPluginCommand, lowLevelILInstructionIsValid) - 176usize];
6788 ["Offset of field: BNPluginCommand::mediumLevelILFunctionIsValid"]
6789 [::std::mem::offset_of!(BNPluginCommand, mediumLevelILFunctionIsValid) - 184usize];
6790 ["Offset of field: BNPluginCommand::mediumLevelILInstructionIsValid"]
6791 [::std::mem::offset_of!(BNPluginCommand, mediumLevelILInstructionIsValid) - 192usize];
6792 ["Offset of field: BNPluginCommand::highLevelILFunctionIsValid"]
6793 [::std::mem::offset_of!(BNPluginCommand, highLevelILFunctionIsValid) - 200usize];
6794 ["Offset of field: BNPluginCommand::highLevelILInstructionIsValid"]
6795 [::std::mem::offset_of!(BNPluginCommand, highLevelILInstructionIsValid) - 208usize];
6796 ["Offset of field: BNPluginCommand::projectIsValid"]
6797 [::std::mem::offset_of!(BNPluginCommand, projectIsValid) - 216usize];
6798};
6799impl Default for BNPluginCommand {
6800 fn default() -> Self {
6801 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6802 unsafe {
6803 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6804 s.assume_init()
6805 }
6806 }
6807}
6808#[repr(C)]
6809#[derive(Debug, Copy, Clone)]
6810pub struct BNCustomCallingConvention {
6811 pub context: *mut ::std::os::raw::c_void,
6812 pub freeObject: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
6813 pub getCallerSavedRegisters: ::std::option::Option<
6814 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
6815 >,
6816 pub getCalleeSavedRegisters: ::std::option::Option<
6817 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
6818 >,
6819 pub getIntegerArgumentRegisters: ::std::option::Option<
6820 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
6821 >,
6822 pub getFloatArgumentRegisters: ::std::option::Option<
6823 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
6824 >,
6825 pub getRequiredArgumentRegisters: ::std::option::Option<
6826 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
6827 >,
6828 pub getRequiredClobberedRegisters: ::std::option::Option<
6829 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
6830 >,
6831 pub freeRegisterList: ::std::option::Option<
6832 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, regs: *mut u32, len: usize),
6833 >,
6834 pub areArgumentRegistersSharedIndex:
6835 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
6836 pub isStackReservedForArgumentRegisters:
6837 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
6838 pub isStackAdjustedOnReturn:
6839 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
6840 pub isEligibleForHeuristics:
6841 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
6842 pub getIntegerReturnValueRegister:
6843 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> u32>,
6844 pub getHighIntegerReturnValueRegister:
6845 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> u32>,
6846 pub getFloatReturnValueRegister:
6847 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> u32>,
6848 pub getGlobalPointerRegister:
6849 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> u32>,
6850 pub getImplicitlyDefinedRegisters: ::std::option::Option<
6851 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
6852 >,
6853 pub getIncomingRegisterValue: ::std::option::Option<
6854 unsafe extern "C" fn(
6855 ctxt: *mut ::std::os::raw::c_void,
6856 reg: u32,
6857 func: *mut BNFunction,
6858 result: *mut BNRegisterValue,
6859 ),
6860 >,
6861 pub getIncomingFlagValue: ::std::option::Option<
6862 unsafe extern "C" fn(
6863 ctxt: *mut ::std::os::raw::c_void,
6864 flag: u32,
6865 func: *mut BNFunction,
6866 result: *mut BNRegisterValue,
6867 ),
6868 >,
6869 pub getIncomingVariableForParameterVariable: ::std::option::Option<
6870 unsafe extern "C" fn(
6871 ctxt: *mut ::std::os::raw::c_void,
6872 var: *const BNVariable,
6873 func: *mut BNFunction,
6874 result: *mut BNVariable,
6875 ),
6876 >,
6877 pub getParameterVariableForIncomingVariable: ::std::option::Option<
6878 unsafe extern "C" fn(
6879 ctxt: *mut ::std::os::raw::c_void,
6880 var: *const BNVariable,
6881 func: *mut BNFunction,
6882 result: *mut BNVariable,
6883 ),
6884 >,
6885 pub areArgumentRegistersUsedForVarArgs:
6886 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
6887}
6888#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6889const _: () = {
6890 ["Size of BNCustomCallingConvention"]
6891 [::std::mem::size_of::<BNCustomCallingConvention>() - 184usize];
6892 ["Alignment of BNCustomCallingConvention"]
6893 [::std::mem::align_of::<BNCustomCallingConvention>() - 8usize];
6894 ["Offset of field: BNCustomCallingConvention::context"]
6895 [::std::mem::offset_of!(BNCustomCallingConvention, context) - 0usize];
6896 ["Offset of field: BNCustomCallingConvention::freeObject"]
6897 [::std::mem::offset_of!(BNCustomCallingConvention, freeObject) - 8usize];
6898 ["Offset of field: BNCustomCallingConvention::getCallerSavedRegisters"]
6899 [::std::mem::offset_of!(BNCustomCallingConvention, getCallerSavedRegisters) - 16usize];
6900 ["Offset of field: BNCustomCallingConvention::getCalleeSavedRegisters"]
6901 [::std::mem::offset_of!(BNCustomCallingConvention, getCalleeSavedRegisters) - 24usize];
6902 ["Offset of field: BNCustomCallingConvention::getIntegerArgumentRegisters"]
6903 [::std::mem::offset_of!(BNCustomCallingConvention, getIntegerArgumentRegisters) - 32usize];
6904 ["Offset of field: BNCustomCallingConvention::getFloatArgumentRegisters"]
6905 [::std::mem::offset_of!(BNCustomCallingConvention, getFloatArgumentRegisters) - 40usize];
6906 ["Offset of field: BNCustomCallingConvention::getRequiredArgumentRegisters"]
6907 [::std::mem::offset_of!(BNCustomCallingConvention, getRequiredArgumentRegisters) - 48usize];
6908 ["Offset of field: BNCustomCallingConvention::getRequiredClobberedRegisters"][::std::mem::offset_of!(
6909 BNCustomCallingConvention,
6910 getRequiredClobberedRegisters
6911 ) - 56usize];
6912 ["Offset of field: BNCustomCallingConvention::freeRegisterList"]
6913 [::std::mem::offset_of!(BNCustomCallingConvention, freeRegisterList) - 64usize];
6914 ["Offset of field: BNCustomCallingConvention::areArgumentRegistersSharedIndex"][::std::mem::offset_of!(
6915 BNCustomCallingConvention,
6916 areArgumentRegistersSharedIndex
6917 ) - 72usize];
6918 ["Offset of field: BNCustomCallingConvention::isStackReservedForArgumentRegisters"][::std::mem::offset_of!(
6919 BNCustomCallingConvention,
6920 isStackReservedForArgumentRegisters
6921 )
6922 - 80usize];
6923 ["Offset of field: BNCustomCallingConvention::isStackAdjustedOnReturn"]
6924 [::std::mem::offset_of!(BNCustomCallingConvention, isStackAdjustedOnReturn) - 88usize];
6925 ["Offset of field: BNCustomCallingConvention::isEligibleForHeuristics"]
6926 [::std::mem::offset_of!(BNCustomCallingConvention, isEligibleForHeuristics) - 96usize];
6927 ["Offset of field: BNCustomCallingConvention::getIntegerReturnValueRegister"][::std::mem::offset_of!(
6928 BNCustomCallingConvention,
6929 getIntegerReturnValueRegister
6930 ) - 104usize];
6931 ["Offset of field: BNCustomCallingConvention::getHighIntegerReturnValueRegister"][::std::mem::offset_of!(
6932 BNCustomCallingConvention,
6933 getHighIntegerReturnValueRegister
6934 ) - 112usize];
6935 ["Offset of field: BNCustomCallingConvention::getFloatReturnValueRegister"]
6936 [::std::mem::offset_of!(BNCustomCallingConvention, getFloatReturnValueRegister) - 120usize];
6937 ["Offset of field: BNCustomCallingConvention::getGlobalPointerRegister"]
6938 [::std::mem::offset_of!(BNCustomCallingConvention, getGlobalPointerRegister) - 128usize];
6939 ["Offset of field: BNCustomCallingConvention::getImplicitlyDefinedRegisters"][::std::mem::offset_of!(
6940 BNCustomCallingConvention,
6941 getImplicitlyDefinedRegisters
6942 ) - 136usize];
6943 ["Offset of field: BNCustomCallingConvention::getIncomingRegisterValue"]
6944 [::std::mem::offset_of!(BNCustomCallingConvention, getIncomingRegisterValue) - 144usize];
6945 ["Offset of field: BNCustomCallingConvention::getIncomingFlagValue"]
6946 [::std::mem::offset_of!(BNCustomCallingConvention, getIncomingFlagValue) - 152usize];
6947 ["Offset of field: BNCustomCallingConvention::getIncomingVariableForParameterVariable"][::std::mem::offset_of!(
6948 BNCustomCallingConvention,
6949 getIncomingVariableForParameterVariable
6950 )
6951 - 160usize];
6952 ["Offset of field: BNCustomCallingConvention::getParameterVariableForIncomingVariable"][::std::mem::offset_of!(
6953 BNCustomCallingConvention,
6954 getParameterVariableForIncomingVariable
6955 )
6956 - 168usize];
6957 ["Offset of field: BNCustomCallingConvention::areArgumentRegistersUsedForVarArgs"][::std::mem::offset_of!(
6958 BNCustomCallingConvention,
6959 areArgumentRegistersUsedForVarArgs
6960 )
6961 - 176usize];
6962};
6963impl Default for BNCustomCallingConvention {
6964 fn default() -> Self {
6965 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6966 unsafe {
6967 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6968 s.assume_init()
6969 }
6970 }
6971}
6972#[repr(C)]
6973#[derive(Debug, Copy, Clone)]
6974pub struct BNVariableNameAndType {
6975 pub var: BNVariable,
6976 pub type_: *mut BNType,
6977 pub name: *mut ::std::os::raw::c_char,
6978 pub autoDefined: bool,
6979 pub typeConfidence: u8,
6980}
6981#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6982const _: () = {
6983 ["Size of BNVariableNameAndType"][::std::mem::size_of::<BNVariableNameAndType>() - 40usize];
6984 ["Alignment of BNVariableNameAndType"]
6985 [::std::mem::align_of::<BNVariableNameAndType>() - 8usize];
6986 ["Offset of field: BNVariableNameAndType::var"]
6987 [::std::mem::offset_of!(BNVariableNameAndType, var) - 0usize];
6988 ["Offset of field: BNVariableNameAndType::type_"]
6989 [::std::mem::offset_of!(BNVariableNameAndType, type_) - 16usize];
6990 ["Offset of field: BNVariableNameAndType::name"]
6991 [::std::mem::offset_of!(BNVariableNameAndType, name) - 24usize];
6992 ["Offset of field: BNVariableNameAndType::autoDefined"]
6993 [::std::mem::offset_of!(BNVariableNameAndType, autoDefined) - 32usize];
6994 ["Offset of field: BNVariableNameAndType::typeConfidence"]
6995 [::std::mem::offset_of!(BNVariableNameAndType, typeConfidence) - 33usize];
6996};
6997impl Default for BNVariableNameAndType {
6998 fn default() -> Self {
6999 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7000 unsafe {
7001 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7002 s.assume_init()
7003 }
7004 }
7005}
7006#[repr(C)]
7007#[derive(Debug, Copy, Clone)]
7008pub struct BNStackVariableReference {
7009 pub sourceOperand: u32,
7010 pub typeConfidence: u8,
7011 pub type_: *mut BNType,
7012 pub name: *mut ::std::os::raw::c_char,
7013 pub varIdentifier: u64,
7014 pub referencedOffset: i64,
7015 pub size: usize,
7016}
7017#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7018const _: () = {
7019 ["Size of BNStackVariableReference"]
7020 [::std::mem::size_of::<BNStackVariableReference>() - 48usize];
7021 ["Alignment of BNStackVariableReference"]
7022 [::std::mem::align_of::<BNStackVariableReference>() - 8usize];
7023 ["Offset of field: BNStackVariableReference::sourceOperand"]
7024 [::std::mem::offset_of!(BNStackVariableReference, sourceOperand) - 0usize];
7025 ["Offset of field: BNStackVariableReference::typeConfidence"]
7026 [::std::mem::offset_of!(BNStackVariableReference, typeConfidence) - 4usize];
7027 ["Offset of field: BNStackVariableReference::type_"]
7028 [::std::mem::offset_of!(BNStackVariableReference, type_) - 8usize];
7029 ["Offset of field: BNStackVariableReference::name"]
7030 [::std::mem::offset_of!(BNStackVariableReference, name) - 16usize];
7031 ["Offset of field: BNStackVariableReference::varIdentifier"]
7032 [::std::mem::offset_of!(BNStackVariableReference, varIdentifier) - 24usize];
7033 ["Offset of field: BNStackVariableReference::referencedOffset"]
7034 [::std::mem::offset_of!(BNStackVariableReference, referencedOffset) - 32usize];
7035 ["Offset of field: BNStackVariableReference::size"]
7036 [::std::mem::offset_of!(BNStackVariableReference, size) - 40usize];
7037};
7038impl Default for BNStackVariableReference {
7039 fn default() -> Self {
7040 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7041 unsafe {
7042 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7043 s.assume_init()
7044 }
7045 }
7046}
7047#[repr(C)]
7048#[derive(Debug, Copy, Clone)]
7049pub struct BNIndirectBranchInfo {
7050 pub sourceArch: *mut BNArchitecture,
7051 pub sourceAddr: u64,
7052 pub destArch: *mut BNArchitecture,
7053 pub destAddr: u64,
7054 pub autoDefined: bool,
7055}
7056#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7057const _: () = {
7058 ["Size of BNIndirectBranchInfo"][::std::mem::size_of::<BNIndirectBranchInfo>() - 40usize];
7059 ["Alignment of BNIndirectBranchInfo"][::std::mem::align_of::<BNIndirectBranchInfo>() - 8usize];
7060 ["Offset of field: BNIndirectBranchInfo::sourceArch"]
7061 [::std::mem::offset_of!(BNIndirectBranchInfo, sourceArch) - 0usize];
7062 ["Offset of field: BNIndirectBranchInfo::sourceAddr"]
7063 [::std::mem::offset_of!(BNIndirectBranchInfo, sourceAddr) - 8usize];
7064 ["Offset of field: BNIndirectBranchInfo::destArch"]
7065 [::std::mem::offset_of!(BNIndirectBranchInfo, destArch) - 16usize];
7066 ["Offset of field: BNIndirectBranchInfo::destAddr"]
7067 [::std::mem::offset_of!(BNIndirectBranchInfo, destAddr) - 24usize];
7068 ["Offset of field: BNIndirectBranchInfo::autoDefined"]
7069 [::std::mem::offset_of!(BNIndirectBranchInfo, autoDefined) - 32usize];
7070};
7071impl Default for BNIndirectBranchInfo {
7072 fn default() -> Self {
7073 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7074 unsafe {
7075 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7076 s.assume_init()
7077 }
7078 }
7079}
7080#[repr(C)]
7081#[derive(Debug, Copy, Clone)]
7082pub struct BNArchitectureAndAddress {
7083 pub arch: *mut BNArchitecture,
7084 pub address: u64,
7085}
7086#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7087const _: () = {
7088 ["Size of BNArchitectureAndAddress"]
7089 [::std::mem::size_of::<BNArchitectureAndAddress>() - 16usize];
7090 ["Alignment of BNArchitectureAndAddress"]
7091 [::std::mem::align_of::<BNArchitectureAndAddress>() - 8usize];
7092 ["Offset of field: BNArchitectureAndAddress::arch"]
7093 [::std::mem::offset_of!(BNArchitectureAndAddress, arch) - 0usize];
7094 ["Offset of field: BNArchitectureAndAddress::address"]
7095 [::std::mem::offset_of!(BNArchitectureAndAddress, address) - 8usize];
7096};
7097impl Default for BNArchitectureAndAddress {
7098 fn default() -> Self {
7099 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7100 unsafe {
7101 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7102 s.assume_init()
7103 }
7104 }
7105}
7106#[repr(C)]
7107#[derive(Debug, Copy, Clone)]
7108pub struct BNUserVariableValue {
7109 pub var: BNVariable,
7110 pub defSite: BNArchitectureAndAddress,
7111 pub after: bool,
7112 pub value: BNPossibleValueSet,
7113}
7114#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7115const _: () = {
7116 ["Size of BNUserVariableValue"][::std::mem::size_of::<BNUserVariableValue>() - 104usize];
7117 ["Alignment of BNUserVariableValue"][::std::mem::align_of::<BNUserVariableValue>() - 8usize];
7118 ["Offset of field: BNUserVariableValue::var"]
7119 [::std::mem::offset_of!(BNUserVariableValue, var) - 0usize];
7120 ["Offset of field: BNUserVariableValue::defSite"]
7121 [::std::mem::offset_of!(BNUserVariableValue, defSite) - 16usize];
7122 ["Offset of field: BNUserVariableValue::after"]
7123 [::std::mem::offset_of!(BNUserVariableValue, after) - 32usize];
7124 ["Offset of field: BNUserVariableValue::value"]
7125 [::std::mem::offset_of!(BNUserVariableValue, value) - 40usize];
7126};
7127impl Default for BNUserVariableValue {
7128 fn default() -> Self {
7129 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7130 unsafe {
7131 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7132 s.assume_init()
7133 }
7134 }
7135}
7136#[repr(C)]
7137#[derive(Debug, Copy, Clone)]
7138pub struct BNVariableFieldResolutionInfo {
7139 pub location: BNArchitectureAndAddress,
7140 pub var: BNVariable,
7141 pub info: *mut BNFieldResolutionInfo,
7142}
7143#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7144const _: () = {
7145 ["Size of BNVariableFieldResolutionInfo"]
7146 [::std::mem::size_of::<BNVariableFieldResolutionInfo>() - 40usize];
7147 ["Alignment of BNVariableFieldResolutionInfo"]
7148 [::std::mem::align_of::<BNVariableFieldResolutionInfo>() - 8usize];
7149 ["Offset of field: BNVariableFieldResolutionInfo::location"]
7150 [::std::mem::offset_of!(BNVariableFieldResolutionInfo, location) - 0usize];
7151 ["Offset of field: BNVariableFieldResolutionInfo::var"]
7152 [::std::mem::offset_of!(BNVariableFieldResolutionInfo, var) - 16usize];
7153 ["Offset of field: BNVariableFieldResolutionInfo::info"]
7154 [::std::mem::offset_of!(BNVariableFieldResolutionInfo, info) - 32usize];
7155};
7156impl Default for BNVariableFieldResolutionInfo {
7157 fn default() -> Self {
7158 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7159 unsafe {
7160 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7161 s.assume_init()
7162 }
7163 }
7164}
7165#[repr(u8)]
7166#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
7167pub enum BNFunctionUpdateType {
7168 UserFunctionUpdate = 0,
7169 FullAutoFunctionUpdate = 1,
7170 IncrementalAutoFunctionUpdate = 2,
7171}
7172#[repr(u8)]
7173#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
7174pub enum BNAnalysisState {
7175 #[doc = " Entry point before any analysis begins"]
7176 InitialState = 0,
7177 #[doc = " Module-level analysis is deferred; On-demand function analysis is permitted"]
7178 HoldState = 1,
7179 #[doc = " No active analysis; system is idle and ready"]
7180 IdleState = 2,
7181 #[doc = " Context gathering and auxiliary data preparation"]
7182 DiscoveryState = 3,
7183 #[doc = " Instruction decoding and control flow discovery"]
7184 DisassembleState = 4,
7185 #[doc = " Core semantic and structural analysis"]
7186 AnalyzeState = 5,
7187 #[doc = " Supplemental analysis: sweeping, type resolution, and pattern matching"]
7188 ExtendedAnalyzeState = 6,
7189}
7190#[repr(C)]
7191#[derive(Debug, Copy, Clone)]
7192pub struct BNActiveAnalysisInfo {
7193 pub func: *mut BNFunction,
7194 pub analysisTime: u64,
7195 pub updateCount: usize,
7196 pub submitCount: usize,
7197}
7198#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7199const _: () = {
7200 ["Size of BNActiveAnalysisInfo"][::std::mem::size_of::<BNActiveAnalysisInfo>() - 32usize];
7201 ["Alignment of BNActiveAnalysisInfo"][::std::mem::align_of::<BNActiveAnalysisInfo>() - 8usize];
7202 ["Offset of field: BNActiveAnalysisInfo::func"]
7203 [::std::mem::offset_of!(BNActiveAnalysisInfo, func) - 0usize];
7204 ["Offset of field: BNActiveAnalysisInfo::analysisTime"]
7205 [::std::mem::offset_of!(BNActiveAnalysisInfo, analysisTime) - 8usize];
7206 ["Offset of field: BNActiveAnalysisInfo::updateCount"]
7207 [::std::mem::offset_of!(BNActiveAnalysisInfo, updateCount) - 16usize];
7208 ["Offset of field: BNActiveAnalysisInfo::submitCount"]
7209 [::std::mem::offset_of!(BNActiveAnalysisInfo, submitCount) - 24usize];
7210};
7211impl Default for BNActiveAnalysisInfo {
7212 fn default() -> Self {
7213 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7214 unsafe {
7215 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7216 s.assume_init()
7217 }
7218 }
7219}
7220#[repr(C)]
7221#[derive(Debug, Copy, Clone)]
7222pub struct BNAnalysisInfo {
7223 pub state: BNAnalysisState,
7224 pub analysisTime: u64,
7225 pub activeInfo: *mut BNActiveAnalysisInfo,
7226 pub count: usize,
7227}
7228#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7229const _: () = {
7230 ["Size of BNAnalysisInfo"][::std::mem::size_of::<BNAnalysisInfo>() - 32usize];
7231 ["Alignment of BNAnalysisInfo"][::std::mem::align_of::<BNAnalysisInfo>() - 8usize];
7232 ["Offset of field: BNAnalysisInfo::state"]
7233 [::std::mem::offset_of!(BNAnalysisInfo, state) - 0usize];
7234 ["Offset of field: BNAnalysisInfo::analysisTime"]
7235 [::std::mem::offset_of!(BNAnalysisInfo, analysisTime) - 8usize];
7236 ["Offset of field: BNAnalysisInfo::activeInfo"]
7237 [::std::mem::offset_of!(BNAnalysisInfo, activeInfo) - 16usize];
7238 ["Offset of field: BNAnalysisInfo::count"]
7239 [::std::mem::offset_of!(BNAnalysisInfo, count) - 24usize];
7240};
7241impl Default for BNAnalysisInfo {
7242 fn default() -> Self {
7243 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7244 unsafe {
7245 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7246 s.assume_init()
7247 }
7248 }
7249}
7250#[repr(C)]
7251#[derive(Debug, Copy, Clone)]
7252pub struct BNAnalysisProgress {
7253 pub state: BNAnalysisState,
7254 pub count: usize,
7255 pub total: usize,
7256}
7257#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7258const _: () = {
7259 ["Size of BNAnalysisProgress"][::std::mem::size_of::<BNAnalysisProgress>() - 24usize];
7260 ["Alignment of BNAnalysisProgress"][::std::mem::align_of::<BNAnalysisProgress>() - 8usize];
7261 ["Offset of field: BNAnalysisProgress::state"]
7262 [::std::mem::offset_of!(BNAnalysisProgress, state) - 0usize];
7263 ["Offset of field: BNAnalysisProgress::count"]
7264 [::std::mem::offset_of!(BNAnalysisProgress, count) - 8usize];
7265 ["Offset of field: BNAnalysisProgress::total"]
7266 [::std::mem::offset_of!(BNAnalysisProgress, total) - 16usize];
7267};
7268impl Default for BNAnalysisProgress {
7269 fn default() -> Self {
7270 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7271 unsafe {
7272 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7273 s.assume_init()
7274 }
7275 }
7276}
7277#[repr(u8)]
7278#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
7279pub enum BNAnalysisMode {
7280 FullAnalysisMode = 0,
7281 IntermediateAnalysisMode = 1,
7282 BasicAnalysisMode = 2,
7283 ControlFlowAnalysisMode = 3,
7284}
7285#[repr(C)]
7286#[derive(Debug, Copy, Clone)]
7287pub struct BNAnalysisParameters {
7288 pub maxAnalysisTime: u64,
7289 pub maxFunctionSize: u64,
7290 pub maxFunctionAnalysisTime: u64,
7291 pub maxFunctionUpdateCount: usize,
7292 pub maxFunctionSubmitCount: usize,
7293 pub suppressNewAutoFunctionAnalysis: bool,
7294 pub mode: BNAnalysisMode,
7295 pub alwaysAnalyzeIndirectBranches: bool,
7296 pub advancedAnalysisCacheSize: usize,
7297}
7298#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7299const _: () = {
7300 ["Size of BNAnalysisParameters"][::std::mem::size_of::<BNAnalysisParameters>() - 56usize];
7301 ["Alignment of BNAnalysisParameters"][::std::mem::align_of::<BNAnalysisParameters>() - 8usize];
7302 ["Offset of field: BNAnalysisParameters::maxAnalysisTime"]
7303 [::std::mem::offset_of!(BNAnalysisParameters, maxAnalysisTime) - 0usize];
7304 ["Offset of field: BNAnalysisParameters::maxFunctionSize"]
7305 [::std::mem::offset_of!(BNAnalysisParameters, maxFunctionSize) - 8usize];
7306 ["Offset of field: BNAnalysisParameters::maxFunctionAnalysisTime"]
7307 [::std::mem::offset_of!(BNAnalysisParameters, maxFunctionAnalysisTime) - 16usize];
7308 ["Offset of field: BNAnalysisParameters::maxFunctionUpdateCount"]
7309 [::std::mem::offset_of!(BNAnalysisParameters, maxFunctionUpdateCount) - 24usize];
7310 ["Offset of field: BNAnalysisParameters::maxFunctionSubmitCount"]
7311 [::std::mem::offset_of!(BNAnalysisParameters, maxFunctionSubmitCount) - 32usize];
7312 ["Offset of field: BNAnalysisParameters::suppressNewAutoFunctionAnalysis"]
7313 [::std::mem::offset_of!(BNAnalysisParameters, suppressNewAutoFunctionAnalysis) - 40usize];
7314 ["Offset of field: BNAnalysisParameters::mode"]
7315 [::std::mem::offset_of!(BNAnalysisParameters, mode) - 41usize];
7316 ["Offset of field: BNAnalysisParameters::alwaysAnalyzeIndirectBranches"]
7317 [::std::mem::offset_of!(BNAnalysisParameters, alwaysAnalyzeIndirectBranches) - 42usize];
7318 ["Offset of field: BNAnalysisParameters::advancedAnalysisCacheSize"]
7319 [::std::mem::offset_of!(BNAnalysisParameters, advancedAnalysisCacheSize) - 48usize];
7320};
7321impl Default for BNAnalysisParameters {
7322 fn default() -> Self {
7323 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7324 unsafe {
7325 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7326 s.assume_init()
7327 }
7328 }
7329}
7330#[repr(C)]
7331#[derive(Debug, Copy, Clone)]
7332pub struct BNDownloadInstanceResponse {
7333 pub statusCode: u16,
7334 pub headerCount: u64,
7335 pub headerKeys: *mut *mut ::std::os::raw::c_char,
7336 pub headerValues: *mut *mut ::std::os::raw::c_char,
7337}
7338#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7339const _: () = {
7340 ["Size of BNDownloadInstanceResponse"]
7341 [::std::mem::size_of::<BNDownloadInstanceResponse>() - 32usize];
7342 ["Alignment of BNDownloadInstanceResponse"]
7343 [::std::mem::align_of::<BNDownloadInstanceResponse>() - 8usize];
7344 ["Offset of field: BNDownloadInstanceResponse::statusCode"]
7345 [::std::mem::offset_of!(BNDownloadInstanceResponse, statusCode) - 0usize];
7346 ["Offset of field: BNDownloadInstanceResponse::headerCount"]
7347 [::std::mem::offset_of!(BNDownloadInstanceResponse, headerCount) - 8usize];
7348 ["Offset of field: BNDownloadInstanceResponse::headerKeys"]
7349 [::std::mem::offset_of!(BNDownloadInstanceResponse, headerKeys) - 16usize];
7350 ["Offset of field: BNDownloadInstanceResponse::headerValues"]
7351 [::std::mem::offset_of!(BNDownloadInstanceResponse, headerValues) - 24usize];
7352};
7353impl Default for BNDownloadInstanceResponse {
7354 fn default() -> Self {
7355 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7356 unsafe {
7357 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7358 s.assume_init()
7359 }
7360 }
7361}
7362#[repr(C)]
7363#[derive(Debug, Copy, Clone)]
7364pub struct BNDownloadInstanceInputOutputCallbacks {
7365 pub readCallback: ::std::option::Option<
7366 unsafe extern "C" fn(data: *mut u8, len: u64, ctxt: *mut ::std::os::raw::c_void) -> i64,
7367 >,
7368 pub readContext: *mut ::std::os::raw::c_void,
7369 pub writeCallback: ::std::option::Option<
7370 unsafe extern "C" fn(data: *mut u8, len: u64, ctxt: *mut ::std::os::raw::c_void) -> u64,
7371 >,
7372 pub writeContext: *mut ::std::os::raw::c_void,
7373 pub progressCallback: BNProgressFunction,
7374 pub progressContext: *mut ::std::os::raw::c_void,
7375}
7376#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7377const _: () = {
7378 ["Size of BNDownloadInstanceInputOutputCallbacks"]
7379 [::std::mem::size_of::<BNDownloadInstanceInputOutputCallbacks>() - 48usize];
7380 ["Alignment of BNDownloadInstanceInputOutputCallbacks"]
7381 [::std::mem::align_of::<BNDownloadInstanceInputOutputCallbacks>() - 8usize];
7382 ["Offset of field: BNDownloadInstanceInputOutputCallbacks::readCallback"]
7383 [::std::mem::offset_of!(BNDownloadInstanceInputOutputCallbacks, readCallback) - 0usize];
7384 ["Offset of field: BNDownloadInstanceInputOutputCallbacks::readContext"]
7385 [::std::mem::offset_of!(BNDownloadInstanceInputOutputCallbacks, readContext) - 8usize];
7386 ["Offset of field: BNDownloadInstanceInputOutputCallbacks::writeCallback"]
7387 [::std::mem::offset_of!(BNDownloadInstanceInputOutputCallbacks, writeCallback) - 16usize];
7388 ["Offset of field: BNDownloadInstanceInputOutputCallbacks::writeContext"]
7389 [::std::mem::offset_of!(BNDownloadInstanceInputOutputCallbacks, writeContext) - 24usize];
7390 ["Offset of field: BNDownloadInstanceInputOutputCallbacks::progressCallback"][::std::mem::offset_of!(
7391 BNDownloadInstanceInputOutputCallbacks,
7392 progressCallback
7393 ) - 32usize];
7394 ["Offset of field: BNDownloadInstanceInputOutputCallbacks::progressContext"]
7395 [::std::mem::offset_of!(BNDownloadInstanceInputOutputCallbacks, progressContext) - 40usize];
7396};
7397impl Default for BNDownloadInstanceInputOutputCallbacks {
7398 fn default() -> Self {
7399 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7400 unsafe {
7401 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7402 s.assume_init()
7403 }
7404 }
7405}
7406#[repr(C)]
7407#[derive(Debug, Copy, Clone)]
7408pub struct BNDownloadInstanceOutputCallbacks {
7409 pub writeCallback: ::std::option::Option<
7410 unsafe extern "C" fn(data: *mut u8, len: u64, ctxt: *mut ::std::os::raw::c_void) -> u64,
7411 >,
7412 pub writeContext: *mut ::std::os::raw::c_void,
7413 pub progressCallback: BNProgressFunction,
7414 pub progressContext: *mut ::std::os::raw::c_void,
7415}
7416#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7417const _: () = {
7418 ["Size of BNDownloadInstanceOutputCallbacks"]
7419 [::std::mem::size_of::<BNDownloadInstanceOutputCallbacks>() - 32usize];
7420 ["Alignment of BNDownloadInstanceOutputCallbacks"]
7421 [::std::mem::align_of::<BNDownloadInstanceOutputCallbacks>() - 8usize];
7422 ["Offset of field: BNDownloadInstanceOutputCallbacks::writeCallback"]
7423 [::std::mem::offset_of!(BNDownloadInstanceOutputCallbacks, writeCallback) - 0usize];
7424 ["Offset of field: BNDownloadInstanceOutputCallbacks::writeContext"]
7425 [::std::mem::offset_of!(BNDownloadInstanceOutputCallbacks, writeContext) - 8usize];
7426 ["Offset of field: BNDownloadInstanceOutputCallbacks::progressCallback"]
7427 [::std::mem::offset_of!(BNDownloadInstanceOutputCallbacks, progressCallback) - 16usize];
7428 ["Offset of field: BNDownloadInstanceOutputCallbacks::progressContext"]
7429 [::std::mem::offset_of!(BNDownloadInstanceOutputCallbacks, progressContext) - 24usize];
7430};
7431impl Default for BNDownloadInstanceOutputCallbacks {
7432 fn default() -> Self {
7433 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7434 unsafe {
7435 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7436 s.assume_init()
7437 }
7438 }
7439}
7440#[repr(C)]
7441#[derive(Debug, Copy, Clone)]
7442pub struct BNDownloadInstanceCallbacks {
7443 pub context: *mut ::std::os::raw::c_void,
7444 pub destroyInstance:
7445 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
7446 pub performRequest: ::std::option::Option<
7447 unsafe extern "C" fn(
7448 ctxt: *mut ::std::os::raw::c_void,
7449 url: *const ::std::os::raw::c_char,
7450 ) -> ::std::os::raw::c_int,
7451 >,
7452 pub performCustomRequest: ::std::option::Option<
7453 unsafe extern "C" fn(
7454 ctxt: *mut ::std::os::raw::c_void,
7455 method: *const ::std::os::raw::c_char,
7456 url: *const ::std::os::raw::c_char,
7457 headerCount: u64,
7458 headerKeys: *const *const ::std::os::raw::c_char,
7459 headerValues: *const *const ::std::os::raw::c_char,
7460 response: *mut *mut BNDownloadInstanceResponse,
7461 ) -> ::std::os::raw::c_int,
7462 >,
7463 pub freeResponse: ::std::option::Option<
7464 unsafe extern "C" fn(
7465 ctxt: *mut ::std::os::raw::c_void,
7466 response: *mut BNDownloadInstanceResponse,
7467 ),
7468 >,
7469}
7470#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7471const _: () = {
7472 ["Size of BNDownloadInstanceCallbacks"]
7473 [::std::mem::size_of::<BNDownloadInstanceCallbacks>() - 40usize];
7474 ["Alignment of BNDownloadInstanceCallbacks"]
7475 [::std::mem::align_of::<BNDownloadInstanceCallbacks>() - 8usize];
7476 ["Offset of field: BNDownloadInstanceCallbacks::context"]
7477 [::std::mem::offset_of!(BNDownloadInstanceCallbacks, context) - 0usize];
7478 ["Offset of field: BNDownloadInstanceCallbacks::destroyInstance"]
7479 [::std::mem::offset_of!(BNDownloadInstanceCallbacks, destroyInstance) - 8usize];
7480 ["Offset of field: BNDownloadInstanceCallbacks::performRequest"]
7481 [::std::mem::offset_of!(BNDownloadInstanceCallbacks, performRequest) - 16usize];
7482 ["Offset of field: BNDownloadInstanceCallbacks::performCustomRequest"]
7483 [::std::mem::offset_of!(BNDownloadInstanceCallbacks, performCustomRequest) - 24usize];
7484 ["Offset of field: BNDownloadInstanceCallbacks::freeResponse"]
7485 [::std::mem::offset_of!(BNDownloadInstanceCallbacks, freeResponse) - 32usize];
7486};
7487impl Default for BNDownloadInstanceCallbacks {
7488 fn default() -> Self {
7489 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7490 unsafe {
7491 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7492 s.assume_init()
7493 }
7494 }
7495}
7496#[repr(C)]
7497#[derive(Debug, Copy, Clone)]
7498pub struct BNDownloadProviderCallbacks {
7499 pub context: *mut ::std::os::raw::c_void,
7500 pub createInstance: ::std::option::Option<
7501 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> *mut BNDownloadInstance,
7502 >,
7503}
7504#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7505const _: () = {
7506 ["Size of BNDownloadProviderCallbacks"]
7507 [::std::mem::size_of::<BNDownloadProviderCallbacks>() - 16usize];
7508 ["Alignment of BNDownloadProviderCallbacks"]
7509 [::std::mem::align_of::<BNDownloadProviderCallbacks>() - 8usize];
7510 ["Offset of field: BNDownloadProviderCallbacks::context"]
7511 [::std::mem::offset_of!(BNDownloadProviderCallbacks, context) - 0usize];
7512 ["Offset of field: BNDownloadProviderCallbacks::createInstance"]
7513 [::std::mem::offset_of!(BNDownloadProviderCallbacks, createInstance) - 8usize];
7514};
7515impl Default for BNDownloadProviderCallbacks {
7516 fn default() -> Self {
7517 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7518 unsafe {
7519 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7520 s.assume_init()
7521 }
7522 }
7523}
7524#[repr(C)]
7525#[derive(Debug, Copy, Clone)]
7526pub struct BNWebsocketClientOutputCallbacks {
7527 pub context: *mut ::std::os::raw::c_void,
7528 pub connectedCallback:
7529 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
7530 pub disconnectedCallback:
7531 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
7532 pub errorCallback: ::std::option::Option<
7533 unsafe extern "C" fn(msg: *const ::std::os::raw::c_char, ctxt: *mut ::std::os::raw::c_void),
7534 >,
7535 pub readCallback: ::std::option::Option<
7536 unsafe extern "C" fn(data: *mut u8, len: u64, ctxt: *mut ::std::os::raw::c_void) -> bool,
7537 >,
7538}
7539#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7540const _: () = {
7541 ["Size of BNWebsocketClientOutputCallbacks"]
7542 [::std::mem::size_of::<BNWebsocketClientOutputCallbacks>() - 40usize];
7543 ["Alignment of BNWebsocketClientOutputCallbacks"]
7544 [::std::mem::align_of::<BNWebsocketClientOutputCallbacks>() - 8usize];
7545 ["Offset of field: BNWebsocketClientOutputCallbacks::context"]
7546 [::std::mem::offset_of!(BNWebsocketClientOutputCallbacks, context) - 0usize];
7547 ["Offset of field: BNWebsocketClientOutputCallbacks::connectedCallback"]
7548 [::std::mem::offset_of!(BNWebsocketClientOutputCallbacks, connectedCallback) - 8usize];
7549 ["Offset of field: BNWebsocketClientOutputCallbacks::disconnectedCallback"]
7550 [::std::mem::offset_of!(BNWebsocketClientOutputCallbacks, disconnectedCallback) - 16usize];
7551 ["Offset of field: BNWebsocketClientOutputCallbacks::errorCallback"]
7552 [::std::mem::offset_of!(BNWebsocketClientOutputCallbacks, errorCallback) - 24usize];
7553 ["Offset of field: BNWebsocketClientOutputCallbacks::readCallback"]
7554 [::std::mem::offset_of!(BNWebsocketClientOutputCallbacks, readCallback) - 32usize];
7555};
7556impl Default for BNWebsocketClientOutputCallbacks {
7557 fn default() -> Self {
7558 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7559 unsafe {
7560 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7561 s.assume_init()
7562 }
7563 }
7564}
7565#[repr(C)]
7566#[derive(Debug, Copy, Clone)]
7567pub struct BNWebsocketClientCallbacks {
7568 pub context: *mut ::std::os::raw::c_void,
7569 pub destroyClient:
7570 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
7571 pub connect: ::std::option::Option<
7572 unsafe extern "C" fn(
7573 ctxt: *mut ::std::os::raw::c_void,
7574 host: *const ::std::os::raw::c_char,
7575 headerCount: u64,
7576 headerKeys: *const *const ::std::os::raw::c_char,
7577 headerValues: *const *const ::std::os::raw::c_char,
7578 ) -> bool,
7579 >,
7580 pub write: ::std::option::Option<
7581 unsafe extern "C" fn(data: *const u8, len: u64, ctxt: *mut ::std::os::raw::c_void) -> bool,
7582 >,
7583 pub disconnect:
7584 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
7585}
7586#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7587const _: () = {
7588 ["Size of BNWebsocketClientCallbacks"]
7589 [::std::mem::size_of::<BNWebsocketClientCallbacks>() - 40usize];
7590 ["Alignment of BNWebsocketClientCallbacks"]
7591 [::std::mem::align_of::<BNWebsocketClientCallbacks>() - 8usize];
7592 ["Offset of field: BNWebsocketClientCallbacks::context"]
7593 [::std::mem::offset_of!(BNWebsocketClientCallbacks, context) - 0usize];
7594 ["Offset of field: BNWebsocketClientCallbacks::destroyClient"]
7595 [::std::mem::offset_of!(BNWebsocketClientCallbacks, destroyClient) - 8usize];
7596 ["Offset of field: BNWebsocketClientCallbacks::connect"]
7597 [::std::mem::offset_of!(BNWebsocketClientCallbacks, connect) - 16usize];
7598 ["Offset of field: BNWebsocketClientCallbacks::write"]
7599 [::std::mem::offset_of!(BNWebsocketClientCallbacks, write) - 24usize];
7600 ["Offset of field: BNWebsocketClientCallbacks::disconnect"]
7601 [::std::mem::offset_of!(BNWebsocketClientCallbacks, disconnect) - 32usize];
7602};
7603impl Default for BNWebsocketClientCallbacks {
7604 fn default() -> Self {
7605 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7606 unsafe {
7607 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7608 s.assume_init()
7609 }
7610 }
7611}
7612#[repr(C)]
7613#[derive(Debug, Copy, Clone)]
7614pub struct BNWebsocketProviderCallbacks {
7615 pub context: *mut ::std::os::raw::c_void,
7616 pub createClient: ::std::option::Option<
7617 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> *mut BNWebsocketClient,
7618 >,
7619}
7620#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7621const _: () = {
7622 ["Size of BNWebsocketProviderCallbacks"]
7623 [::std::mem::size_of::<BNWebsocketProviderCallbacks>() - 16usize];
7624 ["Alignment of BNWebsocketProviderCallbacks"]
7625 [::std::mem::align_of::<BNWebsocketProviderCallbacks>() - 8usize];
7626 ["Offset of field: BNWebsocketProviderCallbacks::context"]
7627 [::std::mem::offset_of!(BNWebsocketProviderCallbacks, context) - 0usize];
7628 ["Offset of field: BNWebsocketProviderCallbacks::createClient"]
7629 [::std::mem::offset_of!(BNWebsocketProviderCallbacks, createClient) - 8usize];
7630};
7631impl Default for BNWebsocketProviderCallbacks {
7632 fn default() -> Self {
7633 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7634 unsafe {
7635 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7636 s.assume_init()
7637 }
7638 }
7639}
7640#[repr(u8)]
7641#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
7642pub enum BNFindFlag {
7643 FindCaseSensitive = 0,
7644 FindCaseInsensitive = 1,
7645 FindIgnoreWhitespace = 2,
7646}
7647#[repr(u8)]
7648#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
7649pub enum BNScriptingProviderInputReadyState {
7650 NotReadyForInput = 0,
7651 ReadyForScriptExecution = 1,
7652 ReadyForScriptProgramInput = 2,
7653}
7654#[repr(u8)]
7655#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
7656pub enum BNScriptingProviderExecuteResult {
7657 InvalidScriptInput = 0,
7658 IncompleteScriptInput = 1,
7659 SuccessfulScriptExecution = 2,
7660 ScriptExecutionCancelled = 3,
7661}
7662#[repr(C)]
7663#[derive(Debug, Copy, Clone)]
7664pub struct BNScriptingInstanceCallbacks {
7665 pub context: *mut ::std::os::raw::c_void,
7666 pub destroyInstance:
7667 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
7668 pub externalRefTaken:
7669 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
7670 pub externalRefReleased:
7671 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
7672 pub executeScriptInput: ::std::option::Option<
7673 unsafe extern "C" fn(
7674 ctxt: *mut ::std::os::raw::c_void,
7675 input: *const ::std::os::raw::c_char,
7676 ) -> BNScriptingProviderExecuteResult,
7677 >,
7678 pub executeScriptInputFromFilename: ::std::option::Option<
7679 unsafe extern "C" fn(
7680 ctxt: *mut ::std::os::raw::c_void,
7681 input: *const ::std::os::raw::c_char,
7682 ) -> BNScriptingProviderExecuteResult,
7683 >,
7684 pub cancelScriptInput:
7685 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
7686 pub releaseBinaryView: ::std::option::Option<
7687 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, view: *mut BNBinaryView),
7688 >,
7689 pub setCurrentBinaryView: ::std::option::Option<
7690 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, view: *mut BNBinaryView),
7691 >,
7692 pub setCurrentFunction: ::std::option::Option<
7693 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, func: *mut BNFunction),
7694 >,
7695 pub setCurrentBasicBlock: ::std::option::Option<
7696 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, block: *mut BNBasicBlock),
7697 >,
7698 pub setCurrentAddress:
7699 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, addr: u64)>,
7700 pub setCurrentSelection: ::std::option::Option<
7701 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, begin: u64, end: u64),
7702 >,
7703 pub completeInput: ::std::option::Option<
7704 unsafe extern "C" fn(
7705 ctxt: *mut ::std::os::raw::c_void,
7706 text: *const ::std::os::raw::c_char,
7707 state: u64,
7708 ) -> *mut ::std::os::raw::c_char,
7709 >,
7710 pub stop: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
7711 pub canCompleteArguments: ::std::option::Option<
7712 unsafe extern "C" fn(
7713 ctx: *mut ::std::os::raw::c_void,
7714 text: *const ::std::os::raw::c_char,
7715 ) -> bool,
7716 >,
7717 pub completeArguments: ::std::option::Option<
7718 unsafe extern "C" fn(
7719 ctxt: *mut ::std::os::raw::c_void,
7720 text: *const ::std::os::raw::c_char,
7721 argumentStart: *mut u64,
7722 ) -> *mut ::std::os::raw::c_char,
7723 >,
7724}
7725#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7726const _: () = {
7727 ["Size of BNScriptingInstanceCallbacks"]
7728 [::std::mem::size_of::<BNScriptingInstanceCallbacks>() - 136usize];
7729 ["Alignment of BNScriptingInstanceCallbacks"]
7730 [::std::mem::align_of::<BNScriptingInstanceCallbacks>() - 8usize];
7731 ["Offset of field: BNScriptingInstanceCallbacks::context"]
7732 [::std::mem::offset_of!(BNScriptingInstanceCallbacks, context) - 0usize];
7733 ["Offset of field: BNScriptingInstanceCallbacks::destroyInstance"]
7734 [::std::mem::offset_of!(BNScriptingInstanceCallbacks, destroyInstance) - 8usize];
7735 ["Offset of field: BNScriptingInstanceCallbacks::externalRefTaken"]
7736 [::std::mem::offset_of!(BNScriptingInstanceCallbacks, externalRefTaken) - 16usize];
7737 ["Offset of field: BNScriptingInstanceCallbacks::externalRefReleased"]
7738 [::std::mem::offset_of!(BNScriptingInstanceCallbacks, externalRefReleased) - 24usize];
7739 ["Offset of field: BNScriptingInstanceCallbacks::executeScriptInput"]
7740 [::std::mem::offset_of!(BNScriptingInstanceCallbacks, executeScriptInput) - 32usize];
7741 ["Offset of field: BNScriptingInstanceCallbacks::executeScriptInputFromFilename"][::std::mem::offset_of!(
7742 BNScriptingInstanceCallbacks,
7743 executeScriptInputFromFilename
7744 ) - 40usize];
7745 ["Offset of field: BNScriptingInstanceCallbacks::cancelScriptInput"]
7746 [::std::mem::offset_of!(BNScriptingInstanceCallbacks, cancelScriptInput) - 48usize];
7747 ["Offset of field: BNScriptingInstanceCallbacks::releaseBinaryView"]
7748 [::std::mem::offset_of!(BNScriptingInstanceCallbacks, releaseBinaryView) - 56usize];
7749 ["Offset of field: BNScriptingInstanceCallbacks::setCurrentBinaryView"]
7750 [::std::mem::offset_of!(BNScriptingInstanceCallbacks, setCurrentBinaryView) - 64usize];
7751 ["Offset of field: BNScriptingInstanceCallbacks::setCurrentFunction"]
7752 [::std::mem::offset_of!(BNScriptingInstanceCallbacks, setCurrentFunction) - 72usize];
7753 ["Offset of field: BNScriptingInstanceCallbacks::setCurrentBasicBlock"]
7754 [::std::mem::offset_of!(BNScriptingInstanceCallbacks, setCurrentBasicBlock) - 80usize];
7755 ["Offset of field: BNScriptingInstanceCallbacks::setCurrentAddress"]
7756 [::std::mem::offset_of!(BNScriptingInstanceCallbacks, setCurrentAddress) - 88usize];
7757 ["Offset of field: BNScriptingInstanceCallbacks::setCurrentSelection"]
7758 [::std::mem::offset_of!(BNScriptingInstanceCallbacks, setCurrentSelection) - 96usize];
7759 ["Offset of field: BNScriptingInstanceCallbacks::completeInput"]
7760 [::std::mem::offset_of!(BNScriptingInstanceCallbacks, completeInput) - 104usize];
7761 ["Offset of field: BNScriptingInstanceCallbacks::stop"]
7762 [::std::mem::offset_of!(BNScriptingInstanceCallbacks, stop) - 112usize];
7763 ["Offset of field: BNScriptingInstanceCallbacks::canCompleteArguments"]
7764 [::std::mem::offset_of!(BNScriptingInstanceCallbacks, canCompleteArguments) - 120usize];
7765 ["Offset of field: BNScriptingInstanceCallbacks::completeArguments"]
7766 [::std::mem::offset_of!(BNScriptingInstanceCallbacks, completeArguments) - 128usize];
7767};
7768impl Default for BNScriptingInstanceCallbacks {
7769 fn default() -> Self {
7770 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7771 unsafe {
7772 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7773 s.assume_init()
7774 }
7775 }
7776}
7777#[repr(C)]
7778#[derive(Debug, Copy, Clone)]
7779pub struct BNScriptingProviderCallbacks {
7780 pub context: *mut ::std::os::raw::c_void,
7781 pub createInstance: ::std::option::Option<
7782 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> *mut BNScriptingInstance,
7783 >,
7784 pub loadModule: ::std::option::Option<
7785 unsafe extern "C" fn(
7786 ctxt: *mut ::std::os::raw::c_void,
7787 repoPath: *const ::std::os::raw::c_char,
7788 pluginPath: *const ::std::os::raw::c_char,
7789 force: bool,
7790 ) -> bool,
7791 >,
7792 pub installModules: ::std::option::Option<
7793 unsafe extern "C" fn(
7794 ctxt: *mut ::std::os::raw::c_void,
7795 modules: *const ::std::os::raw::c_char,
7796 ) -> bool,
7797 >,
7798}
7799#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7800const _: () = {
7801 ["Size of BNScriptingProviderCallbacks"]
7802 [::std::mem::size_of::<BNScriptingProviderCallbacks>() - 32usize];
7803 ["Alignment of BNScriptingProviderCallbacks"]
7804 [::std::mem::align_of::<BNScriptingProviderCallbacks>() - 8usize];
7805 ["Offset of field: BNScriptingProviderCallbacks::context"]
7806 [::std::mem::offset_of!(BNScriptingProviderCallbacks, context) - 0usize];
7807 ["Offset of field: BNScriptingProviderCallbacks::createInstance"]
7808 [::std::mem::offset_of!(BNScriptingProviderCallbacks, createInstance) - 8usize];
7809 ["Offset of field: BNScriptingProviderCallbacks::loadModule"]
7810 [::std::mem::offset_of!(BNScriptingProviderCallbacks, loadModule) - 16usize];
7811 ["Offset of field: BNScriptingProviderCallbacks::installModules"]
7812 [::std::mem::offset_of!(BNScriptingProviderCallbacks, installModules) - 24usize];
7813};
7814impl Default for BNScriptingProviderCallbacks {
7815 fn default() -> Self {
7816 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7817 unsafe {
7818 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7819 s.assume_init()
7820 }
7821 }
7822}
7823#[repr(C)]
7824#[derive(Debug, Copy, Clone)]
7825pub struct BNScriptingOutputListener {
7826 pub context: *mut ::std::os::raw::c_void,
7827 pub output: ::std::option::Option<
7828 unsafe extern "C" fn(
7829 ctxt: *mut ::std::os::raw::c_void,
7830 text: *const ::std::os::raw::c_char,
7831 ),
7832 >,
7833 pub warning: ::std::option::Option<
7834 unsafe extern "C" fn(
7835 ctxt: *mut ::std::os::raw::c_void,
7836 text: *const ::std::os::raw::c_char,
7837 ),
7838 >,
7839 pub error: ::std::option::Option<
7840 unsafe extern "C" fn(
7841 ctxt: *mut ::std::os::raw::c_void,
7842 text: *const ::std::os::raw::c_char,
7843 ),
7844 >,
7845 pub inputReadyStateChanged: ::std::option::Option<
7846 unsafe extern "C" fn(
7847 ctxt: *mut ::std::os::raw::c_void,
7848 state: BNScriptingProviderInputReadyState,
7849 ),
7850 >,
7851}
7852#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7853const _: () = {
7854 ["Size of BNScriptingOutputListener"]
7855 [::std::mem::size_of::<BNScriptingOutputListener>() - 40usize];
7856 ["Alignment of BNScriptingOutputListener"]
7857 [::std::mem::align_of::<BNScriptingOutputListener>() - 8usize];
7858 ["Offset of field: BNScriptingOutputListener::context"]
7859 [::std::mem::offset_of!(BNScriptingOutputListener, context) - 0usize];
7860 ["Offset of field: BNScriptingOutputListener::output"]
7861 [::std::mem::offset_of!(BNScriptingOutputListener, output) - 8usize];
7862 ["Offset of field: BNScriptingOutputListener::warning"]
7863 [::std::mem::offset_of!(BNScriptingOutputListener, warning) - 16usize];
7864 ["Offset of field: BNScriptingOutputListener::error"]
7865 [::std::mem::offset_of!(BNScriptingOutputListener, error) - 24usize];
7866 ["Offset of field: BNScriptingOutputListener::inputReadyStateChanged"]
7867 [::std::mem::offset_of!(BNScriptingOutputListener, inputReadyStateChanged) - 32usize];
7868};
7869impl Default for BNScriptingOutputListener {
7870 fn default() -> Self {
7871 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7872 unsafe {
7873 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7874 s.assume_init()
7875 }
7876 }
7877}
7878#[repr(C)]
7879#[derive(Debug, Copy, Clone)]
7880pub struct BNMainThreadCallbacks {
7881 pub context: *mut ::std::os::raw::c_void,
7882 pub addAction: ::std::option::Option<
7883 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, action: *mut BNMainThreadAction),
7884 >,
7885}
7886#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7887const _: () = {
7888 ["Size of BNMainThreadCallbacks"][::std::mem::size_of::<BNMainThreadCallbacks>() - 16usize];
7889 ["Alignment of BNMainThreadCallbacks"]
7890 [::std::mem::align_of::<BNMainThreadCallbacks>() - 8usize];
7891 ["Offset of field: BNMainThreadCallbacks::context"]
7892 [::std::mem::offset_of!(BNMainThreadCallbacks, context) - 0usize];
7893 ["Offset of field: BNMainThreadCallbacks::addAction"]
7894 [::std::mem::offset_of!(BNMainThreadCallbacks, addAction) - 8usize];
7895};
7896impl Default for BNMainThreadCallbacks {
7897 fn default() -> Self {
7898 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7899 unsafe {
7900 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7901 s.assume_init()
7902 }
7903 }
7904}
7905#[repr(C)]
7906#[derive(Copy, Clone)]
7907pub struct BNTypeParserCallbacks {
7908 pub context: *mut ::std::os::raw::c_void,
7909 pub getOptionText: ::std::option::Option<
7910 unsafe extern "C" fn(
7911 ctxt: *mut ::std::os::raw::c_void,
7912 option: BNTypeParserOption,
7913 value: *const ::std::os::raw::c_char,
7914 result: *mut *mut ::std::os::raw::c_char,
7915 ) -> bool,
7916 >,
7917 pub preprocessSource: ::std::option::Option<
7918 unsafe extern "C" fn(
7919 ctxt: *mut ::std::os::raw::c_void,
7920 source: *const ::std::os::raw::c_char,
7921 fileName: *const ::std::os::raw::c_char,
7922 platform: *mut BNPlatform,
7923 existingTypes: *mut BNTypeContainer,
7924 options: *const *const ::std::os::raw::c_char,
7925 optionCount: usize,
7926 includeDirs: *const *const ::std::os::raw::c_char,
7927 includeDirCount: usize,
7928 output: *mut *mut ::std::os::raw::c_char,
7929 errors: *mut *mut BNTypeParserError,
7930 errorCount: *mut usize,
7931 ) -> bool,
7932 >,
7933 pub parseTypesFromSource: ::std::option::Option<
7934 unsafe extern "C" fn(
7935 ctxt: *mut ::std::os::raw::c_void,
7936 source: *const ::std::os::raw::c_char,
7937 fileName: *const ::std::os::raw::c_char,
7938 platform: *mut BNPlatform,
7939 existingTypes: *mut BNTypeContainer,
7940 options: *const *const ::std::os::raw::c_char,
7941 optionCount: usize,
7942 includeDirs: *const *const ::std::os::raw::c_char,
7943 includeDirCount: usize,
7944 autoTypeSource: *const ::std::os::raw::c_char,
7945 result: *mut BNTypeParserResult,
7946 errors: *mut *mut BNTypeParserError,
7947 errorCount: *mut usize,
7948 ) -> bool,
7949 >,
7950 pub parseTypeString: ::std::option::Option<
7951 unsafe extern "C" fn(
7952 ctxt: *mut ::std::os::raw::c_void,
7953 source: *const ::std::os::raw::c_char,
7954 platform: *mut BNPlatform,
7955 existingTypes: *mut BNTypeContainer,
7956 result: *mut BNQualifiedNameAndType,
7957 errors: *mut *mut BNTypeParserError,
7958 errorCount: *mut usize,
7959 ) -> bool,
7960 >,
7961 pub freeString: ::std::option::Option<
7962 unsafe extern "C" fn(
7963 ctxt: *mut ::std::os::raw::c_void,
7964 string: *mut ::std::os::raw::c_char,
7965 ),
7966 >,
7967 pub freeResult: ::std::option::Option<
7968 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, result: *mut BNTypeParserResult),
7969 >,
7970 pub freeErrorList: ::std::option::Option<
7971 unsafe extern "C" fn(
7972 ctxt: *mut ::std::os::raw::c_void,
7973 errors: *mut BNTypeParserError,
7974 errorCount: usize,
7975 ),
7976 >,
7977}
7978#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7979const _: () = {
7980 ["Size of BNTypeParserCallbacks"][::std::mem::size_of::<BNTypeParserCallbacks>() - 64usize];
7981 ["Alignment of BNTypeParserCallbacks"]
7982 [::std::mem::align_of::<BNTypeParserCallbacks>() - 8usize];
7983 ["Offset of field: BNTypeParserCallbacks::context"]
7984 [::std::mem::offset_of!(BNTypeParserCallbacks, context) - 0usize];
7985 ["Offset of field: BNTypeParserCallbacks::getOptionText"]
7986 [::std::mem::offset_of!(BNTypeParserCallbacks, getOptionText) - 8usize];
7987 ["Offset of field: BNTypeParserCallbacks::preprocessSource"]
7988 [::std::mem::offset_of!(BNTypeParserCallbacks, preprocessSource) - 16usize];
7989 ["Offset of field: BNTypeParserCallbacks::parseTypesFromSource"]
7990 [::std::mem::offset_of!(BNTypeParserCallbacks, parseTypesFromSource) - 24usize];
7991 ["Offset of field: BNTypeParserCallbacks::parseTypeString"]
7992 [::std::mem::offset_of!(BNTypeParserCallbacks, parseTypeString) - 32usize];
7993 ["Offset of field: BNTypeParserCallbacks::freeString"]
7994 [::std::mem::offset_of!(BNTypeParserCallbacks, freeString) - 40usize];
7995 ["Offset of field: BNTypeParserCallbacks::freeResult"]
7996 [::std::mem::offset_of!(BNTypeParserCallbacks, freeResult) - 48usize];
7997 ["Offset of field: BNTypeParserCallbacks::freeErrorList"]
7998 [::std::mem::offset_of!(BNTypeParserCallbacks, freeErrorList) - 56usize];
7999};
8000impl Default for BNTypeParserCallbacks {
8001 fn default() -> Self {
8002 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8003 unsafe {
8004 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8005 s.assume_init()
8006 }
8007 }
8008}
8009#[repr(C)]
8010#[derive(Debug, Copy, Clone)]
8011pub struct BNTypePrinterCallbacks {
8012 pub context: *mut ::std::os::raw::c_void,
8013 pub getTypeTokens: ::std::option::Option<
8014 unsafe extern "C" fn(
8015 ctxt: *mut ::std::os::raw::c_void,
8016 type_: *mut BNType,
8017 platform: *mut BNPlatform,
8018 name: *mut BNQualifiedName,
8019 baseConfidence: u8,
8020 escaping: BNTokenEscapingType,
8021 result: *mut *mut BNInstructionTextToken,
8022 resultCount: *mut usize,
8023 ) -> bool,
8024 >,
8025 pub getTypeTokensBeforeName: ::std::option::Option<
8026 unsafe extern "C" fn(
8027 ctxt: *mut ::std::os::raw::c_void,
8028 type_: *mut BNType,
8029 platform: *mut BNPlatform,
8030 baseConfidence: u8,
8031 parentType: *mut BNType,
8032 escaping: BNTokenEscapingType,
8033 result: *mut *mut BNInstructionTextToken,
8034 resultCount: *mut usize,
8035 ) -> bool,
8036 >,
8037 pub getTypeTokensAfterName: ::std::option::Option<
8038 unsafe extern "C" fn(
8039 ctxt: *mut ::std::os::raw::c_void,
8040 type_: *mut BNType,
8041 platform: *mut BNPlatform,
8042 baseConfidence: u8,
8043 parentType: *mut BNType,
8044 escaping: BNTokenEscapingType,
8045 result: *mut *mut BNInstructionTextToken,
8046 resultCount: *mut usize,
8047 ) -> bool,
8048 >,
8049 pub getTypeString: ::std::option::Option<
8050 unsafe extern "C" fn(
8051 ctxt: *mut ::std::os::raw::c_void,
8052 type_: *mut BNType,
8053 platform: *mut BNPlatform,
8054 name: *mut BNQualifiedName,
8055 escaping: BNTokenEscapingType,
8056 result: *mut *mut ::std::os::raw::c_char,
8057 ) -> bool,
8058 >,
8059 pub getTypeStringBeforeName: ::std::option::Option<
8060 unsafe extern "C" fn(
8061 ctxt: *mut ::std::os::raw::c_void,
8062 type_: *mut BNType,
8063 platform: *mut BNPlatform,
8064 escaping: BNTokenEscapingType,
8065 result: *mut *mut ::std::os::raw::c_char,
8066 ) -> bool,
8067 >,
8068 pub getTypeStringAfterName: ::std::option::Option<
8069 unsafe extern "C" fn(
8070 ctxt: *mut ::std::os::raw::c_void,
8071 type_: *mut BNType,
8072 platform: *mut BNPlatform,
8073 escaping: BNTokenEscapingType,
8074 result: *mut *mut ::std::os::raw::c_char,
8075 ) -> bool,
8076 >,
8077 pub getTypeLines: ::std::option::Option<
8078 unsafe extern "C" fn(
8079 ctxt: *mut ::std::os::raw::c_void,
8080 type_: *mut BNType,
8081 types: *mut BNTypeContainer,
8082 name: *mut BNQualifiedName,
8083 paddingCols: ::std::os::raw::c_int,
8084 collapsed: bool,
8085 escaping: BNTokenEscapingType,
8086 result: *mut *mut BNTypeDefinitionLine,
8087 resultCount: *mut usize,
8088 ) -> bool,
8089 >,
8090 pub printAllTypes: ::std::option::Option<
8091 unsafe extern "C" fn(
8092 ctxt: *mut ::std::os::raw::c_void,
8093 names: *mut BNQualifiedName,
8094 types: *mut *mut BNType,
8095 typeCount: usize,
8096 data: *mut BNBinaryView,
8097 paddingCols: ::std::os::raw::c_int,
8098 escaping: BNTokenEscapingType,
8099 result: *mut *mut ::std::os::raw::c_char,
8100 ) -> bool,
8101 >,
8102 pub freeTokens: ::std::option::Option<
8103 unsafe extern "C" fn(
8104 ctxt: *mut ::std::os::raw::c_void,
8105 tokens: *mut BNInstructionTextToken,
8106 count: usize,
8107 ),
8108 >,
8109 pub freeString: ::std::option::Option<
8110 unsafe extern "C" fn(
8111 ctxt: *mut ::std::os::raw::c_void,
8112 string: *mut ::std::os::raw::c_char,
8113 ),
8114 >,
8115 pub freeLines: ::std::option::Option<
8116 unsafe extern "C" fn(
8117 ctxt: *mut ::std::os::raw::c_void,
8118 lines: *mut BNTypeDefinitionLine,
8119 count: usize,
8120 ),
8121 >,
8122}
8123#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8124const _: () = {
8125 ["Size of BNTypePrinterCallbacks"][::std::mem::size_of::<BNTypePrinterCallbacks>() - 96usize];
8126 ["Alignment of BNTypePrinterCallbacks"]
8127 [::std::mem::align_of::<BNTypePrinterCallbacks>() - 8usize];
8128 ["Offset of field: BNTypePrinterCallbacks::context"]
8129 [::std::mem::offset_of!(BNTypePrinterCallbacks, context) - 0usize];
8130 ["Offset of field: BNTypePrinterCallbacks::getTypeTokens"]
8131 [::std::mem::offset_of!(BNTypePrinterCallbacks, getTypeTokens) - 8usize];
8132 ["Offset of field: BNTypePrinterCallbacks::getTypeTokensBeforeName"]
8133 [::std::mem::offset_of!(BNTypePrinterCallbacks, getTypeTokensBeforeName) - 16usize];
8134 ["Offset of field: BNTypePrinterCallbacks::getTypeTokensAfterName"]
8135 [::std::mem::offset_of!(BNTypePrinterCallbacks, getTypeTokensAfterName) - 24usize];
8136 ["Offset of field: BNTypePrinterCallbacks::getTypeString"]
8137 [::std::mem::offset_of!(BNTypePrinterCallbacks, getTypeString) - 32usize];
8138 ["Offset of field: BNTypePrinterCallbacks::getTypeStringBeforeName"]
8139 [::std::mem::offset_of!(BNTypePrinterCallbacks, getTypeStringBeforeName) - 40usize];
8140 ["Offset of field: BNTypePrinterCallbacks::getTypeStringAfterName"]
8141 [::std::mem::offset_of!(BNTypePrinterCallbacks, getTypeStringAfterName) - 48usize];
8142 ["Offset of field: BNTypePrinterCallbacks::getTypeLines"]
8143 [::std::mem::offset_of!(BNTypePrinterCallbacks, getTypeLines) - 56usize];
8144 ["Offset of field: BNTypePrinterCallbacks::printAllTypes"]
8145 [::std::mem::offset_of!(BNTypePrinterCallbacks, printAllTypes) - 64usize];
8146 ["Offset of field: BNTypePrinterCallbacks::freeTokens"]
8147 [::std::mem::offset_of!(BNTypePrinterCallbacks, freeTokens) - 72usize];
8148 ["Offset of field: BNTypePrinterCallbacks::freeString"]
8149 [::std::mem::offset_of!(BNTypePrinterCallbacks, freeString) - 80usize];
8150 ["Offset of field: BNTypePrinterCallbacks::freeLines"]
8151 [::std::mem::offset_of!(BNTypePrinterCallbacks, freeLines) - 88usize];
8152};
8153impl Default for BNTypePrinterCallbacks {
8154 fn default() -> Self {
8155 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8156 unsafe {
8157 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8158 s.assume_init()
8159 }
8160 }
8161}
8162#[repr(C)]
8163#[derive(Debug, Default, Copy, Clone)]
8164pub struct BNConstantReference {
8165 pub value: i64,
8166 pub size: usize,
8167 pub pointer: bool,
8168 pub intermediate: bool,
8169}
8170#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8171const _: () = {
8172 ["Size of BNConstantReference"][::std::mem::size_of::<BNConstantReference>() - 24usize];
8173 ["Alignment of BNConstantReference"][::std::mem::align_of::<BNConstantReference>() - 8usize];
8174 ["Offset of field: BNConstantReference::value"]
8175 [::std::mem::offset_of!(BNConstantReference, value) - 0usize];
8176 ["Offset of field: BNConstantReference::size"]
8177 [::std::mem::offset_of!(BNConstantReference, size) - 8usize];
8178 ["Offset of field: BNConstantReference::pointer"]
8179 [::std::mem::offset_of!(BNConstantReference, pointer) - 16usize];
8180 ["Offset of field: BNConstantReference::intermediate"]
8181 [::std::mem::offset_of!(BNConstantReference, intermediate) - 17usize];
8182};
8183#[repr(C)]
8184#[derive(Debug, Copy, Clone)]
8185pub struct BNMetadataValueStore {
8186 pub size: usize,
8187 pub keys: *mut *mut ::std::os::raw::c_char,
8188 pub values: *mut *mut BNMetadata,
8189}
8190#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8191const _: () = {
8192 ["Size of BNMetadataValueStore"][::std::mem::size_of::<BNMetadataValueStore>() - 24usize];
8193 ["Alignment of BNMetadataValueStore"][::std::mem::align_of::<BNMetadataValueStore>() - 8usize];
8194 ["Offset of field: BNMetadataValueStore::size"]
8195 [::std::mem::offset_of!(BNMetadataValueStore, size) - 0usize];
8196 ["Offset of field: BNMetadataValueStore::keys"]
8197 [::std::mem::offset_of!(BNMetadataValueStore, keys) - 8usize];
8198 ["Offset of field: BNMetadataValueStore::values"]
8199 [::std::mem::offset_of!(BNMetadataValueStore, values) - 16usize];
8200};
8201impl Default for BNMetadataValueStore {
8202 fn default() -> Self {
8203 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8204 unsafe {
8205 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8206 s.assume_init()
8207 }
8208 }
8209}
8210#[repr(u8)]
8211#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
8212pub enum BNSaveOption {
8213 RemoveUndoData = 0,
8214 TrimSnapshots = 1,
8215 PurgeOriginalFilenamePath = 2,
8216}
8217#[repr(u8)]
8218#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
8219pub enum BNMessageBoxIcon {
8220 InformationIcon = 0,
8221 QuestionIcon = 1,
8222 WarningIcon = 2,
8223 ErrorIcon = 3,
8224}
8225#[repr(u8)]
8226#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
8227pub enum BNMessageBoxButtonSet {
8228 OKButtonSet = 0,
8229 YesNoButtonSet = 1,
8230 YesNoCancelButtonSet = 2,
8231}
8232#[repr(u8)]
8233#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
8234pub enum BNMessageBoxButtonResult {
8235 NoButton = 0,
8236 YesButton = 1,
8237 OKButton = 2,
8238 CancelButton = 3,
8239}
8240#[repr(u8)]
8241#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
8242pub enum BNFormInputFieldType {
8243 LabelFormField = 0,
8244 SeparatorFormField = 1,
8245 TextLineFormField = 2,
8246 MultilineTextFormField = 3,
8247 IntegerFormField = 4,
8248 AddressFormField = 5,
8249 ChoiceFormField = 6,
8250 OpenFileNameFormField = 7,
8251 SaveFileNameFormField = 8,
8252 DirectoryNameFormField = 9,
8253 CheckboxFormField = 10,
8254}
8255#[repr(C)]
8256#[derive(Debug, Copy, Clone)]
8257pub struct BNFormInputField {
8258 pub type_: BNFormInputFieldType,
8259 pub prompt: *const ::std::os::raw::c_char,
8260 #[doc = " For AddressFormField"]
8261 pub view: *mut BNBinaryView,
8262 #[doc = " For AddressFormField"]
8263 pub currentAddress: u64,
8264 #[doc = " For ChoiceFormField"]
8265 pub choices: *mut *const ::std::os::raw::c_char,
8266 #[doc = " For ChoiceFormField"]
8267 pub count: usize,
8268 #[doc = " For OpenFileNameFormField, SaveFileNameFormField"]
8269 pub ext: *const ::std::os::raw::c_char,
8270 #[doc = " For SaveFileNameFormField"]
8271 pub defaultName: *const ::std::os::raw::c_char,
8272 pub intResult: i64,
8273 pub addressResult: u64,
8274 pub stringResult: *mut ::std::os::raw::c_char,
8275 pub indexResult: usize,
8276 pub hasDefault: bool,
8277 pub intDefault: i64,
8278 pub addressDefault: u64,
8279 pub stringDefault: *const ::std::os::raw::c_char,
8280 pub indexDefault: usize,
8281}
8282#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8283const _: () = {
8284 ["Size of BNFormInputField"][::std::mem::size_of::<BNFormInputField>() - 136usize];
8285 ["Alignment of BNFormInputField"][::std::mem::align_of::<BNFormInputField>() - 8usize];
8286 ["Offset of field: BNFormInputField::type_"]
8287 [::std::mem::offset_of!(BNFormInputField, type_) - 0usize];
8288 ["Offset of field: BNFormInputField::prompt"]
8289 [::std::mem::offset_of!(BNFormInputField, prompt) - 8usize];
8290 ["Offset of field: BNFormInputField::view"]
8291 [::std::mem::offset_of!(BNFormInputField, view) - 16usize];
8292 ["Offset of field: BNFormInputField::currentAddress"]
8293 [::std::mem::offset_of!(BNFormInputField, currentAddress) - 24usize];
8294 ["Offset of field: BNFormInputField::choices"]
8295 [::std::mem::offset_of!(BNFormInputField, choices) - 32usize];
8296 ["Offset of field: BNFormInputField::count"]
8297 [::std::mem::offset_of!(BNFormInputField, count) - 40usize];
8298 ["Offset of field: BNFormInputField::ext"]
8299 [::std::mem::offset_of!(BNFormInputField, ext) - 48usize];
8300 ["Offset of field: BNFormInputField::defaultName"]
8301 [::std::mem::offset_of!(BNFormInputField, defaultName) - 56usize];
8302 ["Offset of field: BNFormInputField::intResult"]
8303 [::std::mem::offset_of!(BNFormInputField, intResult) - 64usize];
8304 ["Offset of field: BNFormInputField::addressResult"]
8305 [::std::mem::offset_of!(BNFormInputField, addressResult) - 72usize];
8306 ["Offset of field: BNFormInputField::stringResult"]
8307 [::std::mem::offset_of!(BNFormInputField, stringResult) - 80usize];
8308 ["Offset of field: BNFormInputField::indexResult"]
8309 [::std::mem::offset_of!(BNFormInputField, indexResult) - 88usize];
8310 ["Offset of field: BNFormInputField::hasDefault"]
8311 [::std::mem::offset_of!(BNFormInputField, hasDefault) - 96usize];
8312 ["Offset of field: BNFormInputField::intDefault"]
8313 [::std::mem::offset_of!(BNFormInputField, intDefault) - 104usize];
8314 ["Offset of field: BNFormInputField::addressDefault"]
8315 [::std::mem::offset_of!(BNFormInputField, addressDefault) - 112usize];
8316 ["Offset of field: BNFormInputField::stringDefault"]
8317 [::std::mem::offset_of!(BNFormInputField, stringDefault) - 120usize];
8318 ["Offset of field: BNFormInputField::indexDefault"]
8319 [::std::mem::offset_of!(BNFormInputField, indexDefault) - 128usize];
8320};
8321impl Default for BNFormInputField {
8322 fn default() -> Self {
8323 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8324 unsafe {
8325 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8326 s.assume_init()
8327 }
8328 }
8329}
8330#[repr(C)]
8331#[derive(Debug, Copy, Clone)]
8332pub struct BNInteractionHandlerCallbacks {
8333 pub context: *mut ::std::os::raw::c_void,
8334 pub showPlainTextReport: ::std::option::Option<
8335 unsafe extern "C" fn(
8336 ctxt: *mut ::std::os::raw::c_void,
8337 view: *mut BNBinaryView,
8338 title: *const ::std::os::raw::c_char,
8339 contents: *const ::std::os::raw::c_char,
8340 ),
8341 >,
8342 pub showMarkdownReport: ::std::option::Option<
8343 unsafe extern "C" fn(
8344 ctxt: *mut ::std::os::raw::c_void,
8345 view: *mut BNBinaryView,
8346 title: *const ::std::os::raw::c_char,
8347 contents: *const ::std::os::raw::c_char,
8348 plaintext: *const ::std::os::raw::c_char,
8349 ),
8350 >,
8351 pub showHTMLReport: ::std::option::Option<
8352 unsafe extern "C" fn(
8353 ctxt: *mut ::std::os::raw::c_void,
8354 view: *mut BNBinaryView,
8355 title: *const ::std::os::raw::c_char,
8356 contents: *const ::std::os::raw::c_char,
8357 plaintext: *const ::std::os::raw::c_char,
8358 ),
8359 >,
8360 pub showGraphReport: ::std::option::Option<
8361 unsafe extern "C" fn(
8362 ctxt: *mut ::std::os::raw::c_void,
8363 view: *mut BNBinaryView,
8364 title: *const ::std::os::raw::c_char,
8365 graph: *mut BNFlowGraph,
8366 ),
8367 >,
8368 pub showReportCollection: ::std::option::Option<
8369 unsafe extern "C" fn(
8370 ctxt: *mut ::std::os::raw::c_void,
8371 title: *const ::std::os::raw::c_char,
8372 reports: *mut BNReportCollection,
8373 ),
8374 >,
8375 pub getTextLineInput: ::std::option::Option<
8376 unsafe extern "C" fn(
8377 ctxt: *mut ::std::os::raw::c_void,
8378 result: *mut *mut ::std::os::raw::c_char,
8379 prompt: *const ::std::os::raw::c_char,
8380 title: *const ::std::os::raw::c_char,
8381 ) -> bool,
8382 >,
8383 pub getIntegerInput: ::std::option::Option<
8384 unsafe extern "C" fn(
8385 ctxt: *mut ::std::os::raw::c_void,
8386 result: *mut i64,
8387 prompt: *const ::std::os::raw::c_char,
8388 title: *const ::std::os::raw::c_char,
8389 ) -> bool,
8390 >,
8391 pub getAddressInput: ::std::option::Option<
8392 unsafe extern "C" fn(
8393 ctxt: *mut ::std::os::raw::c_void,
8394 result: *mut u64,
8395 prompt: *const ::std::os::raw::c_char,
8396 title: *const ::std::os::raw::c_char,
8397 view: *mut BNBinaryView,
8398 currentAddr: u64,
8399 ) -> bool,
8400 >,
8401 pub getChoiceInput: ::std::option::Option<
8402 unsafe extern "C" fn(
8403 ctxt: *mut ::std::os::raw::c_void,
8404 result: *mut usize,
8405 prompt: *const ::std::os::raw::c_char,
8406 title: *const ::std::os::raw::c_char,
8407 choices: *mut *const ::std::os::raw::c_char,
8408 count: usize,
8409 ) -> bool,
8410 >,
8411 pub getLargeChoiceInput: ::std::option::Option<
8412 unsafe extern "C" fn(
8413 ctxt: *mut ::std::os::raw::c_void,
8414 result: *mut usize,
8415 prompt: *const ::std::os::raw::c_char,
8416 title: *const ::std::os::raw::c_char,
8417 choices: *mut *const ::std::os::raw::c_char,
8418 count: usize,
8419 ) -> bool,
8420 >,
8421 pub getOpenFileNameInput: ::std::option::Option<
8422 unsafe extern "C" fn(
8423 ctxt: *mut ::std::os::raw::c_void,
8424 result: *mut *mut ::std::os::raw::c_char,
8425 prompt: *const ::std::os::raw::c_char,
8426 ext: *const ::std::os::raw::c_char,
8427 ) -> bool,
8428 >,
8429 pub getSaveFileNameInput: ::std::option::Option<
8430 unsafe extern "C" fn(
8431 ctxt: *mut ::std::os::raw::c_void,
8432 result: *mut *mut ::std::os::raw::c_char,
8433 prompt: *const ::std::os::raw::c_char,
8434 ext: *const ::std::os::raw::c_char,
8435 defaultName: *const ::std::os::raw::c_char,
8436 ) -> bool,
8437 >,
8438 pub getDirectoryNameInput: ::std::option::Option<
8439 unsafe extern "C" fn(
8440 ctxt: *mut ::std::os::raw::c_void,
8441 result: *mut *mut ::std::os::raw::c_char,
8442 prompt: *const ::std::os::raw::c_char,
8443 defaultName: *const ::std::os::raw::c_char,
8444 ) -> bool,
8445 >,
8446 pub getCheckboxInput: ::std::option::Option<
8447 unsafe extern "C" fn(
8448 ctxt: *mut ::std::os::raw::c_void,
8449 result: *mut i64,
8450 prompt: *const ::std::os::raw::c_char,
8451 title: *const ::std::os::raw::c_char,
8452 defaultChoice: *const i64,
8453 ) -> bool,
8454 >,
8455 pub getFormInput: ::std::option::Option<
8456 unsafe extern "C" fn(
8457 ctxt: *mut ::std::os::raw::c_void,
8458 fields: *mut BNFormInputField,
8459 count: usize,
8460 title: *const ::std::os::raw::c_char,
8461 ) -> bool,
8462 >,
8463 pub showMessageBox: ::std::option::Option<
8464 unsafe extern "C" fn(
8465 ctxt: *mut ::std::os::raw::c_void,
8466 title: *const ::std::os::raw::c_char,
8467 text: *const ::std::os::raw::c_char,
8468 buttons: BNMessageBoxButtonSet,
8469 icon: BNMessageBoxIcon,
8470 ) -> BNMessageBoxButtonResult,
8471 >,
8472 pub openUrl: ::std::option::Option<
8473 unsafe extern "C" fn(
8474 ctxt: *mut ::std::os::raw::c_void,
8475 url: *const ::std::os::raw::c_char,
8476 ) -> bool,
8477 >,
8478 pub runProgressDialog: ::std::option::Option<
8479 unsafe extern "C" fn(
8480 ctxt: *mut ::std::os::raw::c_void,
8481 title: *const ::std::os::raw::c_char,
8482 canCancel: bool,
8483 task: ::std::option::Option<
8484 unsafe extern "C" fn(
8485 taskCtxt: *mut ::std::os::raw::c_void,
8486 progress: BNProgressFunction,
8487 progressCtxt: *mut ::std::os::raw::c_void,
8488 ),
8489 >,
8490 taskCtxt: *mut ::std::os::raw::c_void,
8491 ) -> bool,
8492 >,
8493}
8494#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8495const _: () = {
8496 ["Size of BNInteractionHandlerCallbacks"]
8497 [::std::mem::size_of::<BNInteractionHandlerCallbacks>() - 152usize];
8498 ["Alignment of BNInteractionHandlerCallbacks"]
8499 [::std::mem::align_of::<BNInteractionHandlerCallbacks>() - 8usize];
8500 ["Offset of field: BNInteractionHandlerCallbacks::context"]
8501 [::std::mem::offset_of!(BNInteractionHandlerCallbacks, context) - 0usize];
8502 ["Offset of field: BNInteractionHandlerCallbacks::showPlainTextReport"]
8503 [::std::mem::offset_of!(BNInteractionHandlerCallbacks, showPlainTextReport) - 8usize];
8504 ["Offset of field: BNInteractionHandlerCallbacks::showMarkdownReport"]
8505 [::std::mem::offset_of!(BNInteractionHandlerCallbacks, showMarkdownReport) - 16usize];
8506 ["Offset of field: BNInteractionHandlerCallbacks::showHTMLReport"]
8507 [::std::mem::offset_of!(BNInteractionHandlerCallbacks, showHTMLReport) - 24usize];
8508 ["Offset of field: BNInteractionHandlerCallbacks::showGraphReport"]
8509 [::std::mem::offset_of!(BNInteractionHandlerCallbacks, showGraphReport) - 32usize];
8510 ["Offset of field: BNInteractionHandlerCallbacks::showReportCollection"]
8511 [::std::mem::offset_of!(BNInteractionHandlerCallbacks, showReportCollection) - 40usize];
8512 ["Offset of field: BNInteractionHandlerCallbacks::getTextLineInput"]
8513 [::std::mem::offset_of!(BNInteractionHandlerCallbacks, getTextLineInput) - 48usize];
8514 ["Offset of field: BNInteractionHandlerCallbacks::getIntegerInput"]
8515 [::std::mem::offset_of!(BNInteractionHandlerCallbacks, getIntegerInput) - 56usize];
8516 ["Offset of field: BNInteractionHandlerCallbacks::getAddressInput"]
8517 [::std::mem::offset_of!(BNInteractionHandlerCallbacks, getAddressInput) - 64usize];
8518 ["Offset of field: BNInteractionHandlerCallbacks::getChoiceInput"]
8519 [::std::mem::offset_of!(BNInteractionHandlerCallbacks, getChoiceInput) - 72usize];
8520 ["Offset of field: BNInteractionHandlerCallbacks::getLargeChoiceInput"]
8521 [::std::mem::offset_of!(BNInteractionHandlerCallbacks, getLargeChoiceInput) - 80usize];
8522 ["Offset of field: BNInteractionHandlerCallbacks::getOpenFileNameInput"]
8523 [::std::mem::offset_of!(BNInteractionHandlerCallbacks, getOpenFileNameInput) - 88usize];
8524 ["Offset of field: BNInteractionHandlerCallbacks::getSaveFileNameInput"]
8525 [::std::mem::offset_of!(BNInteractionHandlerCallbacks, getSaveFileNameInput) - 96usize];
8526 ["Offset of field: BNInteractionHandlerCallbacks::getDirectoryNameInput"]
8527 [::std::mem::offset_of!(BNInteractionHandlerCallbacks, getDirectoryNameInput) - 104usize];
8528 ["Offset of field: BNInteractionHandlerCallbacks::getCheckboxInput"]
8529 [::std::mem::offset_of!(BNInteractionHandlerCallbacks, getCheckboxInput) - 112usize];
8530 ["Offset of field: BNInteractionHandlerCallbacks::getFormInput"]
8531 [::std::mem::offset_of!(BNInteractionHandlerCallbacks, getFormInput) - 120usize];
8532 ["Offset of field: BNInteractionHandlerCallbacks::showMessageBox"]
8533 [::std::mem::offset_of!(BNInteractionHandlerCallbacks, showMessageBox) - 128usize];
8534 ["Offset of field: BNInteractionHandlerCallbacks::openUrl"]
8535 [::std::mem::offset_of!(BNInteractionHandlerCallbacks, openUrl) - 136usize];
8536 ["Offset of field: BNInteractionHandlerCallbacks::runProgressDialog"]
8537 [::std::mem::offset_of!(BNInteractionHandlerCallbacks, runProgressDialog) - 144usize];
8538};
8539impl Default for BNInteractionHandlerCallbacks {
8540 fn default() -> Self {
8541 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8542 unsafe {
8543 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8544 s.assume_init()
8545 }
8546 }
8547}
8548#[repr(C)]
8549#[derive(Debug, Copy, Clone)]
8550pub struct BNObjectDestructionCallbacks {
8551 pub context: *mut ::std::os::raw::c_void,
8552 #[doc = " The provided pointers have a reference count of zero. Do not add additional references, doing so\n can lead to a double free. These are provided only for freeing additional state related to the\n objects passed."]
8553 pub destructBinaryView: ::std::option::Option<
8554 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, view: *mut BNBinaryView),
8555 >,
8556 pub destructFileMetadata: ::std::option::Option<
8557 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, file: *mut BNFileMetadata),
8558 >,
8559 pub destructFunction: ::std::option::Option<
8560 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, func: *mut BNFunction),
8561 >,
8562}
8563#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8564const _: () = {
8565 ["Size of BNObjectDestructionCallbacks"]
8566 [::std::mem::size_of::<BNObjectDestructionCallbacks>() - 32usize];
8567 ["Alignment of BNObjectDestructionCallbacks"]
8568 [::std::mem::align_of::<BNObjectDestructionCallbacks>() - 8usize];
8569 ["Offset of field: BNObjectDestructionCallbacks::context"]
8570 [::std::mem::offset_of!(BNObjectDestructionCallbacks, context) - 0usize];
8571 ["Offset of field: BNObjectDestructionCallbacks::destructBinaryView"]
8572 [::std::mem::offset_of!(BNObjectDestructionCallbacks, destructBinaryView) - 8usize];
8573 ["Offset of field: BNObjectDestructionCallbacks::destructFileMetadata"]
8574 [::std::mem::offset_of!(BNObjectDestructionCallbacks, destructFileMetadata) - 16usize];
8575 ["Offset of field: BNObjectDestructionCallbacks::destructFunction"]
8576 [::std::mem::offset_of!(BNObjectDestructionCallbacks, destructFunction) - 24usize];
8577};
8578impl Default for BNObjectDestructionCallbacks {
8579 fn default() -> Self {
8580 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8581 unsafe {
8582 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8583 s.assume_init()
8584 }
8585 }
8586}
8587#[repr(C)]
8588#[derive(Debug, Copy, Clone)]
8589pub struct BNTypeContext {
8590 pub type_: *mut BNType,
8591 pub offset: usize,
8592}
8593#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8594const _: () = {
8595 ["Size of BNTypeContext"][::std::mem::size_of::<BNTypeContext>() - 16usize];
8596 ["Alignment of BNTypeContext"][::std::mem::align_of::<BNTypeContext>() - 8usize];
8597 ["Offset of field: BNTypeContext::type_"]
8598 [::std::mem::offset_of!(BNTypeContext, type_) - 0usize];
8599 ["Offset of field: BNTypeContext::offset"]
8600 [::std::mem::offset_of!(BNTypeContext, offset) - 8usize];
8601};
8602impl Default for BNTypeContext {
8603 fn default() -> Self {
8604 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8605 unsafe {
8606 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8607 s.assume_init()
8608 }
8609 }
8610}
8611#[repr(C)]
8612#[derive(Debug, Copy, Clone)]
8613pub struct BNCustomDataRenderer {
8614 pub context: *mut ::std::os::raw::c_void,
8615 pub freeObject: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
8616 pub isValidForData: ::std::option::Option<
8617 unsafe extern "C" fn(
8618 ctxt: *mut ::std::os::raw::c_void,
8619 view: *mut BNBinaryView,
8620 addr: u64,
8621 type_: *mut BNType,
8622 typeCtx: *mut BNTypeContext,
8623 ctxCount: usize,
8624 ) -> bool,
8625 >,
8626 pub getLinesForData: ::std::option::Option<
8627 unsafe extern "C" fn(
8628 ctxt: *mut ::std::os::raw::c_void,
8629 view: *mut BNBinaryView,
8630 addr: u64,
8631 type_: *mut BNType,
8632 prefix: *const BNInstructionTextToken,
8633 prefixCount: usize,
8634 width: usize,
8635 count: *mut usize,
8636 typeCtx: *mut BNTypeContext,
8637 ctxCount: usize,
8638 language: *const ::std::os::raw::c_char,
8639 ) -> *mut BNDisassemblyTextLine,
8640 >,
8641 pub freeLines: ::std::option::Option<
8642 unsafe extern "C" fn(
8643 ctx: *mut ::std::os::raw::c_void,
8644 lines: *mut BNDisassemblyTextLine,
8645 count: usize,
8646 ),
8647 >,
8648}
8649#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8650const _: () = {
8651 ["Size of BNCustomDataRenderer"][::std::mem::size_of::<BNCustomDataRenderer>() - 40usize];
8652 ["Alignment of BNCustomDataRenderer"][::std::mem::align_of::<BNCustomDataRenderer>() - 8usize];
8653 ["Offset of field: BNCustomDataRenderer::context"]
8654 [::std::mem::offset_of!(BNCustomDataRenderer, context) - 0usize];
8655 ["Offset of field: BNCustomDataRenderer::freeObject"]
8656 [::std::mem::offset_of!(BNCustomDataRenderer, freeObject) - 8usize];
8657 ["Offset of field: BNCustomDataRenderer::isValidForData"]
8658 [::std::mem::offset_of!(BNCustomDataRenderer, isValidForData) - 16usize];
8659 ["Offset of field: BNCustomDataRenderer::getLinesForData"]
8660 [::std::mem::offset_of!(BNCustomDataRenderer, getLinesForData) - 24usize];
8661 ["Offset of field: BNCustomDataRenderer::freeLines"]
8662 [::std::mem::offset_of!(BNCustomDataRenderer, freeLines) - 32usize];
8663};
8664impl Default for BNCustomDataRenderer {
8665 fn default() -> Self {
8666 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8667 unsafe {
8668 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8669 s.assume_init()
8670 }
8671 }
8672}
8673#[repr(u8)]
8674#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
8675pub enum BNSectionSemantics {
8676 DefaultSectionSemantics = 0,
8677 ReadOnlyCodeSectionSemantics = 1,
8678 ReadOnlyDataSectionSemantics = 2,
8679 ReadWriteDataSectionSemantics = 3,
8680 ExternalSectionSemantics = 4,
8681}
8682#[repr(C)]
8683#[derive(Debug, Default, Copy, Clone)]
8684pub struct BNAddressRange {
8685 pub start: u64,
8686 pub end: u64,
8687}
8688#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8689const _: () = {
8690 ["Size of BNAddressRange"][::std::mem::size_of::<BNAddressRange>() - 16usize];
8691 ["Alignment of BNAddressRange"][::std::mem::align_of::<BNAddressRange>() - 8usize];
8692 ["Offset of field: BNAddressRange::start"]
8693 [::std::mem::offset_of!(BNAddressRange, start) - 0usize];
8694 ["Offset of field: BNAddressRange::end"][::std::mem::offset_of!(BNAddressRange, end) - 8usize];
8695};
8696#[repr(C)]
8697#[derive(Debug, Copy, Clone)]
8698pub struct BNSystemCallInfo {
8699 pub number: u32,
8700 pub name: BNQualifiedName,
8701 pub type_: *mut BNType,
8702}
8703#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8704const _: () = {
8705 ["Size of BNSystemCallInfo"][::std::mem::size_of::<BNSystemCallInfo>() - 40usize];
8706 ["Alignment of BNSystemCallInfo"][::std::mem::align_of::<BNSystemCallInfo>() - 8usize];
8707 ["Offset of field: BNSystemCallInfo::number"]
8708 [::std::mem::offset_of!(BNSystemCallInfo, number) - 0usize];
8709 ["Offset of field: BNSystemCallInfo::name"]
8710 [::std::mem::offset_of!(BNSystemCallInfo, name) - 8usize];
8711 ["Offset of field: BNSystemCallInfo::type_"]
8712 [::std::mem::offset_of!(BNSystemCallInfo, type_) - 32usize];
8713};
8714impl Default for BNSystemCallInfo {
8715 fn default() -> Self {
8716 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8717 unsafe {
8718 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8719 s.assume_init()
8720 }
8721 }
8722}
8723#[repr(u8)]
8724#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
8725pub enum BNILBranchDependence {
8726 NotBranchDependent = 0,
8727 TrueBranchDependent = 1,
8728 FalseBranchDependent = 2,
8729}
8730#[repr(C)]
8731#[derive(Debug, Copy, Clone)]
8732pub struct BNILBranchInstructionAndDependence {
8733 pub branch: usize,
8734 pub dependence: BNILBranchDependence,
8735}
8736#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8737const _: () = {
8738 ["Size of BNILBranchInstructionAndDependence"]
8739 [::std::mem::size_of::<BNILBranchInstructionAndDependence>() - 16usize];
8740 ["Alignment of BNILBranchInstructionAndDependence"]
8741 [::std::mem::align_of::<BNILBranchInstructionAndDependence>() - 8usize];
8742 ["Offset of field: BNILBranchInstructionAndDependence::branch"]
8743 [::std::mem::offset_of!(BNILBranchInstructionAndDependence, branch) - 0usize];
8744 ["Offset of field: BNILBranchInstructionAndDependence::dependence"]
8745 [::std::mem::offset_of!(BNILBranchInstructionAndDependence, dependence) - 8usize];
8746};
8747impl Default for BNILBranchInstructionAndDependence {
8748 fn default() -> Self {
8749 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8750 unsafe {
8751 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8752 s.assume_init()
8753 }
8754 }
8755}
8756#[repr(C)]
8757#[derive(Debug, Copy, Clone)]
8758pub struct BNPerformanceInfo {
8759 pub name: *mut ::std::os::raw::c_char,
8760 pub seconds: f64,
8761}
8762#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8763const _: () = {
8764 ["Size of BNPerformanceInfo"][::std::mem::size_of::<BNPerformanceInfo>() - 16usize];
8765 ["Alignment of BNPerformanceInfo"][::std::mem::align_of::<BNPerformanceInfo>() - 8usize];
8766 ["Offset of field: BNPerformanceInfo::name"]
8767 [::std::mem::offset_of!(BNPerformanceInfo, name) - 0usize];
8768 ["Offset of field: BNPerformanceInfo::seconds"]
8769 [::std::mem::offset_of!(BNPerformanceInfo, seconds) - 8usize];
8770};
8771impl Default for BNPerformanceInfo {
8772 fn default() -> Self {
8773 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8774 unsafe {
8775 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8776 s.assume_init()
8777 }
8778 }
8779}
8780#[repr(C)]
8781#[derive(Debug, Copy, Clone)]
8782pub struct BNMemoryUsageInfo {
8783 pub name: *mut ::std::os::raw::c_char,
8784 pub value: u64,
8785}
8786#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8787const _: () = {
8788 ["Size of BNMemoryUsageInfo"][::std::mem::size_of::<BNMemoryUsageInfo>() - 16usize];
8789 ["Alignment of BNMemoryUsageInfo"][::std::mem::align_of::<BNMemoryUsageInfo>() - 8usize];
8790 ["Offset of field: BNMemoryUsageInfo::name"]
8791 [::std::mem::offset_of!(BNMemoryUsageInfo, name) - 0usize];
8792 ["Offset of field: BNMemoryUsageInfo::value"]
8793 [::std::mem::offset_of!(BNMemoryUsageInfo, value) - 8usize];
8794};
8795impl Default for BNMemoryUsageInfo {
8796 fn default() -> Self {
8797 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8798 unsafe {
8799 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8800 s.assume_init()
8801 }
8802 }
8803}
8804#[repr(u8)]
8805#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
8806pub enum BNMetadataType {
8807 InvalidDataType = 0,
8808 BooleanDataType = 1,
8809 StringDataType = 2,
8810 UnsignedIntegerDataType = 3,
8811 SignedIntegerDataType = 4,
8812 DoubleDataType = 5,
8813 RawDataType = 6,
8814 KeyValueDataType = 7,
8815 ArrayDataType = 8,
8816}
8817#[repr(C)]
8818#[derive(Debug, Default, Copy, Clone)]
8819pub struct BNRegisterStackAdjustment {
8820 pub regStack: u32,
8821 pub adjustment: i32,
8822 pub confidence: u8,
8823}
8824#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8825const _: () = {
8826 ["Size of BNRegisterStackAdjustment"]
8827 [::std::mem::size_of::<BNRegisterStackAdjustment>() - 12usize];
8828 ["Alignment of BNRegisterStackAdjustment"]
8829 [::std::mem::align_of::<BNRegisterStackAdjustment>() - 4usize];
8830 ["Offset of field: BNRegisterStackAdjustment::regStack"]
8831 [::std::mem::offset_of!(BNRegisterStackAdjustment, regStack) - 0usize];
8832 ["Offset of field: BNRegisterStackAdjustment::adjustment"]
8833 [::std::mem::offset_of!(BNRegisterStackAdjustment, adjustment) - 4usize];
8834 ["Offset of field: BNRegisterStackAdjustment::confidence"]
8835 [::std::mem::offset_of!(BNRegisterStackAdjustment, confidence) - 8usize];
8836};
8837#[repr(u8)]
8838#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
8839pub enum BNReportType {
8840 PlainTextReportType = 0,
8841 MarkdownReportType = 1,
8842 HTMLReportType = 2,
8843 FlowGraphReportType = 3,
8844}
8845#[repr(C)]
8846#[derive(Debug, Copy, Clone)]
8847pub struct BNCustomFlowGraph {
8848 pub context: *mut ::std::os::raw::c_void,
8849 pub prepareForLayout:
8850 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
8851 pub populateNodes:
8852 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
8853 pub completeLayout:
8854 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
8855 pub update: ::std::option::Option<
8856 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> *mut BNFlowGraph,
8857 >,
8858 pub freeObject: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
8859 pub externalRefTaken:
8860 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
8861 pub externalRefReleased:
8862 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
8863}
8864#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8865const _: () = {
8866 ["Size of BNCustomFlowGraph"][::std::mem::size_of::<BNCustomFlowGraph>() - 64usize];
8867 ["Alignment of BNCustomFlowGraph"][::std::mem::align_of::<BNCustomFlowGraph>() - 8usize];
8868 ["Offset of field: BNCustomFlowGraph::context"]
8869 [::std::mem::offset_of!(BNCustomFlowGraph, context) - 0usize];
8870 ["Offset of field: BNCustomFlowGraph::prepareForLayout"]
8871 [::std::mem::offset_of!(BNCustomFlowGraph, prepareForLayout) - 8usize];
8872 ["Offset of field: BNCustomFlowGraph::populateNodes"]
8873 [::std::mem::offset_of!(BNCustomFlowGraph, populateNodes) - 16usize];
8874 ["Offset of field: BNCustomFlowGraph::completeLayout"]
8875 [::std::mem::offset_of!(BNCustomFlowGraph, completeLayout) - 24usize];
8876 ["Offset of field: BNCustomFlowGraph::update"]
8877 [::std::mem::offset_of!(BNCustomFlowGraph, update) - 32usize];
8878 ["Offset of field: BNCustomFlowGraph::freeObject"]
8879 [::std::mem::offset_of!(BNCustomFlowGraph, freeObject) - 40usize];
8880 ["Offset of field: BNCustomFlowGraph::externalRefTaken"]
8881 [::std::mem::offset_of!(BNCustomFlowGraph, externalRefTaken) - 48usize];
8882 ["Offset of field: BNCustomFlowGraph::externalRefReleased"]
8883 [::std::mem::offset_of!(BNCustomFlowGraph, externalRefReleased) - 56usize];
8884};
8885impl Default for BNCustomFlowGraph {
8886 fn default() -> Self {
8887 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8888 unsafe {
8889 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8890 s.assume_init()
8891 }
8892 }
8893}
8894#[repr(C)]
8895#[derive(Debug, Copy, Clone)]
8896pub struct BNCustomFlowGraphLayout {
8897 pub context: *mut ::std::os::raw::c_void,
8898 pub layout: ::std::option::Option<
8899 unsafe extern "C" fn(
8900 ctxt: *mut ::std::os::raw::c_void,
8901 graph: *mut BNFlowGraph,
8902 nodes: *mut *mut BNFlowGraphNode,
8903 nodeCount: usize,
8904 ) -> bool,
8905 >,
8906}
8907#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8908const _: () = {
8909 ["Size of BNCustomFlowGraphLayout"][::std::mem::size_of::<BNCustomFlowGraphLayout>() - 16usize];
8910 ["Alignment of BNCustomFlowGraphLayout"]
8911 [::std::mem::align_of::<BNCustomFlowGraphLayout>() - 8usize];
8912 ["Offset of field: BNCustomFlowGraphLayout::context"]
8913 [::std::mem::offset_of!(BNCustomFlowGraphLayout, context) - 0usize];
8914 ["Offset of field: BNCustomFlowGraphLayout::layout"]
8915 [::std::mem::offset_of!(BNCustomFlowGraphLayout, layout) - 8usize];
8916};
8917impl Default for BNCustomFlowGraphLayout {
8918 fn default() -> Self {
8919 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8920 unsafe {
8921 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8922 s.assume_init()
8923 }
8924 }
8925}
8926#[repr(C)]
8927#[derive(Debug, Default, Copy, Clone)]
8928pub struct BNRange {
8929 pub start: u64,
8930 pub end: u64,
8931}
8932#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8933const _: () = {
8934 ["Size of BNRange"][::std::mem::size_of::<BNRange>() - 16usize];
8935 ["Alignment of BNRange"][::std::mem::align_of::<BNRange>() - 8usize];
8936 ["Offset of field: BNRange::start"][::std::mem::offset_of!(BNRange, start) - 0usize];
8937 ["Offset of field: BNRange::end"][::std::mem::offset_of!(BNRange, end) - 8usize];
8938};
8939#[repr(u8)]
8940#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
8941pub enum BNAnalysisSkipReason {
8942 NoSkipReason = 0,
8943 AlwaysSkipReason = 1,
8944 ExceedFunctionSizeSkipReason = 2,
8945 ExceedFunctionAnalysisTimeSkipReason = 3,
8946 ExceedFunctionUpdateCountSkipReason = 4,
8947 NewAutoFunctionAnalysisSuppressedReason = 5,
8948 BasicAnalysisSkipReason = 6,
8949 IntermediateAnalysisSkipReason = 7,
8950 AnalysisPipelineSuspendedReason = 8,
8951}
8952#[repr(u8)]
8953#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
8954pub enum BNSettingsScope {
8955 SettingsInvalidScope = 0,
8956 SettingsAutoScope = 1,
8957 SettingsDefaultScope = 2,
8958 SettingsUserScope = 4,
8959 SettingsProjectScope = 8,
8960 SettingsResourceScope = 16,
8961}
8962#[repr(u8)]
8963#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
8964pub enum BNLinearViewObjectIdentifierType {
8965 SingleLinearViewObject = 0,
8966 AddressLinearViewObject = 1,
8967 AddressRangeLinearViewObject = 2,
8968}
8969#[repr(C)]
8970#[derive(Debug, Copy, Clone)]
8971pub struct BNLinearViewObjectIdentifier {
8972 pub name: *mut ::std::os::raw::c_char,
8973 pub type_: BNLinearViewObjectIdentifierType,
8974 pub start: u64,
8975 pub end: u64,
8976}
8977#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8978const _: () = {
8979 ["Size of BNLinearViewObjectIdentifier"]
8980 [::std::mem::size_of::<BNLinearViewObjectIdentifier>() - 32usize];
8981 ["Alignment of BNLinearViewObjectIdentifier"]
8982 [::std::mem::align_of::<BNLinearViewObjectIdentifier>() - 8usize];
8983 ["Offset of field: BNLinearViewObjectIdentifier::name"]
8984 [::std::mem::offset_of!(BNLinearViewObjectIdentifier, name) - 0usize];
8985 ["Offset of field: BNLinearViewObjectIdentifier::type_"]
8986 [::std::mem::offset_of!(BNLinearViewObjectIdentifier, type_) - 8usize];
8987 ["Offset of field: BNLinearViewObjectIdentifier::start"]
8988 [::std::mem::offset_of!(BNLinearViewObjectIdentifier, start) - 16usize];
8989 ["Offset of field: BNLinearViewObjectIdentifier::end"]
8990 [::std::mem::offset_of!(BNLinearViewObjectIdentifier, end) - 24usize];
8991};
8992impl Default for BNLinearViewObjectIdentifier {
8993 fn default() -> Self {
8994 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8995 unsafe {
8996 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8997 s.assume_init()
8998 }
8999 }
9000}
9001#[repr(u8)]
9002#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9003pub enum BNBinaryViewEventType {
9004 BinaryViewFinalizationEvent = 0,
9005 BinaryViewInitialAnalysisCompletionEvent = 1,
9006}
9007#[repr(u8)]
9008#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9009pub enum BNDeadStoreElimination {
9010 DefaultDeadStoreElimination = 0,
9011 PreventDeadStoreElimination = 1,
9012 AllowDeadStoreElimination = 2,
9013}
9014#[repr(u8)]
9015#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9016pub enum BNExprFolding {
9017 DefaultExprFolding = 0,
9018 PreventExprFolding = 1,
9019 AllowExprFolding = 2,
9020}
9021#[repr(u8)]
9022#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9023pub enum BNEarlyReturn {
9024 DefaultEarlyReturn = 0,
9025 PreventEarlyReturn = 1,
9026 SmallestSideEarlyReturn = 2,
9027 TrueSideEarlyReturn = 3,
9028 FalseSideEarlyReturn = 4,
9029}
9030#[repr(u8)]
9031#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9032pub enum BNSwitchRecovery {
9033 DefaultSwitchRecovery = 0,
9034 PreventSwitchRecovery = 1,
9035 AllowSwitchRecovery = 2,
9036}
9037#[repr(C)]
9038#[derive(Debug, Copy, Clone)]
9039pub struct BNDebugFunctionInfo {
9040 pub shortName: *mut ::std::os::raw::c_char,
9041 pub fullName: *mut ::std::os::raw::c_char,
9042 pub rawName: *mut ::std::os::raw::c_char,
9043 pub address: u64,
9044 pub type_: *mut BNType,
9045 pub platform: *mut BNPlatform,
9046 pub components: *mut *mut ::std::os::raw::c_char,
9047 pub componentN: usize,
9048 pub localVariables: *mut BNVariableNameAndType,
9049 pub localVariableN: usize,
9050}
9051#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9052const _: () = {
9053 ["Size of BNDebugFunctionInfo"][::std::mem::size_of::<BNDebugFunctionInfo>() - 80usize];
9054 ["Alignment of BNDebugFunctionInfo"][::std::mem::align_of::<BNDebugFunctionInfo>() - 8usize];
9055 ["Offset of field: BNDebugFunctionInfo::shortName"]
9056 [::std::mem::offset_of!(BNDebugFunctionInfo, shortName) - 0usize];
9057 ["Offset of field: BNDebugFunctionInfo::fullName"]
9058 [::std::mem::offset_of!(BNDebugFunctionInfo, fullName) - 8usize];
9059 ["Offset of field: BNDebugFunctionInfo::rawName"]
9060 [::std::mem::offset_of!(BNDebugFunctionInfo, rawName) - 16usize];
9061 ["Offset of field: BNDebugFunctionInfo::address"]
9062 [::std::mem::offset_of!(BNDebugFunctionInfo, address) - 24usize];
9063 ["Offset of field: BNDebugFunctionInfo::type_"]
9064 [::std::mem::offset_of!(BNDebugFunctionInfo, type_) - 32usize];
9065 ["Offset of field: BNDebugFunctionInfo::platform"]
9066 [::std::mem::offset_of!(BNDebugFunctionInfo, platform) - 40usize];
9067 ["Offset of field: BNDebugFunctionInfo::components"]
9068 [::std::mem::offset_of!(BNDebugFunctionInfo, components) - 48usize];
9069 ["Offset of field: BNDebugFunctionInfo::componentN"]
9070 [::std::mem::offset_of!(BNDebugFunctionInfo, componentN) - 56usize];
9071 ["Offset of field: BNDebugFunctionInfo::localVariables"]
9072 [::std::mem::offset_of!(BNDebugFunctionInfo, localVariables) - 64usize];
9073 ["Offset of field: BNDebugFunctionInfo::localVariableN"]
9074 [::std::mem::offset_of!(BNDebugFunctionInfo, localVariableN) - 72usize];
9075};
9076impl Default for BNDebugFunctionInfo {
9077 fn default() -> Self {
9078 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9079 unsafe {
9080 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9081 s.assume_init()
9082 }
9083 }
9084}
9085#[repr(C)]
9086#[derive(Debug, Copy, Clone)]
9087pub struct BNSecretsProviderCallbacks {
9088 pub context: *mut ::std::os::raw::c_void,
9089 pub hasData: ::std::option::Option<
9090 unsafe extern "C" fn(
9091 ctxt: *mut ::std::os::raw::c_void,
9092 key: *const ::std::os::raw::c_char,
9093 ) -> bool,
9094 >,
9095 pub getData: ::std::option::Option<
9096 unsafe extern "C" fn(
9097 ctxt: *mut ::std::os::raw::c_void,
9098 key: *const ::std::os::raw::c_char,
9099 ) -> *mut ::std::os::raw::c_char,
9100 >,
9101 pub storeData: ::std::option::Option<
9102 unsafe extern "C" fn(
9103 ctxt: *mut ::std::os::raw::c_void,
9104 key: *const ::std::os::raw::c_char,
9105 data: *const ::std::os::raw::c_char,
9106 ) -> bool,
9107 >,
9108 pub deleteData: ::std::option::Option<
9109 unsafe extern "C" fn(
9110 ctxt: *mut ::std::os::raw::c_void,
9111 key: *const ::std::os::raw::c_char,
9112 ) -> bool,
9113 >,
9114}
9115#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9116const _: () = {
9117 ["Size of BNSecretsProviderCallbacks"]
9118 [::std::mem::size_of::<BNSecretsProviderCallbacks>() - 40usize];
9119 ["Alignment of BNSecretsProviderCallbacks"]
9120 [::std::mem::align_of::<BNSecretsProviderCallbacks>() - 8usize];
9121 ["Offset of field: BNSecretsProviderCallbacks::context"]
9122 [::std::mem::offset_of!(BNSecretsProviderCallbacks, context) - 0usize];
9123 ["Offset of field: BNSecretsProviderCallbacks::hasData"]
9124 [::std::mem::offset_of!(BNSecretsProviderCallbacks, hasData) - 8usize];
9125 ["Offset of field: BNSecretsProviderCallbacks::getData"]
9126 [::std::mem::offset_of!(BNSecretsProviderCallbacks, getData) - 16usize];
9127 ["Offset of field: BNSecretsProviderCallbacks::storeData"]
9128 [::std::mem::offset_of!(BNSecretsProviderCallbacks, storeData) - 24usize];
9129 ["Offset of field: BNSecretsProviderCallbacks::deleteData"]
9130 [::std::mem::offset_of!(BNSecretsProviderCallbacks, deleteData) - 32usize];
9131};
9132impl Default for BNSecretsProviderCallbacks {
9133 fn default() -> Self {
9134 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9135 unsafe {
9136 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9137 s.assume_init()
9138 }
9139 }
9140}
9141#[repr(C)]
9142#[derive(Debug, Copy, Clone)]
9143pub struct BNMergedVariable {
9144 pub target: BNVariable,
9145 pub sources: *mut BNVariable,
9146 pub sourceCount: usize,
9147}
9148#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9149const _: () = {
9150 ["Size of BNMergedVariable"][::std::mem::size_of::<BNMergedVariable>() - 32usize];
9151 ["Alignment of BNMergedVariable"][::std::mem::align_of::<BNMergedVariable>() - 8usize];
9152 ["Offset of field: BNMergedVariable::target"]
9153 [::std::mem::offset_of!(BNMergedVariable, target) - 0usize];
9154 ["Offset of field: BNMergedVariable::sources"]
9155 [::std::mem::offset_of!(BNMergedVariable, sources) - 16usize];
9156 ["Offset of field: BNMergedVariable::sourceCount"]
9157 [::std::mem::offset_of!(BNMergedVariable, sourceCount) - 24usize];
9158};
9159impl Default for BNMergedVariable {
9160 fn default() -> Self {
9161 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9162 unsafe {
9163 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9164 s.assume_init()
9165 }
9166 }
9167}
9168#[repr(C)]
9169#[derive(Debug, Copy, Clone)]
9170pub struct BNEnterpriseServerCallbacks {
9171 pub context: *mut ::std::os::raw::c_void,
9172 pub licenseStatusChanged: ::std::option::Option<
9173 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, stillValid: bool),
9174 >,
9175}
9176#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9177const _: () = {
9178 ["Size of BNEnterpriseServerCallbacks"]
9179 [::std::mem::size_of::<BNEnterpriseServerCallbacks>() - 16usize];
9180 ["Alignment of BNEnterpriseServerCallbacks"]
9181 [::std::mem::align_of::<BNEnterpriseServerCallbacks>() - 8usize];
9182 ["Offset of field: BNEnterpriseServerCallbacks::context"]
9183 [::std::mem::offset_of!(BNEnterpriseServerCallbacks, context) - 0usize];
9184 ["Offset of field: BNEnterpriseServerCallbacks::licenseStatusChanged"]
9185 [::std::mem::offset_of!(BNEnterpriseServerCallbacks, licenseStatusChanged) - 8usize];
9186};
9187impl Default for BNEnterpriseServerCallbacks {
9188 fn default() -> Self {
9189 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9190 unsafe {
9191 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9192 s.assume_init()
9193 }
9194 }
9195}
9196#[repr(C)]
9197#[derive(Debug, Copy, Clone)]
9198pub struct BNTypeArchiveNotification {
9199 pub context: *mut ::std::os::raw::c_void,
9200 pub typeAdded: ::std::option::Option<
9201 unsafe extern "C" fn(
9202 ctxt: *mut ::std::os::raw::c_void,
9203 archive: *mut BNTypeArchive,
9204 id: *const ::std::os::raw::c_char,
9205 definition: *mut BNType,
9206 ),
9207 >,
9208 pub typeUpdated: ::std::option::Option<
9209 unsafe extern "C" fn(
9210 ctxt: *mut ::std::os::raw::c_void,
9211 archive: *mut BNTypeArchive,
9212 id: *const ::std::os::raw::c_char,
9213 oldDefinition: *mut BNType,
9214 newDefinition: *mut BNType,
9215 ),
9216 >,
9217 pub typeRenamed: ::std::option::Option<
9218 unsafe extern "C" fn(
9219 ctxt: *mut ::std::os::raw::c_void,
9220 archive: *mut BNTypeArchive,
9221 id: *const ::std::os::raw::c_char,
9222 oldName: *const BNQualifiedName,
9223 newName: *const BNQualifiedName,
9224 ),
9225 >,
9226 pub typeDeleted: ::std::option::Option<
9227 unsafe extern "C" fn(
9228 ctxt: *mut ::std::os::raw::c_void,
9229 archive: *mut BNTypeArchive,
9230 id: *const ::std::os::raw::c_char,
9231 definition: *mut BNType,
9232 ),
9233 >,
9234}
9235#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9236const _: () = {
9237 ["Size of BNTypeArchiveNotification"]
9238 [::std::mem::size_of::<BNTypeArchiveNotification>() - 40usize];
9239 ["Alignment of BNTypeArchiveNotification"]
9240 [::std::mem::align_of::<BNTypeArchiveNotification>() - 8usize];
9241 ["Offset of field: BNTypeArchiveNotification::context"]
9242 [::std::mem::offset_of!(BNTypeArchiveNotification, context) - 0usize];
9243 ["Offset of field: BNTypeArchiveNotification::typeAdded"]
9244 [::std::mem::offset_of!(BNTypeArchiveNotification, typeAdded) - 8usize];
9245 ["Offset of field: BNTypeArchiveNotification::typeUpdated"]
9246 [::std::mem::offset_of!(BNTypeArchiveNotification, typeUpdated) - 16usize];
9247 ["Offset of field: BNTypeArchiveNotification::typeRenamed"]
9248 [::std::mem::offset_of!(BNTypeArchiveNotification, typeRenamed) - 24usize];
9249 ["Offset of field: BNTypeArchiveNotification::typeDeleted"]
9250 [::std::mem::offset_of!(BNTypeArchiveNotification, typeDeleted) - 32usize];
9251};
9252impl Default for BNTypeArchiveNotification {
9253 fn default() -> Self {
9254 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9255 unsafe {
9256 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9257 s.assume_init()
9258 }
9259 }
9260}
9261#[repr(u8)]
9262#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9263pub enum BNTypeContainerType {
9264 AnalysisTypeContainerType = 0,
9265 AnalysisAutoTypeContainerType = 1,
9266 AnalysisUserTypeContainerType = 2,
9267 TypeLibraryTypeContainerType = 3,
9268 TypeArchiveTypeContainerType = 4,
9269 DebugInfoTypeContainerType = 5,
9270 PlatformTypeContainerType = 6,
9271 EmptyTypeContainerType = 7,
9272 OtherTypeContainerType = 8,
9273}
9274#[repr(u8)]
9275#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9276pub enum BNSyncStatus {
9277 NotSyncedSyncStatus = 0,
9278 NoChangesSyncStatus = 1,
9279 UnknownSyncStatus = 2,
9280 CanPushSyncStatus = 3,
9281 CanPullSyncStatus = 4,
9282 CanPushAndPullSyncStatus = 5,
9283 ConflictSyncStatus = 6,
9284}
9285#[repr(u8)]
9286#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9287pub enum BNBaseAddressDetectionPOISetting {
9288 POIAnalysisStringsOnly = 0,
9289 POIAnalysisFunctionsOnly = 1,
9290 POIAnalysisAll = 2,
9291}
9292#[repr(u8)]
9293#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9294pub enum BNBaseAddressDetectionPOIType {
9295 POIString = 0,
9296 POIFunction = 1,
9297 POIDataVariable = 2,
9298 POIFileStart = 3,
9299 POIFileEnd = 4,
9300}
9301#[repr(u8)]
9302#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9303pub enum BNBaseAddressDetectionConfidence {
9304 NoConfidence = 0,
9305 LowConfidence = 1,
9306 HighConfidence = 2,
9307}
9308#[repr(C)]
9309#[derive(Debug, Copy, Clone)]
9310pub struct BNBaseAddressDetectionSettings {
9311 pub Architecture: *const ::std::os::raw::c_char,
9312 pub Analysis: *const ::std::os::raw::c_char,
9313 pub MinStrlen: u32,
9314 pub Alignment: u32,
9315 pub LowerBoundary: u64,
9316 pub UpperBoundary: u64,
9317 pub POIAnalysis: BNBaseAddressDetectionPOISetting,
9318 pub MaxPointersPerCluster: u32,
9319}
9320#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9321const _: () = {
9322 ["Size of BNBaseAddressDetectionSettings"]
9323 [::std::mem::size_of::<BNBaseAddressDetectionSettings>() - 48usize];
9324 ["Alignment of BNBaseAddressDetectionSettings"]
9325 [::std::mem::align_of::<BNBaseAddressDetectionSettings>() - 8usize];
9326 ["Offset of field: BNBaseAddressDetectionSettings::Architecture"]
9327 [::std::mem::offset_of!(BNBaseAddressDetectionSettings, Architecture) - 0usize];
9328 ["Offset of field: BNBaseAddressDetectionSettings::Analysis"]
9329 [::std::mem::offset_of!(BNBaseAddressDetectionSettings, Analysis) - 8usize];
9330 ["Offset of field: BNBaseAddressDetectionSettings::MinStrlen"]
9331 [::std::mem::offset_of!(BNBaseAddressDetectionSettings, MinStrlen) - 16usize];
9332 ["Offset of field: BNBaseAddressDetectionSettings::Alignment"]
9333 [::std::mem::offset_of!(BNBaseAddressDetectionSettings, Alignment) - 20usize];
9334 ["Offset of field: BNBaseAddressDetectionSettings::LowerBoundary"]
9335 [::std::mem::offset_of!(BNBaseAddressDetectionSettings, LowerBoundary) - 24usize];
9336 ["Offset of field: BNBaseAddressDetectionSettings::UpperBoundary"]
9337 [::std::mem::offset_of!(BNBaseAddressDetectionSettings, UpperBoundary) - 32usize];
9338 ["Offset of field: BNBaseAddressDetectionSettings::POIAnalysis"]
9339 [::std::mem::offset_of!(BNBaseAddressDetectionSettings, POIAnalysis) - 40usize];
9340 ["Offset of field: BNBaseAddressDetectionSettings::MaxPointersPerCluster"]
9341 [::std::mem::offset_of!(BNBaseAddressDetectionSettings, MaxPointersPerCluster) - 44usize];
9342};
9343impl Default for BNBaseAddressDetectionSettings {
9344 fn default() -> Self {
9345 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9346 unsafe {
9347 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9348 s.assume_init()
9349 }
9350 }
9351}
9352#[repr(C)]
9353#[derive(Debug, Copy, Clone)]
9354pub struct BNBaseAddressDetectionReason {
9355 pub Pointer: u64,
9356 pub POIOffset: u64,
9357 pub POIType: BNBaseAddressDetectionPOIType,
9358}
9359#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9360const _: () = {
9361 ["Size of BNBaseAddressDetectionReason"]
9362 [::std::mem::size_of::<BNBaseAddressDetectionReason>() - 24usize];
9363 ["Alignment of BNBaseAddressDetectionReason"]
9364 [::std::mem::align_of::<BNBaseAddressDetectionReason>() - 8usize];
9365 ["Offset of field: BNBaseAddressDetectionReason::Pointer"]
9366 [::std::mem::offset_of!(BNBaseAddressDetectionReason, Pointer) - 0usize];
9367 ["Offset of field: BNBaseAddressDetectionReason::POIOffset"]
9368 [::std::mem::offset_of!(BNBaseAddressDetectionReason, POIOffset) - 8usize];
9369 ["Offset of field: BNBaseAddressDetectionReason::POIType"]
9370 [::std::mem::offset_of!(BNBaseAddressDetectionReason, POIType) - 16usize];
9371};
9372impl Default for BNBaseAddressDetectionReason {
9373 fn default() -> Self {
9374 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9375 unsafe {
9376 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9377 s.assume_init()
9378 }
9379 }
9380}
9381#[repr(C)]
9382#[derive(Debug, Default, Copy, Clone)]
9383pub struct BNBaseAddressDetectionScore {
9384 pub Score: usize,
9385 pub BaseAddress: u64,
9386}
9387#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9388const _: () = {
9389 ["Size of BNBaseAddressDetectionScore"]
9390 [::std::mem::size_of::<BNBaseAddressDetectionScore>() - 16usize];
9391 ["Alignment of BNBaseAddressDetectionScore"]
9392 [::std::mem::align_of::<BNBaseAddressDetectionScore>() - 8usize];
9393 ["Offset of field: BNBaseAddressDetectionScore::Score"]
9394 [::std::mem::offset_of!(BNBaseAddressDetectionScore, Score) - 0usize];
9395 ["Offset of field: BNBaseAddressDetectionScore::BaseAddress"]
9396 [::std::mem::offset_of!(BNBaseAddressDetectionScore, BaseAddress) - 8usize];
9397};
9398#[repr(u8)]
9399#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9400pub enum BNCollaborationPermissionLevel {
9401 AdminPermission = 1,
9402 EditPermission = 2,
9403 ViewPermission = 3,
9404}
9405#[repr(u8)]
9406#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9407pub enum BNRemoteFileType {
9408 #[doc = " \"RW\""]
9409 RawDataFileType = 0,
9410 #[doc = " \"BV\""]
9411 BinaryViewAnalysisFileType = 1,
9412 #[doc = " \"TA\""]
9413 TypeArchiveFileType = 2,
9414 #[doc = " Others"]
9415 UnknownFileType = 3,
9416}
9417#[repr(u8)]
9418#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9419pub enum BNMergeConflictDataType {
9420 TextConflictDataType = 0,
9421 JsonConflictDataType = 1,
9422 BinaryConflictDataType = 2,
9423}
9424#[repr(C)]
9425#[derive(Debug, Copy, Clone)]
9426pub struct BNAnalysisMergeConflictSplitterCallbacks {
9427 pub context: *mut ::std::os::raw::c_void,
9428 pub getName: ::std::option::Option<
9429 unsafe extern "C" fn(context: *mut ::std::os::raw::c_void) -> *mut ::std::os::raw::c_char,
9430 >,
9431 pub reset: ::std::option::Option<unsafe extern "C" fn(context: *mut ::std::os::raw::c_void)>,
9432 pub finished: ::std::option::Option<unsafe extern "C" fn(context: *mut ::std::os::raw::c_void)>,
9433 pub canSplit: ::std::option::Option<
9434 unsafe extern "C" fn(
9435 context: *mut ::std::os::raw::c_void,
9436 key: *const ::std::os::raw::c_char,
9437 conflict: *const BNAnalysisMergeConflict,
9438 ) -> bool,
9439 >,
9440 pub split: ::std::option::Option<
9441 unsafe extern "C" fn(
9442 context: *mut ::std::os::raw::c_void,
9443 originalKey: *const ::std::os::raw::c_char,
9444 originalConflict: *const BNAnalysisMergeConflict,
9445 result: *mut BNKeyValueStore,
9446 newKeys: *mut *mut *mut ::std::os::raw::c_char,
9447 newConflicts: *mut *mut *mut BNAnalysisMergeConflict,
9448 newCount: *mut usize,
9449 ) -> bool,
9450 >,
9451 pub freeName: ::std::option::Option<
9452 unsafe extern "C" fn(
9453 context: *mut ::std::os::raw::c_void,
9454 name: *mut ::std::os::raw::c_char,
9455 ),
9456 >,
9457 pub freeKeyList: ::std::option::Option<
9458 unsafe extern "C" fn(
9459 context: *mut ::std::os::raw::c_void,
9460 keyList: *mut *mut ::std::os::raw::c_char,
9461 count: usize,
9462 ),
9463 >,
9464 pub freeConflictList: ::std::option::Option<
9465 unsafe extern "C" fn(
9466 context: *mut ::std::os::raw::c_void,
9467 conflictList: *mut *mut BNAnalysisMergeConflict,
9468 count: usize,
9469 ),
9470 >,
9471}
9472#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9473const _: () = {
9474 ["Size of BNAnalysisMergeConflictSplitterCallbacks"]
9475 [::std::mem::size_of::<BNAnalysisMergeConflictSplitterCallbacks>() - 72usize];
9476 ["Alignment of BNAnalysisMergeConflictSplitterCallbacks"]
9477 [::std::mem::align_of::<BNAnalysisMergeConflictSplitterCallbacks>() - 8usize];
9478 ["Offset of field: BNAnalysisMergeConflictSplitterCallbacks::context"]
9479 [::std::mem::offset_of!(BNAnalysisMergeConflictSplitterCallbacks, context) - 0usize];
9480 ["Offset of field: BNAnalysisMergeConflictSplitterCallbacks::getName"]
9481 [::std::mem::offset_of!(BNAnalysisMergeConflictSplitterCallbacks, getName) - 8usize];
9482 ["Offset of field: BNAnalysisMergeConflictSplitterCallbacks::reset"]
9483 [::std::mem::offset_of!(BNAnalysisMergeConflictSplitterCallbacks, reset) - 16usize];
9484 ["Offset of field: BNAnalysisMergeConflictSplitterCallbacks::finished"]
9485 [::std::mem::offset_of!(BNAnalysisMergeConflictSplitterCallbacks, finished) - 24usize];
9486 ["Offset of field: BNAnalysisMergeConflictSplitterCallbacks::canSplit"]
9487 [::std::mem::offset_of!(BNAnalysisMergeConflictSplitterCallbacks, canSplit) - 32usize];
9488 ["Offset of field: BNAnalysisMergeConflictSplitterCallbacks::split"]
9489 [::std::mem::offset_of!(BNAnalysisMergeConflictSplitterCallbacks, split) - 40usize];
9490 ["Offset of field: BNAnalysisMergeConflictSplitterCallbacks::freeName"]
9491 [::std::mem::offset_of!(BNAnalysisMergeConflictSplitterCallbacks, freeName) - 48usize];
9492 ["Offset of field: BNAnalysisMergeConflictSplitterCallbacks::freeKeyList"]
9493 [::std::mem::offset_of!(BNAnalysisMergeConflictSplitterCallbacks, freeKeyList) - 56usize];
9494 ["Offset of field: BNAnalysisMergeConflictSplitterCallbacks::freeConflictList"][::std::mem::offset_of!(
9495 BNAnalysisMergeConflictSplitterCallbacks,
9496 freeConflictList
9497 ) - 64usize];
9498};
9499impl Default for BNAnalysisMergeConflictSplitterCallbacks {
9500 fn default() -> Self {
9501 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9502 unsafe {
9503 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9504 s.assume_init()
9505 }
9506 }
9507}
9508#[repr(C)]
9509#[derive(Debug, Copy, Clone)]
9510pub struct BNDemanglerCallbacks {
9511 pub context: *mut ::std::os::raw::c_void,
9512 pub isMangledString: ::std::option::Option<
9513 unsafe extern "C" fn(
9514 ctxt: *mut ::std::os::raw::c_void,
9515 name: *const ::std::os::raw::c_char,
9516 ) -> bool,
9517 >,
9518 pub demangle: ::std::option::Option<
9519 unsafe extern "C" fn(
9520 ctxt: *mut ::std::os::raw::c_void,
9521 arch: *mut BNArchitecture,
9522 name: *const ::std::os::raw::c_char,
9523 outType: *mut *mut BNType,
9524 outVarName: *mut BNQualifiedName,
9525 view: *mut BNBinaryView,
9526 ) -> bool,
9527 >,
9528 pub freeVarName: ::std::option::Option<
9529 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, name: *mut BNQualifiedName),
9530 >,
9531}
9532#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9533const _: () = {
9534 ["Size of BNDemanglerCallbacks"][::std::mem::size_of::<BNDemanglerCallbacks>() - 32usize];
9535 ["Alignment of BNDemanglerCallbacks"][::std::mem::align_of::<BNDemanglerCallbacks>() - 8usize];
9536 ["Offset of field: BNDemanglerCallbacks::context"]
9537 [::std::mem::offset_of!(BNDemanglerCallbacks, context) - 0usize];
9538 ["Offset of field: BNDemanglerCallbacks::isMangledString"]
9539 [::std::mem::offset_of!(BNDemanglerCallbacks, isMangledString) - 8usize];
9540 ["Offset of field: BNDemanglerCallbacks::demangle"]
9541 [::std::mem::offset_of!(BNDemanglerCallbacks, demangle) - 16usize];
9542 ["Offset of field: BNDemanglerCallbacks::freeVarName"]
9543 [::std::mem::offset_of!(BNDemanglerCallbacks, freeVarName) - 24usize];
9544};
9545impl Default for BNDemanglerCallbacks {
9546 fn default() -> Self {
9547 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9548 unsafe {
9549 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9550 s.assume_init()
9551 }
9552 }
9553}
9554#[repr(u8)]
9555#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9556pub enum BNScopeType {
9557 OneLineScopeType = 0,
9558 HasSubScopeScopeType = 1,
9559 BlockScopeType = 2,
9560 SwitchScopeType = 3,
9561 CaseScopeType = 4,
9562}
9563#[repr(u8)]
9564#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9565pub enum BNBraceRequirement {
9566 OptionalBraces = 0,
9567 BracesNotAllowed = 1,
9568 BracesAlwaysRequired = 2,
9569}
9570#[repr(C)]
9571#[derive(Debug, Default, Copy, Clone)]
9572pub struct BNTokenEmitterExpr {
9573 pub address: u64,
9574 pub sourceOperand: u32,
9575 pub exprIndex: usize,
9576 pub instrIndex: usize,
9577}
9578#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9579const _: () = {
9580 ["Size of BNTokenEmitterExpr"][::std::mem::size_of::<BNTokenEmitterExpr>() - 32usize];
9581 ["Alignment of BNTokenEmitterExpr"][::std::mem::align_of::<BNTokenEmitterExpr>() - 8usize];
9582 ["Offset of field: BNTokenEmitterExpr::address"]
9583 [::std::mem::offset_of!(BNTokenEmitterExpr, address) - 0usize];
9584 ["Offset of field: BNTokenEmitterExpr::sourceOperand"]
9585 [::std::mem::offset_of!(BNTokenEmitterExpr, sourceOperand) - 8usize];
9586 ["Offset of field: BNTokenEmitterExpr::exprIndex"]
9587 [::std::mem::offset_of!(BNTokenEmitterExpr, exprIndex) - 16usize];
9588 ["Offset of field: BNTokenEmitterExpr::instrIndex"]
9589 [::std::mem::offset_of!(BNTokenEmitterExpr, instrIndex) - 24usize];
9590};
9591#[repr(u8)]
9592#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9593pub enum BNOperatorPrecedence {
9594 TopLevelOperatorPrecedence = 0,
9595 AssignmentOperatorPrecedence = 1,
9596 TernaryOperatorPrecedence = 2,
9597 LogicalOrOperatorPrecedence = 3,
9598 LogicalAndOperatorPrecedence = 4,
9599 BitwiseOrOperatorPrecedence = 5,
9600 BitwiseXorOperatorPrecedence = 6,
9601 BitwiseAndOperatorPrecedence = 7,
9602 EqualityOperatorPrecedence = 8,
9603 CompareOperatorPrecedence = 9,
9604 ShiftOperatorPrecedence = 10,
9605 AddOperatorPrecedence = 11,
9606 SubOperatorPrecedence = 12,
9607 MultiplyOperatorPrecedence = 13,
9608 DivideOperatorPrecedence = 14,
9609 LowUnaryOperatorPrecedence = 15,
9610 UnaryOperatorPrecedence = 16,
9611 HighUnaryOperatorPrecedence = 17,
9612 MemberAndFunctionOperatorPrecedence = 18,
9613 ScopeOperatorPrecedence = 19,
9614}
9615#[repr(u8)]
9616#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9617pub enum BNSymbolDisplayType {
9618 DisplaySymbolOnly = 0,
9619 AddressOfDataSymbols = 1,
9620 DereferenceNonDataSymbols = 2,
9621}
9622#[repr(u8)]
9623#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9624pub enum BNSymbolDisplayResult {
9625 NoSymbolAvailable = 0,
9626 DataSymbolResult = 1,
9627 OtherSymbolResult = 2,
9628}
9629#[repr(C)]
9630#[derive(Debug, Copy, Clone)]
9631pub struct BNCustomLanguageRepresentationFunction {
9632 pub context: *mut ::std::os::raw::c_void,
9633 pub freeObject: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
9634 pub externalRefTaken:
9635 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
9636 pub externalRefReleased:
9637 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
9638 pub initTokenEmitter: ::std::option::Option<
9639 unsafe extern "C" fn(
9640 ctxt: *mut ::std::os::raw::c_void,
9641 tokens: *mut BNHighLevelILTokenEmitter,
9642 ),
9643 >,
9644 pub getExprText: ::std::option::Option<
9645 unsafe extern "C" fn(
9646 ctxt: *mut ::std::os::raw::c_void,
9647 il: *mut BNHighLevelILFunction,
9648 exprIndex: usize,
9649 tokens: *mut BNHighLevelILTokenEmitter,
9650 settings: *mut BNDisassemblySettings,
9651 asFullAst: bool,
9652 precedence: BNOperatorPrecedence,
9653 statement: bool,
9654 ),
9655 >,
9656 pub beginLines: ::std::option::Option<
9657 unsafe extern "C" fn(
9658 ctxt: *mut ::std::os::raw::c_void,
9659 il: *mut BNHighLevelILFunction,
9660 exprIndex: usize,
9661 tokens: *mut BNHighLevelILTokenEmitter,
9662 ),
9663 >,
9664 pub endLines: ::std::option::Option<
9665 unsafe extern "C" fn(
9666 ctxt: *mut ::std::os::raw::c_void,
9667 il: *mut BNHighLevelILFunction,
9668 exprIndex: usize,
9669 tokens: *mut BNHighLevelILTokenEmitter,
9670 ),
9671 >,
9672 pub getCommentStartString: ::std::option::Option<
9673 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> *mut ::std::os::raw::c_char,
9674 >,
9675 pub getCommentEndString: ::std::option::Option<
9676 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> *mut ::std::os::raw::c_char,
9677 >,
9678 pub getAnnotationStartString: ::std::option::Option<
9679 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> *mut ::std::os::raw::c_char,
9680 >,
9681 pub getAnnotationEndString: ::std::option::Option<
9682 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> *mut ::std::os::raw::c_char,
9683 >,
9684}
9685#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9686const _: () = {
9687 ["Size of BNCustomLanguageRepresentationFunction"]
9688 [::std::mem::size_of::<BNCustomLanguageRepresentationFunction>() - 96usize];
9689 ["Alignment of BNCustomLanguageRepresentationFunction"]
9690 [::std::mem::align_of::<BNCustomLanguageRepresentationFunction>() - 8usize];
9691 ["Offset of field: BNCustomLanguageRepresentationFunction::context"]
9692 [::std::mem::offset_of!(BNCustomLanguageRepresentationFunction, context) - 0usize];
9693 ["Offset of field: BNCustomLanguageRepresentationFunction::freeObject"]
9694 [::std::mem::offset_of!(BNCustomLanguageRepresentationFunction, freeObject) - 8usize];
9695 ["Offset of field: BNCustomLanguageRepresentationFunction::externalRefTaken"][::std::mem::offset_of!(
9696 BNCustomLanguageRepresentationFunction,
9697 externalRefTaken
9698 ) - 16usize];
9699 ["Offset of field: BNCustomLanguageRepresentationFunction::externalRefReleased"][::std::mem::offset_of!(
9700 BNCustomLanguageRepresentationFunction,
9701 externalRefReleased
9702 ) - 24usize];
9703 ["Offset of field: BNCustomLanguageRepresentationFunction::initTokenEmitter"][::std::mem::offset_of!(
9704 BNCustomLanguageRepresentationFunction,
9705 initTokenEmitter
9706 ) - 32usize];
9707 ["Offset of field: BNCustomLanguageRepresentationFunction::getExprText"]
9708 [::std::mem::offset_of!(BNCustomLanguageRepresentationFunction, getExprText) - 40usize];
9709 ["Offset of field: BNCustomLanguageRepresentationFunction::beginLines"]
9710 [::std::mem::offset_of!(BNCustomLanguageRepresentationFunction, beginLines) - 48usize];
9711 ["Offset of field: BNCustomLanguageRepresentationFunction::endLines"]
9712 [::std::mem::offset_of!(BNCustomLanguageRepresentationFunction, endLines) - 56usize];
9713 ["Offset of field: BNCustomLanguageRepresentationFunction::getCommentStartString"][::std::mem::offset_of!(
9714 BNCustomLanguageRepresentationFunction,
9715 getCommentStartString
9716 ) - 64usize];
9717 ["Offset of field: BNCustomLanguageRepresentationFunction::getCommentEndString"][::std::mem::offset_of!(
9718 BNCustomLanguageRepresentationFunction,
9719 getCommentEndString
9720 ) - 72usize];
9721 ["Offset of field: BNCustomLanguageRepresentationFunction::getAnnotationStartString"][::std::mem::offset_of!(
9722 BNCustomLanguageRepresentationFunction,
9723 getAnnotationStartString
9724 )
9725 - 80usize];
9726 ["Offset of field: BNCustomLanguageRepresentationFunction::getAnnotationEndString"][::std::mem::offset_of!(
9727 BNCustomLanguageRepresentationFunction,
9728 getAnnotationEndString
9729 )
9730 - 88usize];
9731};
9732impl Default for BNCustomLanguageRepresentationFunction {
9733 fn default() -> Self {
9734 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9735 unsafe {
9736 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9737 s.assume_init()
9738 }
9739 }
9740}
9741#[repr(C)]
9742#[derive(Debug, Copy, Clone)]
9743pub struct BNCustomLanguageRepresentationFunctionType {
9744 pub context: *mut ::std::os::raw::c_void,
9745 pub create: ::std::option::Option<
9746 unsafe extern "C" fn(
9747 ctxt: *mut ::std::os::raw::c_void,
9748 arch: *mut BNArchitecture,
9749 owner: *mut BNFunction,
9750 highLevelIL: *mut BNHighLevelILFunction,
9751 ) -> *mut BNLanguageRepresentationFunction,
9752 >,
9753 pub isValid: ::std::option::Option<
9754 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, view: *mut BNBinaryView) -> bool,
9755 >,
9756 pub getTypePrinter: ::std::option::Option<
9757 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> *mut BNTypePrinter,
9758 >,
9759 pub getTypeParser: ::std::option::Option<
9760 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> *mut BNTypeParser,
9761 >,
9762 pub getLineFormatter: ::std::option::Option<
9763 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> *mut BNLineFormatter,
9764 >,
9765 pub getFunctionTypeTokens: ::std::option::Option<
9766 unsafe extern "C" fn(
9767 ctxt: *mut ::std::os::raw::c_void,
9768 func: *mut BNFunction,
9769 settings: *mut BNDisassemblySettings,
9770 count: *mut usize,
9771 ) -> *mut BNDisassemblyTextLine,
9772 >,
9773 pub freeLines: ::std::option::Option<
9774 unsafe extern "C" fn(
9775 ctxt: *mut ::std::os::raw::c_void,
9776 lines: *mut BNDisassemblyTextLine,
9777 count: usize,
9778 ),
9779 >,
9780}
9781#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9782const _: () = {
9783 ["Size of BNCustomLanguageRepresentationFunctionType"]
9784 [::std::mem::size_of::<BNCustomLanguageRepresentationFunctionType>() - 64usize];
9785 ["Alignment of BNCustomLanguageRepresentationFunctionType"]
9786 [::std::mem::align_of::<BNCustomLanguageRepresentationFunctionType>() - 8usize];
9787 ["Offset of field: BNCustomLanguageRepresentationFunctionType::context"]
9788 [::std::mem::offset_of!(BNCustomLanguageRepresentationFunctionType, context) - 0usize];
9789 ["Offset of field: BNCustomLanguageRepresentationFunctionType::create"]
9790 [::std::mem::offset_of!(BNCustomLanguageRepresentationFunctionType, create) - 8usize];
9791 ["Offset of field: BNCustomLanguageRepresentationFunctionType::isValid"]
9792 [::std::mem::offset_of!(BNCustomLanguageRepresentationFunctionType, isValid) - 16usize];
9793 ["Offset of field: BNCustomLanguageRepresentationFunctionType::getTypePrinter"][::std::mem::offset_of!(
9794 BNCustomLanguageRepresentationFunctionType,
9795 getTypePrinter
9796 ) - 24usize];
9797 ["Offset of field: BNCustomLanguageRepresentationFunctionType::getTypeParser"][::std::mem::offset_of!(
9798 BNCustomLanguageRepresentationFunctionType,
9799 getTypeParser
9800 ) - 32usize];
9801 ["Offset of field: BNCustomLanguageRepresentationFunctionType::getLineFormatter"][::std::mem::offset_of!(
9802 BNCustomLanguageRepresentationFunctionType,
9803 getLineFormatter
9804 ) - 40usize];
9805 ["Offset of field: BNCustomLanguageRepresentationFunctionType::getFunctionTypeTokens"][::std::mem::offset_of!(
9806 BNCustomLanguageRepresentationFunctionType,
9807 getFunctionTypeTokens
9808 )
9809 - 48usize];
9810 ["Offset of field: BNCustomLanguageRepresentationFunctionType::freeLines"]
9811 [::std::mem::offset_of!(BNCustomLanguageRepresentationFunctionType, freeLines) - 56usize];
9812};
9813impl Default for BNCustomLanguageRepresentationFunctionType {
9814 fn default() -> Self {
9815 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9816 unsafe {
9817 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9818 s.assume_init()
9819 }
9820 }
9821}
9822#[repr(u8)]
9823#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9824pub enum BNBuiltinType {
9825 BuiltinNone = 0,
9826 BuiltinMemcpy = 1,
9827 BuiltinMemset = 2,
9828 BuiltinStrncpy = 3,
9829 BuiltinStrcpy = 4,
9830 BuiltinWcscpy = 5,
9831 BuiltinWmemcpy = 6,
9832}
9833#[repr(C)]
9834#[derive(Debug, Default, Copy, Clone)]
9835pub struct BNSegmentInfo {
9836 pub start: u64,
9837 pub length: u64,
9838 pub dataOffset: u64,
9839 pub dataLength: u64,
9840 pub flags: u32,
9841}
9842#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9843const _: () = {
9844 ["Size of BNSegmentInfo"][::std::mem::size_of::<BNSegmentInfo>() - 40usize];
9845 ["Alignment of BNSegmentInfo"][::std::mem::align_of::<BNSegmentInfo>() - 8usize];
9846 ["Offset of field: BNSegmentInfo::start"]
9847 [::std::mem::offset_of!(BNSegmentInfo, start) - 0usize];
9848 ["Offset of field: BNSegmentInfo::length"]
9849 [::std::mem::offset_of!(BNSegmentInfo, length) - 8usize];
9850 ["Offset of field: BNSegmentInfo::dataOffset"]
9851 [::std::mem::offset_of!(BNSegmentInfo, dataOffset) - 16usize];
9852 ["Offset of field: BNSegmentInfo::dataLength"]
9853 [::std::mem::offset_of!(BNSegmentInfo, dataLength) - 24usize];
9854 ["Offset of field: BNSegmentInfo::flags"]
9855 [::std::mem::offset_of!(BNSegmentInfo, flags) - 32usize];
9856};
9857#[repr(C)]
9858#[derive(Debug, Copy, Clone)]
9859pub struct BNSectionInfo {
9860 pub name: *const ::std::os::raw::c_char,
9861 pub start: u64,
9862 pub length: u64,
9863 pub semantics: BNSectionSemantics,
9864 pub type_: *const ::std::os::raw::c_char,
9865 pub align: u64,
9866 pub entrySize: u64,
9867 pub linkedSection: *const ::std::os::raw::c_char,
9868 pub infoSection: *const ::std::os::raw::c_char,
9869 pub infoData: u64,
9870}
9871#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9872const _: () = {
9873 ["Size of BNSectionInfo"][::std::mem::size_of::<BNSectionInfo>() - 80usize];
9874 ["Alignment of BNSectionInfo"][::std::mem::align_of::<BNSectionInfo>() - 8usize];
9875 ["Offset of field: BNSectionInfo::name"][::std::mem::offset_of!(BNSectionInfo, name) - 0usize];
9876 ["Offset of field: BNSectionInfo::start"]
9877 [::std::mem::offset_of!(BNSectionInfo, start) - 8usize];
9878 ["Offset of field: BNSectionInfo::length"]
9879 [::std::mem::offset_of!(BNSectionInfo, length) - 16usize];
9880 ["Offset of field: BNSectionInfo::semantics"]
9881 [::std::mem::offset_of!(BNSectionInfo, semantics) - 24usize];
9882 ["Offset of field: BNSectionInfo::type_"]
9883 [::std::mem::offset_of!(BNSectionInfo, type_) - 32usize];
9884 ["Offset of field: BNSectionInfo::align"]
9885 [::std::mem::offset_of!(BNSectionInfo, align) - 40usize];
9886 ["Offset of field: BNSectionInfo::entrySize"]
9887 [::std::mem::offset_of!(BNSectionInfo, entrySize) - 48usize];
9888 ["Offset of field: BNSectionInfo::linkedSection"]
9889 [::std::mem::offset_of!(BNSectionInfo, linkedSection) - 56usize];
9890 ["Offset of field: BNSectionInfo::infoSection"]
9891 [::std::mem::offset_of!(BNSectionInfo, infoSection) - 64usize];
9892 ["Offset of field: BNSectionInfo::infoData"]
9893 [::std::mem::offset_of!(BNSectionInfo, infoData) - 72usize];
9894};
9895impl Default for BNSectionInfo {
9896 fn default() -> Self {
9897 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9898 unsafe {
9899 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9900 s.assume_init()
9901 }
9902 }
9903}
9904#[repr(C)]
9905#[derive(Debug, Copy, Clone)]
9906pub struct BNMemoryRegionInfo {
9907 pub name: *mut ::std::os::raw::c_char,
9908 pub displayName: *mut ::std::os::raw::c_char,
9909 pub start: u64,
9910 pub length: u64,
9911 pub flags: u32,
9912 pub enabled: bool,
9913 pub rebaseable: bool,
9914 pub fill: u8,
9915 pub hasTarget: bool,
9916 pub absoluteAddressMode: bool,
9917 pub local: bool,
9918}
9919#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9920const _: () = {
9921 ["Size of BNMemoryRegionInfo"][::std::mem::size_of::<BNMemoryRegionInfo>() - 48usize];
9922 ["Alignment of BNMemoryRegionInfo"][::std::mem::align_of::<BNMemoryRegionInfo>() - 8usize];
9923 ["Offset of field: BNMemoryRegionInfo::name"]
9924 [::std::mem::offset_of!(BNMemoryRegionInfo, name) - 0usize];
9925 ["Offset of field: BNMemoryRegionInfo::displayName"]
9926 [::std::mem::offset_of!(BNMemoryRegionInfo, displayName) - 8usize];
9927 ["Offset of field: BNMemoryRegionInfo::start"]
9928 [::std::mem::offset_of!(BNMemoryRegionInfo, start) - 16usize];
9929 ["Offset of field: BNMemoryRegionInfo::length"]
9930 [::std::mem::offset_of!(BNMemoryRegionInfo, length) - 24usize];
9931 ["Offset of field: BNMemoryRegionInfo::flags"]
9932 [::std::mem::offset_of!(BNMemoryRegionInfo, flags) - 32usize];
9933 ["Offset of field: BNMemoryRegionInfo::enabled"]
9934 [::std::mem::offset_of!(BNMemoryRegionInfo, enabled) - 36usize];
9935 ["Offset of field: BNMemoryRegionInfo::rebaseable"]
9936 [::std::mem::offset_of!(BNMemoryRegionInfo, rebaseable) - 37usize];
9937 ["Offset of field: BNMemoryRegionInfo::fill"]
9938 [::std::mem::offset_of!(BNMemoryRegionInfo, fill) - 38usize];
9939 ["Offset of field: BNMemoryRegionInfo::hasTarget"]
9940 [::std::mem::offset_of!(BNMemoryRegionInfo, hasTarget) - 39usize];
9941 ["Offset of field: BNMemoryRegionInfo::absoluteAddressMode"]
9942 [::std::mem::offset_of!(BNMemoryRegionInfo, absoluteAddressMode) - 40usize];
9943 ["Offset of field: BNMemoryRegionInfo::local"]
9944 [::std::mem::offset_of!(BNMemoryRegionInfo, local) - 41usize];
9945};
9946impl Default for BNMemoryRegionInfo {
9947 fn default() -> Self {
9948 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9949 unsafe {
9950 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9951 s.assume_init()
9952 }
9953 }
9954}
9955#[repr(C)]
9956#[derive(Debug, Copy, Clone)]
9957pub struct BNResolvedMemoryRange {
9958 pub start: u64,
9959 pub length: u64,
9960 pub regions: *mut BNMemoryRegionInfo,
9961 pub regionCount: usize,
9962}
9963#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9964const _: () = {
9965 ["Size of BNResolvedMemoryRange"][::std::mem::size_of::<BNResolvedMemoryRange>() - 32usize];
9966 ["Alignment of BNResolvedMemoryRange"]
9967 [::std::mem::align_of::<BNResolvedMemoryRange>() - 8usize];
9968 ["Offset of field: BNResolvedMemoryRange::start"]
9969 [::std::mem::offset_of!(BNResolvedMemoryRange, start) - 0usize];
9970 ["Offset of field: BNResolvedMemoryRange::length"]
9971 [::std::mem::offset_of!(BNResolvedMemoryRange, length) - 8usize];
9972 ["Offset of field: BNResolvedMemoryRange::regions"]
9973 [::std::mem::offset_of!(BNResolvedMemoryRange, regions) - 16usize];
9974 ["Offset of field: BNResolvedMemoryRange::regionCount"]
9975 [::std::mem::offset_of!(BNResolvedMemoryRange, regionCount) - 24usize];
9976};
9977impl Default for BNResolvedMemoryRange {
9978 fn default() -> Self {
9979 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9980 unsafe {
9981 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9982 s.assume_init()
9983 }
9984 }
9985}
9986pub type BNCollaborationAnalysisConflictHandler = ::std::option::Option<
9987 unsafe extern "C" fn(
9988 arg1: *mut ::std::os::raw::c_void,
9989 keys: *mut *const ::std::os::raw::c_char,
9990 conflicts: *mut *mut BNAnalysisMergeConflict,
9991 conflictCount: usize,
9992 ) -> bool,
9993>;
9994pub type BNCollaborationNameChangesetFunction = ::std::option::Option<
9995 unsafe extern "C" fn(
9996 arg1: *mut ::std::os::raw::c_void,
9997 arg2: *mut BNCollaborationChangeset,
9998 ) -> bool,
9999>;
10000#[repr(C)]
10001#[derive(Debug, Copy, Clone)]
10002pub struct BNFirmwareNinjaDevice {
10003 pub name: *mut ::std::os::raw::c_char,
10004 pub start: u64,
10005 pub end: u64,
10006 pub info: *mut ::std::os::raw::c_char,
10007}
10008#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10009const _: () = {
10010 ["Size of BNFirmwareNinjaDevice"][::std::mem::size_of::<BNFirmwareNinjaDevice>() - 32usize];
10011 ["Alignment of BNFirmwareNinjaDevice"]
10012 [::std::mem::align_of::<BNFirmwareNinjaDevice>() - 8usize];
10013 ["Offset of field: BNFirmwareNinjaDevice::name"]
10014 [::std::mem::offset_of!(BNFirmwareNinjaDevice, name) - 0usize];
10015 ["Offset of field: BNFirmwareNinjaDevice::start"]
10016 [::std::mem::offset_of!(BNFirmwareNinjaDevice, start) - 8usize];
10017 ["Offset of field: BNFirmwareNinjaDevice::end"]
10018 [::std::mem::offset_of!(BNFirmwareNinjaDevice, end) - 16usize];
10019 ["Offset of field: BNFirmwareNinjaDevice::info"]
10020 [::std::mem::offset_of!(BNFirmwareNinjaDevice, info) - 24usize];
10021};
10022impl Default for BNFirmwareNinjaDevice {
10023 fn default() -> Self {
10024 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10025 unsafe {
10026 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10027 s.assume_init()
10028 }
10029 }
10030}
10031#[repr(u8)]
10032#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
10033pub enum BNFirmwareNinjaSectionType {
10034 CodeSectionType = 0,
10035 DataSectionType = 1,
10036 CompressionSectionType = 2,
10037 PaddingSectionType = 3,
10038}
10039#[repr(u8)]
10040#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
10041pub enum BNFirmwareNinjaSectionAnalysisMode {
10042 DefaultSectionAnalysisMode = 0,
10043 IgnorePaddingSectionAnalysisMode = 1,
10044 DetectStringsSectionAnalysisMode = 2,
10045}
10046#[repr(C)]
10047#[derive(Debug, Copy, Clone)]
10048pub struct BNFirmwareNinjaSection {
10049 pub type_: BNFirmwareNinjaSectionType,
10050 pub start: u64,
10051 pub end: u64,
10052 pub entropy: f32,
10053}
10054#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10055const _: () = {
10056 ["Size of BNFirmwareNinjaSection"][::std::mem::size_of::<BNFirmwareNinjaSection>() - 32usize];
10057 ["Alignment of BNFirmwareNinjaSection"]
10058 [::std::mem::align_of::<BNFirmwareNinjaSection>() - 8usize];
10059 ["Offset of field: BNFirmwareNinjaSection::type_"]
10060 [::std::mem::offset_of!(BNFirmwareNinjaSection, type_) - 0usize];
10061 ["Offset of field: BNFirmwareNinjaSection::start"]
10062 [::std::mem::offset_of!(BNFirmwareNinjaSection, start) - 8usize];
10063 ["Offset of field: BNFirmwareNinjaSection::end"]
10064 [::std::mem::offset_of!(BNFirmwareNinjaSection, end) - 16usize];
10065 ["Offset of field: BNFirmwareNinjaSection::entropy"]
10066 [::std::mem::offset_of!(BNFirmwareNinjaSection, entropy) - 24usize];
10067};
10068impl Default for BNFirmwareNinjaSection {
10069 fn default() -> Self {
10070 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10071 unsafe {
10072 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10073 s.assume_init()
10074 }
10075 }
10076}
10077#[repr(u8)]
10078#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
10079pub enum BNFirmwareNinjaMemoryHeuristic {
10080 NoMemoryHeuristic = 0,
10081 HasReadBarrierMemoryHeuristic = 1,
10082 HasWriteBarrierMemoryHeuristic = 2,
10083 StoreToOOBMemoryMemoryHeuristic = 3,
10084 LoadFromOOBMemoryMemoryHeuristic = 4,
10085 RepeatLoadStoreMemoryHeuristic = 5,
10086 CallParamOOBPointerMemoryHeuristic = 6,
10087}
10088#[repr(u8)]
10089#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
10090pub enum BNFirmwareNinjaMemoryAccessType {
10091 NoMemoryAccessType = 0,
10092 ReadMemoryAccessType = 1,
10093 WriteMemoryAccessType = 2,
10094}
10095#[repr(C)]
10096#[derive(Debug, Copy, Clone)]
10097pub struct BNFirmwareNinjaMemoryAccess {
10098 pub instrAddress: u64,
10099 pub memAddress: BNRegisterValue,
10100 pub heuristic: BNFirmwareNinjaMemoryHeuristic,
10101 pub type_: BNFirmwareNinjaMemoryAccessType,
10102 pub value: BNRegisterValue,
10103}
10104#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10105const _: () = {
10106 ["Size of BNFirmwareNinjaMemoryAccess"]
10107 [::std::mem::size_of::<BNFirmwareNinjaMemoryAccess>() - 80usize];
10108 ["Alignment of BNFirmwareNinjaMemoryAccess"]
10109 [::std::mem::align_of::<BNFirmwareNinjaMemoryAccess>() - 8usize];
10110 ["Offset of field: BNFirmwareNinjaMemoryAccess::instrAddress"]
10111 [::std::mem::offset_of!(BNFirmwareNinjaMemoryAccess, instrAddress) - 0usize];
10112 ["Offset of field: BNFirmwareNinjaMemoryAccess::memAddress"]
10113 [::std::mem::offset_of!(BNFirmwareNinjaMemoryAccess, memAddress) - 8usize];
10114 ["Offset of field: BNFirmwareNinjaMemoryAccess::heuristic"]
10115 [::std::mem::offset_of!(BNFirmwareNinjaMemoryAccess, heuristic) - 40usize];
10116 ["Offset of field: BNFirmwareNinjaMemoryAccess::type_"]
10117 [::std::mem::offset_of!(BNFirmwareNinjaMemoryAccess, type_) - 41usize];
10118 ["Offset of field: BNFirmwareNinjaMemoryAccess::value"]
10119 [::std::mem::offset_of!(BNFirmwareNinjaMemoryAccess, value) - 48usize];
10120};
10121impl Default for BNFirmwareNinjaMemoryAccess {
10122 fn default() -> Self {
10123 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10124 unsafe {
10125 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10126 s.assume_init()
10127 }
10128 }
10129}
10130#[repr(C)]
10131#[derive(Debug, Copy, Clone)]
10132pub struct BNFirmwareNinjaFunctionMemoryAccesses {
10133 pub start: u64,
10134 pub count: usize,
10135 pub accesses: *mut *mut BNFirmwareNinjaMemoryAccess,
10136}
10137#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10138const _: () = {
10139 ["Size of BNFirmwareNinjaFunctionMemoryAccesses"]
10140 [::std::mem::size_of::<BNFirmwareNinjaFunctionMemoryAccesses>() - 24usize];
10141 ["Alignment of BNFirmwareNinjaFunctionMemoryAccesses"]
10142 [::std::mem::align_of::<BNFirmwareNinjaFunctionMemoryAccesses>() - 8usize];
10143 ["Offset of field: BNFirmwareNinjaFunctionMemoryAccesses::start"]
10144 [::std::mem::offset_of!(BNFirmwareNinjaFunctionMemoryAccesses, start) - 0usize];
10145 ["Offset of field: BNFirmwareNinjaFunctionMemoryAccesses::count"]
10146 [::std::mem::offset_of!(BNFirmwareNinjaFunctionMemoryAccesses, count) - 8usize];
10147 ["Offset of field: BNFirmwareNinjaFunctionMemoryAccesses::accesses"]
10148 [::std::mem::offset_of!(BNFirmwareNinjaFunctionMemoryAccesses, accesses) - 16usize];
10149};
10150impl Default for BNFirmwareNinjaFunctionMemoryAccesses {
10151 fn default() -> Self {
10152 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10153 unsafe {
10154 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10155 s.assume_init()
10156 }
10157 }
10158}
10159#[repr(C)]
10160#[derive(Debug, Copy, Clone)]
10161pub struct BNFirmwareNinjaDeviceAccesses {
10162 pub name: *mut ::std::os::raw::c_char,
10163 pub total: usize,
10164 pub unique: usize,
10165}
10166#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10167const _: () = {
10168 ["Size of BNFirmwareNinjaDeviceAccesses"]
10169 [::std::mem::size_of::<BNFirmwareNinjaDeviceAccesses>() - 24usize];
10170 ["Alignment of BNFirmwareNinjaDeviceAccesses"]
10171 [::std::mem::align_of::<BNFirmwareNinjaDeviceAccesses>() - 8usize];
10172 ["Offset of field: BNFirmwareNinjaDeviceAccesses::name"]
10173 [::std::mem::offset_of!(BNFirmwareNinjaDeviceAccesses, name) - 0usize];
10174 ["Offset of field: BNFirmwareNinjaDeviceAccesses::total"]
10175 [::std::mem::offset_of!(BNFirmwareNinjaDeviceAccesses, total) - 8usize];
10176 ["Offset of field: BNFirmwareNinjaDeviceAccesses::unique"]
10177 [::std::mem::offset_of!(BNFirmwareNinjaDeviceAccesses, unique) - 16usize];
10178};
10179impl Default for BNFirmwareNinjaDeviceAccesses {
10180 fn default() -> Self {
10181 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10182 unsafe {
10183 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10184 s.assume_init()
10185 }
10186 }
10187}
10188#[repr(C)]
10189#[derive(Debug, Copy, Clone)]
10190pub struct BNLineFormatterSettings {
10191 pub highLevelIL: *mut BNHighLevelILFunction,
10192 pub desiredLineLength: usize,
10193 pub minimumContentLength: usize,
10194 pub tabWidth: usize,
10195 pub maximumAnnotationLength: usize,
10196 pub stringWrappingWidth: usize,
10197 pub languageName: *mut ::std::os::raw::c_char,
10198 pub commentStartString: *mut ::std::os::raw::c_char,
10199 pub commentEndString: *mut ::std::os::raw::c_char,
10200 pub annotationStartString: *mut ::std::os::raw::c_char,
10201 pub annotationEndString: *mut ::std::os::raw::c_char,
10202}
10203#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10204const _: () = {
10205 ["Size of BNLineFormatterSettings"][::std::mem::size_of::<BNLineFormatterSettings>() - 88usize];
10206 ["Alignment of BNLineFormatterSettings"]
10207 [::std::mem::align_of::<BNLineFormatterSettings>() - 8usize];
10208 ["Offset of field: BNLineFormatterSettings::highLevelIL"]
10209 [::std::mem::offset_of!(BNLineFormatterSettings, highLevelIL) - 0usize];
10210 ["Offset of field: BNLineFormatterSettings::desiredLineLength"]
10211 [::std::mem::offset_of!(BNLineFormatterSettings, desiredLineLength) - 8usize];
10212 ["Offset of field: BNLineFormatterSettings::minimumContentLength"]
10213 [::std::mem::offset_of!(BNLineFormatterSettings, minimumContentLength) - 16usize];
10214 ["Offset of field: BNLineFormatterSettings::tabWidth"]
10215 [::std::mem::offset_of!(BNLineFormatterSettings, tabWidth) - 24usize];
10216 ["Offset of field: BNLineFormatterSettings::maximumAnnotationLength"]
10217 [::std::mem::offset_of!(BNLineFormatterSettings, maximumAnnotationLength) - 32usize];
10218 ["Offset of field: BNLineFormatterSettings::stringWrappingWidth"]
10219 [::std::mem::offset_of!(BNLineFormatterSettings, stringWrappingWidth) - 40usize];
10220 ["Offset of field: BNLineFormatterSettings::languageName"]
10221 [::std::mem::offset_of!(BNLineFormatterSettings, languageName) - 48usize];
10222 ["Offset of field: BNLineFormatterSettings::commentStartString"]
10223 [::std::mem::offset_of!(BNLineFormatterSettings, commentStartString) - 56usize];
10224 ["Offset of field: BNLineFormatterSettings::commentEndString"]
10225 [::std::mem::offset_of!(BNLineFormatterSettings, commentEndString) - 64usize];
10226 ["Offset of field: BNLineFormatterSettings::annotationStartString"]
10227 [::std::mem::offset_of!(BNLineFormatterSettings, annotationStartString) - 72usize];
10228 ["Offset of field: BNLineFormatterSettings::annotationEndString"]
10229 [::std::mem::offset_of!(BNLineFormatterSettings, annotationEndString) - 80usize];
10230};
10231impl Default for BNLineFormatterSettings {
10232 fn default() -> Self {
10233 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10234 unsafe {
10235 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10236 s.assume_init()
10237 }
10238 }
10239}
10240#[repr(C)]
10241#[derive(Debug, Copy, Clone)]
10242pub struct BNCustomLineFormatter {
10243 pub context: *mut ::std::os::raw::c_void,
10244 pub formatLines: ::std::option::Option<
10245 unsafe extern "C" fn(
10246 ctxt: *mut ::std::os::raw::c_void,
10247 inLines: *mut BNDisassemblyTextLine,
10248 inCount: usize,
10249 settings: *const BNLineFormatterSettings,
10250 outCount: *mut usize,
10251 ) -> *mut BNDisassemblyTextLine,
10252 >,
10253 pub freeLines: ::std::option::Option<
10254 unsafe extern "C" fn(
10255 ctxt: *mut ::std::os::raw::c_void,
10256 lines: *mut BNDisassemblyTextLine,
10257 count: usize,
10258 ),
10259 >,
10260}
10261#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10262const _: () = {
10263 ["Size of BNCustomLineFormatter"][::std::mem::size_of::<BNCustomLineFormatter>() - 24usize];
10264 ["Alignment of BNCustomLineFormatter"]
10265 [::std::mem::align_of::<BNCustomLineFormatter>() - 8usize];
10266 ["Offset of field: BNCustomLineFormatter::context"]
10267 [::std::mem::offset_of!(BNCustomLineFormatter, context) - 0usize];
10268 ["Offset of field: BNCustomLineFormatter::formatLines"]
10269 [::std::mem::offset_of!(BNCustomLineFormatter, formatLines) - 8usize];
10270 ["Offset of field: BNCustomLineFormatter::freeLines"]
10271 [::std::mem::offset_of!(BNCustomLineFormatter, freeLines) - 16usize];
10272};
10273impl Default for BNCustomLineFormatter {
10274 fn default() -> Self {
10275 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10276 unsafe {
10277 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10278 s.assume_init()
10279 }
10280 }
10281}
10282#[repr(C)]
10283#[derive(Debug, Copy, Clone)]
10284pub struct BNRenderLayerCallbacks {
10285 pub context: *mut ::std::os::raw::c_void,
10286 pub applyToFlowGraph: ::std::option::Option<
10287 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, graph: *mut BNFlowGraph),
10288 >,
10289 pub applyToLinearViewObject: ::std::option::Option<
10290 unsafe extern "C" fn(
10291 ctxt: *mut ::std::os::raw::c_void,
10292 obj: *mut BNLinearViewObject,
10293 prev: *mut BNLinearViewObject,
10294 next: *mut BNLinearViewObject,
10295 inLines: *mut BNLinearDisassemblyLine,
10296 inLineCount: usize,
10297 outLines: *mut *mut BNLinearDisassemblyLine,
10298 outLineCount: *mut usize,
10299 ),
10300 >,
10301 pub freeLines: ::std::option::Option<
10302 unsafe extern "C" fn(
10303 ctxt: *mut ::std::os::raw::c_void,
10304 lines: *mut BNLinearDisassemblyLine,
10305 count: usize,
10306 ),
10307 >,
10308}
10309#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10310const _: () = {
10311 ["Size of BNRenderLayerCallbacks"][::std::mem::size_of::<BNRenderLayerCallbacks>() - 32usize];
10312 ["Alignment of BNRenderLayerCallbacks"]
10313 [::std::mem::align_of::<BNRenderLayerCallbacks>() - 8usize];
10314 ["Offset of field: BNRenderLayerCallbacks::context"]
10315 [::std::mem::offset_of!(BNRenderLayerCallbacks, context) - 0usize];
10316 ["Offset of field: BNRenderLayerCallbacks::applyToFlowGraph"]
10317 [::std::mem::offset_of!(BNRenderLayerCallbacks, applyToFlowGraph) - 8usize];
10318 ["Offset of field: BNRenderLayerCallbacks::applyToLinearViewObject"]
10319 [::std::mem::offset_of!(BNRenderLayerCallbacks, applyToLinearViewObject) - 16usize];
10320 ["Offset of field: BNRenderLayerCallbacks::freeLines"]
10321 [::std::mem::offset_of!(BNRenderLayerCallbacks, freeLines) - 24usize];
10322};
10323impl Default for BNRenderLayerCallbacks {
10324 fn default() -> Self {
10325 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10326 unsafe {
10327 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10328 s.assume_init()
10329 }
10330 }
10331}
10332#[repr(u8)]
10333#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
10334pub enum BNRenderLayerDefaultEnableState {
10335 DisabledByDefaultRenderLayerDefaultEnableState = 0,
10336 EnabledByDefaultRenderLayerDefaultEnableState = 1,
10337 AlwaysEnabledRenderLayerDefaultEnableState = 2,
10338}
10339#[repr(C)]
10340#[derive(Debug, Default, Copy, Clone)]
10341pub struct BNExprMapInfo {
10342 pub lowerIndex: usize,
10343 pub higherIndex: usize,
10344 pub mapLowerToHigher: bool,
10345 pub mapHigherToLower: bool,
10346 pub lowerToHigherDirect: bool,
10347 pub higherToLowerDirect: bool,
10348}
10349#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10350const _: () = {
10351 ["Size of BNExprMapInfo"][::std::mem::size_of::<BNExprMapInfo>() - 24usize];
10352 ["Alignment of BNExprMapInfo"][::std::mem::align_of::<BNExprMapInfo>() - 8usize];
10353 ["Offset of field: BNExprMapInfo::lowerIndex"]
10354 [::std::mem::offset_of!(BNExprMapInfo, lowerIndex) - 0usize];
10355 ["Offset of field: BNExprMapInfo::higherIndex"]
10356 [::std::mem::offset_of!(BNExprMapInfo, higherIndex) - 8usize];
10357 ["Offset of field: BNExprMapInfo::mapLowerToHigher"]
10358 [::std::mem::offset_of!(BNExprMapInfo, mapLowerToHigher) - 16usize];
10359 ["Offset of field: BNExprMapInfo::mapHigherToLower"]
10360 [::std::mem::offset_of!(BNExprMapInfo, mapHigherToLower) - 17usize];
10361 ["Offset of field: BNExprMapInfo::lowerToHigherDirect"]
10362 [::std::mem::offset_of!(BNExprMapInfo, lowerToHigherDirect) - 18usize];
10363 ["Offset of field: BNExprMapInfo::higherToLowerDirect"]
10364 [::std::mem::offset_of!(BNExprMapInfo, higherToLowerDirect) - 19usize];
10365};
10366#[repr(C)]
10367#[derive(Debug, Copy, Clone)]
10368pub struct BNAllTypeReferences {
10369 pub codeRefs: *mut BNReferenceSource,
10370 pub codeRefCount: usize,
10371 pub dataRefs: *mut u64,
10372 pub dataRefCount: usize,
10373 pub typeRefs: *mut BNTypeReferenceSource,
10374 pub typeRefCount: usize,
10375}
10376#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10377const _: () = {
10378 ["Size of BNAllTypeReferences"][::std::mem::size_of::<BNAllTypeReferences>() - 48usize];
10379 ["Alignment of BNAllTypeReferences"][::std::mem::align_of::<BNAllTypeReferences>() - 8usize];
10380 ["Offset of field: BNAllTypeReferences::codeRefs"]
10381 [::std::mem::offset_of!(BNAllTypeReferences, codeRefs) - 0usize];
10382 ["Offset of field: BNAllTypeReferences::codeRefCount"]
10383 [::std::mem::offset_of!(BNAllTypeReferences, codeRefCount) - 8usize];
10384 ["Offset of field: BNAllTypeReferences::dataRefs"]
10385 [::std::mem::offset_of!(BNAllTypeReferences, dataRefs) - 16usize];
10386 ["Offset of field: BNAllTypeReferences::dataRefCount"]
10387 [::std::mem::offset_of!(BNAllTypeReferences, dataRefCount) - 24usize];
10388 ["Offset of field: BNAllTypeReferences::typeRefs"]
10389 [::std::mem::offset_of!(BNAllTypeReferences, typeRefs) - 32usize];
10390 ["Offset of field: BNAllTypeReferences::typeRefCount"]
10391 [::std::mem::offset_of!(BNAllTypeReferences, typeRefCount) - 40usize];
10392};
10393impl Default for BNAllTypeReferences {
10394 fn default() -> Self {
10395 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10396 unsafe {
10397 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10398 s.assume_init()
10399 }
10400 }
10401}
10402#[repr(C)]
10403#[derive(Debug, Copy, Clone)]
10404pub struct BNAllTypeFieldReferences {
10405 pub codeRefs: *mut BNTypeFieldReference,
10406 pub codeRefCount: usize,
10407 pub dataRefsTo: *mut u64,
10408 pub dataRefToCount: usize,
10409 pub dataRefsFrom: *mut u64,
10410 pub dataRefFromCount: usize,
10411 pub typeRefs: *mut BNTypeReferenceSource,
10412 pub typeRefCount: usize,
10413}
10414#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10415const _: () = {
10416 ["Size of BNAllTypeFieldReferences"]
10417 [::std::mem::size_of::<BNAllTypeFieldReferences>() - 64usize];
10418 ["Alignment of BNAllTypeFieldReferences"]
10419 [::std::mem::align_of::<BNAllTypeFieldReferences>() - 8usize];
10420 ["Offset of field: BNAllTypeFieldReferences::codeRefs"]
10421 [::std::mem::offset_of!(BNAllTypeFieldReferences, codeRefs) - 0usize];
10422 ["Offset of field: BNAllTypeFieldReferences::codeRefCount"]
10423 [::std::mem::offset_of!(BNAllTypeFieldReferences, codeRefCount) - 8usize];
10424 ["Offset of field: BNAllTypeFieldReferences::dataRefsTo"]
10425 [::std::mem::offset_of!(BNAllTypeFieldReferences, dataRefsTo) - 16usize];
10426 ["Offset of field: BNAllTypeFieldReferences::dataRefToCount"]
10427 [::std::mem::offset_of!(BNAllTypeFieldReferences, dataRefToCount) - 24usize];
10428 ["Offset of field: BNAllTypeFieldReferences::dataRefsFrom"]
10429 [::std::mem::offset_of!(BNAllTypeFieldReferences, dataRefsFrom) - 32usize];
10430 ["Offset of field: BNAllTypeFieldReferences::dataRefFromCount"]
10431 [::std::mem::offset_of!(BNAllTypeFieldReferences, dataRefFromCount) - 40usize];
10432 ["Offset of field: BNAllTypeFieldReferences::typeRefs"]
10433 [::std::mem::offset_of!(BNAllTypeFieldReferences, typeRefs) - 48usize];
10434 ["Offset of field: BNAllTypeFieldReferences::typeRefCount"]
10435 [::std::mem::offset_of!(BNAllTypeFieldReferences, typeRefCount) - 56usize];
10436};
10437impl Default for BNAllTypeFieldReferences {
10438 fn default() -> Self {
10439 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10440 unsafe {
10441 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10442 s.assume_init()
10443 }
10444 }
10445}
10446#[repr(C)]
10447#[derive(Debug, Copy, Clone)]
10448pub struct BNTypeAttribute {
10449 pub name: *mut ::std::os::raw::c_char,
10450 pub value: *mut ::std::os::raw::c_char,
10451}
10452#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10453const _: () = {
10454 ["Size of BNTypeAttribute"][::std::mem::size_of::<BNTypeAttribute>() - 16usize];
10455 ["Alignment of BNTypeAttribute"][::std::mem::align_of::<BNTypeAttribute>() - 8usize];
10456 ["Offset of field: BNTypeAttribute::name"]
10457 [::std::mem::offset_of!(BNTypeAttribute, name) - 0usize];
10458 ["Offset of field: BNTypeAttribute::value"]
10459 [::std::mem::offset_of!(BNTypeAttribute, value) - 8usize];
10460};
10461impl Default for BNTypeAttribute {
10462 fn default() -> Self {
10463 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10464 unsafe {
10465 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10466 s.assume_init()
10467 }
10468 }
10469}
10470#[repr(C)]
10471#[derive(Debug, Copy, Clone)]
10472pub struct BNCustomConstantRenderer {
10473 pub context: *mut ::std::os::raw::c_void,
10474 pub isValidForType: ::std::option::Option<
10475 unsafe extern "C" fn(
10476 ctxt: *mut ::std::os::raw::c_void,
10477 hlil: *mut BNHighLevelILFunction,
10478 type_: *mut BNType,
10479 ) -> bool,
10480 >,
10481 pub renderConstant: ::std::option::Option<
10482 unsafe extern "C" fn(
10483 ctxt: *mut ::std::os::raw::c_void,
10484 hlil: *mut BNHighLevelILFunction,
10485 expr: usize,
10486 type_: *mut BNType,
10487 val: i64,
10488 tokens: *mut BNHighLevelILTokenEmitter,
10489 settings: *mut BNDisassemblySettings,
10490 precedence: BNOperatorPrecedence,
10491 ) -> bool,
10492 >,
10493 pub renderConstantPointer: ::std::option::Option<
10494 unsafe extern "C" fn(
10495 ctxt: *mut ::std::os::raw::c_void,
10496 hlil: *mut BNHighLevelILFunction,
10497 expr: usize,
10498 type_: *mut BNType,
10499 val: i64,
10500 tokens: *mut BNHighLevelILTokenEmitter,
10501 settings: *mut BNDisassemblySettings,
10502 symbolDisplay: BNSymbolDisplayType,
10503 precedence: BNOperatorPrecedence,
10504 ) -> bool,
10505 >,
10506}
10507#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10508const _: () = {
10509 ["Size of BNCustomConstantRenderer"]
10510 [::std::mem::size_of::<BNCustomConstantRenderer>() - 32usize];
10511 ["Alignment of BNCustomConstantRenderer"]
10512 [::std::mem::align_of::<BNCustomConstantRenderer>() - 8usize];
10513 ["Offset of field: BNCustomConstantRenderer::context"]
10514 [::std::mem::offset_of!(BNCustomConstantRenderer, context) - 0usize];
10515 ["Offset of field: BNCustomConstantRenderer::isValidForType"]
10516 [::std::mem::offset_of!(BNCustomConstantRenderer, isValidForType) - 8usize];
10517 ["Offset of field: BNCustomConstantRenderer::renderConstant"]
10518 [::std::mem::offset_of!(BNCustomConstantRenderer, renderConstant) - 16usize];
10519 ["Offset of field: BNCustomConstantRenderer::renderConstantPointer"]
10520 [::std::mem::offset_of!(BNCustomConstantRenderer, renderConstantPointer) - 24usize];
10521};
10522impl Default for BNCustomConstantRenderer {
10523 fn default() -> Self {
10524 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10525 unsafe {
10526 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10527 s.assume_init()
10528 }
10529 }
10530}
10531#[repr(C)]
10532#[derive(Debug, Copy, Clone)]
10533pub struct BNCustomStringRecognizer {
10534 pub context: *mut ::std::os::raw::c_void,
10535 pub isValidForType: ::std::option::Option<
10536 unsafe extern "C" fn(
10537 ctxt: *mut ::std::os::raw::c_void,
10538 hlil: *mut BNHighLevelILFunction,
10539 type_: *mut BNType,
10540 ) -> bool,
10541 >,
10542 pub recognizeConstant: ::std::option::Option<
10543 unsafe extern "C" fn(
10544 ctxt: *mut ::std::os::raw::c_void,
10545 hlil: *mut BNHighLevelILFunction,
10546 expr: usize,
10547 type_: *mut BNType,
10548 val: i64,
10549 result: *mut BNDerivedString,
10550 ) -> bool,
10551 >,
10552 pub recognizeConstantPointer: ::std::option::Option<
10553 unsafe extern "C" fn(
10554 ctxt: *mut ::std::os::raw::c_void,
10555 hlil: *mut BNHighLevelILFunction,
10556 expr: usize,
10557 type_: *mut BNType,
10558 val: i64,
10559 result: *mut BNDerivedString,
10560 ) -> bool,
10561 >,
10562 pub recognizeExternPointer: ::std::option::Option<
10563 unsafe extern "C" fn(
10564 ctxt: *mut ::std::os::raw::c_void,
10565 hlil: *mut BNHighLevelILFunction,
10566 expr: usize,
10567 type_: *mut BNType,
10568 val: i64,
10569 offset: u64,
10570 result: *mut BNDerivedString,
10571 ) -> bool,
10572 >,
10573 pub recognizeImport: ::std::option::Option<
10574 unsafe extern "C" fn(
10575 ctxt: *mut ::std::os::raw::c_void,
10576 hlil: *mut BNHighLevelILFunction,
10577 expr: usize,
10578 type_: *mut BNType,
10579 val: i64,
10580 result: *mut BNDerivedString,
10581 ) -> bool,
10582 >,
10583 pub recognizeConstantData: ::std::option::Option<
10584 unsafe extern "C" fn(
10585 ctxt: *mut ::std::os::raw::c_void,
10586 hlil: *mut BNHighLevelILFunction,
10587 expr: usize,
10588 result: *mut BNDerivedString,
10589 ) -> bool,
10590 >,
10591}
10592#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10593const _: () = {
10594 ["Size of BNCustomStringRecognizer"]
10595 [::std::mem::size_of::<BNCustomStringRecognizer>() - 56usize];
10596 ["Alignment of BNCustomStringRecognizer"]
10597 [::std::mem::align_of::<BNCustomStringRecognizer>() - 8usize];
10598 ["Offset of field: BNCustomStringRecognizer::context"]
10599 [::std::mem::offset_of!(BNCustomStringRecognizer, context) - 0usize];
10600 ["Offset of field: BNCustomStringRecognizer::isValidForType"]
10601 [::std::mem::offset_of!(BNCustomStringRecognizer, isValidForType) - 8usize];
10602 ["Offset of field: BNCustomStringRecognizer::recognizeConstant"]
10603 [::std::mem::offset_of!(BNCustomStringRecognizer, recognizeConstant) - 16usize];
10604 ["Offset of field: BNCustomStringRecognizer::recognizeConstantPointer"]
10605 [::std::mem::offset_of!(BNCustomStringRecognizer, recognizeConstantPointer) - 24usize];
10606 ["Offset of field: BNCustomStringRecognizer::recognizeExternPointer"]
10607 [::std::mem::offset_of!(BNCustomStringRecognizer, recognizeExternPointer) - 32usize];
10608 ["Offset of field: BNCustomStringRecognizer::recognizeImport"]
10609 [::std::mem::offset_of!(BNCustomStringRecognizer, recognizeImport) - 40usize];
10610 ["Offset of field: BNCustomStringRecognizer::recognizeConstantData"]
10611 [::std::mem::offset_of!(BNCustomStringRecognizer, recognizeConstantData) - 48usize];
10612};
10613impl Default for BNCustomStringRecognizer {
10614 fn default() -> Self {
10615 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10616 unsafe {
10617 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10618 s.assume_init()
10619 }
10620 }
10621}
10622#[repr(C)]
10623#[derive(Debug, Copy, Clone)]
10624pub struct BNCustomStringTypeInfo {
10625 pub name: *mut ::std::os::raw::c_char,
10626 pub stringPrefix: *mut ::std::os::raw::c_char,
10627 pub stringPostfix: *mut ::std::os::raw::c_char,
10628}
10629#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10630const _: () = {
10631 ["Size of BNCustomStringTypeInfo"][::std::mem::size_of::<BNCustomStringTypeInfo>() - 24usize];
10632 ["Alignment of BNCustomStringTypeInfo"]
10633 [::std::mem::align_of::<BNCustomStringTypeInfo>() - 8usize];
10634 ["Offset of field: BNCustomStringTypeInfo::name"]
10635 [::std::mem::offset_of!(BNCustomStringTypeInfo, name) - 0usize];
10636 ["Offset of field: BNCustomStringTypeInfo::stringPrefix"]
10637 [::std::mem::offset_of!(BNCustomStringTypeInfo, stringPrefix) - 8usize];
10638 ["Offset of field: BNCustomStringTypeInfo::stringPostfix"]
10639 [::std::mem::offset_of!(BNCustomStringTypeInfo, stringPostfix) - 16usize];
10640};
10641impl Default for BNCustomStringTypeInfo {
10642 fn default() -> Self {
10643 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10644 unsafe {
10645 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10646 s.assume_init()
10647 }
10648 }
10649}
10650unsafe extern "C" {
10651 pub fn BNAllocString(contents: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
10652}
10653unsafe extern "C" {
10654 pub fn BNAllocStringWithLength(
10655 contents: *const ::std::os::raw::c_char,
10656 len: usize,
10657 ) -> *mut ::std::os::raw::c_char;
10658}
10659unsafe extern "C" {
10660 pub fn BNFreeString(str_: *mut ::std::os::raw::c_char);
10661}
10662unsafe extern "C" {
10663 pub fn BNAllocStringList(
10664 contents: *mut *const ::std::os::raw::c_char,
10665 size: usize,
10666 ) -> *mut *mut ::std::os::raw::c_char;
10667}
10668unsafe extern "C" {
10669 pub fn BNFreeStringList(strs: *mut *mut ::std::os::raw::c_char, count: usize);
10670}
10671unsafe extern "C" {
10672 pub fn BNShutdown();
10673}
10674unsafe extern "C" {
10675 pub fn BNIsShutdownRequested() -> bool;
10676}
10677unsafe extern "C" {
10678 pub fn BNGetVersionInfo() -> BNVersionInfo;
10679}
10680unsafe extern "C" {
10681 pub fn BNGetVersionString() -> *mut ::std::os::raw::c_char;
10682}
10683unsafe extern "C" {
10684 pub fn BNGetBuildId() -> u32;
10685}
10686unsafe extern "C" {
10687 pub fn BNGetCurrentCoreABIVersion() -> u32;
10688}
10689unsafe extern "C" {
10690 pub fn BNGetMinimumCoreABIVersion() -> u32;
10691}
10692unsafe extern "C" {
10693 pub fn BNGetSerialNumber() -> *mut ::std::os::raw::c_char;
10694}
10695unsafe extern "C" {
10696 pub fn BNGetLicenseExpirationTime() -> u64;
10697}
10698unsafe extern "C" {
10699 pub fn BNIsLicenseValidated() -> bool;
10700}
10701unsafe extern "C" {
10702 pub fn BNGetLicensedUserEmail() -> *mut ::std::os::raw::c_char;
10703}
10704unsafe extern "C" {
10705 pub fn BNGetProduct() -> *mut ::std::os::raw::c_char;
10706}
10707unsafe extern "C" {
10708 pub fn BNGetProductType() -> *mut ::std::os::raw::c_char;
10709}
10710unsafe extern "C" {
10711 pub fn BNGetLicenseCount() -> ::std::os::raw::c_int;
10712}
10713unsafe extern "C" {
10714 pub fn BNIsUIEnabled() -> bool;
10715}
10716unsafe extern "C" {
10717 pub fn BNSetLicense(licenseData: *const ::std::os::raw::c_char);
10718}
10719unsafe extern "C" {
10720 pub fn BNIsDatabase(filename: *const ::std::os::raw::c_char) -> bool;
10721}
10722unsafe extern "C" {
10723 pub fn BNIsDatabaseFromData(data: *const ::std::os::raw::c_void, len: usize) -> bool;
10724}
10725unsafe extern "C" {
10726 pub fn BNAuthenticateEnterpriseServerWithToken(
10727 token: *const ::std::os::raw::c_char,
10728 remember: bool,
10729 ) -> bool;
10730}
10731unsafe extern "C" {
10732 pub fn BNAuthenticateEnterpriseServerWithCredentials(
10733 username: *const ::std::os::raw::c_char,
10734 password: *const ::std::os::raw::c_char,
10735 remember: bool,
10736 ) -> bool;
10737}
10738unsafe extern "C" {
10739 pub fn BNAuthenticateEnterpriseServerWithMethod(
10740 method: *const ::std::os::raw::c_char,
10741 remember: bool,
10742 ) -> bool;
10743}
10744unsafe extern "C" {
10745 pub fn BNGetEnterpriseServerAuthenticationMethods(
10746 methods: *mut *mut *mut ::std::os::raw::c_char,
10747 names: *mut *mut *mut ::std::os::raw::c_char,
10748 ) -> usize;
10749}
10750unsafe extern "C" {
10751 pub fn BNDeauthenticateEnterpriseServer() -> bool;
10752}
10753unsafe extern "C" {
10754 pub fn BNCancelEnterpriseServerAuthentication();
10755}
10756unsafe extern "C" {
10757 pub fn BNConnectEnterpriseServer() -> bool;
10758}
10759unsafe extern "C" {
10760 pub fn BNUpdateEnterpriseServerLicense(timeout: u64) -> bool;
10761}
10762unsafe extern "C" {
10763 pub fn BNReleaseEnterpriseServerLicense() -> bool;
10764}
10765unsafe extern "C" {
10766 pub fn BNIsEnterpriseServerConnected() -> bool;
10767}
10768unsafe extern "C" {
10769 pub fn BNIsEnterpriseServerAuthenticated() -> bool;
10770}
10771unsafe extern "C" {
10772 pub fn BNGetEnterpriseServerUsername() -> *mut ::std::os::raw::c_char;
10773}
10774unsafe extern "C" {
10775 pub fn BNGetEnterpriseServerToken() -> *mut ::std::os::raw::c_char;
10776}
10777unsafe extern "C" {
10778 pub fn BNGetEnterpriseServerUrl() -> *mut ::std::os::raw::c_char;
10779}
10780unsafe extern "C" {
10781 pub fn BNSetEnterpriseServerUrl(url: *const ::std::os::raw::c_char) -> bool;
10782}
10783unsafe extern "C" {
10784 pub fn BNGetEnterpriseServerName() -> *mut ::std::os::raw::c_char;
10785}
10786unsafe extern "C" {
10787 pub fn BNGetEnterpriseServerId() -> *mut ::std::os::raw::c_char;
10788}
10789unsafe extern "C" {
10790 pub fn BNGetEnterpriseServerVersion() -> u64;
10791}
10792unsafe extern "C" {
10793 pub fn BNGetEnterpriseServerBuildId() -> *mut ::std::os::raw::c_char;
10794}
10795unsafe extern "C" {
10796 pub fn BNGetEnterpriseServerLicenseExpirationTime() -> u64;
10797}
10798unsafe extern "C" {
10799 pub fn BNGetEnterpriseServerLicenseDuration() -> u64;
10800}
10801unsafe extern "C" {
10802 pub fn BNIsEnterpriseServerFloatingLicense() -> bool;
10803}
10804unsafe extern "C" {
10805 pub fn BNGetEnterpriseServerReservationTimeLimit() -> u64;
10806}
10807unsafe extern "C" {
10808 pub fn BNIsEnterpriseServerLicenseStillActivated() -> bool;
10809}
10810unsafe extern "C" {
10811 pub fn BNGetEnterpriseServerLastError() -> *mut ::std::os::raw::c_char;
10812}
10813unsafe extern "C" {
10814 pub fn BNRegisterEnterpriseServerNotification(notify: *mut BNEnterpriseServerCallbacks);
10815}
10816unsafe extern "C" {
10817 pub fn BNUnregisterEnterpriseServerNotification(notify: *mut BNEnterpriseServerCallbacks);
10818}
10819unsafe extern "C" {
10820 pub fn BNIsEnterpriseServerInitialized() -> bool;
10821}
10822unsafe extern "C" {
10823 pub fn BNInitializeEnterpriseServer() -> bool;
10824}
10825unsafe extern "C" {
10826 pub fn BNRegisterObjectDestructionCallbacks(callbacks: *mut BNObjectDestructionCallbacks);
10827}
10828unsafe extern "C" {
10829 pub fn BNUnregisterObjectDestructionCallbacks(callbacks: *mut BNObjectDestructionCallbacks);
10830}
10831unsafe extern "C" {
10832 pub fn BNGetUniqueIdentifierString() -> *mut ::std::os::raw::c_char;
10833}
10834unsafe extern "C" {
10835 #[doc = " Plugin initialization"]
10836 pub fn BNInitPlugins(allowUserPlugins: bool) -> bool;
10837}
10838unsafe extern "C" {
10839 pub fn BNDisablePlugins();
10840}
10841unsafe extern "C" {
10842 pub fn BNIsPluginsEnabled() -> bool;
10843}
10844unsafe extern "C" {
10845 pub fn BNGetInstallDirectory() -> *mut ::std::os::raw::c_char;
10846}
10847unsafe extern "C" {
10848 pub fn BNGetBundledPluginDirectory() -> *mut ::std::os::raw::c_char;
10849}
10850unsafe extern "C" {
10851 pub fn BNGetBundledScriptPluginDirectory() -> *mut ::std::os::raw::c_char;
10852}
10853unsafe extern "C" {
10854 pub fn BNSetBundledPluginDirectory(path: *const ::std::os::raw::c_char);
10855}
10856unsafe extern "C" {
10857 pub fn BNSetBundledScriptPluginDirectory(path: *const ::std::os::raw::c_char);
10858}
10859unsafe extern "C" {
10860 pub fn BNGetUserDirectory() -> *mut ::std::os::raw::c_char;
10861}
10862unsafe extern "C" {
10863 pub fn BNGetUserPluginDirectory() -> *mut ::std::os::raw::c_char;
10864}
10865unsafe extern "C" {
10866 pub fn BNGetRepositoriesDirectory() -> *mut ::std::os::raw::c_char;
10867}
10868unsafe extern "C" {
10869 pub fn BNGetSettingsFileName() -> *mut ::std::os::raw::c_char;
10870}
10871unsafe extern "C" {
10872 pub fn BNSaveLastRun();
10873}
10874unsafe extern "C" {
10875 pub fn BNGetPathRelativeToBundledPluginDirectory(
10876 path: *const ::std::os::raw::c_char,
10877 ) -> *mut ::std::os::raw::c_char;
10878}
10879unsafe extern "C" {
10880 pub fn BNGetPathRelativeToUserPluginDirectory(
10881 path: *const ::std::os::raw::c_char,
10882 ) -> *mut ::std::os::raw::c_char;
10883}
10884unsafe extern "C" {
10885 pub fn BNGetPathRelativeToUserDirectory(
10886 path: *const ::std::os::raw::c_char,
10887 ) -> *mut ::std::os::raw::c_char;
10888}
10889unsafe extern "C" {
10890 pub fn BNExecuteWorkerProcess(
10891 path: *const ::std::os::raw::c_char,
10892 args: *mut *const ::std::os::raw::c_char,
10893 input: *mut BNDataBuffer,
10894 output: *mut *mut ::std::os::raw::c_char,
10895 error: *mut *mut ::std::os::raw::c_char,
10896 stdoutIsText: bool,
10897 stderrIsText: bool,
10898 ) -> bool;
10899}
10900unsafe extern "C" {
10901 pub fn BNSetCurrentPluginLoadOrder(order: BNPluginLoadPhase);
10902}
10903unsafe extern "C" {
10904 pub fn BNAddRequiredPluginDependency(name: *const ::std::os::raw::c_char);
10905}
10906unsafe extern "C" {
10907 pub fn BNAddOptionalPluginDependency(name: *const ::std::os::raw::c_char);
10908}
10909unsafe extern "C" {
10910 #[doc = " Logging"]
10911 pub fn BNLog(
10912 session: usize,
10913 level: BNLogLevel,
10914 logger_name: *const ::std::os::raw::c_char,
10915 tid: usize,
10916 fmt: *const ::std::os::raw::c_char,
10917 ...
10918 );
10919}
10920unsafe extern "C" {
10921 pub fn BNLogDebug(fmt: *const ::std::os::raw::c_char, ...);
10922}
10923unsafe extern "C" {
10924 pub fn BNLogInfo(fmt: *const ::std::os::raw::c_char, ...);
10925}
10926unsafe extern "C" {
10927 pub fn BNLogWarn(fmt: *const ::std::os::raw::c_char, ...);
10928}
10929unsafe extern "C" {
10930 pub fn BNLogError(fmt: *const ::std::os::raw::c_char, ...);
10931}
10932unsafe extern "C" {
10933 pub fn BNLogAlert(fmt: *const ::std::os::raw::c_char, ...);
10934}
10935unsafe extern "C" {
10936 pub fn BNLogString(
10937 session: usize,
10938 level: BNLogLevel,
10939 logger_name: *const ::std::os::raw::c_char,
10940 tid: usize,
10941 str_: *const ::std::os::raw::c_char,
10942 );
10943}
10944unsafe extern "C" {
10945 pub fn BNLogWithStackTrace(
10946 session: usize,
10947 level: BNLogLevel,
10948 logger_name: *const ::std::os::raw::c_char,
10949 tid: usize,
10950 stackTrace: *const ::std::os::raw::c_char,
10951 fmt: *const ::std::os::raw::c_char,
10952 ...
10953 );
10954}
10955unsafe extern "C" {
10956 pub fn BNLogDebugWithStackTrace(
10957 stackTrace: *const ::std::os::raw::c_char,
10958 fmt: *const ::std::os::raw::c_char,
10959 ...
10960 );
10961}
10962unsafe extern "C" {
10963 pub fn BNLogInfoWithStackTrace(
10964 stackTrace: *const ::std::os::raw::c_char,
10965 fmt: *const ::std::os::raw::c_char,
10966 ...
10967 );
10968}
10969unsafe extern "C" {
10970 pub fn BNLogWarnWithStackTrace(
10971 stackTrace: *const ::std::os::raw::c_char,
10972 fmt: *const ::std::os::raw::c_char,
10973 ...
10974 );
10975}
10976unsafe extern "C" {
10977 pub fn BNLogErrorWithStackTrace(
10978 stackTrace: *const ::std::os::raw::c_char,
10979 fmt: *const ::std::os::raw::c_char,
10980 ...
10981 );
10982}
10983unsafe extern "C" {
10984 pub fn BNLogAlertWithStackTrace(
10985 stackTrace: *const ::std::os::raw::c_char,
10986 fmt: *const ::std::os::raw::c_char,
10987 ...
10988 );
10989}
10990unsafe extern "C" {
10991 pub fn BNLogStringWithStackTrace(
10992 session: usize,
10993 level: BNLogLevel,
10994 logger_name: *const ::std::os::raw::c_char,
10995 tid: usize,
10996 stackTrace: *const ::std::os::raw::c_char,
10997 str_: *const ::std::os::raw::c_char,
10998 );
10999}
11000unsafe extern "C" {
11001 pub fn BNNewLoggerReference(logger: *mut BNLogger) -> *mut BNLogger;
11002}
11003unsafe extern "C" {
11004 pub fn BNFreeLogger(logger: *mut BNLogger);
11005}
11006unsafe extern "C" {
11007 pub fn BNLoggerLog(
11008 logger: *mut BNLogger,
11009 level: BNLogLevel,
11010 fmt: *const ::std::os::raw::c_char,
11011 ...
11012 );
11013}
11014unsafe extern "C" {
11015 pub fn BNLoggerLogString(
11016 logger: *mut BNLogger,
11017 level: BNLogLevel,
11018 msg: *const ::std::os::raw::c_char,
11019 );
11020}
11021unsafe extern "C" {
11022 pub fn BNLoggerLogWithStackTrace(
11023 logger: *mut BNLogger,
11024 level: BNLogLevel,
11025 stackTrace: *const ::std::os::raw::c_char,
11026 fmt: *const ::std::os::raw::c_char,
11027 ...
11028 );
11029}
11030unsafe extern "C" {
11031 pub fn BNLoggerLogStringWithStackTrace(
11032 logger: *mut BNLogger,
11033 level: BNLogLevel,
11034 stackTrace: *const ::std::os::raw::c_char,
11035 msg: *const ::std::os::raw::c_char,
11036 );
11037}
11038unsafe extern "C" {
11039 pub fn BNLoggerGetName(logger: *mut BNLogger) -> *mut ::std::os::raw::c_char;
11040}
11041unsafe extern "C" {
11042 pub fn BNLoggerGetSessionId(logger: *mut BNLogger) -> usize;
11043}
11044unsafe extern "C" {
11045 pub fn BNLogCreateLogger(
11046 loggerName: *const ::std::os::raw::c_char,
11047 sessionId: usize,
11048 ) -> *mut BNLogger;
11049}
11050unsafe extern "C" {
11051 pub fn BNLogGetLogger(
11052 loggerName: *const ::std::os::raw::c_char,
11053 sessionId: usize,
11054 ) -> *mut BNLogger;
11055}
11056unsafe extern "C" {
11057 pub fn BNLogGetLoggerNames(count: *mut usize) -> *mut *mut ::std::os::raw::c_char;
11058}
11059unsafe extern "C" {
11060 pub fn BNRegisterLogListener(listener: *mut BNLogListener);
11061}
11062unsafe extern "C" {
11063 pub fn BNUnregisterLogListener(listener: *mut BNLogListener);
11064}
11065unsafe extern "C" {
11066 pub fn BNUpdateLogListeners();
11067}
11068unsafe extern "C" {
11069 pub fn BNLogToStdout(minimumLevel: BNLogLevel);
11070}
11071unsafe extern "C" {
11072 pub fn BNLogToStderr(minimumLevel: BNLogLevel);
11073}
11074unsafe extern "C" {
11075 pub fn BNLogToFile(
11076 minimumLevel: BNLogLevel,
11077 path: *const ::std::os::raw::c_char,
11078 append: bool,
11079 ) -> bool;
11080}
11081unsafe extern "C" {
11082 pub fn BNCloseLogs();
11083}
11084unsafe extern "C" {
11085 #[doc = " Temporary files"]
11086 pub fn BNCreateTemporaryFile() -> *mut BNTemporaryFile;
11087}
11088unsafe extern "C" {
11089 pub fn BNCreateTemporaryFileWithContents(data: *mut BNDataBuffer) -> *mut BNTemporaryFile;
11090}
11091unsafe extern "C" {
11092 pub fn BNNewTemporaryFileReference(file: *mut BNTemporaryFile) -> *mut BNTemporaryFile;
11093}
11094unsafe extern "C" {
11095 pub fn BNFreeTemporaryFile(file: *mut BNTemporaryFile);
11096}
11097unsafe extern "C" {
11098 pub fn BNGetTemporaryFilePath(file: *mut BNTemporaryFile) -> *mut ::std::os::raw::c_char;
11099}
11100unsafe extern "C" {
11101 pub fn BNGetTemporaryFileContents(file: *mut BNTemporaryFile) -> *mut BNDataBuffer;
11102}
11103unsafe extern "C" {
11104 #[doc = " Data buffer management"]
11105 pub fn BNCreateDataBuffer(data: *const ::std::os::raw::c_void, len: usize)
11106 -> *mut BNDataBuffer;
11107}
11108unsafe extern "C" {
11109 pub fn BNDuplicateDataBuffer(buf: *mut BNDataBuffer) -> *mut BNDataBuffer;
11110}
11111unsafe extern "C" {
11112 pub fn BNFreeDataBuffer(buf: *mut BNDataBuffer);
11113}
11114unsafe extern "C" {
11115 pub fn BNGetDataBufferContents(buf: *mut BNDataBuffer) -> *mut ::std::os::raw::c_void;
11116}
11117unsafe extern "C" {
11118 pub fn BNGetDataBufferContentsAt(
11119 buf: *mut BNDataBuffer,
11120 offset: usize,
11121 ) -> *mut ::std::os::raw::c_void;
11122}
11123unsafe extern "C" {
11124 pub fn BNGetDataBufferLength(buf: *mut BNDataBuffer) -> usize;
11125}
11126unsafe extern "C" {
11127 pub fn BNGetDataBufferSlice(
11128 buf: *mut BNDataBuffer,
11129 start: usize,
11130 len: usize,
11131 ) -> *mut BNDataBuffer;
11132}
11133unsafe extern "C" {
11134 pub fn BNSetDataBufferLength(buf: *mut BNDataBuffer, len: usize);
11135}
11136unsafe extern "C" {
11137 pub fn BNClearDataBuffer(buf: *mut BNDataBuffer);
11138}
11139unsafe extern "C" {
11140 pub fn BNSetDataBufferContents(
11141 buf: *mut BNDataBuffer,
11142 data: *mut ::std::os::raw::c_void,
11143 len: usize,
11144 );
11145}
11146unsafe extern "C" {
11147 pub fn BNAssignDataBuffer(dest: *mut BNDataBuffer, src: *mut BNDataBuffer);
11148}
11149unsafe extern "C" {
11150 pub fn BNAppendDataBuffer(dest: *mut BNDataBuffer, src: *mut BNDataBuffer);
11151}
11152unsafe extern "C" {
11153 pub fn BNAppendDataBufferContents(
11154 dest: *mut BNDataBuffer,
11155 src: *const ::std::os::raw::c_void,
11156 len: usize,
11157 );
11158}
11159unsafe extern "C" {
11160 pub fn BNGetDataBufferByte(buf: *mut BNDataBuffer, offset: usize) -> u8;
11161}
11162unsafe extern "C" {
11163 pub fn BNSetDataBufferByte(buf: *mut BNDataBuffer, offset: usize, val: u8);
11164}
11165unsafe extern "C" {
11166 pub fn BNDataBufferToEscapedString(
11167 buf: *mut BNDataBuffer,
11168 nullTerminates: bool,
11169 escapePrintable: bool,
11170 ) -> *mut ::std::os::raw::c_char;
11171}
11172unsafe extern "C" {
11173 pub fn BNDecodeEscapedString(str_: *const ::std::os::raw::c_char) -> *mut BNDataBuffer;
11174}
11175unsafe extern "C" {
11176 pub fn BNDataBufferToBase64(buf: *mut BNDataBuffer) -> *mut ::std::os::raw::c_char;
11177}
11178unsafe extern "C" {
11179 pub fn BNDecodeBase64(str_: *const ::std::os::raw::c_char) -> *mut BNDataBuffer;
11180}
11181unsafe extern "C" {
11182 pub fn BNZlibCompress(buf: *mut BNDataBuffer) -> *mut BNDataBuffer;
11183}
11184unsafe extern "C" {
11185 pub fn BNZlibDecompress(buf: *mut BNDataBuffer) -> *mut BNDataBuffer;
11186}
11187unsafe extern "C" {
11188 pub fn BNLzmaDecompress(buf: *mut BNDataBuffer) -> *mut BNDataBuffer;
11189}
11190unsafe extern "C" {
11191 pub fn BNLzma2Decompress(buf: *mut BNDataBuffer) -> *mut BNDataBuffer;
11192}
11193unsafe extern "C" {
11194 pub fn BNXzDecompress(buf: *mut BNDataBuffer) -> *mut BNDataBuffer;
11195}
11196unsafe extern "C" {
11197 #[doc = " Save settings"]
11198 pub fn BNCreateSaveSettings() -> *mut BNSaveSettings;
11199}
11200unsafe extern "C" {
11201 pub fn BNNewSaveSettingsReference(settings: *mut BNSaveSettings) -> *mut BNSaveSettings;
11202}
11203unsafe extern "C" {
11204 pub fn BNFreeSaveSettings(settings: *mut BNSaveSettings);
11205}
11206unsafe extern "C" {
11207 pub fn BNIsSaveSettingsOptionSet(settings: *mut BNSaveSettings, option: BNSaveOption) -> bool;
11208}
11209unsafe extern "C" {
11210 pub fn BNSetSaveSettingsOption(
11211 settings: *mut BNSaveSettings,
11212 option: BNSaveOption,
11213 state: bool,
11214 );
11215}
11216unsafe extern "C" {
11217 pub fn BNGetSaveSettingsName(settings: *mut BNSaveSettings) -> *mut ::std::os::raw::c_char;
11218}
11219unsafe extern "C" {
11220 pub fn BNSetSaveSettingsName(
11221 settings: *mut BNSaveSettings,
11222 name: *const ::std::os::raw::c_char,
11223 );
11224}
11225unsafe extern "C" {
11226 #[doc = " File metadata object"]
11227 pub fn BNCreateFileMetadata() -> *mut BNFileMetadata;
11228}
11229unsafe extern "C" {
11230 pub fn BNNewFileReference(file: *mut BNFileMetadata) -> *mut BNFileMetadata;
11231}
11232unsafe extern "C" {
11233 pub fn BNFreeFileMetadata(file: *mut BNFileMetadata);
11234}
11235unsafe extern "C" {
11236 pub fn BNCloseFile(file: *mut BNFileMetadata);
11237}
11238unsafe extern "C" {
11239 pub fn BNSetFileMetadataNavigationHandler(
11240 file: *mut BNFileMetadata,
11241 handler: *mut BNNavigationHandler,
11242 );
11243}
11244unsafe extern "C" {
11245 pub fn BNIsFileModified(file: *mut BNFileMetadata) -> bool;
11246}
11247unsafe extern "C" {
11248 pub fn BNIsAnalysisChanged(file: *mut BNFileMetadata) -> bool;
11249}
11250unsafe extern "C" {
11251 pub fn BNMarkFileModified(file: *mut BNFileMetadata);
11252}
11253unsafe extern "C" {
11254 pub fn BNMarkFileSaved(file: *mut BNFileMetadata);
11255}
11256unsafe extern "C" {
11257 pub fn BNIsBackedByDatabase(
11258 file: *mut BNFileMetadata,
11259 binaryViewType: *const ::std::os::raw::c_char,
11260 ) -> bool;
11261}
11262unsafe extern "C" {
11263 pub fn BNCreateDatabase(
11264 data: *mut BNBinaryView,
11265 path: *const ::std::os::raw::c_char,
11266 settings: *mut BNSaveSettings,
11267 ) -> bool;
11268}
11269unsafe extern "C" {
11270 pub fn BNCreateDatabaseWithProgress(
11271 data: *mut BNBinaryView,
11272 path: *const ::std::os::raw::c_char,
11273 ctxt: *mut ::std::os::raw::c_void,
11274 progress: BNProgressFunction,
11275 settings: *mut BNSaveSettings,
11276 ) -> bool;
11277}
11278unsafe extern "C" {
11279 pub fn BNOpenExistingDatabase(
11280 file: *mut BNFileMetadata,
11281 path: *const ::std::os::raw::c_char,
11282 ) -> *mut BNBinaryView;
11283}
11284unsafe extern "C" {
11285 pub fn BNOpenExistingDatabaseWithProgress(
11286 file: *mut BNFileMetadata,
11287 path: *const ::std::os::raw::c_char,
11288 ctxt: *mut ::std::os::raw::c_void,
11289 progress: BNProgressFunction,
11290 ) -> *mut BNBinaryView;
11291}
11292unsafe extern "C" {
11293 pub fn BNOpenDatabaseForConfiguration(
11294 file: *mut BNFileMetadata,
11295 path: *const ::std::os::raw::c_char,
11296 ) -> *mut BNBinaryView;
11297}
11298unsafe extern "C" {
11299 pub fn BNSaveAutoSnapshot(data: *mut BNBinaryView, settings: *mut BNSaveSettings) -> bool;
11300}
11301unsafe extern "C" {
11302 pub fn BNSaveAutoSnapshotWithProgress(
11303 data: *mut BNBinaryView,
11304 ctxt: *mut ::std::os::raw::c_void,
11305 progress: BNProgressFunction,
11306 settings: *mut BNSaveSettings,
11307 ) -> bool;
11308}
11309unsafe extern "C" {
11310 pub fn BNGetSnapshotData(
11311 file: *mut BNFileMetadata,
11312 data: *mut BNKeyValueStore,
11313 cache: *mut BNKeyValueStore,
11314 ctxt: *mut ::std::os::raw::c_void,
11315 progress: BNProgressFunction,
11316 );
11317}
11318unsafe extern "C" {
11319 pub fn BNApplySnapshotData(
11320 file: *mut BNFileMetadata,
11321 view: *mut BNBinaryView,
11322 data: *mut BNKeyValueStore,
11323 cache: *mut BNKeyValueStore,
11324 ctxt: *mut ::std::os::raw::c_void,
11325 progress: BNProgressFunction,
11326 openForConfiguration: bool,
11327 restoreRawView: bool,
11328 );
11329}
11330unsafe extern "C" {
11331 pub fn BNGetFileMetadataDatabase(file: *mut BNFileMetadata) -> *mut BNDatabase;
11332}
11333unsafe extern "C" {
11334 #[doc = " Key value store"]
11335 pub fn BNCreateKeyValueStore() -> *mut BNKeyValueStore;
11336}
11337unsafe extern "C" {
11338 pub fn BNCreateKeyValueStoreFromDataBuffer(buffer: *mut BNDataBuffer) -> *mut BNKeyValueStore;
11339}
11340unsafe extern "C" {
11341 pub fn BNNewKeyValueStoreReference(store: *mut BNKeyValueStore) -> *mut BNKeyValueStore;
11342}
11343unsafe extern "C" {
11344 pub fn BNFreeKeyValueStore(store: *mut BNKeyValueStore);
11345}
11346unsafe extern "C" {
11347 pub fn BNGetKeyValueStoreKeys(
11348 store: *mut BNKeyValueStore,
11349 count: *mut usize,
11350 ) -> *mut *mut ::std::os::raw::c_char;
11351}
11352unsafe extern "C" {
11353 pub fn BNKeyValueStoreHasValue(
11354 store: *mut BNKeyValueStore,
11355 name: *const ::std::os::raw::c_char,
11356 ) -> bool;
11357}
11358unsafe extern "C" {
11359 pub fn BNGetKeyValueStoreValue(
11360 store: *mut BNKeyValueStore,
11361 name: *const ::std::os::raw::c_char,
11362 ) -> *mut ::std::os::raw::c_char;
11363}
11364unsafe extern "C" {
11365 pub fn BNGetKeyValueStoreValueHash(
11366 store: *mut BNKeyValueStore,
11367 name: *const ::std::os::raw::c_char,
11368 ) -> *mut BNDataBuffer;
11369}
11370unsafe extern "C" {
11371 pub fn BNGetKeyValueStoreBuffer(
11372 store: *mut BNKeyValueStore,
11373 name: *const ::std::os::raw::c_char,
11374 ) -> *mut BNDataBuffer;
11375}
11376unsafe extern "C" {
11377 pub fn BNSetKeyValueStoreValue(
11378 store: *mut BNKeyValueStore,
11379 name: *const ::std::os::raw::c_char,
11380 value: *const ::std::os::raw::c_char,
11381 ) -> bool;
11382}
11383unsafe extern "C" {
11384 pub fn BNSetKeyValueStoreBuffer(
11385 store: *mut BNKeyValueStore,
11386 name: *const ::std::os::raw::c_char,
11387 value: *const BNDataBuffer,
11388 ) -> bool;
11389}
11390unsafe extern "C" {
11391 pub fn BNGetKeyValueStoreSerializedData(store: *mut BNKeyValueStore) -> *mut BNDataBuffer;
11392}
11393unsafe extern "C" {
11394 pub fn BNBeginKeyValueStoreNamespace(
11395 store: *mut BNKeyValueStore,
11396 name: *const ::std::os::raw::c_char,
11397 );
11398}
11399unsafe extern "C" {
11400 pub fn BNEndKeyValueStoreNamespace(store: *mut BNKeyValueStore);
11401}
11402unsafe extern "C" {
11403 pub fn BNIsKeyValueStoreEmpty(store: *mut BNKeyValueStore) -> bool;
11404}
11405unsafe extern "C" {
11406 pub fn BNGetKeyValueStoreValueSize(store: *mut BNKeyValueStore) -> usize;
11407}
11408unsafe extern "C" {
11409 pub fn BNGetKeyValueStoreDataSize(store: *mut BNKeyValueStore) -> usize;
11410}
11411unsafe extern "C" {
11412 pub fn BNGetKeyValueStoreValueStorageSize(store: *mut BNKeyValueStore) -> usize;
11413}
11414unsafe extern "C" {
11415 pub fn BNGetKeyValueStoreNamespaceSize(store: *mut BNKeyValueStore) -> usize;
11416}
11417unsafe extern "C" {
11418 #[doc = " Project object"]
11419 pub fn BNNewProjectReference(project: *mut BNProject) -> *mut BNProject;
11420}
11421unsafe extern "C" {
11422 pub fn BNFreeProject(project: *mut BNProject);
11423}
11424unsafe extern "C" {
11425 pub fn BNFreeProjectList(projects: *mut *mut BNProject, count: usize);
11426}
11427unsafe extern "C" {
11428 pub fn BNGetOpenProjects(count: *mut usize) -> *mut *mut BNProject;
11429}
11430unsafe extern "C" {
11431 pub fn BNCreateProject(
11432 path: *const ::std::os::raw::c_char,
11433 name: *const ::std::os::raw::c_char,
11434 ) -> *mut BNProject;
11435}
11436unsafe extern "C" {
11437 pub fn BNOpenProject(path: *const ::std::os::raw::c_char) -> *mut BNProject;
11438}
11439unsafe extern "C" {
11440 pub fn BNProjectOpen(project: *mut BNProject) -> bool;
11441}
11442unsafe extern "C" {
11443 pub fn BNProjectClose(project: *mut BNProject) -> bool;
11444}
11445unsafe extern "C" {
11446 pub fn BNProjectGetId(project: *mut BNProject) -> *mut ::std::os::raw::c_char;
11447}
11448unsafe extern "C" {
11449 pub fn BNProjectIsOpen(project: *mut BNProject) -> bool;
11450}
11451unsafe extern "C" {
11452 pub fn BNProjectGetPath(project: *mut BNProject) -> *mut ::std::os::raw::c_char;
11453}
11454unsafe extern "C" {
11455 pub fn BNProjectGetFilePathInProject(
11456 project: *mut BNProject,
11457 file: *mut BNProjectFile,
11458 ) -> *mut ::std::os::raw::c_char;
11459}
11460unsafe extern "C" {
11461 pub fn BNProjectGetName(project: *mut BNProject) -> *mut ::std::os::raw::c_char;
11462}
11463unsafe extern "C" {
11464 pub fn BNProjectSetName(project: *mut BNProject, name: *const ::std::os::raw::c_char) -> bool;
11465}
11466unsafe extern "C" {
11467 pub fn BNProjectGetDescription(project: *mut BNProject) -> *mut ::std::os::raw::c_char;
11468}
11469unsafe extern "C" {
11470 pub fn BNProjectSetDescription(
11471 project: *mut BNProject,
11472 description: *const ::std::os::raw::c_char,
11473 ) -> bool;
11474}
11475unsafe extern "C" {
11476 pub fn BNProjectQueryMetadata(
11477 project: *mut BNProject,
11478 key: *const ::std::os::raw::c_char,
11479 ) -> *mut BNMetadata;
11480}
11481unsafe extern "C" {
11482 pub fn BNProjectStoreMetadata(
11483 project: *mut BNProject,
11484 key: *const ::std::os::raw::c_char,
11485 value: *mut BNMetadata,
11486 ) -> bool;
11487}
11488unsafe extern "C" {
11489 pub fn BNProjectRemoveMetadata(
11490 project: *mut BNProject,
11491 key: *const ::std::os::raw::c_char,
11492 ) -> bool;
11493}
11494unsafe extern "C" {
11495 pub fn BNProjectCreateFileFromPath(
11496 project: *mut BNProject,
11497 path: *const ::std::os::raw::c_char,
11498 folder: *mut BNProjectFolder,
11499 name: *const ::std::os::raw::c_char,
11500 description: *const ::std::os::raw::c_char,
11501 ctxt: *mut ::std::os::raw::c_void,
11502 progress: BNProgressFunction,
11503 ) -> *mut BNProjectFile;
11504}
11505unsafe extern "C" {
11506 pub fn BNProjectCreateFileFromPathUnsafe(
11507 project: *mut BNProject,
11508 path: *const ::std::os::raw::c_char,
11509 folder: *mut BNProjectFolder,
11510 name: *const ::std::os::raw::c_char,
11511 description: *const ::std::os::raw::c_char,
11512 id: *const ::std::os::raw::c_char,
11513 creationTimestamp: i64,
11514 ctxt: *mut ::std::os::raw::c_void,
11515 progress: BNProgressFunction,
11516 ) -> *mut BNProjectFile;
11517}
11518unsafe extern "C" {
11519 pub fn BNProjectCreateFile(
11520 project: *mut BNProject,
11521 contents: *const u8,
11522 contentsSize: usize,
11523 folder: *mut BNProjectFolder,
11524 name: *const ::std::os::raw::c_char,
11525 description: *const ::std::os::raw::c_char,
11526 ctxt: *mut ::std::os::raw::c_void,
11527 progress: BNProgressFunction,
11528 ) -> *mut BNProjectFile;
11529}
11530unsafe extern "C" {
11531 pub fn BNProjectCreateFileUnsafe(
11532 project: *mut BNProject,
11533 contents: *const u8,
11534 contentsSize: usize,
11535 folder: *mut BNProjectFolder,
11536 name: *const ::std::os::raw::c_char,
11537 description: *const ::std::os::raw::c_char,
11538 id: *const ::std::os::raw::c_char,
11539 creationTimestamp: i64,
11540 ctxt: *mut ::std::os::raw::c_void,
11541 progress: BNProgressFunction,
11542 ) -> *mut BNProjectFile;
11543}
11544unsafe extern "C" {
11545 pub fn BNProjectGetFiles(project: *mut BNProject, count: *mut usize)
11546 -> *mut *mut BNProjectFile;
11547}
11548unsafe extern "C" {
11549 pub fn BNProjectGetFileById(
11550 project: *mut BNProject,
11551 id: *const ::std::os::raw::c_char,
11552 ) -> *mut BNProjectFile;
11553}
11554unsafe extern "C" {
11555 pub fn BNProjectGetFileByPathOnDisk(
11556 project: *mut BNProject,
11557 path: *const ::std::os::raw::c_char,
11558 ) -> *mut BNProjectFile;
11559}
11560unsafe extern "C" {
11561 pub fn BNProjectGetFilesByPathInProject(
11562 project: *mut BNProject,
11563 path: *const ::std::os::raw::c_char,
11564 count: *mut usize,
11565 ) -> *mut *mut BNProjectFile;
11566}
11567unsafe extern "C" {
11568 pub fn BNProjectGetFilesInFolder(
11569 project: *mut BNProject,
11570 folder: *mut BNProjectFolder,
11571 count: *mut usize,
11572 ) -> *mut *mut BNProjectFile;
11573}
11574unsafe extern "C" {
11575 pub fn BNProjectPushFile(project: *mut BNProject, file: *mut BNProjectFile) -> bool;
11576}
11577unsafe extern "C" {
11578 pub fn BNProjectDeleteFile(project: *mut BNProject, file: *mut BNProjectFile) -> bool;
11579}
11580unsafe extern "C" {
11581 pub fn BNProjectCreateFolderFromPath(
11582 project: *mut BNProject,
11583 path: *const ::std::os::raw::c_char,
11584 parent: *mut BNProjectFolder,
11585 description: *const ::std::os::raw::c_char,
11586 ctxt: *mut ::std::os::raw::c_void,
11587 progress: BNProgressFunction,
11588 ) -> *mut BNProjectFolder;
11589}
11590unsafe extern "C" {
11591 pub fn BNProjectCreateFolder(
11592 project: *mut BNProject,
11593 parent: *mut BNProjectFolder,
11594 name: *const ::std::os::raw::c_char,
11595 description: *const ::std::os::raw::c_char,
11596 ) -> *mut BNProjectFolder;
11597}
11598unsafe extern "C" {
11599 pub fn BNProjectCreateFolderUnsafe(
11600 project: *mut BNProject,
11601 parent: *mut BNProjectFolder,
11602 name: *const ::std::os::raw::c_char,
11603 description: *const ::std::os::raw::c_char,
11604 id: *const ::std::os::raw::c_char,
11605 ) -> *mut BNProjectFolder;
11606}
11607unsafe extern "C" {
11608 pub fn BNProjectGetFolders(
11609 project: *mut BNProject,
11610 count: *mut usize,
11611 ) -> *mut *mut BNProjectFolder;
11612}
11613unsafe extern "C" {
11614 pub fn BNProjectGetFolderById(
11615 project: *mut BNProject,
11616 id: *const ::std::os::raw::c_char,
11617 ) -> *mut BNProjectFolder;
11618}
11619unsafe extern "C" {
11620 pub fn BNProjectPushFolder(project: *mut BNProject, folder: *mut BNProjectFolder) -> bool;
11621}
11622unsafe extern "C" {
11623 pub fn BNProjectDeleteFolder(
11624 project: *mut BNProject,
11625 folder: *mut BNProjectFolder,
11626 ctxt: *mut ::std::os::raw::c_void,
11627 progress: BNProgressFunction,
11628 ) -> bool;
11629}
11630unsafe extern "C" {
11631 pub fn BNProjectBeginBulkOperation(project: *mut BNProject) -> bool;
11632}
11633unsafe extern "C" {
11634 pub fn BNProjectEndBulkOperation(project: *mut BNProject) -> bool;
11635}
11636unsafe extern "C" {
11637 pub fn BNProjectGetRemoteProject(project: *mut BNProject) -> *mut BNRemoteProject;
11638}
11639unsafe extern "C" {
11640 #[doc = " ProjectFile object"]
11641 pub fn BNNewProjectFileReference(file: *mut BNProjectFile) -> *mut BNProjectFile;
11642}
11643unsafe extern "C" {
11644 pub fn BNFreeProjectFile(file: *mut BNProjectFile);
11645}
11646unsafe extern "C" {
11647 pub fn BNFreeProjectFileList(files: *mut *mut BNProjectFile, count: usize);
11648}
11649unsafe extern "C" {
11650 pub fn BNProjectFileGetPathOnDisk(file: *mut BNProjectFile) -> *mut ::std::os::raw::c_char;
11651}
11652unsafe extern "C" {
11653 pub fn BNProjectFileGetPathInProject(file: *const BNProjectFile)
11654 -> *mut ::std::os::raw::c_char;
11655}
11656unsafe extern "C" {
11657 pub fn BNProjectFileExistsOnDisk(file: *mut BNProjectFile) -> bool;
11658}
11659unsafe extern "C" {
11660 pub fn BNProjectFileGetName(file: *mut BNProjectFile) -> *mut ::std::os::raw::c_char;
11661}
11662unsafe extern "C" {
11663 pub fn BNProjectFileSetName(
11664 file: *mut BNProjectFile,
11665 name: *const ::std::os::raw::c_char,
11666 ) -> bool;
11667}
11668unsafe extern "C" {
11669 pub fn BNProjectFileGetDescription(file: *mut BNProjectFile) -> *mut ::std::os::raw::c_char;
11670}
11671unsafe extern "C" {
11672 pub fn BNProjectFileSetDescription(
11673 file: *mut BNProjectFile,
11674 description: *const ::std::os::raw::c_char,
11675 ) -> bool;
11676}
11677unsafe extern "C" {
11678 pub fn BNProjectFileGetId(file: *mut BNProjectFile) -> *mut ::std::os::raw::c_char;
11679}
11680unsafe extern "C" {
11681 pub fn BNProjectFileGetFolder(file: *mut BNProjectFile) -> *mut BNProjectFolder;
11682}
11683unsafe extern "C" {
11684 pub fn BNProjectFileSetFolder(file: *mut BNProjectFile, folder: *mut BNProjectFolder) -> bool;
11685}
11686unsafe extern "C" {
11687 pub fn BNProjectFileGetProject(file: *mut BNProjectFile) -> *mut BNProject;
11688}
11689unsafe extern "C" {
11690 pub fn BNProjectFileExport(
11691 file: *mut BNProjectFile,
11692 destination: *const ::std::os::raw::c_char,
11693 ) -> bool;
11694}
11695unsafe extern "C" {
11696 pub fn BNProjectFileGetCreationTimestamp(file: *mut BNProjectFile) -> i64;
11697}
11698unsafe extern "C" {
11699 pub fn BNProjectFileAddDependency(file: *mut BNProjectFile, dep: *mut BNProjectFile) -> bool;
11700}
11701unsafe extern "C" {
11702 pub fn BNProjectFileRemoveDependency(file: *mut BNProjectFile, dep: *mut BNProjectFile)
11703 -> bool;
11704}
11705unsafe extern "C" {
11706 pub fn BNProjectFileGetDependencies(
11707 file: *mut BNProjectFile,
11708 count: *mut usize,
11709 ) -> *mut *mut BNProjectFile;
11710}
11711unsafe extern "C" {
11712 pub fn BNProjectFileGetRequiredBy(
11713 file: *mut BNProjectFile,
11714 count: *mut usize,
11715 ) -> *mut *mut BNProjectFile;
11716}
11717unsafe extern "C" {
11718 #[doc = " ProjectFolder object"]
11719 pub fn BNNewProjectFolderReference(folder: *mut BNProjectFolder) -> *mut BNProjectFolder;
11720}
11721unsafe extern "C" {
11722 pub fn BNFreeProjectFolder(folder: *mut BNProjectFolder);
11723}
11724unsafe extern "C" {
11725 pub fn BNFreeProjectFolderList(folders: *mut *mut BNProjectFolder, count: usize);
11726}
11727unsafe extern "C" {
11728 pub fn BNProjectFolderGetId(folder: *mut BNProjectFolder) -> *mut ::std::os::raw::c_char;
11729}
11730unsafe extern "C" {
11731 pub fn BNProjectFolderGetName(folder: *mut BNProjectFolder) -> *mut ::std::os::raw::c_char;
11732}
11733unsafe extern "C" {
11734 pub fn BNProjectFolderSetName(
11735 folder: *mut BNProjectFolder,
11736 name: *const ::std::os::raw::c_char,
11737 ) -> bool;
11738}
11739unsafe extern "C" {
11740 pub fn BNProjectFolderGetDescription(
11741 folder: *mut BNProjectFolder,
11742 ) -> *mut ::std::os::raw::c_char;
11743}
11744unsafe extern "C" {
11745 pub fn BNProjectFolderSetDescription(
11746 folder: *mut BNProjectFolder,
11747 description: *const ::std::os::raw::c_char,
11748 ) -> bool;
11749}
11750unsafe extern "C" {
11751 pub fn BNProjectFolderGetParent(folder: *mut BNProjectFolder) -> *mut BNProjectFolder;
11752}
11753unsafe extern "C" {
11754 pub fn BNProjectFolderSetParent(
11755 folder: *mut BNProjectFolder,
11756 parent: *mut BNProjectFolder,
11757 ) -> bool;
11758}
11759unsafe extern "C" {
11760 pub fn BNProjectFolderGetProject(folder: *mut BNProjectFolder) -> *mut BNProject;
11761}
11762unsafe extern "C" {
11763 pub fn BNProjectFolderExport(
11764 folder: *mut BNProjectFolder,
11765 destination: *const ::std::os::raw::c_char,
11766 ctxt: *mut ::std::os::raw::c_void,
11767 progress: BNProgressFunction,
11768 ) -> bool;
11769}
11770unsafe extern "C" {
11771 pub fn BNProjectFolderGetFiles(
11772 folder: *mut BNProjectFolder,
11773 count: *mut usize,
11774 ) -> *mut *mut BNProjectFile;
11775}
11776unsafe extern "C" {
11777 #[doc = " ExternalLibrary object"]
11778 pub fn BNNewExternalLibraryReference(lib: *mut BNExternalLibrary) -> *mut BNExternalLibrary;
11779}
11780unsafe extern "C" {
11781 pub fn BNFreeExternalLibrary(lib: *mut BNExternalLibrary);
11782}
11783unsafe extern "C" {
11784 pub fn BNFreeExternalLibraryList(libs: *mut *mut BNExternalLibrary, count: usize);
11785}
11786unsafe extern "C" {
11787 pub fn BNExternalLibraryGetName(lib: *mut BNExternalLibrary) -> *mut ::std::os::raw::c_char;
11788}
11789unsafe extern "C" {
11790 pub fn BNExternalLibrarySetBackingFile(lib: *mut BNExternalLibrary, file: *mut BNProjectFile);
11791}
11792unsafe extern "C" {
11793 pub fn BNExternalLibraryGetBackingFile(lib: *mut BNExternalLibrary) -> *mut BNProjectFile;
11794}
11795unsafe extern "C" {
11796 #[doc = " ExternalLocation object"]
11797 pub fn BNNewExternalLocationReference(loc: *mut BNExternalLocation) -> *mut BNExternalLocation;
11798}
11799unsafe extern "C" {
11800 pub fn BNFreeExternalLocation(loc: *mut BNExternalLocation);
11801}
11802unsafe extern "C" {
11803 pub fn BNFreeExternalLocationList(locs: *mut *mut BNExternalLocation, count: usize);
11804}
11805unsafe extern "C" {
11806 pub fn BNExternalLocationGetSourceSymbol(loc: *mut BNExternalLocation) -> *mut BNSymbol;
11807}
11808unsafe extern "C" {
11809 pub fn BNExternalLocationGetTargetAddress(loc: *mut BNExternalLocation) -> u64;
11810}
11811unsafe extern "C" {
11812 pub fn BNExternalLocationGetTargetSymbol(
11813 loc: *mut BNExternalLocation,
11814 ) -> *mut ::std::os::raw::c_char;
11815}
11816unsafe extern "C" {
11817 pub fn BNExternalLocationGetExternalLibrary(
11818 loc: *mut BNExternalLocation,
11819 ) -> *mut BNExternalLibrary;
11820}
11821unsafe extern "C" {
11822 pub fn BNExternalLocationHasTargetAddress(loc: *mut BNExternalLocation) -> bool;
11823}
11824unsafe extern "C" {
11825 pub fn BNExternalLocationHasTargetSymbol(loc: *mut BNExternalLocation) -> bool;
11826}
11827unsafe extern "C" {
11828 pub fn BNExternalLocationSetTargetAddress(
11829 loc: *mut BNExternalLocation,
11830 address: *mut u64,
11831 ) -> bool;
11832}
11833unsafe extern "C" {
11834 pub fn BNExternalLocationSetTargetSymbol(
11835 loc: *mut BNExternalLocation,
11836 symbol: *const ::std::os::raw::c_char,
11837 ) -> bool;
11838}
11839unsafe extern "C" {
11840 pub fn BNExternalLocationSetExternalLibrary(
11841 loc: *mut BNExternalLocation,
11842 library: *mut BNExternalLibrary,
11843 );
11844}
11845unsafe extern "C" {
11846 #[doc = " Database object"]
11847 pub fn BNNewDatabaseReference(database: *mut BNDatabase) -> *mut BNDatabase;
11848}
11849unsafe extern "C" {
11850 pub fn BNFreeDatabase(database: *mut BNDatabase);
11851}
11852unsafe extern "C" {
11853 pub fn BNSetDatabaseCurrentSnapshot(database: *mut BNDatabase, id: i64);
11854}
11855unsafe extern "C" {
11856 pub fn BNGetDatabaseCurrentSnapshot(database: *mut BNDatabase) -> *mut BNSnapshot;
11857}
11858unsafe extern "C" {
11859 pub fn BNGetDatabaseSnapshots(
11860 database: *mut BNDatabase,
11861 count: *mut usize,
11862 ) -> *mut *mut BNSnapshot;
11863}
11864unsafe extern "C" {
11865 pub fn BNGetDatabaseSnapshot(database: *mut BNDatabase, id: i64) -> *mut BNSnapshot;
11866}
11867unsafe extern "C" {
11868 pub fn BNWriteDatabaseSnapshotData(
11869 database: *mut BNDatabase,
11870 parents: *mut i64,
11871 parentCount: usize,
11872 file: *mut BNBinaryView,
11873 name: *const ::std::os::raw::c_char,
11874 data: *mut BNKeyValueStore,
11875 autoSave: bool,
11876 ctxt: *mut ::std::os::raw::c_void,
11877 progress: BNProgressFunction,
11878 ) -> i64;
11879}
11880unsafe extern "C" {
11881 pub fn BNTrimDatabaseSnapshot(database: *mut BNDatabase, id: i64) -> bool;
11882}
11883unsafe extern "C" {
11884 pub fn BNRemoveDatabaseSnapshot(database: *mut BNDatabase, id: i64) -> bool;
11885}
11886unsafe extern "C" {
11887 pub fn BNGetDatabaseGlobalKeys(
11888 database: *mut BNDatabase,
11889 count: *mut usize,
11890 ) -> *mut *mut ::std::os::raw::c_char;
11891}
11892unsafe extern "C" {
11893 pub fn BNDatabaseHasGlobal(
11894 database: *mut BNDatabase,
11895 key: *const ::std::os::raw::c_char,
11896 ) -> ::std::os::raw::c_int;
11897}
11898unsafe extern "C" {
11899 pub fn BNReadDatabaseGlobal(
11900 database: *mut BNDatabase,
11901 key: *const ::std::os::raw::c_char,
11902 ) -> *mut ::std::os::raw::c_char;
11903}
11904unsafe extern "C" {
11905 pub fn BNWriteDatabaseGlobal(
11906 database: *mut BNDatabase,
11907 key: *const ::std::os::raw::c_char,
11908 val: *const ::std::os::raw::c_char,
11909 ) -> bool;
11910}
11911unsafe extern "C" {
11912 pub fn BNReadDatabaseGlobalData(
11913 database: *mut BNDatabase,
11914 key: *const ::std::os::raw::c_char,
11915 ) -> *mut BNDataBuffer;
11916}
11917unsafe extern "C" {
11918 pub fn BNWriteDatabaseGlobalData(
11919 database: *mut BNDatabase,
11920 key: *const ::std::os::raw::c_char,
11921 val: *mut BNDataBuffer,
11922 ) -> bool;
11923}
11924unsafe extern "C" {
11925 pub fn BNGetDatabaseFile(database: *mut BNDatabase) -> *mut BNFileMetadata;
11926}
11927unsafe extern "C" {
11928 pub fn BNDatabaseReloadConnection(database: *mut BNDatabase);
11929}
11930unsafe extern "C" {
11931 pub fn BNReadDatabaseAnalysisCache(database: *mut BNDatabase) -> *mut BNKeyValueStore;
11932}
11933unsafe extern "C" {
11934 pub fn BNWriteDatabaseAnalysisCache(
11935 database: *mut BNDatabase,
11936 val: *mut BNKeyValueStore,
11937 ) -> bool;
11938}
11939unsafe extern "C" {
11940 pub fn BNSnapshotHasData(db: *mut BNDatabase, id: i64) -> bool;
11941}
11942unsafe extern "C" {
11943 #[doc = " Database snapshots"]
11944 pub fn BNNewSnapshotReference(snapshot: *mut BNSnapshot) -> *mut BNSnapshot;
11945}
11946unsafe extern "C" {
11947 pub fn BNFreeSnapshot(snapshot: *mut BNSnapshot);
11948}
11949unsafe extern "C" {
11950 pub fn BNFreeSnapshotList(snapshots: *mut *mut BNSnapshot, count: usize);
11951}
11952unsafe extern "C" {
11953 pub fn BNGetSnapshotDatabase(snapshot: *mut BNSnapshot) -> *mut BNDatabase;
11954}
11955unsafe extern "C" {
11956 pub fn BNGetSnapshotId(snapshot: *mut BNSnapshot) -> i64;
11957}
11958unsafe extern "C" {
11959 pub fn BNGetSnapshotFirstParent(snapshot: *mut BNSnapshot) -> *mut BNSnapshot;
11960}
11961unsafe extern "C" {
11962 pub fn BNGetSnapshotParents(
11963 snapshot: *mut BNSnapshot,
11964 count: *mut usize,
11965 ) -> *mut *mut BNSnapshot;
11966}
11967unsafe extern "C" {
11968 pub fn BNGetSnapshotChildren(
11969 snapshot: *mut BNSnapshot,
11970 count: *mut usize,
11971 ) -> *mut *mut BNSnapshot;
11972}
11973unsafe extern "C" {
11974 pub fn BNGetSnapshotName(snapshot: *mut BNSnapshot) -> *mut ::std::os::raw::c_char;
11975}
11976unsafe extern "C" {
11977 pub fn BNSetSnapshotName(snapshot: *mut BNSnapshot, name: *const ::std::os::raw::c_char);
11978}
11979unsafe extern "C" {
11980 pub fn BNIsSnapshotAutoSave(snapshot: *mut BNSnapshot) -> bool;
11981}
11982unsafe extern "C" {
11983 pub fn BNSnapshotHasContents(snapshot: *mut BNSnapshot) -> bool;
11984}
11985unsafe extern "C" {
11986 pub fn BNSnapshotHasUndo(snapshot: *mut BNSnapshot) -> bool;
11987}
11988unsafe extern "C" {
11989 pub fn BNGetSnapshotFileContents(snapshot: *mut BNSnapshot) -> *mut BNDataBuffer;
11990}
11991unsafe extern "C" {
11992 pub fn BNGetSnapshotFileContentsHash(snapshot: *mut BNSnapshot) -> *mut BNDataBuffer;
11993}
11994unsafe extern "C" {
11995 pub fn BNReadSnapshotData(snapshot: *mut BNSnapshot) -> *mut BNKeyValueStore;
11996}
11997unsafe extern "C" {
11998 pub fn BNReadSnapshotDataWithProgress(
11999 snapshot: *mut BNSnapshot,
12000 ctxt: *mut ::std::os::raw::c_void,
12001 progress: BNProgressFunction,
12002 ) -> *mut BNKeyValueStore;
12003}
12004unsafe extern "C" {
12005 pub fn BNGetSnapshotUndoData(snapshot: *mut BNSnapshot) -> *mut BNDataBuffer;
12006}
12007unsafe extern "C" {
12008 pub fn BNGetSnapshotUndoEntries(
12009 snapshot: *mut BNSnapshot,
12010 count: *mut usize,
12011 ) -> *mut *mut BNUndoEntry;
12012}
12013unsafe extern "C" {
12014 pub fn BNGetSnapshotUndoEntriesWithProgress(
12015 snapshot: *mut BNSnapshot,
12016 ctxt: *mut ::std::os::raw::c_void,
12017 progress: BNProgressFunction,
12018 count: *mut usize,
12019 ) -> *mut *mut BNUndoEntry;
12020}
12021unsafe extern "C" {
12022 pub fn BNSnapshotHasAncestor(snapshot: *mut BNSnapshot, other: *mut BNSnapshot) -> bool;
12023}
12024unsafe extern "C" {
12025 pub fn BNSnapshotStoreData(
12026 snapshot: *mut BNSnapshot,
12027 data: *mut BNKeyValueStore,
12028 ctxt: *mut ::std::os::raw::c_void,
12029 progress: BNProgressFunction,
12030 ) -> bool;
12031}
12032unsafe extern "C" {
12033 #[doc = " Undo actions"]
12034 pub fn BNNewUndoActionReference(action: *mut BNUndoAction) -> *mut BNUndoAction;
12035}
12036unsafe extern "C" {
12037 pub fn BNFreeUndoAction(action: *mut BNUndoAction);
12038}
12039unsafe extern "C" {
12040 pub fn BNFreeUndoActionList(actions: *mut *mut BNUndoAction, count: usize);
12041}
12042unsafe extern "C" {
12043 pub fn BNUndoActionGetSummaryText(action: *mut BNUndoAction) -> *mut ::std::os::raw::c_char;
12044}
12045unsafe extern "C" {
12046 pub fn BNUndoActionGetSummary(
12047 action: *mut BNUndoAction,
12048 tokenCount: *mut usize,
12049 ) -> *mut BNInstructionTextToken;
12050}
12051unsafe extern "C" {
12052 #[doc = " Undo entries"]
12053 pub fn BNNewUndoEntryReference(entry: *mut BNUndoEntry) -> *mut BNUndoEntry;
12054}
12055unsafe extern "C" {
12056 pub fn BNFreeUndoEntry(entry: *mut BNUndoEntry);
12057}
12058unsafe extern "C" {
12059 pub fn BNFreeUndoEntryList(entrys: *mut *mut BNUndoEntry, count: usize);
12060}
12061unsafe extern "C" {
12062 pub fn BNUndoEntryGetId(entry: *mut BNUndoEntry) -> *mut ::std::os::raw::c_char;
12063}
12064unsafe extern "C" {
12065 pub fn BNUndoEntryGetActions(
12066 entry: *mut BNUndoEntry,
12067 count: *mut usize,
12068 ) -> *mut *mut BNUndoAction;
12069}
12070unsafe extern "C" {
12071 pub fn BNUndoEntryGetTimestamp(entry: *mut BNUndoEntry) -> u64;
12072}
12073unsafe extern "C" {
12074 pub fn BNRebase(data: *mut BNBinaryView, address: u64) -> bool;
12075}
12076unsafe extern "C" {
12077 pub fn BNRebaseWithProgress(
12078 data: *mut BNBinaryView,
12079 address: u64,
12080 ctxt: *mut ::std::os::raw::c_void,
12081 progress: BNProgressFunction,
12082 ) -> bool;
12083}
12084unsafe extern "C" {
12085 pub fn BNCreateSnapshotedView(
12086 data: *mut BNBinaryView,
12087 viewName: *const ::std::os::raw::c_char,
12088 ) -> bool;
12089}
12090unsafe extern "C" {
12091 pub fn BNCreateSnapshotedViewWithProgress(
12092 data: *mut BNBinaryView,
12093 viewName: *const ::std::os::raw::c_char,
12094 ctxt: *mut ::std::os::raw::c_void,
12095 progress: BNProgressFunction,
12096 ) -> bool;
12097}
12098unsafe extern "C" {
12099 pub fn BNGetOriginalFilename(file: *mut BNFileMetadata) -> *mut ::std::os::raw::c_char;
12100}
12101unsafe extern "C" {
12102 pub fn BNSetOriginalFilename(file: *mut BNFileMetadata, name: *const ::std::os::raw::c_char);
12103}
12104unsafe extern "C" {
12105 pub fn BNGetFilename(file: *mut BNFileMetadata) -> *mut ::std::os::raw::c_char;
12106}
12107unsafe extern "C" {
12108 pub fn BNSetFilename(file: *mut BNFileMetadata, name: *const ::std::os::raw::c_char);
12109}
12110unsafe extern "C" {
12111 pub fn BNGetVirtualPath(file: *mut BNFileMetadata) -> *mut ::std::os::raw::c_char;
12112}
12113unsafe extern "C" {
12114 pub fn BNSetVirtualPath(file: *mut BNFileMetadata, path: *const ::std::os::raw::c_char);
12115}
12116unsafe extern "C" {
12117 pub fn BNGetDisplayName(file: *mut BNFileMetadata) -> *mut ::std::os::raw::c_char;
12118}
12119unsafe extern "C" {
12120 pub fn BNSetDisplayName(file: *mut BNFileMetadata, name: *const ::std::os::raw::c_char);
12121}
12122unsafe extern "C" {
12123 pub fn BNGetProjectFile(file: *mut BNFileMetadata) -> *mut BNProjectFile;
12124}
12125unsafe extern "C" {
12126 pub fn BNSetProjectFile(file: *mut BNFileMetadata, pfile: *mut BNProjectFile);
12127}
12128unsafe extern "C" {
12129 pub fn BNBeginUndoActions(
12130 file: *mut BNFileMetadata,
12131 anonymousAllowed: bool,
12132 ) -> *mut ::std::os::raw::c_char;
12133}
12134unsafe extern "C" {
12135 pub fn BNCommitUndoActions(file: *mut BNFileMetadata, id: *const ::std::os::raw::c_char);
12136}
12137unsafe extern "C" {
12138 pub fn BNRevertUndoActions(file: *mut BNFileMetadata, id: *const ::std::os::raw::c_char);
12139}
12140unsafe extern "C" {
12141 pub fn BNForgetUndoActions(file: *mut BNFileMetadata, id: *const ::std::os::raw::c_char);
12142}
12143unsafe extern "C" {
12144 pub fn BNCanUndo(file: *mut BNFileMetadata) -> bool;
12145}
12146unsafe extern "C" {
12147 pub fn BNUndo(file: *mut BNFileMetadata) -> bool;
12148}
12149unsafe extern "C" {
12150 pub fn BNCanRedo(file: *mut BNFileMetadata) -> bool;
12151}
12152unsafe extern "C" {
12153 pub fn BNRedo(file: *mut BNFileMetadata) -> bool;
12154}
12155unsafe extern "C" {
12156 pub fn BNGetUndoEntries(file: *mut BNFileMetadata, count: *mut usize) -> *mut *mut BNUndoEntry;
12157}
12158unsafe extern "C" {
12159 pub fn BNGetRedoEntries(file: *mut BNFileMetadata, count: *mut usize) -> *mut *mut BNUndoEntry;
12160}
12161unsafe extern "C" {
12162 pub fn BNGetLastUndoEntry(file: *mut BNFileMetadata) -> *mut BNUndoEntry;
12163}
12164unsafe extern "C" {
12165 pub fn BNGetLastRedoEntry(file: *mut BNFileMetadata) -> *mut BNUndoEntry;
12166}
12167unsafe extern "C" {
12168 pub fn BNGetLastUndoEntryTitle(file: *mut BNFileMetadata) -> *mut ::std::os::raw::c_char;
12169}
12170unsafe extern "C" {
12171 pub fn BNGetLastRedoEntryTitle(file: *mut BNFileMetadata) -> *mut ::std::os::raw::c_char;
12172}
12173unsafe extern "C" {
12174 pub fn BNFreeUndoEntries(entries: *mut *mut BNUndoEntry, count: usize);
12175}
12176unsafe extern "C" {
12177 pub fn BNClearUndoEntries(file: *mut BNFileMetadata);
12178}
12179unsafe extern "C" {
12180 pub fn BNNewUserReference(user: *mut BNUser) -> *mut BNUser;
12181}
12182unsafe extern "C" {
12183 pub fn BNFreeUser(user: *mut BNUser);
12184}
12185unsafe extern "C" {
12186 pub fn BNGetUsers(file: *mut BNFileMetadata, count: *mut usize) -> *mut *mut BNUser;
12187}
12188unsafe extern "C" {
12189 pub fn BNFreeUserList(users: *mut *mut BNUser, count: usize);
12190}
12191unsafe extern "C" {
12192 pub fn BNGetUserName(user: *mut BNUser) -> *mut ::std::os::raw::c_char;
12193}
12194unsafe extern "C" {
12195 pub fn BNGetUserEmail(user: *mut BNUser) -> *mut ::std::os::raw::c_char;
12196}
12197unsafe extern "C" {
12198 pub fn BNGetUserId(user: *mut BNUser) -> *mut ::std::os::raw::c_char;
12199}
12200unsafe extern "C" {
12201 pub fn BNGetCurrentView(file: *mut BNFileMetadata) -> *mut ::std::os::raw::c_char;
12202}
12203unsafe extern "C" {
12204 pub fn BNGetCurrentOffset(file: *mut BNFileMetadata) -> u64;
12205}
12206unsafe extern "C" {
12207 pub fn BNNavigate(
12208 file: *mut BNFileMetadata,
12209 view: *const ::std::os::raw::c_char,
12210 offset: u64,
12211 ) -> bool;
12212}
12213unsafe extern "C" {
12214 pub fn BNGetFileViewOfType(
12215 file: *mut BNFileMetadata,
12216 name: *const ::std::os::raw::c_char,
12217 ) -> *mut BNBinaryView;
12218}
12219unsafe extern "C" {
12220 pub fn BNGetExistingViews(
12221 file: *mut BNFileMetadata,
12222 count: *mut usize,
12223 ) -> *mut *mut ::std::os::raw::c_char;
12224}
12225unsafe extern "C" {
12226 pub fn BNFileMetadataGetSessionId(file: *mut BNFileMetadata) -> usize;
12227}
12228unsafe extern "C" {
12229 pub fn BNIsSnapshotDataAppliedWithoutError(view: *mut BNFileMetadata) -> bool;
12230}
12231unsafe extern "C" {
12232 pub fn BNUnregisterViewOfType(
12233 file: *mut BNFileMetadata,
12234 type_: *const ::std::os::raw::c_char,
12235 view: *mut BNBinaryView,
12236 );
12237}
12238unsafe extern "C" {
12239 #[doc = " Memory Map"]
12240 pub fn BNGetBaseMemoryMapDescription(view: *mut BNBinaryView) -> *mut ::std::os::raw::c_char;
12241}
12242unsafe extern "C" {
12243 pub fn BNGetMemoryMapDescription(view: *mut BNBinaryView) -> *mut ::std::os::raw::c_char;
12244}
12245unsafe extern "C" {
12246 pub fn BNSetLogicalMemoryMapEnabled(view: *mut BNBinaryView, enabled: bool);
12247}
12248unsafe extern "C" {
12249 pub fn BNIsMemoryMapActivated(view: *mut BNBinaryView) -> bool;
12250}
12251unsafe extern "C" {
12252 pub fn BNAddBinaryMemoryRegion(
12253 view: *mut BNBinaryView,
12254 name: *const ::std::os::raw::c_char,
12255 start: u64,
12256 data: *mut BNBinaryView,
12257 flags: u32,
12258 ) -> bool;
12259}
12260unsafe extern "C" {
12261 pub fn BNAddDataMemoryRegion(
12262 view: *mut BNBinaryView,
12263 name: *const ::std::os::raw::c_char,
12264 start: u64,
12265 data: *mut BNDataBuffer,
12266 flags: u32,
12267 ) -> bool;
12268}
12269unsafe extern "C" {
12270 pub fn BNAddUnbackedMemoryRegion(
12271 view: *mut BNBinaryView,
12272 name: *const ::std::os::raw::c_char,
12273 start: u64,
12274 length: u64,
12275 flags: u32,
12276 fill: u8,
12277 ) -> bool;
12278}
12279unsafe extern "C" {
12280 pub fn BNAddRemoteMemoryRegion(
12281 view: *mut BNBinaryView,
12282 name: *const ::std::os::raw::c_char,
12283 start: u64,
12284 accessor: *mut BNFileAccessor,
12285 flags: u32,
12286 ) -> bool;
12287}
12288unsafe extern "C" {
12289 pub fn BNRemoveMemoryRegion(
12290 view: *mut BNBinaryView,
12291 name: *const ::std::os::raw::c_char,
12292 ) -> bool;
12293}
12294unsafe extern "C" {
12295 pub fn BNGetActiveMemoryRegionAt(
12296 view: *mut BNBinaryView,
12297 addr: u64,
12298 ) -> *mut ::std::os::raw::c_char;
12299}
12300unsafe extern "C" {
12301 pub fn BNGetMemoryRegionFlags(
12302 view: *mut BNBinaryView,
12303 name: *const ::std::os::raw::c_char,
12304 ) -> u32;
12305}
12306unsafe extern "C" {
12307 pub fn BNSetMemoryRegionFlags(
12308 view: *mut BNBinaryView,
12309 name: *const ::std::os::raw::c_char,
12310 flags: u32,
12311 ) -> bool;
12312}
12313unsafe extern "C" {
12314 pub fn BNIsMemoryRegionEnabled(
12315 view: *mut BNBinaryView,
12316 name: *const ::std::os::raw::c_char,
12317 ) -> bool;
12318}
12319unsafe extern "C" {
12320 pub fn BNSetMemoryRegionEnabled(
12321 view: *mut BNBinaryView,
12322 name: *const ::std::os::raw::c_char,
12323 enable: bool,
12324 ) -> bool;
12325}
12326unsafe extern "C" {
12327 pub fn BNIsMemoryRegionRebaseable(
12328 view: *mut BNBinaryView,
12329 name: *const ::std::os::raw::c_char,
12330 ) -> bool;
12331}
12332unsafe extern "C" {
12333 pub fn BNSetMemoryRegionRebaseable(
12334 view: *mut BNBinaryView,
12335 name: *const ::std::os::raw::c_char,
12336 rebaseable: bool,
12337 ) -> bool;
12338}
12339unsafe extern "C" {
12340 pub fn BNGetMemoryRegionFill(
12341 view: *mut BNBinaryView,
12342 name: *const ::std::os::raw::c_char,
12343 ) -> u8;
12344}
12345unsafe extern "C" {
12346 pub fn BNSetMemoryRegionFill(
12347 view: *mut BNBinaryView,
12348 name: *const ::std::os::raw::c_char,
12349 fill: u8,
12350 ) -> bool;
12351}
12352unsafe extern "C" {
12353 pub fn BNGetMemoryRegionDisplayName(
12354 view: *mut BNBinaryView,
12355 name: *const ::std::os::raw::c_char,
12356 ) -> *mut ::std::os::raw::c_char;
12357}
12358unsafe extern "C" {
12359 pub fn BNSetMemoryRegionDisplayName(
12360 view: *mut BNBinaryView,
12361 name: *const ::std::os::raw::c_char,
12362 displayName: *const ::std::os::raw::c_char,
12363 ) -> bool;
12364}
12365unsafe extern "C" {
12366 pub fn BNIsMemoryRegionLocal(
12367 view: *mut BNBinaryView,
12368 name: *const ::std::os::raw::c_char,
12369 ) -> bool;
12370}
12371unsafe extern "C" {
12372 pub fn BNGetMemoryRegionInfo(
12373 view: *mut BNBinaryView,
12374 name: *const ::std::os::raw::c_char,
12375 result: *mut BNMemoryRegionInfo,
12376 ) -> bool;
12377}
12378unsafe extern "C" {
12379 pub fn BNGetActiveMemoryRegionInfoAt(
12380 view: *mut BNBinaryView,
12381 addr: u64,
12382 result: *mut BNMemoryRegionInfo,
12383 ) -> bool;
12384}
12385unsafe extern "C" {
12386 pub fn BNGetResolvedMemoryRangeAt(
12387 view: *mut BNBinaryView,
12388 addr: u64,
12389 result: *mut BNResolvedMemoryRange,
12390 ) -> bool;
12391}
12392unsafe extern "C" {
12393 pub fn BNFreeMemoryRegionInfo(info: *mut BNMemoryRegionInfo);
12394}
12395unsafe extern "C" {
12396 pub fn BNFreeResolvedMemoryRange(range: *mut BNResolvedMemoryRange);
12397}
12398unsafe extern "C" {
12399 pub fn BNGetMemoryRegions(
12400 view: *mut BNBinaryView,
12401 count: *mut usize,
12402 ) -> *mut BNMemoryRegionInfo;
12403}
12404unsafe extern "C" {
12405 pub fn BNFreeMemoryRegions(regions: *mut BNMemoryRegionInfo, count: usize);
12406}
12407unsafe extern "C" {
12408 pub fn BNGetResolvedMemoryRanges(
12409 view: *mut BNBinaryView,
12410 count: *mut usize,
12411 ) -> *mut BNResolvedMemoryRange;
12412}
12413unsafe extern "C" {
12414 pub fn BNFreeResolvedMemoryRanges(ranges: *mut BNResolvedMemoryRange, count: usize);
12415}
12416unsafe extern "C" {
12417 pub fn BNResetMemoryMap(view: *mut BNBinaryView);
12418}
12419unsafe extern "C" {
12420 #[doc = " Binary view access"]
12421 pub fn BNNewViewReference(view: *mut BNBinaryView) -> *mut BNBinaryView;
12422}
12423unsafe extern "C" {
12424 pub fn BNFreeBinaryView(view: *mut BNBinaryView);
12425}
12426unsafe extern "C" {
12427 pub fn BNGetFileForView(view: *mut BNBinaryView) -> *mut BNFileMetadata;
12428}
12429unsafe extern "C" {
12430 pub fn BNGetViewType(view: *mut BNBinaryView) -> *mut ::std::os::raw::c_char;
12431}
12432unsafe extern "C" {
12433 pub fn BNGetParentView(view: *mut BNBinaryView) -> *mut BNBinaryView;
12434}
12435unsafe extern "C" {
12436 pub fn BNReadViewData(
12437 view: *mut BNBinaryView,
12438 dest: *mut ::std::os::raw::c_void,
12439 offset: u64,
12440 len: usize,
12441 ) -> usize;
12442}
12443unsafe extern "C" {
12444 pub fn BNReadViewBuffer(view: *mut BNBinaryView, offset: u64, len: usize) -> *mut BNDataBuffer;
12445}
12446unsafe extern "C" {
12447 pub fn BNGetViewDataPointer(view: *mut BNBinaryView) -> *const u8;
12448}
12449unsafe extern "C" {
12450 pub fn BNGetViewDataLength(view: *mut BNBinaryView) -> usize;
12451}
12452unsafe extern "C" {
12453 pub fn BNWriteViewData(
12454 view: *mut BNBinaryView,
12455 offset: u64,
12456 data: *const ::std::os::raw::c_void,
12457 len: usize,
12458 ) -> usize;
12459}
12460unsafe extern "C" {
12461 pub fn BNWriteViewBuffer(
12462 view: *mut BNBinaryView,
12463 offset: u64,
12464 data: *mut BNDataBuffer,
12465 ) -> usize;
12466}
12467unsafe extern "C" {
12468 pub fn BNInsertViewData(
12469 view: *mut BNBinaryView,
12470 offset: u64,
12471 data: *const ::std::os::raw::c_void,
12472 len: usize,
12473 ) -> usize;
12474}
12475unsafe extern "C" {
12476 pub fn BNInsertViewBuffer(
12477 view: *mut BNBinaryView,
12478 offset: u64,
12479 data: *mut BNDataBuffer,
12480 ) -> usize;
12481}
12482unsafe extern "C" {
12483 pub fn BNRemoveViewData(view: *mut BNBinaryView, offset: u64, len: u64) -> usize;
12484}
12485unsafe extern "C" {
12486 pub fn BNNotifyDataWritten(view: *mut BNBinaryView, offset: u64, len: usize);
12487}
12488unsafe extern "C" {
12489 pub fn BNNotifyDataInserted(view: *mut BNBinaryView, offset: u64, len: usize);
12490}
12491unsafe extern "C" {
12492 pub fn BNNotifyDataRemoved(view: *mut BNBinaryView, offset: u64, len: u64);
12493}
12494unsafe extern "C" {
12495 pub fn BNGetEntropy(
12496 view: *mut BNBinaryView,
12497 offset: u64,
12498 len: usize,
12499 blockSize: usize,
12500 result: *mut f32,
12501 ) -> usize;
12502}
12503unsafe extern "C" {
12504 pub fn BNGetModification(view: *mut BNBinaryView, offset: u64) -> BNModificationStatus;
12505}
12506unsafe extern "C" {
12507 pub fn BNGetModificationArray(
12508 view: *mut BNBinaryView,
12509 offset: u64,
12510 result: *mut BNModificationStatus,
12511 len: usize,
12512 ) -> usize;
12513}
12514unsafe extern "C" {
12515 pub fn BNIsValidOffset(view: *mut BNBinaryView, offset: u64) -> bool;
12516}
12517unsafe extern "C" {
12518 pub fn BNIsOffsetReadable(view: *mut BNBinaryView, offset: u64) -> bool;
12519}
12520unsafe extern "C" {
12521 pub fn BNIsOffsetWritable(view: *mut BNBinaryView, offset: u64) -> bool;
12522}
12523unsafe extern "C" {
12524 pub fn BNIsOffsetExecutable(view: *mut BNBinaryView, offset: u64) -> bool;
12525}
12526unsafe extern "C" {
12527 pub fn BNIsOffsetBackedByFile(view: *mut BNBinaryView, offset: u64) -> bool;
12528}
12529unsafe extern "C" {
12530 pub fn BNIsOffsetCodeSemantics(view: *mut BNBinaryView, offset: u64) -> bool;
12531}
12532unsafe extern "C" {
12533 pub fn BNIsOffsetExternSemantics(view: *mut BNBinaryView, offset: u64) -> bool;
12534}
12535unsafe extern "C" {
12536 pub fn BNIsOffsetWritableSemantics(view: *mut BNBinaryView, offset: u64) -> bool;
12537}
12538unsafe extern "C" {
12539 pub fn BNIsOffsetReadOnlySemantics(view: *mut BNBinaryView, offset: u64) -> bool;
12540}
12541unsafe extern "C" {
12542 pub fn BNGetNextValidOffset(view: *mut BNBinaryView, offset: u64) -> u64;
12543}
12544unsafe extern "C" {
12545 pub fn BNGetImageBase(view: *mut BNBinaryView) -> u64;
12546}
12547unsafe extern "C" {
12548 pub fn BNGetOriginalImageBase(view: *mut BNBinaryView) -> u64;
12549}
12550unsafe extern "C" {
12551 pub fn BNSetOriginalImageBase(view: *mut BNBinaryView, imageBase: u64);
12552}
12553unsafe extern "C" {
12554 pub fn BNGetStartOffset(view: *mut BNBinaryView) -> u64;
12555}
12556unsafe extern "C" {
12557 pub fn BNGetEndOffset(view: *mut BNBinaryView) -> u64;
12558}
12559unsafe extern "C" {
12560 pub fn BNGetViewLength(view: *mut BNBinaryView) -> u64;
12561}
12562unsafe extern "C" {
12563 pub fn BNGetEntryPoint(view: *mut BNBinaryView) -> u64;
12564}
12565unsafe extern "C" {
12566 pub fn BNGetDefaultArchitecture(view: *mut BNBinaryView) -> *mut BNArchitecture;
12567}
12568unsafe extern "C" {
12569 pub fn BNSetDefaultArchitecture(view: *mut BNBinaryView, arch: *mut BNArchitecture);
12570}
12571unsafe extern "C" {
12572 pub fn BNGetDefaultPlatform(view: *mut BNBinaryView) -> *mut BNPlatform;
12573}
12574unsafe extern "C" {
12575 pub fn BNSetDefaultPlatform(view: *mut BNBinaryView, platform: *mut BNPlatform);
12576}
12577unsafe extern "C" {
12578 pub fn BNGetDefaultEndianness(view: *mut BNBinaryView) -> BNEndianness;
12579}
12580unsafe extern "C" {
12581 pub fn BNIsRelocatable(view: *mut BNBinaryView) -> bool;
12582}
12583unsafe extern "C" {
12584 pub fn BNGetViewAddressSize(view: *mut BNBinaryView) -> usize;
12585}
12586unsafe extern "C" {
12587 pub fn BNIsViewModified(view: *mut BNBinaryView) -> bool;
12588}
12589unsafe extern "C" {
12590 pub fn BNIsExecutableView(view: *mut BNBinaryView) -> bool;
12591}
12592unsafe extern "C" {
12593 pub fn BNSaveToFile(view: *mut BNBinaryView, file: *mut BNFileAccessor) -> bool;
12594}
12595unsafe extern "C" {
12596 pub fn BNSaveToFilename(
12597 view: *mut BNBinaryView,
12598 filename: *const ::std::os::raw::c_char,
12599 ) -> bool;
12600}
12601unsafe extern "C" {
12602 pub fn BNDefineRelocation(
12603 view: *mut BNBinaryView,
12604 arch: *mut BNArchitecture,
12605 info: *mut BNRelocationInfo,
12606 target: u64,
12607 reloc: u64,
12608 );
12609}
12610unsafe extern "C" {
12611 pub fn BNDefineSymbolRelocation(
12612 view: *mut BNBinaryView,
12613 arch: *mut BNArchitecture,
12614 info: *mut BNRelocationInfo,
12615 target: *mut BNSymbol,
12616 reloc: u64,
12617 );
12618}
12619unsafe extern "C" {
12620 pub fn BNGetRelocationRanges(view: *mut BNBinaryView, count: *mut usize) -> *mut BNRange;
12621}
12622unsafe extern "C" {
12623 pub fn BNGetRelocationRangesAtAddress(
12624 view: *mut BNBinaryView,
12625 addr: u64,
12626 count: *mut usize,
12627 ) -> *mut BNRange;
12628}
12629unsafe extern "C" {
12630 pub fn BNGetRelocationRangesInRange(
12631 view: *mut BNBinaryView,
12632 addr: u64,
12633 size: u64,
12634 count: *mut usize,
12635 ) -> *mut BNRange;
12636}
12637unsafe extern "C" {
12638 pub fn BNRangeContainsRelocation(view: *mut BNBinaryView, addr: u64, size: usize) -> bool;
12639}
12640unsafe extern "C" {
12641 pub fn BNGetRelocationsAt(
12642 view: *mut BNBinaryView,
12643 addr: u64,
12644 count: *mut usize,
12645 ) -> *mut *mut BNRelocation;
12646}
12647unsafe extern "C" {
12648 pub fn BNFreeRelocationList(relocations: *mut *mut BNRelocation, count: usize);
12649}
12650unsafe extern "C" {
12651 pub fn BNFreeRelocationRanges(ranges: *mut BNRange);
12652}
12653unsafe extern "C" {
12654 pub fn BNGetNextRelocation(
12655 view: *mut BNBinaryView,
12656 addr: u64,
12657 maxAddr: u64,
12658 ) -> *mut BNRelocation;
12659}
12660unsafe extern "C" {
12661 pub fn BNRegisterDataNotification(
12662 view: *mut BNBinaryView,
12663 notify: *mut BNBinaryDataNotification,
12664 );
12665}
12666unsafe extern "C" {
12667 pub fn BNUnregisterDataNotification(
12668 view: *mut BNBinaryView,
12669 notify: *mut BNBinaryDataNotification,
12670 );
12671}
12672unsafe extern "C" {
12673 pub fn BNRegisterProjectNotification(
12674 project: *mut BNProject,
12675 notify: *mut BNProjectNotification,
12676 );
12677}
12678unsafe extern "C" {
12679 pub fn BNUnregisterProjectNotification(
12680 project: *mut BNProject,
12681 notify: *mut BNProjectNotification,
12682 );
12683}
12684unsafe extern "C" {
12685 pub fn BNCanAssemble(view: *mut BNBinaryView, arch: *mut BNArchitecture) -> bool;
12686}
12687unsafe extern "C" {
12688 pub fn BNIsNeverBranchPatchAvailable(
12689 view: *mut BNBinaryView,
12690 arch: *mut BNArchitecture,
12691 addr: u64,
12692 ) -> bool;
12693}
12694unsafe extern "C" {
12695 pub fn BNIsAlwaysBranchPatchAvailable(
12696 view: *mut BNBinaryView,
12697 arch: *mut BNArchitecture,
12698 addr: u64,
12699 ) -> bool;
12700}
12701unsafe extern "C" {
12702 pub fn BNIsInvertBranchPatchAvailable(
12703 view: *mut BNBinaryView,
12704 arch: *mut BNArchitecture,
12705 addr: u64,
12706 ) -> bool;
12707}
12708unsafe extern "C" {
12709 pub fn BNIsSkipAndReturnZeroPatchAvailable(
12710 view: *mut BNBinaryView,
12711 arch: *mut BNArchitecture,
12712 addr: u64,
12713 ) -> bool;
12714}
12715unsafe extern "C" {
12716 pub fn BNIsSkipAndReturnValuePatchAvailable(
12717 view: *mut BNBinaryView,
12718 arch: *mut BNArchitecture,
12719 addr: u64,
12720 ) -> bool;
12721}
12722unsafe extern "C" {
12723 pub fn BNConvertToNop(view: *mut BNBinaryView, arch: *mut BNArchitecture, addr: u64) -> bool;
12724}
12725unsafe extern "C" {
12726 pub fn BNAlwaysBranch(view: *mut BNBinaryView, arch: *mut BNArchitecture, addr: u64) -> bool;
12727}
12728unsafe extern "C" {
12729 pub fn BNInvertBranch(view: *mut BNBinaryView, arch: *mut BNArchitecture, addr: u64) -> bool;
12730}
12731unsafe extern "C" {
12732 pub fn BNSkipAndReturnValue(
12733 view: *mut BNBinaryView,
12734 arch: *mut BNArchitecture,
12735 addr: u64,
12736 value: u64,
12737 ) -> bool;
12738}
12739unsafe extern "C" {
12740 pub fn BNGetInstructionLength(
12741 view: *mut BNBinaryView,
12742 arch: *mut BNArchitecture,
12743 addr: u64,
12744 ) -> usize;
12745}
12746unsafe extern "C" {
12747 pub fn BNFindNextData(
12748 view: *mut BNBinaryView,
12749 start: u64,
12750 data: *mut BNDataBuffer,
12751 result: *mut u64,
12752 flags: BNFindFlag,
12753 ) -> bool;
12754}
12755unsafe extern "C" {
12756 pub fn BNFindNextText(
12757 view: *mut BNBinaryView,
12758 start: u64,
12759 data: *const ::std::os::raw::c_char,
12760 result: *mut u64,
12761 settings: *mut BNDisassemblySettings,
12762 flags: BNFindFlag,
12763 viewType: BNFunctionViewType,
12764 ) -> bool;
12765}
12766unsafe extern "C" {
12767 pub fn BNFindNextConstant(
12768 view: *mut BNBinaryView,
12769 start: u64,
12770 constant: u64,
12771 result: *mut u64,
12772 settings: *mut BNDisassemblySettings,
12773 viewType: BNFunctionViewType,
12774 ) -> bool;
12775}
12776unsafe extern "C" {
12777 pub fn BNFindNextDataWithProgress(
12778 view: *mut BNBinaryView,
12779 start: u64,
12780 end: u64,
12781 data: *mut BNDataBuffer,
12782 result: *mut u64,
12783 flags: BNFindFlag,
12784 ctxt: *mut ::std::os::raw::c_void,
12785 progress: BNProgressFunction,
12786 ) -> bool;
12787}
12788unsafe extern "C" {
12789 pub fn BNFindNextTextWithProgress(
12790 view: *mut BNBinaryView,
12791 start: u64,
12792 end: u64,
12793 data: *const ::std::os::raw::c_char,
12794 result: *mut u64,
12795 settings: *mut BNDisassemblySettings,
12796 flags: BNFindFlag,
12797 viewType: BNFunctionViewType,
12798 ctxt: *mut ::std::os::raw::c_void,
12799 progress: BNProgressFunction,
12800 ) -> bool;
12801}
12802unsafe extern "C" {
12803 pub fn BNFindNextConstantWithProgress(
12804 view: *mut BNBinaryView,
12805 start: u64,
12806 end: u64,
12807 constant: u64,
12808 result: *mut u64,
12809 settings: *mut BNDisassemblySettings,
12810 viewType: BNFunctionViewType,
12811 ctxt: *mut ::std::os::raw::c_void,
12812 progress: BNProgressFunction,
12813 ) -> bool;
12814}
12815unsafe extern "C" {
12816 pub fn BNFindAllDataWithProgress(
12817 view: *mut BNBinaryView,
12818 start: u64,
12819 end: u64,
12820 data: *mut BNDataBuffer,
12821 flags: BNFindFlag,
12822 ctxt: *mut ::std::os::raw::c_void,
12823 progress: BNProgressFunction,
12824 matchCtxt: *mut ::std::os::raw::c_void,
12825 matchCallback: ::std::option::Option<
12826 unsafe extern "C" fn(
12827 matchCtxt: *mut ::std::os::raw::c_void,
12828 addr: u64,
12829 match_: *mut BNDataBuffer,
12830 ) -> bool,
12831 >,
12832 ) -> bool;
12833}
12834unsafe extern "C" {
12835 pub fn BNFindAllTextWithProgress(
12836 view: *mut BNBinaryView,
12837 start: u64,
12838 end: u64,
12839 data: *const ::std::os::raw::c_char,
12840 settings: *mut BNDisassemblySettings,
12841 flags: BNFindFlag,
12842 viewType: BNFunctionViewType,
12843 ctxt: *mut ::std::os::raw::c_void,
12844 progress: BNProgressFunction,
12845 matchCtxt: *mut ::std::os::raw::c_void,
12846 matchCallback: ::std::option::Option<
12847 unsafe extern "C" fn(
12848 matchCtxt: *mut ::std::os::raw::c_void,
12849 addr: u64,
12850 match_: *const ::std::os::raw::c_char,
12851 line: *mut BNLinearDisassemblyLine,
12852 ) -> bool,
12853 >,
12854 ) -> bool;
12855}
12856unsafe extern "C" {
12857 pub fn BNFindAllConstantWithProgress(
12858 view: *mut BNBinaryView,
12859 start: u64,
12860 end: u64,
12861 constant: u64,
12862 settings: *mut BNDisassemblySettings,
12863 viewType: BNFunctionViewType,
12864 ctxt: *mut ::std::os::raw::c_void,
12865 progress: BNProgressFunction,
12866 matchCtxt: *mut ::std::os::raw::c_void,
12867 matchCallback: ::std::option::Option<
12868 unsafe extern "C" fn(
12869 matchCtxt: *mut ::std::os::raw::c_void,
12870 addr: u64,
12871 line: *mut BNLinearDisassemblyLine,
12872 ) -> bool,
12873 >,
12874 ) -> bool;
12875}
12876unsafe extern "C" {
12877 pub fn BNSearch(
12878 view: *mut BNBinaryView,
12879 query: *const ::std::os::raw::c_char,
12880 context: *mut ::std::os::raw::c_void,
12881 progressCallback: BNProgressFunction,
12882 matchContext: *mut ::std::os::raw::c_void,
12883 callback: ::std::option::Option<
12884 unsafe extern "C" fn(
12885 arg1: *mut ::std::os::raw::c_void,
12886 arg2: u64,
12887 arg3: *mut BNDataBuffer,
12888 ) -> bool,
12889 >,
12890 ) -> bool;
12891}
12892unsafe extern "C" {
12893 pub fn BNDetectSearchMode(query: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
12894}
12895unsafe extern "C" {
12896 pub fn BNPerformSearch(
12897 query: *const ::std::os::raw::c_char,
12898 buffer: *const u8,
12899 size: usize,
12900 callback: BNProgressFunction,
12901 context: *mut ::std::os::raw::c_void,
12902 ) -> bool;
12903}
12904unsafe extern "C" {
12905 pub fn BNBeginBulkAddSegments(view: *mut BNBinaryView);
12906}
12907unsafe extern "C" {
12908 pub fn BNEndBulkAddSegments(view: *mut BNBinaryView);
12909}
12910unsafe extern "C" {
12911 pub fn BNCancelBulkAddSegments(view: *mut BNBinaryView);
12912}
12913unsafe extern "C" {
12914 pub fn BNAddAutoSegment(
12915 view: *mut BNBinaryView,
12916 start: u64,
12917 length: u64,
12918 dataOffset: u64,
12919 dataLength: u64,
12920 flags: u32,
12921 );
12922}
12923unsafe extern "C" {
12924 pub fn BNAddAutoSegments(
12925 view: *mut BNBinaryView,
12926 segmentInfo: *const BNSegmentInfo,
12927 count: usize,
12928 );
12929}
12930unsafe extern "C" {
12931 pub fn BNRemoveAutoSegment(view: *mut BNBinaryView, start: u64, length: u64);
12932}
12933unsafe extern "C" {
12934 pub fn BNAddUserSegment(
12935 view: *mut BNBinaryView,
12936 start: u64,
12937 length: u64,
12938 dataOffset: u64,
12939 dataLength: u64,
12940 flags: u32,
12941 );
12942}
12943unsafe extern "C" {
12944 pub fn BNAddUserSegments(
12945 view: *mut BNBinaryView,
12946 segmentInfo: *const BNSegmentInfo,
12947 count: usize,
12948 );
12949}
12950unsafe extern "C" {
12951 pub fn BNRemoveUserSegment(view: *mut BNBinaryView, start: u64, length: u64);
12952}
12953unsafe extern "C" {
12954 pub fn BNGetSegments(view: *mut BNBinaryView, count: *mut usize) -> *mut *mut BNSegment;
12955}
12956unsafe extern "C" {
12957 pub fn BNFreeSegmentList(segments: *mut *mut BNSegment, count: usize);
12958}
12959unsafe extern "C" {
12960 pub fn BNGetSegmentAt(view: *mut BNBinaryView, addr: u64) -> *mut BNSegment;
12961}
12962unsafe extern "C" {
12963 pub fn BNGetAddressForDataOffset(view: *mut BNBinaryView, offset: u64, addr: *mut u64) -> bool;
12964}
12965unsafe extern "C" {
12966 pub fn BNGetComponentByGuid(
12967 view: *mut BNBinaryView,
12968 guid: *const ::std::os::raw::c_char,
12969 ) -> *mut BNComponent;
12970}
12971unsafe extern "C" {
12972 pub fn BNGetRootComponent(view: *mut BNBinaryView) -> *mut BNComponent;
12973}
12974unsafe extern "C" {
12975 pub fn BNCreateComponent(view: *mut BNBinaryView) -> *mut BNComponent;
12976}
12977unsafe extern "C" {
12978 pub fn BNCreateComponentWithParent(
12979 view: *mut BNBinaryView,
12980 parentGUID: *const ::std::os::raw::c_char,
12981 ) -> *mut BNComponent;
12982}
12983unsafe extern "C" {
12984 pub fn BNCreateComponentWithName(
12985 view: *mut BNBinaryView,
12986 name: *const ::std::os::raw::c_char,
12987 ) -> *mut BNComponent;
12988}
12989unsafe extern "C" {
12990 pub fn BNCreateComponentWithParentAndName(
12991 view: *mut BNBinaryView,
12992 parentGUID: *const ::std::os::raw::c_char,
12993 name: *const ::std::os::raw::c_char,
12994 ) -> *mut BNComponent;
12995}
12996unsafe extern "C" {
12997 pub fn BNGetComponentByPath(
12998 view: *mut BNBinaryView,
12999 path: *const ::std::os::raw::c_char,
13000 ) -> *mut BNComponent;
13001}
13002unsafe extern "C" {
13003 pub fn BNRemoveComponent(view: *mut BNBinaryView, component: *mut BNComponent) -> bool;
13004}
13005unsafe extern "C" {
13006 pub fn BNRemoveComponentByGuid(
13007 view: *mut BNBinaryView,
13008 guid: *const ::std::os::raw::c_char,
13009 ) -> bool;
13010}
13011unsafe extern "C" {
13012 pub fn BNAddAutoSection(
13013 view: *mut BNBinaryView,
13014 name: *const ::std::os::raw::c_char,
13015 start: u64,
13016 length: u64,
13017 semantics: BNSectionSemantics,
13018 type_: *const ::std::os::raw::c_char,
13019 align: u64,
13020 entrySize: u64,
13021 linkedSection: *const ::std::os::raw::c_char,
13022 infoSection: *const ::std::os::raw::c_char,
13023 infoData: u64,
13024 );
13025}
13026unsafe extern "C" {
13027 pub fn BNAddAutoSections(
13028 view: *mut BNBinaryView,
13029 sectionInfo: *const BNSectionInfo,
13030 count: usize,
13031 );
13032}
13033unsafe extern "C" {
13034 pub fn BNRemoveAutoSection(view: *mut BNBinaryView, name: *const ::std::os::raw::c_char);
13035}
13036unsafe extern "C" {
13037 pub fn BNAddUserSection(
13038 view: *mut BNBinaryView,
13039 name: *const ::std::os::raw::c_char,
13040 start: u64,
13041 length: u64,
13042 semantics: BNSectionSemantics,
13043 type_: *const ::std::os::raw::c_char,
13044 align: u64,
13045 entrySize: u64,
13046 linkedSection: *const ::std::os::raw::c_char,
13047 infoSection: *const ::std::os::raw::c_char,
13048 infoData: u64,
13049 );
13050}
13051unsafe extern "C" {
13052 pub fn BNAddUserSections(
13053 view: *mut BNBinaryView,
13054 sectionInfo: *const BNSectionInfo,
13055 count: usize,
13056 );
13057}
13058unsafe extern "C" {
13059 pub fn BNRemoveUserSection(view: *mut BNBinaryView, name: *const ::std::os::raw::c_char);
13060}
13061unsafe extern "C" {
13062 pub fn BNGetSections(view: *mut BNBinaryView, count: *mut usize) -> *mut *mut BNSection;
13063}
13064unsafe extern "C" {
13065 pub fn BNGetSectionsAt(
13066 view: *mut BNBinaryView,
13067 addr: u64,
13068 count: *mut usize,
13069 ) -> *mut *mut BNSection;
13070}
13071unsafe extern "C" {
13072 pub fn BNFreeSectionList(sections: *mut *mut BNSection, count: usize);
13073}
13074unsafe extern "C" {
13075 pub fn BNGetSectionByName(
13076 view: *mut BNBinaryView,
13077 name: *const ::std::os::raw::c_char,
13078 ) -> *mut BNSection;
13079}
13080unsafe extern "C" {
13081 pub fn BNGetUniqueSectionNames(
13082 view: *mut BNBinaryView,
13083 names: *mut *const ::std::os::raw::c_char,
13084 count: usize,
13085 ) -> *mut *mut ::std::os::raw::c_char;
13086}
13087unsafe extern "C" {
13088 pub fn BNGetAllocatedRanges(view: *mut BNBinaryView, count: *mut usize) -> *mut BNAddressRange;
13089}
13090unsafe extern "C" {
13091 pub fn BNGetMappedAddressRanges(
13092 view: *mut BNBinaryView,
13093 count: *mut usize,
13094 ) -> *mut BNAddressRange;
13095}
13096unsafe extern "C" {
13097 pub fn BNGetBackedAddressRanges(
13098 view: *mut BNBinaryView,
13099 count: *mut usize,
13100 ) -> *mut BNAddressRange;
13101}
13102unsafe extern "C" {
13103 pub fn BNFreeAddressRanges(ranges: *mut BNAddressRange);
13104}
13105unsafe extern "C" {
13106 pub fn BNGetNameSpaces(view: *mut BNBinaryView, count: *mut usize) -> *mut BNNameSpace;
13107}
13108unsafe extern "C" {
13109 pub fn BNFreeNameSpaceList(nameSpace: *mut BNNameSpace, count: usize);
13110}
13111unsafe extern "C" {
13112 pub fn BNGetExternalNameSpace() -> BNNameSpace;
13113}
13114unsafe extern "C" {
13115 pub fn BNGetInternalNameSpace() -> BNNameSpace;
13116}
13117unsafe extern "C" {
13118 pub fn BNFreeNameSpace(name: *mut BNNameSpace);
13119}
13120unsafe extern "C" {
13121 pub fn BNGetGlobalPointerValue(view: *mut BNBinaryView) -> BNRegisterValueWithConfidence;
13122}
13123unsafe extern "C" {
13124 pub fn BNUserGlobalPointerValueSet(view: *mut BNBinaryView) -> bool;
13125}
13126unsafe extern "C" {
13127 pub fn BNClearUserGlobalPointerValue(view: *mut BNBinaryView);
13128}
13129unsafe extern "C" {
13130 pub fn BNSetUserGlobalPointerValue(
13131 view: *mut BNBinaryView,
13132 value: BNRegisterValueWithConfidence,
13133 );
13134}
13135unsafe extern "C" {
13136 pub fn BNStringifyUnicodeData(
13137 data: *mut BNBinaryView,
13138 arch: *mut BNArchitecture,
13139 buffer: *const BNDataBuffer,
13140 nullTerminates: bool,
13141 allowShortStrings: bool,
13142 string: *mut *mut ::std::os::raw::c_char,
13143 type_: *mut BNStringType,
13144 ) -> bool;
13145}
13146unsafe extern "C" {
13147 #[doc = " Raw binary data view"]
13148 pub fn BNCreateBinaryDataView(file: *mut BNFileMetadata) -> *mut BNBinaryView;
13149}
13150unsafe extern "C" {
13151 pub fn BNCreateBinaryDataViewFromBuffer(
13152 file: *mut BNFileMetadata,
13153 buf: *mut BNDataBuffer,
13154 ) -> *mut BNBinaryView;
13155}
13156unsafe extern "C" {
13157 pub fn BNCreateBinaryDataViewFromData(
13158 file: *mut BNFileMetadata,
13159 data: *const ::std::os::raw::c_void,
13160 len: usize,
13161 ) -> *mut BNBinaryView;
13162}
13163unsafe extern "C" {
13164 pub fn BNCreateBinaryDataViewFromFilename(
13165 file: *mut BNFileMetadata,
13166 filename: *const ::std::os::raw::c_char,
13167 ) -> *mut BNBinaryView;
13168}
13169unsafe extern "C" {
13170 pub fn BNCreateBinaryDataViewFromFile(
13171 file: *mut BNFileMetadata,
13172 accessor: *mut BNFileAccessor,
13173 ) -> *mut BNBinaryView;
13174}
13175unsafe extern "C" {
13176 #[doc = " Creation of new types of binary views"]
13177 pub fn BNCreateCustomBinaryView(
13178 name: *const ::std::os::raw::c_char,
13179 file: *mut BNFileMetadata,
13180 parent: *mut BNBinaryView,
13181 view: *mut BNCustomBinaryView,
13182 ) -> *mut BNBinaryView;
13183}
13184unsafe extern "C" {
13185 pub fn BNGetBinaryViewTypeByName(name: *const ::std::os::raw::c_char) -> *mut BNBinaryViewType;
13186}
13187unsafe extern "C" {
13188 pub fn BNGetBinaryViewTypes(count: *mut usize) -> *mut *mut BNBinaryViewType;
13189}
13190unsafe extern "C" {
13191 pub fn BNGetBinaryViewTypesForData(
13192 data: *mut BNBinaryView,
13193 count: *mut usize,
13194 ) -> *mut *mut BNBinaryViewType;
13195}
13196unsafe extern "C" {
13197 pub fn BNFreeBinaryViewTypeList(types: *mut *mut BNBinaryViewType);
13198}
13199unsafe extern "C" {
13200 pub fn BNGetBinaryViewTypeName(type_: *mut BNBinaryViewType) -> *mut ::std::os::raw::c_char;
13201}
13202unsafe extern "C" {
13203 pub fn BNGetBinaryViewTypeLongName(type_: *mut BNBinaryViewType)
13204 -> *mut ::std::os::raw::c_char;
13205}
13206unsafe extern "C" {
13207 pub fn BNIsBinaryViewTypeDeprecated(type_: *mut BNBinaryViewType) -> bool;
13208}
13209unsafe extern "C" {
13210 pub fn BNCreateBinaryViewOfType(
13211 type_: *mut BNBinaryViewType,
13212 data: *mut BNBinaryView,
13213 ) -> *mut BNBinaryView;
13214}
13215unsafe extern "C" {
13216 pub fn BNParseBinaryViewOfType(
13217 type_: *mut BNBinaryViewType,
13218 data: *mut BNBinaryView,
13219 ) -> *mut BNBinaryView;
13220}
13221unsafe extern "C" {
13222 pub fn BNIsBinaryViewTypeValidForData(
13223 type_: *mut BNBinaryViewType,
13224 data: *mut BNBinaryView,
13225 ) -> bool;
13226}
13227unsafe extern "C" {
13228 pub fn BNIsBinaryViewTypeForceLoadable(type_: *mut BNBinaryViewType) -> bool;
13229}
13230unsafe extern "C" {
13231 pub fn BNBinaryViewTypeHasNoInitialContent(type_: *mut BNBinaryViewType) -> bool;
13232}
13233unsafe extern "C" {
13234 pub fn BNGetBinaryViewDefaultLoadSettingsForData(
13235 type_: *mut BNBinaryViewType,
13236 data: *mut BNBinaryView,
13237 ) -> *mut BNSettings;
13238}
13239unsafe extern "C" {
13240 pub fn BNGetBinaryViewLoadSettingsForData(
13241 type_: *mut BNBinaryViewType,
13242 data: *mut BNBinaryView,
13243 ) -> *mut BNSettings;
13244}
13245unsafe extern "C" {
13246 pub fn BNRegisterBinaryViewType(
13247 name: *const ::std::os::raw::c_char,
13248 longName: *const ::std::os::raw::c_char,
13249 type_: *mut BNCustomBinaryViewType,
13250 ) -> *mut BNBinaryViewType;
13251}
13252unsafe extern "C" {
13253 pub fn BNRegisterArchitectureForViewType(
13254 type_: *mut BNBinaryViewType,
13255 id: u32,
13256 endian: BNEndianness,
13257 arch: *mut BNArchitecture,
13258 );
13259}
13260unsafe extern "C" {
13261 pub fn BNGetArchitectureForViewType(
13262 type_: *mut BNBinaryViewType,
13263 id: u32,
13264 endian: BNEndianness,
13265 ) -> *mut BNArchitecture;
13266}
13267unsafe extern "C" {
13268 pub fn BNRegisterPlatformForViewType(
13269 type_: *mut BNBinaryViewType,
13270 id: u32,
13271 arch: *mut BNArchitecture,
13272 platform: *mut BNPlatform,
13273 );
13274}
13275unsafe extern "C" {
13276 pub fn BNGetPlatformForViewType(
13277 type_: *mut BNBinaryViewType,
13278 id: u32,
13279 arch: *mut BNArchitecture,
13280 ) -> *mut BNPlatform;
13281}
13282unsafe extern "C" {
13283 pub fn BNRegisterDefaultPlatformForViewType(
13284 type_: *mut BNBinaryViewType,
13285 arch: *mut BNArchitecture,
13286 platform: *mut BNPlatform,
13287 );
13288}
13289unsafe extern "C" {
13290 #[doc = " Expanded identification of Platform for BinaryViewTypes. Supersedes BNRegisterArchitectureForViewType\n and BNRegisterPlatformForViewType, as these have certain edge cases (overloaded elf families, for example)\n that can't be represented.\n\n The callback returns a Platform object or null (failure), and most recently added callbacks are called first\n to allow plugins to override any default behaviors. When a callback returns a platform, architecture will be\n derived from the identified platform.\n\n The BinaryView pointer is the *parent* view (usually 'Raw') that the BinaryView is being created for. This\n means that generally speaking the callbacks need to be aware of the underlying file format, however the\n BinaryView implementation may have created datavars in the 'Raw' view by the time the callback is invoked.\n Behavior regarding when this callback is invoked and what has been made available in the BinaryView passed as an\n argument to the callback is up to the discretion of the BinaryView implementation.\n\n The 'id' ind 'endian' arguments are used as a filter to determine which registered Platform recognizer callbacks\n are invoked.\n\n Support for this API tentatively requires explicit support in the BinaryView implementation."]
13291 pub fn BNRegisterPlatformRecognizerForViewType(
13292 type_: *mut BNBinaryViewType,
13293 id: u64,
13294 endian: BNEndianness,
13295 callback: ::std::option::Option<
13296 unsafe extern "C" fn(
13297 ctx: *mut ::std::os::raw::c_void,
13298 view: *mut BNBinaryView,
13299 metadata: *mut BNMetadata,
13300 ) -> *mut BNPlatform,
13301 >,
13302 ctx: *mut ::std::os::raw::c_void,
13303 );
13304}
13305unsafe extern "C" {
13306 #[doc = " BinaryView* passed in here should be the parent view (not the partially constructed object!), and this function\n should be called from the BNCustomBinaryView::init implementation.\n\n 'id' and 'endianness' are used to determine which registered callbacks are actually invoked to eliminate some\n common sources of boilerplate that all callbacks would have to implement otherwise. If these aren't applicable to\n your binaryviewtype just use constants here and document them so that people registering Platform recognizers for\n your view type know what to use."]
13307 pub fn BNRecognizePlatformForViewType(
13308 type_: *mut BNBinaryViewType,
13309 id: u64,
13310 endian: BNEndianness,
13311 view: *mut BNBinaryView,
13312 metadata: *mut BNMetadata,
13313 ) -> *mut BNPlatform;
13314}
13315unsafe extern "C" {
13316 pub fn BNRegisterBinaryViewEvent(
13317 type_: BNBinaryViewEventType,
13318 callback: ::std::option::Option<
13319 unsafe extern "C" fn(ctx: *mut ::std::os::raw::c_void, view: *mut BNBinaryView),
13320 >,
13321 ctx: *mut ::std::os::raw::c_void,
13322 );
13323}
13324unsafe extern "C" {
13325 #[doc = " Stream reader object"]
13326 pub fn BNCreateBinaryReader(view: *mut BNBinaryView) -> *mut BNBinaryReader;
13327}
13328unsafe extern "C" {
13329 pub fn BNFreeBinaryReader(stream: *mut BNBinaryReader);
13330}
13331unsafe extern "C" {
13332 pub fn BNGetBinaryReaderEndianness(stream: *mut BNBinaryReader) -> BNEndianness;
13333}
13334unsafe extern "C" {
13335 pub fn BNSetBinaryReaderEndianness(stream: *mut BNBinaryReader, endian: BNEndianness);
13336}
13337unsafe extern "C" {
13338 pub fn BNReadData(
13339 stream: *mut BNBinaryReader,
13340 dest: *mut ::std::os::raw::c_void,
13341 len: usize,
13342 ) -> bool;
13343}
13344unsafe extern "C" {
13345 pub fn BNRead8(stream: *mut BNBinaryReader, result: *mut u8) -> bool;
13346}
13347unsafe extern "C" {
13348 pub fn BNRead16(stream: *mut BNBinaryReader, result: *mut u16) -> bool;
13349}
13350unsafe extern "C" {
13351 pub fn BNRead32(stream: *mut BNBinaryReader, result: *mut u32) -> bool;
13352}
13353unsafe extern "C" {
13354 pub fn BNRead64(stream: *mut BNBinaryReader, result: *mut u64) -> bool;
13355}
13356unsafe extern "C" {
13357 pub fn BNReadLE16(stream: *mut BNBinaryReader, result: *mut u16) -> bool;
13358}
13359unsafe extern "C" {
13360 pub fn BNReadLE32(stream: *mut BNBinaryReader, result: *mut u32) -> bool;
13361}
13362unsafe extern "C" {
13363 pub fn BNReadLE64(stream: *mut BNBinaryReader, result: *mut u64) -> bool;
13364}
13365unsafe extern "C" {
13366 pub fn BNReadBE16(stream: *mut BNBinaryReader, result: *mut u16) -> bool;
13367}
13368unsafe extern "C" {
13369 pub fn BNReadBE32(stream: *mut BNBinaryReader, result: *mut u32) -> bool;
13370}
13371unsafe extern "C" {
13372 pub fn BNReadBE64(stream: *mut BNBinaryReader, result: *mut u64) -> bool;
13373}
13374unsafe extern "C" {
13375 pub fn BNReadPointer(
13376 view: *mut BNBinaryView,
13377 stream: *mut BNBinaryReader,
13378 result: *mut u64,
13379 ) -> bool;
13380}
13381unsafe extern "C" {
13382 pub fn BNGetReaderPosition(stream: *mut BNBinaryReader) -> u64;
13383}
13384unsafe extern "C" {
13385 pub fn BNSeekBinaryReader(stream: *mut BNBinaryReader, offset: u64);
13386}
13387unsafe extern "C" {
13388 pub fn BNSeekBinaryReaderRelative(stream: *mut BNBinaryReader, offset: i64);
13389}
13390unsafe extern "C" {
13391 pub fn BNGetBinaryReaderVirtualBase(stream: *mut BNBinaryReader) -> u64;
13392}
13393unsafe extern "C" {
13394 pub fn BNSetBinaryReaderVirtualBase(stream: *mut BNBinaryReader, base: u64);
13395}
13396unsafe extern "C" {
13397 pub fn BNIsEndOfFile(stream: *mut BNBinaryReader) -> bool;
13398}
13399unsafe extern "C" {
13400 #[doc = " Stream writer object"]
13401 pub fn BNCreateBinaryWriter(view: *mut BNBinaryView) -> *mut BNBinaryWriter;
13402}
13403unsafe extern "C" {
13404 pub fn BNFreeBinaryWriter(stream: *mut BNBinaryWriter);
13405}
13406unsafe extern "C" {
13407 pub fn BNGetBinaryWriterEndianness(stream: *mut BNBinaryWriter) -> BNEndianness;
13408}
13409unsafe extern "C" {
13410 pub fn BNSetBinaryWriterEndianness(stream: *mut BNBinaryWriter, endian: BNEndianness);
13411}
13412unsafe extern "C" {
13413 pub fn BNWriteData(
13414 stream: *mut BNBinaryWriter,
13415 src: *const ::std::os::raw::c_void,
13416 len: usize,
13417 ) -> bool;
13418}
13419unsafe extern "C" {
13420 pub fn BNWrite8(stream: *mut BNBinaryWriter, val: u8) -> bool;
13421}
13422unsafe extern "C" {
13423 pub fn BNWrite16(stream: *mut BNBinaryWriter, val: u16) -> bool;
13424}
13425unsafe extern "C" {
13426 pub fn BNWrite32(stream: *mut BNBinaryWriter, val: u32) -> bool;
13427}
13428unsafe extern "C" {
13429 pub fn BNWrite64(stream: *mut BNBinaryWriter, val: u64) -> bool;
13430}
13431unsafe extern "C" {
13432 pub fn BNWriteLE16(stream: *mut BNBinaryWriter, val: u16) -> bool;
13433}
13434unsafe extern "C" {
13435 pub fn BNWriteLE32(stream: *mut BNBinaryWriter, val: u32) -> bool;
13436}
13437unsafe extern "C" {
13438 pub fn BNWriteLE64(stream: *mut BNBinaryWriter, val: u64) -> bool;
13439}
13440unsafe extern "C" {
13441 pub fn BNWriteBE16(stream: *mut BNBinaryWriter, val: u16) -> bool;
13442}
13443unsafe extern "C" {
13444 pub fn BNWriteBE32(stream: *mut BNBinaryWriter, val: u32) -> bool;
13445}
13446unsafe extern "C" {
13447 pub fn BNWriteBE64(stream: *mut BNBinaryWriter, val: u64) -> bool;
13448}
13449unsafe extern "C" {
13450 pub fn BNGetWriterPosition(stream: *mut BNBinaryWriter) -> u64;
13451}
13452unsafe extern "C" {
13453 pub fn BNSeekBinaryWriter(stream: *mut BNBinaryWriter, offset: u64);
13454}
13455unsafe extern "C" {
13456 pub fn BNSeekBinaryWriterRelative(stream: *mut BNBinaryWriter, offset: i64);
13457}
13458unsafe extern "C" {
13459 #[doc = " Transforms"]
13460 pub fn BNGetTransformByName(name: *const ::std::os::raw::c_char) -> *mut BNTransform;
13461}
13462unsafe extern "C" {
13463 pub fn BNGetTransformTypeList(count: *mut usize) -> *mut *mut BNTransform;
13464}
13465unsafe extern "C" {
13466 pub fn BNFreeTransformTypeList(xforms: *mut *mut BNTransform);
13467}
13468unsafe extern "C" {
13469 pub fn BNRegisterTransformType(
13470 type_: BNTransformType,
13471 name: *const ::std::os::raw::c_char,
13472 longName: *const ::std::os::raw::c_char,
13473 group: *const ::std::os::raw::c_char,
13474 xform: *mut BNCustomTransform,
13475 ) -> *mut BNTransform;
13476}
13477unsafe extern "C" {
13478 pub fn BNRegisterTransformTypeWithCapabilities(
13479 type_: BNTransformType,
13480 capabilities: u32,
13481 name: *const ::std::os::raw::c_char,
13482 longName: *const ::std::os::raw::c_char,
13483 group: *const ::std::os::raw::c_char,
13484 xform: *mut BNCustomTransform,
13485 ) -> *mut BNTransform;
13486}
13487unsafe extern "C" {
13488 pub fn BNGetTransformType(xform: *mut BNTransform) -> BNTransformType;
13489}
13490unsafe extern "C" {
13491 pub fn BNGetTransformCapabilities(xform: *mut BNTransform) -> u32;
13492}
13493unsafe extern "C" {
13494 pub fn BNTransformSupportsDetection(xform: *mut BNTransform) -> bool;
13495}
13496unsafe extern "C" {
13497 pub fn BNTransformSupportsContext(xform: *mut BNTransform) -> bool;
13498}
13499unsafe extern "C" {
13500 pub fn BNGetTransformName(xform: *mut BNTransform) -> *mut ::std::os::raw::c_char;
13501}
13502unsafe extern "C" {
13503 pub fn BNGetTransformLongName(xform: *mut BNTransform) -> *mut ::std::os::raw::c_char;
13504}
13505unsafe extern "C" {
13506 pub fn BNGetTransformGroup(xform: *mut BNTransform) -> *mut ::std::os::raw::c_char;
13507}
13508unsafe extern "C" {
13509 pub fn BNGetTransformParameterList(
13510 xform: *mut BNTransform,
13511 count: *mut usize,
13512 ) -> *mut BNTransformParameterInfo;
13513}
13514unsafe extern "C" {
13515 pub fn BNFreeTransformParameterList(params: *mut BNTransformParameterInfo, count: usize);
13516}
13517unsafe extern "C" {
13518 pub fn BNDecode(
13519 xform: *mut BNTransform,
13520 input: *mut BNDataBuffer,
13521 output: *mut BNDataBuffer,
13522 params: *mut BNTransformParameter,
13523 paramCount: usize,
13524 ) -> bool;
13525}
13526unsafe extern "C" {
13527 pub fn BNEncode(
13528 xform: *mut BNTransform,
13529 input: *mut BNDataBuffer,
13530 output: *mut BNDataBuffer,
13531 params: *mut BNTransformParameter,
13532 paramCount: usize,
13533 ) -> bool;
13534}
13535unsafe extern "C" {
13536 pub fn BNDecodeWithContext(
13537 xform: *mut BNTransform,
13538 context: *mut BNTransformContext,
13539 params: *mut BNTransformParameter,
13540 paramCount: usize,
13541 ) -> bool;
13542}
13543unsafe extern "C" {
13544 pub fn BNCanDecode(xform: *mut BNTransform, input: *mut BNBinaryView) -> bool;
13545}
13546unsafe extern "C" {
13547 #[doc = " Transform Context"]
13548 pub fn BNNewTransformContextReference(
13549 context: *mut BNTransformContext,
13550 ) -> *mut BNTransformContext;
13551}
13552unsafe extern "C" {
13553 pub fn BNFreeTransformContext(context: *mut BNTransformContext);
13554}
13555unsafe extern "C" {
13556 pub fn BNTransformContextGetInput(context: *mut BNTransformContext) -> *mut BNBinaryView;
13557}
13558unsafe extern "C" {
13559 pub fn BNTransformContextGetFileName(
13560 context: *mut BNTransformContext,
13561 ) -> *mut ::std::os::raw::c_char;
13562}
13563unsafe extern "C" {
13564 pub fn BNTransformContextGetAvailableTransforms(
13565 context: *mut BNTransformContext,
13566 count: *mut usize,
13567 ) -> *mut *mut ::std::os::raw::c_char;
13568}
13569unsafe extern "C" {
13570 pub fn BNTransformContextGetTransformName(
13571 context: *mut BNTransformContext,
13572 ) -> *mut ::std::os::raw::c_char;
13573}
13574unsafe extern "C" {
13575 pub fn BNTransformContextSetTransformName(
13576 context: *mut BNTransformContext,
13577 transformName: *const ::std::os::raw::c_char,
13578 );
13579}
13580unsafe extern "C" {
13581 pub fn BNTransformContextSetTransformParameters(
13582 context: *mut BNTransformContext,
13583 params: *mut BNTransformParameter,
13584 paramCount: usize,
13585 );
13586}
13587unsafe extern "C" {
13588 pub fn BNTransformContextSetTransformParameter(
13589 context: *mut BNTransformContext,
13590 name: *const ::std::os::raw::c_char,
13591 data: *mut BNDataBuffer,
13592 );
13593}
13594unsafe extern "C" {
13595 pub fn BNTransformContextHasTransformParameter(
13596 context: *mut BNTransformContext,
13597 name: *const ::std::os::raw::c_char,
13598 ) -> bool;
13599}
13600unsafe extern "C" {
13601 pub fn BNTransformContextClearTransformParameter(
13602 context: *mut BNTransformContext,
13603 name: *const ::std::os::raw::c_char,
13604 );
13605}
13606unsafe extern "C" {
13607 pub fn BNTransformContextGetExtractionMessage(
13608 context: *mut BNTransformContext,
13609 ) -> *mut ::std::os::raw::c_char;
13610}
13611unsafe extern "C" {
13612 pub fn BNTransformContextGetExtractionResult(
13613 context: *mut BNTransformContext,
13614 ) -> BNTransformResult;
13615}
13616unsafe extern "C" {
13617 pub fn BNTransformContextGetTransformResult(
13618 context: *mut BNTransformContext,
13619 ) -> BNTransformResult;
13620}
13621unsafe extern "C" {
13622 pub fn BNTransformContextSetTransformResult(
13623 context: *mut BNTransformContext,
13624 result: BNTransformResult,
13625 );
13626}
13627unsafe extern "C" {
13628 pub fn BNTransformContextGetMetadata(context: *mut BNTransformContext) -> *mut BNMetadata;
13629}
13630unsafe extern "C" {
13631 pub fn BNTransformContextGetParent(context: *mut BNTransformContext)
13632 -> *mut BNTransformContext;
13633}
13634unsafe extern "C" {
13635 pub fn BNTransformContextGetChildCount(context: *mut BNTransformContext) -> usize;
13636}
13637unsafe extern "C" {
13638 pub fn BNTransformContextGetChildren(
13639 context: *mut BNTransformContext,
13640 count: *mut usize,
13641 ) -> *mut *mut BNTransformContext;
13642}
13643unsafe extern "C" {
13644 pub fn BNFreeTransformContextList(contexts: *mut *mut BNTransformContext, count: usize);
13645}
13646unsafe extern "C" {
13647 pub fn BNTransformContextGetChild(
13648 context: *mut BNTransformContext,
13649 filename: *const ::std::os::raw::c_char,
13650 ) -> *mut BNTransformContext;
13651}
13652unsafe extern "C" {
13653 pub fn BNTransformContextSetChild(
13654 context: *mut BNTransformContext,
13655 data: *mut BNDataBuffer,
13656 filename: *const ::std::os::raw::c_char,
13657 result: BNTransformResult,
13658 message: *const ::std::os::raw::c_char,
13659 filenameIsDescriptor: bool,
13660 ) -> *mut BNTransformContext;
13661}
13662unsafe extern "C" {
13663 pub fn BNTransformContextIsLeaf(context: *mut BNTransformContext) -> bool;
13664}
13665unsafe extern "C" {
13666 pub fn BNTransformContextIsRoot(context: *mut BNTransformContext) -> bool;
13667}
13668unsafe extern "C" {
13669 pub fn BNTransformContextGetAvailableFiles(
13670 context: *mut BNTransformContext,
13671 count: *mut usize,
13672 ) -> *mut *mut ::std::os::raw::c_char;
13673}
13674unsafe extern "C" {
13675 pub fn BNTransformContextSetAvailableFiles(
13676 context: *mut BNTransformContext,
13677 files: *mut *const ::std::os::raw::c_char,
13678 count: usize,
13679 );
13680}
13681unsafe extern "C" {
13682 pub fn BNTransformContextHasAvailableFiles(context: *mut BNTransformContext) -> bool;
13683}
13684unsafe extern "C" {
13685 pub fn BNTransformContextGetRequestedFiles(
13686 context: *mut BNTransformContext,
13687 count: *mut usize,
13688 ) -> *mut *mut ::std::os::raw::c_char;
13689}
13690unsafe extern "C" {
13691 pub fn BNTransformContextSetRequestedFiles(
13692 context: *mut BNTransformContext,
13693 files: *mut *const ::std::os::raw::c_char,
13694 count: usize,
13695 );
13696}
13697unsafe extern "C" {
13698 pub fn BNTransformContextHasRequestedFiles(context: *mut BNTransformContext) -> bool;
13699}
13700unsafe extern "C" {
13701 pub fn BNTransformContextIsDatabase(context: *mut BNTransformContext) -> bool;
13702}
13703unsafe extern "C" {
13704 pub fn BNTransformContextIsInteractive(context: *mut BNTransformContext) -> bool;
13705}
13706unsafe extern "C" {
13707 pub fn BNTransformContextGetSettings(context: *mut BNTransformContext) -> *mut BNSettings;
13708}
13709unsafe extern "C" {
13710 #[doc = " Transform Session"]
13711 pub fn BNCreateTransformSession(
13712 filename: *const ::std::os::raw::c_char,
13713 options: *const ::std::os::raw::c_char,
13714 ) -> *mut BNTransformSession;
13715}
13716unsafe extern "C" {
13717 pub fn BNCreateTransformSessionWithMode(
13718 filename: *const ::std::os::raw::c_char,
13719 mode: BNTransformSessionMode,
13720 options: *const ::std::os::raw::c_char,
13721 ) -> *mut BNTransformSession;
13722}
13723unsafe extern "C" {
13724 pub fn BNCreateTransformSessionFromBinaryView(
13725 initialView: *mut BNBinaryView,
13726 options: *const ::std::os::raw::c_char,
13727 ) -> *mut BNTransformSession;
13728}
13729unsafe extern "C" {
13730 pub fn BNCreateTransformSessionFromBinaryViewWithMode(
13731 initialView: *mut BNBinaryView,
13732 mode: BNTransformSessionMode,
13733 options: *const ::std::os::raw::c_char,
13734 ) -> *mut BNTransformSession;
13735}
13736unsafe extern "C" {
13737 pub fn BNCreateTransformSessionFromTransformContextWithMode(
13738 context: *mut BNTransformContext,
13739 mode: BNTransformSessionMode,
13740 options: *const ::std::os::raw::c_char,
13741 ) -> *mut BNTransformSession;
13742}
13743unsafe extern "C" {
13744 pub fn BNNewTransformSessionReference(
13745 session: *mut BNTransformSession,
13746 ) -> *mut BNTransformSession;
13747}
13748unsafe extern "C" {
13749 pub fn BNFreeTransformSession(session: *mut BNTransformSession);
13750}
13751unsafe extern "C" {
13752 pub fn BNTransformSessionSetInteractive(session: *mut BNTransformSession, interactive: bool);
13753}
13754unsafe extern "C" {
13755 pub fn BNTransformSessionGetCurrentView(session: *mut BNTransformSession) -> *mut BNBinaryView;
13756}
13757unsafe extern "C" {
13758 pub fn BNTransformSessionGetRootContext(
13759 session: *mut BNTransformSession,
13760 ) -> *mut BNTransformContext;
13761}
13762unsafe extern "C" {
13763 pub fn BNTransformSessionGetCurrentContext(
13764 session: *mut BNTransformSession,
13765 ) -> *mut BNTransformContext;
13766}
13767unsafe extern "C" {
13768 pub fn BNTransformSessionProcessFrom(
13769 session: *mut BNTransformSession,
13770 context: *mut BNTransformContext,
13771 ) -> bool;
13772}
13773unsafe extern "C" {
13774 pub fn BNTransformSessionProcess(session: *mut BNTransformSession) -> bool;
13775}
13776unsafe extern "C" {
13777 pub fn BNTransformSessionHasAnyStages(session: *mut BNTransformSession) -> bool;
13778}
13779unsafe extern "C" {
13780 pub fn BNTransformSessionHasSinglePath(session: *mut BNTransformSession) -> bool;
13781}
13782unsafe extern "C" {
13783 pub fn BNTransformSessionGetSelectedContexts(
13784 session: *mut BNTransformSession,
13785 count: *mut usize,
13786 ) -> *mut *mut BNTransformContext;
13787}
13788unsafe extern "C" {
13789 pub fn BNTransformSessionSetSelectedContexts(
13790 session: *mut BNTransformSession,
13791 contexts: *mut *mut BNTransformContext,
13792 count: usize,
13793 );
13794}
13795unsafe extern "C" {
13796 #[doc = " Architectures"]
13797 pub fn BNGetArchitectureByName(name: *const ::std::os::raw::c_char) -> *mut BNArchitecture;
13798}
13799unsafe extern "C" {
13800 pub fn BNGetArchitectureList(count: *mut usize) -> *mut *mut BNArchitecture;
13801}
13802unsafe extern "C" {
13803 pub fn BNFreeArchitectureList(archs: *mut *mut BNArchitecture);
13804}
13805unsafe extern "C" {
13806 pub fn BNRegisterArchitecture(
13807 name: *const ::std::os::raw::c_char,
13808 arch: *mut BNCustomArchitecture,
13809 ) -> *mut BNArchitecture;
13810}
13811unsafe extern "C" {
13812 pub fn BNRegisterArchitectureExtension(
13813 name: *const ::std::os::raw::c_char,
13814 base: *mut BNArchitecture,
13815 arch: *mut BNCustomArchitecture,
13816 ) -> *mut BNArchitecture;
13817}
13818unsafe extern "C" {
13819 pub fn BNAddArchitectureRedirection(
13820 arch: *mut BNArchitecture,
13821 from: *mut BNArchitecture,
13822 to: *mut BNArchitecture,
13823 );
13824}
13825unsafe extern "C" {
13826 pub fn BNRegisterArchitectureHook(
13827 base: *mut BNArchitecture,
13828 arch: *mut BNCustomArchitecture,
13829 ) -> *mut BNArchitecture;
13830}
13831unsafe extern "C" {
13832 pub fn BNFinalizeArchitectureHook(base: *mut BNArchitecture);
13833}
13834unsafe extern "C" {
13835 pub fn BNGetNativeTypeParserArchitecture() -> *mut BNArchitecture;
13836}
13837unsafe extern "C" {
13838 pub fn BNGetArchitectureName(arch: *mut BNArchitecture) -> *mut ::std::os::raw::c_char;
13839}
13840unsafe extern "C" {
13841 pub fn BNGetArchitectureEndianness(arch: *mut BNArchitecture) -> BNEndianness;
13842}
13843unsafe extern "C" {
13844 pub fn BNGetArchitectureAddressSize(arch: *mut BNArchitecture) -> usize;
13845}
13846unsafe extern "C" {
13847 pub fn BNGetArchitectureDefaultIntegerSize(arch: *mut BNArchitecture) -> usize;
13848}
13849unsafe extern "C" {
13850 pub fn BNGetArchitectureInstructionAlignment(arch: *mut BNArchitecture) -> usize;
13851}
13852unsafe extern "C" {
13853 pub fn BNGetArchitectureMaxInstructionLength(arch: *mut BNArchitecture) -> usize;
13854}
13855unsafe extern "C" {
13856 pub fn BNGetArchitectureOpcodeDisplayLength(arch: *mut BNArchitecture) -> usize;
13857}
13858unsafe extern "C" {
13859 pub fn BNGetAssociatedArchitectureByAddress(
13860 arch: *mut BNArchitecture,
13861 addr: *mut u64,
13862 ) -> *mut BNArchitecture;
13863}
13864unsafe extern "C" {
13865 pub fn BNGetInstructionInfo(
13866 arch: *mut BNArchitecture,
13867 data: *const u8,
13868 addr: u64,
13869 maxLen: usize,
13870 result: *mut BNInstructionInfo,
13871 ) -> bool;
13872}
13873unsafe extern "C" {
13874 pub fn BNGetInstructionText(
13875 arch: *mut BNArchitecture,
13876 data: *const u8,
13877 addr: u64,
13878 len: *mut usize,
13879 result: *mut *mut BNInstructionTextToken,
13880 count: *mut usize,
13881 ) -> bool;
13882}
13883unsafe extern "C" {
13884 pub fn BNGetInstructionTextWithContext(
13885 arch: *mut BNArchitecture,
13886 data: *const u8,
13887 addr: u64,
13888 len: *mut usize,
13889 context: *mut ::std::os::raw::c_void,
13890 result: *mut *mut BNInstructionTextToken,
13891 count: *mut usize,
13892 ) -> bool;
13893}
13894unsafe extern "C" {
13895 pub fn BNGetInstructionLowLevelIL(
13896 arch: *mut BNArchitecture,
13897 data: *const u8,
13898 addr: u64,
13899 len: *mut usize,
13900 il: *mut BNLowLevelILFunction,
13901 ) -> bool;
13902}
13903unsafe extern "C" {
13904 pub fn BNFreeInstructionText(tokens: *mut BNInstructionTextToken, count: usize);
13905}
13906unsafe extern "C" {
13907 pub fn BNArchitectureSetDefaultAnalyzeBasicBlocksCallback(
13908 callback: *mut ::std::os::raw::c_void,
13909 ) -> bool;
13910}
13911unsafe extern "C" {
13912 pub fn BNArchitectureDefaultAnalyzeBasicBlocks(
13913 function: *mut BNFunction,
13914 context: *mut BNBasicBlockAnalysisContext,
13915 );
13916}
13917unsafe extern "C" {
13918 pub fn BNArchitectureAnalyzeBasicBlocks(
13919 arch: *mut BNArchitecture,
13920 function: *mut BNFunction,
13921 context: *mut BNBasicBlockAnalysisContext,
13922 );
13923}
13924unsafe extern "C" {
13925 pub fn BNArchitectureSetDefaultLiftFunctionCallback(
13926 callback: *mut ::std::os::raw::c_void,
13927 ) -> bool;
13928}
13929unsafe extern "C" {
13930 pub fn BNArchitectureDefaultLiftFunction(
13931 function: *mut BNLowLevelILFunction,
13932 context: *mut BNFunctionLifterContext,
13933 ) -> bool;
13934}
13935unsafe extern "C" {
13936 pub fn BNArchitectureLiftFunction(
13937 arch: *mut BNArchitecture,
13938 function: *mut BNLowLevelILFunction,
13939 context: *mut BNFunctionLifterContext,
13940 ) -> bool;
13941}
13942unsafe extern "C" {
13943 pub fn BNArchitectureFreeFunctionArchContext(
13944 arch: *mut BNArchitecture,
13945 context: *mut ::std::os::raw::c_void,
13946 );
13947}
13948unsafe extern "C" {
13949 pub fn BNFreeInstructionTextLines(lines: *mut BNInstructionTextLine, count: usize);
13950}
13951unsafe extern "C" {
13952 pub fn BNGetArchitectureRegisterName(
13953 arch: *mut BNArchitecture,
13954 reg: u32,
13955 ) -> *mut ::std::os::raw::c_char;
13956}
13957unsafe extern "C" {
13958 pub fn BNGetArchitectureFlagName(
13959 arch: *mut BNArchitecture,
13960 flag: u32,
13961 ) -> *mut ::std::os::raw::c_char;
13962}
13963unsafe extern "C" {
13964 pub fn BNGetArchitectureFlagWriteTypeName(
13965 arch: *mut BNArchitecture,
13966 flags: u32,
13967 ) -> *mut ::std::os::raw::c_char;
13968}
13969unsafe extern "C" {
13970 pub fn BNGetArchitectureSemanticFlagClassName(
13971 arch: *mut BNArchitecture,
13972 semClass: u32,
13973 ) -> *mut ::std::os::raw::c_char;
13974}
13975unsafe extern "C" {
13976 pub fn BNGetArchitectureSemanticFlagGroupName(
13977 arch: *mut BNArchitecture,
13978 semGroup: u32,
13979 ) -> *mut ::std::os::raw::c_char;
13980}
13981unsafe extern "C" {
13982 pub fn BNGetFullWidthArchitectureRegisters(
13983 arch: *mut BNArchitecture,
13984 count: *mut usize,
13985 ) -> *mut u32;
13986}
13987unsafe extern "C" {
13988 pub fn BNGetAllArchitectureRegisters(arch: *mut BNArchitecture, count: *mut usize) -> *mut u32;
13989}
13990unsafe extern "C" {
13991 pub fn BNGetAllArchitectureFlags(arch: *mut BNArchitecture, count: *mut usize) -> *mut u32;
13992}
13993unsafe extern "C" {
13994 pub fn BNGetAllArchitectureFlagWriteTypes(
13995 arch: *mut BNArchitecture,
13996 count: *mut usize,
13997 ) -> *mut u32;
13998}
13999unsafe extern "C" {
14000 pub fn BNGetAllArchitectureSemanticFlagClasses(
14001 arch: *mut BNArchitecture,
14002 count: *mut usize,
14003 ) -> *mut u32;
14004}
14005unsafe extern "C" {
14006 pub fn BNGetAllArchitectureSemanticFlagGroups(
14007 arch: *mut BNArchitecture,
14008 count: *mut usize,
14009 ) -> *mut u32;
14010}
14011unsafe extern "C" {
14012 pub fn BNGetArchitectureFlagRole(
14013 arch: *mut BNArchitecture,
14014 flag: u32,
14015 semClass: u32,
14016 ) -> BNFlagRole;
14017}
14018unsafe extern "C" {
14019 pub fn BNGetArchitectureFlagsRequiredForFlagCondition(
14020 arch: *mut BNArchitecture,
14021 cond: BNLowLevelILFlagCondition,
14022 semClass: u32,
14023 count: *mut usize,
14024 ) -> *mut u32;
14025}
14026unsafe extern "C" {
14027 pub fn BNGetArchitectureFlagsRequiredForSemanticFlagGroup(
14028 arch: *mut BNArchitecture,
14029 semGroup: u32,
14030 count: *mut usize,
14031 ) -> *mut u32;
14032}
14033unsafe extern "C" {
14034 pub fn BNGetArchitectureFlagConditionsForSemanticFlagGroup(
14035 arch: *mut BNArchitecture,
14036 semGroup: u32,
14037 count: *mut usize,
14038 ) -> *mut BNFlagConditionForSemanticClass;
14039}
14040unsafe extern "C" {
14041 pub fn BNFreeFlagConditionsForSemanticFlagGroup(
14042 conditions: *mut BNFlagConditionForSemanticClass,
14043 );
14044}
14045unsafe extern "C" {
14046 pub fn BNGetArchitectureFlagsWrittenByFlagWriteType(
14047 arch: *mut BNArchitecture,
14048 writeType: u32,
14049 count: *mut usize,
14050 ) -> *mut u32;
14051}
14052unsafe extern "C" {
14053 pub fn BNGetArchitectureSemanticClassForFlagWriteType(
14054 arch: *mut BNArchitecture,
14055 writeType: u32,
14056 ) -> u32;
14057}
14058unsafe extern "C" {
14059 pub fn BNGetArchitectureFlagWriteLowLevelIL(
14060 arch: *mut BNArchitecture,
14061 op: BNLowLevelILOperation,
14062 size: usize,
14063 flagWriteType: u32,
14064 flag: u32,
14065 operands: *mut BNRegisterOrConstant,
14066 operandCount: usize,
14067 il: *mut BNLowLevelILFunction,
14068 ) -> usize;
14069}
14070unsafe extern "C" {
14071 pub fn BNGetDefaultArchitectureFlagWriteLowLevelIL(
14072 arch: *mut BNArchitecture,
14073 op: BNLowLevelILOperation,
14074 size: usize,
14075 role: BNFlagRole,
14076 operands: *mut BNRegisterOrConstant,
14077 operandCount: usize,
14078 il: *mut BNLowLevelILFunction,
14079 ) -> usize;
14080}
14081unsafe extern "C" {
14082 pub fn BNGetArchitectureFlagConditionLowLevelIL(
14083 arch: *mut BNArchitecture,
14084 cond: BNLowLevelILFlagCondition,
14085 semClass: u32,
14086 il: *mut BNLowLevelILFunction,
14087 ) -> usize;
14088}
14089unsafe extern "C" {
14090 pub fn BNGetDefaultArchitectureFlagConditionLowLevelIL(
14091 arch: *mut BNArchitecture,
14092 cond: BNLowLevelILFlagCondition,
14093 semClass: u32,
14094 il: *mut BNLowLevelILFunction,
14095 ) -> usize;
14096}
14097unsafe extern "C" {
14098 pub fn BNGetArchitectureSemanticFlagGroupLowLevelIL(
14099 arch: *mut BNArchitecture,
14100 semGroup: u32,
14101 il: *mut BNLowLevelILFunction,
14102 ) -> usize;
14103}
14104unsafe extern "C" {
14105 pub fn BNGetModifiedArchitectureRegistersOnWrite(
14106 arch: *mut BNArchitecture,
14107 reg: u32,
14108 count: *mut usize,
14109 ) -> *mut u32;
14110}
14111unsafe extern "C" {
14112 pub fn BNFreeRegisterList(regs: *mut u32);
14113}
14114unsafe extern "C" {
14115 pub fn BNGetArchitectureRegisterInfo(arch: *mut BNArchitecture, reg: u32) -> BNRegisterInfo;
14116}
14117unsafe extern "C" {
14118 pub fn BNGetArchitectureStackPointerRegister(arch: *mut BNArchitecture) -> u32;
14119}
14120unsafe extern "C" {
14121 pub fn BNGetArchitectureLinkRegister(arch: *mut BNArchitecture) -> u32;
14122}
14123unsafe extern "C" {
14124 pub fn BNGetArchitectureGlobalRegisters(
14125 arch: *mut BNArchitecture,
14126 count: *mut usize,
14127 ) -> *mut u32;
14128}
14129unsafe extern "C" {
14130 pub fn BNIsArchitectureGlobalRegister(arch: *mut BNArchitecture, reg: u32) -> bool;
14131}
14132unsafe extern "C" {
14133 pub fn BNGetArchitectureSystemRegisters(
14134 arch: *mut BNArchitecture,
14135 count: *mut usize,
14136 ) -> *mut u32;
14137}
14138unsafe extern "C" {
14139 pub fn BNIsArchitectureSystemRegister(arch: *mut BNArchitecture, reg: u32) -> bool;
14140}
14141unsafe extern "C" {
14142 pub fn BNGetArchitectureRegisterByName(
14143 arch: *mut BNArchitecture,
14144 name: *const ::std::os::raw::c_char,
14145 ) -> u32;
14146}
14147unsafe extern "C" {
14148 pub fn BNGetArchitectureRegisterStackName(
14149 arch: *mut BNArchitecture,
14150 regStack: u32,
14151 ) -> *mut ::std::os::raw::c_char;
14152}
14153unsafe extern "C" {
14154 pub fn BNGetAllArchitectureRegisterStacks(
14155 arch: *mut BNArchitecture,
14156 count: *mut usize,
14157 ) -> *mut u32;
14158}
14159unsafe extern "C" {
14160 pub fn BNGetArchitectureRegisterStackInfo(
14161 arch: *mut BNArchitecture,
14162 regStack: u32,
14163 ) -> BNRegisterStackInfo;
14164}
14165unsafe extern "C" {
14166 pub fn BNGetArchitectureRegisterStackForRegister(arch: *mut BNArchitecture, reg: u32) -> u32;
14167}
14168unsafe extern "C" {
14169 pub fn BNGetArchitectureIntrinsicClass(
14170 arch: *mut BNArchitecture,
14171 intrinsic: u32,
14172 ) -> BNIntrinsicClass;
14173}
14174unsafe extern "C" {
14175 pub fn BNGetArchitectureIntrinsicName(
14176 arch: *mut BNArchitecture,
14177 intrinsic: u32,
14178 ) -> *mut ::std::os::raw::c_char;
14179}
14180unsafe extern "C" {
14181 pub fn BNGetAllArchitectureIntrinsics(arch: *mut BNArchitecture, count: *mut usize)
14182 -> *mut u32;
14183}
14184unsafe extern "C" {
14185 pub fn BNGetArchitectureIntrinsicInputs(
14186 arch: *mut BNArchitecture,
14187 intrinsic: u32,
14188 count: *mut usize,
14189 ) -> *mut BNNameAndType;
14190}
14191unsafe extern "C" {
14192 pub fn BNFreeNameAndTypeList(nt: *mut BNNameAndType, count: usize);
14193}
14194unsafe extern "C" {
14195 pub fn BNGetArchitectureIntrinsicOutputs(
14196 arch: *mut BNArchitecture,
14197 intrinsic: u32,
14198 count: *mut usize,
14199 ) -> *mut BNTypeWithConfidence;
14200}
14201unsafe extern "C" {
14202 pub fn BNFreeOutputTypeList(types: *mut BNTypeWithConfidence, count: usize);
14203}
14204unsafe extern "C" {
14205 pub fn BNCanArchitectureAssemble(arch: *mut BNArchitecture) -> bool;
14206}
14207unsafe extern "C" {
14208 pub fn BNAssemble(
14209 arch: *mut BNArchitecture,
14210 code: *const ::std::os::raw::c_char,
14211 addr: u64,
14212 result: *mut BNDataBuffer,
14213 errors: *mut *mut ::std::os::raw::c_char,
14214 ) -> bool;
14215}
14216unsafe extern "C" {
14217 pub fn BNIsArchitectureNeverBranchPatchAvailable(
14218 arch: *mut BNArchitecture,
14219 data: *const u8,
14220 addr: u64,
14221 len: usize,
14222 ) -> bool;
14223}
14224unsafe extern "C" {
14225 pub fn BNIsArchitectureAlwaysBranchPatchAvailable(
14226 arch: *mut BNArchitecture,
14227 data: *const u8,
14228 addr: u64,
14229 len: usize,
14230 ) -> bool;
14231}
14232unsafe extern "C" {
14233 pub fn BNIsArchitectureInvertBranchPatchAvailable(
14234 arch: *mut BNArchitecture,
14235 data: *const u8,
14236 addr: u64,
14237 len: usize,
14238 ) -> bool;
14239}
14240unsafe extern "C" {
14241 pub fn BNIsArchitectureSkipAndReturnZeroPatchAvailable(
14242 arch: *mut BNArchitecture,
14243 data: *const u8,
14244 addr: u64,
14245 len: usize,
14246 ) -> bool;
14247}
14248unsafe extern "C" {
14249 pub fn BNIsArchitectureSkipAndReturnValuePatchAvailable(
14250 arch: *mut BNArchitecture,
14251 data: *const u8,
14252 addr: u64,
14253 len: usize,
14254 ) -> bool;
14255}
14256unsafe extern "C" {
14257 pub fn BNArchitectureConvertToNop(
14258 arch: *mut BNArchitecture,
14259 data: *mut u8,
14260 addr: u64,
14261 len: usize,
14262 ) -> bool;
14263}
14264unsafe extern "C" {
14265 pub fn BNArchitectureAlwaysBranch(
14266 arch: *mut BNArchitecture,
14267 data: *mut u8,
14268 addr: u64,
14269 len: usize,
14270 ) -> bool;
14271}
14272unsafe extern "C" {
14273 pub fn BNArchitectureInvertBranch(
14274 arch: *mut BNArchitecture,
14275 data: *mut u8,
14276 addr: u64,
14277 len: usize,
14278 ) -> bool;
14279}
14280unsafe extern "C" {
14281 pub fn BNArchitectureSkipAndReturnValue(
14282 arch: *mut BNArchitecture,
14283 data: *mut u8,
14284 addr: u64,
14285 len: usize,
14286 value: u64,
14287 ) -> bool;
14288}
14289unsafe extern "C" {
14290 pub fn BNRegisterArchitectureFunctionRecognizer(
14291 arch: *mut BNArchitecture,
14292 rec: *mut BNFunctionRecognizer,
14293 );
14294}
14295unsafe extern "C" {
14296 pub fn BNArchitectureRegisterRelocationHandler(
14297 arch: *mut BNArchitecture,
14298 viewName: *const ::std::os::raw::c_char,
14299 handler: *mut BNRelocationHandler,
14300 );
14301}
14302unsafe extern "C" {
14303 pub fn BNCreateRelocationHandler(
14304 handler: *mut BNCustomRelocationHandler,
14305 ) -> *mut BNRelocationHandler;
14306}
14307unsafe extern "C" {
14308 pub fn BNArchitectureGetRelocationHandler(
14309 arch: *mut BNArchitecture,
14310 viewName: *const ::std::os::raw::c_char,
14311 ) -> *mut BNRelocationHandler;
14312}
14313unsafe extern "C" {
14314 pub fn BNNewRelocationHandlerReference(
14315 handler: *mut BNRelocationHandler,
14316 ) -> *mut BNRelocationHandler;
14317}
14318unsafe extern "C" {
14319 pub fn BNFreeRelocationHandler(handler: *mut BNRelocationHandler);
14320}
14321unsafe extern "C" {
14322 pub fn BNRelocationHandlerGetRelocationInfo(
14323 handler: *mut BNRelocationHandler,
14324 data: *mut BNBinaryView,
14325 arch: *mut BNArchitecture,
14326 info: *mut BNRelocationInfo,
14327 infoCount: usize,
14328 ) -> bool;
14329}
14330unsafe extern "C" {
14331 pub fn BNRelocationHandlerApplyRelocation(
14332 handler: *mut BNRelocationHandler,
14333 view: *mut BNBinaryView,
14334 arch: *mut BNArchitecture,
14335 reloc: *mut BNRelocation,
14336 dest: *mut u8,
14337 len: usize,
14338 ) -> bool;
14339}
14340unsafe extern "C" {
14341 pub fn BNRelocationHandlerDefaultApplyRelocation(
14342 handler: *mut BNRelocationHandler,
14343 view: *mut BNBinaryView,
14344 arch: *mut BNArchitecture,
14345 reloc: *mut BNRelocation,
14346 dest: *mut u8,
14347 len: usize,
14348 ) -> bool;
14349}
14350unsafe extern "C" {
14351 pub fn BNRelocationHandlerGetOperandForExternalRelocation(
14352 handler: *mut BNRelocationHandler,
14353 data: *const u8,
14354 addr: u64,
14355 length: usize,
14356 il: *const BNLowLevelILFunction,
14357 relocation: *mut BNRelocation,
14358 ) -> usize;
14359}
14360unsafe extern "C" {
14361 #[doc = " Analysis"]
14362 pub fn BNAddAnalysisOption(view: *mut BNBinaryView, name: *const ::std::os::raw::c_char);
14363}
14364unsafe extern "C" {
14365 pub fn BNAddFunctionForAnalysis(
14366 view: *mut BNBinaryView,
14367 platform: *mut BNPlatform,
14368 addr: u64,
14369 autoDiscovered: bool,
14370 type_: *mut BNType,
14371 ) -> *mut BNFunction;
14372}
14373unsafe extern "C" {
14374 pub fn BNAddEntryPointForAnalysis(
14375 view: *mut BNBinaryView,
14376 platform: *mut BNPlatform,
14377 addr: u64,
14378 );
14379}
14380unsafe extern "C" {
14381 pub fn BNRemoveAnalysisFunction(
14382 view: *mut BNBinaryView,
14383 func: *mut BNFunction,
14384 updateRefs: bool,
14385 );
14386}
14387unsafe extern "C" {
14388 pub fn BNCreateUserFunction(
14389 view: *mut BNBinaryView,
14390 platform: *mut BNPlatform,
14391 addr: u64,
14392 ) -> *mut BNFunction;
14393}
14394unsafe extern "C" {
14395 pub fn BNRemoveUserFunction(view: *mut BNBinaryView, func: *mut BNFunction);
14396}
14397unsafe extern "C" {
14398 pub fn BNHasInitialAnalysis(view: *mut BNBinaryView) -> bool;
14399}
14400unsafe extern "C" {
14401 pub fn BNSetAnalysisHold(view: *mut BNBinaryView, enable: bool);
14402}
14403unsafe extern "C" {
14404 pub fn BNGetFunctionAnalysisUpdateDisabled(view: *mut BNBinaryView) -> bool;
14405}
14406unsafe extern "C" {
14407 pub fn BNSetFunctionAnalysisUpdateDisabled(view: *mut BNBinaryView, disabled: bool);
14408}
14409unsafe extern "C" {
14410 pub fn BNUpdateAnalysisAndWait(view: *mut BNBinaryView);
14411}
14412unsafe extern "C" {
14413 pub fn BNUpdateAnalysis(view: *mut BNBinaryView);
14414}
14415unsafe extern "C" {
14416 pub fn BNAbortAnalysis(view: *mut BNBinaryView);
14417}
14418unsafe extern "C" {
14419 pub fn BNAnalysisIsAborted(view: *mut BNBinaryView) -> bool;
14420}
14421unsafe extern "C" {
14422 pub fn BNIsFunctionUpdateNeeded(func: *mut BNFunction) -> bool;
14423}
14424unsafe extern "C" {
14425 pub fn BNRequestAdvancedFunctionAnalysisData(func: *mut BNFunction);
14426}
14427unsafe extern "C" {
14428 pub fn BNReleaseAdvancedFunctionAnalysisData(func: *mut BNFunction);
14429}
14430unsafe extern "C" {
14431 pub fn BNReleaseAdvancedFunctionAnalysisDataMultiple(func: *mut BNFunction, count: usize);
14432}
14433unsafe extern "C" {
14434 pub fn BNNewFunctionReference(func: *mut BNFunction) -> *mut BNFunction;
14435}
14436unsafe extern "C" {
14437 pub fn BNFreeFunction(func: *mut BNFunction);
14438}
14439unsafe extern "C" {
14440 pub fn BNGetAnalysisFunctionList(
14441 view: *mut BNBinaryView,
14442 count: *mut usize,
14443 ) -> *mut *mut BNFunction;
14444}
14445unsafe extern "C" {
14446 pub fn BNFreeFunctionList(funcs: *mut *mut BNFunction, count: usize);
14447}
14448unsafe extern "C" {
14449 pub fn BNHasFunctions(view: *mut BNBinaryView) -> bool;
14450}
14451unsafe extern "C" {
14452 pub fn BNHasSymbols(view: *mut BNBinaryView) -> bool;
14453}
14454unsafe extern "C" {
14455 pub fn BNHasDataVariables(view: *mut BNBinaryView) -> bool;
14456}
14457unsafe extern "C" {
14458 pub fn BNGetAnalysisFunction(
14459 view: *mut BNBinaryView,
14460 platform: *mut BNPlatform,
14461 addr: u64,
14462 ) -> *mut BNFunction;
14463}
14464unsafe extern "C" {
14465 pub fn BNGetRecentAnalysisFunctionForAddress(
14466 view: *mut BNBinaryView,
14467 addr: u64,
14468 ) -> *mut BNFunction;
14469}
14470unsafe extern "C" {
14471 pub fn BNGetAnalysisFunctionsForAddress(
14472 view: *mut BNBinaryView,
14473 addr: u64,
14474 count: *mut usize,
14475 ) -> *mut *mut BNFunction;
14476}
14477unsafe extern "C" {
14478 pub fn BNGetAnalysisFunctionsContainingAddress(
14479 view: *mut BNBinaryView,
14480 addr: u64,
14481 count: *mut usize,
14482 ) -> *mut *mut BNFunction;
14483}
14484unsafe extern "C" {
14485 pub fn BNGetAnalysisEntryPoint(view: *mut BNBinaryView) -> *mut BNFunction;
14486}
14487unsafe extern "C" {
14488 pub fn BNGetAllEntryFunctions(
14489 view: *mut BNBinaryView,
14490 count: *mut usize,
14491 ) -> *mut *mut BNFunction;
14492}
14493unsafe extern "C" {
14494 pub fn BNAddToEntryFunctions(view: *mut BNBinaryView, func: *mut BNFunction);
14495}
14496unsafe extern "C" {
14497 pub fn BNGetGlobalCommentForAddress(
14498 view: *mut BNBinaryView,
14499 addr: u64,
14500 ) -> *mut ::std::os::raw::c_char;
14501}
14502unsafe extern "C" {
14503 pub fn BNGetGlobalCommentedAddresses(view: *mut BNBinaryView, count: *mut usize) -> *mut u64;
14504}
14505unsafe extern "C" {
14506 pub fn BNSetGlobalCommentForAddress(
14507 view: *mut BNBinaryView,
14508 addr: u64,
14509 comment: *const ::std::os::raw::c_char,
14510 );
14511}
14512unsafe extern "C" {
14513 pub fn BNGetFunctionData(func: *mut BNFunction) -> *mut BNBinaryView;
14514}
14515unsafe extern "C" {
14516 pub fn BNGetFunctionArchitecture(func: *mut BNFunction) -> *mut BNArchitecture;
14517}
14518unsafe extern "C" {
14519 pub fn BNGetFunctionPlatform(func: *mut BNFunction) -> *mut BNPlatform;
14520}
14521unsafe extern "C" {
14522 pub fn BNGetFunctionStart(func: *mut BNFunction) -> u64;
14523}
14524unsafe extern "C" {
14525 pub fn BNGetFunctionSymbol(func: *mut BNFunction) -> *mut BNSymbol;
14526}
14527unsafe extern "C" {
14528 pub fn BNWasFunctionAutomaticallyDiscovered(func: *mut BNFunction) -> bool;
14529}
14530unsafe extern "C" {
14531 pub fn BNFunctionHasUserAnnotations(func: *mut BNFunction) -> bool;
14532}
14533unsafe extern "C" {
14534 pub fn BNCanFunctionReturn(func: *mut BNFunction) -> BNBoolWithConfidence;
14535}
14536unsafe extern "C" {
14537 pub fn BNIsFunctionPure(func: *mut BNFunction) -> BNBoolWithConfidence;
14538}
14539unsafe extern "C" {
14540 pub fn BNSetFunctionAutoType(func: *mut BNFunction, type_: *mut BNType);
14541}
14542unsafe extern "C" {
14543 pub fn BNSetFunctionUserType(func: *mut BNFunction, type_: *mut BNType);
14544}
14545unsafe extern "C" {
14546 pub fn BNFunctionHasUserType(func: *mut BNFunction) -> bool;
14547}
14548unsafe extern "C" {
14549 pub fn BNGetFunctionComment(func: *mut BNFunction) -> *mut ::std::os::raw::c_char;
14550}
14551unsafe extern "C" {
14552 pub fn BNGetCommentForAddress(func: *mut BNFunction, addr: u64) -> *mut ::std::os::raw::c_char;
14553}
14554unsafe extern "C" {
14555 pub fn BNGetCommentedAddresses(func: *mut BNFunction, count: *mut usize) -> *mut u64;
14556}
14557unsafe extern "C" {
14558 pub fn BNFreeAddressList(addrs: *mut u64);
14559}
14560unsafe extern "C" {
14561 pub fn BNSetFunctionComment(func: *mut BNFunction, comment: *const ::std::os::raw::c_char);
14562}
14563unsafe extern "C" {
14564 pub fn BNSetCommentForAddress(
14565 func: *mut BNFunction,
14566 addr: u64,
14567 comment: *const ::std::os::raw::c_char,
14568 );
14569}
14570unsafe extern "C" {
14571 pub fn BNAddUserCodeReference(
14572 func: *mut BNFunction,
14573 fromArch: *mut BNArchitecture,
14574 fromAddr: u64,
14575 toAddr: u64,
14576 );
14577}
14578unsafe extern "C" {
14579 pub fn BNRemoveUserCodeReference(
14580 func: *mut BNFunction,
14581 fromArch: *mut BNArchitecture,
14582 fromAddr: u64,
14583 toAddr: u64,
14584 );
14585}
14586unsafe extern "C" {
14587 pub fn BNAddUserTypeReference(
14588 func: *mut BNFunction,
14589 fromArch: *mut BNArchitecture,
14590 fromAddr: u64,
14591 name: *mut BNQualifiedName,
14592 );
14593}
14594unsafe extern "C" {
14595 pub fn BNRemoveUserTypeReference(
14596 func: *mut BNFunction,
14597 fromArch: *mut BNArchitecture,
14598 fromAddr: u64,
14599 name: *mut BNQualifiedName,
14600 );
14601}
14602unsafe extern "C" {
14603 pub fn BNAddUserTypeFieldReference(
14604 func: *mut BNFunction,
14605 fromArch: *mut BNArchitecture,
14606 fromAddr: u64,
14607 name: *mut BNQualifiedName,
14608 offset: u64,
14609 size: usize,
14610 );
14611}
14612unsafe extern "C" {
14613 pub fn BNRemoveUserTypeFieldReference(
14614 func: *mut BNFunction,
14615 fromArch: *mut BNArchitecture,
14616 fromAddr: u64,
14617 name: *mut BNQualifiedName,
14618 offset: u64,
14619 size: usize,
14620 );
14621}
14622unsafe extern "C" {
14623 pub fn BNGetForeignFunctionLiftedIL(
14624 func: *const BNFunction,
14625 logger: *const BNLogger,
14626 inlinedCallsCount: usize,
14627 inlinedCalls: *const u64,
14628 ) -> *mut BNLowLevelILFunction;
14629}
14630unsafe extern "C" {
14631 pub fn BNNewBasicBlockReference(block: *mut BNBasicBlock) -> *mut BNBasicBlock;
14632}
14633unsafe extern "C" {
14634 pub fn BNFreeBasicBlock(block: *mut BNBasicBlock);
14635}
14636unsafe extern "C" {
14637 pub fn BNGetFunctionBasicBlockList(
14638 func: *mut BNFunction,
14639 count: *mut usize,
14640 ) -> *mut *mut BNBasicBlock;
14641}
14642unsafe extern "C" {
14643 pub fn BNFreeBasicBlockList(blocks: *mut *mut BNBasicBlock, count: usize);
14644}
14645unsafe extern "C" {
14646 pub fn BNGetFunctionBasicBlockAtAddress(
14647 func: *mut BNFunction,
14648 arch: *mut BNArchitecture,
14649 addr: u64,
14650 ) -> *mut BNBasicBlock;
14651}
14652unsafe extern "C" {
14653 pub fn BNGetRecentBasicBlockForAddress(view: *mut BNBinaryView, addr: u64)
14654 -> *mut BNBasicBlock;
14655}
14656unsafe extern "C" {
14657 pub fn BNGetBasicBlocksForAddress(
14658 view: *mut BNBinaryView,
14659 addr: u64,
14660 count: *mut usize,
14661 ) -> *mut *mut BNBasicBlock;
14662}
14663unsafe extern "C" {
14664 pub fn BNGetBasicBlocksStartingAtAddress(
14665 view: *mut BNBinaryView,
14666 addr: u64,
14667 count: *mut usize,
14668 ) -> *mut *mut BNBasicBlock;
14669}
14670unsafe extern "C" {
14671 pub fn BNGetFunctionHighestAddress(func: *mut BNFunction) -> u64;
14672}
14673unsafe extern "C" {
14674 pub fn BNGetFunctionLowestAddress(func: *mut BNFunction) -> u64;
14675}
14676unsafe extern "C" {
14677 pub fn BNGetFunctionAddressRanges(
14678 func: *mut BNFunction,
14679 count: *mut usize,
14680 ) -> *mut BNAddressRange;
14681}
14682unsafe extern "C" {
14683 pub fn BNGetFunctionLowLevelIL(func: *mut BNFunction) -> *mut BNLowLevelILFunction;
14684}
14685unsafe extern "C" {
14686 pub fn BNGetFunctionLowLevelILIfAvailable(func: *mut BNFunction) -> *mut BNLowLevelILFunction;
14687}
14688unsafe extern "C" {
14689 pub fn BNFreeILInstructionList(list: *mut usize);
14690}
14691unsafe extern "C" {
14692 pub fn BNGetFunctionMediumLevelIL(func: *mut BNFunction) -> *mut BNMediumLevelILFunction;
14693}
14694unsafe extern "C" {
14695 pub fn BNGetFunctionMediumLevelILIfAvailable(
14696 func: *mut BNFunction,
14697 ) -> *mut BNMediumLevelILFunction;
14698}
14699unsafe extern "C" {
14700 pub fn BNGetFunctionMappedMediumLevelIL(func: *mut BNFunction) -> *mut BNMediumLevelILFunction;
14701}
14702unsafe extern "C" {
14703 pub fn BNGetFunctionMappedMediumLevelILIfAvailable(
14704 func: *mut BNFunction,
14705 ) -> *mut BNMediumLevelILFunction;
14706}
14707unsafe extern "C" {
14708 pub fn BNGetFunctionHighLevelIL(func: *mut BNFunction) -> *mut BNHighLevelILFunction;
14709}
14710unsafe extern "C" {
14711 pub fn BNGetFunctionHighLevelILIfAvailable(func: *mut BNFunction)
14712 -> *mut BNHighLevelILFunction;
14713}
14714unsafe extern "C" {
14715 pub fn BNGetFunctionLanguageRepresentation(
14716 func: *mut BNFunction,
14717 language: *const ::std::os::raw::c_char,
14718 ) -> *mut BNLanguageRepresentationFunction;
14719}
14720unsafe extern "C" {
14721 pub fn BNGetFunctionLanguageRepresentationIfAvailable(
14722 func: *mut BNFunction,
14723 language: *const ::std::os::raw::c_char,
14724 ) -> *mut BNLanguageRepresentationFunction;
14725}
14726unsafe extern "C" {
14727 pub fn BNGetConstantData(
14728 func: *mut BNFunction,
14729 state: BNRegisterValueType,
14730 value: u64,
14731 size: usize,
14732 builtin: *mut BNBuiltinType,
14733 ) -> *mut BNDataBuffer;
14734}
14735unsafe extern "C" {
14736 pub fn BNGetRegisterValueAtInstruction(
14737 func: *mut BNFunction,
14738 arch: *mut BNArchitecture,
14739 addr: u64,
14740 reg: u32,
14741 ) -> BNRegisterValue;
14742}
14743unsafe extern "C" {
14744 pub fn BNGetRegisterValueAfterInstruction(
14745 func: *mut BNFunction,
14746 arch: *mut BNArchitecture,
14747 addr: u64,
14748 reg: u32,
14749 ) -> BNRegisterValue;
14750}
14751unsafe extern "C" {
14752 pub fn BNGetStackContentsAtInstruction(
14753 func: *mut BNFunction,
14754 arch: *mut BNArchitecture,
14755 addr: u64,
14756 offset: i64,
14757 size: usize,
14758 ) -> BNRegisterValue;
14759}
14760unsafe extern "C" {
14761 pub fn BNGetStackContentsAfterInstruction(
14762 func: *mut BNFunction,
14763 arch: *mut BNArchitecture,
14764 addr: u64,
14765 offset: i64,
14766 size: usize,
14767 ) -> BNRegisterValue;
14768}
14769unsafe extern "C" {
14770 pub fn BNGetParameterValueAtInstruction(
14771 func: *mut BNFunction,
14772 arch: *mut BNArchitecture,
14773 addr: u64,
14774 functionType: *mut BNType,
14775 i: usize,
14776 ) -> BNRegisterValue;
14777}
14778unsafe extern "C" {
14779 pub fn BNGetParameterValueAtLowLevelILInstruction(
14780 func: *mut BNFunction,
14781 instr: usize,
14782 functionType: *mut BNType,
14783 i: usize,
14784 ) -> BNRegisterValue;
14785}
14786unsafe extern "C" {
14787 pub fn BNGetRegistersReadByInstruction(
14788 func: *mut BNFunction,
14789 arch: *mut BNArchitecture,
14790 addr: u64,
14791 count: *mut usize,
14792 ) -> *mut u32;
14793}
14794unsafe extern "C" {
14795 pub fn BNGetRegistersWrittenByInstruction(
14796 func: *mut BNFunction,
14797 arch: *mut BNArchitecture,
14798 addr: u64,
14799 count: *mut usize,
14800 ) -> *mut u32;
14801}
14802unsafe extern "C" {
14803 pub fn BNGetStackVariablesReferencedByInstruction(
14804 func: *mut BNFunction,
14805 arch: *mut BNArchitecture,
14806 addr: u64,
14807 count: *mut usize,
14808 ) -> *mut BNStackVariableReference;
14809}
14810unsafe extern "C" {
14811 pub fn BNGetStackVariablesReferencedByInstructionIfAvailable(
14812 func: *mut BNFunction,
14813 arch: *mut BNArchitecture,
14814 addr: u64,
14815 count: *mut usize,
14816 ) -> *mut BNStackVariableReference;
14817}
14818unsafe extern "C" {
14819 pub fn BNFreeStackVariableReferenceList(refs: *mut BNStackVariableReference, count: usize);
14820}
14821unsafe extern "C" {
14822 pub fn BNGetConstantsReferencedByInstruction(
14823 func: *mut BNFunction,
14824 arch: *mut BNArchitecture,
14825 addr: u64,
14826 count: *mut usize,
14827 ) -> *mut BNConstantReference;
14828}
14829unsafe extern "C" {
14830 pub fn BNGetConstantsReferencedByInstructionIfAvailable(
14831 func: *mut BNFunction,
14832 arch: *mut BNArchitecture,
14833 addr: u64,
14834 count: *mut usize,
14835 ) -> *mut BNConstantReference;
14836}
14837unsafe extern "C" {
14838 pub fn BNFreeConstantReferenceList(refs: *mut BNConstantReference);
14839}
14840unsafe extern "C" {
14841 pub fn BNGetFunctionLiftedIL(func: *mut BNFunction) -> *mut BNLowLevelILFunction;
14842}
14843unsafe extern "C" {
14844 pub fn BNGetFunctionLiftedILIfAvailable(func: *mut BNFunction) -> *mut BNLowLevelILFunction;
14845}
14846unsafe extern "C" {
14847 pub fn BNGetLiftedILFlagUsesForDefinition(
14848 func: *mut BNFunction,
14849 i: usize,
14850 flag: u32,
14851 count: *mut usize,
14852 ) -> *mut usize;
14853}
14854unsafe extern "C" {
14855 pub fn BNGetLiftedILFlagDefinitionsForUse(
14856 func: *mut BNFunction,
14857 i: usize,
14858 flag: u32,
14859 count: *mut usize,
14860 ) -> *mut usize;
14861}
14862unsafe extern "C" {
14863 pub fn BNGetFlagsReadByLiftedILInstruction(
14864 func: *mut BNFunction,
14865 i: usize,
14866 count: *mut usize,
14867 ) -> *mut u32;
14868}
14869unsafe extern "C" {
14870 pub fn BNGetFlagsWrittenByLiftedILInstruction(
14871 func: *mut BNFunction,
14872 i: usize,
14873 count: *mut usize,
14874 ) -> *mut u32;
14875}
14876unsafe extern "C" {
14877 pub fn BNGetFunctionType(func: *mut BNFunction) -> *mut BNType;
14878}
14879unsafe extern "C" {
14880 pub fn BNGetFunctionReturnType(func: *mut BNFunction) -> BNTypeWithConfidence;
14881}
14882unsafe extern "C" {
14883 pub fn BNGetFunctionReturnRegisters(func: *mut BNFunction) -> BNRegisterSetWithConfidence;
14884}
14885unsafe extern "C" {
14886 pub fn BNGetFunctionCallingConvention(
14887 func: *mut BNFunction,
14888 ) -> BNCallingConventionWithConfidence;
14889}
14890unsafe extern "C" {
14891 pub fn BNGetFunctionParameterVariables(
14892 func: *mut BNFunction,
14893 ) -> BNParameterVariablesWithConfidence;
14894}
14895unsafe extern "C" {
14896 pub fn BNFreeParameterVariables(vars: *mut BNParameterVariablesWithConfidence);
14897}
14898unsafe extern "C" {
14899 pub fn BNFunctionHasVariableArguments(func: *mut BNFunction) -> BNBoolWithConfidence;
14900}
14901unsafe extern "C" {
14902 pub fn BNGetFunctionStackAdjustment(func: *mut BNFunction) -> BNOffsetWithConfidence;
14903}
14904unsafe extern "C" {
14905 pub fn BNGetFunctionRegisterStackAdjustments(
14906 func: *mut BNFunction,
14907 count: *mut usize,
14908 ) -> *mut BNRegisterStackAdjustment;
14909}
14910unsafe extern "C" {
14911 pub fn BNFreeRegisterStackAdjustments(adjustments: *mut BNRegisterStackAdjustment);
14912}
14913unsafe extern "C" {
14914 pub fn BNGetFunctionClobberedRegisters(func: *mut BNFunction) -> BNRegisterSetWithConfidence;
14915}
14916unsafe extern "C" {
14917 pub fn BNFreeRegisterSet(regs: *mut BNRegisterSetWithConfidence);
14918}
14919unsafe extern "C" {
14920 pub fn BNSetAutoFunctionReturnType(func: *mut BNFunction, type_: *mut BNTypeWithConfidence);
14921}
14922unsafe extern "C" {
14923 pub fn BNSetAutoFunctionReturnRegisters(
14924 func: *mut BNFunction,
14925 regs: *mut BNRegisterSetWithConfidence,
14926 );
14927}
14928unsafe extern "C" {
14929 pub fn BNSetAutoFunctionCallingConvention(
14930 func: *mut BNFunction,
14931 convention: *mut BNCallingConventionWithConfidence,
14932 );
14933}
14934unsafe extern "C" {
14935 pub fn BNSetAutoFunctionParameterVariables(
14936 func: *mut BNFunction,
14937 vars: *mut BNParameterVariablesWithConfidence,
14938 );
14939}
14940unsafe extern "C" {
14941 pub fn BNSetAutoFunctionHasVariableArguments(
14942 func: *mut BNFunction,
14943 varArgs: *mut BNBoolWithConfidence,
14944 );
14945}
14946unsafe extern "C" {
14947 pub fn BNSetAutoFunctionCanReturn(func: *mut BNFunction, returns: *mut BNBoolWithConfidence);
14948}
14949unsafe extern "C" {
14950 pub fn BNSetAutoFunctionPure(func: *mut BNFunction, pure_: *mut BNBoolWithConfidence);
14951}
14952unsafe extern "C" {
14953 pub fn BNSetAutoFunctionStackAdjustment(
14954 func: *mut BNFunction,
14955 stackAdjust: *mut BNOffsetWithConfidence,
14956 );
14957}
14958unsafe extern "C" {
14959 pub fn BNSetAutoFunctionRegisterStackAdjustments(
14960 func: *mut BNFunction,
14961 adjustments: *mut BNRegisterStackAdjustment,
14962 count: usize,
14963 );
14964}
14965unsafe extern "C" {
14966 pub fn BNSetAutoFunctionClobberedRegisters(
14967 func: *mut BNFunction,
14968 regs: *mut BNRegisterSetWithConfidence,
14969 );
14970}
14971unsafe extern "C" {
14972 pub fn BNSetUserFunctionReturnType(func: *mut BNFunction, type_: *mut BNTypeWithConfidence);
14973}
14974unsafe extern "C" {
14975 pub fn BNSetUserFunctionReturnRegisters(
14976 func: *mut BNFunction,
14977 regs: *mut BNRegisterSetWithConfidence,
14978 );
14979}
14980unsafe extern "C" {
14981 pub fn BNSetUserFunctionCallingConvention(
14982 func: *mut BNFunction,
14983 convention: *mut BNCallingConventionWithConfidence,
14984 );
14985}
14986unsafe extern "C" {
14987 pub fn BNSetUserFunctionParameterVariables(
14988 func: *mut BNFunction,
14989 vars: *mut BNParameterVariablesWithConfidence,
14990 );
14991}
14992unsafe extern "C" {
14993 pub fn BNSetUserFunctionHasVariableArguments(
14994 func: *mut BNFunction,
14995 varArgs: *mut BNBoolWithConfidence,
14996 );
14997}
14998unsafe extern "C" {
14999 pub fn BNSetUserFunctionCanReturn(func: *mut BNFunction, returns: *mut BNBoolWithConfidence);
15000}
15001unsafe extern "C" {
15002 pub fn BNSetUserFunctionPure(func: *mut BNFunction, pure_: *mut BNBoolWithConfidence);
15003}
15004unsafe extern "C" {
15005 pub fn BNSetUserFunctionStackAdjustment(
15006 func: *mut BNFunction,
15007 stackAdjust: *mut BNOffsetWithConfidence,
15008 );
15009}
15010unsafe extern "C" {
15011 pub fn BNSetUserFunctionRegisterStackAdjustments(
15012 func: *mut BNFunction,
15013 adjustments: *mut BNRegisterStackAdjustment,
15014 count: usize,
15015 );
15016}
15017unsafe extern "C" {
15018 pub fn BNSetUserFunctionClobberedRegisters(
15019 func: *mut BNFunction,
15020 regs: *mut BNRegisterSetWithConfidence,
15021 );
15022}
15023unsafe extern "C" {
15024 pub fn BNApplyImportedTypes(func: *mut BNFunction, sym: *mut BNSymbol, type_: *mut BNType);
15025}
15026unsafe extern "C" {
15027 pub fn BNApplyAutoDiscoveredFunctionType(func: *mut BNFunction, type_: *mut BNType);
15028}
15029unsafe extern "C" {
15030 pub fn BNFunctionHasExplicitlyDefinedType(func: *mut BNFunction) -> bool;
15031}
15032unsafe extern "C" {
15033 pub fn BNGetFunctionTypeTokens(
15034 func: *mut BNFunction,
15035 settings: *mut BNDisassemblySettings,
15036 count: *mut usize,
15037 ) -> *mut BNDisassemblyTextLine;
15038}
15039unsafe extern "C" {
15040 pub fn BNGetFunctionGlobalPointerValue(func: *mut BNFunction) -> BNRegisterValueWithConfidence;
15041}
15042unsafe extern "C" {
15043 pub fn BNFunctionUsesIncomingGlobalPointer(func: *mut BNFunction) -> bool;
15044}
15045unsafe extern "C" {
15046 pub fn BNGetFunctionRegisterValueAtExit(
15047 func: *mut BNFunction,
15048 reg: u32,
15049 ) -> BNRegisterValueWithConfidence;
15050}
15051unsafe extern "C" {
15052 pub fn BNIsFunctionInlinedDuringAnalysis(func: *mut BNFunction) -> BNBoolWithConfidence;
15053}
15054unsafe extern "C" {
15055 pub fn BNGetFunctionInlinedDuringAnalysis(
15056 func: *mut BNFunction,
15057 ) -> BNInlineDuringAnalysisWithConfidence;
15058}
15059unsafe extern "C" {
15060 pub fn BNSetAutoFunctionInlinedDuringAnalysis(
15061 func: *mut BNFunction,
15062 inlined: BNInlineDuringAnalysisWithConfidence,
15063 );
15064}
15065unsafe extern "C" {
15066 pub fn BNSetUserFunctionInlinedDuringAnalysis(
15067 func: *mut BNFunction,
15068 inlined: BNInlineDuringAnalysisWithConfidence,
15069 );
15070}
15071unsafe extern "C" {
15072 pub fn BNGetInstructionContainingAddress(
15073 func: *mut BNFunction,
15074 arch: *mut BNArchitecture,
15075 addr: u64,
15076 start: *mut u64,
15077 ) -> bool;
15078}
15079unsafe extern "C" {
15080 pub fn BNGetBasicBlockFunction(block: *mut BNBasicBlock) -> *mut BNFunction;
15081}
15082unsafe extern "C" {
15083 pub fn BNGetBasicBlockArchitecture(block: *mut BNBasicBlock) -> *mut BNArchitecture;
15084}
15085unsafe extern "C" {
15086 pub fn BNGetBasicBlockSource(block: *mut BNBasicBlock) -> *mut BNBasicBlock;
15087}
15088unsafe extern "C" {
15089 pub fn BNGetBasicBlockStart(block: *mut BNBasicBlock) -> u64;
15090}
15091unsafe extern "C" {
15092 pub fn BNSetBasicBlockEnd(block: *mut BNBasicBlock, end: u64);
15093}
15094unsafe extern "C" {
15095 pub fn BNGetBasicBlockEnd(block: *mut BNBasicBlock) -> u64;
15096}
15097unsafe extern "C" {
15098 pub fn BNGetBasicBlockLength(block: *mut BNBasicBlock) -> u64;
15099}
15100unsafe extern "C" {
15101 pub fn BNGetBasicBlockOutgoingEdges(
15102 block: *mut BNBasicBlock,
15103 count: *mut usize,
15104 ) -> *mut BNBasicBlockEdge;
15105}
15106unsafe extern "C" {
15107 pub fn BNGetBasicBlockIncomingEdges(
15108 block: *mut BNBasicBlock,
15109 count: *mut usize,
15110 ) -> *mut BNBasicBlockEdge;
15111}
15112unsafe extern "C" {
15113 pub fn BNFreeBasicBlockEdgeList(edges: *mut BNBasicBlockEdge, count: usize);
15114}
15115unsafe extern "C" {
15116 pub fn BNBasicBlockHasUndeterminedOutgoingEdges(block: *mut BNBasicBlock) -> bool;
15117}
15118unsafe extern "C" {
15119 pub fn BNBasicBlockAddPendingOutgoingEdge(
15120 block: *mut BNBasicBlock,
15121 type_: BNBranchType,
15122 addr: u64,
15123 arch: *mut BNArchitecture,
15124 fallThrough: bool,
15125 );
15126}
15127unsafe extern "C" {
15128 pub fn BNGetBasicBlockPendingOutgoingEdges(
15129 block: *mut BNBasicBlock,
15130 count: *mut usize,
15131 ) -> *mut BNPendingBasicBlockEdge;
15132}
15133unsafe extern "C" {
15134 pub fn BNFreePendingBasicBlockEdgeList(edges: *mut BNPendingBasicBlockEdge);
15135}
15136unsafe extern "C" {
15137 pub fn BNClearBasicBlockPendingOutgoingEdges(block: *mut BNBasicBlock);
15138}
15139unsafe extern "C" {
15140 pub fn BNBasicBlockSetUndeterminedOutgoingEdges(block: *mut BNBasicBlock, value: bool);
15141}
15142unsafe extern "C" {
15143 pub fn BNBasicBlockHasInstructionData(block: *mut BNBasicBlock) -> bool;
15144}
15145unsafe extern "C" {
15146 pub fn BNBasicBlockGetInstructionData(
15147 block: *mut BNBasicBlock,
15148 addr: u64,
15149 len: *mut usize,
15150 ) -> *const u8;
15151}
15152unsafe extern "C" {
15153 pub fn BNBasicBlockAddInstructionData(
15154 block: *mut BNBasicBlock,
15155 data: *const ::std::os::raw::c_void,
15156 len: usize,
15157 );
15158}
15159unsafe extern "C" {
15160 pub fn BNBasicBlockSetFallThroughToFunction(block: *mut BNBasicBlock, value: bool);
15161}
15162unsafe extern "C" {
15163 pub fn BNBasicBlockIsFallThroughToFunction(block: *mut BNBasicBlock) -> bool;
15164}
15165unsafe extern "C" {
15166 pub fn BNBasicBlockCanExit(block: *mut BNBasicBlock) -> bool;
15167}
15168unsafe extern "C" {
15169 pub fn BNBasicBlockSetCanExit(block: *mut BNBasicBlock, value: bool);
15170}
15171unsafe extern "C" {
15172 pub fn BNBasicBlockSetHasInvalidInstructions(block: *mut BNBasicBlock, value: bool);
15173}
15174unsafe extern "C" {
15175 pub fn BNBasicBlockHasInvalidInstructions(block: *mut BNBasicBlock) -> bool;
15176}
15177unsafe extern "C" {
15178 pub fn BNGetBasicBlockIndex(block: *mut BNBasicBlock) -> usize;
15179}
15180unsafe extern "C" {
15181 pub fn BNGetBasicBlockDominators(
15182 block: *mut BNBasicBlock,
15183 count: *mut usize,
15184 post: bool,
15185 ) -> *mut *mut BNBasicBlock;
15186}
15187unsafe extern "C" {
15188 pub fn BNGetBasicBlockStrictDominators(
15189 block: *mut BNBasicBlock,
15190 count: *mut usize,
15191 post: bool,
15192 ) -> *mut *mut BNBasicBlock;
15193}
15194unsafe extern "C" {
15195 pub fn BNGetBasicBlockImmediateDominator(
15196 block: *mut BNBasicBlock,
15197 post: bool,
15198 ) -> *mut BNBasicBlock;
15199}
15200unsafe extern "C" {
15201 pub fn BNGetBasicBlockDominatorTreeChildren(
15202 block: *mut BNBasicBlock,
15203 count: *mut usize,
15204 post: bool,
15205 ) -> *mut *mut BNBasicBlock;
15206}
15207unsafe extern "C" {
15208 pub fn BNGetBasicBlockDominanceFrontier(
15209 block: *mut BNBasicBlock,
15210 count: *mut usize,
15211 post: bool,
15212 ) -> *mut *mut BNBasicBlock;
15213}
15214unsafe extern "C" {
15215 pub fn BNGetBasicBlockIteratedDominanceFrontier(
15216 blocks: *mut *mut BNBasicBlock,
15217 incomingCount: usize,
15218 outputCount: *mut usize,
15219 ) -> *mut *mut BNBasicBlock;
15220}
15221unsafe extern "C" {
15222 pub fn BNIsILBasicBlock(block: *mut BNBasicBlock) -> bool;
15223}
15224unsafe extern "C" {
15225 pub fn BNIsLowLevelILBasicBlock(block: *mut BNBasicBlock) -> bool;
15226}
15227unsafe extern "C" {
15228 pub fn BNIsMediumLevelILBasicBlock(block: *mut BNBasicBlock) -> bool;
15229}
15230unsafe extern "C" {
15231 pub fn BNIsHighLevelILBasicBlock(block: *mut BNBasicBlock) -> bool;
15232}
15233unsafe extern "C" {
15234 pub fn BNGetBasicBlockFunctionGraphType(block: *mut BNBasicBlock) -> BNFunctionGraphType;
15235}
15236unsafe extern "C" {
15237 pub fn BNGetBasicBlockLowLevelILFunction(block: *mut BNBasicBlock)
15238 -> *mut BNLowLevelILFunction;
15239}
15240unsafe extern "C" {
15241 pub fn BNGetBasicBlockMediumLevelILFunction(
15242 block: *mut BNBasicBlock,
15243 ) -> *mut BNMediumLevelILFunction;
15244}
15245unsafe extern "C" {
15246 pub fn BNGetBasicBlockHighLevelILFunction(
15247 block: *mut BNBasicBlock,
15248 ) -> *mut BNHighLevelILFunction;
15249}
15250unsafe extern "C" {
15251 pub fn BNGetBasicBlockInstructionContainingAddress(
15252 block: *mut BNBasicBlock,
15253 addr: u64,
15254 start: *mut u64,
15255 ) -> bool;
15256}
15257unsafe extern "C" {
15258 pub fn BNGetBasicBlockSourceBlock(block: *mut BNBasicBlock) -> *mut BNBasicBlock;
15259}
15260unsafe extern "C" {
15261 pub fn BNGetBasicBlockDisassemblyText(
15262 block: *mut BNBasicBlock,
15263 settings: *mut BNDisassemblySettings,
15264 count: *mut usize,
15265 ) -> *mut BNDisassemblyTextLine;
15266}
15267unsafe extern "C" {
15268 pub fn BNFreeDisassemblyTextLines(lines: *mut BNDisassemblyTextLine, count: usize);
15269}
15270unsafe extern "C" {
15271 pub fn BNGetDisplayStringForInteger(
15272 binaryView: *mut BNBinaryView,
15273 type_: BNIntegerDisplayType,
15274 value: u64,
15275 inputWidth: usize,
15276 isSigned: bool,
15277 ) -> *mut ::std::os::raw::c_char;
15278}
15279unsafe extern "C" {
15280 pub fn BNCreateDisassemblyTextRenderer(
15281 func: *mut BNFunction,
15282 settings: *mut BNDisassemblySettings,
15283 ) -> *mut BNDisassemblyTextRenderer;
15284}
15285unsafe extern "C" {
15286 pub fn BNCreateLowLevelILDisassemblyTextRenderer(
15287 func: *mut BNLowLevelILFunction,
15288 settings: *mut BNDisassemblySettings,
15289 ) -> *mut BNDisassemblyTextRenderer;
15290}
15291unsafe extern "C" {
15292 pub fn BNCreateMediumLevelILDisassemblyTextRenderer(
15293 func: *mut BNMediumLevelILFunction,
15294 settings: *mut BNDisassemblySettings,
15295 ) -> *mut BNDisassemblyTextRenderer;
15296}
15297unsafe extern "C" {
15298 pub fn BNCreateHighLevelILDisassemblyTextRenderer(
15299 func: *mut BNHighLevelILFunction,
15300 settings: *mut BNDisassemblySettings,
15301 ) -> *mut BNDisassemblyTextRenderer;
15302}
15303unsafe extern "C" {
15304 pub fn BNNewDisassemblyTextRendererReference(
15305 renderer: *mut BNDisassemblyTextRenderer,
15306 ) -> *mut BNDisassemblyTextRenderer;
15307}
15308unsafe extern "C" {
15309 pub fn BNFreeDisassemblyTextRenderer(renderer: *mut BNDisassemblyTextRenderer);
15310}
15311unsafe extern "C" {
15312 pub fn BNGetDisassemblyTextRendererFunction(
15313 renderer: *mut BNDisassemblyTextRenderer,
15314 ) -> *mut BNFunction;
15315}
15316unsafe extern "C" {
15317 pub fn BNGetDisassemblyTextRendererLowLevelILFunction(
15318 renderer: *mut BNDisassemblyTextRenderer,
15319 ) -> *mut BNLowLevelILFunction;
15320}
15321unsafe extern "C" {
15322 pub fn BNGetDisassemblyTextRendererMediumLevelILFunction(
15323 renderer: *mut BNDisassemblyTextRenderer,
15324 ) -> *mut BNMediumLevelILFunction;
15325}
15326unsafe extern "C" {
15327 pub fn BNGetDisassemblyTextRendererHighLevelILFunction(
15328 renderer: *mut BNDisassemblyTextRenderer,
15329 ) -> *mut BNHighLevelILFunction;
15330}
15331unsafe extern "C" {
15332 pub fn BNGetDisassemblyTextRendererBasicBlock(
15333 renderer: *mut BNDisassemblyTextRenderer,
15334 ) -> *mut BNBasicBlock;
15335}
15336unsafe extern "C" {
15337 pub fn BNGetDisassemblyTextRendererArchitecture(
15338 renderer: *mut BNDisassemblyTextRenderer,
15339 ) -> *mut BNArchitecture;
15340}
15341unsafe extern "C" {
15342 pub fn BNGetDisassemblyTextRendererSettings(
15343 renderer: *mut BNDisassemblyTextRenderer,
15344 ) -> *mut BNDisassemblySettings;
15345}
15346unsafe extern "C" {
15347 pub fn BNSetDisassemblyTextRendererBasicBlock(
15348 renderer: *mut BNDisassemblyTextRenderer,
15349 block: *mut BNBasicBlock,
15350 );
15351}
15352unsafe extern "C" {
15353 pub fn BNSetDisassemblyTextRendererArchitecture(
15354 renderer: *mut BNDisassemblyTextRenderer,
15355 arch: *mut BNArchitecture,
15356 );
15357}
15358unsafe extern "C" {
15359 pub fn BNSetDisassemblyTextRendererSettings(
15360 renderer: *mut BNDisassemblyTextRenderer,
15361 settings: *mut BNDisassemblySettings,
15362 );
15363}
15364unsafe extern "C" {
15365 pub fn BNIsILDisassemblyTextRenderer(renderer: *mut BNDisassemblyTextRenderer) -> bool;
15366}
15367unsafe extern "C" {
15368 pub fn BNDisassemblyTextRendererHasDataFlow(renderer: *mut BNDisassemblyTextRenderer) -> bool;
15369}
15370unsafe extern "C" {
15371 pub fn BNGetDisassemblyTextRendererInstructionAnnotations(
15372 renderer: *mut BNDisassemblyTextRenderer,
15373 addr: u64,
15374 count: *mut usize,
15375 ) -> *mut BNInstructionTextToken;
15376}
15377unsafe extern "C" {
15378 pub fn BNGetDisassemblyTextRendererInstructionText(
15379 renderer: *mut BNDisassemblyTextRenderer,
15380 addr: u64,
15381 len: *mut usize,
15382 result: *mut *mut BNDisassemblyTextLine,
15383 count: *mut usize,
15384 ) -> bool;
15385}
15386unsafe extern "C" {
15387 pub fn BNGetDisassemblyTextRendererLines(
15388 renderer: *mut BNDisassemblyTextRenderer,
15389 addr: u64,
15390 len: *mut usize,
15391 result: *mut *mut BNDisassemblyTextLine,
15392 count: *mut usize,
15393 ) -> bool;
15394}
15395unsafe extern "C" {
15396 pub fn BNPostProcessDisassemblyTextRendererLines(
15397 renderer: *mut BNDisassemblyTextRenderer,
15398 addr: u64,
15399 len: usize,
15400 inLines: *mut BNDisassemblyTextLine,
15401 inCount: usize,
15402 outCount: *mut usize,
15403 indentSpaces: *const ::std::os::raw::c_char,
15404 ) -> *mut BNDisassemblyTextLine;
15405}
15406unsafe extern "C" {
15407 pub fn BNResetDisassemblyTextRendererDeduplicatedComments(
15408 renderer: *mut BNDisassemblyTextRenderer,
15409 );
15410}
15411unsafe extern "C" {
15412 pub fn BNGetDisassemblyTextRendererSymbolTokens(
15413 renderer: *mut BNDisassemblyTextRenderer,
15414 addr: u64,
15415 size: usize,
15416 operand: usize,
15417 result: *mut *mut BNInstructionTextToken,
15418 count: *mut usize,
15419 ) -> bool;
15420}
15421unsafe extern "C" {
15422 pub fn BNGetDisassemblyTextRendererSymbolTokensStatic(
15423 addr: u64,
15424 size: usize,
15425 operand: usize,
15426 data: *mut BNBinaryView,
15427 maxSymbolWidth: usize,
15428 func: *mut BNFunction,
15429 confidence: u8,
15430 symbolDisplay: BNSymbolDisplayType,
15431 precedence: BNOperatorPrecedence,
15432 instrAddr: u64,
15433 exprIndex: u64,
15434 result: *mut *mut BNInstructionTextToken,
15435 count: *mut usize,
15436 ) -> BNSymbolDisplayResult;
15437}
15438unsafe extern "C" {
15439 pub fn BNGetDisassemblyTextRendererStackVariableReferenceTokens(
15440 renderer: *mut BNDisassemblyTextRenderer,
15441 ref_: *mut BNStackVariableReference,
15442 count: *mut usize,
15443 ) -> *mut BNInstructionTextToken;
15444}
15445unsafe extern "C" {
15446 pub fn BNIsIntegerToken(type_: BNInstructionTextTokenType) -> bool;
15447}
15448unsafe extern "C" {
15449 pub fn BNGetDisassemblyTextRendererIntegerTokens(
15450 renderer: *mut BNDisassemblyTextRenderer,
15451 token: *mut BNInstructionTextToken,
15452 arch: *mut BNArchitecture,
15453 addr: u64,
15454 count: *mut usize,
15455 ) -> *mut BNInstructionTextToken;
15456}
15457unsafe extern "C" {
15458 pub fn BNDisassemblyTextRendererWrapComment(
15459 renderer: *mut BNDisassemblyTextRenderer,
15460 inLine: *const BNDisassemblyTextLine,
15461 outLineCount: *mut usize,
15462 comment: *const ::std::os::raw::c_char,
15463 hasAutoAnnotations: bool,
15464 leadingSpaces: *const ::std::os::raw::c_char,
15465 indentSpaces: *const ::std::os::raw::c_char,
15466 ) -> *mut BNDisassemblyTextLine;
15467}
15468unsafe extern "C" {
15469 pub fn BNGetStringLiteralPrefix(type_: BNStringType) -> *mut ::std::os::raw::c_char;
15470}
15471unsafe extern "C" {
15472 pub fn BNMarkFunctionAsRecentlyUsed(func: *mut BNFunction);
15473}
15474unsafe extern "C" {
15475 pub fn BNMarkBasicBlockAsRecentlyUsed(block: *mut BNBasicBlock);
15476}
15477unsafe extern "C" {
15478 pub fn BNGetCodeReferences(
15479 view: *mut BNBinaryView,
15480 addr: u64,
15481 count: *mut usize,
15482 limit: bool,
15483 maxItems: usize,
15484 ) -> *mut BNReferenceSource;
15485}
15486unsafe extern "C" {
15487 pub fn BNGetCodeReferencesInRange(
15488 view: *mut BNBinaryView,
15489 addr: u64,
15490 len: u64,
15491 count: *mut usize,
15492 limit: bool,
15493 maxItems: usize,
15494 ) -> *mut BNReferenceSource;
15495}
15496unsafe extern "C" {
15497 pub fn BNFreeCodeReferences(refs: *mut BNReferenceSource, count: usize);
15498}
15499unsafe extern "C" {
15500 pub fn BNFreeTypeFieldReferences(refs: *mut BNTypeFieldReference, count: usize);
15501}
15502unsafe extern "C" {
15503 pub fn BNFreeILReferences(refs: *mut BNILReferenceSource, count: usize);
15504}
15505unsafe extern "C" {
15506 pub fn BNGetCodeReferencesFrom(
15507 view: *mut BNBinaryView,
15508 src: *mut BNReferenceSource,
15509 count: *mut usize,
15510 ) -> *mut u64;
15511}
15512unsafe extern "C" {
15513 pub fn BNGetCodeReferencesFromInRange(
15514 view: *mut BNBinaryView,
15515 src: *mut BNReferenceSource,
15516 len: u64,
15517 count: *mut usize,
15518 ) -> *mut u64;
15519}
15520unsafe extern "C" {
15521 pub fn BNGetDataReferences(
15522 view: *mut BNBinaryView,
15523 addr: u64,
15524 count: *mut usize,
15525 limit: bool,
15526 maxItems: usize,
15527 ) -> *mut u64;
15528}
15529unsafe extern "C" {
15530 pub fn BNGetDataReferencesInRange(
15531 view: *mut BNBinaryView,
15532 addr: u64,
15533 len: u64,
15534 count: *mut usize,
15535 limit: bool,
15536 maxItems: usize,
15537 ) -> *mut u64;
15538}
15539unsafe extern "C" {
15540 pub fn BNGetDataReferencesFrom(
15541 view: *mut BNBinaryView,
15542 addr: u64,
15543 count: *mut usize,
15544 ) -> *mut u64;
15545}
15546unsafe extern "C" {
15547 pub fn BNGetDataReferencesFromInRange(
15548 view: *mut BNBinaryView,
15549 addr: u64,
15550 len: u64,
15551 count: *mut usize,
15552 ) -> *mut u64;
15553}
15554unsafe extern "C" {
15555 pub fn BNAddDataReference(view: *mut BNBinaryView, fromAddr: u64, toAddr: u64);
15556}
15557unsafe extern "C" {
15558 pub fn BNRemoveDataReference(view: *mut BNBinaryView, fromAddr: u64, toAddr: u64);
15559}
15560unsafe extern "C" {
15561 pub fn BNAddUserDataReference(view: *mut BNBinaryView, fromAddr: u64, toAddr: u64);
15562}
15563unsafe extern "C" {
15564 pub fn BNRemoveUserDataReference(view: *mut BNBinaryView, fromAddr: u64, toAddr: u64);
15565}
15566unsafe extern "C" {
15567 pub fn BNFreeDataReferences(refs: *mut u64);
15568}
15569unsafe extern "C" {
15570 pub fn BNFreeTypeReferences(refs: *mut BNTypeReferenceSource, count: usize);
15571}
15572unsafe extern "C" {
15573 pub fn BNFreeTypeFieldReferenceSizeInfo(refs: *mut BNTypeFieldReferenceSizeInfo, count: usize);
15574}
15575unsafe extern "C" {
15576 pub fn BNFreeTypeFieldReferenceTypeInfo(refs: *mut BNTypeFieldReferenceTypeInfo, count: usize);
15577}
15578unsafe extern "C" {
15579 pub fn BNFreeTypeFieldReferenceSizes(refs: *mut usize, count: usize);
15580}
15581unsafe extern "C" {
15582 pub fn BNFreeTypeFieldReferenceTypes(refs: *mut BNTypeWithConfidence, count: usize);
15583}
15584unsafe extern "C" {
15585 #[doc = " References to type"]
15586 pub fn BNGetCodeReferencesForType(
15587 view: *mut BNBinaryView,
15588 type_: *mut BNQualifiedName,
15589 count: *mut usize,
15590 limit: bool,
15591 maxItems: usize,
15592 ) -> *mut BNReferenceSource;
15593}
15594unsafe extern "C" {
15595 pub fn BNGetDataReferencesForType(
15596 view: *mut BNBinaryView,
15597 type_: *mut BNQualifiedName,
15598 count: *mut usize,
15599 limit: bool,
15600 maxItems: usize,
15601 ) -> *mut u64;
15602}
15603unsafe extern "C" {
15604 pub fn BNGetTypeReferencesForType(
15605 view: *mut BNBinaryView,
15606 type_: *mut BNQualifiedName,
15607 count: *mut usize,
15608 limit: bool,
15609 maxItems: usize,
15610 ) -> *mut BNTypeReferenceSource;
15611}
15612unsafe extern "C" {
15613 #[doc = " References to type field"]
15614 pub fn BNGetCodeReferencesForTypeField(
15615 view: *mut BNBinaryView,
15616 type_: *mut BNQualifiedName,
15617 offset: u64,
15618 count: *mut usize,
15619 limit: bool,
15620 maxItems: usize,
15621 ) -> *mut BNTypeFieldReference;
15622}
15623unsafe extern "C" {
15624 pub fn BNGetDataReferencesForTypeField(
15625 view: *mut BNBinaryView,
15626 type_: *mut BNQualifiedName,
15627 offset: u64,
15628 count: *mut usize,
15629 limit: bool,
15630 maxItems: usize,
15631 ) -> *mut u64;
15632}
15633unsafe extern "C" {
15634 pub fn BNGetDataReferencesFromForTypeField(
15635 view: *mut BNBinaryView,
15636 type_: *mut BNQualifiedName,
15637 offset: u64,
15638 count: *mut usize,
15639 limit: bool,
15640 maxItems: usize,
15641 ) -> *mut u64;
15642}
15643unsafe extern "C" {
15644 pub fn BNGetTypeReferencesForTypeField(
15645 view: *mut BNBinaryView,
15646 type_: *mut BNQualifiedName,
15647 offset: u64,
15648 count: *mut usize,
15649 limit: bool,
15650 maxItems: usize,
15651 ) -> *mut BNTypeReferenceSource;
15652}
15653unsafe extern "C" {
15654 pub fn BNGetAllReferencesForType(
15655 view: *mut BNBinaryView,
15656 type_: *mut BNQualifiedName,
15657 limit: bool,
15658 maxItems: usize,
15659 ) -> BNAllTypeReferences;
15660}
15661unsafe extern "C" {
15662 pub fn BNFreeAllTypeReferences(refs: *mut BNAllTypeReferences);
15663}
15664unsafe extern "C" {
15665 pub fn BNGetAllReferencesForTypeField(
15666 view: *mut BNBinaryView,
15667 type_: *mut BNQualifiedName,
15668 offset: u64,
15669 limit: bool,
15670 maxItems: usize,
15671 ) -> BNAllTypeFieldReferences;
15672}
15673unsafe extern "C" {
15674 pub fn BNFreeAllTypeFieldReferences(refs: *mut BNAllTypeFieldReferences);
15675}
15676unsafe extern "C" {
15677 pub fn BNGetCodeReferencesForTypeFrom(
15678 view: *mut BNBinaryView,
15679 addr: *mut BNReferenceSource,
15680 count: *mut usize,
15681 ) -> *mut BNTypeReferenceSource;
15682}
15683unsafe extern "C" {
15684 pub fn BNGetCodeReferencesForTypeFromInRange(
15685 view: *mut BNBinaryView,
15686 addr: *mut BNReferenceSource,
15687 len: u64,
15688 count: *mut usize,
15689 ) -> *mut BNTypeReferenceSource;
15690}
15691unsafe extern "C" {
15692 pub fn BNGetCodeReferencesForTypeFieldsFrom(
15693 view: *mut BNBinaryView,
15694 addr: *mut BNReferenceSource,
15695 count: *mut usize,
15696 ) -> *mut BNTypeReferenceSource;
15697}
15698unsafe extern "C" {
15699 pub fn BNGetCodeReferencesForTypeFieldsFromInRange(
15700 view: *mut BNBinaryView,
15701 addr: *mut BNReferenceSource,
15702 len: u64,
15703 count: *mut usize,
15704 ) -> *mut BNTypeReferenceSource;
15705}
15706unsafe extern "C" {
15707 pub fn BNGetAllFieldsReferenced(
15708 view: *mut BNBinaryView,
15709 type_: *mut BNQualifiedName,
15710 count: *mut usize,
15711 ) -> *mut u64;
15712}
15713unsafe extern "C" {
15714 pub fn BNGetAllSizesReferenced(
15715 view: *mut BNBinaryView,
15716 type_: *mut BNQualifiedName,
15717 count: *mut usize,
15718 ) -> *mut BNTypeFieldReferenceSizeInfo;
15719}
15720unsafe extern "C" {
15721 pub fn BNGetAllTypesReferenced(
15722 view: *mut BNBinaryView,
15723 type_: *mut BNQualifiedName,
15724 count: *mut usize,
15725 ) -> *mut BNTypeFieldReferenceTypeInfo;
15726}
15727unsafe extern "C" {
15728 pub fn BNGetSizesReferenced(
15729 view: *mut BNBinaryView,
15730 type_: *mut BNQualifiedName,
15731 offset: u64,
15732 count: *mut usize,
15733 ) -> *mut usize;
15734}
15735unsafe extern "C" {
15736 pub fn BNGetTypesReferenced(
15737 view: *mut BNBinaryView,
15738 type_: *mut BNQualifiedName,
15739 offset: u64,
15740 count: *mut usize,
15741 ) -> *mut BNTypeWithConfidence;
15742}
15743unsafe extern "C" {
15744 pub fn BNGetOutgoingDirectTypeReferences(
15745 view: *mut BNBinaryView,
15746 type_: *mut BNQualifiedName,
15747 count: *mut usize,
15748 ) -> *mut BNQualifiedName;
15749}
15750unsafe extern "C" {
15751 pub fn BNGetOutgoingRecursiveTypeReferences(
15752 view: *mut BNBinaryView,
15753 types: *mut BNQualifiedName,
15754 typeCount: usize,
15755 count: *mut usize,
15756 ) -> *mut BNQualifiedName;
15757}
15758unsafe extern "C" {
15759 pub fn BNGetIncomingDirectTypeReferences(
15760 view: *mut BNBinaryView,
15761 type_: *mut BNQualifiedName,
15762 count: *mut usize,
15763 ) -> *mut BNQualifiedName;
15764}
15765unsafe extern "C" {
15766 pub fn BNGetIncomingRecursiveTypeReferences(
15767 view: *mut BNBinaryView,
15768 types: *mut BNQualifiedName,
15769 typeCount: usize,
15770 count: *mut usize,
15771 ) -> *mut BNQualifiedName;
15772}
15773unsafe extern "C" {
15774 pub fn BNRegisterGlobalFunctionRecognizer(rec: *mut BNFunctionRecognizer);
15775}
15776unsafe extern "C" {
15777 pub fn BNGetStringAtAddress(
15778 view: *mut BNBinaryView,
15779 addr: u64,
15780 strRef: *mut BNStringReference,
15781 ) -> bool;
15782}
15783unsafe extern "C" {
15784 pub fn BNGetStrings(view: *mut BNBinaryView, count: *mut usize) -> *mut BNStringReference;
15785}
15786unsafe extern "C" {
15787 pub fn BNGetStringsInRange(
15788 view: *mut BNBinaryView,
15789 start: u64,
15790 len: u64,
15791 count: *mut usize,
15792 ) -> *mut BNStringReference;
15793}
15794unsafe extern "C" {
15795 pub fn BNFreeStringReferenceList(strings: *mut BNStringReference);
15796}
15797unsafe extern "C" {
15798 pub fn BNGetDerivedStrings(view: *mut BNBinaryView, count: *mut usize) -> *mut BNDerivedString;
15799}
15800unsafe extern "C" {
15801 pub fn BNGetDerivedStringCodeReferences(
15802 view: *mut BNBinaryView,
15803 str_: *mut BNDerivedString,
15804 count: *mut usize,
15805 limit: bool,
15806 maxItems: usize,
15807 ) -> *mut BNReferenceSource;
15808}
15809unsafe extern "C" {
15810 pub fn BNFreeDerivedStringList(strings: *mut BNDerivedString, count: usize);
15811}
15812unsafe extern "C" {
15813 pub fn BNGetStackLayout(func: *mut BNFunction, count: *mut usize)
15814 -> *mut BNVariableNameAndType;
15815}
15816unsafe extern "C" {
15817 pub fn BNFreeVariableNameAndTypeList(vars: *mut BNVariableNameAndType, count: usize);
15818}
15819unsafe extern "C" {
15820 pub fn BNCreateAutoStackVariable(
15821 func: *mut BNFunction,
15822 offset: i64,
15823 type_: *mut BNTypeWithConfidence,
15824 name: *const ::std::os::raw::c_char,
15825 );
15826}
15827unsafe extern "C" {
15828 pub fn BNCreateUserStackVariable(
15829 func: *mut BNFunction,
15830 offset: i64,
15831 type_: *mut BNTypeWithConfidence,
15832 name: *const ::std::os::raw::c_char,
15833 );
15834}
15835unsafe extern "C" {
15836 pub fn BNDeleteAutoStackVariable(func: *mut BNFunction, offset: i64);
15837}
15838unsafe extern "C" {
15839 pub fn BNDeleteUserStackVariable(func: *mut BNFunction, offset: i64);
15840}
15841unsafe extern "C" {
15842 pub fn BNGetStackVariableAtFrameOffset(
15843 func: *mut BNFunction,
15844 arch: *mut BNArchitecture,
15845 addr: u64,
15846 offset: i64,
15847 var: *mut BNVariableNameAndType,
15848 ) -> bool;
15849}
15850unsafe extern "C" {
15851 pub fn BNGetStackVariableAtFrameOffsetAfterInstruction(
15852 func: *mut BNFunction,
15853 arch: *mut BNArchitecture,
15854 addr: u64,
15855 offset: i64,
15856 var: *mut BNVariableNameAndType,
15857 ) -> bool;
15858}
15859unsafe extern "C" {
15860 pub fn BNFreeVariableNameAndType(var: *mut BNVariableNameAndType);
15861}
15862unsafe extern "C" {
15863 pub fn BNGetFunctionVariables(
15864 func: *mut BNFunction,
15865 count: *mut usize,
15866 ) -> *mut BNVariableNameAndType;
15867}
15868unsafe extern "C" {
15869 pub fn BNCreateAutoVariable(
15870 func: *mut BNFunction,
15871 var: *const BNVariable,
15872 type_: *mut BNTypeWithConfidence,
15873 name: *const ::std::os::raw::c_char,
15874 ignoreDisjointUses: bool,
15875 );
15876}
15877unsafe extern "C" {
15878 pub fn BNCreateUserVariable(
15879 func: *mut BNFunction,
15880 var: *const BNVariable,
15881 type_: *mut BNTypeWithConfidence,
15882 name: *const ::std::os::raw::c_char,
15883 ignoreDisjointUses: bool,
15884 );
15885}
15886unsafe extern "C" {
15887 pub fn BNDeleteUserVariable(func: *mut BNFunction, var: *const BNVariable);
15888}
15889unsafe extern "C" {
15890 pub fn BNIsVariableUserDefined(func: *mut BNFunction, var: *const BNVariable) -> bool;
15891}
15892unsafe extern "C" {
15893 pub fn BNGetVariableType(func: *mut BNFunction, var: *const BNVariable)
15894 -> BNTypeWithConfidence;
15895}
15896unsafe extern "C" {
15897 pub fn BNGetVariableName(
15898 func: *mut BNFunction,
15899 var: *const BNVariable,
15900 ) -> *mut ::std::os::raw::c_char;
15901}
15902unsafe extern "C" {
15903 pub fn BNGetVariableNameOrDefault(
15904 func: *mut BNFunction,
15905 var: *const BNVariable,
15906 ) -> *mut ::std::os::raw::c_char;
15907}
15908unsafe extern "C" {
15909 pub fn BNGetLastSeenVariableNameOrDefault(
15910 func: *mut BNFunction,
15911 var: *const BNVariable,
15912 ) -> *mut ::std::os::raw::c_char;
15913}
15914unsafe extern "C" {
15915 pub fn BNToVariableIdentifier(var: *const BNVariable) -> u64;
15916}
15917unsafe extern "C" {
15918 pub fn BNFromVariableIdentifier(id: u64) -> BNVariable;
15919}
15920unsafe extern "C" {
15921 pub fn BNGetFunctionVariableDeadStoreElimination(
15922 func: *mut BNFunction,
15923 var: *const BNVariable,
15924 ) -> BNDeadStoreElimination;
15925}
15926unsafe extern "C" {
15927 pub fn BNSetFunctionVariableDeadStoreElimination(
15928 func: *mut BNFunction,
15929 var: *const BNVariable,
15930 mode: BNDeadStoreElimination,
15931 );
15932}
15933unsafe extern "C" {
15934 pub fn BNGetExprFolding(func: *mut BNFunction, addr: u64) -> BNExprFolding;
15935}
15936unsafe extern "C" {
15937 pub fn BNSetExprFolding(func: *mut BNFunction, addr: u64, mode: BNExprFolding);
15938}
15939unsafe extern "C" {
15940 pub fn BNIsConditionInverted(func: *mut BNFunction, addr: u64) -> bool;
15941}
15942unsafe extern "C" {
15943 pub fn BNSetConditionInverted(func: *mut BNFunction, addr: u64, invert: bool);
15944}
15945unsafe extern "C" {
15946 pub fn BNGetEarlyReturn(func: *mut BNFunction, addr: u64) -> BNEarlyReturn;
15947}
15948unsafe extern "C" {
15949 pub fn BNSetEarlyReturn(func: *mut BNFunction, addr: u64, mode: BNEarlyReturn);
15950}
15951unsafe extern "C" {
15952 pub fn BNGetSwitchRecovery(func: *mut BNFunction, addr: u64) -> BNSwitchRecovery;
15953}
15954unsafe extern "C" {
15955 pub fn BNSetSwitchRecovery(func: *mut BNFunction, addr: u64, mode: BNSwitchRecovery);
15956}
15957unsafe extern "C" {
15958 pub fn BNGetMergedVariables(func: *mut BNFunction, count: *mut usize) -> *mut BNMergedVariable;
15959}
15960unsafe extern "C" {
15961 pub fn BNFreeMergedVariableList(vars: *mut BNMergedVariable, count: usize);
15962}
15963unsafe extern "C" {
15964 pub fn BNMergeVariables(
15965 func: *mut BNFunction,
15966 target: *const BNVariable,
15967 sources: *const BNVariable,
15968 sourceCount: usize,
15969 );
15970}
15971unsafe extern "C" {
15972 pub fn BNUnmergeVariables(
15973 func: *mut BNFunction,
15974 target: *const BNVariable,
15975 sources: *const BNVariable,
15976 sourceCount: usize,
15977 );
15978}
15979unsafe extern "C" {
15980 pub fn BNGetSplitVariables(func: *mut BNFunction, count: *mut usize) -> *mut BNVariable;
15981}
15982unsafe extern "C" {
15983 pub fn BNSplitVariable(func: *mut BNFunction, var: *const BNVariable);
15984}
15985unsafe extern "C" {
15986 pub fn BNUnsplitVariable(func: *mut BNFunction, var: *const BNVariable);
15987}
15988unsafe extern "C" {
15989 pub fn BNGetFunctionCallSites(
15990 func: *mut BNFunction,
15991 count: *mut usize,
15992 ) -> *mut BNReferenceSource;
15993}
15994unsafe extern "C" {
15995 pub fn BNGetCallees(
15996 view: *mut BNBinaryView,
15997 callSite: *mut BNReferenceSource,
15998 count: *mut usize,
15999 ) -> *mut u64;
16000}
16001unsafe extern "C" {
16002 pub fn BNGetCallers(
16003 view: *mut BNBinaryView,
16004 callee: u64,
16005 count: *mut usize,
16006 ) -> *mut BNReferenceSource;
16007}
16008unsafe extern "C" {
16009 pub fn BNSetAutoIndirectBranches(
16010 func: *mut BNFunction,
16011 sourceArch: *mut BNArchitecture,
16012 source: u64,
16013 branches: *mut BNArchitectureAndAddress,
16014 count: usize,
16015 );
16016}
16017unsafe extern "C" {
16018 pub fn BNSetUserIndirectBranches(
16019 func: *mut BNFunction,
16020 sourceArch: *mut BNArchitecture,
16021 source: u64,
16022 branches: *mut BNArchitectureAndAddress,
16023 count: usize,
16024 );
16025}
16026unsafe extern "C" {
16027 pub fn BNSetGuidedSourceBlocks(
16028 func: *mut BNFunction,
16029 addresses: *mut BNArchitectureAndAddress,
16030 count: usize,
16031 );
16032}
16033unsafe extern "C" {
16034 pub fn BNAddGuidedSourceBlocks(
16035 func: *mut BNFunction,
16036 addresses: *mut BNArchitectureAndAddress,
16037 count: usize,
16038 );
16039}
16040unsafe extern "C" {
16041 pub fn BNRemoveGuidedSourceBlocks(
16042 func: *mut BNFunction,
16043 addresses: *mut BNArchitectureAndAddress,
16044 count: usize,
16045 );
16046}
16047unsafe extern "C" {
16048 pub fn BNIsGuidedSourceBlock(
16049 func: *mut BNFunction,
16050 arch: *mut BNArchitecture,
16051 addr: u64,
16052 ) -> bool;
16053}
16054unsafe extern "C" {
16055 pub fn BNGetGuidedSourceBlocks(
16056 func: *mut BNFunction,
16057 count: *mut usize,
16058 ) -> *mut BNArchitectureAndAddress;
16059}
16060unsafe extern "C" {
16061 pub fn BNHasGuidedSourceBlocks(func: *mut BNFunction) -> bool;
16062}
16063unsafe extern "C" {
16064 pub fn BNFreeArchitectureAndAddressList(addresses: *mut BNArchitectureAndAddress);
16065}
16066unsafe extern "C" {
16067 pub fn BNGetIndirectBranches(
16068 func: *mut BNFunction,
16069 count: *mut usize,
16070 ) -> *mut BNIndirectBranchInfo;
16071}
16072unsafe extern "C" {
16073 pub fn BNGetIndirectBranchesAt(
16074 func: *mut BNFunction,
16075 arch: *mut BNArchitecture,
16076 addr: u64,
16077 count: *mut usize,
16078 ) -> *mut BNIndirectBranchInfo;
16079}
16080unsafe extern "C" {
16081 pub fn BNFreeIndirectBranchList(branches: *mut BNIndirectBranchInfo);
16082}
16083unsafe extern "C" {
16084 pub fn BNGetCalleeForAnalysis(
16085 func: *mut BNFunction,
16086 platform: *mut BNPlatform,
16087 addr: u64,
16088 exact: bool,
16089 ) -> *mut BNFunction;
16090}
16091unsafe extern "C" {
16092 pub fn BNGetUnresolvedIndirectBranches(
16093 func: *mut BNFunction,
16094 count: *mut usize,
16095 ) -> *mut BNArchitectureAndAddress;
16096}
16097unsafe extern "C" {
16098 pub fn BNHasUnresolvedIndirectBranches(func: *mut BNFunction) -> bool;
16099}
16100unsafe extern "C" {
16101 pub fn BNFunctionToggleRegion(func: *mut BNFunction, hash: u64);
16102}
16103unsafe extern "C" {
16104 pub fn BNFunctionIsRegionCollapsed(func: *mut BNFunction, hash: u64) -> bool;
16105}
16106unsafe extern "C" {
16107 pub fn BNFunctionExpandAll(func: *mut BNFunction);
16108}
16109unsafe extern "C" {
16110 pub fn BNFunctionCollapseRegion(func: *mut BNFunction, hash: u64);
16111}
16112unsafe extern "C" {
16113 pub fn BNFunctionExpandRegion(func: *mut BNFunction, hash: u64);
16114}
16115unsafe extern "C" {
16116 pub fn BNFunctionStoreMetadata(
16117 func: *mut BNFunction,
16118 key: *const ::std::os::raw::c_char,
16119 value: *mut BNMetadata,
16120 isAuto: bool,
16121 );
16122}
16123unsafe extern "C" {
16124 pub fn BNFunctionQueryMetadata(
16125 func: *mut BNFunction,
16126 key: *const ::std::os::raw::c_char,
16127 ) -> *mut BNMetadata;
16128}
16129unsafe extern "C" {
16130 pub fn BNFunctionRemoveMetadata(func: *mut BNFunction, key: *const ::std::os::raw::c_char);
16131}
16132unsafe extern "C" {
16133 pub fn BNFunctionGetMetadata(func: *mut BNFunction) -> *mut BNMetadata;
16134}
16135unsafe extern "C" {
16136 pub fn BNFunctionGetAutoMetadata(func: *mut BNFunction) -> *mut BNMetadata;
16137}
16138unsafe extern "C" {
16139 pub fn BNSetAutoCallTypeAdjustment(
16140 func: *mut BNFunction,
16141 arch: *mut BNArchitecture,
16142 addr: u64,
16143 type_: *mut BNTypeWithConfidence,
16144 );
16145}
16146unsafe extern "C" {
16147 pub fn BNSetUserCallTypeAdjustment(
16148 func: *mut BNFunction,
16149 arch: *mut BNArchitecture,
16150 addr: u64,
16151 type_: *mut BNTypeWithConfidence,
16152 );
16153}
16154unsafe extern "C" {
16155 pub fn BNSetAutoCallStackAdjustment(
16156 func: *mut BNFunction,
16157 arch: *mut BNArchitecture,
16158 addr: u64,
16159 adjust: i64,
16160 confidence: u8,
16161 );
16162}
16163unsafe extern "C" {
16164 pub fn BNSetUserCallStackAdjustment(
16165 func: *mut BNFunction,
16166 arch: *mut BNArchitecture,
16167 addr: u64,
16168 adjust: i64,
16169 confidence: u8,
16170 );
16171}
16172unsafe extern "C" {
16173 pub fn BNSetAutoCallRegisterStackAdjustment(
16174 func: *mut BNFunction,
16175 arch: *mut BNArchitecture,
16176 addr: u64,
16177 adjust: *mut BNRegisterStackAdjustment,
16178 count: usize,
16179 );
16180}
16181unsafe extern "C" {
16182 pub fn BNSetUserCallRegisterStackAdjustment(
16183 func: *mut BNFunction,
16184 arch: *mut BNArchitecture,
16185 addr: u64,
16186 adjust: *mut BNRegisterStackAdjustment,
16187 count: usize,
16188 );
16189}
16190unsafe extern "C" {
16191 pub fn BNSetAutoCallRegisterStackAdjustmentForRegisterStack(
16192 func: *mut BNFunction,
16193 arch: *mut BNArchitecture,
16194 addr: u64,
16195 regStack: u32,
16196 adjust: i32,
16197 confidence: u8,
16198 );
16199}
16200unsafe extern "C" {
16201 pub fn BNSetUserCallRegisterStackAdjustmentForRegisterStack(
16202 func: *mut BNFunction,
16203 arch: *mut BNArchitecture,
16204 addr: u64,
16205 regStack: u32,
16206 adjust: i32,
16207 confidence: u8,
16208 );
16209}
16210unsafe extern "C" {
16211 pub fn BNGetCallTypeAdjustment(
16212 func: *mut BNFunction,
16213 arch: *mut BNArchitecture,
16214 addr: u64,
16215 ) -> BNTypeWithConfidence;
16216}
16217unsafe extern "C" {
16218 pub fn BNGetCallStackAdjustment(
16219 func: *mut BNFunction,
16220 arch: *mut BNArchitecture,
16221 addr: u64,
16222 ) -> BNOffsetWithConfidence;
16223}
16224unsafe extern "C" {
16225 pub fn BNGetCallRegisterStackAdjustment(
16226 func: *mut BNFunction,
16227 arch: *mut BNArchitecture,
16228 addr: u64,
16229 count: *mut usize,
16230 ) -> *mut BNRegisterStackAdjustment;
16231}
16232unsafe extern "C" {
16233 pub fn BNGetCallRegisterStackAdjustmentForRegisterStack(
16234 func: *mut BNFunction,
16235 arch: *mut BNArchitecture,
16236 addr: u64,
16237 regStack: u32,
16238 ) -> BNRegisterStackAdjustment;
16239}
16240unsafe extern "C" {
16241 pub fn BNIsCallInstruction(func: *mut BNFunction, arch: *mut BNArchitecture, addr: u64)
16242 -> bool;
16243}
16244unsafe extern "C" {
16245 pub fn BNGetFunctionBlockAnnotations(
16246 func: *mut BNFunction,
16247 arch: *mut BNArchitecture,
16248 addr: u64,
16249 count: *mut usize,
16250 ) -> *mut BNInstructionTextLine;
16251}
16252unsafe extern "C" {
16253 pub fn BNGetIntegerConstantDisplayType(
16254 func: *mut BNFunction,
16255 arch: *mut BNArchitecture,
16256 instrAddr: u64,
16257 value: u64,
16258 operand: usize,
16259 ) -> BNIntegerDisplayType;
16260}
16261unsafe extern "C" {
16262 pub fn BNSetIntegerConstantDisplayType(
16263 func: *mut BNFunction,
16264 arch: *mut BNArchitecture,
16265 instrAddr: u64,
16266 value: u64,
16267 operand: usize,
16268 type_: BNIntegerDisplayType,
16269 typeID: *const ::std::os::raw::c_char,
16270 );
16271}
16272unsafe extern "C" {
16273 pub fn BNGetIntegerConstantDisplayTypeEnumerationType(
16274 func: *mut BNFunction,
16275 arch: *mut BNArchitecture,
16276 instrAddr: u64,
16277 value: u64,
16278 operand: usize,
16279 ) -> *mut ::std::os::raw::c_char;
16280}
16281unsafe extern "C" {
16282 pub fn BNIsFunctionTooLarge(func: *mut BNFunction) -> bool;
16283}
16284unsafe extern "C" {
16285 pub fn BNIsFunctionAnalysisSkipped(func: *mut BNFunction) -> bool;
16286}
16287unsafe extern "C" {
16288 pub fn BNGetAnalysisSkipReason(func: *mut BNFunction) -> BNAnalysisSkipReason;
16289}
16290unsafe extern "C" {
16291 pub fn BNGetFunctionAnalysisSkipOverride(
16292 func: *mut BNFunction,
16293 ) -> BNFunctionAnalysisSkipOverride;
16294}
16295unsafe extern "C" {
16296 pub fn BNSetFunctionAnalysisSkipOverride(
16297 func: *mut BNFunction,
16298 skip: BNFunctionAnalysisSkipOverride,
16299 );
16300}
16301unsafe extern "C" {
16302 pub fn BNGetGotoLabelName(func: *mut BNFunction, labelId: u64) -> *mut ::std::os::raw::c_char;
16303}
16304unsafe extern "C" {
16305 pub fn BNSetUserGotoLabelName(
16306 func: *mut BNFunction,
16307 labelId: u64,
16308 name: *const ::std::os::raw::c_char,
16309 );
16310}
16311unsafe extern "C" {
16312 #[doc = " BNAnalyzeBasicBlockContext operations"]
16313 pub fn BNAnalyzeBasicBlocksContextCreateBasicBlock(
16314 abb: *mut BNBasicBlockAnalysisContext,
16315 arch: *mut BNArchitecture,
16316 addr: u64,
16317 ) -> *mut BNBasicBlock;
16318}
16319unsafe extern "C" {
16320 pub fn BNAnalyzeBasicBlocksContextAddBasicBlockToFunction(
16321 abb: *mut BNBasicBlockAnalysisContext,
16322 block: *mut BNBasicBlock,
16323 );
16324}
16325unsafe extern "C" {
16326 pub fn BNAnalyzeBasicBlocksContextAddTempReference(
16327 abb: *mut BNBasicBlockAnalysisContext,
16328 target: *mut BNFunction,
16329 );
16330}
16331unsafe extern "C" {
16332 pub fn BNAnalyzeBasicBlocksContextSetDirectCodeReferences(
16333 abb: *mut BNBasicBlockAnalysisContext,
16334 sources: *mut BNArchitectureAndAddress,
16335 targets: *mut u64,
16336 count: usize,
16337 );
16338}
16339unsafe extern "C" {
16340 pub fn BNAnalyzeBasicBlocksContextSetDirectNoReturnCalls(
16341 abb: *mut BNBasicBlockAnalysisContext,
16342 sources: *mut BNArchitectureAndAddress,
16343 count: usize,
16344 );
16345}
16346unsafe extern "C" {
16347 pub fn BNAnalyzeBasicBlocksContextSetContextualFunctionReturns(
16348 abb: *mut BNBasicBlockAnalysisContext,
16349 sources: *mut BNArchitectureAndAddress,
16350 values: *mut bool,
16351 count: usize,
16352 );
16353}
16354unsafe extern "C" {
16355 pub fn BNAnalyzeBasicBlocksContextSetHaltedDisassemblyAddresses(
16356 abb: *mut BNBasicBlockAnalysisContext,
16357 sources: *mut BNArchitectureAndAddress,
16358 count: usize,
16359 );
16360}
16361unsafe extern "C" {
16362 pub fn BNAnalyzeBasicBlocksContextSetInlinedUnresolvedIndirectBranches(
16363 abb: *mut BNBasicBlockAnalysisContext,
16364 locations: *mut BNArchitectureAndAddress,
16365 count: usize,
16366 );
16367}
16368unsafe extern "C" {
16369 pub fn BNGetParametersForAnalysis(view: *mut BNBinaryView) -> BNAnalysisParameters;
16370}
16371unsafe extern "C" {
16372 pub fn BNSetParametersForAnalysis(view: *mut BNBinaryView, params: BNAnalysisParameters);
16373}
16374unsafe extern "C" {
16375 pub fn BNGetMaxFunctionSizeForAnalysis(view: *mut BNBinaryView) -> u64;
16376}
16377unsafe extern "C" {
16378 pub fn BNSetMaxFunctionSizeForAnalysis(view: *mut BNBinaryView, size: u64);
16379}
16380unsafe extern "C" {
16381 pub fn BNGetNewAutoFunctionAnalysisSuppressed(view: *mut BNBinaryView) -> bool;
16382}
16383unsafe extern "C" {
16384 pub fn BNSetNewAutoFunctionAnalysisSuppressed(view: *mut BNBinaryView, suppress: bool);
16385}
16386unsafe extern "C" {
16387 pub fn BNAddAnalysisCompletionEvent(
16388 view: *mut BNBinaryView,
16389 ctxt: *mut ::std::os::raw::c_void,
16390 callback: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
16391 ) -> *mut BNAnalysisCompletionEvent;
16392}
16393unsafe extern "C" {
16394 pub fn BNNewAnalysisCompletionEventReference(
16395 event: *mut BNAnalysisCompletionEvent,
16396 ) -> *mut BNAnalysisCompletionEvent;
16397}
16398unsafe extern "C" {
16399 pub fn BNFreeAnalysisCompletionEvent(event: *mut BNAnalysisCompletionEvent);
16400}
16401unsafe extern "C" {
16402 pub fn BNCancelAnalysisCompletionEvent(event: *mut BNAnalysisCompletionEvent);
16403}
16404unsafe extern "C" {
16405 pub fn BNShouldSkipTargetAnalysis(
16406 view: *mut BNBinaryView,
16407 source: *mut BNArchitectureAndAddress,
16408 sourceFunc: *mut BNFunction,
16409 sourceEnd: u64,
16410 target: *mut BNArchitectureAndAddress,
16411 ) -> bool;
16412}
16413unsafe extern "C" {
16414 pub fn BNGetAnalysisInfo(view: *mut BNBinaryView) -> *mut BNAnalysisInfo;
16415}
16416unsafe extern "C" {
16417 pub fn BNFreeAnalysisInfo(info: *mut BNAnalysisInfo);
16418}
16419unsafe extern "C" {
16420 pub fn BNGetAnalysisProgress(view: *mut BNBinaryView) -> BNAnalysisProgress;
16421}
16422unsafe extern "C" {
16423 pub fn BNGetAnalysisState(view: *mut BNBinaryView) -> BNAnalysisState;
16424}
16425unsafe extern "C" {
16426 pub fn BNGetBackgroundAnalysisTask(view: *mut BNBinaryView) -> *mut BNBackgroundTask;
16427}
16428unsafe extern "C" {
16429 pub fn BNGetNextFunctionStartAfterAddress(view: *mut BNBinaryView, addr: u64) -> u64;
16430}
16431unsafe extern "C" {
16432 pub fn BNGetNextBasicBlockStartAfterAddress(view: *mut BNBinaryView, addr: u64) -> u64;
16433}
16434unsafe extern "C" {
16435 pub fn BNGetNextDataAfterAddress(view: *mut BNBinaryView, addr: u64) -> u64;
16436}
16437unsafe extern "C" {
16438 pub fn BNGetNextDataVariableStartAfterAddress(view: *mut BNBinaryView, addr: u64) -> u64;
16439}
16440unsafe extern "C" {
16441 pub fn BNGetPreviousFunctionStartBeforeAddress(view: *mut BNBinaryView, addr: u64) -> u64;
16442}
16443unsafe extern "C" {
16444 pub fn BNGetPreviousBasicBlockStartBeforeAddress(view: *mut BNBinaryView, addr: u64) -> u64;
16445}
16446unsafe extern "C" {
16447 pub fn BNGetPreviousBasicBlockEndBeforeAddress(view: *mut BNBinaryView, addr: u64) -> u64;
16448}
16449unsafe extern "C" {
16450 pub fn BNGetPreviousDataBeforeAddress(view: *mut BNBinaryView, addr: u64) -> u64;
16451}
16452unsafe extern "C" {
16453 pub fn BNGetPreviousDataVariableStartBeforeAddress(view: *mut BNBinaryView, addr: u64) -> u64;
16454}
16455unsafe extern "C" {
16456 pub fn BNCreateLinearViewDisassembly(
16457 view: *mut BNBinaryView,
16458 settings: *mut BNDisassemblySettings,
16459 ) -> *mut BNLinearViewObject;
16460}
16461unsafe extern "C" {
16462 pub fn BNCreateLinearViewLiftedIL(
16463 view: *mut BNBinaryView,
16464 settings: *mut BNDisassemblySettings,
16465 ) -> *mut BNLinearViewObject;
16466}
16467unsafe extern "C" {
16468 pub fn BNCreateLinearViewLowLevelIL(
16469 view: *mut BNBinaryView,
16470 settings: *mut BNDisassemblySettings,
16471 ) -> *mut BNLinearViewObject;
16472}
16473unsafe extern "C" {
16474 pub fn BNCreateLinearViewLowLevelILSSAForm(
16475 view: *mut BNBinaryView,
16476 settings: *mut BNDisassemblySettings,
16477 ) -> *mut BNLinearViewObject;
16478}
16479unsafe extern "C" {
16480 pub fn BNCreateLinearViewMediumLevelIL(
16481 view: *mut BNBinaryView,
16482 settings: *mut BNDisassemblySettings,
16483 ) -> *mut BNLinearViewObject;
16484}
16485unsafe extern "C" {
16486 pub fn BNCreateLinearViewMediumLevelILSSAForm(
16487 view: *mut BNBinaryView,
16488 settings: *mut BNDisassemblySettings,
16489 ) -> *mut BNLinearViewObject;
16490}
16491unsafe extern "C" {
16492 pub fn BNCreateLinearViewMappedMediumLevelIL(
16493 view: *mut BNBinaryView,
16494 settings: *mut BNDisassemblySettings,
16495 ) -> *mut BNLinearViewObject;
16496}
16497unsafe extern "C" {
16498 pub fn BNCreateLinearViewMappedMediumLevelILSSAForm(
16499 view: *mut BNBinaryView,
16500 settings: *mut BNDisassemblySettings,
16501 ) -> *mut BNLinearViewObject;
16502}
16503unsafe extern "C" {
16504 pub fn BNCreateLinearViewHighLevelIL(
16505 view: *mut BNBinaryView,
16506 settings: *mut BNDisassemblySettings,
16507 ) -> *mut BNLinearViewObject;
16508}
16509unsafe extern "C" {
16510 pub fn BNCreateLinearViewHighLevelILSSAForm(
16511 view: *mut BNBinaryView,
16512 settings: *mut BNDisassemblySettings,
16513 ) -> *mut BNLinearViewObject;
16514}
16515unsafe extern "C" {
16516 pub fn BNCreateLinearViewLanguageRepresentation(
16517 view: *mut BNBinaryView,
16518 settings: *mut BNDisassemblySettings,
16519 language: *const ::std::os::raw::c_char,
16520 ) -> *mut BNLinearViewObject;
16521}
16522unsafe extern "C" {
16523 pub fn BNCreateLinearViewDataOnly(
16524 view: *mut BNBinaryView,
16525 settings: *mut BNDisassemblySettings,
16526 ) -> *mut BNLinearViewObject;
16527}
16528unsafe extern "C" {
16529 pub fn BNCreateLinearViewSingleFunctionDisassembly(
16530 func: *mut BNFunction,
16531 settings: *mut BNDisassemblySettings,
16532 ) -> *mut BNLinearViewObject;
16533}
16534unsafe extern "C" {
16535 pub fn BNCreateLinearViewSingleFunctionLiftedIL(
16536 func: *mut BNFunction,
16537 settings: *mut BNDisassemblySettings,
16538 ) -> *mut BNLinearViewObject;
16539}
16540unsafe extern "C" {
16541 pub fn BNCreateLinearViewSingleFunctionLowLevelIL(
16542 func: *mut BNFunction,
16543 settings: *mut BNDisassemblySettings,
16544 ) -> *mut BNLinearViewObject;
16545}
16546unsafe extern "C" {
16547 pub fn BNCreateLinearViewSingleFunctionLowLevelILSSAForm(
16548 func: *mut BNFunction,
16549 settings: *mut BNDisassemblySettings,
16550 ) -> *mut BNLinearViewObject;
16551}
16552unsafe extern "C" {
16553 pub fn BNCreateLinearViewSingleFunctionMediumLevelIL(
16554 func: *mut BNFunction,
16555 settings: *mut BNDisassemblySettings,
16556 ) -> *mut BNLinearViewObject;
16557}
16558unsafe extern "C" {
16559 pub fn BNCreateLinearViewSingleFunctionMediumLevelILSSAForm(
16560 func: *mut BNFunction,
16561 settings: *mut BNDisassemblySettings,
16562 ) -> *mut BNLinearViewObject;
16563}
16564unsafe extern "C" {
16565 pub fn BNCreateLinearViewSingleFunctionMappedMediumLevelIL(
16566 func: *mut BNFunction,
16567 settings: *mut BNDisassemblySettings,
16568 ) -> *mut BNLinearViewObject;
16569}
16570unsafe extern "C" {
16571 pub fn BNCreateLinearViewSingleFunctionMappedMediumLevelILSSAForm(
16572 func: *mut BNFunction,
16573 settings: *mut BNDisassemblySettings,
16574 ) -> *mut BNLinearViewObject;
16575}
16576unsafe extern "C" {
16577 pub fn BNCreateLinearViewSingleFunctionHighLevelIL(
16578 func: *mut BNFunction,
16579 settings: *mut BNDisassemblySettings,
16580 ) -> *mut BNLinearViewObject;
16581}
16582unsafe extern "C" {
16583 pub fn BNCreateLinearViewSingleFunctionHighLevelILSSAForm(
16584 func: *mut BNFunction,
16585 settings: *mut BNDisassemblySettings,
16586 ) -> *mut BNLinearViewObject;
16587}
16588unsafe extern "C" {
16589 pub fn BNCreateLinearViewSingleFunctionLanguageRepresentation(
16590 func: *mut BNFunction,
16591 settings: *mut BNDisassemblySettings,
16592 language: *const ::std::os::raw::c_char,
16593 ) -> *mut BNLinearViewObject;
16594}
16595unsafe extern "C" {
16596 pub fn BNNewLinearViewObjectReference(obj: *mut BNLinearViewObject) -> *mut BNLinearViewObject;
16597}
16598unsafe extern "C" {
16599 pub fn BNFreeLinearViewObject(obj: *mut BNLinearViewObject);
16600}
16601unsafe extern "C" {
16602 pub fn BNGetFirstLinearViewObjectChild(obj: *mut BNLinearViewObject)
16603 -> *mut BNLinearViewObject;
16604}
16605unsafe extern "C" {
16606 pub fn BNGetLastLinearViewObjectChild(obj: *mut BNLinearViewObject) -> *mut BNLinearViewObject;
16607}
16608unsafe extern "C" {
16609 pub fn BNGetPreviousLinearViewObjectChild(
16610 parent: *mut BNLinearViewObject,
16611 child: *mut BNLinearViewObject,
16612 ) -> *mut BNLinearViewObject;
16613}
16614unsafe extern "C" {
16615 pub fn BNGetNextLinearViewObjectChild(
16616 parent: *mut BNLinearViewObject,
16617 child: *mut BNLinearViewObject,
16618 ) -> *mut BNLinearViewObject;
16619}
16620unsafe extern "C" {
16621 pub fn BNGetLinearViewObjectChildForAddress(
16622 parent: *mut BNLinearViewObject,
16623 addr: u64,
16624 ) -> *mut BNLinearViewObject;
16625}
16626unsafe extern "C" {
16627 pub fn BNGetLinearViewObjectChildForIdentifier(
16628 parent: *mut BNLinearViewObject,
16629 id: *mut BNLinearViewObjectIdentifier,
16630 ) -> *mut BNLinearViewObject;
16631}
16632unsafe extern "C" {
16633 pub fn BNGetLinearViewObjectLines(
16634 obj: *mut BNLinearViewObject,
16635 prev: *mut BNLinearViewObject,
16636 next: *mut BNLinearViewObject,
16637 count: *mut usize,
16638 ) -> *mut BNLinearDisassemblyLine;
16639}
16640unsafe extern "C" {
16641 pub fn BNFreeLinearDisassemblyLines(lines: *mut BNLinearDisassemblyLine, count: usize);
16642}
16643unsafe extern "C" {
16644 pub fn BNGetLinearViewObjectStart(obj: *mut BNLinearViewObject) -> u64;
16645}
16646unsafe extern "C" {
16647 pub fn BNGetLinearViewObjectEnd(obj: *mut BNLinearViewObject) -> u64;
16648}
16649unsafe extern "C" {
16650 pub fn BNGetLinearViewObjectIdentifier(
16651 obj: *mut BNLinearViewObject,
16652 ) -> BNLinearViewObjectIdentifier;
16653}
16654unsafe extern "C" {
16655 pub fn BNFreeLinearViewObjectIdentifier(id: *mut BNLinearViewObjectIdentifier);
16656}
16657unsafe extern "C" {
16658 pub fn BNCompareLinearViewObjectChildren(
16659 obj: *mut BNLinearViewObject,
16660 a: *mut BNLinearViewObject,
16661 b: *mut BNLinearViewObject,
16662 ) -> ::std::os::raw::c_int;
16663}
16664unsafe extern "C" {
16665 pub fn BNGetLinearViewObjectOrderingIndexTotal(obj: *mut BNLinearViewObject) -> u64;
16666}
16667unsafe extern "C" {
16668 pub fn BNGetLinearViewObjectOrderingIndexForChild(
16669 parent: *mut BNLinearViewObject,
16670 child: *mut BNLinearViewObject,
16671 ) -> u64;
16672}
16673unsafe extern "C" {
16674 pub fn BNGetLinearViewObjectChildForOrderingIndex(
16675 parent: *mut BNLinearViewObject,
16676 idx: u64,
16677 ) -> *mut BNLinearViewObject;
16678}
16679unsafe extern "C" {
16680 pub fn BNCreateLinearViewCursor(root: *mut BNLinearViewObject) -> *mut BNLinearViewCursor;
16681}
16682unsafe extern "C" {
16683 pub fn BNDuplicateLinearViewCursor(cursor: *mut BNLinearViewCursor) -> *mut BNLinearViewCursor;
16684}
16685unsafe extern "C" {
16686 pub fn BNNewLinearViewCursorReference(
16687 cursor: *mut BNLinearViewCursor,
16688 ) -> *mut BNLinearViewCursor;
16689}
16690unsafe extern "C" {
16691 pub fn BNFreeLinearViewCursor(cursor: *mut BNLinearViewCursor);
16692}
16693unsafe extern "C" {
16694 pub fn BNIsLinearViewCursorBeforeBegin(cursor: *mut BNLinearViewCursor) -> bool;
16695}
16696unsafe extern "C" {
16697 pub fn BNIsLinearViewCursorAfterEnd(cursor: *mut BNLinearViewCursor) -> bool;
16698}
16699unsafe extern "C" {
16700 pub fn BNGetLinearViewCursorCurrentObject(
16701 cursor: *mut BNLinearViewCursor,
16702 ) -> *mut BNLinearViewObject;
16703}
16704unsafe extern "C" {
16705 pub fn BNGetLinearViewCursorPath(
16706 cursor: *mut BNLinearViewCursor,
16707 count: *mut usize,
16708 ) -> *mut BNLinearViewObjectIdentifier;
16709}
16710unsafe extern "C" {
16711 pub fn BNFreeLinearViewCursorPath(objs: *mut BNLinearViewObjectIdentifier, count: usize);
16712}
16713unsafe extern "C" {
16714 pub fn BNGetLinearViewCursorPathObjects(
16715 cursor: *mut BNLinearViewCursor,
16716 count: *mut usize,
16717 ) -> *mut *mut BNLinearViewObject;
16718}
16719unsafe extern "C" {
16720 pub fn BNFreeLinearViewCursorPathObjects(objs: *mut *mut BNLinearViewObject, count: usize);
16721}
16722unsafe extern "C" {
16723 pub fn BNGetLinearViewCursorOrderingIndex(cursor: *mut BNLinearViewCursor) -> BNAddressRange;
16724}
16725unsafe extern "C" {
16726 pub fn BNGetLinearViewCursorOrderingIndexTotal(cursor: *mut BNLinearViewCursor) -> u64;
16727}
16728unsafe extern "C" {
16729 pub fn BNSeekLinearViewCursorToBegin(cursor: *mut BNLinearViewCursor);
16730}
16731unsafe extern "C" {
16732 pub fn BNSeekLinearViewCursorToEnd(cursor: *mut BNLinearViewCursor);
16733}
16734unsafe extern "C" {
16735 pub fn BNSeekLinearViewCursorToAddress(cursor: *mut BNLinearViewCursor, addr: u64);
16736}
16737unsafe extern "C" {
16738 pub fn BNSeekLinearViewCursorToPath(
16739 cursor: *mut BNLinearViewCursor,
16740 ids: *mut BNLinearViewObjectIdentifier,
16741 count: usize,
16742 ) -> bool;
16743}
16744unsafe extern "C" {
16745 pub fn BNSeekLinearViewCursorToPathAndAddress(
16746 cursor: *mut BNLinearViewCursor,
16747 ids: *mut BNLinearViewObjectIdentifier,
16748 count: usize,
16749 addr: u64,
16750 ) -> bool;
16751}
16752unsafe extern "C" {
16753 pub fn BNSeekLinearViewCursorToCursorPath(
16754 cursor: *mut BNLinearViewCursor,
16755 path: *mut BNLinearViewCursor,
16756 ) -> bool;
16757}
16758unsafe extern "C" {
16759 pub fn BNSeekLinearViewCursorToCursorPathAndAddress(
16760 cursor: *mut BNLinearViewCursor,
16761 path: *mut BNLinearViewCursor,
16762 addr: u64,
16763 ) -> bool;
16764}
16765unsafe extern "C" {
16766 pub fn BNSeekLinearViewCursorToOrderingIndex(cursor: *mut BNLinearViewCursor, idx: u64);
16767}
16768unsafe extern "C" {
16769 pub fn BNLinearViewCursorNext(cursor: *mut BNLinearViewCursor) -> bool;
16770}
16771unsafe extern "C" {
16772 pub fn BNLinearViewCursorPrevious(cursor: *mut BNLinearViewCursor) -> bool;
16773}
16774unsafe extern "C" {
16775 pub fn BNGetLinearViewCursorLines(
16776 cursor: *mut BNLinearViewCursor,
16777 count: *mut usize,
16778 ) -> *mut BNLinearDisassemblyLine;
16779}
16780unsafe extern "C" {
16781 pub fn BNCompareLinearViewCursors(
16782 a: *mut BNLinearViewCursor,
16783 b: *mut BNLinearViewCursor,
16784 ) -> ::std::os::raw::c_int;
16785}
16786unsafe extern "C" {
16787 pub fn BNGetLinearViewCursorRenderLayers(
16788 cursor: *mut BNLinearViewCursor,
16789 count: *mut usize,
16790 ) -> *mut *mut BNRenderLayer;
16791}
16792unsafe extern "C" {
16793 pub fn BNAddLinearViewCursorRenderLayer(
16794 cursor: *mut BNLinearViewCursor,
16795 layer: *mut BNRenderLayer,
16796 );
16797}
16798unsafe extern "C" {
16799 pub fn BNRemoveLinearViewCursorRenderLayer(
16800 cursor: *mut BNLinearViewCursor,
16801 layer: *mut BNRenderLayer,
16802 );
16803}
16804unsafe extern "C" {
16805 pub fn BNDefineDataVariable(
16806 view: *mut BNBinaryView,
16807 addr: u64,
16808 type_: *mut BNTypeWithConfidence,
16809 );
16810}
16811unsafe extern "C" {
16812 pub fn BNDefineUserDataVariable(
16813 view: *mut BNBinaryView,
16814 addr: u64,
16815 type_: *mut BNTypeWithConfidence,
16816 );
16817}
16818unsafe extern "C" {
16819 pub fn BNUndefineDataVariable(view: *mut BNBinaryView, addr: u64, blacklist: bool);
16820}
16821unsafe extern "C" {
16822 pub fn BNUndefineUserDataVariable(view: *mut BNBinaryView, addr: u64);
16823}
16824unsafe extern "C" {
16825 pub fn BNGetDataVariables(view: *mut BNBinaryView, count: *mut usize) -> *mut BNDataVariable;
16826}
16827unsafe extern "C" {
16828 pub fn BNFreeDataVariable(var: *mut BNDataVariable);
16829}
16830unsafe extern "C" {
16831 pub fn BNFreeDataVariables(vars: *mut BNDataVariable, count: usize);
16832}
16833unsafe extern "C" {
16834 pub fn BNFreeDataVariableAndName(var: *mut BNDataVariableAndName);
16835}
16836unsafe extern "C" {
16837 pub fn BNFreeDataVariablesAndName(vars: *mut BNDataVariableAndName, count: usize);
16838}
16839unsafe extern "C" {
16840 pub fn BNFreeDataVariableAndNameAndDebugParserList(
16841 vars: *mut BNDataVariableAndNameAndDebugParser,
16842 count: usize,
16843 );
16844}
16845unsafe extern "C" {
16846 pub fn BNGetDataVariableAtAddress(
16847 view: *mut BNBinaryView,
16848 addr: u64,
16849 var: *mut BNDataVariable,
16850 ) -> bool;
16851}
16852unsafe extern "C" {
16853 pub fn BNParseTypeString(
16854 view: *mut BNBinaryView,
16855 text: *const ::std::os::raw::c_char,
16856 result: *mut BNQualifiedNameAndType,
16857 errors: *mut *mut ::std::os::raw::c_char,
16858 typesAllowRedefinition: *mut BNQualifiedNameList,
16859 importDepencencies: bool,
16860 ) -> bool;
16861}
16862unsafe extern "C" {
16863 pub fn BNParseTypesString(
16864 view: *mut BNBinaryView,
16865 text: *const ::std::os::raw::c_char,
16866 options: *const *const ::std::os::raw::c_char,
16867 optionCount: usize,
16868 includeDirs: *const *const ::std::os::raw::c_char,
16869 includeDirCount: usize,
16870 result: *mut BNTypeParserResult,
16871 errors: *mut *mut ::std::os::raw::c_char,
16872 typesAllowRedefinition: *mut BNQualifiedNameList,
16873 importDepencencies: bool,
16874 ) -> bool;
16875}
16876unsafe extern "C" {
16877 pub fn BNFreeQualifiedNameAndType(obj: *mut BNQualifiedNameAndType);
16878}
16879unsafe extern "C" {
16880 pub fn BNFreeQualifiedNameAndTypeArray(obj: *mut BNQualifiedNameAndType, count: usize);
16881}
16882unsafe extern "C" {
16883 pub fn BNFreeQualifiedNameTypeAndId(obj: *mut BNQualifiedNameTypeAndId);
16884}
16885unsafe extern "C" {
16886 pub fn BNEscapeTypeName(
16887 name: *const ::std::os::raw::c_char,
16888 escaping: BNTokenEscapingType,
16889 ) -> *mut ::std::os::raw::c_char;
16890}
16891unsafe extern "C" {
16892 pub fn BNUnescapeTypeName(
16893 name: *const ::std::os::raw::c_char,
16894 escaping: BNTokenEscapingType,
16895 ) -> *mut ::std::os::raw::c_char;
16896}
16897unsafe extern "C" {
16898 pub fn BNGetAnalysisTypeList(
16899 view: *mut BNBinaryView,
16900 count: *mut usize,
16901 ) -> *mut BNQualifiedNameAndType;
16902}
16903unsafe extern "C" {
16904 pub fn BNGetAnalysisDependencySortedTypeList(
16905 view: *mut BNBinaryView,
16906 count: *mut usize,
16907 ) -> *mut BNQualifiedNameAndType;
16908}
16909unsafe extern "C" {
16910 pub fn BNFreeTypeAndNameList(types: *mut BNQualifiedNameAndType, count: usize);
16911}
16912unsafe extern "C" {
16913 pub fn BNFreeTypeIdList(types: *mut BNQualifiedNameTypeAndId, count: usize);
16914}
16915unsafe extern "C" {
16916 pub fn BNGetAnalysisTypeNames(
16917 view: *mut BNBinaryView,
16918 count: *mut usize,
16919 matching: *const ::std::os::raw::c_char,
16920 ) -> *mut BNQualifiedName;
16921}
16922unsafe extern "C" {
16923 pub fn BNFreeTypeNameList(names: *mut BNQualifiedName, count: usize);
16924}
16925unsafe extern "C" {
16926 pub fn BNGetAnalysisTypeContainer(view: *mut BNBinaryView) -> *mut BNTypeContainer;
16927}
16928unsafe extern "C" {
16929 pub fn BNGetAnalysisAutoTypeContainer(view: *mut BNBinaryView) -> *mut BNTypeContainer;
16930}
16931unsafe extern "C" {
16932 pub fn BNGetAnalysisUserTypeContainer(view: *mut BNBinaryView) -> *mut BNTypeContainer;
16933}
16934unsafe extern "C" {
16935 pub fn BNGetAnalysisTypeByName(
16936 view: *mut BNBinaryView,
16937 name: *mut BNQualifiedName,
16938 ) -> *mut BNType;
16939}
16940unsafe extern "C" {
16941 pub fn BNGetAnalysisTypeByRef(
16942 view: *mut BNBinaryView,
16943 ref_: *mut BNNamedTypeReference,
16944 ) -> *mut BNType;
16945}
16946unsafe extern "C" {
16947 pub fn BNGetAnalysisTypeById(
16948 view: *mut BNBinaryView,
16949 id: *const ::std::os::raw::c_char,
16950 ) -> *mut BNType;
16951}
16952unsafe extern "C" {
16953 pub fn BNGetAnalysisTypeId(
16954 view: *mut BNBinaryView,
16955 name: *mut BNQualifiedName,
16956 ) -> *mut ::std::os::raw::c_char;
16957}
16958unsafe extern "C" {
16959 pub fn BNGetAnalysisTypeNameById(
16960 view: *mut BNBinaryView,
16961 id: *const ::std::os::raw::c_char,
16962 ) -> BNQualifiedName;
16963}
16964unsafe extern "C" {
16965 pub fn BNIsAnalysisTypeAutoDefined(view: *mut BNBinaryView, name: *mut BNQualifiedName)
16966 -> bool;
16967}
16968unsafe extern "C" {
16969 pub fn BNDefineAnalysisType(
16970 view: *mut BNBinaryView,
16971 id: *const ::std::os::raw::c_char,
16972 defaultName: *mut BNQualifiedName,
16973 type_: *mut BNType,
16974 ) -> BNQualifiedName;
16975}
16976unsafe extern "C" {
16977 pub fn BNDefineUserAnalysisType(
16978 view: *mut BNBinaryView,
16979 name: *mut BNQualifiedName,
16980 type_: *mut BNType,
16981 );
16982}
16983unsafe extern "C" {
16984 pub fn BNDefineAnalysisTypes(
16985 view: *mut BNBinaryView,
16986 types: *mut BNQualifiedNameTypeAndId,
16987 count: usize,
16988 progress: BNProgressFunction,
16989 progressContext: *mut ::std::os::raw::c_void,
16990 resultIds: *mut *mut *mut ::std::os::raw::c_char,
16991 resultNames: *mut *mut BNQualifiedName,
16992 ) -> usize;
16993}
16994unsafe extern "C" {
16995 pub fn BNDefineUserAnalysisTypes(
16996 view: *mut BNBinaryView,
16997 types: *mut BNQualifiedNameAndType,
16998 count: usize,
16999 progress: BNProgressFunction,
17000 progressContext: *mut ::std::os::raw::c_void,
17001 );
17002}
17003unsafe extern "C" {
17004 pub fn BNUndefineAnalysisType(view: *mut BNBinaryView, id: *const ::std::os::raw::c_char);
17005}
17006unsafe extern "C" {
17007 pub fn BNUndefineUserAnalysisType(view: *mut BNBinaryView, name: *mut BNQualifiedName);
17008}
17009unsafe extern "C" {
17010 pub fn BNRenameAnalysisType(
17011 view: *mut BNBinaryView,
17012 oldName: *mut BNQualifiedName,
17013 newName: *mut BNQualifiedName,
17014 );
17015}
17016unsafe extern "C" {
17017 pub fn BNGetAnalysisSystemCallType(
17018 view: *mut BNBinaryView,
17019 platform: *mut BNPlatform,
17020 id: u32,
17021 ) -> *mut BNType;
17022}
17023unsafe extern "C" {
17024 pub fn BNGetAnalysisSystemCallName(
17025 view: *mut BNBinaryView,
17026 platform: *mut BNPlatform,
17027 id: u32,
17028 ) -> *mut ::std::os::raw::c_char;
17029}
17030unsafe extern "C" {
17031 pub fn BNGenerateAutoTypeId(
17032 source: *const ::std::os::raw::c_char,
17033 name: *mut BNQualifiedName,
17034 ) -> *mut ::std::os::raw::c_char;
17035}
17036unsafe extern "C" {
17037 pub fn BNGenerateAutoPlatformTypeId(
17038 platform: *mut BNPlatform,
17039 name: *mut BNQualifiedName,
17040 ) -> *mut ::std::os::raw::c_char;
17041}
17042unsafe extern "C" {
17043 pub fn BNGenerateAutoDemangledTypeId(name: *mut BNQualifiedName)
17044 -> *mut ::std::os::raw::c_char;
17045}
17046unsafe extern "C" {
17047 pub fn BNGetAutoPlatformTypeIdSource(platform: *mut BNPlatform) -> *mut ::std::os::raw::c_char;
17048}
17049unsafe extern "C" {
17050 pub fn BNGetAutoDemangledTypeIdSource() -> *mut ::std::os::raw::c_char;
17051}
17052unsafe extern "C" {
17053 pub fn BNGenerateAutoDebugTypeId(name: *mut BNQualifiedName) -> *mut ::std::os::raw::c_char;
17054}
17055unsafe extern "C" {
17056 pub fn BNGetAutoDebugTypeIdSource() -> *mut ::std::os::raw::c_char;
17057}
17058unsafe extern "C" {
17059 pub fn BNRegisterPlatformTypes(view: *mut BNBinaryView, platform: *mut BNPlatform);
17060}
17061unsafe extern "C" {
17062 pub fn BNLookupImportedTypePlatform(
17063 view: *mut BNBinaryView,
17064 typeName: *const BNQualifiedName,
17065 platform: *mut *mut BNPlatform,
17066 resultName: *mut BNQualifiedName,
17067 ) -> bool;
17068}
17069unsafe extern "C" {
17070 pub fn BNReanalyzeAllFunctions(view: *mut BNBinaryView);
17071}
17072unsafe extern "C" {
17073 pub fn BNAnalyzeFunction(func: *mut BNFunction);
17074}
17075unsafe extern "C" {
17076 pub fn BNReanalyzeFunction(func: *mut BNFunction, type_: BNFunctionUpdateType);
17077}
17078unsafe extern "C" {
17079 pub fn BNMarkUpdatesRequired(func: *mut BNFunction, type_: BNFunctionUpdateType);
17080}
17081unsafe extern "C" {
17082 pub fn BNMarkCallerUpdatesRequired(func: *mut BNFunction, type_: BNFunctionUpdateType);
17083}
17084unsafe extern "C" {
17085 pub fn BNGetInstructionHighlight(
17086 func: *mut BNFunction,
17087 arch: *mut BNArchitecture,
17088 addr: u64,
17089 ) -> BNHighlightColor;
17090}
17091unsafe extern "C" {
17092 pub fn BNSetAutoInstructionHighlight(
17093 func: *mut BNFunction,
17094 arch: *mut BNArchitecture,
17095 addr: u64,
17096 color: BNHighlightColor,
17097 );
17098}
17099unsafe extern "C" {
17100 pub fn BNSetUserInstructionHighlight(
17101 func: *mut BNFunction,
17102 arch: *mut BNArchitecture,
17103 addr: u64,
17104 color: BNHighlightColor,
17105 );
17106}
17107unsafe extern "C" {
17108 pub fn BNGetBasicBlockHighlight(block: *mut BNBasicBlock) -> BNHighlightColor;
17109}
17110unsafe extern "C" {
17111 pub fn BNSetAutoBasicBlockHighlight(block: *mut BNBasicBlock, color: BNHighlightColor);
17112}
17113unsafe extern "C" {
17114 pub fn BNSetUserBasicBlockHighlight(block: *mut BNBasicBlock, color: BNHighlightColor);
17115}
17116unsafe extern "C" {
17117 pub fn BNFreeTypeContainer(container: *mut BNTypeContainer);
17118}
17119unsafe extern "C" {
17120 pub fn BNDuplicateTypeContainer(container: *mut BNTypeContainer) -> *mut BNTypeContainer;
17121}
17122unsafe extern "C" {
17123 pub fn BNTypeContainerGetId(container: *mut BNTypeContainer) -> *mut ::std::os::raw::c_char;
17124}
17125unsafe extern "C" {
17126 pub fn BNTypeContainerGetName(container: *mut BNTypeContainer) -> *mut ::std::os::raw::c_char;
17127}
17128unsafe extern "C" {
17129 pub fn BNTypeContainerGetType(container: *mut BNTypeContainer) -> BNTypeContainerType;
17130}
17131unsafe extern "C" {
17132 pub fn BNTypeContainerIsMutable(container: *mut BNTypeContainer) -> bool;
17133}
17134unsafe extern "C" {
17135 pub fn BNTypeContainerGetPlatform(container: *mut BNTypeContainer) -> *mut BNPlatform;
17136}
17137unsafe extern "C" {
17138 pub fn BNTypeContainerAddTypes(
17139 container: *mut BNTypeContainer,
17140 typeNames: *const BNQualifiedName,
17141 types: *mut *mut BNType,
17142 typeCount: usize,
17143 progress: BNProgressFunction,
17144 progressContext: *mut ::std::os::raw::c_void,
17145 resultNames: *mut *mut BNQualifiedName,
17146 resultIds: *mut *mut *mut ::std::os::raw::c_char,
17147 resultCount: *mut usize,
17148 ) -> bool;
17149}
17150unsafe extern "C" {
17151 pub fn BNTypeContainerRenameType(
17152 container: *mut BNTypeContainer,
17153 typeId: *const ::std::os::raw::c_char,
17154 newName: *const BNQualifiedName,
17155 ) -> bool;
17156}
17157unsafe extern "C" {
17158 pub fn BNTypeContainerDeleteType(
17159 container: *mut BNTypeContainer,
17160 typeId: *const ::std::os::raw::c_char,
17161 ) -> bool;
17162}
17163unsafe extern "C" {
17164 pub fn BNTypeContainerGetTypeId(
17165 container: *mut BNTypeContainer,
17166 typeName: *const BNQualifiedName,
17167 result: *mut *mut ::std::os::raw::c_char,
17168 ) -> bool;
17169}
17170unsafe extern "C" {
17171 pub fn BNTypeContainerGetTypeName(
17172 container: *mut BNTypeContainer,
17173 typeId: *const ::std::os::raw::c_char,
17174 result: *mut BNQualifiedName,
17175 ) -> bool;
17176}
17177unsafe extern "C" {
17178 pub fn BNTypeContainerGetTypeById(
17179 container: *mut BNTypeContainer,
17180 typeId: *const ::std::os::raw::c_char,
17181 result: *mut *mut BNType,
17182 ) -> bool;
17183}
17184unsafe extern "C" {
17185 pub fn BNTypeContainerGetTypes(
17186 container: *mut BNTypeContainer,
17187 typeIds: *mut *mut *mut ::std::os::raw::c_char,
17188 typeNames: *mut *mut BNQualifiedName,
17189 types: *mut *mut *mut BNType,
17190 count: *mut usize,
17191 ) -> bool;
17192}
17193unsafe extern "C" {
17194 pub fn BNTypeContainerGetTypeByName(
17195 container: *mut BNTypeContainer,
17196 typeName: *const BNQualifiedName,
17197 result: *mut *mut BNType,
17198 ) -> bool;
17199}
17200unsafe extern "C" {
17201 pub fn BNTypeContainerGetTypeIds(
17202 container: *mut BNTypeContainer,
17203 typeIds: *mut *mut *mut ::std::os::raw::c_char,
17204 count: *mut usize,
17205 ) -> bool;
17206}
17207unsafe extern "C" {
17208 pub fn BNTypeContainerGetTypeNames(
17209 container: *mut BNTypeContainer,
17210 typeNames: *mut *mut BNQualifiedName,
17211 count: *mut usize,
17212 ) -> bool;
17213}
17214unsafe extern "C" {
17215 pub fn BNTypeContainerGetTypeNamesAndIds(
17216 container: *mut BNTypeContainer,
17217 typeIds: *mut *mut *mut ::std::os::raw::c_char,
17218 typeNames: *mut *mut BNQualifiedName,
17219 count: *mut usize,
17220 ) -> bool;
17221}
17222unsafe extern "C" {
17223 pub fn BNTypeContainerGetTypeCount(container: *mut BNTypeContainer) -> usize;
17224}
17225unsafe extern "C" {
17226 pub fn BNTypeContainerParseTypeString(
17227 container: *mut BNTypeContainer,
17228 source: *const ::std::os::raw::c_char,
17229 importDepencencies: bool,
17230 result: *mut BNQualifiedNameAndType,
17231 errors: *mut *mut BNTypeParserError,
17232 errorCount: *mut usize,
17233 ) -> bool;
17234}
17235unsafe extern "C" {
17236 pub fn BNTypeContainerParseTypesFromSource(
17237 container: *mut BNTypeContainer,
17238 source: *const ::std::os::raw::c_char,
17239 fileName: *const ::std::os::raw::c_char,
17240 options: *const *const ::std::os::raw::c_char,
17241 optionCount: usize,
17242 includeDirs: *const *const ::std::os::raw::c_char,
17243 includeDirCount: usize,
17244 autoTypeSource: *const ::std::os::raw::c_char,
17245 importDepencencies: bool,
17246 result: *mut BNTypeParserResult,
17247 errors: *mut *mut BNTypeParserError,
17248 errorCount: *mut usize,
17249 ) -> bool;
17250}
17251unsafe extern "C" {
17252 pub fn BNGetEmptyTypeContainer() -> *mut BNTypeContainer;
17253}
17254unsafe extern "C" {
17255 pub fn BNCreateTagType(view: *mut BNBinaryView) -> *mut BNTagType;
17256}
17257unsafe extern "C" {
17258 pub fn BNNewTagTypeReference(tagType: *mut BNTagType) -> *mut BNTagType;
17259}
17260unsafe extern "C" {
17261 pub fn BNFreeTagType(tagType: *mut BNTagType);
17262}
17263unsafe extern "C" {
17264 pub fn BNFreeTagTypeList(tagTypes: *mut *mut BNTagType, count: usize);
17265}
17266unsafe extern "C" {
17267 pub fn BNTagTypeGetView(tagType: *mut BNTagType) -> *mut BNBinaryView;
17268}
17269unsafe extern "C" {
17270 pub fn BNTagTypeGetId(tagType: *mut BNTagType) -> *mut ::std::os::raw::c_char;
17271}
17272unsafe extern "C" {
17273 pub fn BNTagTypeGetName(tagType: *mut BNTagType) -> *mut ::std::os::raw::c_char;
17274}
17275unsafe extern "C" {
17276 pub fn BNTagTypeSetName(tagType: *mut BNTagType, name: *const ::std::os::raw::c_char);
17277}
17278unsafe extern "C" {
17279 pub fn BNTagTypeGetIcon(tagType: *mut BNTagType) -> *mut ::std::os::raw::c_char;
17280}
17281unsafe extern "C" {
17282 pub fn BNTagTypeSetIcon(tagType: *mut BNTagType, icon: *const ::std::os::raw::c_char);
17283}
17284unsafe extern "C" {
17285 pub fn BNTagTypeGetVisible(tagType: *mut BNTagType) -> bool;
17286}
17287unsafe extern "C" {
17288 pub fn BNTagTypeSetVisible(tagType: *mut BNTagType, visible: bool);
17289}
17290unsafe extern "C" {
17291 pub fn BNTagTypeGetType(tagType: *mut BNTagType) -> BNTagTypeType;
17292}
17293unsafe extern "C" {
17294 pub fn BNTagTypeSetType(tagType: *mut BNTagType, type_: BNTagTypeType);
17295}
17296unsafe extern "C" {
17297 pub fn BNCreateTag(type_: *mut BNTagType, data: *const ::std::os::raw::c_char) -> *mut BNTag;
17298}
17299unsafe extern "C" {
17300 pub fn BNNewTagReference(tag: *mut BNTag) -> *mut BNTag;
17301}
17302unsafe extern "C" {
17303 pub fn BNFreeTag(tag: *mut BNTag);
17304}
17305unsafe extern "C" {
17306 pub fn BNFreeTagList(tags: *mut *mut BNTag, count: usize);
17307}
17308unsafe extern "C" {
17309 pub fn BNTagGetId(tag: *mut BNTag) -> *mut ::std::os::raw::c_char;
17310}
17311unsafe extern "C" {
17312 pub fn BNTagGetType(tag: *mut BNTag) -> *mut BNTagType;
17313}
17314unsafe extern "C" {
17315 pub fn BNTagGetData(tag: *mut BNTag) -> *mut ::std::os::raw::c_char;
17316}
17317unsafe extern "C" {
17318 pub fn BNTagSetData(tag: *mut BNTag, data: *const ::std::os::raw::c_char);
17319}
17320unsafe extern "C" {
17321 pub fn BNAddTagType(view: *mut BNBinaryView, tagType: *mut BNTagType);
17322}
17323unsafe extern "C" {
17324 pub fn BNRemoveTagType(view: *mut BNBinaryView, tagType: *mut BNTagType);
17325}
17326unsafe extern "C" {
17327 pub fn BNGetTagType(
17328 view: *mut BNBinaryView,
17329 name: *const ::std::os::raw::c_char,
17330 ) -> *mut BNTagType;
17331}
17332unsafe extern "C" {
17333 pub fn BNGetTagTypeWithType(
17334 view: *mut BNBinaryView,
17335 name: *const ::std::os::raw::c_char,
17336 type_: BNTagTypeType,
17337 ) -> *mut BNTagType;
17338}
17339unsafe extern "C" {
17340 pub fn BNGetTagTypeById(
17341 view: *mut BNBinaryView,
17342 id: *const ::std::os::raw::c_char,
17343 ) -> *mut BNTagType;
17344}
17345unsafe extern "C" {
17346 pub fn BNGetTagTypeByIdWithType(
17347 view: *mut BNBinaryView,
17348 id: *const ::std::os::raw::c_char,
17349 type_: BNTagTypeType,
17350 ) -> *mut BNTagType;
17351}
17352unsafe extern "C" {
17353 pub fn BNGetTagTypes(view: *mut BNBinaryView, count: *mut usize) -> *mut *mut BNTagType;
17354}
17355unsafe extern "C" {
17356 pub fn BNAddTag(view: *mut BNBinaryView, tag: *mut BNTag, user: bool);
17357}
17358unsafe extern "C" {
17359 pub fn BNGetTag(view: *mut BNBinaryView, tagId: *const ::std::os::raw::c_char) -> *mut BNTag;
17360}
17361unsafe extern "C" {
17362 pub fn BNRemoveTag(view: *mut BNBinaryView, tag: *mut BNTag, user: bool);
17363}
17364unsafe extern "C" {
17365 pub fn BNGetAllTagReferences(view: *mut BNBinaryView, count: *mut usize)
17366 -> *mut BNTagReference;
17367}
17368unsafe extern "C" {
17369 pub fn BNGetAllAddressTagReferences(
17370 view: *mut BNBinaryView,
17371 count: *mut usize,
17372 ) -> *mut BNTagReference;
17373}
17374unsafe extern "C" {
17375 pub fn BNGetAllFunctionTagReferences(
17376 view: *mut BNBinaryView,
17377 count: *mut usize,
17378 ) -> *mut BNTagReference;
17379}
17380unsafe extern "C" {
17381 pub fn BNGetAllTagReferencesOfType(
17382 view: *mut BNBinaryView,
17383 tagType: *mut BNTagType,
17384 count: *mut usize,
17385 ) -> *mut BNTagReference;
17386}
17387unsafe extern "C" {
17388 pub fn BNGetTagReferencesOfType(
17389 view: *mut BNBinaryView,
17390 tagType: *mut BNTagType,
17391 count: *mut usize,
17392 ) -> *mut BNTagReference;
17393}
17394unsafe extern "C" {
17395 pub fn BNGetDataTagReferences(
17396 view: *mut BNBinaryView,
17397 count: *mut usize,
17398 ) -> *mut BNTagReference;
17399}
17400unsafe extern "C" {
17401 pub fn BNGetAutoDataTagReferences(
17402 view: *mut BNBinaryView,
17403 count: *mut usize,
17404 ) -> *mut BNTagReference;
17405}
17406unsafe extern "C" {
17407 pub fn BNGetUserDataTagReferences(
17408 view: *mut BNBinaryView,
17409 count: *mut usize,
17410 ) -> *mut BNTagReference;
17411}
17412unsafe extern "C" {
17413 pub fn BNRemoveTagReference(view: *mut BNBinaryView, ref_: BNTagReference);
17414}
17415unsafe extern "C" {
17416 pub fn BNFreeTagReferences(refs: *mut BNTagReference, count: usize);
17417}
17418unsafe extern "C" {
17419 pub fn BNGetDataTags(view: *mut BNBinaryView, addr: u64, count: *mut usize) -> *mut *mut BNTag;
17420}
17421unsafe extern "C" {
17422 pub fn BNGetAutoDataTags(
17423 view: *mut BNBinaryView,
17424 addr: u64,
17425 count: *mut usize,
17426 ) -> *mut *mut BNTag;
17427}
17428unsafe extern "C" {
17429 pub fn BNGetUserDataTags(
17430 view: *mut BNBinaryView,
17431 addr: u64,
17432 count: *mut usize,
17433 ) -> *mut *mut BNTag;
17434}
17435unsafe extern "C" {
17436 pub fn BNGetDataTagsOfType(
17437 view: *mut BNBinaryView,
17438 addr: u64,
17439 tagType: *mut BNTagType,
17440 count: *mut usize,
17441 ) -> *mut *mut BNTag;
17442}
17443unsafe extern "C" {
17444 pub fn BNGetAutoDataTagsOfType(
17445 view: *mut BNBinaryView,
17446 addr: u64,
17447 tagType: *mut BNTagType,
17448 count: *mut usize,
17449 ) -> *mut *mut BNTag;
17450}
17451unsafe extern "C" {
17452 pub fn BNGetUserDataTagsOfType(
17453 view: *mut BNBinaryView,
17454 addr: u64,
17455 tagType: *mut BNTagType,
17456 count: *mut usize,
17457 ) -> *mut *mut BNTag;
17458}
17459unsafe extern "C" {
17460 pub fn BNGetDataTagsInRange(
17461 view: *mut BNBinaryView,
17462 start: u64,
17463 end: u64,
17464 count: *mut usize,
17465 ) -> *mut BNTagReference;
17466}
17467unsafe extern "C" {
17468 pub fn BNGetAutoDataTagsInRange(
17469 view: *mut BNBinaryView,
17470 start: u64,
17471 end: u64,
17472 count: *mut usize,
17473 ) -> *mut BNTagReference;
17474}
17475unsafe extern "C" {
17476 pub fn BNGetUserDataTagsInRange(
17477 view: *mut BNBinaryView,
17478 start: u64,
17479 end: u64,
17480 count: *mut usize,
17481 ) -> *mut BNTagReference;
17482}
17483unsafe extern "C" {
17484 pub fn BNAddAutoDataTag(view: *mut BNBinaryView, addr: u64, tag: *mut BNTag);
17485}
17486unsafe extern "C" {
17487 pub fn BNRemoveAutoDataTag(view: *mut BNBinaryView, addr: u64, tag: *mut BNTag);
17488}
17489unsafe extern "C" {
17490 pub fn BNRemoveAutoDataTagsOfType(view: *mut BNBinaryView, addr: u64, tagType: *mut BNTagType);
17491}
17492unsafe extern "C" {
17493 pub fn BNAddUserDataTag(view: *mut BNBinaryView, addr: u64, tag: *mut BNTag);
17494}
17495unsafe extern "C" {
17496 pub fn BNRemoveUserDataTag(view: *mut BNBinaryView, addr: u64, tag: *mut BNTag);
17497}
17498unsafe extern "C" {
17499 pub fn BNRemoveUserDataTagsOfType(view: *mut BNBinaryView, addr: u64, tagType: *mut BNTagType);
17500}
17501unsafe extern "C" {
17502 pub fn BNGetTagReferencesOfTypeCount(view: *mut BNBinaryView, tagType: *mut BNTagType)
17503 -> usize;
17504}
17505unsafe extern "C" {
17506 pub fn BNGetAllTagReferencesOfTypeCount(
17507 view: *mut BNBinaryView,
17508 tagType: *mut BNTagType,
17509 ) -> usize;
17510}
17511unsafe extern "C" {
17512 pub fn BNGetAllTagReferenceTypeCounts(
17513 view: *mut BNBinaryView,
17514 tagTypes: *mut *mut *mut BNTagType,
17515 counts: *mut *mut usize,
17516 count: *mut usize,
17517 );
17518}
17519unsafe extern "C" {
17520 pub fn BNFreeTagReferenceTypeCounts(
17521 tagTypes: *mut *mut BNTagType,
17522 counts: *mut usize,
17523 count: usize,
17524 );
17525}
17526unsafe extern "C" {
17527 pub fn BNGetFunctionAllTagReferences(
17528 func: *mut BNFunction,
17529 count: *mut usize,
17530 ) -> *mut BNTagReference;
17531}
17532unsafe extern "C" {
17533 pub fn BNGetFunctionTagReferencesOfType(
17534 func: *mut BNFunction,
17535 tagType: *mut BNTagType,
17536 count: *mut usize,
17537 ) -> *mut BNTagReference;
17538}
17539unsafe extern "C" {
17540 pub fn BNGetAddressTagReferences(
17541 func: *mut BNFunction,
17542 count: *mut usize,
17543 ) -> *mut BNTagReference;
17544}
17545unsafe extern "C" {
17546 pub fn BNGetAutoAddressTagReferences(
17547 func: *mut BNFunction,
17548 count: *mut usize,
17549 ) -> *mut BNTagReference;
17550}
17551unsafe extern "C" {
17552 pub fn BNGetUserAddressTagReferences(
17553 func: *mut BNFunction,
17554 count: *mut usize,
17555 ) -> *mut BNTagReference;
17556}
17557unsafe extern "C" {
17558 pub fn BNGetAddressTags(
17559 func: *mut BNFunction,
17560 arch: *mut BNArchitecture,
17561 addr: u64,
17562 count: *mut usize,
17563 ) -> *mut *mut BNTag;
17564}
17565unsafe extern "C" {
17566 pub fn BNGetAutoAddressTags(
17567 func: *mut BNFunction,
17568 arch: *mut BNArchitecture,
17569 addr: u64,
17570 count: *mut usize,
17571 ) -> *mut *mut BNTag;
17572}
17573unsafe extern "C" {
17574 pub fn BNGetUserAddressTags(
17575 func: *mut BNFunction,
17576 arch: *mut BNArchitecture,
17577 addr: u64,
17578 count: *mut usize,
17579 ) -> *mut *mut BNTag;
17580}
17581unsafe extern "C" {
17582 pub fn BNGetAddressTagsOfType(
17583 func: *mut BNFunction,
17584 arch: *mut BNArchitecture,
17585 addr: u64,
17586 tagType: *mut BNTagType,
17587 count: *mut usize,
17588 ) -> *mut *mut BNTag;
17589}
17590unsafe extern "C" {
17591 pub fn BNGetAutoAddressTagsOfType(
17592 func: *mut BNFunction,
17593 arch: *mut BNArchitecture,
17594 addr: u64,
17595 tagType: *mut BNTagType,
17596 count: *mut usize,
17597 ) -> *mut *mut BNTag;
17598}
17599unsafe extern "C" {
17600 pub fn BNGetUserAddressTagsOfType(
17601 func: *mut BNFunction,
17602 arch: *mut BNArchitecture,
17603 addr: u64,
17604 tagType: *mut BNTagType,
17605 count: *mut usize,
17606 ) -> *mut *mut BNTag;
17607}
17608unsafe extern "C" {
17609 pub fn BNGetAddressTagsInRange(
17610 func: *mut BNFunction,
17611 arch: *mut BNArchitecture,
17612 start: u64,
17613 end: u64,
17614 count: *mut usize,
17615 ) -> *mut BNTagReference;
17616}
17617unsafe extern "C" {
17618 pub fn BNGetAutoAddressTagsInRange(
17619 func: *mut BNFunction,
17620 arch: *mut BNArchitecture,
17621 start: u64,
17622 end: u64,
17623 count: *mut usize,
17624 ) -> *mut BNTagReference;
17625}
17626unsafe extern "C" {
17627 pub fn BNGetUserAddressTagsInRange(
17628 func: *mut BNFunction,
17629 arch: *mut BNArchitecture,
17630 start: u64,
17631 end: u64,
17632 count: *mut usize,
17633 ) -> *mut BNTagReference;
17634}
17635unsafe extern "C" {
17636 pub fn BNAddAutoAddressTag(
17637 func: *mut BNFunction,
17638 arch: *mut BNArchitecture,
17639 addr: u64,
17640 tag: *mut BNTag,
17641 );
17642}
17643unsafe extern "C" {
17644 pub fn BNRemoveAutoAddressTag(
17645 func: *mut BNFunction,
17646 arch: *mut BNArchitecture,
17647 addr: u64,
17648 tag: *mut BNTag,
17649 );
17650}
17651unsafe extern "C" {
17652 pub fn BNRemoveAutoAddressTagsOfType(
17653 func: *mut BNFunction,
17654 arch: *mut BNArchitecture,
17655 addr: u64,
17656 tagType: *mut BNTagType,
17657 );
17658}
17659unsafe extern "C" {
17660 pub fn BNAddUserAddressTag(
17661 func: *mut BNFunction,
17662 arch: *mut BNArchitecture,
17663 addr: u64,
17664 tag: *mut BNTag,
17665 );
17666}
17667unsafe extern "C" {
17668 pub fn BNRemoveUserAddressTag(
17669 func: *mut BNFunction,
17670 arch: *mut BNArchitecture,
17671 addr: u64,
17672 tag: *mut BNTag,
17673 );
17674}
17675unsafe extern "C" {
17676 pub fn BNRemoveUserAddressTagsOfType(
17677 func: *mut BNFunction,
17678 arch: *mut BNArchitecture,
17679 addr: u64,
17680 tagType: *mut BNTagType,
17681 );
17682}
17683unsafe extern "C" {
17684 pub fn BNGetFunctionTagReferences(
17685 func: *mut BNFunction,
17686 count: *mut usize,
17687 ) -> *mut BNTagReference;
17688}
17689unsafe extern "C" {
17690 pub fn BNGetAutoFunctionTagReferences(
17691 func: *mut BNFunction,
17692 count: *mut usize,
17693 ) -> *mut BNTagReference;
17694}
17695unsafe extern "C" {
17696 pub fn BNGetUserFunctionTagReferences(
17697 func: *mut BNFunction,
17698 count: *mut usize,
17699 ) -> *mut BNTagReference;
17700}
17701unsafe extern "C" {
17702 pub fn BNGetFunctionTags(func: *mut BNFunction, count: *mut usize) -> *mut *mut BNTag;
17703}
17704unsafe extern "C" {
17705 pub fn BNGetAutoFunctionTags(func: *mut BNFunction, count: *mut usize) -> *mut *mut BNTag;
17706}
17707unsafe extern "C" {
17708 pub fn BNGetUserFunctionTags(func: *mut BNFunction, count: *mut usize) -> *mut *mut BNTag;
17709}
17710unsafe extern "C" {
17711 pub fn BNGetFunctionTagsOfType(
17712 func: *mut BNFunction,
17713 tagType: *mut BNTagType,
17714 count: *mut usize,
17715 ) -> *mut *mut BNTag;
17716}
17717unsafe extern "C" {
17718 pub fn BNGetAutoFunctionTagsOfType(
17719 func: *mut BNFunction,
17720 tagType: *mut BNTagType,
17721 count: *mut usize,
17722 ) -> *mut *mut BNTag;
17723}
17724unsafe extern "C" {
17725 pub fn BNGetUserFunctionTagsOfType(
17726 func: *mut BNFunction,
17727 tagType: *mut BNTagType,
17728 count: *mut usize,
17729 ) -> *mut *mut BNTag;
17730}
17731unsafe extern "C" {
17732 pub fn BNAddAutoFunctionTag(func: *mut BNFunction, tag: *mut BNTag);
17733}
17734unsafe extern "C" {
17735 pub fn BNRemoveAutoFunctionTag(func: *mut BNFunction, tag: *mut BNTag);
17736}
17737unsafe extern "C" {
17738 pub fn BNRemoveAutoFunctionTagsOfType(func: *mut BNFunction, tagType: *mut BNTagType);
17739}
17740unsafe extern "C" {
17741 pub fn BNAddUserFunctionTag(func: *mut BNFunction, tag: *mut BNTag);
17742}
17743unsafe extern "C" {
17744 pub fn BNRemoveUserFunctionTag(func: *mut BNFunction, tag: *mut BNTag);
17745}
17746unsafe extern "C" {
17747 pub fn BNRemoveUserFunctionTagsOfType(func: *mut BNFunction, tagType: *mut BNTagType);
17748}
17749unsafe extern "C" {
17750 pub fn BNGetFunctionAnalysisPerformanceInfo(
17751 func: *mut BNFunction,
17752 count: *mut usize,
17753 ) -> *mut BNPerformanceInfo;
17754}
17755unsafe extern "C" {
17756 pub fn BNFreeAnalysisPerformanceInfo(info: *mut BNPerformanceInfo, count: usize);
17757}
17758unsafe extern "C" {
17759 pub fn BNGetUnresolvedStackAdjustmentGraph(func: *mut BNFunction) -> *mut BNFlowGraph;
17760}
17761unsafe extern "C" {
17762 pub fn BNSetUserVariableValue(
17763 func: *mut BNFunction,
17764 var: *const BNVariable,
17765 defSite: *const BNArchitectureAndAddress,
17766 after: bool,
17767 value: *const BNPossibleValueSet,
17768 );
17769}
17770unsafe extern "C" {
17771 pub fn BNClearUserVariableValue(
17772 func: *mut BNFunction,
17773 var: *const BNVariable,
17774 defSite: *const BNArchitectureAndAddress,
17775 after: bool,
17776 );
17777}
17778unsafe extern "C" {
17779 pub fn BNGetAllUserVariableValues(
17780 func: *mut BNFunction,
17781 count: *mut usize,
17782 ) -> *mut BNUserVariableValue;
17783}
17784unsafe extern "C" {
17785 pub fn BNFreeUserVariableValues(result: *mut BNUserVariableValue);
17786}
17787unsafe extern "C" {
17788 pub fn BNParsePossibleValueSet(
17789 view: *mut BNBinaryView,
17790 valueText: *const ::std::os::raw::c_char,
17791 state: BNRegisterValueType,
17792 result: *mut BNPossibleValueSet,
17793 here: u64,
17794 errors: *mut *mut ::std::os::raw::c_char,
17795 ) -> bool;
17796}
17797unsafe extern "C" {
17798 pub fn BNCreateForcedVariableVersion(
17799 func: *mut BNFunction,
17800 var: *const BNVariable,
17801 defSite: *const BNArchitectureAndAddress,
17802 );
17803}
17804unsafe extern "C" {
17805 pub fn BNClearForcedVariableVersion(
17806 func: *mut BNFunction,
17807 var: *const BNVariable,
17808 defSite: *const BNArchitectureAndAddress,
17809 );
17810}
17811unsafe extern "C" {
17812 pub fn BNSetFieldResolutionForVariableAt(
17813 func: *mut BNFunction,
17814 var: *const BNVariable,
17815 defSite: *const BNArchitectureAndAddress,
17816 info: *const BNFieldResolutionInfo,
17817 );
17818}
17819unsafe extern "C" {
17820 pub fn BNGetFieldResolutionForVariableAt(
17821 func: *mut BNFunction,
17822 var: *const BNVariable,
17823 defSite: *const BNArchitectureAndAddress,
17824 ) -> *mut BNFieldResolutionInfo;
17825}
17826unsafe extern "C" {
17827 pub fn BNGetAllVariableFieldResolutions(
17828 func: *mut BNFunction,
17829 count: *mut usize,
17830 ) -> *mut BNVariableFieldResolutionInfo;
17831}
17832unsafe extern "C" {
17833 pub fn BNFreeVariableFieldResolutions(result: *mut BNVariableFieldResolutionInfo, count: usize);
17834}
17835unsafe extern "C" {
17836 pub fn BNClearFieldResolutionForVariableAt(
17837 func: *mut BNFunction,
17838 var: *const BNVariable,
17839 defSite: *const BNArchitectureAndAddress,
17840 );
17841}
17842unsafe extern "C" {
17843 pub fn BNRequestFunctionDebugReport(func: *mut BNFunction, name: *const ::std::os::raw::c_char);
17844}
17845unsafe extern "C" {
17846 pub fn BNFunctionCheckForDebugReport(
17847 func: *mut BNFunction,
17848 name: *const ::std::os::raw::c_char,
17849 ) -> bool;
17850}
17851unsafe extern "C" {
17852 pub fn BNGetMediumLevelILVariableReferences(
17853 func: *mut BNFunction,
17854 var: *mut BNVariable,
17855 count: *mut usize,
17856 ) -> *mut BNILReferenceSource;
17857}
17858unsafe extern "C" {
17859 pub fn BNGetMediumLevelILVariableReferencesFrom(
17860 func: *mut BNFunction,
17861 arch: *mut BNArchitecture,
17862 address: u64,
17863 count: *mut usize,
17864 ) -> *mut BNVariableReferenceSource;
17865}
17866unsafe extern "C" {
17867 pub fn BNGetMediumLevelILVariableReferencesInRange(
17868 func: *mut BNFunction,
17869 arch: *mut BNArchitecture,
17870 address: u64,
17871 len: u64,
17872 count: *mut usize,
17873 ) -> *mut BNVariableReferenceSource;
17874}
17875unsafe extern "C" {
17876 pub fn BNGetMediumLevelILVariableReferencesIfAvailable(
17877 func: *mut BNFunction,
17878 var: *mut BNVariable,
17879 count: *mut usize,
17880 ) -> *mut BNILReferenceSource;
17881}
17882unsafe extern "C" {
17883 pub fn BNGetMediumLevelILVariableReferencesFromIfAvailable(
17884 func: *mut BNFunction,
17885 arch: *mut BNArchitecture,
17886 address: u64,
17887 count: *mut usize,
17888 ) -> *mut BNVariableReferenceSource;
17889}
17890unsafe extern "C" {
17891 pub fn BNGetMediumLevelILVariableReferencesInRangeIfAvailable(
17892 func: *mut BNFunction,
17893 arch: *mut BNArchitecture,
17894 address: u64,
17895 len: u64,
17896 count: *mut usize,
17897 ) -> *mut BNVariableReferenceSource;
17898}
17899unsafe extern "C" {
17900 pub fn BNGetHighLevelILVariableReferences(
17901 func: *mut BNFunction,
17902 var: *mut BNVariable,
17903 count: *mut usize,
17904 ) -> *mut BNILReferenceSource;
17905}
17906unsafe extern "C" {
17907 pub fn BNGetHighLevelILVariableReferencesFrom(
17908 func: *mut BNFunction,
17909 arch: *mut BNArchitecture,
17910 address: u64,
17911 count: *mut usize,
17912 ) -> *mut BNVariableReferenceSource;
17913}
17914unsafe extern "C" {
17915 pub fn BNGetHighLevelILVariableReferencesInRange(
17916 func: *mut BNFunction,
17917 arch: *mut BNArchitecture,
17918 address: u64,
17919 len: u64,
17920 count: *mut usize,
17921 ) -> *mut BNVariableReferenceSource;
17922}
17923unsafe extern "C" {
17924 pub fn BNGetHighLevelILVariableReferencesIfAvailable(
17925 func: *mut BNFunction,
17926 var: *mut BNVariable,
17927 count: *mut usize,
17928 ) -> *mut BNILReferenceSource;
17929}
17930unsafe extern "C" {
17931 pub fn BNGetHighLevelILVariableReferencesFromIfAvailable(
17932 func: *mut BNFunction,
17933 arch: *mut BNArchitecture,
17934 address: u64,
17935 count: *mut usize,
17936 ) -> *mut BNVariableReferenceSource;
17937}
17938unsafe extern "C" {
17939 pub fn BNGetHighLevelILVariableReferencesInRangeIfAvailable(
17940 func: *mut BNFunction,
17941 arch: *mut BNArchitecture,
17942 address: u64,
17943 len: u64,
17944 count: *mut usize,
17945 ) -> *mut BNVariableReferenceSource;
17946}
17947unsafe extern "C" {
17948 pub fn BNFreeVariableList(vars: *mut BNVariable);
17949}
17950unsafe extern "C" {
17951 pub fn BNFreeVariableReferenceSourceList(vars: *mut BNVariableReferenceSource, count: usize);
17952}
17953unsafe extern "C" {
17954 #[doc = " Analysis Context"]
17955 pub fn BNCreateAnalysisContext() -> *mut BNAnalysisContext;
17956}
17957unsafe extern "C" {
17958 pub fn BNNewAnalysisContextReference(
17959 analysisContext: *mut BNAnalysisContext,
17960 ) -> *mut BNAnalysisContext;
17961}
17962unsafe extern "C" {
17963 pub fn BNFreeAnalysisContext(analysisContext: *mut BNAnalysisContext);
17964}
17965unsafe extern "C" {
17966 pub fn BNAnalysisContextGetBinaryView(
17967 analysisContext: *mut BNAnalysisContext,
17968 ) -> *mut BNBinaryView;
17969}
17970unsafe extern "C" {
17971 pub fn BNAnalysisContextGetFunction(analysisContext: *mut BNAnalysisContext)
17972 -> *mut BNFunction;
17973}
17974unsafe extern "C" {
17975 pub fn BNAnalysisContextGetLiftedILFunction(
17976 analysisContext: *mut BNAnalysisContext,
17977 ) -> *mut BNLowLevelILFunction;
17978}
17979unsafe extern "C" {
17980 pub fn BNAnalysisContextGetLowLevelILFunction(
17981 analysisContext: *mut BNAnalysisContext,
17982 ) -> *mut BNLowLevelILFunction;
17983}
17984unsafe extern "C" {
17985 pub fn BNAnalysisContextGetMediumLevelILFunction(
17986 analysisContext: *mut BNAnalysisContext,
17987 ) -> *mut BNMediumLevelILFunction;
17988}
17989unsafe extern "C" {
17990 pub fn BNAnalysisContextGetHighLevelILFunction(
17991 analysisContext: *mut BNAnalysisContext,
17992 ) -> *mut BNHighLevelILFunction;
17993}
17994unsafe extern "C" {
17995 pub fn BNSetBasicBlockList(
17996 analysisContext: *mut BNAnalysisContext,
17997 basicBlocks: *mut *mut BNBasicBlock,
17998 count: usize,
17999 );
18000}
18001unsafe extern "C" {
18002 pub fn BNSetLiftedILFunction(
18003 analysisContext: *mut BNAnalysisContext,
18004 liftedIL: *mut BNLowLevelILFunction,
18005 );
18006}
18007unsafe extern "C" {
18008 pub fn BNSetLowLevelILFunction(
18009 analysisContext: *mut BNAnalysisContext,
18010 lowLevelIL: *mut BNLowLevelILFunction,
18011 );
18012}
18013unsafe extern "C" {
18014 pub fn BNSetMediumLevelILFunction(
18015 analysisContext: *mut BNAnalysisContext,
18016 mediumLevelIL: *mut BNMediumLevelILFunction,
18017 llilSSAToMLILSSAInstrMap: *mut usize,
18018 instrCount: usize,
18019 llilSSAToMLILSSAExprMap: *mut BNExprMapInfo,
18020 exprCount: usize,
18021 );
18022}
18023unsafe extern "C" {
18024 pub fn BNSetHighLevelILFunction(
18025 analysisContext: *mut BNAnalysisContext,
18026 highLevelIL: *mut BNHighLevelILFunction,
18027 );
18028}
18029unsafe extern "C" {
18030 pub fn BNAnalysisContextInform(
18031 analysisContext: *mut BNAnalysisContext,
18032 request: *const ::std::os::raw::c_char,
18033 ) -> bool;
18034}
18035unsafe extern "C" {
18036 #[doc = " Settings cache access"]
18037 pub fn BNAnalysisContextGetSettingBool(
18038 analysisContext: *mut BNAnalysisContext,
18039 key: *const ::std::os::raw::c_char,
18040 ) -> bool;
18041}
18042unsafe extern "C" {
18043 pub fn BNAnalysisContextGetSettingDouble(
18044 analysisContext: *mut BNAnalysisContext,
18045 key: *const ::std::os::raw::c_char,
18046 ) -> f64;
18047}
18048unsafe extern "C" {
18049 pub fn BNAnalysisContextGetSettingInt64(
18050 analysisContext: *mut BNAnalysisContext,
18051 key: *const ::std::os::raw::c_char,
18052 ) -> i64;
18053}
18054unsafe extern "C" {
18055 pub fn BNAnalysisContextGetSettingUInt64(
18056 analysisContext: *mut BNAnalysisContext,
18057 key: *const ::std::os::raw::c_char,
18058 ) -> u64;
18059}
18060unsafe extern "C" {
18061 pub fn BNAnalysisContextGetSettingString(
18062 analysisContext: *mut BNAnalysisContext,
18063 key: *const ::std::os::raw::c_char,
18064 ) -> *mut ::std::os::raw::c_char;
18065}
18066unsafe extern "C" {
18067 pub fn BNAnalysisContextGetSettingStringList(
18068 analysisContext: *mut BNAnalysisContext,
18069 key: *const ::std::os::raw::c_char,
18070 count: *mut usize,
18071 ) -> *mut *mut ::std::os::raw::c_char;
18072}
18073unsafe extern "C" {
18074 #[doc = " Memory map access"]
18075 pub fn BNAnalysisContextIsValidOffset(
18076 analysisContext: *mut BNAnalysisContext,
18077 offset: u64,
18078 ) -> bool;
18079}
18080unsafe extern "C" {
18081 pub fn BNAnalysisContextIsOffsetReadable(
18082 analysisContext: *mut BNAnalysisContext,
18083 offset: u64,
18084 ) -> bool;
18085}
18086unsafe extern "C" {
18087 pub fn BNAnalysisContextIsOffsetWritable(
18088 analysisContext: *mut BNAnalysisContext,
18089 offset: u64,
18090 ) -> bool;
18091}
18092unsafe extern "C" {
18093 pub fn BNAnalysisContextIsOffsetExecutable(
18094 analysisContext: *mut BNAnalysisContext,
18095 offset: u64,
18096 ) -> bool;
18097}
18098unsafe extern "C" {
18099 pub fn BNAnalysisContextIsOffsetBackedByFile(
18100 analysisContext: *mut BNAnalysisContext,
18101 offset: u64,
18102 ) -> bool;
18103}
18104unsafe extern "C" {
18105 pub fn BNAnalysisContextIsOffsetCodeSemantics(
18106 analysisContext: *mut BNAnalysisContext,
18107 offset: u64,
18108 ) -> bool;
18109}
18110unsafe extern "C" {
18111 pub fn BNAnalysisContextIsOffsetExternSemantics(
18112 analysisContext: *mut BNAnalysisContext,
18113 offset: u64,
18114 ) -> bool;
18115}
18116unsafe extern "C" {
18117 pub fn BNAnalysisContextIsOffsetWritableSemantics(
18118 analysisContext: *mut BNAnalysisContext,
18119 offset: u64,
18120 ) -> bool;
18121}
18122unsafe extern "C" {
18123 pub fn BNAnalysisContextIsOffsetReadOnlySemantics(
18124 analysisContext: *mut BNAnalysisContext,
18125 offset: u64,
18126 ) -> bool;
18127}
18128unsafe extern "C" {
18129 pub fn BNAnalysisContextGetSections(
18130 analysisContext: *mut BNAnalysisContext,
18131 count: *mut usize,
18132 ) -> *mut *mut BNSection;
18133}
18134unsafe extern "C" {
18135 pub fn BNAnalysisContextGetSectionByName(
18136 analysisContext: *mut BNAnalysisContext,
18137 name: *const ::std::os::raw::c_char,
18138 ) -> *mut BNSection;
18139}
18140unsafe extern "C" {
18141 pub fn BNAnalysisContextGetSectionsAt(
18142 analysisContext: *mut BNAnalysisContext,
18143 addr: u64,
18144 count: *mut usize,
18145 ) -> *mut *mut BNSection;
18146}
18147unsafe extern "C" {
18148 pub fn BNAnalysisContextGetStart(analysisContext: *mut BNAnalysisContext) -> u64;
18149}
18150unsafe extern "C" {
18151 pub fn BNAnalysisContextGetEnd(analysisContext: *mut BNAnalysisContext) -> u64;
18152}
18153unsafe extern "C" {
18154 pub fn BNAnalysisContextGetLength(analysisContext: *mut BNAnalysisContext) -> u64;
18155}
18156unsafe extern "C" {
18157 pub fn BNAnalysisContextGetNextValidOffset(
18158 analysisContext: *mut BNAnalysisContext,
18159 offset: u64,
18160 ) -> u64;
18161}
18162unsafe extern "C" {
18163 pub fn BNAnalysisContextGetNextMappedAddress(
18164 analysisContext: *mut BNAnalysisContext,
18165 addr: u64,
18166 flags: u32,
18167 ) -> u64;
18168}
18169unsafe extern "C" {
18170 pub fn BNAnalysisContextGetNextBackedAddress(
18171 analysisContext: *mut BNAnalysisContext,
18172 addr: u64,
18173 flags: u32,
18174 ) -> u64;
18175}
18176unsafe extern "C" {
18177 pub fn BNAnalysisContextGetSegmentAt(
18178 analysisContext: *mut BNAnalysisContext,
18179 addr: u64,
18180 ) -> *mut BNSegment;
18181}
18182unsafe extern "C" {
18183 pub fn BNAnalysisContextGetMappedAddressRanges(
18184 analysisContext: *mut BNAnalysisContext,
18185 count: *mut usize,
18186 ) -> *mut BNAddressRange;
18187}
18188unsafe extern "C" {
18189 pub fn BNAnalysisContextGetBackedAddressRanges(
18190 analysisContext: *mut BNAnalysisContext,
18191 count: *mut usize,
18192 ) -> *mut BNAddressRange;
18193}
18194unsafe extern "C" {
18195 #[doc = " Activity"]
18196 pub fn BNCreateActivity(
18197 configuration: *const ::std::os::raw::c_char,
18198 ctxt: *mut ::std::os::raw::c_void,
18199 action: ::std::option::Option<
18200 unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void, arg2: *mut BNAnalysisContext),
18201 >,
18202 ) -> *mut BNActivity;
18203}
18204unsafe extern "C" {
18205 pub fn BNCreateActivityWithEligibility(
18206 configuration: *const ::std::os::raw::c_char,
18207 ctxt: *mut ::std::os::raw::c_void,
18208 action: ::std::option::Option<
18209 unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void, arg2: *mut BNAnalysisContext),
18210 >,
18211 eligibilityHandler: ::std::option::Option<
18212 unsafe extern "C" fn(
18213 arg1: *mut ::std::os::raw::c_void,
18214 arg2: *mut BNActivity,
18215 arg3: *mut BNAnalysisContext,
18216 ) -> bool,
18217 >,
18218 ) -> *mut BNActivity;
18219}
18220unsafe extern "C" {
18221 pub fn BNNewActivityReference(activity: *mut BNActivity) -> *mut BNActivity;
18222}
18223unsafe extern "C" {
18224 pub fn BNFreeActivity(activity: *mut BNActivity);
18225}
18226unsafe extern "C" {
18227 pub fn BNActivityGetName(activity: *mut BNActivity) -> *mut ::std::os::raw::c_char;
18228}
18229unsafe extern "C" {
18230 #[doc = " Workflow"]
18231 pub fn BNCreateWorkflow(name: *const ::std::os::raw::c_char) -> *mut BNWorkflow;
18232}
18233unsafe extern "C" {
18234 pub fn BNNewWorkflowReference(workflow: *mut BNWorkflow) -> *mut BNWorkflow;
18235}
18236unsafe extern "C" {
18237 pub fn BNFreeWorkflow(workflow: *mut BNWorkflow);
18238}
18239unsafe extern "C" {
18240 pub fn BNGetWorkflowList(count: *mut usize) -> *mut *mut BNWorkflow;
18241}
18242unsafe extern "C" {
18243 pub fn BNFreeWorkflowList(workflows: *mut *mut BNWorkflow, count: usize);
18244}
18245unsafe extern "C" {
18246 pub fn BNWorkflowGet(name: *const ::std::os::raw::c_char) -> *mut BNWorkflow;
18247}
18248unsafe extern "C" {
18249 pub fn BNWorkflowGetOrCreate(name: *const ::std::os::raw::c_char) -> *mut BNWorkflow;
18250}
18251unsafe extern "C" {
18252 pub fn BNRegisterWorkflow(
18253 workflow: *mut BNWorkflow,
18254 configuration: *const ::std::os::raw::c_char,
18255 ) -> bool;
18256}
18257unsafe extern "C" {
18258 pub fn BNWorkflowClone(
18259 workflow: *mut BNWorkflow,
18260 name: *const ::std::os::raw::c_char,
18261 activity: *const ::std::os::raw::c_char,
18262 ) -> *mut BNWorkflow;
18263}
18264unsafe extern "C" {
18265 pub fn BNWorkflowRegisterActivity(
18266 workflow: *mut BNWorkflow,
18267 activity: *mut BNActivity,
18268 subactivities: *mut *const ::std::os::raw::c_char,
18269 size: usize,
18270 ) -> *mut BNActivity;
18271}
18272unsafe extern "C" {
18273 pub fn BNWorkflowContains(
18274 workflow: *mut BNWorkflow,
18275 activity: *const ::std::os::raw::c_char,
18276 ) -> bool;
18277}
18278unsafe extern "C" {
18279 pub fn BNWorkflowGetConfiguration(
18280 workflow: *mut BNWorkflow,
18281 activity: *const ::std::os::raw::c_char,
18282 ) -> *mut ::std::os::raw::c_char;
18283}
18284unsafe extern "C" {
18285 pub fn BNGetWorkflowName(workflow: *mut BNWorkflow) -> *mut ::std::os::raw::c_char;
18286}
18287unsafe extern "C" {
18288 pub fn BNWorkflowIsRegistered(workflow: *mut BNWorkflow) -> bool;
18289}
18290unsafe extern "C" {
18291 pub fn BNWorkflowSize(workflow: *mut BNWorkflow) -> usize;
18292}
18293unsafe extern "C" {
18294 pub fn BNWorkflowGetActivity(
18295 workflow: *mut BNWorkflow,
18296 activity: *const ::std::os::raw::c_char,
18297 ) -> *mut BNActivity;
18298}
18299unsafe extern "C" {
18300 pub fn BNWorkflowGetActivityRoots(
18301 workflow: *mut BNWorkflow,
18302 activity: *const ::std::os::raw::c_char,
18303 inoutSize: *mut usize,
18304 ) -> *mut *const ::std::os::raw::c_char;
18305}
18306unsafe extern "C" {
18307 pub fn BNWorkflowGetSubactivities(
18308 workflow: *mut BNWorkflow,
18309 activity: *const ::std::os::raw::c_char,
18310 immediate: bool,
18311 inoutSize: *mut usize,
18312 ) -> *mut *const ::std::os::raw::c_char;
18313}
18314unsafe extern "C" {
18315 pub fn BNWorkflowAssignSubactivities(
18316 workflow: *mut BNWorkflow,
18317 activity: *const ::std::os::raw::c_char,
18318 activities: *mut *const ::std::os::raw::c_char,
18319 size: usize,
18320 ) -> bool;
18321}
18322unsafe extern "C" {
18323 pub fn BNWorkflowClear(workflow: *mut BNWorkflow) -> bool;
18324}
18325unsafe extern "C" {
18326 pub fn BNWorkflowInsert(
18327 workflow: *mut BNWorkflow,
18328 activity: *const ::std::os::raw::c_char,
18329 activities: *mut *const ::std::os::raw::c_char,
18330 size: usize,
18331 ) -> bool;
18332}
18333unsafe extern "C" {
18334 pub fn BNWorkflowInsertAfter(
18335 workflow: *mut BNWorkflow,
18336 activity: *const ::std::os::raw::c_char,
18337 activities: *mut *const ::std::os::raw::c_char,
18338 size: usize,
18339 ) -> bool;
18340}
18341unsafe extern "C" {
18342 pub fn BNWorkflowRemove(
18343 workflow: *mut BNWorkflow,
18344 activity: *const ::std::os::raw::c_char,
18345 ) -> bool;
18346}
18347unsafe extern "C" {
18348 pub fn BNWorkflowReplace(
18349 workflow: *mut BNWorkflow,
18350 activity: *const ::std::os::raw::c_char,
18351 newActivity: *const ::std::os::raw::c_char,
18352 ) -> bool;
18353}
18354unsafe extern "C" {
18355 pub fn BNWorkflowGetGraph(
18356 workflow: *mut BNWorkflow,
18357 activity: *const ::std::os::raw::c_char,
18358 sequential: bool,
18359 ) -> *mut BNFlowGraph;
18360}
18361unsafe extern "C" {
18362 pub fn BNWorkflowShowReport(workflow: *mut BNWorkflow, name: *const ::std::os::raw::c_char);
18363}
18364unsafe extern "C" {
18365 pub fn BNWorkflowGetEligibilitySettings(
18366 workflow: *mut BNWorkflow,
18367 inoutSize: *mut usize,
18368 ) -> *mut *const ::std::os::raw::c_char;
18369}
18370unsafe extern "C" {
18371 #[doc = " BinaryView Workflow Machine"]
18372 pub fn BNGetWorkflowForBinaryView(view: *mut BNBinaryView) -> *mut BNWorkflow;
18373}
18374unsafe extern "C" {
18375 pub fn BNPostWorkflowRequestForBinaryView(
18376 view: *mut BNBinaryView,
18377 request: *const ::std::os::raw::c_char,
18378 ) -> *mut ::std::os::raw::c_char;
18379}
18380unsafe extern "C" {
18381 pub fn BNGetWorkflowGraphForBinaryView(
18382 view: *mut BNBinaryView,
18383 name: *const ::std::os::raw::c_char,
18384 sequential: bool,
18385 ) -> *mut BNFlowGraph;
18386}
18387unsafe extern "C" {
18388 pub fn BNShowWorkflowReportForBinaryView(
18389 view: *mut BNBinaryView,
18390 name: *const ::std::os::raw::c_char,
18391 );
18392}
18393unsafe extern "C" {
18394 #[doc = " Function Workflow Machine"]
18395 pub fn BNGetWorkflowForFunction(func: *mut BNFunction) -> *mut BNWorkflow;
18396}
18397unsafe extern "C" {
18398 pub fn BNPostWorkflowRequestForFunction(
18399 func: *mut BNFunction,
18400 request: *const ::std::os::raw::c_char,
18401 ) -> *mut ::std::os::raw::c_char;
18402}
18403unsafe extern "C" {
18404 pub fn BNGetWorkflowGraphForFunction(
18405 func: *mut BNFunction,
18406 name: *const ::std::os::raw::c_char,
18407 sequential: bool,
18408 ) -> *mut BNFlowGraph;
18409}
18410unsafe extern "C" {
18411 pub fn BNShowWorkflowReportForFunction(
18412 func: *mut BNFunction,
18413 name: *const ::std::os::raw::c_char,
18414 );
18415}
18416unsafe extern "C" {
18417 #[doc = " Provenance"]
18418 pub fn BNGetProvenanceString(func: *mut BNFunction) -> *mut ::std::os::raw::c_char;
18419}
18420unsafe extern "C" {
18421 #[doc = " Disassembly settings"]
18422 pub fn BNCreateDisassemblySettings() -> *mut BNDisassemblySettings;
18423}
18424unsafe extern "C" {
18425 pub fn BNDefaultDisassemblySettings() -> *mut BNDisassemblySettings;
18426}
18427unsafe extern "C" {
18428 pub fn BNDefaultGraphDisassemblySettings() -> *mut BNDisassemblySettings;
18429}
18430unsafe extern "C" {
18431 pub fn BNDefaultLinearDisassemblySettings() -> *mut BNDisassemblySettings;
18432}
18433unsafe extern "C" {
18434 pub fn BNNewDisassemblySettingsReference(
18435 settings: *mut BNDisassemblySettings,
18436 ) -> *mut BNDisassemblySettings;
18437}
18438unsafe extern "C" {
18439 pub fn BNDuplicateDisassemblySettings(
18440 settings: *mut BNDisassemblySettings,
18441 ) -> *mut BNDisassemblySettings;
18442}
18443unsafe extern "C" {
18444 pub fn BNFreeDisassemblySettings(settings: *mut BNDisassemblySettings);
18445}
18446unsafe extern "C" {
18447 pub fn BNIsDisassemblySettingsOptionSet(
18448 settings: *mut BNDisassemblySettings,
18449 option: BNDisassemblyOption,
18450 ) -> bool;
18451}
18452unsafe extern "C" {
18453 pub fn BNSetDisassemblySettingsOption(
18454 settings: *mut BNDisassemblySettings,
18455 option: BNDisassemblyOption,
18456 state: bool,
18457 );
18458}
18459unsafe extern "C" {
18460 pub fn BNGetDisassemblyWidth(settings: *mut BNDisassemblySettings) -> usize;
18461}
18462unsafe extern "C" {
18463 pub fn BNSetDisassemblyWidth(settings: *mut BNDisassemblySettings, width: usize);
18464}
18465unsafe extern "C" {
18466 pub fn BNGetDisassemblyMaximumSymbolWidth(settings: *mut BNDisassemblySettings) -> usize;
18467}
18468unsafe extern "C" {
18469 pub fn BNSetDisassemblyMaximumSymbolWidth(settings: *mut BNDisassemblySettings, width: usize);
18470}
18471unsafe extern "C" {
18472 pub fn BNGetDisassemblyGutterWidth(settings: *mut BNDisassemblySettings) -> usize;
18473}
18474unsafe extern "C" {
18475 pub fn BNSetDisassemblyGutterWidth(settings: *mut BNDisassemblySettings, width: usize);
18476}
18477unsafe extern "C" {
18478 pub fn BNGetDisassemblyAddressMode(
18479 settings: *mut BNDisassemblySettings,
18480 ) -> BNDisassemblyAddressMode;
18481}
18482unsafe extern "C" {
18483 pub fn BNSetDisassemblyAddressMode(
18484 settings: *mut BNDisassemblySettings,
18485 mode: BNDisassemblyAddressMode,
18486 );
18487}
18488unsafe extern "C" {
18489 pub fn BNGetDisassemblyAddressBaseOffset(settings: *mut BNDisassemblySettings) -> u64;
18490}
18491unsafe extern "C" {
18492 pub fn BNSetDisassemblyAddressBaseOffset(
18493 settings: *mut BNDisassemblySettings,
18494 addressBaseOffset: u64,
18495 );
18496}
18497unsafe extern "C" {
18498 pub fn BNGetDisassemblyCallParameterHints(
18499 settings: *mut BNDisassemblySettings,
18500 ) -> BNDisassemblyCallParameterHints;
18501}
18502unsafe extern "C" {
18503 pub fn BNSetDisassemblyCallParameterHints(
18504 settings: *mut BNDisassemblySettings,
18505 hints: BNDisassemblyCallParameterHints,
18506 );
18507}
18508unsafe extern "C" {
18509 pub fn BNGetDisassemblyBlockLabels(
18510 settings: *mut BNDisassemblySettings,
18511 ) -> BNDisassemblyBlockLabels;
18512}
18513unsafe extern "C" {
18514 pub fn BNSetDisassemblyBlockLabels(
18515 settings: *mut BNDisassemblySettings,
18516 labels: BNDisassemblyBlockLabels,
18517 );
18518}
18519unsafe extern "C" {
18520 #[doc = " Flow graphs"]
18521 pub fn BNCreateFlowGraph() -> *mut BNFlowGraph;
18522}
18523unsafe extern "C" {
18524 pub fn BNCreateFunctionGraph(
18525 func: *mut BNFunction,
18526 type_: BNFunctionViewType,
18527 settings: *mut BNDisassemblySettings,
18528 ) -> *mut BNFlowGraph;
18529}
18530unsafe extern "C" {
18531 pub fn BNCreateLowLevelILFunctionGraph(
18532 func: *mut BNLowLevelILFunction,
18533 settings: *mut BNDisassemblySettings,
18534 ) -> *mut BNFlowGraph;
18535}
18536unsafe extern "C" {
18537 pub fn BNCreateMediumLevelILFunctionGraph(
18538 func: *mut BNMediumLevelILFunction,
18539 settings: *mut BNDisassemblySettings,
18540 ) -> *mut BNFlowGraph;
18541}
18542unsafe extern "C" {
18543 pub fn BNCreateHighLevelILFunctionGraph(
18544 func: *mut BNHighLevelILFunction,
18545 settings: *mut BNDisassemblySettings,
18546 ) -> *mut BNFlowGraph;
18547}
18548unsafe extern "C" {
18549 pub fn BNCreateImmediateFunctionGraph(
18550 func: *mut BNFunction,
18551 type_: BNFunctionViewType,
18552 settings: *mut BNDisassemblySettings,
18553 ) -> *mut BNFlowGraph;
18554}
18555unsafe extern "C" {
18556 pub fn BNCreateLowLevelILImmediateFunctionGraph(
18557 func: *mut BNLowLevelILFunction,
18558 settings: *mut BNDisassemblySettings,
18559 ) -> *mut BNFlowGraph;
18560}
18561unsafe extern "C" {
18562 pub fn BNCreateMediumLevelILImmediateFunctionGraph(
18563 func: *mut BNMediumLevelILFunction,
18564 settings: *mut BNDisassemblySettings,
18565 ) -> *mut BNFlowGraph;
18566}
18567unsafe extern "C" {
18568 pub fn BNCreateHighLevelILImmediateFunctionGraph(
18569 func: *mut BNHighLevelILFunction,
18570 settings: *mut BNDisassemblySettings,
18571 ) -> *mut BNFlowGraph;
18572}
18573unsafe extern "C" {
18574 pub fn BNCreateCustomFlowGraph(callbacks: *mut BNCustomFlowGraph) -> *mut BNFlowGraph;
18575}
18576unsafe extern "C" {
18577 pub fn BNNewFlowGraphReference(graph: *mut BNFlowGraph) -> *mut BNFlowGraph;
18578}
18579unsafe extern "C" {
18580 pub fn BNFreeFlowGraph(graph: *mut BNFlowGraph);
18581}
18582unsafe extern "C" {
18583 pub fn BNGetFunctionForFlowGraph(graph: *mut BNFlowGraph) -> *mut BNFunction;
18584}
18585unsafe extern "C" {
18586 pub fn BNSetFunctionForFlowGraph(graph: *mut BNFlowGraph, func: *mut BNFunction);
18587}
18588unsafe extern "C" {
18589 pub fn BNGetViewForFlowGraph(graph: *mut BNFlowGraph) -> *mut BNBinaryView;
18590}
18591unsafe extern "C" {
18592 pub fn BNSetViewForFlowGraph(graph: *mut BNFlowGraph, view: *mut BNBinaryView);
18593}
18594unsafe extern "C" {
18595 pub fn BNGetHorizontalFlowGraphNodeMargin(graph: *mut BNFlowGraph) -> ::std::os::raw::c_int;
18596}
18597unsafe extern "C" {
18598 pub fn BNGetVerticalFlowGraphNodeMargin(graph: *mut BNFlowGraph) -> ::std::os::raw::c_int;
18599}
18600unsafe extern "C" {
18601 pub fn BNSetFlowGraphNodeMargins(
18602 graph: *mut BNFlowGraph,
18603 horiz: ::std::os::raw::c_int,
18604 vert: ::std::os::raw::c_int,
18605 );
18606}
18607unsafe extern "C" {
18608 pub fn BNStartFlowGraphLayout(
18609 graph: *mut BNFlowGraph,
18610 ctxt: *mut ::std::os::raw::c_void,
18611 func: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
18612 ) -> *mut BNFlowGraphLayoutRequest;
18613}
18614unsafe extern "C" {
18615 pub fn BNIsFlowGraphLayoutComplete(graph: *mut BNFlowGraph) -> bool;
18616}
18617unsafe extern "C" {
18618 pub fn BNNewFlowGraphLayoutRequestReference(
18619 layout: *mut BNFlowGraphLayoutRequest,
18620 ) -> *mut BNFlowGraphLayoutRequest;
18621}
18622unsafe extern "C" {
18623 pub fn BNFreeFlowGraphLayoutRequest(layout: *mut BNFlowGraphLayoutRequest);
18624}
18625unsafe extern "C" {
18626 pub fn BNIsFlowGraphLayoutRequestComplete(layout: *mut BNFlowGraphLayoutRequest) -> bool;
18627}
18628unsafe extern "C" {
18629 pub fn BNGetGraphForFlowGraphLayoutRequest(
18630 layout: *mut BNFlowGraphLayoutRequest,
18631 ) -> *mut BNFlowGraph;
18632}
18633unsafe extern "C" {
18634 pub fn BNAbortFlowGraphLayoutRequest(graph: *mut BNFlowGraphLayoutRequest);
18635}
18636unsafe extern "C" {
18637 pub fn BNIsILFlowGraph(graph: *mut BNFlowGraph) -> bool;
18638}
18639unsafe extern "C" {
18640 pub fn BNIsLowLevelILFlowGraph(graph: *mut BNFlowGraph) -> bool;
18641}
18642unsafe extern "C" {
18643 pub fn BNIsMediumLevelILFlowGraph(graph: *mut BNFlowGraph) -> bool;
18644}
18645unsafe extern "C" {
18646 pub fn BNIsHighLevelILFlowGraph(graph: *mut BNFlowGraph) -> bool;
18647}
18648unsafe extern "C" {
18649 pub fn BNGetFlowGraphLowLevelILFunction(graph: *mut BNFlowGraph) -> *mut BNLowLevelILFunction;
18650}
18651unsafe extern "C" {
18652 pub fn BNGetFlowGraphMediumLevelILFunction(
18653 graph: *mut BNFlowGraph,
18654 ) -> *mut BNMediumLevelILFunction;
18655}
18656unsafe extern "C" {
18657 pub fn BNGetFlowGraphHighLevelILFunction(graph: *mut BNFlowGraph)
18658 -> *mut BNHighLevelILFunction;
18659}
18660unsafe extern "C" {
18661 pub fn BNSetFlowGraphLowLevelILFunction(
18662 graph: *mut BNFlowGraph,
18663 func: *mut BNLowLevelILFunction,
18664 );
18665}
18666unsafe extern "C" {
18667 pub fn BNSetFlowGraphMediumLevelILFunction(
18668 graph: *mut BNFlowGraph,
18669 func: *mut BNMediumLevelILFunction,
18670 );
18671}
18672unsafe extern "C" {
18673 pub fn BNSetFlowGraphHighLevelILFunction(
18674 graph: *mut BNFlowGraph,
18675 func: *mut BNHighLevelILFunction,
18676 );
18677}
18678unsafe extern "C" {
18679 pub fn BNGetFlowGraphNodes(
18680 graph: *mut BNFlowGraph,
18681 count: *mut usize,
18682 ) -> *mut *mut BNFlowGraphNode;
18683}
18684unsafe extern "C" {
18685 pub fn BNGetFlowGraphNode(graph: *mut BNFlowGraph, i: usize) -> *mut BNFlowGraphNode;
18686}
18687unsafe extern "C" {
18688 pub fn BNGetFlowGraphNodesInRegion(
18689 graph: *mut BNFlowGraph,
18690 left: ::std::os::raw::c_int,
18691 top: ::std::os::raw::c_int,
18692 right: ::std::os::raw::c_int,
18693 bottom: ::std::os::raw::c_int,
18694 count: *mut usize,
18695 ) -> *mut *mut BNFlowGraphNode;
18696}
18697unsafe extern "C" {
18698 pub fn BNFreeFlowGraphNodeList(nodes: *mut *mut BNFlowGraphNode, count: usize);
18699}
18700unsafe extern "C" {
18701 pub fn BNGetFlowGraphNodeCount(graph: *mut BNFlowGraph) -> usize;
18702}
18703unsafe extern "C" {
18704 pub fn BNFlowGraphHasNodes(graph: *mut BNFlowGraph) -> bool;
18705}
18706unsafe extern "C" {
18707 pub fn BNAddFlowGraphNode(graph: *mut BNFlowGraph, node: *mut BNFlowGraphNode) -> usize;
18708}
18709unsafe extern "C" {
18710 pub fn BNReplaceFlowGraphNode(graph: *mut BNFlowGraph, i: usize, newNode: *mut BNFlowGraphNode);
18711}
18712unsafe extern "C" {
18713 pub fn BNClearFlowGraphNodes(graph: *mut BNFlowGraph);
18714}
18715unsafe extern "C" {
18716 pub fn BNGetFlowGraphWidth(graph: *mut BNFlowGraph) -> ::std::os::raw::c_int;
18717}
18718unsafe extern "C" {
18719 pub fn BNGetFlowGraphHeight(graph: *mut BNFlowGraph) -> ::std::os::raw::c_int;
18720}
18721unsafe extern "C" {
18722 pub fn BNFlowGraphSetWidth(graph: *mut BNFlowGraph, width: ::std::os::raw::c_int);
18723}
18724unsafe extern "C" {
18725 pub fn BNFlowGraphSetHeight(graph: *mut BNFlowGraph, height: ::std::os::raw::c_int);
18726}
18727unsafe extern "C" {
18728 pub fn BNGetFlowGraphRenderLayers(
18729 graph: *mut BNFlowGraph,
18730 count: *mut usize,
18731 ) -> *mut *mut BNRenderLayer;
18732}
18733unsafe extern "C" {
18734 pub fn BNAddFlowGraphRenderLayer(graph: *mut BNFlowGraph, layer: *mut BNRenderLayer);
18735}
18736unsafe extern "C" {
18737 pub fn BNRemoveFlowGraphRenderLayer(graph: *mut BNFlowGraph, layer: *mut BNRenderLayer);
18738}
18739unsafe extern "C" {
18740 pub fn BNCreateFlowGraphNode(graph: *mut BNFlowGraph) -> *mut BNFlowGraphNode;
18741}
18742unsafe extern "C" {
18743 pub fn BNNewFlowGraphNodeReference(node: *mut BNFlowGraphNode) -> *mut BNFlowGraphNode;
18744}
18745unsafe extern "C" {
18746 pub fn BNFreeFlowGraphNode(node: *mut BNFlowGraphNode);
18747}
18748unsafe extern "C" {
18749 pub fn BNGetFlowGraphNodeOwner(node: *mut BNFlowGraphNode) -> *mut BNFlowGraph;
18750}
18751unsafe extern "C" {
18752 pub fn BNGetFlowGraphBasicBlock(node: *mut BNFlowGraphNode) -> *mut BNBasicBlock;
18753}
18754unsafe extern "C" {
18755 pub fn BNSetFlowGraphBasicBlock(node: *mut BNFlowGraphNode, block: *mut BNBasicBlock);
18756}
18757unsafe extern "C" {
18758 pub fn BNFlowGraphNodeSetX(node: *mut BNFlowGraphNode, x: ::std::os::raw::c_int);
18759}
18760unsafe extern "C" {
18761 pub fn BNFlowGraphNodeSetY(node: *mut BNFlowGraphNode, y: ::std::os::raw::c_int);
18762}
18763unsafe extern "C" {
18764 pub fn BNGetFlowGraphNodeX(node: *mut BNFlowGraphNode) -> ::std::os::raw::c_int;
18765}
18766unsafe extern "C" {
18767 pub fn BNGetFlowGraphNodeY(node: *mut BNFlowGraphNode) -> ::std::os::raw::c_int;
18768}
18769unsafe extern "C" {
18770 pub fn BNGetFlowGraphNodeWidth(node: *mut BNFlowGraphNode) -> ::std::os::raw::c_int;
18771}
18772unsafe extern "C" {
18773 pub fn BNGetFlowGraphNodeHeight(node: *mut BNFlowGraphNode) -> ::std::os::raw::c_int;
18774}
18775unsafe extern "C" {
18776 pub fn BNGetFlowGraphNodeLines(
18777 node: *mut BNFlowGraphNode,
18778 count: *mut usize,
18779 ) -> *mut BNDisassemblyTextLine;
18780}
18781unsafe extern "C" {
18782 pub fn BNSetFlowGraphNodeLines(
18783 node: *mut BNFlowGraphNode,
18784 lines: *mut BNDisassemblyTextLine,
18785 count: usize,
18786 );
18787}
18788unsafe extern "C" {
18789 pub fn BNGetFlowGraphNodeOutgoingEdges(
18790 node: *mut BNFlowGraphNode,
18791 count: *mut usize,
18792 ) -> *mut BNFlowGraphEdge;
18793}
18794unsafe extern "C" {
18795 pub fn BNGetFlowGraphNodeIncomingEdges(
18796 node: *mut BNFlowGraphNode,
18797 count: *mut usize,
18798 ) -> *mut BNFlowGraphEdge;
18799}
18800unsafe extern "C" {
18801 pub fn BNFreeFlowGraphNodeEdgeList(edges: *mut BNFlowGraphEdge, count: usize);
18802}
18803unsafe extern "C" {
18804 pub fn BNAddFlowGraphNodeOutgoingEdge(
18805 node: *mut BNFlowGraphNode,
18806 type_: BNBranchType,
18807 target: *mut BNFlowGraphNode,
18808 edgeStyle: BNEdgeStyle,
18809 );
18810}
18811unsafe extern "C" {
18812 pub fn BNGetFlowGraphNodeHighlight(node: *mut BNFlowGraphNode) -> BNHighlightColor;
18813}
18814unsafe extern "C" {
18815 pub fn BNSetFlowGraphNodeHighlight(node: *mut BNFlowGraphNode, color: BNHighlightColor);
18816}
18817unsafe extern "C" {
18818 pub fn BNFinishPrepareForLayout(graph: *mut BNFlowGraph);
18819}
18820unsafe extern "C" {
18821 pub fn BNFlowGraphUpdateQueryMode(graph: *mut BNFlowGraph) -> bool;
18822}
18823unsafe extern "C" {
18824 pub fn BNFlowGraphHasUpdates(graph: *mut BNFlowGraph) -> bool;
18825}
18826unsafe extern "C" {
18827 pub fn BNUpdateFlowGraph(graph: *mut BNFlowGraph) -> *mut BNFlowGraph;
18828}
18829unsafe extern "C" {
18830 pub fn BNSetFlowGraphOption(graph: *mut BNFlowGraph, option: BNFlowGraphOption, value: bool);
18831}
18832unsafe extern "C" {
18833 pub fn BNIsFlowGraphOptionSet(graph: *mut BNFlowGraph, option: BNFlowGraphOption) -> bool;
18834}
18835unsafe extern "C" {
18836 pub fn BNIsNodeValidForFlowGraph(graph: *mut BNFlowGraph, node: *mut BNFlowGraphNode) -> bool;
18837}
18838unsafe extern "C" {
18839 pub fn BNFlowGraphNodeSetVisibilityRegion(
18840 node: *mut BNFlowGraphNode,
18841 x: ::std::os::raw::c_int,
18842 y: ::std::os::raw::c_int,
18843 w: ::std::os::raw::c_int,
18844 h: ::std::os::raw::c_int,
18845 );
18846}
18847unsafe extern "C" {
18848 pub fn BNFlowGraphNodeSetOutgoingEdgePoints(
18849 node: *mut BNFlowGraphNode,
18850 edgeNum: usize,
18851 points: *mut BNPoint,
18852 pointCount: usize,
18853 );
18854}
18855unsafe extern "C" {
18856 pub fn BNGetFlowGraphLayouts(count: *mut usize) -> *mut *mut BNFlowGraphLayout;
18857}
18858unsafe extern "C" {
18859 pub fn BNFreeFlowGraphLayoutList(layouts: *mut *mut BNFlowGraphLayout);
18860}
18861unsafe extern "C" {
18862 pub fn BNRegisterFlowGraphLayout(
18863 name: *const ::std::os::raw::c_char,
18864 callbacks: *mut BNCustomFlowGraphLayout,
18865 ) -> *mut BNFlowGraphLayout;
18866}
18867unsafe extern "C" {
18868 pub fn BNGetFlowGraphLayoutByName(
18869 name: *const ::std::os::raw::c_char,
18870 ) -> *mut BNFlowGraphLayout;
18871}
18872unsafe extern "C" {
18873 pub fn BNGetFlowGraphLayoutName(layout: *mut BNFlowGraphLayout) -> *mut ::std::os::raw::c_char;
18874}
18875unsafe extern "C" {
18876 pub fn BNFlowGraphLayoutLayout(
18877 layout: *mut BNFlowGraphLayout,
18878 graph: *mut BNFlowGraph,
18879 nodes: *mut *mut BNFlowGraphNode,
18880 nodeCount: usize,
18881 ) -> bool;
18882}
18883unsafe extern "C" {
18884 #[doc = " Symbols"]
18885 pub fn BNCreateSymbol(
18886 type_: BNSymbolType,
18887 shortName: *const ::std::os::raw::c_char,
18888 fullName: *const ::std::os::raw::c_char,
18889 rawName: *const ::std::os::raw::c_char,
18890 addr: u64,
18891 binding: BNSymbolBinding,
18892 nameSpace: *const BNNameSpace,
18893 ordinal: u64,
18894 ) -> *mut BNSymbol;
18895}
18896unsafe extern "C" {
18897 pub fn BNNewSymbolReference(sym: *mut BNSymbol) -> *mut BNSymbol;
18898}
18899unsafe extern "C" {
18900 pub fn BNFreeSymbol(sym: *mut BNSymbol);
18901}
18902unsafe extern "C" {
18903 pub fn BNGetSymbolType(sym: *mut BNSymbol) -> BNSymbolType;
18904}
18905unsafe extern "C" {
18906 pub fn BNGetSymbolBinding(sym: *mut BNSymbol) -> BNSymbolBinding;
18907}
18908unsafe extern "C" {
18909 pub fn BNGetSymbolNameSpace(sym: *mut BNSymbol) -> BNNameSpace;
18910}
18911unsafe extern "C" {
18912 pub fn BNGetSymbolShortName(sym: *mut BNSymbol) -> *mut ::std::os::raw::c_char;
18913}
18914unsafe extern "C" {
18915 pub fn BNGetSymbolShortNameRef(sym: *mut BNSymbol) -> *mut BNStringRef;
18916}
18917unsafe extern "C" {
18918 pub fn BNGetSymbolFullName(sym: *mut BNSymbol) -> *mut ::std::os::raw::c_char;
18919}
18920unsafe extern "C" {
18921 pub fn BNGetSymbolFullNameRef(sym: *mut BNSymbol) -> *mut BNStringRef;
18922}
18923unsafe extern "C" {
18924 pub fn BNGetSymbolRawName(sym: *mut BNSymbol) -> *mut ::std::os::raw::c_char;
18925}
18926unsafe extern "C" {
18927 pub fn BNGetSymbolRawNameRef(sym: *mut BNSymbol) -> *mut BNStringRef;
18928}
18929unsafe extern "C" {
18930 pub fn BNGetSymbolRawBytes(
18931 sym: *mut BNSymbol,
18932 count: *mut usize,
18933 ) -> *mut ::std::os::raw::c_void;
18934}
18935unsafe extern "C" {
18936 pub fn BNFreeSymbolRawBytes(bytes: *mut ::std::os::raw::c_void);
18937}
18938unsafe extern "C" {
18939 pub fn BNGetSymbolAddress(sym: *mut BNSymbol) -> u64;
18940}
18941unsafe extern "C" {
18942 pub fn BNGetSymbolOrdinal(sym: *mut BNSymbol) -> u64;
18943}
18944unsafe extern "C" {
18945 pub fn BNIsSymbolAutoDefined(sym: *mut BNSymbol) -> bool;
18946}
18947unsafe extern "C" {
18948 pub fn BNGetSymbolByAddress(
18949 view: *mut BNBinaryView,
18950 addr: u64,
18951 nameSpace: *const BNNameSpace,
18952 ) -> *mut BNSymbol;
18953}
18954unsafe extern "C" {
18955 pub fn BNGetSymbolByRawName(
18956 view: *mut BNBinaryView,
18957 name: *const ::std::os::raw::c_char,
18958 nameSpace: *const BNNameSpace,
18959 ) -> *mut BNSymbol;
18960}
18961unsafe extern "C" {
18962 pub fn BNGetSymbolsByName(
18963 view: *mut BNBinaryView,
18964 name: *const ::std::os::raw::c_char,
18965 count: *mut usize,
18966 nameSpace: *const BNNameSpace,
18967 ) -> *mut *mut BNSymbol;
18968}
18969unsafe extern "C" {
18970 pub fn BNGetSymbolsByRawName(
18971 view: *mut BNBinaryView,
18972 name: *const ::std::os::raw::c_char,
18973 count: *mut usize,
18974 nameSpace: *const BNNameSpace,
18975 ) -> *mut *mut BNSymbol;
18976}
18977unsafe extern "C" {
18978 pub fn BNGetSymbols(
18979 view: *mut BNBinaryView,
18980 count: *mut usize,
18981 nameSpace: *const BNNameSpace,
18982 ) -> *mut *mut BNSymbol;
18983}
18984unsafe extern "C" {
18985 pub fn BNGetSymbolsInRange(
18986 view: *mut BNBinaryView,
18987 start: u64,
18988 len: u64,
18989 count: *mut usize,
18990 nameSpace: *const BNNameSpace,
18991 ) -> *mut *mut BNSymbol;
18992}
18993unsafe extern "C" {
18994 pub fn BNGetSymbolsOfType(
18995 view: *mut BNBinaryView,
18996 type_: BNSymbolType,
18997 count: *mut usize,
18998 nameSpace: *const BNNameSpace,
18999 ) -> *mut *mut BNSymbol;
19000}
19001unsafe extern "C" {
19002 pub fn BNGetSymbolsOfTypeInRange(
19003 view: *mut BNBinaryView,
19004 type_: BNSymbolType,
19005 start: u64,
19006 len: u64,
19007 count: *mut usize,
19008 nameSpace: *const BNNameSpace,
19009 ) -> *mut *mut BNSymbol;
19010}
19011unsafe extern "C" {
19012 pub fn BNFreeSymbolList(syms: *mut *mut BNSymbol, count: usize);
19013}
19014unsafe extern "C" {
19015 pub fn BNGetVisibleSymbols(
19016 view: *mut BNBinaryView,
19017 count: *mut usize,
19018 nameSpace: *const BNNameSpace,
19019 ) -> *mut *mut BNSymbol;
19020}
19021unsafe extern "C" {
19022 pub fn BNDefineAutoSymbol(view: *mut BNBinaryView, sym: *mut BNSymbol);
19023}
19024unsafe extern "C" {
19025 pub fn BNUndefineAutoSymbol(view: *mut BNBinaryView, sym: *mut BNSymbol);
19026}
19027unsafe extern "C" {
19028 pub fn BNDefineUserSymbol(view: *mut BNBinaryView, sym: *mut BNSymbol);
19029}
19030unsafe extern "C" {
19031 pub fn BNUndefineUserSymbol(view: *mut BNBinaryView, sym: *mut BNSymbol);
19032}
19033unsafe extern "C" {
19034 pub fn BNDefineImportedFunction(
19035 view: *mut BNBinaryView,
19036 importAddressSym: *mut BNSymbol,
19037 func: *mut BNFunction,
19038 type_: *mut BNType,
19039 );
19040}
19041unsafe extern "C" {
19042 pub fn BNDefineAutoSymbolAndVariableOrFunction(
19043 view: *mut BNBinaryView,
19044 platform: *mut BNPlatform,
19045 sym: *mut BNSymbol,
19046 type_: *mut BNTypeWithConfidence,
19047 ) -> *mut BNSymbol;
19048}
19049unsafe extern "C" {
19050 pub fn BNBeginBulkModifySymbols(view: *mut BNBinaryView);
19051}
19052unsafe extern "C" {
19053 pub fn BNEndBulkModifySymbols(view: *mut BNBinaryView);
19054}
19055unsafe extern "C" {
19056 pub fn BNGetDebugInfo(view: *mut BNBinaryView) -> *mut BNDebugInfo;
19057}
19058unsafe extern "C" {
19059 pub fn BNApplyDebugInfo(view: *mut BNBinaryView, newDebugInfo: *mut BNDebugInfo);
19060}
19061unsafe extern "C" {
19062 pub fn BNSetDebugInfo(view: *mut BNBinaryView, newDebugInfo: *mut BNDebugInfo);
19063}
19064unsafe extern "C" {
19065 pub fn BNIsApplyingDebugInfo(view: *mut BNBinaryView) -> bool;
19066}
19067unsafe extern "C" {
19068 pub fn BNImportedFunctionFromImportAddressSymbol(
19069 sym: *mut BNSymbol,
19070 addr: u64,
19071 ) -> *mut BNSymbol;
19072}
19073unsafe extern "C" {
19074 #[doc = " Low-level IL"]
19075 pub fn BNCreateLowLevelILFunction(
19076 arch: *mut BNArchitecture,
19077 func: *mut BNFunction,
19078 ) -> *mut BNLowLevelILFunction;
19079}
19080unsafe extern "C" {
19081 pub fn BNNewLowLevelILFunctionReference(
19082 func: *mut BNLowLevelILFunction,
19083 ) -> *mut BNLowLevelILFunction;
19084}
19085unsafe extern "C" {
19086 pub fn BNFreeLowLevelILFunction(func: *mut BNLowLevelILFunction);
19087}
19088unsafe extern "C" {
19089 pub fn BNGetLowLevelILOwnerFunction(func: *mut BNLowLevelILFunction) -> *mut BNFunction;
19090}
19091unsafe extern "C" {
19092 pub fn BNLowLevelILGetCurrentAddress(func: *mut BNLowLevelILFunction) -> u64;
19093}
19094unsafe extern "C" {
19095 pub fn BNLowLevelILSetCurrentAddress(
19096 func: *mut BNLowLevelILFunction,
19097 arch: *mut BNArchitecture,
19098 addr: u64,
19099 );
19100}
19101unsafe extern "C" {
19102 pub fn BNLowLevelILSetCurrentSourceBlock(
19103 func: *mut BNLowLevelILFunction,
19104 source: *mut BNBasicBlock,
19105 );
19106}
19107unsafe extern "C" {
19108 pub fn BNLowLevelILGetInstructionStart(
19109 func: *mut BNLowLevelILFunction,
19110 arch: *mut BNArchitecture,
19111 addr: u64,
19112 ) -> usize;
19113}
19114unsafe extern "C" {
19115 pub fn BNLowLevelILGetInstructionsAt(
19116 func: *mut BNLowLevelILFunction,
19117 arch: *mut BNArchitecture,
19118 addr: u64,
19119 count: *mut usize,
19120 ) -> *mut usize;
19121}
19122unsafe extern "C" {
19123 pub fn BNLowLevelILGetExitsForInstruction(
19124 func: *mut BNLowLevelILFunction,
19125 instr: usize,
19126 count: *mut usize,
19127 ) -> *mut usize;
19128}
19129unsafe extern "C" {
19130 pub fn BNLowLevelILClearIndirectBranches(func: *mut BNLowLevelILFunction);
19131}
19132unsafe extern "C" {
19133 pub fn BNLowLevelILSetIndirectBranches(
19134 func: *mut BNLowLevelILFunction,
19135 branches: *mut BNArchitectureAndAddress,
19136 count: usize,
19137 );
19138}
19139unsafe extern "C" {
19140 pub fn BNLowLevelILAddExpr(
19141 func: *mut BNLowLevelILFunction,
19142 operation: BNLowLevelILOperation,
19143 size: usize,
19144 flags: u32,
19145 a: u64,
19146 b: u64,
19147 c: u64,
19148 d: u64,
19149 ) -> usize;
19150}
19151unsafe extern "C" {
19152 pub fn BNLowLevelILAddExprWithLocation(
19153 func: *mut BNLowLevelILFunction,
19154 addr: u64,
19155 sourceOperand: u32,
19156 operation: BNLowLevelILOperation,
19157 size: usize,
19158 flags: u32,
19159 a: u64,
19160 b: u64,
19161 c: u64,
19162 d: u64,
19163 ) -> usize;
19164}
19165unsafe extern "C" {
19166 pub fn BNLowLevelILSetExprSourceOperand(
19167 func: *mut BNLowLevelILFunction,
19168 expr: usize,
19169 operand: u32,
19170 );
19171}
19172unsafe extern "C" {
19173 pub fn BNLowLevelILAddInstruction(func: *mut BNLowLevelILFunction, expr: usize) -> usize;
19174}
19175unsafe extern "C" {
19176 pub fn BNLowLevelILGoto(
19177 func: *mut BNLowLevelILFunction,
19178 label: *mut BNLowLevelILLabel,
19179 ) -> usize;
19180}
19181unsafe extern "C" {
19182 pub fn BNLowLevelILGotoWithLocation(
19183 func: *mut BNLowLevelILFunction,
19184 label: *mut BNLowLevelILLabel,
19185 addr: u64,
19186 sourceOperand: u32,
19187 ) -> usize;
19188}
19189unsafe extern "C" {
19190 pub fn BNLowLevelILIf(
19191 func: *mut BNLowLevelILFunction,
19192 op: u64,
19193 t: *mut BNLowLevelILLabel,
19194 f: *mut BNLowLevelILLabel,
19195 ) -> usize;
19196}
19197unsafe extern "C" {
19198 pub fn BNLowLevelILIfWithLocation(
19199 func: *mut BNLowLevelILFunction,
19200 op: u64,
19201 t: *mut BNLowLevelILLabel,
19202 f: *mut BNLowLevelILLabel,
19203 addr: u64,
19204 sourceOperand: u32,
19205 ) -> usize;
19206}
19207unsafe extern "C" {
19208 pub fn BNLowLevelILInitLabel(label: *mut BNLowLevelILLabel);
19209}
19210unsafe extern "C" {
19211 pub fn BNLowLevelILMarkLabel(func: *mut BNLowLevelILFunction, label: *mut BNLowLevelILLabel);
19212}
19213unsafe extern "C" {
19214 pub fn BNFinalizeLowLevelILFunction(func: *mut BNLowLevelILFunction);
19215}
19216unsafe extern "C" {
19217 pub fn BNGenerateLowLevelILSSAForm(func: *mut BNLowLevelILFunction);
19218}
19219unsafe extern "C" {
19220 pub fn BNLowLevelILFunctionHasIndirectBranches(func: *mut BNLowLevelILFunction) -> bool;
19221}
19222unsafe extern "C" {
19223 pub fn BNPrepareToCopyLowLevelILFunction(
19224 func: *mut BNLowLevelILFunction,
19225 src: *mut BNLowLevelILFunction,
19226 );
19227}
19228unsafe extern "C" {
19229 pub fn BNPrepareToCopyLowLevelILBasicBlock(
19230 func: *mut BNLowLevelILFunction,
19231 block: *mut BNBasicBlock,
19232 );
19233}
19234unsafe extern "C" {
19235 pub fn BNGetLabelForLowLevelILSourceInstruction(
19236 func: *mut BNLowLevelILFunction,
19237 instr: usize,
19238 ) -> *mut BNLowLevelILLabel;
19239}
19240unsafe extern "C" {
19241 pub fn BNPrepareToCopyForeignFunction(
19242 dst: *mut BNLowLevelILFunction,
19243 src: *mut BNLowLevelILFunction,
19244 count: *mut usize,
19245 ) -> *mut *mut BNBasicBlock;
19246}
19247unsafe extern "C" {
19248 pub fn BNLowLevelILAddLabelMap(
19249 func: *mut BNLowLevelILFunction,
19250 values: *mut u64,
19251 labels: *mut *mut BNLowLevelILLabel,
19252 count: usize,
19253 ) -> usize;
19254}
19255unsafe extern "C" {
19256 pub fn BNLowLevelILAddOperandList(
19257 func: *mut BNLowLevelILFunction,
19258 operands: *mut u64,
19259 count: usize,
19260 ) -> usize;
19261}
19262unsafe extern "C" {
19263 pub fn BNLowLevelILGetOperandList(
19264 func: *mut BNLowLevelILFunction,
19265 expr: usize,
19266 operand: usize,
19267 count: *mut usize,
19268 ) -> *mut u64;
19269}
19270unsafe extern "C" {
19271 pub fn BNLowLevelILFreeOperandList(operands: *mut u64);
19272}
19273unsafe extern "C" {
19274 pub fn BNLowLevelILGetOperand(func: *mut BNLowLevelILFunction, offset: usize) -> u64;
19275}
19276unsafe extern "C" {
19277 pub fn BNCacheLowLevelILPossibleValueSet(
19278 func: *mut BNLowLevelILFunction,
19279 pvs: *mut BNPossibleValueSet,
19280 ) -> usize;
19281}
19282unsafe extern "C" {
19283 pub fn BNGetCachedLowLevelILPossibleValueSet(
19284 func: *mut BNLowLevelILFunction,
19285 idx: usize,
19286 ) -> BNPossibleValueSet;
19287}
19288unsafe extern "C" {
19289 pub fn BNGetLowLevelILByIndex(
19290 func: *mut BNLowLevelILFunction,
19291 i: usize,
19292 ) -> BNLowLevelILInstruction;
19293}
19294unsafe extern "C" {
19295 pub fn BNGetLowLevelILIndexForInstruction(func: *mut BNLowLevelILFunction, i: usize) -> usize;
19296}
19297unsafe extern "C" {
19298 pub fn BNGetLowLevelILInstructionForExpr(func: *mut BNLowLevelILFunction, expr: usize)
19299 -> usize;
19300}
19301unsafe extern "C" {
19302 pub fn BNGetLowLevelILInstructionCount(func: *mut BNLowLevelILFunction) -> usize;
19303}
19304unsafe extern "C" {
19305 pub fn BNGetLowLevelILExprCount(func: *mut BNLowLevelILFunction) -> usize;
19306}
19307unsafe extern "C" {
19308 pub fn BNUpdateLowLevelILOperand(
19309 func: *mut BNLowLevelILFunction,
19310 instr: usize,
19311 operandIndex: usize,
19312 value: u64,
19313 );
19314}
19315unsafe extern "C" {
19316 pub fn BNReplaceLowLevelILExpr(func: *mut BNLowLevelILFunction, expr: usize, newExpr: usize);
19317}
19318unsafe extern "C" {
19319 pub fn BNSetLowLevelILExprAttributes(
19320 func: *mut BNLowLevelILFunction,
19321 expr: usize,
19322 attributes: u32,
19323 );
19324}
19325unsafe extern "C" {
19326 pub fn BNAddLowLevelILLabelForAddress(
19327 func: *mut BNLowLevelILFunction,
19328 arch: *mut BNArchitecture,
19329 addr: u64,
19330 );
19331}
19332unsafe extern "C" {
19333 pub fn BNGetLowLevelILLabelForAddress(
19334 func: *mut BNLowLevelILFunction,
19335 arch: *mut BNArchitecture,
19336 addr: u64,
19337 ) -> *mut BNLowLevelILLabel;
19338}
19339unsafe extern "C" {
19340 pub fn BNPrepareBlockTranslation(
19341 func: *mut BNLowLevelILFunction,
19342 arch: *mut BNArchitecture,
19343 addr: u64,
19344 );
19345}
19346unsafe extern "C" {
19347 pub fn BNGetLowLevelILExprText(
19348 func: *mut BNLowLevelILFunction,
19349 arch: *mut BNArchitecture,
19350 i: usize,
19351 settings: *mut BNDisassemblySettings,
19352 tokens: *mut *mut BNInstructionTextToken,
19353 count: *mut usize,
19354 ) -> bool;
19355}
19356unsafe extern "C" {
19357 pub fn BNGetLowLevelILInstructionText(
19358 il: *mut BNLowLevelILFunction,
19359 func: *mut BNFunction,
19360 arch: *mut BNArchitecture,
19361 i: usize,
19362 settings: *mut BNDisassemblySettings,
19363 tokens: *mut *mut BNInstructionTextToken,
19364 count: *mut usize,
19365 ) -> bool;
19366}
19367unsafe extern "C" {
19368 pub fn BNGetLowLevelILTemporaryRegisterCount(func: *mut BNLowLevelILFunction) -> u32;
19369}
19370unsafe extern "C" {
19371 pub fn BNGetLowLevelILTemporaryFlagCount(func: *mut BNLowLevelILFunction) -> u32;
19372}
19373unsafe extern "C" {
19374 pub fn BNGetLowLevelILBasicBlockList(
19375 func: *mut BNLowLevelILFunction,
19376 count: *mut usize,
19377 ) -> *mut *mut BNBasicBlock;
19378}
19379unsafe extern "C" {
19380 pub fn BNGetLowLevelILBasicBlockForInstruction(
19381 func: *mut BNLowLevelILFunction,
19382 i: usize,
19383 ) -> *mut BNBasicBlock;
19384}
19385unsafe extern "C" {
19386 pub fn BNGetLowLevelILSSAForm(func: *mut BNLowLevelILFunction) -> *mut BNLowLevelILFunction;
19387}
19388unsafe extern "C" {
19389 pub fn BNGetLowLevelILNonSSAForm(func: *mut BNLowLevelILFunction) -> *mut BNLowLevelILFunction;
19390}
19391unsafe extern "C" {
19392 pub fn BNGetLowLevelILSSAInstructionIndex(
19393 func: *mut BNLowLevelILFunction,
19394 instr: usize,
19395 ) -> usize;
19396}
19397unsafe extern "C" {
19398 pub fn BNGetLowLevelILNonSSAInstructionIndex(
19399 func: *mut BNLowLevelILFunction,
19400 instr: usize,
19401 ) -> usize;
19402}
19403unsafe extern "C" {
19404 pub fn BNGetLowLevelILSSAExprIndex(func: *mut BNLowLevelILFunction, expr: usize) -> usize;
19405}
19406unsafe extern "C" {
19407 pub fn BNGetLowLevelILNonSSAExprIndex(func: *mut BNLowLevelILFunction, expr: usize) -> usize;
19408}
19409unsafe extern "C" {
19410 pub fn BNGetLowLevelILSSARegisterDefinition(
19411 func: *mut BNLowLevelILFunction,
19412 reg: u32,
19413 version: usize,
19414 ) -> usize;
19415}
19416unsafe extern "C" {
19417 pub fn BNGetLowLevelILSSAFlagDefinition(
19418 func: *mut BNLowLevelILFunction,
19419 reg: u32,
19420 version: usize,
19421 ) -> usize;
19422}
19423unsafe extern "C" {
19424 pub fn BNGetLowLevelILSSAMemoryDefinition(
19425 func: *mut BNLowLevelILFunction,
19426 version: usize,
19427 ) -> usize;
19428}
19429unsafe extern "C" {
19430 pub fn BNGetLowLevelILSSARegisterUses(
19431 func: *mut BNLowLevelILFunction,
19432 reg: u32,
19433 version: usize,
19434 count: *mut usize,
19435 ) -> *mut usize;
19436}
19437unsafe extern "C" {
19438 pub fn BNGetLowLevelILSSAFlagUses(
19439 func: *mut BNLowLevelILFunction,
19440 reg: u32,
19441 version: usize,
19442 count: *mut usize,
19443 ) -> *mut usize;
19444}
19445unsafe extern "C" {
19446 pub fn BNGetLowLevelILSSAMemoryUses(
19447 func: *mut BNLowLevelILFunction,
19448 version: usize,
19449 count: *mut usize,
19450 ) -> *mut usize;
19451}
19452unsafe extern "C" {
19453 pub fn BNGetLowLevelILSSARegisterValue(
19454 func: *mut BNLowLevelILFunction,
19455 reg: u32,
19456 version: usize,
19457 ) -> BNRegisterValue;
19458}
19459unsafe extern "C" {
19460 pub fn BNGetLowLevelILSSAFlagValue(
19461 func: *mut BNLowLevelILFunction,
19462 flag: u32,
19463 version: usize,
19464 ) -> BNRegisterValue;
19465}
19466unsafe extern "C" {
19467 pub fn BNGetLowLevelILExprValue(
19468 func: *mut BNLowLevelILFunction,
19469 expr: usize,
19470 ) -> BNRegisterValue;
19471}
19472unsafe extern "C" {
19473 pub fn BNGetLowLevelILPossibleExprValues(
19474 func: *mut BNLowLevelILFunction,
19475 expr: usize,
19476 options: *mut BNDataFlowQueryOption,
19477 optionCount: usize,
19478 ) -> BNPossibleValueSet;
19479}
19480unsafe extern "C" {
19481 pub fn BNGetLowLevelILRegisterValueAtInstruction(
19482 func: *mut BNLowLevelILFunction,
19483 reg: u32,
19484 instr: usize,
19485 ) -> BNRegisterValue;
19486}
19487unsafe extern "C" {
19488 pub fn BNGetLowLevelILRegisterValueAfterInstruction(
19489 func: *mut BNLowLevelILFunction,
19490 reg: u32,
19491 instr: usize,
19492 ) -> BNRegisterValue;
19493}
19494unsafe extern "C" {
19495 pub fn BNGetLowLevelILPossibleRegisterValuesAtInstruction(
19496 func: *mut BNLowLevelILFunction,
19497 reg: u32,
19498 instr: usize,
19499 options: *mut BNDataFlowQueryOption,
19500 optionCount: usize,
19501 ) -> BNPossibleValueSet;
19502}
19503unsafe extern "C" {
19504 pub fn BNGetLowLevelILPossibleRegisterValuesAfterInstruction(
19505 func: *mut BNLowLevelILFunction,
19506 reg: u32,
19507 instr: usize,
19508 options: *mut BNDataFlowQueryOption,
19509 optionCount: usize,
19510 ) -> BNPossibleValueSet;
19511}
19512unsafe extern "C" {
19513 pub fn BNGetLowLevelILFlagValueAtInstruction(
19514 func: *mut BNLowLevelILFunction,
19515 flag: u32,
19516 instr: usize,
19517 ) -> BNRegisterValue;
19518}
19519unsafe extern "C" {
19520 pub fn BNGetLowLevelILFlagValueAfterInstruction(
19521 func: *mut BNLowLevelILFunction,
19522 flag: u32,
19523 instr: usize,
19524 ) -> BNRegisterValue;
19525}
19526unsafe extern "C" {
19527 pub fn BNGetLowLevelILPossibleFlagValuesAtInstruction(
19528 func: *mut BNLowLevelILFunction,
19529 flag: u32,
19530 instr: usize,
19531 options: *mut BNDataFlowQueryOption,
19532 optionCount: usize,
19533 ) -> BNPossibleValueSet;
19534}
19535unsafe extern "C" {
19536 pub fn BNGetLowLevelILPossibleFlagValuesAfterInstruction(
19537 func: *mut BNLowLevelILFunction,
19538 flag: u32,
19539 instr: usize,
19540 options: *mut BNDataFlowQueryOption,
19541 optionCount: usize,
19542 ) -> BNPossibleValueSet;
19543}
19544unsafe extern "C" {
19545 pub fn BNGetLowLevelILStackContentsAtInstruction(
19546 func: *mut BNLowLevelILFunction,
19547 offset: i64,
19548 len: usize,
19549 instr: usize,
19550 ) -> BNRegisterValue;
19551}
19552unsafe extern "C" {
19553 pub fn BNGetLowLevelILStackContentsAfterInstruction(
19554 func: *mut BNLowLevelILFunction,
19555 offset: i64,
19556 len: usize,
19557 instr: usize,
19558 ) -> BNRegisterValue;
19559}
19560unsafe extern "C" {
19561 pub fn BNGetLowLevelILPossibleStackContentsAtInstruction(
19562 func: *mut BNLowLevelILFunction,
19563 offset: i64,
19564 len: usize,
19565 instr: usize,
19566 options: *mut BNDataFlowQueryOption,
19567 optionCount: usize,
19568 ) -> BNPossibleValueSet;
19569}
19570unsafe extern "C" {
19571 pub fn BNGetLowLevelILPossibleStackContentsAfterInstruction(
19572 func: *mut BNLowLevelILFunction,
19573 offset: i64,
19574 len: usize,
19575 instr: usize,
19576 options: *mut BNDataFlowQueryOption,
19577 optionCount: usize,
19578 ) -> BNPossibleValueSet;
19579}
19580unsafe extern "C" {
19581 pub fn BNGetLowLevelRegisters(func: *mut BNLowLevelILFunction, count: *mut usize) -> *mut u32;
19582}
19583unsafe extern "C" {
19584 pub fn BNGetLowLevelRegisterStacks(
19585 func: *mut BNLowLevelILFunction,
19586 count: *mut usize,
19587 ) -> *mut u32;
19588}
19589unsafe extern "C" {
19590 pub fn BNGetLowLevelFlags(func: *mut BNLowLevelILFunction, count: *mut usize) -> *mut u32;
19591}
19592unsafe extern "C" {
19593 pub fn BNGetLowLevelSSARegistersWithoutVersions(
19594 func: *mut BNLowLevelILFunction,
19595 count: *mut usize,
19596 ) -> *mut u32;
19597}
19598unsafe extern "C" {
19599 pub fn BNGetLowLevelSSARegisterStacksWithoutVersions(
19600 func: *mut BNLowLevelILFunction,
19601 count: *mut usize,
19602 ) -> *mut u32;
19603}
19604unsafe extern "C" {
19605 pub fn BNGetLowLevelSSAFlagsWithoutVersions(
19606 func: *mut BNLowLevelILFunction,
19607 count: *mut usize,
19608 ) -> *mut u32;
19609}
19610unsafe extern "C" {
19611 pub fn BNGetLowLevelRegisterSSAVersions(
19612 func: *mut BNLowLevelILFunction,
19613 var: u32,
19614 count: *mut usize,
19615 ) -> *mut usize;
19616}
19617unsafe extern "C" {
19618 pub fn BNGetLowLevelRegisterStackSSAVersions(
19619 func: *mut BNLowLevelILFunction,
19620 var: u32,
19621 count: *mut usize,
19622 ) -> *mut usize;
19623}
19624unsafe extern "C" {
19625 pub fn BNGetLowLevelFlagSSAVersions(
19626 func: *mut BNLowLevelILFunction,
19627 var: u32,
19628 count: *mut usize,
19629 ) -> *mut usize;
19630}
19631unsafe extern "C" {
19632 pub fn BNGetLowLevelMemoryVersions(
19633 func: *mut BNLowLevelILFunction,
19634 count: *mut usize,
19635 ) -> *mut usize;
19636}
19637unsafe extern "C" {
19638 pub fn BNFreeLLILVariablesList(vars: *mut u32);
19639}
19640unsafe extern "C" {
19641 pub fn BNFreeLLILVariableVersionList(versions: *mut usize);
19642}
19643unsafe extern "C" {
19644 pub fn BNGetMediumLevelILForLowLevelIL(
19645 func: *mut BNLowLevelILFunction,
19646 ) -> *mut BNMediumLevelILFunction;
19647}
19648unsafe extern "C" {
19649 pub fn BNGetMappedMediumLevelIL(
19650 func: *mut BNLowLevelILFunction,
19651 ) -> *mut BNMediumLevelILFunction;
19652}
19653unsafe extern "C" {
19654 pub fn BNGetMediumLevelILInstructionIndex(
19655 func: *mut BNLowLevelILFunction,
19656 instr: usize,
19657 ) -> usize;
19658}
19659unsafe extern "C" {
19660 pub fn BNGetMediumLevelILExprIndex(func: *mut BNLowLevelILFunction, expr: usize) -> usize;
19661}
19662unsafe extern "C" {
19663 pub fn BNGetMediumLevelILExprIndexes(
19664 func: *mut BNLowLevelILFunction,
19665 expr: usize,
19666 count: *mut usize,
19667 ) -> *mut usize;
19668}
19669unsafe extern "C" {
19670 pub fn BNGetMappedMediumLevelILInstructionIndex(
19671 func: *mut BNLowLevelILFunction,
19672 instr: usize,
19673 ) -> usize;
19674}
19675unsafe extern "C" {
19676 pub fn BNGetMappedMediumLevelILExprIndex(func: *mut BNLowLevelILFunction, expr: usize)
19677 -> usize;
19678}
19679unsafe extern "C" {
19680 #[doc = " Medium-level IL"]
19681 pub fn BNCreateMediumLevelILFunction(
19682 arch: *mut BNArchitecture,
19683 func: *mut BNFunction,
19684 lowLevelIL: *mut BNLowLevelILFunction,
19685 ) -> *mut BNMediumLevelILFunction;
19686}
19687unsafe extern "C" {
19688 pub fn BNNewMediumLevelILFunctionReference(
19689 func: *mut BNMediumLevelILFunction,
19690 ) -> *mut BNMediumLevelILFunction;
19691}
19692unsafe extern "C" {
19693 pub fn BNFreeMediumLevelILFunction(func: *mut BNMediumLevelILFunction);
19694}
19695unsafe extern "C" {
19696 pub fn BNGetMediumLevelILOwnerFunction(func: *mut BNMediumLevelILFunction) -> *mut BNFunction;
19697}
19698unsafe extern "C" {
19699 pub fn BNMediumLevelILGetCurrentAddress(func: *mut BNMediumLevelILFunction) -> u64;
19700}
19701unsafe extern "C" {
19702 pub fn BNMediumLevelILSetCurrentAddress(
19703 func: *mut BNMediumLevelILFunction,
19704 arch: *mut BNArchitecture,
19705 addr: u64,
19706 );
19707}
19708unsafe extern "C" {
19709 pub fn BNMediumLevelILGetInstructionStart(
19710 func: *mut BNMediumLevelILFunction,
19711 arch: *mut BNArchitecture,
19712 addr: u64,
19713 ) -> usize;
19714}
19715unsafe extern "C" {
19716 pub fn BNMediumLevelILAddExpr(
19717 func: *mut BNMediumLevelILFunction,
19718 operation: BNMediumLevelILOperation,
19719 size: usize,
19720 a: u64,
19721 b: u64,
19722 c: u64,
19723 d: u64,
19724 e: u64,
19725 ) -> usize;
19726}
19727unsafe extern "C" {
19728 pub fn BNMediumLevelILAddExprWithLocation(
19729 func: *mut BNMediumLevelILFunction,
19730 operation: BNMediumLevelILOperation,
19731 addr: u64,
19732 sourceOperand: u32,
19733 size: usize,
19734 a: u64,
19735 b: u64,
19736 c: u64,
19737 d: u64,
19738 e: u64,
19739 ) -> usize;
19740}
19741unsafe extern "C" {
19742 pub fn BNMediumLevelILAddInstruction(func: *mut BNMediumLevelILFunction, expr: usize) -> usize;
19743}
19744unsafe extern "C" {
19745 pub fn BNMediumLevelILGoto(
19746 func: *mut BNMediumLevelILFunction,
19747 label: *mut BNMediumLevelILLabel,
19748 ) -> usize;
19749}
19750unsafe extern "C" {
19751 pub fn BNMediumLevelILGotoWithLocation(
19752 func: *mut BNMediumLevelILFunction,
19753 label: *mut BNMediumLevelILLabel,
19754 addr: u64,
19755 sourceOperand: u32,
19756 ) -> usize;
19757}
19758unsafe extern "C" {
19759 pub fn BNMediumLevelILIf(
19760 func: *mut BNMediumLevelILFunction,
19761 op: u64,
19762 t: *mut BNMediumLevelILLabel,
19763 f: *mut BNMediumLevelILLabel,
19764 ) -> usize;
19765}
19766unsafe extern "C" {
19767 pub fn BNMediumLevelILIfWithLocation(
19768 func: *mut BNMediumLevelILFunction,
19769 op: u64,
19770 t: *mut BNMediumLevelILLabel,
19771 f: *mut BNMediumLevelILLabel,
19772 addr: u64,
19773 sourceOperand: u32,
19774 ) -> usize;
19775}
19776unsafe extern "C" {
19777 pub fn BNMediumLevelILInitLabel(label: *mut BNMediumLevelILLabel);
19778}
19779unsafe extern "C" {
19780 pub fn BNMediumLevelILMarkLabel(
19781 func: *mut BNMediumLevelILFunction,
19782 label: *mut BNMediumLevelILLabel,
19783 );
19784}
19785unsafe extern "C" {
19786 pub fn BNFinalizeMediumLevelILFunction(func: *mut BNMediumLevelILFunction);
19787}
19788unsafe extern "C" {
19789 pub fn BNGenerateMediumLevelILSSAForm(
19790 func: *mut BNMediumLevelILFunction,
19791 analyzeConditionals: bool,
19792 handleAliases: bool,
19793 knownNotAliases: *mut BNVariable,
19794 knownNotAliasCount: usize,
19795 knownAliases: *mut BNVariable,
19796 knownAliasCount: usize,
19797 );
19798}
19799unsafe extern "C" {
19800 pub fn BNPrepareToCopyMediumLevelILFunction(
19801 func: *mut BNMediumLevelILFunction,
19802 src: *mut BNMediumLevelILFunction,
19803 );
19804}
19805unsafe extern "C" {
19806 pub fn BNPrepareToCopyMediumLevelILBasicBlock(
19807 func: *mut BNMediumLevelILFunction,
19808 block: *mut BNBasicBlock,
19809 );
19810}
19811unsafe extern "C" {
19812 pub fn BNGetLabelForMediumLevelILSourceInstruction(
19813 func: *mut BNMediumLevelILFunction,
19814 instr: usize,
19815 ) -> *mut BNMediumLevelILLabel;
19816}
19817unsafe extern "C" {
19818 pub fn BNMediumLevelILAddLabelMap(
19819 func: *mut BNMediumLevelILFunction,
19820 values: *mut u64,
19821 labels: *mut *mut BNMediumLevelILLabel,
19822 count: usize,
19823 ) -> usize;
19824}
19825unsafe extern "C" {
19826 pub fn BNMediumLevelILAddOperandList(
19827 func: *mut BNMediumLevelILFunction,
19828 operands: *mut u64,
19829 count: usize,
19830 ) -> usize;
19831}
19832unsafe extern "C" {
19833 pub fn BNMediumLevelILGetOperandList(
19834 func: *mut BNMediumLevelILFunction,
19835 expr: usize,
19836 operand: usize,
19837 count: *mut usize,
19838 ) -> *mut u64;
19839}
19840unsafe extern "C" {
19841 pub fn BNMediumLevelILFreeOperandList(operands: *mut u64);
19842}
19843unsafe extern "C" {
19844 pub fn BNMediumLevelILGetOperand(func: *mut BNMediumLevelILFunction, offset: usize) -> u64;
19845}
19846unsafe extern "C" {
19847 pub fn BNCacheMediumLevelILPossibleValueSet(
19848 func: *mut BNMediumLevelILFunction,
19849 pvs: *mut BNPossibleValueSet,
19850 ) -> usize;
19851}
19852unsafe extern "C" {
19853 pub fn BNGetCachedMediumLevelILPossibleValueSet(
19854 func: *mut BNMediumLevelILFunction,
19855 idx: usize,
19856 ) -> BNPossibleValueSet;
19857}
19858unsafe extern "C" {
19859 pub fn BNGetMediumLevelILByIndex(
19860 func: *mut BNMediumLevelILFunction,
19861 i: usize,
19862 ) -> BNMediumLevelILInstruction;
19863}
19864unsafe extern "C" {
19865 pub fn BNGetMediumLevelILIndexForInstruction(
19866 func: *mut BNMediumLevelILFunction,
19867 i: usize,
19868 ) -> usize;
19869}
19870unsafe extern "C" {
19871 pub fn BNGetMediumLevelILInstructionForExpr(
19872 func: *mut BNMediumLevelILFunction,
19873 expr: usize,
19874 ) -> usize;
19875}
19876unsafe extern "C" {
19877 pub fn BNGetMediumLevelILInstructionCount(func: *mut BNMediumLevelILFunction) -> usize;
19878}
19879unsafe extern "C" {
19880 pub fn BNGetMediumLevelILExprCount(func: *mut BNMediumLevelILFunction) -> usize;
19881}
19882unsafe extern "C" {
19883 pub fn BNUpdateMediumLevelILOperand(
19884 func: *mut BNMediumLevelILFunction,
19885 instr: usize,
19886 operandIndex: usize,
19887 value: u64,
19888 );
19889}
19890unsafe extern "C" {
19891 pub fn BNMarkMediumLevelILInstructionForRemoval(
19892 func: *mut BNMediumLevelILFunction,
19893 instr: usize,
19894 );
19895}
19896unsafe extern "C" {
19897 pub fn BNReplaceMediumLevelILInstruction(
19898 func: *mut BNMediumLevelILFunction,
19899 instr: usize,
19900 expr: usize,
19901 );
19902}
19903unsafe extern "C" {
19904 pub fn BNReplaceMediumLevelILExpr(
19905 func: *mut BNMediumLevelILFunction,
19906 expr: usize,
19907 newExpr: usize,
19908 );
19909}
19910unsafe extern "C" {
19911 pub fn BNSetMediumLevelILExprAttributes(
19912 func: *mut BNMediumLevelILFunction,
19913 expr: usize,
19914 attributes: u32,
19915 );
19916}
19917unsafe extern "C" {
19918 pub fn BNGetMediumLevelILExprText(
19919 func: *mut BNMediumLevelILFunction,
19920 arch: *mut BNArchitecture,
19921 i: usize,
19922 tokens: *mut *mut BNInstructionTextToken,
19923 count: *mut usize,
19924 settings: *mut BNDisassemblySettings,
19925 ) -> bool;
19926}
19927unsafe extern "C" {
19928 pub fn BNGetMediumLevelILInstructionText(
19929 il: *mut BNMediumLevelILFunction,
19930 func: *mut BNFunction,
19931 arch: *mut BNArchitecture,
19932 i: usize,
19933 tokens: *mut *mut BNInstructionTextToken,
19934 count: *mut usize,
19935 settings: *mut BNDisassemblySettings,
19936 ) -> bool;
19937}
19938unsafe extern "C" {
19939 pub fn BNGetMediumLevelILBasicBlockList(
19940 func: *mut BNMediumLevelILFunction,
19941 count: *mut usize,
19942 ) -> *mut *mut BNBasicBlock;
19943}
19944unsafe extern "C" {
19945 pub fn BNGetMediumLevelILBasicBlockForInstruction(
19946 func: *mut BNMediumLevelILFunction,
19947 i: usize,
19948 ) -> *mut BNBasicBlock;
19949}
19950unsafe extern "C" {
19951 pub fn BNGetMediumLevelILSSAForm(
19952 func: *mut BNMediumLevelILFunction,
19953 ) -> *mut BNMediumLevelILFunction;
19954}
19955unsafe extern "C" {
19956 pub fn BNGetMediumLevelILNonSSAForm(
19957 func: *mut BNMediumLevelILFunction,
19958 ) -> *mut BNMediumLevelILFunction;
19959}
19960unsafe extern "C" {
19961 pub fn BNGetMediumLevelILSSAInstructionIndex(
19962 func: *mut BNMediumLevelILFunction,
19963 instr: usize,
19964 ) -> usize;
19965}
19966unsafe extern "C" {
19967 pub fn BNGetMediumLevelILNonSSAInstructionIndex(
19968 func: *mut BNMediumLevelILFunction,
19969 instr: usize,
19970 ) -> usize;
19971}
19972unsafe extern "C" {
19973 pub fn BNGetMediumLevelILSSAExprIndex(func: *mut BNMediumLevelILFunction, expr: usize)
19974 -> usize;
19975}
19976unsafe extern "C" {
19977 pub fn BNGetMediumLevelILNonSSAExprIndex(
19978 func: *mut BNMediumLevelILFunction,
19979 expr: usize,
19980 ) -> usize;
19981}
19982unsafe extern "C" {
19983 pub fn BNGetMediumLevelILSSAVarDefinition(
19984 func: *mut BNMediumLevelILFunction,
19985 var: *const BNVariable,
19986 version: usize,
19987 ) -> usize;
19988}
19989unsafe extern "C" {
19990 pub fn BNGetMediumLevelILSSAMemoryDefinition(
19991 func: *mut BNMediumLevelILFunction,
19992 version: usize,
19993 ) -> usize;
19994}
19995unsafe extern "C" {
19996 pub fn BNGetMediumLevelILSSAVarUses(
19997 func: *mut BNMediumLevelILFunction,
19998 var: *const BNVariable,
19999 version: usize,
20000 count: *mut usize,
20001 ) -> *mut usize;
20002}
20003unsafe extern "C" {
20004 pub fn BNGetMediumLevelILSSAMemoryUses(
20005 func: *mut BNMediumLevelILFunction,
20006 version: usize,
20007 count: *mut usize,
20008 ) -> *mut usize;
20009}
20010unsafe extern "C" {
20011 pub fn BNIsMediumLevelILSSAVarLive(
20012 func: *mut BNMediumLevelILFunction,
20013 var: *const BNVariable,
20014 version: usize,
20015 ) -> bool;
20016}
20017unsafe extern "C" {
20018 pub fn BNIsMediumLevelILSSAVarLiveAt(
20019 func: *mut BNMediumLevelILFunction,
20020 var: *const BNVariable,
20021 version: usize,
20022 instr: usize,
20023 ) -> bool;
20024}
20025unsafe extern "C" {
20026 pub fn BNIsMediumLevelILVarLiveAt(
20027 func: *mut BNMediumLevelILFunction,
20028 var: *const BNVariable,
20029 instr: usize,
20030 ) -> bool;
20031}
20032unsafe extern "C" {
20033 pub fn BNGetMediumLevelILVariables(
20034 func: *mut BNMediumLevelILFunction,
20035 count: *mut usize,
20036 ) -> *mut BNVariable;
20037}
20038unsafe extern "C" {
20039 pub fn BNGetMediumLevelILAliasedVariables(
20040 func: *mut BNMediumLevelILFunction,
20041 count: *mut usize,
20042 ) -> *mut BNVariable;
20043}
20044unsafe extern "C" {
20045 pub fn BNGetMediumLevelILVariableSSAVersions(
20046 func: *mut BNMediumLevelILFunction,
20047 var: *const BNVariable,
20048 count: *mut usize,
20049 ) -> *mut usize;
20050}
20051unsafe extern "C" {
20052 pub fn BNGetMediumLevelILVariableDefinitions(
20053 func: *mut BNMediumLevelILFunction,
20054 var: *const BNVariable,
20055 count: *mut usize,
20056 ) -> *mut usize;
20057}
20058unsafe extern "C" {
20059 pub fn BNGetMediumLevelILVariableUses(
20060 func: *mut BNMediumLevelILFunction,
20061 var: *const BNVariable,
20062 count: *mut usize,
20063 ) -> *mut usize;
20064}
20065unsafe extern "C" {
20066 pub fn BNGetMediumLevelILLiveInstructionsForVariable(
20067 func: *mut BNMediumLevelILFunction,
20068 var: *const BNVariable,
20069 includeLastUse: bool,
20070 count: *mut usize,
20071 ) -> *mut usize;
20072}
20073unsafe extern "C" {
20074 pub fn BNGetDefaultIndexForMediumLevelILVariableDefinition(
20075 func: *mut BNMediumLevelILFunction,
20076 var: *const BNVariable,
20077 instrIndex: usize,
20078 ) -> u32;
20079}
20080unsafe extern "C" {
20081 pub fn BNGetMediumLevelILSSAVarValue(
20082 func: *mut BNMediumLevelILFunction,
20083 var: *const BNVariable,
20084 version: usize,
20085 ) -> BNRegisterValue;
20086}
20087unsafe extern "C" {
20088 pub fn BNGetMediumLevelILExprValue(
20089 func: *mut BNMediumLevelILFunction,
20090 expr: usize,
20091 ) -> BNRegisterValue;
20092}
20093unsafe extern "C" {
20094 pub fn BNGetMediumLevelILPossibleSSAVarValues(
20095 func: *mut BNMediumLevelILFunction,
20096 var: *const BNVariable,
20097 version: usize,
20098 instr: usize,
20099 options: *mut BNDataFlowQueryOption,
20100 optionCount: usize,
20101 ) -> BNPossibleValueSet;
20102}
20103unsafe extern "C" {
20104 pub fn BNGetMediumLevelILPossibleExprValues(
20105 func: *mut BNMediumLevelILFunction,
20106 expr: usize,
20107 options: *mut BNDataFlowQueryOption,
20108 optionCount: usize,
20109 ) -> BNPossibleValueSet;
20110}
20111unsafe extern "C" {
20112 pub fn BNGetMediumLevelILSSAVarVersionAtILInstruction(
20113 func: *mut BNMediumLevelILFunction,
20114 var: *const BNVariable,
20115 instr: usize,
20116 ) -> usize;
20117}
20118unsafe extern "C" {
20119 pub fn BNGetMediumLevelILSSAVarVersionAfterILInstruction(
20120 func: *mut BNMediumLevelILFunction,
20121 var: *const BNVariable,
20122 instr: usize,
20123 ) -> usize;
20124}
20125unsafe extern "C" {
20126 pub fn BNGetMediumLevelILSSAMemoryVersionAtILInstruction(
20127 func: *mut BNMediumLevelILFunction,
20128 instr: usize,
20129 ) -> usize;
20130}
20131unsafe extern "C" {
20132 pub fn BNGetMediumLevelILSSAMemoryVersionAfterILInstruction(
20133 func: *mut BNMediumLevelILFunction,
20134 instr: usize,
20135 ) -> usize;
20136}
20137unsafe extern "C" {
20138 pub fn BNGetMediumLevelILVariableForRegisterAtInstruction(
20139 func: *mut BNMediumLevelILFunction,
20140 reg: u32,
20141 instr: usize,
20142 ) -> BNVariable;
20143}
20144unsafe extern "C" {
20145 pub fn BNGetMediumLevelILVariableForRegisterAfterInstruction(
20146 func: *mut BNMediumLevelILFunction,
20147 reg: u32,
20148 instr: usize,
20149 ) -> BNVariable;
20150}
20151unsafe extern "C" {
20152 pub fn BNGetMediumLevelILVariableForFlagAtInstruction(
20153 func: *mut BNMediumLevelILFunction,
20154 flag: u32,
20155 instr: usize,
20156 ) -> BNVariable;
20157}
20158unsafe extern "C" {
20159 pub fn BNGetMediumLevelILVariableForFlagAfterInstruction(
20160 func: *mut BNMediumLevelILFunction,
20161 flag: u32,
20162 instr: usize,
20163 ) -> BNVariable;
20164}
20165unsafe extern "C" {
20166 pub fn BNGetMediumLevelILVariableForStackLocationAtInstruction(
20167 func: *mut BNMediumLevelILFunction,
20168 offset: i64,
20169 instr: usize,
20170 ) -> BNVariable;
20171}
20172unsafe extern "C" {
20173 pub fn BNGetMediumLevelILVariableForStackLocationAfterInstruction(
20174 func: *mut BNMediumLevelILFunction,
20175 offset: i64,
20176 instr: usize,
20177 ) -> BNVariable;
20178}
20179unsafe extern "C" {
20180 pub fn BNGetMediumLevelILRegisterValueAtInstruction(
20181 func: *mut BNMediumLevelILFunction,
20182 reg: u32,
20183 instr: usize,
20184 ) -> BNRegisterValue;
20185}
20186unsafe extern "C" {
20187 pub fn BNGetMediumLevelILRegisterValueAfterInstruction(
20188 func: *mut BNMediumLevelILFunction,
20189 reg: u32,
20190 instr: usize,
20191 ) -> BNRegisterValue;
20192}
20193unsafe extern "C" {
20194 pub fn BNGetMediumLevelILPossibleRegisterValuesAtInstruction(
20195 func: *mut BNMediumLevelILFunction,
20196 reg: u32,
20197 instr: usize,
20198 options: *mut BNDataFlowQueryOption,
20199 optionCount: usize,
20200 ) -> BNPossibleValueSet;
20201}
20202unsafe extern "C" {
20203 pub fn BNGetMediumLevelILPossibleRegisterValuesAfterInstruction(
20204 func: *mut BNMediumLevelILFunction,
20205 reg: u32,
20206 instr: usize,
20207 options: *mut BNDataFlowQueryOption,
20208 optionCount: usize,
20209 ) -> BNPossibleValueSet;
20210}
20211unsafe extern "C" {
20212 pub fn BNGetMediumLevelILFlagValueAtInstruction(
20213 func: *mut BNMediumLevelILFunction,
20214 flag: u32,
20215 instr: usize,
20216 ) -> BNRegisterValue;
20217}
20218unsafe extern "C" {
20219 pub fn BNGetMediumLevelILFlagValueAfterInstruction(
20220 func: *mut BNMediumLevelILFunction,
20221 flag: u32,
20222 instr: usize,
20223 ) -> BNRegisterValue;
20224}
20225unsafe extern "C" {
20226 pub fn BNGetMediumLevelILPossibleFlagValuesAtInstruction(
20227 func: *mut BNMediumLevelILFunction,
20228 flag: u32,
20229 instr: usize,
20230 options: *mut BNDataFlowQueryOption,
20231 optionCount: usize,
20232 ) -> BNPossibleValueSet;
20233}
20234unsafe extern "C" {
20235 pub fn BNGetMediumLevelILPossibleFlagValuesAfterInstruction(
20236 func: *mut BNMediumLevelILFunction,
20237 flag: u32,
20238 instr: usize,
20239 options: *mut BNDataFlowQueryOption,
20240 optionCount: usize,
20241 ) -> BNPossibleValueSet;
20242}
20243unsafe extern "C" {
20244 pub fn BNGetMediumLevelILStackContentsAtInstruction(
20245 func: *mut BNMediumLevelILFunction,
20246 offset: i64,
20247 len: usize,
20248 instr: usize,
20249 ) -> BNRegisterValue;
20250}
20251unsafe extern "C" {
20252 pub fn BNGetMediumLevelILStackContentsAfterInstruction(
20253 func: *mut BNMediumLevelILFunction,
20254 offset: i64,
20255 len: usize,
20256 instr: usize,
20257 ) -> BNRegisterValue;
20258}
20259unsafe extern "C" {
20260 pub fn BNGetMediumLevelILPossibleStackContentsAtInstruction(
20261 func: *mut BNMediumLevelILFunction,
20262 offset: i64,
20263 len: usize,
20264 instr: usize,
20265 options: *mut BNDataFlowQueryOption,
20266 optionCount: usize,
20267 ) -> BNPossibleValueSet;
20268}
20269unsafe extern "C" {
20270 pub fn BNGetMediumLevelILPossibleStackContentsAfterInstruction(
20271 func: *mut BNMediumLevelILFunction,
20272 offset: i64,
20273 len: usize,
20274 instr: usize,
20275 options: *mut BNDataFlowQueryOption,
20276 optionCount: usize,
20277 ) -> BNPossibleValueSet;
20278}
20279unsafe extern "C" {
20280 pub fn BNGetMediumLevelILBranchDependence(
20281 func: *mut BNMediumLevelILFunction,
20282 curInstr: usize,
20283 branchInstr: usize,
20284 ) -> BNILBranchDependence;
20285}
20286unsafe extern "C" {
20287 pub fn BNGetAllMediumLevelILBranchDependence(
20288 func: *mut BNMediumLevelILFunction,
20289 instr: usize,
20290 count: *mut usize,
20291 ) -> *mut BNILBranchInstructionAndDependence;
20292}
20293unsafe extern "C" {
20294 pub fn BNFreeILBranchDependenceList(branches: *mut BNILBranchInstructionAndDependence);
20295}
20296unsafe extern "C" {
20297 pub fn BNGetLowLevelILForMediumLevelIL(
20298 func: *mut BNMediumLevelILFunction,
20299 ) -> *mut BNLowLevelILFunction;
20300}
20301unsafe extern "C" {
20302 pub fn BNGetLowLevelILInstructionIndex(
20303 func: *mut BNMediumLevelILFunction,
20304 instr: usize,
20305 ) -> usize;
20306}
20307unsafe extern "C" {
20308 pub fn BNGetLowLevelILExprIndex(func: *mut BNMediumLevelILFunction, expr: usize) -> usize;
20309}
20310unsafe extern "C" {
20311 pub fn BNGetLowLevelILExprIndexes(
20312 func: *mut BNMediumLevelILFunction,
20313 expr: usize,
20314 count: *mut usize,
20315 ) -> *mut usize;
20316}
20317unsafe extern "C" {
20318 pub fn BNGetHighLevelILForMediumLevelIL(
20319 func: *mut BNMediumLevelILFunction,
20320 ) -> *mut BNHighLevelILFunction;
20321}
20322unsafe extern "C" {
20323 pub fn BNGetHighLevelILInstructionIndex(
20324 func: *mut BNMediumLevelILFunction,
20325 instr: usize,
20326 ) -> usize;
20327}
20328unsafe extern "C" {
20329 pub fn BNGetHighLevelILExprIndex(func: *mut BNMediumLevelILFunction, expr: usize) -> usize;
20330}
20331unsafe extern "C" {
20332 pub fn BNGetHighLevelILExprIndexes(
20333 func: *mut BNMediumLevelILFunction,
20334 expr: usize,
20335 count: *mut usize,
20336 ) -> *mut usize;
20337}
20338unsafe extern "C" {
20339 pub fn BNGetMediumLevelILExprType(
20340 func: *mut BNMediumLevelILFunction,
20341 expr: usize,
20342 ) -> BNTypeWithConfidence;
20343}
20344unsafe extern "C" {
20345 pub fn BNSetMediumLevelILExprType(
20346 func: *mut BNMediumLevelILFunction,
20347 expr: usize,
20348 type_: *mut BNTypeWithConfidence,
20349 );
20350}
20351unsafe extern "C" {
20352 #[doc = " High-level IL"]
20353 pub fn BNCreateHighLevelILFunction(
20354 arch: *mut BNArchitecture,
20355 func: *mut BNFunction,
20356 ) -> *mut BNHighLevelILFunction;
20357}
20358unsafe extern "C" {
20359 pub fn BNNewHighLevelILFunctionReference(
20360 func: *mut BNHighLevelILFunction,
20361 ) -> *mut BNHighLevelILFunction;
20362}
20363unsafe extern "C" {
20364 pub fn BNFreeHighLevelILFunction(func: *mut BNHighLevelILFunction);
20365}
20366unsafe extern "C" {
20367 pub fn BNGetHighLevelILOwnerFunction(func: *mut BNHighLevelILFunction) -> *mut BNFunction;
20368}
20369unsafe extern "C" {
20370 pub fn BNHighLevelILGetCurrentAddress(func: *mut BNHighLevelILFunction) -> u64;
20371}
20372unsafe extern "C" {
20373 pub fn BNHighLevelILSetCurrentAddress(
20374 func: *mut BNHighLevelILFunction,
20375 arch: *mut BNArchitecture,
20376 addr: u64,
20377 );
20378}
20379unsafe extern "C" {
20380 pub fn BNHighLevelILAddExpr(
20381 func: *mut BNHighLevelILFunction,
20382 operation: BNHighLevelILOperation,
20383 size: usize,
20384 a: u64,
20385 b: u64,
20386 c: u64,
20387 d: u64,
20388 e: u64,
20389 ) -> usize;
20390}
20391unsafe extern "C" {
20392 pub fn BNHighLevelILAddExprWithLocation(
20393 func: *mut BNHighLevelILFunction,
20394 operation: BNHighLevelILOperation,
20395 addr: u64,
20396 sourceOperand: u32,
20397 size: usize,
20398 a: u64,
20399 b: u64,
20400 c: u64,
20401 d: u64,
20402 e: u64,
20403 ) -> usize;
20404}
20405unsafe extern "C" {
20406 pub fn BNGetHighLevelILRootExpr(func: *mut BNHighLevelILFunction) -> usize;
20407}
20408unsafe extern "C" {
20409 pub fn BNSetHighLevelILRootExpr(func: *mut BNHighLevelILFunction, expr: usize);
20410}
20411unsafe extern "C" {
20412 pub fn BNFinalizeHighLevelILFunction(func: *mut BNHighLevelILFunction);
20413}
20414unsafe extern "C" {
20415 pub fn BNGenerateHighLevelILSSAForm(
20416 func: *mut BNHighLevelILFunction,
20417 aliases: *mut BNVariable,
20418 aliasCount: usize,
20419 );
20420}
20421unsafe extern "C" {
20422 pub fn BNHighLevelILAddOperandList(
20423 func: *mut BNHighLevelILFunction,
20424 operands: *mut u64,
20425 count: usize,
20426 ) -> usize;
20427}
20428unsafe extern "C" {
20429 pub fn BNHighLevelILGetOperandList(
20430 func: *mut BNHighLevelILFunction,
20431 expr: usize,
20432 operand: usize,
20433 count: *mut usize,
20434 ) -> *mut u64;
20435}
20436unsafe extern "C" {
20437 pub fn BNHighLevelILFreeOperandList(operands: *mut u64);
20438}
20439unsafe extern "C" {
20440 pub fn BNHighLevelILGetOperand(func: *mut BNHighLevelILFunction, offset: usize) -> u64;
20441}
20442unsafe extern "C" {
20443 pub fn BNCacheHighLevelILPossibleValueSet(
20444 func: *mut BNHighLevelILFunction,
20445 pvs: *mut BNPossibleValueSet,
20446 ) -> usize;
20447}
20448unsafe extern "C" {
20449 pub fn BNGetCachedHighLevelILPossibleValueSet(
20450 func: *mut BNHighLevelILFunction,
20451 idx: usize,
20452 ) -> BNPossibleValueSet;
20453}
20454unsafe extern "C" {
20455 pub fn BNGetHighLevelILByIndex(
20456 func: *mut BNHighLevelILFunction,
20457 i: usize,
20458 asFullAst: bool,
20459 ) -> BNHighLevelILInstruction;
20460}
20461unsafe extern "C" {
20462 pub fn BNGetHighLevelILIndexForInstruction(func: *mut BNHighLevelILFunction, i: usize)
20463 -> usize;
20464}
20465unsafe extern "C" {
20466 pub fn BNGetHighLevelILInstructionForExpr(
20467 func: *mut BNHighLevelILFunction,
20468 expr: usize,
20469 ) -> usize;
20470}
20471unsafe extern "C" {
20472 pub fn BNGetHighLevelILInstructionCount(func: *mut BNHighLevelILFunction) -> usize;
20473}
20474unsafe extern "C" {
20475 pub fn BNGetHighLevelILExprCount(func: *mut BNHighLevelILFunction) -> usize;
20476}
20477unsafe extern "C" {
20478 pub fn BNGetMediumLevelILForHighLevelILFunction(
20479 func: *mut BNHighLevelILFunction,
20480 ) -> *mut BNMediumLevelILFunction;
20481}
20482unsafe extern "C" {
20483 pub fn BNGetMediumLevelILExprIndexFromHighLevelIL(
20484 func: *mut BNHighLevelILFunction,
20485 expr: usize,
20486 ) -> usize;
20487}
20488unsafe extern "C" {
20489 pub fn BNGetMediumLevelILExprIndexesFromHighLevelIL(
20490 func: *mut BNHighLevelILFunction,
20491 expr: usize,
20492 count: *mut usize,
20493 ) -> *mut usize;
20494}
20495unsafe extern "C" {
20496 pub fn BNUpdateHighLevelILOperand(
20497 func: *mut BNHighLevelILFunction,
20498 instr: usize,
20499 operandIndex: usize,
20500 value: u64,
20501 );
20502}
20503unsafe extern "C" {
20504 pub fn BNReplaceHighLevelILExpr(func: *mut BNHighLevelILFunction, expr: usize, newExpr: usize);
20505}
20506unsafe extern "C" {
20507 pub fn BNSetHighLevelILExprAttributes(
20508 func: *mut BNHighLevelILFunction,
20509 expr: usize,
20510 attributes: u32,
20511 );
20512}
20513unsafe extern "C" {
20514 pub fn BNGetHighLevelILExprText(
20515 func: *mut BNHighLevelILFunction,
20516 expr: usize,
20517 asFullAst: bool,
20518 count: *mut usize,
20519 settings: *mut BNDisassemblySettings,
20520 ) -> *mut BNDisassemblyTextLine;
20521}
20522unsafe extern "C" {
20523 pub fn BNGetHighLevelILExprType(
20524 func: *mut BNHighLevelILFunction,
20525 expr: usize,
20526 ) -> BNTypeWithConfidence;
20527}
20528unsafe extern "C" {
20529 pub fn BNSetHighLevelILExprType(
20530 func: *mut BNHighLevelILFunction,
20531 expr: usize,
20532 type_: *mut BNTypeWithConfidence,
20533 );
20534}
20535unsafe extern "C" {
20536 pub fn BNGetHighLevelILBasicBlockList(
20537 func: *mut BNHighLevelILFunction,
20538 count: *mut usize,
20539 ) -> *mut *mut BNBasicBlock;
20540}
20541unsafe extern "C" {
20542 pub fn BNGetHighLevelILBasicBlockForInstruction(
20543 func: *mut BNHighLevelILFunction,
20544 i: usize,
20545 ) -> *mut BNBasicBlock;
20546}
20547unsafe extern "C" {
20548 pub fn BNGetHighLevelILSSAForm(func: *mut BNHighLevelILFunction) -> *mut BNHighLevelILFunction;
20549}
20550unsafe extern "C" {
20551 pub fn BNGetHighLevelILNonSSAForm(
20552 func: *mut BNHighLevelILFunction,
20553 ) -> *mut BNHighLevelILFunction;
20554}
20555unsafe extern "C" {
20556 pub fn BNGetHighLevelILSSAInstructionIndex(
20557 func: *mut BNHighLevelILFunction,
20558 instr: usize,
20559 ) -> usize;
20560}
20561unsafe extern "C" {
20562 pub fn BNGetHighLevelILNonSSAInstructionIndex(
20563 func: *mut BNHighLevelILFunction,
20564 instr: usize,
20565 ) -> usize;
20566}
20567unsafe extern "C" {
20568 pub fn BNGetHighLevelILSSAExprIndex(func: *mut BNHighLevelILFunction, expr: usize) -> usize;
20569}
20570unsafe extern "C" {
20571 pub fn BNGetHighLevelILNonSSAExprIndex(func: *mut BNHighLevelILFunction, expr: usize) -> usize;
20572}
20573unsafe extern "C" {
20574 pub fn BNGetHighLevelILSSAVarDefinition(
20575 func: *mut BNHighLevelILFunction,
20576 var: *const BNVariable,
20577 version: usize,
20578 ) -> usize;
20579}
20580unsafe extern "C" {
20581 pub fn BNGetHighLevelILSSAMemoryDefinition(
20582 func: *mut BNHighLevelILFunction,
20583 version: usize,
20584 ) -> usize;
20585}
20586unsafe extern "C" {
20587 pub fn BNGetHighLevelILSSAVarUses(
20588 func: *mut BNHighLevelILFunction,
20589 var: *const BNVariable,
20590 version: usize,
20591 count: *mut usize,
20592 ) -> *mut usize;
20593}
20594unsafe extern "C" {
20595 pub fn BNGetHighLevelILSSAMemoryUses(
20596 func: *mut BNHighLevelILFunction,
20597 version: usize,
20598 count: *mut usize,
20599 ) -> *mut usize;
20600}
20601unsafe extern "C" {
20602 pub fn BNIsHighLevelILSSAVarLive(
20603 func: *mut BNHighLevelILFunction,
20604 var: *const BNVariable,
20605 version: usize,
20606 ) -> bool;
20607}
20608unsafe extern "C" {
20609 pub fn BNIsHighLevelILSSAVarLiveAt(
20610 func: *mut BNHighLevelILFunction,
20611 var: *const BNVariable,
20612 version: usize,
20613 instr: usize,
20614 ) -> bool;
20615}
20616unsafe extern "C" {
20617 pub fn BNIsHighLevelILVarLiveAt(
20618 func: *mut BNHighLevelILFunction,
20619 var: *const BNVariable,
20620 instr: usize,
20621 ) -> bool;
20622}
20623unsafe extern "C" {
20624 pub fn BNHighLevelILHasSideEffects(func: *mut BNHighLevelILFunction, exprIndex: usize) -> bool;
20625}
20626unsafe extern "C" {
20627 pub fn BNGetHighLevelILExprScopeType(
20628 func: *mut BNHighLevelILFunction,
20629 exprIndex: usize,
20630 ) -> BNScopeType;
20631}
20632unsafe extern "C" {
20633 pub fn BNGetHighLevelILVariables(
20634 func: *mut BNHighLevelILFunction,
20635 count: *mut usize,
20636 ) -> *mut BNVariable;
20637}
20638unsafe extern "C" {
20639 pub fn BNGetHighLevelILAliasedVariables(
20640 func: *mut BNHighLevelILFunction,
20641 count: *mut usize,
20642 ) -> *mut BNVariable;
20643}
20644unsafe extern "C" {
20645 pub fn BNGetHighLevelILVariableSSAVersions(
20646 func: *mut BNHighLevelILFunction,
20647 var: *const BNVariable,
20648 count: *mut usize,
20649 ) -> *mut usize;
20650}
20651unsafe extern "C" {
20652 pub fn BNGetHighLevelILVariableDefinitions(
20653 func: *mut BNHighLevelILFunction,
20654 var: *const BNVariable,
20655 count: *mut usize,
20656 ) -> *mut usize;
20657}
20658unsafe extern "C" {
20659 pub fn BNGetHighLevelILVariableUses(
20660 func: *mut BNHighLevelILFunction,
20661 var: *const BNVariable,
20662 count: *mut usize,
20663 ) -> *mut usize;
20664}
20665unsafe extern "C" {
20666 pub fn BNGetHighLevelILSSAVarVersionAtILInstruction(
20667 func: *mut BNHighLevelILFunction,
20668 var: *const BNVariable,
20669 instr: usize,
20670 ) -> usize;
20671}
20672unsafe extern "C" {
20673 pub fn BNGetHighLevelILSSAMemoryVersionAtILInstruction(
20674 func: *mut BNHighLevelILFunction,
20675 instr: usize,
20676 ) -> usize;
20677}
20678unsafe extern "C" {
20679 pub fn BNGetHighLevelILExprIndexForLabel(func: *mut BNHighLevelILFunction, label: u64)
20680 -> usize;
20681}
20682unsafe extern "C" {
20683 pub fn BNGetHighLevelILUsesForLabel(
20684 func: *mut BNHighLevelILFunction,
20685 label: u64,
20686 count: *mut usize,
20687 ) -> *mut usize;
20688}
20689unsafe extern "C" {
20690 pub fn BNHighLevelILExprLessThan(
20691 leftFunc: *mut BNHighLevelILFunction,
20692 leftExpr: usize,
20693 rightFunc: *mut BNHighLevelILFunction,
20694 rightExpr: usize,
20695 ) -> bool;
20696}
20697unsafe extern "C" {
20698 pub fn BNHighLevelILExprEqual(
20699 leftFunc: *mut BNHighLevelILFunction,
20700 leftExpr: usize,
20701 rightFunc: *mut BNHighLevelILFunction,
20702 rightExpr: usize,
20703 ) -> bool;
20704}
20705unsafe extern "C" {
20706 pub fn BNSetHighLevelILDerivedStringReferenceForExpr(
20707 func: *mut BNHighLevelILFunction,
20708 expr: usize,
20709 str_: *mut BNDerivedString,
20710 );
20711}
20712unsafe extern "C" {
20713 pub fn BNRemoveHighLevelILDerivedStringReferenceForExpr(
20714 func: *mut BNHighLevelILFunction,
20715 expr: usize,
20716 );
20717}
20718unsafe extern "C" {
20719 pub fn BNGetHighLevelILDerivedStringReferenceForExpr(
20720 func: *mut BNHighLevelILFunction,
20721 expr: usize,
20722 out: *mut BNDerivedString,
20723 ) -> bool;
20724}
20725unsafe extern "C" {
20726 #[doc = " Type Libraries"]
20727 pub fn BNNewTypeLibrary(
20728 arch: *mut BNArchitecture,
20729 name: *const ::std::os::raw::c_char,
20730 ) -> *mut BNTypeLibrary;
20731}
20732unsafe extern "C" {
20733 pub fn BNNewTypeLibraryReference(lib: *mut BNTypeLibrary) -> *mut BNTypeLibrary;
20734}
20735unsafe extern "C" {
20736 pub fn BNDuplicateTypeLibrary(lib: *mut BNTypeLibrary) -> *mut BNTypeLibrary;
20737}
20738unsafe extern "C" {
20739 pub fn BNLoadTypeLibraryFromFile(path: *const ::std::os::raw::c_char) -> *mut BNTypeLibrary;
20740}
20741unsafe extern "C" {
20742 pub fn BNTypeLibraryDecompressToFile(
20743 lib: *mut BNTypeLibrary,
20744 output: *const ::std::os::raw::c_char,
20745 ) -> bool;
20746}
20747unsafe extern "C" {
20748 pub fn BNFreeTypeLibrary(lib: *mut BNTypeLibrary);
20749}
20750unsafe extern "C" {
20751 pub fn BNLookupTypeLibraryByName(
20752 arch: *mut BNArchitecture,
20753 name: *const ::std::os::raw::c_char,
20754 ) -> *mut BNTypeLibrary;
20755}
20756unsafe extern "C" {
20757 pub fn BNLookupTypeLibraryByGuid(
20758 arch: *mut BNArchitecture,
20759 guid: *const ::std::os::raw::c_char,
20760 ) -> *mut BNTypeLibrary;
20761}
20762unsafe extern "C" {
20763 pub fn BNGetArchitectureTypeLibraries(
20764 arch: *mut BNArchitecture,
20765 count: *mut usize,
20766 ) -> *mut *mut BNTypeLibrary;
20767}
20768unsafe extern "C" {
20769 pub fn BNFreeTypeLibraryList(lib: *mut *mut BNTypeLibrary, count: usize);
20770}
20771unsafe extern "C" {
20772 pub fn BNFinalizeTypeLibrary(lib: *mut BNTypeLibrary) -> bool;
20773}
20774unsafe extern "C" {
20775 pub fn BNRegisterTypeLibrary(lib: *mut BNTypeLibrary);
20776}
20777unsafe extern "C" {
20778 pub fn BNGetTypeLibraryArchitecture(lib: *mut BNTypeLibrary) -> *mut BNArchitecture;
20779}
20780unsafe extern "C" {
20781 pub fn BNSetTypeLibraryName(lib: *mut BNTypeLibrary, name: *const ::std::os::raw::c_char);
20782}
20783unsafe extern "C" {
20784 pub fn BNGetTypeLibraryName(lib: *mut BNTypeLibrary) -> *mut ::std::os::raw::c_char;
20785}
20786unsafe extern "C" {
20787 pub fn BNAddTypeLibraryAlternateName(
20788 lib: *mut BNTypeLibrary,
20789 name: *const ::std::os::raw::c_char,
20790 );
20791}
20792unsafe extern "C" {
20793 pub fn BNGetTypeLibraryAlternateNames(
20794 lib: *mut BNTypeLibrary,
20795 count: *mut usize,
20796 ) -> *mut *mut ::std::os::raw::c_char;
20797}
20798unsafe extern "C" {
20799 pub fn BNSetTypeLibraryDependencyName(
20800 lib: *mut BNTypeLibrary,
20801 name: *const ::std::os::raw::c_char,
20802 );
20803}
20804unsafe extern "C" {
20805 pub fn BNGetTypeLibraryDependencyName(lib: *mut BNTypeLibrary) -> *mut ::std::os::raw::c_char;
20806}
20807unsafe extern "C" {
20808 pub fn BNSetTypeLibraryGuid(lib: *mut BNTypeLibrary, name: *const ::std::os::raw::c_char);
20809}
20810unsafe extern "C" {
20811 pub fn BNGetTypeLibraryGuid(lib: *mut BNTypeLibrary) -> *mut ::std::os::raw::c_char;
20812}
20813unsafe extern "C" {
20814 pub fn BNClearTypeLibraryPlatforms(lib: *mut BNTypeLibrary);
20815}
20816unsafe extern "C" {
20817 pub fn BNAddTypeLibraryPlatform(lib: *mut BNTypeLibrary, platform: *mut BNPlatform);
20818}
20819unsafe extern "C" {
20820 pub fn BNGetTypeLibraryPlatforms(
20821 lib: *mut BNTypeLibrary,
20822 count: *mut usize,
20823 ) -> *mut *mut ::std::os::raw::c_char;
20824}
20825unsafe extern "C" {
20826 pub fn BNTypeLibraryStoreMetadata(
20827 lib: *mut BNTypeLibrary,
20828 key: *const ::std::os::raw::c_char,
20829 value: *mut BNMetadata,
20830 );
20831}
20832unsafe extern "C" {
20833 pub fn BNTypeLibraryQueryMetadata(
20834 lib: *mut BNTypeLibrary,
20835 key: *const ::std::os::raw::c_char,
20836 ) -> *mut BNMetadata;
20837}
20838unsafe extern "C" {
20839 pub fn BNTypeLibraryGetMetadata(lib: *mut BNTypeLibrary) -> *mut BNMetadata;
20840}
20841unsafe extern "C" {
20842 pub fn BNTypeLibraryRemoveMetadata(lib: *mut BNTypeLibrary, key: *const ::std::os::raw::c_char);
20843}
20844unsafe extern "C" {
20845 pub fn BNGetTypeLibraryTypeContainer(lib: *mut BNTypeLibrary) -> *mut BNTypeContainer;
20846}
20847unsafe extern "C" {
20848 pub fn BNAddTypeLibraryNamedObject(
20849 lib: *mut BNTypeLibrary,
20850 name: *mut BNQualifiedName,
20851 type_: *mut BNType,
20852 );
20853}
20854unsafe extern "C" {
20855 pub fn BNRemoveTypeLibraryNamedObject(lib: *mut BNTypeLibrary, name: *mut BNQualifiedName);
20856}
20857unsafe extern "C" {
20858 pub fn BNAddTypeLibraryNamedType(
20859 lib: *mut BNTypeLibrary,
20860 name: *mut BNQualifiedName,
20861 type_: *mut BNType,
20862 );
20863}
20864unsafe extern "C" {
20865 pub fn BNRemoveTypeLibraryNamedType(lib: *mut BNTypeLibrary, name: *mut BNQualifiedName);
20866}
20867unsafe extern "C" {
20868 pub fn BNAddTypeLibraryNamedTypeSource(
20869 lib: *mut BNTypeLibrary,
20870 name: *mut BNQualifiedName,
20871 source: *const ::std::os::raw::c_char,
20872 );
20873}
20874unsafe extern "C" {
20875 pub fn BNGetTypeLibraryNamedObject(
20876 lib: *mut BNTypeLibrary,
20877 name: *mut BNQualifiedName,
20878 ) -> *mut BNType;
20879}
20880unsafe extern "C" {
20881 pub fn BNGetTypeLibraryNamedType(
20882 lib: *mut BNTypeLibrary,
20883 name: *mut BNQualifiedName,
20884 ) -> *mut BNType;
20885}
20886unsafe extern "C" {
20887 pub fn BNGetTypeLibraryNamedTypeSource(
20888 lib: *mut BNTypeLibrary,
20889 name: *mut BNQualifiedName,
20890 ) -> *mut ::std::os::raw::c_char;
20891}
20892unsafe extern "C" {
20893 pub fn BNGetTypeLibraryNamedObjects(
20894 lib: *mut BNTypeLibrary,
20895 count: *mut usize,
20896 ) -> *mut BNQualifiedNameAndType;
20897}
20898unsafe extern "C" {
20899 pub fn BNGetTypeLibraryNamedTypes(
20900 lib: *mut BNTypeLibrary,
20901 count: *mut usize,
20902 ) -> *mut BNQualifiedNameAndType;
20903}
20904unsafe extern "C" {
20905 pub fn BNWriteTypeLibraryToFile(
20906 lib: *mut BNTypeLibrary,
20907 path: *const ::std::os::raw::c_char,
20908 ) -> bool;
20909}
20910unsafe extern "C" {
20911 pub fn BNAddBinaryViewTypeLibrary(view: *mut BNBinaryView, lib: *mut BNTypeLibrary);
20912}
20913unsafe extern "C" {
20914 pub fn BNGetBinaryViewTypeLibrary(
20915 view: *mut BNBinaryView,
20916 name: *const ::std::os::raw::c_char,
20917 ) -> *mut BNTypeLibrary;
20918}
20919unsafe extern "C" {
20920 pub fn BNGetBinaryViewTypeLibraries(
20921 view: *mut BNBinaryView,
20922 count: *mut usize,
20923 ) -> *mut *mut BNTypeLibrary;
20924}
20925unsafe extern "C" {
20926 pub fn BNBinaryViewImportTypeLibraryType(
20927 view: *mut BNBinaryView,
20928 lib: *mut *mut BNTypeLibrary,
20929 name: *mut BNQualifiedName,
20930 ) -> *mut BNType;
20931}
20932unsafe extern "C" {
20933 pub fn BNBinaryViewImportTypeLibraryObject(
20934 view: *mut BNBinaryView,
20935 lib: *mut *mut BNTypeLibrary,
20936 name: *mut BNQualifiedName,
20937 ) -> *mut BNType;
20938}
20939unsafe extern "C" {
20940 pub fn BNBinaryViewImportTypeLibraryTypeByGuid(
20941 view: *mut BNBinaryView,
20942 guid: *const ::std::os::raw::c_char,
20943 ) -> *mut BNType;
20944}
20945unsafe extern "C" {
20946 pub fn BNBinaryViewGetTypeNameByGuid(
20947 view: *mut BNBinaryView,
20948 guid: *const ::std::os::raw::c_char,
20949 ) -> BNQualifiedName;
20950}
20951unsafe extern "C" {
20952 pub fn BNBinaryViewExportTypeToTypeLibrary(
20953 view: *mut BNBinaryView,
20954 lib: *mut BNTypeLibrary,
20955 name: *mut BNQualifiedName,
20956 type_: *mut BNType,
20957 );
20958}
20959unsafe extern "C" {
20960 pub fn BNBinaryViewExportObjectToTypeLibrary(
20961 view: *mut BNBinaryView,
20962 lib: *mut BNTypeLibrary,
20963 name: *mut BNQualifiedName,
20964 type_: *mut BNType,
20965 );
20966}
20967unsafe extern "C" {
20968 pub fn BNBinaryViewSetManualDependencies(
20969 view: *mut BNBinaryView,
20970 viewTypeNames: *mut BNQualifiedName,
20971 libTypeNames: *mut BNQualifiedName,
20972 libNames: *mut *mut ::std::os::raw::c_char,
20973 count: usize,
20974 );
20975}
20976unsafe extern "C" {
20977 pub fn BNBinaryViewRecordImportedObjectLibrary(
20978 view: *mut BNBinaryView,
20979 tgtPlatform: *mut BNPlatform,
20980 tgtAddr: u64,
20981 lib: *mut BNTypeLibrary,
20982 name: *mut BNQualifiedName,
20983 );
20984}
20985unsafe extern "C" {
20986 pub fn BNBinaryViewLookupImportedObjectLibrary(
20987 view: *mut BNBinaryView,
20988 tgtPlatform: *mut BNPlatform,
20989 tgtAddr: u64,
20990 lib: *mut *mut BNTypeLibrary,
20991 name: *mut BNQualifiedName,
20992 ) -> bool;
20993}
20994unsafe extern "C" {
20995 pub fn BNBinaryViewLookupImportedTypeLibrary(
20996 view: *mut BNBinaryView,
20997 typeName: *const BNQualifiedName,
20998 lib: *mut *mut BNTypeLibrary,
20999 resultName: *mut BNQualifiedName,
21000 ) -> bool;
21001}
21002unsafe extern "C" {
21003 #[doc = " Language Representation"]
21004 pub fn BNRegisterLanguageRepresentationFunctionType(
21005 name: *const ::std::os::raw::c_char,
21006 type_: *mut BNCustomLanguageRepresentationFunctionType,
21007 ) -> *mut BNLanguageRepresentationFunctionType;
21008}
21009unsafe extern "C" {
21010 pub fn BNGetLanguageRepresentationFunctionTypeByName(
21011 name: *const ::std::os::raw::c_char,
21012 ) -> *mut BNLanguageRepresentationFunctionType;
21013}
21014unsafe extern "C" {
21015 pub fn BNGetLanguageRepresentationFunctionTypeList(
21016 count: *mut usize,
21017 ) -> *mut *mut BNLanguageRepresentationFunctionType;
21018}
21019unsafe extern "C" {
21020 pub fn BNFreeLanguageRepresentationFunctionTypeList(
21021 types: *mut *mut BNLanguageRepresentationFunctionType,
21022 );
21023}
21024unsafe extern "C" {
21025 pub fn BNGetLanguageRepresentationFunctionTypeName(
21026 type_: *mut BNLanguageRepresentationFunctionType,
21027 ) -> *mut ::std::os::raw::c_char;
21028}
21029unsafe extern "C" {
21030 pub fn BNCreateLanguageRepresentationFunction(
21031 type_: *mut BNLanguageRepresentationFunctionType,
21032 arch: *mut BNArchitecture,
21033 func: *mut BNFunction,
21034 highLevelIL: *mut BNHighLevelILFunction,
21035 ) -> *mut BNLanguageRepresentationFunction;
21036}
21037unsafe extern "C" {
21038 pub fn BNIsLanguageRepresentationFunctionTypeValid(
21039 type_: *mut BNLanguageRepresentationFunctionType,
21040 view: *mut BNBinaryView,
21041 ) -> bool;
21042}
21043unsafe extern "C" {
21044 pub fn BNGetLanguageRepresentationFunctionTypePrinter(
21045 type_: *mut BNLanguageRepresentationFunctionType,
21046 ) -> *mut BNTypePrinter;
21047}
21048unsafe extern "C" {
21049 pub fn BNGetLanguageRepresentationFunctionTypeParser(
21050 type_: *mut BNLanguageRepresentationFunctionType,
21051 ) -> *mut BNTypeParser;
21052}
21053unsafe extern "C" {
21054 pub fn BNGetLanguageRepresentationFunctionTypeLineFormatter(
21055 type_: *mut BNLanguageRepresentationFunctionType,
21056 ) -> *mut BNLineFormatter;
21057}
21058unsafe extern "C" {
21059 pub fn BNGetLanguageRepresentationFunctionTypeFunctionTypeTokens(
21060 type_: *mut BNLanguageRepresentationFunctionType,
21061 func: *mut BNFunction,
21062 settings: *mut BNDisassemblySettings,
21063 count: *mut usize,
21064 ) -> *mut BNDisassemblyTextLine;
21065}
21066unsafe extern "C" {
21067 pub fn BNCreateCustomLanguageRepresentationFunction(
21068 type_: *mut BNLanguageRepresentationFunctionType,
21069 arch: *mut BNArchitecture,
21070 func: *mut BNFunction,
21071 highLevelIL: *mut BNHighLevelILFunction,
21072 callbacks: *mut BNCustomLanguageRepresentationFunction,
21073 ) -> *mut BNLanguageRepresentationFunction;
21074}
21075unsafe extern "C" {
21076 pub fn BNNewLanguageRepresentationFunctionReference(
21077 func: *mut BNLanguageRepresentationFunction,
21078 ) -> *mut BNLanguageRepresentationFunction;
21079}
21080unsafe extern "C" {
21081 pub fn BNFreeLanguageRepresentationFunction(func: *mut BNLanguageRepresentationFunction);
21082}
21083unsafe extern "C" {
21084 pub fn BNGetLanguageRepresentationType(
21085 func: *mut BNLanguageRepresentationFunction,
21086 ) -> *mut BNLanguageRepresentationFunctionType;
21087}
21088unsafe extern "C" {
21089 pub fn BNGetLanguageRepresentationArchitecture(
21090 func: *mut BNLanguageRepresentationFunction,
21091 ) -> *mut BNArchitecture;
21092}
21093unsafe extern "C" {
21094 pub fn BNGetLanguageRepresentationOwnerFunction(
21095 func: *mut BNLanguageRepresentationFunction,
21096 ) -> *mut BNFunction;
21097}
21098unsafe extern "C" {
21099 pub fn BNGetLanguageRepresentationILFunction(
21100 func: *mut BNLanguageRepresentationFunction,
21101 ) -> *mut BNHighLevelILFunction;
21102}
21103unsafe extern "C" {
21104 pub fn BNGetLanguageRepresentationFunctionExprText(
21105 func: *mut BNLanguageRepresentationFunction,
21106 il: *mut BNHighLevelILFunction,
21107 exprIndex: usize,
21108 settings: *mut BNDisassemblySettings,
21109 asFullAst: bool,
21110 precedence: BNOperatorPrecedence,
21111 statement: bool,
21112 count: *mut usize,
21113 ) -> *mut BNDisassemblyTextLine;
21114}
21115unsafe extern "C" {
21116 pub fn BNGetLanguageRepresentationFunctionLinearLines(
21117 func: *mut BNLanguageRepresentationFunction,
21118 il: *mut BNHighLevelILFunction,
21119 exprIndex: usize,
21120 settings: *mut BNDisassemblySettings,
21121 asFullAst: bool,
21122 count: *mut usize,
21123 ) -> *mut BNDisassemblyTextLine;
21124}
21125unsafe extern "C" {
21126 pub fn BNGetLanguageRepresentationFunctionBlockLines(
21127 func: *mut BNLanguageRepresentationFunction,
21128 block: *mut BNBasicBlock,
21129 settings: *mut BNDisassemblySettings,
21130 count: *mut usize,
21131 ) -> *mut BNDisassemblyTextLine;
21132}
21133unsafe extern "C" {
21134 pub fn BNGetLanguageRepresentationFunctionHighlight(
21135 func: *mut BNLanguageRepresentationFunction,
21136 block: *mut BNBasicBlock,
21137 ) -> BNHighlightColor;
21138}
21139unsafe extern "C" {
21140 pub fn BNGetLanguageRepresentationFunctionCommentStartString(
21141 func: *mut BNLanguageRepresentationFunction,
21142 ) -> *mut ::std::os::raw::c_char;
21143}
21144unsafe extern "C" {
21145 pub fn BNGetLanguageRepresentationFunctionCommentEndString(
21146 func: *mut BNLanguageRepresentationFunction,
21147 ) -> *mut ::std::os::raw::c_char;
21148}
21149unsafe extern "C" {
21150 pub fn BNGetLanguageRepresentationFunctionAnnotationStartString(
21151 func: *mut BNLanguageRepresentationFunction,
21152 ) -> *mut ::std::os::raw::c_char;
21153}
21154unsafe extern "C" {
21155 pub fn BNGetLanguageRepresentationFunctionAnnotationEndString(
21156 func: *mut BNLanguageRepresentationFunction,
21157 ) -> *mut ::std::os::raw::c_char;
21158}
21159unsafe extern "C" {
21160 pub fn BNNewFieldResolutionInfoReference(
21161 info: *mut BNFieldResolutionInfo,
21162 ) -> *mut BNFieldResolutionInfo;
21163}
21164unsafe extern "C" {
21165 pub fn BNFreeFieldResolutionInfo(info: *mut BNFieldResolutionInfo);
21166}
21167unsafe extern "C" {
21168 #[doc = " Types"]
21169 pub fn BNTypesEqual(a: *mut BNType, b: *mut BNType) -> bool;
21170}
21171unsafe extern "C" {
21172 pub fn BNTypesNotEqual(a: *mut BNType, b: *mut BNType) -> bool;
21173}
21174unsafe extern "C" {
21175 pub fn BNCreateVoidType() -> *mut BNType;
21176}
21177unsafe extern "C" {
21178 pub fn BNCreateBoolType() -> *mut BNType;
21179}
21180unsafe extern "C" {
21181 pub fn BNCreateIntegerType(
21182 width: usize,
21183 sign: *mut BNBoolWithConfidence,
21184 altName: *const ::std::os::raw::c_char,
21185 ) -> *mut BNType;
21186}
21187unsafe extern "C" {
21188 pub fn BNCreateFloatType(width: usize, altName: *const ::std::os::raw::c_char) -> *mut BNType;
21189}
21190unsafe extern "C" {
21191 pub fn BNCreateWideCharType(
21192 width: usize,
21193 altName: *const ::std::os::raw::c_char,
21194 ) -> *mut BNType;
21195}
21196unsafe extern "C" {
21197 pub fn BNCreateStructureType(s: *mut BNStructure) -> *mut BNType;
21198}
21199unsafe extern "C" {
21200 pub fn BNCreateEnumerationType(
21201 arch: *mut BNArchitecture,
21202 e: *mut BNEnumeration,
21203 width: usize,
21204 isSigned: *mut BNBoolWithConfidence,
21205 ) -> *mut BNType;
21206}
21207unsafe extern "C" {
21208 pub fn BNCreateEnumerationTypeOfWidth(
21209 e: *mut BNEnumeration,
21210 width: usize,
21211 isSigned: *mut BNBoolWithConfidence,
21212 ) -> *mut BNType;
21213}
21214unsafe extern "C" {
21215 pub fn BNCreatePointerType(
21216 arch: *mut BNArchitecture,
21217 type_: *const BNTypeWithConfidence,
21218 cnst: *mut BNBoolWithConfidence,
21219 vltl: *mut BNBoolWithConfidence,
21220 refType: BNReferenceType,
21221 ) -> *mut BNType;
21222}
21223unsafe extern "C" {
21224 pub fn BNCreatePointerTypeOfWidth(
21225 width: usize,
21226 type_: *const BNTypeWithConfidence,
21227 cnst: *mut BNBoolWithConfidence,
21228 vltl: *mut BNBoolWithConfidence,
21229 refType: BNReferenceType,
21230 ) -> *mut BNType;
21231}
21232unsafe extern "C" {
21233 pub fn BNCreateFragmentType(
21234 width: usize,
21235 type_: *const BNTypeWithConfidence,
21236 offset: u64,
21237 endianness: BNEndianness,
21238 ) -> *mut BNType;
21239}
21240unsafe extern "C" {
21241 pub fn BNCreateFragmentTypeBits(
21242 width: usize,
21243 type_: *const BNTypeWithConfidence,
21244 originalFragmentOffsetBytes: u64,
21245 originalFragmentWidthBytes: usize,
21246 endianness: BNEndianness,
21247 fragmentStartBit: usize,
21248 fragmentWidthBits: usize,
21249 fragmentTruncatedStartBits: usize,
21250 wrapBit: usize,
21251 ) -> *mut BNType;
21252}
21253unsafe extern "C" {
21254 pub fn BNCreateArrayType(type_: *const BNTypeWithConfidence, elem: u64) -> *mut BNType;
21255}
21256unsafe extern "C" {
21257 pub fn BNCreateFunctionType(
21258 returnValue: *mut BNTypeWithConfidence,
21259 callingConvention: *mut BNCallingConventionWithConfidence,
21260 params: *mut BNFunctionParameter,
21261 paramCount: usize,
21262 varArg: *mut BNBoolWithConfidence,
21263 canReturn: *mut BNBoolWithConfidence,
21264 stackAdjust: *mut BNOffsetWithConfidence,
21265 regStackAdjustRegs: *mut u32,
21266 regStackAdjustValues: *mut BNOffsetWithConfidence,
21267 regStackAdjustCount: usize,
21268 returnRegs: *mut BNRegisterSetWithConfidence,
21269 ft: BNNameType,
21270 pure_: *mut BNBoolWithConfidence,
21271 ) -> *mut BNType;
21272}
21273unsafe extern "C" {
21274 pub fn BNCreateVarArgsType() -> *mut BNType;
21275}
21276unsafe extern "C" {
21277 pub fn BNCreateValueType(value: *const ::std::os::raw::c_char) -> *mut BNType;
21278}
21279unsafe extern "C" {
21280 pub fn BNGetNameTypeString(classFunctionType: BNNameType) -> *mut ::std::os::raw::c_char;
21281}
21282unsafe extern "C" {
21283 pub fn BNNewTypeReference(type_: *mut BNType) -> *mut BNType;
21284}
21285unsafe extern "C" {
21286 pub fn BNDuplicateType(type_: *mut BNType) -> *mut BNType;
21287}
21288unsafe extern "C" {
21289 pub fn BNGetTypeAndName(
21290 type_: *mut BNType,
21291 name: *mut BNQualifiedName,
21292 escaping: BNTokenEscapingType,
21293 ) -> *mut ::std::os::raw::c_char;
21294}
21295unsafe extern "C" {
21296 pub fn BNFreeType(type_: *mut BNType);
21297}
21298unsafe extern "C" {
21299 pub fn BNFreeTypeList(types: *mut *mut BNType, count: usize);
21300}
21301unsafe extern "C" {
21302 pub fn BNTypeSetIgnored(type_: *mut BNType, ignored: bool) -> *mut BNType;
21303}
21304unsafe extern "C" {
21305 pub fn BNCreateTypeBuilderFromType(type_: *mut BNType) -> *mut BNTypeBuilder;
21306}
21307unsafe extern "C" {
21308 pub fn BNCreateVoidTypeBuilder() -> *mut BNTypeBuilder;
21309}
21310unsafe extern "C" {
21311 pub fn BNCreateBoolTypeBuilder() -> *mut BNTypeBuilder;
21312}
21313unsafe extern "C" {
21314 pub fn BNCreateIntegerTypeBuilder(
21315 width: usize,
21316 sign: *mut BNBoolWithConfidence,
21317 altName: *const ::std::os::raw::c_char,
21318 ) -> *mut BNTypeBuilder;
21319}
21320unsafe extern "C" {
21321 pub fn BNCreateFloatTypeBuilder(
21322 width: usize,
21323 altName: *const ::std::os::raw::c_char,
21324 ) -> *mut BNTypeBuilder;
21325}
21326unsafe extern "C" {
21327 pub fn BNCreateWideCharTypeBuilder(
21328 width: usize,
21329 altName: *const ::std::os::raw::c_char,
21330 ) -> *mut BNTypeBuilder;
21331}
21332unsafe extern "C" {
21333 pub fn BNCreateStructureTypeBuilder(s: *mut BNStructure) -> *mut BNTypeBuilder;
21334}
21335unsafe extern "C" {
21336 pub fn BNCreateStructureTypeBuilderWithBuilder(
21337 s: *mut BNStructureBuilder,
21338 ) -> *mut BNTypeBuilder;
21339}
21340unsafe extern "C" {
21341 pub fn BNCreateEnumerationTypeBuilder(
21342 arch: *mut BNArchitecture,
21343 e: *mut BNEnumeration,
21344 width: usize,
21345 isSigned: *mut BNBoolWithConfidence,
21346 ) -> *mut BNTypeBuilder;
21347}
21348unsafe extern "C" {
21349 pub fn BNCreateEnumerationTypeBuilderWithBuilder(
21350 arch: *mut BNArchitecture,
21351 e: *mut BNEnumerationBuilder,
21352 width: usize,
21353 isSigned: *mut BNBoolWithConfidence,
21354 ) -> *mut BNTypeBuilder;
21355}
21356unsafe extern "C" {
21357 pub fn BNCreatePointerTypeBuilder(
21358 arch: *mut BNArchitecture,
21359 type_: *const BNTypeWithConfidence,
21360 cnst: *mut BNBoolWithConfidence,
21361 vltl: *mut BNBoolWithConfidence,
21362 refType: BNReferenceType,
21363 ) -> *mut BNTypeBuilder;
21364}
21365unsafe extern "C" {
21366 pub fn BNCreatePointerTypeBuilderOfWidth(
21367 width: usize,
21368 type_: *const BNTypeWithConfidence,
21369 cnst: *mut BNBoolWithConfidence,
21370 vltl: *mut BNBoolWithConfidence,
21371 refType: BNReferenceType,
21372 ) -> *mut BNTypeBuilder;
21373}
21374unsafe extern "C" {
21375 pub fn BNCreateFragmentTypeBuilder(
21376 width: usize,
21377 type_: *const BNTypeWithConfidence,
21378 offset: u64,
21379 endianness: BNEndianness,
21380 ) -> *mut BNTypeBuilder;
21381}
21382unsafe extern "C" {
21383 pub fn BNCreateFragmentTypeBuilderBits(
21384 width: usize,
21385 type_: *const BNTypeWithConfidence,
21386 originalFragmentOffsetBytes: u64,
21387 originalFragmentWidthBytes: usize,
21388 endianness: BNEndianness,
21389 fragmentStartBit: usize,
21390 fragmentWidthBits: usize,
21391 fragmentTruncatedStartBits: usize,
21392 wrapBit: usize,
21393 ) -> *mut BNTypeBuilder;
21394}
21395unsafe extern "C" {
21396 pub fn BNCreateArrayTypeBuilder(
21397 type_: *const BNTypeWithConfidence,
21398 elem: u64,
21399 ) -> *mut BNTypeBuilder;
21400}
21401unsafe extern "C" {
21402 pub fn BNCreateFunctionTypeBuilder(
21403 returnValue: *mut BNTypeWithConfidence,
21404 callingConvention: *mut BNCallingConventionWithConfidence,
21405 params: *mut BNFunctionParameter,
21406 paramCount: usize,
21407 varArg: *mut BNBoolWithConfidence,
21408 canReturn: *mut BNBoolWithConfidence,
21409 stackAdjust: *mut BNOffsetWithConfidence,
21410 regStackAdjustRegs: *mut u32,
21411 regStackAdjustValues: *mut BNOffsetWithConfidence,
21412 regStackAdjustCount: usize,
21413 returnRegs: *mut BNRegisterSetWithConfidence,
21414 ft: BNNameType,
21415 pure_: *mut BNBoolWithConfidence,
21416 ) -> *mut BNTypeBuilder;
21417}
21418unsafe extern "C" {
21419 pub fn BNCreateVarArgsTypeBuilder() -> *mut BNTypeBuilder;
21420}
21421unsafe extern "C" {
21422 pub fn BNCreateValueTypeBuilder(value: *const ::std::os::raw::c_char) -> *mut BNTypeBuilder;
21423}
21424unsafe extern "C" {
21425 pub fn BNFinalizeTypeBuilder(type_: *mut BNTypeBuilder) -> *mut BNType;
21426}
21427unsafe extern "C" {
21428 pub fn BNDuplicateTypeBuilder(type_: *mut BNTypeBuilder) -> *mut BNTypeBuilder;
21429}
21430unsafe extern "C" {
21431 pub fn BNGetTypeBuilderTypeAndName(
21432 type_: *mut BNTypeBuilder,
21433 name: *mut BNQualifiedName,
21434 ) -> *mut ::std::os::raw::c_char;
21435}
21436unsafe extern "C" {
21437 pub fn BNFreeTypeBuilder(type_: *mut BNTypeBuilder);
21438}
21439unsafe extern "C" {
21440 pub fn BNTypeGetTypeName(nt: *mut BNType) -> BNQualifiedName;
21441}
21442unsafe extern "C" {
21443 pub fn BNGetTypeClass(type_: *mut BNType) -> BNTypeClass;
21444}
21445unsafe extern "C" {
21446 pub fn BNGetTypeWidth(type_: *mut BNType) -> u64;
21447}
21448unsafe extern "C" {
21449 pub fn BNGetTypeAlignment(type_: *mut BNType) -> usize;
21450}
21451unsafe extern "C" {
21452 pub fn BNGetIntegerTypeDisplayType(type_: *mut BNType) -> BNIntegerDisplayType;
21453}
21454unsafe extern "C" {
21455 pub fn BNSetIntegerTypeDisplayType(
21456 type_: *mut BNTypeBuilder,
21457 displayType: BNIntegerDisplayType,
21458 );
21459}
21460unsafe extern "C" {
21461 pub fn BNIsTypeSigned(type_: *mut BNType) -> BNBoolWithConfidence;
21462}
21463unsafe extern "C" {
21464 pub fn BNIsTypeConst(type_: *mut BNType) -> BNBoolWithConfidence;
21465}
21466unsafe extern "C" {
21467 pub fn BNIsTypeVolatile(type_: *mut BNType) -> BNBoolWithConfidence;
21468}
21469unsafe extern "C" {
21470 pub fn BNIsTypeFloatingPoint(type_: *mut BNType) -> bool;
21471}
21472unsafe extern "C" {
21473 pub fn BNGetChildType(type_: *mut BNType) -> BNTypeWithConfidence;
21474}
21475unsafe extern "C" {
21476 pub fn BNGetTypeCallingConvention(type_: *mut BNType) -> BNCallingConventionWithConfidence;
21477}
21478unsafe extern "C" {
21479 pub fn BNGetTypeCallingConventionName(type_: *mut BNType) -> BNCallingConventionName;
21480}
21481unsafe extern "C" {
21482 pub fn BNGetTypeParameters(type_: *mut BNType, count: *mut usize) -> *mut BNFunctionParameter;
21483}
21484unsafe extern "C" {
21485 pub fn BNFreeTypeParameterList(types: *mut BNFunctionParameter, count: usize);
21486}
21487unsafe extern "C" {
21488 pub fn BNTypeHasVariableArguments(type_: *mut BNType) -> BNBoolWithConfidence;
21489}
21490unsafe extern "C" {
21491 pub fn BNTypeHasTemplateArguments(type_: *mut BNType) -> bool;
21492}
21493unsafe extern "C" {
21494 pub fn BNFunctionTypeCanReturn(type_: *mut BNType) -> BNBoolWithConfidence;
21495}
21496unsafe extern "C" {
21497 pub fn BNIsTypePure(type_: *mut BNType) -> BNBoolWithConfidence;
21498}
21499unsafe extern "C" {
21500 pub fn BNGetTypeStructure(type_: *mut BNType) -> *mut BNStructure;
21501}
21502unsafe extern "C" {
21503 pub fn BNGetTypeEnumeration(type_: *mut BNType) -> *mut BNEnumeration;
21504}
21505unsafe extern "C" {
21506 pub fn BNGetTypeNamedTypeReference(type_: *mut BNType) -> *mut BNNamedTypeReference;
21507}
21508unsafe extern "C" {
21509 pub fn BNGetTypeElementCount(type_: *mut BNType) -> u64;
21510}
21511unsafe extern "C" {
21512 pub fn BNGetTypeOffset(type_: *mut BNType) -> u64;
21513}
21514unsafe extern "C" {
21515 pub fn BNGetTypeFragmentOriginalOffsetBytes(type_: *mut BNType) -> u64;
21516}
21517unsafe extern "C" {
21518 pub fn BNGetTypeFragmentOriginalWidthBytes(type_: *mut BNType) -> usize;
21519}
21520unsafe extern "C" {
21521 pub fn BNGetTypeFragmentStartBit(type_: *mut BNType) -> usize;
21522}
21523unsafe extern "C" {
21524 pub fn BNGetTypeFragmentWidthBits(type_: *mut BNType) -> usize;
21525}
21526unsafe extern "C" {
21527 pub fn BNGetTypeFragmentTruncatedStartBits(type_: *mut BNType) -> usize;
21528}
21529unsafe extern "C" {
21530 pub fn BNGetTypeFragmentWrapBit(type_: *mut BNType) -> usize;
21531}
21532unsafe extern "C" {
21533 pub fn BNGetTypeFragmentEndianness(type_: *mut BNType) -> BNEndianness;
21534}
21535unsafe extern "C" {
21536 pub fn BNGetTypeStackAdjustment(type_: *mut BNType) -> BNOffsetWithConfidence;
21537}
21538unsafe extern "C" {
21539 pub fn BNTypeGetStructureName(type_: *mut BNType) -> BNQualifiedName;
21540}
21541unsafe extern "C" {
21542 pub fn BNGetRegisteredTypeName(type_: *mut BNType) -> *mut BNNamedTypeReference;
21543}
21544unsafe extern "C" {
21545 pub fn BNTypeGetReferenceType(type_: *mut BNType) -> BNReferenceType;
21546}
21547unsafe extern "C" {
21548 pub fn BNTypeGetPointerBaseType(type_: *mut BNType) -> BNPointerBaseType;
21549}
21550unsafe extern "C" {
21551 pub fn BNTypeGetPointerBaseOffset(type_: *mut BNType) -> i64;
21552}
21553unsafe extern "C" {
21554 pub fn BNTypeGetNameType(type_: *mut BNType) -> BNNameType;
21555}
21556unsafe extern "C" {
21557 pub fn BNGetTypeAlternateName(type_: *mut BNType) -> *mut ::std::os::raw::c_char;
21558}
21559unsafe extern "C" {
21560 pub fn BNTypeGetSystemCallNumber(type_: *mut BNType) -> u32;
21561}
21562unsafe extern "C" {
21563 pub fn BNTypeIsSystemCall(type_: *mut BNType) -> bool;
21564}
21565unsafe extern "C" {
21566 pub fn BNGetTypePointerSuffix(type_: *mut BNType, count: *mut usize) -> *mut BNPointerSuffix;
21567}
21568unsafe extern "C" {
21569 pub fn BNGetTypePointerSuffixString(type_: *mut BNType) -> *mut ::std::os::raw::c_char;
21570}
21571unsafe extern "C" {
21572 pub fn BNGetTypePointerSuffixTokens(
21573 type_: *mut BNType,
21574 baseConfidence: u8,
21575 count: *mut usize,
21576 ) -> *mut BNInstructionTextToken;
21577}
21578unsafe extern "C" {
21579 pub fn BNFreePointerSuffixList(suffix: *mut BNPointerSuffix, count: usize);
21580}
21581unsafe extern "C" {
21582 pub fn BNTypeShouldDisplayReturnType(type_: *mut BNType) -> bool;
21583}
21584unsafe extern "C" {
21585 pub fn BNGetTypeAttributes(type_: *mut BNType, count: *mut usize) -> *mut BNTypeAttribute;
21586}
21587unsafe extern "C" {
21588 pub fn BNGetTypeAttributeByName(
21589 type_: *mut BNType,
21590 name: *const ::std::os::raw::c_char,
21591 ) -> *mut ::std::os::raw::c_char;
21592}
21593unsafe extern "C" {
21594 pub fn BNFreeTypeAttributeList(attr: *mut BNTypeAttribute, count: usize);
21595}
21596unsafe extern "C" {
21597 pub fn BNDerefNamedTypeReference(view: *mut BNBinaryView, type_: *mut BNType) -> *mut BNType;
21598}
21599unsafe extern "C" {
21600 pub fn BNGetTypeString(
21601 type_: *mut BNType,
21602 platform: *mut BNPlatform,
21603 escaping: BNTokenEscapingType,
21604 ) -> *mut ::std::os::raw::c_char;
21605}
21606unsafe extern "C" {
21607 pub fn BNGetTypeStringBeforeName(
21608 type_: *mut BNType,
21609 platform: *mut BNPlatform,
21610 escaping: BNTokenEscapingType,
21611 ) -> *mut ::std::os::raw::c_char;
21612}
21613unsafe extern "C" {
21614 pub fn BNGetTypeStringAfterName(
21615 type_: *mut BNType,
21616 platform: *mut BNPlatform,
21617 escaping: BNTokenEscapingType,
21618 ) -> *mut ::std::os::raw::c_char;
21619}
21620unsafe extern "C" {
21621 pub fn BNGetTypeTokens(
21622 type_: *mut BNType,
21623 platform: *mut BNPlatform,
21624 baseConfidence: u8,
21625 escaping: BNTokenEscapingType,
21626 count: *mut usize,
21627 ) -> *mut BNInstructionTextToken;
21628}
21629unsafe extern "C" {
21630 pub fn BNGetTypeTokensBeforeName(
21631 type_: *mut BNType,
21632 platform: *mut BNPlatform,
21633 baseConfidence: u8,
21634 escaping: BNTokenEscapingType,
21635 count: *mut usize,
21636 ) -> *mut BNInstructionTextToken;
21637}
21638unsafe extern "C" {
21639 pub fn BNGetTypeTokensAfterName(
21640 type_: *mut BNType,
21641 platform: *mut BNPlatform,
21642 baseConfidence: u8,
21643 escaping: BNTokenEscapingType,
21644 count: *mut usize,
21645 ) -> *mut BNInstructionTextToken;
21646}
21647unsafe extern "C" {
21648 pub fn BNTypeWithReplacedStructure(
21649 type_: *mut BNType,
21650 from: *mut BNStructure,
21651 to: *mut BNStructure,
21652 ) -> *mut BNType;
21653}
21654unsafe extern "C" {
21655 pub fn BNTypeWithReplacedEnumeration(
21656 type_: *mut BNType,
21657 from: *mut BNEnumeration,
21658 to: *mut BNEnumeration,
21659 ) -> *mut BNType;
21660}
21661unsafe extern "C" {
21662 pub fn BNTypeWithReplacedNamedTypeReference(
21663 type_: *mut BNType,
21664 from: *mut BNNamedTypeReference,
21665 to: *mut BNNamedTypeReference,
21666 ) -> *mut BNType;
21667}
21668unsafe extern "C" {
21669 pub fn BNAddTypeMemberTokens(
21670 type_: *mut BNType,
21671 data: *mut BNBinaryView,
21672 tokens: *mut *mut BNInstructionTextToken,
21673 tokenCount: *mut usize,
21674 offset: i64,
21675 nameList: *mut *mut *mut ::std::os::raw::c_char,
21676 nameCount: *mut usize,
21677 size: usize,
21678 indirect: bool,
21679 info: *mut BNFieldResolutionInfo,
21680 ) -> bool;
21681}
21682unsafe extern "C" {
21683 pub fn BNGetTypeLines(
21684 type_: *mut BNType,
21685 types: *mut BNTypeContainer,
21686 name: *const ::std::os::raw::c_char,
21687 paddingCols: ::std::os::raw::c_int,
21688 collapsed: bool,
21689 escaping: BNTokenEscapingType,
21690 count: *mut usize,
21691 ) -> *mut BNTypeDefinitionLine;
21692}
21693unsafe extern "C" {
21694 pub fn BNFreeTypeDefinitionLineList(list: *mut BNTypeDefinitionLine, count: usize);
21695}
21696unsafe extern "C" {
21697 pub fn BNEnumerateTypesForAccess(
21698 type_: *mut BNType,
21699 data: *mut BNBinaryView,
21700 offset: u64,
21701 size: usize,
21702 baseConfidence: u8,
21703 terminal: ::std::option::Option<
21704 unsafe extern "C" fn(
21705 arg1: *mut ::std::os::raw::c_void,
21706 arg2: *mut BNTypeWithConfidence,
21707 arg3: *mut BNFieldResolutionInfo,
21708 ),
21709 >,
21710 ctxt: *mut ::std::os::raw::c_void,
21711 ) -> bool;
21712}
21713unsafe extern "C" {
21714 pub fn BNTypeBuilderGetTypeName(nt: *mut BNTypeBuilder) -> BNQualifiedName;
21715}
21716unsafe extern "C" {
21717 pub fn BNTypeBuilderSetTypeName(type_: *mut BNTypeBuilder, name: *mut BNQualifiedName);
21718}
21719unsafe extern "C" {
21720 pub fn BNTypeBuilderSetAlternateName(
21721 type_: *mut BNTypeBuilder,
21722 name: *const ::std::os::raw::c_char,
21723 );
21724}
21725unsafe extern "C" {
21726 pub fn BNGetTypeBuilderClass(type_: *mut BNTypeBuilder) -> BNTypeClass;
21727}
21728unsafe extern "C" {
21729 pub fn BNTypeBuilderSetSystemCallNumber(type_: *mut BNTypeBuilder, v: bool, n: u32);
21730}
21731unsafe extern "C" {
21732 pub fn BNGetTypeBuilderWidth(type_: *mut BNTypeBuilder) -> u64;
21733}
21734unsafe extern "C" {
21735 pub fn BNGetTypeBuilderAlignment(type_: *mut BNTypeBuilder) -> usize;
21736}
21737unsafe extern "C" {
21738 pub fn BNIsTypeBuilderSigned(type_: *mut BNTypeBuilder) -> BNBoolWithConfidence;
21739}
21740unsafe extern "C" {
21741 pub fn BNIsTypeBuilderConst(type_: *mut BNTypeBuilder) -> BNBoolWithConfidence;
21742}
21743unsafe extern "C" {
21744 pub fn BNIsTypeBuilderVolatile(type_: *mut BNTypeBuilder) -> BNBoolWithConfidence;
21745}
21746unsafe extern "C" {
21747 pub fn BNIsTypeBuilderFloatingPoint(type_: *mut BNTypeBuilder) -> bool;
21748}
21749unsafe extern "C" {
21750 pub fn BNGetTypeBuilderChildType(type_: *mut BNTypeBuilder) -> BNTypeWithConfidence;
21751}
21752unsafe extern "C" {
21753 pub fn BNGetTypeBuilderCallingConvention(
21754 type_: *mut BNTypeBuilder,
21755 ) -> BNCallingConventionWithConfidence;
21756}
21757unsafe extern "C" {
21758 pub fn BNGetTypeBuilderCallingConventionName(
21759 type_: *mut BNTypeBuilder,
21760 ) -> BNCallingConventionName;
21761}
21762unsafe extern "C" {
21763 pub fn BNGetTypeBuilderParameters(
21764 type_: *mut BNTypeBuilder,
21765 count: *mut usize,
21766 ) -> *mut BNFunctionParameter;
21767}
21768unsafe extern "C" {
21769 pub fn BNTypeBuilderHasVariableArguments(type_: *mut BNTypeBuilder) -> BNBoolWithConfidence;
21770}
21771unsafe extern "C" {
21772 pub fn BNFunctionTypeBuilderCanReturn(type_: *mut BNTypeBuilder) -> BNBoolWithConfidence;
21773}
21774unsafe extern "C" {
21775 pub fn BNIsTypeBuilderPure(type_: *mut BNTypeBuilder) -> BNBoolWithConfidence;
21776}
21777unsafe extern "C" {
21778 pub fn BNGetTypeBuilderStructure(type_: *mut BNTypeBuilder) -> *mut BNStructure;
21779}
21780unsafe extern "C" {
21781 pub fn BNGetTypeBuilderEnumeration(type_: *mut BNTypeBuilder) -> *mut BNEnumeration;
21782}
21783unsafe extern "C" {
21784 pub fn BNGetTypeBuilderNamedTypeReference(
21785 type_: *mut BNTypeBuilder,
21786 ) -> *mut BNNamedTypeReference;
21787}
21788unsafe extern "C" {
21789 pub fn BNSetTypeBuilderNamedTypeReference(
21790 type_: *mut BNTypeBuilder,
21791 ntr: *mut BNNamedTypeReference,
21792 );
21793}
21794unsafe extern "C" {
21795 pub fn BNGetTypeBuilderElementCount(type_: *mut BNTypeBuilder) -> u64;
21796}
21797unsafe extern "C" {
21798 pub fn BNGetTypeBuilderOffset(type_: *mut BNTypeBuilder) -> u64;
21799}
21800unsafe extern "C" {
21801 pub fn BNGetTypeBuilderFragmentOriginalOffsetBytes(type_: *mut BNTypeBuilder) -> u64;
21802}
21803unsafe extern "C" {
21804 pub fn BNGetTypeBuilderFragmentOriginalWidthBytes(type_: *mut BNTypeBuilder) -> usize;
21805}
21806unsafe extern "C" {
21807 pub fn BNGetTypeBuilderFragmentStartBit(type_: *mut BNTypeBuilder) -> usize;
21808}
21809unsafe extern "C" {
21810 pub fn BNGetTypeBuilderFragmentWidthBits(type_: *mut BNTypeBuilder) -> usize;
21811}
21812unsafe extern "C" {
21813 pub fn BNGetTypeBuilderFragmentTruncatedStartBits(type_: *mut BNTypeBuilder) -> usize;
21814}
21815unsafe extern "C" {
21816 pub fn BNGetTypeBuilderFragmentWrapBit(type_: *mut BNTypeBuilder) -> usize;
21817}
21818unsafe extern "C" {
21819 pub fn BNGetTypeBuilderFragmentEndianness(type_: *mut BNTypeBuilder) -> BNEndianness;
21820}
21821unsafe extern "C" {
21822 pub fn BNSetTypeBuilderOffset(type_: *mut BNTypeBuilder, offset: u64);
21823}
21824unsafe extern "C" {
21825 pub fn BNSetTypeBuilderPointerBase(
21826 type_: *mut BNTypeBuilder,
21827 baseType: BNPointerBaseType,
21828 baseOffset: i64,
21829 );
21830}
21831unsafe extern "C" {
21832 pub fn BNSetTypeBuilderFragmentOriginalOffsetBytes(type_: *mut BNTypeBuilder, offset: u64);
21833}
21834unsafe extern "C" {
21835 pub fn BNSetTypeBuilderFragmentOriginalWidthBytes(type_: *mut BNTypeBuilder, size: usize);
21836}
21837unsafe extern "C" {
21838 pub fn BNSetTypeBuilderFragmentStartBit(type_: *mut BNTypeBuilder, startBit: usize);
21839}
21840unsafe extern "C" {
21841 pub fn BNSetTypeBuilderFragmentWidthBits(type_: *mut BNTypeBuilder, widthBits: usize);
21842}
21843unsafe extern "C" {
21844 pub fn BNSetTypeBuilderFragmentTruncatedStartBits(
21845 type_: *mut BNTypeBuilder,
21846 truncatedBits: usize,
21847 );
21848}
21849unsafe extern "C" {
21850 pub fn BNSetTypeBuilderFragmentWrapBit(type_: *mut BNTypeBuilder, wrapBit: usize);
21851}
21852unsafe extern "C" {
21853 pub fn BNSetTypeBuilderFragmentEndianness(type_: *mut BNTypeBuilder, endianness: BNEndianness);
21854}
21855unsafe extern "C" {
21856 pub fn BNSetFunctionTypeBuilderCanReturn(
21857 type_: *mut BNTypeBuilder,
21858 canReturn: *mut BNBoolWithConfidence,
21859 );
21860}
21861unsafe extern "C" {
21862 pub fn BNSetTypeBuilderPure(type_: *mut BNTypeBuilder, pure_: *mut BNBoolWithConfidence);
21863}
21864unsafe extern "C" {
21865 pub fn BNSetFunctionTypeBuilderParameters(
21866 type_: *mut BNTypeBuilder,
21867 params: *mut BNFunctionParameter,
21868 paramCount: usize,
21869 );
21870}
21871unsafe extern "C" {
21872 pub fn BNTypeBuilderSetWidth(type_: *mut BNTypeBuilder, width: usize);
21873}
21874unsafe extern "C" {
21875 pub fn BNTypeBuilderSetAlignment(type_: *mut BNTypeBuilder, alignment: usize);
21876}
21877unsafe extern "C" {
21878 pub fn BNTypeBuilderSetConst(type_: *mut BNTypeBuilder, cnst: *mut BNBoolWithConfidence);
21879}
21880unsafe extern "C" {
21881 pub fn BNTypeBuilderSetVolatile(type_: *mut BNTypeBuilder, vltl: *mut BNBoolWithConfidence);
21882}
21883unsafe extern "C" {
21884 pub fn BNTypeBuilderSetSigned(type_: *mut BNTypeBuilder, sign: *mut BNBoolWithConfidence);
21885}
21886unsafe extern "C" {
21887 pub fn BNTypeBuilderSetChildType(type_: *mut BNTypeBuilder, child: *mut BNTypeWithConfidence);
21888}
21889unsafe extern "C" {
21890 pub fn BNTypeBuilderSetCallingConvention(
21891 type_: *mut BNTypeBuilder,
21892 cc: *mut BNCallingConventionWithConfidence,
21893 );
21894}
21895unsafe extern "C" {
21896 pub fn BNTypeBuilderSetCallingConventionName(
21897 type_: *mut BNTypeBuilder,
21898 cc: BNCallingConventionName,
21899 );
21900}
21901unsafe extern "C" {
21902 pub fn BNGetTypeBuilderStackAdjustment(type_: *mut BNTypeBuilder) -> BNOffsetWithConfidence;
21903}
21904unsafe extern "C" {
21905 pub fn BNTypeBuilderGetStructureName(type_: *mut BNTypeBuilder) -> BNQualifiedName;
21906}
21907unsafe extern "C" {
21908 pub fn BNTypeBuilderGetReferenceType(type_: *mut BNTypeBuilder) -> BNReferenceType;
21909}
21910unsafe extern "C" {
21911 pub fn BNTypeBuilderGetPointerBaseType(type_: *mut BNTypeBuilder) -> BNPointerBaseType;
21912}
21913unsafe extern "C" {
21914 pub fn BNTypeBuilderGetPointerBaseOffset(type_: *mut BNTypeBuilder) -> i64;
21915}
21916unsafe extern "C" {
21917 pub fn BNGetTypeBuilderAlternateName(type_: *mut BNTypeBuilder) -> *mut ::std::os::raw::c_char;
21918}
21919unsafe extern "C" {
21920 pub fn BNTypeBuilderIsSystemCall(type_: *mut BNTypeBuilder) -> bool;
21921}
21922unsafe extern "C" {
21923 pub fn BNTypeBuilderGetSystemCallNumber(type_: *mut BNTypeBuilder) -> u32;
21924}
21925unsafe extern "C" {
21926 pub fn BNTypeBuilderSetStackAdjustment(
21927 type_: *mut BNTypeBuilder,
21928 adjust: *mut BNOffsetWithConfidence,
21929 );
21930}
21931unsafe extern "C" {
21932 pub fn BNGetTypeBuilderPointerSuffix(
21933 type_: *mut BNTypeBuilder,
21934 count: *mut usize,
21935 ) -> *mut BNPointerSuffix;
21936}
21937unsafe extern "C" {
21938 pub fn BNGetTypeBuilderPointerSuffixString(
21939 type_: *mut BNTypeBuilder,
21940 ) -> *mut ::std::os::raw::c_char;
21941}
21942unsafe extern "C" {
21943 pub fn BNGetTypeBuilderPointerSuffixTokens(
21944 type_: *mut BNTypeBuilder,
21945 baseConfidence: u8,
21946 count: *mut usize,
21947 ) -> *mut BNInstructionTextToken;
21948}
21949unsafe extern "C" {
21950 pub fn BNAddTypeBuilderPointerSuffix(type_: *mut BNTypeBuilder, ps: BNPointerSuffix);
21951}
21952unsafe extern "C" {
21953 pub fn BNSetTypeBuilderPointerSuffix(
21954 type_: *mut BNTypeBuilder,
21955 suffix: *mut BNPointerSuffix,
21956 count: usize,
21957 );
21958}
21959unsafe extern "C" {
21960 pub fn BNGetTypeBuilderNameType(type_: *mut BNTypeBuilder) -> BNNameType;
21961}
21962unsafe extern "C" {
21963 pub fn BNTypeBuilderHasTemplateArguments(type_: *mut BNTypeBuilder) -> bool;
21964}
21965unsafe extern "C" {
21966 pub fn BNSetTypeBuilderNameType(type_: *mut BNTypeBuilder, nameType: BNNameType);
21967}
21968unsafe extern "C" {
21969 pub fn BNSetTypeBuilderHasTemplateArguments(
21970 type_: *mut BNTypeBuilder,
21971 hasTemplateArguments: bool,
21972 );
21973}
21974unsafe extern "C" {
21975 pub fn BNSetTypeBuilderAttribute(
21976 type_: *mut BNTypeBuilder,
21977 name: *const ::std::os::raw::c_char,
21978 value: *const ::std::os::raw::c_char,
21979 );
21980}
21981unsafe extern "C" {
21982 pub fn BNSetTypeBuilderAttributeList(
21983 type_: *mut BNTypeBuilder,
21984 attrs: *mut BNTypeAttribute,
21985 count: usize,
21986 );
21987}
21988unsafe extern "C" {
21989 pub fn BNRemoveTypeBuilderAttribute(
21990 type_: *mut BNTypeBuilder,
21991 name: *const ::std::os::raw::c_char,
21992 );
21993}
21994unsafe extern "C" {
21995 pub fn BNGetTypeBuilderAttributes(
21996 type_: *mut BNTypeBuilder,
21997 count: *mut usize,
21998 ) -> *mut BNTypeAttribute;
21999}
22000unsafe extern "C" {
22001 pub fn BNGetTypeBuilderAttributeByName(
22002 type_: *mut BNTypeBuilder,
22003 name: *const ::std::os::raw::c_char,
22004 ) -> *mut ::std::os::raw::c_char;
22005}
22006unsafe extern "C" {
22007 pub fn BNGetTypeBuilderString(
22008 type_: *mut BNTypeBuilder,
22009 platform: *mut BNPlatform,
22010 ) -> *mut ::std::os::raw::c_char;
22011}
22012unsafe extern "C" {
22013 pub fn BNGetTypeBuilderStringBeforeName(
22014 type_: *mut BNTypeBuilder,
22015 platform: *mut BNPlatform,
22016 ) -> *mut ::std::os::raw::c_char;
22017}
22018unsafe extern "C" {
22019 pub fn BNGetTypeBuilderStringAfterName(
22020 type_: *mut BNTypeBuilder,
22021 platform: *mut BNPlatform,
22022 ) -> *mut ::std::os::raw::c_char;
22023}
22024unsafe extern "C" {
22025 pub fn BNGetTypeBuilderTokens(
22026 type_: *mut BNTypeBuilder,
22027 platform: *mut BNPlatform,
22028 baseConfidence: u8,
22029 count: *mut usize,
22030 ) -> *mut BNInstructionTextToken;
22031}
22032unsafe extern "C" {
22033 pub fn BNGetTypeBuilderTokensBeforeName(
22034 type_: *mut BNTypeBuilder,
22035 platform: *mut BNPlatform,
22036 baseConfidence: u8,
22037 count: *mut usize,
22038 ) -> *mut BNInstructionTextToken;
22039}
22040unsafe extern "C" {
22041 pub fn BNGetTypeBuilderTokensAfterName(
22042 type_: *mut BNTypeBuilder,
22043 platform: *mut BNPlatform,
22044 baseConfidence: u8,
22045 count: *mut usize,
22046 ) -> *mut BNInstructionTextToken;
22047}
22048unsafe extern "C" {
22049 pub fn BNCreateNamedTypeReference(
22050 nt: *mut BNNamedTypeReference,
22051 width: usize,
22052 align: usize,
22053 cnst: *mut BNBoolWithConfidence,
22054 vltl: *mut BNBoolWithConfidence,
22055 ) -> *mut BNType;
22056}
22057unsafe extern "C" {
22058 pub fn BNCreateNamedTypeReferenceFromTypeAndId(
22059 id: *const ::std::os::raw::c_char,
22060 name: *mut BNQualifiedName,
22061 type_: *mut BNType,
22062 ) -> *mut BNType;
22063}
22064unsafe extern "C" {
22065 pub fn BNCreateNamedTypeReferenceFromType(
22066 view: *mut BNBinaryView,
22067 name: *mut BNQualifiedName,
22068 ) -> *mut BNType;
22069}
22070unsafe extern "C" {
22071 pub fn BNCreateNamedTypeReferenceBuilder(
22072 nt: *mut BNNamedTypeReference,
22073 width: usize,
22074 align: usize,
22075 cnst: *mut BNBoolWithConfidence,
22076 vltl: *mut BNBoolWithConfidence,
22077 ) -> *mut BNTypeBuilder;
22078}
22079unsafe extern "C" {
22080 pub fn BNCreateNamedTypeReferenceBuilderWithBuilder(
22081 nt: *mut BNNamedTypeReferenceBuilder,
22082 width: usize,
22083 align: usize,
22084 cnst: *mut BNBoolWithConfidence,
22085 vltl: *mut BNBoolWithConfidence,
22086 ) -> *mut BNTypeBuilder;
22087}
22088unsafe extern "C" {
22089 pub fn BNCreateNamedTypeReferenceBuilderFromTypeAndId(
22090 id: *const ::std::os::raw::c_char,
22091 name: *mut BNQualifiedName,
22092 type_: *mut BNType,
22093 ) -> *mut BNTypeBuilder;
22094}
22095unsafe extern "C" {
22096 pub fn BNCreateNamedTypeReferenceBuilderFromType(
22097 view: *mut BNBinaryView,
22098 name: *mut BNQualifiedName,
22099 ) -> *mut BNTypeBuilder;
22100}
22101unsafe extern "C" {
22102 pub fn BNCreateNamedType(
22103 cls: BNNamedTypeReferenceClass,
22104 id: *const ::std::os::raw::c_char,
22105 name: *mut BNQualifiedName,
22106 ) -> *mut BNNamedTypeReference;
22107}
22108unsafe extern "C" {
22109 pub fn BNGetTypeReferenceClass(nt: *mut BNNamedTypeReference) -> BNNamedTypeReferenceClass;
22110}
22111unsafe extern "C" {
22112 pub fn BNGetTypeReferenceId(nt: *mut BNNamedTypeReference) -> *mut ::std::os::raw::c_char;
22113}
22114unsafe extern "C" {
22115 pub fn BNGetTypeReferenceName(nt: *mut BNNamedTypeReference) -> BNQualifiedName;
22116}
22117unsafe extern "C" {
22118 pub fn BNFreeQualifiedName(name: *mut BNQualifiedName);
22119}
22120unsafe extern "C" {
22121 pub fn BNFreeQualifiedNameArray(names: *mut BNQualifiedName, count: usize);
22122}
22123unsafe extern "C" {
22124 pub fn BNFreeNamedTypeReference(nt: *mut BNNamedTypeReference);
22125}
22126unsafe extern "C" {
22127 pub fn BNNewNamedTypeReference(nt: *mut BNNamedTypeReference) -> *mut BNNamedTypeReference;
22128}
22129unsafe extern "C" {
22130 pub fn BNCreateNamedTypeBuilder(
22131 cls: BNNamedTypeReferenceClass,
22132 id: *const ::std::os::raw::c_char,
22133 name: *mut BNQualifiedName,
22134 ) -> *mut BNNamedTypeReferenceBuilder;
22135}
22136unsafe extern "C" {
22137 pub fn BNFreeNamedTypeReferenceBuilder(s: *mut BNNamedTypeReferenceBuilder);
22138}
22139unsafe extern "C" {
22140 pub fn BNSetNamedTypeReferenceBuilderTypeClass(
22141 s: *mut BNNamedTypeReferenceBuilder,
22142 type_: BNNamedTypeReferenceClass,
22143 );
22144}
22145unsafe extern "C" {
22146 pub fn BNSetNamedTypeReferenceBuilderTypeId(
22147 s: *mut BNNamedTypeReferenceBuilder,
22148 id: *const ::std::os::raw::c_char,
22149 );
22150}
22151unsafe extern "C" {
22152 pub fn BNSetNamedTypeReferenceBuilderName(
22153 s: *mut BNNamedTypeReferenceBuilder,
22154 name: *mut BNQualifiedName,
22155 );
22156}
22157unsafe extern "C" {
22158 pub fn BNFinalizeNamedTypeReferenceBuilder(
22159 s: *mut BNNamedTypeReferenceBuilder,
22160 ) -> *mut BNNamedTypeReference;
22161}
22162unsafe extern "C" {
22163 pub fn BNGetTypeReferenceBuilderClass(
22164 nt: *mut BNNamedTypeReferenceBuilder,
22165 ) -> BNNamedTypeReferenceClass;
22166}
22167unsafe extern "C" {
22168 pub fn BNGetTypeReferenceBuilderId(
22169 nt: *mut BNNamedTypeReferenceBuilder,
22170 ) -> *mut ::std::os::raw::c_char;
22171}
22172unsafe extern "C" {
22173 pub fn BNGetTypeReferenceBuilderName(nt: *mut BNNamedTypeReferenceBuilder) -> BNQualifiedName;
22174}
22175unsafe extern "C" {
22176 pub fn BNSetNamedTypeReferenceBuilder(
22177 type_: *mut BNTypeBuilder,
22178 nt: *mut BNNamedTypeReferenceBuilder,
22179 );
22180}
22181unsafe extern "C" {
22182 pub fn BNCreateStructureBuilder() -> *mut BNStructureBuilder;
22183}
22184unsafe extern "C" {
22185 pub fn BNCreateStructureBuilderWithOptions(
22186 type_: BNStructureVariant,
22187 packed: bool,
22188 ) -> *mut BNStructureBuilder;
22189}
22190unsafe extern "C" {
22191 pub fn BNCreateStructureBuilderFromStructure(s: *mut BNStructure) -> *mut BNStructureBuilder;
22192}
22193unsafe extern "C" {
22194 pub fn BNDuplicateStructureBuilder(s: *mut BNStructureBuilder) -> *mut BNStructureBuilder;
22195}
22196unsafe extern "C" {
22197 pub fn BNFinalizeStructureBuilder(s: *mut BNStructureBuilder) -> *mut BNStructure;
22198}
22199unsafe extern "C" {
22200 pub fn BNNewStructureReference(s: *mut BNStructure) -> *mut BNStructure;
22201}
22202unsafe extern "C" {
22203 pub fn BNFreeStructure(s: *mut BNStructure);
22204}
22205unsafe extern "C" {
22206 pub fn BNFreeStructureBuilder(s: *mut BNStructureBuilder);
22207}
22208unsafe extern "C" {
22209 pub fn BNSetStructureBuilder(type_: *mut BNTypeBuilder, s: *mut BNStructureBuilder);
22210}
22211unsafe extern "C" {
22212 pub fn BNGetStructureMemberByName(
22213 s: *mut BNStructure,
22214 name: *const ::std::os::raw::c_char,
22215 ) -> *mut BNStructureMember;
22216}
22217unsafe extern "C" {
22218 pub fn BNGetStructureMemberAtOffset(
22219 s: *mut BNStructure,
22220 offset: i64,
22221 idx: *mut usize,
22222 ) -> *mut BNStructureMember;
22223}
22224unsafe extern "C" {
22225 pub fn BNFreeStructureMember(s: *mut BNStructureMember);
22226}
22227unsafe extern "C" {
22228 pub fn BNGetStructureMembers(s: *mut BNStructure, count: *mut usize) -> *mut BNStructureMember;
22229}
22230unsafe extern "C" {
22231 pub fn BNFreeStructureMemberList(members: *mut BNStructureMember, count: usize);
22232}
22233unsafe extern "C" {
22234 pub fn BNGetStructureMembersIncludingInherited(
22235 s: *mut BNStructure,
22236 types: *mut BNTypeContainer,
22237 count: *mut usize,
22238 ) -> *mut BNInheritedStructureMember;
22239}
22240unsafe extern "C" {
22241 pub fn BNFreeInheritedStructureMemberList(
22242 members: *mut BNInheritedStructureMember,
22243 count: usize,
22244 );
22245}
22246unsafe extern "C" {
22247 pub fn BNGetMemberIncludingInheritedAtOffset(
22248 s: *mut BNStructure,
22249 view: *mut BNBinaryView,
22250 offset: i64,
22251 ) -> *mut BNInheritedStructureMember;
22252}
22253unsafe extern "C" {
22254 pub fn BNFreeInheritedStructureMember(members: *mut BNInheritedStructureMember);
22255}
22256unsafe extern "C" {
22257 pub fn BNGetStructureWidth(s: *mut BNStructure) -> u64;
22258}
22259unsafe extern "C" {
22260 pub fn BNGetStructurePointerOffset(s: *mut BNStructure) -> i64;
22261}
22262unsafe extern "C" {
22263 pub fn BNGetStructureAlignment(s: *mut BNStructure) -> usize;
22264}
22265unsafe extern "C" {
22266 pub fn BNIsStructurePacked(s: *mut BNStructure) -> bool;
22267}
22268unsafe extern "C" {
22269 pub fn BNIsStructureUnion(s: *mut BNStructure) -> bool;
22270}
22271unsafe extern "C" {
22272 pub fn BNStructurePropagatesDataVariableReferences(s: *mut BNStructure) -> bool;
22273}
22274unsafe extern "C" {
22275 pub fn BNGetStructureType(s: *mut BNStructure) -> BNStructureVariant;
22276}
22277unsafe extern "C" {
22278 pub fn BNGetBaseStructuresForStructure(
22279 s: *mut BNStructure,
22280 count: *mut usize,
22281 ) -> *mut BNBaseStructure;
22282}
22283unsafe extern "C" {
22284 pub fn BNFreeBaseStructureList(bases: *mut BNBaseStructure, count: usize);
22285}
22286unsafe extern "C" {
22287 pub fn BNResolveStructureMemberOrBaseMember(
22288 s: *mut BNStructure,
22289 data: *mut BNBinaryView,
22290 offset: u64,
22291 size: usize,
22292 callbackContext: *mut ::std::os::raw::c_void,
22293 resolveFunc: ::std::option::Option<
22294 unsafe extern "C" fn(
22295 ctxt: *mut ::std::os::raw::c_void,
22296 baseName: *mut BNNamedTypeReference,
22297 resolvedStruct: *mut BNStructure,
22298 memberIndex: usize,
22299 structOffset: u64,
22300 adjustedOffset: u64,
22301 member: BNStructureMember,
22302 ),
22303 >,
22304 memberIndexHintValid: bool,
22305 memberIndexHint: usize,
22306 ) -> bool;
22307}
22308unsafe extern "C" {
22309 pub fn BNStructureWithReplacedStructure(
22310 s: *mut BNStructure,
22311 from: *mut BNStructure,
22312 to: *mut BNStructure,
22313 ) -> *mut BNStructure;
22314}
22315unsafe extern "C" {
22316 pub fn BNStructureWithReplacedEnumeration(
22317 s: *mut BNStructure,
22318 from: *mut BNEnumeration,
22319 to: *mut BNEnumeration,
22320 ) -> *mut BNStructure;
22321}
22322unsafe extern "C" {
22323 pub fn BNStructureWithReplacedNamedTypeReference(
22324 s: *mut BNStructure,
22325 from: *mut BNNamedTypeReference,
22326 to: *mut BNNamedTypeReference,
22327 ) -> *mut BNStructure;
22328}
22329unsafe extern "C" {
22330 pub fn BNGetStructureBuilderMemberByName(
22331 s: *mut BNStructureBuilder,
22332 name: *const ::std::os::raw::c_char,
22333 ) -> *mut BNStructureMember;
22334}
22335unsafe extern "C" {
22336 pub fn BNGetStructureBuilderMemberAtOffset(
22337 s: *mut BNStructureBuilder,
22338 offset: i64,
22339 idx: *mut usize,
22340 ) -> *mut BNStructureMember;
22341}
22342unsafe extern "C" {
22343 pub fn BNGetStructureBuilderMembers(
22344 s: *mut BNStructureBuilder,
22345 count: *mut usize,
22346 ) -> *mut BNStructureMember;
22347}
22348unsafe extern "C" {
22349 pub fn BNGetStructureBuilderWidth(s: *mut BNStructureBuilder) -> u64;
22350}
22351unsafe extern "C" {
22352 pub fn BNSetStructureBuilderWidth(s: *mut BNStructureBuilder, width: u64);
22353}
22354unsafe extern "C" {
22355 pub fn BNGetStructureBuilderPointerOffset(s: *mut BNStructureBuilder) -> i64;
22356}
22357unsafe extern "C" {
22358 pub fn BNSetStructureBuilderPointerOffset(s: *mut BNStructureBuilder, offset: i64);
22359}
22360unsafe extern "C" {
22361 pub fn BNGetStructureBuilderAlignment(s: *mut BNStructureBuilder) -> usize;
22362}
22363unsafe extern "C" {
22364 pub fn BNSetStructureBuilderAlignment(s: *mut BNStructureBuilder, align: usize);
22365}
22366unsafe extern "C" {
22367 pub fn BNIsStructureBuilderPacked(s: *mut BNStructureBuilder) -> bool;
22368}
22369unsafe extern "C" {
22370 pub fn BNSetStructureBuilderPacked(s: *mut BNStructureBuilder, packed: bool);
22371}
22372unsafe extern "C" {
22373 pub fn BNIsStructureBuilderUnion(s: *mut BNStructureBuilder) -> bool;
22374}
22375unsafe extern "C" {
22376 pub fn BNSetStructureBuilderType(s: *mut BNStructureBuilder, type_: BNStructureVariant);
22377}
22378unsafe extern "C" {
22379 pub fn BNStructureBuilderPropagatesDataVariableReferences(s: *mut BNStructureBuilder) -> bool;
22380}
22381unsafe extern "C" {
22382 pub fn BNSetStructureBuilderPropagatesDataVariableReferences(
22383 s: *mut BNStructureBuilder,
22384 value: bool,
22385 );
22386}
22387unsafe extern "C" {
22388 pub fn BNGetStructureBuilderType(s: *mut BNStructureBuilder) -> BNStructureVariant;
22389}
22390unsafe extern "C" {
22391 pub fn BNGetBaseStructuresForStructureBuilder(
22392 s: *mut BNStructureBuilder,
22393 count: *mut usize,
22394 ) -> *mut BNBaseStructure;
22395}
22396unsafe extern "C" {
22397 pub fn BNSetBaseStructuresForStructureBuilder(
22398 s: *mut BNStructureBuilder,
22399 bases: *mut BNBaseStructure,
22400 count: usize,
22401 );
22402}
22403unsafe extern "C" {
22404 pub fn BNAddStructureBuilderMember(
22405 s: *mut BNStructureBuilder,
22406 type_: *const BNTypeWithConfidence,
22407 name: *const ::std::os::raw::c_char,
22408 access: BNMemberAccess,
22409 scope: BNMemberScope,
22410 );
22411}
22412unsafe extern "C" {
22413 pub fn BNAddStructureBuilderMemberAtOffset(
22414 s: *mut BNStructureBuilder,
22415 type_: *const BNTypeWithConfidence,
22416 name: *const ::std::os::raw::c_char,
22417 offset: u64,
22418 overwriteExisting: bool,
22419 access: BNMemberAccess,
22420 scope: BNMemberScope,
22421 bitPosition: u8,
22422 bitWidth: u8,
22423 );
22424}
22425unsafe extern "C" {
22426 pub fn BNRemoveStructureBuilderMember(s: *mut BNStructureBuilder, idx: usize);
22427}
22428unsafe extern "C" {
22429 pub fn BNReplaceStructureBuilderMember(
22430 s: *mut BNStructureBuilder,
22431 idx: usize,
22432 type_: *const BNTypeWithConfidence,
22433 name: *const ::std::os::raw::c_char,
22434 overwriteExisting: bool,
22435 );
22436}
22437unsafe extern "C" {
22438 pub fn BNCreateEnumerationBuilder() -> *mut BNEnumerationBuilder;
22439}
22440unsafe extern "C" {
22441 pub fn BNCreateEnumerationBuilderFromEnumeration(
22442 e: *mut BNEnumeration,
22443 ) -> *mut BNEnumerationBuilder;
22444}
22445unsafe extern "C" {
22446 pub fn BNDuplicateEnumerationBuilder(e: *mut BNEnumerationBuilder)
22447 -> *mut BNEnumerationBuilder;
22448}
22449unsafe extern "C" {
22450 pub fn BNFinalizeEnumerationBuilder(e: *mut BNEnumerationBuilder) -> *mut BNEnumeration;
22451}
22452unsafe extern "C" {
22453 pub fn BNNewEnumerationReference(e: *mut BNEnumeration) -> *mut BNEnumeration;
22454}
22455unsafe extern "C" {
22456 pub fn BNFreeEnumeration(e: *mut BNEnumeration);
22457}
22458unsafe extern "C" {
22459 pub fn BNFreeEnumerationBuilder(e: *mut BNEnumerationBuilder);
22460}
22461unsafe extern "C" {
22462 pub fn BNSetEnumerationBuilder(type_: *mut BNTypeBuilder, e: *mut BNEnumerationBuilder);
22463}
22464unsafe extern "C" {
22465 pub fn BNGetEnumerationMembers(
22466 e: *mut BNEnumeration,
22467 count: *mut usize,
22468 ) -> *mut BNEnumerationMember;
22469}
22470unsafe extern "C" {
22471 pub fn BNGetEnumerationTokensForValue(
22472 e: *mut BNEnumeration,
22473 value: u64,
22474 width: u64,
22475 count: *mut usize,
22476 type_: *mut BNType,
22477 ) -> *mut BNInstructionTextToken;
22478}
22479unsafe extern "C" {
22480 pub fn BNFreeEnumerationMemberList(members: *mut BNEnumerationMember, count: usize);
22481}
22482unsafe extern "C" {
22483 pub fn BNGetEnumerationBuilderMembers(
22484 e: *mut BNEnumerationBuilder,
22485 count: *mut usize,
22486 ) -> *mut BNEnumerationMember;
22487}
22488unsafe extern "C" {
22489 pub fn BNAddEnumerationBuilderMember(
22490 e: *mut BNEnumerationBuilder,
22491 name: *const ::std::os::raw::c_char,
22492 );
22493}
22494unsafe extern "C" {
22495 pub fn BNAddEnumerationBuilderMemberWithValue(
22496 e: *mut BNEnumerationBuilder,
22497 name: *const ::std::os::raw::c_char,
22498 value: u64,
22499 );
22500}
22501unsafe extern "C" {
22502 pub fn BNRemoveEnumerationBuilderMember(e: *mut BNEnumerationBuilder, idx: usize);
22503}
22504unsafe extern "C" {
22505 pub fn BNReplaceEnumerationBuilderMember(
22506 e: *mut BNEnumerationBuilder,
22507 idx: usize,
22508 name: *const ::std::os::raw::c_char,
22509 value: u64,
22510 );
22511}
22512unsafe extern "C" {
22513 pub fn BNCreateStructureFromOffsetAccess(
22514 view: *mut BNBinaryView,
22515 name: *mut BNQualifiedName,
22516 newMember: *mut bool,
22517 ) -> *mut BNStructure;
22518}
22519unsafe extern "C" {
22520 pub fn BNCreateStructureMemberFromAccess(
22521 view: *mut BNBinaryView,
22522 name: *mut BNQualifiedName,
22523 offset: u64,
22524 ) -> BNTypeWithConfidence;
22525}
22526unsafe extern "C" {
22527 pub fn BNAddExpressionParserMagicValue(
22528 view: *mut BNBinaryView,
22529 name: *const ::std::os::raw::c_char,
22530 value: u64,
22531 );
22532}
22533unsafe extern "C" {
22534 pub fn BNRemoveExpressionParserMagicValue(
22535 view: *mut BNBinaryView,
22536 name: *const ::std::os::raw::c_char,
22537 );
22538}
22539unsafe extern "C" {
22540 pub fn BNAddExpressionParserMagicValues(
22541 view: *mut BNBinaryView,
22542 names: *mut *const ::std::os::raw::c_char,
22543 values: *mut u64,
22544 count: usize,
22545 );
22546}
22547unsafe extern "C" {
22548 pub fn BNRemoveExpressionParserMagicValues(
22549 view: *mut BNBinaryView,
22550 names: *mut *const ::std::os::raw::c_char,
22551 count: usize,
22552 );
22553}
22554unsafe extern "C" {
22555 pub fn BNGetExpressionParserMagicValue(
22556 view: *mut BNBinaryView,
22557 name: *const ::std::os::raw::c_char,
22558 value: *mut u64,
22559 ) -> bool;
22560}
22561unsafe extern "C" {
22562 pub fn BNGetFunctionParentComponents(
22563 view: *mut BNBinaryView,
22564 func: *mut BNFunction,
22565 count: *mut usize,
22566 ) -> *mut *mut BNComponent;
22567}
22568unsafe extern "C" {
22569 pub fn BNGetDataVariableParentComponents(
22570 view: *mut BNBinaryView,
22571 dataVariable: u64,
22572 count: *mut usize,
22573 ) -> *mut *mut BNComponent;
22574}
22575unsafe extern "C" {
22576 pub fn BNCheckForStringAnnotationType(
22577 view: *mut BNBinaryView,
22578 addr: u64,
22579 value: *mut *mut ::std::os::raw::c_char,
22580 strType: *mut BNStringType,
22581 allowShortStrings: bool,
22582 allowLargeStrings: bool,
22583 childWidth: usize,
22584 ) -> bool;
22585}
22586unsafe extern "C" {
22587 pub fn BNLoadFilename(
22588 filename: *const ::std::os::raw::c_char,
22589 updateAnalysis: bool,
22590 options: *const ::std::os::raw::c_char,
22591 progress: BNProgressFunction,
22592 progressContext: *mut ::std::os::raw::c_void,
22593 ) -> *mut BNBinaryView;
22594}
22595unsafe extern "C" {
22596 pub fn BNLoadProjectFile(
22597 projectFile: *mut BNProjectFile,
22598 updateAnalysis: bool,
22599 options: *const ::std::os::raw::c_char,
22600 progress: BNProgressFunction,
22601 progressContext: *mut ::std::os::raw::c_void,
22602 ) -> *mut BNBinaryView;
22603}
22604unsafe extern "C" {
22605 pub fn BNLoadBinaryView(
22606 view: *mut BNBinaryView,
22607 updateAnalysis: bool,
22608 options: *const ::std::os::raw::c_char,
22609 progress: BNProgressFunction,
22610 progressContext: *mut ::std::os::raw::c_void,
22611 ) -> *mut BNBinaryView;
22612}
22613unsafe extern "C" {
22614 pub fn BNParseTextFormat(filename: *const ::std::os::raw::c_char) -> *mut BNBinaryView;
22615}
22616unsafe extern "C" {
22617 pub fn BNBinaryViewAddExternalLibrary(
22618 view: *mut BNBinaryView,
22619 name: *const ::std::os::raw::c_char,
22620 backingFile: *mut BNProjectFile,
22621 isAuto: bool,
22622 ) -> *mut BNExternalLibrary;
22623}
22624unsafe extern "C" {
22625 pub fn BNBinaryViewRemoveExternalLibrary(
22626 view: *mut BNBinaryView,
22627 name: *const ::std::os::raw::c_char,
22628 );
22629}
22630unsafe extern "C" {
22631 pub fn BNBinaryViewGetExternalLibrary(
22632 view: *mut BNBinaryView,
22633 name: *const ::std::os::raw::c_char,
22634 ) -> *mut BNExternalLibrary;
22635}
22636unsafe extern "C" {
22637 pub fn BNBinaryViewGetExternalLibraries(
22638 view: *mut BNBinaryView,
22639 count: *mut usize,
22640 ) -> *mut *mut BNExternalLibrary;
22641}
22642unsafe extern "C" {
22643 pub fn BNBinaryViewAddExternalLocation(
22644 view: *mut BNBinaryView,
22645 sourceSymbol: *mut BNSymbol,
22646 library: *mut BNExternalLibrary,
22647 targetSymbol: *const ::std::os::raw::c_char,
22648 targetAddress: *mut u64,
22649 isAuto: bool,
22650 ) -> *mut BNExternalLocation;
22651}
22652unsafe extern "C" {
22653 pub fn BNBinaryViewRemoveExternalLocation(view: *mut BNBinaryView, sourceSymbol: *mut BNSymbol);
22654}
22655unsafe extern "C" {
22656 pub fn BNBinaryViewGetExternalLocation(
22657 view: *mut BNBinaryView,
22658 sourceSymbol: *mut BNSymbol,
22659 ) -> *mut BNExternalLocation;
22660}
22661unsafe extern "C" {
22662 pub fn BNBinaryViewGetExternalLocations(
22663 view: *mut BNBinaryView,
22664 count: *mut usize,
22665 ) -> *mut *mut BNExternalLocation;
22666}
22667unsafe extern "C" {
22668 #[doc = " Source code processing"]
22669 pub fn BNPreprocessSource(
22670 source: *const ::std::os::raw::c_char,
22671 fileName: *const ::std::os::raw::c_char,
22672 output: *mut *mut ::std::os::raw::c_char,
22673 errors: *mut *mut ::std::os::raw::c_char,
22674 includeDirs: *mut *const ::std::os::raw::c_char,
22675 includeDirCount: usize,
22676 ) -> bool;
22677}
22678unsafe extern "C" {
22679 pub fn BNParseTypesFromSource(
22680 platform: *mut BNPlatform,
22681 source: *const ::std::os::raw::c_char,
22682 fileName: *const ::std::os::raw::c_char,
22683 result: *mut BNTypeParserResult,
22684 errors: *mut *mut ::std::os::raw::c_char,
22685 includeDirs: *mut *const ::std::os::raw::c_char,
22686 includeDirCount: usize,
22687 autoTypeSource: *const ::std::os::raw::c_char,
22688 ) -> bool;
22689}
22690unsafe extern "C" {
22691 pub fn BNParseTypesFromSourceFile(
22692 platform: *mut BNPlatform,
22693 fileName: *const ::std::os::raw::c_char,
22694 result: *mut BNTypeParserResult,
22695 errors: *mut *mut ::std::os::raw::c_char,
22696 includeDirs: *mut *const ::std::os::raw::c_char,
22697 includeDirCount: usize,
22698 autoTypeSource: *const ::std::os::raw::c_char,
22699 ) -> bool;
22700}
22701unsafe extern "C" {
22702 pub fn BNRegisterTypeParser(
22703 name: *const ::std::os::raw::c_char,
22704 callbacks: *mut BNTypeParserCallbacks,
22705 ) -> *mut BNTypeParser;
22706}
22707unsafe extern "C" {
22708 pub fn BNGetTypeParserList(count: *mut usize) -> *mut *mut BNTypeParser;
22709}
22710unsafe extern "C" {
22711 pub fn BNFreeTypeParserList(parsers: *mut *mut BNTypeParser);
22712}
22713unsafe extern "C" {
22714 pub fn BNGetTypeParserByName(name: *const ::std::os::raw::c_char) -> *mut BNTypeParser;
22715}
22716unsafe extern "C" {
22717 pub fn BNGetDefaultTypeParser() -> *mut BNTypeParser;
22718}
22719unsafe extern "C" {
22720 pub fn BNGetTypeParserName(parser: *mut BNTypeParser) -> *mut ::std::os::raw::c_char;
22721}
22722unsafe extern "C" {
22723 pub fn BNGetTypeParserOptionText(
22724 parser: *mut BNTypeParser,
22725 option: BNTypeParserOption,
22726 value: *const ::std::os::raw::c_char,
22727 result: *mut *mut ::std::os::raw::c_char,
22728 ) -> bool;
22729}
22730unsafe extern "C" {
22731 pub fn BNTypeParserPreprocessSource(
22732 parser: *mut BNTypeParser,
22733 source: *const ::std::os::raw::c_char,
22734 fileName: *const ::std::os::raw::c_char,
22735 platform: *mut BNPlatform,
22736 existingTypes: *mut BNTypeContainer,
22737 options: *const *const ::std::os::raw::c_char,
22738 optionCount: usize,
22739 includeDirs: *const *const ::std::os::raw::c_char,
22740 includeDirCount: usize,
22741 output: *mut *mut ::std::os::raw::c_char,
22742 errors: *mut *mut BNTypeParserError,
22743 errorCount: *mut usize,
22744 ) -> bool;
22745}
22746unsafe extern "C" {
22747 pub fn BNTypeParserParseTypesFromSource(
22748 parser: *mut BNTypeParser,
22749 source: *const ::std::os::raw::c_char,
22750 fileName: *const ::std::os::raw::c_char,
22751 platform: *mut BNPlatform,
22752 existingTypes: *mut BNTypeContainer,
22753 options: *const *const ::std::os::raw::c_char,
22754 optionCount: usize,
22755 includeDirs: *const *const ::std::os::raw::c_char,
22756 includeDirCount: usize,
22757 autoTypeSource: *const ::std::os::raw::c_char,
22758 result: *mut BNTypeParserResult,
22759 errors: *mut *mut BNTypeParserError,
22760 errorCount: *mut usize,
22761 ) -> bool;
22762}
22763unsafe extern "C" {
22764 pub fn BNTypeParserParseTypeString(
22765 parser: *mut BNTypeParser,
22766 source: *const ::std::os::raw::c_char,
22767 platform: *mut BNPlatform,
22768 existingTypes: *mut BNTypeContainer,
22769 result: *mut BNQualifiedNameAndType,
22770 errors: *mut *mut BNTypeParserError,
22771 errorCount: *mut usize,
22772 ) -> bool;
22773}
22774unsafe extern "C" {
22775 pub fn BNParseTypeParserOptionsText(
22776 optionsText: *const ::std::os::raw::c_char,
22777 count: *mut usize,
22778 ) -> *mut *mut ::std::os::raw::c_char;
22779}
22780unsafe extern "C" {
22781 pub fn BNFormatTypeParserParseErrors(
22782 errors: *mut BNTypeParserError,
22783 count: usize,
22784 ) -> *mut ::std::os::raw::c_char;
22785}
22786unsafe extern "C" {
22787 pub fn BNRegisterTypePrinter(
22788 name: *const ::std::os::raw::c_char,
22789 callbacks: *mut BNTypePrinterCallbacks,
22790 ) -> *mut BNTypePrinter;
22791}
22792unsafe extern "C" {
22793 pub fn BNGetTypePrinterList(count: *mut usize) -> *mut *mut BNTypePrinter;
22794}
22795unsafe extern "C" {
22796 pub fn BNFreeTypePrinterList(printers: *mut *mut BNTypePrinter);
22797}
22798unsafe extern "C" {
22799 pub fn BNGetTypePrinterByName(name: *const ::std::os::raw::c_char) -> *mut BNTypePrinter;
22800}
22801unsafe extern "C" {
22802 pub fn BNGetTypePrinterName(printer: *mut BNTypePrinter) -> *mut ::std::os::raw::c_char;
22803}
22804unsafe extern "C" {
22805 pub fn BNGetTypePrinterTypeTokens(
22806 printer: *mut BNTypePrinter,
22807 type_: *mut BNType,
22808 platform: *mut BNPlatform,
22809 name: *mut BNQualifiedName,
22810 baseConfidence: u8,
22811 escaping: BNTokenEscapingType,
22812 result: *mut *mut BNInstructionTextToken,
22813 resultCount: *mut usize,
22814 ) -> bool;
22815}
22816unsafe extern "C" {
22817 pub fn BNGetTypePrinterTypeTokensBeforeName(
22818 printer: *mut BNTypePrinter,
22819 type_: *mut BNType,
22820 platform: *mut BNPlatform,
22821 baseConfidence: u8,
22822 parentType: *mut BNType,
22823 escaping: BNTokenEscapingType,
22824 result: *mut *mut BNInstructionTextToken,
22825 resultCount: *mut usize,
22826 ) -> bool;
22827}
22828unsafe extern "C" {
22829 pub fn BNGetTypePrinterTypeTokensAfterName(
22830 printer: *mut BNTypePrinter,
22831 type_: *mut BNType,
22832 platform: *mut BNPlatform,
22833 baseConfidence: u8,
22834 parentType: *mut BNType,
22835 escaping: BNTokenEscapingType,
22836 result: *mut *mut BNInstructionTextToken,
22837 resultCount: *mut usize,
22838 ) -> bool;
22839}
22840unsafe extern "C" {
22841 pub fn BNGetTypePrinterTypeString(
22842 printer: *mut BNTypePrinter,
22843 type_: *mut BNType,
22844 platform: *mut BNPlatform,
22845 name: *mut BNQualifiedName,
22846 escaping: BNTokenEscapingType,
22847 result: *mut *mut ::std::os::raw::c_char,
22848 ) -> bool;
22849}
22850unsafe extern "C" {
22851 pub fn BNGetTypePrinterTypeStringBeforeName(
22852 printer: *mut BNTypePrinter,
22853 type_: *mut BNType,
22854 platform: *mut BNPlatform,
22855 escaping: BNTokenEscapingType,
22856 result: *mut *mut ::std::os::raw::c_char,
22857 ) -> bool;
22858}
22859unsafe extern "C" {
22860 pub fn BNGetTypePrinterTypeStringAfterName(
22861 printer: *mut BNTypePrinter,
22862 type_: *mut BNType,
22863 platform: *mut BNPlatform,
22864 escaping: BNTokenEscapingType,
22865 result: *mut *mut ::std::os::raw::c_char,
22866 ) -> bool;
22867}
22868unsafe extern "C" {
22869 pub fn BNGetTypePrinterTypeLines(
22870 printer: *mut BNTypePrinter,
22871 type_: *mut BNType,
22872 types: *mut BNTypeContainer,
22873 name: *mut BNQualifiedName,
22874 paddingCols: ::std::os::raw::c_int,
22875 collapsed: bool,
22876 escaping: BNTokenEscapingType,
22877 result: *mut *mut BNTypeDefinitionLine,
22878 resultCount: *mut usize,
22879 ) -> bool;
22880}
22881unsafe extern "C" {
22882 pub fn BNTypePrinterPrintAllTypes(
22883 printer: *mut BNTypePrinter,
22884 names: *mut BNQualifiedName,
22885 types: *mut *mut BNType,
22886 typeCount: usize,
22887 data: *mut BNBinaryView,
22888 paddingCols: ::std::os::raw::c_int,
22889 escaping: BNTokenEscapingType,
22890 result: *mut *mut ::std::os::raw::c_char,
22891 ) -> bool;
22892}
22893unsafe extern "C" {
22894 pub fn BNTypePrinterDefaultPrintAllTypes(
22895 printer: *mut BNTypePrinter,
22896 names: *mut BNQualifiedName,
22897 types: *mut *mut BNType,
22898 typeCount: usize,
22899 data: *mut BNBinaryView,
22900 paddingCols: ::std::os::raw::c_int,
22901 escaping: BNTokenEscapingType,
22902 result: *mut *mut ::std::os::raw::c_char,
22903 ) -> bool;
22904}
22905unsafe extern "C" {
22906 pub fn BNFreeTypeParserResult(result: *mut BNTypeParserResult);
22907}
22908unsafe extern "C" {
22909 pub fn BNFreeTypeParserErrors(errors: *mut BNTypeParserError, count: usize);
22910}
22911unsafe extern "C" {
22912 #[doc = " Updates"]
22913 pub fn BNGetUpdateChannels(
22914 count: *mut usize,
22915 errors: *mut *mut ::std::os::raw::c_char,
22916 ) -> *mut BNUpdateChannel;
22917}
22918unsafe extern "C" {
22919 pub fn BNFreeUpdateChannelList(list: *mut BNUpdateChannel, count: usize);
22920}
22921unsafe extern "C" {
22922 pub fn BNGetUpdateChannelVersions(
22923 channel: *const ::std::os::raw::c_char,
22924 count: *mut usize,
22925 errors: *mut *mut ::std::os::raw::c_char,
22926 ) -> *mut BNUpdateVersion;
22927}
22928unsafe extern "C" {
22929 pub fn BNFreeUpdateChannelVersionList(list: *mut BNUpdateVersion, count: usize);
22930}
22931unsafe extern "C" {
22932 pub fn BNGetFullInfoUpdateChannels(
22933 count: *mut usize,
22934 errors: *mut *mut ::std::os::raw::c_char,
22935 ) -> *mut BNUpdateChannelFullInfo;
22936}
22937unsafe extern "C" {
22938 pub fn BNFreeFullInfoUpdateChannels(list: *mut BNUpdateChannelFullInfo, count: usize);
22939}
22940unsafe extern "C" {
22941 pub fn BNAreUpdatesAvailable(
22942 channel: *const ::std::os::raw::c_char,
22943 expireTime: *mut u64,
22944 serverTime: *mut u64,
22945 errors: *mut *mut ::std::os::raw::c_char,
22946 ) -> bool;
22947}
22948unsafe extern "C" {
22949 pub fn BNUpdateToVersion(
22950 channel: *const ::std::os::raw::c_char,
22951 version: *const ::std::os::raw::c_char,
22952 errors: *mut *mut ::std::os::raw::c_char,
22953 progress: BNProgressFunction,
22954 context: *mut ::std::os::raw::c_void,
22955 ) -> BNUpdateResult;
22956}
22957unsafe extern "C" {
22958 pub fn BNUpdateToLatestVersion(
22959 channel: *const ::std::os::raw::c_char,
22960 errors: *mut *mut ::std::os::raw::c_char,
22961 progress: BNProgressFunction,
22962 context: *mut ::std::os::raw::c_void,
22963 ) -> BNUpdateResult;
22964}
22965unsafe extern "C" {
22966 pub fn BNAreAutoUpdatesEnabled() -> bool;
22967}
22968unsafe extern "C" {
22969 pub fn BNSetAutoUpdatesEnabled(enabled: bool);
22970}
22971unsafe extern "C" {
22972 pub fn BNGetTimeSinceLastUpdateCheck() -> u64;
22973}
22974unsafe extern "C" {
22975 pub fn BNUpdatesChecked();
22976}
22977unsafe extern "C" {
22978 pub fn BNGetActiveUpdateChannel() -> *mut ::std::os::raw::c_char;
22979}
22980unsafe extern "C" {
22981 pub fn BNSetActiveUpdateChannel(channel: *const ::std::os::raw::c_char);
22982}
22983unsafe extern "C" {
22984 pub fn BNIsUpdateInstallationPending() -> bool;
22985}
22986unsafe extern "C" {
22987 pub fn BNInstallPendingUpdate(errors: *mut *mut ::std::os::raw::c_char);
22988}
22989unsafe extern "C" {
22990 #[doc = " Plugin commands"]
22991 pub fn BNRegisterPluginCommandGlobal(
22992 name: *const ::std::os::raw::c_char,
22993 description: *const ::std::os::raw::c_char,
22994 action: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
22995 isValid: ::std::option::Option<
22996 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool,
22997 >,
22998 context: *mut ::std::os::raw::c_void,
22999 );
23000}
23001unsafe extern "C" {
23002 pub fn BNRegisterPluginCommand(
23003 name: *const ::std::os::raw::c_char,
23004 description: *const ::std::os::raw::c_char,
23005 action: ::std::option::Option<
23006 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, view: *mut BNBinaryView),
23007 >,
23008 isValid: ::std::option::Option<
23009 unsafe extern "C" fn(
23010 ctxt: *mut ::std::os::raw::c_void,
23011 view: *mut BNBinaryView,
23012 ) -> bool,
23013 >,
23014 context: *mut ::std::os::raw::c_void,
23015 );
23016}
23017unsafe extern "C" {
23018 pub fn BNRegisterPluginCommandForAddress(
23019 name: *const ::std::os::raw::c_char,
23020 description: *const ::std::os::raw::c_char,
23021 action: ::std::option::Option<
23022 unsafe extern "C" fn(
23023 ctxt: *mut ::std::os::raw::c_void,
23024 view: *mut BNBinaryView,
23025 addr: u64,
23026 ),
23027 >,
23028 isValid: ::std::option::Option<
23029 unsafe extern "C" fn(
23030 ctxt: *mut ::std::os::raw::c_void,
23031 view: *mut BNBinaryView,
23032 addr: u64,
23033 ) -> bool,
23034 >,
23035 context: *mut ::std::os::raw::c_void,
23036 );
23037}
23038unsafe extern "C" {
23039 pub fn BNRegisterPluginCommandForRange(
23040 name: *const ::std::os::raw::c_char,
23041 description: *const ::std::os::raw::c_char,
23042 action: ::std::option::Option<
23043 unsafe extern "C" fn(
23044 ctxt: *mut ::std::os::raw::c_void,
23045 view: *mut BNBinaryView,
23046 addr: u64,
23047 len: u64,
23048 ),
23049 >,
23050 isValid: ::std::option::Option<
23051 unsafe extern "C" fn(
23052 ctxt: *mut ::std::os::raw::c_void,
23053 view: *mut BNBinaryView,
23054 addr: u64,
23055 len: u64,
23056 ) -> bool,
23057 >,
23058 context: *mut ::std::os::raw::c_void,
23059 );
23060}
23061unsafe extern "C" {
23062 pub fn BNRegisterPluginCommandForFunction(
23063 name: *const ::std::os::raw::c_char,
23064 description: *const ::std::os::raw::c_char,
23065 action: ::std::option::Option<
23066 unsafe extern "C" fn(
23067 ctxt: *mut ::std::os::raw::c_void,
23068 view: *mut BNBinaryView,
23069 func: *mut BNFunction,
23070 ),
23071 >,
23072 isValid: ::std::option::Option<
23073 unsafe extern "C" fn(
23074 ctxt: *mut ::std::os::raw::c_void,
23075 view: *mut BNBinaryView,
23076 func: *mut BNFunction,
23077 ) -> bool,
23078 >,
23079 context: *mut ::std::os::raw::c_void,
23080 );
23081}
23082unsafe extern "C" {
23083 pub fn BNRegisterPluginCommandForLowLevelILFunction(
23084 name: *const ::std::os::raw::c_char,
23085 description: *const ::std::os::raw::c_char,
23086 action: ::std::option::Option<
23087 unsafe extern "C" fn(
23088 ctxt: *mut ::std::os::raw::c_void,
23089 view: *mut BNBinaryView,
23090 func: *mut BNLowLevelILFunction,
23091 ),
23092 >,
23093 isValid: ::std::option::Option<
23094 unsafe extern "C" fn(
23095 ctxt: *mut ::std::os::raw::c_void,
23096 view: *mut BNBinaryView,
23097 func: *mut BNLowLevelILFunction,
23098 ) -> bool,
23099 >,
23100 context: *mut ::std::os::raw::c_void,
23101 );
23102}
23103unsafe extern "C" {
23104 pub fn BNRegisterPluginCommandForLowLevelILInstruction(
23105 name: *const ::std::os::raw::c_char,
23106 description: *const ::std::os::raw::c_char,
23107 action: ::std::option::Option<
23108 unsafe extern "C" fn(
23109 ctxt: *mut ::std::os::raw::c_void,
23110 view: *mut BNBinaryView,
23111 func: *mut BNLowLevelILFunction,
23112 instr: usize,
23113 ),
23114 >,
23115 isValid: ::std::option::Option<
23116 unsafe extern "C" fn(
23117 ctxt: *mut ::std::os::raw::c_void,
23118 view: *mut BNBinaryView,
23119 func: *mut BNLowLevelILFunction,
23120 instr: usize,
23121 ) -> bool,
23122 >,
23123 context: *mut ::std::os::raw::c_void,
23124 );
23125}
23126unsafe extern "C" {
23127 pub fn BNRegisterPluginCommandForMediumLevelILFunction(
23128 name: *const ::std::os::raw::c_char,
23129 description: *const ::std::os::raw::c_char,
23130 action: ::std::option::Option<
23131 unsafe extern "C" fn(
23132 ctxt: *mut ::std::os::raw::c_void,
23133 view: *mut BNBinaryView,
23134 func: *mut BNMediumLevelILFunction,
23135 ),
23136 >,
23137 isValid: ::std::option::Option<
23138 unsafe extern "C" fn(
23139 ctxt: *mut ::std::os::raw::c_void,
23140 view: *mut BNBinaryView,
23141 func: *mut BNMediumLevelILFunction,
23142 ) -> bool,
23143 >,
23144 context: *mut ::std::os::raw::c_void,
23145 );
23146}
23147unsafe extern "C" {
23148 pub fn BNRegisterPluginCommandForMediumLevelILInstruction(
23149 name: *const ::std::os::raw::c_char,
23150 description: *const ::std::os::raw::c_char,
23151 action: ::std::option::Option<
23152 unsafe extern "C" fn(
23153 ctxt: *mut ::std::os::raw::c_void,
23154 view: *mut BNBinaryView,
23155 func: *mut BNMediumLevelILFunction,
23156 instr: usize,
23157 ),
23158 >,
23159 isValid: ::std::option::Option<
23160 unsafe extern "C" fn(
23161 ctxt: *mut ::std::os::raw::c_void,
23162 view: *mut BNBinaryView,
23163 func: *mut BNMediumLevelILFunction,
23164 instr: usize,
23165 ) -> bool,
23166 >,
23167 context: *mut ::std::os::raw::c_void,
23168 );
23169}
23170unsafe extern "C" {
23171 pub fn BNRegisterPluginCommandForHighLevelILFunction(
23172 name: *const ::std::os::raw::c_char,
23173 description: *const ::std::os::raw::c_char,
23174 action: ::std::option::Option<
23175 unsafe extern "C" fn(
23176 ctxt: *mut ::std::os::raw::c_void,
23177 view: *mut BNBinaryView,
23178 func: *mut BNHighLevelILFunction,
23179 ),
23180 >,
23181 isValid: ::std::option::Option<
23182 unsafe extern "C" fn(
23183 ctxt: *mut ::std::os::raw::c_void,
23184 view: *mut BNBinaryView,
23185 func: *mut BNHighLevelILFunction,
23186 ) -> bool,
23187 >,
23188 context: *mut ::std::os::raw::c_void,
23189 );
23190}
23191unsafe extern "C" {
23192 pub fn BNRegisterPluginCommandForHighLevelILInstruction(
23193 name: *const ::std::os::raw::c_char,
23194 description: *const ::std::os::raw::c_char,
23195 action: ::std::option::Option<
23196 unsafe extern "C" fn(
23197 ctxt: *mut ::std::os::raw::c_void,
23198 view: *mut BNBinaryView,
23199 func: *mut BNHighLevelILFunction,
23200 instr: usize,
23201 ),
23202 >,
23203 isValid: ::std::option::Option<
23204 unsafe extern "C" fn(
23205 ctxt: *mut ::std::os::raw::c_void,
23206 view: *mut BNBinaryView,
23207 func: *mut BNHighLevelILFunction,
23208 instr: usize,
23209 ) -> bool,
23210 >,
23211 context: *mut ::std::os::raw::c_void,
23212 );
23213}
23214unsafe extern "C" {
23215 pub fn BNRegisterPluginCommandForProject(
23216 name: *const ::std::os::raw::c_char,
23217 description: *const ::std::os::raw::c_char,
23218 action: ::std::option::Option<
23219 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, project: *mut BNProject),
23220 >,
23221 isValid: ::std::option::Option<
23222 unsafe extern "C" fn(
23223 ctxt: *mut ::std::os::raw::c_void,
23224 project: *mut BNProject,
23225 ) -> bool,
23226 >,
23227 context: *mut ::std::os::raw::c_void,
23228 );
23229}
23230unsafe extern "C" {
23231 pub fn BNGetAllPluginCommands(count: *mut usize) -> *mut BNPluginCommand;
23232}
23233unsafe extern "C" {
23234 pub fn BNGetValidPluginCommandsGlobal(count: *mut usize) -> *mut BNPluginCommand;
23235}
23236unsafe extern "C" {
23237 pub fn BNGetValidPluginCommands(
23238 view: *mut BNBinaryView,
23239 count: *mut usize,
23240 ) -> *mut BNPluginCommand;
23241}
23242unsafe extern "C" {
23243 pub fn BNGetValidPluginCommandsForAddress(
23244 view: *mut BNBinaryView,
23245 addr: u64,
23246 count: *mut usize,
23247 ) -> *mut BNPluginCommand;
23248}
23249unsafe extern "C" {
23250 pub fn BNGetValidPluginCommandsForRange(
23251 view: *mut BNBinaryView,
23252 addr: u64,
23253 len: u64,
23254 count: *mut usize,
23255 ) -> *mut BNPluginCommand;
23256}
23257unsafe extern "C" {
23258 pub fn BNGetValidPluginCommandsForFunction(
23259 view: *mut BNBinaryView,
23260 func: *mut BNFunction,
23261 count: *mut usize,
23262 ) -> *mut BNPluginCommand;
23263}
23264unsafe extern "C" {
23265 pub fn BNGetValidPluginCommandsForLowLevelILFunction(
23266 view: *mut BNBinaryView,
23267 func: *mut BNLowLevelILFunction,
23268 count: *mut usize,
23269 ) -> *mut BNPluginCommand;
23270}
23271unsafe extern "C" {
23272 pub fn BNGetValidPluginCommandsForLowLevelILInstruction(
23273 view: *mut BNBinaryView,
23274 func: *mut BNLowLevelILFunction,
23275 instr: usize,
23276 count: *mut usize,
23277 ) -> *mut BNPluginCommand;
23278}
23279unsafe extern "C" {
23280 pub fn BNGetValidPluginCommandsForMediumLevelILFunction(
23281 view: *mut BNBinaryView,
23282 func: *mut BNMediumLevelILFunction,
23283 count: *mut usize,
23284 ) -> *mut BNPluginCommand;
23285}
23286unsafe extern "C" {
23287 pub fn BNGetValidPluginCommandsForMediumLevelILInstruction(
23288 view: *mut BNBinaryView,
23289 func: *mut BNMediumLevelILFunction,
23290 instr: usize,
23291 count: *mut usize,
23292 ) -> *mut BNPluginCommand;
23293}
23294unsafe extern "C" {
23295 pub fn BNGetValidPluginCommandsForHighLevelILFunction(
23296 view: *mut BNBinaryView,
23297 func: *mut BNHighLevelILFunction,
23298 count: *mut usize,
23299 ) -> *mut BNPluginCommand;
23300}
23301unsafe extern "C" {
23302 pub fn BNGetValidPluginCommandsForHighLevelILInstruction(
23303 view: *mut BNBinaryView,
23304 func: *mut BNHighLevelILFunction,
23305 instr: usize,
23306 count: *mut usize,
23307 ) -> *mut BNPluginCommand;
23308}
23309unsafe extern "C" {
23310 pub fn BNGetValidPluginCommandsForProject(
23311 project: *mut BNProject,
23312 count: *mut usize,
23313 ) -> *mut BNPluginCommand;
23314}
23315unsafe extern "C" {
23316 pub fn BNFreePluginCommandList(commands: *mut BNPluginCommand);
23317}
23318unsafe extern "C" {
23319 #[doc = " Calling conventions"]
23320 pub fn BNCreateCallingConvention(
23321 arch: *mut BNArchitecture,
23322 name: *const ::std::os::raw::c_char,
23323 cc: *mut BNCustomCallingConvention,
23324 ) -> *mut BNCallingConvention;
23325}
23326unsafe extern "C" {
23327 pub fn BNRegisterCallingConvention(arch: *mut BNArchitecture, cc: *mut BNCallingConvention);
23328}
23329unsafe extern "C" {
23330 pub fn BNNewCallingConventionReference(
23331 cc: *mut BNCallingConvention,
23332 ) -> *mut BNCallingConvention;
23333}
23334unsafe extern "C" {
23335 pub fn BNFreeCallingConvention(cc: *mut BNCallingConvention);
23336}
23337unsafe extern "C" {
23338 pub fn BNGetArchitectureCallingConventions(
23339 arch: *mut BNArchitecture,
23340 count: *mut usize,
23341 ) -> *mut *mut BNCallingConvention;
23342}
23343unsafe extern "C" {
23344 pub fn BNFreeCallingConventionList(list: *mut *mut BNCallingConvention, count: usize);
23345}
23346unsafe extern "C" {
23347 pub fn BNGetArchitectureCallingConventionByName(
23348 arch: *mut BNArchitecture,
23349 name: *const ::std::os::raw::c_char,
23350 ) -> *mut BNCallingConvention;
23351}
23352unsafe extern "C" {
23353 pub fn BNGetCallingConventionArchitecture(cc: *mut BNCallingConvention) -> *mut BNArchitecture;
23354}
23355unsafe extern "C" {
23356 pub fn BNGetCallingConventionName(cc: *mut BNCallingConvention) -> *mut ::std::os::raw::c_char;
23357}
23358unsafe extern "C" {
23359 pub fn BNGetCallerSavedRegisters(cc: *mut BNCallingConvention, count: *mut usize) -> *mut u32;
23360}
23361unsafe extern "C" {
23362 pub fn BNGetCalleeSavedRegisters(cc: *mut BNCallingConvention, count: *mut usize) -> *mut u32;
23363}
23364unsafe extern "C" {
23365 pub fn BNGetIntegerArgumentRegisters(
23366 cc: *mut BNCallingConvention,
23367 count: *mut usize,
23368 ) -> *mut u32;
23369}
23370unsafe extern "C" {
23371 pub fn BNGetFloatArgumentRegisters(cc: *mut BNCallingConvention, count: *mut usize)
23372 -> *mut u32;
23373}
23374unsafe extern "C" {
23375 pub fn BNGetRequiredArgumentRegisters(
23376 cc: *mut BNCallingConvention,
23377 count: *mut usize,
23378 ) -> *mut u32;
23379}
23380unsafe extern "C" {
23381 pub fn BNGetRequiredClobberedRegisters(
23382 cc: *mut BNCallingConvention,
23383 count: *mut usize,
23384 ) -> *mut u32;
23385}
23386unsafe extern "C" {
23387 pub fn BNAreArgumentRegistersSharedIndex(cc: *mut BNCallingConvention) -> bool;
23388}
23389unsafe extern "C" {
23390 pub fn BNAreArgumentRegistersUsedForVarArgs(cc: *mut BNCallingConvention) -> bool;
23391}
23392unsafe extern "C" {
23393 pub fn BNIsStackReservedForArgumentRegisters(cc: *mut BNCallingConvention) -> bool;
23394}
23395unsafe extern "C" {
23396 pub fn BNIsStackAdjustedOnReturn(cc: *mut BNCallingConvention) -> bool;
23397}
23398unsafe extern "C" {
23399 pub fn BNIsEligibleForHeuristics(cc: *mut BNCallingConvention) -> bool;
23400}
23401unsafe extern "C" {
23402 pub fn BNGetIntegerReturnValueRegister(cc: *mut BNCallingConvention) -> u32;
23403}
23404unsafe extern "C" {
23405 pub fn BNGetHighIntegerReturnValueRegister(cc: *mut BNCallingConvention) -> u32;
23406}
23407unsafe extern "C" {
23408 pub fn BNGetFloatReturnValueRegister(cc: *mut BNCallingConvention) -> u32;
23409}
23410unsafe extern "C" {
23411 pub fn BNGetGlobalPointerRegister(cc: *mut BNCallingConvention) -> u32;
23412}
23413unsafe extern "C" {
23414 pub fn BNGetImplicitlyDefinedRegisters(
23415 cc: *mut BNCallingConvention,
23416 count: *mut usize,
23417 ) -> *mut u32;
23418}
23419unsafe extern "C" {
23420 pub fn BNGetIncomingRegisterValue(
23421 cc: *mut BNCallingConvention,
23422 reg: u32,
23423 func: *mut BNFunction,
23424 ) -> BNRegisterValue;
23425}
23426unsafe extern "C" {
23427 pub fn BNGetIncomingFlagValue(
23428 cc: *mut BNCallingConvention,
23429 reg: u32,
23430 func: *mut BNFunction,
23431 ) -> BNRegisterValue;
23432}
23433unsafe extern "C" {
23434 pub fn BNGetVariablesForParametersDefaultPermittedArgs(
23435 cc: *mut BNCallingConvention,
23436 params: *const BNFunctionParameter,
23437 paramCount: usize,
23438 count: *mut usize,
23439 ) -> *mut BNVariable;
23440}
23441unsafe extern "C" {
23442 pub fn BNGetVariablesForParameters(
23443 cc: *mut BNCallingConvention,
23444 params: *const BNFunctionParameter,
23445 paramCount: usize,
23446 permittedArgs: *const u32,
23447 permittedArgCount: usize,
23448 count: *mut usize,
23449 ) -> *mut BNVariable;
23450}
23451unsafe extern "C" {
23452 pub fn BNGetParameterOrderingForVariables(
23453 cc: *mut BNCallingConvention,
23454 paramVars: *const BNVariable,
23455 paramTypes: *mut *const BNType,
23456 paramCount: usize,
23457 count: *mut usize,
23458 ) -> *mut BNVariable;
23459}
23460unsafe extern "C" {
23461 pub fn BNGetStackAdjustmentForVariables(
23462 cc: *mut BNCallingConvention,
23463 paramVars: *const BNVariable,
23464 paramTypes: *mut *const BNType,
23465 paramCount: usize,
23466 ) -> i64;
23467}
23468unsafe extern "C" {
23469 pub fn BNGetRegisterStackAdjustments(
23470 cc: *mut BNCallingConvention,
23471 returnRegs: *const u32,
23472 returnRegCount: usize,
23473 returnType: *mut BNType,
23474 params: *const BNVariable,
23475 paramCount: usize,
23476 types: *mut *const BNType,
23477 typeCount: usize,
23478 resultRegisters: *mut *mut u32,
23479 resultAdjustments: *mut *mut u32,
23480 ) -> usize;
23481}
23482unsafe extern "C" {
23483 pub fn BNGetIncomingVariableForParameterVariable(
23484 cc: *mut BNCallingConvention,
23485 var: *const BNVariable,
23486 func: *mut BNFunction,
23487 ) -> BNVariable;
23488}
23489unsafe extern "C" {
23490 pub fn BNGetParameterVariableForIncomingVariable(
23491 cc: *mut BNCallingConvention,
23492 var: *const BNVariable,
23493 func: *mut BNFunction,
23494 ) -> BNVariable;
23495}
23496unsafe extern "C" {
23497 pub fn BNGetDefaultIncomingVariableForParameterVariable(
23498 cc: *mut BNCallingConvention,
23499 var: *const BNVariable,
23500 ) -> BNVariable;
23501}
23502unsafe extern "C" {
23503 pub fn BNGetDefaultParameterVariableForIncomingVariable(
23504 cc: *mut BNCallingConvention,
23505 var: *const BNVariable,
23506 ) -> BNVariable;
23507}
23508unsafe extern "C" {
23509 pub fn BNGetArchitectureDefaultCallingConvention(
23510 arch: *mut BNArchitecture,
23511 ) -> *mut BNCallingConvention;
23512}
23513unsafe extern "C" {
23514 pub fn BNGetArchitectureCdeclCallingConvention(
23515 arch: *mut BNArchitecture,
23516 ) -> *mut BNCallingConvention;
23517}
23518unsafe extern "C" {
23519 pub fn BNGetArchitectureStdcallCallingConvention(
23520 arch: *mut BNArchitecture,
23521 ) -> *mut BNCallingConvention;
23522}
23523unsafe extern "C" {
23524 pub fn BNGetArchitectureFastcallCallingConvention(
23525 arch: *mut BNArchitecture,
23526 ) -> *mut BNCallingConvention;
23527}
23528unsafe extern "C" {
23529 pub fn BNSetArchitectureDefaultCallingConvention(
23530 arch: *mut BNArchitecture,
23531 cc: *mut BNCallingConvention,
23532 );
23533}
23534unsafe extern "C" {
23535 pub fn BNSetArchitectureCdeclCallingConvention(
23536 arch: *mut BNArchitecture,
23537 cc: *mut BNCallingConvention,
23538 );
23539}
23540unsafe extern "C" {
23541 pub fn BNSetArchitectureStdcallCallingConvention(
23542 arch: *mut BNArchitecture,
23543 cc: *mut BNCallingConvention,
23544 );
23545}
23546unsafe extern "C" {
23547 pub fn BNSetArchitectureFastcallCallingConvention(
23548 arch: *mut BNArchitecture,
23549 cc: *mut BNCallingConvention,
23550 );
23551}
23552unsafe extern "C" {
23553 #[doc = " Platforms"]
23554 pub fn BNCreatePlatform(
23555 arch: *mut BNArchitecture,
23556 name: *const ::std::os::raw::c_char,
23557 ) -> *mut BNPlatform;
23558}
23559unsafe extern "C" {
23560 pub fn BNCreatePlatformWithTypes(
23561 arch: *mut BNArchitecture,
23562 name: *const ::std::os::raw::c_char,
23563 typeFile: *const ::std::os::raw::c_char,
23564 includeDirs: *mut *const ::std::os::raw::c_char,
23565 includeDirCount: usize,
23566 ) -> *mut BNPlatform;
23567}
23568unsafe extern "C" {
23569 pub fn BNCreateCustomPlatform(
23570 arch: *mut BNArchitecture,
23571 name: *const ::std::os::raw::c_char,
23572 impl_: *mut BNCustomPlatform,
23573 ) -> *mut BNPlatform;
23574}
23575unsafe extern "C" {
23576 pub fn BNCreateCustomPlatformWithTypes(
23577 arch: *mut BNArchitecture,
23578 name: *const ::std::os::raw::c_char,
23579 impl_: *mut BNCustomPlatform,
23580 typeFile: *const ::std::os::raw::c_char,
23581 includeDirs: *mut *const ::std::os::raw::c_char,
23582 includeDirCount: usize,
23583 ) -> *mut BNPlatform;
23584}
23585unsafe extern "C" {
23586 pub fn BNRegisterPlatform(os: *const ::std::os::raw::c_char, platform: *mut BNPlatform);
23587}
23588unsafe extern "C" {
23589 pub fn BNNewPlatformReference(platform: *mut BNPlatform) -> *mut BNPlatform;
23590}
23591unsafe extern "C" {
23592 pub fn BNFreePlatform(platform: *mut BNPlatform);
23593}
23594unsafe extern "C" {
23595 pub fn BNGetPlatformName(platform: *mut BNPlatform) -> *mut ::std::os::raw::c_char;
23596}
23597unsafe extern "C" {
23598 pub fn BNGetPlatformArchitecture(platform: *mut BNPlatform) -> *mut BNArchitecture;
23599}
23600unsafe extern "C" {
23601 pub fn BNGetPlatformByName(name: *const ::std::os::raw::c_char) -> *mut BNPlatform;
23602}
23603unsafe extern "C" {
23604 pub fn BNGetPlatformList(count: *mut usize) -> *mut *mut BNPlatform;
23605}
23606unsafe extern "C" {
23607 pub fn BNGetPlatformListByArchitecture(
23608 arch: *mut BNArchitecture,
23609 count: *mut usize,
23610 ) -> *mut *mut BNPlatform;
23611}
23612unsafe extern "C" {
23613 pub fn BNGetPlatformListByOS(
23614 os: *const ::std::os::raw::c_char,
23615 count: *mut usize,
23616 ) -> *mut *mut BNPlatform;
23617}
23618unsafe extern "C" {
23619 pub fn BNGetPlatformListByOSAndArchitecture(
23620 os: *const ::std::os::raw::c_char,
23621 arch: *mut BNArchitecture,
23622 count: *mut usize,
23623 ) -> *mut *mut BNPlatform;
23624}
23625unsafe extern "C" {
23626 pub fn BNFreePlatformList(platform: *mut *mut BNPlatform, count: usize);
23627}
23628unsafe extern "C" {
23629 pub fn BNGetPlatformOSList(count: *mut usize) -> *mut *mut ::std::os::raw::c_char;
23630}
23631unsafe extern "C" {
23632 pub fn BNFreePlatformOSList(list: *mut *mut ::std::os::raw::c_char, count: usize);
23633}
23634unsafe extern "C" {
23635 pub fn BNGetPlatformDefaultCallingConvention(
23636 platform: *mut BNPlatform,
23637 ) -> *mut BNCallingConvention;
23638}
23639unsafe extern "C" {
23640 pub fn BNGetPlatformCdeclCallingConvention(
23641 platform: *mut BNPlatform,
23642 ) -> *mut BNCallingConvention;
23643}
23644unsafe extern "C" {
23645 pub fn BNGetPlatformStdcallCallingConvention(
23646 platform: *mut BNPlatform,
23647 ) -> *mut BNCallingConvention;
23648}
23649unsafe extern "C" {
23650 pub fn BNGetPlatformFastcallCallingConvention(
23651 platform: *mut BNPlatform,
23652 ) -> *mut BNCallingConvention;
23653}
23654unsafe extern "C" {
23655 pub fn BNGetPlatformCallingConventions(
23656 platform: *mut BNPlatform,
23657 count: *mut usize,
23658 ) -> *mut *mut BNCallingConvention;
23659}
23660unsafe extern "C" {
23661 pub fn BNGetPlatformSystemCallConvention(platform: *mut BNPlatform)
23662 -> *mut BNCallingConvention;
23663}
23664unsafe extern "C" {
23665 pub fn BNRegisterPlatformCallingConvention(
23666 platform: *mut BNPlatform,
23667 cc: *mut BNCallingConvention,
23668 );
23669}
23670unsafe extern "C" {
23671 pub fn BNRegisterPlatformDefaultCallingConvention(
23672 platform: *mut BNPlatform,
23673 cc: *mut BNCallingConvention,
23674 );
23675}
23676unsafe extern "C" {
23677 pub fn BNRegisterPlatformCdeclCallingConvention(
23678 platform: *mut BNPlatform,
23679 cc: *mut BNCallingConvention,
23680 );
23681}
23682unsafe extern "C" {
23683 pub fn BNRegisterPlatformStdcallCallingConvention(
23684 platform: *mut BNPlatform,
23685 cc: *mut BNCallingConvention,
23686 );
23687}
23688unsafe extern "C" {
23689 pub fn BNRegisterPlatformFastcallCallingConvention(
23690 platform: *mut BNPlatform,
23691 cc: *mut BNCallingConvention,
23692 );
23693}
23694unsafe extern "C" {
23695 pub fn BNSetPlatformSystemCallConvention(
23696 platform: *mut BNPlatform,
23697 cc: *mut BNCallingConvention,
23698 );
23699}
23700unsafe extern "C" {
23701 pub fn BNGetPlatformGlobalRegisters(platform: *mut BNPlatform, count: *mut usize) -> *mut u32;
23702}
23703unsafe extern "C" {
23704 pub fn BNGetPlatformGlobalRegisterType(platform: *mut BNPlatform, reg: u32) -> *mut BNType;
23705}
23706unsafe extern "C" {
23707 pub fn BNGetPlatformAddressSize(platform: *mut BNPlatform) -> usize;
23708}
23709unsafe extern "C" {
23710 pub fn BNPlatformAdjustTypeParserInput(
23711 platform: *mut BNPlatform,
23712 parser: *mut BNTypeParser,
23713 argumentsIn: *const *const ::std::os::raw::c_char,
23714 argumentsLenIn: usize,
23715 sourceFileNamesIn: *const *const ::std::os::raw::c_char,
23716 sourceFileValuesIn: *const *const ::std::os::raw::c_char,
23717 sourceFilesLenIn: usize,
23718 argumentsOut: *mut *mut *mut ::std::os::raw::c_char,
23719 argumentsLenOut: *mut usize,
23720 sourceFileNamesOut: *mut *mut *mut ::std::os::raw::c_char,
23721 sourceFileValuesOut: *mut *mut *mut ::std::os::raw::c_char,
23722 sourceFilesLenOut: *mut usize,
23723 );
23724}
23725unsafe extern "C" {
23726 pub fn BNGetArchitectureStandalonePlatform(arch: *mut BNArchitecture) -> *mut BNPlatform;
23727}
23728unsafe extern "C" {
23729 pub fn BNGetRelatedPlatform(
23730 platform: *mut BNPlatform,
23731 arch: *mut BNArchitecture,
23732 ) -> *mut BNPlatform;
23733}
23734unsafe extern "C" {
23735 pub fn BNAddRelatedPlatform(
23736 platform: *mut BNPlatform,
23737 arch: *mut BNArchitecture,
23738 related: *mut BNPlatform,
23739 );
23740}
23741unsafe extern "C" {
23742 pub fn BNGetRelatedPlatforms(
23743 platform: *mut BNPlatform,
23744 count: *mut usize,
23745 ) -> *mut *mut BNPlatform;
23746}
23747unsafe extern "C" {
23748 pub fn BNGetAssociatedPlatformByAddress(
23749 platform: *mut BNPlatform,
23750 addr: *mut u64,
23751 ) -> *mut BNPlatform;
23752}
23753unsafe extern "C" {
23754 pub fn BNGetPlatformTypeContainer(platform: *mut BNPlatform) -> *mut BNTypeContainer;
23755}
23756unsafe extern "C" {
23757 pub fn BNGetPlatformTypes(
23758 platform: *mut BNPlatform,
23759 count: *mut usize,
23760 ) -> *mut BNQualifiedNameAndType;
23761}
23762unsafe extern "C" {
23763 pub fn BNGetPlatformVariables(
23764 platform: *mut BNPlatform,
23765 count: *mut usize,
23766 ) -> *mut BNQualifiedNameAndType;
23767}
23768unsafe extern "C" {
23769 pub fn BNGetPlatformFunctions(
23770 platform: *mut BNPlatform,
23771 count: *mut usize,
23772 ) -> *mut BNQualifiedNameAndType;
23773}
23774unsafe extern "C" {
23775 pub fn BNGetPlatformSystemCalls(
23776 platform: *mut BNPlatform,
23777 count: *mut usize,
23778 ) -> *mut BNSystemCallInfo;
23779}
23780unsafe extern "C" {
23781 pub fn BNFreeSystemCallList(syscalls: *mut BNSystemCallInfo, count: usize);
23782}
23783unsafe extern "C" {
23784 pub fn BNGetPlatformTypeByName(
23785 platform: *mut BNPlatform,
23786 name: *mut BNQualifiedName,
23787 ) -> *mut BNType;
23788}
23789unsafe extern "C" {
23790 pub fn BNGetPlatformVariableByName(
23791 platform: *mut BNPlatform,
23792 name: *mut BNQualifiedName,
23793 ) -> *mut BNType;
23794}
23795unsafe extern "C" {
23796 pub fn BNGetPlatformFunctionByName(
23797 platform: *mut BNPlatform,
23798 name: *mut BNQualifiedName,
23799 exactMatch: bool,
23800 ) -> *mut BNType;
23801}
23802unsafe extern "C" {
23803 pub fn BNGetPlatformSystemCallName(
23804 platform: *mut BNPlatform,
23805 number: u32,
23806 ) -> *mut ::std::os::raw::c_char;
23807}
23808unsafe extern "C" {
23809 pub fn BNGetPlatformSystemCallType(platform: *mut BNPlatform, number: u32) -> *mut BNType;
23810}
23811unsafe extern "C" {
23812 pub fn BNGetPlatformTypeLibraries(
23813 platform: *mut BNPlatform,
23814 count: *mut usize,
23815 ) -> *mut *mut BNTypeLibrary;
23816}
23817unsafe extern "C" {
23818 pub fn BNGetPlatformTypeLibrariesByName(
23819 platform: *mut BNPlatform,
23820 depName: *const ::std::os::raw::c_char,
23821 count: *mut usize,
23822 ) -> *mut *mut BNTypeLibrary;
23823}
23824unsafe extern "C" {
23825 #[doc = " Download providers"]
23826 pub fn BNRegisterDownloadProvider(
23827 name: *const ::std::os::raw::c_char,
23828 callbacks: *mut BNDownloadProviderCallbacks,
23829 ) -> *mut BNDownloadProvider;
23830}
23831unsafe extern "C" {
23832 pub fn BNGetDownloadProviderList(count: *mut usize) -> *mut *mut BNDownloadProvider;
23833}
23834unsafe extern "C" {
23835 pub fn BNFreeDownloadProviderList(providers: *mut *mut BNDownloadProvider);
23836}
23837unsafe extern "C" {
23838 pub fn BNGetDownloadProviderByName(
23839 name: *const ::std::os::raw::c_char,
23840 ) -> *mut BNDownloadProvider;
23841}
23842unsafe extern "C" {
23843 pub fn BNGetDownloadProviderName(
23844 provider: *mut BNDownloadProvider,
23845 ) -> *mut ::std::os::raw::c_char;
23846}
23847unsafe extern "C" {
23848 pub fn BNCreateDownloadProviderInstance(
23849 provider: *mut BNDownloadProvider,
23850 ) -> *mut BNDownloadInstance;
23851}
23852unsafe extern "C" {
23853 pub fn BNInitDownloadInstance(
23854 provider: *mut BNDownloadProvider,
23855 callbacks: *mut BNDownloadInstanceCallbacks,
23856 ) -> *mut BNDownloadInstance;
23857}
23858unsafe extern "C" {
23859 pub fn BNNewDownloadInstanceReference(
23860 instance: *mut BNDownloadInstance,
23861 ) -> *mut BNDownloadInstance;
23862}
23863unsafe extern "C" {
23864 pub fn BNFreeDownloadInstance(instance: *mut BNDownloadInstance);
23865}
23866unsafe extern "C" {
23867 pub fn BNFreeDownloadInstanceResponse(response: *mut BNDownloadInstanceResponse);
23868}
23869unsafe extern "C" {
23870 pub fn BNPerformDownloadRequest(
23871 instance: *mut BNDownloadInstance,
23872 url: *const ::std::os::raw::c_char,
23873 callbacks: *mut BNDownloadInstanceOutputCallbacks,
23874 ) -> ::std::os::raw::c_int;
23875}
23876unsafe extern "C" {
23877 pub fn BNPerformCustomRequest(
23878 instance: *mut BNDownloadInstance,
23879 method: *const ::std::os::raw::c_char,
23880 url: *const ::std::os::raw::c_char,
23881 headerCount: u64,
23882 headerKeys: *const *const ::std::os::raw::c_char,
23883 headerValues: *const *const ::std::os::raw::c_char,
23884 response: *mut *mut BNDownloadInstanceResponse,
23885 callbacks: *mut BNDownloadInstanceInputOutputCallbacks,
23886 ) -> ::std::os::raw::c_int;
23887}
23888unsafe extern "C" {
23889 pub fn BNReadDataForDownloadInstance(
23890 instance: *mut BNDownloadInstance,
23891 data: *mut u8,
23892 len: u64,
23893 ) -> i64;
23894}
23895unsafe extern "C" {
23896 pub fn BNWriteDataForDownloadInstance(
23897 instance: *mut BNDownloadInstance,
23898 data: *mut u8,
23899 len: u64,
23900 ) -> u64;
23901}
23902unsafe extern "C" {
23903 pub fn BNNotifyProgressForDownloadInstance(
23904 instance: *mut BNDownloadInstance,
23905 progress: u64,
23906 total: u64,
23907 ) -> bool;
23908}
23909unsafe extern "C" {
23910 pub fn BNGetErrorForDownloadInstance(
23911 instance: *mut BNDownloadInstance,
23912 ) -> *mut ::std::os::raw::c_char;
23913}
23914unsafe extern "C" {
23915 pub fn BNSetErrorForDownloadInstance(
23916 instance: *mut BNDownloadInstance,
23917 error: *const ::std::os::raw::c_char,
23918 );
23919}
23920unsafe extern "C" {
23921 #[doc = " Websocket providers"]
23922 pub fn BNRegisterWebsocketProvider(
23923 name: *const ::std::os::raw::c_char,
23924 callbacks: *mut BNWebsocketProviderCallbacks,
23925 ) -> *mut BNWebsocketProvider;
23926}
23927unsafe extern "C" {
23928 pub fn BNGetWebsocketProviderList(count: *mut usize) -> *mut *mut BNWebsocketProvider;
23929}
23930unsafe extern "C" {
23931 pub fn BNFreeWebsocketProviderList(providers: *mut *mut BNWebsocketProvider);
23932}
23933unsafe extern "C" {
23934 pub fn BNGetWebsocketProviderByName(
23935 name: *const ::std::os::raw::c_char,
23936 ) -> *mut BNWebsocketProvider;
23937}
23938unsafe extern "C" {
23939 pub fn BNGetWebsocketProviderName(
23940 provider: *mut BNWebsocketProvider,
23941 ) -> *mut ::std::os::raw::c_char;
23942}
23943unsafe extern "C" {
23944 pub fn BNCreateWebsocketProviderClient(
23945 provider: *mut BNWebsocketProvider,
23946 ) -> *mut BNWebsocketClient;
23947}
23948unsafe extern "C" {
23949 pub fn BNInitWebsocketClient(
23950 provider: *mut BNWebsocketProvider,
23951 callbacks: *mut BNWebsocketClientCallbacks,
23952 ) -> *mut BNWebsocketClient;
23953}
23954unsafe extern "C" {
23955 pub fn BNNewWebsocketClientReference(client: *mut BNWebsocketClient) -> *mut BNWebsocketClient;
23956}
23957unsafe extern "C" {
23958 pub fn BNFreeWebsocketClient(client: *mut BNWebsocketClient);
23959}
23960unsafe extern "C" {
23961 pub fn BNConnectWebsocketClient(
23962 client: *mut BNWebsocketClient,
23963 url: *const ::std::os::raw::c_char,
23964 headerCount: u64,
23965 headerKeys: *const *const ::std::os::raw::c_char,
23966 headerValues: *const *const ::std::os::raw::c_char,
23967 callbacks: *mut BNWebsocketClientOutputCallbacks,
23968 ) -> bool;
23969}
23970unsafe extern "C" {
23971 pub fn BNNotifyWebsocketClientConnect(client: *mut BNWebsocketClient) -> bool;
23972}
23973unsafe extern "C" {
23974 pub fn BNNotifyWebsocketClientDisconnect(client: *mut BNWebsocketClient);
23975}
23976unsafe extern "C" {
23977 pub fn BNNotifyWebsocketClientError(
23978 client: *mut BNWebsocketClient,
23979 msg: *const ::std::os::raw::c_char,
23980 );
23981}
23982unsafe extern "C" {
23983 pub fn BNNotifyWebsocketClientReadData(
23984 client: *mut BNWebsocketClient,
23985 data: *mut u8,
23986 len: u64,
23987 ) -> bool;
23988}
23989unsafe extern "C" {
23990 pub fn BNWriteWebsocketClientData(
23991 client: *mut BNWebsocketClient,
23992 data: *const u8,
23993 len: u64,
23994 ) -> u64;
23995}
23996unsafe extern "C" {
23997 pub fn BNDisconnectWebsocketClient(client: *mut BNWebsocketClient) -> bool;
23998}
23999unsafe extern "C" {
24000 #[doc = " Scripting providers"]
24001 pub fn BNRegisterScriptingProvider(
24002 name: *const ::std::os::raw::c_char,
24003 apiName: *const ::std::os::raw::c_char,
24004 callbacks: *mut BNScriptingProviderCallbacks,
24005 ) -> *mut BNScriptingProvider;
24006}
24007unsafe extern "C" {
24008 pub fn BNGetScriptingProviderList(count: *mut usize) -> *mut *mut BNScriptingProvider;
24009}
24010unsafe extern "C" {
24011 pub fn BNFreeScriptingProviderList(providers: *mut *mut BNScriptingProvider);
24012}
24013unsafe extern "C" {
24014 pub fn BNGetScriptingProviderByName(
24015 name: *const ::std::os::raw::c_char,
24016 ) -> *mut BNScriptingProvider;
24017}
24018unsafe extern "C" {
24019 pub fn BNGetScriptingProviderByAPIName(
24020 name: *const ::std::os::raw::c_char,
24021 ) -> *mut BNScriptingProvider;
24022}
24023unsafe extern "C" {
24024 pub fn BNGetScriptingProviderName(
24025 provider: *mut BNScriptingProvider,
24026 ) -> *mut ::std::os::raw::c_char;
24027}
24028unsafe extern "C" {
24029 pub fn BNGetScriptingProviderAPIName(
24030 provider: *mut BNScriptingProvider,
24031 ) -> *mut ::std::os::raw::c_char;
24032}
24033unsafe extern "C" {
24034 pub fn BNCreateScriptingProviderInstance(
24035 provider: *mut BNScriptingProvider,
24036 ) -> *mut BNScriptingInstance;
24037}
24038unsafe extern "C" {
24039 pub fn BNLoadScriptingProviderModule(
24040 provider: *mut BNScriptingProvider,
24041 repository: *const ::std::os::raw::c_char,
24042 module: *const ::std::os::raw::c_char,
24043 force: bool,
24044 ) -> bool;
24045}
24046unsafe extern "C" {
24047 pub fn BNInstallScriptingProviderModules(
24048 provider: *mut BNScriptingProvider,
24049 modules: *const ::std::os::raw::c_char,
24050 ) -> bool;
24051}
24052unsafe extern "C" {
24053 pub fn BNInitScriptingInstance(
24054 provider: *mut BNScriptingProvider,
24055 callbacks: *mut BNScriptingInstanceCallbacks,
24056 ) -> *mut BNScriptingInstance;
24057}
24058unsafe extern "C" {
24059 pub fn BNNewScriptingInstanceReference(
24060 instance: *mut BNScriptingInstance,
24061 ) -> *mut BNScriptingInstance;
24062}
24063unsafe extern "C" {
24064 pub fn BNFreeScriptingInstance(instance: *mut BNScriptingInstance);
24065}
24066unsafe extern "C" {
24067 pub fn BNNotifyOutputForScriptingInstance(
24068 instance: *mut BNScriptingInstance,
24069 text: *const ::std::os::raw::c_char,
24070 );
24071}
24072unsafe extern "C" {
24073 pub fn BNNotifyWarningForScriptingInstance(
24074 instance: *mut BNScriptingInstance,
24075 text: *const ::std::os::raw::c_char,
24076 );
24077}
24078unsafe extern "C" {
24079 pub fn BNNotifyErrorForScriptingInstance(
24080 instance: *mut BNScriptingInstance,
24081 text: *const ::std::os::raw::c_char,
24082 );
24083}
24084unsafe extern "C" {
24085 pub fn BNNotifyInputReadyStateForScriptingInstance(
24086 instance: *mut BNScriptingInstance,
24087 state: BNScriptingProviderInputReadyState,
24088 );
24089}
24090unsafe extern "C" {
24091 pub fn BNRegisterScriptingInstanceOutputListener(
24092 instance: *mut BNScriptingInstance,
24093 callbacks: *mut BNScriptingOutputListener,
24094 );
24095}
24096unsafe extern "C" {
24097 pub fn BNUnregisterScriptingInstanceOutputListener(
24098 instance: *mut BNScriptingInstance,
24099 callbacks: *mut BNScriptingOutputListener,
24100 );
24101}
24102unsafe extern "C" {
24103 pub fn BNGetScriptingInstanceDelimiters(
24104 instance: *mut BNScriptingInstance,
24105 ) -> *mut ::std::os::raw::c_char;
24106}
24107unsafe extern "C" {
24108 pub fn BNSetScriptingInstanceDelimiters(
24109 instance: *mut BNScriptingInstance,
24110 delimiters: *const ::std::os::raw::c_char,
24111 );
24112}
24113unsafe extern "C" {
24114 pub fn BNGetScriptingInstanceInputReadyState(
24115 instance: *mut BNScriptingInstance,
24116 ) -> BNScriptingProviderInputReadyState;
24117}
24118unsafe extern "C" {
24119 pub fn BNExecuteScriptInput(
24120 instance: *mut BNScriptingInstance,
24121 input: *const ::std::os::raw::c_char,
24122 ) -> BNScriptingProviderExecuteResult;
24123}
24124unsafe extern "C" {
24125 pub fn BNExecuteScriptInputFromFilename(
24126 instance: *mut BNScriptingInstance,
24127 filename: *const ::std::os::raw::c_char,
24128 ) -> BNScriptingProviderExecuteResult;
24129}
24130unsafe extern "C" {
24131 pub fn BNCancelScriptInput(instance: *mut BNScriptingInstance);
24132}
24133unsafe extern "C" {
24134 pub fn BNScriptingInstanceReleaseBinaryView(
24135 instance: *mut BNScriptingInstance,
24136 view: *mut BNBinaryView,
24137 );
24138}
24139unsafe extern "C" {
24140 pub fn BNSetScriptingInstanceCurrentBinaryView(
24141 instance: *mut BNScriptingInstance,
24142 view: *mut BNBinaryView,
24143 );
24144}
24145unsafe extern "C" {
24146 pub fn BNSetScriptingInstanceCurrentFunction(
24147 instance: *mut BNScriptingInstance,
24148 func: *mut BNFunction,
24149 );
24150}
24151unsafe extern "C" {
24152 pub fn BNSetScriptingInstanceCurrentBasicBlock(
24153 instance: *mut BNScriptingInstance,
24154 block: *mut BNBasicBlock,
24155 );
24156}
24157unsafe extern "C" {
24158 pub fn BNSetScriptingInstanceCurrentAddress(instance: *mut BNScriptingInstance, addr: u64);
24159}
24160unsafe extern "C" {
24161 pub fn BNSetScriptingInstanceCurrentSelection(
24162 instance: *mut BNScriptingInstance,
24163 begin: u64,
24164 end: u64,
24165 );
24166}
24167unsafe extern "C" {
24168 pub fn BNScriptingInstanceCompleteInput(
24169 instance: *mut BNScriptingInstance,
24170 text: *const ::std::os::raw::c_char,
24171 state: u64,
24172 ) -> *mut ::std::os::raw::c_char;
24173}
24174unsafe extern "C" {
24175 pub fn BNScriptingInstanceCanCompleteArguments(
24176 instance: *mut BNScriptingInstance,
24177 text: *const ::std::os::raw::c_char,
24178 ) -> bool;
24179}
24180unsafe extern "C" {
24181 pub fn BNScriptingInstanceCompleteArguments(
24182 instance: *mut BNScriptingInstance,
24183 text: *const ::std::os::raw::c_char,
24184 argumentStart: *mut u64,
24185 ) -> *mut ::std::os::raw::c_char;
24186}
24187unsafe extern "C" {
24188 pub fn BNStopScriptingInstance(instance: *mut BNScriptingInstance);
24189}
24190unsafe extern "C" {
24191 pub fn BNFuzzyMatchSingle(
24192 target: *const ::std::os::raw::c_char,
24193 query: *const ::std::os::raw::c_char,
24194 ) -> usize;
24195}
24196unsafe extern "C" {
24197 #[doc = " Main thread actions"]
24198 pub fn BNRegisterMainThread(callbacks: *mut BNMainThreadCallbacks);
24199}
24200unsafe extern "C" {
24201 pub fn BNNewMainThreadActionReference(
24202 action: *mut BNMainThreadAction,
24203 ) -> *mut BNMainThreadAction;
24204}
24205unsafe extern "C" {
24206 pub fn BNFreeMainThreadAction(action: *mut BNMainThreadAction);
24207}
24208unsafe extern "C" {
24209 pub fn BNExecuteMainThreadAction(action: *mut BNMainThreadAction);
24210}
24211unsafe extern "C" {
24212 pub fn BNIsMainThreadActionDone(action: *mut BNMainThreadAction) -> bool;
24213}
24214unsafe extern "C" {
24215 pub fn BNWaitForMainThreadAction(action: *mut BNMainThreadAction);
24216}
24217unsafe extern "C" {
24218 pub fn BNExecuteOnMainThread(
24219 ctxt: *mut ::std::os::raw::c_void,
24220 func: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
24221 ) -> *mut BNMainThreadAction;
24222}
24223unsafe extern "C" {
24224 pub fn BNExecuteOnMainThreadAndWait(
24225 ctxt: *mut ::std::os::raw::c_void,
24226 func: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
24227 );
24228}
24229unsafe extern "C" {
24230 pub fn BNIsMainThread() -> bool;
24231}
24232unsafe extern "C" {
24233 #[doc = " Worker thread queue management"]
24234 pub fn BNWorkerEnqueue(
24235 ctxt: *mut ::std::os::raw::c_void,
24236 action: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
24237 );
24238}
24239unsafe extern "C" {
24240 pub fn BNWorkerEnqueueNamed(
24241 ctxt: *mut ::std::os::raw::c_void,
24242 action: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
24243 name: *const ::std::os::raw::c_char,
24244 );
24245}
24246unsafe extern "C" {
24247 pub fn BNWorkerPriorityEnqueue(
24248 ctxt: *mut ::std::os::raw::c_void,
24249 action: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
24250 );
24251}
24252unsafe extern "C" {
24253 pub fn BNWorkerPriorityEnqueueNamed(
24254 ctxt: *mut ::std::os::raw::c_void,
24255 action: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
24256 name: *const ::std::os::raw::c_char,
24257 );
24258}
24259unsafe extern "C" {
24260 pub fn BNWorkerInteractiveEnqueue(
24261 ctxt: *mut ::std::os::raw::c_void,
24262 action: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
24263 );
24264}
24265unsafe extern "C" {
24266 pub fn BNWorkerInteractiveEnqueueNamed(
24267 ctxt: *mut ::std::os::raw::c_void,
24268 action: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
24269 name: *const ::std::os::raw::c_char,
24270 );
24271}
24272unsafe extern "C" {
24273 pub fn BNGetWorkerThreadCount() -> usize;
24274}
24275unsafe extern "C" {
24276 pub fn BNSetWorkerThreadCount(count: usize);
24277}
24278unsafe extern "C" {
24279 pub fn BNSetThreadName(name: *const ::std::os::raw::c_char);
24280}
24281unsafe extern "C" {
24282 #[doc = " Background task progress reporting"]
24283 pub fn BNBeginBackgroundTask(
24284 initialText: *const ::std::os::raw::c_char,
24285 canCancel: bool,
24286 ) -> *mut BNBackgroundTask;
24287}
24288unsafe extern "C" {
24289 pub fn BNFinishBackgroundTask(task: *mut BNBackgroundTask);
24290}
24291unsafe extern "C" {
24292 pub fn BNSetBackgroundTaskProgressText(
24293 task: *mut BNBackgroundTask,
24294 text: *const ::std::os::raw::c_char,
24295 );
24296}
24297unsafe extern "C" {
24298 pub fn BNIsBackgroundTaskCancelled(task: *mut BNBackgroundTask) -> bool;
24299}
24300unsafe extern "C" {
24301 pub fn BNGetRunningBackgroundTasks(count: *mut usize) -> *mut *mut BNBackgroundTask;
24302}
24303unsafe extern "C" {
24304 pub fn BNNewBackgroundTaskReference(task: *mut BNBackgroundTask) -> *mut BNBackgroundTask;
24305}
24306unsafe extern "C" {
24307 pub fn BNFreeBackgroundTask(task: *mut BNBackgroundTask);
24308}
24309unsafe extern "C" {
24310 pub fn BNFreeBackgroundTaskList(tasks: *mut *mut BNBackgroundTask, count: usize);
24311}
24312unsafe extern "C" {
24313 pub fn BNGetBackgroundTaskProgressText(
24314 task: *mut BNBackgroundTask,
24315 ) -> *mut ::std::os::raw::c_char;
24316}
24317unsafe extern "C" {
24318 pub fn BNGetBackgroundTaskRuntimeSeconds(task: *mut BNBackgroundTask) -> u64;
24319}
24320unsafe extern "C" {
24321 pub fn BNCanCancelBackgroundTask(task: *mut BNBackgroundTask) -> bool;
24322}
24323unsafe extern "C" {
24324 pub fn BNCancelBackgroundTask(task: *mut BNBackgroundTask);
24325}
24326unsafe extern "C" {
24327 pub fn BNIsBackgroundTaskFinished(task: *mut BNBackgroundTask) -> bool;
24328}
24329unsafe extern "C" {
24330 #[doc = " Interaction APIs"]
24331 pub fn BNRegisterInteractionHandler(callbacks: *mut BNInteractionHandlerCallbacks);
24332}
24333unsafe extern "C" {
24334 pub fn BNMarkdownToHTML(contents: *const ::std::os::raw::c_char)
24335 -> *mut ::std::os::raw::c_char;
24336}
24337unsafe extern "C" {
24338 pub fn BNShowPlainTextReport(
24339 view: *mut BNBinaryView,
24340 title: *const ::std::os::raw::c_char,
24341 contents: *const ::std::os::raw::c_char,
24342 );
24343}
24344unsafe extern "C" {
24345 pub fn BNShowMarkdownReport(
24346 view: *mut BNBinaryView,
24347 title: *const ::std::os::raw::c_char,
24348 contents: *const ::std::os::raw::c_char,
24349 plaintext: *const ::std::os::raw::c_char,
24350 );
24351}
24352unsafe extern "C" {
24353 pub fn BNShowHTMLReport(
24354 view: *mut BNBinaryView,
24355 title: *const ::std::os::raw::c_char,
24356 contents: *const ::std::os::raw::c_char,
24357 plaintext: *const ::std::os::raw::c_char,
24358 );
24359}
24360unsafe extern "C" {
24361 pub fn BNShowGraphReport(
24362 view: *mut BNBinaryView,
24363 title: *const ::std::os::raw::c_char,
24364 graph: *mut BNFlowGraph,
24365 );
24366}
24367unsafe extern "C" {
24368 pub fn BNShowReportCollection(
24369 title: *const ::std::os::raw::c_char,
24370 reports: *mut BNReportCollection,
24371 );
24372}
24373unsafe extern "C" {
24374 pub fn BNGetTextLineInput(
24375 result: *mut *mut ::std::os::raw::c_char,
24376 prompt: *const ::std::os::raw::c_char,
24377 title: *const ::std::os::raw::c_char,
24378 ) -> bool;
24379}
24380unsafe extern "C" {
24381 pub fn BNGetIntegerInput(
24382 result: *mut i64,
24383 prompt: *const ::std::os::raw::c_char,
24384 title: *const ::std::os::raw::c_char,
24385 ) -> bool;
24386}
24387unsafe extern "C" {
24388 pub fn BNGetAddressInput(
24389 result: *mut u64,
24390 prompt: *const ::std::os::raw::c_char,
24391 title: *const ::std::os::raw::c_char,
24392 view: *mut BNBinaryView,
24393 currentAddr: u64,
24394 ) -> bool;
24395}
24396unsafe extern "C" {
24397 pub fn BNGetChoiceInput(
24398 result: *mut usize,
24399 prompt: *const ::std::os::raw::c_char,
24400 title: *const ::std::os::raw::c_char,
24401 choices: *mut *const ::std::os::raw::c_char,
24402 count: usize,
24403 ) -> bool;
24404}
24405unsafe extern "C" {
24406 pub fn BNGetLargeChoiceInput(
24407 result: *mut usize,
24408 prompt: *const ::std::os::raw::c_char,
24409 title: *const ::std::os::raw::c_char,
24410 choices: *mut *const ::std::os::raw::c_char,
24411 count: usize,
24412 ) -> bool;
24413}
24414unsafe extern "C" {
24415 pub fn BNGetOpenFileNameInput(
24416 result: *mut *mut ::std::os::raw::c_char,
24417 prompt: *const ::std::os::raw::c_char,
24418 ext: *const ::std::os::raw::c_char,
24419 ) -> bool;
24420}
24421unsafe extern "C" {
24422 pub fn BNGetSaveFileNameInput(
24423 result: *mut *mut ::std::os::raw::c_char,
24424 prompt: *const ::std::os::raw::c_char,
24425 ext: *const ::std::os::raw::c_char,
24426 defaultName: *const ::std::os::raw::c_char,
24427 ) -> bool;
24428}
24429unsafe extern "C" {
24430 pub fn BNGetDirectoryNameInput(
24431 result: *mut *mut ::std::os::raw::c_char,
24432 prompt: *const ::std::os::raw::c_char,
24433 defaultName: *const ::std::os::raw::c_char,
24434 ) -> bool;
24435}
24436unsafe extern "C" {
24437 pub fn BNGetCheckboxInput(
24438 result: *mut i64,
24439 prompt: *const ::std::os::raw::c_char,
24440 title: *const ::std::os::raw::c_char,
24441 defaultChoice: *const i64,
24442 ) -> bool;
24443}
24444unsafe extern "C" {
24445 pub fn BNGetFormInput(
24446 fields: *mut BNFormInputField,
24447 count: usize,
24448 title: *const ::std::os::raw::c_char,
24449 ) -> bool;
24450}
24451unsafe extern "C" {
24452 pub fn BNFreeFormInputResults(fields: *mut BNFormInputField, count: usize);
24453}
24454unsafe extern "C" {
24455 pub fn BNShowMessageBox(
24456 title: *const ::std::os::raw::c_char,
24457 text: *const ::std::os::raw::c_char,
24458 buttons: BNMessageBoxButtonSet,
24459 icon: BNMessageBoxIcon,
24460 ) -> BNMessageBoxButtonResult;
24461}
24462unsafe extern "C" {
24463 pub fn BNOpenUrl(url: *const ::std::os::raw::c_char) -> bool;
24464}
24465unsafe extern "C" {
24466 pub fn BNRunProgressDialog(
24467 title: *const ::std::os::raw::c_char,
24468 canCancel: bool,
24469 task: ::std::option::Option<
24470 unsafe extern "C" fn(
24471 taskCtxt: *mut ::std::os::raw::c_void,
24472 progress: BNProgressFunction,
24473 progressCtxt: *mut ::std::os::raw::c_void,
24474 ),
24475 >,
24476 taskCtxt: *mut ::std::os::raw::c_void,
24477 ) -> bool;
24478}
24479unsafe extern "C" {
24480 pub fn BNCreateReportCollection() -> *mut BNReportCollection;
24481}
24482unsafe extern "C" {
24483 pub fn BNNewReportCollectionReference(
24484 reports: *mut BNReportCollection,
24485 ) -> *mut BNReportCollection;
24486}
24487unsafe extern "C" {
24488 pub fn BNFreeReportCollection(reports: *mut BNReportCollection);
24489}
24490unsafe extern "C" {
24491 pub fn BNGetReportCollectionCount(reports: *mut BNReportCollection) -> usize;
24492}
24493unsafe extern "C" {
24494 pub fn BNGetReportType(reports: *mut BNReportCollection, i: usize) -> BNReportType;
24495}
24496unsafe extern "C" {
24497 pub fn BNGetReportView(reports: *mut BNReportCollection, i: usize) -> *mut BNBinaryView;
24498}
24499unsafe extern "C" {
24500 pub fn BNGetReportTitle(
24501 reports: *mut BNReportCollection,
24502 i: usize,
24503 ) -> *mut ::std::os::raw::c_char;
24504}
24505unsafe extern "C" {
24506 pub fn BNGetReportContents(
24507 reports: *mut BNReportCollection,
24508 i: usize,
24509 ) -> *mut ::std::os::raw::c_char;
24510}
24511unsafe extern "C" {
24512 pub fn BNGetReportPlainText(
24513 reports: *mut BNReportCollection,
24514 i: usize,
24515 ) -> *mut ::std::os::raw::c_char;
24516}
24517unsafe extern "C" {
24518 pub fn BNGetReportFlowGraph(reports: *mut BNReportCollection, i: usize) -> *mut BNFlowGraph;
24519}
24520unsafe extern "C" {
24521 pub fn BNAddPlainTextReportToCollection(
24522 reports: *mut BNReportCollection,
24523 view: *mut BNBinaryView,
24524 title: *const ::std::os::raw::c_char,
24525 contents: *const ::std::os::raw::c_char,
24526 );
24527}
24528unsafe extern "C" {
24529 pub fn BNAddMarkdownReportToCollection(
24530 reports: *mut BNReportCollection,
24531 view: *mut BNBinaryView,
24532 title: *const ::std::os::raw::c_char,
24533 contents: *const ::std::os::raw::c_char,
24534 plaintext: *const ::std::os::raw::c_char,
24535 );
24536}
24537unsafe extern "C" {
24538 pub fn BNAddHTMLReportToCollection(
24539 reports: *mut BNReportCollection,
24540 view: *mut BNBinaryView,
24541 title: *const ::std::os::raw::c_char,
24542 contents: *const ::std::os::raw::c_char,
24543 plaintext: *const ::std::os::raw::c_char,
24544 );
24545}
24546unsafe extern "C" {
24547 pub fn BNAddGraphReportToCollection(
24548 reports: *mut BNReportCollection,
24549 view: *mut BNBinaryView,
24550 title: *const ::std::os::raw::c_char,
24551 graph: *mut BNFlowGraph,
24552 );
24553}
24554unsafe extern "C" {
24555 pub fn BNUpdateReportFlowGraph(
24556 reports: *mut BNReportCollection,
24557 i: usize,
24558 graph: *mut BNFlowGraph,
24559 );
24560}
24561unsafe extern "C" {
24562 #[doc = " Demangler"]
24563 pub fn BNDemangleMS(
24564 arch: *mut BNArchitecture,
24565 mangledName: *const ::std::os::raw::c_char,
24566 outType: *mut *mut BNType,
24567 outVarName: *mut *mut *mut ::std::os::raw::c_char,
24568 outVarNameElements: *mut usize,
24569 simplify: bool,
24570 ) -> bool;
24571}
24572unsafe extern "C" {
24573 pub fn BNDemangleMSWithOptions(
24574 arch: *mut BNArchitecture,
24575 mangledName: *const ::std::os::raw::c_char,
24576 outType: *mut *mut BNType,
24577 outVarName: *mut *mut *mut ::std::os::raw::c_char,
24578 outVarNameElements: *mut usize,
24579 view: *const BNBinaryView,
24580 ) -> bool;
24581}
24582unsafe extern "C" {
24583 pub fn BNDemangleMSPlatform(
24584 platform: *mut BNPlatform,
24585 mangledName: *const ::std::os::raw::c_char,
24586 outType: *mut *mut BNType,
24587 outVarName: *mut *mut *mut ::std::os::raw::c_char,
24588 outVarNameElements: *mut usize,
24589 simplify: bool,
24590 ) -> bool;
24591}
24592unsafe extern "C" {
24593 pub fn BNIsGNU3MangledString(mangledName: *const ::std::os::raw::c_char) -> bool;
24594}
24595unsafe extern "C" {
24596 pub fn BNDemangleGNU3(
24597 arch: *mut BNArchitecture,
24598 mangledName: *const ::std::os::raw::c_char,
24599 outType: *mut *mut BNType,
24600 outVarName: *mut *mut *mut ::std::os::raw::c_char,
24601 outVarNameElements: *mut usize,
24602 simplify: bool,
24603 ) -> bool;
24604}
24605unsafe extern "C" {
24606 pub fn BNDemangleGNU3WithOptions(
24607 arch: *mut BNArchitecture,
24608 mangledName: *const ::std::os::raw::c_char,
24609 outType: *mut *mut BNType,
24610 outVarName: *mut *mut *mut ::std::os::raw::c_char,
24611 outVarNameElements: *mut usize,
24612 view: *const BNBinaryView,
24613 ) -> bool;
24614}
24615unsafe extern "C" {
24616 pub fn BNFreeDemangledName(name: *mut *mut *mut ::std::os::raw::c_char, nameElements: usize);
24617}
24618unsafe extern "C" {
24619 pub fn BNDemangleLLVM(
24620 mangledName: *const ::std::os::raw::c_char,
24621 outVarName: *mut *mut *mut ::std::os::raw::c_char,
24622 outVarNameElements: *mut usize,
24623 simplify: bool,
24624 ) -> bool;
24625}
24626unsafe extern "C" {
24627 pub fn BNDemangleLLVMWithOptions(
24628 mangledName: *const ::std::os::raw::c_char,
24629 outVarName: *mut *mut *mut ::std::os::raw::c_char,
24630 outVarNameElements: *mut usize,
24631 view: *const BNBinaryView,
24632 ) -> bool;
24633}
24634unsafe extern "C" {
24635 pub fn BNRegisterDemangler(
24636 name: *const ::std::os::raw::c_char,
24637 callbacks: *mut BNDemanglerCallbacks,
24638 ) -> *mut BNDemangler;
24639}
24640unsafe extern "C" {
24641 pub fn BNGetDemanglerList(count: *mut usize) -> *mut *mut BNDemangler;
24642}
24643unsafe extern "C" {
24644 pub fn BNFreeDemanglerList(demanglers: *mut *mut BNDemangler);
24645}
24646unsafe extern "C" {
24647 pub fn BNGetDemanglerByName(name: *const ::std::os::raw::c_char) -> *mut BNDemangler;
24648}
24649unsafe extern "C" {
24650 pub fn BNGetDemanglerName(demangler: *mut BNDemangler) -> *mut ::std::os::raw::c_char;
24651}
24652unsafe extern "C" {
24653 pub fn BNPromoteDemangler(demangler: *mut BNDemangler);
24654}
24655unsafe extern "C" {
24656 pub fn BNIsDemanglerMangledName(
24657 demangler: *mut BNDemangler,
24658 name: *const ::std::os::raw::c_char,
24659 ) -> bool;
24660}
24661unsafe extern "C" {
24662 pub fn BNDemanglerDemangle(
24663 demangler: *mut BNDemangler,
24664 arch: *mut BNArchitecture,
24665 name: *const ::std::os::raw::c_char,
24666 outType: *mut *mut BNType,
24667 outVarName: *mut BNQualifiedName,
24668 view: *mut BNBinaryView,
24669 ) -> bool;
24670}
24671unsafe extern "C" {
24672 pub fn BNDemangleGeneric(
24673 arch: *mut BNArchitecture,
24674 name: *const ::std::os::raw::c_char,
24675 outType: *mut *mut BNType,
24676 outVarName: *mut BNQualifiedName,
24677 view: *mut BNBinaryView,
24678 simplify: bool,
24679 ) -> bool;
24680}
24681unsafe extern "C" {
24682 #[doc = " Plugin repository APIs"]
24683 pub fn BNPluginGetApis(p: *mut BNPlugin, count: *mut usize)
24684 -> *mut *mut ::std::os::raw::c_char;
24685}
24686unsafe extern "C" {
24687 pub fn BNPluginGetAuthor(p: *mut BNPlugin) -> *const ::std::os::raw::c_char;
24688}
24689unsafe extern "C" {
24690 pub fn BNPluginGetDescription(p: *mut BNPlugin) -> *const ::std::os::raw::c_char;
24691}
24692unsafe extern "C" {
24693 pub fn BNPluginGetLicenseText(p: *mut BNPlugin) -> *const ::std::os::raw::c_char;
24694}
24695unsafe extern "C" {
24696 pub fn BNPluginGetMinimumVersionInfo(p: *mut BNPlugin) -> BNVersionInfo;
24697}
24698unsafe extern "C" {
24699 pub fn BNPluginGetMaximumVersionInfo(p: *mut BNPlugin) -> BNVersionInfo;
24700}
24701unsafe extern "C" {
24702 pub fn BNParseVersionString(v: *const ::std::os::raw::c_char) -> BNVersionInfo;
24703}
24704unsafe extern "C" {
24705 pub fn BNVersionLessThan(smaller: BNVersionInfo, larger: BNVersionInfo) -> bool;
24706}
24707unsafe extern "C" {
24708 pub fn BNPluginVersionIDLessThan(
24709 p: *mut BNPlugin,
24710 smaller: *const ::std::os::raw::c_char,
24711 larger: *const ::std::os::raw::c_char,
24712 ) -> bool;
24713}
24714unsafe extern "C" {
24715 pub fn BNPluginGetName(p: *mut BNPlugin) -> *const ::std::os::raw::c_char;
24716}
24717unsafe extern "C" {
24718 pub fn BNPluginGetProjectUrl(p: *mut BNPlugin) -> *const ::std::os::raw::c_char;
24719}
24720unsafe extern "C" {
24721 pub fn BNPluginGetPackageUrl(p: *mut BNPlugin) -> *const ::std::os::raw::c_char;
24722}
24723unsafe extern "C" {
24724 pub fn BNPluginGetAuthorUrl(p: *mut BNPlugin) -> *const ::std::os::raw::c_char;
24725}
24726unsafe extern "C" {
24727 pub fn BNPluginGetVersions(p: *mut BNPlugin, count: *mut usize) -> *mut BNPluginVersion;
24728}
24729unsafe extern "C" {
24730 pub fn BNFreePluginVersions(r: *mut BNPluginVersion, count: usize);
24731}
24732unsafe extern "C" {
24733 pub fn BNPluginGetCurrentVersionID(p: *mut BNPlugin) -> *const ::std::os::raw::c_char;
24734}
24735unsafe extern "C" {
24736 pub fn BNPluginGetCurrentVersion(p: *mut BNPlugin) -> BNPluginVersion;
24737}
24738unsafe extern "C" {
24739 pub fn BNPluginFreeVersion(v: BNPluginVersion);
24740}
24741unsafe extern "C" {
24742 pub fn BNPluginGetCommit(p: *mut BNPlugin) -> *const ::std::os::raw::c_char;
24743}
24744unsafe extern "C" {
24745 pub fn BNPluginGetViewOnly(p: *mut BNPlugin) -> bool;
24746}
24747unsafe extern "C" {
24748 pub fn BNPluginGetIsPaid(p: *mut BNPlugin) -> bool;
24749}
24750unsafe extern "C" {
24751 pub fn BNFreePluginTypes(r: *mut BNPluginType);
24752}
24753unsafe extern "C" {
24754 pub fn BNNewPluginReference(r: *mut BNPlugin) -> *mut BNPlugin;
24755}
24756unsafe extern "C" {
24757 pub fn BNFreePlugin(plugin: *mut BNPlugin);
24758}
24759unsafe extern "C" {
24760 pub fn BNPluginGetPath(p: *mut BNPlugin) -> *const ::std::os::raw::c_char;
24761}
24762unsafe extern "C" {
24763 pub fn BNPluginGetSubdir(p: *mut BNPlugin) -> *const ::std::os::raw::c_char;
24764}
24765unsafe extern "C" {
24766 pub fn BNPluginGetDependencies(p: *mut BNPlugin) -> *const ::std::os::raw::c_char;
24767}
24768unsafe extern "C" {
24769 pub fn BNPluginGetLongdescription(p: *mut BNPlugin) -> *const ::std::os::raw::c_char;
24770}
24771unsafe extern "C" {
24772 pub fn BNPluginGetLastUpdate(p: *mut BNPlugin) -> u64;
24773}
24774unsafe extern "C" {
24775 pub fn BNPluginIsInstalled(p: *mut BNPlugin) -> bool;
24776}
24777unsafe extern "C" {
24778 pub fn BNPluginIsEnabled(p: *mut BNPlugin) -> bool;
24779}
24780unsafe extern "C" {
24781 pub fn BNPluginGetPluginStatus(p: *mut BNPlugin) -> BNPluginStatus;
24782}
24783unsafe extern "C" {
24784 pub fn BNPluginGetPluginTypes(p: *mut BNPlugin, count: *mut usize) -> *mut BNPluginType;
24785}
24786unsafe extern "C" {
24787 pub fn BNPluginEnable(p: *mut BNPlugin, force: bool) -> bool;
24788}
24789unsafe extern "C" {
24790 pub fn BNPluginDisable(p: *mut BNPlugin) -> bool;
24791}
24792unsafe extern "C" {
24793 pub fn BNPluginInstall(p: *mut BNPlugin, versionID: *const ::std::os::raw::c_char) -> bool;
24794}
24795unsafe extern "C" {
24796 pub fn BNPluginInstallDependencies(p: *mut BNPlugin) -> bool;
24797}
24798unsafe extern "C" {
24799 pub fn BNPluginUninstall(p: *mut BNPlugin) -> bool;
24800}
24801unsafe extern "C" {
24802 pub fn BNPluginUpdate(p: *mut BNPlugin, versionID: *const ::std::os::raw::c_char) -> bool;
24803}
24804unsafe extern "C" {
24805 pub fn BNPluginGetPlatforms(
24806 p: *mut BNPlugin,
24807 count: *mut usize,
24808 ) -> *mut *mut ::std::os::raw::c_char;
24809}
24810unsafe extern "C" {
24811 pub fn BNFreePluginPlatforms(platforms: *mut *mut ::std::os::raw::c_char, count: usize);
24812}
24813unsafe extern "C" {
24814 pub fn BNPluginGetRepository(p: *mut BNPlugin) -> *const ::std::os::raw::c_char;
24815}
24816unsafe extern "C" {
24817 pub fn BNPluginIsBeingDeleted(p: *mut BNPlugin) -> bool;
24818}
24819unsafe extern "C" {
24820 pub fn BNPluginIsBeingUpdated(p: *mut BNPlugin) -> bool;
24821}
24822unsafe extern "C" {
24823 pub fn BNPluginIsRunning(p: *mut BNPlugin) -> bool;
24824}
24825unsafe extern "C" {
24826 pub fn BNPluginIsUpdatePending(p: *mut BNPlugin) -> bool;
24827}
24828unsafe extern "C" {
24829 pub fn BNPluginIsDisablePending(p: *mut BNPlugin) -> bool;
24830}
24831unsafe extern "C" {
24832 pub fn BNPluginIsDeletePending(p: *mut BNPlugin) -> bool;
24833}
24834unsafe extern "C" {
24835 pub fn BNPluginIsUpdateAvailable(p: *mut BNPlugin) -> bool;
24836}
24837unsafe extern "C" {
24838 pub fn BNPluginAreDependenciesBeingInstalled(p: *mut BNPlugin) -> bool;
24839}
24840unsafe extern "C" {
24841 pub fn BNPluginGetProjectData(p: *mut BNPlugin) -> *mut ::std::os::raw::c_char;
24842}
24843unsafe extern "C" {
24844 pub fn BNPluginGetCurrentVersionCreationDate(p: *mut BNPlugin) -> *mut ::std::os::raw::c_char;
24845}
24846unsafe extern "C" {
24847 pub fn BNNewRepositoryReference(r: *mut BNRepository) -> *mut BNRepository;
24848}
24849unsafe extern "C" {
24850 pub fn BNFreeRepository(r: *mut BNRepository);
24851}
24852unsafe extern "C" {
24853 pub fn BNRepositoryGetUrl(r: *mut BNRepository) -> *mut ::std::os::raw::c_char;
24854}
24855unsafe extern "C" {
24856 pub fn BNRepositoryGetRepoPath(r: *mut BNRepository) -> *mut ::std::os::raw::c_char;
24857}
24858unsafe extern "C" {
24859 pub fn BNRepositoryGetPlugins(r: *mut BNRepository, count: *mut usize) -> *mut *mut BNPlugin;
24860}
24861unsafe extern "C" {
24862 pub fn BNFreeRepositoryPluginList(r: *mut *mut BNPlugin);
24863}
24864unsafe extern "C" {
24865 pub fn BNRepositoryFreePluginDirectoryList(
24866 list: *mut *mut ::std::os::raw::c_char,
24867 count: usize,
24868 );
24869}
24870unsafe extern "C" {
24871 pub fn BNRepositoryGetPluginByPath(
24872 r: *mut BNRepository,
24873 pluginPath: *const ::std::os::raw::c_char,
24874 ) -> *mut BNPlugin;
24875}
24876unsafe extern "C" {
24877 pub fn BNRepositoryGetPluginsPath(r: *mut BNRepository) -> *const ::std::os::raw::c_char;
24878}
24879unsafe extern "C" {
24880 pub fn BNRepositoryManagerCheckForUpdates() -> bool;
24881}
24882unsafe extern "C" {
24883 pub fn BNRepositoryManagerGetRepositories(count: *mut usize) -> *mut *mut BNRepository;
24884}
24885unsafe extern "C" {
24886 pub fn BNFreeRepositoryManagerRepositoriesList(r: *mut *mut BNRepository);
24887}
24888unsafe extern "C" {
24889 pub fn BNRepositoryManagerAddRepository(
24890 url: *const ::std::os::raw::c_char,
24891 repoPath: *const ::std::os::raw::c_char,
24892 ) -> bool;
24893}
24894unsafe extern "C" {
24895 pub fn BNRepositoryGetRepositoryByPath(
24896 repoPath: *const ::std::os::raw::c_char,
24897 ) -> *mut BNRepository;
24898}
24899unsafe extern "C" {
24900 pub fn BNRepositoryManagerGetDefaultRepository() -> *mut BNRepository;
24901}
24902unsafe extern "C" {
24903 #[doc = " Components"]
24904 pub fn BNNewComponentReference(component: *mut BNComponent) -> *mut BNComponent;
24905}
24906unsafe extern "C" {
24907 pub fn BNFreeComponent(component: *mut BNComponent);
24908}
24909unsafe extern "C" {
24910 pub fn BNComponentGetContainedFunctions(
24911 component: *mut BNComponent,
24912 count: *mut usize,
24913 ) -> *mut *mut BNFunction;
24914}
24915unsafe extern "C" {
24916 pub fn BNComponentGetContainedComponents(
24917 component: *mut BNComponent,
24918 count: *mut usize,
24919 ) -> *mut *mut BNComponent;
24920}
24921unsafe extern "C" {
24922 pub fn BNComponentGetContainedDataVariables(
24923 component: *mut BNComponent,
24924 count: *mut usize,
24925 ) -> *mut BNDataVariable;
24926}
24927unsafe extern "C" {
24928 pub fn BNComponentGetReferencedDataVariables(
24929 component: *mut BNComponent,
24930 count: *mut usize,
24931 ) -> *mut BNDataVariable;
24932}
24933unsafe extern "C" {
24934 pub fn BNComponentGetReferencedDataVariablesRecursive(
24935 component: *mut BNComponent,
24936 count: *mut usize,
24937 ) -> *mut BNDataVariable;
24938}
24939unsafe extern "C" {
24940 pub fn BNComponentGetReferencedTypes(
24941 component: *mut BNComponent,
24942 count: *mut usize,
24943 ) -> *mut *mut BNType;
24944}
24945unsafe extern "C" {
24946 pub fn BNComponentGetReferencedTypesRecursive(
24947 component: *mut BNComponent,
24948 count: *mut usize,
24949 ) -> *mut *mut BNType;
24950}
24951unsafe extern "C" {
24952 pub fn BNFreeComponents(components: *mut *mut BNComponent, count: usize);
24953}
24954unsafe extern "C" {
24955 pub fn BNComponentFreeReferencedTypes(types: *mut *mut BNType, count: usize);
24956}
24957unsafe extern "C" {
24958 pub fn BNComponentGetParent(component: *mut BNComponent) -> *mut BNComponent;
24959}
24960unsafe extern "C" {
24961 pub fn BNComponentContainsFunction(
24962 component: *mut BNComponent,
24963 function: *mut BNFunction,
24964 ) -> bool;
24965}
24966unsafe extern "C" {
24967 pub fn BNComponentContainsComponent(
24968 parent: *mut BNComponent,
24969 component: *mut BNComponent,
24970 ) -> bool;
24971}
24972unsafe extern "C" {
24973 pub fn BNComponentContainsDataVariable(component: *mut BNComponent, address: u64) -> bool;
24974}
24975unsafe extern "C" {
24976 pub fn BNComponentAddFunctionReference(
24977 component: *mut BNComponent,
24978 function: *mut BNFunction,
24979 ) -> bool;
24980}
24981unsafe extern "C" {
24982 pub fn BNComponentAddComponent(parent: *mut BNComponent, component: *mut BNComponent) -> bool;
24983}
24984unsafe extern "C" {
24985 pub fn BNComponentAddDataVariable(component: *mut BNComponent, address: u64) -> bool;
24986}
24987unsafe extern "C" {
24988 pub fn BNComponentRemoveComponent(component: *mut BNComponent) -> bool;
24989}
24990unsafe extern "C" {
24991 pub fn BNComponentRemoveFunctionReference(
24992 component: *mut BNComponent,
24993 function: *mut BNFunction,
24994 ) -> bool;
24995}
24996unsafe extern "C" {
24997 pub fn BNComponentRemoveAllFunctions(component: *mut BNComponent);
24998}
24999unsafe extern "C" {
25000 pub fn BNComponentRemoveDataVariable(component: *mut BNComponent, address: u64) -> bool;
25001}
25002unsafe extern "C" {
25003 pub fn BNComponentAddAllMembersFromComponent(
25004 component: *mut BNComponent,
25005 fromComponent: *mut BNComponent,
25006 );
25007}
25008unsafe extern "C" {
25009 pub fn BNComponentGetGuid(component: *mut BNComponent) -> *mut ::std::os::raw::c_char;
25010}
25011unsafe extern "C" {
25012 pub fn BNComponentsEqual(a: *mut BNComponent, b: *mut BNComponent) -> bool;
25013}
25014unsafe extern "C" {
25015 pub fn BNComponentsNotEqual(a: *mut BNComponent, b: *mut BNComponent) -> bool;
25016}
25017unsafe extern "C" {
25018 pub fn BNComponentGetDisplayName(component: *mut BNComponent) -> *mut ::std::os::raw::c_char;
25019}
25020unsafe extern "C" {
25021 pub fn BNComponentGetOriginalName(component: *mut BNComponent) -> *mut ::std::os::raw::c_char;
25022}
25023unsafe extern "C" {
25024 pub fn BNComponentSetName(component: *mut BNComponent, name: *const ::std::os::raw::c_char);
25025}
25026unsafe extern "C" {
25027 pub fn BNComponentGetView(component: *mut BNComponent) -> *mut BNBinaryView;
25028}
25029unsafe extern "C" {
25030 #[doc = " LLVM Services APIs"]
25031 pub fn BNLlvmServicesInit();
25032}
25033unsafe extern "C" {
25034 pub fn BNLlvmServicesAssemble(
25035 src: *const ::std::os::raw::c_char,
25036 dialect: ::std::os::raw::c_int,
25037 triplet: *const ::std::os::raw::c_char,
25038 codeModel: ::std::os::raw::c_int,
25039 relocMode: ::std::os::raw::c_int,
25040 outBytes: *mut *mut ::std::os::raw::c_char,
25041 outBytesLen: *mut ::std::os::raw::c_int,
25042 err: *mut *mut ::std::os::raw::c_char,
25043 errLen: *mut ::std::os::raw::c_int,
25044 ) -> ::std::os::raw::c_int;
25045}
25046unsafe extern "C" {
25047 pub fn BNLlvmServicesAssembleFree(
25048 outBytes: *mut ::std::os::raw::c_char,
25049 err: *mut ::std::os::raw::c_char,
25050 );
25051}
25052unsafe extern "C" {
25053 pub fn BNLlvmServicesDisasmInstruction(
25054 triplet: *const ::std::os::raw::c_char,
25055 src: *mut u8,
25056 srcLen: ::std::os::raw::c_int,
25057 addr: u64,
25058 result: *mut ::std::os::raw::c_char,
25059 resultMaxSize: usize,
25060 ) -> ::std::os::raw::c_int;
25061}
25062unsafe extern "C" {
25063 #[doc = " Filesystem functionality"]
25064 pub fn BNDeleteFile(path: *const ::std::os::raw::c_char) -> bool;
25065}
25066unsafe extern "C" {
25067 pub fn BNDeleteDirectory(path: *const ::std::os::raw::c_char) -> bool;
25068}
25069unsafe extern "C" {
25070 pub fn BNCreateDirectory(
25071 path: *const ::std::os::raw::c_char,
25072 createSubdirectories: bool,
25073 ) -> bool;
25074}
25075unsafe extern "C" {
25076 pub fn BNPathExists(path: *const ::std::os::raw::c_char) -> bool;
25077}
25078unsafe extern "C" {
25079 pub fn BNGetParentPath(path: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
25080}
25081unsafe extern "C" {
25082 pub fn BNIsPathDirectory(path: *const ::std::os::raw::c_char) -> bool;
25083}
25084unsafe extern "C" {
25085 pub fn BNIsPathRegularFile(path: *const ::std::os::raw::c_char) -> bool;
25086}
25087unsafe extern "C" {
25088 pub fn BNFileSize(path: *const ::std::os::raw::c_char, size: *mut u64) -> bool;
25089}
25090unsafe extern "C" {
25091 pub fn BNRenameFile(
25092 source: *const ::std::os::raw::c_char,
25093 dest: *const ::std::os::raw::c_char,
25094 ) -> bool;
25095}
25096unsafe extern "C" {
25097 pub fn BNCopyFile(
25098 source: *const ::std::os::raw::c_char,
25099 dest: *const ::std::os::raw::c_char,
25100 ) -> bool;
25101}
25102unsafe extern "C" {
25103 pub fn BNGetFileName(path: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
25104}
25105unsafe extern "C" {
25106 pub fn BNGetFileExtension(path: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
25107}
25108unsafe extern "C" {
25109 pub fn BNGetFilePathsInDirectory(
25110 path: *const ::std::os::raw::c_char,
25111 count: *mut usize,
25112 ) -> *mut *mut ::std::os::raw::c_char;
25113}
25114unsafe extern "C" {
25115 pub fn BNAppendPath(
25116 path: *const ::std::os::raw::c_char,
25117 part: *const ::std::os::raw::c_char,
25118 ) -> *mut ::std::os::raw::c_char;
25119}
25120unsafe extern "C" {
25121 pub fn BNFreePath(path: *mut ::std::os::raw::c_char);
25122}
25123unsafe extern "C" {
25124 pub fn BNGetSystemCacheDirectory() -> *mut ::std::os::raw::c_char;
25125}
25126unsafe extern "C" {
25127 #[doc = " Settings APIs"]
25128 pub fn BNCreateSettings(schemaId: *const ::std::os::raw::c_char) -> *mut BNSettings;
25129}
25130unsafe extern "C" {
25131 pub fn BNNewSettingsReference(settings: *mut BNSettings) -> *mut BNSettings;
25132}
25133unsafe extern "C" {
25134 pub fn BNFreeSettings(settings: *mut BNSettings);
25135}
25136unsafe extern "C" {
25137 pub fn BNLoadSettingsFile(
25138 settings: *mut BNSettings,
25139 fileName: *const ::std::os::raw::c_char,
25140 scope: BNSettingsScope,
25141 view: *mut BNBinaryView,
25142 ) -> bool;
25143}
25144unsafe extern "C" {
25145 pub fn BNSettingsSetResourceId(
25146 settings: *mut BNSettings,
25147 resourceId: *const ::std::os::raw::c_char,
25148 );
25149}
25150unsafe extern "C" {
25151 pub fn BNSettingsRegisterGroup(
25152 settings: *mut BNSettings,
25153 group: *const ::std::os::raw::c_char,
25154 title: *const ::std::os::raw::c_char,
25155 ) -> bool;
25156}
25157unsafe extern "C" {
25158 pub fn BNSettingsRegisterSetting(
25159 settings: *mut BNSettings,
25160 key: *const ::std::os::raw::c_char,
25161 properties: *const ::std::os::raw::c_char,
25162 ) -> bool;
25163}
25164unsafe extern "C" {
25165 pub fn BNSettingsContains(
25166 settings: *mut BNSettings,
25167 key: *const ::std::os::raw::c_char,
25168 ) -> bool;
25169}
25170unsafe extern "C" {
25171 pub fn BNSettingsIsEmpty(
25172 settings: *mut BNSettings,
25173 view: *mut BNBinaryView,
25174 func: *mut BNFunction,
25175 scope: BNSettingsScope,
25176 ) -> bool;
25177}
25178unsafe extern "C" {
25179 pub fn BNSettingsKeysList(
25180 settings: *mut BNSettings,
25181 inoutSize: *mut usize,
25182 ) -> *mut *const ::std::os::raw::c_char;
25183}
25184unsafe extern "C" {
25185 pub fn BNSettingsQueryPropertyString(
25186 settings: *mut BNSettings,
25187 key: *const ::std::os::raw::c_char,
25188 property: *const ::std::os::raw::c_char,
25189 ) -> *mut ::std::os::raw::c_char;
25190}
25191unsafe extern "C" {
25192 pub fn BNSettingsQueryPropertyStringList(
25193 settings: *mut BNSettings,
25194 key: *const ::std::os::raw::c_char,
25195 property: *const ::std::os::raw::c_char,
25196 inoutSize: *mut usize,
25197 ) -> *mut *const ::std::os::raw::c_char;
25198}
25199unsafe extern "C" {
25200 pub fn BNSettingsUpdateProperty(
25201 settings: *mut BNSettings,
25202 key: *const ::std::os::raw::c_char,
25203 property: *const ::std::os::raw::c_char,
25204 ) -> bool;
25205}
25206unsafe extern "C" {
25207 pub fn BNSettingsUpdateBoolProperty(
25208 settings: *mut BNSettings,
25209 key: *const ::std::os::raw::c_char,
25210 property: *const ::std::os::raw::c_char,
25211 value: bool,
25212 ) -> bool;
25213}
25214unsafe extern "C" {
25215 pub fn BNSettingsUpdateDoubleProperty(
25216 settings: *mut BNSettings,
25217 key: *const ::std::os::raw::c_char,
25218 property: *const ::std::os::raw::c_char,
25219 value: f64,
25220 ) -> bool;
25221}
25222unsafe extern "C" {
25223 pub fn BNSettingsUpdateInt64Property(
25224 settings: *mut BNSettings,
25225 key: *const ::std::os::raw::c_char,
25226 property: *const ::std::os::raw::c_char,
25227 value: i64,
25228 ) -> bool;
25229}
25230unsafe extern "C" {
25231 pub fn BNSettingsUpdateUInt64Property(
25232 settings: *mut BNSettings,
25233 key: *const ::std::os::raw::c_char,
25234 property: *const ::std::os::raw::c_char,
25235 value: u64,
25236 ) -> bool;
25237}
25238unsafe extern "C" {
25239 pub fn BNSettingsUpdateStringProperty(
25240 settings: *mut BNSettings,
25241 key: *const ::std::os::raw::c_char,
25242 property: *const ::std::os::raw::c_char,
25243 value: *const ::std::os::raw::c_char,
25244 ) -> bool;
25245}
25246unsafe extern "C" {
25247 pub fn BNSettingsUpdateStringListProperty(
25248 settings: *mut BNSettings,
25249 key: *const ::std::os::raw::c_char,
25250 property: *const ::std::os::raw::c_char,
25251 value: *mut *const ::std::os::raw::c_char,
25252 size: usize,
25253 ) -> bool;
25254}
25255unsafe extern "C" {
25256 pub fn BNSettingsDeserializeSchema(
25257 settings: *mut BNSettings,
25258 schema: *const ::std::os::raw::c_char,
25259 scope: BNSettingsScope,
25260 merge: bool,
25261 ) -> bool;
25262}
25263unsafe extern "C" {
25264 pub fn BNSettingsSerializeSchema(settings: *mut BNSettings) -> *mut ::std::os::raw::c_char;
25265}
25266unsafe extern "C" {
25267 pub fn BNDeserializeSettings(
25268 settings: *mut BNSettings,
25269 contents: *const ::std::os::raw::c_char,
25270 view: *mut BNBinaryView,
25271 func: *mut BNFunction,
25272 scope: BNSettingsScope,
25273 ) -> bool;
25274}
25275unsafe extern "C" {
25276 pub fn BNSerializeSettings(
25277 settings: *mut BNSettings,
25278 view: *mut BNBinaryView,
25279 func: *mut BNFunction,
25280 scope: BNSettingsScope,
25281 ) -> *mut ::std::os::raw::c_char;
25282}
25283unsafe extern "C" {
25284 pub fn BNSettingsReset(
25285 settings: *mut BNSettings,
25286 key: *const ::std::os::raw::c_char,
25287 view: *mut BNBinaryView,
25288 func: *mut BNFunction,
25289 scope: BNSettingsScope,
25290 ) -> bool;
25291}
25292unsafe extern "C" {
25293 pub fn BNSettingsResetAll(
25294 settings: *mut BNSettings,
25295 view: *mut BNBinaryView,
25296 func: *mut BNFunction,
25297 scope: BNSettingsScope,
25298 schemaOnly: bool,
25299 ) -> bool;
25300}
25301unsafe extern "C" {
25302 pub fn BNSettingsGetBool(
25303 settings: *mut BNSettings,
25304 key: *const ::std::os::raw::c_char,
25305 view: *mut BNBinaryView,
25306 func: *mut BNFunction,
25307 scope: *mut BNSettingsScope,
25308 ) -> bool;
25309}
25310unsafe extern "C" {
25311 pub fn BNSettingsGetDouble(
25312 settings: *mut BNSettings,
25313 key: *const ::std::os::raw::c_char,
25314 view: *mut BNBinaryView,
25315 func: *mut BNFunction,
25316 scope: *mut BNSettingsScope,
25317 ) -> f64;
25318}
25319unsafe extern "C" {
25320 pub fn BNSettingsGetInt64(
25321 settings: *mut BNSettings,
25322 key: *const ::std::os::raw::c_char,
25323 view: *mut BNBinaryView,
25324 func: *mut BNFunction,
25325 scope: *mut BNSettingsScope,
25326 ) -> i64;
25327}
25328unsafe extern "C" {
25329 pub fn BNSettingsGetUInt64(
25330 settings: *mut BNSettings,
25331 key: *const ::std::os::raw::c_char,
25332 view: *mut BNBinaryView,
25333 func: *mut BNFunction,
25334 scope: *mut BNSettingsScope,
25335 ) -> u64;
25336}
25337unsafe extern "C" {
25338 pub fn BNSettingsGetString(
25339 settings: *mut BNSettings,
25340 key: *const ::std::os::raw::c_char,
25341 view: *mut BNBinaryView,
25342 func: *mut BNFunction,
25343 scope: *mut BNSettingsScope,
25344 ) -> *mut ::std::os::raw::c_char;
25345}
25346unsafe extern "C" {
25347 pub fn BNSettingsGetStringList(
25348 settings: *mut BNSettings,
25349 key: *const ::std::os::raw::c_char,
25350 view: *mut BNBinaryView,
25351 func: *mut BNFunction,
25352 scope: *mut BNSettingsScope,
25353 inoutSize: *mut usize,
25354 ) -> *mut *const ::std::os::raw::c_char;
25355}
25356unsafe extern "C" {
25357 pub fn BNSettingsGetJson(
25358 settings: *mut BNSettings,
25359 key: *const ::std::os::raw::c_char,
25360 view: *mut BNBinaryView,
25361 func: *mut BNFunction,
25362 scope: *mut BNSettingsScope,
25363 ) -> *mut ::std::os::raw::c_char;
25364}
25365unsafe extern "C" {
25366 pub fn BNSettingsSetBool(
25367 settings: *mut BNSettings,
25368 view: *mut BNBinaryView,
25369 func: *mut BNFunction,
25370 scope: BNSettingsScope,
25371 key: *const ::std::os::raw::c_char,
25372 value: bool,
25373 ) -> bool;
25374}
25375unsafe extern "C" {
25376 pub fn BNSettingsSetDouble(
25377 settings: *mut BNSettings,
25378 view: *mut BNBinaryView,
25379 func: *mut BNFunction,
25380 scope: BNSettingsScope,
25381 key: *const ::std::os::raw::c_char,
25382 value: f64,
25383 ) -> bool;
25384}
25385unsafe extern "C" {
25386 pub fn BNSettingsSetInt64(
25387 settings: *mut BNSettings,
25388 view: *mut BNBinaryView,
25389 func: *mut BNFunction,
25390 scope: BNSettingsScope,
25391 key: *const ::std::os::raw::c_char,
25392 value: i64,
25393 ) -> bool;
25394}
25395unsafe extern "C" {
25396 pub fn BNSettingsSetUInt64(
25397 settings: *mut BNSettings,
25398 view: *mut BNBinaryView,
25399 func: *mut BNFunction,
25400 scope: BNSettingsScope,
25401 key: *const ::std::os::raw::c_char,
25402 value: u64,
25403 ) -> bool;
25404}
25405unsafe extern "C" {
25406 pub fn BNSettingsSetString(
25407 settings: *mut BNSettings,
25408 view: *mut BNBinaryView,
25409 func: *mut BNFunction,
25410 scope: BNSettingsScope,
25411 key: *const ::std::os::raw::c_char,
25412 value: *const ::std::os::raw::c_char,
25413 ) -> bool;
25414}
25415unsafe extern "C" {
25416 pub fn BNSettingsSetStringList(
25417 settings: *mut BNSettings,
25418 view: *mut BNBinaryView,
25419 func: *mut BNFunction,
25420 scope: BNSettingsScope,
25421 key: *const ::std::os::raw::c_char,
25422 value: *mut *const ::std::os::raw::c_char,
25423 size: usize,
25424 ) -> bool;
25425}
25426unsafe extern "C" {
25427 pub fn BNSettingsSetJson(
25428 settings: *mut BNSettings,
25429 view: *mut BNBinaryView,
25430 func: *mut BNFunction,
25431 scope: BNSettingsScope,
25432 key: *const ::std::os::raw::c_char,
25433 value: *const ::std::os::raw::c_char,
25434 ) -> bool;
25435}
25436unsafe extern "C" {
25437 #[doc = " Create Metadata of various types"]
25438 pub fn BNNewMetadataReference(data: *mut BNMetadata) -> *mut BNMetadata;
25439}
25440unsafe extern "C" {
25441 pub fn BNCreateMetadataBooleanData(data: bool) -> *mut BNMetadata;
25442}
25443unsafe extern "C" {
25444 pub fn BNCreateMetadataStringData(data: *const ::std::os::raw::c_char) -> *mut BNMetadata;
25445}
25446unsafe extern "C" {
25447 pub fn BNCreateMetadataUnsignedIntegerData(data: u64) -> *mut BNMetadata;
25448}
25449unsafe extern "C" {
25450 pub fn BNCreateMetadataSignedIntegerData(data: i64) -> *mut BNMetadata;
25451}
25452unsafe extern "C" {
25453 pub fn BNCreateMetadataDoubleData(data: f64) -> *mut BNMetadata;
25454}
25455unsafe extern "C" {
25456 pub fn BNCreateMetadataOfType(type_: BNMetadataType) -> *mut BNMetadata;
25457}
25458unsafe extern "C" {
25459 pub fn BNCreateMetadataRawData(data: *const u8, size: usize) -> *mut BNMetadata;
25460}
25461unsafe extern "C" {
25462 pub fn BNCreateMetadataArray(data: *mut *mut BNMetadata, size: usize) -> *mut BNMetadata;
25463}
25464unsafe extern "C" {
25465 pub fn BNCreateMetadataValueStore(
25466 keys: *mut *const ::std::os::raw::c_char,
25467 values: *mut *mut BNMetadata,
25468 size: usize,
25469 ) -> *mut BNMetadata;
25470}
25471unsafe extern "C" {
25472 pub fn BNCreateMetadataBooleanListData(data: *mut bool, size: usize) -> *mut BNMetadata;
25473}
25474unsafe extern "C" {
25475 pub fn BNCreateMetadataUnsignedIntegerListData(data: *mut u64, size: usize) -> *mut BNMetadata;
25476}
25477unsafe extern "C" {
25478 pub fn BNCreateMetadataSignedIntegerListData(data: *mut i64, size: usize) -> *mut BNMetadata;
25479}
25480unsafe extern "C" {
25481 pub fn BNCreateMetadataDoubleListData(data: *mut f64, size: usize) -> *mut BNMetadata;
25482}
25483unsafe extern "C" {
25484 pub fn BNCreateMetadataStringListData(
25485 data: *mut *const ::std::os::raw::c_char,
25486 size: usize,
25487 ) -> *mut BNMetadata;
25488}
25489unsafe extern "C" {
25490 pub fn BNMetadataIsEqual(lhs: *mut BNMetadata, rhs: *mut BNMetadata) -> bool;
25491}
25492unsafe extern "C" {
25493 pub fn BNMetadataSetValueForKey(
25494 data: *mut BNMetadata,
25495 key: *const ::std::os::raw::c_char,
25496 md: *mut BNMetadata,
25497 ) -> bool;
25498}
25499unsafe extern "C" {
25500 pub fn BNMetadataGetForKey(
25501 data: *mut BNMetadata,
25502 key: *const ::std::os::raw::c_char,
25503 ) -> *mut BNMetadata;
25504}
25505unsafe extern "C" {
25506 pub fn BNMetadataArrayAppend(data: *mut BNMetadata, md: *mut BNMetadata) -> bool;
25507}
25508unsafe extern "C" {
25509 pub fn BNMetadataRemoveKey(data: *mut BNMetadata, key: *const ::std::os::raw::c_char);
25510}
25511unsafe extern "C" {
25512 pub fn BNMetadataSize(data: *mut BNMetadata) -> usize;
25513}
25514unsafe extern "C" {
25515 pub fn BNMetadataGetForIndex(data: *mut BNMetadata, index: usize) -> *mut BNMetadata;
25516}
25517unsafe extern "C" {
25518 pub fn BNMetadataRemoveIndex(data: *mut BNMetadata, index: usize);
25519}
25520unsafe extern "C" {
25521 pub fn BNFreeMetadataArray(data: *mut *mut BNMetadata);
25522}
25523unsafe extern "C" {
25524 pub fn BNFreeMetadataValueStore(data: *mut BNMetadataValueStore);
25525}
25526unsafe extern "C" {
25527 pub fn BNFreeMetadata(data: *mut BNMetadata);
25528}
25529unsafe extern "C" {
25530 pub fn BNFreeMetadataRaw(data: *mut u8);
25531}
25532unsafe extern "C" {
25533 pub fn BNFreeMetadataBooleanList(arg1: *mut bool, arg2: usize);
25534}
25535unsafe extern "C" {
25536 pub fn BNFreeMetadataUnsignedIntegerList(arg1: *mut u64, arg2: usize);
25537}
25538unsafe extern "C" {
25539 pub fn BNFreeMetadataSignedIntegerList(arg1: *mut i64, arg2: usize);
25540}
25541unsafe extern "C" {
25542 pub fn BNFreeMetadataDoubleList(arg1: *mut f64, arg2: usize);
25543}
25544unsafe extern "C" {
25545 pub fn BNFreeMetadataStringList(arg1: *mut *mut ::std::os::raw::c_char, arg2: usize);
25546}
25547unsafe extern "C" {
25548 #[doc = " Retrieve Structured Data"]
25549 pub fn BNMetadataGetBoolean(data: *mut BNMetadata) -> bool;
25550}
25551unsafe extern "C" {
25552 pub fn BNMetadataGetString(data: *mut BNMetadata) -> *mut ::std::os::raw::c_char;
25553}
25554unsafe extern "C" {
25555 pub fn BNMetadataGetUnsignedInteger(data: *mut BNMetadata) -> u64;
25556}
25557unsafe extern "C" {
25558 pub fn BNMetadataGetSignedInteger(data: *mut BNMetadata) -> i64;
25559}
25560unsafe extern "C" {
25561 pub fn BNMetadataGetDouble(data: *mut BNMetadata) -> f64;
25562}
25563unsafe extern "C" {
25564 pub fn BNMetadataGetBooleanList(data: *mut BNMetadata, arg1: *mut usize) -> *mut bool;
25565}
25566unsafe extern "C" {
25567 pub fn BNMetadataGetStringList(
25568 data: *mut BNMetadata,
25569 arg1: *mut usize,
25570 ) -> *mut *mut ::std::os::raw::c_char;
25571}
25572unsafe extern "C" {
25573 pub fn BNMetadataGetUnsignedIntegerList(data: *mut BNMetadata, arg1: *mut usize) -> *mut u64;
25574}
25575unsafe extern "C" {
25576 pub fn BNMetadataGetSignedIntegerList(data: *mut BNMetadata, arg1: *mut usize) -> *mut i64;
25577}
25578unsafe extern "C" {
25579 pub fn BNMetadataGetDoubleList(data: *mut BNMetadata, arg1: *mut usize) -> *mut f64;
25580}
25581unsafe extern "C" {
25582 pub fn BNMetadataGetRaw(data: *mut BNMetadata, size: *mut usize) -> *mut u8;
25583}
25584unsafe extern "C" {
25585 pub fn BNMetadataGetArray(data: *mut BNMetadata, size: *mut usize) -> *mut *mut BNMetadata;
25586}
25587unsafe extern "C" {
25588 pub fn BNMetadataGetValueStore(data: *mut BNMetadata) -> *mut BNMetadataValueStore;
25589}
25590unsafe extern "C" {
25591 pub fn BNMetadataGetJsonString(data: *mut BNMetadata) -> *mut ::std::os::raw::c_char;
25592}
25593unsafe extern "C" {
25594 #[doc = " Query type of Metadata"]
25595 pub fn BNMetadataGetType(data: *mut BNMetadata) -> BNMetadataType;
25596}
25597unsafe extern "C" {
25598 pub fn BNMetadataIsBoolean(data: *mut BNMetadata) -> bool;
25599}
25600unsafe extern "C" {
25601 pub fn BNMetadataIsString(data: *mut BNMetadata) -> bool;
25602}
25603unsafe extern "C" {
25604 pub fn BNMetadataIsUnsignedInteger(data: *mut BNMetadata) -> bool;
25605}
25606unsafe extern "C" {
25607 pub fn BNMetadataIsSignedInteger(data: *mut BNMetadata) -> bool;
25608}
25609unsafe extern "C" {
25610 pub fn BNMetadataIsDouble(data: *mut BNMetadata) -> bool;
25611}
25612unsafe extern "C" {
25613 pub fn BNMetadataIsBooleanList(data: *mut BNMetadata) -> bool;
25614}
25615unsafe extern "C" {
25616 pub fn BNMetadataIsStringList(data: *mut BNMetadata) -> bool;
25617}
25618unsafe extern "C" {
25619 pub fn BNMetadataIsUnsignedIntegerList(data: *mut BNMetadata) -> bool;
25620}
25621unsafe extern "C" {
25622 pub fn BNMetadataIsSignedIntegerList(data: *mut BNMetadata) -> bool;
25623}
25624unsafe extern "C" {
25625 pub fn BNMetadataIsDoubleList(data: *mut BNMetadata) -> bool;
25626}
25627unsafe extern "C" {
25628 pub fn BNMetadataIsRaw(data: *mut BNMetadata) -> bool;
25629}
25630unsafe extern "C" {
25631 pub fn BNMetadataIsArray(data: *mut BNMetadata) -> bool;
25632}
25633unsafe extern "C" {
25634 pub fn BNMetadataIsKeyValueStore(data: *mut BNMetadata) -> bool;
25635}
25636unsafe extern "C" {
25637 #[doc = " Store/Query structured data to/from a BinaryView"]
25638 pub fn BNBinaryViewStoreMetadata(
25639 view: *mut BNBinaryView,
25640 key: *const ::std::os::raw::c_char,
25641 value: *mut BNMetadata,
25642 isAuto: bool,
25643 );
25644}
25645unsafe extern "C" {
25646 pub fn BNBinaryViewQueryMetadata(
25647 view: *mut BNBinaryView,
25648 key: *const ::std::os::raw::c_char,
25649 ) -> *mut BNMetadata;
25650}
25651unsafe extern "C" {
25652 pub fn BNBinaryViewRemoveMetadata(view: *mut BNBinaryView, key: *const ::std::os::raw::c_char);
25653}
25654unsafe extern "C" {
25655 pub fn BNBinaryViewGetMetadata(view: *mut BNBinaryView) -> *mut BNMetadata;
25656}
25657unsafe extern "C" {
25658 pub fn BNBinaryViewGetAutoMetadata(view: *mut BNBinaryView) -> *mut BNMetadata;
25659}
25660unsafe extern "C" {
25661 pub fn BNBinaryViewGetLoadSettingsTypeNames(
25662 view: *mut BNBinaryView,
25663 count: *mut usize,
25664 ) -> *mut *mut ::std::os::raw::c_char;
25665}
25666unsafe extern "C" {
25667 pub fn BNBinaryViewGetLoadSettings(
25668 view: *mut BNBinaryView,
25669 typeName: *const ::std::os::raw::c_char,
25670 ) -> *mut BNSettings;
25671}
25672unsafe extern "C" {
25673 pub fn BNBinaryViewSetLoadSettings(
25674 view: *mut BNBinaryView,
25675 typeName: *const ::std::os::raw::c_char,
25676 settings: *mut BNSettings,
25677 );
25678}
25679unsafe extern "C" {
25680 pub fn BNBinaryViewFinalizeNewSegments(view: *mut BNBinaryView) -> bool;
25681}
25682unsafe extern "C" {
25683 #[doc = " Relocation object methods"]
25684 pub fn BNNewRelocationReference(reloc: *mut BNRelocation) -> *mut BNRelocation;
25685}
25686unsafe extern "C" {
25687 pub fn BNFreeRelocation(reloc: *mut BNRelocation);
25688}
25689unsafe extern "C" {
25690 pub fn BNRelocationGetInfo(reloc: *mut BNRelocation) -> BNRelocationInfo;
25691}
25692unsafe extern "C" {
25693 pub fn BNRelocationGetArchitecture(reloc: *mut BNRelocation) -> *mut BNArchitecture;
25694}
25695unsafe extern "C" {
25696 pub fn BNRelocationGetTarget(reloc: *mut BNRelocation) -> u64;
25697}
25698unsafe extern "C" {
25699 pub fn BNRelocationGetReloc(reloc: *mut BNRelocation) -> u64;
25700}
25701unsafe extern "C" {
25702 pub fn BNRelocationGetSymbol(reloc: *mut BNRelocation) -> *mut BNSymbol;
25703}
25704unsafe extern "C" {
25705 #[doc = " Segment object methods"]
25706 pub fn BNCreateSegment(
25707 start: u64,
25708 length: u64,
25709 dataOffset: u64,
25710 dataLength: u64,
25711 flags: u32,
25712 autoDefined: bool,
25713 ) -> *mut BNSegment;
25714}
25715unsafe extern "C" {
25716 pub fn BNNewSegmentReference(seg: *mut BNSegment) -> *mut BNSegment;
25717}
25718unsafe extern "C" {
25719 pub fn BNFreeSegment(seg: *mut BNSegment);
25720}
25721unsafe extern "C" {
25722 pub fn BNSegmentGetStart(segment: *mut BNSegment) -> u64;
25723}
25724unsafe extern "C" {
25725 pub fn BNSegmentGetLength(segment: *mut BNSegment) -> u64;
25726}
25727unsafe extern "C" {
25728 pub fn BNSegmentGetEnd(segment: *mut BNSegment) -> u64;
25729}
25730unsafe extern "C" {
25731 pub fn BNSegmentGetDataEnd(segment: *mut BNSegment) -> u64;
25732}
25733unsafe extern "C" {
25734 pub fn BNSegmentGetDataOffset(segment: *mut BNSegment) -> u64;
25735}
25736unsafe extern "C" {
25737 pub fn BNSegmentGetDataLength(segment: *mut BNSegment) -> u64;
25738}
25739unsafe extern "C" {
25740 pub fn BNSegmentGetFlags(segment: *mut BNSegment) -> u32;
25741}
25742unsafe extern "C" {
25743 pub fn BNSegmentIsAutoDefined(segment: *mut BNSegment) -> bool;
25744}
25745unsafe extern "C" {
25746 #[doc = " Section object methods"]
25747 pub fn BNNewSectionReference(section: *mut BNSection) -> *mut BNSection;
25748}
25749unsafe extern "C" {
25750 pub fn BNFreeSection(section: *mut BNSection);
25751}
25752unsafe extern "C" {
25753 pub fn BNSectionGetName(section: *mut BNSection) -> *mut ::std::os::raw::c_char;
25754}
25755unsafe extern "C" {
25756 pub fn BNSectionGetType(section: *mut BNSection) -> *mut ::std::os::raw::c_char;
25757}
25758unsafe extern "C" {
25759 pub fn BNSectionGetStart(section: *mut BNSection) -> u64;
25760}
25761unsafe extern "C" {
25762 pub fn BNSectionGetLength(section: *mut BNSection) -> u64;
25763}
25764unsafe extern "C" {
25765 pub fn BNSectionGetEnd(section: *mut BNSection) -> u64;
25766}
25767unsafe extern "C" {
25768 pub fn BNSectionGetLinkedSection(section: *mut BNSection) -> *mut ::std::os::raw::c_char;
25769}
25770unsafe extern "C" {
25771 pub fn BNSectionGetInfoSection(section: *mut BNSection) -> *mut ::std::os::raw::c_char;
25772}
25773unsafe extern "C" {
25774 pub fn BNSectionGetInfoData(section: *mut BNSection) -> u64;
25775}
25776unsafe extern "C" {
25777 pub fn BNSectionGetAlign(section: *mut BNSection) -> u64;
25778}
25779unsafe extern "C" {
25780 pub fn BNSectionGetEntrySize(section: *mut BNSection) -> u64;
25781}
25782unsafe extern "C" {
25783 pub fn BNSectionGetSemantics(section: *mut BNSection) -> BNSectionSemantics;
25784}
25785unsafe extern "C" {
25786 pub fn BNSectionIsAutoDefined(section: *mut BNSection) -> bool;
25787}
25788unsafe extern "C" {
25789 #[doc = " Custom Data Render methods"]
25790 pub fn BNCreateDataRenderer(renderer: *mut BNCustomDataRenderer) -> *mut BNDataRenderer;
25791}
25792unsafe extern "C" {
25793 pub fn BNNewDataRendererReference(renderer: *mut BNDataRenderer) -> *mut BNDataRenderer;
25794}
25795unsafe extern "C" {
25796 pub fn BNIsValidForData(
25797 ctxt: *mut ::std::os::raw::c_void,
25798 view: *mut BNBinaryView,
25799 addr: u64,
25800 type_: *mut BNType,
25801 typeCtx: *mut BNTypeContext,
25802 ctxCount: usize,
25803 ) -> bool;
25804}
25805unsafe extern "C" {
25806 pub fn BNGetLinesForData(
25807 ctxt: *mut ::std::os::raw::c_void,
25808 view: *mut BNBinaryView,
25809 addr: u64,
25810 type_: *mut BNType,
25811 prefix: *const BNInstructionTextToken,
25812 prefixCount: usize,
25813 width: usize,
25814 count: *mut usize,
25815 typeCtx: *mut BNTypeContext,
25816 ctxCount: usize,
25817 language: *const ::std::os::raw::c_char,
25818 ) -> *mut BNDisassemblyTextLine;
25819}
25820unsafe extern "C" {
25821 pub fn BNRenderLinesForData(
25822 data: *mut BNBinaryView,
25823 addr: u64,
25824 type_: *mut BNType,
25825 prefix: *const BNInstructionTextToken,
25826 prefixCount: usize,
25827 width: usize,
25828 count: *mut usize,
25829 typeCtx: *mut BNTypeContext,
25830 ctxCount: usize,
25831 language: *const ::std::os::raw::c_char,
25832 ) -> *mut BNDisassemblyTextLine;
25833}
25834unsafe extern "C" {
25835 pub fn BNFreeDataRenderer(renderer: *mut BNDataRenderer);
25836}
25837unsafe extern "C" {
25838 pub fn BNGetDataRendererContainer() -> *mut BNDataRendererContainer;
25839}
25840unsafe extern "C" {
25841 pub fn BNRegisterGenericDataRenderer(
25842 container: *mut BNDataRendererContainer,
25843 renderer: *mut BNDataRenderer,
25844 );
25845}
25846unsafe extern "C" {
25847 pub fn BNRegisterTypeSpecificDataRenderer(
25848 container: *mut BNDataRendererContainer,
25849 renderer: *mut BNDataRenderer,
25850 );
25851}
25852unsafe extern "C" {
25853 pub fn BNParseExpression(
25854 view: *mut BNBinaryView,
25855 expression: *const ::std::os::raw::c_char,
25856 offset: *mut u64,
25857 here: u64,
25858 errorString: *mut *mut ::std::os::raw::c_char,
25859 ) -> bool;
25860}
25861unsafe extern "C" {
25862 pub fn BNFreeParseError(errorString: *mut ::std::os::raw::c_char);
25863}
25864unsafe extern "C" {
25865 pub fn BNGetCurrentStackTraceString() -> *mut ::std::os::raw::c_char;
25866}
25867unsafe extern "C" {
25868 pub fn BNRegisterObjectRefDebugTrace(
25869 typeName: *const ::std::os::raw::c_char,
25870 ) -> *mut ::std::os::raw::c_void;
25871}
25872unsafe extern "C" {
25873 pub fn BNUnregisterObjectRefDebugTrace(
25874 typeName: *const ::std::os::raw::c_char,
25875 trace: *mut ::std::os::raw::c_void,
25876 );
25877}
25878unsafe extern "C" {
25879 pub fn BNGetMemoryUsageInfo(count: *mut usize) -> *mut BNMemoryUsageInfo;
25880}
25881unsafe extern "C" {
25882 pub fn BNFreeMemoryUsageInfo(info: *mut BNMemoryUsageInfo, count: usize);
25883}
25884unsafe extern "C" {
25885 pub fn BNGetAddressRenderedWidth(addr: u64) -> u32;
25886}
25887unsafe extern "C" {
25888 pub fn BNRustSimplifyStrToFQN(
25889 arg1: *const ::std::os::raw::c_char,
25890 arg2: bool,
25891 ) -> BNQualifiedName;
25892}
25893unsafe extern "C" {
25894 pub fn BNRustSimplifyStrToStr(
25895 arg1: *const ::std::os::raw::c_char,
25896 ) -> *mut ::std::os::raw::c_char;
25897}
25898unsafe extern "C" {
25899 pub fn BNRegisterDebugInfoParser(
25900 name: *const ::std::os::raw::c_char,
25901 isValid: ::std::option::Option<
25902 unsafe extern "C" fn(
25903 arg1: *mut ::std::os::raw::c_void,
25904 arg2: *mut BNBinaryView,
25905 ) -> bool,
25906 >,
25907 parseInfo: ::std::option::Option<
25908 unsafe extern "C" fn(
25909 arg1: *mut ::std::os::raw::c_void,
25910 arg2: *mut BNDebugInfo,
25911 arg3: *mut BNBinaryView,
25912 arg4: *mut BNBinaryView,
25913 arg5: BNProgressFunction,
25914 arg6: *mut ::std::os::raw::c_void,
25915 ) -> bool,
25916 >,
25917 context: *mut ::std::os::raw::c_void,
25918 ) -> *mut BNDebugInfoParser;
25919}
25920unsafe extern "C" {
25921 pub fn BNUnregisterDebugInfoParser(rawName: *const ::std::os::raw::c_char);
25922}
25923unsafe extern "C" {
25924 pub fn BNGetDebugInfoParserByName(
25925 name: *const ::std::os::raw::c_char,
25926 ) -> *mut BNDebugInfoParser;
25927}
25928unsafe extern "C" {
25929 pub fn BNGetDebugInfoParsers(count: *mut usize) -> *mut *mut BNDebugInfoParser;
25930}
25931unsafe extern "C" {
25932 pub fn BNGetDebugInfoParsersForView(
25933 view: *mut BNBinaryView,
25934 count: *mut usize,
25935 ) -> *mut *mut BNDebugInfoParser;
25936}
25937unsafe extern "C" {
25938 pub fn BNGetDebugInfoParserName(parser: *mut BNDebugInfoParser) -> *mut ::std::os::raw::c_char;
25939}
25940unsafe extern "C" {
25941 pub fn BNIsDebugInfoParserValidForView(
25942 parser: *mut BNDebugInfoParser,
25943 view: *mut BNBinaryView,
25944 ) -> bool;
25945}
25946unsafe extern "C" {
25947 pub fn BNParseDebugInfo(
25948 parser: *mut BNDebugInfoParser,
25949 view: *mut BNBinaryView,
25950 debugFile: *mut BNBinaryView,
25951 existingDebugInfo: *mut BNDebugInfo,
25952 progress: BNProgressFunction,
25953 progressCtxt: *mut ::std::os::raw::c_void,
25954 ) -> *mut BNDebugInfo;
25955}
25956unsafe extern "C" {
25957 pub fn BNNewDebugInfoParserReference(parser: *mut BNDebugInfoParser) -> *mut BNDebugInfoParser;
25958}
25959unsafe extern "C" {
25960 pub fn BNFreeDebugInfoParserReference(parser: *mut BNDebugInfoParser);
25961}
25962unsafe extern "C" {
25963 pub fn BNFreeDebugInfoParserList(parsers: *mut *mut BNDebugInfoParser, count: usize);
25964}
25965unsafe extern "C" {
25966 pub fn BNNewDebugInfoReference(debugInfo: *mut BNDebugInfo) -> *mut BNDebugInfo;
25967}
25968unsafe extern "C" {
25969 pub fn BNFreeDebugInfoReference(debugInfo: *mut BNDebugInfo);
25970}
25971unsafe extern "C" {
25972 pub fn BNGetDebugParserNames(
25973 debugInfo: *mut BNDebugInfo,
25974 count: *mut usize,
25975 ) -> *mut *mut ::std::os::raw::c_char;
25976}
25977unsafe extern "C" {
25978 pub fn BNGetDebugInfoTypeContainer(
25979 debugInfo: *mut BNDebugInfo,
25980 parserName: *const ::std::os::raw::c_char,
25981 ) -> *mut BNTypeContainer;
25982}
25983unsafe extern "C" {
25984 pub fn BNRemoveDebugParserInfo(
25985 debugInfo: *mut BNDebugInfo,
25986 parserName: *const ::std::os::raw::c_char,
25987 ) -> bool;
25988}
25989unsafe extern "C" {
25990 pub fn BNRemoveDebugParserTypes(
25991 debugInfo: *mut BNDebugInfo,
25992 parserName: *const ::std::os::raw::c_char,
25993 ) -> bool;
25994}
25995unsafe extern "C" {
25996 pub fn BNRemoveDebugParserFunctions(
25997 debugInfo: *mut BNDebugInfo,
25998 parserName: *const ::std::os::raw::c_char,
25999 ) -> bool;
26000}
26001unsafe extern "C" {
26002 pub fn BNRemoveDebugParserDataVariables(
26003 debugInfo: *mut BNDebugInfo,
26004 parserName: *const ::std::os::raw::c_char,
26005 ) -> bool;
26006}
26007unsafe extern "C" {
26008 pub fn BNAddDebugType(
26009 debugInfo: *mut BNDebugInfo,
26010 name: *const ::std::os::raw::c_char,
26011 type_: *const BNType,
26012 components: *mut *const ::std::os::raw::c_char,
26013 components_count: usize,
26014 ) -> bool;
26015}
26016unsafe extern "C" {
26017 pub fn BNGetDebugTypes(
26018 debugInfo: *mut BNDebugInfo,
26019 name: *const ::std::os::raw::c_char,
26020 count: *mut usize,
26021 ) -> *mut BNNameAndType;
26022}
26023unsafe extern "C" {
26024 pub fn BNGetDebugTypeByName(
26025 debugInfo: *mut BNDebugInfo,
26026 parserName: *const ::std::os::raw::c_char,
26027 typeName: *const ::std::os::raw::c_char,
26028 ) -> *mut BNType;
26029}
26030unsafe extern "C" {
26031 pub fn BNGetDebugTypesByName(
26032 debugInfo: *mut BNDebugInfo,
26033 typeName: *const ::std::os::raw::c_char,
26034 count: *mut usize,
26035 ) -> *mut BNNameAndType;
26036}
26037unsafe extern "C" {
26038 pub fn BNRemoveDebugTypeByName(
26039 debugInfo: *mut BNDebugInfo,
26040 parserName: *const ::std::os::raw::c_char,
26041 typeName: *const ::std::os::raw::c_char,
26042 ) -> bool;
26043}
26044unsafe extern "C" {
26045 pub fn BNFreeDebugTypes(types: *mut BNNameAndType, count: usize);
26046}
26047unsafe extern "C" {
26048 pub fn BNAddDebugFunction(debugInfo: *mut BNDebugInfo, func: *mut BNDebugFunctionInfo) -> bool;
26049}
26050unsafe extern "C" {
26051 pub fn BNGetDebugFunctions(
26052 debugInfo: *mut BNDebugInfo,
26053 name: *const ::std::os::raw::c_char,
26054 count: *mut usize,
26055 ) -> *mut BNDebugFunctionInfo;
26056}
26057unsafe extern "C" {
26058 pub fn BNRemoveDebugFunctionByIndex(
26059 debugInfo: *mut BNDebugInfo,
26060 parserName: *const ::std::os::raw::c_char,
26061 index: usize,
26062 ) -> bool;
26063}
26064unsafe extern "C" {
26065 pub fn BNFreeDebugFunctions(functions: *mut BNDebugFunctionInfo, count: usize);
26066}
26067unsafe extern "C" {
26068 pub fn BNAddDebugDataVariable(
26069 debugInfo: *mut BNDebugInfo,
26070 address: u64,
26071 type_: *const BNType,
26072 name: *const ::std::os::raw::c_char,
26073 components: *mut *const ::std::os::raw::c_char,
26074 components_count: usize,
26075 ) -> bool;
26076}
26077unsafe extern "C" {
26078 pub fn BNAddDebugDataVariableInfo(
26079 debugInfo: *mut BNDebugInfo,
26080 var: *const BNDataVariableAndName,
26081 ) -> bool;
26082}
26083unsafe extern "C" {
26084 pub fn BNGetDebugDataVariables(
26085 debugInfo: *mut BNDebugInfo,
26086 name: *const ::std::os::raw::c_char,
26087 count: *mut usize,
26088 ) -> *mut BNDataVariableAndName;
26089}
26090unsafe extern "C" {
26091 pub fn BNGetDebugDataVariableByName(
26092 debugInfo: *mut BNDebugInfo,
26093 parserName: *const ::std::os::raw::c_char,
26094 variableName: *const ::std::os::raw::c_char,
26095 var: *mut BNDataVariableAndName,
26096 ) -> bool;
26097}
26098unsafe extern "C" {
26099 pub fn BNGetDebugDataVariableByAddress(
26100 debugInfo: *mut BNDebugInfo,
26101 parserName: *const ::std::os::raw::c_char,
26102 address: u64,
26103 var: *mut BNDataVariableAndName,
26104 ) -> bool;
26105}
26106unsafe extern "C" {
26107 pub fn BNGetDebugDataVariablesByName(
26108 debugInfo: *mut BNDebugInfo,
26109 variableName: *const ::std::os::raw::c_char,
26110 count: *mut usize,
26111 ) -> *mut BNDataVariableAndName;
26112}
26113unsafe extern "C" {
26114 pub fn BNGetDebugDataVariablesByAddress(
26115 debugInfo: *mut BNDebugInfo,
26116 address: u64,
26117 count: *mut usize,
26118 ) -> *mut BNDataVariableAndNameAndDebugParser;
26119}
26120unsafe extern "C" {
26121 pub fn BNRemoveDebugDataVariableByAddress(
26122 debugInfo: *mut BNDebugInfo,
26123 parserName: *const ::std::os::raw::c_char,
26124 address: u64,
26125 ) -> bool;
26126}
26127unsafe extern "C" {
26128 #[doc = " Secrets providers"]
26129 pub fn BNRegisterSecretsProvider(
26130 name: *const ::std::os::raw::c_char,
26131 callbacks: *mut BNSecretsProviderCallbacks,
26132 ) -> *mut BNSecretsProvider;
26133}
26134unsafe extern "C" {
26135 pub fn BNGetSecretsProviderList(count: *mut usize) -> *mut *mut BNSecretsProvider;
26136}
26137unsafe extern "C" {
26138 pub fn BNFreeSecretsProviderList(providers: *mut *mut BNSecretsProvider);
26139}
26140unsafe extern "C" {
26141 pub fn BNGetSecretsProviderByName(
26142 name: *const ::std::os::raw::c_char,
26143 ) -> *mut BNSecretsProvider;
26144}
26145unsafe extern "C" {
26146 pub fn BNGetSecretsProviderName(
26147 provider: *mut BNSecretsProvider,
26148 ) -> *mut ::std::os::raw::c_char;
26149}
26150unsafe extern "C" {
26151 pub fn BNSecretsProviderHasData(
26152 provider: *mut BNSecretsProvider,
26153 key: *const ::std::os::raw::c_char,
26154 ) -> bool;
26155}
26156unsafe extern "C" {
26157 pub fn BNGetSecretsProviderData(
26158 provider: *mut BNSecretsProvider,
26159 key: *const ::std::os::raw::c_char,
26160 ) -> *mut ::std::os::raw::c_char;
26161}
26162unsafe extern "C" {
26163 pub fn BNStoreSecretsProviderData(
26164 provider: *mut BNSecretsProvider,
26165 key: *const ::std::os::raw::c_char,
26166 data: *const ::std::os::raw::c_char,
26167 ) -> bool;
26168}
26169unsafe extern "C" {
26170 pub fn BNDeleteSecretsProviderData(
26171 provider: *mut BNSecretsProvider,
26172 key: *const ::std::os::raw::c_char,
26173 ) -> bool;
26174}
26175unsafe extern "C" {
26176 pub fn BNCreateSymbolQueue() -> *mut BNSymbolQueue;
26177}
26178unsafe extern "C" {
26179 pub fn BNDestroySymbolQueue(queue: *mut BNSymbolQueue);
26180}
26181unsafe extern "C" {
26182 pub fn BNAppendSymbolQueue(
26183 queue: *mut BNSymbolQueue,
26184 resolve: ::std::option::Option<
26185 unsafe extern "C" fn(
26186 ctxt: *mut ::std::os::raw::c_void,
26187 symbol: *mut *mut BNSymbol,
26188 type_: *mut BNTypeWithConfidence,
26189 ),
26190 >,
26191 resolveContext: *mut ::std::os::raw::c_void,
26192 add: ::std::option::Option<
26193 unsafe extern "C" fn(
26194 ctxt: *mut ::std::os::raw::c_void,
26195 symbol: *mut BNSymbol,
26196 type_: *mut BNTypeWithConfidence,
26197 ),
26198 >,
26199 addContext: *mut ::std::os::raw::c_void,
26200 );
26201}
26202unsafe extern "C" {
26203 pub fn BNProcessSymbolQueue(queue: *mut BNSymbolQueue);
26204}
26205unsafe extern "C" {
26206 pub fn BNCoreEnumToString(
26207 enumName: *const ::std::os::raw::c_char,
26208 value: usize,
26209 result: *mut *mut ::std::os::raw::c_char,
26210 ) -> bool;
26211}
26212unsafe extern "C" {
26213 pub fn BNCoreEnumFromString(
26214 enumName: *const ::std::os::raw::c_char,
26215 value: *const ::std::os::raw::c_char,
26216 result: *mut usize,
26217 ) -> bool;
26218}
26219unsafe extern "C" {
26220 #[doc = " Type Archives"]
26221 pub fn BNNewTypeArchiveReference(archive: *mut BNTypeArchive) -> *mut BNTypeArchive;
26222}
26223unsafe extern "C" {
26224 pub fn BNFreeTypeArchiveReference(archive: *mut BNTypeArchive);
26225}
26226unsafe extern "C" {
26227 pub fn BNFreeTypeArchiveList(archives: *mut *mut BNTypeArchive, count: usize);
26228}
26229unsafe extern "C" {
26230 pub fn BNOpenTypeArchive(path: *const ::std::os::raw::c_char) -> *mut BNTypeArchive;
26231}
26232unsafe extern "C" {
26233 pub fn BNCreateTypeArchive(
26234 path: *const ::std::os::raw::c_char,
26235 platform: *mut BNPlatform,
26236 ) -> *mut BNTypeArchive;
26237}
26238unsafe extern "C" {
26239 pub fn BNCreateTypeArchiveWithId(
26240 path: *const ::std::os::raw::c_char,
26241 platform: *mut BNPlatform,
26242 id: *const ::std::os::raw::c_char,
26243 ) -> *mut BNTypeArchive;
26244}
26245unsafe extern "C" {
26246 pub fn BNLookupTypeArchiveById(id: *const ::std::os::raw::c_char) -> *mut BNTypeArchive;
26247}
26248unsafe extern "C" {
26249 pub fn BNCloseTypeArchive(archive: *mut BNTypeArchive);
26250}
26251unsafe extern "C" {
26252 pub fn BNIsTypeArchive(path: *const ::std::os::raw::c_char) -> bool;
26253}
26254unsafe extern "C" {
26255 pub fn BNGetTypeArchiveId(archive: *mut BNTypeArchive) -> *mut ::std::os::raw::c_char;
26256}
26257unsafe extern "C" {
26258 pub fn BNGetTypeArchivePath(archive: *mut BNTypeArchive) -> *mut ::std::os::raw::c_char;
26259}
26260unsafe extern "C" {
26261 pub fn BNGetTypeArchivePlatform(archive: *mut BNTypeArchive) -> *mut BNPlatform;
26262}
26263unsafe extern "C" {
26264 pub fn BNGetTypeArchiveCurrentSnapshotId(
26265 archive: *mut BNTypeArchive,
26266 ) -> *mut ::std::os::raw::c_char;
26267}
26268unsafe extern "C" {
26269 pub fn BNSetTypeArchiveCurrentSnapshot(
26270 archive: *mut BNTypeArchive,
26271 id: *const ::std::os::raw::c_char,
26272 );
26273}
26274unsafe extern "C" {
26275 pub fn BNGetTypeArchiveAllSnapshotIds(
26276 archive: *mut BNTypeArchive,
26277 count: *mut usize,
26278 ) -> *mut *mut ::std::os::raw::c_char;
26279}
26280unsafe extern "C" {
26281 pub fn BNGetTypeArchiveSnapshotParentIds(
26282 archive: *mut BNTypeArchive,
26283 id: *const ::std::os::raw::c_char,
26284 count: *mut usize,
26285 ) -> *mut *mut ::std::os::raw::c_char;
26286}
26287unsafe extern "C" {
26288 pub fn BNGetTypeArchiveSnapshotChildIds(
26289 archive: *mut BNTypeArchive,
26290 id: *const ::std::os::raw::c_char,
26291 count: *mut usize,
26292 ) -> *mut *mut ::std::os::raw::c_char;
26293}
26294unsafe extern "C" {
26295 pub fn BNGetTypeArchiveTypeContainer(archive: *mut BNTypeArchive) -> *mut BNTypeContainer;
26296}
26297unsafe extern "C" {
26298 pub fn BNAddTypeArchiveTypes(
26299 archive: *mut BNTypeArchive,
26300 types: *const BNQualifiedNameAndType,
26301 count: usize,
26302 ) -> bool;
26303}
26304unsafe extern "C" {
26305 pub fn BNRenameTypeArchiveType(
26306 archive: *mut BNTypeArchive,
26307 id: *const ::std::os::raw::c_char,
26308 newName: *const BNQualifiedName,
26309 ) -> bool;
26310}
26311unsafe extern "C" {
26312 pub fn BNDeleteTypeArchiveType(
26313 archive: *mut BNTypeArchive,
26314 id: *const ::std::os::raw::c_char,
26315 ) -> bool;
26316}
26317unsafe extern "C" {
26318 pub fn BNGetTypeArchiveTypeById(
26319 archive: *mut BNTypeArchive,
26320 id: *const ::std::os::raw::c_char,
26321 snapshot: *const ::std::os::raw::c_char,
26322 ) -> *mut BNType;
26323}
26324unsafe extern "C" {
26325 pub fn BNGetTypeArchiveTypeByName(
26326 archive: *mut BNTypeArchive,
26327 name: *const BNQualifiedName,
26328 snapshot: *const ::std::os::raw::c_char,
26329 ) -> *mut BNType;
26330}
26331unsafe extern "C" {
26332 pub fn BNGetTypeArchiveTypeId(
26333 archive: *mut BNTypeArchive,
26334 name: *const BNQualifiedName,
26335 snapshot: *const ::std::os::raw::c_char,
26336 ) -> *mut ::std::os::raw::c_char;
26337}
26338unsafe extern "C" {
26339 pub fn BNGetTypeArchiveTypeName(
26340 archive: *mut BNTypeArchive,
26341 id: *const ::std::os::raw::c_char,
26342 snapshot: *const ::std::os::raw::c_char,
26343 ) -> BNQualifiedName;
26344}
26345unsafe extern "C" {
26346 pub fn BNGetTypeArchiveTypes(
26347 archive: *mut BNTypeArchive,
26348 snapshot: *const ::std::os::raw::c_char,
26349 count: *mut usize,
26350 ) -> *mut BNQualifiedNameTypeAndId;
26351}
26352unsafe extern "C" {
26353 pub fn BNGetTypeArchiveTypeIds(
26354 archive: *mut BNTypeArchive,
26355 snapshot: *const ::std::os::raw::c_char,
26356 count: *mut usize,
26357 ) -> *mut *mut ::std::os::raw::c_char;
26358}
26359unsafe extern "C" {
26360 pub fn BNGetTypeArchiveTypeNames(
26361 archive: *mut BNTypeArchive,
26362 snapshot: *const ::std::os::raw::c_char,
26363 count: *mut usize,
26364 ) -> *mut BNQualifiedName;
26365}
26366unsafe extern "C" {
26367 pub fn BNGetTypeArchiveTypeNamesAndIds(
26368 archive: *mut BNTypeArchive,
26369 snapshot: *const ::std::os::raw::c_char,
26370 names: *mut *mut BNQualifiedName,
26371 ids: *mut *mut *mut ::std::os::raw::c_char,
26372 count: *mut usize,
26373 ) -> bool;
26374}
26375unsafe extern "C" {
26376 pub fn BNGetTypeArchiveOutgoingDirectTypeReferences(
26377 archive: *mut BNTypeArchive,
26378 id: *const ::std::os::raw::c_char,
26379 snapshot: *const ::std::os::raw::c_char,
26380 count: *mut usize,
26381 ) -> *mut *mut ::std::os::raw::c_char;
26382}
26383unsafe extern "C" {
26384 pub fn BNGetTypeArchiveOutgoingRecursiveTypeReferences(
26385 archive: *mut BNTypeArchive,
26386 id: *const ::std::os::raw::c_char,
26387 snapshot: *const ::std::os::raw::c_char,
26388 count: *mut usize,
26389 ) -> *mut *mut ::std::os::raw::c_char;
26390}
26391unsafe extern "C" {
26392 pub fn BNGetTypeArchiveIncomingDirectTypeReferences(
26393 archive: *mut BNTypeArchive,
26394 id: *const ::std::os::raw::c_char,
26395 snapshot: *const ::std::os::raw::c_char,
26396 count: *mut usize,
26397 ) -> *mut *mut ::std::os::raw::c_char;
26398}
26399unsafe extern "C" {
26400 pub fn BNGetTypeArchiveIncomingRecursiveTypeReferences(
26401 archive: *mut BNTypeArchive,
26402 id: *const ::std::os::raw::c_char,
26403 snapshot: *const ::std::os::raw::c_char,
26404 count: *mut usize,
26405 ) -> *mut *mut ::std::os::raw::c_char;
26406}
26407unsafe extern "C" {
26408 pub fn BNTypeArchiveNewSnapshotTransaction(
26409 archive: *mut BNTypeArchive,
26410 func: ::std::option::Option<
26411 unsafe extern "C" fn(
26412 context: *mut ::std::os::raw::c_void,
26413 id: *const ::std::os::raw::c_char,
26414 ) -> bool,
26415 >,
26416 context: *mut ::std::os::raw::c_void,
26417 parents: *const *const ::std::os::raw::c_char,
26418 parentCount: usize,
26419 ) -> *mut ::std::os::raw::c_char;
26420}
26421unsafe extern "C" {
26422 pub fn BNRegisterTypeArchiveNotification(
26423 archive: *mut BNTypeArchive,
26424 notification: *mut BNTypeArchiveNotification,
26425 );
26426}
26427unsafe extern "C" {
26428 pub fn BNUnregisterTypeArchiveNotification(
26429 archive: *mut BNTypeArchive,
26430 notification: *mut BNTypeArchiveNotification,
26431 );
26432}
26433unsafe extern "C" {
26434 pub fn BNTypeArchiveStoreMetadata(
26435 archive: *mut BNTypeArchive,
26436 key: *const ::std::os::raw::c_char,
26437 value: *mut BNMetadata,
26438 ) -> bool;
26439}
26440unsafe extern "C" {
26441 pub fn BNTypeArchiveQueryMetadata(
26442 archive: *mut BNTypeArchive,
26443 key: *const ::std::os::raw::c_char,
26444 ) -> *mut BNMetadata;
26445}
26446unsafe extern "C" {
26447 pub fn BNTypeArchiveRemoveMetadata(
26448 archive: *mut BNTypeArchive,
26449 key: *const ::std::os::raw::c_char,
26450 ) -> bool;
26451}
26452unsafe extern "C" {
26453 pub fn BNTypeArchiveSerializeSnapshot(
26454 archive: *mut BNTypeArchive,
26455 snapshot: *const ::std::os::raw::c_char,
26456 ) -> *mut BNDataBuffer;
26457}
26458unsafe extern "C" {
26459 pub fn BNTypeArchiveDeserializeSnapshot(
26460 archive: *mut BNTypeArchive,
26461 buffer: *mut BNDataBuffer,
26462 ) -> *mut ::std::os::raw::c_char;
26463}
26464unsafe extern "C" {
26465 pub fn BNTypeArchiveMergeSnapshots(
26466 archive: *mut BNTypeArchive,
26467 baseSnapshot: *const ::std::os::raw::c_char,
26468 firstSnapshot: *const ::std::os::raw::c_char,
26469 secondSnapshot: *const ::std::os::raw::c_char,
26470 mergeConflictKeysIn: *const *const ::std::os::raw::c_char,
26471 mergeConflictValuesIn: *const *const ::std::os::raw::c_char,
26472 mergeConflictCountIn: usize,
26473 mergeConflictsOut: *mut *mut *mut ::std::os::raw::c_char,
26474 mergeConflictCountOut: *mut usize,
26475 result: *mut *mut ::std::os::raw::c_char,
26476 progress: BNProgressFunction,
26477 context: *mut ::std::os::raw::c_void,
26478 ) -> bool;
26479}
26480unsafe extern "C" {
26481 pub fn BNBinaryViewAttachTypeArchive(
26482 view: *mut BNBinaryView,
26483 id: *const ::std::os::raw::c_char,
26484 path: *const ::std::os::raw::c_char,
26485 ) -> *mut BNTypeArchive;
26486}
26487unsafe extern "C" {
26488 pub fn BNBinaryViewDetachTypeArchive(
26489 view: *mut BNBinaryView,
26490 id: *const ::std::os::raw::c_char,
26491 ) -> bool;
26492}
26493unsafe extern "C" {
26494 pub fn BNBinaryViewGetTypeArchive(
26495 view: *mut BNBinaryView,
26496 id: *const ::std::os::raw::c_char,
26497 ) -> *mut BNTypeArchive;
26498}
26499unsafe extern "C" {
26500 pub fn BNBinaryViewGetTypeArchives(
26501 view: *mut BNBinaryView,
26502 ids: *mut *mut *mut ::std::os::raw::c_char,
26503 paths: *mut *mut *mut ::std::os::raw::c_char,
26504 ) -> usize;
26505}
26506unsafe extern "C" {
26507 pub fn BNBinaryViewGetTypeArchivePath(
26508 view: *mut BNBinaryView,
26509 id: *const ::std::os::raw::c_char,
26510 ) -> *mut ::std::os::raw::c_char;
26511}
26512unsafe extern "C" {
26513 pub fn BNBinaryViewGetTypeArchiveTypeNameList(
26514 view: *mut BNBinaryView,
26515 names: *mut *mut BNQualifiedName,
26516 ) -> usize;
26517}
26518unsafe extern "C" {
26519 pub fn BNBinaryViewGetTypeArchiveTypeNames(
26520 view: *mut BNBinaryView,
26521 name: *mut BNQualifiedName,
26522 archiveIds: *mut *mut *mut ::std::os::raw::c_char,
26523 archiveTypeIds: *mut *mut *mut ::std::os::raw::c_char,
26524 ) -> usize;
26525}
26526unsafe extern "C" {
26527 pub fn BNBinaryViewGetAssociatedTypeArchiveTypes(
26528 view: *mut BNBinaryView,
26529 typeIds: *mut *mut *mut ::std::os::raw::c_char,
26530 archiveIds: *mut *mut *mut ::std::os::raw::c_char,
26531 archiveTypeIds: *mut *mut *mut ::std::os::raw::c_char,
26532 ) -> usize;
26533}
26534unsafe extern "C" {
26535 pub fn BNBinaryViewGetAssociatedTypesFromArchive(
26536 view: *mut BNBinaryView,
26537 archiveId: *const ::std::os::raw::c_char,
26538 typeIds: *mut *mut *mut ::std::os::raw::c_char,
26539 archiveTypeIds: *mut *mut *mut ::std::os::raw::c_char,
26540 ) -> usize;
26541}
26542unsafe extern "C" {
26543 pub fn BNBinaryViewGetAssociatedTypeArchiveTypeTarget(
26544 view: *mut BNBinaryView,
26545 typeId: *const ::std::os::raw::c_char,
26546 archiveId: *mut *mut ::std::os::raw::c_char,
26547 archiveTypeId: *mut *mut ::std::os::raw::c_char,
26548 ) -> bool;
26549}
26550unsafe extern "C" {
26551 pub fn BNBinaryViewGetAssociatedTypeArchiveTypeSource(
26552 view: *mut BNBinaryView,
26553 archiveId: *const ::std::os::raw::c_char,
26554 archiveTypeId: *const ::std::os::raw::c_char,
26555 typeId: *mut *mut ::std::os::raw::c_char,
26556 ) -> bool;
26557}
26558unsafe extern "C" {
26559 pub fn BNBinaryViewGetTypeArchiveSyncStatus(
26560 view: *mut BNBinaryView,
26561 typeId: *const ::std::os::raw::c_char,
26562 ) -> BNSyncStatus;
26563}
26564unsafe extern "C" {
26565 pub fn BNBinaryViewDisassociateTypeArchiveType(
26566 view: *mut BNBinaryView,
26567 typeId: *const ::std::os::raw::c_char,
26568 ) -> bool;
26569}
26570unsafe extern "C" {
26571 pub fn BNBinaryViewPullTypeArchiveTypes(
26572 view: *mut BNBinaryView,
26573 archiveId: *const ::std::os::raw::c_char,
26574 archiveTypeIds: *const *const ::std::os::raw::c_char,
26575 archiveTypeIdCount: usize,
26576 updatedArchiveTypeIds: *mut *mut *mut ::std::os::raw::c_char,
26577 updatedAnalysisTypeIds: *mut *mut *mut ::std::os::raw::c_char,
26578 updatedTypeCount: *mut usize,
26579 ) -> bool;
26580}
26581unsafe extern "C" {
26582 pub fn BNBinaryViewPushTypeArchiveTypes(
26583 view: *mut BNBinaryView,
26584 archiveId: *const ::std::os::raw::c_char,
26585 typeIds: *const *const ::std::os::raw::c_char,
26586 typeIdCount: usize,
26587 updatedAnalysisTypeIds: *mut *mut *mut ::std::os::raw::c_char,
26588 updatedArchiveTypeIds: *mut *mut *mut ::std::os::raw::c_char,
26589 updatedTypeCount: *mut usize,
26590 ) -> bool;
26591}
26592unsafe extern "C" {
26593 #[doc = " Base Address Detection"]
26594 pub fn BNCreateBaseAddressDetection(view: *mut BNBinaryView) -> *mut BNBaseAddressDetection;
26595}
26596unsafe extern "C" {
26597 pub fn BNDetectBaseAddress(
26598 bad: *mut BNBaseAddressDetection,
26599 settings: *mut BNBaseAddressDetectionSettings,
26600 ) -> bool;
26601}
26602unsafe extern "C" {
26603 pub fn BNGetBaseAddressDetectionScores(
26604 bad: *mut BNBaseAddressDetection,
26605 scores: *mut BNBaseAddressDetectionScore,
26606 count: usize,
26607 confidence: *mut BNBaseAddressDetectionConfidence,
26608 lastTestedBaseAddress: *mut u64,
26609 ) -> usize;
26610}
26611unsafe extern "C" {
26612 pub fn BNGetBaseAddressDetectionReasons(
26613 bad: *mut BNBaseAddressDetection,
26614 baseAddress: u64,
26615 count: *mut usize,
26616 ) -> *mut BNBaseAddressDetectionReason;
26617}
26618unsafe extern "C" {
26619 pub fn BNFreeBaseAddressDetectionReasons(reasons: *mut BNBaseAddressDetectionReason);
26620}
26621unsafe extern "C" {
26622 pub fn BNAbortBaseAddressDetection(bad: *mut BNBaseAddressDetection);
26623}
26624unsafe extern "C" {
26625 pub fn BNIsBaseAddressDetectionAborted(bad: *mut BNBaseAddressDetection) -> bool;
26626}
26627unsafe extern "C" {
26628 pub fn BNFreeBaseAddressDetection(bad: *mut BNBaseAddressDetection);
26629}
26630unsafe extern "C" {
26631 #[doc = " Unicode"]
26632 pub fn BNUnicodeUTF16ToUTF8(utf16: *const u8, len: usize) -> *mut ::std::os::raw::c_char;
26633}
26634unsafe extern "C" {
26635 pub fn BNUnicodeUTF32ToUTF8(utf32: *const u8) -> *mut ::std::os::raw::c_char;
26636}
26637unsafe extern "C" {
26638 pub fn BNUnicodeGetBlockRange(
26639 name: *const ::std::os::raw::c_char,
26640 rangeStart: *mut u32,
26641 rangeEnd: *mut u32,
26642 ) -> bool;
26643}
26644unsafe extern "C" {
26645 pub fn BNUnicodeGetBlocksForNames(
26646 names: *const *const ::std::os::raw::c_char,
26647 nameCount: usize,
26648 starts: *mut *mut *mut u32,
26649 ends: *mut *mut *mut u32,
26650 blockListCounts: *mut *mut usize,
26651 blockCount: *mut usize,
26652 );
26653}
26654unsafe extern "C" {
26655 pub fn BNFreeUnicodeBlockList(
26656 starts: *mut *mut u32,
26657 ends: *mut *mut u32,
26658 blockCounts: *mut usize,
26659 blockListCounts: usize,
26660 );
26661}
26662unsafe extern "C" {
26663 pub fn BNUnicodeGetBlockNames(names: *mut *mut *mut ::std::os::raw::c_char, count: *mut usize);
26664}
26665unsafe extern "C" {
26666 pub fn BNUnicodeGetBlockRanges(
26667 names: *mut *mut *mut ::std::os::raw::c_char,
26668 rangeStarts: *mut *mut u32,
26669 rangeEnds: *mut *mut u32,
26670 count: *mut usize,
26671 );
26672}
26673unsafe extern "C" {
26674 pub fn BNFreeUnicodeRangeList(starts: *mut u32, ends: *mut u32);
26675}
26676unsafe extern "C" {
26677 pub fn BNUnicodeGetUTF8String(
26678 starts: *mut *mut u32,
26679 ends: *mut *mut u32,
26680 blockListCounts: *mut usize,
26681 blockCount: usize,
26682 data: *const u8,
26683 offset: usize,
26684 dataLen: usize,
26685 ) -> *mut ::std::os::raw::c_char;
26686}
26687unsafe extern "C" {
26688 pub fn BNUnicodeToEscapedString(
26689 starts: *mut *mut u32,
26690 ends: *mut *mut u32,
26691 blockListCounts: *mut usize,
26692 blockCount: usize,
26693 utf8Enabled: bool,
26694 data: *const ::std::os::raw::c_void,
26695 dataLen: usize,
26696 ) -> *mut ::std::os::raw::c_char;
26697}
26698unsafe extern "C" {
26699 #[doc = " Collaboration"]
26700 pub fn BNCollaborationGetActiveRemote() -> *mut BNRemote;
26701}
26702unsafe extern "C" {
26703 pub fn BNCollaborationSetActiveRemote(remote: *mut BNRemote);
26704}
26705unsafe extern "C" {
26706 pub fn BNCollaborationStoreDataInKeychain(
26707 key: *const ::std::os::raw::c_char,
26708 dataKeys: *mut *const ::std::os::raw::c_char,
26709 dataValues: *mut *const ::std::os::raw::c_char,
26710 dataCount: usize,
26711 ) -> bool;
26712}
26713unsafe extern "C" {
26714 pub fn BNCollaborationHasDataInKeychain(key: *const ::std::os::raw::c_char) -> bool;
26715}
26716unsafe extern "C" {
26717 pub fn BNCollaborationGetDataFromKeychain(
26718 key: *const ::std::os::raw::c_char,
26719 foundKeys: *mut *mut *mut ::std::os::raw::c_char,
26720 foundValues: *mut *mut *mut ::std::os::raw::c_char,
26721 ) -> usize;
26722}
26723unsafe extern "C" {
26724 pub fn BNCollaborationDeleteDataFromKeychain(key: *const ::std::os::raw::c_char) -> bool;
26725}
26726unsafe extern "C" {
26727 pub fn BNCollaborationLoadRemotes() -> bool;
26728}
26729unsafe extern "C" {
26730 pub fn BNCollaborationGetRemotes(count: *mut usize) -> *mut *mut BNRemote;
26731}
26732unsafe extern "C" {
26733 pub fn BNCollaborationGetRemoteById(remoteId: *const ::std::os::raw::c_char) -> *mut BNRemote;
26734}
26735unsafe extern "C" {
26736 pub fn BNCollaborationGetRemoteByAddress(
26737 remoteAddress: *const ::std::os::raw::c_char,
26738 ) -> *mut BNRemote;
26739}
26740unsafe extern "C" {
26741 pub fn BNCollaborationGetRemoteByName(name: *const ::std::os::raw::c_char) -> *mut BNRemote;
26742}
26743unsafe extern "C" {
26744 pub fn BNCollaborationCreateRemote(
26745 name: *const ::std::os::raw::c_char,
26746 address: *const ::std::os::raw::c_char,
26747 ) -> *mut BNRemote;
26748}
26749unsafe extern "C" {
26750 pub fn BNCollaborationRemoveRemote(remote: *mut BNRemote);
26751}
26752unsafe extern "C" {
26753 pub fn BNCollaborationSaveRemotes();
26754}
26755unsafe extern "C" {
26756 pub fn BNCollaborationSyncDatabase(
26757 database: *mut BNDatabase,
26758 file: *mut BNRemoteFile,
26759 conflictHandler: BNCollaborationAnalysisConflictHandler,
26760 conflictHandlerCtxt: *mut ::std::os::raw::c_void,
26761 progress: BNProgressFunction,
26762 progressCtxt: *mut ::std::os::raw::c_void,
26763 nameChangeset: BNCollaborationNameChangesetFunction,
26764 nameChangesetCtxt: *mut ::std::os::raw::c_void,
26765 ) -> bool;
26766}
26767unsafe extern "C" {
26768 pub fn BNCollaborationSyncTypeArchive(
26769 archive: *mut BNTypeArchive,
26770 file: *mut BNRemoteFile,
26771 conflictHandler: ::std::option::Option<
26772 unsafe extern "C" fn(
26773 arg1: *mut ::std::os::raw::c_void,
26774 conflicts: *mut *mut BNTypeArchiveMergeConflict,
26775 conflictCount: usize,
26776 ) -> bool,
26777 >,
26778 conflictHandlerCtxt: *mut ::std::os::raw::c_void,
26779 progress: BNProgressFunction,
26780 progressCtxt: *mut ::std::os::raw::c_void,
26781 ) -> bool;
26782}
26783unsafe extern "C" {
26784 pub fn BNCollaborationPushTypeArchive(
26785 archive: *mut BNTypeArchive,
26786 file: *mut BNRemoteFile,
26787 count: *mut usize,
26788 progress: BNProgressFunction,
26789 progressCtxt: *mut ::std::os::raw::c_void,
26790 ) -> bool;
26791}
26792unsafe extern "C" {
26793 pub fn BNCollaborationPullTypeArchive(
26794 archive: *mut BNTypeArchive,
26795 file: *mut BNRemoteFile,
26796 count: *mut usize,
26797 conflictHandler: ::std::option::Option<
26798 unsafe extern "C" fn(
26799 arg1: *mut ::std::os::raw::c_void,
26800 conflicts: *mut *mut BNTypeArchiveMergeConflict,
26801 conflictCount: usize,
26802 ) -> bool,
26803 >,
26804 conflictHandlerCtxt: *mut ::std::os::raw::c_void,
26805 progress: BNProgressFunction,
26806 progressCtxt: *mut ::std::os::raw::c_void,
26807 ) -> bool;
26808}
26809unsafe extern "C" {
26810 pub fn BNCollaborationIsCollaborationTypeArchive(archive: *mut BNTypeArchive) -> bool;
26811}
26812unsafe extern "C" {
26813 pub fn BNCollaborationGetRemoteForLocalTypeArchive(
26814 archive: *mut BNTypeArchive,
26815 ) -> *mut BNRemote;
26816}
26817unsafe extern "C" {
26818 pub fn BNCollaborationGetRemoteProjectForLocalTypeArchive(
26819 archive: *mut BNTypeArchive,
26820 ) -> *mut BNRemoteProject;
26821}
26822unsafe extern "C" {
26823 pub fn BNCollaborationGetRemoteFileForLocalTypeArchive(
26824 archive: *mut BNTypeArchive,
26825 ) -> *mut BNRemoteFile;
26826}
26827unsafe extern "C" {
26828 pub fn BNCollaborationGetRemoteSnapshotFromLocalTypeArchive(
26829 archive: *mut BNTypeArchive,
26830 snapshotId: *const ::std::os::raw::c_char,
26831 ) -> *mut BNCollaborationSnapshot;
26832}
26833unsafe extern "C" {
26834 pub fn BNCollaborationGetLocalSnapshotFromRemoteTypeArchive(
26835 snapshot: *mut BNCollaborationSnapshot,
26836 archive: *mut BNTypeArchive,
26837 ) -> *mut ::std::os::raw::c_char;
26838}
26839unsafe extern "C" {
26840 pub fn BNCollaborationIsTypeArchiveSnapshotIgnored(
26841 archive: *mut BNTypeArchive,
26842 snapshot: *const ::std::os::raw::c_char,
26843 ) -> bool;
26844}
26845unsafe extern "C" {
26846 pub fn BNCollaborationSetSnapshotAuthor(
26847 database: *mut BNDatabase,
26848 snapshot: *mut BNSnapshot,
26849 author: *const ::std::os::raw::c_char,
26850 ) -> bool;
26851}
26852unsafe extern "C" {
26853 pub fn BNCollaborationDefaultProjectPath(
26854 project: *mut BNRemoteProject,
26855 ) -> *mut ::std::os::raw::c_char;
26856}
26857unsafe extern "C" {
26858 pub fn BNCollaborationDefaultFilePath(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
26859}
26860unsafe extern "C" {
26861 pub fn BNCollaborationDownloadFile(
26862 file: *mut BNRemoteFile,
26863 dbPath: *const ::std::os::raw::c_char,
26864 progress: BNProgressFunction,
26865 progressContext: *mut ::std::os::raw::c_void,
26866 ) -> *mut BNFileMetadata;
26867}
26868unsafe extern "C" {
26869 pub fn BNCollaborationUploadDatabase(
26870 metadata: *mut BNFileMetadata,
26871 project: *mut BNRemoteProject,
26872 folder: *mut BNRemoteFolder,
26873 progress: BNProgressFunction,
26874 progressContext: *mut ::std::os::raw::c_void,
26875 nameChangeset: BNCollaborationNameChangesetFunction,
26876 nameChangesetContext: *mut ::std::os::raw::c_void,
26877 ) -> *mut BNRemoteFile;
26878}
26879unsafe extern "C" {
26880 pub fn BNCollaborationIsCollaborationDatabase(database: *mut BNDatabase) -> bool;
26881}
26882unsafe extern "C" {
26883 pub fn BNCollaborationGetRemoteForLocalDatabase(
26884 database: *mut BNDatabase,
26885 result: *mut *mut BNRemote,
26886 ) -> bool;
26887}
26888unsafe extern "C" {
26889 pub fn BNCollaborationGetRemoteProjectForLocalDatabase(
26890 database: *mut BNDatabase,
26891 result: *mut *mut BNRemoteProject,
26892 ) -> bool;
26893}
26894unsafe extern "C" {
26895 pub fn BNCollaborationGetRemoteFileForLocalDatabase(
26896 database: *mut BNDatabase,
26897 result: *mut *mut BNRemoteFile,
26898 ) -> bool;
26899}
26900unsafe extern "C" {
26901 pub fn BNCollaborationAssignSnapshotMap(
26902 localSnapshot: *mut BNSnapshot,
26903 remoteSnapshot: *mut BNCollaborationSnapshot,
26904 ) -> bool;
26905}
26906unsafe extern "C" {
26907 pub fn BNCollaborationGetRemoteSnapshotFromLocal(
26908 snapshot: *mut BNSnapshot,
26909 result: *mut *mut BNCollaborationSnapshot,
26910 ) -> bool;
26911}
26912unsafe extern "C" {
26913 pub fn BNCollaborationGetLocalSnapshotFromRemote(
26914 snapshot: *mut BNCollaborationSnapshot,
26915 database: *mut BNDatabase,
26916 result: *mut *mut BNSnapshot,
26917 ) -> bool;
26918}
26919unsafe extern "C" {
26920 pub fn BNCollaborationDownloadTypeArchive(
26921 file: *mut BNRemoteFile,
26922 dbPath: *const ::std::os::raw::c_char,
26923 progress: BNProgressFunction,
26924 progressContext: *mut ::std::os::raw::c_void,
26925 result: *mut *mut BNTypeArchive,
26926 ) -> bool;
26927}
26928unsafe extern "C" {
26929 pub fn BNCollaborationUploadTypeArchive(
26930 archive: *mut BNTypeArchive,
26931 project: *mut BNRemoteProject,
26932 folder: *mut BNRemoteFolder,
26933 progress: BNProgressFunction,
26934 progressContext: *mut ::std::os::raw::c_void,
26935 coreFile: *mut BNProjectFile,
26936 result: *mut *mut BNRemoteFile,
26937 ) -> bool;
26938}
26939unsafe extern "C" {
26940 pub fn BNCollaborationDownloadDatabaseForFile(
26941 file: *mut BNRemoteFile,
26942 dbPath: *const ::std::os::raw::c_char,
26943 force: bool,
26944 progress: BNProgressFunction,
26945 progressContext: *mut ::std::os::raw::c_void,
26946 ) -> bool;
26947}
26948unsafe extern "C" {
26949 pub fn BNCollaborationMergeSnapshots(
26950 first: *mut BNSnapshot,
26951 second: *mut BNSnapshot,
26952 conflictHandler: BNCollaborationAnalysisConflictHandler,
26953 conflictHandlerCtxt: *mut ::std::os::raw::c_void,
26954 progress: BNProgressFunction,
26955 progressContext: *mut ::std::os::raw::c_void,
26956 ) -> *mut BNSnapshot;
26957}
26958unsafe extern "C" {
26959 pub fn BNCollaborationPullDatabase(
26960 database: *mut BNDatabase,
26961 file: *mut BNRemoteFile,
26962 count: *mut usize,
26963 conflictHandler: BNCollaborationAnalysisConflictHandler,
26964 conflictHandlerCtxt: *mut ::std::os::raw::c_void,
26965 progress: BNProgressFunction,
26966 progressContext: *mut ::std::os::raw::c_void,
26967 nameChangeset: BNCollaborationNameChangesetFunction,
26968 nameChangesetContext: *mut ::std::os::raw::c_void,
26969 ) -> bool;
26970}
26971unsafe extern "C" {
26972 pub fn BNCollaborationMergeDatabase(
26973 database: *mut BNDatabase,
26974 conflictHandler: BNCollaborationAnalysisConflictHandler,
26975 conflictHandlerCtxt: *mut ::std::os::raw::c_void,
26976 progress: BNProgressFunction,
26977 progressContext: *mut ::std::os::raw::c_void,
26978 ) -> bool;
26979}
26980unsafe extern "C" {
26981 pub fn BNCollaborationPushDatabase(
26982 database: *mut BNDatabase,
26983 file: *mut BNRemoteFile,
26984 count: *mut usize,
26985 progress: BNProgressFunction,
26986 progressContext: *mut ::std::os::raw::c_void,
26987 ) -> bool;
26988}
26989unsafe extern "C" {
26990 pub fn BNCollaborationDumpDatabase(database: *mut BNDatabase) -> bool;
26991}
26992unsafe extern "C" {
26993 pub fn BNCollaborationIgnoreSnapshot(
26994 database: *mut BNDatabase,
26995 snapshot: *mut BNSnapshot,
26996 ) -> bool;
26997}
26998unsafe extern "C" {
26999 pub fn BNCollaborationIsSnapshotIgnored(
27000 database: *mut BNDatabase,
27001 snapshot: *mut BNSnapshot,
27002 ) -> bool;
27003}
27004unsafe extern "C" {
27005 pub fn BNCollaborationGetSnapshotAuthor(
27006 database: *mut BNDatabase,
27007 snapshot: *mut BNSnapshot,
27008 result: *mut *mut ::std::os::raw::c_char,
27009 ) -> bool;
27010}
27011unsafe extern "C" {
27012 pub fn BNCollaborationFreeIdList(ids: *mut u64, size: usize);
27013}
27014unsafe extern "C" {
27015 pub fn BNCollaborationFreeSnapshotIdList(ids: *mut i64, size: usize);
27016}
27017unsafe extern "C" {
27018 #[doc = " LazyT"]
27019 pub fn BNCollaborationLazyTCreate(
27020 ctor: ::std::option::Option<
27021 unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void) -> *mut ::std::os::raw::c_void,
27022 >,
27023 context: *mut ::std::os::raw::c_void,
27024 ) -> *mut BNCollaborationLazyT;
27025}
27026unsafe extern "C" {
27027 pub fn BNCollaborationLazyTDereference(
27028 lazyT: *mut BNCollaborationLazyT,
27029 ) -> *mut ::std::os::raw::c_void;
27030}
27031unsafe extern "C" {
27032 pub fn BNCollaborationFreeLazyT(lazyT: *mut BNCollaborationLazyT);
27033}
27034unsafe extern "C" {
27035 #[doc = " Remote"]
27036 pub fn BNNewRemoteReference(remote: *mut BNRemote) -> *mut BNRemote;
27037}
27038unsafe extern "C" {
27039 pub fn BNFreeRemote(remote: *mut BNRemote);
27040}
27041unsafe extern "C" {
27042 pub fn BNFreeRemoteList(remotes: *mut *mut BNRemote, count: usize);
27043}
27044unsafe extern "C" {
27045 pub fn BNRemoteGetUniqueId(remote: *mut BNRemote) -> *mut ::std::os::raw::c_char;
27046}
27047unsafe extern "C" {
27048 pub fn BNRemoteGetName(remote: *mut BNRemote) -> *mut ::std::os::raw::c_char;
27049}
27050unsafe extern "C" {
27051 pub fn BNRemoteGetAddress(remote: *mut BNRemote) -> *mut ::std::os::raw::c_char;
27052}
27053unsafe extern "C" {
27054 pub fn BNRemoteHasLoadedMetadata(remote: *mut BNRemote) -> bool;
27055}
27056unsafe extern "C" {
27057 pub fn BNRemoteIsConnected(remote: *mut BNRemote) -> bool;
27058}
27059unsafe extern "C" {
27060 pub fn BNRemoteGetUsername(remote: *mut BNRemote) -> *mut ::std::os::raw::c_char;
27061}
27062unsafe extern "C" {
27063 pub fn BNRemoteGetToken(remote: *mut BNRemote) -> *mut ::std::os::raw::c_char;
27064}
27065unsafe extern "C" {
27066 pub fn BNRemoteGetServerVersion(remote: *mut BNRemote) -> ::std::os::raw::c_int;
27067}
27068unsafe extern "C" {
27069 pub fn BNRemoteGetServerBuildVersion(remote: *mut BNRemote) -> BNVersionInfo;
27070}
27071unsafe extern "C" {
27072 pub fn BNRemoteGetServerBuildId(remote: *mut BNRemote) -> *mut ::std::os::raw::c_char;
27073}
27074unsafe extern "C" {
27075 pub fn BNRemoteGetAuthBackends(
27076 remote: *mut BNRemote,
27077 backendIds: *mut *mut *mut ::std::os::raw::c_char,
27078 backendNames: *mut *mut *mut ::std::os::raw::c_char,
27079 count: *mut usize,
27080 ) -> bool;
27081}
27082unsafe extern "C" {
27083 pub fn BNRemoteHasPulledProjects(remote: *mut BNRemote) -> bool;
27084}
27085unsafe extern "C" {
27086 pub fn BNRemoteHasPulledUsers(remote: *mut BNRemote) -> bool;
27087}
27088unsafe extern "C" {
27089 pub fn BNRemoteHasPulledGroups(remote: *mut BNRemote) -> bool;
27090}
27091unsafe extern "C" {
27092 pub fn BNRemoteIsAdmin(remote: *mut BNRemote) -> bool;
27093}
27094unsafe extern "C" {
27095 pub fn BNRemoteIsEnterprise(remote: *mut BNRemote) -> bool;
27096}
27097unsafe extern "C" {
27098 pub fn BNRemoteLoadMetadata(remote: *mut BNRemote) -> bool;
27099}
27100unsafe extern "C" {
27101 pub fn BNRemoteRequestAuthenticationToken(
27102 remote: *mut BNRemote,
27103 username: *const ::std::os::raw::c_char,
27104 password: *const ::std::os::raw::c_char,
27105 ) -> *mut ::std::os::raw::c_char;
27106}
27107unsafe extern "C" {
27108 pub fn BNRemoteConnect(
27109 remote: *mut BNRemote,
27110 username: *const ::std::os::raw::c_char,
27111 token: *const ::std::os::raw::c_char,
27112 ) -> bool;
27113}
27114unsafe extern "C" {
27115 pub fn BNRemoteDisconnect(remote: *mut BNRemote) -> bool;
27116}
27117unsafe extern "C" {
27118 pub fn BNRemoteGetProjects(
27119 remote: *mut BNRemote,
27120 count: *mut usize,
27121 ) -> *mut *mut BNRemoteProject;
27122}
27123unsafe extern "C" {
27124 pub fn BNRemoteGetProjectById(
27125 remote: *mut BNRemote,
27126 id: *const ::std::os::raw::c_char,
27127 ) -> *mut BNRemoteProject;
27128}
27129unsafe extern "C" {
27130 pub fn BNRemoteGetProjectByName(
27131 remote: *mut BNRemote,
27132 name: *const ::std::os::raw::c_char,
27133 ) -> *mut BNRemoteProject;
27134}
27135unsafe extern "C" {
27136 pub fn BNRemotePullProjects(
27137 remote: *mut BNRemote,
27138 progress: BNProgressFunction,
27139 progressContext: *mut ::std::os::raw::c_void,
27140 ) -> bool;
27141}
27142unsafe extern "C" {
27143 pub fn BNRemoteCreateProject(
27144 remote: *mut BNRemote,
27145 name: *const ::std::os::raw::c_char,
27146 description: *const ::std::os::raw::c_char,
27147 ) -> *mut BNRemoteProject;
27148}
27149unsafe extern "C" {
27150 pub fn BNRemoteImportLocalProject(
27151 remote: *mut BNRemote,
27152 localProject: *mut BNProject,
27153 progress: BNProgressFunction,
27154 progressCtxt: *mut ::std::os::raw::c_void,
27155 ) -> *mut BNRemoteProject;
27156}
27157unsafe extern "C" {
27158 pub fn BNRemotePushProject(
27159 remote: *mut BNRemote,
27160 project: *mut BNRemoteProject,
27161 extraFieldKeys: *mut *const ::std::os::raw::c_char,
27162 extraFieldValues: *mut *const ::std::os::raw::c_char,
27163 extraFieldCount: usize,
27164 ) -> bool;
27165}
27166unsafe extern "C" {
27167 pub fn BNRemoteDeleteProject(remote: *mut BNRemote, project: *mut BNRemoteProject) -> bool;
27168}
27169unsafe extern "C" {
27170 pub fn BNRemoteGetGroups(
27171 remote: *mut BNRemote,
27172 count: *mut usize,
27173 ) -> *mut *mut BNCollaborationGroup;
27174}
27175unsafe extern "C" {
27176 pub fn BNRemoteGetGroupById(remote: *mut BNRemote, id: u64) -> *mut BNCollaborationGroup;
27177}
27178unsafe extern "C" {
27179 pub fn BNRemoteGetGroupByName(
27180 remote: *mut BNRemote,
27181 name: *const ::std::os::raw::c_char,
27182 ) -> *mut BNCollaborationGroup;
27183}
27184unsafe extern "C" {
27185 pub fn BNRemoteSearchGroups(
27186 remote: *mut BNRemote,
27187 prefix: *const ::std::os::raw::c_char,
27188 groupIds: *mut *mut u64,
27189 groupNames: *mut *mut *mut ::std::os::raw::c_char,
27190 count: *mut usize,
27191 ) -> bool;
27192}
27193unsafe extern "C" {
27194 pub fn BNRemotePullGroups(
27195 remote: *mut BNRemote,
27196 progress: BNProgressFunction,
27197 progressContext: *mut ::std::os::raw::c_void,
27198 ) -> bool;
27199}
27200unsafe extern "C" {
27201 pub fn BNRemoteCreateGroup(
27202 remote: *mut BNRemote,
27203 name: *const ::std::os::raw::c_char,
27204 users: *mut *mut BNCollaborationUser,
27205 userCount: usize,
27206 ) -> *mut BNCollaborationGroup;
27207}
27208unsafe extern "C" {
27209 pub fn BNRemotePushGroup(
27210 remote: *mut BNRemote,
27211 group: *mut BNCollaborationGroup,
27212 extraFieldKeys: *mut *const ::std::os::raw::c_char,
27213 extraFieldValues: *mut *const ::std::os::raw::c_char,
27214 extraFieldCount: usize,
27215 ) -> bool;
27216}
27217unsafe extern "C" {
27218 pub fn BNRemoteDeleteGroup(remote: *mut BNRemote, group: *mut BNCollaborationGroup) -> bool;
27219}
27220unsafe extern "C" {
27221 pub fn BNRemoteGetUsers(
27222 remote: *mut BNRemote,
27223 count: *mut usize,
27224 ) -> *mut *mut BNCollaborationUser;
27225}
27226unsafe extern "C" {
27227 pub fn BNRemoteGetUserById(
27228 remote: *mut BNRemote,
27229 id: *const ::std::os::raw::c_char,
27230 ) -> *mut BNCollaborationUser;
27231}
27232unsafe extern "C" {
27233 pub fn BNRemoteGetUserByUsername(
27234 remote: *mut BNRemote,
27235 username: *const ::std::os::raw::c_char,
27236 ) -> *mut BNCollaborationUser;
27237}
27238unsafe extern "C" {
27239 pub fn BNRemoteGetCurrentUser(remote: *mut BNRemote) -> *mut BNCollaborationUser;
27240}
27241unsafe extern "C" {
27242 pub fn BNRemoteSearchUsers(
27243 remote: *mut BNRemote,
27244 prefix: *const ::std::os::raw::c_char,
27245 userIds: *mut *mut *mut ::std::os::raw::c_char,
27246 usernames: *mut *mut *mut ::std::os::raw::c_char,
27247 count: *mut usize,
27248 ) -> bool;
27249}
27250unsafe extern "C" {
27251 pub fn BNRemoteFindFiles(
27252 remote: *mut BNRemote,
27253 name: *const ::std::os::raw::c_char,
27254 count: *mut usize,
27255 ) -> *mut BNRemoteFileSearchMatch;
27256}
27257unsafe extern "C" {
27258 pub fn BNFreeRemoteFileSearchMatchList(matches: *mut BNRemoteFileSearchMatch, count: usize);
27259}
27260unsafe extern "C" {
27261 pub fn BNRemotePullUsers(
27262 remote: *mut BNRemote,
27263 progress: BNProgressFunction,
27264 progressContext: *mut ::std::os::raw::c_void,
27265 ) -> bool;
27266}
27267unsafe extern "C" {
27268 pub fn BNRemoteCreateUser(
27269 remote: *mut BNRemote,
27270 username: *const ::std::os::raw::c_char,
27271 email: *const ::std::os::raw::c_char,
27272 isActive: bool,
27273 password: *const ::std::os::raw::c_char,
27274 groupIds: *const u64,
27275 groupIdCount: usize,
27276 userPermissionIds: *const u64,
27277 userPermissionIdCount: usize,
27278 ) -> *mut BNCollaborationUser;
27279}
27280unsafe extern "C" {
27281 pub fn BNRemotePushUser(
27282 remote: *mut BNRemote,
27283 user: *mut BNCollaborationUser,
27284 extraFieldKeys: *mut *const ::std::os::raw::c_char,
27285 extraFieldValues: *mut *const ::std::os::raw::c_char,
27286 extraFieldCount: usize,
27287 ) -> bool;
27288}
27289unsafe extern "C" {
27290 pub fn BNRemoteRequest(
27291 remote: *mut BNRemote,
27292 request: *mut ::std::os::raw::c_void,
27293 ret: *mut ::std::os::raw::c_void,
27294 ) -> ::std::os::raw::c_int;
27295}
27296unsafe extern "C" {
27297 #[doc = " CollabGroup"]
27298 pub fn BNNewCollaborationGroupReference(
27299 group: *mut BNCollaborationGroup,
27300 ) -> *mut BNCollaborationGroup;
27301}
27302unsafe extern "C" {
27303 pub fn BNFreeCollaborationGroup(group: *mut BNCollaborationGroup);
27304}
27305unsafe extern "C" {
27306 pub fn BNFreeCollaborationGroupList(group: *mut *mut BNCollaborationGroup, count: usize);
27307}
27308unsafe extern "C" {
27309 pub fn BNCollaborationGroupGetRemote(group: *mut BNCollaborationGroup) -> *mut BNRemote;
27310}
27311unsafe extern "C" {
27312 pub fn BNCollaborationGroupGetUrl(
27313 group: *mut BNCollaborationGroup,
27314 ) -> *mut ::std::os::raw::c_char;
27315}
27316unsafe extern "C" {
27317 pub fn BNCollaborationGroupGetId(group: *mut BNCollaborationGroup) -> u64;
27318}
27319unsafe extern "C" {
27320 pub fn BNCollaborationGroupGetName(
27321 group: *mut BNCollaborationGroup,
27322 ) -> *mut ::std::os::raw::c_char;
27323}
27324unsafe extern "C" {
27325 pub fn BNCollaborationGroupSetName(
27326 group: *mut BNCollaborationGroup,
27327 name: *const ::std::os::raw::c_char,
27328 );
27329}
27330unsafe extern "C" {
27331 pub fn BNCollaborationGroupGetUsers(
27332 group: *mut BNCollaborationGroup,
27333 count: *mut usize,
27334 ) -> *mut *mut BNCollaborationUser;
27335}
27336unsafe extern "C" {
27337 pub fn BNCollaborationGroupSetUsers(
27338 group: *mut BNCollaborationGroup,
27339 users: *mut *mut BNCollaborationUser,
27340 count: usize,
27341 ) -> bool;
27342}
27343unsafe extern "C" {
27344 pub fn BNCollaborationGroupContainsUser(
27345 group: *mut BNCollaborationGroup,
27346 user: *mut BNCollaborationUser,
27347 ) -> bool;
27348}
27349unsafe extern "C" {
27350 #[doc = " CollabUser"]
27351 pub fn BNNewCollaborationUserReference(
27352 user: *mut BNCollaborationUser,
27353 ) -> *mut BNCollaborationUser;
27354}
27355unsafe extern "C" {
27356 pub fn BNFreeCollaborationUser(user: *mut BNCollaborationUser);
27357}
27358unsafe extern "C" {
27359 pub fn BNFreeCollaborationUserList(users: *mut *mut BNCollaborationUser, count: usize);
27360}
27361unsafe extern "C" {
27362 pub fn BNCollaborationUserGetRemote(user: *mut BNCollaborationUser) -> *mut BNRemote;
27363}
27364unsafe extern "C" {
27365 pub fn BNCollaborationUserGetUrl(user: *mut BNCollaborationUser)
27366 -> *mut ::std::os::raw::c_char;
27367}
27368unsafe extern "C" {
27369 pub fn BNCollaborationUserGetId(user: *mut BNCollaborationUser) -> *mut ::std::os::raw::c_char;
27370}
27371unsafe extern "C" {
27372 pub fn BNCollaborationUserGetUsername(
27373 user: *mut BNCollaborationUser,
27374 ) -> *mut ::std::os::raw::c_char;
27375}
27376unsafe extern "C" {
27377 pub fn BNCollaborationUserGetEmail(
27378 user: *mut BNCollaborationUser,
27379 ) -> *mut ::std::os::raw::c_char;
27380}
27381unsafe extern "C" {
27382 pub fn BNCollaborationUserGetLastLogin(
27383 user: *mut BNCollaborationUser,
27384 ) -> *mut ::std::os::raw::c_char;
27385}
27386unsafe extern "C" {
27387 pub fn BNCollaborationUserIsActive(user: *mut BNCollaborationUser) -> bool;
27388}
27389unsafe extern "C" {
27390 pub fn BNCollaborationUserSetUsername(
27391 user: *mut BNCollaborationUser,
27392 username: *const ::std::os::raw::c_char,
27393 ) -> bool;
27394}
27395unsafe extern "C" {
27396 pub fn BNCollaborationUserSetEmail(
27397 user: *mut BNCollaborationUser,
27398 email: *const ::std::os::raw::c_char,
27399 ) -> bool;
27400}
27401unsafe extern "C" {
27402 pub fn BNCollaborationUserSetIsActive(user: *mut BNCollaborationUser, isActive: bool) -> bool;
27403}
27404unsafe extern "C" {
27405 #[doc = " RemoteProject"]
27406 pub fn BNNewRemoteProjectReference(project: *mut BNRemoteProject) -> *mut BNRemoteProject;
27407}
27408unsafe extern "C" {
27409 pub fn BNFreeRemoteProject(project: *mut BNRemoteProject);
27410}
27411unsafe extern "C" {
27412 pub fn BNFreeRemoteProjectList(projects: *mut *mut BNRemoteProject, count: usize);
27413}
27414unsafe extern "C" {
27415 pub fn BNRemoteProjectGetCoreProject(project: *mut BNRemoteProject) -> *mut BNProject;
27416}
27417unsafe extern "C" {
27418 pub fn BNRemoteProjectIsOpen(project: *mut BNRemoteProject) -> bool;
27419}
27420unsafe extern "C" {
27421 pub fn BNRemoteProjectOpen(
27422 project: *mut BNRemoteProject,
27423 progress: BNProgressFunction,
27424 progressCtxt: *mut ::std::os::raw::c_void,
27425 ) -> bool;
27426}
27427unsafe extern "C" {
27428 pub fn BNRemoteProjectClose(project: *mut BNRemoteProject);
27429}
27430unsafe extern "C" {
27431 pub fn BNRemoteProjectGetRemote(project: *mut BNRemoteProject) -> *mut BNRemote;
27432}
27433unsafe extern "C" {
27434 pub fn BNRemoteProjectGetUrl(project: *mut BNRemoteProject) -> *mut ::std::os::raw::c_char;
27435}
27436unsafe extern "C" {
27437 pub fn BNRemoteProjectGetCreated(project: *mut BNRemoteProject) -> i64;
27438}
27439unsafe extern "C" {
27440 pub fn BNRemoteProjectGetLastModified(project: *mut BNRemoteProject) -> i64;
27441}
27442unsafe extern "C" {
27443 pub fn BNRemoteProjectGetId(project: *mut BNRemoteProject) -> *mut ::std::os::raw::c_char;
27444}
27445unsafe extern "C" {
27446 pub fn BNRemoteProjectGetName(project: *mut BNRemoteProject) -> *mut ::std::os::raw::c_char;
27447}
27448unsafe extern "C" {
27449 pub fn BNRemoteProjectSetName(
27450 project: *mut BNRemoteProject,
27451 name: *const ::std::os::raw::c_char,
27452 ) -> bool;
27453}
27454unsafe extern "C" {
27455 pub fn BNRemoteProjectGetDescription(
27456 project: *mut BNRemoteProject,
27457 ) -> *mut ::std::os::raw::c_char;
27458}
27459unsafe extern "C" {
27460 pub fn BNRemoteProjectSetDescription(
27461 project: *mut BNRemoteProject,
27462 description: *const ::std::os::raw::c_char,
27463 ) -> bool;
27464}
27465unsafe extern "C" {
27466 pub fn BNRemoteProjectGetReceivedFileCount(project: *mut BNRemoteProject) -> u64;
27467}
27468unsafe extern "C" {
27469 pub fn BNRemoteProjectGetReceivedFolderCount(project: *mut BNRemoteProject) -> u64;
27470}
27471unsafe extern "C" {
27472 pub fn BNRemoteProjectHasPulledFiles(project: *mut BNRemoteProject) -> bool;
27473}
27474unsafe extern "C" {
27475 pub fn BNRemoteProjectHasPulledFolders(project: *mut BNRemoteProject) -> bool;
27476}
27477unsafe extern "C" {
27478 pub fn BNRemoteProjectHasPulledGroupPermissions(project: *mut BNRemoteProject) -> bool;
27479}
27480unsafe extern "C" {
27481 pub fn BNRemoteProjectHasPulledUserPermissions(project: *mut BNRemoteProject) -> bool;
27482}
27483unsafe extern "C" {
27484 pub fn BNRemoteProjectIsAdmin(project: *mut BNRemoteProject) -> bool;
27485}
27486unsafe extern "C" {
27487 pub fn BNRemoteProjectGetFiles(
27488 project: *mut BNRemoteProject,
27489 count: *mut usize,
27490 ) -> *mut *mut BNRemoteFile;
27491}
27492unsafe extern "C" {
27493 pub fn BNRemoteProjectGetFileById(
27494 project: *mut BNRemoteProject,
27495 id: *const ::std::os::raw::c_char,
27496 ) -> *mut BNRemoteFile;
27497}
27498unsafe extern "C" {
27499 pub fn BNRemoteProjectGetFileByName(
27500 project: *mut BNRemoteProject,
27501 name: *const ::std::os::raw::c_char,
27502 ) -> *mut BNRemoteFile;
27503}
27504unsafe extern "C" {
27505 pub fn BNRemoteProjectPullFiles(
27506 project: *mut BNRemoteProject,
27507 progress: BNProgressFunction,
27508 progressContext: *mut ::std::os::raw::c_void,
27509 ) -> bool;
27510}
27511unsafe extern "C" {
27512 pub fn BNRemoteProjectCreateFile(
27513 project: *mut BNRemoteProject,
27514 filename: *const ::std::os::raw::c_char,
27515 contents: *mut u8,
27516 contentsSize: usize,
27517 name: *const ::std::os::raw::c_char,
27518 description: *const ::std::os::raw::c_char,
27519 folder: *mut BNRemoteFolder,
27520 type_: BNRemoteFileType,
27521 progress: BNProgressFunction,
27522 progressContext: *mut ::std::os::raw::c_void,
27523 ) -> *mut BNRemoteFile;
27524}
27525unsafe extern "C" {
27526 pub fn BNRemoteProjectPushFile(
27527 project: *mut BNRemoteProject,
27528 file: *mut BNRemoteFile,
27529 extraFieldKeys: *mut *const ::std::os::raw::c_char,
27530 extraFieldValues: *mut *const ::std::os::raw::c_char,
27531 extraFieldCount: usize,
27532 ) -> bool;
27533}
27534unsafe extern "C" {
27535 pub fn BNRemoteProjectDeleteFile(
27536 project: *mut BNRemoteProject,
27537 file: *mut BNRemoteFile,
27538 ) -> bool;
27539}
27540unsafe extern "C" {
27541 pub fn BNRemoteProjectGetFolders(
27542 project: *mut BNRemoteProject,
27543 count: *mut usize,
27544 ) -> *mut *mut BNRemoteFolder;
27545}
27546unsafe extern "C" {
27547 pub fn BNRemoteProjectGetFolderById(
27548 project: *mut BNRemoteProject,
27549 id: *const ::std::os::raw::c_char,
27550 ) -> *mut BNRemoteFolder;
27551}
27552unsafe extern "C" {
27553 pub fn BNRemoteProjectPullFolders(
27554 project: *mut BNRemoteProject,
27555 progress: BNProgressFunction,
27556 progressContext: *mut ::std::os::raw::c_void,
27557 ) -> bool;
27558}
27559unsafe extern "C" {
27560 pub fn BNRemoteProjectCreateFolder(
27561 project: *mut BNRemoteProject,
27562 name: *const ::std::os::raw::c_char,
27563 description: *const ::std::os::raw::c_char,
27564 parent: *mut BNRemoteFolder,
27565 progress: BNProgressFunction,
27566 progressContext: *mut ::std::os::raw::c_void,
27567 ) -> *mut BNRemoteFolder;
27568}
27569unsafe extern "C" {
27570 pub fn BNRemoteProjectPushFolder(
27571 project: *mut BNRemoteProject,
27572 folder: *mut BNRemoteFolder,
27573 extraFieldKeys: *mut *const ::std::os::raw::c_char,
27574 extraFieldValues: *mut *const ::std::os::raw::c_char,
27575 extraFieldCount: usize,
27576 ) -> bool;
27577}
27578unsafe extern "C" {
27579 pub fn BNRemoteProjectDeleteFolder(
27580 project: *mut BNRemoteProject,
27581 folder: *mut BNRemoteFolder,
27582 ) -> bool;
27583}
27584unsafe extern "C" {
27585 pub fn BNRemoteProjectGetGroupPermissions(
27586 project: *mut BNRemoteProject,
27587 count: *mut usize,
27588 ) -> *mut *mut BNCollaborationPermission;
27589}
27590unsafe extern "C" {
27591 pub fn BNRemoteProjectGetUserPermissions(
27592 project: *mut BNRemoteProject,
27593 count: *mut usize,
27594 ) -> *mut *mut BNCollaborationPermission;
27595}
27596unsafe extern "C" {
27597 pub fn BNRemoteProjectGetPermissionById(
27598 project: *mut BNRemoteProject,
27599 id: *const ::std::os::raw::c_char,
27600 ) -> *mut BNCollaborationPermission;
27601}
27602unsafe extern "C" {
27603 pub fn BNRemoteProjectPullGroupPermissions(
27604 project: *mut BNRemoteProject,
27605 progress: BNProgressFunction,
27606 progressContext: *mut ::std::os::raw::c_void,
27607 ) -> bool;
27608}
27609unsafe extern "C" {
27610 pub fn BNRemoteProjectPullUserPermissions(
27611 project: *mut BNRemoteProject,
27612 progress: BNProgressFunction,
27613 progressContext: *mut ::std::os::raw::c_void,
27614 ) -> bool;
27615}
27616unsafe extern "C" {
27617 pub fn BNRemoteProjectCreateGroupPermission(
27618 project: *mut BNRemoteProject,
27619 groupId: i64,
27620 level: BNCollaborationPermissionLevel,
27621 progress: BNProgressFunction,
27622 progressContext: *mut ::std::os::raw::c_void,
27623 ) -> *mut BNCollaborationPermission;
27624}
27625unsafe extern "C" {
27626 pub fn BNRemoteProjectCreateUserPermission(
27627 project: *mut BNRemoteProject,
27628 userId: *const ::std::os::raw::c_char,
27629 level: BNCollaborationPermissionLevel,
27630 progress: BNProgressFunction,
27631 progressContext: *mut ::std::os::raw::c_void,
27632 ) -> *mut BNCollaborationPermission;
27633}
27634unsafe extern "C" {
27635 pub fn BNRemoteProjectPushPermission(
27636 project: *mut BNRemoteProject,
27637 permission: *mut BNCollaborationPermission,
27638 extraFieldKeys: *mut *const ::std::os::raw::c_char,
27639 extraFieldValues: *mut *const ::std::os::raw::c_char,
27640 extraFieldCount: usize,
27641 ) -> bool;
27642}
27643unsafe extern "C" {
27644 pub fn BNRemoteProjectDeletePermission(
27645 project: *mut BNRemoteProject,
27646 permission: *mut BNCollaborationPermission,
27647 ) -> bool;
27648}
27649unsafe extern "C" {
27650 pub fn BNRemoteProjectCanUserView(
27651 project: *mut BNRemoteProject,
27652 user: *mut BNCollaborationUser,
27653 ) -> bool;
27654}
27655unsafe extern "C" {
27656 pub fn BNRemoteProjectCanUserEdit(
27657 project: *mut BNRemoteProject,
27658 user: *mut BNCollaborationUser,
27659 ) -> bool;
27660}
27661unsafe extern "C" {
27662 pub fn BNRemoteProjectCanUserAdmin(
27663 project: *mut BNRemoteProject,
27664 user: *mut BNCollaborationUser,
27665 ) -> bool;
27666}
27667unsafe extern "C" {
27668 #[doc = " RemoteFile"]
27669 pub fn BNNewRemoteFileReference(file: *mut BNRemoteFile) -> *mut BNRemoteFile;
27670}
27671unsafe extern "C" {
27672 pub fn BNFreeRemoteFile(file: *mut BNRemoteFile);
27673}
27674unsafe extern "C" {
27675 pub fn BNFreeRemoteFileList(files: *mut *mut BNRemoteFile, count: usize);
27676}
27677unsafe extern "C" {
27678 pub fn BNRemoteFileGetCoreFile(file: *mut BNRemoteFile) -> *mut BNProjectFile;
27679}
27680unsafe extern "C" {
27681 pub fn BNRemoteFileGetProject(file: *mut BNRemoteFile) -> *mut BNRemoteProject;
27682}
27683unsafe extern "C" {
27684 pub fn BNRemoteFileGetFolder(file: *mut BNRemoteFile) -> *mut BNRemoteFolder;
27685}
27686unsafe extern "C" {
27687 pub fn BNRemoteFileGetRemote(file: *mut BNRemoteFile) -> *mut BNRemote;
27688}
27689unsafe extern "C" {
27690 pub fn BNRemoteFileGetUrl(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
27691}
27692unsafe extern "C" {
27693 pub fn BNRemoteFileGetChatLogUrl(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
27694}
27695unsafe extern "C" {
27696 pub fn BNRemoteFileGetUserPositionsUrl(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
27697}
27698unsafe extern "C" {
27699 pub fn BNRemoteFileGetId(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
27700}
27701unsafe extern "C" {
27702 pub fn BNRemoteFileGetType(file: *mut BNRemoteFile) -> BNRemoteFileType;
27703}
27704unsafe extern "C" {
27705 pub fn BNRemoteFileGetCreated(file: *mut BNRemoteFile) -> i64;
27706}
27707unsafe extern "C" {
27708 pub fn BNRemoteFileGetCreatedBy(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
27709}
27710unsafe extern "C" {
27711 pub fn BNRemoteFileGetLastModified(file: *mut BNRemoteFile) -> i64;
27712}
27713unsafe extern "C" {
27714 pub fn BNRemoteFileGetLastSnapshot(file: *mut BNRemoteFile) -> i64;
27715}
27716unsafe extern "C" {
27717 pub fn BNRemoteFileGetLastSnapshotBy(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
27718}
27719unsafe extern "C" {
27720 pub fn BNRemoteFileGetLastSnapshotName(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
27721}
27722unsafe extern "C" {
27723 pub fn BNRemoteFileGetHash(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
27724}
27725unsafe extern "C" {
27726 pub fn BNRemoteFileGetName(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
27727}
27728unsafe extern "C" {
27729 pub fn BNRemoteFileGetDescription(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
27730}
27731unsafe extern "C" {
27732 pub fn BNRemoteFileGetMetadata(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
27733}
27734unsafe extern "C" {
27735 pub fn BNRemoteFileGetSize(file: *mut BNRemoteFile) -> u64;
27736}
27737unsafe extern "C" {
27738 pub fn BNRemoteFileHasPulledSnapshots(file: *mut BNRemoteFile) -> bool;
27739}
27740unsafe extern "C" {
27741 pub fn BNRemoteFileSetName(
27742 file: *mut BNRemoteFile,
27743 name: *const ::std::os::raw::c_char,
27744 ) -> bool;
27745}
27746unsafe extern "C" {
27747 pub fn BNRemoteFileSetDescription(
27748 file: *mut BNRemoteFile,
27749 description: *const ::std::os::raw::c_char,
27750 ) -> bool;
27751}
27752unsafe extern "C" {
27753 pub fn BNRemoteFileSetFolder(file: *mut BNRemoteFile, folder: *mut BNRemoteFolder) -> bool;
27754}
27755unsafe extern "C" {
27756 pub fn BNRemoteFileSetMetadata(
27757 file: *mut BNRemoteFile,
27758 metadata: *const ::std::os::raw::c_char,
27759 ) -> bool;
27760}
27761unsafe extern "C" {
27762 pub fn BNRemoteFileGetSnapshots(
27763 file: *mut BNRemoteFile,
27764 count: *mut usize,
27765 ) -> *mut *mut BNCollaborationSnapshot;
27766}
27767unsafe extern "C" {
27768 pub fn BNRemoteFileGetSnapshotById(
27769 file: *mut BNRemoteFile,
27770 id: *const ::std::os::raw::c_char,
27771 ) -> *mut BNCollaborationSnapshot;
27772}
27773unsafe extern "C" {
27774 pub fn BNRemoteFilePullSnapshots(
27775 file: *mut BNRemoteFile,
27776 progress: BNProgressFunction,
27777 progressContext: *mut ::std::os::raw::c_void,
27778 ) -> bool;
27779}
27780unsafe extern "C" {
27781 pub fn BNRemoteFileCreateSnapshot(
27782 file: *mut BNRemoteFile,
27783 name: *const ::std::os::raw::c_char,
27784 contents: *mut u8,
27785 contentsSize: usize,
27786 analysisCacheContents: *mut u8,
27787 analysisCacheContentsSize: usize,
27788 fileContents: *mut u8,
27789 fileContentsSize: usize,
27790 parentIds: *mut *const ::std::os::raw::c_char,
27791 parentIdCount: usize,
27792 progress: BNProgressFunction,
27793 progressContext: *mut ::std::os::raw::c_void,
27794 ) -> *mut BNCollaborationSnapshot;
27795}
27796unsafe extern "C" {
27797 pub fn BNRemoteFileDeleteSnapshot(
27798 file: *mut BNRemoteFile,
27799 snapshot: *mut BNCollaborationSnapshot,
27800 ) -> bool;
27801}
27802unsafe extern "C" {
27803 pub fn BNRemoteFileDownload(
27804 file: *mut BNRemoteFile,
27805 progress: BNProgressFunction,
27806 progressCtxt: *mut ::std::os::raw::c_void,
27807 ) -> bool;
27808}
27809unsafe extern "C" {
27810 pub fn BNRemoteFileDownloadContents(
27811 file: *mut BNRemoteFile,
27812 progress: BNProgressFunction,
27813 progressCtxt: *mut ::std::os::raw::c_void,
27814 data: *mut *mut u8,
27815 size: *mut usize,
27816 ) -> bool;
27817}
27818unsafe extern "C" {
27819 pub fn BNRemoteFileRequestUserPositions(file: *mut BNRemoteFile)
27820 -> *mut ::std::os::raw::c_char;
27821}
27822unsafe extern "C" {
27823 pub fn BNRemoteFileRequestChatLog(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
27824}
27825unsafe extern "C" {
27826 #[doc = " RemoteFolder"]
27827 pub fn BNNewRemoteFolderReference(folder: *mut BNRemoteFolder) -> *mut BNRemoteFolder;
27828}
27829unsafe extern "C" {
27830 pub fn BNFreeRemoteFolder(folder: *mut BNRemoteFolder);
27831}
27832unsafe extern "C" {
27833 pub fn BNFreeRemoteFolderList(folders: *mut *mut BNRemoteFolder, count: usize);
27834}
27835unsafe extern "C" {
27836 pub fn BNRemoteFolderGetCoreFolder(folder: *mut BNRemoteFolder) -> *mut BNProjectFolder;
27837}
27838unsafe extern "C" {
27839 pub fn BNRemoteFolderGetProject(folder: *mut BNRemoteFolder) -> *mut BNRemoteProject;
27840}
27841unsafe extern "C" {
27842 pub fn BNRemoteFolderGetRemote(folder: *mut BNRemoteFolder) -> *mut BNRemote;
27843}
27844unsafe extern "C" {
27845 pub fn BNRemoteFolderGetParent(
27846 folder: *mut BNRemoteFolder,
27847 parent: *mut *mut BNRemoteFolder,
27848 ) -> bool;
27849}
27850unsafe extern "C" {
27851 pub fn BNRemoteFolderGetUrl(folder: *mut BNRemoteFolder) -> *mut ::std::os::raw::c_char;
27852}
27853unsafe extern "C" {
27854 pub fn BNRemoteFolderGetId(folder: *mut BNRemoteFolder) -> *mut ::std::os::raw::c_char;
27855}
27856unsafe extern "C" {
27857 pub fn BNRemoteFolderGetParentId(
27858 folder: *mut BNRemoteFolder,
27859 result: *mut *mut ::std::os::raw::c_char,
27860 ) -> bool;
27861}
27862unsafe extern "C" {
27863 pub fn BNRemoteFolderGetName(folder: *mut BNRemoteFolder) -> *mut ::std::os::raw::c_char;
27864}
27865unsafe extern "C" {
27866 pub fn BNRemoteFolderGetDescription(folder: *mut BNRemoteFolder)
27867 -> *mut ::std::os::raw::c_char;
27868}
27869unsafe extern "C" {
27870 pub fn BNRemoteFolderSetName(
27871 folder: *mut BNRemoteFolder,
27872 name: *const ::std::os::raw::c_char,
27873 ) -> bool;
27874}
27875unsafe extern "C" {
27876 pub fn BNRemoteFolderSetDescription(
27877 folder: *mut BNRemoteFolder,
27878 description: *const ::std::os::raw::c_char,
27879 ) -> bool;
27880}
27881unsafe extern "C" {
27882 pub fn BNRemoteFolderSetParent(
27883 folder: *mut BNRemoteFolder,
27884 parent: *mut BNRemoteFolder,
27885 ) -> bool;
27886}
27887unsafe extern "C" {
27888 #[doc = " CollabPermission"]
27889 pub fn BNNewCollaborationPermissionReference(
27890 permission: *mut BNCollaborationPermission,
27891 ) -> *mut BNCollaborationPermission;
27892}
27893unsafe extern "C" {
27894 pub fn BNFreeCollaborationPermission(permission: *mut BNCollaborationPermission);
27895}
27896unsafe extern "C" {
27897 pub fn BNFreeCollaborationPermissionList(
27898 permissions: *mut *mut BNCollaborationPermission,
27899 count: usize,
27900 );
27901}
27902unsafe extern "C" {
27903 pub fn BNCollaborationPermissionGetProject(
27904 permission: *mut BNCollaborationPermission,
27905 ) -> *mut BNRemoteProject;
27906}
27907unsafe extern "C" {
27908 pub fn BNCollaborationPermissionGetRemote(
27909 permission: *mut BNCollaborationPermission,
27910 ) -> *mut BNRemote;
27911}
27912unsafe extern "C" {
27913 pub fn BNCollaborationPermissionGetId(
27914 permission: *mut BNCollaborationPermission,
27915 ) -> *mut ::std::os::raw::c_char;
27916}
27917unsafe extern "C" {
27918 pub fn BNCollaborationPermissionGetUrl(
27919 permission: *mut BNCollaborationPermission,
27920 ) -> *mut ::std::os::raw::c_char;
27921}
27922unsafe extern "C" {
27923 pub fn BNCollaborationPermissionGetGroupId(permission: *mut BNCollaborationPermission) -> u64;
27924}
27925unsafe extern "C" {
27926 pub fn BNCollaborationPermissionGetGroupName(
27927 permission: *mut BNCollaborationPermission,
27928 ) -> *mut ::std::os::raw::c_char;
27929}
27930unsafe extern "C" {
27931 pub fn BNCollaborationPermissionGetUserId(
27932 permission: *mut BNCollaborationPermission,
27933 ) -> *mut ::std::os::raw::c_char;
27934}
27935unsafe extern "C" {
27936 pub fn BNCollaborationPermissionGetUsername(
27937 permission: *mut BNCollaborationPermission,
27938 ) -> *mut ::std::os::raw::c_char;
27939}
27940unsafe extern "C" {
27941 pub fn BNCollaborationPermissionGetLevel(
27942 permission: *mut BNCollaborationPermission,
27943 ) -> BNCollaborationPermissionLevel;
27944}
27945unsafe extern "C" {
27946 pub fn BNCollaborationPermissionSetLevel(
27947 permission: *mut BNCollaborationPermission,
27948 level: BNCollaborationPermissionLevel,
27949 );
27950}
27951unsafe extern "C" {
27952 pub fn BNCollaborationPermissionCanView(permission: *mut BNCollaborationPermission) -> bool;
27953}
27954unsafe extern "C" {
27955 pub fn BNCollaborationPermissionCanEdit(permission: *mut BNCollaborationPermission) -> bool;
27956}
27957unsafe extern "C" {
27958 pub fn BNCollaborationPermissionCanAdmin(permission: *mut BNCollaborationPermission) -> bool;
27959}
27960unsafe extern "C" {
27961 #[doc = " AnalysisMergeConflict"]
27962 pub fn BNNewAnalysisMergeConflictReference(
27963 conflict: *mut BNAnalysisMergeConflict,
27964 ) -> *mut BNAnalysisMergeConflict;
27965}
27966unsafe extern "C" {
27967 pub fn BNFreeAnalysisMergeConflict(conflict: *mut BNAnalysisMergeConflict);
27968}
27969unsafe extern "C" {
27970 pub fn BNFreeAnalysisMergeConflictList(
27971 conflicts: *mut *mut BNAnalysisMergeConflict,
27972 count: usize,
27973 );
27974}
27975unsafe extern "C" {
27976 pub fn BNAnalysisMergeConflictGetDatabase(
27977 conflict: *mut BNAnalysisMergeConflict,
27978 ) -> *mut BNDatabase;
27979}
27980unsafe extern "C" {
27981 pub fn BNAnalysisMergeConflictGetType(
27982 conflict: *mut BNAnalysisMergeConflict,
27983 ) -> *mut ::std::os::raw::c_char;
27984}
27985unsafe extern "C" {
27986 pub fn BNAnalysisMergeConflictGetKey(
27987 conflict: *mut BNAnalysisMergeConflict,
27988 ) -> *mut ::std::os::raw::c_char;
27989}
27990unsafe extern "C" {
27991 pub fn BNAnalysisMergeConflictGetDataType(
27992 conflict: *mut BNAnalysisMergeConflict,
27993 ) -> BNMergeConflictDataType;
27994}
27995unsafe extern "C" {
27996 pub fn BNAnalysisMergeConflictGetBase(
27997 conflict: *mut BNAnalysisMergeConflict,
27998 ) -> *mut ::std::os::raw::c_char;
27999}
28000unsafe extern "C" {
28001 pub fn BNAnalysisMergeConflictGetFirst(
28002 conflict: *mut BNAnalysisMergeConflict,
28003 ) -> *mut ::std::os::raw::c_char;
28004}
28005unsafe extern "C" {
28006 pub fn BNAnalysisMergeConflictGetSecond(
28007 conflict: *mut BNAnalysisMergeConflict,
28008 ) -> *mut ::std::os::raw::c_char;
28009}
28010unsafe extern "C" {
28011 pub fn BNAnalysisMergeConflictGetBaseFile(
28012 conflict: *mut BNAnalysisMergeConflict,
28013 ) -> *mut BNFileMetadata;
28014}
28015unsafe extern "C" {
28016 pub fn BNAnalysisMergeConflictGetFirstFile(
28017 conflict: *mut BNAnalysisMergeConflict,
28018 ) -> *mut BNFileMetadata;
28019}
28020unsafe extern "C" {
28021 pub fn BNAnalysisMergeConflictGetSecondFile(
28022 conflict: *mut BNAnalysisMergeConflict,
28023 ) -> *mut BNFileMetadata;
28024}
28025unsafe extern "C" {
28026 pub fn BNAnalysisMergeConflictGetBaseSnapshot(
28027 conflict: *mut BNAnalysisMergeConflict,
28028 ) -> *mut BNSnapshot;
28029}
28030unsafe extern "C" {
28031 pub fn BNAnalysisMergeConflictGetFirstSnapshot(
28032 conflict: *mut BNAnalysisMergeConflict,
28033 ) -> *mut BNSnapshot;
28034}
28035unsafe extern "C" {
28036 pub fn BNAnalysisMergeConflictGetSecondSnapshot(
28037 conflict: *mut BNAnalysisMergeConflict,
28038 ) -> *mut BNSnapshot;
28039}
28040unsafe extern "C" {
28041 pub fn BNAnalysisMergeConflictGetPathItemString(
28042 conflict: *mut BNAnalysisMergeConflict,
28043 path: *const ::std::os::raw::c_char,
28044 ) -> *mut ::std::os::raw::c_char;
28045}
28046unsafe extern "C" {
28047 pub fn BNAnalysisMergeConflictGetPathItemSerialized(
28048 conflict: *mut BNAnalysisMergeConflict,
28049 path: *const ::std::os::raw::c_char,
28050 ) -> *mut ::std::os::raw::c_char;
28051}
28052unsafe extern "C" {
28053 pub fn BNAnalysisMergeConflictGetPathItem(
28054 conflict: *mut BNAnalysisMergeConflict,
28055 path: *const ::std::os::raw::c_char,
28056 ) -> *mut ::std::os::raw::c_void;
28057}
28058unsafe extern "C" {
28059 pub fn BNAnalysisMergeConflictSuccess(
28060 conflict: *mut BNAnalysisMergeConflict,
28061 value: *const ::std::os::raw::c_char,
28062 ) -> bool;
28063}
28064unsafe extern "C" {
28065 #[doc = " TypeArchiveMergeConflict"]
28066 pub fn BNNewTypeArchiveMergeConflictReference(
28067 conflict: *mut BNTypeArchiveMergeConflict,
28068 ) -> *mut BNTypeArchiveMergeConflict;
28069}
28070unsafe extern "C" {
28071 pub fn BNFreeTypeArchiveMergeConflict(conflict: *mut BNTypeArchiveMergeConflict);
28072}
28073unsafe extern "C" {
28074 pub fn BNFreeTypeArchiveMergeConflictList(
28075 conflicts: *mut *mut BNTypeArchiveMergeConflict,
28076 count: usize,
28077 );
28078}
28079unsafe extern "C" {
28080 pub fn BNTypeArchiveMergeConflictGetTypeArchive(
28081 conflict: *mut BNTypeArchiveMergeConflict,
28082 ) -> *mut BNTypeArchive;
28083}
28084unsafe extern "C" {
28085 pub fn BNTypeArchiveMergeConflictGetTypeId(
28086 conflict: *mut BNTypeArchiveMergeConflict,
28087 ) -> *mut ::std::os::raw::c_char;
28088}
28089unsafe extern "C" {
28090 pub fn BNTypeArchiveMergeConflictGetBaseSnapshotId(
28091 conflict: *mut BNTypeArchiveMergeConflict,
28092 ) -> *mut ::std::os::raw::c_char;
28093}
28094unsafe extern "C" {
28095 pub fn BNTypeArchiveMergeConflictGetFirstSnapshotId(
28096 conflict: *mut BNTypeArchiveMergeConflict,
28097 ) -> *mut ::std::os::raw::c_char;
28098}
28099unsafe extern "C" {
28100 pub fn BNTypeArchiveMergeConflictGetSecondSnapshotId(
28101 conflict: *mut BNTypeArchiveMergeConflict,
28102 ) -> *mut ::std::os::raw::c_char;
28103}
28104unsafe extern "C" {
28105 pub fn BNTypeArchiveMergeConflictSuccess(
28106 conflict: *mut BNTypeArchiveMergeConflict,
28107 value: *const ::std::os::raw::c_char,
28108 ) -> bool;
28109}
28110unsafe extern "C" {
28111 #[doc = " CollabSnapshot"]
28112 pub fn BNNewCollaborationSnapshotReference(
28113 snapshot: *mut BNCollaborationSnapshot,
28114 ) -> *mut BNCollaborationSnapshot;
28115}
28116unsafe extern "C" {
28117 pub fn BNFreeCollaborationSnapshot(snapshot: *mut BNCollaborationSnapshot);
28118}
28119unsafe extern "C" {
28120 pub fn BNFreeCollaborationSnapshotList(
28121 snapshots: *mut *mut BNCollaborationSnapshot,
28122 count: usize,
28123 );
28124}
28125unsafe extern "C" {
28126 pub fn BNCollaborationSnapshotGetFile(
28127 snapshot: *mut BNCollaborationSnapshot,
28128 ) -> *mut BNRemoteFile;
28129}
28130unsafe extern "C" {
28131 pub fn BNCollaborationSnapshotGetProject(
28132 snapshot: *mut BNCollaborationSnapshot,
28133 ) -> *mut BNRemoteProject;
28134}
28135unsafe extern "C" {
28136 pub fn BNCollaborationSnapshotGetRemote(
28137 snapshot: *mut BNCollaborationSnapshot,
28138 ) -> *mut BNRemote;
28139}
28140unsafe extern "C" {
28141 pub fn BNCollaborationSnapshotGetUrl(
28142 snapshot: *mut BNCollaborationSnapshot,
28143 ) -> *mut ::std::os::raw::c_char;
28144}
28145unsafe extern "C" {
28146 pub fn BNCollaborationSnapshotGetId(
28147 snapshot: *mut BNCollaborationSnapshot,
28148 ) -> *mut ::std::os::raw::c_char;
28149}
28150unsafe extern "C" {
28151 pub fn BNCollaborationSnapshotGetName(
28152 snapshot: *mut BNCollaborationSnapshot,
28153 ) -> *mut ::std::os::raw::c_char;
28154}
28155unsafe extern "C" {
28156 pub fn BNCollaborationSnapshotGetAuthor(
28157 snapshot: *mut BNCollaborationSnapshot,
28158 ) -> *mut ::std::os::raw::c_char;
28159}
28160unsafe extern "C" {
28161 pub fn BNCollaborationSnapshotGetCreated(snapshot: *mut BNCollaborationSnapshot) -> i64;
28162}
28163unsafe extern "C" {
28164 pub fn BNCollaborationSnapshotGetLastModified(snapshot: *mut BNCollaborationSnapshot) -> i64;
28165}
28166unsafe extern "C" {
28167 pub fn BNCollaborationSnapshotGetHash(
28168 snapshot: *mut BNCollaborationSnapshot,
28169 ) -> *mut ::std::os::raw::c_char;
28170}
28171unsafe extern "C" {
28172 pub fn BNCollaborationSnapshotGetSnapshotFileHash(
28173 snapshot: *mut BNCollaborationSnapshot,
28174 ) -> *mut ::std::os::raw::c_char;
28175}
28176unsafe extern "C" {
28177 pub fn BNCollaborationSnapshotHasPulledUndoEntries(
28178 snapshot: *mut BNCollaborationSnapshot,
28179 ) -> bool;
28180}
28181unsafe extern "C" {
28182 pub fn BNCollaborationSnapshotIsFinalized(snapshot: *mut BNCollaborationSnapshot) -> bool;
28183}
28184unsafe extern "C" {
28185 pub fn BNCollaborationSnapshotGetParentIds(
28186 snapshot: *mut BNCollaborationSnapshot,
28187 count: *mut usize,
28188 ) -> *mut *mut ::std::os::raw::c_char;
28189}
28190unsafe extern "C" {
28191 pub fn BNCollaborationSnapshotGetChildIds(
28192 snapshot: *mut BNCollaborationSnapshot,
28193 count: *mut usize,
28194 ) -> *mut *mut ::std::os::raw::c_char;
28195}
28196unsafe extern "C" {
28197 pub fn BNCollaborationSnapshotGetAnalysisCacheBuildId(
28198 snapshot: *mut BNCollaborationSnapshot,
28199 ) -> u64;
28200}
28201unsafe extern "C" {
28202 pub fn BNCollaborationSnapshotGetTitle(
28203 snapshot: *mut BNCollaborationSnapshot,
28204 ) -> *mut ::std::os::raw::c_char;
28205}
28206unsafe extern "C" {
28207 pub fn BNCollaborationSnapshotGetDescription(
28208 snapshot: *mut BNCollaborationSnapshot,
28209 ) -> *mut ::std::os::raw::c_char;
28210}
28211unsafe extern "C" {
28212 pub fn BNCollaborationSnapshotGetAuthorUsername(
28213 snapshot: *mut BNCollaborationSnapshot,
28214 ) -> *mut ::std::os::raw::c_char;
28215}
28216unsafe extern "C" {
28217 pub fn BNCollaborationSnapshotGetParents(
28218 snapshot: *mut BNCollaborationSnapshot,
28219 count: *mut usize,
28220 ) -> *mut *mut BNCollaborationSnapshot;
28221}
28222unsafe extern "C" {
28223 pub fn BNCollaborationSnapshotGetChildren(
28224 snapshot: *mut BNCollaborationSnapshot,
28225 count: *mut usize,
28226 ) -> *mut *mut BNCollaborationSnapshot;
28227}
28228unsafe extern "C" {
28229 pub fn BNCollaborationSnapshotGetUndoEntries(
28230 snapshot: *mut BNCollaborationSnapshot,
28231 count: *mut usize,
28232 ) -> *mut *mut BNCollaborationUndoEntry;
28233}
28234unsafe extern "C" {
28235 pub fn BNCollaborationSnapshotGetUndoEntryById(
28236 snapshot: *mut BNCollaborationSnapshot,
28237 id: u64,
28238 ) -> *mut BNCollaborationUndoEntry;
28239}
28240unsafe extern "C" {
28241 pub fn BNCollaborationSnapshotPullUndoEntries(
28242 snapshot: *mut BNCollaborationSnapshot,
28243 progress: BNProgressFunction,
28244 progressContext: *mut ::std::os::raw::c_void,
28245 ) -> bool;
28246}
28247unsafe extern "C" {
28248 pub fn BNCollaborationSnapshotCreateUndoEntry(
28249 snapshot: *mut BNCollaborationSnapshot,
28250 hasParent: bool,
28251 parent: u64,
28252 data: *const ::std::os::raw::c_char,
28253 ) -> *mut BNCollaborationUndoEntry;
28254}
28255unsafe extern "C" {
28256 pub fn BNCollaborationSnapshotFinalize(snapshot: *mut BNCollaborationSnapshot) -> bool;
28257}
28258unsafe extern "C" {
28259 pub fn BNCollaborationSnapshotDownloadSnapshotFile(
28260 snapshot: *mut BNCollaborationSnapshot,
28261 progress: BNProgressFunction,
28262 progressContext: *mut ::std::os::raw::c_void,
28263 data: *mut *mut u8,
28264 size: *mut usize,
28265 ) -> bool;
28266}
28267unsafe extern "C" {
28268 pub fn BNCollaborationSnapshotDownload(
28269 snapshot: *mut BNCollaborationSnapshot,
28270 progress: BNProgressFunction,
28271 progressContext: *mut ::std::os::raw::c_void,
28272 data: *mut *mut u8,
28273 size: *mut usize,
28274 ) -> bool;
28275}
28276unsafe extern "C" {
28277 pub fn BNCollaborationSnapshotDownloadAnalysisCache(
28278 snapshot: *mut BNCollaborationSnapshot,
28279 progress: BNProgressFunction,
28280 progressContext: *mut ::std::os::raw::c_void,
28281 data: *mut *mut u8,
28282 size: *mut usize,
28283 ) -> bool;
28284}
28285unsafe extern "C" {
28286 #[doc = " CollabUndoEntry"]
28287 pub fn BNNewCollaborationUndoEntryReference(
28288 entry: *mut BNCollaborationUndoEntry,
28289 ) -> *mut BNCollaborationUndoEntry;
28290}
28291unsafe extern "C" {
28292 pub fn BNFreeCollaborationUndoEntry(entry: *mut BNCollaborationUndoEntry);
28293}
28294unsafe extern "C" {
28295 pub fn BNFreeCollaborationUndoEntryList(
28296 entries: *mut *mut BNCollaborationUndoEntry,
28297 count: usize,
28298 );
28299}
28300unsafe extern "C" {
28301 pub fn BNCollaborationUndoEntryGetSnapshot(
28302 undoEntry: *mut BNCollaborationUndoEntry,
28303 ) -> *mut BNCollaborationSnapshot;
28304}
28305unsafe extern "C" {
28306 pub fn BNCollaborationUndoEntryGetFile(
28307 undoEntry: *mut BNCollaborationUndoEntry,
28308 ) -> *mut BNRemoteFile;
28309}
28310unsafe extern "C" {
28311 pub fn BNCollaborationUndoEntryGetProject(
28312 undoEntry: *mut BNCollaborationUndoEntry,
28313 ) -> *mut BNRemoteProject;
28314}
28315unsafe extern "C" {
28316 pub fn BNCollaborationUndoEntryGetRemote(
28317 undoEntry: *mut BNCollaborationUndoEntry,
28318 ) -> *mut BNRemote;
28319}
28320unsafe extern "C" {
28321 pub fn BNCollaborationUndoEntryGetUrl(
28322 undoEntry: *mut BNCollaborationUndoEntry,
28323 ) -> *mut ::std::os::raw::c_char;
28324}
28325unsafe extern "C" {
28326 pub fn BNCollaborationUndoEntryGetId(undoEntry: *mut BNCollaborationUndoEntry) -> u64;
28327}
28328unsafe extern "C" {
28329 pub fn BNCollaborationUndoEntryGetParentId(
28330 undoEntry: *mut BNCollaborationUndoEntry,
28331 parentId: *mut u64,
28332 ) -> bool;
28333}
28334unsafe extern "C" {
28335 pub fn BNCollaborationUndoEntryGetData(
28336 undoEntry: *mut BNCollaborationUndoEntry,
28337 data: *mut *mut ::std::os::raw::c_char,
28338 ) -> bool;
28339}
28340unsafe extern "C" {
28341 pub fn BNCollaborationUndoEntryGetParent(
28342 undoEntry: *mut BNCollaborationUndoEntry,
28343 ) -> *mut BNCollaborationUndoEntry;
28344}
28345unsafe extern "C" {
28346 #[doc = " CollabChangeset"]
28347 pub fn BNNewCollaborationChangesetReference(
28348 changeset: *mut BNCollaborationChangeset,
28349 ) -> *mut BNCollaborationChangeset;
28350}
28351unsafe extern "C" {
28352 pub fn BNFreeCollaborationChangeset(changeset: *mut BNCollaborationChangeset);
28353}
28354unsafe extern "C" {
28355 pub fn BNFreeCollaborationChangesetList(
28356 changesets: *mut *mut BNCollaborationChangeset,
28357 count: usize,
28358 );
28359}
28360unsafe extern "C" {
28361 pub fn BNCollaborationChangesetGetDatabase(
28362 changeset: *mut BNCollaborationChangeset,
28363 ) -> *mut BNDatabase;
28364}
28365unsafe extern "C" {
28366 pub fn BNCollaborationChangesetGetFile(
28367 changeset: *mut BNCollaborationChangeset,
28368 ) -> *mut BNRemoteFile;
28369}
28370unsafe extern "C" {
28371 pub fn BNCollaborationChangesetGetSnapshotIds(
28372 changeset: *mut BNCollaborationChangeset,
28373 count: *mut usize,
28374 ) -> *mut i64;
28375}
28376unsafe extern "C" {
28377 pub fn BNCollaborationChangesetGetAuthor(
28378 changeset: *mut BNCollaborationChangeset,
28379 ) -> *mut BNCollaborationUser;
28380}
28381unsafe extern "C" {
28382 pub fn BNCollaborationChangesetGetName(
28383 changeset: *mut BNCollaborationChangeset,
28384 ) -> *mut ::std::os::raw::c_char;
28385}
28386unsafe extern "C" {
28387 pub fn BNCollaborationChangesetSetName(
28388 changeset: *mut BNCollaborationChangeset,
28389 name: *const ::std::os::raw::c_char,
28390 ) -> bool;
28391}
28392unsafe extern "C" {
28393 #[doc = " AnalysisMergeConflictSplitter"]
28394 pub fn BNRegisterAnalysisMergeConflictSplitter(
28395 callbacks: *mut BNAnalysisMergeConflictSplitterCallbacks,
28396 ) -> *mut BNAnalysisMergeConflictSplitter;
28397}
28398unsafe extern "C" {
28399 pub fn BNGetAnalysisMergeConflictSplitterList(
28400 count: *mut usize,
28401 ) -> *mut *mut BNAnalysisMergeConflictSplitter;
28402}
28403unsafe extern "C" {
28404 pub fn BNFreeAnalysisMergeConflictSplitterList(
28405 splitters: *mut *mut BNAnalysisMergeConflictSplitter,
28406 count: usize,
28407 );
28408}
28409unsafe extern "C" {
28410 pub fn BNAnalysisMergeConflictSplitterGetName(
28411 splitter: *mut BNAnalysisMergeConflictSplitter,
28412 ) -> *mut ::std::os::raw::c_char;
28413}
28414unsafe extern "C" {
28415 pub fn BNAnalysisMergeConflictSplitterCanSplit(
28416 splitter: *mut BNAnalysisMergeConflictSplitter,
28417 key: *const ::std::os::raw::c_char,
28418 conflict: *mut BNAnalysisMergeConflict,
28419 ) -> bool;
28420}
28421unsafe extern "C" {
28422 pub fn BNAnalysisMergeConflictSplitterSplit(
28423 splitter: *mut BNAnalysisMergeConflictSplitter,
28424 originalKey: *const ::std::os::raw::c_char,
28425 originalConflict: *mut BNAnalysisMergeConflict,
28426 result: *mut BNKeyValueStore,
28427 newKeys: *mut *mut *mut ::std::os::raw::c_char,
28428 newConflicts: *mut *mut *mut BNAnalysisMergeConflict,
28429 newCount: *mut usize,
28430 ) -> bool;
28431}
28432unsafe extern "C" {
28433 #[doc = " High level token emitter"]
28434 pub fn BNNewHighLevelILTokenEmitterReference(
28435 emitter: *mut BNHighLevelILTokenEmitter,
28436 ) -> *mut BNHighLevelILTokenEmitter;
28437}
28438unsafe extern "C" {
28439 pub fn BNHighLevelILTokenPrependCollapseBlankIndicator(emitter: *mut BNHighLevelILTokenEmitter);
28440}
28441unsafe extern "C" {
28442 pub fn BNHighLevelILTokenPrependCollapseIndicator(
28443 emitter: *mut BNHighLevelILTokenEmitter,
28444 context: BNInstructionTextTokenContext,
28445 hash: u64,
28446 );
28447}
28448unsafe extern "C" {
28449 pub fn BNHighLevelILTokenEmitterHasCollapsableRegions(
28450 emitter: *mut BNHighLevelILTokenEmitter,
28451 ) -> bool;
28452}
28453unsafe extern "C" {
28454 pub fn BNHighLevelILTokenEmitterSetHasCollapsableRegions(
28455 emitter: *mut BNHighLevelILTokenEmitter,
28456 state: bool,
28457 );
28458}
28459unsafe extern "C" {
28460 pub fn BNFreeHighLevelILTokenEmitter(emitter: *mut BNHighLevelILTokenEmitter);
28461}
28462unsafe extern "C" {
28463 pub fn BNHighLevelILTokenEmitterAppend(
28464 emitter: *mut BNHighLevelILTokenEmitter,
28465 token: *mut BNInstructionTextToken,
28466 );
28467}
28468unsafe extern "C" {
28469 pub fn BNHighLevelILTokenEmitterInitLine(emitter: *mut BNHighLevelILTokenEmitter);
28470}
28471unsafe extern "C" {
28472 pub fn BNHighLevelILTokenEmitterNewLine(emitter: *mut BNHighLevelILTokenEmitter);
28473}
28474unsafe extern "C" {
28475 pub fn BNHighLevelILTokenEmitterIncreaseIndent(emitter: *mut BNHighLevelILTokenEmitter);
28476}
28477unsafe extern "C" {
28478 pub fn BNHighLevelILTokenEmitterDecreaseIndent(emitter: *mut BNHighLevelILTokenEmitter);
28479}
28480unsafe extern "C" {
28481 pub fn BNHighLevelILTokenEmitterScopeSeparator(emitter: *mut BNHighLevelILTokenEmitter);
28482}
28483unsafe extern "C" {
28484 pub fn BNHighLevelILTokenEmitterBeginScope(
28485 emitter: *mut BNHighLevelILTokenEmitter,
28486 type_: BNScopeType,
28487 );
28488}
28489unsafe extern "C" {
28490 pub fn BNHighLevelILTokenEmitterEndScope(
28491 emitter: *mut BNHighLevelILTokenEmitter,
28492 type_: BNScopeType,
28493 );
28494}
28495unsafe extern "C" {
28496 pub fn BNHighLevelILTokenEmitterScopeContinuation(
28497 emitter: *mut BNHighLevelILTokenEmitter,
28498 forceSameLine: bool,
28499 );
28500}
28501unsafe extern "C" {
28502 pub fn BNHighLevelILTokenEmitterFinalizeScope(emitter: *mut BNHighLevelILTokenEmitter);
28503}
28504unsafe extern "C" {
28505 pub fn BNHighLevelILTokenEmitterNoIndentForThisLine(emitter: *mut BNHighLevelILTokenEmitter);
28506}
28507unsafe extern "C" {
28508 pub fn BNHighLevelILTokenEmitterBeginForceZeroConfidence(
28509 emitter: *mut BNHighLevelILTokenEmitter,
28510 );
28511}
28512unsafe extern "C" {
28513 pub fn BNHighLevelILTokenEmitterEndForceZeroConfidence(emitter: *mut BNHighLevelILTokenEmitter);
28514}
28515unsafe extern "C" {
28516 pub fn BNHighLevelILTokenEmitterSetCurrentExpr(
28517 emitter: *mut BNHighLevelILTokenEmitter,
28518 expr: BNTokenEmitterExpr,
28519 ) -> BNTokenEmitterExpr;
28520}
28521unsafe extern "C" {
28522 pub fn BNHighLevelILTokenEmitterRestoreCurrentExpr(
28523 emitter: *mut BNHighLevelILTokenEmitter,
28524 expr: BNTokenEmitterExpr,
28525 );
28526}
28527unsafe extern "C" {
28528 pub fn BNHighLevelILTokenEmitterFinalize(emitter: *mut BNHighLevelILTokenEmitter);
28529}
28530unsafe extern "C" {
28531 pub fn BNHighLevelILTokenEmitterAppendOpenParen(emitter: *mut BNHighLevelILTokenEmitter);
28532}
28533unsafe extern "C" {
28534 pub fn BNHighLevelILTokenEmitterAppendCloseParen(emitter: *mut BNHighLevelILTokenEmitter);
28535}
28536unsafe extern "C" {
28537 pub fn BNHighLevelILTokenEmitterAppendOpenBracket(emitter: *mut BNHighLevelILTokenEmitter);
28538}
28539unsafe extern "C" {
28540 pub fn BNHighLevelILTokenEmitterAppendCloseBracket(emitter: *mut BNHighLevelILTokenEmitter);
28541}
28542unsafe extern "C" {
28543 pub fn BNHighLevelILTokenEmitterAppendOpenBrace(emitter: *mut BNHighLevelILTokenEmitter);
28544}
28545unsafe extern "C" {
28546 pub fn BNHighLevelILTokenEmitterAppendCloseBrace(emitter: *mut BNHighLevelILTokenEmitter);
28547}
28548unsafe extern "C" {
28549 pub fn BNHighLevelILTokenEmitterAppendSemicolon(emitter: *mut BNHighLevelILTokenEmitter);
28550}
28551unsafe extern "C" {
28552 pub fn BNHighLevelILTokenEmitterSetBraceRequirement(
28553 emitter: *mut BNHighLevelILTokenEmitter,
28554 required: BNBraceRequirement,
28555 );
28556}
28557unsafe extern "C" {
28558 pub fn BNHighLevelILTokenEmitterSetBracesAroundSwitchCases(
28559 emitter: *mut BNHighLevelILTokenEmitter,
28560 braces: bool,
28561 );
28562}
28563unsafe extern "C" {
28564 pub fn BNHighLevelILTokenEmitterSetDefaultBracesOnSameLine(
28565 emitter: *mut BNHighLevelILTokenEmitter,
28566 sameLine: bool,
28567 );
28568}
28569unsafe extern "C" {
28570 pub fn BNHighLevelILTokenEmitterSetSimpleScopeAllowed(
28571 emitter: *mut BNHighLevelILTokenEmitter,
28572 allowed: bool,
28573 );
28574}
28575unsafe extern "C" {
28576 pub fn BNHighLevelILTokenEmitterGetBraceRequirement(
28577 emitter: *mut BNHighLevelILTokenEmitter,
28578 ) -> BNBraceRequirement;
28579}
28580unsafe extern "C" {
28581 pub fn BNHighLevelILTokenEmitterHasBracesAroundSwitchCases(
28582 emitter: *mut BNHighLevelILTokenEmitter,
28583 ) -> bool;
28584}
28585unsafe extern "C" {
28586 pub fn BNHighLevelILTokenEmitterGetDefaultBracesOnSameLine(
28587 emitter: *mut BNHighLevelILTokenEmitter,
28588 ) -> bool;
28589}
28590unsafe extern "C" {
28591 pub fn BNHighLevelILTokenEmitterGetMaxTernarySimplficationTokens(
28592 emitter: *mut BNHighLevelILTokenEmitter,
28593 ) -> usize;
28594}
28595unsafe extern "C" {
28596 pub fn BNHighLevelILTokenEmitterIsSimpleScopeAllowed(
28597 emitter: *mut BNHighLevelILTokenEmitter,
28598 ) -> bool;
28599}
28600unsafe extern "C" {
28601 pub fn BNHighLevelILTokenEmitterGetCurrentTokens(
28602 emitter: *mut BNHighLevelILTokenEmitter,
28603 tokenCount: *mut usize,
28604 ) -> *mut BNInstructionTextToken;
28605}
28606unsafe extern "C" {
28607 pub fn BNHighLevelILTokenEmitterSetCurrentTokens(
28608 emitter: *mut BNHighLevelILTokenEmitter,
28609 tokens: *mut BNInstructionTextToken,
28610 tokenCount: usize,
28611 );
28612}
28613unsafe extern "C" {
28614 pub fn BNHighLevelILTokenEmitterGetLines(
28615 emitter: *mut BNHighLevelILTokenEmitter,
28616 count: *mut usize,
28617 ) -> *mut BNDisassemblyTextLine;
28618}
28619unsafe extern "C" {
28620 pub fn BNAddHighLevelILSizeToken(
28621 size: usize,
28622 type_: BNInstructionTextTokenType,
28623 tokens: *mut BNHighLevelILTokenEmitter,
28624 );
28625}
28626unsafe extern "C" {
28627 pub fn BNAddHighLevelILFloatSizeToken(
28628 size: usize,
28629 type_: BNInstructionTextTokenType,
28630 tokens: *mut BNHighLevelILTokenEmitter,
28631 );
28632}
28633unsafe extern "C" {
28634 pub fn BNAddHighLevelILVarTextToken(
28635 func: *mut BNHighLevelILFunction,
28636 var: *const BNVariable,
28637 tokens: *mut BNHighLevelILTokenEmitter,
28638 exprIndex: usize,
28639 size: usize,
28640 );
28641}
28642unsafe extern "C" {
28643 pub fn BNAddHighLevelILIntegerTextToken(
28644 func: *mut BNHighLevelILFunction,
28645 exprIndex: usize,
28646 val: i64,
28647 size: usize,
28648 tokens: *mut BNHighLevelILTokenEmitter,
28649 );
28650}
28651unsafe extern "C" {
28652 pub fn BNAddHighLevelILArrayIndexToken(
28653 func: *mut BNHighLevelILFunction,
28654 exprIndex: usize,
28655 val: i64,
28656 size: usize,
28657 tokens: *mut BNHighLevelILTokenEmitter,
28658 address: u64,
28659 );
28660}
28661unsafe extern "C" {
28662 pub fn BNAddHighLevelILPointerTextToken(
28663 func: *mut BNHighLevelILFunction,
28664 exprIndex: usize,
28665 val: i64,
28666 tokens: *mut BNHighLevelILTokenEmitter,
28667 settings: *mut BNDisassemblySettings,
28668 symbolDisplay: BNSymbolDisplayType,
28669 precedence: BNOperatorPrecedence,
28670 allowShortString: bool,
28671 ) -> BNSymbolDisplayResult;
28672}
28673unsafe extern "C" {
28674 pub fn BNAddHighLevelILConstantTextToken(
28675 func: *mut BNHighLevelILFunction,
28676 exprIndex: usize,
28677 val: i64,
28678 size: usize,
28679 tokens: *mut BNHighLevelILTokenEmitter,
28680 settings: *mut BNDisassemblySettings,
28681 precedence: BNOperatorPrecedence,
28682 );
28683}
28684unsafe extern "C" {
28685 pub fn BNAddNamesForOuterStructureMembers(
28686 data: *mut BNBinaryView,
28687 type_: *mut BNType,
28688 hlil: *mut BNHighLevelILFunction,
28689 varExpr: usize,
28690 nameCount: *mut usize,
28691 ) -> *mut *mut ::std::os::raw::c_char;
28692}
28693unsafe extern "C" {
28694 pub fn BNZeroExtend(value: i64, sourceSize: usize, destSize: usize) -> i64;
28695}
28696unsafe extern "C" {
28697 pub fn BNSignExtend(value: i64, sourceSize: usize, destSize: usize) -> i64;
28698}
28699unsafe extern "C" {
28700 pub fn BNMaskToSize(value: i64, size: usize) -> i64;
28701}
28702unsafe extern "C" {
28703 pub fn BNGetMaskForSize(size: usize) -> i64;
28704}
28705unsafe extern "C" {
28706 #[doc = " FirmwareNinja"]
28707 pub fn BNCreateFirmwareNinja(view: *mut BNBinaryView) -> *mut BNFirmwareNinja;
28708}
28709unsafe extern "C" {
28710 pub fn BNFreeFirmwareNinja(fn_: *mut BNFirmwareNinja);
28711}
28712unsafe extern "C" {
28713 pub fn BNFirmwareNinjaStoreCustomDevice(
28714 fn_: *mut BNFirmwareNinja,
28715 name: *const ::std::os::raw::c_char,
28716 start: u64,
28717 end: u64,
28718 info: *const ::std::os::raw::c_char,
28719 ) -> bool;
28720}
28721unsafe extern "C" {
28722 pub fn BNFirmwareNinjaRemoveCustomDevice(
28723 fn_: *mut BNFirmwareNinja,
28724 name: *const ::std::os::raw::c_char,
28725 ) -> bool;
28726}
28727unsafe extern "C" {
28728 pub fn BNFirmwareNinjaQueryCustomDevices(
28729 fn_: *mut BNFirmwareNinja,
28730 devices: *mut *mut BNFirmwareNinjaDevice,
28731 ) -> ::std::os::raw::c_int;
28732}
28733unsafe extern "C" {
28734 pub fn BNFirmwareNinjaFreeDevices(
28735 devices: *mut BNFirmwareNinjaDevice,
28736 size: ::std::os::raw::c_int,
28737 );
28738}
28739unsafe extern "C" {
28740 pub fn BNFirmwareNinjaQueryBoardNamesForArchitecture(
28741 fn_: *mut BNFirmwareNinja,
28742 arch: *mut BNArchitecture,
28743 boards: *mut *mut *mut ::std::os::raw::c_char,
28744 ) -> ::std::os::raw::c_int;
28745}
28746unsafe extern "C" {
28747 pub fn BNFirmwareNinjaFreeBoardNames(
28748 boards: *mut *mut ::std::os::raw::c_char,
28749 size: ::std::os::raw::c_int,
28750 );
28751}
28752unsafe extern "C" {
28753 pub fn BNFirmwareNinjaQueryBoardDevices(
28754 fn_: *mut BNFirmwareNinja,
28755 arch: *mut BNArchitecture,
28756 board: *const ::std::os::raw::c_char,
28757 devices: *mut *mut BNFirmwareNinjaDevice,
28758 ) -> ::std::os::raw::c_int;
28759}
28760unsafe extern "C" {
28761 pub fn BNFirmwareNinjaFindSectionsWithEntropy(
28762 fn_: *mut BNFirmwareNinja,
28763 sections: *mut *mut BNFirmwareNinjaSection,
28764 highCodeEntropyThreshold: f32,
28765 lowCodeEntropyThreshold: f32,
28766 blockSize: usize,
28767 mode: BNFirmwareNinjaSectionAnalysisMode,
28768 ) -> ::std::os::raw::c_int;
28769}
28770unsafe extern "C" {
28771 pub fn BNFirmwareNinjaFreeSections(
28772 sections: *mut BNFirmwareNinjaSection,
28773 size: ::std::os::raw::c_int,
28774 );
28775}
28776unsafe extern "C" {
28777 pub fn BNFirmwareNinjaGetFunctionMemoryAccesses(
28778 fn_: *mut BNFirmwareNinja,
28779 fma: *mut *mut *mut BNFirmwareNinjaFunctionMemoryAccesses,
28780 progress: BNProgressFunction,
28781 progressContext: *mut ::std::os::raw::c_void,
28782 ) -> ::std::os::raw::c_int;
28783}
28784unsafe extern "C" {
28785 pub fn BNFirmwareNinjaFreeFunctionMemoryAccesses(
28786 fma: *mut *mut BNFirmwareNinjaFunctionMemoryAccesses,
28787 size: ::std::os::raw::c_int,
28788 );
28789}
28790unsafe extern "C" {
28791 pub fn BNFirmwareNinjaStoreFunctionMemoryAccessesToMetadata(
28792 fn_: *mut BNFirmwareNinja,
28793 fma: *mut *mut BNFirmwareNinjaFunctionMemoryAccesses,
28794 size: ::std::os::raw::c_int,
28795 );
28796}
28797unsafe extern "C" {
28798 pub fn BNFirmwareNinjaQueryFunctionMemoryAccessesFromMetadata(
28799 fn_: *mut BNFirmwareNinja,
28800 fma: *mut *mut *mut BNFirmwareNinjaFunctionMemoryAccesses,
28801 ) -> ::std::os::raw::c_int;
28802}
28803unsafe extern "C" {
28804 pub fn BNFirmwareNinjaGetBoardDeviceAccesses(
28805 fn_: *mut BNFirmwareNinja,
28806 fma: *mut *mut BNFirmwareNinjaFunctionMemoryAccesses,
28807 size: ::std::os::raw::c_int,
28808 accesses: *mut *mut BNFirmwareNinjaDeviceAccesses,
28809 arch: *mut BNArchitecture,
28810 ) -> ::std::os::raw::c_int;
28811}
28812unsafe extern "C" {
28813 pub fn BNFirmwareNinjaFreeBoardDeviceAccesses(
28814 accesses: *mut BNFirmwareNinjaDeviceAccesses,
28815 size: ::std::os::raw::c_int,
28816 );
28817}
28818unsafe extern "C" {
28819 pub fn BNFirmwareNinjaGetMemoryRegionReferenceTree(
28820 fn_: *mut BNFirmwareNinja,
28821 start: u64,
28822 end: u64,
28823 fma: *mut *mut BNFirmwareNinjaFunctionMemoryAccesses,
28824 size: ::std::os::raw::c_int,
28825 value: *mut u64,
28826 ) -> *mut BNFirmwareNinjaReferenceNode;
28827}
28828unsafe extern "C" {
28829 pub fn BNFirmwareNinjaGetAddressReferenceTree(
28830 fn_: *mut BNFirmwareNinja,
28831 address: u64,
28832 fma: *mut *mut BNFirmwareNinjaFunctionMemoryAccesses,
28833 size: ::std::os::raw::c_int,
28834 value: *mut u64,
28835 ) -> *mut BNFirmwareNinjaReferenceNode;
28836}
28837unsafe extern "C" {
28838 pub fn BNFirmwareNinjaQueryRelationships(
28839 fn_: *mut BNFirmwareNinja,
28840 count: *mut usize,
28841 ) -> *mut *mut BNFirmwareNinjaRelationship;
28842}
28843unsafe extern "C" {
28844 pub fn BNFirmwareNinjaFreeRelationships(
28845 relationships: *mut *mut BNFirmwareNinjaRelationship,
28846 count: usize,
28847 );
28848}
28849unsafe extern "C" {
28850 pub fn BNFirmwareNinjaAddRelationship(
28851 fn_: *mut BNFirmwareNinja,
28852 rel: *mut BNFirmwareNinjaRelationship,
28853 );
28854}
28855unsafe extern "C" {
28856 pub fn BNFirmwareNinjaGetRelationshipByGuid(
28857 fn_: *mut BNFirmwareNinja,
28858 guid: *const ::std::os::raw::c_char,
28859 ) -> *mut BNFirmwareNinjaRelationship;
28860}
28861unsafe extern "C" {
28862 pub fn BNFirmwareNinjaRemoveRelationshipByGuid(
28863 fn_: *mut BNFirmwareNinja,
28864 guid: *const ::std::os::raw::c_char,
28865 );
28866}
28867unsafe extern "C" {
28868 pub fn BNFirmwareNinjaReferenceNodeIsFunction(node: *mut BNFirmwareNinjaReferenceNode) -> bool;
28869}
28870unsafe extern "C" {
28871 pub fn BNFirmwareNinjaReferenceNodeIsDataVariable(
28872 node: *mut BNFirmwareNinjaReferenceNode,
28873 ) -> bool;
28874}
28875unsafe extern "C" {
28876 pub fn BNFirmwareNinjaReferenceNodeHasChildren(node: *mut BNFirmwareNinjaReferenceNode)
28877 -> bool;
28878}
28879unsafe extern "C" {
28880 pub fn BNFirmwareNinjaReferenceNodeGetFunction(
28881 node: *mut BNFirmwareNinjaReferenceNode,
28882 ) -> *mut BNFunction;
28883}
28884unsafe extern "C" {
28885 pub fn BNFirmwareNinjaReferenceNodeGetDataVariable(
28886 node: *mut BNFirmwareNinjaReferenceNode,
28887 dataVariable: *mut BNDataVariable,
28888 ) -> bool;
28889}
28890unsafe extern "C" {
28891 pub fn BNFirmwareNinjaReferenceNodeGetChildren(
28892 parent: *mut BNFirmwareNinjaReferenceNode,
28893 count: *mut usize,
28894 ) -> *mut *mut BNFirmwareNinjaReferenceNode;
28895}
28896unsafe extern "C" {
28897 pub fn BNFreeFirmwareNinjaReferenceNode(node: *mut BNFirmwareNinjaReferenceNode);
28898}
28899unsafe extern "C" {
28900 pub fn BNNewFirmwareNinjaReferenceNodeReference(
28901 node: *mut BNFirmwareNinjaReferenceNode,
28902 ) -> *mut BNFirmwareNinjaReferenceNode;
28903}
28904unsafe extern "C" {
28905 pub fn BNFreeFirmwareNinjaReferenceNodes(
28906 nodes: *mut *mut BNFirmwareNinjaReferenceNode,
28907 count: usize,
28908 );
28909}
28910unsafe extern "C" {
28911 pub fn BNCreateFirmwareNinjaRelationship(
28912 view: *mut BNBinaryView,
28913 ) -> *mut BNFirmwareNinjaRelationship;
28914}
28915unsafe extern "C" {
28916 pub fn BNFreeFirmwareNinjaRelationship(rel: *mut BNFirmwareNinjaRelationship);
28917}
28918unsafe extern "C" {
28919 pub fn BNNewFirmwareNinjaRelationshipReference(
28920 rel: *mut BNFirmwareNinjaRelationship,
28921 ) -> *mut BNFirmwareNinjaRelationship;
28922}
28923unsafe extern "C" {
28924 pub fn BNFirmwareNinjaRelationshipSetPrimaryAddress(
28925 rel: *mut BNFirmwareNinjaRelationship,
28926 address: u64,
28927 );
28928}
28929unsafe extern "C" {
28930 pub fn BNFirmwareNinjaRelationshipSetPrimaryDataVariable(
28931 rel: *mut BNFirmwareNinjaRelationship,
28932 dataVariableAddress: u64,
28933 );
28934}
28935unsafe extern "C" {
28936 pub fn BNFirmwareNinjaRelationshipSetPrimaryFunction(
28937 rel: *mut BNFirmwareNinjaRelationship,
28938 function: *mut BNFunction,
28939 );
28940}
28941unsafe extern "C" {
28942 pub fn BNFirmwareNinjaRelationshipPrimaryIsDataVariable(
28943 rel: *mut BNFirmwareNinjaRelationship,
28944 ) -> bool;
28945}
28946unsafe extern "C" {
28947 pub fn BNFirmwareNinjaRelationshipPrimaryIsFunction(
28948 rel: *mut BNFirmwareNinjaRelationship,
28949 ) -> bool;
28950}
28951unsafe extern "C" {
28952 pub fn BNFirmwareNinjaRelationshipPrimaryIsAddress(
28953 rel: *mut BNFirmwareNinjaRelationship,
28954 ) -> bool;
28955}
28956unsafe extern "C" {
28957 pub fn BNFirmwareNinjaRelationshipGetPrimaryDataVariable(
28958 rel: *mut BNFirmwareNinjaRelationship,
28959 dataVariable: *mut BNDataVariable,
28960 ) -> bool;
28961}
28962unsafe extern "C" {
28963 pub fn BNFirmwareNinjaRelationshipGetPrimaryFunction(
28964 rel: *mut BNFirmwareNinjaRelationship,
28965 ) -> *mut BNFunction;
28966}
28967unsafe extern "C" {
28968 pub fn BNFirmwareNinjaRelationshipGetPrimaryAddress(
28969 rel: *mut BNFirmwareNinjaRelationship,
28970 result: *mut u64,
28971 ) -> bool;
28972}
28973unsafe extern "C" {
28974 pub fn BNFirmwareNinjaRelationshipSetSecondaryExternalAddress(
28975 rel: *mut BNFirmwareNinjaRelationship,
28976 projectFile: *mut BNProjectFile,
28977 address: u64,
28978 );
28979}
28980unsafe extern "C" {
28981 pub fn BNFirmwareNinjaRelationshipSetSecondaryExternalSymbol(
28982 rel: *mut BNFirmwareNinjaRelationship,
28983 projectFile: *mut BNProjectFile,
28984 symbol: *const ::std::os::raw::c_char,
28985 );
28986}
28987unsafe extern "C" {
28988 pub fn BNFirmwareNinjaRelationshipSetSecondaryAddress(
28989 rel: *mut BNFirmwareNinjaRelationship,
28990 address: u64,
28991 );
28992}
28993unsafe extern "C" {
28994 pub fn BNFirmwareNinjaRelationshipSetSecondaryDataVariable(
28995 rel: *mut BNFirmwareNinjaRelationship,
28996 dataVariableAddress: u64,
28997 );
28998}
28999unsafe extern "C" {
29000 pub fn BNFirmwareNinjaRelationshipSetSecondaryFunction(
29001 rel: *mut BNFirmwareNinjaRelationship,
29002 function: *mut BNFunction,
29003 );
29004}
29005unsafe extern "C" {
29006 pub fn BNFirmwareNinjaRelationshipSecondaryIsDataVariable(
29007 rel: *mut BNFirmwareNinjaRelationship,
29008 ) -> bool;
29009}
29010unsafe extern "C" {
29011 pub fn BNFirmwareNinjaRelationshipSecondaryIsFunction(
29012 rel: *mut BNFirmwareNinjaRelationship,
29013 ) -> bool;
29014}
29015unsafe extern "C" {
29016 pub fn BNFirmwareNinjaRelationshipSecondaryIsAddress(
29017 rel: *mut BNFirmwareNinjaRelationship,
29018 ) -> bool;
29019}
29020unsafe extern "C" {
29021 pub fn BNFirmwareNinjaRelationshipSecondaryIsExternalAddress(
29022 rel: *mut BNFirmwareNinjaRelationship,
29023 ) -> bool;
29024}
29025unsafe extern "C" {
29026 pub fn BNFirmwareNinjaRelationshipSecondaryIsExternalSymbol(
29027 rel: *mut BNFirmwareNinjaRelationship,
29028 ) -> bool;
29029}
29030unsafe extern "C" {
29031 pub fn BNFirmwareNinjaRelationshipGetSecondaryExternalProjectFile(
29032 rel: *mut BNFirmwareNinjaRelationship,
29033 ) -> *mut BNProjectFile;
29034}
29035unsafe extern "C" {
29036 pub fn BNFirmwareNinjaRelationshipGetSecondaryAddress(
29037 rel: *mut BNFirmwareNinjaRelationship,
29038 result: *mut u64,
29039 ) -> bool;
29040}
29041unsafe extern "C" {
29042 pub fn BNFirmwareNinjaRelationshipGetSecondaryDataVariable(
29043 rel: *mut BNFirmwareNinjaRelationship,
29044 dataVariable: *mut BNDataVariable,
29045 ) -> bool;
29046}
29047unsafe extern "C" {
29048 pub fn BNFirmwareNinjaRelationshipGetSecondaryFunction(
29049 rel: *mut BNFirmwareNinjaRelationship,
29050 ) -> *mut BNFunction;
29051}
29052unsafe extern "C" {
29053 pub fn BNFirmwareNinjaRelationshipGetSecondaryExternalSymbol(
29054 rel: *mut BNFirmwareNinjaRelationship,
29055 ) -> *mut ::std::os::raw::c_char;
29056}
29057unsafe extern "C" {
29058 pub fn BNFirmwareNinjaRelationshipSetDescription(
29059 rel: *mut BNFirmwareNinjaRelationship,
29060 description: *const ::std::os::raw::c_char,
29061 );
29062}
29063unsafe extern "C" {
29064 pub fn BNFirmwareNinjaRelationshipGetDescription(
29065 rel: *mut BNFirmwareNinjaRelationship,
29066 ) -> *mut ::std::os::raw::c_char;
29067}
29068unsafe extern "C" {
29069 pub fn BNFirmwareNinjaRelationshipSetProvenance(
29070 rel: *mut BNFirmwareNinjaRelationship,
29071 provenance: *const ::std::os::raw::c_char,
29072 );
29073}
29074unsafe extern "C" {
29075 pub fn BNFirmwareNinjaRelationshipGetProvenance(
29076 rel: *mut BNFirmwareNinjaRelationship,
29077 ) -> *mut ::std::os::raw::c_char;
29078}
29079unsafe extern "C" {
29080 pub fn BNFirmwareNinjaRelationshipGetGuid(
29081 rel: *mut BNFirmwareNinjaRelationship,
29082 ) -> *mut ::std::os::raw::c_char;
29083}
29084unsafe extern "C" {
29085 #[doc = " Line formatters"]
29086 pub fn BNRegisterLineFormatter(
29087 name: *const ::std::os::raw::c_char,
29088 callbacks: *mut BNCustomLineFormatter,
29089 ) -> *mut BNLineFormatter;
29090}
29091unsafe extern "C" {
29092 pub fn BNGetLineFormatterList(count: *mut usize) -> *mut *mut BNLineFormatter;
29093}
29094unsafe extern "C" {
29095 pub fn BNFreeLineFormatterList(formatters: *mut *mut BNLineFormatter);
29096}
29097unsafe extern "C" {
29098 pub fn BNGetLineFormatterByName(name: *const ::std::os::raw::c_char) -> *mut BNLineFormatter;
29099}
29100unsafe extern "C" {
29101 pub fn BNGetDefaultLineFormatter() -> *mut BNLineFormatter;
29102}
29103unsafe extern "C" {
29104 pub fn BNGetLineFormatterName(formatter: *mut BNLineFormatter) -> *mut ::std::os::raw::c_char;
29105}
29106unsafe extern "C" {
29107 pub fn BNFormatLines(
29108 formatter: *mut BNLineFormatter,
29109 inLines: *mut BNDisassemblyTextLine,
29110 inCount: usize,
29111 settings: *const BNLineFormatterSettings,
29112 outCount: *mut usize,
29113 ) -> *mut BNDisassemblyTextLine;
29114}
29115unsafe extern "C" {
29116 pub fn BNGetDefaultLineFormatterSettings(
29117 settings: *mut BNDisassemblySettings,
29118 func: *mut BNHighLevelILFunction,
29119 ) -> *mut BNLineFormatterSettings;
29120}
29121unsafe extern "C" {
29122 pub fn BNGetLanguageRepresentationLineFormatterSettings(
29123 settings: *mut BNDisassemblySettings,
29124 func: *mut BNLanguageRepresentationFunction,
29125 ) -> *mut BNLineFormatterSettings;
29126}
29127unsafe extern "C" {
29128 pub fn BNFreeLineFormatterSettings(settings: *mut BNLineFormatterSettings);
29129}
29130unsafe extern "C" {
29131 #[doc = " Render Layers"]
29132 pub fn BNRegisterRenderLayer(
29133 name: *const ::std::os::raw::c_char,
29134 callbacks: *mut BNRenderLayerCallbacks,
29135 enableState: BNRenderLayerDefaultEnableState,
29136 ) -> *mut BNRenderLayer;
29137}
29138unsafe extern "C" {
29139 pub fn BNGetRenderLayerList(count: *mut usize) -> *mut *mut BNRenderLayer;
29140}
29141unsafe extern "C" {
29142 pub fn BNFreeRenderLayerList(renderLayers: *mut *mut BNRenderLayer);
29143}
29144unsafe extern "C" {
29145 pub fn BNGetRenderLayerByName(name: *const ::std::os::raw::c_char) -> *mut BNRenderLayer;
29146}
29147unsafe extern "C" {
29148 pub fn BNGetRenderLayerName(renderLayer: *mut BNRenderLayer) -> *mut ::std::os::raw::c_char;
29149}
29150unsafe extern "C" {
29151 pub fn BNGetRenderLayerDefaultEnableState(
29152 renderLayer: *mut BNRenderLayer,
29153 ) -> BNRenderLayerDefaultEnableState;
29154}
29155unsafe extern "C" {
29156 pub fn BNApplyRenderLayerToFlowGraph(renderLayer: *mut BNRenderLayer, graph: *mut BNFlowGraph);
29157}
29158unsafe extern "C" {
29159 pub fn BNApplyRenderLayerToLinearViewObject(
29160 renderLayer: *mut BNRenderLayer,
29161 obj: *mut BNLinearViewObject,
29162 prev: *mut BNLinearViewObject,
29163 next: *mut BNLinearViewObject,
29164 inLines: *mut BNLinearDisassemblyLine,
29165 inLineCount: usize,
29166 outLines: *mut *mut BNLinearDisassemblyLine,
29167 outLineCount: *mut usize,
29168 );
29169}
29170unsafe extern "C" {
29171 pub fn BNFreeStringRef(ref_: *mut BNStringRef);
29172}
29173unsafe extern "C" {
29174 pub fn BNDuplicateStringRef(ref_: *mut BNStringRef) -> *mut BNStringRef;
29175}
29176unsafe extern "C" {
29177 pub fn BNGetStringRefContents(ref_: *mut BNStringRef) -> *const ::std::os::raw::c_char;
29178}
29179unsafe extern "C" {
29180 pub fn BNGetStringRefSize(ref_: *mut BNStringRef) -> usize;
29181}
29182unsafe extern "C" {
29183 pub fn BNCreateStringRef(str_: *const ::std::os::raw::c_char) -> *mut BNStringRef;
29184}
29185unsafe extern "C" {
29186 pub fn BNCreateStringRefOfLength(
29187 str_: *const ::std::os::raw::c_char,
29188 len: usize,
29189 ) -> *mut BNStringRef;
29190}
29191unsafe extern "C" {
29192 #[doc = " Constant Renderers"]
29193 pub fn BNRegisterConstantRenderer(
29194 name: *const ::std::os::raw::c_char,
29195 renderer: *mut BNCustomConstantRenderer,
29196 ) -> *mut BNConstantRenderer;
29197}
29198unsafe extern "C" {
29199 pub fn BNGetConstantRendererByName(
29200 name: *const ::std::os::raw::c_char,
29201 ) -> *mut BNConstantRenderer;
29202}
29203unsafe extern "C" {
29204 pub fn BNGetConstantRendererList(count: *mut usize) -> *mut *mut BNConstantRenderer;
29205}
29206unsafe extern "C" {
29207 pub fn BNFreeConstantRendererList(renderers: *mut *mut BNConstantRenderer);
29208}
29209unsafe extern "C" {
29210 pub fn BNGetConstantRendererName(
29211 renderer: *mut BNConstantRenderer,
29212 ) -> *mut ::std::os::raw::c_char;
29213}
29214unsafe extern "C" {
29215 pub fn BNIsConstantRendererValidForType(
29216 renderer: *mut BNConstantRenderer,
29217 il: *mut BNHighLevelILFunction,
29218 type_: *mut BNType,
29219 ) -> bool;
29220}
29221unsafe extern "C" {
29222 pub fn BNConstantRendererRenderConstant(
29223 renderer: *mut BNConstantRenderer,
29224 il: *mut BNHighLevelILFunction,
29225 exprIndex: usize,
29226 type_: *mut BNType,
29227 val: i64,
29228 tokens: *mut BNHighLevelILTokenEmitter,
29229 settings: *mut BNDisassemblySettings,
29230 precedence: BNOperatorPrecedence,
29231 ) -> bool;
29232}
29233unsafe extern "C" {
29234 pub fn BNConstantRendererRenderConstantPointer(
29235 renderer: *mut BNConstantRenderer,
29236 il: *mut BNHighLevelILFunction,
29237 exprIndex: usize,
29238 type_: *mut BNType,
29239 val: i64,
29240 tokens: *mut BNHighLevelILTokenEmitter,
29241 settings: *mut BNDisassemblySettings,
29242 symbolDisplay: BNSymbolDisplayType,
29243 precedence: BNOperatorPrecedence,
29244 ) -> bool;
29245}
29246unsafe extern "C" {
29247 #[doc = " String recognizers"]
29248 pub fn BNRegisterCustomStringType(info: *mut BNCustomStringTypeInfo)
29249 -> *mut BNCustomStringType;
29250}
29251unsafe extern "C" {
29252 pub fn BNGetCustomStringTypeByName(
29253 name: *const ::std::os::raw::c_char,
29254 ) -> *mut BNCustomStringType;
29255}
29256unsafe extern "C" {
29257 pub fn BNGetCustomStringTypeByID(id: u32) -> *mut BNCustomStringType;
29258}
29259unsafe extern "C" {
29260 pub fn BNGetCustomStringTypeList(count: *mut usize) -> *mut *mut BNCustomStringType;
29261}
29262unsafe extern "C" {
29263 pub fn BNFreeCustomStringTypeList(types: *mut *mut BNCustomStringType);
29264}
29265unsafe extern "C" {
29266 pub fn BNGetCustomStringTypeName(type_: *mut BNCustomStringType)
29267 -> *mut ::std::os::raw::c_char;
29268}
29269unsafe extern "C" {
29270 pub fn BNGetCustomStringTypePrefix(
29271 type_: *mut BNCustomStringType,
29272 ) -> *mut ::std::os::raw::c_char;
29273}
29274unsafe extern "C" {
29275 pub fn BNGetCustomStringTypePostfix(
29276 type_: *mut BNCustomStringType,
29277 ) -> *mut ::std::os::raw::c_char;
29278}
29279unsafe extern "C" {
29280 pub fn BNRegisterStringRecognizer(
29281 name: *const ::std::os::raw::c_char,
29282 recognizer: *mut BNCustomStringRecognizer,
29283 ) -> *mut BNStringRecognizer;
29284}
29285unsafe extern "C" {
29286 pub fn BNGetStringRecognizerByName(
29287 name: *const ::std::os::raw::c_char,
29288 ) -> *mut BNStringRecognizer;
29289}
29290unsafe extern "C" {
29291 pub fn BNGetStringRecognizerList(count: *mut usize) -> *mut *mut BNStringRecognizer;
29292}
29293unsafe extern "C" {
29294 pub fn BNFreeStringRecognizerList(recognizers: *mut *mut BNStringRecognizer);
29295}
29296unsafe extern "C" {
29297 pub fn BNGetStringRecognizerName(
29298 recognizer: *mut BNStringRecognizer,
29299 ) -> *mut ::std::os::raw::c_char;
29300}
29301unsafe extern "C" {
29302 pub fn BNIsStringRecognizerValidForType(
29303 recognizer: *mut BNStringRecognizer,
29304 il: *mut BNHighLevelILFunction,
29305 type_: *mut BNType,
29306 ) -> bool;
29307}
29308unsafe extern "C" {
29309 pub fn BNStringRecognizerRecognizeConstant(
29310 recognizer: *mut BNStringRecognizer,
29311 il: *mut BNHighLevelILFunction,
29312 exprIndex: usize,
29313 type_: *mut BNType,
29314 val: i64,
29315 out: *mut BNDerivedString,
29316 ) -> bool;
29317}
29318unsafe extern "C" {
29319 pub fn BNStringRecognizerRecognizeConstantPointer(
29320 recognizer: *mut BNStringRecognizer,
29321 il: *mut BNHighLevelILFunction,
29322 exprIndex: usize,
29323 type_: *mut BNType,
29324 val: i64,
29325 out: *mut BNDerivedString,
29326 ) -> bool;
29327}
29328unsafe extern "C" {
29329 pub fn BNStringRecognizerRecognizeExternPointer(
29330 recognizer: *mut BNStringRecognizer,
29331 il: *mut BNHighLevelILFunction,
29332 exprIndex: usize,
29333 type_: *mut BNType,
29334 val: i64,
29335 offset: u64,
29336 out: *mut BNDerivedString,
29337 ) -> bool;
29338}
29339unsafe extern "C" {
29340 pub fn BNStringRecognizerRecognizeImport(
29341 recognizer: *mut BNStringRecognizer,
29342 il: *mut BNHighLevelILFunction,
29343 exprIndex: usize,
29344 type_: *mut BNType,
29345 val: i64,
29346 out: *mut BNDerivedString,
29347 ) -> bool;
29348}
29349unsafe extern "C" {
29350 pub fn BNStringRecognizerRecognizeConstantData(
29351 recognizer: *mut BNStringRecognizer,
29352 il: *mut BNHighLevelILFunction,
29353 exprIndex: usize,
29354 out: *mut BNDerivedString,
29355 ) -> bool;
29356}
29357unsafe extern "C" {
29358 #[doc = " PossibleValueSet operations"]
29359 pub fn BNFreePossibleValueSet(object: *mut BNPossibleValueSet);
29360}
29361unsafe extern "C" {
29362 pub fn BNPossibleValueSetUnion(
29363 object: *const BNPossibleValueSet,
29364 other: *const BNPossibleValueSet,
29365 size: usize,
29366 ) -> BNPossibleValueSet;
29367}
29368unsafe extern "C" {
29369 pub fn BNPossibleValueSetIntersection(
29370 object: *const BNPossibleValueSet,
29371 other: *const BNPossibleValueSet,
29372 size: usize,
29373 ) -> BNPossibleValueSet;
29374}
29375unsafe extern "C" {
29376 pub fn BNPossibleValueSetAdd(
29377 object: *const BNPossibleValueSet,
29378 other: *const BNPossibleValueSet,
29379 size: usize,
29380 ) -> BNPossibleValueSet;
29381}
29382unsafe extern "C" {
29383 pub fn BNPossibleValueSetSubtract(
29384 object: *const BNPossibleValueSet,
29385 other: *const BNPossibleValueSet,
29386 size: usize,
29387 ) -> BNPossibleValueSet;
29388}
29389unsafe extern "C" {
29390 pub fn BNPossibleValueSetMultiply(
29391 object: *const BNPossibleValueSet,
29392 other: *const BNPossibleValueSet,
29393 size: usize,
29394 ) -> BNPossibleValueSet;
29395}
29396unsafe extern "C" {
29397 pub fn BNPossibleValueSetSignedDivide(
29398 object: *const BNPossibleValueSet,
29399 other: *const BNPossibleValueSet,
29400 size: usize,
29401 ) -> BNPossibleValueSet;
29402}
29403unsafe extern "C" {
29404 pub fn BNPossibleValueSetUnsignedDivide(
29405 object: *const BNPossibleValueSet,
29406 other: *const BNPossibleValueSet,
29407 size: usize,
29408 ) -> BNPossibleValueSet;
29409}
29410unsafe extern "C" {
29411 pub fn BNPossibleValueSetSignedMod(
29412 object: *const BNPossibleValueSet,
29413 other: *const BNPossibleValueSet,
29414 size: usize,
29415 ) -> BNPossibleValueSet;
29416}
29417unsafe extern "C" {
29418 pub fn BNPossibleValueSetUnsignedMod(
29419 object: *const BNPossibleValueSet,
29420 other: *const BNPossibleValueSet,
29421 size: usize,
29422 ) -> BNPossibleValueSet;
29423}
29424unsafe extern "C" {
29425 pub fn BNPossibleValueSetAnd(
29426 object: *const BNPossibleValueSet,
29427 other: *const BNPossibleValueSet,
29428 size: usize,
29429 ) -> BNPossibleValueSet;
29430}
29431unsafe extern "C" {
29432 pub fn BNPossibleValueSetOr(
29433 object: *const BNPossibleValueSet,
29434 other: *const BNPossibleValueSet,
29435 size: usize,
29436 ) -> BNPossibleValueSet;
29437}
29438unsafe extern "C" {
29439 pub fn BNPossibleValueSetXor(
29440 object: *const BNPossibleValueSet,
29441 other: *const BNPossibleValueSet,
29442 size: usize,
29443 ) -> BNPossibleValueSet;
29444}
29445unsafe extern "C" {
29446 pub fn BNPossibleValueSetShiftLeft(
29447 object: *const BNPossibleValueSet,
29448 other: *const BNPossibleValueSet,
29449 size: usize,
29450 ) -> BNPossibleValueSet;
29451}
29452unsafe extern "C" {
29453 pub fn BNPossibleValueSetLogicalShiftRight(
29454 object: *const BNPossibleValueSet,
29455 other: *const BNPossibleValueSet,
29456 size: usize,
29457 ) -> BNPossibleValueSet;
29458}
29459unsafe extern "C" {
29460 pub fn BNPossibleValueSetArithShiftRight(
29461 object: *const BNPossibleValueSet,
29462 other: *const BNPossibleValueSet,
29463 size: usize,
29464 ) -> BNPossibleValueSet;
29465}
29466unsafe extern "C" {
29467 pub fn BNPossibleValueSetRotateLeft(
29468 object: *const BNPossibleValueSet,
29469 other: *const BNPossibleValueSet,
29470 size: usize,
29471 ) -> BNPossibleValueSet;
29472}
29473unsafe extern "C" {
29474 pub fn BNPossibleValueSetRotateRight(
29475 object: *const BNPossibleValueSet,
29476 other: *const BNPossibleValueSet,
29477 size: usize,
29478 ) -> BNPossibleValueSet;
29479}
29480unsafe extern "C" {
29481 pub fn BNPossibleValueSetNegate(
29482 object: *const BNPossibleValueSet,
29483 size: usize,
29484 ) -> BNPossibleValueSet;
29485}
29486unsafe extern "C" {
29487 pub fn BNPossibleValueSetNot(
29488 object: *const BNPossibleValueSet,
29489 size: usize,
29490 ) -> BNPossibleValueSet;
29491}